@idmwx/idmui-gl4 3.1.4 → 3.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -200,7 +200,7 @@
200
200
  <path d="M10 2.5V17.5" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
201
201
  <path d="M5 7.5L10 2.5L15 7.5" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
202
202
  </svg>`;s.src="data:image/svg+xml;base64,"+window.btoa(d);const m=[s];let p=0;m.forEach(g=>{g.onload=()=>{p++,this.map.hasImage("currentDirIcon")||this.map.addImage("currentDirIcon",s),p===1&&this.map.addLayer({id:this.directionLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-image":"currentDirIcon","icon-size":["interpolate",["linear"],["get","spd"],.5,.3,1,.5,1.5,.7,2,.8,3.5,1],"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"val",stops:[[0,0],[360,360]]}},paint:{"icon-opacity":this.opacity}},this.beforeLayer)}}),i=new Date().valueOf()-(a+r),console.log("[current] add elapsed: ",i,", total: ",r+=i)}}},handleClear(){this.map.getLayer(this.speedLayer)&&this.map.removeLayer(this.speedLayer),this.map.getLayer(this.speedLabelLayer)&&this.map.removeLayer(this.speedLabelLayer),this.map.getLayer(this.directionLayer)&&this.map.removeLayer(this.directionLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Fs(t,e,a,r,i,l){return null}const Gs=X(As,[["render",Fs]]),zy="",Ws={name:"IdmCurrentParticle",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:To},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,wrapper:void 0,animation:void 0,particleContext:void 0,particleTexture:void 0,particleOptions:{fadeOpacity:.96,speedFactor:4,dropRate:.005,dropRateBump:.01,uvRange:[-2.5,2.6],sRange:[0,3],scale:.3},paused:!1,initial:!0,right:10}},watch:{"factor.version":{async handler(){var t,e;(t=this.factor)!=null&&t.active?await this.handleRender():this.handleClear(),(e=this.factor)!=null&&e.particle||this.handleClearParticle()},immediate:!0},"factor.particle":{async handler(t,e){t!==e&&e!==void 0&&(t?(this.handleClear(),await this.handleRender()):this.handleClearParticle())}},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{async handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;await this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[current-particle] add elapsed: ",a,", total: ",e+=a)}},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0/255,"rgba(95, 143, 197,1)"],[5/255,"rgba(64,127,115,1)"],[10/255,"rgb(58,164,58)"],[15/255,"rgb(191,182,67)"],[20/255,"rgb(197,154,68)"],[30/255,"rgb(160,70,94)"],[40/255,"rgb(138,84,166)"],[45/255,"rgb(82,113,165)"],[50/255,"rgb(84,142,152)"],[65/255,"rgb(150,181,184)"],[80/255,"rgb(195,194,194)"],[254/255,"rgb(195,194,194)"],[1,"rgb(195,194,194)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.uvFragmentSchema);this.program=e,this.aPositionBuffer=a}this.handleParticleSetup()},handleParticleSetup(){if(!this.particleContext){this.particleContext=this.viewport.particleCanvas.getContext("webgl");const t=[[0,"rgb(183,224,224)"],[1,"rgb(199,202,202)"],[.6,"rgb(199,202,202)"]];this.wrapper=this.webgl.bindParticle(this.particleContext,ze.vertexSchema,ze.fragmentSchema,ze.quadVertSchema,ze.screenFragmentSchema,ze.updateFragmentSchema),this.wrapper.color=this.webgl.setup(this.particleContext,t,!0,16,16),this.wrapper={...this.wrapper,...this.webgl.setupParticle(this.particleContext,9e3),...this.webgl.resize(this.viewport,this.particleContext)},this.viewport.map.on("resize",this.handleResize),this.viewport.map.on("movestart",this.handlePause),this.viewport.map.on("moveend",this.handlePlay)}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t),this.particleTexture=this.webgl.createTexture(this.particleContext,this.particleContext.NEAREST,this.particleContext.LINEAR,this.particleContext.CLAMP_TO_EDGE,t),this.wrapper.image=t}this.initial&&(this.initial=!1,this.handlePlay()),this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer,this.particleOptions),this.viewport.toggle(!0)},handleResize(){this.wrapper={...this.wrapper,...this.webgl.resize(this.viewport,this.particleContext)}},handlePause(){this.paused=!0,this.animation&&(cancelAnimationFrame(this.animation),this.viewport.toggleParticle(!1))},handlePlay(){this.paused=!1,this.animation=requestAnimationFrame(()=>{this.webgl.drawParticle(this.viewport,this.particleContext,this.particleTexture,this.wrapper,this.particleOptions),this.viewport.toggleParticle(!0),this.handlePlay()})},handleClearParticle(){var t,e,a,r,i,l,n;(t=this.viewport)==null||t.toggleParticle(!1),this.particleContext=void 0,this.initial=!0,(a=(e=this.viewport)==null?void 0:e.map)==null||a.off("resize",this.handleResize),(i=(r=this.viewport)==null?void 0:r.map)==null||i.off("movestart",this.handlePause),(n=(l=this.viewport)==null?void 0:l.map)==null||n.off("moveend",this.handlePlay),this.handlePause()},handleClear(){var t;(t=this.viewport)==null||t.toggle(!1),this.context=void 0,this.etime=void 0,this.handleClearParticle()}}},Os={key:0};function Zs(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Os,[o.createElementVNode("div",{class:"legend-bars-gl4 current",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"kts",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.4",-1),o.createElementVNode("span",null,"0.8",-1),o.createElementVNode("span",null,"1.6",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3.2",-1)]),4)])):o.createCommentVNode("",!0)}const js=X(Ws,[["render",Zs]]),Cy="",Hs={name:"IdmSigWave",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[sig-wave] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Xs={key:0};function Ys(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Xs,[o.createElementVNode("div",{class:"legend-bars-gl4 sig-wave",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"6",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const Us=X(Hs,[["render",Ys],["__scopeId","data-v-b562523c"]]),$s={name:"IdmSigWaveHeight",props:{map:{type:Object},sigWaveHeight:{type:Object},beforeLayer:{type:String},menuToggle:{type:Object}},data(){return{right:10,toggle:!1,showCaption:!1,source:"sig-wave-height-source",heightLayer:"sig-wave-height-layer",heightLabelLayer:"sig-wave-height-label-layer",empty:D.featureCollection([])}},watch:{"sigWaveHeight.version":{handler(){var t;(t=this.sigWaveHeight)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleMenuToggle(){this.toggle=!this.toggle,this.showCaption=!this.showCaption},handleRender(){var t,e;if(this.sigWaveHeight){const a=new Date().valueOf();let r=0,i=0,l=this.empty;this.sigWaveHeight.active&&(l=this.sigWaveHeight.data),(t=this.map)!=null&&t.getSource(this.source)?((e=this.map)==null||e.getSource(this.source).setData(l),i=new Date().valueOf()-(a+r),console.log("[sig-wave-height] update elapsed: ",i,", total: ",r+=i)):(this.map.addSource(this.source,{type:"geojson",data:l}),this.map.addLayer({id:this.heightLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-opacity":.8,"fill-color":["step",["get","val"],"rgba(0,235,156,0)",2,"rgba(0,235,156,0.4)",3,"#ffed00",4,"#ff9800",5,"#f77800",6,"#e4711e",7,"#e06128",8,"#dc5132",9,"#d5453c",10,"#cd3a46",12,"#be2c50",14,"#b41a5a"]}},this.beforeLayer),this.map.addLayer({id:this.heightLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","symbol-spacing":100,"text-field":["format",["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":10},paint:{"text-color":["step",["get","val"],"rgba(0, 0, 0, 0.7)",9,"rgba(255,255,255,0.8)"]}},this.beforeLayer),i=new Date().valueOf()-(a+r),console.log("[sig-wave-height] add elapsed: ",i,", total: ",r+=i))}},handleClear(){this.map.getLayer(this.heightLayer)&&this.map.removeLayer(this.heightLayer),this.map.getLayer(this.heightLabelLayer)&&this.map.removeLayer(this.heightLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Js(t,e,a,r,i,l){return null}const Ks=X($s,[["render",Js]]),vy="",qs={name:"IdmSwell",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[sig-wave] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Qs={key:0};function ec(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Qs,[o.createElementVNode("div",{class:"legend-bars-gl4 swell",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"6",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const tc=X(qs,[["render",ec],["__scopeId","data-v-7ee2face"]]),oc={name:"IdmPrmsl",props:{map:{type:Object},prmsl:{type:Object},beforeLayer:{type:String},showRampColor:{type:Boolean},activeWeatherLayers:{type:Array},theme:{type:String}},data(){return{right:10,toggle:!1,source:"prmsl-source",layer:"prmsl-layer",labelLayer:"prmsl-label-layer",pointLabelLayer:"prmsl-point-label-layer",empty:D.featureCollection([])}},watch:{"prmsl.version":{handler(){var t;(t=this.prmsl)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleMenuToggle(){this.toggle=!this.toggle},handleRender(){var t,e,a;if(this.prmsl){const r=new Date().valueOf();let i=0,l=0,n=this.empty;this.prmsl.active&&(n=this.prmsl.data),(t=this.map)!=null&&t.getSource(this.source)?((e=this.map)==null||e.getSource(this.source).setData(n),l=new Date().valueOf()-(r+i),console.log("[prmsl] update elapsed: ",l,", total: ",i+=l)):(this.map.addSource(this.source,{type:"geojson",data:n}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],paint:{"line-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"line-width":1,"line-opacity":this.theme==="light"?1:.3}},this.beforeLayer),(a=this.map)==null||a.addLayer({id:this.labelLayer,type:"symbol",source:this.source,minzoom:4,filter:["==","$type","LineString"],layout:{"symbol-placement":"line","text-rotation-alignment":"viewport","text-field":"{val}","text-size":10},paint:{"text-color":"black","text-halo-color":"rgba(255,255,255,1)","text-opacity":.7,"text-halo-width":1}},this.beforeLayer),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-allow-overlap":!0,"text-field":["format",["get","type"],{"font-scale":1.03},`
203
- `,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},paint:{"text-color":this.theme==="light"?["step",["get","val"],"rgba(0, 0, 0, 0.5)",920,"rgba(0, 0, 0, 0.5)",980,"rgba(0, 0, 0, 0.7)",1100,"rgba(0, 0, 0, 0.7)"]:"rgba(0,0,0,1)","text-halo-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-width":1}},this.beforeLayer),l=new Date().valueOf()-(r+i),console.log("[prmsl] add elapsed: ",l,", total: ",i+=l))}},handleClear(){this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function ac(t,e,a,r,i,l){return null}const ic=X(oc,[["render",ac]]),Sy="",rc={name:"IdmIceEdge",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[ice-edge] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(86, 169, 230, 0)"],[1/255,"rgba(86, 169, 230, 0)"],[25/255,"rgba(86, 169, 230, 1)"],[25/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 84, 39, 1)"],[250/255,"rgba(230, 84, 39, 1)"],[1,"rgba(230, 84, 39, 1)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},lc={key:0};function nc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",lc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-edge",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",{style:{color:"rgba(var(--v-theme-black), 0.7)"}},"%",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"70",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"90",-1),o.createElementVNode("span",null,null,-1)]),4)])):o.createCommentVNode("",!0)}const sc=X(rc,[["render",nc]]),Ny="",cc={name:"IdmCover",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[ice-cover] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(68, 1, 84, 0)"],[1/255,"rgba(63, 72, 137, 0)"],[50/255,"rgba(53, 125, 177, 1)"],[100/255,"rgba(33, 145, 140, 1)"],[150/255,"rgba(45, 178, 125, 1)"],[200/255,"rgba(112, 207, 87, 1)"],[250/255,"rgba(253, 231, 37, 0.8)"],[1,"rgba(253, 231, 37, 1)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},mc={key:0};function dc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",mc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-cover",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"%",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,"60",-1),o.createElementVNode("span",null,"80",-1),o.createElementVNode("span",null,"100",-1)]),4)])):o.createCommentVNode("",!0)}const hc=X(cc,[["render",dc],["__scopeId","data-v-3d1a7675"]]),Vy="",pc={name:"IdmThickness",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[ice-thickness] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(4, 6, 19, 0)"],[1/255,"rgba(4, 6, 19, 0)"],[20/255,"rgba(51, 50, 102, 1)"],[40/255,"rgba(63, 82, 158, 1)"],[50/255,"rgba(66, 123, 183, 1)"],[60/255,"rgba(92, 161, 197, 1)"],[80/255,"rgba(134, 199, 212, 0.7)"],[100/255,"rgba(134, 199, 212, 1)"],[150/255,"rgba(234, 253, 2536, 0.8)"],[250/255,"rgba(234, 253, 2536, 0.9)"],[1,"rgba(234, 253, 2536, 1)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},gc={key:0};function uc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",gc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-thickness",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.6",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1)]),4)])):o.createCommentVNode("",!0)}const fc=X(pc,[["render",uc]]),Py="",yc={name:"IdmPrecip3h",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},deeimmediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[precip3h] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(59, 126, 162, 0)"],[14/255,"rgba(84,170,230, 0)"],[15/255,"rgba(172, 210, 255, 0.8)"],[20/255,"rgba(51,202,248,0.8)"],[30/255,"rgba(3,248,103,0.8)"],[49/255,"rgba(14,201,3,0.8)"],[57/255,"rgba(190,226,2,0.8)"],[73/255,"rgba(248,1,1,0.8)"],[82/255,"rgba(197,5,58,0.8)"],[1,"rgba(197,5,58,0.8)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},bc={key:0};function wc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",bc,[o.createElementVNode("div",{class:"legend-bars-gl4 precip3h",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"mm",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"7",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1)]),4)])):o.createCommentVNode("",!0)}const xc=X(yc,[["render",wc]]),My="",kc={name:"IdmVisibility",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{right:10,program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[visibility] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(189,50,160,0.8)"],[8/255,"rgba(208,56,56,0.8)"],[27/255,"rgba(190,226,2,0.8)"],[60/255,"rgba(3,236,118,0.8)"],[160/255,"rgba(172, 210,255,0.8)"],[161/255,"rgba(172, 210,255,0)"],[1,"rgba(144,144,144,0)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},_c={key:0};function Lc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",_c,[o.createElementVNode("div",{class:"legend-bars-gl4 visibility",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"nm",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const zc=X(kc,[["render",Lc]]),Ty="",Cc={name:"IdmWaterTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[water-temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(95, 143, 197)"],[46/255,"rgba(95, 143, 197)"],[69/255,"rgb(80, 140, 62)"],[92/255,"rgb(121, 146, 28)"],[115/255,"rgb(171, 161, 14)"],[138/255,"rgb(223, 177, 69)"],[161/255,"rgb(243, 150, 6)"],[184/255,"rgb(236, 95, 21)"],[207/255,"rgb(190, 65, 18)"],[230/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},vc={key:0};function Sc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",vc,[o.createElementVNode("div",{class:"legend-bars-gl4 water-temp",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Nc=X(Cc,[["render",Sc]]),Ey="",Vc={name:"IdmTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgb(149, 137, 211)"],[100/255,"rgb(149, 137, 211)"],[110/255,"rgb(150, 209, 216)"],[120/255,"rgb(129, 204, 197)"],[130/255,"rgb(103, 180, 186)"],[140/255,"rgb(95, 143, 197)"],[150/255,"rgb(80, 140, 62)"],[160/255,"rgb(121, 146, 28)"],[170/255,"rgb(171, 161, 14)"],[180/255,"rgb(223, 177, 6)"],[190/255,"rgb(243, 150, 6)"],[200/255,"rgb(236, 95, 21)"],[210/255,"rgb(190, 65, 18)"],[220/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Pc={key:0};function Mc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Pc,[o.createElementVNode("div",{class:"legend-bars-gl4 temp",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"-20",-1),o.createElementVNode("span",null,"-10",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Tc=X(Vc,[["render",Mc]]),Dy="",Ec={name:"IdmGlLayer",components:{IdmWindBarb:Es,IdmWindParticle:Is,IdmCurrentDirection:Gs,IdmCurrentParticle:js,IdmWave:Us,IdmSigWaveHeight:Ks,IdmSwell:tc,IdmPrmsl:ic,IdmIceEdge:sc,IdmIceCover:hc,IdmIceThickness:fc,IdmPrecip3h:xc,IdmVisibility:zc,IdmWaterTemp:Nc,IdmTemp:Tc},props:{simple:{type:Boolean,default:!1},isLogin:{type:Boolean,default:!1},theme:{type:String},map:{type:Object},mapFeather:{type:String},gateway:{type:String},assistGateway:{type:Array,default:[]},defaultMeteoToken:{type:String},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},realTime:{type:String},forecastModel:{type:String},beforeLayer:{type:String}},emits:["forecastModel","menuToggle","weatherCheckList","autoActive","weatherRendered"],data(){return{right:10,toggle:!1,autoActive:!0,weatherWeight:0,allLayers:[...je.LayerHelper.WEATHER_LAYERS],tagLayers:[...je.LayerHelper.WEATHER_LAYERS.filter(t=>!t.hide)],checkList:[],renderKey:"",iceToggleValue:void 0,waveToggleValue:void 0,weatherLayers:{},activeWeatherLayers:[],cache:{v:"0.0.1",versionKey:"weatherLayerCacheVersionGL4",autoActiveKey:"autoActiveCacheGL4",checkListKey:"weatherCheckListCacheGL4"},models:{},currentModel:localStorage.getItem("forecastModelCacheGL4")==="GFS"?"GFS":"ECMWF",zoom:6,viewport:void 0,particleFactor:void 0,showWindParticle:!0,showCurrentParticle:!0,legendToggle:!1,legend:{barbs:[2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,0],current:[{label:"0-0.5 kts",size:.3,color:"rgb(58, 164, 58)"},{label:"0.5-1 kts",size:.4,color:"#ffff00"},{label:"1-1.5 kts",size:.6,color:"#ff9500"},{label:"1.5-2 kts",size:.8,color:"#f44336"},{label:">= 2 kts",size:1,color:"#e4711e"}],sigWaveHeight:[{label:"< 2 m",color:"rgba(0,235,156,0)"},{label:"2-3 m",color:"rgba(0,235,156,0.4)"},{label:"3-4 m",color:"#ffed00"},{label:"4-5 m",color:"#ff9800"},{label:"5-6 m",color:"#f77800"},{label:"6-7 m",color:"#e4711e"},{label:"7-8 m",color:"#e06128"},{label:"8-9 m",color:"#dc5132"},{label:"9-10 m",color:"#d5453c"},{label:"10-12 m",color:"#cd3a46"},{label:"12-14 m",color:"#be2c50"},{label:"> 14 m",color:"#aa1a5a"}]}}},computed:{listStyle(){return this.simple?{top:this.top+"px",left:this.toggle?"0px":"-280px"}:{top:this.top+"px",right:this.toggle?"0px":"-280px"}},computeDateZ(){return function(t){var e;if(t){const a=S(t);return`${(e=a==null?void 0:a.utc())==null?void 0:e.format("MMM-DD/HHmm")}Z`}return"-"}},computeDateUpdate(){return function(t){return t?S(t).fromNow():"-"}},overlaysKeys(){return this.tagLayers.filter(t=>t.overlays).map(t=>t.key)},rendersKeys(){return this.allLayers.filter(t=>!t.overlays&&t.enabled).map(t=>t.key)},showTipMenu(){return this.checkList.includes("wind")||this.checkList.includes("current-direction")||this.checkList.includes("sig-wave-height")},barbsIconName(){var e,a,r;const t=[];for(let i=0;i<((a=(e=this.legend)==null?void 0:e.barbs)==null?void 0:a.length);i++){const l=((r=this.legend)==null?void 0:r.barbs[i])||0,n=l<10?`00${l}kts`:l<100?`0${l}kts`:`${l}kts`;t.push("icon-a-"+n)}return t}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.weatherLayers,this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})}},currentModel:{handler(t,e){this.$emit("forecastModel",t),localStorage.setItem("forecastModelCacheGL4",t)},immediate:!0},forecastModel:{handler(t,e){t&&t!==e&&this.handleWeatherLayerChange({sourceChanged:!0})}},map:{handler(){this.map&&(this.fetchCache(),this.map.on("move",this.handleMove4Weather),this.viewport=new To(this.map),this.handleRampColorInitial())},immediate:!0},realTime:{handler(t,e){t&&e&&S(t).utc().format("yyyy-MM-DD HH")!==S(e).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.fetchWeatherLayers()})},immediate:!0},renderKey:{handler(t,e){if(t&&t!==e){const a=this.checkList.filter(r=>!this.rendersKeys.some(i=>i===r));t==="wave-group"?(this.waveToggleValue=this.waveToggleValue||"sig-wave",this.checkList=[...a,"wave-group",this.waveToggleValue]):t==="ice-forecast"?(this.iceToggleValue=this.iceToggleValue||"ice-cover",this.checkList=[...a,"ice-forecast",this.iceToggleValue||"ice-cover"]):this.checkList=[...a,t]}else!t&&e&&(this.checkList=this.checkList.filter(a=>a!==e))}},checkList:{handler(t,e){var a,r,i,l,n,c;this.handleCheckListChange(t,e),this.$emit("weatherCheckList",t),this.autoActive&&this.checkList.length?(i=(r=(a=this.$parent)==null?void 0:a.$refs)==null?void 0:r.idmBottomBar)==null||i.handleToggle("weather",!0):(c=(n=(l=this.$parent)==null?void 0:l.$refs)==null?void 0:n.idmBottomBar)==null||c.handleToggle("weather",!1)}},autoActive:{handler(t){var e,a,r,i,l,n;localStorage.setItem(this.cache.autoActiveKey,this.autoActive),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(c=>this.checkList.includes(c.key)):[],this.handleWeatherLayerChange(),this.autoActive&&this.checkList.length?(r=(a=(e=this.$parent)==null?void 0:e.$refs)==null?void 0:a.idmBottomBar)==null||r.handleToggle("weather",!0):(n=(l=(i=this.$parent)==null?void 0:i.$refs)==null?void 0:l.idmBottomBar)==null||n.handleToggle("weather",!1),this.$emit("autoActive",this.autoActive)}},iceToggleValue:{handler(t){if(t){const e=this.checkList.filter(a=>!this.rendersKeys.some(r=>r===a));this.checkList=[...e,"ice-forecast",this.iceToggleValue]}}},waveToggleValue:{handler(t){if(t){const e=this.checkList.filter(a=>!this.rendersKeys.some(r=>r===a));this.checkList=[...e,"wave-group",this.waveToggleValue]}}},showWindParticle:{handler(t){let e="wind-particle";this.weatherLayers[e].particle=t,this.weatherLayers[e].version=Math.random()+1}},showCurrentParticle:{handler(t){let e="current-particle";this.weatherLayers[e].particle=t,this.weatherLayers[e].version=Math.random()+1}},isLogin:{handler(t){t?this.fetchModels():this.models={}},immediate:!0}},mounted(){this.fetchModels()},methods:{arraysEqual(t,e){if((t==null?void 0:t.length)!==(e==null?void 0:e.length))return!1;for(let a=0;a<(t==null?void 0:t.length);a++)if((t==null?void 0:t[a])!==(e==null?void 0:e[a]))return!1;return!0},fetchCache(){var a,r;const t=localStorage.getItem(this.cache.versionKey);this.cache.v!==t&&(localStorage.removeItem(this.cache.autoActiveKey),localStorage.removeItem(this.cache.checkListKey),localStorage.setItem(this.cache.versionKey,this.cache.v));let e=localStorage.getItem(this.cache.autoActiveKey);this.autoActive=e!=="false",localStorage.setItem(this.cache.autoActiveKey,this.autoActive),e=localStorage.getItem(this.cache.checkListKey),this.waveToggleValue=(a=JSON.parse(e))!=null&&a.some(i=>i==="swell")?"swell":void 0,this.iceToggleValue=(r=JSON.parse(e))!=null&&r.some(i=>i==="ice-thickness")?"ice-thickness":void 0,this.checkList=JSON.parse(e||JSON.stringify(["wind","sig-wave-height"])),this.checkList.find(i=>this.rendersKeys.includes(i))&&(this.renderKey=this.checkList.find(i=>this.rendersKeys.includes(i))),localStorage.setItem(this.cache.checkListKey,JSON.stringify(this.checkList))},handleMenuToggle(){this.$emit("menuToggle","weatherLayers")},handleFastWeatherToggle(t){let e=[];this.checkList.includes(t)?e=this.checkList.filter(a=>a!==t):e=[...this.checkList,t],this.handleCheckListChange(e,this.checkList)},handleCheckListChange(t,e){if(this.arraysEqual(t,e))return!1;const a=[...new Set(t)],r=a==null?void 0:a.filter(n=>!(e!=null&&e.includes(n)))[0],i=e==null?void 0:e.filter(n=>!(a!=null&&a.includes(n)))[0],l=this.checkList.filter(n=>!this.rendersKeys.some(c=>c===n));r&&(r==="ice-cover"||r==="ice-thickness"||r==="ice-forecast"?(this.checkList=[...l,"ice-forecast",this.iceToggleValue||"ice-cover"],this.iceToggleValue=this.iceToggleValue||"ice-cover"):r==="sig-wave"||r==="swell"||r==="wave-group"?(this.checkList=[...l,"wave-group",this.waveToggleValue||"sig-wave"],this.waveToggleValue=this.waveToggleValue||"sig-wave"):this.rendersKeys.includes(r)&&(this.checkList=[...l,r])),i&&(i==="ice-forecast"?(this.checkList=a.filter(n=>!["ice-cover","ice-thickness","ice-forecast"].includes(n)),this.iceToggleValue=void 0):i==="wave-group"?(this.checkList=a.filter(n=>!["wave-group","sig-wave","swell"].includes(n)),this.waveToggleValue=void 0):this.checkList=a),this.checkList.includes("wind-particle")&&(this.showWindParticle=!0),this.checkList.includes("current-particle")&&(this.showCurrentParticle=!0),localStorage.setItem(this.cache.checkListKey,JSON.stringify(a)),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(n=>a.includes(n.key)):[],this.handleWeatherLayerChange()},async fetchModels(){this.models={};const t=await le.get(`${this.gateway}/api/arc/meteo2/models2`,{headers:{Authorization:this.defaultMeteoToken}});(t==null?void 0:t.data.code)===0&&(this.models=t==null?void 0:t.data.data)},async fetchWeatherLayers(t={}){var i,l,n,c,s,d,m,p,g;const e=new Date().valueOf();let a=0,r=0;if(this.map){const y=((i=this.map)==null?void 0:i.getZoom())+1,u=(l=this.map)==null?void 0:l.getBounds(),h=`${u._sw.lng},${u._sw.lat},${u._ne.lng},${u._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const f=je.LayerHelper.WEATHER_LAYERS.find(k=>{var w;return((w=k.peer)==null?void 0:w.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&f.weight?this.weatherWeight:this.weatherWeight+f.weight:this.weatherWeight=this.weatherWeight&f.weight?this.weatherWeight-f.weight:this.weatherWeight}if(this.weatherWeight>0){let f=this.weatherWeight;if(f>0){const k=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],w=await le.get(`${k}/api/arc/weather/layers2/links?l=${f}&v=${this.forecastModel}&z=${y}&bbox=${h}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(r=new Date().valueOf()-(e+a),console.log("weather links elapsed: ",r,", total: ",a+=r),((c=w==null?void 0:w.data)==null?void 0:c.code)===0){const b=(s=w==null?void 0:w.data)==null?void 0:s.data,x=[];for(const L in b)x.push(le.get(b[L],{headers:{Authorization:this.defaultMeteoToken,key:L},responseType:/\.(jpg|png)$/.test(b[L])?"blob":"json"}).catch(z=>{console.log(`[${L}] fetch layer error: ${z}`)}));const C=await Promise.all(x);this.weatherLayers={},C.map(L=>{var M,T,E,I;const z=((M=L==null?void 0:L.data)==null?void 0:M.data)||(L==null?void 0:L.data);let v=(E=(T=L==null?void 0:L.config)==null?void 0:T.headers)==null?void 0:E.key;v&&z&&(this.weatherLayers[v]={raw:z,type:((I=L==null?void 0:L.config)==null?void 0:I.responseType)==="blob"?"image":"json",etime:w.data.etime})})}if(r=new Date().valueOf()-(e+a),console.log("weather layers elapsed: ",r,", total: ",a+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const b=(d=this.weatherLayers["swell-direction"])==null?void 0:d.raw,x=(m=this.weatherLayers["swell-height"])==null?void 0:m.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:b,height:{raw:x},etime:w.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const b=(p=this.weatherLayers["current-direction"])==null?void 0:p.raw,x=(g=this.weatherLayers["current-speed"])==null?void 0:g.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:b,speed:{raw:x},etime:w.data.etime}}}}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json(),this.$nextTick(()=>{var f,k,w,b,x;(x=(b=(w=(k=(f=this.$parent)==null?void 0:f.$refs)==null?void 0:k.idmBottomBar)==null?void 0:w.$refs)==null?void 0:b.capture)==null||x.captureCurrentFrame()})}},handleWeatherLayerToggle(){for(const t in this.weatherLayers)this.weatherLayers[t].active=!1,this.weatherLayers[t].version=Math.random()+1;for(const t of this.activeWeatherLayers){let e=t.key;e==="current-direction"&&(e="current"),this.weatherLayers[e]&&(this.weatherLayers[e].active=!0,this.weatherLayers[e].version=Math.random()+1,e==="wind-particle"&&(this.weatherLayers[e].particle=this.showWindParticle),e==="current-particle"&&(this.weatherLayers[e].particle=this.showCurrentParticle))}},handleWeatherLayerChange(t={sourceChanged:!1}){var a;const e=(a=this.activeWeatherLayers)==null?void 0:a.reduce((r,i)=>r+(r&(i==null?void 0:i.weight)?0:i==null?void 0:i.weight),0);t!=null&&t.sourceChanged||this.weatherWeight!==e?(this.weatherWeight=e,this.fetchWeatherLayers()):this.handleWeatherLayerToggle()},handleRampColorInitial(){var t,e,a,r,i,l,n,c,s,d,m,p;this.viewport.map.getSource((t=this.viewport)==null?void 0:t.rampColorSource)||this.viewport.map.addSource((e=this.viewport)==null?void 0:e.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(i=this.viewport)==null?void 0:i.rampColorLayer,source:(l=this.viewport)==null?void 0:l.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((c=this.viewport)==null?void 0:c.particleSource,{type:"canvas",canvas:(s=this.viewport)==null?void 0:s.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((d=this.viewport)==null?void 0:d.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(m=this.viewport)==null?void 0:m.particleLayer,source:(p=this.viewport)==null?void 0:p.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var l,n,c,s,d,m,p;const t=new Date().valueOf();let e=0,a=0;const r=(l=this.map)==null?void 0:l.getBounds(),i=(n=this.map)==null?void 0:n.getZoom();if(r&&i){const g=P.LngLatHelper.convertToStdLng(r._sw.lng),y=P.LngLatHelper.convertToStdLng(r._ne.lng),u=Math.floor(r._sw.lat),h=Math.ceil(r._ne.lat);for(const f in this.weatherLayers){let k=!1;if(this.weatherLayers[f].active&&this.weatherLayers[f].type==="json"){let w=[];if(f==="swell"){k=!0;const b=((c=this.weatherLayers[f])==null?void 0:c.direction)||{};for(const C in b)if(C>u&&C<h&&(!(i<=this.zoom)||C%(i<2?10:i<4?5:3)===0)){const L=b[C].lng;g>y?L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if((z>=g&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}}):L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(g<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if(z>=g&&z<=y&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}})}a=new Date().valueOf()-(t+e),console.log("swell direction elapsed: ",a,", total: ",e+=a);const x=this.weatherLayers[f].height;if(x){if(!x.data){const C=[];for(const L in(s=x.raw)==null?void 0:s.LineString){const z=x.raw.LineString[L];for(const v of z)C.push(D.lineString(v,{val:Number(L)}));x.data=D.featureCollection(C)}}if(x.data){const C=this.handleBboxClip(x.data,r);w=w.concat(C)}a=new Date().valueOf()-(t+e),console.log("swell height elapsed: ",a,", total: ",e+=a)}}else if(f==="current"){k=!0;const b=((d=this.weatherLayers[f])==null?void 0:d.direction)||{};for(const C in b)if(C>u&&C<h&&(!(i<=this.zoom)||C%(i<2?10:i<4?5:3)===0)){const L=b[C].lng;g>y?L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if((z>=g&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}}):L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(g<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if(z>=g&&z<=y&&(!(i<=this.zoom)||z%(i<this.zoom/2?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}})}a=new Date().valueOf()-(t+e),console.log("current direction elapsed: ",a,", total: ",e+=a);const x=this.weatherLayers[f].speed;if(x){if(!x.data){const L=[];for(const z in(m=x.raw)==null?void 0:m.Polygon){const v=x.raw.Polygon[z];for(const M of v)L.push(D.polygon(M,{val:Number(z)}))}x.data=D.featureCollection(L)}const C=i<this.zoom?x.data.features.filter(L=>L.properties.val>.5):x.data.features;w=w.concat(C),a=new Date().valueOf()-(t+e),console.log("current speed elapsed: ",a,", total: ",e+=a)}}else if(f==="wind"){k=!0;const b=this.weatherLayers.wind.raw;for(const x in b)if(x>u&&x<h&&(!(i<=this.zoom)||x%(i<2?10:i<4?5:3)===0)){const C=b[x].lng;g>y?C.forEach((L,z)=>{var v,M,T,E;if(i<2){if((L>=0&&L<=360||L>=-360&&L<=0)&&L%10===0){const I=D.point([L,x],{dir:((v=b[x].val)==null?void 0:v[z])||((M=b[x].dir)==null?void 0:M[z]),spd:b[x].spd[z]});w.push(I)}}else if((L>=g&&L<=180||L>=-180&&L<=y)&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const I=D.point([L,x],{dir:((T=b[x].val)==null?void 0:T[z])||((E=b[x].dir)==null?void 0:E[z]),spd:b[x].spd[z]});w.push(I)}}):C.forEach((L,z)=>{var v,M,T,E;if(i<2){if((L>=0&&L<=360||L>=-360&&L<=0)&&L%10===0){const I=D.point([L,x],{dir:((v=b[x].val)==null?void 0:v[z])||((M=b[x].dir)==null?void 0:M[z]),spd:b[x].spd[z]});w.push(I)}}else if(L>=g&&L<=y&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const I=D.point([L,x],{dir:((T=b[x].val)==null?void 0:T[z])||((E=b[x].dir)==null?void 0:E[z]),spd:b[x].spd[z]});w.push(I)}})}a=new Date().valueOf()-(t+e),console.log("wind barb elapsed: ",a,", total: ",e+=a)}else if(f==="sig-wave-height"){if(this.weatherLayers[f].data)w=this.weatherLayers[f].data;else{k=!0;const b=this.weatherLayers[f].raw;if(b){const x=[];for(const C in b.Polygon){const L=b.Polygon[C];for(const z of L)x.push(D.polygon(z,{val:Number(C)}))}for(const C in b.MultiPolygon){const L=b.MultiPolygon[C];for(const z of L)x.push(D.multiPolygon(z,{val:Number(C)}))}for(const C in b.Point){const L=b.Point[C];for(let z=0;z<((p=L.lng)==null?void 0:p.length);z++)x.push(D.point([L.lng[z],C],{val:Number(L.val[z])}))}w=w.concat(x)}}a=new Date().valueOf()-(t+e),console.log("sig-wave-height elapsed: ",a,", total: ",e+=a)}else if(f==="prmsl"){if(this.weatherLayers[f].data)w=this.weatherLayers[f].data;else{k=!0;const b=this.weatherLayers[f].raw;if(b){const x=[];for(const C in b.LineString){const L=b.LineString[C];for(const z of L)x.push(D.lineString(z,{val:Number(C)}))}for(const C in b.Point)b.Point[C].lng.forEach((L,z)=>{L=P.LngLatHelper.convertToStdLng(L),x.push(D.point([L,C],{val:b.Point[C].val[z],type:b.Point[C].type[z]}))});w=w.concat(x)}}a=new Date().valueOf()-(t+e),console.log("prmsl elapsed: ",a,", total: ",e+=a)}w.length&&(this.weatherLayers[f].data=D.featureCollection(w)),k&&(this.weatherLayers[f].version=Math.random()+1)}}}},handleMove4Weather(){for(const t in this.weatherLayers)this.weatherLayers[t].active&&this.weatherLayers[t].type==="image"&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1);this.handleDrawWeather4Json()},handleBboxClip(t,e){const a=[],r=P.LngLatHelper.convertToStdLng(e._sw.lng),i=P.LngLatHelper.convertToStdLng(e._ne.lng);return t.features.forEach(l=>{if(l.geometry.type!=="Point")if(r>i){let n=[r,e._sw.lat,180,e._ne.lat],c=D.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c),n=[-180,e._sw.lat,i,e._ne.lat],c=D.bboxClip(l,n),c.geometry.coordinates.length&&a.push(c)}else{const n=[r,e._sw.lat,i,e._ne.lat],c=D.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c)}else a.push(l)}),a}}},Dc={class:"idm-gl4-meteo-layers"},Rc={key:0,class:"legend-tip-btn-gl4"},Bc={class:"d-flex flex-row justify-center align-center"},Ic={class:"text-caption"},Ac={class:"d-flex flex-row justify-center align-center"},Fc={key:0,style:{width:"24px",height:"12px",border:"1px solid rgba(var(--v-border-color), var(--v-border-opacity))"}},Gc={class:"text-caption px-2"},Wc={class:"d-flex flex-row justify-start align-center"},Oc={class:"d-flex flex-row justify-center align-center",style:{width:"40px"}},Zc={class:"text-caption"},jc={class:"d-flex justify-start align-center ga-3"},Hc={class:"text-h5 font-weight-medium"},Xc={key:0,class:"w-100 d-flex justify-space-between align-center ga-1 mb-2 px-3"},Yc={key:0,class:"d-flex justify-start align-center ga-4 pl-6"},Uc={key:1,class:"d-flex justify-start align-center ga-4 pl-6"},$c={class:"text-body-1 py-2"},Jc={class:"text-body-1 font-weight-medium"},Kc={class:"text-body-2 text-label"},qc={class:"text-body-2 text-label"},Qc={class:"text-body-2 text-label mb-3"},em={class:"text-body-1 font-weight-medium"},tm={class:"text-body-2 text-label"},om={class:"text-body-2 text-label"},am={class:"text-body-2 text-label mb-3"},im={class:"text-body-1 py-2"},rm={class:"text-body-1 font-weight-medium"},lm={class:"text-body-2 text-label"},nm={class:"text-body-2 text-label"},sm={class:"text-body-2 text-label mb-3"},cm={class:"text-body-1 font-weight-medium"},mm={class:"text-body-2 text-label"},dm={class:"text-body-2 text-label"},hm={class:"text-body-2 text-label mb-3"},pm={class:"text-body-1 py-2"},gm={class:"text-body-1 font-weight-medium"},um={class:"text-body-2 text-label"},fm={class:"text-body-2 text-label"},ym={class:"text-body-2 text-label mb-3"};function bm(t,e,a,r,i,l){var G,W,U,A,B,j,N,q,re,he,ge,ee,se,pe,xe;const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip"),s=o.resolveComponent("VCol"),d=o.resolveComponent("VRow"),m=o.resolveComponent("VCardText"),p=o.resolveComponent("VDivider"),g=o.resolveComponent("VCard"),y=o.resolveComponent("VSwitch"),u=o.resolveComponent("VBtnToggle"),h=o.resolveComponent("VCardTitle"),f=o.resolveComponent("VCardItem"),k=o.resolveComponent("VCheckbox"),w=o.resolveComponent("VRadio"),b=o.resolveComponent("IdmWindBarb"),x=o.resolveComponent("IdmSigWaveHeight"),C=o.resolveComponent("IdmCurrentDirection"),L=o.resolveComponent("IdmPrmsl"),z=o.resolveComponent("IdmWindParticle"),v=o.resolveComponent("IdmCurrentParticle"),M=o.resolveComponent("IdmWave"),T=o.resolveComponent("IdmSwell"),E=o.resolveComponent("IdmIceEdge"),I=o.resolveComponent("IdmIceCover"),Z=o.resolveComponent("IdmIceThickness"),Y=o.resolveComponent("IdmPrecip3h"),$=o.resolveComponent("IdmVisibility"),ae=o.resolveComponent("IdmWaterTemp"),V=o.resolveComponent("IdmTemp");return o.openBlock(),o.createElementBlock("div",Dc,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+46+"px",right:i.right+"px"})},[o.createVNode(c,{text:t.$t("weather.weatherLayers"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:O})=>[o.createVNode(n,o.mergeProps(O,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>e[9]||(e[9]=[o.createElementVNode("i",{class:"iconfont icon-Weather text-h4"},null,-1)])),_:2,__:[9]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4),l.showTipMenu?(o.openBlock(),o.createElementBlock("div",Rc,[o.createElementVNode("div",{class:o.normalizeClass(["menu-bar-box pa-1 rounded",a.simple?"simple":""]),style:o.normalizeStyle({right:i.right+"px",top:a.simple?"394px":"490px"})},[o.createVNode(c,{text:t.$t("weather.legend"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:O})=>[o.createVNode(n,o.mergeProps(O,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.legendToggle?"bg-primary active-border":""],onClick:e[0]||(e[0]=te=>i.legendToggle=!i.legendToggle)}),{default:o.withCtx(()=>e[10]||(e[10]=[o.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[10]},1040,["class"])]),_:1},8,["text","open-on-focus","open-on-hover"])],6),i.legendToggle?(o.openBlock(),o.createBlock(g,{key:0,elevation:"16",class:"card-info d-flex justify-center align-start",style:o.normalizeStyle({position:"absolute",top:a.simple?"200px":"340px",right:i.right+50+"px"})},{default:o.withCtx(()=>[o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"110px"}},{default:o.withCtx(()=>[e[11]||(e[11]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wind Level",-1)),o.createVNode(d,{class:"ma-0 ml-n1 text-body-2"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.barbs,(O,te)=>(o.openBlock(),o.createBlock(s,{key:O,cols:"6",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Bc,[o.createElementVNode("i",{class:o.normalizeClass(["iconfont",l.barbsIconName[te]]),style:o.normalizeStyle({color:a.theme==="dark"?"#fff":"#000"})},null,6),o.createElementVNode("span",Ic,o.toDisplayString(Number(O)<10?`00${O}kts`:Number(O)<100?`0${O}kts`:`${O}kts`),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[11]}),o.createVNode(p,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"100px"}},{default:o.withCtx(()=>[e[12]||(e[12]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wave Height",-1)),o.createVNode(d,{class:"ma-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.sigWaveHeight,(O,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Ac,[te===0?(o.openBlock(),o.createElementBlock("div",Fc)):(o.openBlock(),o.createElementBlock("div",{key:1,style:o.normalizeStyle({width:"24px",height:"12px",background:O.color})},null,4)),o.createElementVNode("div",Gc,o.toDisplayString(O.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[12]}),o.createVNode(p,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"90px"}},{default:o.withCtx(()=>[e[13]||(e[13]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Current",-1)),o.createVNode(d,{class:"ma-0 ml-n4"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.current,(O,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-center align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Wc,[o.createElementVNode("div",Oc,[o.createElementVNode("i",{class:"iconfont icon-a-direction-arrow text-label",style:o.normalizeStyle({fontSize:40*O.size+"px"})},null,4)]),o.createElementVNode("div",Zc,o.toDisplayString(O.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[13]})]),_:1},8,["style"])):o.createCommentVNode("",!0)])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["available-layers transition d-flex flex-column justify-start align-start",i.toggle?"right-bar":""]),style:o.normalizeStyle(l.listStyle)},[o.createElementVNode("div",{class:o.normalizeClass(["header-box w-100 d-flex justify-space-between align-center",a.simple?"px-3":"px-4"])},[o.createElementVNode("div",jc,[o.createElementVNode("div",Hc,o.toDisplayString(t.$t("weather.weather")),1),o.createVNode(y,{modelValue:i.autoActive,"onUpdate:modelValue":e[1]||(e[1]=O=>i.autoActive=O),class:"small-switch",color:"primary","base-color":"disabled",inset:"","hide-details":""},null,8,["modelValue"])]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleMenuToggle},{default:o.withCtx(()=>e[14]||(e[14]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[14]},8,["onClick"])],2),a.simple?(o.openBlock(),o.createElementBlock("div",Xc,[o.createElementVNode("div",null,o.toDisplayString(t.$t("weather.forecastModel")),1),o.createVNode(u,{modelValue:i.currentModel,"onUpdate:modelValue":e[2]||(e[2]=O=>i.currentModel=O),rounded:"",height:"28",density:"compact",group:""},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"28",value:"GFS",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="GFS"?"primary":"","base-color":""},{default:o.withCtx(()=>e[15]||(e[15]=[o.createTextVNode(" NOAA ",-1)])),_:1,__:[15]},8,["color"]),o.createVNode(n,{density:"compact",height:"28",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="ECMWF"?"primary":"","base-color":"",value:"ECMWF"},{default:o.withCtx(()=>e[16]||(e[16]=[o.createTextVNode(" ECMWF ",-1)])),_:1,__:[16]},8,["color"])]),_:1},8,["modelValue"])])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["list-box w-100 scroll overflow-y-auto",[i.autoActive?"":"cursor-not-allowed",a.simple?"px-3":"pl-4 pr-2"]])},[o.createVNode(g,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(f,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.overlays")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(O=>O.overlays),O=>(o.openBlock(),o.createBlock(k,{key:O.key,modelValue:i.checkList,"onUpdate:modelValue":e[3]||(e[3]=te=>i.checkList=te),value:O.key,label:t.$t(`weather.${O.locale}`),disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"flex-1-0-100 text-body-2","hide-details":""},null,8,["modelValue","value","label","disabled"]))),128))]),_:1})]),_:1}),o.createVNode(g,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(f,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.renders")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(O=>!O.overlays),O=>(o.openBlock(),o.createElementBlock(o.Fragment,{key:O.key},[o.createVNode(w,{modelValue:i.renderKey,"onUpdate:modelValue":e[4]||(e[4]=te=>i.renderKey=te),label:t.$t(`weather.${O.locale}`),value:O.key,disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"text-body-2 py-1","hide-details":"",onClick:te=>i.renderKey=i.renderKey===O.key?"":O.key},null,8,["modelValue","label","value","disabled","onClick"]),i.renderKey==="wind-particle"&&O.key==="wind-particle"?(o.openBlock(),o.createElementBlock("div",Yc,[o.createElementVNode("span",null,o.toDisplayString(t.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showWindParticle,"onUpdate:modelValue":e[5]||(e[5]=te=>i.showWindParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",density:"compact",inset:"",style:{"font-size":"14px"},"hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="current-particle"&&O.key==="current-particle"?(o.openBlock(),o.createElementBlock("div",Uc,[o.createElementVNode("span",null,o.toDisplayString(t.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showCurrentParticle,"onUpdate:modelValue":e[6]||(e[6]=te=>i.showCurrentParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",inset:"",density:"compact",height:"20","hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="wave-group"&&O.key==="wave-group"?(o.openBlock(),o.createBlock(u,{key:2,modelValue:i.waveToggleValue,"onUpdate:modelValue":e[7]||(e[7]=te=>i.waveToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"sig-wave",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="sig-wave"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.significant")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="swell"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"swell"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.swell")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0),i.renderKey==="ice-forecast"&&O.key==="ice-forecast"?(o.openBlock(),o.createBlock(u,{key:3,modelValue:i.iceToggleValue,"onUpdate:modelValue":e[8]||(e[8]=te=>i.iceToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"ice-cover",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-cover"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.coverage")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-thickness"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"ice-thickness"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.thickness")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0)],64))),128))]),_:1})]),_:1}),o.createVNode(g,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(f,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.forecastModel")),1)]),_:1})]),_:1}),o.createVNode(m,{class:""},{default:o.withCtx(()=>{var O,te,Me,Ce,be,ke,J,we,ie,ce,Se,Ee,Te,F,me,_e,Ne,Ve,H,ve,Q,We,Oe,Ze,Le,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,kt,_t,Lt,zt,Ct,vt,St,Nt,Vt,Pt,Mt,Tt,Et,Dt,Rt,Bt,It,At,Ft,Gt,Wt,Ot,Zt,jt,Ht,Xt,Yt,Ut,$t,Jt,Kt,qt,Qt,eo,to,oo,ao,io,ro,lo,no,so,co,mo,ho,po,go,uo,fo,yo,bo,wo,xo,ko,_o,Lo,zo,Co,vo,So,No,Vo;return[o.createElementVNode("div",$c,o.toDisplayString(t.$t("weather.atmospheric")),1),o.createElementVNode("div",Jc,o.toDisplayString((Me=(te=(O=i.models)==null?void 0:O.weather)==null?void 0:te.NOAA)==null?void 0:Me.source)+" "+o.toDisplayString((ke=(be=(Ce=i.models)==null?void 0:Ce.weather)==null?void 0:be.NOAA)==null?void 0:ke.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((ce=(ie=(we=(J=i.models)==null?void 0:J.weather)==null?void 0:we.NOAA)==null?void 0:ie.meta)==null?void 0:ce.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",Kc,o.toDisplayString(t.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",qc,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((F=(Te=(Ee=(Se=i.models)==null?void 0:Se.weather)==null?void 0:Ee.NOAA)==null?void 0:Te.meta)==null?void 0:F.availabilityTime)),1),o.createElementVNode("div",Qc,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Ve=(Ne=(_e=(me=i.models)==null?void 0:me.weather)==null?void 0:_e.NOAA)==null?void 0:Ne.meta)==null?void 0:Ve.initialisationTime)),1),o.createElementVNode("div",em,o.toDisplayString((Q=(ve=(H=i.models)==null?void 0:H.weather)==null?void 0:ve.ECMWF)==null?void 0:Q.source)+" "+o.toDisplayString((Ze=(Oe=(We=i.models)==null?void 0:We.weather)==null?void 0:Oe.ECMWF)==null?void 0:Ze.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((rt=(it=(at=(Le=i.models)==null?void 0:Le.weather)==null?void 0:at.ECMWF)==null?void 0:it.meta)==null?void 0:rt.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",tm,o.toDisplayString(t.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",om,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((ct=(st=(nt=(lt=i.models)==null?void 0:lt.weather)==null?void 0:nt.ECMWF)==null?void 0:st.meta)==null?void 0:ct.availabilityTime)),1),o.createElementVNode("div",am,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((pt=(ht=(dt=(mt=i.models)==null?void 0:mt.weather)==null?void 0:dt.ECMWF)==null?void 0:ht.meta)==null?void 0:pt.initialisationTime)),1),o.createVNode(p),o.createElementVNode("div",im,o.toDisplayString(t.$t("weather.wave")),1),o.createElementVNode("div",rm,o.toDisplayString((yt=(ft=(ut=(gt=i.models)==null?void 0:gt.marine)==null?void 0:ut.wave)==null?void 0:ft.NOAA)==null?void 0:yt.source)+" "+o.toDisplayString((kt=(xt=(wt=(bt=i.models)==null?void 0:bt.marine)==null?void 0:wt.wave)==null?void 0:xt.NOAA)==null?void 0:kt.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((vt=(Ct=(zt=(Lt=(_t=i.models)==null?void 0:_t.marine)==null?void 0:Lt.wave)==null?void 0:zt.NOAA)==null?void 0:Ct.meta)==null?void 0:vt.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",lm,o.toDisplayString(t.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",nm,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((Mt=(Pt=(Vt=(Nt=(St=i.models)==null?void 0:St.marine)==null?void 0:Nt.wave)==null?void 0:Vt.NOAA)==null?void 0:Pt.meta)==null?void 0:Mt.availabilityTime)),1),o.createElementVNode("div",sm,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Bt=(Rt=(Dt=(Et=(Tt=i.models)==null?void 0:Tt.marine)==null?void 0:Et.wave)==null?void 0:Dt.NOAA)==null?void 0:Rt.meta)==null?void 0:Bt.initialisationTime)),1),o.createElementVNode("div",cm,o.toDisplayString((Gt=(Ft=(At=(It=i.models)==null?void 0:It.marine)==null?void 0:At.wave)==null?void 0:Ft.ECMWF)==null?void 0:Gt.source)+" "+o.toDisplayString((jt=(Zt=(Ot=(Wt=i.models)==null?void 0:Wt.marine)==null?void 0:Ot.wave)==null?void 0:Zt.ECMWF)==null?void 0:jt.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString(($t=(Ut=(Yt=(Xt=(Ht=i.models)==null?void 0:Ht.marine)==null?void 0:Xt.wave)==null?void 0:Yt.ECMWF)==null?void 0:Ut.meta)==null?void 0:$t.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",mm,o.toDisplayString(t.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",dm,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((eo=(Qt=(qt=(Kt=(Jt=i.models)==null?void 0:Jt.marine)==null?void 0:Kt.wave)==null?void 0:qt.ECMWF)==null?void 0:Qt.meta)==null?void 0:eo.availabilityTime)),1),o.createElementVNode("div",hm,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((ro=(io=(ao=(oo=(to=i.models)==null?void 0:to.marine)==null?void 0:oo.wave)==null?void 0:ao.ECMWF)==null?void 0:io.meta)==null?void 0:ro.initialisationTime)),1),o.createVNode(p),o.createElementVNode("div",pm,o.toDisplayString(t.$t("weather.currents")),1),o.createElementVNode("div",gm,o.toDisplayString((co=(so=(no=(lo=i.models)==null?void 0:lo.marine)==null?void 0:no.current)==null?void 0:so.ECMWF)==null?void 0:co.source)+" "+o.toDisplayString((go=(po=(ho=(mo=i.models)==null?void 0:mo.marine)==null?void 0:ho.current)==null?void 0:po.ECMWF)==null?void 0:go.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((wo=(bo=(yo=(fo=(uo=i.models)==null?void 0:uo.marine)==null?void 0:fo.current)==null?void 0:yo.ECMWF)==null?void 0:bo.meta)==null?void 0:wo.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",um,o.toDisplayString(t.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",fm,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((zo=(Lo=(_o=(ko=(xo=i.models)==null?void 0:xo.marine)==null?void 0:ko.current)==null?void 0:_o.ECMWF)==null?void 0:Lo.meta)==null?void 0:zo.availabilityTime)),1),o.createElementVNode("div",ym,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Vo=(No=(So=(vo=(Co=i.models)==null?void 0:Co.marine)==null?void 0:vo.current)==null?void 0:So.ECMWF)==null?void 0:No.meta)==null?void 0:Vo.initialisationTime)),1)]}),_:1})]),_:1})],2)],6),a.map?(o.openBlock(),o.createBlock(b,o.mergeProps({key:1,ref:"windBarb",map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-3",wind:(G=i.weatherLayers)==null?void 0:G.wind,"menu-toggle":a.menuToggle},t.$attrs),null,16,["map","map-feather","wind","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(x,o.mergeProps({key:2,map:a.map,"before-layer":"empty-layer-2","sig-wave-height":(W=i.weatherLayers)==null?void 0:W["sig-wave-height"],"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},t.$attrs),null,16,["map","sig-wave-height","menu-toggle","active-weather-layers"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(C,o.mergeProps({key:3,map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-2",current:(U=i.weatherLayers)==null?void 0:U.current,"menu-toggle":a.menuToggle},t.$attrs),null,16,["map","map-feather","current","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(L,o.mergeProps({key:4,map:a.map,"before-layer":"empty-layer-3",prmsl:(A=i.weatherLayers)==null?void 0:A.prmsl,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},t.$attrs,{theme:a.theme}),null,16,["map","prmsl","menu-toggle","active-weather-layers","theme"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(z,o.mergeProps({key:5,viewport:i.viewport,factor:(B=i.weatherLayers)==null?void 0:B["wind-particle"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(v,o.mergeProps({key:6,viewport:i.viewport,factor:(j=i.weatherLayers)==null?void 0:j["current-particle"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(M,o.mergeProps({key:7,viewport:i.viewport,factor:(N=i.weatherLayers)==null?void 0:N["sig-wave"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(T,o.mergeProps({key:8,map:a.map,viewport:i.viewport,factor:(q=i.weatherLayers)==null?void 0:q.swell,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers,simple:a.simple},t.$attrs),null,16,["map","viewport","factor","menu-toggle","active-weather-layers","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(E,o.mergeProps({key:9,viewport:i.viewport,factor:(re=i.weatherLayers)==null?void 0:re["ice-edge"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(I,o.mergeProps({key:10,viewport:i.viewport,factor:(he=i.weatherLayers)==null?void 0:he["ice-cover"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(Z,o.mergeProps({key:11,viewport:i.viewport,factor:(ge=i.weatherLayers)==null?void 0:ge["ice-thickness"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(Y,o.mergeProps({key:12,viewport:i.viewport,factor:(ee=i.weatherLayers)==null?void 0:ee.precip3h,"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock($,o.mergeProps({key:13,viewport:i.viewport,factor:(se=i.weatherLayers)==null?void 0:se.visibility,"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(ae,o.mergeProps({key:14,viewport:i.viewport,factor:(pe=i.weatherLayers)==null?void 0:pe["water-temp"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(V,o.mergeProps({key:15,viewport:i.viewport,factor:(xe=i.weatherLayers)==null?void 0:xe.temp,"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0)])}const wm=X(Ec,[["render",bm]]),Je=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"GFS",alias:"GFS",model:"gfs_seamless",provider:"NOAA",country:"United States",resolution:25,tips:"3-25km",length:16,frequency:1,models:["gfs_seamless"],categories:"ncep_gfs013,ncep_gfs025,ncep_gfs_graphcast025,ncep_hrrr_conus,ncep_nbm_conus",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:2,name:"ECMWF",alias:"ECMWF",model:"ecmwf_ifs025",provider:"ECMWF",country:"European Union",resolution:25,tips:"25km",length:15,frequency:6,models:["ecmwf_ifs025","ecmwf_aifs025_single"],categories:"ecmwf_ifs025,ecmwf_aifs025_single",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:3,disabled:!0,name:"ICON",alias:"ECMWF",model:"icon_seamless",provider:"Deutscher Wetterdienst (DWD)",country:"Germany",resolution:13,tips:"2-13km",length:7.5,frequency:3,models:["icon_seamless","icon_global","icon_eu","icon_d2"],categories:"dwd_icon,dwd_icon_eps,dwd_icon_d2,dwd_icon_d2_eps,dwd_icon_eu,dwd_icon_eu_eps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:4,name:"ARPEGE",disabled:!0,alias:"ECMWF",model:"arpege_seamless",provider:"Météo-France",country:"France",resolution:25,tips:"1-25km",length:4,frequency:1,models:["arpege_seamless","arpege_world","arpege_europe"],categories:"meteofrance_arpege_europe,meteofrance_arpege_europe_probabilities,meteofrance_arpege_world025",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:5,name:"UKMO",disabled:!0,alias:"ECMWF",model:"ukmo_seamless",provider:"UK Met Office",country:"United Kingdom",resolution:10,tips:"2-10km",length:7,frequency:1,models:["ukmo_seamless","ukmo_global_deterministic_10km","ukmo_uk_deterministic_2km"],categories:"ukmo_global_deterministic_10km,ukmo_uk_deterministic_2km",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:6,name:"JMA",disabled:!0,alias:"GFS",model:"jma_seamless",provider:"JMA",country:"Japan",resolution:55,tips:"5-55km",length:11,frequency:3,models:["jma_seamless","jma_msm","jma_gsm"],categories:"jma_gsm,jma_msm",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:7,name:"GEM",disabled:!0,alias:"GFS",model:"gem_seamless",provider:"Canadian Weather Service",country:"Canada",resolution:2.5,tips:"2.5km",length:10,frequency:6,models:["gem_seamless","gem_global","gem_regional"],categories:"cmc_gem_gdps,cmc_gem_hrdps,cmc_gem_rdps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:8,name:"GRAPES",disabled:!0,alias:"GFS",model:"cma_grapes_global",provider:"China Meteorological Administration (CMA)",country:"China",resolution:15,tips:"15km",length:10,frequency:6,models:["cma_grapes_global"],categories:"cma_grapes_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:9,name:"ACCESS-G",disabled:!0,alias:"GFS",model:"bom_access_global",provider:"Australian Bureau of Meteorology (BOM)",country:"Australia",resolution:15,tips:"15km",length:10,frequency:6,models:["bom_access_global"],categories:"bom_access_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"}],Ke=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"MFWAM",alias:"ECMWF",model:"meteofrance_wave",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:12,models:["meteofrance_wave"],categories:"meteofrance_wave",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:2,disabled:!0,name:"SMOC",alias:"ECMWF",model:"meteofrance_currents",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:24,models:["meteofrance_currents"],categories:"meteofrance_currents, meteofrance_sea_surface_temperature",variables:"ocean_u_current,ocean_v_current,invert_barometer_height,sea_level_height_msl,sea_surface_temperature"},{rank:3,disabled:!0,name:"EWAM",alias:"ECMWF",model:"ewam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:8,frequency:2,models:["ewam"],categories:"dwd_ewam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:4,disabled:!0,name:"GWAM",alias:"ECMWF",model:"gwam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:4,frequency:2,models:["gwam"],categories:"dwd_gwam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:5,disabled:!0,name:"ECWAM",alias:"ECMWF",model:"ecmwf_wam025",provider:"ECMWF",country:"Europe",resolution:25,tips:"25km",length:10,frequency:6,models:["ecmwf_wam025"],categories:"ecmwf_wam025",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:6,name:"GFSWave",alias:"GFS",model:"ncep_gfswave025",provider:"NCEP",country:"USA",resolution:25,tips:"25km",length:10,frequency:6,models:["ncep_gfswave025","ncep_gfswave016"],categories:"ncep_gfswave025,ncep_gfswave016",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:7,disabled:!0,name:"ERA5-Ocean",alias:"ECMWF",model:"era5_ocean",provider:"Copernicus",country:"Europe",resolution:50,tips:"50km",length:-5,frequency:1,models:["era5_ocean"],categories:"copernicus_era5_ocean",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"}];let sa=class{static standardWeatherModels(){return Je.filter(e=>!e.disabled&&e.alias)}static standardMarineModels(){return Ke.filter(e=>!e.disabled&&e.alias)}static autoPickLayerModel(e,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",e=e==null?void 0:e.toLowerCase(),e==="gfs"?"gfs":["ec","ecmwf"].includes(e)?"ecmwf":["copernicus","cmems"].includes(e)?"copernicus":a}static autoPickPeerModel(e,a,r="copernicus"){if(a=this.autoPickLayerModel(a,r),yr.LayerHelper.WEATHER_LAYERS.reduce((i,l)=>l.atmos?i+l.weight:i,0)&e.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(e="best_match"){var a,r;e=e==null?void 0:e.toLowerCase(),e=e==="ec"?"ecmwf":e;const i=e.toLowerCase().split(","),l=[],n=[];for(const c of i){let s=Je.find(m=>{var p,g,y;return((p=m.models)==null?void 0:p.includes(c))||((g=m.alias)==null?void 0:g.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c}),d=Ke.find(m=>{var p,g,y;return((p=m.models)==null?void 0:p.includes(c))||((g=m.alias)==null?void 0:g.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c});s=s||Je.find(m=>{var p,g;return((p=m.alias)==null?void 0:p.toLowerCase())===((g=d==null?void 0:d.alias)==null?void 0:g.toLowerCase())}),d=d||Ke.find(m=>{var p,g;return((p=m.alias)==null?void 0:p.toLowerCase())===((g=s==null?void 0:s.alias)==null?void 0:g.toLowerCase())}),s=s||Je[0],d=d||Ke[0],l.push((a=s.models)!=null&&a.includes(c)?c:s.model),n.push((r=d.models)!=null&&r.includes(c)?c:d.model)}return{weatherModels:l.join(","),marineModels:n.join(",")}}static autoPickSubCategories(e){e=e.toUpperCase();const a=Je.filter(l=>l.alias===e),r=Ke.filter(l=>l.alias===e),i=[];return a.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),r.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),i}static pickHourly(e,a){var r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re,he,ge,ee,se,pe,xe,O,te,Me,Ce,be,ke;const J=typeof a=="string"?S(a):a,we=e==null?void 0:e.weather,ie=e==null?void 0:e.marine,ce=S((i=(r=we==null?void 0:we[0])==null?void 0:r.hourly)==null?void 0:i.date).utc(),Se=ce.clone().add((c=(n=(l=we==null?void 0:we[0])==null?void 0:l.hourly)==null?void 0:n.time)==null?void 0:c.at(0),"h"),Ee=ce.clone().add((m=(d=(s=we==null?void 0:we[0])==null?void 0:s.hourly)==null?void 0:d.time)==null?void 0:m.at(-1),"h"),Te=[];if(J.isBetween(Se,Ee,"millisecond","[]")){const F=J.utc().diff(Se,"h",!1);let me,_e;if(we){let Ne=0,Ve=0,H=0;for(const ve of we){const Q=ve==null?void 0:ve.hourly;for(let Le=F-(F-1)%3;Le<=F;Le++)Ne+=(p=Q==null?void 0:Q.precipitation)==null?void 0:p.at(Le);for(let Le=F-(F-1)%6;Le<=F;Le++)Ve+=(g=Q==null?void 0:Q.precipitation)==null?void 0:g.at(Le);for(let Le=F-(F-1)%12;Le<=F;Le++)H+=(y=Q==null?void 0:Q.precipitation)==null?void 0:y.at(Le);me={temp:(u=Q==null?void 0:Q.temperature_2m)==null?void 0:u.at(F),apparentTemp:(h=Q==null?void 0:Q.apparent_temperature)==null?void 0:h.at(F),rh:(f=Q==null?void 0:Q.relative_humidity_2m)==null?void 0:f.at(F),dp:(k=Q==null?void 0:Q.dew_point_2m)==null?void 0:k.at(F),precip:{probability:(w=Q==null?void 0:Q.precipitation_probability)==null?void 0:w.at(F),sum:(b=Q==null?void 0:Q.precipitation)==null?void 0:b.at(F),sum1Hours:(x=Q==null?void 0:Q.precipitation)==null?void 0:x.at(F),sum3Hours:Math.round(Ne*100)/100,sum6Hours:Math.round(Ve*100)/100,sum12Hours:Math.round(H*100)/100},pmsl:(C=Q==null?void 0:Q.pressure_msl)==null?void 0:C.at(F),psurf:(L=Q==null?void 0:Q.surface_pressure)==null?void 0:L.at(F),code:(z=Q==null?void 0:Q.weather_code)==null?void 0:z.at(F),visibility:this.m2nm((v=Q==null?void 0:Q.visibility)==null?void 0:v.at(F)),wind:{speed:(M=Q==null?void 0:Q.wind_speed_10m)==null?void 0:M.at(F),kts:(T=Q==null?void 0:Q.wind_speed_10m)==null?void 0:T.at(F),degree:(E=Q==null?void 0:Q.wind_direction_10m)==null?void 0:E.at(F),bearing:((I=Q==null?void 0:Q.wind_direction_10m)==null?void 0:I.at(F))!==null?(((Z=Q==null?void 0:Q.wind_direction_10m)==null?void 0:Z.at(F))+180)%360:null,gusts:(Y=Q==null?void 0:Q.wind_gusts_10m)==null?void 0:Y.at(F)},isDay:($=Q==null?void 0:Q.is_day)==null?void 0:$.at(F)};const{name:We,url:Oe,bg:Ze}=this.parseWeatherCode(me.code,me.isDay);me.name=We,me.url=Oe,me.bg=Ze,me.wind.scale=this.beaufort(this.kts2ms(me.wind.kts)),me.wind.direction=this.degree2Direction(me.wind.degree),Te.push({utc:Se.add(F,"h").format(),model:ve.model,weather:{...me}})}}if(ie){let Ne=0;for(const Ve of ie){const H=Ve==null?void 0:Ve.hourly;_e={wave:{sig:{height:(ae=H==null?void 0:H.wave_height)==null?void 0:ae.at(F),degree:(V=H==null?void 0:H.wave_direction)==null?void 0:V.at(F),bearing:((G=H==null?void 0:H.wave_direction)==null?void 0:G.at(F))!==null?(((W=H==null?void 0:H.wave_direction)==null?void 0:W.at(F))+180)%360:null,period:(U=H==null?void 0:H.wave_period)==null?void 0:U.at(F)},swell:{height:(A=H==null?void 0:H.swell_wave_height)==null?void 0:A.at(F),degree:(B=H==null?void 0:H.swell_wave_direction)==null?void 0:B.at(F),bearing:((j=H==null?void 0:H.swell_wave_direction)==null?void 0:j.at(F))!==null?(((N=H==null?void 0:H.swell_wave_direction)==null?void 0:N.at(F))+180)%360:null,period:(q=H==null?void 0:H.swell_wave_period)==null?void 0:q.at(F),peakPeriod:(re=H==null?void 0:H.swell_wave_peak_period)==null?void 0:re.at(F)},wd:{height:(he=H==null?void 0:H.wind_wave_height)==null?void 0:he.at(F),degree:(ge=H==null?void 0:H.wind_wave_direction)==null?void 0:ge.at(F),bearing:((ee=H==null?void 0:H.wind_wave_direction)==null?void 0:ee.at(F))!==null?(((se=H==null?void 0:H.wind_wave_direction)==null?void 0:se.at(F))+180)%360:null,period:(pe=H==null?void 0:H.wind_wave_period)==null?void 0:pe.at(F),peakPeriod:(xe=H==null?void 0:H.wind_wave_peak_period)==null?void 0:xe.at(F)}},current:{speed:(O=H==null?void 0:H.ocean_current_velocity)==null?void 0:O.at(F),kts:(te=H==null?void 0:H.ocean_current_velocity)==null?void 0:te.at(F),degree:(Me=H==null?void 0:H.ocean_current_direction)==null?void 0:Me.at(F),bearing:((Ce=H==null?void 0:H.ocean_current_direction)==null?void 0:Ce.at(F))??null},sst:(be=H==null?void 0:H.sea_surface_temperature)==null?void 0:be.at(F),height:(ke=H==null?void 0:H.sea_level_height_msl)==null?void 0:ke.at(F)},_e.wave=this.parseWave(_e.wave,me==null?void 0:me.wind),_e.current.direction=this.degree2Direction(_e.current.degree),Object.assign(Te[Ne],_e),Ne++}}}return Te}static toLegacy(e){var a,r,i,l,n,c,s,d,m,p;return{wind:(a=e==null?void 0:e.weather)==null?void 0:a.wind,visibility:(r=e==null?void 0:e.weather)==null?void 0:r.visibility,temp:(i=e==null?void 0:e.weather)==null?void 0:i.temp,prmsl:(l=e==null?void 0:e.weather)==null?void 0:l.pmsl,gusts:{kts:(c=(n=e==null?void 0:e.weather)==null?void 0:n.wind)==null?void 0:c.gusts},precip:(s=e==null?void 0:e.weather)==null?void 0:s.precip,code:(d=e==null?void 0:e.weather)==null?void 0:d.code,name:(m=e==null?void 0:e.weather)==null?void 0:m.name,url:(p=e==null?void 0:e.weather)==null?void 0:p.url,wave:e==null?void 0:e.wave,current:e==null?void 0:e.current,sst:e==null?void 0:e.sst,height:e==null?void 0:e.height,utc:e==null?void 0:e.utc,source:e==null?void 0:e.model}}static pickDaily(e,a){var r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re,he,ge,ee,se;const pe=typeof a=="string"?S(a):a,xe=e==null?void 0:e.weather,O=e==null?void 0:e.marine,te=S((l=(i=(r=xe==null?void 0:xe[0])==null?void 0:r.daily)==null?void 0:i.time)==null?void 0:l.at(0)),Me=S((s=(c=(n=xe==null?void 0:xe[0])==null?void 0:n.daily)==null?void 0:c.time)==null?void 0:s.at(-1)),Ce=[];if(pe.isBetween(te,Me,"millisecond","[]")){let be,ke;const J=pe.diff(te,"d",!1);if(xe)for(const we of xe){const ie=we.daily;be={code:(d=ie.weather_code)==null?void 0:d.at(J),temp:{max:(m=ie.temperature_2m_max)==null?void 0:m.at(J),min:(p=ie.temperature_2m_min)==null?void 0:p.at(J),mean:(g=ie.temperature_2m_mean)==null?void 0:g.at(J)},apparentTemp:{max:(y=ie.apparent_temperature_max)==null?void 0:y.at(J),min:(u=ie.apparent_temperature_min)==null?void 0:u.at(J)},precip:{sum:(h=ie.precipitation_sum)==null?void 0:h.at(J),rainSum:(f=ie.rain_sum)==null?void 0:f.at(J),snowfallSum:(k=ie.snowfall_sum)==null?void 0:k.at(J),showersSum:(w=ie.showers_sum)==null?void 0:w.at(J),hours:(b=ie.precipitation_hours)==null?void 0:b.at(J),probability:(x=ie.precipitation_probability_max)==null?void 0:x.at(J)},rh:{max:(C=ie.relative_humidity_2m_max)==null?void 0:C.at(J),min:(L=ie.relative_humidity_2m_min)==null?void 0:L.at(J),mean:(z=ie.relative_humidity_2m_mean)==null?void 0:z.at(J)},wind:{speed:(v=ie.wind_speed_10m_max)==null?void 0:v.at(J),kts:(M=ie.wind_speed_10m_max)==null?void 0:M.at(J),degree:(T=ie.wind_direction_10m_dominant)==null?void 0:T.at(J),gusts:(E=ie.wind_gusts_10m_max)==null?void 0:E.at(J),bearing:((I=ie.wind_direction_10m_dominant)==null?void 0:I.at(J))!==null?(((Z=ie.wind_direction_10m_dominant)==null?void 0:Z.at(J))+180)%360:null}};const{name:ce,url:Se,bg:Ee}=this.parseWeatherCode(be.code,!0);be.name=ce,be.url=Se,be.bg=Ee,be.wind.scale=this.beaufort(this.kts2ms(be.wind.kts)),be.wind.direction=this.degree2Direction(be.wind.degree),Ce.push({utc:te.add(J,"d").utc().format(),model:we.model,weather:{...be}})}if(O){let we=0;for(const ie of O){const ce=ie.daily;ke={wave:{sig:{height:(Y=ce.wave_height_max)==null?void 0:Y.at(J),degree:($=ce.wave_direction_dominant)==null?void 0:$.at(J),period:(ae=ce.wave_period_max)==null?void 0:ae.at(J),bearing:((V=ce.wave_direction_dominant)==null?void 0:V.at(J))!==null?(((G=ce.wave_direction_dominant)==null?void 0:G.at(J))+180)%360:null},swell:{height:(W=ce.swell_wave_height_max)==null?void 0:W.at(J),degree:(U=ce.swell_wave_direction_dominant)==null?void 0:U.at(J),period:(A=ce.swell_wave_period_max)==null?void 0:A.at(J),peakPeriod:(B=ce.swell_wave_peak_period_max)==null?void 0:B.at(J),bearing:((j=ce.swell_wave_direction_dominant)==null?void 0:j.at(J))!==null?((N=ce.swell_wave_direction_dominant)==null?void 0:N.at(J))%360:null},wd:{height:(q=ce.wind_wave_height_max)==null?void 0:q.at(J),degree:(re=ce.wind_wave_direction_dominant)==null?void 0:re.at(J),period:(he=ce.wind_wave_period_max)==null?void 0:he.at(J),peakPeriod:(ge=ce.wind_wave_peak_period_max)==null?void 0:ge.at(J),bearing:((ee=ce.wind_wave_direction_dominant)==null?void 0:ee.at(J))!==null?(((se=ce.wind_wave_direction_dominant)==null?void 0:se.at(J))+180)%360:null}}},ke.wave=this.parseWave(ke.wave,be==null?void 0:be.wind),Object.assign(Ce[we],ke),we++}}}return Ce}static parseWave(e,a){if(e.sig.direction=this.degree2Direction(e.sig.degree),e.swell.direction=this.degree2Direction(e.swell.degree),e.wd.direction=this.degree2Direction(e.wd.degree),e.sig.scale=this.douglas(e.sig.height),e.swell.scale=this.douglas(e.swell.height),e.wd.scale=this.douglas(e.wd.height),e.sig.height===0){const r=Math.sqrt(Math.pow(e.swell.height||0,2)+Math.pow(e.wd.height||0,2));e.sig.height=Math.round(r*100)/100}if(e.swell.height===0)if(e.sig.height>e.wd.height){const r=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.wd.height||0,2)));e.swell.height=Math.round(r*100)/100}else{const r=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,i=r>1?r/10:r>.5?r/5:r>.3?r/2:r;e.swell.height=Math.round(i*100)/100}if(e.wd.height===0||e.wd.height>e.sig.height)if(e.sig.height>e.swell.height){const r=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.swell.height||0,2))),i=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(Math.min(r,i)*100)/100}else{const r=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(r*100)/100}return e.swell.height>e.sig.height&&(e.swell.height=Math.round(e.sig.height*.76*100)/100),e.sig.period||(e.sig.period=Math.round(5*Math.sqrt(e.sig.height))),e.swell.period||(e.swell.period=Math.round(5*Math.sqrt(e.swell.height))),e.wd.period||(e.wd.period=Math.round(5*Math.sqrt(e.wd.height))),e}static parseWeatherCode(e,a){const r=this.weatherCode(e);return(a?r.day:r.night)||{}}static weatherCode(e){const a={code:e};switch(e){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(e){return isNaN(e)||e===null?e:Math.round(e*1852/3600*1e4)/1e4}static kts2kmh(e){return isNaN(e)||e===null?e:e*1.852}static m2nm(e){return isNaN(e)||e===null?e:Math.round(e/1e3/1.852*1e4)/1e4}static kmh2kts(e){return isNaN(e)||e===null?e:this.ms2kts(e*1e3/3600)}static ms2kts(e){return isNaN(e)||e===null?e:Math.round(e*3600/1852*1e4)/1e4}static degree2Radian(e){if(isNaN(e)||e===null)return e;let a=e%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(e){const a=this.degree2Radian(e);if(isNaN(a)||a===null)return null;let r="N/A";const i=Math.PI/16;return a<i?r="N":a>=i&&a<3*i?r="NNE":a>=3*i&&a<5*i?r="NE":a>=5*i&&a<7*i?r="ENE":a>=7*i&&a<9*i?r="E":a>=9*i&&a<11*i?r="ESE":a>=11*i&&a<13*i?r="SE":a>=13*i&&a<15*i?r="SSE":a>=15*i&&a<17*i?r="S":a>=17*i&&a<19*i?r="SSW":a>=19*i&&a<21*i?r="SW":a>=21*i&&a<23*i?r="WSW":a>=23*i&&a<25*i?r="W":a>=25*i&&a<27*i?r="WNW":a>=27*i&&a<29*i?r="NW":a>=29*i&&a<31*i?r="NNW":a>=31*i&&a<32*i&&(r="N"),r}static beaufort(e){let a=0;return isNaN(e)||(e=Math.round(e*10)/10,e<=.2?a=0:e<=1.5?a=1:e<=3.3?a=2:e<=5.4?a=3:e<=7.9?a=4:e<=10.7?a=5:e<=13.8?a=6:e<=17.1?a=7:e<=20.7?a=8:e<=22.4?a=9:e<=28.4?a=10:e<=32.6?a=11:e<=36.9?a=12:e<=41.4?a=13:e<=46.1?a=14:e<=50.9?a=15:e<=55.9?a=16:e<=61.2?a=17:e>61.2&&(a=18)),a}static douglas(e){let a="Calm";return isNaN(e)||e<=.1?a="Calm":e<=.5?a="Smooth":e<=1.25?a="Slight":e<=2.5?a="Moderate":e<=4?a="Rough":e<=6?a="VeryRough":e<=9?a="High":e<=14?a="VeryHigh":a="Precipitous",a}};const Ry="",xm={name:"IdmTropicals",props:{simple:{type:Boolean,default:!1},permission:{type:Number},locale:{type:String},map:{type:Object},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},timeZone:{type:Number},token:{type:String},defaultMeteoToken:{type:String},gateway:{type:String,default:"aa"},assistGateway:{type:Array,default:[]},forecastModel:{type:String},realTime:{type:String},beforeLayer:{type:String}},emits:["tropical","tropicalCenterPoints","tropicalProbability","tropicalNotification"],setup(){return{Theme:fe.useTheme()}},data(){return{right:10,toggle:!1,helper:je.CompanyHelper,tropicals:void 0,tropicalCacheKey:"tropicalCacheGL4",source:"tropicals-source",clusterSource:"tropicals-cluster-source",historyLayer:"tropicals-history-layer",forecastLayer:"tropicals-forecast-layer",forecastModelLayer:"tropicals-forecast-model-layer",forecastNameLayer:"tropicals-forecast-name-layer",pointCircleLayer:"tropicals-point-circle-layer",pointLabelLayer:"tropicals-point-label-layer",historyPointCircleLayer:"history-tropicals-point-circle-layer",historyPointLabelLayer:"history-tropicals-point-label-layer",interpolateData:[],interpolateMarkers:[],interpolateSource:"tropicals-interpolate-source",interpolateLineLayer:"tropicals-interpolate-line-layer",showTropicalsInfo:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:D.featureCollection([]),showLegend:!1,showHoverPoint:!1,hoverPoint:void 0,hoverMarker:void 0}},computed:{hoverLayers(){return[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.pointCircleLayer,this.pointCircleLayer+"-border",this.historyPointCircleLayer,this.historyPointCircleLayer+"-border",this.historyPointCircleLayer+"-inner"]},clickLayers(){return[this.forecastNameLayer,this.historyLayer]},computeTime(){return(t,e)=>{if(t){const a=S(t).utcOffset(e),r=e<0?e:"+"+e;return`${a==null?void 0:a.format("MMM-DD/HHmm")} (UTC${r}) ${a==null?void 0:a.fromNow()} `}return"-"}},computeTzTime(){return(t,e,a="MM-DD HH:mm")=>{var r,i;if(t){const l=e||0,n=(i=(r=S(t))==null?void 0:r.utcOffset(l))==null?void 0:i.format(a),c=`(UTC ${l>=0?"+":""}${l})`;return n+" "+c}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(t){const e=sa.kts2ms(t);return sa.beaufort(e)}},computeMovement(){return function(t){var e,a;return(a=(e=t==null?void 0:t.forecasts)==null?void 0:e.find(r=>!r.disabled))==null?void 0:a.movement}},computePosition(){return t=>!t||t.lng===null||t.lng===void 0||isNaN(t.lng)||t.lat===null||t.lat===void 0||isNaN(t.lat)?"-":P.LngLatHelper.lat2pretty(t==null?void 0:t.lat,2).pretty+" / "+P.LngLatHelper.lng2pretty(t==null?void 0:t.lng,2).pretty}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})},immediate:!0},map:{handler(){this.map?(this.toggle=localStorage.getItem(this.tropicalCacheKey)==="true"||!1,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle&&this.fetchTropicals()):this.handleClear()}},showTropicalsInfo:{handler(){this.$emit("tropical",this.showTropicalsInfo),this.simple&&this.showTropicalsInfo?this.$nextTick(()=>{var t,e;this.$parent.playerBottom=((e=(t=this.$refs.tropicalsInfo)==null?void 0:t.$el)==null?void 0:e.clientHeight)+10}):this.simple&&(this.$parent.playerBottom=30)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(t,e){t!==e&&this.handleRefresh()}},realTime:{handler(t){this.map&&t&&this.toggle&&this.handleRender()}},locale:{handler(t){this.map&&this.toggle&&this.handleRefresh()}}},methods:{handleMenuToggle(){var t,e,a;this.toggle=!this.toggle,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle?this.fetchTropicals():(this.handleClear(),(a=(e=(t=this.$parent)==null?void 0:t.$refs)==null?void 0:e.idmBottomBar)==null||a.handleToggle("tropical",!1))},async fetchTropicals(){var i,l,n;const t=new Date().valueOf();let e=0,a=0,r=(i=je.LayerHelper.WEATHER_LAYERS.find(c=>c.key==="tropicals"))==null?void 0:i.weight;if(r>0){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],s=await le.get(`${c}/api/arc/weather/layers2/links?l=${r}&v=${this.forecastModel}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(a=new Date().valueOf()-(t+e),console.log("weather links elapsed: ",a,", total: ",e+=a),((l=s==null?void 0:s.data)==null?void 0:l.code)===0){const d=(n=s==null?void 0:s.data)==null?void 0:n.data;await le.get(d.tropicals,{headers:{Authorization:this.defaultMeteoToken,key:"tropicals"},responseType:/\.(jpg|png)$/.test(d.tropicals)?"blob":"json"}).then(m=>{var y,u,h;const p=P.TropicalHelper.convert2Geojson(((y=m==null?void 0:m.data)==null?void 0:y.data)||(m==null?void 0:m.data));((h=(u=m==null?void 0:m.config)==null?void 0:u.headers)==null?void 0:h.key)&&p&&(this.tropicals={data:p,active:!0,cached:!0,type:"json",etime:s.data.etime,version:Math.random()+1})}).catch(m=>{console.log(`tropicals fetch layer error: ${m}`)})}a=new Date().valueOf()-(t+e),console.log("tropicals elapsed: ",a,", total: ",e+=a)}},handleRefresh(){var e,a;(((a=(e=this.tropicals)==null?void 0:e.data)==null?void 0:a.features)||[]).forEach(r=>{var l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z;let i="";switch(!0){case(((l=r.properties.wind)==null?void 0:l.kts)<32||((n=r.properties)==null?void 0:n.kts)<32):i="td";break;case(((c=r.properties.wind)==null?void 0:c.kts)<47||((s=r.properties)==null?void 0:s.kts)<47):i="ts";break;case(((d=r.properties.wind)==null?void 0:d.kts)<63||((m=r.properties)==null?void 0:m.kts)<63):i="sts";break;case(((p=r.properties.wind)==null?void 0:p.kts)<79||((g=r.properties)==null?void 0:g.kts)<79):i="ty";break;case(((y=r.properties.wind)==null?void 0:y.kts)<94||((u=r.properties)==null?void 0:u.kts)<94):i="sty";break;case(((h=r.properties.wind)==null?void 0:h.kts)>=94||((f=r.properties)==null?void 0:f.kts)>=94):i="superTy";break;default:i="superTy";break}r.properties.levelI18n=i,((k=r.geometry)==null?void 0:k.type)==="Point"&&((w=r.properties)!=null&&w.important)&&(r.properties.format=(x=(b=S(r.properties.date))==null?void 0:b.utcOffset(this.timeZone))==null?void 0:x.format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`)),((C=r.geometry)==null?void 0:C.type)==="Point"&&(r.properties.Name=((z=(L=r.properties.name)==null?void 0:L.trim())==null?void 0:z.replace(/^./,v=>v.toUpperCase()))||r.properties.nameCn,r.properties.nameCn=r.properties.nameCn||r.properties.Name||"-")}),this.handleInit()},handleInit(){var t,e,a,r,i,l,n,c,s,d,m,p;this.handleClear(),this.tropicals&&this.map&&(this.handleRender(),(t=this.map)==null||t.on("click",this.clickLayers,this.handleClick),(e=this.map)==null||e.on("mousemove",this.hoverLayers,this.handleHover),(a=this.map)==null||a.on("mouseleave",this.hoverLayers,this.handleLeave)),((l=(i=(r=this.tropicals)==null?void 0:r.data)==null?void 0:i.features)==null?void 0:l.length)>0?(s=(c=(n=this.$parent)==null?void 0:n.$refs)==null?void 0:c.idmBottomBar)==null||s.handleToggle("tropical",!0):(p=(m=(d=this.$parent)==null?void 0:d.$refs)==null?void 0:m.idmBottomBar)==null||p.handleToggle("tropical",!1)},handleRender(){var t,e,a,r,i,l,n,c,s,d;if(this.tropicals&&this.map){const m=new Date().valueOf();let p=0,g=0;(t=this.map)!=null&&t.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((e=this.tropicals)!=null&&e.active?this.tropicals.data:this.empty),g=new Date().valueOf()-(m+p),console.log("[tropicals] update elapsed: ",g,", total: ",p+=g)):(this.map.addSource(this.source,{type:"geojson",data:(r=this.tropicals)!=null&&r.active?(i=this.tropicals)==null?void 0:i.data:this.empty}),this.map.addLayer({id:this.historyLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","history"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["on-surface"],"line-width":3,"line-opacity":.7}},this.beforeLayer),this.map.addLayer({id:this.forecastLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"line-width":2,"line-opacity":1,"line-dasharray":[1,2]}},this.beforeLayer),this.map.addLayer({id:this.forecastModelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"symbol-placement":"line","text-field":"{model}","text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":this.Theme.current.value.dark?"#333":"#fff","text-opacity":1,"text-halo-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"text-halo-width":4}},this.beforeLayer),g=new Date().valueOf()-(m+p),console.log("[tropical] add elapsed: ",g,", total: ",p+=g)),(l=this.map)!=null&&l.getSource(this.clusterSource)?((c=this.map)==null||c.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),g=new Date().valueOf()-(m+p),console.log("[tropical] update elapsed: ",g,", total: ",p+=g)):(this.map.addSource(this.clusterSource,{type:"geojson",data:(s=this.tropicals)!=null&&s.active?(d=this.tropicals)==null?void 0:d.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.pointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":4,"circle-color":["case",["boolean",["==",["get","kts",["get","wind"]],null]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],32]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],47]],this.Theme.current.value.colors["tropicals-ts"],["boolean",["<",["get","kts",["get","wind"]],63]],this.Theme.current.value.colors["tropicals-sts"],["boolean",["<",["get","kts",["get","wind"]],79]],this.Theme.current.value.colors["tropicals-ty"],["boolean",["<",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-sty"],["boolean",[">=",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-super-ty"],"#fff"]}},this.beforeLayer),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":6,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"rgba(0,0,0,0.7)"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-inner",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":3,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.forecastNameLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["==","important",!0]],layout:{"text-field":["get",this.locale==="en"?"Name":"nameCn"],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-offset":[0,2]},paint:{"text-color":this.Theme.current.value.colors["map-blue"],"text-halo-color":"#ffffff","text-halo-width":2}},this.beforeLayer),g=new Date().valueOf()-(m+p),console.log("[tropical] add elapsed: ",g,", total: ",p+=g));const y=P.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(y)),this.handleDateChange()}},handleClear(){var t,e,a,r;this.map&&(this.map.getLayer(this.historyLayer)&&this.map.removeLayer(this.historyLayer),this.map.getLayer(this.forecastLayer)&&this.map.removeLayer(this.forecastLayer),this.map.getLayer(this.forecastModelLayer)&&this.map.removeLayer(this.forecastModelLayer),this.map.getLayer(this.forecastNameLayer)&&this.map.removeLayer(this.forecastNameLayer),this.map.getLayer(this.pointCircleLayer)&&this.map.removeLayer(this.pointCircleLayer),this.map.getLayer(this.pointCircleLayer+"-border")&&this.map.removeLayer(this.pointCircleLayer+"-border"),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.historyPointCircleLayer)&&this.map.removeLayer(this.historyPointCircleLayer),this.map.getLayer(this.historyPointCircleLayer+"-border")&&this.map.removeLayer(this.historyPointCircleLayer+"-border"),this.map.getLayer(this.historyPointCircleLayer+"-inner")&&this.map.removeLayer(this.historyPointCircleLayer+"-inner"),this.map.getLayer(this.historyPointLabelLayer)&&this.map.removeLayer(this.historyPointLabelLayer),this.map.getLayer(this.interpolateLineLayer)&&this.map.removeLayer(this.interpolateLineLayer),(t=this.interpolateMarkers)==null||t.forEach(i=>i==null?void 0:i.remove()),this.map.getSource(this.source)&&this.map.removeSource(this.source),this.map.getSource(this.clusterSource)&&this.map.removeSource(this.clusterSource),this.map.getSource(this.interpolateSource)&&this.map.removeSource(this.interpolateSource)),(e=this.map)==null||e.off("click",this.clickLayers,this.handleClick),(a=this.map)==null||a.off("mousemove",this.hoverLayers,this.handleHover),(r=this.map)==null||r.off("mouseleave",this.hoverLayers,this.handleLeave),this.handleCloseInfoMarker()},handleDateChange(){var t,e,a,r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G;if((t=this.interpolateMarkers)==null||t.forEach(W=>W==null?void 0:W.remove()),(e=this.interpolateData)!=null&&e.length&&this.tropicals.active){const W=S(this.realTime).utc().set({minute:0,second:0,millisecond:0}),U=this.interpolateData.filter(N=>N.properties.date===(W==null?void 0:W.format())&&!N.properties.disabled),A=this.handleComputePolygons(U),B=D.featureCollection([...U]);A.forEach(N=>{B.features.push(N)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(r=this.map)==null||r.getSource(this.interpolateSource).setData(B):((i=this.map)==null||i.addSource(this.interpolateSource,{type:"geojson",data:B}),(l=this.map)==null||l.addLayer({id:this.interpolateLineLayer,type:"line",source:this.interpolateSource,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-opacity":1,"line-color":["match",["get","level"],7,this.Theme.current.value.colors["tropicals-r7"],10,this.Theme.current.value.colors["tropicals-r10"],this.Theme.current.value.colors["tropicals-r10"]],"line-width":1}},"empty-layer-3")),this.interpolateMarkers=[];const j=[];for(const N of U)if(!N.properties.disabled){if(!j.some(ee=>{var se;return ee.properties.name===((se=N.properties)==null?void 0:se.name)})){const ee=((c=(n=this.tropicals.data.features.find(se=>{var pe;return se.properties.name===((pe=N.properties)==null?void 0:pe.name)}))==null?void 0:n.properties)==null?void 0:c.nameCn)||((s=N.properties)==null?void 0:s.Name)||"-";N.properties.nameCn=ee,N.properties.Name=((m=(d=N.properties.name)==null?void 0:d.trim())==null?void 0:m.replace(/^./,se=>se.toUpperCase()))||N.properties.nameCn,j.push(N)}let q=this.Theme.current.value.colors["tropicals-ty"];((g=(p=N.properties)==null?void 0:p.wind)==null?void 0:g.kts)<32||!((u=(y=N.properties)==null?void 0:y.wind)!=null&&u.kts)?q=this.Theme.current.value.colors["tropicals-td"]:((f=(h=N.properties)==null?void 0:h.wind)==null?void 0:f.kts)>=32&&((w=(k=N.properties)==null?void 0:k.wind)==null?void 0:w.kts)<47?q=this.Theme.current.value.colors["tropicals-ts"]:((x=(b=N.properties)==null?void 0:b.wind)==null?void 0:x.kts)>=47&&((L=(C=N.properties)==null?void 0:C.wind)==null?void 0:L.kts)<63?q=this.Theme.current.value.colors["tropicals-sts"]:((v=(z=N.properties)==null?void 0:z.wind)==null?void 0:v.kts)>=63&&((T=(M=N.properties)==null?void 0:M.wind)==null?void 0:T.kts)<79?q=this.Theme.current.value.colors["tropicals-ty"]:((I=(E=N.properties)==null?void 0:E.wind)==null?void 0:I.kts)>=79&&((Y=(Z=N.properties)==null?void 0:Z.wind)==null?void 0:Y.kts)<94?q=this.Theme.current.value.colors["tropicals-sty"]:((ae=($=N.properties)==null?void 0:$.wind)==null?void 0:ae.kts)>=94?q=this.Theme.current.value.colors["tropicals-super-ty"]:q=this.Theme.current.value.colors["tropicals-ty"];const re=`<svg t="1719918955501"
203
+ `,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},paint:{"text-color":this.theme==="light"?["step",["get","val"],"rgba(0, 0, 0, 0.5)",920,"rgba(0, 0, 0, 0.5)",980,"rgba(0, 0, 0, 0.7)",1100,"rgba(0, 0, 0, 0.7)"]:"rgba(0,0,0,1)","text-halo-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-width":1}},this.beforeLayer),l=new Date().valueOf()-(r+i),console.log("[prmsl] add elapsed: ",l,", total: ",i+=l))}},handleClear(){this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function ac(t,e,a,r,i,l){return null}const ic=X(oc,[["render",ac]]),Sy="",rc={name:"IdmIceEdge",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[ice-edge] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(86, 169, 230, 0)"],[1/255,"rgba(86, 169, 230, 0)"],[25/255,"rgba(86, 169, 230, 1)"],[25/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 84, 39, 1)"],[250/255,"rgba(230, 84, 39, 1)"],[1,"rgba(230, 84, 39, 1)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},lc={key:0};function nc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",lc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-edge",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",{style:{color:"rgba(var(--v-theme-black), 0.7)"}},"%",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"70",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"90",-1),o.createElementVNode("span",null,null,-1)]),4)])):o.createCommentVNode("",!0)}const sc=X(rc,[["render",nc]]),Ny="",cc={name:"IdmCover",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[ice-cover] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(68, 1, 84, 0)"],[1/255,"rgba(63, 72, 137, 0)"],[50/255,"rgba(53, 125, 177, 1)"],[100/255,"rgba(33, 145, 140, 1)"],[150/255,"rgba(45, 178, 125, 1)"],[200/255,"rgba(112, 207, 87, 1)"],[250/255,"rgba(253, 231, 37, 0.8)"],[1,"rgba(253, 231, 37, 1)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},mc={key:0};function dc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",mc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-cover",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"%",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,"60",-1),o.createElementVNode("span",null,"80",-1),o.createElementVNode("span",null,"100",-1)]),4)])):o.createCommentVNode("",!0)}const hc=X(cc,[["render",dc],["__scopeId","data-v-3d1a7675"]]),Vy="",pc={name:"IdmThickness",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[ice-thickness] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(4, 6, 19, 0)"],[1/255,"rgba(4, 6, 19, 0)"],[20/255,"rgba(51, 50, 102, 1)"],[40/255,"rgba(63, 82, 158, 1)"],[50/255,"rgba(66, 123, 183, 1)"],[60/255,"rgba(92, 161, 197, 1)"],[80/255,"rgba(134, 199, 212, 0.7)"],[100/255,"rgba(134, 199, 212, 1)"],[150/255,"rgba(234, 253, 2536, 0.8)"],[250/255,"rgba(234, 253, 2536, 0.9)"],[1,"rgba(234, 253, 2536, 1)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},gc={key:0};function uc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",gc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-thickness",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.6",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1)]),4)])):o.createCommentVNode("",!0)}const fc=X(pc,[["render",uc]]),Py="",yc={name:"IdmPrecip3h",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},deeimmediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[precip3h] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(59, 126, 162, 0)"],[14/255,"rgba(84,170,230, 0)"],[15/255,"rgba(172, 210, 255, 0.8)"],[20/255,"rgba(51,202,248,0.8)"],[30/255,"rgba(3,248,103,0.8)"],[49/255,"rgba(14,201,3,0.8)"],[57/255,"rgba(190,226,2,0.8)"],[73/255,"rgba(248,1,1,0.8)"],[82/255,"rgba(197,5,58,0.8)"],[1,"rgba(197,5,58,0.8)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},bc={key:0};function wc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",bc,[o.createElementVNode("div",{class:"legend-bars-gl4 precip3h",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"mm",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"7",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1)]),4)])):o.createCommentVNode("",!0)}const xc=X(yc,[["render",wc]]),My="",kc={name:"IdmVisibility",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{right:10,program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[visibility] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(189,50,160,0.8)"],[8/255,"rgba(208,56,56,0.8)"],[27/255,"rgba(190,226,2,0.8)"],[60/255,"rgba(3,236,118,0.8)"],[160/255,"rgba(172, 210,255,0.8)"],[161/255,"rgba(172, 210,255,0)"],[1,"rgba(144,144,144,0)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},_c={key:0};function Lc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",_c,[o.createElementVNode("div",{class:"legend-bars-gl4 visibility",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"nm",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const zc=X(kc,[["render",Lc]]),Ty="",Cc={name:"IdmWaterTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[water-temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgba(95, 143, 197)"],[46/255,"rgba(95, 143, 197)"],[69/255,"rgb(80, 140, 62)"],[92/255,"rgb(121, 146, 28)"],[115/255,"rgb(171, 161, 14)"],[138/255,"rgb(223, 177, 69)"],[161/255,"rgb(243, 150, 6)"],[184/255,"rgb(236, 95, 21)"],[207/255,"rgb(190, 65, 18)"],[230/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},vc={key:0};function Sc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",vc,[o.createElementVNode("div",{class:"legend-bars-gl4 water-temp",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Nc=X(Cc,[["render",Sc]]),Ey="",Vc={name:"IdmTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Pe,etime:void 0,right:10}},watch:{"factor.version":{handler(){var t;(t=this.factor)!=null&&t.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const t=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(t+e),console.log("[temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const t=[[0,"rgb(149, 137, 211)"],[100/255,"rgb(149, 137, 211)"],[110/255,"rgb(150, 209, 216)"],[120/255,"rgb(129, 204, 197)"],[130/255,"rgb(103, 180, 186)"],[140/255,"rgb(95, 143, 197)"],[150/255,"rgb(80, 140, 62)"],[160/255,"rgb(121, 146, 28)"],[170/255,"rgb(171, 161, 14)"],[180/255,"rgb(223, 177, 6)"],[190/255,"rgb(243, 150, 6)"],[200/255,"rgb(236, 95, 21)"],[210/255,"rgb(190, 65, 18)"],[220/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,t);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,ue.vertexSchema,ue.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const t=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,t)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Pc={key:0};function Mc(t,e,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Pc,[o.createElementVNode("div",{class:"legend-bars-gl4 temp",style:o.normalizeStyle({right:i.right+"px"})},e[0]||(e[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"-20",-1),o.createElementVNode("span",null,"-10",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Tc=X(Vc,[["render",Mc]]),Dy="",Ec={name:"IdmGlLayer",components:{IdmWindBarb:Es,IdmWindParticle:Is,IdmCurrentDirection:Gs,IdmCurrentParticle:js,IdmWave:Us,IdmSigWaveHeight:Ks,IdmSwell:tc,IdmPrmsl:ic,IdmIceEdge:sc,IdmIceCover:hc,IdmIceThickness:fc,IdmPrecip3h:xc,IdmVisibility:zc,IdmWaterTemp:Nc,IdmTemp:Tc},props:{simple:{type:Boolean,default:!1},isLogin:{type:Boolean,default:!1},theme:{type:String},map:{type:Object},mapFeather:{type:String},gateway:{type:String},assistGateway:{type:Array,default:[]},defaultMeteoToken:{type:String},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},realTime:{type:String},forecastModel:{type:String},beforeLayer:{type:String}},emits:["forecastModel","menuToggle","weatherCheckList","autoActive","weatherRendered"],data(){return{right:10,toggle:!1,autoActive:!0,weatherWeight:0,allLayers:[...je.LayerHelper.WEATHER_LAYERS],tagLayers:[...je.LayerHelper.WEATHER_LAYERS.filter(t=>!t.hide)],checkList:[],renderKey:"",iceToggleValue:void 0,waveToggleValue:void 0,weatherLayers:{},activeWeatherLayers:[],cache:{v:"0.0.1",versionKey:"weatherLayerCacheVersionGL4",autoActiveKey:"autoActiveCacheGL4",checkListKey:"weatherCheckListCacheGL4"},models:{},currentModel:localStorage.getItem("forecastModelCacheGL4")==="GFS"?"GFS":"ECMWF",zoom:6,viewport:void 0,particleFactor:void 0,showWindParticle:!0,showCurrentParticle:!0,legendToggle:!1,legend:{barbs:[2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,0],current:[{label:"0-0.5 kts",size:.3,color:"rgb(58, 164, 58)"},{label:"0.5-1 kts",size:.4,color:"#ffff00"},{label:"1-1.5 kts",size:.6,color:"#ff9500"},{label:"1.5-2 kts",size:.8,color:"#f44336"},{label:">= 2 kts",size:1,color:"#e4711e"}],sigWaveHeight:[{label:"< 2 m",color:"rgba(0,235,156,0)"},{label:"2-3 m",color:"rgba(0,235,156,0.4)"},{label:"3-4 m",color:"#ffed00"},{label:"4-5 m",color:"#ff9800"},{label:"5-6 m",color:"#f77800"},{label:"6-7 m",color:"#e4711e"},{label:"7-8 m",color:"#e06128"},{label:"8-9 m",color:"#dc5132"},{label:"9-10 m",color:"#d5453c"},{label:"10-12 m",color:"#cd3a46"},{label:"12-14 m",color:"#be2c50"},{label:"> 14 m",color:"#aa1a5a"}]}}},computed:{listStyle(){return this.simple?{top:this.top+"px",left:this.toggle?"0px":"-280px"}:{top:this.top+"px",right:this.toggle?"0px":"-280px"}},computeDateZ(){return function(t){var e;if(t){const a=S(t);return`${(e=a==null?void 0:a.utc())==null?void 0:e.format("MMM-DD/HHmm")}Z`}return"-"}},computeDateUpdate(){return function(t){return t?S(t).fromNow():"-"}},overlaysKeys(){return this.tagLayers.filter(t=>t.overlays).map(t=>t.key)},rendersKeys(){return this.allLayers.filter(t=>!t.overlays&&t.enabled).map(t=>t.key)},showTipMenu(){return this.checkList.includes("wind")||this.checkList.includes("current-direction")||this.checkList.includes("sig-wave-height")},barbsIconName(){var e,a,r;const t=[];for(let i=0;i<((a=(e=this.legend)==null?void 0:e.barbs)==null?void 0:a.length);i++){const l=((r=this.legend)==null?void 0:r.barbs[i])||0,n=l<10?`00${l}kts`:l<100?`0${l}kts`:`${l}kts`;t.push("icon-a-"+n)}return t}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.weatherLayers,this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})}},currentModel:{handler(t,e){this.$emit("forecastModel",t),localStorage.setItem("forecastModelCacheGL4",t)},immediate:!0},forecastModel:{handler(t,e){t&&t!==e&&this.handleWeatherLayerChange({sourceChanged:!0})}},map:{handler(){this.map&&(this.fetchCache(),this.map.on("move",this.handleMove4Weather),this.viewport=new To(this.map),this.handleRampColorInitial())},immediate:!0},realTime:{handler(t,e){t&&e&&S(t).utc().format("yyyy-MM-DD HH")!==S(e).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.fetchWeatherLayers()})},immediate:!0},renderKey:{handler(t,e){if(t&&t!==e){const a=this.checkList.filter(r=>!this.rendersKeys.some(i=>i===r));t==="wave-group"?(this.waveToggleValue=this.waveToggleValue||"sig-wave",this.checkList=[...a,"wave-group",this.waveToggleValue]):t==="ice-forecast"?(this.iceToggleValue=this.iceToggleValue||"ice-cover",this.checkList=[...a,"ice-forecast",this.iceToggleValue||"ice-cover"]):this.checkList=[...a,t]}else!t&&e&&(this.checkList=this.checkList.filter(a=>a!==e))}},checkList:{handler(t,e){var a,r,i,l,n,c;this.handleCheckListChange(t,e),this.$emit("weatherCheckList",t),this.autoActive&&this.checkList.length?(i=(r=(a=this.$parent)==null?void 0:a.$refs)==null?void 0:r.idmBottomBar)==null||i.handleToggle("weather",!0):(c=(n=(l=this.$parent)==null?void 0:l.$refs)==null?void 0:n.idmBottomBar)==null||c.handleToggle("weather",!1)}},autoActive:{handler(t){var e,a,r,i,l,n;localStorage.setItem(this.cache.autoActiveKey,this.autoActive),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(c=>this.checkList.includes(c.key)):[],this.handleWeatherLayerChange(),this.autoActive&&this.checkList.length?(r=(a=(e=this.$parent)==null?void 0:e.$refs)==null?void 0:a.idmBottomBar)==null||r.handleToggle("weather",!0):(n=(l=(i=this.$parent)==null?void 0:i.$refs)==null?void 0:l.idmBottomBar)==null||n.handleToggle("weather",!1),this.$emit("autoActive",this.autoActive)}},iceToggleValue:{handler(t){if(t){const e=this.checkList.filter(a=>!this.rendersKeys.some(r=>r===a));this.checkList=[...e,"ice-forecast",this.iceToggleValue]}}},waveToggleValue:{handler(t){if(t){const e=this.checkList.filter(a=>!this.rendersKeys.some(r=>r===a));this.checkList=[...e,"wave-group",this.waveToggleValue]}}},showWindParticle:{handler(t){let e="wind-particle";this.weatherLayers[e].particle=t,this.weatherLayers[e].version=Math.random()+1}},showCurrentParticle:{handler(t){let e="current-particle";this.weatherLayers[e].particle=t,this.weatherLayers[e].version=Math.random()+1}},isLogin:{handler(t){t?this.fetchModels():this.models={}},immediate:!0}},mounted(){this.fetchModels()},methods:{arraysEqual(t,e){if((t==null?void 0:t.length)!==(e==null?void 0:e.length))return!1;for(let a=0;a<(t==null?void 0:t.length);a++)if((t==null?void 0:t[a])!==(e==null?void 0:e[a]))return!1;return!0},fetchCache(){var a,r;const t=localStorage.getItem(this.cache.versionKey);this.cache.v!==t&&(localStorage.removeItem(this.cache.autoActiveKey),localStorage.removeItem(this.cache.checkListKey),localStorage.setItem(this.cache.versionKey,this.cache.v));let e=localStorage.getItem(this.cache.autoActiveKey);this.autoActive=e!=="false",localStorage.setItem(this.cache.autoActiveKey,this.autoActive),e=localStorage.getItem(this.cache.checkListKey),this.waveToggleValue=(a=JSON.parse(e))!=null&&a.some(i=>i==="swell")?"swell":void 0,this.iceToggleValue=(r=JSON.parse(e))!=null&&r.some(i=>i==="ice-thickness")?"ice-thickness":void 0,this.checkList=JSON.parse(e||JSON.stringify(["wind","sig-wave-height"])),this.checkList.find(i=>this.rendersKeys.includes(i))&&(this.renderKey=this.checkList.find(i=>this.rendersKeys.includes(i))),localStorage.setItem(this.cache.checkListKey,JSON.stringify(this.checkList))},handleMenuToggle(){this.$emit("menuToggle","weatherLayers")},handleFastWeatherToggle(t){let e=[];this.checkList.includes(t)?e=this.checkList.filter(a=>a!==t):(e=[...this.checkList,t],this.checkList=e),this.handleCheckListChange(e,this.checkList)},handleCheckListChange(t,e){if(this.arraysEqual(t,e))return!1;const a=[...new Set(t)],r=a==null?void 0:a.filter(n=>!(e!=null&&e.includes(n)))[0],i=e==null?void 0:e.filter(n=>!(a!=null&&a.includes(n)))[0],l=this.checkList.filter(n=>!this.rendersKeys.some(c=>c===n));r&&(r==="ice-cover"||r==="ice-thickness"||r==="ice-forecast"?(this.checkList=[...l,"ice-forecast",this.iceToggleValue||"ice-cover"],this.iceToggleValue=this.iceToggleValue||"ice-cover"):r==="sig-wave"||r==="swell"||r==="wave-group"?(this.checkList=[...l,"wave-group",this.waveToggleValue||"sig-wave"],this.waveToggleValue=this.waveToggleValue||"sig-wave"):this.rendersKeys.includes(r)&&(this.checkList=[...l,r])),i&&(i==="ice-forecast"?(this.checkList=a.filter(n=>!["ice-cover","ice-thickness","ice-forecast"].includes(n)),this.iceToggleValue=void 0):i==="wave-group"?(this.checkList=a.filter(n=>!["wave-group","sig-wave","swell"].includes(n)),this.waveToggleValue=void 0):this.checkList=a),this.checkList.includes("wind-particle")&&(this.showWindParticle=!0),this.checkList.includes("current-particle")&&(this.showCurrentParticle=!0),localStorage.setItem(this.cache.checkListKey,JSON.stringify(a)),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(n=>a.includes(n.key)):[],this.handleWeatherLayerChange()},async fetchModels(){this.models={};const t=await le.get(`${this.gateway}/api/arc/meteo2/models2`,{headers:{Authorization:this.defaultMeteoToken}});(t==null?void 0:t.data.code)===0&&(this.models=t==null?void 0:t.data.data)},async fetchWeatherLayers(t={}){var i,l,n,c,s,d,m,p,g;const e=new Date().valueOf();let a=0,r=0;if(this.map){const y=((i=this.map)==null?void 0:i.getZoom())+1,u=(l=this.map)==null?void 0:l.getBounds(),h=`${u._sw.lng},${u._sw.lat},${u._ne.lng},${u._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const f=je.LayerHelper.WEATHER_LAYERS.find(k=>{var w;return((w=k.peer)==null?void 0:w.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&f.weight?this.weatherWeight:this.weatherWeight+f.weight:this.weatherWeight=this.weatherWeight&f.weight?this.weatherWeight-f.weight:this.weatherWeight}if(this.weatherWeight>0){let f=this.weatherWeight;if(f>0){const k=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],w=await le.get(`${k}/api/arc/weather/layers2/links?l=${f}&v=${this.forecastModel}&z=${y}&bbox=${h}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(r=new Date().valueOf()-(e+a),console.log("weather links elapsed: ",r,", total: ",a+=r),((c=w==null?void 0:w.data)==null?void 0:c.code)===0){const b=(s=w==null?void 0:w.data)==null?void 0:s.data,x=[];for(const L in b)x.push(le.get(b[L],{headers:{Authorization:this.defaultMeteoToken,key:L},responseType:/\.(jpg|png)$/.test(b[L])?"blob":"json"}).catch(z=>{console.log(`[${L}] fetch layer error: ${z}`)}));const C=await Promise.all(x);this.weatherLayers={},C.map(L=>{var M,T,E,I;const z=((M=L==null?void 0:L.data)==null?void 0:M.data)||(L==null?void 0:L.data);let v=(E=(T=L==null?void 0:L.config)==null?void 0:T.headers)==null?void 0:E.key;v&&z&&(this.weatherLayers[v]={raw:z,type:((I=L==null?void 0:L.config)==null?void 0:I.responseType)==="blob"?"image":"json",etime:w.data.etime})})}if(r=new Date().valueOf()-(e+a),console.log("weather layers elapsed: ",r,", total: ",a+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const b=(d=this.weatherLayers["swell-direction"])==null?void 0:d.raw,x=(m=this.weatherLayers["swell-height"])==null?void 0:m.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:b,height:{raw:x},etime:w.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const b=(p=this.weatherLayers["current-direction"])==null?void 0:p.raw,x=(g=this.weatherLayers["current-speed"])==null?void 0:g.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:b,speed:{raw:x},etime:w.data.etime}}}}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json(),this.$nextTick(()=>{var f,k,w,b,x;(x=(b=(w=(k=(f=this.$parent)==null?void 0:f.$refs)==null?void 0:k.idmBottomBar)==null?void 0:w.$refs)==null?void 0:b.capture)==null||x.captureCurrentFrame()})}},handleWeatherLayerToggle(){for(const t in this.weatherLayers)this.weatherLayers[t].active=!1,this.weatherLayers[t].version=Math.random()+1;for(const t of this.activeWeatherLayers){let e=t.key;e==="current-direction"&&(e="current"),this.weatherLayers[e]&&(this.weatherLayers[e].active=!0,this.weatherLayers[e].version=Math.random()+1,e==="wind-particle"&&(this.weatherLayers[e].particle=this.showWindParticle),e==="current-particle"&&(this.weatherLayers[e].particle=this.showCurrentParticle))}},handleWeatherLayerChange(t={sourceChanged:!1}){var a;const e=(a=this.activeWeatherLayers)==null?void 0:a.reduce((r,i)=>r+(r&(i==null?void 0:i.weight)?0:i==null?void 0:i.weight),0);t!=null&&t.sourceChanged||this.weatherWeight!==e?(this.weatherWeight=e,this.fetchWeatherLayers()):this.handleWeatherLayerToggle()},handleRampColorInitial(){var t,e,a,r,i,l,n,c,s,d,m,p;this.viewport.map.getSource((t=this.viewport)==null?void 0:t.rampColorSource)||this.viewport.map.addSource((e=this.viewport)==null?void 0:e.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(i=this.viewport)==null?void 0:i.rampColorLayer,source:(l=this.viewport)==null?void 0:l.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((c=this.viewport)==null?void 0:c.particleSource,{type:"canvas",canvas:(s=this.viewport)==null?void 0:s.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((d=this.viewport)==null?void 0:d.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(m=this.viewport)==null?void 0:m.particleLayer,source:(p=this.viewport)==null?void 0:p.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var l,n,c,s,d,m,p;const t=new Date().valueOf();let e=0,a=0;const r=(l=this.map)==null?void 0:l.getBounds(),i=(n=this.map)==null?void 0:n.getZoom();if(r&&i){const g=P.LngLatHelper.convertToStdLng(r._sw.lng),y=P.LngLatHelper.convertToStdLng(r._ne.lng),u=Math.floor(r._sw.lat),h=Math.ceil(r._ne.lat);for(const f in this.weatherLayers){let k=!1;if(this.weatherLayers[f].active&&this.weatherLayers[f].type==="json"){let w=[];if(f==="swell"){k=!0;const b=((c=this.weatherLayers[f])==null?void 0:c.direction)||{};for(const C in b)if(C>u&&C<h&&(!(i<=this.zoom)||C%(i<2?10:i<4?5:3)===0)){const L=b[C].lng;g>y?L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if((z>=g&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}}):L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(g<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if(z>=g&&z<=y&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}})}a=new Date().valueOf()-(t+e),console.log("swell direction elapsed: ",a,", total: ",e+=a);const x=this.weatherLayers[f].height;if(x){if(!x.data){const C=[];for(const L in(s=x.raw)==null?void 0:s.LineString){const z=x.raw.LineString[L];for(const v of z)C.push(D.lineString(v,{val:Number(L)}));x.data=D.featureCollection(C)}}if(x.data){const C=this.handleBboxClip(x.data,r);w=w.concat(C)}a=new Date().valueOf()-(t+e),console.log("swell height elapsed: ",a,", total: ",e+=a)}}else if(f==="current"){k=!0;const b=((d=this.weatherLayers[f])==null?void 0:d.direction)||{};for(const C in b)if(C>u&&C<h&&(!(i<=this.zoom)||C%(i<2?10:i<4?5:3)===0)){const L=b[C].lng;g>y?L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if((z>=g&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}}):L.forEach((z,v)=>{var M,T,E,I,Z,Y;if(g<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const $=D.point([z,C],{val:((M=b[C].val)==null?void 0:M[v])||((T=b[C].dir)==null?void 0:T[v]),spd:(E=b[C].spd)==null?void 0:E[v]});w.push($)}}else if(z>=g&&z<=y&&(!(i<=this.zoom)||z%(i<this.zoom/2?5:3)===0)){const $=D.point([z,C],{val:((I=b[C].val)==null?void 0:I[v])||((Z=b[C].dir)==null?void 0:Z[v]),spd:(Y=b[C].spd)==null?void 0:Y[v]});w.push($)}})}a=new Date().valueOf()-(t+e),console.log("current direction elapsed: ",a,", total: ",e+=a);const x=this.weatherLayers[f].speed;if(x){if(!x.data){const L=[];for(const z in(m=x.raw)==null?void 0:m.Polygon){const v=x.raw.Polygon[z];for(const M of v)L.push(D.polygon(M,{val:Number(z)}))}x.data=D.featureCollection(L)}const C=i<this.zoom?x.data.features.filter(L=>L.properties.val>.5):x.data.features;w=w.concat(C),a=new Date().valueOf()-(t+e),console.log("current speed elapsed: ",a,", total: ",e+=a)}}else if(f==="wind"){k=!0;const b=this.weatherLayers.wind.raw;for(const x in b)if(x>u&&x<h&&(!(i<=this.zoom)||x%(i<2?10:i<4?5:3)===0)){const C=b[x].lng;g>y?C.forEach((L,z)=>{var v,M,T,E;if(i<2){if((L>=0&&L<=360||L>=-360&&L<=0)&&L%10===0){const I=D.point([L,x],{dir:((v=b[x].val)==null?void 0:v[z])||((M=b[x].dir)==null?void 0:M[z]),spd:b[x].spd[z]});w.push(I)}}else if((L>=g&&L<=180||L>=-180&&L<=y)&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const I=D.point([L,x],{dir:((T=b[x].val)==null?void 0:T[z])||((E=b[x].dir)==null?void 0:E[z]),spd:b[x].spd[z]});w.push(I)}}):C.forEach((L,z)=>{var v,M,T,E;if(i<2){if((L>=0&&L<=360||L>=-360&&L<=0)&&L%10===0){const I=D.point([L,x],{dir:((v=b[x].val)==null?void 0:v[z])||((M=b[x].dir)==null?void 0:M[z]),spd:b[x].spd[z]});w.push(I)}}else if(L>=g&&L<=y&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const I=D.point([L,x],{dir:((T=b[x].val)==null?void 0:T[z])||((E=b[x].dir)==null?void 0:E[z]),spd:b[x].spd[z]});w.push(I)}})}a=new Date().valueOf()-(t+e),console.log("wind barb elapsed: ",a,", total: ",e+=a)}else if(f==="sig-wave-height"){if(this.weatherLayers[f].data)w=this.weatherLayers[f].data;else{k=!0;const b=this.weatherLayers[f].raw;if(b){const x=[];for(const C in b.Polygon){const L=b.Polygon[C];for(const z of L)x.push(D.polygon(z,{val:Number(C)}))}for(const C in b.MultiPolygon){const L=b.MultiPolygon[C];for(const z of L)x.push(D.multiPolygon(z,{val:Number(C)}))}for(const C in b.Point){const L=b.Point[C];for(let z=0;z<((p=L.lng)==null?void 0:p.length);z++)x.push(D.point([L.lng[z],C],{val:Number(L.val[z])}))}w=w.concat(x)}}a=new Date().valueOf()-(t+e),console.log("sig-wave-height elapsed: ",a,", total: ",e+=a)}else if(f==="prmsl"){if(this.weatherLayers[f].data)w=this.weatherLayers[f].data;else{k=!0;const b=this.weatherLayers[f].raw;if(b){const x=[];for(const C in b.LineString){const L=b.LineString[C];for(const z of L)x.push(D.lineString(z,{val:Number(C)}))}for(const C in b.Point)b.Point[C].lng.forEach((L,z)=>{L=P.LngLatHelper.convertToStdLng(L),x.push(D.point([L,C],{val:b.Point[C].val[z],type:b.Point[C].type[z]}))});w=w.concat(x)}}a=new Date().valueOf()-(t+e),console.log("prmsl elapsed: ",a,", total: ",e+=a)}w.length&&(this.weatherLayers[f].data=D.featureCollection(w)),k&&(this.weatherLayers[f].version=Math.random()+1)}}}},handleMove4Weather(){for(const t in this.weatherLayers)this.weatherLayers[t].active&&this.weatherLayers[t].type==="image"&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1);this.handleDrawWeather4Json()},handleBboxClip(t,e){const a=[],r=P.LngLatHelper.convertToStdLng(e._sw.lng),i=P.LngLatHelper.convertToStdLng(e._ne.lng);return t.features.forEach(l=>{if(l.geometry.type!=="Point")if(r>i){let n=[r,e._sw.lat,180,e._ne.lat],c=D.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c),n=[-180,e._sw.lat,i,e._ne.lat],c=D.bboxClip(l,n),c.geometry.coordinates.length&&a.push(c)}else{const n=[r,e._sw.lat,i,e._ne.lat],c=D.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c)}else a.push(l)}),a}}},Dc={class:"idm-gl4-meteo-layers"},Rc={key:0,class:"legend-tip-btn-gl4"},Bc={class:"d-flex flex-row justify-center align-center"},Ic={class:"text-caption"},Ac={class:"d-flex flex-row justify-center align-center"},Fc={key:0,style:{width:"24px",height:"12px",border:"1px solid rgba(var(--v-border-color), var(--v-border-opacity))"}},Gc={class:"text-caption px-2"},Wc={class:"d-flex flex-row justify-start align-center"},Oc={class:"d-flex flex-row justify-center align-center",style:{width:"40px"}},Zc={class:"text-caption"},jc={class:"d-flex justify-start align-center ga-3"},Hc={class:"text-h5 font-weight-medium"},Xc={key:0,class:"w-100 d-flex justify-space-between align-center ga-1 mb-2 px-3"},Yc={key:0,class:"d-flex justify-start align-center ga-4 pl-6"},Uc={key:1,class:"d-flex justify-start align-center ga-4 pl-6"},$c={class:"text-body-1 py-2"},Jc={class:"text-body-1 font-weight-medium"},Kc={class:"text-body-2 text-label"},qc={class:"text-body-2 text-label"},Qc={class:"text-body-2 text-label mb-3"},em={class:"text-body-1 font-weight-medium"},tm={class:"text-body-2 text-label"},om={class:"text-body-2 text-label"},am={class:"text-body-2 text-label mb-3"},im={class:"text-body-1 py-2"},rm={class:"text-body-1 font-weight-medium"},lm={class:"text-body-2 text-label"},nm={class:"text-body-2 text-label"},sm={class:"text-body-2 text-label mb-3"},cm={class:"text-body-1 font-weight-medium"},mm={class:"text-body-2 text-label"},dm={class:"text-body-2 text-label"},hm={class:"text-body-2 text-label mb-3"},pm={class:"text-body-1 py-2"},gm={class:"text-body-1 font-weight-medium"},um={class:"text-body-2 text-label"},fm={class:"text-body-2 text-label"},ym={class:"text-body-2 text-label mb-3"};function bm(t,e,a,r,i,l){var G,W,U,A,B,j,N,q,re,he,ge,ee,se,pe,xe;const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip"),s=o.resolveComponent("VCol"),d=o.resolveComponent("VRow"),m=o.resolveComponent("VCardText"),p=o.resolveComponent("VDivider"),g=o.resolveComponent("VCard"),y=o.resolveComponent("VSwitch"),u=o.resolveComponent("VBtnToggle"),h=o.resolveComponent("VCardTitle"),f=o.resolveComponent("VCardItem"),k=o.resolveComponent("VCheckbox"),w=o.resolveComponent("VRadio"),b=o.resolveComponent("IdmWindBarb"),x=o.resolveComponent("IdmSigWaveHeight"),C=o.resolveComponent("IdmCurrentDirection"),L=o.resolveComponent("IdmPrmsl"),z=o.resolveComponent("IdmWindParticle"),v=o.resolveComponent("IdmCurrentParticle"),M=o.resolveComponent("IdmWave"),T=o.resolveComponent("IdmSwell"),E=o.resolveComponent("IdmIceEdge"),I=o.resolveComponent("IdmIceCover"),Z=o.resolveComponent("IdmIceThickness"),Y=o.resolveComponent("IdmPrecip3h"),$=o.resolveComponent("IdmVisibility"),ae=o.resolveComponent("IdmWaterTemp"),V=o.resolveComponent("IdmTemp");return o.openBlock(),o.createElementBlock("div",Dc,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+46+"px",right:i.right+"px"})},[o.createVNode(c,{text:t.$t("weather.weatherLayers"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:O})=>[o.createVNode(n,o.mergeProps(O,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>e[9]||(e[9]=[o.createElementVNode("i",{class:"iconfont icon-Weather text-h4"},null,-1)])),_:2,__:[9]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4),l.showTipMenu?(o.openBlock(),o.createElementBlock("div",Rc,[o.createElementVNode("div",{class:o.normalizeClass(["menu-bar-box pa-1 rounded",a.simple?"simple":""]),style:o.normalizeStyle({right:i.right+"px",top:a.simple?"394px":"490px"})},[o.createVNode(c,{text:t.$t("weather.legend"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:O})=>[o.createVNode(n,o.mergeProps(O,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.legendToggle?"bg-primary active-border":""],onClick:e[0]||(e[0]=te=>i.legendToggle=!i.legendToggle)}),{default:o.withCtx(()=>e[10]||(e[10]=[o.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[10]},1040,["class"])]),_:1},8,["text","open-on-focus","open-on-hover"])],6),i.legendToggle?(o.openBlock(),o.createBlock(g,{key:0,elevation:"16",class:"card-info d-flex justify-center align-start",style:o.normalizeStyle({position:"absolute",top:a.simple?"200px":"340px",right:i.right+50+"px"})},{default:o.withCtx(()=>[o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"110px"}},{default:o.withCtx(()=>[e[11]||(e[11]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wind Level",-1)),o.createVNode(d,{class:"ma-0 ml-n1 text-body-2"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.barbs,(O,te)=>(o.openBlock(),o.createBlock(s,{key:O,cols:"6",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Bc,[o.createElementVNode("i",{class:o.normalizeClass(["iconfont",l.barbsIconName[te]]),style:o.normalizeStyle({color:a.theme==="dark"?"#fff":"#000"})},null,6),o.createElementVNode("span",Ic,o.toDisplayString(Number(O)<10?`00${O}kts`:Number(O)<100?`0${O}kts`:`${O}kts`),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[11]}),o.createVNode(p,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"100px"}},{default:o.withCtx(()=>[e[12]||(e[12]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wave Height",-1)),o.createVNode(d,{class:"ma-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.sigWaveHeight,(O,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Ac,[te===0?(o.openBlock(),o.createElementBlock("div",Fc)):(o.openBlock(),o.createElementBlock("div",{key:1,style:o.normalizeStyle({width:"24px",height:"12px",background:O.color})},null,4)),o.createElementVNode("div",Gc,o.toDisplayString(O.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[12]}),o.createVNode(p,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"90px"}},{default:o.withCtx(()=>[e[13]||(e[13]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Current",-1)),o.createVNode(d,{class:"ma-0 ml-n4"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.current,(O,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-center align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Wc,[o.createElementVNode("div",Oc,[o.createElementVNode("i",{class:"iconfont icon-a-direction-arrow text-label",style:o.normalizeStyle({fontSize:40*O.size+"px"})},null,4)]),o.createElementVNode("div",Zc,o.toDisplayString(O.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[13]})]),_:1},8,["style"])):o.createCommentVNode("",!0)])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["available-layers transition d-flex flex-column justify-start align-start",i.toggle?"right-bar":""]),style:o.normalizeStyle(l.listStyle)},[o.createElementVNode("div",{class:o.normalizeClass(["header-box w-100 d-flex justify-space-between align-center",a.simple?"px-3":"px-4"])},[o.createElementVNode("div",jc,[o.createElementVNode("div",Hc,o.toDisplayString(t.$t("weather.weather")),1),o.createVNode(y,{modelValue:i.autoActive,"onUpdate:modelValue":e[1]||(e[1]=O=>i.autoActive=O),class:"small-switch",color:"primary","base-color":"disabled",inset:"","hide-details":""},null,8,["modelValue"])]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleMenuToggle},{default:o.withCtx(()=>e[14]||(e[14]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[14]},8,["onClick"])],2),a.simple?(o.openBlock(),o.createElementBlock("div",Xc,[o.createElementVNode("div",null,o.toDisplayString(t.$t("weather.forecastModel")),1),o.createVNode(u,{modelValue:i.currentModel,"onUpdate:modelValue":e[2]||(e[2]=O=>i.currentModel=O),rounded:"",height:"28",density:"compact",group:""},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"28",value:"GFS",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="GFS"?"primary":"","base-color":""},{default:o.withCtx(()=>e[15]||(e[15]=[o.createTextVNode(" NOAA ",-1)])),_:1,__:[15]},8,["color"]),o.createVNode(n,{density:"compact",height:"28",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="ECMWF"?"primary":"","base-color":"",value:"ECMWF"},{default:o.withCtx(()=>e[16]||(e[16]=[o.createTextVNode(" ECMWF ",-1)])),_:1,__:[16]},8,["color"])]),_:1},8,["modelValue"])])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["list-box w-100 scroll overflow-y-auto",[i.autoActive?"":"cursor-not-allowed",a.simple?"px-3":"pl-4 pr-2"]])},[o.createVNode(g,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(f,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.overlays")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(O=>O.overlays),O=>(o.openBlock(),o.createBlock(k,{key:O.key,modelValue:i.checkList,"onUpdate:modelValue":e[3]||(e[3]=te=>i.checkList=te),value:O.key,label:t.$t(`weather.${O.locale}`),disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"flex-1-0-100 text-body-2","hide-details":""},null,8,["modelValue","value","label","disabled"]))),128))]),_:1})]),_:1}),o.createVNode(g,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(f,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.renders")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(O=>!O.overlays),O=>(o.openBlock(),o.createElementBlock(o.Fragment,{key:O.key},[o.createVNode(w,{modelValue:i.renderKey,"onUpdate:modelValue":e[4]||(e[4]=te=>i.renderKey=te),label:t.$t(`weather.${O.locale}`),value:O.key,disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"text-body-2 py-1","hide-details":"",onClick:te=>i.renderKey=i.renderKey===O.key?"":O.key},null,8,["modelValue","label","value","disabled","onClick"]),i.renderKey==="wind-particle"&&O.key==="wind-particle"?(o.openBlock(),o.createElementBlock("div",Yc,[o.createElementVNode("span",null,o.toDisplayString(t.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showWindParticle,"onUpdate:modelValue":e[5]||(e[5]=te=>i.showWindParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",density:"compact",inset:"",style:{"font-size":"14px"},"hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="current-particle"&&O.key==="current-particle"?(o.openBlock(),o.createElementBlock("div",Uc,[o.createElementVNode("span",null,o.toDisplayString(t.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showCurrentParticle,"onUpdate:modelValue":e[6]||(e[6]=te=>i.showCurrentParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",inset:"",density:"compact",height:"20","hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="wave-group"&&O.key==="wave-group"?(o.openBlock(),o.createBlock(u,{key:2,modelValue:i.waveToggleValue,"onUpdate:modelValue":e[7]||(e[7]=te=>i.waveToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"sig-wave",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="sig-wave"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.significant")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="swell"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"swell"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.swell")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0),i.renderKey==="ice-forecast"&&O.key==="ice-forecast"?(o.openBlock(),o.createBlock(u,{key:3,modelValue:i.iceToggleValue,"onUpdate:modelValue":e[8]||(e[8]=te=>i.iceToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"ice-cover",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-cover"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.coverage")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-thickness"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"ice-thickness"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.thickness")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0)],64))),128))]),_:1})]),_:1}),o.createVNode(g,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(f,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("weather.forecastModel")),1)]),_:1})]),_:1}),o.createVNode(m,{class:""},{default:o.withCtx(()=>{var O,te,Me,Ce,be,ke,J,we,ie,ce,Se,Ee,Te,F,me,_e,Ne,Ve,H,ve,Q,We,Oe,Ze,Le,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,kt,_t,Lt,zt,Ct,vt,St,Nt,Vt,Pt,Mt,Tt,Et,Dt,Rt,Bt,It,At,Ft,Gt,Wt,Ot,Zt,jt,Ht,Xt,Yt,Ut,$t,Jt,Kt,qt,Qt,eo,to,oo,ao,io,ro,lo,no,so,co,mo,ho,po,go,uo,fo,yo,bo,wo,xo,ko,_o,Lo,zo,Co,vo,So,No,Vo;return[o.createElementVNode("div",$c,o.toDisplayString(t.$t("weather.atmospheric")),1),o.createElementVNode("div",Jc,o.toDisplayString((Me=(te=(O=i.models)==null?void 0:O.weather)==null?void 0:te.NOAA)==null?void 0:Me.source)+" "+o.toDisplayString((ke=(be=(Ce=i.models)==null?void 0:Ce.weather)==null?void 0:be.NOAA)==null?void 0:ke.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((ce=(ie=(we=(J=i.models)==null?void 0:J.weather)==null?void 0:we.NOAA)==null?void 0:ie.meta)==null?void 0:ce.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",Kc,o.toDisplayString(t.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",qc,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((F=(Te=(Ee=(Se=i.models)==null?void 0:Se.weather)==null?void 0:Ee.NOAA)==null?void 0:Te.meta)==null?void 0:F.availabilityTime)),1),o.createElementVNode("div",Qc,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Ve=(Ne=(_e=(me=i.models)==null?void 0:me.weather)==null?void 0:_e.NOAA)==null?void 0:Ne.meta)==null?void 0:Ve.initialisationTime)),1),o.createElementVNode("div",em,o.toDisplayString((Q=(ve=(H=i.models)==null?void 0:H.weather)==null?void 0:ve.ECMWF)==null?void 0:Q.source)+" "+o.toDisplayString((Ze=(Oe=(We=i.models)==null?void 0:We.weather)==null?void 0:Oe.ECMWF)==null?void 0:Ze.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((rt=(it=(at=(Le=i.models)==null?void 0:Le.weather)==null?void 0:at.ECMWF)==null?void 0:it.meta)==null?void 0:rt.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",tm,o.toDisplayString(t.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",om,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((ct=(st=(nt=(lt=i.models)==null?void 0:lt.weather)==null?void 0:nt.ECMWF)==null?void 0:st.meta)==null?void 0:ct.availabilityTime)),1),o.createElementVNode("div",am,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((pt=(ht=(dt=(mt=i.models)==null?void 0:mt.weather)==null?void 0:dt.ECMWF)==null?void 0:ht.meta)==null?void 0:pt.initialisationTime)),1),o.createVNode(p),o.createElementVNode("div",im,o.toDisplayString(t.$t("weather.wave")),1),o.createElementVNode("div",rm,o.toDisplayString((yt=(ft=(ut=(gt=i.models)==null?void 0:gt.marine)==null?void 0:ut.wave)==null?void 0:ft.NOAA)==null?void 0:yt.source)+" "+o.toDisplayString((kt=(xt=(wt=(bt=i.models)==null?void 0:bt.marine)==null?void 0:wt.wave)==null?void 0:xt.NOAA)==null?void 0:kt.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((vt=(Ct=(zt=(Lt=(_t=i.models)==null?void 0:_t.marine)==null?void 0:Lt.wave)==null?void 0:zt.NOAA)==null?void 0:Ct.meta)==null?void 0:vt.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",lm,o.toDisplayString(t.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",nm,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((Mt=(Pt=(Vt=(Nt=(St=i.models)==null?void 0:St.marine)==null?void 0:Nt.wave)==null?void 0:Vt.NOAA)==null?void 0:Pt.meta)==null?void 0:Mt.availabilityTime)),1),o.createElementVNode("div",sm,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Bt=(Rt=(Dt=(Et=(Tt=i.models)==null?void 0:Tt.marine)==null?void 0:Et.wave)==null?void 0:Dt.NOAA)==null?void 0:Rt.meta)==null?void 0:Bt.initialisationTime)),1),o.createElementVNode("div",cm,o.toDisplayString((Gt=(Ft=(At=(It=i.models)==null?void 0:It.marine)==null?void 0:At.wave)==null?void 0:Ft.ECMWF)==null?void 0:Gt.source)+" "+o.toDisplayString((jt=(Zt=(Ot=(Wt=i.models)==null?void 0:Wt.marine)==null?void 0:Ot.wave)==null?void 0:Zt.ECMWF)==null?void 0:jt.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString(($t=(Ut=(Yt=(Xt=(Ht=i.models)==null?void 0:Ht.marine)==null?void 0:Xt.wave)==null?void 0:Yt.ECMWF)==null?void 0:Ut.meta)==null?void 0:$t.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",mm,o.toDisplayString(t.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",dm,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((eo=(Qt=(qt=(Kt=(Jt=i.models)==null?void 0:Jt.marine)==null?void 0:Kt.wave)==null?void 0:qt.ECMWF)==null?void 0:Qt.meta)==null?void 0:eo.availabilityTime)),1),o.createElementVNode("div",hm,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((ro=(io=(ao=(oo=(to=i.models)==null?void 0:to.marine)==null?void 0:oo.wave)==null?void 0:ao.ECMWF)==null?void 0:io.meta)==null?void 0:ro.initialisationTime)),1),o.createVNode(p),o.createElementVNode("div",pm,o.toDisplayString(t.$t("weather.currents")),1),o.createElementVNode("div",gm,o.toDisplayString((co=(so=(no=(lo=i.models)==null?void 0:lo.marine)==null?void 0:no.current)==null?void 0:so.ECMWF)==null?void 0:co.source)+" "+o.toDisplayString((go=(po=(ho=(mo=i.models)==null?void 0:mo.marine)==null?void 0:ho.current)==null?void 0:po.ECMWF)==null?void 0:go.spatialResolution)+o.toDisplayString(t.$t("units.km"))+" "+o.toDisplayString((wo=(bo=(yo=(fo=(uo=i.models)==null?void 0:uo.marine)==null?void 0:fo.current)==null?void 0:yo.ECMWF)==null?void 0:bo.meta)==null?void 0:wo.days)+o.toDisplayString(t.$t("units.days")),1),o.createElementVNode("div",um,o.toDisplayString(t.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",fm,o.toDisplayString(t.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((zo=(Lo=(_o=(ko=(xo=i.models)==null?void 0:xo.marine)==null?void 0:ko.current)==null?void 0:_o.ECMWF)==null?void 0:Lo.meta)==null?void 0:zo.availabilityTime)),1),o.createElementVNode("div",ym,o.toDisplayString(t.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Vo=(No=(So=(vo=(Co=i.models)==null?void 0:Co.marine)==null?void 0:vo.current)==null?void 0:So.ECMWF)==null?void 0:No.meta)==null?void 0:Vo.initialisationTime)),1)]}),_:1})]),_:1})],2)],6),a.map?(o.openBlock(),o.createBlock(b,o.mergeProps({key:1,ref:"windBarb",map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-3",wind:(G=i.weatherLayers)==null?void 0:G.wind,"menu-toggle":a.menuToggle},t.$attrs),null,16,["map","map-feather","wind","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(x,o.mergeProps({key:2,map:a.map,"before-layer":"empty-layer-2","sig-wave-height":(W=i.weatherLayers)==null?void 0:W["sig-wave-height"],"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},t.$attrs),null,16,["map","sig-wave-height","menu-toggle","active-weather-layers"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(C,o.mergeProps({key:3,map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-2",current:(U=i.weatherLayers)==null?void 0:U.current,"menu-toggle":a.menuToggle},t.$attrs),null,16,["map","map-feather","current","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(L,o.mergeProps({key:4,map:a.map,"before-layer":"empty-layer-3",prmsl:(A=i.weatherLayers)==null?void 0:A.prmsl,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},t.$attrs,{theme:a.theme}),null,16,["map","prmsl","menu-toggle","active-weather-layers","theme"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(z,o.mergeProps({key:5,viewport:i.viewport,factor:(B=i.weatherLayers)==null?void 0:B["wind-particle"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(v,o.mergeProps({key:6,viewport:i.viewport,factor:(j=i.weatherLayers)==null?void 0:j["current-particle"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(M,o.mergeProps({key:7,viewport:i.viewport,factor:(N=i.weatherLayers)==null?void 0:N["sig-wave"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(T,o.mergeProps({key:8,map:a.map,viewport:i.viewport,factor:(q=i.weatherLayers)==null?void 0:q.swell,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers,simple:a.simple},t.$attrs),null,16,["map","viewport","factor","menu-toggle","active-weather-layers","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(E,o.mergeProps({key:9,viewport:i.viewport,factor:(re=i.weatherLayers)==null?void 0:re["ice-edge"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(I,o.mergeProps({key:10,viewport:i.viewport,factor:(he=i.weatherLayers)==null?void 0:he["ice-cover"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(Z,o.mergeProps({key:11,viewport:i.viewport,factor:(ge=i.weatherLayers)==null?void 0:ge["ice-thickness"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(Y,o.mergeProps({key:12,viewport:i.viewport,factor:(ee=i.weatherLayers)==null?void 0:ee.precip3h,"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock($,o.mergeProps({key:13,viewport:i.viewport,factor:(se=i.weatherLayers)==null?void 0:se.visibility,"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(ae,o.mergeProps({key:14,viewport:i.viewport,factor:(pe=i.weatherLayers)==null?void 0:pe["water-temp"],"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(V,o.mergeProps({key:15,viewport:i.viewport,factor:(xe=i.weatherLayers)==null?void 0:xe.temp,"menu-toggle":a.menuToggle,simple:a.simple},t.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0)])}const wm=X(Ec,[["render",bm]]),Je=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"GFS",alias:"GFS",model:"gfs_seamless",provider:"NOAA",country:"United States",resolution:25,tips:"3-25km",length:16,frequency:1,models:["gfs_seamless"],categories:"ncep_gfs013,ncep_gfs025,ncep_gfs_graphcast025,ncep_hrrr_conus,ncep_nbm_conus",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:2,name:"ECMWF",alias:"ECMWF",model:"ecmwf_ifs025",provider:"ECMWF",country:"European Union",resolution:25,tips:"25km",length:15,frequency:6,models:["ecmwf_ifs025","ecmwf_aifs025_single"],categories:"ecmwf_ifs025,ecmwf_aifs025_single",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:3,disabled:!0,name:"ICON",alias:"ECMWF",model:"icon_seamless",provider:"Deutscher Wetterdienst (DWD)",country:"Germany",resolution:13,tips:"2-13km",length:7.5,frequency:3,models:["icon_seamless","icon_global","icon_eu","icon_d2"],categories:"dwd_icon,dwd_icon_eps,dwd_icon_d2,dwd_icon_d2_eps,dwd_icon_eu,dwd_icon_eu_eps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:4,name:"ARPEGE",disabled:!0,alias:"ECMWF",model:"arpege_seamless",provider:"Météo-France",country:"France",resolution:25,tips:"1-25km",length:4,frequency:1,models:["arpege_seamless","arpege_world","arpege_europe"],categories:"meteofrance_arpege_europe,meteofrance_arpege_europe_probabilities,meteofrance_arpege_world025",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:5,name:"UKMO",disabled:!0,alias:"ECMWF",model:"ukmo_seamless",provider:"UK Met Office",country:"United Kingdom",resolution:10,tips:"2-10km",length:7,frequency:1,models:["ukmo_seamless","ukmo_global_deterministic_10km","ukmo_uk_deterministic_2km"],categories:"ukmo_global_deterministic_10km,ukmo_uk_deterministic_2km",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:6,name:"JMA",disabled:!0,alias:"GFS",model:"jma_seamless",provider:"JMA",country:"Japan",resolution:55,tips:"5-55km",length:11,frequency:3,models:["jma_seamless","jma_msm","jma_gsm"],categories:"jma_gsm,jma_msm",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:7,name:"GEM",disabled:!0,alias:"GFS",model:"gem_seamless",provider:"Canadian Weather Service",country:"Canada",resolution:2.5,tips:"2.5km",length:10,frequency:6,models:["gem_seamless","gem_global","gem_regional"],categories:"cmc_gem_gdps,cmc_gem_hrdps,cmc_gem_rdps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:8,name:"GRAPES",disabled:!0,alias:"GFS",model:"cma_grapes_global",provider:"China Meteorological Administration (CMA)",country:"China",resolution:15,tips:"15km",length:10,frequency:6,models:["cma_grapes_global"],categories:"cma_grapes_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:9,name:"ACCESS-G",disabled:!0,alias:"GFS",model:"bom_access_global",provider:"Australian Bureau of Meteorology (BOM)",country:"Australia",resolution:15,tips:"15km",length:10,frequency:6,models:["bom_access_global"],categories:"bom_access_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"}],Ke=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"MFWAM",alias:"ECMWF",model:"meteofrance_wave",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:12,models:["meteofrance_wave"],categories:"meteofrance_wave",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:2,disabled:!0,name:"SMOC",alias:"ECMWF",model:"meteofrance_currents",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:24,models:["meteofrance_currents"],categories:"meteofrance_currents, meteofrance_sea_surface_temperature",variables:"ocean_u_current,ocean_v_current,invert_barometer_height,sea_level_height_msl,sea_surface_temperature"},{rank:3,disabled:!0,name:"EWAM",alias:"ECMWF",model:"ewam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:8,frequency:2,models:["ewam"],categories:"dwd_ewam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:4,disabled:!0,name:"GWAM",alias:"ECMWF",model:"gwam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:4,frequency:2,models:["gwam"],categories:"dwd_gwam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:5,disabled:!0,name:"ECWAM",alias:"ECMWF",model:"ecmwf_wam025",provider:"ECMWF",country:"Europe",resolution:25,tips:"25km",length:10,frequency:6,models:["ecmwf_wam025"],categories:"ecmwf_wam025",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:6,name:"GFSWave",alias:"GFS",model:"ncep_gfswave025",provider:"NCEP",country:"USA",resolution:25,tips:"25km",length:10,frequency:6,models:["ncep_gfswave025","ncep_gfswave016"],categories:"ncep_gfswave025,ncep_gfswave016",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:7,disabled:!0,name:"ERA5-Ocean",alias:"ECMWF",model:"era5_ocean",provider:"Copernicus",country:"Europe",resolution:50,tips:"50km",length:-5,frequency:1,models:["era5_ocean"],categories:"copernicus_era5_ocean",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"}];let sa=class{static standardWeatherModels(){return Je.filter(e=>!e.disabled&&e.alias)}static standardMarineModels(){return Ke.filter(e=>!e.disabled&&e.alias)}static autoPickLayerModel(e,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",e=e==null?void 0:e.toLowerCase(),e==="gfs"?"gfs":["ec","ecmwf"].includes(e)?"ecmwf":["copernicus","cmems"].includes(e)?"copernicus":a}static autoPickPeerModel(e,a,r="copernicus"){if(a=this.autoPickLayerModel(a,r),yr.LayerHelper.WEATHER_LAYERS.reduce((i,l)=>l.atmos?i+l.weight:i,0)&e.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(e="best_match"){var a,r;e=e==null?void 0:e.toLowerCase(),e=e==="ec"?"ecmwf":e;const i=e.toLowerCase().split(","),l=[],n=[];for(const c of i){let s=Je.find(m=>{var p,g,y;return((p=m.models)==null?void 0:p.includes(c))||((g=m.alias)==null?void 0:g.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c}),d=Ke.find(m=>{var p,g,y;return((p=m.models)==null?void 0:p.includes(c))||((g=m.alias)==null?void 0:g.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c});s=s||Je.find(m=>{var p,g;return((p=m.alias)==null?void 0:p.toLowerCase())===((g=d==null?void 0:d.alias)==null?void 0:g.toLowerCase())}),d=d||Ke.find(m=>{var p,g;return((p=m.alias)==null?void 0:p.toLowerCase())===((g=s==null?void 0:s.alias)==null?void 0:g.toLowerCase())}),s=s||Je[0],d=d||Ke[0],l.push((a=s.models)!=null&&a.includes(c)?c:s.model),n.push((r=d.models)!=null&&r.includes(c)?c:d.model)}return{weatherModels:l.join(","),marineModels:n.join(",")}}static autoPickSubCategories(e){e=e.toUpperCase();const a=Je.filter(l=>l.alias===e),r=Ke.filter(l=>l.alias===e),i=[];return a.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),r.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),i}static pickHourly(e,a){var r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re,he,ge,ee,se,pe,xe,O,te,Me,Ce,be,ke;const J=typeof a=="string"?S(a):a,we=e==null?void 0:e.weather,ie=e==null?void 0:e.marine,ce=S((i=(r=we==null?void 0:we[0])==null?void 0:r.hourly)==null?void 0:i.date).utc(),Se=ce.clone().add((c=(n=(l=we==null?void 0:we[0])==null?void 0:l.hourly)==null?void 0:n.time)==null?void 0:c.at(0),"h"),Ee=ce.clone().add((m=(d=(s=we==null?void 0:we[0])==null?void 0:s.hourly)==null?void 0:d.time)==null?void 0:m.at(-1),"h"),Te=[];if(J.isBetween(Se,Ee,"millisecond","[]")){const F=J.utc().diff(Se,"h",!1);let me,_e;if(we){let Ne=0,Ve=0,H=0;for(const ve of we){const Q=ve==null?void 0:ve.hourly;for(let Le=F-(F-1)%3;Le<=F;Le++)Ne+=(p=Q==null?void 0:Q.precipitation)==null?void 0:p.at(Le);for(let Le=F-(F-1)%6;Le<=F;Le++)Ve+=(g=Q==null?void 0:Q.precipitation)==null?void 0:g.at(Le);for(let Le=F-(F-1)%12;Le<=F;Le++)H+=(y=Q==null?void 0:Q.precipitation)==null?void 0:y.at(Le);me={temp:(u=Q==null?void 0:Q.temperature_2m)==null?void 0:u.at(F),apparentTemp:(h=Q==null?void 0:Q.apparent_temperature)==null?void 0:h.at(F),rh:(f=Q==null?void 0:Q.relative_humidity_2m)==null?void 0:f.at(F),dp:(k=Q==null?void 0:Q.dew_point_2m)==null?void 0:k.at(F),precip:{probability:(w=Q==null?void 0:Q.precipitation_probability)==null?void 0:w.at(F),sum:(b=Q==null?void 0:Q.precipitation)==null?void 0:b.at(F),sum1Hours:(x=Q==null?void 0:Q.precipitation)==null?void 0:x.at(F),sum3Hours:Math.round(Ne*100)/100,sum6Hours:Math.round(Ve*100)/100,sum12Hours:Math.round(H*100)/100},pmsl:(C=Q==null?void 0:Q.pressure_msl)==null?void 0:C.at(F),psurf:(L=Q==null?void 0:Q.surface_pressure)==null?void 0:L.at(F),code:(z=Q==null?void 0:Q.weather_code)==null?void 0:z.at(F),visibility:this.m2nm((v=Q==null?void 0:Q.visibility)==null?void 0:v.at(F)),wind:{speed:(M=Q==null?void 0:Q.wind_speed_10m)==null?void 0:M.at(F),kts:(T=Q==null?void 0:Q.wind_speed_10m)==null?void 0:T.at(F),degree:(E=Q==null?void 0:Q.wind_direction_10m)==null?void 0:E.at(F),bearing:((I=Q==null?void 0:Q.wind_direction_10m)==null?void 0:I.at(F))!==null?(((Z=Q==null?void 0:Q.wind_direction_10m)==null?void 0:Z.at(F))+180)%360:null,gusts:(Y=Q==null?void 0:Q.wind_gusts_10m)==null?void 0:Y.at(F)},isDay:($=Q==null?void 0:Q.is_day)==null?void 0:$.at(F)};const{name:We,url:Oe,bg:Ze}=this.parseWeatherCode(me.code,me.isDay);me.name=We,me.url=Oe,me.bg=Ze,me.wind.scale=this.beaufort(this.kts2ms(me.wind.kts)),me.wind.direction=this.degree2Direction(me.wind.degree),Te.push({utc:Se.add(F,"h").format(),model:ve.model,weather:{...me}})}}if(ie){let Ne=0;for(const Ve of ie){const H=Ve==null?void 0:Ve.hourly;_e={wave:{sig:{height:(ae=H==null?void 0:H.wave_height)==null?void 0:ae.at(F),degree:(V=H==null?void 0:H.wave_direction)==null?void 0:V.at(F),bearing:((G=H==null?void 0:H.wave_direction)==null?void 0:G.at(F))!==null?(((W=H==null?void 0:H.wave_direction)==null?void 0:W.at(F))+180)%360:null,period:(U=H==null?void 0:H.wave_period)==null?void 0:U.at(F)},swell:{height:(A=H==null?void 0:H.swell_wave_height)==null?void 0:A.at(F),degree:(B=H==null?void 0:H.swell_wave_direction)==null?void 0:B.at(F),bearing:((j=H==null?void 0:H.swell_wave_direction)==null?void 0:j.at(F))!==null?(((N=H==null?void 0:H.swell_wave_direction)==null?void 0:N.at(F))+180)%360:null,period:(q=H==null?void 0:H.swell_wave_period)==null?void 0:q.at(F),peakPeriod:(re=H==null?void 0:H.swell_wave_peak_period)==null?void 0:re.at(F)},wd:{height:(he=H==null?void 0:H.wind_wave_height)==null?void 0:he.at(F),degree:(ge=H==null?void 0:H.wind_wave_direction)==null?void 0:ge.at(F),bearing:((ee=H==null?void 0:H.wind_wave_direction)==null?void 0:ee.at(F))!==null?(((se=H==null?void 0:H.wind_wave_direction)==null?void 0:se.at(F))+180)%360:null,period:(pe=H==null?void 0:H.wind_wave_period)==null?void 0:pe.at(F),peakPeriod:(xe=H==null?void 0:H.wind_wave_peak_period)==null?void 0:xe.at(F)}},current:{speed:(O=H==null?void 0:H.ocean_current_velocity)==null?void 0:O.at(F),kts:(te=H==null?void 0:H.ocean_current_velocity)==null?void 0:te.at(F),degree:(Me=H==null?void 0:H.ocean_current_direction)==null?void 0:Me.at(F),bearing:((Ce=H==null?void 0:H.ocean_current_direction)==null?void 0:Ce.at(F))??null},sst:(be=H==null?void 0:H.sea_surface_temperature)==null?void 0:be.at(F),height:(ke=H==null?void 0:H.sea_level_height_msl)==null?void 0:ke.at(F)},_e.wave=this.parseWave(_e.wave,me==null?void 0:me.wind),_e.current.direction=this.degree2Direction(_e.current.degree),Object.assign(Te[Ne],_e),Ne++}}}return Te}static toLegacy(e){var a,r,i,l,n,c,s,d,m,p;return{wind:(a=e==null?void 0:e.weather)==null?void 0:a.wind,visibility:(r=e==null?void 0:e.weather)==null?void 0:r.visibility,temp:(i=e==null?void 0:e.weather)==null?void 0:i.temp,prmsl:(l=e==null?void 0:e.weather)==null?void 0:l.pmsl,gusts:{kts:(c=(n=e==null?void 0:e.weather)==null?void 0:n.wind)==null?void 0:c.gusts},precip:(s=e==null?void 0:e.weather)==null?void 0:s.precip,code:(d=e==null?void 0:e.weather)==null?void 0:d.code,name:(m=e==null?void 0:e.weather)==null?void 0:m.name,url:(p=e==null?void 0:e.weather)==null?void 0:p.url,wave:e==null?void 0:e.wave,current:e==null?void 0:e.current,sst:e==null?void 0:e.sst,height:e==null?void 0:e.height,utc:e==null?void 0:e.utc,source:e==null?void 0:e.model}}static pickDaily(e,a){var r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re,he,ge,ee,se;const pe=typeof a=="string"?S(a):a,xe=e==null?void 0:e.weather,O=e==null?void 0:e.marine,te=S((l=(i=(r=xe==null?void 0:xe[0])==null?void 0:r.daily)==null?void 0:i.time)==null?void 0:l.at(0)),Me=S((s=(c=(n=xe==null?void 0:xe[0])==null?void 0:n.daily)==null?void 0:c.time)==null?void 0:s.at(-1)),Ce=[];if(pe.isBetween(te,Me,"millisecond","[]")){let be,ke;const J=pe.diff(te,"d",!1);if(xe)for(const we of xe){const ie=we.daily;be={code:(d=ie.weather_code)==null?void 0:d.at(J),temp:{max:(m=ie.temperature_2m_max)==null?void 0:m.at(J),min:(p=ie.temperature_2m_min)==null?void 0:p.at(J),mean:(g=ie.temperature_2m_mean)==null?void 0:g.at(J)},apparentTemp:{max:(y=ie.apparent_temperature_max)==null?void 0:y.at(J),min:(u=ie.apparent_temperature_min)==null?void 0:u.at(J)},precip:{sum:(h=ie.precipitation_sum)==null?void 0:h.at(J),rainSum:(f=ie.rain_sum)==null?void 0:f.at(J),snowfallSum:(k=ie.snowfall_sum)==null?void 0:k.at(J),showersSum:(w=ie.showers_sum)==null?void 0:w.at(J),hours:(b=ie.precipitation_hours)==null?void 0:b.at(J),probability:(x=ie.precipitation_probability_max)==null?void 0:x.at(J)},rh:{max:(C=ie.relative_humidity_2m_max)==null?void 0:C.at(J),min:(L=ie.relative_humidity_2m_min)==null?void 0:L.at(J),mean:(z=ie.relative_humidity_2m_mean)==null?void 0:z.at(J)},wind:{speed:(v=ie.wind_speed_10m_max)==null?void 0:v.at(J),kts:(M=ie.wind_speed_10m_max)==null?void 0:M.at(J),degree:(T=ie.wind_direction_10m_dominant)==null?void 0:T.at(J),gusts:(E=ie.wind_gusts_10m_max)==null?void 0:E.at(J),bearing:((I=ie.wind_direction_10m_dominant)==null?void 0:I.at(J))!==null?(((Z=ie.wind_direction_10m_dominant)==null?void 0:Z.at(J))+180)%360:null}};const{name:ce,url:Se,bg:Ee}=this.parseWeatherCode(be.code,!0);be.name=ce,be.url=Se,be.bg=Ee,be.wind.scale=this.beaufort(this.kts2ms(be.wind.kts)),be.wind.direction=this.degree2Direction(be.wind.degree),Ce.push({utc:te.add(J,"d").utc().format(),model:we.model,weather:{...be}})}if(O){let we=0;for(const ie of O){const ce=ie.daily;ke={wave:{sig:{height:(Y=ce.wave_height_max)==null?void 0:Y.at(J),degree:($=ce.wave_direction_dominant)==null?void 0:$.at(J),period:(ae=ce.wave_period_max)==null?void 0:ae.at(J),bearing:((V=ce.wave_direction_dominant)==null?void 0:V.at(J))!==null?(((G=ce.wave_direction_dominant)==null?void 0:G.at(J))+180)%360:null},swell:{height:(W=ce.swell_wave_height_max)==null?void 0:W.at(J),degree:(U=ce.swell_wave_direction_dominant)==null?void 0:U.at(J),period:(A=ce.swell_wave_period_max)==null?void 0:A.at(J),peakPeriod:(B=ce.swell_wave_peak_period_max)==null?void 0:B.at(J),bearing:((j=ce.swell_wave_direction_dominant)==null?void 0:j.at(J))!==null?((N=ce.swell_wave_direction_dominant)==null?void 0:N.at(J))%360:null},wd:{height:(q=ce.wind_wave_height_max)==null?void 0:q.at(J),degree:(re=ce.wind_wave_direction_dominant)==null?void 0:re.at(J),period:(he=ce.wind_wave_period_max)==null?void 0:he.at(J),peakPeriod:(ge=ce.wind_wave_peak_period_max)==null?void 0:ge.at(J),bearing:((ee=ce.wind_wave_direction_dominant)==null?void 0:ee.at(J))!==null?(((se=ce.wind_wave_direction_dominant)==null?void 0:se.at(J))+180)%360:null}}},ke.wave=this.parseWave(ke.wave,be==null?void 0:be.wind),Object.assign(Ce[we],ke),we++}}}return Ce}static parseWave(e,a){if(e.sig.direction=this.degree2Direction(e.sig.degree),e.swell.direction=this.degree2Direction(e.swell.degree),e.wd.direction=this.degree2Direction(e.wd.degree),e.sig.scale=this.douglas(e.sig.height),e.swell.scale=this.douglas(e.swell.height),e.wd.scale=this.douglas(e.wd.height),e.sig.height===0){const r=Math.sqrt(Math.pow(e.swell.height||0,2)+Math.pow(e.wd.height||0,2));e.sig.height=Math.round(r*100)/100}if(e.swell.height===0)if(e.sig.height>e.wd.height){const r=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.wd.height||0,2)));e.swell.height=Math.round(r*100)/100}else{const r=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,i=r>1?r/10:r>.5?r/5:r>.3?r/2:r;e.swell.height=Math.round(i*100)/100}if(e.wd.height===0||e.wd.height>e.sig.height)if(e.sig.height>e.swell.height){const r=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.swell.height||0,2))),i=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(Math.min(r,i)*100)/100}else{const r=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(r*100)/100}return e.swell.height>e.sig.height&&(e.swell.height=Math.round(e.sig.height*.76*100)/100),e.sig.period||(e.sig.period=Math.round(5*Math.sqrt(e.sig.height))),e.swell.period||(e.swell.period=Math.round(5*Math.sqrt(e.swell.height))),e.wd.period||(e.wd.period=Math.round(5*Math.sqrt(e.wd.height))),e}static parseWeatherCode(e,a){const r=this.weatherCode(e);return(a?r.day:r.night)||{}}static weatherCode(e){const a={code:e};switch(e){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(e){return isNaN(e)||e===null?e:Math.round(e*1852/3600*1e4)/1e4}static kts2kmh(e){return isNaN(e)||e===null?e:e*1.852}static m2nm(e){return isNaN(e)||e===null?e:Math.round(e/1e3/1.852*1e4)/1e4}static kmh2kts(e){return isNaN(e)||e===null?e:this.ms2kts(e*1e3/3600)}static ms2kts(e){return isNaN(e)||e===null?e:Math.round(e*3600/1852*1e4)/1e4}static degree2Radian(e){if(isNaN(e)||e===null)return e;let a=e%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(e){const a=this.degree2Radian(e);if(isNaN(a)||a===null)return null;let r="N/A";const i=Math.PI/16;return a<i?r="N":a>=i&&a<3*i?r="NNE":a>=3*i&&a<5*i?r="NE":a>=5*i&&a<7*i?r="ENE":a>=7*i&&a<9*i?r="E":a>=9*i&&a<11*i?r="ESE":a>=11*i&&a<13*i?r="SE":a>=13*i&&a<15*i?r="SSE":a>=15*i&&a<17*i?r="S":a>=17*i&&a<19*i?r="SSW":a>=19*i&&a<21*i?r="SW":a>=21*i&&a<23*i?r="WSW":a>=23*i&&a<25*i?r="W":a>=25*i&&a<27*i?r="WNW":a>=27*i&&a<29*i?r="NW":a>=29*i&&a<31*i?r="NNW":a>=31*i&&a<32*i&&(r="N"),r}static beaufort(e){let a=0;return isNaN(e)||(e=Math.round(e*10)/10,e<=.2?a=0:e<=1.5?a=1:e<=3.3?a=2:e<=5.4?a=3:e<=7.9?a=4:e<=10.7?a=5:e<=13.8?a=6:e<=17.1?a=7:e<=20.7?a=8:e<=22.4?a=9:e<=28.4?a=10:e<=32.6?a=11:e<=36.9?a=12:e<=41.4?a=13:e<=46.1?a=14:e<=50.9?a=15:e<=55.9?a=16:e<=61.2?a=17:e>61.2&&(a=18)),a}static douglas(e){let a="Calm";return isNaN(e)||e<=.1?a="Calm":e<=.5?a="Smooth":e<=1.25?a="Slight":e<=2.5?a="Moderate":e<=4?a="Rough":e<=6?a="VeryRough":e<=9?a="High":e<=14?a="VeryHigh":a="Precipitous",a}};const Ry="",xm={name:"IdmTropicals",props:{simple:{type:Boolean,default:!1},permission:{type:Number},locale:{type:String},map:{type:Object},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},timeZone:{type:Number},token:{type:String},defaultMeteoToken:{type:String},gateway:{type:String,default:"aa"},assistGateway:{type:Array,default:[]},forecastModel:{type:String},realTime:{type:String},beforeLayer:{type:String}},emits:["tropical","tropicalCenterPoints","tropicalProbability","tropicalNotification"],setup(){return{Theme:fe.useTheme()}},data(){return{right:10,toggle:!1,helper:je.CompanyHelper,tropicals:void 0,tropicalCacheKey:"tropicalCacheGL4",source:"tropicals-source",clusterSource:"tropicals-cluster-source",historyLayer:"tropicals-history-layer",forecastLayer:"tropicals-forecast-layer",forecastModelLayer:"tropicals-forecast-model-layer",forecastNameLayer:"tropicals-forecast-name-layer",pointCircleLayer:"tropicals-point-circle-layer",pointLabelLayer:"tropicals-point-label-layer",historyPointCircleLayer:"history-tropicals-point-circle-layer",historyPointLabelLayer:"history-tropicals-point-label-layer",interpolateData:[],interpolateMarkers:[],interpolateSource:"tropicals-interpolate-source",interpolateLineLayer:"tropicals-interpolate-line-layer",showTropicalsInfo:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:D.featureCollection([]),showLegend:!1,showHoverPoint:!1,hoverPoint:void 0,hoverMarker:void 0}},computed:{hoverLayers(){return[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.pointCircleLayer,this.pointCircleLayer+"-border",this.historyPointCircleLayer,this.historyPointCircleLayer+"-border",this.historyPointCircleLayer+"-inner"]},clickLayers(){return[this.forecastNameLayer,this.historyLayer]},computeTime(){return(t,e)=>{if(t){const a=S(t).utcOffset(e),r=e<0?e:"+"+e;return`${a==null?void 0:a.format("MMM-DD/HHmm")} (UTC${r}) ${a==null?void 0:a.fromNow()} `}return"-"}},computeTzTime(){return(t,e,a="MM-DD HH:mm")=>{var r,i;if(t){const l=e||0,n=(i=(r=S(t))==null?void 0:r.utcOffset(l))==null?void 0:i.format(a),c=`(UTC ${l>=0?"+":""}${l})`;return n+" "+c}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(t){const e=sa.kts2ms(t);return sa.beaufort(e)}},computeMovement(){return function(t){var e,a;return(a=(e=t==null?void 0:t.forecasts)==null?void 0:e.find(r=>!r.disabled))==null?void 0:a.movement}},computePosition(){return t=>!t||t.lng===null||t.lng===void 0||isNaN(t.lng)||t.lat===null||t.lat===void 0||isNaN(t.lat)?"-":P.LngLatHelper.lat2pretty(t==null?void 0:t.lat,2).pretty+" / "+P.LngLatHelper.lng2pretty(t==null?void 0:t.lng,2).pretty}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})},immediate:!0},map:{handler(){this.map?(this.toggle=localStorage.getItem(this.tropicalCacheKey)==="true"||!1,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle&&this.fetchTropicals()):this.handleClear()}},showTropicalsInfo:{handler(){this.$emit("tropical",this.showTropicalsInfo),this.simple&&this.showTropicalsInfo?this.$nextTick(()=>{var t,e;this.$parent.playerBottom=((e=(t=this.$refs.tropicalsInfo)==null?void 0:t.$el)==null?void 0:e.clientHeight)+10}):this.simple&&(this.$parent.playerBottom=30)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(t,e){t!==e&&this.handleRefresh()}},realTime:{handler(t){this.map&&t&&this.toggle&&this.handleRender()}},locale:{handler(t){this.map&&this.toggle&&this.handleRefresh()}}},methods:{handleMenuToggle(){var t,e,a;this.toggle=!this.toggle,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle?this.fetchTropicals():(this.handleClear(),(a=(e=(t=this.$parent)==null?void 0:t.$refs)==null?void 0:e.idmBottomBar)==null||a.handleToggle("tropical",!1))},async fetchTropicals(){var i,l,n;const t=new Date().valueOf();let e=0,a=0,r=(i=je.LayerHelper.WEATHER_LAYERS.find(c=>c.key==="tropicals"))==null?void 0:i.weight;if(r>0){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],s=await le.get(`${c}/api/arc/weather/layers2/links?l=${r}&v=${this.forecastModel}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(a=new Date().valueOf()-(t+e),console.log("weather links elapsed: ",a,", total: ",e+=a),((l=s==null?void 0:s.data)==null?void 0:l.code)===0){const d=(n=s==null?void 0:s.data)==null?void 0:n.data;await le.get(d.tropicals,{headers:{Authorization:this.defaultMeteoToken,key:"tropicals"},responseType:/\.(jpg|png)$/.test(d.tropicals)?"blob":"json"}).then(m=>{var y,u,h;const p=P.TropicalHelper.convert2Geojson(((y=m==null?void 0:m.data)==null?void 0:y.data)||(m==null?void 0:m.data));((h=(u=m==null?void 0:m.config)==null?void 0:u.headers)==null?void 0:h.key)&&p&&(this.tropicals={data:p,active:!0,cached:!0,type:"json",etime:s.data.etime,version:Math.random()+1})}).catch(m=>{console.log(`tropicals fetch layer error: ${m}`)})}a=new Date().valueOf()-(t+e),console.log("tropicals elapsed: ",a,", total: ",e+=a)}},handleRefresh(){var e,a;(((a=(e=this.tropicals)==null?void 0:e.data)==null?void 0:a.features)||[]).forEach(r=>{var l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z;let i="";switch(!0){case(((l=r.properties.wind)==null?void 0:l.kts)<32||((n=r.properties)==null?void 0:n.kts)<32):i="td";break;case(((c=r.properties.wind)==null?void 0:c.kts)<47||((s=r.properties)==null?void 0:s.kts)<47):i="ts";break;case(((d=r.properties.wind)==null?void 0:d.kts)<63||((m=r.properties)==null?void 0:m.kts)<63):i="sts";break;case(((p=r.properties.wind)==null?void 0:p.kts)<79||((g=r.properties)==null?void 0:g.kts)<79):i="ty";break;case(((y=r.properties.wind)==null?void 0:y.kts)<94||((u=r.properties)==null?void 0:u.kts)<94):i="sty";break;case(((h=r.properties.wind)==null?void 0:h.kts)>=94||((f=r.properties)==null?void 0:f.kts)>=94):i="superTy";break;default:i="superTy";break}r.properties.levelI18n=i,((k=r.geometry)==null?void 0:k.type)==="Point"&&((w=r.properties)!=null&&w.important)&&(r.properties.format=(x=(b=S(r.properties.date))==null?void 0:b.utcOffset(this.timeZone))==null?void 0:x.format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`)),((C=r.geometry)==null?void 0:C.type)==="Point"&&(r.properties.Name=((z=(L=r.properties.name)==null?void 0:L.trim())==null?void 0:z.replace(/^./,v=>v.toUpperCase()))||r.properties.nameCn,r.properties.nameCn=r.properties.nameCn||r.properties.Name||"-")}),this.handleInit()},handleInit(){var t,e,a,r,i,l,n,c,s,d,m,p;this.handleClear(),this.tropicals&&this.map&&(this.handleRender(),(t=this.map)==null||t.on("click",this.clickLayers,this.handleClick),(e=this.map)==null||e.on("mousemove",this.hoverLayers,this.handleHover),(a=this.map)==null||a.on("mouseleave",this.hoverLayers,this.handleLeave)),((l=(i=(r=this.tropicals)==null?void 0:r.data)==null?void 0:i.features)==null?void 0:l.length)>0?(s=(c=(n=this.$parent)==null?void 0:n.$refs)==null?void 0:c.idmBottomBar)==null||s.handleToggle("tropical",!0):(p=(m=(d=this.$parent)==null?void 0:d.$refs)==null?void 0:m.idmBottomBar)==null||p.handleToggle("tropical",!1)},handleRender(){var t,e,a,r,i,l,n,c,s,d;if(this.tropicals&&this.map){const m=new Date().valueOf();let p=0,g=0;(t=this.map)!=null&&t.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((e=this.tropicals)!=null&&e.active?this.tropicals.data:this.empty),g=new Date().valueOf()-(m+p),console.log("[tropicals] update elapsed: ",g,", total: ",p+=g)):(this.map.addSource(this.source,{type:"geojson",data:(r=this.tropicals)!=null&&r.active?(i=this.tropicals)==null?void 0:i.data:this.empty}),this.map.addLayer({id:this.historyLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","history"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["on-surface"],"line-width":3,"line-opacity":.7}},this.beforeLayer),this.map.addLayer({id:this.forecastLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"line-width":2,"line-opacity":1,"line-dasharray":[1,2]}},this.beforeLayer),this.map.addLayer({id:this.forecastModelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"symbol-placement":"line","text-field":"{model}","text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":this.Theme.current.value.dark?"#333":"#fff","text-opacity":1,"text-halo-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"text-halo-width":4}},this.beforeLayer),g=new Date().valueOf()-(m+p),console.log("[tropical] add elapsed: ",g,", total: ",p+=g)),(l=this.map)!=null&&l.getSource(this.clusterSource)?((c=this.map)==null||c.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),g=new Date().valueOf()-(m+p),console.log("[tropical] update elapsed: ",g,", total: ",p+=g)):(this.map.addSource(this.clusterSource,{type:"geojson",data:(s=this.tropicals)!=null&&s.active?(d=this.tropicals)==null?void 0:d.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.pointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":4,"circle-color":["case",["boolean",["==",["get","kts",["get","wind"]],null]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],32]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],47]],this.Theme.current.value.colors["tropicals-ts"],["boolean",["<",["get","kts",["get","wind"]],63]],this.Theme.current.value.colors["tropicals-sts"],["boolean",["<",["get","kts",["get","wind"]],79]],this.Theme.current.value.colors["tropicals-ty"],["boolean",["<",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-sty"],["boolean",[">=",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-super-ty"],"#fff"]}},this.beforeLayer),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":6,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"rgba(0,0,0,0.7)"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-inner",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":3,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.forecastNameLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["==","important",!0]],layout:{"text-field":["get",this.locale==="en"?"Name":"nameCn"],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-offset":[0,2]},paint:{"text-color":this.Theme.current.value.colors["map-blue"],"text-halo-color":"#ffffff","text-halo-width":2}},this.beforeLayer),g=new Date().valueOf()-(m+p),console.log("[tropical] add elapsed: ",g,", total: ",p+=g));const y=P.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(y)),this.handleDateChange()}},handleClear(){var t,e,a,r;this.map&&(this.map.getLayer(this.historyLayer)&&this.map.removeLayer(this.historyLayer),this.map.getLayer(this.forecastLayer)&&this.map.removeLayer(this.forecastLayer),this.map.getLayer(this.forecastModelLayer)&&this.map.removeLayer(this.forecastModelLayer),this.map.getLayer(this.forecastNameLayer)&&this.map.removeLayer(this.forecastNameLayer),this.map.getLayer(this.pointCircleLayer)&&this.map.removeLayer(this.pointCircleLayer),this.map.getLayer(this.pointCircleLayer+"-border")&&this.map.removeLayer(this.pointCircleLayer+"-border"),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.historyPointCircleLayer)&&this.map.removeLayer(this.historyPointCircleLayer),this.map.getLayer(this.historyPointCircleLayer+"-border")&&this.map.removeLayer(this.historyPointCircleLayer+"-border"),this.map.getLayer(this.historyPointCircleLayer+"-inner")&&this.map.removeLayer(this.historyPointCircleLayer+"-inner"),this.map.getLayer(this.historyPointLabelLayer)&&this.map.removeLayer(this.historyPointLabelLayer),this.map.getLayer(this.interpolateLineLayer)&&this.map.removeLayer(this.interpolateLineLayer),(t=this.interpolateMarkers)==null||t.forEach(i=>i==null?void 0:i.remove()),this.map.getSource(this.source)&&this.map.removeSource(this.source),this.map.getSource(this.clusterSource)&&this.map.removeSource(this.clusterSource),this.map.getSource(this.interpolateSource)&&this.map.removeSource(this.interpolateSource)),(e=this.map)==null||e.off("click",this.clickLayers,this.handleClick),(a=this.map)==null||a.off("mousemove",this.hoverLayers,this.handleHover),(r=this.map)==null||r.off("mouseleave",this.hoverLayers,this.handleLeave),this.handleCloseInfoMarker()},handleDateChange(){var t,e,a,r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G;if((t=this.interpolateMarkers)==null||t.forEach(W=>W==null?void 0:W.remove()),(e=this.interpolateData)!=null&&e.length&&this.tropicals.active){const W=S(this.realTime).utc().set({minute:0,second:0,millisecond:0}),U=this.interpolateData.filter(N=>N.properties.date===(W==null?void 0:W.format())&&!N.properties.disabled),A=this.handleComputePolygons(U),B=D.featureCollection([...U]);A.forEach(N=>{B.features.push(N)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(r=this.map)==null||r.getSource(this.interpolateSource).setData(B):((i=this.map)==null||i.addSource(this.interpolateSource,{type:"geojson",data:B}),(l=this.map)==null||l.addLayer({id:this.interpolateLineLayer,type:"line",source:this.interpolateSource,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-opacity":1,"line-color":["match",["get","level"],7,this.Theme.current.value.colors["tropicals-r7"],10,this.Theme.current.value.colors["tropicals-r10"],this.Theme.current.value.colors["tropicals-r10"]],"line-width":1}},"empty-layer-3")),this.interpolateMarkers=[];const j=[];for(const N of U)if(!N.properties.disabled){if(!j.some(ee=>{var se;return ee.properties.name===((se=N.properties)==null?void 0:se.name)})){const ee=((c=(n=this.tropicals.data.features.find(se=>{var pe;return se.properties.name===((pe=N.properties)==null?void 0:pe.name)}))==null?void 0:n.properties)==null?void 0:c.nameCn)||((s=N.properties)==null?void 0:s.Name)||"-";N.properties.nameCn=ee,N.properties.Name=((m=(d=N.properties.name)==null?void 0:d.trim())==null?void 0:m.replace(/^./,se=>se.toUpperCase()))||N.properties.nameCn,j.push(N)}let q=this.Theme.current.value.colors["tropicals-ty"];((g=(p=N.properties)==null?void 0:p.wind)==null?void 0:g.kts)<32||!((u=(y=N.properties)==null?void 0:y.wind)!=null&&u.kts)?q=this.Theme.current.value.colors["tropicals-td"]:((f=(h=N.properties)==null?void 0:h.wind)==null?void 0:f.kts)>=32&&((w=(k=N.properties)==null?void 0:k.wind)==null?void 0:w.kts)<47?q=this.Theme.current.value.colors["tropicals-ts"]:((x=(b=N.properties)==null?void 0:b.wind)==null?void 0:x.kts)>=47&&((L=(C=N.properties)==null?void 0:C.wind)==null?void 0:L.kts)<63?q=this.Theme.current.value.colors["tropicals-sts"]:((v=(z=N.properties)==null?void 0:z.wind)==null?void 0:v.kts)>=63&&((T=(M=N.properties)==null?void 0:M.wind)==null?void 0:T.kts)<79?q=this.Theme.current.value.colors["tropicals-ty"]:((I=(E=N.properties)==null?void 0:E.wind)==null?void 0:I.kts)>=79&&((Y=(Z=N.properties)==null?void 0:Z.wind)==null?void 0:Y.kts)<94?q=this.Theme.current.value.colors["tropicals-sty"]:((ae=($=N.properties)==null?void 0:$.wind)==null?void 0:ae.kts)>=94?q=this.Theme.current.value.colors["tropicals-super-ty"]:q=this.Theme.current.value.colors["tropicals-ty"];const re=`<svg t="1719918955501"
204
204
  class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" p-id="18382"
205
205
  xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
206
206
  <path
@@ -216,7 +216,7 @@
216
216
  fill="#ffffff" p-id="18386"></path>
217
217
  </svg>`,he=document.createElement("div");he.className="idm-tropical-gl4-hourly-marker",he.innerHTML=`<div class="${N.geometry.coordinates[1]>=0?"center north":"center south"}">${re}</div>`;const ge=new ne.Marker(he).setLngLat(N.geometry.coordinates).addTo(this.map);this.interpolateMarkers.push(ge)}this.$emit("tropicalCenterPoints",j)}else(V=this.map)!=null&&V.getSource(this.interpolateSource)&&((G=this.map)==null||G.getSource(this.interpolateSource).setData(this.empty))},handleClick(t){var i,l,n,c,s,d,m,p,g,y,u;const e=t.features[0],a=(l=(i=this.tropicals)==null?void 0:i.data)==null?void 0:l.features.filter(h=>{var f;return h.geometry.type==="LineString"&&h.properties.type==="forecast"&&h.properties.name===((f=e==null?void 0:e.properties)==null?void 0:f.name)}),r=(c=(n=this.tropicals)==null?void 0:n.data)==null?void 0:c.features.filter(h=>{var f;return h.geometry.type==="LineString"&&h.properties.type==="history"&&h.properties.name===((f=e==null?void 0:e.properties)==null?void 0:f.name)});this.activeTropicals={name:((s=e==null?void 0:e.properties)==null?void 0:s.name)||"-",nameCn:((d=e==null?void 0:e.properties)==null?void 0:d.nameCn)||((m=e==null?void 0:e.properties)==null?void 0:m.name)||"-",Name:((p=e==null?void 0:e.properties)==null?void 0:p.Name)||"-",forecasts:a.map(h=>h.properties),history:(g=r[0])==null?void 0:g.properties,showCircle:(u=(y=a[0])==null?void 0:y.properties)==null?void 0:u.showCircle},this.showTropicalsInfo=!0,this.simple||this.drawTropicalsInfoMaker([t.lngLat.lng,t.lngLat.lat])},drawTropicalsInfoMaker(t){this.$nextTick(()=>{const e=document.getElementById("idm-tropical-gl4-info");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat(t).setOffset([220,0]):this.activeTropicalsMarker=new ne.Marker(e).setLngLat(t).setOffset([220,0]).addTo(this.map)})},handleCloseInfoMarker(){this.showTropicalsInfo=!1,this.$nextTick(()=>{var t;(t=this.activeTropicalsMarker)==null||t.remove(),this.activeTropicalsMarker=void 0})},handleForecastToggle(t){var r,i,l,n,c,s;t.disabled=!t.disabled;const e=`${t.name}-${t.model}`,a=(i=(r=this.map)==null?void 0:r.getSource(this.source)._data)==null?void 0:i.features;a.forEach(d=>{d.properties.category===e&&(d.properties.disabled=t.disabled)}),this.interpolateData.forEach(d=>{d.properties.category===e&&(d.properties.disabled=t.disabled)}),(n=(l=this.map)==null?void 0:l.getSource(this.source))==null||n.setData(D.featureCollection(a)),(s=(c=this.map)==null?void 0:c.getSource(this.clusterSource))==null||s.setData(D.featureCollection(a)),this.handleDateChange()},handleStrikeProbability(t){this.$emit("tropicalProbability",t)},handleToggleCircles(t){var e,a;t.showCircle=!t.showCircle,(a=(e=this.tropicals.data)==null?void 0:e.features)==null||a.forEach(r=>{r.properties.name===t.name&&(r.properties.showCircle=t.showCircle)}),this.handleRender()},handleComputePolygons(t){const e=[];for(const a of t){const r=a.properties.wind,i={ne:r.r7ne>=0?r.r7ne:void 0,se:r.r7se>=0?r.r7se:void 0,sw:r.r7sw>=0?r.r7sw:void 0,nw:r.r7nw>=0?r.r7nw:void 0},l=this.handleComputeArc(a.geometry.coordinates,i,{...a.properties,level:7});e.push(l);const n={ne:r.r10ne>=0?r.r10ne:void 0,se:r.r10se>=0?r.r10se:void 0,sw:r.r10sw>=0?r.r10sw:void 0,nw:r.r10nw>=0?r.r10nw:void 0},c=this.handleComputeArc(a.geometry.coordinates,n,{...a.properties,level:10});e.push(c)}return e},handleComputeArc(t,e,a){var l;const r=[];for(const n in e){const c=e[n]??0;let s;switch(n){case"ne":s=D.lineArc(t,c,0,90,{steps:c>0?32:1,units:"nauticalmiles"});break;case"se":s=D.lineArc(t,c,90,180,{steps:c>0?32:1,units:"nauticalmiles"});break;case"sw":s=D.lineArc(t,c,180,270,{steps:c>0?32:1,units:"nauticalmiles"});break;case"nw":s=D.lineArc(t,c,270,360,{steps:c>0?32:1,units:"nauticalmiles"});break}r.push(...(l=s==null?void 0:s.geometry)==null?void 0:l.coordinates)}const i=D.lineString(r);return D.lineToPolygon(i,{properties:a})},handleNotification(t){this.$emit("tropicalNotification",t)},handleHover(t){var i,l,n,c,s;this.map.getCanvas().style.cursor="pointer";const a=this.map.queryRenderedFeatures(t.point,{layers:[this.pointCircleLayer,this.pointCircleLayer+"-border",this.historyPointCircleLayer,this.historyPointCircleLayer+"-border",this.historyPointCircleLayer+"-inner"]})[0];this.hoverPoint=a==null?void 0:a.properties;const r=(l=(i=this.tropicals)==null?void 0:i.data)==null?void 0:l.features.filter(d=>{var m;return d.geometry.type==="LineString"&&d.properties.type==="forecast"&&d.properties.name===((m=a==null?void 0:a.properties)==null?void 0:m.name)});this.hoverPoint&&(this.hoverPoint.lng=a.geometry.coordinates[0],this.hoverPoint.lat=a.geometry.coordinates[1],this.hoverPoint.update=(c=(n=r==null?void 0:r[0])==null?void 0:n.properties)==null?void 0:c.date,(s=this.hoverMarker)==null||s.remove(),this.showHoverPoint=!0,this.$nextTick(()=>{const d=document.getElementById("tropicalHoverMarkerInfo").cloneNode(!0);this.hoverMarker=new ne.Marker(d).setLngLat(a.geometry.coordinates).setOffset([160,0]).addTo(this.map)}))},handleLeave(){var t;this.map.getCanvas().style.cursor="grab",this.showHoverPoint=!1,(t=this.hoverMarker)==null||t.remove(),this.hoverMarker=void 0}}},km={class:"idm-tropical-gl4"},_m={class:"pb-1"},Lm={class:"text-h5 font-weight-600"},zm={key:0,class:"text-h5 font-weight-600"},Cm={class:"text-body-1"},vm={class:"text-label"},Sm={class:"d-flex justify-space-between align-center"},Nm={class:"w-60"},Vm={class:"text-label pr-1"},Pm={class:"flex-1-1-0"},Mm={class:"text-label pr-1"},Tm={class:"py-2 d-flex justify-space-between align-center"},Em={class:"w-60"},Dm={class:"text-label pr-1"},Rm={class:"flex-1-1-0"},Bm={class:"text-label pr-1"},Im={class:"d-flex align-center flex-1-1-100 justify-space-between mt-n1"},Am={class:"text-label pr-1",style:{width:"70px"}},Fm={class:"model-box d-flex justify-end align-center flex-wrap ga-1 pa-1"},Gm={class:"more"},Wm={key:0,class:"w-100 d-flex justify-space-between align-center px-2"},Om={class:"pa-1"},Zm={class:"legend d-flex justify-start align-center py-2"},jm={class:"label"},Hm={class:"legend d-flex justify-start align-center py-2"},Xm={class:"label"},Ym={class:"legend d-flex justify-start align-center py-2"},Um={class:"label"},$m={class:"pa-1"},Jm={class:"legend d-flex justify-start align-center py-2"},Km={class:"label"},qm={class:"legend d-flex justify-start align-center py-2"},Qm={class:"label"},ed={class:"legend d-flex justify-start align-center py-2"},td={class:"label"},od={class:"pa-1"},ad={class:"w-100 legend d-flex justify-start align-center py-2 ga-2"},id={class:"label"},rd={class:"label"},ld={class:"w-100 legend d-flex justify-start align-center py-2"},nd={class:"label"},sd={class:"w-100 legend d-flex justify-start align-center py-2"},cd={class:"label"},md={key:1,class:"my-3 w-100",style:{height:"80px"}},dd={class:"legend d-flex justify-start align-center"},hd={class:"label"},pd={class:"legend d-flex justify-start align-center"},gd={class:"label"},ud={class:"legend d-flex justify-start align-center"},fd={class:"label"},yd={class:"legend d-flex justify-start align-center"},bd={class:"label"},wd={class:"legend d-flex justify-start align-center"},xd={class:"label"},kd={class:"legend d-flex justify-start align-center"},_d={class:"label"},Ld={class:"legend d-flex justify-start align-center"},zd={class:"label"},Cd={class:"legend d-flex justify-start align-center"},vd={class:"label"},Sd={class:"legend d-flex justify-start align-center"},Nd={class:"label"},Vd={class:"legend d-flex justify-start align-center"},Pd={class:"label"},Md={class:"d-flex justify-star align-center"},Td={class:"font-weight-600 mr-1"},Ed={class:""},Dd={class:"port-box d-flex flex-column justify-center align-start ga-2"},Rd={key:0,class:"d-flex justify-start align-center"},Bd={class:"text-label pr-1"},Id={key:1,class:"d-flex justify-start align-center"},Ad={class:"text-label pr-1"},Fd={key:2,class:"d-flex justify-start align-center"},Gd={class:"text-label pr-1"},Wd={key:3,class:"d-flex justify-start align-center"},Od={class:"text-label pr-1"},Zd={key:4,class:"d-flex justify-start align-center"},jd={class:"text-label pr-1"},Hd={key:5,class:"d-flex justify-start align-center"},Xd={class:"text-label pr-1"},Yd={class:"d-flex justify-start align-center"},Ud={class:"text-label pr-1"},$d={key:6,class:"d-flex justify-start align-center"},Jd={class:"text-label pr-1"},Kd={key:7,class:"d-flex justify-start align-center"},qd={class:"text-label pr-1"},Qd={class:"d-flex justify-start align-center"},eh={class:"text-label pr-1"};function th(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip"),s=o.resolveComponent("VCardText"),d=o.resolveComponent("VDivider"),m=o.resolveComponent("VCardActions"),p=o.resolveComponent("VCard"),g=o.resolveComponent("VCardTitle");return o.openBlock(),o.createElementBlock("div",km,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+86+"px",right:i.right+"px"})},[o.createVNode(c,{text:t.$t("tropical.tropicals"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:y})=>[o.createVNode(n,o.mergeProps(y,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>e[2]||(e[2]=[o.createElementVNode("i",{class:"iconfont icon-Tropical text-h4"},null,-1)])),_:2,__:[2]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4),i.showTropicalsInfo&&!t.$attrs.hideTropicalsLegend?(o.openBlock(),o.createElementBlock("div",{key:0,id:"idm-tropical-gl4-info",ref:"tropicalsInfo",class:o.normalizeClass(["idm-tropical-gl4-info",a.simple?"page":"dialog"])},[o.createVNode(p,{class:o.normalizeClass(["w-100",a.simple?"rounded-t-4 bg-none":""]),elevation:a.simple?0:16},{default:o.withCtx(()=>[o.createVNode(s,null,{default:o.withCtx(()=>{var y,u,h,f,k,w,b,x,C,L,z,v;return[o.createElementVNode("div",_m,[o.createElementVNode("span",Lm,o.toDisplayString(a.locale==="en"?(y=i.activeTropicals)==null?void 0:y.Name:((u=i.activeTropicals)==null?void 0:u.nameCn)||((h=i.activeTropicals)==null?void 0:h.Name)||"-"),1),(k=(f=i.activeTropicals)==null?void 0:f.history)!=null&&k.levelI18n?(o.openBlock(),o.createElementBlock("span",zm," , "+o.toDisplayString(t.$t("tropical."+((b=(w=i.activeTropicals)==null?void 0:w.history)==null?void 0:b.levelI18n))),1)):o.createCommentVNode("",!0)]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"close",onClick:o.withModifiers(l.handleCloseInfoMarker,["stop"])},{default:o.withCtx(()=>e[3]||(e[3]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[3]},8,["onClick"]),o.createElementVNode("div",Cm,[o.createElementVNode("span",vm,o.toDisplayString(t.$t("actions.lastUpdate"))+": ",1),o.createElementVNode("span",null,o.toDisplayString(l.computeTime(((C=(x=i.activeTropicals)==null?void 0:x.history)==null?void 0:C.updated)||((v=(z=(L=i.activeTropicals)==null?void 0:L.forecasts)==null?void 0:z.filter(M=>!M.disabled)[0])==null?void 0:v.date),a.timeZone)),1)])]}),_:1}),o.createVNode(d),o.createVNode(s,{class:"text-body-1 py-3"},{default:o.withCtx(()=>{var y,u,h,f,k,w,b,x,C;return[o.createElementVNode("div",Sm,[o.createElementVNode("div",Nm,[o.createElementVNode("label",Vm,o.toDisplayString(t.$t("weather.windSpeed"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((u=(y=i.activeTropicals)==null?void 0:y.history)==null?void 0:u.kts)||"-")+" kts",1),o.createElementVNode("span",null,", BF "+o.toDisplayString(l.computeBF(((f=(h=i.activeTropicals)==null?void 0:h.history)==null?void 0:f.kts)||"-")),1)]),o.createElementVNode("div",Pm,[o.createElementVNode("label",Mm,o.toDisplayString(t.$t("weather.pressure"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((w=(k=i.activeTropicals)==null?void 0:k.history)==null?void 0:w.pressure)||"-")+" hPa",1)])]),o.createElementVNode("div",Tm,[o.createElementVNode("div",Em,[o.createElementVNode("label",Dm,o.toDisplayString(t.$t("tropical.moveSpeed"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((b=l.computeMovement(i.activeTropicals))==null?void 0:b.kts)||"-")+" kts",1)]),o.createElementVNode("div",Rm,[o.createElementVNode("label",Bm,o.toDisplayString(t.$t("tropical.moveDir"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((x=l.computeMovement(i.activeTropicals))==null?void 0:x.deg)||"-")+"°",1)])]),o.createElementVNode("div",Im,[o.createElementVNode("label",Am,o.toDisplayString(t.$t("tropical.models"))+" : ",1),o.createElementVNode("div",Fm,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList((C=i.activeTropicals)==null?void 0:C.forecasts,(L,z)=>(o.openBlock(),o.createBlock(n,{key:z,density:"compact",variant:L.disabled?"text":"flat",color:L.disabled?"":"primary","min-width":30,class:o.normalizeClass(["model text-none text-body-1 px-1",L.disabled?"btn-border-1 btn-bg-1":""]),onClick:o.withModifiers(v=>l.handleForecastToggle(L),["stop"])},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(L.model),1)]),_:2},1032,["variant","color","class","onClick"]))),128))])])]}),_:1}),o.createVNode(d),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(m,{key:0,class:"d-flex justify-space-between"},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact","prepend-icon":"",variant:"text",color:i.showLegend?"primary":"",class:"text-none text-body-1",onClick:e[0]||(e[0]=o.withModifiers(y=>i.showLegend=!i.showLegend,["stop"]))},{prepend:o.withCtx(()=>e[4]||(e[4]=[o.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),default:o.withCtx(()=>[o.createTextVNode(" "+o.toDisplayString(t.$t("weather.legend")),1)]),_:1},8,["color"]),o.createElementVNode("div",Gm,[o.createVNode(n,{variant:"text",density:"compact","append-icon":"mdi-chevron-right",class:"text-none text-body-1",onClick:e[1]||(e[1]=o.withModifiers(y=>l.handleStrikeProbability(i.activeTropicals),["stop"]))},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.viewReport")),1)]),_:1})])]),_:1}))]),_:1},8,["class","elevation"]),a.simple?(o.openBlock(),o.createElementBlock("div",Wm,[o.createElementVNode("div",Om,[o.createElementVNode("div",Zm,[e[5]||(e[5]=o.createElementVNode("div",{class:"icon td"},null,-1)),o.createElementVNode("div",jm,o.toDisplayString(t.$t("tropical.td")),1)]),o.createElementVNode("div",Hm,[e[6]||(e[6]=o.createElementVNode("div",{class:"icon sts"},null,-1)),o.createElementVNode("div",Xm,o.toDisplayString(t.$t("tropical.sts")),1)]),o.createElementVNode("div",Ym,[e[7]||(e[7]=o.createElementVNode("div",{class:"icon sty"},null,-1)),o.createElementVNode("div",Um,o.toDisplayString(t.$t("tropical.sty")),1)])]),o.createElementVNode("div",$m,[o.createElementVNode("div",Jm,[e[8]||(e[8]=o.createElementVNode("div",{class:"icon ts"},null,-1)),o.createElementVNode("div",Km,o.toDisplayString(t.$t("tropical.ts")),1)]),o.createElementVNode("div",qm,[e[9]||(e[9]=o.createElementVNode("div",{class:"icon ty"},null,-1)),o.createElementVNode("div",Qm,o.toDisplayString(t.$t("tropical.ty")),1)]),o.createElementVNode("div",ed,[e[10]||(e[10]=o.createElementVNode("div",{class:"icon supper-ty"},null,-1)),o.createElementVNode("div",td,o.toDisplayString(t.$t("tropical.superTy")),1)])]),o.createElementVNode("div",od,[o.createElementVNode("div",ad,[e[11]||(e[11]=o.createElementVNode("div",{class:"icon history"},null,-1)),o.createElementVNode("div",id,o.toDisplayString(t.$t("tropical.history")),1),e[12]||(e[12]=o.createElementVNode("div",{class:"icon forecast"},null,-1)),o.createElementVNode("div",rd,o.toDisplayString(t.$t("tropical.forecast")),1)]),o.createElementVNode("div",ld,[e[13]||(e[13]=o.createElementVNode("div",{class:"icon r7"},null,-1)),o.createElementVNode("div",nd,"35kts "+o.toDisplayString(t.$t("tropical.radii")),1)]),o.createElementVNode("div",sd,[e[14]||(e[14]=o.createElementVNode("div",{class:"icon r10"},null,-1)),o.createElementVNode("div",cd,"50kts "+o.toDisplayString(t.$t("tropical.radii")),1)])])])):(o.openBlock(),o.createElementBlock("div",md,[o.withDirectives(o.createVNode(p,{elevation:"16"},{default:o.withCtx(()=>[o.createVNode(s,null,{default:o.withCtx(()=>[o.withDirectives(o.createElementVNode("div",{class:o.normalizeClass(["pa-1 d-flex justify-space-between align-center flex-wrap",a.locale==="zhHans"?" ga-2":" ga-3"])},[o.createElementVNode("div",dd,[e[15]||(e[15]=o.createElementVNode("div",{class:"icon td"},null,-1)),o.createElementVNode("div",hd,o.toDisplayString(t.$t("tropical.td")),1)]),o.createElementVNode("div",pd,[e[16]||(e[16]=o.createElementVNode("div",{class:"icon ts"},null,-1)),o.createElementVNode("div",gd,o.toDisplayString(t.$t("tropical.ts")),1)]),o.createElementVNode("div",ud,[e[17]||(e[17]=o.createElementVNode("div",{class:"icon sts"},null,-1)),o.createElementVNode("div",fd,o.toDisplayString(t.$t("tropical.sts")),1)]),o.createElementVNode("div",yd,[e[18]||(e[18]=o.createElementVNode("div",{class:"icon ty"},null,-1)),o.createElementVNode("div",bd,o.toDisplayString(t.$t("tropical.ty")),1)]),o.createElementVNode("div",wd,[e[19]||(e[19]=o.createElementVNode("div",{class:"icon sty"},null,-1)),o.createElementVNode("div",xd,o.toDisplayString(t.$t("tropical.sty")),1)]),o.createElementVNode("div",kd,[e[20]||(e[20]=o.createElementVNode("div",{class:"icon supper-ty"},null,-1)),o.createElementVNode("div",_d,o.toDisplayString(t.$t("tropical.superTy")),1)]),o.createElementVNode("div",Ld,[e[21]||(e[21]=o.createElementVNode("div",{class:"icon history"},null,-1)),o.createElementVNode("div",zd,o.toDisplayString(t.$t("tropical.history")),1)]),o.createElementVNode("div",Cd,[e[22]||(e[22]=o.createElementVNode("div",{class:"icon forecast"},null,-1)),o.createElementVNode("div",vd,o.toDisplayString(t.$t("tropical.forecast")),1)]),o.createElementVNode("div",Sd,[e[23]||(e[23]=o.createElementVNode("div",{class:"icon r7"},null,-1)),o.createElementVNode("div",Nd,"35kts "+o.toDisplayString(t.$t("tropical.radii")),1)]),o.createElementVNode("div",Vd,[e[24]||(e[24]=o.createElementVNode("div",{class:"icon r10"},null,-1)),o.createElementVNode("div",Pd,"50kts "+o.toDisplayString(t.$t("tropical.radii")),1)])],2),[[o.vShow,i.showLegend]])]),_:1})]),_:1},512),[[o.vShow,i.showLegend]])]))],2)):o.createCommentVNode("",!0),o.withDirectives(o.createVNode(p,{id:"tropicalHoverMarkerInfo",elevation:"16","max-width":"280"},{default:o.withCtx(()=>[o.createVNode(g,null,{default:o.withCtx(()=>{var y,u,h,f;return[o.createElementVNode("div",Md,[o.createElementVNode("span",Td,o.toDisplayString(a.locale==="en"?(y=i.hoverPoint)==null?void 0:y.Name:((u=i.hoverPoint)==null?void 0:u.nameCn)||((h=i.hoverPoint)==null?void 0:h.Name)),1),o.createElementVNode("span",Ed," ["+o.toDisplayString(t.$t("tropical."+((f=i.hoverPoint)==null?void 0:f.levelI18n)))+"]",1)])]}),_:1}),o.createVNode(d),o.createVNode(s,{class:"text-body-1"},{default:o.withCtx(()=>{var y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae;return[o.createElementVNode("div",Dd,[((y=i.hoverPoint)==null?void 0:y.type)==="forecast"?(o.openBlock(),o.createElementBlock("div",Rd,[o.createElementVNode("label",Bd,o.toDisplayString(t.$t("tropical.updated"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(l.computeTzTime((u=i.hoverPoint)==null?void 0:u.update,a.timeZone)),1)])):o.createCommentVNode("",!0),((h=i.hoverPoint)==null?void 0:h.type)==="forecast"?(o.openBlock(),o.createElementBlock("div",Id,[o.createElementVNode("label",Ad,o.toDisplayString(t.$t("tropical.forecast"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(l.computeTzTime((f=i.hoverPoint)==null?void 0:f.date,a.timeZone)),1)])):o.createCommentVNode("",!0),((k=i.hoverPoint)==null?void 0:k.type)==="history"?(o.openBlock(),o.createElementBlock("div",Fd,[o.createElementVNode("label",Gd,o.toDisplayString(t.$t("tropical.forecast"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(l.computeTzTime((w=i.hoverPoint)==null?void 0:w.date,a.timeZone)),1)])):o.createCommentVNode("",!0),((b=i.hoverPoint)==null?void 0:b.type)==="forecast"?(o.openBlock(),o.createElementBlock("div",Wd,[o.createElementVNode("label",Od,o.toDisplayString(t.$t("tropical.model"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((x=i.hoverPoint)==null?void 0:x.model)??"-"),1)])):o.createCommentVNode("",!0),((C=i.hoverPoint)==null?void 0:C.type)==="forecast"?(o.openBlock(),o.createElementBlock("div",Zd,[o.createElementVNode("label",jd,o.toDisplayString(t.$t("weather.wind"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((z=JSON.parse((L=i.hoverPoint)==null?void 0:L.wind))==null?void 0:z.kts)??"-")+" kts",1)])):o.createCommentVNode("",!0),((v=i.hoverPoint)==null?void 0:v.type)==="history"?(o.openBlock(),o.createElementBlock("div",Hd,[o.createElementVNode("label",Xd,o.toDisplayString(t.$t("weather.wind"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((M=i.hoverPoint)==null?void 0:M.kts)??"-")+" kts",1)])):o.createCommentVNode("",!0),o.createElementVNode("div",Yd,[o.createElementVNode("label",Ud,o.toDisplayString(t.$t("weather.pressure"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((T=i.hoverPoint)==null?void 0:T.pressure)??"-")+" hPa",1)]),((E=i.hoverPoint)==null?void 0:E.type)==="history"?(o.openBlock(),o.createElementBlock("div",$d,[o.createElementVNode("label",Jd,o.toDisplayString(t.$t("tropical.moveSpeed"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((Z=JSON.parse((I=i.hoverPoint)==null?void 0:I.movement))==null?void 0:Z.kts)??"-")+" kts",1)])):o.createCommentVNode("",!0),((Y=i.hoverPoint)==null?void 0:Y.type)==="history"?(o.openBlock(),o.createElementBlock("div",Kd,[o.createElementVNode("label",qd,o.toDisplayString(t.$t("tropical.moveDir"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(((ae=JSON.parse(($=i.hoverPoint)==null?void 0:$.movement))==null?void 0:ae.deg)??"-")+" °",1)])):o.createCommentVNode("",!0),o.createElementVNode("div",Qd,[o.createElementVNode("label",eh,o.toDisplayString(t.$t("tropical.position"))+" : ",1),o.createElementVNode("span",null,o.toDisplayString(l.computePosition(i.hoverPoint)),1)])])]}),_:1})]),_:1},512),[[o.vShow,i.showHoverPoint]])])}const jo=X(xm,[["render",th]]),By="",oh={name:"DateTimePicker",props:{width:{type:Number,default:null},height:{type:Number,default:30},position:{type:String,default:"top"},bgClass:{type:String,default:""},locale:{type:String,default:"en"},style:{type:Object,default:{}},intervalHour:{type:Number,default:3},timeZone:{type:Number},dateTime:{type:String},dayAbout:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1}},emits:["dateTime","currentTimestamp","currentRealTime","minTimestamp","maxTimestamp"],data(){return{showDatePicker:!1,minDate:void 0,maxDate:void 0,minTimestamp:void 0,maxTimestamp:void 0,currentDate:void 0,currentTime:void 0,currentTimestamp:void 0,currentDateTimeZ:void 0,currentDateTime:void 0,currentRealTime:void 0,timer:null}},computed:{getStyle(){const t=this.width||220;return this.position==="top"?{bottom:"40px",left:`-${(420-t)/2}px`}:this.position==="bottom"?{top:"40px",left:`-${(420-t)/2}px`}:this.position==="left"?{bottom:"-140px",left:"-428px"}:this.position==="right"?{bottom:"-140px",right:"-428px"}:{bottom:"40px",left:`-${(420-t)/2}px`}},hourOptions(){const t=[];for(let e=0;e<24;e++)t.push(e<10?`0${e}:00`:`${e}:00`);return t.filter((e,a)=>(a-this.timeZone)%this.intervalHour===0)},timeZoneNames(){return S.tz.names()},timeZoneName(){var t;return(t=this.timeZoneNames.filter(e=>S.tz(S(),e).utcOffset()===this.timeZone*60))==null?void 0:t[0]},utcTimeZoneName(){return"Africa/Abidjan"},localTimeZoneName(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"Asia/Shanghai"}},watch:{timeZone:{handler(t,e){t!==e&&(this.handleResetDateTime(this.dateTime),this.handleResetMinMax())}},dateTime:{handler(t,e){t&&this.handleResetDateTime(this.dateTime)},immediate:!0},currentTimestamp:{handler(){this.currentDateTimeZ=S(this.currentTimestamp).utc().format("yyyy-MM-DD HH:00[Z]"),this.$emit("dateTime",this.currentDateTimeZ),this.$emit("currentTimestamp",this.currentTimestamp),this.currentDateTime=`${S.tz(this.currentTimestamp,this.timeZoneName).clone().format("yyyy-MM-DD : HH:00")}`},immediate:!0},currentRealTime:{handler(t,e){t!==e&&this.$emit("currentRealTime",this.currentRealTime)}}},mounted(){this.timer=setInterval(()=>{this.currentRealTime=`${S.tz(S().unix()*1e3,this.timeZoneName).clone().format("HH:mm")}`},100),document.addEventListener("click",this.handleClickOutside)},unmounted(){clearInterval(this.timer),this.handleCancelDate(),document.removeEventListener("click",this.handleClickOutside)},methods:{handleReset(){this.handleResetDateTime(),this.handleResetMinMax()},handleResetDateTime(t){var i;const e=S(t).utc().date(),a=Math.ceil(S(t).utc().hour()/this.intervalHour)*this.intervalHour;this.currentTimestamp=((i=S(t))==null?void 0:i.utc().set({date:e,hour:a,minute:0,second:0,millisecond:0}).unix())*1e3;const r=S.tz(this.currentTimestamp,this.timeZoneName).clone();this.currentDate=r.clone().format("YYYY-MM-DD"),this.currentTime=r.clone().format("HH:00"),this.currentDateTime=`${S.tz(this.currentTimestamp,this.timeZoneName).clone().format("yyyy-MM-DD : HH:00")}`,this.currentRealTime=`${S.tz(S().unix()*1e3,this.timeZoneName).clone().format("HH:mm")}`},handleResetMinMax(){var i,l,n,c,s;if(!this.dayAbout.h||!this.dayAbout.f)return;const t=S().utc().date(),e=Math.ceil(S().utc().hour()/this.intervalHour)*this.intervalHour,a=((i=S())==null?void 0:i.utc().set({date:t,hour:e,minute:0,second:0,millisecond:0}).unix())*1e3,r=S.tz(a,this.timeZoneName).clone();this.minDate=r.clone().add(this.dayAbout.h,"day").format("yyyy-MM-DD"),this.maxDate=r.clone().add(this.dayAbout.f,"day").format("yyyy-MM-DD"),this.minTimestamp=((n=(l=S())==null?void 0:l.utc())==null?void 0:n.set({date:t+this.dayAbout.h,hour:0,minute:0,second:0,millisecond:0}).unix())*1e3,this.maxTimestamp=((s=(c=S())==null?void 0:c.utc())==null?void 0:s.set({date:t+this.dayAbout.f,hour:0,minute:0,second:0,millisecond:0}).unix())*1e3,this.$emit("minTimestamp",this.minTimestamp),this.$emit("maxTimestamp",this.maxTimestamp)},handleOpenDatePicker(){this.disabled||(this.showDatePicker=!this.showDatePicker)},handleUpdateMonth(t){const e=t||S.tz(this.currentTimestamp,this.timeZoneName).clone().month(),a=this.locale==="en"?S.tz(this.currentTimestamp,this.timeZoneName).set({month:e}).clone().format("MMM"):S.tz(this.currentTimestamp,this.timeZoneName).set({month:e}).clone().format("M月");this.$nextTick(()=>{const r=document.querySelector(".v-date-picker-controls__month-btn");r.innerText=a})},handleConfirmDate(){const t=S(this.currentDate).format("yyyy-MM-DD"),e=this.currentTime,a=`${t} ${e}`,r=S.tz(a,"YYYY-MM-DD HH:00",this.timeZoneName).clone().tz(this.localTimeZoneName);this.currentTimestamp=r.unix()*1e3,this.showDatePicker=!1},handleCancelDate(){this.showDatePicker=!1;const t=S.tz(this.currentTimestamp,this.timeZoneName).clone();this.currentDate=t.clone().format("YYYY-MM-DD"),this.currentTime=t.clone().format("HH:00")},handleClickOutside(t){const e=this.$refs.idmGl4Timepicker;e&&!e.contains(t.target)&&(this.showDatePicker=!1)}}},ah={ref:"idmGl4Timepicker",class:"idm-gl4-time-picker"},ih={class:"pa-0",style:{width:"320px"}},rh={class:"h-100 pa-0 d-flex flex-column justify-start align-center",style:{width:"100px"}},lh={class:"d-flex justify-center align-center text-body-2",style:{height:"44px"}};function nh(t,e,a,r,i,l){const n=o.resolveComponent("VDatePicker"),c=o.resolveComponent("VDivider"),s=o.resolveComponent("VListItemTitle"),d=o.resolveComponent("VListItem"),m=o.resolveComponent("VList"),p=o.resolveComponent("VCardText"),g=o.resolveComponent("VBtn"),y=o.resolveComponent("VCardActions"),u=o.resolveComponent("VCard");return o.openBlock(),o.createElementBlock("div",ah,[o.createElementVNode("div",{style:o.normalizeStyle({height:a.height+"px",width:a.width?a.width+"px":"auto"}),class:o.normalizeClass([[a.bgClass,{"cursor-pointer":!a.disabled}],"rounded text-body-1 btn-border-1 btn-bg-1 d-flex align-center justify-center px-2"]),onClick:e[0]||(e[0]=(...h)=>l.handleOpenDatePicker&&l.handleOpenDatePicker(...h))},o.toDisplayString(i.currentDateTime)+" | UTC "+o.toDisplayString(a.timeZone<0?a.timeZone:"+"+a.timeZone),7),i.showDatePicker?(o.openBlock(),o.createBlock(u,{key:0,class:"card-box d-flex flex-column border elevation-12",style:o.normalizeStyle(l.getStyle)},{default:o.withCtx(()=>[o.createVNode(p,{class:"w-100 flex-1-1-0 d-flex pa-0 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",ih,[o.createVNode(n,{modelValue:i.currentDate,"onUpdate:modelValue":e[1]||(e[1]=h=>i.currentDate=h),min:i.minDate,max:i.maxDate,"weekday-format":"narrow",color:"primary",density:"compact",class:"w-100","hide-header":""},null,8,["modelValue","min","max"])]),o.createVNode(c,{class:"h-100",vertical:""}),o.createElementVNode("div",rh,[o.createElementVNode("div",lh,o.toDisplayString(t.$t("time.time")),1),o.createVNode(m,{class:"pa-0 flex-1-1-0 scroll"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(l.hourOptions,(h,f)=>(o.openBlock(),o.createBlock(d,{key:f,value:h,color:"primary",active:i.currentTime===h,rounded:"",height:"26","min-height":"26",class:"rounded-xl",variant:i.currentTime===h?"flat":"text"},{default:o.withCtx(()=>[o.createVNode(s,{class:"text-body-2 font-weight-600 text-center",onClick:k=>i.currentTime=h},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(h),1)]),_:2},1032,["onClick"])]),_:2},1032,["value","active","variant"]))),128))]),_:1})])]),_:1}),o.createVNode(c),o.createVNode(y,{class:"w-100 d-flex justify-end align-center px-4 ga-4",style:{height:"50px"}},{default:o.withCtx(()=>[o.createVNode(g,{size:"small",variant:"tonal",class:"text-none text-body-1 px-4",onClick:l.handleCancelDate},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.cancel")),1)]),_:1},8,["onClick"]),o.createVNode(g,{size:"small",variant:"flat",color:"primary",class:"text-none text-body-1 px-4",onClick:l.handleConfirmDate},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["style"])):o.createCommentVNode("",!0)],512)}const qe=X(oh,[["render",nh]]),Iy="",sh={name:"IdmPoint",components:{DateTimePicker:qe},props:{simple:{type:Boolean,default:!1},isLogin:{type:Boolean,default:!1},token:{type:String},defaultMeteoToken:{type:String},theme:{type:String,default:"zh"},map:{type:Object},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},gateway:{type:String},timeZone:{type:Number},forecastModel:{type:String},realTime:{type:String},followList:{type:Array,default:()=>[]}},emits:["meteoMore","follow","cancelFollow","login"],data(){return{right:10,toggle:!1,showForm:!1,showMeteo:!1,loading:!1,form:{lng:void 0,lngDegree:void 0,lngMinute:void 0,lngDirection:"E",lat:void 0,latDegree:void 0,latMinute:void 0,latDirection:"N",dateTime:void 0,forecastModel:""},formRules:{lngDegree:[t=>t!=null&&t!==""||"required",t=>/^\d{1,3}$/.test(t)||"number",t=>parseInt(t)>=0&&parseInt(t)<=180||"0 ~ 180"],lngMinute:[t=>t===void 0||t===null&&t===""||/^\d{1,2}(\.\d+)?$/.test(t)||"number",t=>t===void 0||t===null&&t===""||parseInt(t)>=0&&parseInt(t)<=59||"0 ~ 59"],latDegree:[t=>t!=null&&t!==""||"required",t=>/^\d{1,2}$/.test(t)||"number",t=>parseInt(t)>=0&&parseInt(t)<=90||"0 ~ 90"],latMinute:[t=>t===void 0||t===null&&t===""||/^\d{1,2}(\.\d+)?$/.test(t)||"number",t=>t===void 0||t===null&&t===""||parseInt(t)>=0&&parseInt(t)<=59||"0 ~ 59"]},meteoData:void 0,currentHourData:{},positionOffset:void 0,positionGmt:void 0,positionMarker:void 0,meteoInfoMarker:void 0}},computed:{timeZoneNames(){return S.tz.names()},timeZoneName(){var t;return(t=this.timeZoneNames.filter(e=>S.tz(S(),e).utcOffset()===this.timeZone*60))==null?void 0:t[0]},computedTzTime(){return t=>S.tz(S(t),this.timeZoneName).clone().format("YYYY-MM-DD HHmm")+" (UTC "+(this.timeZone>=0?"+":"")+this.timeZone+")"},computedLocalTime(){return t=>{var r,i,l;const e=Number((r=this.positionOffset)==null?void 0:r.slice(1,3))*(+(((i=this.positionOffset)==null?void 0:i.slice(1))==="+")?1:-1),a=(l=this.timeZoneNames.filter(n=>S.tz(S(),n).utcOffset()===e*60))==null?void 0:l[0];return t?S.tz(S(t),a).clone().format("YYYY-MM-DD HHmm")+" (UTC "+(e>=0?"+":"")+e+")":"-"}},computePosition(){return function(t){return!t||t.lng===null||t.lng===void 0||isNaN(t.lng)||t.lat===null||t.lat===void 0||isNaN(t.lat)?"-":P.LngLatHelper.lat2pretty(t==null?void 0:t.lat,2).pretty+" / "+P.LngLatHelper.lng2pretty(t==null?void 0:t.lng,2).pretty}},computeRoundPrecision(){return function(t,e=4){return t==null||isNaN(t)||isNaN(e)?"-":P.LngLatHelper.roundPrecision(t,e)}}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})},immediate:!0},toggle:{handler(){this.toggle?this.showForm=!0:(this.showForm=!1,this.showMeteo=!1),this.map&&this.handleBind()},immediate:!0},map:{handler(){this.toggle=!1,this.map&&this.toggle&&this.handleBind()}},showForm:{handler(){this.showForm?this.$nextTick(()=>{var t;(t=this.$refs.spotForm)==null||t.resetValidation()}):this.handleCloseForm()}},showMeteo:{handler(){var t,e,a,r,i,l;this.showMeteo?((a=(e=(t=this.$parent)==null?void 0:t.$refs)==null?void 0:e.idmBottomBar)==null||a.handleToggle("spot",!0),this.simple&&this.$nextTick(()=>{var n,c;this.$parent.playerBottom=((c=(n=this.$refs.spotMeteo)==null?void 0:n.$el)==null?void 0:c.clientHeight)+10})):((l=(i=(r=this.$parent)==null?void 0:r.$refs)==null?void 0:i.idmBottomBar)==null||l.handleToggle("spot",!1),this.simple&&(this.$parent.playerBottom=30))}},realTime:{handler(){this.realTime&&(this.form.dateTime=this.realTime,this.showMeteo&&this.fetchData())}},forecastModel:{handler(){this.form.forecastModel=this.forecastModel},immediate:!0},"form.forecastModel":{handler(t,e){!t&&e&&(this.form.forecastModel=e==="GFS"?"ECMWF":"GFS")}}},methods:{handleMenuToggle(){this.isLogin?this.toggle=!this.toggle:this.$emit("login")},submitForm(){this.handleCloseMeteo(),this.$refs.spotForm.validate().then(async t=>{t!=null&&t.valid&&this.fetchData()})},cancelForm(){var t;(t=this.$refs.spotForm)==null||t.reset(),this.form={lng:void 0,lngDegree:void 0,lngMinute:void 0,lngDirection:"E",lat:void 0,latDegree:void 0,latMinute:void 0,latDirection:"N",dateTime:void 0,forecastModel:this.forecastModel}},handleCloseForm(){this.showForm=!1,this.cancelForm(),this.toggle=!1},async fetchData(){var a;if(isNaN(this.form.latDegree)||isNaN(this.form.latMinute)||isNaN(this.form.lngDegree)||isNaN(this.form.lngMinute))return!1;this.form.lat=(Number(this.form.latDegree??0)+Number(this.form.latMinute??0)/60)*(this.form.latDirection==="N"?1:-1),this.form.lng=(Number(this.form.lngDegree??0)+Number(this.form.lngMinute??0)/60)*(this.form.lngDirection==="E"?1:-1);const t=S();((a=S(this.realTime))==null?void 0:a.diff(t,"d",!0))>=0?await this.fetchForecastData(this.form):await this.fetchHistoryData(this.form)},async fetchForecastData(t){this.loading=!0,this.showMeteo=!0,this.form.lng=t.lng,this.form.lat=t.lat,this.form.followId=t.followId,this.handleDrawInfoMarker([t.lng,t.lat]),this.meteoData=[];const{weatherModels:e,marineModels:a}=Ae.Meteo2Assist.autoPickMeteoModel(t.forecastModel);let r={lat:t.lat,lng:t.lng,datetime:S(t.dateTime).utc().format(),forecastDays:t.day??3,weatherModels:e,marineModels:a};await le.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,r,{headers:{Authorization:this.token||this.defaultMeteoToken}}).then(i=>{(i==null?void 0:i.data.code)===0?(this.meteoData=i==null?void 0:i.data.data,this.meteoData.lng=t.lng,this.meteoData.lat=t.lat,this.initTableData(this.meteoData),this.loading=!1):this.loading=!1}).catch(()=>{this.loading=!1})},async fetchHistoryData(t){this.loading=!0,this.showMeteo=!0,this.form.lng=t.lng,this.form.lat=t.lat,this.form.followId=t.followId,this.handleDrawInfoMarker([t.lng,t.lat]),this.meteoData=[];const{weatherModels:e,marineModels:a}=Ae.Meteo2Assist.autoPickMeteoModel(t.forecastModel),r={lat:t.lat,lng:t.lng,datetime:S(t.dateTime).utc().format(),forecastDays:2,pastDays:1,weatherModels:e,marineModels:a};await le.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,r,{headers:{Authorization:this.token||this.defaultMeteoToken}}).then(i=>{(i==null?void 0:i.data.code)===0?(this.meteoData=i==null?void 0:i.data.data,this.meteoData.lng=t.lng,this.meteoData.lat=t.lat,this.initTableData(this.meteoData),this.loading=!1):this.loading=!1}).catch(()=>{this.loading=!1}),this.loading=!1},initTableData(t){var a,r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re;this.currentHourData={},this.positionGmt=(r=(a=t==null?void 0:t.weather)==null?void 0:a[0])==null?void 0:r.timezone,this.positionOffset=(l=(i=t==null?void 0:t.weather)==null?void 0:i[0])==null?void 0:l.offset;const e=((n=Ae.Meteo2Assist.pickHourly(t,S(this.form.dateTime)))==null?void 0:n[0])||{};this.currentHourData.utc=e.utc,this.currentHourData.lat=t.lat,this.currentHourData.lng=t.lng,this.currentHourData.temp=this.computeRoundPrecision((c=e==null?void 0:e.weather)==null?void 0:c.temp,0)??"-",this.currentHourData.precipProbability=this.computeRoundPrecision((d=(s=e==null?void 0:e.weather)==null?void 0:s.precip)==null?void 0:d.probability,0)??"-",this.currentHourData.precip1h=this.computeRoundPrecision((p=(m=e==null?void 0:e.weather)==null?void 0:m.precip)==null?void 0:p.sum,0)??"-",this.currentHourData.visibility=this.computeRoundPrecision((g=e==null?void 0:e.weather)==null?void 0:g.visibility,0)??"-",this.currentHourData.windSpeed=this.computeRoundPrecision((u=(y=e==null?void 0:e.weather)==null?void 0:y.wind)==null?void 0:u.kts,1)??"-",this.currentHourData.windDir=((f=(h=e==null?void 0:e.weather)==null?void 0:h.wind)==null?void 0:f.direction)??"-",this.currentHourData.windLevel=this.computeRoundPrecision((w=(k=e==null?void 0:e.weather)==null?void 0:k.wind)==null?void 0:w.scale,0)??"-",this.currentHourData.windGust=this.computeRoundPrecision((x=(b=e==null?void 0:e.weather)==null?void 0:b.wind)==null?void 0:x.gusts,1)??"-",this.currentHourData.sigwaveHeight=this.computeRoundPrecision((L=(C=e==null?void 0:e.wave)==null?void 0:C.sig)==null?void 0:L.height,1)??"-",this.currentHourData.sigwaveDir=(v=(z=e==null?void 0:e.wave)==null?void 0:z.sig)==null?void 0:v.direction,this.currentHourData.sigwavePeriod=this.computeRoundPrecision((T=(M=e==null?void 0:e.wave)==null?void 0:M.sig)==null?void 0:T.period,1)??"-",this.currentHourData.windwaveHeight=this.computeRoundPrecision((I=(E=e==null?void 0:e.wave)==null?void 0:E.wd)==null?void 0:I.height,1)??"-",this.currentHourData.windwaveDir=(Y=(Z=e==null?void 0:e.wave)==null?void 0:Z.wd)==null?void 0:Y.direction,this.currentHourData.windwavePeriod=this.computeRoundPrecision((ae=($=e==null?void 0:e.wave)==null?void 0:$.wd)==null?void 0:ae.period,1)??"-",this.currentHourData.swellHeight=this.computeRoundPrecision((G=(V=e==null?void 0:e.wave)==null?void 0:V.swell)==null?void 0:G.height,1)??"-",this.currentHourData.swellDir=(U=(W=e==null?void 0:e.wave)==null?void 0:W.swell)==null?void 0:U.direction,this.currentHourData.swellPeriod=this.computeRoundPrecision((B=(A=e==null?void 0:e.wave)==null?void 0:A.swell)==null?void 0:B.period,1)??"-",this.currentHourData.currentSpeed=this.computeRoundPrecision((j=e==null?void 0:e.current)==null?void 0:j.speed,1)??"-",this.currentHourData.currentDir=(N=e==null?void 0:e.current)==null?void 0:N.direction,this.currentHourData.currentSpeed=this.computeRoundPrecision((q=e==null?void 0:e.current)==null?void 0:q.speed,1)??"-",this.currentHourData.seaLevel=this.computeRoundPrecision(e==null?void 0:e.height,1)??"-",this.currentHourData.seaTemp=this.computeRoundPrecision(e==null?void 0:e.sst,0)??"-",this.currentHourData.weatherUrls=(re=e==null?void 0:e.weather)==null?void 0:re.url},handleBind(){var t,e;this.toggle?((t=this.map)==null||t.on("click",this.handleClick),this.map&&(this.map.getCanvas().style.cursor="crosshair")):((e=this.map)==null||e.off("click",this.handleClick),this.handleCloseMeteo(),this.map&&(this.map.getCanvas().style.cursor="grab"))},handleClick(t){if(t.originalEvent.stopPropagation(),t.originalEvent.target.className==="mapboxgl-canvas")this.handleGetPosition(t.lngLat),this.$nextTick(()=>{this.fetchData()});else return!1},handleGetPosition(t){if(isNaN(t.lat)||isNaN(t.lng))return!1;this.form.latDegree=Number(P.LngLatHelper.lat2pretty(t.lat).degree),this.form.latMinute=Number(P.LngLatHelper.lat2pretty(t.lat).minute),this.form.latDirection=P.LngLatHelper.lat2pretty(t.lat).direction,this.form.lngDegree=Number(P.LngLatHelper.lng2pretty(t.lng).degree),this.form.lngMinute=Number(P.LngLatHelper.lng2pretty(t.lng).minute),this.form.lngDirection=P.LngLatHelper.lng2pretty(t.lng).direction},handleDrawInfoMarker(t){this.drawPositionMarker(t),this.simple||this.drawMeteoInfoMarker(t)},drawPositionMarker(t){t&&(this.map.flyTo({center:t,duration:300}),this.$nextTick(()=>{var a,r;(a=this.positionMarker)==null||a.remove();const e=(r=document.getElementById("idm-position-icon"))==null?void 0:r.cloneNode(!0);this.positionMarker=new ne.Marker(e).setLngLat(t).setOffset([0,-15]).addTo(this.map)}))},drawMeteoInfoMarker(t){this.$nextTick(()=>{var a;const e=document.getElementById("idm-gl4-spot-meteo");this.meteoInfoMarker?(a=this.meteoInfoMarker)==null||a.setLngLat(t):this.meteoInfoMarker=new ne.Marker(e).setLngLat(t).setOffset([0,-190]).addTo(this.map)})},handleMeteoMore(){this.form.forecastModel=this.forecastModel,this.$emit("meteoMore",this.form)},handleCloseMeteo(){this.showMeteo=!1,this.$nextTick(()=>{var t,e;(t=this.positionMarker)==null||t.remove(),this.positionMarker=void 0,(e=this.meteoInfoMarker)==null||e.remove(),this.meteoInfoMarker=void 0})},handleFollow(){this.$emit("follow",this.form)},handleCancelFollow(){var e,a,r;const t=((e=this.form)==null?void 0:e.followId)||((r=(a=this.followList)==null?void 0:a.find(i=>{var l,n;return(i==null?void 0:i.id)===this.form.followId||((l=i==null?void 0:i.coordinate)==null?void 0:l.lng)===this.form.lng&&((n=i==null?void 0:i.coordinate)==null?void 0:n.lat)===this.form.lat}))==null?void 0:r.id);this.$emit("cancelFollow",t)}}},ch={class:"idm-gl4-spot"},mh={class:"d-flex justify-start align-center"},dh={class:"text-h6 font-weight-600"},hh={class:"d-flex justify-start align-center ga-1 mb-2"},ph={class:"text-label"},gh={class:"d-flex justify-start align-center ga-1 mb-2"},uh={class:"text-label"},fh={class:"d-flex justify-start align-center ga-1 mb-2"},yh={class:"text-label"},bh={class:"d-flex justify-start align-center ga-1 mb-2"},wh={class:"text-label"},xh={class:"d-flex justify-start align-center"},kh={class:"mx-2"},_h={class:"mx-0 py-2 d-flex align-center justify-start"},Lh={style:{width:"100px"},class:"pa-0 pr-2 text-right opacity-50"},zh={class:"pa-0 px-0"},Ch={class:"mx-0 py-2 d-flex align-center justify-start"},vh={cols:"9",class:"pa-0 px-0"},Sh={class:"mx-0 py-2 d-flex align-center justify-start"},Nh={style:{width:"100px"},class:"pa-0 pr-2 text-right opacity-50"},Vh={style:{width:"150px"},class:"pa-0 text-left"},Ph={style:{width:"80px"},class:"pa-0 pr-2 text-right opacity-50"},Mh={cols:"3",class:"pa-0 px-0 text-left"},Th={class:"mx-0 py-2 d-flex align-center justify-start"},Eh={style:{width:"100px"},class:"pa-0 pr-2 text-right opacity-50"},Dh={style:{width:"150px"},class:"pa-0 text-left"},Rh={style:{width:"80px"},class:"pa-0 pr-2 text-right opacity-50"},Bh={cols:"3",class:"pa-0 text-left"},Ih={class:"mx-0 py-2 d-flex align-center justify-start"},Ah={style:{width:"100px"},class:"pa-0 pr-2 text-right opacity-50"},Fh={style:{width:"150px"},class:"pa-0 text-left"},Gh={style:{width:"80px"},class:"pa-0 pr-2 text-right opacity-50"},Wh={class:"pa-0 text-left"},Oh={class:"d-flex justify-space-between align-center"},Zh={class:"d-flex justify-start align-center"},jh={class:"mx-1"},Hh={class:"d-flex justify-end align-center"},Xh={class:"mx-0 py-1 d-flex align-center justify-start"},Yh={style:{width:"60px"},class:"pa-0 pr-2 text-right opacity-50"},Uh={class:"pa-0 px-0"},$h={class:"mx-0 py-1 d-flex align-center justify-start"},Jh={class:"pa-0 px-0"},Kh={class:"gray-bg-2 mx-4 my-2 py-3 px-2 rounded text-font-13 d-flex align-center justify-space-between"},qh={class:"d-flex flex-column align-start justify-center ga-3"},Qh={class:"text-label pr-2"},ep={class:"text-label pr-2"},tp={class:"text-label pr-2"},op={class:"d-flex flex-column align-start justify-center ga-3"},ap={class:"text-label pr-2"},ip={class:"text-label pr-2"},rp={class:"text-label pr-2"},lp={id:"idm-position-icon"},np={class:"multi-color-icon",style:{height:"30px",width:"30px"},"aria-hidden":"true"},sp=["xlink:href"];function cp(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip"),s=o.resolveComponent("VCardTitle"),d=o.resolveComponent("VDivider"),m=o.resolveComponent("VTextField"),p=o.resolveComponent("VCol"),g=o.resolveComponent("VRow"),y=o.resolveComponent("DateTimePicker"),u=o.resolveComponent("VBtnToggle"),h=o.resolveComponent("VCardText"),f=o.resolveComponent("VCardActions"),k=o.resolveComponent("VForm"),w=o.resolveComponent("VCard");return o.openBlock(),o.createElementBlock("div",ch,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+126+"px",right:i.right+"px"})},[o.createVNode(c,{text:t.$t("spot.spotsMeteo"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:b})=>[o.createVNode(n,o.mergeProps(b,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>e[8]||(e[8]=[o.createElementVNode("i",{class:"iconfont icon-a-Spotweather text-h4"},null,-1)])),_:2,__:[8]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4),i.showForm&&!a.simple?(o.openBlock(),o.createBlock(w,{key:0,class:"spot-form-card",style:o.normalizeStyle({top:a.top+a.paddingTop+126+"px",right:i.right+50+"px"})},{default:o.withCtx(()=>[o.createVNode(s,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>[o.createElementVNode("div",mh,[o.createElementVNode("div",dh,o.toDisplayString(t.$t("spot.spotWeather")),1)]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleCloseForm},{default:o.withCtx(()=>e[9]||(e[9]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[9]},8,["onClick"])]),_:1}),o.createVNode(d),o.createVNode(k,{ref:"spotForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.submitForm,["prevent"])},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-body-1 pa-4"},{default:o.withCtx(()=>[o.createElementVNode("div",hh,[o.createElementVNode("div",ph,[o.createTextVNode(o.toDisplayString(t.$t("spot.lat")),1),e[10]||(e[10]=o.createElementVNode("span",{class:"text-danger"},"*",-1))])]),o.createVNode(g,{class:"ma-0"},{default:o.withCtx(()=>[o.createVNode(p,{cols:"4",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(m,{modelValue:i.form.latDegree,"onUpdate:modelValue":e[0]||(e[0]=b=>i.form.latDegree=b),rules:i.formRules.latDegree,label:"",density:"compact",variant:"outlined",height:"32px","min-height":"32px",required:"",dense:"",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[11]||(e[11]=o.createElementVNode("span",{class:"px-1"},"°",-1))]),_:1,__:[11]}),o.createVNode(p,{cols:"6",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(m,{modelValue:i.form.latMinute,"onUpdate:modelValue":e[1]||(e[1]=b=>i.form.latMinute=b),rules:i.formRules.latMinute,label:"",density:"compact",variant:"outlined",class:"text-body-1 input-btn-bg-1",required:"",dense:""},null,8,["modelValue","rules"]),e[12]||(e[12]=o.createElementVNode("span",{class:"px-1"},"'",-1))]),_:1,__:[12]}),o.createVNode(p,{cols:"2",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(n,{variant:"outlined",density:"compact",width:"32","min-width":"32",height:"32",class:"text-body-1 bg-primary",style:{border:"1px solid rgba(var(--v-theme-on-surface), 0.38)"},onClick:e[2]||(e[2]=b=>i.form.latDirection=i.form.latDirection==="N"?"S":"N")},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.form.latDirection),1)]),_:1})]),_:1})]),_:1}),o.createElementVNode("div",gh,[o.createElementVNode("div",uh,[o.createTextVNode(o.toDisplayString(t.$t("spot.lng")),1),e[13]||(e[13]=o.createElementVNode("span",{class:"text-danger"},"*",-1))])]),o.createVNode(g,{class:"ma-0"},{default:o.withCtx(()=>[o.createVNode(p,{cols:"4",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(m,{modelValue:i.form.lngDegree,"onUpdate:modelValue":e[3]||(e[3]=b=>i.form.lngDegree=b),rules:i.formRules.lngDegree,density:"compact",variant:"outlined",class:"text-body-1 input-btn-bg-1",required:"",dense:""},null,8,["modelValue","rules"]),e[14]||(e[14]=o.createElementVNode("span",{class:"px-1"},"°",-1))]),_:1,__:[14]}),o.createVNode(p,{cols:"6",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(m,{modelValue:i.form.lngMinute,"onUpdate:modelValue":e[4]||(e[4]=b=>i.form.lngMinute=b),rules:i.formRules.lngMinute,label:"",density:"compact",variant:"outlined",class:"text-body-1 input-btn-bg-1",required:"",dense:""},null,8,["modelValue","rules"]),e[15]||(e[15]=o.createElementVNode("span",{class:"px-1"},"'",-1))]),_:1,__:[15]}),o.createVNode(p,{cols:"2",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(n,{variant:"outlined",density:"compact",width:"32","min-width":"32",height:"32",class:"text-body-1 bg-primary",style:{border:"1px solid rgba(var(--v-theme-on-surface), 0.38)"},onClick:e[5]||(e[5]=b=>i.form.lngDirection=i.form.lngDirection==="E"?"W":"E")},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.form.lngDirection),1)]),_:1})]),_:1})]),_:1}),o.createElementVNode("div",fh,[o.createElementVNode("div",yh,[o.createTextVNode(o.toDisplayString(t.$t("spot.dateTime")),1),e[16]||(e[16]=o.createElementVNode("span",{class:"text-danger"},"*",-1))])]),o.createVNode(g,{class:"ma-0 mb-4"},{default:o.withCtx(()=>[o.createVNode(p,{cols:"12",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(y,o.mergeProps({"date-time":i.form.dateTime,"time-zone":a.timeZone},t.$attrs,{onDateTime:e[6]||(e[6]=b=>i.form.dateTime=b)}),null,16,["date-time","time-zone"])]),_:1})]),_:1}),o.createElementVNode("div",bh,[o.createElementVNode("div",wh,[o.createTextVNode(o.toDisplayString(t.$t("weather.forecastModel")),1),e[17]||(e[17]=o.createElementVNode("span",{class:"text-danger"},"*",-1))])]),o.createVNode(g,{class:"ma-0 mb-2"},{default:o.withCtx(()=>[o.createVNode(p,{cols:"12",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(u,{modelValue:i.form.forecastModel,"onUpdate:modelValue":e[7]||(e[7]=b=>i.form.forecastModel=b),class:"w-100",rounded:"",height:"30",density:"compact",group:""},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"GFS",class:o.normalizeClass(["text-none flex-1-1-0",i.form.forecastModel==="GFS"?"":"btn-border-1 btn-bg-1"]),color:i.form.forecastModel==="GFS"?"primary":"","base-color":""},{default:o.withCtx(()=>e[18]||(e[18]=[o.createTextVNode(" NOAA ",-1)])),_:1,__:[18]},8,["class","color"]),o.createVNode(n,{density:"compact",height:"30",class:o.normalizeClass(["text-none flex-1-1-0",i.form.forecastModel==="ECMWF"?"":"btn-border-1 btn-bg-1"]),color:i.form.forecastModel==="ECMWF"?"primary":"","base-color":"",value:"ECMWF"},{default:o.withCtx(()=>e[19]||(e[19]=[o.createTextVNode(" ECMWF ",-1)])),_:1,__:[19]},8,["class","color"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o.createVNode(d),o.createVNode(f,{class:"d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{size:"small",variant:"tonal",class:"text-none text-body-1 btn-bg-1",onClick:l.cancelForm},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"]),o.createVNode(n,{ref:"submitSpot",loading:i.loading,size:"small",variant:"flat",color:"primary",type:"submit",class:"text-none text-body-1"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])]),_:1},8,["style"])):o.createCommentVNode("",!0),i.showMeteo&&!a.simple?(o.openBlock(),o.createBlock(w,{key:1,id:"idm-gl4-spot-meteo",class:"spot-meteo",style:{width:"490px","z-index":"9"}},{default:o.withCtx(()=>[o.createVNode(s,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>[o.createElementVNode("div",xh,[e[20]||(e[20]=o.createElementVNode("i",{class:"iconfont icon-a-Spotweather text-h5 map-icon-aqua"},null,-1)),o.createElementVNode("div",kh,o.toDisplayString(l.computePosition(i.form||i.currentHourData)),1)]),o.createVNode(n,{class:"mr-n2",density:"comfortable",icon:"",variant:"plain",onClick:o.withModifiers(l.handleCloseMeteo,["stop"])},{default:o.withCtx(()=>e[21]||(e[21]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[21]},8,["onClick"])]),_:1}),o.createVNode(d),o.createVNode(h,{class:"text-body-1 px-0 py-1"},{default:o.withCtx(()=>{var b,x;return[o.createElementVNode("div",_h,[o.createElementVNode("div",Lh,o.toDisplayString(t.$t("time.time")),1),o.createElementVNode("div",zh,o.toDisplayString(l.computedTzTime((b=i.currentHourData)==null?void 0:b.utc)),1)]),o.createElementVNode("div",Ch,[e[22]||(e[22]=o.createElementVNode("div",{style:{width:"100px"},class:"pa-0 pr-2 text-right opacity-50"},"LT",-1)),o.createElementVNode("div",vh,o.toDisplayString(l.computedLocalTime((x=i.currentHourData)==null?void 0:x.utc)),1)]),o.createElementVNode("div",Sh,[o.createElementVNode("div",Nh,o.toDisplayString(t.$t("weather.wind")),1),o.createElementVNode("div",Vh,o.toDisplayString(i.currentHourData.windDir??"-")+"/"+o.toDisplayString(i.currentHourData.windSpeed??"-")+"kts/BF"+o.toDisplayString(i.currentHourData.windLevel??"-"),1),o.createElementVNode("div",Ph,o.toDisplayString(t.$t("weather.sigWave")),1),o.createElementVNode("div",Mh,o.toDisplayString(i.currentHourData.sigwaveDir??"-")+"/"+o.toDisplayString(i.currentHourData.sigwaveHeight??"-")+"m/"+o.toDisplayString(i.currentHourData.sigwavePeriod??"-")+"s ",1)]),o.createElementVNode("div",Th,[o.createElementVNode("div",Eh,o.toDisplayString(t.$t("weather.windWave")),1),o.createElementVNode("div",Dh,o.toDisplayString(i.currentHourData.windwaveDir??"-")+"/"+o.toDisplayString(i.currentHourData.windwaveHeight??"-")+"m/"+o.toDisplayString(i.currentHourData.windwavePeriod??"-")+"s ",1),o.createElementVNode("div",Rh,o.toDisplayString(t.$t("weather.swell")),1),o.createElementVNode("div",Bh,o.toDisplayString(i.currentHourData.swellDir??"-")+"/"+o.toDisplayString(i.currentHourData.swellHeight??"-")+"m/"+o.toDisplayString(i.currentHourData.swellPeriod??"-")+"s ",1)]),o.createElementVNode("div",Ih,[o.createElementVNode("div",Ah,o.toDisplayString(t.$t("weather.current")),1),o.createElementVNode("div",Fh,o.toDisplayString(i.currentHourData.currentDir??"-")+"/"+o.toDisplayString(i.currentHourData.currentSpeed??"-")+"kts",1),o.createElementVNode("div",Gh,o.toDisplayString(t.$t("weather.visibility")),1),o.createElementVNode("div",Wh,o.toDisplayString(i.currentHourData.visibility??"-")+" nm",1)])]}),_:1}),o.createVNode(d),o.createVNode(f,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>{var b;return[(b=a.followList)!=null&&b.some(x=>{var C,L;return(x==null?void 0:x.id)===i.form.followId||((C=x==null?void 0:x.coordinate)==null?void 0:C.lng)===i.form.lng&&((L=x==null?void 0:x.coordinate)==null?void 0:L.lat)===i.form.lat})?(o.openBlock(),o.createBlock(n,{key:0,id:"idm-gl4-spot-meteo-follow",class:"text-none text-body-1",variant:"text",density:"compact",height:"32",onClick:o.withModifiers(l.handleCancelFollow,["stop"])},{prepend:o.withCtx(()=>e[23]||(e[23]=[o.createElementVNode("i",{class:"iconfont icon-yishoucang text-h6 text-warning"},null,-1)])),default:o.withCtx(()=>[o.createTextVNode(" "+o.toDisplayString(t.$t("actions.unfollow")),1)]),_:1},8,["onClick"])):(o.openBlock(),o.createBlock(n,{key:1,id:"idm-gl4-spot-meteo-unfollow",class:"text-none text-body-1",variant:"text",density:"compact",height:"32",onClick:o.withModifiers(l.handleFollow,["stop"])},{prepend:o.withCtx(()=>e[24]||(e[24]=[o.createElementVNode("i",{class:"iconfont icon-weishoucang text-h6"},null,-1)])),default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.follow"))+" ",1)]),_:1},8,["onClick"])),o.createVNode(n,{height:"32",variant:"text",density:"compact","append-icon":"mdi-chevron-right",class:"text-none text-body-1",onClick:o.withModifiers(l.handleMeteoMore,["stop"])},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("spot.forecast")),1)]),_:1},8,["onClick"])]}),_:1})]),_:1})):o.createCommentVNode("",!0),i.showMeteo&&a.simple?(o.openBlock(),o.createBlock(w,{key:2,ref:"spotMeteo",class:"position-absolute bottom-0 rounded-t-4",style:{width:"100vw","z-index":"1001"}},{default:o.withCtx(()=>[o.createVNode(s,null,{default:o.withCtx(()=>{var b;return[o.createElementVNode("div",Oh,[o.createElementVNode("div",Zh,[e[25]||(e[25]=o.createElementVNode("i",{class:"iconfont icon-a-Spotweather text-h5 map-icon-aqua"},null,-1)),o.createElementVNode("div",jh,o.toDisplayString(l.computePosition(i.form||i.currentHourData)),1)]),o.createElementVNode("div",Hh,[(b=a.followList)!=null&&b.some(x=>{var C,L;return(x==null?void 0:x.id)===i.form.followId||((C=x==null?void 0:x.coordinate)==null?void 0:C.lng)===i.form.lng&&((L=x==null?void 0:x.coordinate)==null?void 0:L.lat)===i.form.lat})?(o.openBlock(),o.createBlock(n,{key:0,class:"text-none text-body-1 rounded-circle",variant:"text",density:"compact",height:"32",width:"28","min-width":"28",onClick:o.withModifiers(l.handleCancelFollow,["stop"])},{default:o.withCtx(()=>e[26]||(e[26]=[o.createElementVNode("i",{class:"iconfont icon-yishoucang text-h4 text-warning"},null,-1)])),_:1,__:[26]},8,["onClick"])):(o.openBlock(),o.createBlock(n,{key:1,class:"text-none text-body-1 rounded-circle",variant:"plain",density:"compact",height:"32",width:"28","min-width":"28",onClick:o.withModifiers(l.handleFollow,["stop"])},{default:o.withCtx(()=>e[27]||(e[27]=[o.createElementVNode("i",{class:"iconfont icon-weishoucang text-h4"},null,-1)])),_:1,__:[27]},8,["onClick"])),o.createVNode(n,{class:"mr-n2",density:"comfortable",icon:"",variant:"plain",onClick:o.withModifiers(l.handleCloseMeteo,["stop"])},{default:o.withCtx(()=>e[28]||(e[28]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[28]},8,["onClick"])])]),e[29]||(e[29]=o.createElementVNode("div",{class:"px-5 py-0 text-label text-body-1"},"Spot Weather",-1))]}),_:1,__:[29]}),o.createVNode(d),o.createVNode(h,{class:"text-body-1 px-0 py-2"},{default:o.withCtx(()=>{var b,x;return[o.createElementVNode("div",Xh,[o.createElementVNode("div",Yh,o.toDisplayString(t.$t("time.time")),1),o.createElementVNode("div",Uh,o.toDisplayString(l.computedTzTime((b=i.currentHourData)==null?void 0:b.utc)),1)]),o.createElementVNode("div",$h,[e[30]||(e[30]=o.createElementVNode("div",{style:{width:"60px"},class:"pa-0 pr-2 text-right opacity-50"},"LT",-1)),o.createElementVNode("div",Jh,o.toDisplayString(l.computedLocalTime((x=i.currentHourData)==null?void 0:x.utc)),1)]),o.createElementVNode("div",Kh,[o.createElementVNode("div",qh,[o.createElementVNode("div",null,[o.createElementVNode("span",Qh,o.toDisplayString(t.$t("weather.wind")),1),o.createElementVNode("span",null,o.toDisplayString(i.currentHourData.windDir??"-")+"/"+o.toDisplayString(i.currentHourData.windSpeed??"-")+"kts/BF"+o.toDisplayString(i.currentHourData.windLevel??"-"),1)]),o.createElementVNode("div",null,[o.createElementVNode("span",ep,o.toDisplayString(t.$t("weather.sigWave")),1),o.createElementVNode("span",null,o.toDisplayString(i.currentHourData.sigwaveDir??"-")+"/"+o.toDisplayString(i.currentHourData.sigwaveHeight??"-")+"m/"+o.toDisplayString(i.currentHourData.sigwavePeriod??"-")+"s",1)]),o.createElementVNode("div",null,[o.createElementVNode("span",tp,o.toDisplayString(t.$t("weather.windWave")),1),o.createElementVNode("span",null,o.toDisplayString(i.currentHourData.windwaveDir??"-")+"/"+o.toDisplayString(i.currentHourData.windwaveHeight??"-")+"m/"+o.toDisplayString(i.currentHourData.windwavePeriod??"-")+"s",1)])]),o.createElementVNode("div",op,[o.createElementVNode("div",null,[o.createElementVNode("span",ap,o.toDisplayString(t.$t("weather.swell")),1),o.createElementVNode("span",null,o.toDisplayString(i.currentHourData.swellDir??"-")+"/"+o.toDisplayString(i.currentHourData.swellHeight??"-")+"m/"+o.toDisplayString(i.currentHourData.swellPeriod??"-")+"s",1)]),o.createElementVNode("div",null,[o.createElementVNode("span",ip,o.toDisplayString(t.$t("weather.current")),1),o.createElementVNode("span",null,o.toDisplayString(i.currentHourData.currentDir??"-")+"/"+o.toDisplayString(i.currentHourData.currentSpeed??"-")+"kts",1)]),o.createElementVNode("div",null,[o.createElementVNode("span",rp,o.toDisplayString(t.$t("weather.visibility")),1),o.createElementVNode("span",null,o.toDisplayString(i.currentHourData.visibility??"-")+" nm",1)])])])]}),_:1})]),_:1},512)):o.createCommentVNode("",!0),o.withDirectives(o.createElementVNode("div",lp,[(o.openBlock(),o.createElementBlock("svg",np,[o.createElementVNode("use",{"xlink:href":`#icon-spot-${a.theme}`},null,8,sp)]))],512),[[o.vShow,i.showMeteo]])])}const mp=X(sh,[["render",cp]]),Ay="",dp={name:"IdmMeasure",props:{simple:{type:Boolean,default:!1},map:{type:Object},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}}},setup(){return{Theme:fe.useTheme()}},data(){return{right:10,toggle:!1,geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",sumLayer:"measure-suml-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL",currentLineIndex:1}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})},immediate:!0},toggle:{handler(){var t,e,a;if(this.toggle)this.handleBind();else{(t=this.map)==null||t.getCanvas().removeEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.off("mousemove",this.handleMove),(a=this.map)==null||a.off("dblclick",this.handleDblClick),this.map;let r=this.geojson.find(i=>!i.closed);r&&this.handleClear(r,!0),this.geojson=this.geojson.filter(i=>!!i.closed),r=D.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(r)}},immediate:!0},map:{handler(){this.map&&(this.toggle?this.handleBind():this.handleUnbind())}}},methods:{handleMenuToggle(){this.toggle=!this.toggle},handleBind(){var t,e,a,r,i;(t=this.map)==null||t.getCanvas().addEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.on("mousemove",this.handleMove),(a=this.map)==null||a.on("dblclick",this.handleDblClick),(r=this.map)==null||r.on("click",this.handleClick),(i=this.map)==null||i.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair")},handleUnbind(){var t,e,a,r,i;(t=this.map)==null||t.getCanvas().removeEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.off("mousemove",this.handleMove),(a=this.map)==null||a.off("dblclick",this.handleDblClick),(r=this.map)==null||r.off("click",this.handleClick),(i=this.map)==null||i.off("contextmenu",this.handleContextmenu);for(const l of this.geojson)this.handleClear(l,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")},handleKeydown(t){if(t.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const e=this.geojson.at(-1),a=e.features.filter(r=>r.geometry.type==="Point");a!=null&&a.length&&(a.at(-1).properties.mode=this.navigation),this.handleRender(e)}},handleDrag(t){var a,r,i,l,n,c,s,d,m,p;const e=(r=(a=t.target)==null?void 0:a._element)==null?void 0:r.id;if((e==null?void 0:e.split("-").length)===2){const g=this.geojson.filter(f=>f.id===e.split("-")[0])[0];this.pointMarkers[g.id].filter(f=>{var k;return((k=f._element)==null?void 0:k.id)===e})[0].setLngLat([(l=(i=t.target)==null?void 0:i._lngLat)==null?void 0:l.lng,(c=(n=t.target)==null?void 0:n._lngLat)==null?void 0:c.lat]);let u;g.features.forEach((f,k)=>{if(f.geometry.type==="Point"&&f.properties.id===e.split("-")[1]){u=k;return}});const h=g.features.filter(f=>f.geometry.type==="Point");this.handleTmpPointUpdate(g,h[u-1],{lng:(d=(s=t.target)==null?void 0:s._lngLat)==null?void 0:d.lng,lat:(p=(m=t.target)==null?void 0:m._lngLat)==null?void 0:p.lat,properties:h[u].properties},u===h.length-1?void 0:h[u+1])}},handleDragEnd(t){var a,r,i,l,n,c,s,d,m,p;const e=(r=(a=t.target)==null?void 0:a._element)==null?void 0:r.id;if((e==null?void 0:e.split("-").length)===2){const g=this.geojson.filter(h=>h.id===e.split("-")[0])[0];this.pointMarkers[g.id].filter(h=>{var f;return((f=h._element)==null?void 0:f.id)===e})[0].setLngLat([(l=(i=t.target)==null?void 0:i._lngLat)==null?void 0:l.lng,(c=(n=t.target)==null?void 0:n._lngLat)==null?void 0:c.lat]);const u=g.features.filter(h=>h.geometry.type==="Point"&&h.properties.id===e.split("-")[1])[0];u.geometry.coordinates=[(d=(s=t.target)==null?void 0:s._lngLat)==null?void 0:d.lng,(p=(m=t.target)==null?void 0:m._lngLat)==null?void 0:p.lat],g.features=g.features.filter(h=>h.geometry.type==="Point"),this.handlePointUpdate(g)}},handleContextmenu(t){var a,r,i,l;t.preventDefault(),(a=this.contextmenu)==null||a.remove();const e=(l=(i=(r=t.originalEvent)==null?void 0:r.target)==null?void 0:i.parentElement)==null?void 0:l.id;if((e==null?void 0:e.split("-").length)===2){const c=this.geojson.filter(s=>s.id===e.split("-")[0])[0].features.filter(s=>s.geometry.type==="Point");if(c.length>2&&c.filter(d=>d.properties.id===(e==null?void 0:e.split("-")[1]))[0]){const d=document.createElement("div");d.className="idm-gl4-measure-contextmenu-marker",d.innerHTML=`<span id="del-${e}" class="del-point">${this.$t("actions.detele")}</span>`,this.contextmenu=new ne.Marker(d).setOffset([24,0]).setLngLat([t.lngLat.lng,t.lngLat.lat]).addTo(this.map)}}},handleClick(t){var a,r,i,l,n,c;(a=this.contextmenu)==null||a.remove();const e=t.originalEvent.target.className;if(e==="marker-close"){const s=(i=(r=t.originalEvent)==null?void 0:r.srcElement)==null?void 0:i.id,d=this.geojson.filter(m=>m.id===s)[0];d&&this.handleClear(d,!0),this.geojson=this.geojson.filter(m=>m.id!==s),!this.toggle&&!((l=this.geojson)!=null&&l.some(m=>m.closed))&&this.handleUnbind()}else if(e==="del-point"){const s=(c=(n=t.originalEvent.target.id)==null?void 0:n.replace("del-",""))==null?void 0:c.split("-"),d=this.geojson.filter(m=>m.id===s[0])[0];d.features=d.features.filter(m=>m.geometry.type==="Point"&&m.properties.id!==s[1]),this.handlePointUpdate(d)}else if(e!=="marker-label"&&this.toggle){let s=this.geojson.at(-1);s||(s=D.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(s)),s.features=s.features.filter(m=>m.geometry.type==="Point");const d=D.feature({type:"Point",coordinates:[t.lngLat.lng,t.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation,sumLabel:"Start"});s.features.push(d),this.handlePointUpdate(s)}},handlePointUpdate(t){const e=t.features;if(e.length>1){let a=0;const r=[];for(let i=1;i<e.length;i++){const l=e[i-1],n=e[i],c=l.properties,s={lng:l.geometry.coordinates[0],lat:l.geometry.coordinates[1]},d={lng:n.geometry.coordinates[0],lat:n.geometry.coordinates[1]},m=P.LaneHelper.calculateDistance(s,d,c.mode==="RL",4),p=P.LaneHelper.calculateBearing(s,d,c.mode==="RL",2);a=P.LngLatHelper.roundPrecision(a+m,4);let g;c.mode==="RL"?g=P.LngLatHelper.convertToMonotonicLng([s,d]):g=P.LngLatHelper.convertToMonotonicLng(P.LaneHelper.interpolateCoordinates(s,d,200));const y=D.lineString(g.map(h=>[h.lng,h.lat]));y.properties.dist=m,y.properties.bearing=p,y.properties.total=a,y.properties.name="Line "+this.currentLineIndex,r.push(y);const u=e[i];u.properties.totalDist=P.LngLatHelper.roundPrecision((c.totalDist?c.totalDist:0)+m,4),u.properties.sumLabel=u.properties.totalDist+" nm"}e.push(...r),t.total=a}return this.handleRender(t),t},handleTmpPointUpdate(t,e,a,r){const i=D.featureCollection([]);let l,n;if(e){const s=e.properties,d={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},m={lng:a.lng,lat:a.lat};l=P.LaneHelper.calculateDistance(d,m,s.mode==="RL",4),n=P.LaneHelper.calculateBearing(d,m,s.mode==="RL",2);let p;s.mode==="RL"?p=P.LngLatHelper.convertToMonotonicLng([d,m]):p=P.LngLatHelper.convertToMonotonicLng(P.LaneHelper.interpolateCoordinates(d,m,200));const g=D.lineString(p.map(y=>[y.lng,y.lat]));g.properties.dist=l,g.properties.bearing=n,i.features.push(g)}if(r){const s=a.properties,d=a,m={lng:r.geometry.coordinates[0],lat:r.geometry.coordinates[1]};l=P.LaneHelper.calculateDistance(d,m,s.mode==="RL",4),n=P.LaneHelper.calculateBearing(d,m,s.mode==="RL",2);let p;s.mode==="RL"?p=P.LngLatHelper.convertToMonotonicLng([d,m]):p=P.LngLatHelper.convertToMonotonicLng(P.LaneHelper.interpolateCoordinates(d,m,200));const g=D.lineString(p.map(y=>[y.lng,y.lat]));g.properties.dist=l,g.properties.bearing=n,i.features.push(g)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(i):this.map.addSource(this.tmpSource,{type:"geojson",data:i}),this.map.getLayer(this.tmpLayer)||this.map.addLayer({id:this.tmpLayer,type:"line",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["map-orange"],"line-width":2,"line-opacity":1,"line-dasharray":[3,2]}}),this.map.getLayer(this.tmpLabelLayer)||this.map.addLayer({id:this.tmpLabelLayer,type:"symbol",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":10,"text-offset":[0,-1]},paint:{"text-opacity":1,"text-color":this.Theme.current.value.colors["on-surface"]}});let c;if(r)c=`<div class="marker-label">${this.$t("measure.dragTips")}</div>`;else{const s=P.LngLatHelper.roundPrecision((t.total??0)+l,1);c=`<div class="marker-label">${this.$t("measure.totalDistance")}: <b>${s}</b>nm, ${this.$t("measure.bearing")}: <b>${n}</b>°</div><div class="marker-label"> ${this.$t("measure.mode")}${this.navigation==="RL"?"RL":"GC"}, ${this.$t("measure.switchTips")}</div><div class="marker-label">${this.$t("measure.clickTips")}</div>`}if(this.tipMarker)this.tipMarker._element.innerHTML=c,this.tipMarker.setLngLat([a.lng,a.lat]);else{const s=document.createElement("div");s.className="idm-gl4-measure-tip-marker",s.innerHTML=c,this.tipMarker=new ne.Marker(s).setOffset([140,0]).setLngLat([a.lng,a.lat]).addTo(this.map)}},handleMove(t){this.map.getCanvas().style.cursor="crosshair";let e=this.geojson.at(-1);e||(e=D.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e));const a=e.features.filter(r=>r.geometry.type==="Point");a!=null&&a.length&&this.handleTmpPointUpdate(e,a.at(-1),{lng:t.lngLat.lng,lat:t.lngLat.lat})},handleDblClick(t){t.preventDefault();let e=this.geojson.at(-1);e.closed=!0,this.handleRender(e),e=D.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e),this.currentLineIndex++},handleRender(t){var e;if((e=t==null?void 0:t.features)!=null&&e.length){const a=`${t.id}-${this.source}`,r=`${t.id}-${this.layer}`,i=`${t.id}-${this.labelLayer}`,l=`${t.id}-${this.sumLayer}`;this.map.getSource(a)?this.map.getSource(a).setData(t):this.map.addSource(a,{type:"geojson",data:t}),this.handleClear(t,!1),this.map.addLayer({id:r,type:"line",source:a,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["map-orange"],"line-width":2}}),this.map.addLayer({id:i,type:"symbol",source:a,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":10,"text-offset":[0,-1]},paint:{"text-opacity":1,"text-color":this.Theme.current.value.colors["on-surface"]}}),this.map.addLayer({id:l,type:"symbol",source:a,filter:["==","$type","Point"],layout:{"text-field":"{sumLabel}","text-rotation-alignment":"map","text-size":12,"text-offset":[0,1.5]},paint:{"text-opacity":1,"text-color":this.Theme.current.value.colors["on-surface"]}});const n=t.features.filter(c=>c.geometry.type==="Point");for(const c of n){const s=document.createElement("div");s.id=`${t.id}-${c.properties.id}`,s.className=`${t.closed?"idm-gl4-measure-marker closed":"idm-gl4-measure-marker"}`,s.innerHTML='<div class="marker-circle"></div>';const d=new ne.Marker({element:s,draggable:!0,contextmenu:!0}).setLngLat(c.geometry.coordinates).addTo(this.map);d.on("drag",this.handleDrag),d.on("dragend",this.handleDragEnd),this.pointMarkers[t.id]?this.pointMarkers[t.id].push(d):this.pointMarkers[t.id]=[d]}if(t.closed){const c=n.at(-1),d=t.features.filter(p=>p.geometry.type==="LineString").at(-1),m=document.createElement("div");m.className="idm-gl4-measure-summary-marker",m.innerHTML=`<div class="marker-label">${d.properties.name}</div><div id="${t.id}" class="marker-close">X</div>`,this.closeMarkers[t.id]=new ne.Marker(m).setOffset([0,-30]).setLngLat(c.geometry.coordinates).addTo(this.map)}}},handleClear(t,e=!0){var n,c,s,d,m,p,g,y,u,h;const a=`${t.id}-${this.source}`,r=`${t.id}-${this.layer}`,i=`${t.id}-${this.labelLayer}`,l=`${t.id}-${this.sumLayer}`;(n=this.map)!=null&&n.getLayer(r)&&this.map.removeLayer(r),(c=this.map)!=null&&c.getLayer(i)&&this.map.removeLayer(i),(s=this.map)!=null&&s.getLayer(l)&&this.map.removeLayer(l),(d=this.map)!=null&&d.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(m=this.map)!=null&&m.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(p=this.closeMarkers[t.id])==null||p.remove(),this.closeMarkers[t.id]=void 0,(g=this.pointMarkers[t.id])==null||g.forEach(f=>{f==null||f.remove()}),this.pointMarkers[t.id]=[],(y=this.tipMarker)==null||y.remove(),this.tipMarker=void 0,e&&((u=this.map)!=null&&u.getSource(a))&&this.map.removeSource(a),e&&((h=this.map)!=null&&h.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}},hp={class:"idm-gl4-measure"};function pp(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip");return o.openBlock(),o.createElementBlock("div",hp,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+166+"px",right:i.right+"px"})},[o.createVNode(c,{text:t.$t("measure.measure"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:s})=>[o.createVNode(n,o.mergeProps(s,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>e[0]||(e[0]=[o.createElementVNode("i",{class:"iconfont icon-a-Measuredistance text-h4"},null,-1)])),_:2,__:[0]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4)])}const gp=X(dp,[["render",pp]]),Fy="",up={name:"IdmDrawMarker",props:{map:{type:Object},gateway:{type:String},token:{type:String},simple:{type:Boolean,default:!1},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:()=>({})},editLayer:{type:Object,default:null},group:{type:Object,default:()=>({})}},emits:["close","save","hideLayer"],setup(){return{Theme:fe.useTheme()}},data(){var t;return{markerType:"Point",form:{latDegree:"",latMinute:"",latDir:"N",lngDegree:"",lngMinute:"",lngDir:"E",areaType:"Polygon",color:(t=this.Theme.current.value.colors)==null?void 0:t["map-green"],name:""},formRules:{lngDegree:[e=>e!=null&&e!==""||"required",e=>/^\d{1,3}$/.test(e)||"number",e=>parseInt(e)>=0&&parseInt(e)<=180||"0 ~ 180"],lngMinute:[e=>e==null||e===""||/^\d{1,2}(\.\d+)?$/.test(e)||"number",e=>e==null||e===""||parseInt(e)>=0&&parseInt(e)<=59||"0 ~ 59"],latDegree:[e=>e!=null&&e!==""||"required",e=>/^\d{1,2}$/.test(e)||"number",e=>parseInt(e)>=0&&parseInt(e)<=90||"0 ~ 90"],latMinute:[e=>e==null||e===""||/^\d{1,2}(\.\d+)?$/.test(e)||"number",e=>e==null||e===""||parseInt(e)>=0&&parseInt(e)<=59||"0 ~ 59"],color:[e=>e!=null&&e!==""||"required"],name:[e=>e!=null&&e!==""||"required"]},saving:!1,drawSource:"draw-marker-source",drawPointLayer:"draw-marker-point-layer",drawLineLayer:"draw-marker-line-layer",drawFillLayer:"draw-marker-fill-layer",drawTmpSource:"draw-marker-tmp-source",drawTmpLayer:"draw-marker-tmp-layer",drawCoords:[],rectCornerMarkers:[],polygonVertexMarkers:[],circleMarkers:[],drawRadiusSource:"draw-marker-radius-source",drawRadiusLayer:"draw-marker-radius-layer",tipMarker:null,pointMarker:null,pointHighlightMarker:null,editMarkers:[],deleteBtn:null,originalProperties:{}}},watch:{markerType:{handler(){var t;(t=this.editLayer)!=null&&t.id||(this.markerType==="Area"?this.form.name=`${this.form.areaType} 1`:this.form.name=`${this.markerType} 1`,this.handleClearDraw())},immediate:!0},"form.areaType"(){var t;(t=this.editLayer)!=null&&t.id||(this.markerType==="Area"?this.form.name=`${this.form.areaType} 1`:this.form.name=`${this.markerType} 1`,this.handleClearDraw())},map:{handler(){var t;this.map&&(this.handleBindMap(),(t=this.editLayer)!=null&&t.id&&this.loadEditLayer())},immediate:!0},"form.color":{handler(){this.handleChangePoint(),this.handleUpdateLayerColors()},immediate:!0}},beforeUnmount(){this.handleClearDraw(!0),this.handleUnbindMap()},methods:{handleClose(){this.handleClearDraw(!0),this.handleUnbindMap(),this.$emit("close")},handleBindMap(){var t,e;this.map&&(this.markerType==="Point"?(this.map.on("click",this.handleMapClickPoint),this.map.getCanvas().style.cursor="crosshair"):this.markerType==="Line"&&!((t=this.editLayer)!=null&&t.id)?(this.map.on("click",this.handleMapClickLine),this.map.on("mousemove",this.handleMapMoveLine),this.map.on("dblclick",this.handleMapDblClickLine),this.map.getCanvas().style.cursor="crosshair"):this.markerType==="Area"&&!((e=this.editLayer)!=null&&e.id)&&(this.form.areaType==="Polygon"?(this.map.on("click",this.handleMapClickPolygon),this.map.on("mousemove",this.handleMapMovePolygon),this.map.on("dblclick",this.handleMapDblClickPolygon)):this.form.areaType==="Circle"?(this.map.on("click",this.handleMapClickCircle),this.map.on("mousemove",this.handleMapMoveCircle)):this.form.areaType==="Rect"&&(this.map.on("click",this.handleMapClickRect),this.map.on("mousemove",this.handleMapMoveRect)),this.map.getCanvas().style.cursor="crosshair"))},handleUnbindMap(){this.map&&(this.map.off("click",this.handleMapClickPoint),this.map.off("click",this.handleMapClickLine),this.map.off("mousemove",this.handleMapMoveLine),this.map.off("dblclick",this.handleMapDblClickLine),this.map.off("click",this.handleMapClickPolygon),this.map.off("mousemove",this.handleMapMovePolygon),this.map.off("dblclick",this.handleMapDblClickPolygon),this.map.off("click",this.handleMapClickCircle),this.map.off("mousemove",this.handleMapMoveCircle),this.map.off("click",this.handleMapClickRect),this.map.off("mousemove",this.handleMapMoveRect),this.map.getCanvas().style.cursor="grab")},handleRebindMap(){this.handleUnbindMap(),this.handleBindMap()},loadEditLayer(){var i,l,n,c,s,d;if(!((i=this.editLayer)!=null&&i.extend)||!this.map)return;const t=typeof this.editLayer.extend=="string"?JSON.parse(this.editLayer.extend):this.editLayer.extend;if(!t)return;const a=(t.features||(t.type==="Feature"?[t]:[]))[0];if(!a)return;this.originalProperties=a.properties||{},this.form.name=this.editLayer.name||"",this.form.color=this.editLayer.color||((l=this.originalProperties)==null?void 0:l.color)||((n=this.Theme.current.value.colors)==null?void 0:n["map-green"])||"#4CAF50";const r=(c=a.geometry)==null?void 0:c.type;if(r==="Point"){this.markerType="Point";const[m,p]=a.geometry.coordinates;this.drawCoords=[[m,p]],this.form.latDegree=Number(P.LngLatHelper.lat2pretty(p).degree),this.form.latMinute=Number(P.LngLatHelper.lat2pretty(p).minute),this.form.latDir=P.LngLatHelper.lat2pretty(p).direction,this.form.lngDegree=Number(P.LngLatHelper.lng2pretty(m).degree),this.form.lngMinute=Number(P.LngLatHelper.lng2pretty(m).minute),this.form.lngDir=P.LngLatHelper.lng2pretty(m).direction,this.handleRenderPoint(this.drawCoords,this.form.color),this.setupPointEdit()}else r==="LineString"?(this.markerType="Line",this.$nextTick(()=>{this.handlerRenderEditLine(a),this.setupLineEdit(),this.handleUnbindMap()})):r==="Polygon"&&(this.markerType="Area",this.form.areaType=(d=(s=this.originalProperties)==null?void 0:s.shape)==null?void 0:d.toLowerCase(),this.$nextTick(()=>{this.handlerRenderEditPolygon(t),this.setupPolygonEdit(a),this.handleUnbindMap()}));this.$emit("hideLayer",this.editLayer.id)},setupPointEdit(){var a;if(!this.pointMarker)return;this.pointMarker.setDraggable(!0),this.pointMarker.off("drag",this.handlePointDrag),this.pointMarker.on("drag",this.handlePointDrag),this.pointMarker.off("dragend",this.handlePointDrag),this.pointMarker.on("dragend",this.handlePointDrag),(a=this.pointHighlightMarker)==null||a.remove();const t=document.createElement("div");t.className="idm-gl4-point-center-ring";const e=this.pointMarker.getLngLat();this.pointHighlightMarker=new ne.Marker({element:t,anchor:"center",offset:[0,0]}).setLngLat(e).addTo(this.map),this.pointMarker.on("drag",()=>{var r;(r=this.pointHighlightMarker)==null||r.setLngLat(this.pointMarker.getLngLat())})},handlePointDrag(){const{lng:t,lat:e}=this.pointMarker.getLngLat();this.drawCoords=[[t,e]],this.form.latDegree=Number(P.LngLatHelper.lat2pretty(e).degree),this.form.latMinute=Number(P.LngLatHelper.lat2pretty(e).minute),this.form.latDir=P.LngLatHelper.lat2pretty(e).direction,this.form.lngDegree=Number(P.LngLatHelper.lng2pretty(t).degree),this.form.lngMinute=Number(P.LngLatHelper.lng2pretty(t).minute),this.form.lngDir=P.LngLatHelper.lng2pretty(t).direction},clearEditMarkers(){this.editMarkers.forEach(t=>t.remove()),this.editMarkers=[],this._edgeContextMenuHandler&&this.map&&(this.map.off("contextmenu",this._edgeContextMenuHandler),this._edgeContextMenuHandler=null)},handlerRenderEditLine(t){this.drawCoords=t.geometry.coordinates.map(r=>[...r]);const e=D.featureCollection([t,...this.drawCoords.map(r=>D.point(r))]);this.handleSetDrawSource(e);const a=3;this.map.getLayer(this.drawLineLayer)||this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":a}})},setupLineEdit(){this.clearEditMarkers(),this.drawCoords.forEach((e,a)=>{const r=document.createElement("div");r.className="idm-gl4-edit-vertex",r.style.backgroundColor=this.form.color;const i=new ne.Marker({element:r,draggable:!0}).setLngLat(e).addTo(this.map);i.on("dragstart",()=>{this.map.getCanvas().style.cursor="pointer";const{lng:l,lat:n}=i.getLngLat();this.handleRenderVertexLabel([l,n],40)}),i.on("drag",()=>{this.map.getCanvas().style.cursor="pointer";const{lng:l,lat:n}=i.getLngLat();this.handleUpdateVertexLabel([l,n]),this.drawCoords[a]=[l,n],this.handlerRenderEditLine(D.lineString(this.drawCoords,{type:"Line",color:this.form.color}))}),i.on("dragend",()=>{this.map.getCanvas().style.cursor="grab";const{lng:l,lat:n}=i.getLngLat();this.drawCoords[a]=[l,n],this.handlerRenderEditLine(D.lineString(this.drawCoords,{type:"Line",color:this.form.color})),this.handleClearVertexLabels()}),r.addEventListener("contextmenu",l=>{l.preventDefault(),l.stopPropagation(),this.drawCoords.length>2&&this.showDeleteButton(e,()=>{this.drawCoords.splice(a,1),this.handlerRenderEditLine(D.lineString(this.drawCoords,{type:"Line",color:this.form.color})),this.setupLineEdit()})}),this.editMarkers.push(i)});const t=e=>{e.preventDefault();const{lng:a,lat:r}=e.lngLat,i=D.point([a,r]),l=D.lineString(this.drawCoords),n=D.nearestPointOnLine(l,i);if(n){const c=n.properties.index;this.showDeleteButton([a,r],()=>{this.drawCoords.splice(c+1,0,[a,r]),this.handlerRenderEditLine(D.lineString(this.drawCoords,{type:"Line",color:this.form.color})),this.setupLineEdit()},this.$t("actions.add")||"新增","add")}};this.map.on("contextmenu",t),this._edgeContextMenuHandler=t},showDeleteButton(t,e,a,r="delete"){this.hideDeleteButton();const i=this.map.getContainer(),l=document.createElement("button");l.textContent=a||this.$t("actions.delete"),l.className=r==="add"?"idm-gl4-edit-add-btn":"idm-gl4-edit-delete-btn";const n=this.map.project(t);l.style.left=`${n.x}px`,l.style.top=`${n.y}px`;const c=s=>{s.stopPropagation(),e(),this.hideDeleteButton()};l.addEventListener("click",c),i.appendChild(l),this.deleteBtn=l,this.map.once("click",()=>this.hideDeleteButton())},hideDeleteButton(){this.deleteBtn&&(this.deleteBtn.remove(),this.deleteBtn=null)},handlerRenderEditPolygon(t){this.handleSetDrawSource(t);const e=3;this.map.getLayer(this.drawFillLayer)?(this.map.setPaintProperty(this.drawLineLayer,"line-width",e),this.map.getLayer(this.drawPointLayer)&&this.map.setPaintProperty(this.drawPointLayer,"circle-color",this.form.color)):(this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":e}}),this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}))},setupPolygonEdit(t){this.clearEditMarkers();const e=t.geometry.coordinates[0].slice(0,-1);this.drawCoords=e.map(r=>[...r]),this.drawCoords.forEach((r,i)=>{const l=document.createElement("div");l.className="idm-gl4-edit-vertex",l.style.backgroundColor=this.form.color;const n=new ne.Marker({element:l,draggable:!0}).setLngLat(r).addTo(this.map);n.on("dragstart",()=>{this.map.getCanvas().style.cursor="pointer";const{lng:c,lat:s}=n.getLngLat();this.handleRenderVertexLabel([c,s])}),n.on("drag",()=>{this.map.getCanvas().style.cursor="pointer";const{lng:c,lat:s}=n.getLngLat();this.handleUpdateVertexLabel([c,s]),this.drawCoords[i]=[c,s],this.handleRenderPolygonFill(this.drawCoords)}),n.on("dragend",()=>{this.map.getCanvas().style.cursor="grab";const{lng:c,lat:s}=n.getLngLat();this.drawCoords[i]=[c,s],this.handleRenderPolygonFill(this.drawCoords),this.handleClearVertexLabels()}),l.addEventListener("contextmenu",c=>{c.preventDefault(),c.stopPropagation(),this.drawCoords.length>3&&this.showDeleteButton(r,()=>{this.drawCoords.splice(i,1),this.handleRenderPolygonFill(this.drawCoords),this.handleClearVertexLabels(),this.setupPolygonEdit({geometry:{type:"Polygon",coordinates:[[...this.drawCoords,this.drawCoords[0]]]},properties:this.originalProperties})})}),this.editMarkers.push(n)});const a=r=>{r.preventDefault();const{lng:i,lat:l}=r.lngLat,n=D.point([i,l]),c=D.lineString([...this.drawCoords,this.drawCoords[0]]),s=D.nearestPointOnLine(c,n);if(s){const d=s.properties.index,m=d>=this.drawCoords.length-1?this.drawCoords.length-1:d;this.showDeleteButton([i,l],()=>{this.drawCoords.splice(m+1,0,[i,l]),this.handleRenderPolygonFill(this.drawCoords),this.handleClearVertexLabels(),this.setupPolygonEdit({geometry:{type:"Polygon",coordinates:[[...this.drawCoords,this.drawCoords[0]]]},properties:this.originalProperties})},this.$t("actions.add")||"新增","add")}};this.map.on("contextmenu",a),this._edgeContextMenuHandler=a},handleMapClickPoint(t){var r;const{lng:e,lat:a}=t.lngLat;this.drawCoords=[[e,a]],this.form.latDegree=Number(P.LngLatHelper.lat2pretty(a).degree),this.form.latMinute=Number(P.LngLatHelper.lat2pretty(a).minute),this.form.latDir=P.LngLatHelper.lat2pretty(a).direction,this.form.lngDegree=Number(P.LngLatHelper.lng2pretty(e).degree),this.form.lngMinute=Number(P.LngLatHelper.lng2pretty(e).minute),this.form.lngDir=P.LngLatHelper.lng2pretty(e).direction,this.handleRenderPoint(this.drawCoords,this.form.color),(r=this.editLayer)!=null&&r.id&&this.setupPointEdit()},handleChangePoint(){var g;const{latDegree:t,latMinute:e,latDir:a,lngDegree:r,lngMinute:i,lngDir:l}=this.form,n=parseFloat(t),c=parseFloat(e),s=parseFloat(r),d=parseFloat(i);if(isNaN(n)||isNaN(s))return;const m=(n+(isNaN(c)?0:c)/60)*(a==="S"?-1:1),p=(s+(isNaN(d)?0:d)/60)*(l==="W"?-1:1);this.drawCoords=[[p,m]],this.handleRenderPoint(this.drawCoords,this.form.color),(g=this.editLayer)!=null&&g.id&&this.setupPointEdit()},handleRenderPoint(t,e){var i;if((i=this.pointMarker)==null||i.remove(),!t||!t.length)return;const[a,r]=t[0];this.pointMarker=new ne.Marker({color:e}).setLngLat([a,r]).addTo(this.map)},handleMapClickLine(t){var r;const{lng:e,lat:a}=t.lngLat;this.drawCoords.push([e,a]),this.handleRenderLine(this.drawCoords),(r=this.editLayer)!=null&&r.id&&this.setupLineEdit()},handleMapMoveLine(t){if(!this.drawCoords.length)return;const{lng:e,lat:a}=t.lngLat;this.handleRenderTmpLine(this.drawCoords.at(-1),[e,a])},handleMapDblClickLine(t){t.preventDefault(),this.drawCoords.length>1&&this.drawCoords.pop(),this.handleRenderLine(this.drawCoords),this.handleClearTmp(),this.map.off("click",this.handleMapClickLine),this.map.off("mousemove",this.handleMapMoveLine),this.map.off("dblclick",this.handleMapDblClickLine)},handleRenderLine(t){if(!t||t.length<1)return;const e=[];t==null||t.forEach((i,l)=>{e.push(P.GeoJsonHelper.drawPoint(i==null?void 0:i[1],i==null?void 0:i[0]))}),(t==null?void 0:t.length)>=2&&e.push(P.GeoJsonHelper.drawLine(t));const a=2,r=D.featureCollection(e);this.handleSetDrawSource(r),this.map.getLayer(this.drawLineLayer)?(this.map.setPaintProperty(this.drawLineLayer,"line-color",this.form.color),this.map.setPaintProperty(this.drawLineLayer,"line-width",a),this.map.getLayer(this.drawPointLayer)&&this.map.setPaintProperty(this.drawPointLayer,"circle-color",this.form.color)):(this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":a}}),this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}))},handleRenderTmpLine(t,e){const a=P.GeoJsonHelper.drawLine([t,e]),r=D.featureCollection([a]);this.map.getSource(this.drawTmpSource)?this.map.getSource(this.drawTmpSource).setData(r):this.map.addSource(this.drawTmpSource,{type:"geojson",data:r}),this.map.getLayer(this.drawTmpLayer)||this.map.addLayer({id:this.drawTmpLayer,type:"line",source:this.drawTmpSource,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":2,"line-dasharray":[3,2]}});const i={lng:t[0],lat:t[1]},l={lng:e[0],lat:e[1]},n=P.LaneHelper.calculateDistance(i,l,!0,2),c=P.LaneHelper.calculateBearing(i,l,!0,2);let s=0;for(let m=1;m<this.drawCoords.length;m++){const p={lng:this.drawCoords[m-1][0],lat:this.drawCoords[m-1][1]},g={lng:this.drawCoords[m][0],lat:this.drawCoords[m][1]};s+=P.LaneHelper.calculateDistance(p,g,!0,4)}s=P.LngLatHelper.roundPrecision(s+n,1);const d=`
218
218
  <div class="marker-label">${this.$t("measure.totalDistance")}: <b>${s}</b>nm, ${this.$t("measure.bearing")}: <b>${c}</b>°</div>
219
- <div class="marker-label"> ${this.$t("measure.clickTips")}</div>`;if(this.tipMarker)this.tipMarker._element.innerHTML=d,this.tipMarker.setLngLat([e[0],e[1]]);else{const m=document.createElement("div");m.className="idm-gl4-draw-tip-marker",m.innerHTML=d,this.tipMarker=new ne.Marker(m).setOffset([140,0]).setLngLat([e[0],e[1]]).addTo(this.map)}},handleRefreshLine(){this.drawCoords.length>=1&&this.handleRenderLine(this.drawCoords)},handleMapClickPolygon(t){var r;const{lng:e,lat:a}=t.lngLat;this.drawCoords.push([e,a]),this.drawCoords.length>=3&&this.handleRenderPolygonFill(this.drawCoords),this.handleRenderAllVertexLabels(this.drawCoords),(r=this.editLayer)!=null&&r.id&&this.setupPolygonEdit()},handleMapMovePolygon(t){if(!this.drawCoords.length)return;const{lng:e,lat:a}=t.lngLat,r=[...this.drawCoords,[e,a]];r.length>=1&&this.handleRenderPolygonFill(r),this.handleRenderAllVertexLabels(r)},handleMapDblClickPolygon(t){t.preventDefault(),this.drawCoords.length>=1&&this.drawCoords.pop(),this.drawCoords.length>=1&&this.handleRenderPolygonFill(this.drawCoords),this.handleRenderAllVertexLabels(this.drawCoords),this.map.off("click",this.handleMapClickPolygon),this.map.off("mousemove",this.handleMapMovePolygon),this.map.off("dblclick",this.handleMapDblClickPolygon)},handleRenderPolygonFill(t){var i;let e=[];if(t==null||t.forEach((l,n)=>{e.push(D.point(l))}),(t==null?void 0:t.length)>2){const l=[...t,t[0]];e.push(P.GeoJsonHelper.drawPolygon(l,{...this.originalProperties}))}const a=D.featureCollection(e);this.handleSetDrawSource(a);const r=(i=this.editLayer)!=null&&i.id?3:2;this.map.getLayer(this.drawFillLayer)?(this.map.setPaintProperty(this.drawLineLayer,"line-width",r),this.map.getLayer(this.drawPointLayer)&&this.map.setPaintProperty(this.drawPointLayer,"circle-color",this.form.color)):(this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":r}}),this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}))},handleRenderVertexLabel(t,e=8){this.handleClearVertexLabels();const a=P.LngLatHelper.lat2pretty(t[1],4).pretty,r=P.LngLatHelper.lng2pretty(t[0],4).pretty,i=document.createElement("div");i.className="idm-gl4-draw-corner-label center",i.innerHTML=`<span class="corner-text">${a} <br/> ${r}</span>`;const l=new ne.Marker(i,{anchor:"bottom",offset:[0,e]}).setLngLat(t).addTo(this.map);this.polygonVertexMarkers.push(l)},handleRenderAllVertexLabels(t){this.handleClearVertexLabels();const e=t.reduce((a,r)=>[a[0]+r[0],a[1]+r[1]],[0,0]);e[0]/=t.length,e[1]/=t.length,t.forEach(a=>{const r=a[0]-e[0],i=a[1]-e[1];let l="center";i>=0&&r>=0?l="bottom-left":i>=0&&r<0?l="bottom-right":i<0&&r>=0?l="top-left":l="top-right";const n=P.LngLatHelper.lat2pretty(a[1],4).pretty,c=P.LngLatHelper.lng2pretty(a[0],4).pretty,s=document.createElement("div");s.className="idm-gl4-draw-corner-label "+l,s.innerHTML=`<span class="corner-text">${n} <br/> ${c}</span>`;const d=new ne.Marker(s,{anchor:l}).setLngLat(a).addTo(this.map);this.polygonVertexMarkers.push(d)})},handleUpdateVertexLabel(t){if(!this.polygonVertexMarkers.length)return;const e=this.polygonVertexMarkers[0];e.setLngLat(t);const a=P.LngLatHelper.lat2pretty(t[1],4).pretty,r=P.LngLatHelper.lng2pretty(t[0],4).pretty,i=e.getElement().querySelector(".corner-text");i&&(i.innerHTML=`${a} <br/> ${r}`)},handleClearVertexLabels(){this.polygonVertexMarkers.forEach(t=>t.remove()),this.polygonVertexMarkers=[]},handleMapClickCircle(t){const{lng:e,lat:a}=t.lngLat;if(this.drawCoords.length===0){this.drawCoords.push([e,a]);const r=D.featureCollection([D.point([e,a])]);this.handleSetDrawSource(r),this.map.getLayer(this.drawPointLayer)||this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),this.handleRenderCircleCenterLabel([e,a])}else{const r=this.drawCoords[0],i=[e,a],l=D.distance(D.point(r),D.point(i),{units:"nauticalmiles"}),n=P.GeoJsonHelper.drawCircle(r[0],r[1],l),c=D.featureCollection([D.point(r),n]);this.handleSetDrawSource(c),this.handleRenderAreaLayers(),this.handleRenderRadiusLine(r,i,l),this.drawCoords=[r,i],this.map.off("click",this.handleMapClickCircle),this.map.off("mousemove",this.handleMapMoveCircle)}},handleMapMoveCircle(t){if(this.drawCoords.length!==1)return;const e=this.drawCoords[0],a=[t.lngLat.lng,t.lngLat.lat],r=D.distance(D.point(e),D.point(a),{units:"nauticalmiles"}),i=P.GeoJsonHelper.drawCircle(e[0],e[1],r),l=D.featureCollection([D.point(e),i]);this.handleSetDrawSource(l),this.map.getLayer(this.drawFillLayer)||this.handleRenderAreaLayers(),this.handleRenderRadiusLine(e,a,r)},handleRenderCircleCenterLabel(t){const e=P.LngLatHelper.lat2pretty(t[1],4).pretty,a=P.LngLatHelper.lng2pretty(t[0],4).pretty,r=document.createElement("div");r.className="idm-gl4-draw-corner-label bottom-right",r.innerHTML=`<span class="corner-text">${e} <br/> ${a}</span>`;const i=new ne.Marker(r,{anchor:"bottom-right"}).setLngLat(t).addTo(this.map);this.circleMarkers.push(i)},handleRenderRadiusLine(t,e,a){const r=P.LngLatHelper.roundPrecision(a,2),i=D.featureCollection([D.lineString([t,e])]);this.map.getSource(this.drawRadiusSource)?this.map.getSource(this.drawRadiusSource).setData(i):this.map.addSource(this.drawRadiusSource,{type:"geojson",data:i}),this.map.getLayer(this.drawRadiusLayer)||this.map.addLayer({id:this.drawRadiusLayer,type:"line",source:this.drawRadiusSource,layout:{"line-cap":"round"},paint:{"line-color":this.form.color,"line-width":1.5,"line-dasharray":[4,3]}});const l=[(t[0]+e[0])/2,(t[1]+e[1])/2],n=this.map.project(t),c=this.map.project(e),s=c.x-n.x,d=c.y-n.y;let m=Math.atan2(d,s)*180/Math.PI;m>90&&(m-=180),m<-90&&(m+=180);const p=16,g=(m-90)*Math.PI/180,y=Math.round(Math.cos(g)*p),u=Math.round(Math.sin(g)*p);this.circleMarkers.length>1&&(this.circleMarkers[1].remove(),this.circleMarkers.splice(1,1));const h=document.createElement("div"),f=document.createElement("span");f.className="idm-gl4-draw-radius-label",f.style.transform=`rotate(${m}deg)`,f.style.transformOrigin="center",f.style.display="inline-block",f.textContent=`${r} nm`,h.appendChild(f);const k=new ne.Marker(h,{anchor:"center",offset:[y,u]}).setLngLat(l).addTo(this.map);this.circleMarkers.push(k)},handleClearCircleLabels(){var t,e;this.circleMarkers.forEach(a=>a.remove()),this.circleMarkers=[],(t=this.map)!=null&&t.getLayer(this.drawRadiusLayer)&&this.map.removeLayer(this.drawRadiusLayer),(e=this.map)!=null&&e.getSource(this.drawRadiusSource)&&this.map.removeSource(this.drawRadiusSource)},buildRectFeatureCollection(t,e){const a=Math.min(t[0],e[0]),r=Math.max(t[0],e[0]),i=Math.min(t[1],e[1]),l=Math.max(t[1],e[1]);return[[a,l],[r,l],[r,i],[a,i]]},handleMapClickRect(t){const{lng:e,lat:a}=t.lngLat;if(this.drawCoords.length===0)this.drawCoords.push([e,a]);else{const r=this.drawCoords[0],i=[e,a],l=P.GeoJsonHelper.drawRect(r,i);delete l.bbox;const n=this.buildRectFeatureCollection(r,i),c=D.featureCollection([l,...n.map(s=>D.point(s))]);this.handleSetDrawSource(c),this.handleRenderRectLayers(),this.handleRenderRectCorners(r,i),this.drawCoords=[r,i],this.map.off("click",this.handleMapClickRect),this.map.off("mousemove",this.handleMapMoveRect)}},handleMapMoveRect(t){if(this.drawCoords.length!==1)return;const e=this.drawCoords[0],a=[t.lngLat.lng,t.lngLat.lat],r=P.GeoJsonHelper.drawRect(e,a),i=this.buildRectFeatureCollection(e,a),l=D.featureCollection([r,...i.map(n=>D.point(n))]);this.handleSetDrawSource(l),this.map.getLayer(this.drawFillLayer)||this.handleRenderRectLayers(),this.handleRenderRectCorners(e,a)},handleRenderRectLayers(){var e;const t=(e=this.editLayer)!=null&&e.id?3:2;this.map.getLayer(this.drawFillLayer)||this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.getLayer(this.drawLineLayer)?this.map.setPaintProperty(this.drawLineLayer,"line-width",t):this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":t}}),this.map.getLayer(this.drawPointLayer)||this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}})},handleRenderRectCorners(t,e){const a=Math.min(t[0],e[0]),r=Math.max(t[0],e[0]),i=Math.min(t[1],e[1]),l=Math.max(t[1],e[1]),n=[{coord:[a,l],anchor:"bottom-right"},{coord:[r,l],anchor:"bottom-left"},{coord:[r,i],anchor:"top-left"},{coord:[a,i],anchor:"top-right"}];this.handleClearRectCorners(),n.forEach(({coord:c,anchor:s})=>{const d=P.LngLatHelper.lat2pretty(c[1],4).pretty,m=P.LngLatHelper.lng2pretty(c[0],4).pretty,p=document.createElement("div");p.className="idm-gl4-draw-corner-label "+s,p.innerHTML=`<span class="corner-text">${d} <br/> ${m}</span>`;const g=new ne.Marker(p,{anchor:s}).setLngLat(c).addTo(this.map);this.rectCornerMarkers.push(g)})},handleClearRectCorners(){this.rectCornerMarkers.forEach(t=>t.remove()),this.rectCornerMarkers=[]},handleRenderAreaLayers(){var e;const t=(e=this.editLayer)!=null&&e.id?3:2;this.map.getLayer(this.drawFillLayer)||this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.getLayer(this.drawLineLayer)?this.map.setPaintProperty(this.drawLineLayer,"line-width",t):this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":t}})},handleSetDrawSource(t){this.map.getSource(this.drawSource)?this.map.getSource(this.drawSource).setData(t):this.map.addSource(this.drawSource,{type:"geojson",data:t})},handleClearTmp(){var t,e,a;(t=this.map)!=null&&t.getLayer(this.drawTmpLayer)&&this.map.removeLayer(this.drawTmpLayer),(e=this.map)!=null&&e.getSource(this.drawTmpSource)&&this.map.removeSource(this.drawTmpSource),(a=this.tipMarker)==null||a.remove(),this.tipMarker=null},handleUpdateLayerColors(){if(!this.map)return;const t=this.form.color;this.map.getLayer(this.drawPointLayer)&&this.map.setPaintProperty(this.drawPointLayer,"circle-color",t),this.map.getLayer(this.drawLineLayer)&&this.map.setPaintProperty(this.drawLineLayer,"line-color",t),this.map.getLayer(this.drawFillLayer)&&this.map.setPaintProperty(this.drawFillLayer,"fill-color",t),this.map.getLayer(this.drawRadiusLayer)&&this.map.setPaintProperty(this.drawRadiusLayer,"line-color",t),this.map.getLayer(this.drawTmpLayer)&&this.map.setPaintProperty(this.drawTmpLayer,"line-color",t),this.editMarkers.forEach(e=>{e.getElement()&&(e.getElement().style.backgroundColor=t)})},handleClearDraw(t=!1){var a,r,i,l,n;this.handleClearTmp(),this.hideDeleteButton();const e=[this.drawPointLayer,this.drawLineLayer,this.drawFillLayer];for(const c of e)(a=this.map)!=null&&a.getLayer(c)&&((r=this.map)==null||r.removeLayer(c));(i=this.map)!=null&&i.getSource(this.drawSource)&&this.map.removeSource(this.drawSource),this.drawCoords=[],this.originalProperties={},this.handleClearRectCorners(),this.handleClearVertexLabels(),this.handleClearCircleLabels(),(l=this.pointMarker)==null||l.remove(),this.pointMarker=null,(n=this.pointHighlightMarker)==null||n.remove(),this.pointHighlightMarker=null,this.clearEditMarkers(),this.handleRebindMap()},async handleSave(){var r,i;let t=null;if(this.markerType==="Point"?await this.$refs.pointForm.validate().then(l=>{var n;if(l!=null&&l.valid){if(!this.drawCoords.length)return;const[c,s]=this.drawCoords[0];t=D.featureCollection([P.GeoJsonHelper.drawPoint(s,c,{...this.originalProperties,color:this.form.color,name:this.form.name})]),(n=t.features)==null||n.forEach(d=>{d.properties.color=this.form.color,d.properties.name=this.form.name})}}):this.markerType==="Line"?await this.$refs.lineForm.validate().then(l=>{if(l!=null&&l.valid){if(this.drawCoords.length<2)return;const n=[],c=P.LaneHelper.generateRouteAccordingToWaypoints(this.drawCoords.map(s=>({lng:s==null?void 0:s[0],lat:s==null?void 0:s[1]})));for(const s of c)s.length>1&&n.push(P.GeoJsonHelper.drawLine(s,{properties:{...this.originalProperties,color:this.form.color,name:this.form.name}}));t=D.featureCollection(n)}}):this.markerType==="Area"&&await this.$refs.areaForm.validate().then(l=>{var n,c,s;if(l!=null&&l.valid){const d=(n=this.map)==null?void 0:n.getSource(this.drawSource);if(!d)return;const m=d._data;if(!((c=m==null?void 0:m.features)!=null&&c.length))return;let p=((s=m.features)==null?void 0:s.filter(g=>g.geometry.type==="Polygon"))||[];if(p=p==null?void 0:p.map(g=>(g.properties.name=this.form.name,g.properties.color=this.form.color,g)),!p.length)return;t=D.featureCollection(p)}}),!t)return!1;const e={name:this.form.name,format:"geojson",color:this.form.color,extend:t};this.saving=!0,await((r=this.editLayer)!=null&&r.id?le.put(`${this.gateway}/api/arc/layers/${this.editLayer.id}`,e,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}):le.post(`${this.gateway}/api/arc/lygroups/${(i=this.group)==null?void 0:i.id}/layers`,e,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}})).then(l=>{var n,c,s,d;((n=l.data)==null?void 0:n.code)===0&&this.$emit("save",{...e,id:((c=this.editLayer)==null?void 0:c.id)||((d=(s=l.data)==null?void 0:s.data)==null?void 0:d.id)}),this.saving=!1}).catch(l=>{console.error("save marker error",l),this.saving=!1})}}},fp={class:"text-h6 font-weight-600"},yp={class:"text-label mb-1"},bp={class:"text-label mb-1"},wp={class:"mb-1"},xp={class:"text-label mb-1"},kp={class:"mb-1"},_p={class:"text-label mb-1"},Lp={class:"mb-1"},zp={class:"text-label mb-1"},Cp={class:"color-picker-row d-flex align-start ga-2"},vp=["value"],Sp={class:"mb-n2"},Np={class:"text-label mb-1"},Vp={class:"mb-1"},Pp={class:"text-label mb-1"},Mp={class:"color-picker-row d-flex align-start ga-2"},Tp=["value"],Ep={class:"mb-n2"},Dp={class:"text-label mb-1"},Rp={key:0,class:"mb-3"},Bp={class:"text-label mb-1"},Ip={class:"mb-1"},Ap={class:"text-label mb-1"},Fp={class:"color-picker-row d-flex align-start ga-2"},Gp=["value"],Wp={class:"mb-n2"},Op={class:"text-label mb-1"};function Zp(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VCardTitle"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VTextField"),m=o.resolveComponent("VCardText"),p=o.resolveComponent("VBtnToggle"),g=o.resolveComponent("VCol"),y=o.resolveComponent("VRow"),u=o.resolveComponent("VCardActions"),h=o.resolveComponent("VForm"),f=o.resolveComponent("VCard");return o.openBlock(),o.createBlock(f,{class:"idm-gl4-draw-dialog-card",elevation:"4"},{default:o.withCtx(()=>{var k;return[o.createVNode(c,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>{var w;return[o.createElementVNode("span",fp,o.toDisplayString((w=a.editLayer)!=null&&w.id?t.$t("actions.edit"):t.$t("actions.addMarker")),1),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleClose},{default:o.withCtx(()=>e[21]||(e[21]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[21]},8,["onClick"])]}),_:1}),o.createVNode(s),o.createVNode(m,{class:"text-body-1 px-4 pb-0"},{default:o.withCtx(()=>{var w;return[o.createElementVNode("div",yp,o.toDisplayString(t.$t("marker.group")),1),o.createVNode(d,{"model-value":(w=a.group)==null?void 0:w.name,density:"compact",variant:"outlined","hide-details":"",disabled:"",class:"input-btn-bg-1"},null,8,["model-value"])]}),_:1}),(k=a.editLayer)!=null&&k.id?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(m,{key:0,class:"text-body-1 px-4 pb-0"},{default:o.withCtx(()=>{var w;return[o.createElementVNode("div",bp,[o.createTextVNode(o.toDisplayString(t.$t("marker.markerType")),1),e[22]||(e[22]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(p,{modelValue:i.markerType,"onUpdate:modelValue":e[0]||(e[0]=b=>i.markerType=b),mandatory:"",group:"",density:"compact",variant:"flat",class:"w-100",disabled:!!((w=a.editLayer)!=null&&w.id)},{default:o.withCtx(()=>[o.createVNode(n,{value:"Point",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.markerType==="Point"?"":"btn-border-1 btn-bg-1"]),color:i.markerType==="Point"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.point")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Line",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.markerType==="Line"?"":"btn-border-1 btn-bg-1"]),style:{"border-left":"0 !important","border-right":"0 !important"},color:i.markerType==="Line"?"primary":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.line")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Area",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.markerType==="Area"?"":"btn-border-1 btn-bg-1"]),color:i.markerType==="Area"?"primary":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.area")),1)]),_:1},8,["class","color"])]),_:1},8,["modelValue","disabled"])]}),_:1})),i.markerType==="Point"?(o.openBlock(),o.createBlock(h,{key:1,ref:"pointForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleSave,["prevent"])},{default:o.withCtx(()=>[o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",wp,[o.createElementVNode("div",xp,[o.createTextVNode(o.toDisplayString(t.$t("marker.lat")),1),e[23]||(e[23]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(y,{class:"ma-0"},{default:o.withCtx(()=>[o.createVNode(g,{cols:"4",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.latDegree,"onUpdate:modelValue":[e[1]||(e[1]=w=>i.form.latDegree=w),e[2]||(e[2]=w=>l.handleChangePoint())],rules:i.formRules.latDegree,label:"",autocomplete:"off",density:"compact",variant:"outlined",height:"32px","min-height":"32px",required:"",dense:"",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[24]||(e[24]=o.createElementVNode("span",{class:"px-1"},"°",-1))]),_:1,__:[24]}),o.createVNode(g,{cols:"6",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.latMinute,"onUpdate:modelValue":[e[3]||(e[3]=w=>i.form.latMinute=w),e[4]||(e[4]=w=>l.handleChangePoint())],rules:i.formRules.latMinute,label:"",height:"32px","min-height":"32px",autocomplete:"off",density:"compact",variant:"outlined",class:"text-body-1 input-btn-bg-1",required:"",dense:""},null,8,["modelValue","rules"]),e[25]||(e[25]=o.createElementVNode("span",{class:"px-1"},"'",-1))]),_:1,__:[25]}),o.createVNode(g,{cols:"2",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(n,{variant:"outlined",density:"compact",width:"32","min-width":"32",height:"32",class:"text-body-1 bg-primary",style:{border:"1px solid rgba(var(--v-theme-on-surface), 0.38)"},onClick:e[5]||(e[5]=w=>{i.form.latDir=i.form.latDir==="N"?"S":"N",l.handleChangePoint()})},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.form.latDir),1)]),_:1})]),_:1})]),_:1})]),o.createElementVNode("div",kp,[o.createElementVNode("div",_p,[o.createTextVNode(o.toDisplayString(t.$t("marker.lng")),1),e[26]||(e[26]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(y,{class:"ma-0"},{default:o.withCtx(()=>[o.createVNode(g,{cols:"4",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.lngDegree,"onUpdate:modelValue":[e[6]||(e[6]=w=>i.form.lngDegree=w),e[7]||(e[7]=w=>l.handleChangePoint())],rules:i.formRules.lngDegree,density:"compact",variant:"outlined",autocomplete:"off",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[27]||(e[27]=o.createElementVNode("span",{class:"px-1"},"°",-1))]),_:1,__:[27]}),o.createVNode(g,{cols:"6",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.lngMinute,"onUpdate:modelValue":[e[8]||(e[8]=w=>i.form.lngMinute=w),e[9]||(e[9]=w=>l.handleChangePoint())],rules:i.formRules.lngMinute,density:"compact",variant:"outlined",autocomplete:"off",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[28]||(e[28]=o.createElementVNode("span",{class:"px-1"},"'",-1))]),_:1,__:[28]}),o.createVNode(g,{cols:"2",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(n,{variant:"outlined",density:"compact",width:"32","min-width":"32",height:"32",class:"text-body-1 bg-primary",style:{border:"1px solid rgba(var(--v-theme-on-surface), 0.38)"},onClick:e[10]||(e[10]=w=>{i.form.lngDir=i.form.lngDir==="E"?"W":"E",l.handleChangePoint()})},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.form.lngDir),1)]),_:1})]),_:1})]),_:1})]),o.createElementVNode("div",Lp,[o.createElementVNode("div",zp,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[29]||(e[29]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Cp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[11]||(e[11]=w=>i.form.color=w.target.value)},null,40,vp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[12]||(e[12]=w=>i.form.color=w),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",Sp,[o.createElementVNode("div",Np,[o.createTextVNode(o.toDisplayString(t.$t("marker.name")),1),e[30]||(e[30]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.name,"onUpdate:modelValue":e[13]||(e[13]=w=>i.form.name=w),density:"compact",variant:"outlined",rules:i.formRules.name,autocomplete:"off",class:"input-btn-bg-1"},null,8,["modelValue","rules"])])]),_:1}),o.createVNode(s),o.createVNode(u,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClearDraw},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.saving},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])):o.createCommentVNode("",!0),i.markerType==="Line"?(o.openBlock(),o.createBlock(h,{key:2,ref:"lineForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleSave,["prevent"])},{default:o.withCtx(()=>[o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",Vp,[o.createElementVNode("div",Pp,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[31]||(e[31]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Mp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[14]||(e[14]=w=>i.form.color=w.target.value)},null,40,Tp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[15]||(e[15]=w=>i.form.color=w),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",Ep,[o.createElementVNode("div",Dp,[o.createTextVNode(o.toDisplayString(t.$t("marker.name")),1),e[32]||(e[32]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.name,"onUpdate:modelValue":e[16]||(e[16]=w=>i.form.name=w),density:"compact",variant:"outlined",rules:i.formRules.name,autocomplete:"off",class:"input-btn-bg-1"},null,8,["modelValue","rules"])])]),_:1}),o.createVNode(s),o.createVNode(u,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClearDraw},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.saving},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])):o.createCommentVNode("",!0),i.markerType==="Area"?(o.openBlock(),o.createBlock(h,{key:3,ref:"areaForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleSave,["prevent"])},{default:o.withCtx(()=>[o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>{var w,b;return[(w=a.editLayer)!=null&&w.id?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("div",Rp,[o.createElementVNode("div",Bp,[o.createTextVNode(o.toDisplayString(t.$t("marker.areaType")),1),e[33]||(e[33]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(p,{modelValue:i.form.areaType,"onUpdate:modelValue":e[17]||(e[17]=x=>i.form.areaType=x),mandatory:"",group:"",density:"compact",variant:"flat",color:"primary",class:"w-100",disabled:!!((b=a.editLayer)!=null&&b.id)},{default:o.withCtx(()=>[o.createVNode(n,{value:"Polygon",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.form.areaType==="Polygon"?"":"btn-border-1 btn-bg-1"]),color:i.form.areaType==="Polygon"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.polygon")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Circle",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.form.areaType==="Circle"?"":"btn-border-1 btn-bg-1"]),style:{"border-left":"0 !important","border-right":"0 !important"},color:i.form.areaType==="Circle"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.circle")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Rect",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.form.areaType==="Rect"?"":"btn-border-1 btn-bg-1"]),color:i.form.areaType==="Rect"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.rect")),1)]),_:1},8,["class","color"])]),_:1},8,["modelValue","disabled"])])),o.createElementVNode("div",Ip,[o.createElementVNode("div",Ap,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[34]||(e[34]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Fp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[18]||(e[18]=x=>i.form.color=x.target.value)},null,40,Gp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[19]||(e[19]=x=>i.form.color=x),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",Wp,[o.createElementVNode("div",Op,[o.createTextVNode(o.toDisplayString(t.$t("marker.name")),1),e[35]||(e[35]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.name,"onUpdate:modelValue":e[20]||(e[20]=x=>i.form.name=x),density:"compact",variant:"outlined",rules:i.formRules.name,autocomplete:"off",class:"input-btn-bg-1"},null,8,["modelValue","rules"])])]}),_:1}),o.createVNode(s),o.createVNode(u,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>{var w;return[(w=a.editLayer)!=null&&w.id?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(n,{key:0,class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClearDraw},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"])),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.saving},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.save")),1)]),_:1},8,["loading"])]}),_:1})]),_:1},8,["onSubmit"])):o.createCommentVNode("",!0)]}),_:1})}const jp=X(up,[["render",Zp]]),Gy="",Hp={name:"IdmImportMarker",props:{map:{type:Object},gateway:{type:String},token:{type:String},defaultMeteoToken:{type:String},group:{type:Object,default:null}},emits:["close","import"],setup(){return{Theme:fe.useTheme()}},data(){var t;return{form:{groupName:"",name:"",file:null,format:"",extend:void 0,color:(t=this.Theme.current.value.colors)==null?void 0:t["map-green"]},formRules:{groupName:[e=>e!=null&&e!==""||"required"],color:[e=>e!=null&&e!==""||"required"]},isDragOver:!1,uploading:!1,fileError:"",previewSourceId:"__import_preview__",previewMarkers:[]}},watch:{"form.color":{handler(t){var e;(e=this.form.extend)!=null&&e.features&&this.form.extend.features.forEach(a=>{a.properties.color=t}),this.handleDrawLayers()},immediate:!0}},mounted(){var t;this.form.groupName=((t=this.group)==null?void 0:t.name)||"Import layer 1"},beforeUnmount(){this.handleClearPreview()},methods:{handleClose(){this.$emit("close")},handleReset(){var t;this.form={groupName:((t=this.group)==null?void 0:t.name)||"Import layer 1",file:null,format:"",extend:void 0},this.fileError=""},handleSelectFile(){this.$refs.fileInput.click()},handleFileChange(t){const e=t.target.files[0];e&&this.onUpload(e)},handleDrop(t){this.isDragOver=!1;const e=t.dataTransfer.files[0];e&&this.onUpload(e)},async onUpload(t){var r,i,l,n;if(t.size>10485760){this.fileError=this.$t("marker.fileTooLarge");return}this.form.file=t,this.fileError="",this.form.name=(r=t.name.split("."))==null?void 0:r[0];const a=(i=t.name.split(".").pop())==null?void 0:i.toLowerCase();try{let c;if(a==="json"||a==="geojson"){const s=await t.text();c=JSON.parse(s)}else if(a==="kml"){const s=await t.text();c=await P.GeoJsonHelper.convertKML2GeoJSON(s)}else if(a==="kmz"){const s=await t.arrayBuffer();c=await P.GeoJsonHelper.convertKMZ2GeoJSON(s)}else if(a==="zip"||a==="shp"){const s=await t.arrayBuffer();c=await P.GeoJsonHelper.convertZIP2GeoJSON(s)}else{this.fileError="Unsupported format: "+a;return}this.form.extend=c,this.form.format="geojson",(n=(l=this.form.extend)==null?void 0:l.features)==null||n.forEach(s=>{s.properties.color=this.form.color}),this.handleDrawLayers()}catch{this.fileError="Failed to parse file",this.form.file=null}},handleRemoveFile(){this.form.file=null,this.$refs.fileInput.value="",this.handleClearPreview()},async handleConfirm(){const{valid:t}=await this.$refs.importForm.validate();if(!t)return;if(!this.form.file){this.fileError=this.$t("marker.fileRequired");return}this.uploading=!0;let e=this.group.id;if(e||await le.post(`${this.gateway}/api/arc/lygroups`,{name:this.form.groupName},{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(r=>{var i,l;((i=r.data)==null?void 0:i.code)===0&&(e=(l=r.data.data)==null?void 0:l.id)}),!e){this.uploading=!1;return}const a={format:this.form.format,extend:this.form.extend};le.post(`${this.gateway}/api/arc/lygroups/${e}/layers`,a,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(r=>{var i;((i=r.data)==null?void 0:i.code)===0&&(this.$emit("import"),this.uploading=!1)}).catch(r=>{this.uploading=!1})},handleDrawLayers(){if(!this.map||!this.form.extend)return;const t=this.form.extend,e=this.previewSourceId,a=t.features||(t.type==="Feature"?[t]:[]);a.forEach(i=>{var n,c,s;const l=((n=i==null?void 0:i.properties)==null?void 0:n.color)||((c=this.Theme.current.value.colors)==null?void 0:c["map-green"]);if(((s=i.geometry)==null?void 0:s.type)==="Point"){const[d,m]=i.geometry.coordinates;this.previewMarkers.push(new ne.Marker({color:l}).setLngLat([d,m]).addTo(this.map))}i.properties.color||(i.properties.color=l)}),this.map.getSource(e)?this.map.getSource(e).setData(t):this.map.addSource(e,{type:"geojson",data:t});const r=new Set(a.map(i=>{var l;return(l=i.geometry)==null?void 0:l.type}));(r.has("LineString")||r.has("MultiLineString"))&&!this.map.getLayer(`${e}-line`)&&this.map.addLayer({id:`${e}-line`,type:"line",source:e,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["get","color"],"line-width":2}}),(r.has("Polygon")||r.has("MultiPolygon"))&&(this.map.getLayer(`${e}-fill`)||this.map.addLayer({id:`${e}-fill`,type:"fill",source:e,filter:["==","$type","Polygon"],paint:{"fill-color":["get","color"],"fill-opacity":.35}}),this.map.getLayer(`${e}-outline`)||this.map.addLayer({id:`${e}-outline`,type:"line",source:e,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["get","color"],"line-width":2}}))},handleClearPreview(){if(!this.map)return;this.previewMarkers.forEach(a=>a.remove()),this.previewMarkers=[];const t=this.previewSourceId;[`${t}-vertex`,`${t}-point`,`${t}-line`,`${t}-fill`,`${t}-outline`].forEach(a=>{this.map.getLayer(a)&&this.map.removeLayer(a)}),this.map.getSource(t)&&this.map.removeSource(t)}}},Xp={class:"text-h6 font-weight-600"},Yp={class:"mb-4"},Up={class:"text-label mb-1"},$p={class:"mb-1"},Jp={class:"text-label mb-1"},Kp={class:"color-picker-row d-flex align-start ga-2"},qp=["value"],Qp={class:"text-body-2 text-center text-label"},eg={class:"text-body-1 text-primary mt-2 cursor-pointer"},tg={class:"text-body-2 text-left text-label mt-1"},og={key:0,class:"text-body-2 text-left text-danger mt-1"},ag={key:1,class:"file-item d-flex align-center justify-space-between mt-2 gray-bg-1 pa-1"},ig={class:"text-body-2 text-truncate"};function rg(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VCardTitle"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VTextField"),m=o.resolveComponent("VIcon"),p=o.resolveComponent("VCardText"),g=o.resolveComponent("VCardActions"),y=o.resolveComponent("VForm"),u=o.resolveComponent("VCard");return o.openBlock(),o.createBlock(u,{class:"idm-gl4-import-dialog-card",elevation:"4"},{default:o.withCtx(()=>[o.createVNode(c,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>[o.createElementVNode("span",Xp,o.toDisplayString(t.$t("marker.importLayer")),1),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleClose},{default:o.withCtx(()=>e[9]||(e[9]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[9]},8,["onClick"])]),_:1}),o.createVNode(s),o.createVNode(y,{ref:"importForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleConfirm,["prevent"])},{default:o.withCtx(()=>[o.createVNode(p,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",Yp,[o.createElementVNode("div",Up,[o.createTextVNode(o.toDisplayString(t.$t("marker.group")),1),e[10]||(e[10]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.groupName,"onUpdate:modelValue":e[0]||(e[0]=h=>i.form.groupName=h),density:"compact",variant:"outlined","hide-details":"",class:"input-btn-bg-1"},null,8,["modelValue"])]),o.createElementVNode("div",$p,[o.createElementVNode("div",Jp,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[11]||(e[11]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Kp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[1]||(e[1]=h=>i.form.color=h.target.value)},null,40,qp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[2]||(e[2]=h=>i.form.color=h),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",{class:o.normalizeClass(["upload-area btn-bg-1 d-flex flex-column justify-center align-center pa-4",{"drag-over":i.isDragOver,"upload-error":i.fileError}]),onDragenter:e[4]||(e[4]=o.withModifiers(h=>i.isDragOver=!0,["prevent"])),onDragleave:e[5]||(e[5]=o.withModifiers(h=>i.isDragOver=!1,["prevent"])),onDragover:e[6]||(e[6]=o.withModifiers(()=>{},["prevent"])),onDrop:e[7]||(e[7]=o.withModifiers((...h)=>l.handleDrop&&l.handleDrop(...h),["prevent"])),onClick:e[8]||(e[8]=(...h)=>l.handleSelectFile&&l.handleSelectFile(...h))},[o.createVNode(m,{size:"36",color:"grey",class:"mb-2"},{default:o.withCtx(()=>e[12]||(e[12]=[o.createTextVNode("mdi-cloud-upload-outline",-1)])),_:1,__:[12]}),o.createElementVNode("div",Qp,o.toDisplayString(t.$t("marker.uploadHint")),1),o.createElementVNode("div",eg,o.toDisplayString(t.$t("marker.selectFile")),1),o.createElementVNode("input",{ref:"fileInput",type:"file",style:{display:"none"},accept:".json,.geojson,.zip,.shp,.kml,.kmz",onChange:e[3]||(e[3]=(...h)=>l.handleFileChange&&l.handleFileChange(...h))},null,544)],34),o.createElementVNode("div",tg,o.toDisplayString(t.$t("marker.uploadLimit")),1),i.fileError?(o.openBlock(),o.createElementBlock("div",og,o.toDisplayString(i.fileError),1)):o.createCommentVNode("",!0),i.form.file?(o.openBlock(),o.createElementBlock("div",ag,[o.createElementVNode("span",ig,[o.createVNode(m,{size:"16",color:"success",class:"mr-1"},{default:o.withCtx(()=>e[13]||(e[13]=[o.createTextVNode("mdi-check-circle",-1)])),_:1,__:[13]}),o.createTextVNode(" "+o.toDisplayString(i.form.file.name),1)]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",size:"small",class:"file-remove-btn",onClick:l.handleRemoveFile},{default:o.withCtx(()=>[o.createVNode(m,{size:"16"},{default:o.withCtx(()=>e[14]||(e[14]=[o.createTextVNode("mdi-close",-1)])),_:1,__:[14]})]),_:1},8,["onClick"])])):o.createCommentVNode("",!0)]),_:1}),o.createVNode(s),o.createVNode(g,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleReset},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.reset")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.uploading},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])]),_:1})}const lg=X(Hp,[["render",rg]]),Wy="",ng={name:"IdmGroupDialog",props:{modelValue:{type:Boolean,default:!1},group:{type:Object,default:null},gateway:{type:String},token:{type:String},defaultMeteoToken:{type:String}},emits:["update:modelValue","saved"],data(){return{localName:"",saving:!1}},watch:{group:{handler(t){this.localName=(t==null?void 0:t.name)||""},immediate:!0}},methods:{handleClose(){this.$emit("update:modelValue",!1)},async handleConfirm(){var t;!this.group||!((t=this.localName)!=null&&t.trim())||(this.saving=!0,await le.put(`${this.gateway}/api/arc/lygroups/${this.group.id}`,{name:this.localName},{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(e=>{var a;((a=e.data)==null?void 0:a.code)===0&&this.$emit("saved")}).finally(()=>{this.saving=!1}))}}},sg={class:"text-h6 font-weight-600"},cg={class:"text-label mb-2"};function mg(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VCardTitle"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VTextField"),m=o.resolveComponent("VCardText"),p=o.resolveComponent("VCardActions"),g=o.resolveComponent("VCard"),y=o.resolveComponent("VDialog");return o.openBlock(),o.createBlock(y,{"model-value":a.modelValue,"max-width":"320",persistent:"","onUpdate:modelValue":e[1]||(e[1]=u=>t.$emit("update:modelValue",u))},{default:o.withCtx(()=>[o.createVNode(g,{class:"",elevation:"4"},{default:o.withCtx(()=>[o.createVNode(c,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>[o.createElementVNode("span",sg,o.toDisplayString(t.$t("actions.editGroup")),1),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleClose},{default:o.withCtx(()=>e[2]||(e[2]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[2]},8,["onClick"])]),_:1}),o.createVNode(s),o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",cg,[o.createTextVNode(o.toDisplayString(t.$t("marker.groupName")),1),e[3]||(e[3]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.localName,"onUpdate:modelValue":e[0]||(e[0]=u=>i.localName=u),density:"compact",variant:"outlined","hide-details":"",autocomplete:"off",height:"32px","min-height":"32px",class:"input-btn-bg-1"},null,8,["modelValue"])]),_:1}),o.createVNode(s),o.createVNode(p,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClose},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.cancel")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",loading:i.saving,onClick:l.handleConfirm},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["model-value"])}const dg=X(ng,[["render",mg]]),hg={name:"DeleteDialog",props:{title:{type:String},tips:{type:String},loading:{type:Boolean,default:!1}},emits:["close","delete"],data(){return{showDialog:!1}},methods:{handleClose(){this.showDialog=!1},handleDelete(){this.$emit("delete")},open(){this.showDialog=!0}}},pg={class:"text-body-1 pb-1"},gg={class:"text-body-1"};function ug(t,e,a,r,i,l){const n=o.resolveComponent("VIcon"),c=o.resolveComponent("VBtn"),s=o.resolveComponent("VCardTitle"),d=o.resolveComponent("VCardText"),m=o.resolveComponent("VCardActions"),p=o.resolveComponent("VCard"),g=o.resolveComponent("VDialog");return o.openBlock(),o.createBlock(g,{modelValue:i.showDialog,"onUpdate:modelValue":e[0]||(e[0]=y=>i.showDialog=y),width:"500","min-width":"500","max-width":"500"},{default:o.withCtx(()=>[o.createVNode(p,{class:""},{default:o.withCtx(()=>[o.createVNode(s,{class:"text-h6 font-weight-600 d-flex justify-center align-center py-4"},{default:o.withCtx(()=>[o.createVNode(n,{color:"warning",icon:"mdi-alert-circle",size:"small",class:"mr-2"}),o.createElementVNode("div",null,o.toDisplayString(a.title),1),o.createVNode(c,{icon:"",density:"compact",variant:"plain",class:"position-absolute top-0 right-0 mt-2 mr-2",onClick:l.handleClose},{default:o.withCtx(()=>e[1]||(e[1]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[1]},8,["onClick"])]),_:1}),o.createVNode(d,{class:"py-4 text-center"},{default:o.withCtx(()=>[o.createElementVNode("p",pg,o.toDisplayString(a.tips),1),o.createElementVNode("p",gg,o.toDisplayString(t.$t("tips.doYouWantToContinue")),1)]),_:1}),o.createVNode(m,{class:"w-100 d-flex justify-center align-center ga-8 py-6"},{default:o.withCtx(()=>[o.createVNode(c,{variant:"tonal",class:"text-none text-body-1",height:"32",onClick:l.handleClose},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.cancel")),1)]),_:1},8,["onClick"]),o.createVNode(c,{loading:a.loading,variant:"flat",color:"danger",class:"text-none text-body-1",height:"32",onClick:l.handleDelete},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.delete")),1)]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}const fg=X(hg,[["render",ug]]),Oy="",Zy="",yg={name:"IdmMarker",components:{IdmDrawMarker:jp,IdmImportMarker:lg,IdmGroupDialog:dg,DeleteDialog:fg},props:{simple:{type:Boolean,default:!1},map:{type:Object},theme:{type:String},token:{type:String},isLogin:{type:Boolean,default:!1},defaultMeteoToken:{type:String},gateway:{type:String},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}}},emits:["map","menuToggle","theme","login"],setup(){return{Theme:fe.useTheme()}},data(){return{right:10,toggle:!1,autoActive:localStorage.getItem("autoActiveMarkersGL4")==="true"||void 0,keyword:"",drawDialog:!1,importDialog:!1,loading:!1,deleteDialog:!1,deleteLoading:!1,layerGroup:[],layers:[],groupIndex:0,currentLayer:void 0,drawnLayerIds:[],layerMarkers:{},groupDialog:!1,currentGroup:null,currentGroupId:"",currentGroupName:""}},computed:{listStyle(){return this.simple?{top:this.top+"px",left:this.toggle?"0px":"-280px"}:{top:this.top+"px",right:this.toggle?"0px":"-280px"}}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.markerLayers,this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})},immediate:!0},toggle:{async handler(){this.toggle&&(localStorage.getItem("autoActiveMarkersGL4")||(this.autoActive=!0))}},autoActive:{async handler(){(this.autoActive===!0||this.autoActive===!1)&&localStorage.setItem("autoActiveMarkersGL4",this.autoActive),this.layerGroup.length===0&&await this.fetchAllLayers(),this.autoActive?this.handleDrawAllLayers():this.handleClearAllLayers()},immediate:!0},map:{handler(){this.map&&(this.handleDrawAllLayers(),this.map.on("zoom",this.handleZoomChange))}}},methods:{handleMenuToggle(){this.isLogin?(this.toggle=!this.toggle,this.$emit("menuToggle","markerLayers")):this.$emit("login")},handleEditGroup(t){this.drawDialog=!1,this.importDialog=!1,this.currentGroup=t,this.groupDialog=!0},handleSaveGroup(){this.fetchAllLayers(),this.groupDialog=!1,this.currentGroup=void 0},handleOpenDelete(t,e){t==="group"?(this.currentGroup=e,this.currentLayer=void 0):t==="layer"&&(this.currentGroup=void 0,this.currentLayer=e),this.$refs.deleteDialog.open()},confirmDelete(){var t;this.currentGroup?this.handleDeleteGroup((t=this.currentGroup)==null?void 0:t.id):this.currentLayer&&this.handleDeleteLayer(this.currentLayer)},async handleDeleteGroup(t){t&&(this.deleteLoading=!0,await le.delete(`${this.gateway}/api/arc/lygroups/${t}`,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(e=>{var a;((a=e.data)==null?void 0:a.code)===0&&(this.fetchAllLayers(),this.currentGroup=void 0,this.$refs.deleteDialog.handleClose(),this.deleteLoading=!1)}).catch(()=>{this.deleteLoading=!1}))},handleOpenDrawMarkers(t){this.handleCloseDraw(),this.currentGroup=t||this.layerGroup.find(e=>e.name==="Custom Layers"),this.importDialog=!1,this.drawDialog=!0},handleOpenImportDialog(t){this.drawDialog=!1,this.handleCloseDraw(),this.currentGroup=t||void 0,this.importDialog=!0},handleImportLayer(t){this.fetchAllLayers(),this.importDialog=!1},handleSaveMarker(t){this.fetchAllLayers(),this.drawDialog=!1,this.currentLayer=null},handleCloseDraw(){this.drawDialog=!1,this.currentLayer=null,this.autoActive&&this.handleDrawAllLayers(),this.currentGroup=void 0},handleEditLayer(t,e){this.importDialog=!1,this.currentGroup=t,this.currentLayer=e,this.drawDialog=!0},async fetchAllLayers(){this.loading=!0,this.layerGroup=[],await le.get(`${this.gateway}/api/arc/lygroups/my`,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(t=>{var e,a,r,i,l,n;if(((e=t.data)==null?void 0:e.code)===0){this.loading=!1,this.layerGroup=((i=(r=(a=t.data)==null?void 0:a.data)==null?void 0:r.rows)==null?void 0:i.reverse())||[];const c=[];(l=this.layerGroup)==null||l.forEach(s=>{var d;s.show=!0,(d=s.layers)==null||d.forEach(m=>{var g;m.layerGroupId=s.id;const p=typeof m.extend=="string"?JSON.parse(m.extend):m.extend;(g=p==null?void 0:p.features)==null||g.forEach(y=>{y.properties.lgId=s.id,y.properties.layerId=m.id,y.properties.name||(y.properties.name=m.name)}),c.push(m)})}),this.layers=c,this.handleDrawAllLayers(),(n=this.$refs.drawDialog)==null||n.handleClearDraw()}}).catch(()=>{this.loading=!1})},async handleDeleteLayer(t){this.deleteLoading=!0,await le.delete(`${this.gateway}/api/arc/layers/${t.id}`,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(e=>{var a;((a=e.data)==null?void 0:a.code)===0&&(this.deleteLoading=!1,this.fetchAllLayers(),this.$refs.deleteDialog.handleClose())}).catch(()=>{this.deleteLoading=!1})},handleRenderLayer(t){if(!this.map||!(t!=null&&t.extend))return;const e=typeof t.extend=="string"?JSON.parse(t.extend):t.extend;if(!e)return;const a=`marker-layer-${t.id}`;this.handleClearLayerMarkers(t.id);const r=e.features||(e.type==="Feature"?[e]:[]);if(r.some(c=>{var s,d;return(((s=c.geometry)==null?void 0:s.type)==="Point"||((d=c.geometry)==null?void 0:d.type)==="MultiPoint")&&c.properties.shape==="point"})){const c=[];r.forEach(s=>{var g,y,u,h;const d=(g=s.geometry)==null?void 0:g.type,m=((y=s.properties)==null?void 0:y.name)||"",p=((u=s.properties)==null?void 0:u.color)||t.color||((h=this.Theme.current.value.colors)==null?void 0:h["map-green"]);if(d==="Point"){const[f,k]=s.geometry.coordinates,w=`<div style="font-size:12px;line-height:1.5;">
219
+ <div class="marker-label"> ${this.$t("measure.clickTips")}</div>`;if(this.tipMarker)this.tipMarker._element.innerHTML=d,this.tipMarker.setLngLat([e[0],e[1]]);else{const m=document.createElement("div");m.className="idm-gl4-draw-tip-marker",m.innerHTML=d,this.tipMarker=new ne.Marker(m).setOffset([140,0]).setLngLat([e[0],e[1]]).addTo(this.map)}},handleRefreshLine(){this.drawCoords.length>=1&&this.handleRenderLine(this.drawCoords)},handleMapClickPolygon(t){var r;const{lng:e,lat:a}=t.lngLat;this.drawCoords.push([e,a]),this.drawCoords.length>=3&&this.handleRenderPolygonFill(this.drawCoords),this.handleRenderAllVertexLabels(this.drawCoords),(r=this.editLayer)!=null&&r.id&&this.setupPolygonEdit()},handleMapMovePolygon(t){if(!this.drawCoords.length)return;const{lng:e,lat:a}=t.lngLat,r=[...this.drawCoords,[e,a]];r.length>=1&&this.handleRenderPolygonFill(r),this.handleRenderAllVertexLabels(r)},handleMapDblClickPolygon(t){t.preventDefault(),this.drawCoords.length>=1&&this.drawCoords.pop(),this.drawCoords.length>=1&&this.handleRenderPolygonFill(this.drawCoords),this.handleRenderAllVertexLabels(this.drawCoords),this.map.off("click",this.handleMapClickPolygon),this.map.off("mousemove",this.handleMapMovePolygon),this.map.off("dblclick",this.handleMapDblClickPolygon)},handleRenderPolygonFill(t){var i;let e=[];if(t==null||t.forEach((l,n)=>{e.push(D.point(l))}),(t==null?void 0:t.length)>2){const l=[...t,t[0]];e.push(P.GeoJsonHelper.drawPolygon(l,{...this.originalProperties}))}const a=D.featureCollection(e);this.handleSetDrawSource(a);const r=(i=this.editLayer)!=null&&i.id?3:2;this.map.getLayer(this.drawFillLayer)?(this.map.setPaintProperty(this.drawLineLayer,"line-width",r),this.map.getLayer(this.drawPointLayer)&&this.map.setPaintProperty(this.drawPointLayer,"circle-color",this.form.color)):(this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":r}}),this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}))},handleRenderVertexLabel(t,e=8){this.handleClearVertexLabels();const a=P.LngLatHelper.lat2pretty(t[1],4).pretty,r=P.LngLatHelper.lng2pretty(t[0],4).pretty,i=document.createElement("div");i.className="idm-gl4-draw-corner-label center",i.innerHTML=`<span class="corner-text">${a} <br/> ${r}</span>`;const l=new ne.Marker(i,{anchor:"bottom",offset:[0,e]}).setLngLat(t).addTo(this.map);this.polygonVertexMarkers.push(l)},handleRenderAllVertexLabels(t){this.handleClearVertexLabels();const e=t.reduce((a,r)=>[a[0]+r[0],a[1]+r[1]],[0,0]);e[0]/=t.length,e[1]/=t.length,t.forEach(a=>{const r=a[0]-e[0],i=a[1]-e[1];let l="center";i>=0&&r>=0?l="bottom-left":i>=0&&r<0?l="bottom-right":i<0&&r>=0?l="top-left":l="top-right";const n=P.LngLatHelper.lat2pretty(a[1],4).pretty,c=P.LngLatHelper.lng2pretty(a[0],4).pretty,s=document.createElement("div");s.className="idm-gl4-draw-corner-label "+l,s.innerHTML=`<span class="corner-text">${n} <br/> ${c}</span>`;const d=new ne.Marker(s,{anchor:l}).setLngLat(a).addTo(this.map);this.polygonVertexMarkers.push(d)})},handleUpdateVertexLabel(t){if(!this.polygonVertexMarkers.length)return;const e=this.polygonVertexMarkers[0];e.setLngLat(t);const a=P.LngLatHelper.lat2pretty(t[1],4).pretty,r=P.LngLatHelper.lng2pretty(t[0],4).pretty,i=e.getElement().querySelector(".corner-text");i&&(i.innerHTML=`${a} <br/> ${r}`)},handleClearVertexLabels(){this.polygonVertexMarkers.forEach(t=>t.remove()),this.polygonVertexMarkers=[]},handleMapClickCircle(t){const{lng:e,lat:a}=t.lngLat;if(this.drawCoords.length===0){this.drawCoords.push([e,a]);const r=D.featureCollection([D.point([e,a])]);this.handleSetDrawSource(r),this.map.getLayer(this.drawPointLayer)||this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),this.handleRenderCircleCenterLabel([e,a])}else{const r=this.drawCoords[0],i=[e,a],l=D.distance(D.point(r),D.point(i),{units:"nauticalmiles"}),n=P.GeoJsonHelper.drawCircle(r[0],r[1],l),c=D.featureCollection([D.point(r),n]);this.handleSetDrawSource(c),this.handleRenderAreaLayers(),this.handleRenderRadiusLine(r,i,l),this.drawCoords=[r,i],this.map.off("click",this.handleMapClickCircle),this.map.off("mousemove",this.handleMapMoveCircle)}},handleMapMoveCircle(t){if(this.drawCoords.length!==1)return;const e=this.drawCoords[0],a=[t.lngLat.lng,t.lngLat.lat],r=D.distance(D.point(e),D.point(a),{units:"nauticalmiles"}),i=P.GeoJsonHelper.drawCircle(e[0],e[1],r),l=D.featureCollection([D.point(e),i]);this.handleSetDrawSource(l),this.map.getLayer(this.drawFillLayer)||this.handleRenderAreaLayers(),this.handleRenderRadiusLine(e,a,r)},handleRenderCircleCenterLabel(t){const e=P.LngLatHelper.lat2pretty(t[1],4).pretty,a=P.LngLatHelper.lng2pretty(t[0],4).pretty,r=document.createElement("div");r.className="idm-gl4-draw-corner-label bottom-right",r.innerHTML=`<span class="corner-text">${e} <br/> ${a}</span>`;const i=new ne.Marker(r,{anchor:"bottom-right"}).setLngLat(t).addTo(this.map);this.circleMarkers.push(i)},handleRenderRadiusLine(t,e,a){const r=P.LngLatHelper.roundPrecision(a,2),i=D.featureCollection([D.lineString([t,e])]);this.map.getSource(this.drawRadiusSource)?this.map.getSource(this.drawRadiusSource).setData(i):this.map.addSource(this.drawRadiusSource,{type:"geojson",data:i}),this.map.getLayer(this.drawRadiusLayer)||this.map.addLayer({id:this.drawRadiusLayer,type:"line",source:this.drawRadiusSource,layout:{"line-cap":"round"},paint:{"line-color":this.form.color,"line-width":1.5,"line-dasharray":[4,3]}});const l=[(t[0]+e[0])/2,(t[1]+e[1])/2],n=this.map.project(t),c=this.map.project(e),s=c.x-n.x,d=c.y-n.y;let m=Math.atan2(d,s)*180/Math.PI;m>90&&(m-=180),m<-90&&(m+=180);const p=16,g=(m-90)*Math.PI/180,y=Math.round(Math.cos(g)*p),u=Math.round(Math.sin(g)*p);this.circleMarkers.length>1&&(this.circleMarkers[1].remove(),this.circleMarkers.splice(1,1));const h=document.createElement("div"),f=document.createElement("span");f.className="idm-gl4-draw-radius-label",f.style.transform=`rotate(${m}deg)`,f.style.transformOrigin="center",f.style.display="inline-block",f.textContent=`${r} nm`,h.appendChild(f);const k=new ne.Marker(h,{anchor:"center",offset:[y,u]}).setLngLat(l).addTo(this.map);this.circleMarkers.push(k)},handleClearCircleLabels(){var t,e;this.circleMarkers.forEach(a=>a.remove()),this.circleMarkers=[],(t=this.map)!=null&&t.getLayer(this.drawRadiusLayer)&&this.map.removeLayer(this.drawRadiusLayer),(e=this.map)!=null&&e.getSource(this.drawRadiusSource)&&this.map.removeSource(this.drawRadiusSource)},buildRectFeatureCollection(t,e){const a=Math.min(t[0],e[0]),r=Math.max(t[0],e[0]),i=Math.min(t[1],e[1]),l=Math.max(t[1],e[1]);return[[a,l],[r,l],[r,i],[a,i]]},handleMapClickRect(t){const{lng:e,lat:a}=t.lngLat;if(this.drawCoords.length===0)this.drawCoords.push([e,a]);else{const r=this.drawCoords[0],i=[e,a],l=P.GeoJsonHelper.drawRect(r,i);delete l.bbox;const n=this.buildRectFeatureCollection(r,i),c=D.featureCollection([l,...n.map(s=>D.point(s))]);this.handleSetDrawSource(c),this.handleRenderRectLayers(),this.handleRenderRectCorners(r,i),this.drawCoords=[r,i],this.map.off("click",this.handleMapClickRect),this.map.off("mousemove",this.handleMapMoveRect)}},handleMapMoveRect(t){if(this.drawCoords.length!==1)return;const e=this.drawCoords[0],a=[t.lngLat.lng,t.lngLat.lat],r=P.GeoJsonHelper.drawRect(e,a),i=this.buildRectFeatureCollection(e,a),l=D.featureCollection([r,...i.map(n=>D.point(n))]);this.handleSetDrawSource(l),this.map.getLayer(this.drawFillLayer)||this.handleRenderRectLayers(),this.handleRenderRectCorners(e,a)},handleRenderRectLayers(){var e;const t=(e=this.editLayer)!=null&&e.id?3:2;this.map.getLayer(this.drawFillLayer)||this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.getLayer(this.drawLineLayer)?this.map.setPaintProperty(this.drawLineLayer,"line-width",t):this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":t}}),this.map.getLayer(this.drawPointLayer)||this.map.addLayer({id:this.drawPointLayer,type:"circle",source:this.drawSource,filter:["==","$type","Point"],paint:{"circle-radius":3,"circle-color":this.form.color,"circle-stroke-width":2,"circle-stroke-color":"#ffffff"}})},handleRenderRectCorners(t,e){const a=Math.min(t[0],e[0]),r=Math.max(t[0],e[0]),i=Math.min(t[1],e[1]),l=Math.max(t[1],e[1]),n=[{coord:[a,l],anchor:"bottom-right"},{coord:[r,l],anchor:"bottom-left"},{coord:[r,i],anchor:"top-left"},{coord:[a,i],anchor:"top-right"}];this.handleClearRectCorners(),n.forEach(({coord:c,anchor:s})=>{const d=P.LngLatHelper.lat2pretty(c[1],4).pretty,m=P.LngLatHelper.lng2pretty(c[0],4).pretty,p=document.createElement("div");p.className="idm-gl4-draw-corner-label "+s,p.innerHTML=`<span class="corner-text">${d} <br/> ${m}</span>`;const g=new ne.Marker(p,{anchor:s}).setLngLat(c).addTo(this.map);this.rectCornerMarkers.push(g)})},handleClearRectCorners(){this.rectCornerMarkers.forEach(t=>t.remove()),this.rectCornerMarkers=[]},handleRenderAreaLayers(){var e;const t=(e=this.editLayer)!=null&&e.id?3:2;this.map.getLayer(this.drawFillLayer)||this.map.addLayer({id:this.drawFillLayer,type:"fill",source:this.drawSource,filter:["==","$type","Polygon"],paint:{"fill-color":this.form.color,"fill-opacity":.35}}),this.map.getLayer(this.drawLineLayer)?this.map.setPaintProperty(this.drawLineLayer,"line-width",t):this.map.addLayer({id:this.drawLineLayer,type:"line",source:this.drawSource,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.form.color,"line-width":t}})},handleSetDrawSource(t){this.map.getSource(this.drawSource)?this.map.getSource(this.drawSource).setData(t):this.map.addSource(this.drawSource,{type:"geojson",data:t})},handleClearTmp(){var t,e,a;(t=this.map)!=null&&t.getLayer(this.drawTmpLayer)&&this.map.removeLayer(this.drawTmpLayer),(e=this.map)!=null&&e.getSource(this.drawTmpSource)&&this.map.removeSource(this.drawTmpSource),(a=this.tipMarker)==null||a.remove(),this.tipMarker=null},handleUpdateLayerColors(){if(!this.map)return;const t=this.form.color;this.map.getLayer(this.drawPointLayer)&&this.map.setPaintProperty(this.drawPointLayer,"circle-color",t),this.map.getLayer(this.drawLineLayer)&&this.map.setPaintProperty(this.drawLineLayer,"line-color",t),this.map.getLayer(this.drawFillLayer)&&this.map.setPaintProperty(this.drawFillLayer,"fill-color",t),this.map.getLayer(this.drawRadiusLayer)&&this.map.setPaintProperty(this.drawRadiusLayer,"line-color",t),this.map.getLayer(this.drawTmpLayer)&&this.map.setPaintProperty(this.drawTmpLayer,"line-color",t),this.editMarkers.forEach(e=>{e.getElement()&&(e.getElement().style.backgroundColor=t)})},handleClearDraw(t=!1){var a,r,i,l,n;this.handleClearTmp(),this.hideDeleteButton();const e=[this.drawPointLayer,this.drawLineLayer,this.drawFillLayer];for(const c of e)(a=this.map)!=null&&a.getLayer(c)&&((r=this.map)==null||r.removeLayer(c));(i=this.map)!=null&&i.getSource(this.drawSource)&&this.map.removeSource(this.drawSource),this.drawCoords=[],this.originalProperties={},this.handleClearRectCorners(),this.handleClearVertexLabels(),this.handleClearCircleLabels(),(l=this.pointMarker)==null||l.remove(),this.pointMarker=null,(n=this.pointHighlightMarker)==null||n.remove(),this.pointHighlightMarker=null,this.clearEditMarkers(),this.handleRebindMap()},async handleSave(){var r,i;let t=null;if(this.markerType==="Point"?await this.$refs.pointForm.validate().then(l=>{var n;if(l!=null&&l.valid){if(!this.drawCoords.length)return;const[c,s]=this.drawCoords[0];t=D.featureCollection([P.GeoJsonHelper.drawPoint(s,c,{...this.originalProperties,color:this.form.color,name:this.form.name})]),(n=t.features)==null||n.forEach(d=>{d.properties.color=this.form.color,d.properties.name=this.form.name})}}):this.markerType==="Line"?await this.$refs.lineForm.validate().then(l=>{if(l!=null&&l.valid){if(this.drawCoords.length<2)return;const n=[],c=P.LaneHelper.generateRouteAccordingToWaypoints(this.drawCoords.map(s=>({lng:s==null?void 0:s[0],lat:s==null?void 0:s[1]})));for(const s of c)s.length>1&&n.push(P.GeoJsonHelper.drawLine(s,{properties:{...this.originalProperties,color:this.form.color,name:this.form.name}}));t=D.featureCollection(n)}}):this.markerType==="Area"&&await this.$refs.areaForm.validate().then(l=>{var n,c,s;if(l!=null&&l.valid){const d=(n=this.map)==null?void 0:n.getSource(this.drawSource);if(!d)return;const m=d._data;if(!((c=m==null?void 0:m.features)!=null&&c.length))return;let p=((s=m.features)==null?void 0:s.filter(g=>g.geometry.type==="Polygon"))||[];if(p=p==null?void 0:p.map(g=>(g.properties.name=this.form.name,g.properties.color=this.form.color,g)),!p.length)return;t=D.featureCollection(p)}}),!t)return!1;const e={name:this.form.name,format:"geojson",color:this.form.color,extend:t};this.saving=!0,await((r=this.editLayer)!=null&&r.id?le.put(`${this.gateway}/api/arc/layers/${this.editLayer.id}`,e,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}):le.post(`${this.gateway}/api/arc/lygroups/${(i=this.group)==null?void 0:i.id}/layers`,e,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}})).then(l=>{var n,c,s,d;((n=l.data)==null?void 0:n.code)===0&&this.$emit("save",{...e,id:((c=this.editLayer)==null?void 0:c.id)||((d=(s=l.data)==null?void 0:s.data)==null?void 0:d.id)}),this.saving=!1}).catch(l=>{console.error("save marker error",l),this.saving=!1})}}},fp={class:"text-h6 font-weight-600"},yp={class:"text-label mb-1"},bp={class:"text-label mb-1"},wp={class:"mb-1"},xp={class:"text-label mb-1"},kp={class:"mb-1"},_p={class:"text-label mb-1"},Lp={class:"mb-1"},zp={class:"text-label mb-1"},Cp={class:"color-picker-row d-flex align-start ga-2"},vp=["value"],Sp={class:"mb-n2"},Np={class:"text-label mb-1"},Vp={class:"mb-1"},Pp={class:"text-label mb-1"},Mp={class:"color-picker-row d-flex align-start ga-2"},Tp=["value"],Ep={class:"mb-n2"},Dp={class:"text-label mb-1"},Rp={key:0,class:"mb-3"},Bp={class:"text-label mb-1"},Ip={class:"mb-1"},Ap={class:"text-label mb-1"},Fp={class:"color-picker-row d-flex align-start ga-2"},Gp=["value"],Wp={class:"mb-n2"},Op={class:"text-label mb-1"};function Zp(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VCardTitle"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VTextField"),m=o.resolveComponent("VCardText"),p=o.resolveComponent("VBtnToggle"),g=o.resolveComponent("VCol"),y=o.resolveComponent("VRow"),u=o.resolveComponent("VCardActions"),h=o.resolveComponent("VForm"),f=o.resolveComponent("VCard");return o.openBlock(),o.createBlock(f,{class:"idm-gl4-draw-dialog-card",elevation:"4"},{default:o.withCtx(()=>{var k;return[o.createVNode(c,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>{var w;return[o.createElementVNode("span",fp,o.toDisplayString((w=a.editLayer)!=null&&w.id?t.$t("actions.edit"):t.$t("actions.addMarker")),1),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleClose},{default:o.withCtx(()=>e[21]||(e[21]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[21]},8,["onClick"])]}),_:1}),o.createVNode(s),o.createVNode(m,{class:"text-body-1 px-4 pb-0"},{default:o.withCtx(()=>{var w;return[o.createElementVNode("div",yp,o.toDisplayString(t.$t("marker.group")),1),o.createVNode(d,{"model-value":(w=a.group)==null?void 0:w.name,density:"compact",variant:"outlined","hide-details":"",disabled:"",class:"input-btn-bg-1"},null,8,["model-value"])]}),_:1}),(k=a.editLayer)!=null&&k.id?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(m,{key:0,class:"text-body-1 px-4 pb-0"},{default:o.withCtx(()=>{var w;return[o.createElementVNode("div",bp,[o.createTextVNode(o.toDisplayString(t.$t("marker.markerType")),1),e[22]||(e[22]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(p,{modelValue:i.markerType,"onUpdate:modelValue":e[0]||(e[0]=b=>i.markerType=b),mandatory:"",group:"",density:"compact",variant:"flat",class:"w-100",disabled:!!((w=a.editLayer)!=null&&w.id)},{default:o.withCtx(()=>[o.createVNode(n,{value:"Point",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.markerType==="Point"?"":"btn-border-1 btn-bg-1"]),color:i.markerType==="Point"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.point")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Line",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.markerType==="Line"?"":"btn-border-1 btn-bg-1"]),style:{"border-left":"0 !important","border-right":"0 !important"},color:i.markerType==="Line"?"primary":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.line")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Area",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.markerType==="Area"?"":"btn-border-1 btn-bg-1"]),color:i.markerType==="Area"?"primary":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.area")),1)]),_:1},8,["class","color"])]),_:1},8,["modelValue","disabled"])]}),_:1})),i.markerType==="Point"?(o.openBlock(),o.createBlock(h,{key:1,ref:"pointForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleSave,["prevent"])},{default:o.withCtx(()=>[o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",wp,[o.createElementVNode("div",xp,[o.createTextVNode(o.toDisplayString(t.$t("marker.lat")),1),e[23]||(e[23]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(y,{class:"ma-0"},{default:o.withCtx(()=>[o.createVNode(g,{cols:"4",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.latDegree,"onUpdate:modelValue":[e[1]||(e[1]=w=>i.form.latDegree=w),e[2]||(e[2]=w=>l.handleChangePoint())],rules:i.formRules.latDegree,label:"",autocomplete:"off",density:"compact",variant:"outlined",height:"32px","min-height":"32px",required:"",dense:"",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[24]||(e[24]=o.createElementVNode("span",{class:"px-1"},"°",-1))]),_:1,__:[24]}),o.createVNode(g,{cols:"6",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.latMinute,"onUpdate:modelValue":[e[3]||(e[3]=w=>i.form.latMinute=w),e[4]||(e[4]=w=>l.handleChangePoint())],rules:i.formRules.latMinute,label:"",height:"32px","min-height":"32px",autocomplete:"off",density:"compact",variant:"outlined",class:"text-body-1 input-btn-bg-1",required:"",dense:""},null,8,["modelValue","rules"]),e[25]||(e[25]=o.createElementVNode("span",{class:"px-1"},"'",-1))]),_:1,__:[25]}),o.createVNode(g,{cols:"2",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(n,{variant:"outlined",density:"compact",width:"32","min-width":"32",height:"32",class:"text-body-1 bg-primary",style:{border:"1px solid rgba(var(--v-theme-on-surface), 0.38)"},onClick:e[5]||(e[5]=w=>{i.form.latDir=i.form.latDir==="N"?"S":"N",l.handleChangePoint()})},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.form.latDir),1)]),_:1})]),_:1})]),_:1})]),o.createElementVNode("div",kp,[o.createElementVNode("div",_p,[o.createTextVNode(o.toDisplayString(t.$t("marker.lng")),1),e[26]||(e[26]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(y,{class:"ma-0"},{default:o.withCtx(()=>[o.createVNode(g,{cols:"4",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.lngDegree,"onUpdate:modelValue":[e[6]||(e[6]=w=>i.form.lngDegree=w),e[7]||(e[7]=w=>l.handleChangePoint())],rules:i.formRules.lngDegree,density:"compact",variant:"outlined",autocomplete:"off",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[27]||(e[27]=o.createElementVNode("span",{class:"px-1"},"°",-1))]),_:1,__:[27]}),o.createVNode(g,{cols:"6",class:"pa-0 d-flex"},{default:o.withCtx(()=>[o.createVNode(d,{modelValue:i.form.lngMinute,"onUpdate:modelValue":[e[8]||(e[8]=w=>i.form.lngMinute=w),e[9]||(e[9]=w=>l.handleChangePoint())],rules:i.formRules.lngMinute,density:"compact",variant:"outlined",autocomplete:"off",class:"text-body-1 input-btn-bg-1"},null,8,["modelValue","rules"]),e[28]||(e[28]=o.createElementVNode("span",{class:"px-1"},"'",-1))]),_:1,__:[28]}),o.createVNode(g,{cols:"2",class:"pa-0"},{default:o.withCtx(()=>[o.createVNode(n,{variant:"outlined",density:"compact",width:"32","min-width":"32",height:"32",class:"text-body-1 bg-primary",style:{border:"1px solid rgba(var(--v-theme-on-surface), 0.38)"},onClick:e[10]||(e[10]=w=>{i.form.lngDir=i.form.lngDir==="E"?"W":"E",l.handleChangePoint()})},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.form.lngDir),1)]),_:1})]),_:1})]),_:1})]),o.createElementVNode("div",Lp,[o.createElementVNode("div",zp,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[29]||(e[29]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Cp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[11]||(e[11]=w=>i.form.color=w.target.value)},null,40,vp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[12]||(e[12]=w=>i.form.color=w),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",Sp,[o.createElementVNode("div",Np,[o.createTextVNode(o.toDisplayString(t.$t("marker.name")),1),e[30]||(e[30]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.name,"onUpdate:modelValue":e[13]||(e[13]=w=>i.form.name=w),density:"compact",variant:"outlined",rules:i.formRules.name,autocomplete:"off",class:"input-btn-bg-1"},null,8,["modelValue","rules"])])]),_:1}),o.createVNode(s),o.createVNode(u,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClearDraw},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.saving},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])):o.createCommentVNode("",!0),i.markerType==="Line"?(o.openBlock(),o.createBlock(h,{key:2,ref:"lineForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleSave,["prevent"])},{default:o.withCtx(()=>[o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",Vp,[o.createElementVNode("div",Pp,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[31]||(e[31]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Mp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[14]||(e[14]=w=>i.form.color=w.target.value)},null,40,Tp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[15]||(e[15]=w=>i.form.color=w),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",Ep,[o.createElementVNode("div",Dp,[o.createTextVNode(o.toDisplayString(t.$t("marker.name")),1),e[32]||(e[32]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.name,"onUpdate:modelValue":e[16]||(e[16]=w=>i.form.name=w),density:"compact",variant:"outlined",rules:i.formRules.name,autocomplete:"off",class:"input-btn-bg-1"},null,8,["modelValue","rules"])])]),_:1}),o.createVNode(s),o.createVNode(u,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClearDraw},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.saving},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])):o.createCommentVNode("",!0),i.markerType==="Area"?(o.openBlock(),o.createBlock(h,{key:3,ref:"areaForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleSave,["prevent"])},{default:o.withCtx(()=>[o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>{var w,b;return[(w=a.editLayer)!=null&&w.id?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("div",Rp,[o.createElementVNode("div",Bp,[o.createTextVNode(o.toDisplayString(t.$t("marker.areaType")),1),e[33]||(e[33]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(p,{modelValue:i.form.areaType,"onUpdate:modelValue":e[17]||(e[17]=x=>i.form.areaType=x),mandatory:"",group:"",density:"compact",variant:"flat",color:"primary",class:"w-100",disabled:!!((b=a.editLayer)!=null&&b.id)},{default:o.withCtx(()=>[o.createVNode(n,{value:"Polygon",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.form.areaType==="Polygon"?"":"btn-border-1 btn-bg-1"]),color:i.form.areaType==="Polygon"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.polygon")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Circle",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.form.areaType==="Circle"?"":"btn-border-1 btn-bg-1"]),style:{"border-left":"0 !important","border-right":"0 !important"},color:i.form.areaType==="Circle"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.circle")),1)]),_:1},8,["class","color"]),o.createVNode(n,{value:"Rect",class:o.normalizeClass(["flex-1-1-0 text-none text-body-1",i.form.areaType==="Rect"?"":"btn-border-1 btn-bg-1"]),color:i.form.areaType==="Rect"?"primary":"","base-color":"",height:"32px","min-height":"32px"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("marker.rect")),1)]),_:1},8,["class","color"])]),_:1},8,["modelValue","disabled"])])),o.createElementVNode("div",Ip,[o.createElementVNode("div",Ap,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[34]||(e[34]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Fp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[18]||(e[18]=x=>i.form.color=x.target.value)},null,40,Gp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[19]||(e[19]=x=>i.form.color=x),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",Wp,[o.createElementVNode("div",Op,[o.createTextVNode(o.toDisplayString(t.$t("marker.name")),1),e[35]||(e[35]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.name,"onUpdate:modelValue":e[20]||(e[20]=x=>i.form.name=x),density:"compact",variant:"outlined",rules:i.formRules.name,autocomplete:"off",class:"input-btn-bg-1"},null,8,["modelValue","rules"])])]}),_:1}),o.createVNode(s),o.createVNode(u,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>{var w;return[(w=a.editLayer)!=null&&w.id?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(n,{key:0,class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClearDraw},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.clear")),1)]),_:1},8,["onClick"])),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.saving},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.save")),1)]),_:1},8,["loading"])]}),_:1})]),_:1},8,["onSubmit"])):o.createCommentVNode("",!0)]}),_:1})}const jp=X(up,[["render",Zp]]),Gy="",Hp={name:"IdmImportMarker",props:{map:{type:Object},gateway:{type:String},token:{type:String},defaultMeteoToken:{type:String},group:{type:Object,default:null}},emits:["close","import"],setup(){return{Theme:fe.useTheme()}},data(){var t;return{form:{groupName:"",name:"",file:null,format:"",extend:void 0,color:(t=this.Theme.current.value.colors)==null?void 0:t["map-green"]},formRules:{groupName:[e=>e!=null&&e!==""||"required"],color:[e=>e!=null&&e!==""||"required"]},isDragOver:!1,uploading:!1,fileError:"",previewSourceId:"__import_preview__",previewMarkers:[]}},watch:{"form.color":{handler(t){var e;(e=this.form.extend)!=null&&e.features&&this.form.extend.features.forEach(a=>{a.properties.color=t}),this.handleDrawLayers()},immediate:!0}},mounted(){var t;this.form.groupName=((t=this.group)==null?void 0:t.name)||"Import layer 1"},beforeUnmount(){this.handleClearPreview()},methods:{handleClose(){this.$emit("close")},handleReset(){var t;this.form={groupName:((t=this.group)==null?void 0:t.name)||"Import layer 1",file:null,format:"",extend:void 0},this.fileError=""},handleSelectFile(){this.$refs.fileInput.click()},handleFileChange(t){const e=t.target.files[0];e&&this.onUpload(e)},handleDrop(t){this.isDragOver=!1;const e=t.dataTransfer.files[0];e&&this.onUpload(e)},async onUpload(t){var r,i,l,n;if(t.size>10485760){this.fileError=this.$t("marker.fileTooLarge");return}this.form.file=t,this.fileError="",this.form.name=(r=t.name.split("."))==null?void 0:r[0];const a=(i=t.name.split(".").pop())==null?void 0:i.toLowerCase();try{let c;if(a==="json"||a==="geojson"){const s=await t.text();c=JSON.parse(s)}else if(a==="kml"){const s=await t.text();c=await P.GeoJsonHelper.convertKML2GeoJSON(s)}else if(a==="kmz"){const s=await t.arrayBuffer();c=await P.GeoJsonHelper.convertKMZ2GeoJSON(s)}else if(a==="zip"||a==="shp"){const s=await t.arrayBuffer();c=await P.GeoJsonHelper.convertZIP2GeoJSON(s)}else{this.fileError="Unsupported format: "+a;return}this.form.extend=c,this.form.format="geojson",(n=(l=this.form.extend)==null?void 0:l.features)==null||n.forEach(s=>{s.properties.color=this.form.color}),this.handleDrawLayers()}catch{this.fileError="Failed to parse file",this.form.file=null}},handleRemoveFile(){this.form.file=null,this.$refs.fileInput.value="",this.handleClearPreview()},async handleConfirm(){const{valid:t}=await this.$refs.importForm.validate();if(!t)return;if(!this.form.file){this.fileError=this.$t("marker.fileRequired");return}this.uploading=!0;let e=this.group.id;if(e||await le.post(`${this.gateway}/api/arc/lygroups`,{name:this.form.groupName},{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(r=>{var i,l;((i=r.data)==null?void 0:i.code)===0&&(e=(l=r.data.data)==null?void 0:l.id)}),!e){this.uploading=!1;return}const a={format:this.form.format,extend:this.form.extend};le.post(`${this.gateway}/api/arc/lygroups/${e}/layers`,a,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(r=>{var i;((i=r.data)==null?void 0:i.code)===0&&(this.$emit("import"),this.uploading=!1)}).catch(r=>{this.uploading=!1})},handleDrawLayers(){if(!this.map||!this.form.extend)return;const t=this.form.extend,e=this.previewSourceId,a=t.features||(t.type==="Feature"?[t]:[]);a.forEach(i=>{var n,c,s;const l=((n=i==null?void 0:i.properties)==null?void 0:n.color)||((c=this.Theme.current.value.colors)==null?void 0:c["map-green"]);if(((s=i.geometry)==null?void 0:s.type)==="Point"){const[d,m]=i.geometry.coordinates;this.previewMarkers.push(new ne.Marker({color:l}).setLngLat([d,m]).addTo(this.map))}i.properties.color||(i.properties.color=l)}),this.map.getSource(e)?this.map.getSource(e).setData(t):this.map.addSource(e,{type:"geojson",data:t});const r=new Set(a.map(i=>{var l;return(l=i.geometry)==null?void 0:l.type}));(r.has("LineString")||r.has("MultiLineString"))&&!this.map.getLayer(`${e}-line`)&&this.map.addLayer({id:`${e}-line`,type:"line",source:e,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["get","color"],"line-width":2}}),(r.has("Polygon")||r.has("MultiPolygon"))&&(this.map.getLayer(`${e}-fill`)||this.map.addLayer({id:`${e}-fill`,type:"fill",source:e,filter:["==","$type","Polygon"],paint:{"fill-color":["get","color"],"fill-opacity":.35}}),this.map.getLayer(`${e}-outline`)||this.map.addLayer({id:`${e}-outline`,type:"line",source:e,filter:["==","$type","Polygon"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["get","color"],"line-width":2}}))},handleClearPreview(){if(!this.map)return;this.previewMarkers.forEach(a=>a.remove()),this.previewMarkers=[];const t=this.previewSourceId;[`${t}-vertex`,`${t}-point`,`${t}-line`,`${t}-fill`,`${t}-outline`].forEach(a=>{this.map.getLayer(a)&&this.map.removeLayer(a)}),this.map.getSource(t)&&this.map.removeSource(t)}}},Xp={class:"text-h6 font-weight-600"},Yp={class:"mb-4"},Up={class:"text-label mb-1"},$p={class:"mb-1"},Jp={class:"text-label mb-1"},Kp={class:"color-picker-row d-flex align-start ga-2"},qp=["value"],Qp={class:"text-body-2 text-center text-label"},eg={class:"text-body-1 text-primary mt-2 cursor-pointer"},tg={class:"text-body-2 text-left text-label mt-1"},og={key:0,class:"text-body-2 text-left text-danger mt-1"},ag={key:1,class:"file-item d-flex align-center justify-space-between mt-2 gray-bg-1 pa-1"},ig={class:"text-body-2 text-truncate"};function rg(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VCardTitle"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VTextField"),m=o.resolveComponent("VIcon"),p=o.resolveComponent("VCardText"),g=o.resolveComponent("VCardActions"),y=o.resolveComponent("VForm"),u=o.resolveComponent("VCard");return o.openBlock(),o.createBlock(u,{class:"idm-gl4-import-dialog-card",elevation:"4"},{default:o.withCtx(()=>[o.createVNode(c,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>[o.createElementVNode("span",Xp,o.toDisplayString(t.$t("marker.importLayer")),1),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleClose},{default:o.withCtx(()=>e[9]||(e[9]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[9]},8,["onClick"])]),_:1}),o.createVNode(s),o.createVNode(y,{ref:"importForm",autocomplete:"off",class:"form-box",onSubmit:o.withModifiers(l.handleConfirm,["prevent"])},{default:o.withCtx(()=>[o.createVNode(p,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",Yp,[o.createElementVNode("div",Up,[o.createTextVNode(o.toDisplayString(t.$t("marker.group")),1),e[10]||(e[10]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.form.groupName,"onUpdate:modelValue":e[0]||(e[0]=h=>i.form.groupName=h),density:"compact",variant:"outlined","hide-details":"",class:"input-btn-bg-1"},null,8,["modelValue"])]),o.createElementVNode("div",$p,[o.createElementVNode("div",Jp,[o.createTextVNode(o.toDisplayString(t.$t("marker.color")),1),e[11]||(e[11]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createElementVNode("div",Kp,[o.createElementVNode("input",{type:"color",value:i.form.color,class:"native-color-picker cursor-pointer",onInput:e[1]||(e[1]=h=>i.form.color=h.target.value)},null,40,qp),o.createVNode(d,{modelValue:i.form.color,"onUpdate:modelValue":e[2]||(e[2]=h=>i.form.color=h),rules:i.formRules.color,density:"compact",variant:"outlined",class:"flex-1-1-0 input-btn-bg-1"},null,8,["modelValue","rules"])])]),o.createElementVNode("div",{class:o.normalizeClass(["upload-area btn-bg-1 d-flex flex-column justify-center align-center pa-4",{"drag-over":i.isDragOver,"upload-error":i.fileError}]),onDragenter:e[4]||(e[4]=o.withModifiers(h=>i.isDragOver=!0,["prevent"])),onDragleave:e[5]||(e[5]=o.withModifiers(h=>i.isDragOver=!1,["prevent"])),onDragover:e[6]||(e[6]=o.withModifiers(()=>{},["prevent"])),onDrop:e[7]||(e[7]=o.withModifiers((...h)=>l.handleDrop&&l.handleDrop(...h),["prevent"])),onClick:e[8]||(e[8]=(...h)=>l.handleSelectFile&&l.handleSelectFile(...h))},[o.createVNode(m,{size:"36",color:"grey",class:"mb-2"},{default:o.withCtx(()=>e[12]||(e[12]=[o.createTextVNode("mdi-cloud-upload-outline",-1)])),_:1,__:[12]}),o.createElementVNode("div",Qp,o.toDisplayString(t.$t("marker.uploadHint")),1),o.createElementVNode("div",eg,o.toDisplayString(t.$t("marker.selectFile")),1),o.createElementVNode("input",{ref:"fileInput",type:"file",style:{display:"none"},accept:".json,.geojson,.zip,.shp,.kml,.kmz",onChange:e[3]||(e[3]=(...h)=>l.handleFileChange&&l.handleFileChange(...h))},null,544)],34),o.createElementVNode("div",tg,o.toDisplayString(t.$t("marker.uploadLimit")),1),i.fileError?(o.openBlock(),o.createElementBlock("div",og,o.toDisplayString(i.fileError),1)):o.createCommentVNode("",!0),i.form.file?(o.openBlock(),o.createElementBlock("div",ag,[o.createElementVNode("span",ig,[o.createVNode(m,{size:"16",color:"success",class:"mr-1"},{default:o.withCtx(()=>e[13]||(e[13]=[o.createTextVNode("mdi-check-circle",-1)])),_:1,__:[13]}),o.createTextVNode(" "+o.toDisplayString(i.form.file.name),1)]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",size:"small",class:"file-remove-btn",onClick:l.handleRemoveFile},{default:o.withCtx(()=>[o.createVNode(m,{size:"16"},{default:o.withCtx(()=>e[14]||(e[14]=[o.createTextVNode("mdi-close",-1)])),_:1,__:[14]})]),_:1},8,["onClick"])])):o.createCommentVNode("",!0)]),_:1}),o.createVNode(s),o.createVNode(g,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleReset},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.reset")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",type:"submit",loading:i.uploading},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["onSubmit"])]),_:1})}const lg=X(Hp,[["render",rg]]),Wy="",ng={name:"IdmGroupDialog",props:{modelValue:{type:Boolean,default:!1},group:{type:Object,default:null},gateway:{type:String},token:{type:String},defaultMeteoToken:{type:String}},emits:["update:modelValue","saved"],data(){return{localName:"",saving:!1}},watch:{group:{handler(t){this.localName=(t==null?void 0:t.name)||""},immediate:!0}},methods:{handleClose(){this.$emit("update:modelValue",!1)},async handleConfirm(){var t;!this.group||!((t=this.localName)!=null&&t.trim())||(this.saving=!0,await le.put(`${this.gateway}/api/arc/lygroups/${this.group.id}`,{name:this.localName},{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(e=>{var a;((a=e.data)==null?void 0:a.code)===0&&this.$emit("saved")}).finally(()=>{this.saving=!1}))}}},sg={class:"text-h6 font-weight-600"},cg={class:"text-label mb-2"};function mg(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VCardTitle"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VTextField"),m=o.resolveComponent("VCardText"),p=o.resolveComponent("VCardActions"),g=o.resolveComponent("VCard"),y=o.resolveComponent("VDialog");return o.openBlock(),o.createBlock(y,{"model-value":a.modelValue,"max-width":"320",persistent:"","onUpdate:modelValue":e[1]||(e[1]=u=>t.$emit("update:modelValue",u))},{default:o.withCtx(()=>[o.createVNode(g,{class:"",elevation:"4"},{default:o.withCtx(()=>[o.createVNode(c,{class:"d-flex justify-space-between align-center"},{default:o.withCtx(()=>[o.createElementVNode("span",sg,o.toDisplayString(t.$t("actions.editGroup")),1),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleClose},{default:o.withCtx(()=>e[2]||(e[2]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[2]},8,["onClick"])]),_:1}),o.createVNode(s),o.createVNode(m,{class:"px-4 text-body-1"},{default:o.withCtx(()=>[o.createElementVNode("div",cg,[o.createTextVNode(o.toDisplayString(t.$t("marker.groupName")),1),e[3]||(e[3]=o.createElementVNode("span",{class:"text-danger"},"*",-1))]),o.createVNode(d,{modelValue:i.localName,"onUpdate:modelValue":e[0]||(e[0]=u=>i.localName=u),density:"compact",variant:"outlined","hide-details":"",autocomplete:"off",height:"32px","min-height":"32px",class:"input-btn-bg-1"},null,8,["modelValue"])]),_:1}),o.createVNode(s),o.createVNode(p,{class:"w-100 d-flex justify-end align-center ga-4 pa-4"},{default:o.withCtx(()=>[o.createVNode(n,{class:"text-none text-body-1",variant:"tonal",density:"comfortable",onClick:l.handleClose},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.cancel")),1)]),_:1},8,["onClick"]),o.createVNode(n,{class:"text-none text-body-1",variant:"flat",color:"primary",density:"comfortable",loading:i.saving,onClick:l.handleConfirm},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["model-value"])}const dg=X(ng,[["render",mg]]),hg={name:"DeleteDialog",props:{title:{type:String},tips:{type:String},loading:{type:Boolean,default:!1}},emits:["close","delete"],data(){return{showDialog:!1}},methods:{handleClose(){this.showDialog=!1},handleDelete(){this.$emit("delete")},open(){this.showDialog=!0}}},pg={class:"text-body-1 pb-1"},gg={class:"text-body-1"};function ug(t,e,a,r,i,l){const n=o.resolveComponent("VIcon"),c=o.resolveComponent("VBtn"),s=o.resolveComponent("VCardTitle"),d=o.resolveComponent("VCardText"),m=o.resolveComponent("VCardActions"),p=o.resolveComponent("VCard"),g=o.resolveComponent("VDialog");return o.openBlock(),o.createBlock(g,{modelValue:i.showDialog,"onUpdate:modelValue":e[0]||(e[0]=y=>i.showDialog=y),width:"500","min-width":"500","max-width":"500"},{default:o.withCtx(()=>[o.createVNode(p,{class:""},{default:o.withCtx(()=>[o.createVNode(s,{class:"text-h6 font-weight-600 d-flex justify-center align-center py-4"},{default:o.withCtx(()=>[o.createVNode(n,{color:"warning",icon:"mdi-alert-circle",size:"small",class:"mr-2"}),o.createElementVNode("div",null,o.toDisplayString(a.title),1),o.createVNode(c,{icon:"",density:"compact",variant:"plain",class:"position-absolute top-0 right-0 mt-2 mr-2",onClick:l.handleClose},{default:o.withCtx(()=>e[1]||(e[1]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[1]},8,["onClick"])]),_:1}),o.createVNode(d,{class:"py-4 text-center"},{default:o.withCtx(()=>[o.createElementVNode("p",pg,o.toDisplayString(a.tips),1),o.createElementVNode("p",gg,o.toDisplayString(t.$t("tips.doYouWantToContinue")),1)]),_:1}),o.createVNode(m,{class:"w-100 d-flex justify-center align-center ga-8 py-6"},{default:o.withCtx(()=>[o.createVNode(c,{variant:"tonal",class:"text-none text-body-1",height:"32",onClick:l.handleClose},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.cancel")),1)]),_:1},8,["onClick"]),o.createVNode(c,{loading:a.loading,variant:"flat",color:"danger",class:"text-none text-body-1",height:"32",onClick:l.handleDelete},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.delete")),1)]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}const fg=X(hg,[["render",ug]]),Oy="",Zy="",yg={name:"IdmMarker",components:{IdmDrawMarker:jp,IdmImportMarker:lg,IdmGroupDialog:dg,DeleteDialog:fg},props:{simple:{type:Boolean,default:!1},map:{type:Object},theme:{type:String},token:{type:String},isLogin:{type:Boolean,default:!1},defaultMeteoToken:{type:String},gateway:{type:String},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}}},emits:["map","menuToggle","theme","login"],setup(){return{Theme:fe.useTheme()}},data(){return{right:10,toggle:!1,autoActive:localStorage.getItem("autoActiveMarkersGL4")==="true"||void 0,keyword:"",drawDialog:!1,importDialog:!1,loading:!1,deleteDialog:!1,deleteLoading:!1,layerGroup:[],layers:[],groupIndex:0,currentLayer:void 0,drawnLayerIds:[],layerMarkers:{},groupDialog:!1,currentGroup:null,currentGroupId:"",currentGroupName:""}},computed:{listStyle(){return this.simple?{top:this.top+"px",left:this.toggle?"0px":"-280px"}:{top:this.top+"px",right:this.toggle?"0px":"-280px"}}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.markerLayers,this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})},immediate:!0},toggle:{async handler(){this.toggle&&(localStorage.getItem("autoActiveMarkersGL4")||(this.autoActive=!0))}},autoActive:{async handler(){(this.autoActive===!0||this.autoActive===!1)&&localStorage.setItem("autoActiveMarkersGL4",this.autoActive),this.layerGroup.length===0&&await this.fetchAllLayers(),this.autoActive?this.handleDrawAllLayers():this.handleClearAllLayers()},immediate:!0},map:{handler(){this.map&&(this.handleDrawAllLayers(),this.map.on("zoom",this.handleZoomChange))}}},methods:{handleMenuToggle(){this.isLogin?(this.toggle=!this.toggle,this.$emit("menuToggle","markerLayers")):this.$emit("login")},handleEditGroup(t){this.drawDialog=!1,this.importDialog=!1,this.currentGroup=t,this.groupDialog=!0},handleSaveGroup(){this.fetchAllLayers(),this.groupDialog=!1,this.currentGroup=void 0},handleOpenDelete(t,e){t==="group"?(this.currentGroup=e,this.currentLayer=void 0):t==="layer"&&(this.currentGroup=void 0,this.currentLayer=e),this.$refs.deleteDialog.open()},confirmDelete(){var t;this.currentGroup?this.handleDeleteGroup((t=this.currentGroup)==null?void 0:t.id):this.currentLayer&&this.handleDeleteLayer(this.currentLayer)},async handleDeleteGroup(t){t&&(this.deleteLoading=!0,await le.delete(`${this.gateway}/api/arc/lygroups/${t}`,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(e=>{var a;((a=e.data)==null?void 0:a.code)===0&&(this.fetchAllLayers(),this.currentGroup=void 0,this.$refs.deleteDialog.handleClose(),this.deleteLoading=!1)}).catch(()=>{this.deleteLoading=!1}))},handleOpenDrawMarkers(t){this.handleCloseDraw(),this.currentGroup=t||this.layerGroup.find(e=>e.name==="Custom Layers"),this.importDialog=!1,this.drawDialog=!0},handleOpenImportDialog(t){this.drawDialog=!1,this.handleCloseDraw(),this.currentGroup=t||void 0,this.importDialog=!0},handleImportLayer(t){this.fetchAllLayers(),this.importDialog=!1},handleSaveMarker(t){this.fetchAllLayers(),this.drawDialog=!1,this.currentLayer=null},handleCloseDraw(){this.drawDialog=!1,this.currentLayer=null,this.autoActive&&this.handleDrawAllLayers(),this.currentGroup=void 0},handleEditLayer(t,e){var a;this.importDialog=!1,this.drawDialog&&((a=this.currentLayer)!=null&&a.id)&&this.currentLayer.id!==e.id&&this.autoActive&&this.handleDrawAllLayers(),this.currentGroup=t,this.currentLayer=e,this.drawDialog=!0},async fetchAllLayers(){this.loading=!0,this.layerGroup=[],await le.get(`${this.gateway}/api/arc/lygroups/my`,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(t=>{var e,a,r,i,l,n;if(((e=t.data)==null?void 0:e.code)===0){this.loading=!1,this.layerGroup=((i=(r=(a=t.data)==null?void 0:a.data)==null?void 0:r.rows)==null?void 0:i.reverse())||[];const c=[];(l=this.layerGroup)==null||l.forEach(s=>{var d;s.show=!0,(d=s.layers)==null||d.forEach(m=>{var g;m.layerGroupId=s.id;const p=typeof m.extend=="string"?JSON.parse(m.extend):m.extend;(g=p==null?void 0:p.features)==null||g.forEach(y=>{y.properties.lgId=s.id,y.properties.layerId=m.id,y.properties.name||(y.properties.name=m.name)}),c.push(m)})}),this.layers=c,this.handleDrawAllLayers(),(n=this.$refs.drawDialog)==null||n.handleClearDraw()}}).catch(()=>{this.loading=!1})},async handleDeleteLayer(t){this.deleteLoading=!0,await le.delete(`${this.gateway}/api/arc/layers/${t.id}`,{headers:{Authorization:this.token||this.defaultMeteoToken,version:"new"}}).then(e=>{var a;((a=e.data)==null?void 0:a.code)===0&&(this.deleteLoading=!1,this.fetchAllLayers(),this.$refs.deleteDialog.handleClose())}).catch(()=>{this.deleteLoading=!1})},handleRenderLayer(t){if(!this.map||!(t!=null&&t.extend))return;const e=typeof t.extend=="string"?JSON.parse(t.extend):t.extend;if(!e)return;const a=`marker-layer-${t.id}`;this.handleClearLayerMarkers(t.id);const r=e.features||(e.type==="Feature"?[e]:[]);if(r.some(c=>{var s,d;return(((s=c.geometry)==null?void 0:s.type)==="Point"||((d=c.geometry)==null?void 0:d.type)==="MultiPoint")&&c.properties.shape==="point"})){const c=[];r.forEach(s=>{var g,y,u,h;const d=(g=s.geometry)==null?void 0:g.type,m=((y=s.properties)==null?void 0:y.name)||"",p=((u=s.properties)==null?void 0:u.color)||t.color||((h=this.Theme.current.value.colors)==null?void 0:h["map-green"]);if(d==="Point"){const[f,k]=s.geometry.coordinates,w=`<div style="font-size:12px;line-height:1.5;">
220
220
  <div style="font-weight:600;">${m}</div>
221
221
  <div>${P.LngLatHelper.lat2pretty(k,4).pretty}, ${P.LngLatHelper.lng2pretty(f,4).pretty}</div>
222
222
  </div>`,b=new ne.Popup({offset:40,closeButton:!1,closeOnClick:!1,anchor:"bottom",className:"marker-popup-dark"}).setHTML(w),x=new ne.Marker({color:p}).setLngLat([f,k]).addTo(this.map),C=x.getElement();C.addEventListener("mouseenter",()=>b.setLngLat([f,k]).addTo(this.map)),C.addEventListener("mouseleave",()=>b.remove()),c.push(x)}else d==="MultiPoint"&&s.geometry.coordinates.forEach(([f,k])=>{const w=`<div style="font-size:12px;line-height:1.5;">
@@ -229,6 +229,6 @@ ${h}
229
229
  `):m+=g[0]}return m+=c.slice(p),m}let n=ya(t,e||location.href);return n=await l(n,e||location.href,0),n}var ba=/url\((["']?)([^"')]+)\1\)/g,xu=/@font-face[^{}]*\{[^}]*\}/g;function wa(t){if(!t)return[];let e=[],a=t.split(",").map(r=>r.trim()).filter(Boolean);for(let r of a){let i=r.match(/^U\+([0-9A-Fa-f?]+)(?:-([0-9A-Fa-f?]+))?$/);if(!i)continue;let l=i[1],n=i[2],c=s=>{if(!s.includes("?"))return parseInt(s,16);let d=parseInt(s.replace(/\?/g,"0"),16),m=parseInt(s.replace(/\?/g,"F"),16);return[d,m]};if(n){let s=c(l),d=c(n),m=Array.isArray(s)?s[0]:s,p=Array.isArray(d)?d[1]:d;e.push([Math.min(m,p),Math.max(m,p)])}else{let s=c(l);Array.isArray(s)?e.push([s[0],s[1]]):e.push([s,s])}}return e}function xa(t,e){if(!e.length||!t||t.size===0)return!0;for(let a of t)for(let[r,i]of e)if(a>=r&&a<=i)return!0;return!1}function Ko(t,e){let a=[];if(!t)return a;for(let r of t.matchAll(ba)){let i=(r[2]||"").trim();if(!(!i||i.startsWith("data:"))){if(!/^https?:/i.test(i))try{i=new URL(i,e||location.href).href}catch{}a.push(i)}}return a}async function ka(t,e,a=""){var i,l,n,c,s;let r=t;for(let d of t.matchAll(ba)){let m=Ho(d[0]);if(!m)continue;let p=m;if(!p.startsWith("http")&&!p.startsWith("data:"))try{p=new URL(p,e||location.href).href}catch{}if(!Re(p)){if((i=R.resource)!=null&&i.has(p)){(l=R.font)==null||l.add(p),r=r.replace(d[0],`url(${R.resource.get(p)})`);continue}if(!((n=R.font)!=null&&n.has(p)))try{let g=await De(p,{as:"dataURL",useProxy:a,silent:!0});if(g.ok&&typeof g.data=="string"){let y=g.data;(c=R.resource)==null||c.set(p,y),(s=R.font)==null||s.add(p),r=r.replace(d[0],`url(${y})`)}}catch{console.warn("[snapDOM] Failed to fetch font resource:",p)}}}return r}function ku(t){if(!t.length)return null;let e=(n,c)=>t.some(([s,d])=>!(d<n||s>c)),a=e(0,255)||e(305,305),r=e(256,591)||e(7680,7935),i=e(880,1023),l=e(1024,1279);return e(7840,7929)||e(258,259)||e(416,417)||e(431,432)?"vietnamese":l?"cyrillic":i?"greek":r?"latin-ext":a?"latin":null}function _a(t={}){let e=new Set((t.families||[]).map(i=>String(i).toLowerCase())),a=new Set((t.domains||[]).map(i=>String(i).toLowerCase())),r=new Set((t.subsets||[]).map(i=>String(i).toLowerCase()));return(i,l)=>{if(e.size&&e.has(i.family.toLowerCase()))return!0;if(a.size)for(let n of i.srcUrls)try{if(a.has(new URL(n).host.toLowerCase()))return!0}catch{}if(r.size){let n=ku(l);if(n&&r.has(n))return!0}return!1}}function _u(t){var l,n,c,s,d,m;if(!t)return t;let e=/@font-face[^{}]*\{[^}]*\}/gi,a=new Set,r=[];for(let p of t.match(e)||[]){let g=((l=p.match(/font-family:\s*([^;]+);/i))==null?void 0:l[1])||"",y=Ro(g),u=(((n=p.match(/font-weight:\s*([^;]+);/i))==null?void 0:n[1])||"400").trim(),h=(((c=p.match(/font-style:\s*([^;]+);/i))==null?void 0:c[1])||"normal").trim(),f=(((s=p.match(/font-stretch:\s*([^;]+);/i))==null?void 0:s[1])||"100%").trim(),k=(((d=p.match(/unicode-range:\s*([^;]+);/i))==null?void 0:d[1])||"").trim(),w=(((m=p.match(/src\s*:\s*([^;}]+)[;}]/i))==null?void 0:m[1])||"").trim(),b=Ko(w,location.href),x=b.length?b.map(L=>String(L).toLowerCase()).sort().join("|"):w.toLowerCase(),C=[String(y||"").toLowerCase(),u,h,f,k.toLowerCase(),x].join("|");a.has(C)||(a.add(C),r.push(p))}if(r.length===0)return t;let i=0;return t.replace(e,()=>r[i++]||"")}function Lu(t,e,a,r){let i=Array.from(t||[]).sort().join("|"),l=e?JSON.stringify({families:(e.families||[]).map(c=>String(c).toLowerCase()).sort(),domains:(e.domains||[]).map(c=>String(c).toLowerCase()).sort(),subsets:(e.subsets||[]).map(c=>String(c).toLowerCase()).sort()}):"",n=(a||[]).map(c=>`${(c.family||"").toLowerCase()}::${c.weight||"normal"}::${c.style||"normal"}::${c.src||""}`).sort().join("|");return`fonts-embed-css::req=${i}::ex=${l}::lf=${n}::px=${r||""}`}async function La(t,e,a,r){let i;try{i=t.cssRules||[]}catch{return}let l=(n,c)=>{try{return new URL(n,c||location.href).href}catch{return n}};for(let n of i){if(n.type===CSSRule.IMPORT_RULE&&n.styleSheet){let c=n.href?l(n.href,e):e;if(r.depth>=Ao){console.warn(`[snapDOM] CSSOM import depth exceeded (${Ao}) at ${c}`);continue}if(c&&r.visitedSheets.has(c)){console.warn(`[snapDOM] Skipping circular CSSOM import: ${c}`);continue}c&&r.visitedSheets.add(c);let s={...r,depth:(r.depth||0)+1};await La(n.styleSheet,c,a,s);continue}if(n.type===CSSRule.FONT_FACE_RULE){let c=(n.style.getPropertyValue("font-family")||"").trim(),s=Ro(c);if(!s||Re(s))continue;let d=(n.style.getPropertyValue("font-weight")||"400").trim(),m=(n.style.getPropertyValue("font-style")||"normal").trim(),p=(n.style.getPropertyValue("font-stretch")||"100%").trim(),g=(n.style.getPropertyValue("src")||"").trim(),y=(n.style.getPropertyValue("unicode-range")||"").trim();if(!r.faceMatchesRequired(s,m,d,p))continue;let u=wa(y);if(!xa(r.usedCodepoints,u))continue;let h={family:s,weightSpec:d,styleSpec:m,stretchSpec:p,unicodeRange:y,srcRaw:g,srcUrls:Ko(g,e||location.href),href:e||location.href};if(r.simpleExcluder&&r.simpleExcluder(h,u))continue;if(/url\(/i.test(g)){let f=await ka(g,e||location.href,r.useProxy);await a(`@font-face{font-family:${s};src:${f};font-style:${m};font-weight:${d};font-stretch:${p};${y?`unicode-range:${y};`:""}}`)}else await a(`@font-face{font-family:${s};src:${g};font-style:${m};font-weight:${d};font-stretch:${p};${y?`unicode-range:${y};`:""}}`)}}}async function zu({required:t,usedCodepoints:e,exclude:a=void 0,localFonts:r=[],useProxy:i=""}={}){var h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae;t instanceof Set||(t=new Set),e instanceof Set||(e=new Set);let l=new Map;for(let V of t){let[G,W,U,A]=String(V).split("__");if(!G)continue;let B=l.get(G)||[];B.push({w:parseInt(W,10),s:U,st:parseInt(A,10)}),l.set(G,B)}function n(V,G,W,U){if(!l.has(V))return!1;let A=l.get(V),B=gu(W),j=uu(G),N=fu(U),q=B.min!==B.max,re=B.min,he=ee=>j.kind==="normal"&&ee==="normal"||j.kind!=="normal"&&(ee==="italic"||ee==="oblique"),ge=!1;for(let ee of A){let se=q?ee.w>=B.min&&ee.w<=B.max:ee.w===re,pe=he(Io(ee.s)),xe=ee.st>=N.min&&ee.st<=N.max;if(se&&pe&&xe){ge=!0;break}}if(ge)return!0;if(!q)for(let ee of A){let se=he(Io(ee.s)),pe=ee.st>=N.min&&ee.st<=N.max;if(Math.abs(re-ee.w)<=300&&se&&pe)return!0}if(!q&&j.kind==="normal"&&A.some(ee=>Io(ee.s)!=="normal"))for(let ee of A){let se=Math.abs(re-ee.w)<=300,pe=ee.st>=N.min&&ee.st<=N.max;if(se&&pe)return!0}return!1}let c=_a(a),s=Lu(t,a,r,i);if((h=R.resource)!=null&&h.has(s))return R.resource.get(s);let d=bu(t),m=[],p=Jo;for(let V of document.querySelectorAll("style")){let G=V.textContent||"";for(let W of G.matchAll(p)){let U=(W[2]||W[4]||"").trim();!U||Re(U)||document.querySelector(`link[rel="stylesheet"][href="${U}"]`)||m.push(U)}}m.length&&await Promise.all(m.map(V=>new Promise(G=>{if(document.querySelector(`link[rel="stylesheet"][href="${V}"]`))return G(null);let W=document.createElement("link");W.rel="stylesheet",W.href=V,W.setAttribute("data-snapdom","injected-import"),W.onload=()=>G(W),W.onerror=()=>G(null),document.head.appendChild(W)})));let g="",y=Array.from(document.querySelectorAll('link[rel="stylesheet"]')).filter(V=>!!V.href);for(let V of y)try{if(Re(V.href))continue;let G="",W=!1;try{W=new URL(V.href,location.href).origin===location.origin}catch{}if(!W&&!yu(V.href,d))continue;if(W){let A=Array.from(document.styleSheets).find(B=>B.href===V.href);if(A)try{let B=A.cssRules||[];G=Array.from(B).map(j=>j.cssText).join("")}catch{}}if(!G&&(G=(await De(V.href,{as:"text",useProxy:i})).data,Re(V.href)))continue;G=await wu(G,V.href,i);let U="";for(let A of G.match(xu)||[]){let B=(((f=A.match(/font-family:\s*([^;]+);/i))==null?void 0:f[1])||"").trim(),j=Ro(B);if(!j||Re(j))continue;let N=(((k=A.match(/font-weight:\s*([^;]+);/i))==null?void 0:k[1])||"400").trim(),q=(((w=A.match(/font-style:\s*([^;]+);/i))==null?void 0:w[1])||"normal").trim(),re=(((b=A.match(/font-stretch:\s*([^;]+);/i))==null?void 0:b[1])||"100%").trim(),he=(((x=A.match(/unicode-range:\s*([^;]+);/i))==null?void 0:x[1])||"").trim(),ge=(((C=A.match(/src\s*:\s*([^;}]+)[;}]/i))==null?void 0:C[1])||"").trim(),ee=Ko(ge,V.href);if(!n(j,q,N,re))continue;let se=wa(he);if(!xa(e,se))continue;let pe={family:j,weightSpec:N,styleSpec:q,stretchSpec:re,unicodeRange:he,srcRaw:ge,srcUrls:ee,href:V.href};if(a&&c(pe,se))continue;let xe=/url\(/i.test(ge)?await ka(A,V.href,i):A;U+=xe}U.trim()&&(g+=U)}catch{console.warn("[snapDOM] Failed to process stylesheet:",V.href)}let u={requiredIndex:l,usedCodepoints:e,faceMatchesRequired:n,simpleExcluder:a?_a(a):null,useProxy:i,visitedSheets:new Set,depth:0};for(let V of document.styleSheets)if(!(V.href&&y.some(G=>G.href===V.href)))try{let G=V.href||location.href;G&&u.visitedSheets.add(G),await La(V,G,async W=>{g+=W},u)}catch{}try{for(let V of document.fonts||[]){if(!V||!V.family||V.status!=="loaded"||!V._snapdomSrc)continue;let G=String(V.family).replace(/^['"]+|['"]+$/g,"");if(Re(G)||!l.has(G)||a!=null&&a.families&&a.families.some(U=>String(U).toLowerCase()===G.toLowerCase()))continue;let W=V._snapdomSrc;if(!String(W).startsWith("data:")){if((L=R.resource)!=null&&L.has(V._snapdomSrc))W=R.resource.get(V._snapdomSrc),(z=R.font)==null||z.add(V._snapdomSrc);else if(!((v=R.font)!=null&&v.has(V._snapdomSrc)))try{let U=await De(V._snapdomSrc,{as:"dataURL",useProxy:i,silent:!0});if(U.ok&&typeof U.data=="string")W=U.data,(M=R.resource)==null||M.set(V._snapdomSrc,W),(T=R.font)==null||T.add(V._snapdomSrc);else continue}catch{console.warn("[snapDOM] Failed to fetch dynamic font src:",V._snapdomSrc);continue}}g+=`@font-face{font-family:'${G}';src:url(${W});font-style:${V.style||"normal"};font-weight:${V.weight||"normal"};}`}}catch{}for(let V of r){if(!V||typeof V!="object")continue;let G=String(V.family||"").replace(/^['"]+|['"]+$/g,"");if(!G||Re(G)||!l.has(G)||a!=null&&a.families&&a.families.some(N=>String(N).toLowerCase()===G.toLowerCase()))continue;let W=V.weight!=null?String(V.weight):"normal",U=V.style!=null?String(V.style):"normal",A=V.stretchPct!=null?`${V.stretchPct}%`:"100%",B=String(V.src||""),j=B;if(!j.startsWith("data:")){if((E=R.resource)!=null&&E.has(B))j=R.resource.get(B),(I=R.font)==null||I.add(B);else if(!((Z=R.font)!=null&&Z.has(B)))try{let N=await De(B,{as:"dataURL",useProxy:i,silent:!0});if(N.ok&&typeof N.data=="string")j=N.data,(Y=R.resource)==null||Y.set(B,j),($=R.font)==null||$.add(B);else continue}catch{console.warn("[snapDOM] Failed to fetch localFonts src:",B);continue}}g+=`@font-face{font-family:'${G}';src:url(${j});font-style:${U};font-weight:${W};font-stretch:${A};}`}return g&&(g=_u(g),(ae=R.resource)==null||ae.set(s,g)),g}function Cu(t){let e=new Set;if(!t)return e;let a=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,null),r=n=>{let c=Ro(n.fontFamily);if(!c)return;let s=(d,m,p)=>`${c}__${Bo(d)}__${Io(m)}__${pu(p)}`;e.add(s(n.fontWeight,n.fontStyle,n.fontStretch))};r(getComputedStyle(t));let i=getComputedStyle(t,"::before");i&&i.content&&i.content!=="none"&&r(i);let l=getComputedStyle(t,"::after");for(l&&l.content&&l.content!=="none"&&r(l);a.nextNode();){let n=a.currentNode,c=getComputedStyle(n);r(c);let s=getComputedStyle(n,"::before");s&&s.content&&s.content!=="none"&&r(s);let d=getComputedStyle(n,"::after");d&&d.content&&d.content!=="none"&&r(d)}return e}function vu(t){var i;let e=new Set,a=l=>{if(l)for(let n of l)e.add(n.codePointAt(0))},r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null);for(;r.nextNode();){let l=r.currentNode;if(l.nodeType===Node.TEXT_NODE)a(l.nodeValue||"");else if(l.nodeType===Node.ELEMENT_NODE){let n=l;for(let c of["::before","::after"]){let s=(i=getComputedStyle(n,c))==null?void 0:i.getPropertyValue("content");if(!(!s||s==="none"))if(/^"/.test(s)||/^'/.test(s))a(s.slice(1,-1));else{let d=s.match(/\\[0-9A-Fa-f]{1,6}/g);if(d)for(let m of d)try{e.add(parseInt(m.slice(1),16))}catch{}}}}}return e}async function Su(t,e=2){try{await document.fonts.ready}catch{}let a=Array.from(t||[]).filter(Boolean);if(a.length===0)return;let r=()=>{let i=document.createElement("div");i.style.cssText="position:absolute!important;left:-9999px!important;top:0!important;opacity:0!important;pointer-events:none!important;contain:layout size style;";for(let l of a){let n=document.createElement("span");n.textContent="AaBbGg1234ÁÉÍÓÚçñ—∞",n.style.fontFamily=`"${l}"`,n.style.fontWeight="700",n.style.fontStyle="italic",n.style.fontSize="32px",n.style.lineHeight="1",n.style.whiteSpace="nowrap",n.style.margin="0",n.style.padding="0",i.appendChild(n)}document.body.appendChild(i),i.offsetWidth,document.body.removeChild(i)};for(let i=0;i<Math.max(1,e);i++)r(),await new Promise(l=>requestAnimationFrame(()=>requestAnimationFrame(l)))}async function Nu(t,e,a,r={}){let i=[[t,e]],l=["background-image","mask","mask-image","-webkit-mask","-webkit-mask-image","mask-source","mask-box-image-source","mask-border-source","-webkit-mask-box-image-source","border-image","border-image-source"],n=["mask-position","mask-size","mask-repeat","-webkit-mask-position","-webkit-mask-size","-webkit-mask-repeat","mask-origin","mask-clip","-webkit-mask-origin","-webkit-mask-clip","-webkit-mask-position-x","-webkit-mask-position-y"],c=["background-position","background-position-x","background-position-y","background-size","background-repeat","background-origin","background-clip","background-attachment","background-blend-mode"],s=["border-image-slice","border-image-width","border-image-outset","border-image-repeat"];for(;i.length;){let[d,m]=i.shift(),p=a.get(d)||pa(d);a.has(d)||a.set(d,p);let g=(()=>{let h=p.getPropertyValue("border-image"),f=p.getPropertyValue("border-image-source");return h&&h!=="none"||f&&f!=="none"})();for(let h of c){let f=p.getPropertyValue(h);f&&m.style.setProperty(h,f)}for(let h of l){let f=p.getPropertyValue(h);if(!f||f==="none")continue;let k=ua(f),w=await Promise.all(k.map(b=>da(b,r)));w.some(b=>b&&b!=="none"&&!/^url\(undefined/.test(b))&&m.style.setProperty(h,w.join(", "))}for(let h of n){let f=p.getPropertyValue(h);!f||f==="initial"||m.style.setProperty(h,f)}if(g)for(let h of s){let f=p.getPropertyValue(h);!f||f==="initial"||m.style.setProperty(h,f)}let y=Array.from(d.children),u=Array.from(m.children).filter(h=>!(h.dataset&&h.dataset.snapdomPseudo));for(let h=0;h<Math.min(y.length,u.length);h++)i.push([y[h],u[h]])}}function Xe(t,{fast:e=!1}={}){if(e)return t();"requestIdleCallback"in window?requestIdleCallback(t,{timeout:50}):setTimeout(t,1)}function Fe(){if(typeof navigator>"u")return!1;let t=navigator.userAgent||"",e=t.toLowerCase(),a=e.includes("safari")&&!e.includes("chrome")&&!e.includes("crios")&&!e.includes("fxios")&&!e.includes("android"),r=/applewebkit/i.test(t),i=/mobile/i.test(t),l=!/safari/i.test(t),n=r&&i&&l,c=/(micromessenger|wxwork|wecom|windowswechat|macwechat)/i.test(t),s=/(baiduboxapp|baidubrowser|baidusearch|baiduboxlite)/i.test(e),d=/ipad|iphone|ipod/.test(e)&&r;return a||n||c||s||d}var Qe=[];function za(t){if(!t)return null;if(Array.isArray(t)){let[e,a]=t;return typeof e=="function"?e(a):e}if(typeof t=="object"&&"plugin"in t){let{plugin:e,options:a}=t;return typeof e=="function"?e(a):e}return typeof t=="function"?t():t}function Vu(...t){let e=t.flat();for(let a of e){let r=za(a);r&&(Qe.some(i=>i&&i.name&&r.name&&i.name===r.name)||Qe.push(r))}}function Ca(t){return(t&&Array.isArray(t.plugins)?t.plugins:Qe)||Qe}async function Be(t,e,a){let r=a,i=Ca(e);for(let l of i){let n=l&&typeof l[t]=="function"?l[t]:null;if(!n)continue;let c=await n(e,r);typeof c<"u"&&(r=c)}return r}async function Pu(t,e,a){let r=[],i=Ca(e);for(let l of i){let n=l&&typeof l[t]=="function"?l[t]:null;if(!n)continue;let c=await n(e,a);typeof c<"u"&&r.push(c)}return r}function Mu(t){let e=[];if(Array.isArray(t))for(let a of t){let r=za(a);if(!r||!r.name)continue;let i=e.findIndex(l=>l&&l.name===r.name);i>=0&&e.splice(i,1),e.push(r)}for(let a of Qe)a&&a.name&&!e.some(r=>r.name===a.name)&&e.push(a);return Object.freeze(e)}function Tu(t,e,a=!1){return!t||t.plugins&&!a||(t.plugins=Mu(e)),t}var va=new WeakMap,qo=new Map,Qo=0;function et(){Qo++}var Sa=!1;function Eu(t=document.documentElement){var e,a;if(!Sa){Sa=!0;try{new MutationObserver(()=>et()).observe(t,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{new MutationObserver(()=>et()).observe(document.head,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{let r=document.fonts;r&&((e=r.addEventListener)==null||e.call(r,"loadingdone",et),(a=r.ready)==null||a.then(()=>et()).catch(()=>{}))}catch{}}}function Du(t,e={}){let a={},r=t.getPropertyValue("visibility");for(let l=0;l<t.length;l++){let n=t[l],c=t.getPropertyValue(n);(n==="background-image"||n==="content")&&c.includes("url(")&&!c.includes("data:")&&(c="none"),a[n]=c}let i=["text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","text-decoration-skip-ink"];for(let l of i)if(!a[l])try{let n=t.getPropertyValue(l);n&&(a[l]=n)}catch{}if(e.embedFonts){let l=["font-feature-settings","font-variation-settings","font-kerning","font-variant","font-variant-ligatures","font-optical-sizing"];for(let n of l)if(!a[n])try{let c=t.getPropertyValue(n);c&&(a[n]=c)}catch{}}return r==="hidden"&&(a.opacity="0"),a}var Na=new WeakMap;function Ru(t){let e=Na.get(t);return e||(e=Object.entries(t).sort((a,r)=>a[0]<r[0]?-1:a[0]>r[0]?1:0).map(([a,r])=>`${a}:${r}`).join(";"),Na.set(t,e),e)}function Bu(t,e=null,a={}){let r=va.get(t);if(r&&r.epoch===Qo)return r.snapshot;let i=e||getComputedStyle(t),l=Du(i,a);return Ou(t,i,l),va.set(t,{epoch:Qo,snapshot:l}),l}function Iu(t,e){return t&&t.session&&t.persist?t:t&&(t.styleMap||t.styleCache||t.nodeMap)?{session:t,persist:{snapshotKeyCache:qo,defaultStyle:R.defaultStyle,baseStyle:R.baseStyle,image:R.image,resource:R.resource,background:R.background,font:R.font},options:e||{}}:{session:R.session,persist:{snapshotKeyCache:qo,defaultStyle:R.defaultStyle,baseStyle:R.baseStyle,image:R.image,resource:R.resource,background:R.background,font:R.font},options:t||e||{}}}async function Ye(t,e,a,r){var g,y,u;if(t.tagName==="STYLE")return;let i=Iu(a,r),l=i.options&&i.options.cache||"auto";if(l!=="disabled"&&Eu(document.documentElement),l==="disabled"&&!i.session.__bumpedForDisabled&&(et(),qo.clear(),i.session.__bumpedForDisabled=!0),Yo.has((g=t.tagName)==null?void 0:g.toLowerCase())){let h=(y=t.getAttribute)==null?void 0:y.call(t,"style");h&&e.setAttribute("style",h)}let{session:n,persist:c}=i;n.styleCache.has(t)||n.styleCache.set(t,getComputedStyle(t));let s=n.styleCache.get(t),d=Bu(t,s,i.options),m=Ru(d),p=c.snapshotKeyCache.get(m);if(!p){let h=((u=t.tagName)==null?void 0:u.toLowerCase())||"div";p=Uo(d,h),c.snapshotKeyCache.set(m,p)}n.styleMap.set(e,p)}function Au(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof HTMLIFrameElement||t instanceof SVGElement||t instanceof HTMLObjectElement||t instanceof HTMLEmbedElement}function Fu(t){return t.backgroundImage&&t.backgroundImage!=="none"||t.backgroundColor&&t.backgroundColor!=="rgba(0, 0, 0, 0)"&&t.backgroundColor!=="transparent"||(parseFloat(t.borderTopWidth)||0)>0||(parseFloat(t.borderBottomWidth)||0)>0||(parseFloat(t.paddingTop)||0)>0||(parseFloat(t.paddingBottom)||0)>0?!0:(t.overflowBlock||t.overflowY||"visible")!=="visible"}function Gu(t){let e=t.parentElement;if(!e)return!1;let a=getComputedStyle(e).display||"";return a.includes("flex")||a.includes("grid")}function Wu(t,e){if(t.textContent&&/\S/.test(t.textContent))return!0;let a=t.firstElementChild,r=t.lastElementChild;if(a&&a.tagName==="BR"||r&&r.tagName==="BR")return!0;let i=t.scrollHeight;if(i===0)return!1;let l=parseFloat(e.paddingTop)||0,n=parseFloat(e.paddingBottom)||0;return i>l+n}function Ou(t,e,a){if(t instanceof HTMLElement&&t.style&&t.style.height)return;let r=t.tagName&&t.tagName.toLowerCase();if(!r||r!=="div"&&r!=="section"&&r!=="article"&&r!=="main"&&r!=="aside"&&r!=="header"&&r!=="footer"&&r!=="nav"&&r!=="ol"&&r!=="ul"&&r!=="li")return;let i=e.display||"";if(i.includes("flex")||i.includes("grid")||Au(t))return;let l=e.position;if(l==="absolute"||l==="fixed"||l==="sticky"||e.transform!=="none"||Fu(e)||Gu(t))return;let n=e.overflowX||e.overflow||"visible",c=e.overflowY||e.overflow||"visible";if(n!=="visible"||c!=="visible")return;let s=e.clip;s&&s!=="auto"&&s!=="rect(auto, auto, auto, auto)"||e.visibility==="hidden"||e.opacity==="0"||Wu(t,e)&&(delete a.height,delete a["block-size"])}var Va=["fill","stroke","color","background-color","stop-color"],Pa=new Map;function Zu(t,e){let a=e+"::"+t.toLowerCase(),r=Pa.get(a);if(r)return r;let i=document,l=e==="http://www.w3.org/2000/svg"?i.createElementNS(e,t):i.createElement(t),n=i.createElement("div");n.style.cssText="position:absolute;left:-99999px;top:-99999px;contain:strict;display:block;",n.appendChild(l),i.documentElement.appendChild(n);let c=getComputedStyle(l),s={};for(let d of Va)s[d]=c.getPropertyValue(d)||"";return n.remove(),Pa.set(a,s),s}function ju(t,e){var l,n,c;if(!(t instanceof Element)||!(e instanceof Element))return;let a=(l=t.getAttribute)==null?void 0:l.call(t,"style"),r=!!(a&&a.includes("var("));if(!r&&((n=t.attributes)!=null&&n.length)){let s=t.attributes;for(let d=0;d<s.length;d++){let m=s[d];if(m&&typeof m.value=="string"&&m.value.includes("var(")){r=!0;break}}}let i=null;if(r)try{i=getComputedStyle(t)}catch{}if(r){let s=t.style;if(s&&s.length)for(let d=0;d<s.length;d++){let m=s[d],p=s.getPropertyValue(m);if(!p||!p.includes("var("))continue;let g=i&&i.getPropertyValue(m);if(g)try{e.style.setProperty(m,g.trim(),s.getPropertyPriority(m))}catch{}}}if(r&&((c=t.attributes)!=null&&c.length)){let s=t.attributes;for(let d=0;d<s.length;d++){let m=s[d];if(!m||typeof m.value!="string"||!m.value.includes("var("))continue;let p=m.name,g=i&&i.getPropertyValue(p);if(g)try{e.style.setProperty(p,g.trim())}catch{}}}if(!r){if(!i)try{i=getComputedStyle(t)}catch{i=null}if(!i)return;let s=t.namespaceURI||"html",d=Zu(t.tagName,s);for(let m of Va){let p=i.getPropertyValue(m)||"",g=d[m]||"";if(p&&p!==g)try{e.style.setProperty(m,p.trim())}catch{}}}}function ea(t,e,a){return Promise.all(t.map(r=>new Promise(i=>{function l(){Xe(n=>{!(n&&typeof n.timeRemaining=="function")||n.timeRemaining()>0?e(r,i):l()},{fast:a})}l()})))}function Hu(t){return t=t.trim(),!t||/:not\(\s*\[data-sd-slotted\]\s*\)\s*$/.test(t)?t:`${t}:not([data-sd-slotted])`}function Xu(t,e,a=!0){return t.split(",").map(r=>r.trim()).filter(Boolean).map(r=>{if(r.startsWith(":where(")||r.startsWith("@"))return r;let i=a?Hu(r):r;return`:where(${e} ${i})`}).join(", ")}function Yu(t,e){return t?(t=t.replace(/:host\(([^)]+)\)/g,(a,r)=>`:where(${e}:is(${r.trim()}))`),t=t.replace(/:host\b/g,`:where(${e})`),t=t.replace(/:host-context\(([^)]+)\)/g,(a,r)=>`:where(:where(${r.trim()}) ${e})`),t=t.replace(/::slotted\(([^)]+)\)/g,(a,r)=>`:where(${e} ${r.trim()})`),t=t.replace(/(^|})(\s*)([^@}{]+){/g,(a,r,i,l)=>{let n=Xu(l,e,!0);return`${r}${i}${n}{`}),t):""}function Uu(t){return t.shadowScopeSeq=(t.shadowScopeSeq||0)+1,`s${t.shadowScopeSeq}`}function $u(t){let e="";try{t.querySelectorAll("style").forEach(r=>{e+=(r.textContent||"")+`
230
230
  `});let a=t.adoptedStyleSheets||[];for(let r of a)try{if(r&&r.cssRules)for(let i of r.cssRules)e+=i.cssText+`
231
231
  `}catch{}}catch{}return e}function Ju(t,e,a){if(!e)return;let r=document.createElement("style");r.setAttribute("data-sd",a),r.textContent=e,t.insertBefore(r,t.firstChild||null)}function Ku(t,e){try{let a=t.currentSrc||t.src||"";if(!a)return;e.setAttribute("src",a),e.removeAttribute("srcset"),e.removeAttribute("sizes"),e.loading="eager",e.decoding="sync"}catch{}}function qu(t){let e=new Set;if(!t)return e;let a=/var\(\s*(--[A-Za-z0-9_-]+)\b/g,r;for(;r=a.exec(t);)e.add(r[1]);return e}function Qu(t,e){try{let a=getComputedStyle(t).getPropertyValue(e).trim();if(a)return a}catch{}try{let a=getComputedStyle(document.documentElement).getPropertyValue(e).trim();if(a)return a}catch{}return""}function e0(t,e,a){let r=[];for(let i of e){let l=Qu(t,i);l&&r.push(`${i}: ${l};`)}return r.length?`${a}{${r.join("")}}
232
- `:""}function t0(t){t&&(t.nodeType===Node.ELEMENT_NODE&&t.setAttribute("data-sd-slotted",""),t.querySelectorAll&&t.querySelectorAll("*").forEach(e=>e.setAttribute("data-sd-slotted","")))}async function o0(t,e=3){let a=()=>{var l;try{return t.contentDocument||((l=t.contentWindow)==null?void 0:l.document)||null}catch{return null}},r=a(),i=0;for(;i<e&&(!r||!r.body&&!r.documentElement);)await new Promise(l=>setTimeout(l,0)),r=a(),i++;return r&&(r.body||r.documentElement)?r:null}function a0(t){let e=t.getBoundingClientRect(),a=0,r=0,i=0,l=0;try{let s=getComputedStyle(t);a=parseFloat(s.borderLeftWidth)||0,r=parseFloat(s.borderRightWidth)||0,i=parseFloat(s.borderTopWidth)||0,l=parseFloat(s.borderBottomWidth)||0}catch{}let n=Math.max(0,Math.round(e.width-(a+r))),c=Math.max(0,Math.round(e.height-(i+l)));return{contentWidth:n,contentHeight:c,rect:e}}function i0(t,e,a){let r=t.createElement("style");return r.setAttribute("data-sd-iframe-pin",""),r.textContent=`html, body {margin: 0 !important;padding: 0 !important;width: ${e}px !important;height: ${a}px !important;min-width: ${e}px !important;min-height: ${a}px !important;box-sizing: border-box !important;overflow: hidden !important;background-clip: border-box !important;}`,(t.head||t.documentElement).appendChild(r),()=>{try{r.remove()}catch{}}}async function r0(t,e,a){let r=await o0(t,3);if(!r)throw new Error("iframe document not accessible/ready");let{contentWidth:i,contentHeight:l,rect:n}=a0(t),c=a==null?void 0:a.snap;if(!c||typeof c.toPng!="function")throw new Error("snapdom.toPng not available in iframe or window");let s={...a,scale:1},d=i0(r,i,l),m;try{m=await c.toPng(r.documentElement,s)}finally{d()}m.style.display="block",m.style.width=`${i}px`,m.style.height=`${l}px`;let p=document.createElement("div");return e.nodeMap.set(p,t),Ye(t,p,e,a),p.style.overflow="hidden",p.style.display="block",p.style.width||(p.style.width=`${Math.round(n.width)}px`),p.style.height||(p.style.height=`${Math.round(n.height)}px`),p.appendChild(m),p}var tt=new Map;async function ot(t){var a;if((a=R.resource)!=null&&a.has(t))return R.resource.get(t);if(tt.has(t))return tt.get(t);let e=(async()=>{var i;let r=await De(t,{as:"dataURL",silent:!0});if(!r.ok||typeof r.data!="string")throw new Error(`[snapDOM] Failed to read blob URL: ${t}`);return(i=R.resource)==null||i.set(t,r.data),r.data})();tt.set(t,e);try{let r=await e;return tt.set(t,r),r}catch(r){throw tt.delete(t),r}}var l0=/\bblob:[^)"'\s]+/g;async function Ma(t){if(!t||t.indexOf("blob:")===-1)return t;let e=Array.from(new Set(t.match(l0)||[]));if(e.length===0)return t;let a=t;for(let r of e)try{let i=await ot(r);a=a.split(r).join(i)}catch{}return a}function Fo(t){return typeof t=="string"&&t.startsWith("blob:")}function n0(t){return(t||"").split(",").map(e=>e.trim()).filter(Boolean).map(e=>{let a=e.match(/^(\S+)(\s+.+)?$/);return a?{url:a[1],desc:a[2]||""}:null}).filter(Boolean)}function s0(t){return t.map(e=>e.desc?`${e.url} ${e.desc.trim()}`:e.url).join(", ")}async function c0(t){var n,c;if(!t)return;let e=t.querySelectorAll?t.querySelectorAll("img"):[];for(let s of e)try{let d=s.getAttribute("src")||s.currentSrc||"";if(Fo(d)){let p=await ot(d);s.setAttribute("src",p)}let m=s.getAttribute("srcset");if(m&&m.includes("blob:")){let p=n0(m),g=!1;for(let y of p)if(Fo(y.url))try{y.url=await ot(y.url),g=!0}catch{}g&&s.setAttribute("srcset",s0(p))}}catch{}let a=t.querySelectorAll?t.querySelectorAll("image"):[];for(let s of a)try{let d="http://www.w3.org/1999/xlink",m=s.getAttribute("href")||((n=s.getAttributeNS)==null?void 0:n.call(s,d,"href"));if(Fo(m)){let p=await ot(m);s.setAttribute("href",p),(c=s.removeAttributeNS)==null||c.call(s,d,"href")}}catch{}let r=t.querySelectorAll?t.querySelectorAll("[style*='blob:']"):[];for(let s of r)try{let d=s.getAttribute("style");if(d&&d.includes("blob:")){let m=await Ma(d);s.setAttribute("style",m)}}catch{}let i=t.querySelectorAll?t.querySelectorAll("style"):[];for(let s of i)try{let d=s.textContent||"";d.includes("blob:")&&(s.textContent=await Ma(d))}catch{}let l=["poster"];for(let s of l){let d=t.querySelectorAll?t.querySelectorAll(`[${s}^='blob:']`):[];for(let m of d)try{let p=m.getAttribute(s);Fo(p)&&m.setAttribute(s,await ot(p))}catch{}}}async function Go(t,e,a){var d,m,p,g,y,u;if(!t)throw new Error("Invalid node");let r=new Set,i=null,l=null;if(t.nodeType===Node.ELEMENT_NODE){let h=(t.localName||t.tagName||"").toLowerCase();if(t.id==="snapdom-sandbox"||t.hasAttribute("data-snapdom-sandbox")||Ug.has(h))return null}if(t.nodeType===Node.TEXT_NODE||t.nodeType!==Node.ELEMENT_NODE)return t.cloneNode(!0);if(t.getAttribute("data-capture")==="exclude"){if(a.excludeMode==="hide"){let h=document.createElement("div"),f=t.getBoundingClientRect();return h.style.cssText=`display:inline-block;width:${f.width}px;height:${f.height}px;visibility:hidden;`,h}else if(a.excludeMode==="remove")return null}if(a.exclude&&Array.isArray(a.exclude))for(let h of a.exclude)try{if((d=t.matches)!=null&&d.call(t,h)){if(a.excludeMode==="hide"){let f=document.createElement("div"),k=t.getBoundingClientRect();return f.style.cssText=`display:inline-block;width:${k.width}px;height:${k.height}px;visibility:hidden;`,f}else if(a.excludeMode==="remove")return null}}catch(f){console.warn(`Invalid selector in exclude option: ${h}`,f)}if(typeof a.filter=="function")try{if(!a.filter(t)){if(a.filterMode==="hide"){let h=document.createElement("div"),f=t.getBoundingClientRect();return h.style.cssText=`display:inline-block;width:${f.width}px;height:${f.height}px;visibility:hidden;`,h}else if(a.filterMode==="remove")return null}}catch(h){console.warn("Error in filter function:",h)}if(t.tagName==="IFRAME"){let h=!1;try{h=!!(t.contentDocument||(m=t.contentWindow)!=null&&m.document)}catch{h=!1}if(h)try{return await r0(t,e,a)}catch(f){console.warn("[SnapDOM] iframe rasterization failed, fallback:",f)}if(a.placeholders){let f=document.createElement("div");return f.style.cssText=`width:${t.offsetWidth}px;height:${t.offsetHeight}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,Ye(t,f,e,a),f}else{let f=t.getBoundingClientRect(),k=document.createElement("div");return k.style.cssText=`display:inline-block;width:${f.width}px;height:${f.height}px;visibility:hidden;`,Ye(t,k,e,a),k}}if(t.getAttribute("data-capture")==="placeholder"){let h=t.cloneNode(!1);e.nodeMap.set(h,t),Ye(t,h,e,a);let f=document.createElement("div");return f.textContent=t.getAttribute("data-placeholder-text")||"",f.style.cssText="color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;",h.appendChild(f),h}if(t.tagName==="CANVAS"){let h="";try{let k=t.getContext("2d",{willReadFrequently:!0});try{k&&k.getImageData(0,0,1,1)}catch{}if(await new Promise(w=>requestAnimationFrame(w)),h=t.toDataURL("image/png"),!h||h==="data:,"){try{k&&k.getImageData(0,0,1,1)}catch{}if(await new Promise(w=>requestAnimationFrame(w)),h=t.toDataURL("image/png"),!h||h==="data:,"){let w=document.createElement("canvas");w.width=t.width,w.height=t.height;let b=w.getContext("2d");b&&(b.drawImage(t,0,0),h=w.toDataURL("image/png"))}}}catch{}let f=document.createElement("img");try{f.decoding="sync",f.loading="eager"}catch{}h&&(f.src=h),f.width=t.width,f.height=t.height;try{let k=getComputedStyle(t);k.width&&(f.style.width=k.width),k.height&&(f.style.height=k.height)}catch{}return e.nodeMap.set(f,t),Ye(t,f,e,a),f}let n;try{if(n=t.cloneNode(!1),ju(t,n),e.nodeMap.set(n,t),t.tagName==="IMG"){Ku(t,n);try{let h=t.getBoundingClientRect(),f=Math.round(h.width||0),k=Math.round(h.height||0);if(!f||!k){let w=window.getComputedStyle(t),b=parseFloat(w.width)||0,x=parseFloat(w.height)||0,C=parseInt(t.getAttribute("width")||"",10)||0,L=parseInt(t.getAttribute("height")||"",10)||0,z=t.width||t.naturalWidth||0,v=t.height||t.naturalHeight||0;f=Math.round(f||b||C||z||0),k=Math.round(k||x||L||v||0)}f&&(n.dataset.snapdomWidth=String(f)),k&&(n.dataset.snapdomHeight=String(k))}catch{}try{let h=t.getAttribute("style")||"",f=window.getComputedStyle(t),k=L=>{let z=h.match(new RegExp(`${L}\\s*:\\s*([^;]+)`,"i")),v=z?z[1].trim():f.getPropertyValue(L);return/%|auto/i.test(String(v||""))},w=parseInt(n.dataset.snapdomWidth||"0",10),b=parseInt(n.dataset.snapdomHeight||"0",10),x=k("width")||!w,C=k("height")||!b;x&&w&&(n.style.width=`${w}px`),C&&b&&(n.style.height=`${b}px`),w&&(n.style.minWidth=`${w}px`),b&&(n.style.minHeight=`${b}px`)}catch{}}}catch(h){throw console.error("[Snapdom] Failed to clone node:",t,h),h}if(t instanceof HTMLTextAreaElement){let h=t.getBoundingClientRect();n.style.width=`${h.width}px`,n.style.height=`${h.height}px`}if(t instanceof HTMLInputElement&&(n.value=t.value,n.setAttribute("value",t.value),t.checked!==void 0&&(n.checked=t.checked,t.checked&&n.setAttribute("checked",""),t.indeterminate&&(n.indeterminate=t.indeterminate))),t instanceof HTMLSelectElement&&(i=t.value),t instanceof HTMLTextAreaElement&&(l=t.value),Ye(t,n,e,a),t.shadowRoot){let h=function(v,M){if(v.nodeType===Node.ELEMENT_NODE&&v.tagName==="STYLE")return M(null);Go(v,e,a).then(T=>{M(T||null)}).catch(()=>{M(null)})};try{let v=t.shadowRoot.querySelectorAll("slot");for(let M of v){let T=[];try{T=((p=M.assignedNodes)==null?void 0:p.call(M,{flatten:!0}))||((g=M.assignedNodes)==null?void 0:g.call(M))||[]}catch{T=((y=M.assignedNodes)==null?void 0:y.call(M))||[]}for(let E of T)r.add(E)}}catch{}let f=Uu(e),k=`[data-sd="${f}"]`;try{n.setAttribute("data-sd",f)}catch{}let w=$u(t.shadowRoot),b=Yu(w,k),x=qu(w),C=e0(t,x,k);Ju(n,C+b,f);let L=document.createDocumentFragment(),z=await ea(Array.from(t.shadowRoot.childNodes),h,a.fast);L.append(...z.filter(v=>!!v)),n.appendChild(L)}if(t.tagName==="SLOT"){let h=function(x,C){Go(x,e,a).then(L=>{L&&t0(L),C(L||null)}).catch(()=>{C(null)})},f=((u=t.assignedNodes)==null?void 0:u.call(t,{flatten:!0}))||[],k=f.length>0?f:Array.from(t.childNodes),w=document.createDocumentFragment(),b=await ea(Array.from(k),h,a.fast);return w.append(...b.filter(x=>!!x)),w}function c(h,f){if(r.has(h))return f(null);Go(h,e,a).then(k=>{f(k||null)}).catch(()=>{f(null)})}let s=await ea(Array.from(t.childNodes),c,a.fast);if(n.append(...s.filter(h=>!!h)),i!==null&&n instanceof HTMLSelectElement){n.value=i;for(let h of n.options)h.value===i?h.setAttribute("selected",""):h.removeAttribute("selected")}return l!==null&&n instanceof HTMLTextAreaElement&&(n.textContent=l),n}function m0(t){return/\bcounter\s*\(|\bcounters\s*\(/.test(t||"")}function d0(t){return(t||"").replace(/"([^"]*)"/g,"$1")}function Ta(t,e=!1){let a="",r=Math.max(1,t);for(;r>0;)r--,a=String.fromCharCode(97+r%26)+a,r=Math.floor(r/26);return e?a.toUpperCase():a}function Ea(t,e=!0){let a=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],r=Math.max(1,Math.min(3999,t)),i="";for(let[l,n]of a)for(;r>=l;)i+=n,r-=l;return e?i:i.toLowerCase()}function Da(t,e){switch((e||"decimal").toLowerCase()){case"decimal":return String(Math.max(0,t));case"decimal-leading-zero":return(t<10?"0":"")+String(Math.max(0,t));case"lower-alpha":return Ta(t,!1);case"upper-alpha":return Ta(t,!0);case"lower-roman":return Ea(t,!1);case"upper-roman":return Ea(t,!0);default:return String(Math.max(0,t))}}function h0(t){let e=()=>{var g;return((g=R==null?void 0:R.session)==null?void 0:g.__counterEpoch)??0},a=e(),r=new WeakMap,i=t instanceof Document?t.documentElement:t,l=g=>g&&g.tagName==="LI",n=g=>{let y=0,u=g==null?void 0:g.parentElement;if(!u)return 0;for(let h of u.children){if(h===g)break;h.tagName==="LI"&&y++}return y},c=g=>{let y=new Map;for(let[u,h]of g)y.set(u,h.slice());return y},s=(g,y,u)=>{var w,b;let h=c(g),f;try{f=((w=u.style)==null?void 0:w.counterReset)||getComputedStyle(u).counterReset}catch{}if(f&&f!=="none")for(let x of f.split(",")){let C=x.trim().split(/\s+/),L=C[0],z=Number.isFinite(Number(C[1]))?Number(C[1]):0;if(!L)continue;let v=y.get(L);if(v&&v.length){let M=v.slice();M.push(z),h.set(L,M)}else h.set(L,[z])}let k;try{k=((b=u.style)==null?void 0:b.counterIncrement)||getComputedStyle(u).counterIncrement}catch{}if(k&&k!=="none")for(let x of k.split(",")){let C=x.trim().split(/\s+/),L=C[0],z=Number.isFinite(Number(C[1]))?Number(C[1]):1;if(!L)continue;let v=h.get(L)||[];v.length===0&&v.push(0),v[v.length-1]+=z,h.set(L,v)}try{if(getComputedStyle(u).display==="list-item"&&l(u)){let x=u.parentElement,C=1;if(x&&x.tagName==="OL"){let z=x.getAttribute("start"),v=Number.isFinite(Number(z))?Number(z):1,M=n(u),T=u.getAttribute("value");C=Number.isFinite(Number(T))?Number(T):v+M}else C=1+n(u);let L=h.get("list-item")||[];L.length===0&&L.push(0),L[L.length-1]=C,h.set("list-item",L)}}catch{}return h},d=(g,y,u)=>{let h=s(u,y,g);r.set(g,h);let f=h;for(let k of g.children)f=d(k,h,f);return h},m=new Map;d(i,m,m);function p(){let g=e();if(g!==a){a=g;let y=new Map;d(i,y,y)}}return{get(g,y){var h;p();let u=(h=r.get(g))==null?void 0:h.get(y);return u&&u.length?u[u.length-1]:0},getStack(g,y){var h;p();let u=(h=r.get(g))==null?void 0:h.get(y);return u?u.slice():[]}}}function p0(t,e,a){if(!t||t==="none")return t;try{let r=/\b(counter|counters)\s*\(([^)]+)\)/g,i=t.replace(r,(l,n,c)=>{var d,m,p;let s=String(c).split(",").map(g=>g.trim());if(n==="counter"){let g=(d=s[0])==null?void 0:d.replace(/^["']|["']$/g,""),y=(s[1]||"decimal").toLowerCase(),u=a.get(e,g);return Da(u,y)}else{let g=(m=s[0])==null?void 0:m.replace(/^["']|["']$/g,""),y=((p=s[1])==null?void 0:p.replace(/^["']|["']$/g,""))??"",u=(s[2]||"decimal").toLowerCase(),h=a.getStack(e,g);return h.length?h.map(f=>Da(f,u)).join(y):""}});return d0(i)}catch{return"- "}}var Ue=new WeakMap,Ra=300;function g0(t,e){let a=Ba(t);return e?(e.__pseudoPreflightFp!==a&&(e.__pseudoPreflight=Aa(t),e.__pseudoPreflightFp=a),!!e.__pseudoPreflight):Aa(t)}function ta(t){try{return t&&t.cssRules?t.cssRules:null}catch{return null}}function Ba(t){let e=t.querySelectorAll('style,link[rel~="stylesheet"]'),a=`n:${e.length}|`,r=0;for(let l=0;l<e.length;l++){let n=e[l];if(n.tagName==="STYLE"){let c=n.textContent?n.textContent.length:0;a+=`S${c}|`;let s=n.sheet,d=s?ta(s):null;d&&(r+=d.length)}else{let c=n.getAttribute("href")||"",s=n.getAttribute("media")||"all";a+=`L${c}|m:${s}|`;let d=n.sheet,m=d?ta(d):null;m&&(r+=m.length)}}let i=t.adoptedStyleSheets;return a+=`ass:${Array.isArray(i)?i.length:0}|tr:${r}`,a}function Ia(t,e,a){let r=ta(t);if(!r)return!1;for(let i=0;i<r.length;i++){if(a.budget<=0)return!1;let l=r[i],n=l&&l.cssText?l.cssText:"";a.budget--;for(let c of e)if(n.includes(c))return!0;if(l&&l.cssRules&&l.cssRules.length)for(let c=0;c<l.cssRules.length&&a.budget>0;c++){let s=l.cssRules[c],d=s&&s.cssText?s.cssText:"";a.budget--;for(let m of e)if(d.includes(m))return!0}if(a.budget<=0)return!1}return!1}function Aa(t=document){let e=Ba(t),a=Ue.get(t);if(a&&a.fingerprint===e)return a.result;let r=["::before","::after","::first-letter",":before",":after",":first-letter","counter(","counters(","counter-increment","counter-reset"],i=t.querySelectorAll("style");for(let n=0;n<i.length;n++){let c=i[n].textContent||"";for(let s of r)if(c.includes(s))return Ue.set(t,{fingerprint:e,result:!0}),!0}let l=t.adoptedStyleSheets;if(Array.isArray(l)&&l.length){let n={budget:Ra};try{for(let c of l)if(Ia(c,r,n))return Ue.set(t,{fingerprint:e,result:!0}),!0}catch{}}{let n=t.querySelectorAll('style,link[rel~="stylesheet"]'),c={budget:Ra};for(let s=0;s<n.length&&c.budget>0;s++){let d=n[s],m=null;if(d.tagName,m=d.sheet||null,m&&Ia(m,r,c))return Ue.set(t,{fingerprint:e,result:!0}),!0}}return t.querySelector('[style*="counter("], [style*="counters("]')?(Ue.set(t,{fingerprint:e,result:!0}),!0):(Ue.set(t,{fingerprint:e,result:!1}),!1)}var $e=new WeakMap,Fa=-1;function u0(t){return(t||"").replace(/"([^"]*)"/g,"$1")}function f0(t){if(!t)return"";let e=[],a=/"([^"]*)"/g,r;for(;r=a.exec(t);)e.push(r[1]);return e.length?e.join(""):u0(t)}function oa(t,e){let a=t.parentElement,r=a?$e.get(a):null;return r?{get(i,l){let n=e.get(i,l),c=r.get(l);return typeof c=="number"?Math.max(n,c):n},getStack(i,l){let n=e.getStack(i,l);if(!n.length)return n;let c=r.get(l);if(typeof c=="number"){let s=n.slice();return s[s.length-1]=Math.max(s[s.length-1],c),s}return n}}:e}function aa(t,e,a){let r=new Map;function i(s){let d=[];if(!s||s==="none")return d;for(let m of String(s).split(",")){let p=m.trim().split(/\s+/),g=p[0],y=Number.isFinite(Number(p[1]))?Number(p[1]):void 0;g&&d.push({name:g,num:y})}return d}let l=i(e==null?void 0:e.counterReset),n=i(e==null?void 0:e.counterIncrement);function c(s){if(r.has(s))return r.get(s).slice();let d=a.getStack(t,s);d=d.length?d.slice():[];let m=l.find(g=>g.name===s);if(m){let g=Number.isFinite(m.num)?m.num:0;d=d.length?[...d,g]:[g]}let p=n.find(g=>g.name===s);if(p){let g=Number.isFinite(p.num)?p.num:1;d.length===0&&(d=[0]),d[d.length-1]+=g}return r.set(s,d.slice()),d}return{get(s,d){let m=c(d);return m.length?m[m.length-1]:0},getStack(s,d){return c(d)},__incs:n}}function y0(t,e,a){let r;try{r=getComputedStyle(t,e)}catch{}let i=r==null?void 0:r.content;if(!i||i==="none"||i==="normal")return{text:"",incs:[]};let l=oa(t,a),n=aa(t,r,l),c=m0(i)?p0(i,t,n):i;return{text:f0(c),incs:n.__incs||[]}}async function Ga(t,e,a,r){var d,m,p;if(!(t instanceof Element)||!(e instanceof Element))return;let i=t.ownerDocument||document;if(!g0(i,a))return;let l=((d=R==null?void 0:R.session)==null?void 0:d.__counterEpoch)??0;if(Fa!==l&&($e=new WeakMap,a&&(a.__counterCtx=null),Fa=l),!a.__counterCtx)try{a.__counterCtx=h0(t.ownerDocument||document)}catch{}let n=a.__counterCtx;for(let g of["::before","::after","::first-letter"])try{let y=pa(t,g);if(!y||y.content==="none"&&y.backgroundImage==="none"&&y.backgroundColor==="transparent"&&(y.borderStyle==="none"||parseFloat(y.borderWidth)===0)&&(!y.transform||y.transform==="none")&&y.display==="inline")continue;if(g==="::first-letter"){let A=getComputedStyle(t);if(!(y.color!==A.color||y.fontSize!==A.fontSize||y.fontWeight!==A.fontWeight))continue;let B=Array.from(e.childNodes).find(se=>{var pe;return se.nodeType===Node.TEXT_NODE&&((pe=se.textContent)==null?void 0:pe.trim().length)>0});if(!B)continue;let j=B.textContent,N=(m=j.match(/^([^\p{L}\p{N}\s]*[\p{L}\p{N}](?:['’])?)/u))==null?void 0:m[0],q=j.slice((N==null?void 0:N.length)||0);if(!N||/[\uD800-\uDFFF]/.test(N))continue;let re=document.createElement("span");re.textContent=N,re.dataset.snapdomPseudo="::first-letter";let he=ga(y),ge=Uo(he,"span");a.styleMap.set(re,ge);let ee=document.createTextNode(q);e.replaceChild(ee,B),e.insertBefore(re,ee);continue}let u=y.content??"",h=u===""||u==="none"||u==="normal",{text:f,incs:k}=y0(t,g,n),w=y.backgroundImage,b=y.backgroundColor,x=y.fontFamily,C=parseInt(y.fontSize)||32,L=parseInt(y.fontWeight)||!1,z=y.color||"#000",v=y.borderStyle,M=parseFloat(y.borderWidth),T=y.transform,E=Re(x),I=!h&&f!=="",Z=w&&w!=="none",Y=b&&b!=="transparent"&&b!=="rgba(0, 0, 0, 0)",$=v&&v!=="none"&&M>0,ae=T&&T!=="none";if(!(I||Z||Y||$||ae)){if(k&&k.length&&t.parentElement){let A=$e.get(t.parentElement)||new Map;for(let{name:B}of k){if(!B)continue;let j=oa(t,n),N=aa(t,getComputedStyle(t,g),j).get(t,B);A.set(B,N)}$e.set(t.parentElement,A)}continue}let V=document.createElement("span");V.dataset.snapdomPseudo=g,V.style.pointerEvents="none";let G=ga(y),W=Uo(G,"span");if(a.styleMap.set(V,W),E&&f&&f.length===1){let{dataUrl:A,width:B,height:j}=await du(f,x,L,C,z),N=document.createElement("img");N.src=A,N.style=`height:${C}px;width:${B/j*C}px;object-fit:contain;`,V.appendChild(N),e.dataset.snapdomHasIcon="true"}else if(f&&f.startsWith("url(")){let A=Ho(f);if(A!=null&&A.trim())try{let B=document.createElement("img"),j=await De(Eo(A),{as:"dataURL",useProxy:r.useProxy});B.src=j.data,B.style=`width:${C}px;height:auto;object-fit:contain;`,V.appendChild(B)}catch(B){console.error(`[snapdom] Error in pseudo ${g} for`,t,B)}}else!E&&I&&(V.textContent=f);V.style.backgroundImage="none","maskImage"in V.style&&(V.style.maskImage="none"),"webkitMaskImage"in V.style&&(V.style.webkitMaskImage="none");try{V.style.backgroundRepeat=y.backgroundRepeat,V.style.backgroundSize=y.backgroundSize,y.backgroundPositionX&&y.backgroundPositionY?(V.style.backgroundPositionX=y.backgroundPositionX,V.style.backgroundPositionY=y.backgroundPositionY):V.style.backgroundPosition=y.backgroundPosition,V.style.backgroundOrigin=y.backgroundOrigin,V.style.backgroundClip=y.backgroundClip,V.style.backgroundAttachment=y.backgroundAttachment,V.style.backgroundBlendMode=y.backgroundBlendMode}catch{}if(Z)try{let A=ua(w),B=await Promise.all(A.map(da));V.style.backgroundImage=B.join(", ")}catch(A){console.warn(`[snapdom] Failed to inline background-image for ${g}`,A)}Y&&(V.style.backgroundColor=b);let U=V.childNodes.length>0||((p=V.textContent)==null?void 0:p.trim())!==""||Z||Y||$||ae;if(k&&k.length&&t.parentElement){let A=$e.get(t.parentElement)||new Map,B=oa(t,n),j=aa(t,getComputedStyle(t,g),B);for(let{name:N}of k){if(!N)continue;let q=j.get(t,N);A.set(N,q)}$e.set(t.parentElement,A)}if(!U)continue;g==="::before"?e.insertBefore(V,e.firstChild):e.appendChild(V)}catch(y){console.warn(`[snapdom] Failed to capture ${g} for`,t,y)}let c=Array.from(t.children),s=Array.from(e.children).filter(g=>!g.dataset.snapdomPseudo);for(let g=0;g<Math.min(c.length,s.length);g++)await Ga(c[g],s[g],a,r)}function b0(t,e){var x,C;if(!t||!(t instanceof Element))return;let a=t.ownerDocument||document,r=e||a,i=t instanceof SVGSVGElement?[t]:Array.from(t.querySelectorAll("svg"));if(i.length===0)return;let l=/url\(\s*#([^)]+)\)/g,n=["fill","stroke","filter","clip-path","mask","marker","marker-start","marker-mid","marker-end"],c=L=>window.CSS&&CSS.escape?CSS.escape(L):L.replace(/[^a-zA-Z0-9_-]/g,"\\$&"),s="http://www.w3.org/1999/xlink",d=L=>{if(!L||!L.getAttribute)return null;let z=L.getAttribute("href")||L.getAttribute("xlink:href")||(typeof L.getAttributeNS=="function"?L.getAttributeNS(s,"href"):null);if(z)return z;let v=L.attributes;if(!v)return null;for(let M=0;M<v.length;M++){let T=v[M];if(!T||!T.name)continue;if(T.name==="href")return T.value;let E=T.name.indexOf(":");if(E!==-1&&T.name.slice(E+1)==="href")return T.value}return null},m=new Set(Array.from(t.querySelectorAll("[id]")).map(L=>L.id)),p=new Set,g=!1,y=(L,z=null)=>{if(!L)return;l.lastIndex=0;let v;for(;v=l.exec(L);){g=!0;let M=(v[1]||"").trim();M&&(m.has(M)||(p.add(M),z&&!z.has(M)&&z.add(M)))}},u=L=>{let z=L.querySelectorAll("use");for(let M of z){let T=d(M);if(!T||!T.startsWith("#"))continue;g=!0;let E=T.slice(1).trim();E&&!m.has(E)&&p.add(E)}let v=L.querySelectorAll('*[style*="url("],*[fill^="url("], *[stroke^="url("],*[filter^="url("],*[clip-path^="url("],*[mask^="url("],*[marker^="url("],*[marker-start^="url("],*[marker-mid^="url("],*[marker-end^="url("]');for(let M of v){y(M.getAttribute("style")||"");for(let T of n)y(M.getAttribute(T))}};for(let L of i)u(L);if(!g)return;let h=t.querySelector("svg.inline-defs-container");h||(h=a.createElementNS("http://www.w3.org/2000/svg","svg"),h.classList.add("inline-defs-container"),h.setAttribute("aria-hidden","true"),h.setAttribute("style","position:absolute;width:0;height:0;overflow:hidden"),t.insertBefore(h,t.firstChild||null));let f=h.querySelector("defs")||null,k=L=>{if(!L||m.has(L))return null;let z=c(L),v=M=>{let T=r.querySelector(M);return T&&!t.contains(T)?T:null};return v(`svg defs > *#${z}`)||v(`svg > symbol#${z}`)||v(`*#${z}`)};if(!p.size)return;let w=new Set(p),b=new Set;for(;w.size;){let L=w.values().next().value;if(w.delete(L),!L||m.has(L)||b.has(L))continue;let z=k(L);if(!z){b.add(L);continue}f||(f=a.createElementNS("http://www.w3.org/2000/svg","defs"),h.appendChild(f));let v=z.cloneNode(!0);v.id||v.setAttribute("id",L),f.appendChild(v),b.add(L),m.add(L);let M=[v,...v.querySelectorAll("*")];for(let T of M){let E=d(T);if(E&&E.startsWith("#")){let Z=E.slice(1).trim();Z&&!m.has(Z)&&!b.has(Z)&&w.add(Z)}let I=((x=T.getAttribute)==null?void 0:x.call(T,"style"))||"";I&&y(I,w);for(let Z of n){let Y=(C=T.getAttribute)==null?void 0:C.call(T,Z);Y&&y(Y,w)}}}}function w0(t,e){var c;if(!t||!e)return;let a=t.scrollTop||0;if(!a)return;getComputedStyle(e).position==="static"&&(e.style.position="relative");let r=t.getBoundingClientRect(),i=t.clientHeight,l="data-snap-ph",n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();){let s=n.currentNode,d=getComputedStyle(s),m=d.position;if(m!=="sticky"&&m!=="-webkit-sticky")continue;let p=Wa(d.top),g=Wa(d.bottom);if(p==null&&g==null)continue;let y=x0(s,t),u=k0(e,y,l);if(!u)continue;let h=s.getBoundingClientRect(),f=h.width,k=h.height,w=h.left-r.left;if(!(f>0&&k>0)||!Number.isFinite(w))continue;let b=p!=null?p+a:a+(i-k-g);if(!Number.isFinite(b))continue;let x=Number.parseInt(d.zIndex,10),C=Number.isFinite(x),L=C?Math.max(x,1)+1:2,z=C?x-1:0,v=u.cloneNode(!1);v.setAttribute(l,"1"),v.style.position="sticky",v.style.left=`${w}px`,v.style.top=`${b}px`,v.style.width=`${f}px`,v.style.height=`${k}px`,v.style.visibility="hidden",v.style.zIndex=String(z),v.style.overflow="hidden",v.style.background="transparent",v.style.boxShadow="none",v.style.filter="none",(c=u.parentElement)==null||c.insertBefore(v,u),u.style.position="absolute",u.style.left=`${w}px`,u.style.top=`${b}px`,u.style.bottom="auto",u.style.zIndex=String(L),u.style.pointerEvents="none"}}function Wa(t){if(!t||t==="auto")return null;let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}function x0(t,e){let a=[];for(let r=t;r&&r!==e;){let i=r.parentElement;if(!i)break;a.push(Array.prototype.indexOf.call(i.children,r)),r=i}return a.reverse()}function k0(t,e,a){let r=t;for(let i=0;i<e.length;i++)if(r=_0(r,a)[e[i]],!r)return null;return r instanceof HTMLElement?r:null}function _0(t,e){let a=[],r=t.children;for(let i=0;i<r.length;i++){let l=r[i];l.hasAttribute(e)||a.push(l)}return a}function L0(t){let e=getComputedStyle(t),a=e.outlineStyle,r=e.outlineWidth,i=e.borderStyle,l=e.borderWidth,n=a!=="none"&&parseFloat(r)>0,c=i==="none"||parseFloat(l)===0;n&&c&&(t.style.border=`${r} solid transparent`)}async function z0(t,e={}){var s,d;let a={styleMap:R.session.styleMap,styleCache:R.session.styleCache,nodeMap:R.session.nodeMap},r,i="",l="";L0(t);try{b0(t)}catch(m){console.warn("inlineExternal defs or symbol failed:",m)}try{r=await Go(t,a,e,t)}catch(m){throw console.warn("deepClone failed:",m),m}try{await Ga(t,r,a,e)}catch(m){console.warn("inlinePseudoElements failed:",m)}await c0(r);try{let m=r.querySelectorAll("style[data-sd]");for(let p of m)l+=p.textContent||"",p.remove()}catch{}let n=tu(a.styleMap);i=Array.from(n.entries()).map(([m,p])=>`.${p}{${m}}`).join(""),i=l+i;for(let[m,p]of a.styleMap.entries()){if(m.tagName==="STYLE")continue;if(m.getRootNode&&m.getRootNode()instanceof ShadowRoot){m.setAttribute("style",p.replace(/;/g,"; "));continue}let g=n.get(p);g&&m.classList.add(g);let y=(s=m.style)==null?void 0:s.backgroundImage,u=(d=m.dataset)==null?void 0:d.snapdomHasIcon;y&&y!=="none"&&(m.style.backgroundImage=y),u&&(m.style.verticalAlign="middle",m.style.display="inline")}for(let[m,p]of a.nodeMap.entries()){let g=p.scrollLeft,y=p.scrollTop;if((g||y)&&m instanceof HTMLElement){m.style.overflow="hidden",m.style.scrollbarWidth="none",m.style.msOverflowStyle="none";let u=document.createElement("div");for(u.style.transform=`translate(${-g}px, ${-y}px)`,u.style.willChange="transform",u.style.display="inline-block",u.style.width="100%";m.firstChild;)u.appendChild(m.firstChild);m.appendChild(u)}}let c=r instanceof HTMLElement&&r.firstElementChild instanceof HTMLElement?r.firstElementChild:r;if(w0(t,c),t===a.nodeMap.get(r)){let m=a.styleCache.get(t)||window.getComputedStyle(t);a.styleCache.set(t,m);let p=Wg(m.transform);r.style.margin="0",r.style.top="auto",r.style.left="auto",r.style.right="auto",r.style.bottom="auto",r.style.animation="none",r.style.transition="none",r.style.willChange="auto",r.style.float="none",r.style.clear="none",r.style.transform=p||""}for(let[m,p]of a.nodeMap.entries())p.tagName==="PRE"&&(m.style.marginTop="0",m.style.marginBlockStart="0");return{clone:r,classCSS:i,styleCache:a.styleCache}}function C0(t){var d,m,p,g;let e=parseInt(((d=t.dataset)==null?void 0:d.snapdomWidth)||"",10)||0,a=parseInt(((m=t.dataset)==null?void 0:m.snapdomHeight)||"",10)||0,r=parseInt(t.getAttribute("width")||"",10)||0,i=parseInt(t.getAttribute("height")||"",10)||0,l=parseFloat(((p=t.style)==null?void 0:p.width)||"")||0,n=parseFloat(((g=t.style)==null?void 0:g.height)||"")||0,c=e||l||r||t.width||t.naturalWidth||100,s=a||n||i||t.height||t.naturalHeight||100;return{width:c,height:s}}async function v0(t,e={}){let a=Array.from(t.querySelectorAll("img")),r=async i=>{if(!i.getAttribute("src")){let m=i.currentSrc||i.src||"";m&&i.setAttribute("src",m)}i.removeAttribute("srcset"),i.removeAttribute("sizes");let l=i.src||"";if(!l)return;let n=await De(l,{as:"dataURL",useProxy:e.useProxy});if(n.ok&&typeof n.data=="string"&&n.data.startsWith("data:")){i.src=n.data,i.width||(i.width=i.naturalWidth||100),i.height||(i.height=i.naturalHeight||100);return}let{width:c,height:s}=C0(i),{fallbackURL:d}=e||{};if(d)try{let m=typeof d=="function"?await d({width:c,height:s,src:l,element:i}):d;if(m){let p=await De(m,{as:"dataURL",useProxy:e.useProxy});i.src=p.data,i.width||(i.width=c),i.height||(i.height=s);return}}catch{}if(e.placeholders!==!1){let m=document.createElement("div");m.style.cssText=[`width:${c}px`,`height:${s}px`,"background:#ccc","display:inline-block","text-align:center",`line-height:${s}px`,"color:#666","font-size:12px","overflow:hidden"].join(";"),m.textContent="img",i.replaceWith(m)}else{let m=document.createElement("div");m.style.cssText=`display:inline-block;width:${c}px;height:${s}px;visibility:hidden;`,i.replaceWith(m)}};for(let i=0;i<a.length;i+=4){let l=a.slice(i,i+4).map(r);await Promise.allSettled(l)}}function S0(t){if(!t)return()=>{};let e=N0(t);if(e<=0)return()=>{};if(!M0(t))return()=>{};let a=getComputedStyle(t),r=Math.round(V0(a)*e+P0(a)),i=t.textContent??"",l=i;if(t.scrollHeight<=r+.5)return()=>{};let n=0,c=i.length,s=-1;for(;n<=c;){let d=n+c>>1;t.textContent=i.slice(0,d)+"…",t.scrollHeight<=r+.5?(s=d,n=d+1):c=d-1}return t.textContent=(s>=0?i.slice(0,s):"")+"…",()=>{t.textContent=l}}function N0(t){let e=getComputedStyle(t),a=e.getPropertyValue("-webkit-line-clamp")||e.getPropertyValue("line-clamp");a=(a||"").trim();let r=parseInt(a,10);return Number.isFinite(r)&&r>0?r:0}function V0(t){let e=(t.lineHeight||"").trim(),a=parseFloat(t.fontSize)||16;return!e||e==="normal"?Math.round(a*1.2):e.endsWith("px")?parseFloat(e):/^\d+(\.\d+)?$/.test(e)?Math.round(parseFloat(e)*a):e.endsWith("%")?Math.round(parseFloat(e)/100*a):Math.round(a*1.2)}function P0(t){return(parseFloat(t.paddingTop)||0)+(parseFloat(t.paddingBottom)||0)}function M0(t){return t.childElementCount>0?!1:Array.from(t.childNodes).some(e=>e.nodeType===Node.TEXT_NODE)}function T0(t,e){if(!t||!e||!e.style)return;let a=getComputedStyle(t);try{e.style.boxShadow="none"}catch{}try{e.style.textShadow="none"}catch{}try{e.style.outline="none"}catch{}let r=(a.filter||"").replace(/\bblur\([^()]*\)\s*/gi,"").replace(/\bdrop-shadow\([^()]*\)\s*/gi,"").trim().replace(/\s+/g," ");try{e.style.filter=r.length?r:"none"}catch{}}function E0(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_COMMENT),a=[];for(;e.nextNode();)a.push(e.currentNode);for(let r of a)r.remove()}function D0(t,e={}){let{stripFrameworkDirectives:a=!0}=e,r=new Set(["xml","xlink"]),i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;i.nextNode();){let l=i.currentNode;for(let n of Array.from(l.attributes)){let c=n.name;if(c.includes("@")){l.removeAttribute(c);continue}if(c.includes(":")){let s=c.split(":",1)[0];if(!r.has(s)){l.removeAttribute(c);continue}}if(a&&(c.startsWith("x-")||c.startsWith("v-")||c.startsWith(":")||c.startsWith("on:")||c.startsWith("bind:")||c.startsWith("let:")||c.startsWith("class:"))){l.removeAttribute(c);continue}}}}function R0(t,e={}){t&&(D0(t,e),E0(t))}function B0(t){var e;try{let a=((e=t.getAttribute)==null?void 0:e.call(t,"style"))||"";return/\b(height|width|block-size|inline-size)\s*:/.test(a)}catch{return!1}}function I0(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof HTMLIFrameElement||t instanceof SVGElement||t instanceof HTMLObjectElement||t instanceof HTMLEmbedElement}function A0(t,e){if(!(t instanceof Element)||B0(t)||I0(t))return!1;let a=e.position;if(a==="absolute"||a==="fixed"||a==="sticky")return!1;let r=e.display||"";return!(r.includes("flex")||r.includes("grid")||r.startsWith("table")||e.transform&&e.transform!=="none")}function F0(t,e,a=new Map){function r(i,l){if(!(i instanceof Element)||!(l instanceof Element))return;let n=i.childElementCount>l.childElementCount,c=a.get(i)||getComputedStyle(i);if(a.has(i)||a.set(i,c),n&&A0(i,c)){l.style.height||(l.style.height="auto"),l.style.width||(l.style.width="auto"),l.style.removeProperty("block-size"),l.style.removeProperty("inline-size"),l.style.minHeight||(l.style.minHeight="0"),l.style.minWidth||(l.style.minWidth="0"),l.style.maxHeight||(l.style.maxHeight="none"),l.style.maxWidth||(l.style.maxWidth="none");let m=c.overflowY||c.overflowBlock||"visible",p=c.overflowX||c.overflowInline||"visible";(m!=="visible"||p!=="visible")&&(l.style.overflow="visible")}let s=Array.from(i.children),d=Array.from(l.children);for(let m=0;m<Math.min(s.length,d.length);m++)r(s[m],d[m])}r(t,e)}function G0(t){let e=getComputedStyle(t);return!(e.display==="none"||e.position==="absolute"||e.position==="fixed"||e.position==="sticky"||(e.cssFloat||e.float||"none")!=="none"||e.transform&&e.transform!=="none")}function W0(t,e){if(!(t instanceof Element))return!1;if(t.getAttribute("data-capture")==="exclude"&&(e==null?void 0:e.excludeMode)==="remove")return!0;if(Array.isArray(e==null?void 0:e.exclude))for(let a of e.exclude)try{if(t.matches(a))return e.excludeMode==="remove"}catch{}return!1}function O0(t,e){let a=getComputedStyle(t),r=t.getBoundingClientRect(),i=1/0,l=-1/0,n=!1,c=Array.from(t.children);for(let y of c){if(W0(y,e)||!G0(y))continue;let u=y.getBoundingClientRect(),h=u.top-r.top,f=u.bottom-r.top;f<=h||(h<i&&(i=h),f>l&&(l=f),n=!0)}let s=n?Math.max(0,l-i):0,d=parseFloat(a.borderTopWidth)||0,m=parseFloat(a.borderBottomWidth)||0,p=parseFloat(a.paddingTop)||0,g=parseFloat(a.paddingBottom)||0;return d+m+p+g+s}var K=(t,e=3)=>Number.isFinite(t)?Math.round(t*10**e)/10**e:t;function Z0(t){var c;let e=t.boxShadow||"";if(!e||e==="none")return{top:0,right:0,bottom:0,left:0};let a=e.split(/\),(?=(?:[^()]*\([^()]*\))*[^()]*$)/).map(s=>s.trim()),r=0,i=0,l=0,n=0;for(let s of a){let d=((c=s.match(/-?\d+(\.\d+)?px/g))==null?void 0:c.map(f=>parseFloat(f)))||[];if(d.length<2)continue;let[m,p,g=0,y=0]=d,u=Math.abs(m)+g+y,h=Math.abs(p)+g+y;i=Math.max(i,u+Math.max(m,0)),n=Math.max(n,u+Math.max(-m,0)),l=Math.max(l,h+Math.max(p,0)),r=Math.max(r,h+Math.max(-p,0))}return{top:Math.ceil(r),right:Math.ceil(i),bottom:Math.ceil(l),left:Math.ceil(n)}}function j0(t){let e=(t.filter||"").match(/blur\(\s*([0-9.]+)px\s*\)/),a=e?Math.ceil(parseFloat(e[1])||0):0;return{top:a,right:a,bottom:a,left:a}}function H0(t){if((t.outlineStyle||"none")==="none")return{top:0,right:0,bottom:0,left:0};let e=Math.ceil(parseFloat(t.outlineWidth||"0")||0);return{top:e,right:e,bottom:e,left:e}}function X0(t){var s;let e=`${t.filter||""} ${t.webkitFilter||""}`.trim();if(!e||e==="none")return{bleed:{top:0,right:0,bottom:0,left:0},has:!1};let a=e.match(/drop-shadow\((?:[^()]|\([^()]*\))*\)/gi)||[],r=0,i=0,l=0,n=0,c=!1;for(let d of a){c=!0;let m=((s=d.match(/-?\d+(?:\.\d+)?px/gi))==null?void 0:s.map(f=>parseFloat(f)))||[],[p=0,g=0,y=0]=m,u=Math.abs(p)+y,h=Math.abs(g)+y;i=Math.max(i,u+Math.max(p,0)),n=Math.max(n,u+Math.max(-p,0)),l=Math.max(l,h+Math.max(g,0)),r=Math.max(r,h+Math.max(-g,0))}return{bleed:{top:K(r),right:K(i),bottom:K(l),left:K(n)},has:c}}function Y0(t,e){if(!t||!e||!e.style)return null;let a=getComputedStyle(t);try{e.style.transformOrigin="0 0"}catch{}try{"translate"in e.style&&(e.style.translate="none"),"rotate"in e.style&&(e.style.rotate="none")}catch{}let r=a.transform||"none";if(!r||r==="none")try{let l=Za(t);if(l.a===1&&l.b===0&&l.c===0&&l.d===1)return e.style.transform="none",{a:1,b:0,c:0,d:1}}catch{}let i=r.match(/^matrix\(\s*([^)]+)\)$/i);if(i){let l=i[1].split(",").map(n=>parseFloat(n.trim()));if(l.length===6&&l.every(Number.isFinite)){let[n,c,s,d]=l,m=Math.sqrt(n*n+c*c)||0,p=0,g=0,y=0,u=0,h=0,f=0;m>0&&(p=n/m,g=c/m,y=p*s+g*d,u=s-p*y,h=d-g*y,f=Math.sqrt(u*u+h*h)||0,f>0?y=y/f:y=0);let k=m,w=0,b=y*f,x=f;try{e.style.transform=`matrix(${k}, ${w}, ${b}, ${x}, 0, 0)`}catch{}return{a:k,b:w,c:b,d:x}}}try{let l=String(r).trim();return e.style.transform=l+" translate(0px, 0px) rotate(0deg)",null}catch{return null}}function Oa(t,e,a,r,i){let l=a.a,n=a.b,c=a.c,s=a.d,d=a.e||0,m=a.f||0;function p(k,w){let b=k-r,x=w-i,C=l*b+c*x,L=n*b+s*x;return C+=r+d,L+=i+m,[C,L]}let g=[p(0,0),p(t,0),p(0,e),p(t,e)],y=1/0,u=1/0,h=-1/0,f=-1/0;for(let[k,w]of g)k<y&&(y=k),w<u&&(u=w),k>h&&(h=k),w>f&&(f=w);return{minX:y,minY:u,maxX:h,maxY:f,width:h-y,height:f-u}}function U0(t,e,a){let r=(t.transformOrigin||"0 0").trim().split(/\s+/),[i,l]=[r[0]||"0",r[1]||"0"],n=(c,s)=>{let d=c.toLowerCase();return d==="left"||d==="top"?0:d==="center"?s/2:d==="right"||d==="bottom"?s:d.endsWith("px")?parseFloat(d)||0:d.endsWith("%")?(parseFloat(d)||0)*s/100:/^-?\d+(\.\d+)?$/.test(d)&&parseFloat(d)||0};return{ox:n(i,e),oy:n(l,a)}}function $0(t){var i,l,n,c,s,d,m,p;let e={rotate:"0deg",scale:null,translate:null},a=typeof t.computedStyleMap=="function"?t.computedStyleMap():null;if(a){let g=f=>{try{return typeof a.has=="function"&&!a.has(f)||typeof a.get!="function"?null:a.get(f)}catch{return null}},y=g("rotate");if(y)if(y.angle){let f=y.angle;e.rotate=f.unit==="rad"?f.value*180/Math.PI+"deg":f.value+f.unit}else y.unit?e.rotate=y.unit==="rad"?y.value*180/Math.PI+"deg":y.value+y.unit:e.rotate=String(y);else{let f=getComputedStyle(t);e.rotate=f.rotate&&f.rotate!=="none"?f.rotate:"0deg"}let u=g("scale");if(u){let f="x"in u&&((i=u.x)==null?void 0:i.value)!=null?u.x.value:Array.isArray(u)?(l=u[0])==null?void 0:l.value:Number(u)||1,k="y"in u&&((n=u.y)==null?void 0:n.value)!=null?u.y.value:Array.isArray(u)?(c=u[1])==null?void 0:c.value:f;e.scale=`${f} ${k}`}else{let f=getComputedStyle(t);e.scale=f.scale&&f.scale!=="none"?f.scale:null}let h=g("translate");if(h){let f="x"in h&&"value"in h.x?h.x.value:Array.isArray(h)?(s=h[0])==null?void 0:s.value:0,k="y"in h&&"value"in h.y?h.y.value:Array.isArray(h)?(d=h[1])==null?void 0:d.value:0,w="x"in h&&((m=h.x)!=null&&m.unit)?h.x.unit:"px",b="y"in h&&((p=h.y)!=null&&p.unit)?h.y.unit:"px";e.translate=`${f}${w} ${k}${b}`}else{let f=getComputedStyle(t);e.translate=f.translate&&f.translate!=="none"?f.translate:null}return e}let r=getComputedStyle(t);return e.rotate=r.rotate&&r.rotate!=="none"?r.rotate:"0deg",e.scale=r.scale&&r.scale!=="none"?r.scale:null,e.translate=r.translate&&r.translate!=="none"?r.translate:null,e}var ia=null;function J0(){if(ia)return ia;let t=document.createElement("div");return t.id="snapdom-measure-slot",t.setAttribute("aria-hidden","true"),Object.assign(t.style,{position:"absolute",left:"-99999px",top:"0px",width:"0px",height:"0px",overflow:"hidden",opacity:"0",pointerEvents:"none",contain:"size layout style"}),document.documentElement.appendChild(t),ia=t,t}function K0(t){let e=J0(),a=document.createElement("div");a.style.transformOrigin="0 0",t.baseTransform&&(a.style.transform=t.baseTransform),t.rotate&&(a.style.rotate=t.rotate),t.scale&&(a.style.scale=t.scale),t.translate&&(a.style.translate=t.translate),e.appendChild(a);let r=Za(a);return e.removeChild(a),r}function q0(t){let e=getComputedStyle(t),a=e.transform||"none";if(a!=="none"&&!/^matrix\(\s*1\s*,\s*0\s*,\s*0\s*,\s*1\s*,\s*0\s*,\s*0\s*\)$/i.test(a))return!0;let r=e.rotate&&e.rotate!=="none"&&e.rotate!=="0deg",i=e.scale&&e.scale!=="none"&&e.scale!=="1",l=e.translate&&e.translate!=="none"&&e.translate!=="0px 0px";return!!(r||i||l)}function Za(t){let e=getComputedStyle(t).transform;if(!e||e==="none")return new DOMMatrix;try{return new DOMMatrix(e)}catch{return new WebKitCSSMatrix(e)}}async function ja(t,e){var w;if(!t)throw new Error("Element cannot be null or undefined");Gg(e.cache);let a=e.fast,r=e.outerTransforms!==!1,i=!!e.outerShadows,l={element:t,options:e,plugins:e.plugins},n,c,s,d="",m="",p,g,y=null;await Be("beforeSnap",l),await Be("beforeClone",l);let u=S0(l.element);try{({clone:n,classCSS:c,styleCache:s}=await z0(l.element,l.options)),!r&&n&&(y=Y0(l.element,n)),!i&&n&&T0(l.element,n)}finally{u()}if(l={clone:n,classCSS:c,styleCache:s,...l},await Be("afterClone",l),R0(l.clone),((w=l.options)==null?void 0:w.excludeMode)==="remove")try{F0(l.element,l.clone,l.styleCache)}catch(b){console.warn("[snapdom] shrink pass failed:",b)}try{await mu(l.clone,l.element)}catch{}await new Promise(b=>{Xe(async()=>{await v0(l.clone,l.options),b()},{fast:a})}),await new Promise(b=>{Xe(async()=>{await Nu(l.element,l.clone,l.styleCache,l.options),b()},{fast:a})}),e.embedFonts&&await new Promise(b=>{Xe(async()=>{let x=Cu(l.element),C=vu(l.element);if(Fe()){let L=new Set(Array.from(x).map(z=>String(z).split("__")[0]).filter(Boolean));await Su(L,1)}d=await zu({required:x,usedCodepoints:C,preCached:!1,exclude:l.options.excludeFonts,useProxy:l.options.useProxy}),b()},{fast:a})});let h=Qg(l.clone).sort(),f=h.join(",");R.baseStyle.has(f)?m=R.baseStyle.get(f):await new Promise(b=>{Xe(()=>{m=eu(h),R.baseStyle.set(f,m),b()},{fast:a})}),l={fontsCSS:d,baseCSS:m,...l},await Be("beforeRender",l),await new Promise(b=>{Xe(()=>{var Te;let x=getComputedStyle(l.element),C=l.element.getBoundingClientRect(),L=Math.max(1,K(l.element.offsetWidth||parseFloat(x.width)||C.width||1)),z=Math.max(1,K(l.element.offsetHeight||parseFloat(x.height)||C.height||1));if(((Te=l.options)==null?void 0:Te.excludeMode)==="remove"){let F=O0(l.element,l.options);Number.isFinite(F)&&F>0&&(z=Math.max(1,Math.min(z,K(F+1))))}let v=(F,me=NaN)=>{let _e=typeof F=="string"?parseFloat(F):F;return Number.isFinite(_e)?_e:me},M=v(l.options.width),T=v(l.options.height),E=L,I=z,Z=Number.isFinite(M),Y=Number.isFinite(T),$=z>0?L/z:1;Z&&Y?(E=Math.max(1,K(M)),I=Math.max(1,K(T))):Z?(E=Math.max(1,K(M)),I=Math.max(1,K(E/($||1)))):Y?(I=Math.max(1,K(T)),E=Math.max(1,K(I*($||1)))):(E=L,I=z);let ae=0,V=0,G=L,W=z;if(!r&&y&&Number.isFinite(y.a)){let F={a:y.a,b:y.b||0,c:y.c||0,d:y.d||1,e:0,f:0},me=Oa(L,z,F,0,0);ae=K(me.minX),V=K(me.minY),G=K(me.maxX),W=K(me.maxY)}else if(r&&Q0(l.element)){let F=x.transform&&x.transform!=="none"?x.transform:"",me=$0(l.element),_e=K0({baseTransform:F,rotate:me.rotate||"0deg",scale:me.scale,translate:me.translate}),{ox:Ne,oy:Ve}=U0(x,L,z),H=_e.is2D?_e:new DOMMatrix(_e.toString()),ve=Oa(L,z,H,Ne,Ve);ae=K(ve.minX),V=K(ve.minY),G=K(ve.maxX),W=K(ve.maxY)}let U=Z0(x),A=j0(x),B=H0(x),j=X0(x),N=i?{top:K(U.top+A.top+B.top+j.bleed.top),right:K(U.right+A.right+B.right+j.bleed.right),bottom:K(U.bottom+A.bottom+B.bottom+j.bleed.bottom),left:K(U.left+A.left+B.left+j.bleed.left)}:{top:0,right:0,bottom:0,left:0};ae=K(ae-N.left),V=K(V-N.top),G=K(G+N.right),W=K(W+N.bottom);let q=Math.max(1,K(G-ae)),re=Math.max(1,K(W-V)),he=Z||Y?K(E/L):1,ge=Y||Z?K(I/z):1,ee=Math.max(1,K(q*he)),se=Math.max(1,K(re*ge)),pe="http://www.w3.org/2000/svg",xe=Fe()?1:0,O=K(xe+(r?0:1)),te=document.createElementNS(pe,"foreignObject"),Me=K(ae),Ce=K(V);te.setAttribute("x",String(K(-(Me-O)))),te.setAttribute("y",String(K(-(Ce-O)))),te.setAttribute("width",String(K(L+O*2))),te.setAttribute("height",String(K(z+O*2))),te.style.overflow="visible";let be=document.createElement("style");be.textContent=l.baseCSS+l.fontsCSS+"svg{overflow:visible;} foreignObject{overflow:visible;}"+l.classCSS,te.appendChild(be);let ke=document.createElement("div");ke.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),ke.style.width=`${K(L)}px`,ke.style.height=`${K(z)}px`,ke.style.overflow="visible",l.clone.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),ke.appendChild(l.clone),te.appendChild(ke);let J=new XMLSerializer().serializeToString(te),we=K(q+O*2),ie=K(re+O*2),ce=Z||Y;e.meta={w0:L,h0:z,vbW:we,vbH:ie,targetW:E,targetH:I};let Se=Fe()&&ce?we:K(ee+O*2),Ee=Fe()&&ce?ie:K(se+O*2);g=`<svg xmlns="${pe}" width="${Se}" height="${Ee}" viewBox="0 0 ${we} ${ie}">`+J+"</svg>",p=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(g)}`,l={svgString:g,dataURL:p,...l},b()},{fast:a})}),await Be("afterRender",l);let k=document.getElementById("snapdom-sandbox");return k&&k.style.position==="absolute"&&k.remove(),l.dataURL}function Q0(t){return q0(t)}function ef(t){if(typeof t=="string"){let e=t.toLowerCase().trim();if(e==="disabled"||e==="full"||e==="auto"||e==="soft")return e}return"soft"}function tf(t={}){let e=t.format??"png";e==="jpg"&&(e="jpeg");let a=ef(t.cache);return{debug:t.debug??!1,fast:t.fast??!0,scale:t.scale??1,exclude:t.exclude??[],excludeMode:t.excludeMode??"hide",filter:t.filter??null,filterMode:t.filterMode??"hide",placeholders:t.placeholders!==!1,embedFonts:t.embedFonts??!1,iconFonts:Array.isArray(t.iconFonts)?t.iconFonts:t.iconFonts?[t.iconFonts]:[],localFonts:Array.isArray(t.localFonts)?t.localFonts:[],excludeFonts:t.excludeFonts??void 0,fallbackURL:t.fallbackURL??void 0,cache:a,useProxy:typeof t.useProxy=="string"?t.useProxy:"",width:t.width??null,height:t.height??null,format:e,type:t.type??"svg",quality:t.quality??.92,dpr:t.dpr??(window.devicePixelRatio||1),backgroundColor:t.backgroundColor??(["jpeg","webp"].includes(e)?"#ffffff":null),filename:t.filename??"snapDOM",outerTransforms:t.outerTransforms??!0,outerShadows:t.outerShadows??!1}}function of(...t){return Vu(...t),ye}var ye=Object.assign(af,{plugins:of}),Ha=Symbol("snapdom.internal"),Ie=Symbol("snapdom.internal.silent"),ra=!1;async function af(t,e){if(!t)throw new Error("Element cannot be null or undefined");let a=tf(e);if(Tu(a,e&&e.plugins),Fe()&&(a.embedFonts===!0||lf(t)))for(let r=0;r<3;r++)try{await rf(t,e),ra=!1}catch{}return a.iconFonts&&a.iconFonts.length>0&&au(a.iconFonts),a.snap||(a.snap={toPng:(r,i)=>ye.toPng(r,i),toSvg:(r,i)=>ye.toSvg(r,i)}),ye.capture(t,a,Ha)}ye.capture=async(t,e,a)=>{if(a!==Ha)throw new Error("[snapdom.capture] is internal. Use snapdom(...) instead.");let r=await ja(t,e),i={img:async(u,h)=>{let{toImg:f}=await Promise.resolve().then(()=>Oo);return f(r,{...u,...h||{}})},svg:async(u,h)=>{let{toSvg:f}=await Promise.resolve().then(()=>Oo);return f(r,{...u,...h||{}})},canvas:async(u,h)=>{let{toCanvas:f}=await Promise.resolve().then(()=>Qa);return f(r,{...u,...h||{}})},blob:async(u,h)=>{let{toBlob:f}=await Promise.resolve().then(()=>ti);return f(r,{...u,...h||{}})},png:async(u,h)=>{let{rasterize:f}=await Promise.resolve().then(()=>Ge);return f(r,{...u,...h||{},format:"png"})},jpeg:async(u,h)=>{let{rasterize:f}=await Promise.resolve().then(()=>Ge);return f(r,{...u,...h||{},format:"jpeg"})},webp:async(u,h)=>{let{rasterize:f}=await Promise.resolve().then(()=>Ge);return f(r,{...u,...h||{},format:"webp"})},download:async(u,h)=>{let{download:f}=await Promise.resolve().then(()=>ny);return f(r,{...u,...h||{}})}},l={...e,export:{url:r},exports:{svg:async u=>{let{toSvg:h}=await Promise.resolve().then(()=>Oo);return h(r,{...e,...u||{},[Ie]:!0})},canvas:async u=>{let{toCanvas:h}=await Promise.resolve().then(()=>Qa);return h(r,{...e,...u||{},[Ie]:!0})},png:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"png",[Ie]:!0})},jpeg:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"jpeg",[Ie]:!0})},jpg:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"jpeg",[Ie]:!0})},webp:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"webp",[Ie]:!0})},blob:async u=>{let{toBlob:h}=await Promise.resolve().then(()=>ti);return h(r,{...e,...u||{},[Ie]:!0})},img:async u=>{let{toImg:h}=await Promise.resolve().then(()=>Oo);return h(r,{...e,...u||{},[Ie]:!0})}}},n=await Pu("defineExports",l),c=Object.assign({},...n.filter(u=>u&&typeof u=="object")),s={...i,...c};s.jpeg&&!s.jpg&&(s.jpg=(u,h)=>s.jpeg(u,h));function d(u,h){let f={...e,...h||{}};return(u==="jpeg"||u==="jpg")&&(f.backgroundColor==null||f.backgroundColor==="transparent")&&(f.backgroundColor="#ffffff"),f}let m=!1,p=Promise.resolve();async function g(u,h){let f=async()=>{let k=s[u];if(!k)throw new Error(`[snapdom] Unknown export type: ${u}`);let w=d(u,h),b={...e,export:{type:u,options:w,url:r}};await Be("beforeExport",b);let x=await k(b,w);return await Be("afterExport",b,x),m||(m=!0,await Be("afterSnap",e)),x};return p=p.then(f)}let y={url:r,toRaw:()=>r,to:(u,h)=>g(u,h),toImg:u=>g("img",u),toSvg:u=>g("svg",u),toCanvas:u=>g("canvas",u),toBlob:u=>g("blob",u),toPng:u=>g("png",u),toJpg:u=>g("jpg",u),toWebp:u=>g("webp",u),download:u=>g("download",u)};for(let u of Object.keys(s)){let h="to"+u.charAt(0).toUpperCase()+u.slice(1);y[h]||(y[h]=f=>g(u,f))}return y},ye.toRaw=(t,e)=>ye(t,e).then(a=>a.toRaw()),ye.toImg=(t,e)=>ye(t,e).then(a=>a.toImg()),ye.toSvg=(t,e)=>ye(t,e).then(a=>a.toSvg()),ye.toCanvas=(t,e)=>ye(t,e).then(a=>a.toCanvas()),ye.toBlob=(t,e)=>ye(t,e).then(a=>a.toBlob()),ye.toPng=(t,e)=>ye(t,{...e,format:"png"}).then(a=>a.toPng()),ye.toJpg=(t,e)=>ye(t,{...e,format:"jpeg"}).then(a=>a.toJpg()),ye.toWebp=(t,e)=>ye(t,{...e,format:"webp"}).then(a=>a.toWebp()),ye.download=(t,e)=>ye(t,e).then(a=>a.download());async function rf(t,e){if(ra)return;let a={...e,fast:!0,embedFonts:!0,scale:.2},r;try{r=await ja(t,a)}catch{}await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(i))),r&&await new Promise(i=>{let l=new Image;try{l.decoding="sync",l.loading="eager"}catch{}l.style.cssText="position:fixed;left:0px;top:0px;width:10px;height:10px;opacity:0.01;pointer-events:none;",l.src=r,document.body.appendChild(l),(async()=>{try{typeof l.decode=="function"&&await l.decode()}catch{}let n=performance.now();for(;!(l.complete&&l.naturalWidth>0)&&performance.now()-n<900;)await new Promise(c=>setTimeout(c,200));await new Promise(c=>requestAnimationFrame(c));try{l.remove()}catch{}i()})()}),t.querySelectorAll("canvas").forEach(i=>{try{let l=i.getContext("2d",{willReadFrequently:!0});l&&l.getImageData(0,0,1,1)}catch{}}),ra=!0}function lf(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();){let a=e.currentNode,r=getComputedStyle(a),i=r.backgroundImage&&r.backgroundImage!=="none",l=r.maskImage&&r.maskImage!=="none"||r.webkitMaskImage&&r.webkitMaskImage!=="none";if(i||l||a.tagName==="CANVAS")return!0}return!1}class nf{constructor(){de(this,"frames",[]);de(this,"captureRect",null);de(this,"_isRecording",!1);de(this,"_frameDelay",1e3);de(this,"canvas",null);de(this,"ctx",null)}setArea(e){this.captureRect=e,this.canvas=document.createElement("canvas"),this.canvas.width=e.width,this.canvas.height=e.height,this.ctx=this.canvas.getContext("2d")}setFrameDelay(e){this._frameDelay=e}getArea(){return this.captureRect}startRecording(){this._isRecording=!0,this.frames=[]}stopRecording(){this._isRecording=!1}async captureFrame(e,a){var i;if(!this._isRecording||!this.captureRect||!this.canvas||!this.ctx){console.log("[GifRecorder] captureFrame 跳过:",{isRecording:this._isRecording,hasRect:!!this.captureRect,hasCanvas:!!this.canvas});return}const r=e||document.body;try{console.log("[GifRecorder] 开始 snapdom 截图(全屏模式)...");const n=await(await ye(r,{filter:c=>!(c instanceof HTMLElement&&c.classList.contains("capture-exclude"))})).toPng();if(console.log("[GifRecorder] snapdom 截图完成, img:",(i=n==null?void 0:n.src)==null?void 0:i.length),!n||!n.src){console.error("[GifRecorder] snapdom 返回空图片");return}await new Promise((c,s)=>{n.complete&&n.naturalWidth>0?(console.log("[GifRecorder] 图片已加载, 开始裁剪区域"),this.processImage(n,a),c()):(n.onload=()=>{console.log("[GifRecorder] 图片加载完成, 开始裁剪区域"),this.processImage(n,a),c()},n.onerror=d=>{console.error("[GifRecorder] 图片加载失败:",d),s(d)})})}catch(l){console.error("[GifRecorder] 截图失败:",l)}}processImage(e,a){const r=window.devicePixelRatio||1,i=this.captureRect.x*r,l=this.captureRect.y*r,n=this.captureRect.width*r,c=this.captureRect.height*r;this.ctx.drawImage(e,i,l,n,c,0,0,this.captureRect.width,this.captureRect.height);const s=a,d=Math.max(this.captureRect.width/48,this.captureRect.height/48),m=8,p=12;this.ctx.font=`bold ${d}px Arial, sans-serif`,this.ctx.textAlign="center",this.ctx.textBaseline="top";const y=this.ctx.measureText(s).width,u=d,h=(this.captureRect.width-y)/2-m*2,f=p,k=y+m*4,w=u+m*2;this.ctx.fillStyle="rgba(0, 0, 0, 0.6)",this.ctx.beginPath(),this.ctx.roundRect(h,f,k,w,16),this.ctx.fill(),this.ctx.fillStyle="#ffffff",this.ctx.fillText(s,this.captureRect.width/2,p+m);const b=this.ctx.getImageData(0,0,this.captureRect.width,this.captureRect.height);this.frames.push(b),console.log("[GifRecorder] 帧添加成功, 当前帧数:",this.frames.length)}getFrameCount(){return this.frames.length}async generateGif(){return this.frames.length===0?(console.warn("[GifRecorder] 没有可用的帧"),null):new Promise((e,a)=>{const r=new br({workers:2,quality:10,width:this.captureRect.width,height:this.captureRect.height,workerScript:new URL("data:application/javascript;base64,Ly8gZ2lmLndvcmtlci5qcyAwLjIuMCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9qbm9yZGJlcmcvZ2lmLmpzCihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09ImZ1bmN0aW9uIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBmLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09ImZ1bmN0aW9uIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkoezE6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpe3ZhciBOZXVRdWFudD1yZXF1aXJlKCIuL1R5cGVkTmV1UXVhbnQuanMiKTt2YXIgTFpXRW5jb2Rlcj1yZXF1aXJlKCIuL0xaV0VuY29kZXIuanMiKTtmdW5jdGlvbiBCeXRlQXJyYXkoKXt0aGlzLnBhZ2U9LTE7dGhpcy5wYWdlcz1bXTt0aGlzLm5ld1BhZ2UoKX1CeXRlQXJyYXkucGFnZVNpemU9NDA5NjtCeXRlQXJyYXkuY2hhck1hcD17fTtmb3IodmFyIGk9MDtpPDI1NjtpKyspQnl0ZUFycmF5LmNoYXJNYXBbaV09U3RyaW5nLmZyb21DaGFyQ29kZShpKTtCeXRlQXJyYXkucHJvdG90eXBlLm5ld1BhZ2U9ZnVuY3Rpb24oKXt0aGlzLnBhZ2VzWysrdGhpcy5wYWdlXT1uZXcgVWludDhBcnJheShCeXRlQXJyYXkucGFnZVNpemUpO3RoaXMuY3Vyc29yPTB9O0J5dGVBcnJheS5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3ZhciBydj0iIjtmb3IodmFyIHA9MDtwPHRoaXMucGFnZXMubGVuZ3RoO3ArKyl7Zm9yKHZhciBpPTA7aTxCeXRlQXJyYXkucGFnZVNpemU7aSsrKXtydis9Qnl0ZUFycmF5LmNoYXJNYXBbdGhpcy5wYWdlc1twXVtpXV19fXJldHVybiBydn07Qnl0ZUFycmF5LnByb3RvdHlwZS53cml0ZUJ5dGU9ZnVuY3Rpb24odmFsKXtpZih0aGlzLmN1cnNvcj49Qnl0ZUFycmF5LnBhZ2VTaXplKXRoaXMubmV3UGFnZSgpO3RoaXMucGFnZXNbdGhpcy5wYWdlXVt0aGlzLmN1cnNvcisrXT12YWx9O0J5dGVBcnJheS5wcm90b3R5cGUud3JpdGVVVEZCeXRlcz1mdW5jdGlvbihzdHJpbmcpe2Zvcih2YXIgbD1zdHJpbmcubGVuZ3RoLGk9MDtpPGw7aSsrKXRoaXMud3JpdGVCeXRlKHN0cmluZy5jaGFyQ29kZUF0KGkpKX07Qnl0ZUFycmF5LnByb3RvdHlwZS53cml0ZUJ5dGVzPWZ1bmN0aW9uKGFycmF5LG9mZnNldCxsZW5ndGgpe2Zvcih2YXIgbD1sZW5ndGh8fGFycmF5Lmxlbmd0aCxpPW9mZnNldHx8MDtpPGw7aSsrKXRoaXMud3JpdGVCeXRlKGFycmF5W2ldKX07ZnVuY3Rpb24gR0lGRW5jb2Rlcih3aWR0aCxoZWlnaHQpe3RoaXMud2lkdGg9fn53aWR0aDt0aGlzLmhlaWdodD1+fmhlaWdodDt0aGlzLnRyYW5zcGFyZW50PW51bGw7dGhpcy50cmFuc0luZGV4PTA7dGhpcy5yZXBlYXQ9LTE7dGhpcy5kZWxheT0wO3RoaXMuaW1hZ2U9bnVsbDt0aGlzLnBpeGVscz1udWxsO3RoaXMuaW5kZXhlZFBpeGVscz1udWxsO3RoaXMuY29sb3JEZXB0aD1udWxsO3RoaXMuY29sb3JUYWI9bnVsbDt0aGlzLm5ldVF1YW50PW51bGw7dGhpcy51c2VkRW50cnk9bmV3IEFycmF5O3RoaXMucGFsU2l6ZT03O3RoaXMuZGlzcG9zZT0tMTt0aGlzLmZpcnN0RnJhbWU9dHJ1ZTt0aGlzLnNhbXBsZT0xMDt0aGlzLmRpdGhlcj1mYWxzZTt0aGlzLmdsb2JhbFBhbGV0dGU9ZmFsc2U7dGhpcy5vdXQ9bmV3IEJ5dGVBcnJheX1HSUZFbmNvZGVyLnByb3RvdHlwZS5zZXREZWxheT1mdW5jdGlvbihtaWxsaXNlY29uZHMpe3RoaXMuZGVsYXk9TWF0aC5yb3VuZChtaWxsaXNlY29uZHMvMTApfTtHSUZFbmNvZGVyLnByb3RvdHlwZS5zZXRGcmFtZVJhdGU9ZnVuY3Rpb24oZnBzKXt0aGlzLmRlbGF5PU1hdGgucm91bmQoMTAwL2Zwcyl9O0dJRkVuY29kZXIucHJvdG90eXBlLnNldERpc3Bvc2U9ZnVuY3Rpb24oZGlzcG9zYWxDb2RlKXtpZihkaXNwb3NhbENvZGU+PTApdGhpcy5kaXNwb3NlPWRpc3Bvc2FsQ29kZX07R0lGRW5jb2Rlci5wcm90b3R5cGUuc2V0UmVwZWF0PWZ1bmN0aW9uKHJlcGVhdCl7dGhpcy5yZXBlYXQ9cmVwZWF0fTtHSUZFbmNvZGVyLnByb3RvdHlwZS5zZXRUcmFuc3BhcmVudD1mdW5jdGlvbihjb2xvcil7dGhpcy50cmFuc3BhcmVudD1jb2xvcn07R0lGRW5jb2Rlci5wcm90b3R5cGUuYWRkRnJhbWU9ZnVuY3Rpb24oaW1hZ2VEYXRhKXt0aGlzLmltYWdlPWltYWdlRGF0YTt0aGlzLmNvbG9yVGFiPXRoaXMuZ2xvYmFsUGFsZXR0ZSYmdGhpcy5nbG9iYWxQYWxldHRlLnNsaWNlP3RoaXMuZ2xvYmFsUGFsZXR0ZTpudWxsO3RoaXMuZ2V0SW1hZ2VQaXhlbHMoKTt0aGlzLmFuYWx5emVQaXhlbHMoKTtpZih0aGlzLmdsb2JhbFBhbGV0dGU9PT10cnVlKXRoaXMuZ2xvYmFsUGFsZXR0ZT10aGlzLmNvbG9yVGFiO2lmKHRoaXMuZmlyc3RGcmFtZSl7dGhpcy53cml0ZUxTRCgpO3RoaXMud3JpdGVQYWxldHRlKCk7aWYodGhpcy5yZXBlYXQ+PTApe3RoaXMud3JpdGVOZXRzY2FwZUV4dCgpfX10aGlzLndyaXRlR3JhcGhpY0N0cmxFeHQoKTt0aGlzLndyaXRlSW1hZ2VEZXNjKCk7aWYoIXRoaXMuZmlyc3RGcmFtZSYmIXRoaXMuZ2xvYmFsUGFsZXR0ZSl0aGlzLndyaXRlUGFsZXR0ZSgpO3RoaXMud3JpdGVQaXhlbHMoKTt0aGlzLmZpcnN0RnJhbWU9ZmFsc2V9O0dJRkVuY29kZXIucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe3RoaXMub3V0LndyaXRlQnl0ZSg1OSl9O0dJRkVuY29kZXIucHJvdG90eXBlLnNldFF1YWxpdHk9ZnVuY3Rpb24ocXVhbGl0eSl7aWYocXVhbGl0eTwxKXF1YWxpdHk9MTt0aGlzLnNhbXBsZT1xdWFsaXR5fTtHSUZFbmNvZGVyLnByb3RvdHlwZS5zZXREaXRoZXI9ZnVuY3Rpb24oZGl0aGVyKXtpZihkaXRoZXI9PT10cnVlKWRpdGhlcj0iRmxveWRTdGVpbmJlcmciO3RoaXMuZGl0aGVyPWRpdGhlcn07R0lGRW5jb2Rlci5wcm90b3R5cGUuc2V0R2xvYmFsUGFsZXR0ZT1mdW5jdGlvbihwYWxldHRlKXt0aGlzLmdsb2JhbFBhbGV0dGU9cGFsZXR0ZX07R0lGRW5jb2Rlci5wcm90b3R5cGUuZ2V0R2xvYmFsUGFsZXR0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsb2JhbFBhbGV0dGUmJnRoaXMuZ2xvYmFsUGFsZXR0ZS5zbGljZSYmdGhpcy5nbG9iYWxQYWxldHRlLnNsaWNlKDApfHx0aGlzLmdsb2JhbFBhbGV0dGV9O0dJRkVuY29kZXIucHJvdG90eXBlLndyaXRlSGVhZGVyPWZ1bmN0aW9uKCl7dGhpcy5vdXQud3JpdGVVVEZCeXRlcygiR0lGODlhIil9O0dJRkVuY29kZXIucHJvdG90eXBlLmFuYWx5emVQaXhlbHM9ZnVuY3Rpb24oKXtpZighdGhpcy5jb2xvclRhYil7dGhpcy5uZXVRdWFudD1uZXcgTmV1UXVhbnQodGhpcy5waXhlbHMsdGhpcy5zYW1wbGUpO3RoaXMubmV1UXVhbnQuYnVpbGRDb2xvcm1hcCgpO3RoaXMuY29sb3JUYWI9dGhpcy5uZXVRdWFudC5nZXRDb2xvcm1hcCgpfWlmKHRoaXMuZGl0aGVyKXt0aGlzLmRpdGhlclBpeGVscyh0aGlzLmRpdGhlci5yZXBsYWNlKCItc2VycGVudGluZSIsIiIpLHRoaXMuZGl0aGVyLm1hdGNoKC8tc2VycGVudGluZS8pIT09bnVsbCl9ZWxzZXt0aGlzLmluZGV4UGl4ZWxzKCl9dGhpcy5waXhlbHM9bnVsbDt0aGlzLmNvbG9yRGVwdGg9ODt0aGlzLnBhbFNpemU9NztpZih0aGlzLnRyYW5zcGFyZW50IT09bnVsbCl7dGhpcy50cmFuc0luZGV4PXRoaXMuZmluZENsb3Nlc3QodGhpcy50cmFuc3BhcmVudCx0cnVlKX19O0dJRkVuY29kZXIucHJvdG90eXBlLmluZGV4UGl4ZWxzPWZ1bmN0aW9uKGltZ3Epe3ZhciBuUGl4PXRoaXMucGl4ZWxzLmxlbmd0aC8zO3RoaXMuaW5kZXhlZFBpeGVscz1uZXcgVWludDhBcnJheShuUGl4KTt2YXIgaz0wO2Zvcih2YXIgaj0wO2o8blBpeDtqKyspe3ZhciBpbmRleD10aGlzLmZpbmRDbG9zZXN0UkdCKHRoaXMucGl4ZWxzW2srK10mMjU1LHRoaXMucGl4ZWxzW2srK10mMjU1LHRoaXMucGl4ZWxzW2srK10mMjU1KTt0aGlzLnVzZWRFbnRyeVtpbmRleF09dHJ1ZTt0aGlzLmluZGV4ZWRQaXhlbHNbal09aW5kZXh9fTtHSUZFbmNvZGVyLnByb3RvdHlwZS5kaXRoZXJQaXhlbHM9ZnVuY3Rpb24oa2VybmVsLHNlcnBlbnRpbmUpe3ZhciBrZXJuZWxzPXtGYWxzZUZsb3lkU3RlaW5iZXJnOltbMy84LDEsMF0sWzMvOCwwLDFdLFsyLzgsMSwxXV0sRmxveWRTdGVpbmJlcmc6W1s3LzE2LDEsMF0sWzMvMTYsLTEsMV0sWzUvMTYsMCwxXSxbMS8xNiwxLDFdXSxTdHVja2k6W1s4LzQyLDEsMF0sWzQvNDIsMiwwXSxbMi80MiwtMiwxXSxbNC80MiwtMSwxXSxbOC80MiwwLDFdLFs0LzQyLDEsMV0sWzIvNDIsMiwxXSxbMS80MiwtMiwyXSxbMi80MiwtMSwyXSxbNC80MiwwLDJdLFsyLzQyLDEsMl0sWzEvNDIsMiwyXV0sQXRraW5zb246W1sxLzgsMSwwXSxbMS84LDIsMF0sWzEvOCwtMSwxXSxbMS84LDAsMV0sWzEvOCwxLDFdLFsxLzgsMCwyXV19O2lmKCFrZXJuZWx8fCFrZXJuZWxzW2tlcm5lbF0pe3Rocm93IlVua25vd24gZGl0aGVyaW5nIGtlcm5lbDogIitrZXJuZWx9dmFyIGRzPWtlcm5lbHNba2VybmVsXTt2YXIgaW5kZXg9MCxoZWlnaHQ9dGhpcy5oZWlnaHQsd2lkdGg9dGhpcy53aWR0aCxkYXRhPXRoaXMucGl4ZWxzO3ZhciBkaXJlY3Rpb249c2VycGVudGluZT8tMToxO3RoaXMuaW5kZXhlZFBpeGVscz1uZXcgVWludDhBcnJheSh0aGlzLnBpeGVscy5sZW5ndGgvMyk7Zm9yKHZhciB5PTA7eTxoZWlnaHQ7eSsrKXtpZihzZXJwZW50aW5lKWRpcmVjdGlvbj1kaXJlY3Rpb24qLTE7Zm9yKHZhciB4PWRpcmVjdGlvbj09MT8wOndpZHRoLTEseGVuZD1kaXJlY3Rpb249PTE/d2lkdGg6MDt4IT09eGVuZDt4Kz1kaXJlY3Rpb24pe2luZGV4PXkqd2lkdGgreDt2YXIgaWR4PWluZGV4KjM7dmFyIHIxPWRhdGFbaWR4XTt2YXIgZzE9ZGF0YVtpZHgrMV07dmFyIGIxPWRhdGFbaWR4KzJdO2lkeD10aGlzLmZpbmRDbG9zZXN0UkdCKHIxLGcxLGIxKTt0aGlzLnVzZWRFbnRyeVtpZHhdPXRydWU7dGhpcy5pbmRleGVkUGl4ZWxzW2luZGV4XT1pZHg7aWR4Kj0zO3ZhciByMj10aGlzLmNvbG9yVGFiW2lkeF07dmFyIGcyPXRoaXMuY29sb3JUYWJbaWR4KzFdO3ZhciBiMj10aGlzLmNvbG9yVGFiW2lkeCsyXTt2YXIgZXI9cjEtcjI7dmFyIGVnPWcxLWcyO3ZhciBlYj1iMS1iMjtmb3IodmFyIGk9ZGlyZWN0aW9uPT0xPzA6ZHMubGVuZ3RoLTEsZW5kPWRpcmVjdGlvbj09MT9kcy5sZW5ndGg6MDtpIT09ZW5kO2krPWRpcmVjdGlvbil7dmFyIHgxPWRzW2ldWzFdO3ZhciB5MT1kc1tpXVsyXTtpZih4MSt4Pj0wJiZ4MSt4PHdpZHRoJiZ5MSt5Pj0wJiZ5MSt5PGhlaWdodCl7dmFyIGQ9ZHNbaV1bMF07aWR4PWluZGV4K3gxK3kxKndpZHRoO2lkeCo9MztkYXRhW2lkeF09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsZGF0YVtpZHhdK2VyKmQpKTtkYXRhW2lkeCsxXT1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxkYXRhW2lkeCsxXStlZypkKSk7ZGF0YVtpZHgrMl09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsZGF0YVtpZHgrMl0rZWIqZCkpfX19fX07R0lGRW5jb2Rlci5wcm90b3R5cGUuZmluZENsb3Nlc3Q9ZnVuY3Rpb24oYyx1c2VkKXtyZXR1cm4gdGhpcy5maW5kQ2xvc2VzdFJHQigoYyYxNjcxMTY4MCk+PjE2LChjJjY1MjgwKT4+OCxjJjI1NSx1c2VkKX07R0lGRW5jb2Rlci5wcm90b3R5cGUuZmluZENsb3Nlc3RSR0I9ZnVuY3Rpb24ocixnLGIsdXNlZCl7aWYodGhpcy5jb2xvclRhYj09PW51bGwpcmV0dXJuLTE7aWYodGhpcy5uZXVRdWFudCYmIXVzZWQpe3JldHVybiB0aGlzLm5ldVF1YW50Lmxvb2t1cFJHQihyLGcsYil9dmFyIGM9YnxnPDw4fHI8PDE2O3ZhciBtaW5wb3M9MDt2YXIgZG1pbj0yNTYqMjU2KjI1Njt2YXIgbGVuPXRoaXMuY29sb3JUYWIubGVuZ3RoO2Zvcih2YXIgaT0wLGluZGV4PTA7aTxsZW47aW5kZXgrKyl7dmFyIGRyPXItKHRoaXMuY29sb3JUYWJbaSsrXSYyNTUpO3ZhciBkZz1nLSh0aGlzLmNvbG9yVGFiW2krK10mMjU1KTt2YXIgZGI9Yi0odGhpcy5jb2xvclRhYltpKytdJjI1NSk7dmFyIGQ9ZHIqZHIrZGcqZGcrZGIqZGI7aWYoKCF1c2VkfHx0aGlzLnVzZWRFbnRyeVtpbmRleF0pJiZkPGRtaW4pe2RtaW49ZDttaW5wb3M9aW5kZXh9fXJldHVybiBtaW5wb3N9O0dJRkVuY29kZXIucHJvdG90eXBlLmdldEltYWdlUGl4ZWxzPWZ1bmN0aW9uKCl7dmFyIHc9dGhpcy53aWR0aDt2YXIgaD10aGlzLmhlaWdodDt0aGlzLnBpeGVscz1uZXcgVWludDhBcnJheSh3KmgqMyk7dmFyIGRhdGE9dGhpcy5pbWFnZTt2YXIgc3JjUG9zPTA7dmFyIGNvdW50PTA7Zm9yKHZhciBpPTA7aTxoO2krKyl7Zm9yKHZhciBqPTA7ajx3O2orKyl7dGhpcy5waXhlbHNbY291bnQrK109ZGF0YVtzcmNQb3MrK107dGhpcy5waXhlbHNbY291bnQrK109ZGF0YVtzcmNQb3MrK107dGhpcy5waXhlbHNbY291bnQrK109ZGF0YVtzcmNQb3MrK107c3JjUG9zKyt9fX07R0lGRW5jb2Rlci5wcm90b3R5cGUud3JpdGVHcmFwaGljQ3RybEV4dD1mdW5jdGlvbigpe3RoaXMub3V0LndyaXRlQnl0ZSgzMyk7dGhpcy5vdXQud3JpdGVCeXRlKDI0OSk7dGhpcy5vdXQud3JpdGVCeXRlKDQpO3ZhciB0cmFuc3AsZGlzcDtpZih0aGlzLnRyYW5zcGFyZW50PT09bnVsbCl7dHJhbnNwPTA7ZGlzcD0wfWVsc2V7dHJhbnNwPTE7ZGlzcD0yfWlmKHRoaXMuZGlzcG9zZT49MCl7ZGlzcD1kaXNwb3NlJjd9ZGlzcDw8PTI7dGhpcy5vdXQud3JpdGVCeXRlKDB8ZGlzcHwwfHRyYW5zcCk7dGhpcy53cml0ZVNob3J0KHRoaXMuZGVsYXkpO3RoaXMub3V0LndyaXRlQnl0ZSh0aGlzLnRyYW5zSW5kZXgpO3RoaXMub3V0LndyaXRlQnl0ZSgwKX07R0lGRW5jb2Rlci5wcm90b3R5cGUud3JpdGVJbWFnZURlc2M9ZnVuY3Rpb24oKXt0aGlzLm91dC53cml0ZUJ5dGUoNDQpO3RoaXMud3JpdGVTaG9ydCgwKTt0aGlzLndyaXRlU2hvcnQoMCk7dGhpcy53cml0ZVNob3J0KHRoaXMud2lkdGgpO3RoaXMud3JpdGVTaG9ydCh0aGlzLmhlaWdodCk7aWYodGhpcy5maXJzdEZyYW1lfHx0aGlzLmdsb2JhbFBhbGV0dGUpe3RoaXMub3V0LndyaXRlQnl0ZSgwKX1lbHNle3RoaXMub3V0LndyaXRlQnl0ZSgxMjh8MHwwfDB8dGhpcy5wYWxTaXplKX19O0dJRkVuY29kZXIucHJvdG90eXBlLndyaXRlTFNEPWZ1bmN0aW9uKCl7dGhpcy53cml0ZVNob3J0KHRoaXMud2lkdGgpO3RoaXMud3JpdGVTaG9ydCh0aGlzLmhlaWdodCk7dGhpcy5vdXQud3JpdGVCeXRlKDEyOHwxMTJ8MHx0aGlzLnBhbFNpemUpO3RoaXMub3V0LndyaXRlQnl0ZSgwKTt0aGlzLm91dC53cml0ZUJ5dGUoMCl9O0dJRkVuY29kZXIucHJvdG90eXBlLndyaXRlTmV0c2NhcGVFeHQ9ZnVuY3Rpb24oKXt0aGlzLm91dC53cml0ZUJ5dGUoMzMpO3RoaXMub3V0LndyaXRlQnl0ZSgyNTUpO3RoaXMub3V0LndyaXRlQnl0ZSgxMSk7dGhpcy5vdXQud3JpdGVVVEZCeXRlcygiTkVUU0NBUEUyLjAiKTt0aGlzLm91dC53cml0ZUJ5dGUoMyk7dGhpcy5vdXQud3JpdGVCeXRlKDEpO3RoaXMud3JpdGVTaG9ydCh0aGlzLnJlcGVhdCk7dGhpcy5vdXQud3JpdGVCeXRlKDApfTtHSUZFbmNvZGVyLnByb3RvdHlwZS53cml0ZVBhbGV0dGU9ZnVuY3Rpb24oKXt0aGlzLm91dC53cml0ZUJ5dGVzKHRoaXMuY29sb3JUYWIpO3ZhciBuPTMqMjU2LXRoaXMuY29sb3JUYWIubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bjtpKyspdGhpcy5vdXQud3JpdGVCeXRlKDApfTtHSUZFbmNvZGVyLnByb3RvdHlwZS53cml0ZVNob3J0PWZ1bmN0aW9uKHBWYWx1ZSl7dGhpcy5vdXQud3JpdGVCeXRlKHBWYWx1ZSYyNTUpO3RoaXMub3V0LndyaXRlQnl0ZShwVmFsdWU+PjgmMjU1KX07R0lGRW5jb2Rlci5wcm90b3R5cGUud3JpdGVQaXhlbHM9ZnVuY3Rpb24oKXt2YXIgZW5jPW5ldyBMWldFbmNvZGVyKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsdGhpcy5pbmRleGVkUGl4ZWxzLHRoaXMuY29sb3JEZXB0aCk7ZW5jLmVuY29kZSh0aGlzLm91dCl9O0dJRkVuY29kZXIucHJvdG90eXBlLnN0cmVhbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm91dH07bW9kdWxlLmV4cG9ydHM9R0lGRW5jb2Rlcn0seyIuL0xaV0VuY29kZXIuanMiOjIsIi4vVHlwZWROZXVRdWFudC5qcyI6M31dLDI6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpe3ZhciBFT0Y9LTE7dmFyIEJJVFM9MTI7dmFyIEhTSVpFPTUwMDM7dmFyIG1hc2tzPVswLDEsMyw3LDE1LDMxLDYzLDEyNywyNTUsNTExLDEwMjMsMjA0Nyw0MDk1LDgxOTEsMTYzODMsMzI3NjcsNjU1MzVdO2Z1bmN0aW9uIExaV0VuY29kZXIod2lkdGgsaGVpZ2h0LHBpeGVscyxjb2xvckRlcHRoKXt2YXIgaW5pdENvZGVTaXplPU1hdGgubWF4KDIsY29sb3JEZXB0aCk7dmFyIGFjY3VtPW5ldyBVaW50OEFycmF5KDI1Nik7dmFyIGh0YWI9bmV3IEludDMyQXJyYXkoSFNJWkUpO3ZhciBjb2RldGFiPW5ldyBJbnQzMkFycmF5KEhTSVpFKTt2YXIgY3VyX2FjY3VtLGN1cl9iaXRzPTA7dmFyIGFfY291bnQ7dmFyIGZyZWVfZW50PTA7dmFyIG1heGNvZGU7dmFyIGNsZWFyX2ZsZz1mYWxzZTt2YXIgZ19pbml0X2JpdHMsQ2xlYXJDb2RlLEVPRkNvZGU7ZnVuY3Rpb24gY2hhcl9vdXQoYyxvdXRzKXthY2N1bVthX2NvdW50KytdPWM7aWYoYV9jb3VudD49MjU0KWZsdXNoX2NoYXIob3V0cyl9ZnVuY3Rpb24gY2xfYmxvY2sob3V0cyl7Y2xfaGFzaChIU0laRSk7ZnJlZV9lbnQ9Q2xlYXJDb2RlKzI7Y2xlYXJfZmxnPXRydWU7b3V0cHV0KENsZWFyQ29kZSxvdXRzKX1mdW5jdGlvbiBjbF9oYXNoKGhzaXplKXtmb3IodmFyIGk9MDtpPGhzaXplOysraSlodGFiW2ldPS0xfWZ1bmN0aW9uIGNvbXByZXNzKGluaXRfYml0cyxvdXRzKXt2YXIgZmNvZGUsYyxpLGVudCxkaXNwLGhzaXplX3JlZyxoc2hpZnQ7Z19pbml0X2JpdHM9aW5pdF9iaXRzO2NsZWFyX2ZsZz1mYWxzZTtuX2JpdHM9Z19pbml0X2JpdHM7bWF4Y29kZT1NQVhDT0RFKG5fYml0cyk7Q2xlYXJDb2RlPTE8PGluaXRfYml0cy0xO0VPRkNvZGU9Q2xlYXJDb2RlKzE7ZnJlZV9lbnQ9Q2xlYXJDb2RlKzI7YV9jb3VudD0wO2VudD1uZXh0UGl4ZWwoKTtoc2hpZnQ9MDtmb3IoZmNvZGU9SFNJWkU7ZmNvZGU8NjU1MzY7ZmNvZGUqPTIpKytoc2hpZnQ7aHNoaWZ0PTgtaHNoaWZ0O2hzaXplX3JlZz1IU0laRTtjbF9oYXNoKGhzaXplX3JlZyk7b3V0cHV0KENsZWFyQ29kZSxvdXRzKTtvdXRlcl9sb29wOndoaWxlKChjPW5leHRQaXhlbCgpKSE9RU9GKXtmY29kZT0oYzw8QklUUykrZW50O2k9Yzw8aHNoaWZ0XmVudDtpZihodGFiW2ldPT09ZmNvZGUpe2VudD1jb2RldGFiW2ldO2NvbnRpbnVlfWVsc2UgaWYoaHRhYltpXT49MCl7ZGlzcD1oc2l6ZV9yZWctaTtpZihpPT09MClkaXNwPTE7ZG97aWYoKGktPWRpc3ApPDApaSs9aHNpemVfcmVnO2lmKGh0YWJbaV09PT1mY29kZSl7ZW50PWNvZGV0YWJbaV07Y29udGludWUgb3V0ZXJfbG9vcH19d2hpbGUoaHRhYltpXT49MCl9b3V0cHV0KGVudCxvdXRzKTtlbnQ9YztpZihmcmVlX2VudDwxPDxCSVRTKXtjb2RldGFiW2ldPWZyZWVfZW50Kys7aHRhYltpXT1mY29kZX1lbHNle2NsX2Jsb2NrKG91dHMpfX1vdXRwdXQoZW50LG91dHMpO291dHB1dChFT0ZDb2RlLG91dHMpfWZ1bmN0aW9uIGVuY29kZShvdXRzKXtvdXRzLndyaXRlQnl0ZShpbml0Q29kZVNpemUpO3JlbWFpbmluZz13aWR0aCpoZWlnaHQ7Y3VyUGl4ZWw9MDtjb21wcmVzcyhpbml0Q29kZVNpemUrMSxvdXRzKTtvdXRzLndyaXRlQnl0ZSgwKX1mdW5jdGlvbiBmbHVzaF9jaGFyKG91dHMpe2lmKGFfY291bnQ+MCl7b3V0cy53cml0ZUJ5dGUoYV9jb3VudCk7b3V0cy53cml0ZUJ5dGVzKGFjY3VtLDAsYV9jb3VudCk7YV9jb3VudD0wfX1mdW5jdGlvbiBNQVhDT0RFKG5fYml0cyl7cmV0dXJuKDE8PG5fYml0cyktMX1mdW5jdGlvbiBuZXh0UGl4ZWwoKXtpZihyZW1haW5pbmc9PT0wKXJldHVybiBFT0Y7LS1yZW1haW5pbmc7dmFyIHBpeD1waXhlbHNbY3VyUGl4ZWwrK107cmV0dXJuIHBpeCYyNTV9ZnVuY3Rpb24gb3V0cHV0KGNvZGUsb3V0cyl7Y3VyX2FjY3VtJj1tYXNrc1tjdXJfYml0c107aWYoY3VyX2JpdHM+MCljdXJfYWNjdW18PWNvZGU8PGN1cl9iaXRzO2Vsc2UgY3VyX2FjY3VtPWNvZGU7Y3VyX2JpdHMrPW5fYml0czt3aGlsZShjdXJfYml0cz49OCl7Y2hhcl9vdXQoY3VyX2FjY3VtJjI1NSxvdXRzKTtjdXJfYWNjdW0+Pj04O2N1cl9iaXRzLT04fWlmKGZyZWVfZW50Pm1heGNvZGV8fGNsZWFyX2ZsZyl7aWYoY2xlYXJfZmxnKXttYXhjb2RlPU1BWENPREUobl9iaXRzPWdfaW5pdF9iaXRzKTtjbGVhcl9mbGc9ZmFsc2V9ZWxzZXsrK25fYml0cztpZihuX2JpdHM9PUJJVFMpbWF4Y29kZT0xPDxCSVRTO2Vsc2UgbWF4Y29kZT1NQVhDT0RFKG5fYml0cyl9fWlmKGNvZGU9PUVPRkNvZGUpe3doaWxlKGN1cl9iaXRzPjApe2NoYXJfb3V0KGN1cl9hY2N1bSYyNTUsb3V0cyk7Y3VyX2FjY3VtPj49ODtjdXJfYml0cy09OH1mbHVzaF9jaGFyKG91dHMpfX10aGlzLmVuY29kZT1lbmNvZGV9bW9kdWxlLmV4cG9ydHM9TFpXRW5jb2Rlcn0se31dLDM6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpe3ZhciBuY3ljbGVzPTEwMDt2YXIgbmV0c2l6ZT0yNTY7dmFyIG1heG5ldHBvcz1uZXRzaXplLTE7dmFyIG5ldGJpYXNzaGlmdD00O3ZhciBpbnRiaWFzc2hpZnQ9MTY7dmFyIGludGJpYXM9MTw8aW50Ymlhc3NoaWZ0O3ZhciBnYW1tYXNoaWZ0PTEwO3ZhciBnYW1tYT0xPDxnYW1tYXNoaWZ0O3ZhciBiZXRhc2hpZnQ9MTA7dmFyIGJldGE9aW50Ymlhcz4+YmV0YXNoaWZ0O3ZhciBiZXRhZ2FtbWE9aW50Ymlhczw8Z2FtbWFzaGlmdC1iZXRhc2hpZnQ7dmFyIGluaXRyYWQ9bmV0c2l6ZT4+Mzt2YXIgcmFkaXVzYmlhc3NoaWZ0PTY7dmFyIHJhZGl1c2JpYXM9MTw8cmFkaXVzYmlhc3NoaWZ0O3ZhciBpbml0cmFkaXVzPWluaXRyYWQqcmFkaXVzYmlhczt2YXIgcmFkaXVzZGVjPTMwO3ZhciBhbHBoYWJpYXNzaGlmdD0xMDt2YXIgaW5pdGFscGhhPTE8PGFscGhhYmlhc3NoaWZ0O3ZhciBhbHBoYWRlYzt2YXIgcmFkYmlhc3NoaWZ0PTg7dmFyIHJhZGJpYXM9MTw8cmFkYmlhc3NoaWZ0O3ZhciBhbHBoYXJhZGJzaGlmdD1hbHBoYWJpYXNzaGlmdCtyYWRiaWFzc2hpZnQ7dmFyIGFscGhhcmFkYmlhcz0xPDxhbHBoYXJhZGJzaGlmdDt2YXIgcHJpbWUxPTQ5OTt2YXIgcHJpbWUyPTQ5MTt2YXIgcHJpbWUzPTQ4Nzt2YXIgcHJpbWU0PTUwMzt2YXIgbWlucGljdHVyZWJ5dGVzPTMqcHJpbWU0O2Z1bmN0aW9uIE5ldVF1YW50KHBpeGVscyxzYW1wbGVmYWMpe3ZhciBuZXR3b3JrO3ZhciBuZXRpbmRleDt2YXIgYmlhczt2YXIgZnJlcTt2YXIgcmFkcG93ZXI7ZnVuY3Rpb24gaW5pdCgpe25ldHdvcms9W107bmV0aW5kZXg9bmV3IEludDMyQXJyYXkoMjU2KTtiaWFzPW5ldyBJbnQzMkFycmF5KG5ldHNpemUpO2ZyZXE9bmV3IEludDMyQXJyYXkobmV0c2l6ZSk7cmFkcG93ZXI9bmV3IEludDMyQXJyYXkobmV0c2l6ZT4+Myk7dmFyIGksdjtmb3IoaT0wO2k8bmV0c2l6ZTtpKyspe3Y9KGk8PG5ldGJpYXNzaGlmdCs4KS9uZXRzaXplO25ldHdvcmtbaV09bmV3IEZsb2F0NjRBcnJheShbdix2LHYsMF0pO2ZyZXFbaV09aW50Ymlhcy9uZXRzaXplO2JpYXNbaV09MH19ZnVuY3Rpb24gdW5iaWFzbmV0KCl7Zm9yKHZhciBpPTA7aTxuZXRzaXplO2krKyl7bmV0d29ya1tpXVswXT4+PW5ldGJpYXNzaGlmdDtuZXR3b3JrW2ldWzFdPj49bmV0Ymlhc3NoaWZ0O25ldHdvcmtbaV1bMl0+Pj1uZXRiaWFzc2hpZnQ7bmV0d29ya1tpXVszXT1pfX1mdW5jdGlvbiBhbHRlcnNpbmdsZShhbHBoYSxpLGIsZyxyKXtuZXR3b3JrW2ldWzBdLT1hbHBoYSoobmV0d29ya1tpXVswXS1iKS9pbml0YWxwaGE7bmV0d29ya1tpXVsxXS09YWxwaGEqKG5ldHdvcmtbaV1bMV0tZykvaW5pdGFscGhhO25ldHdvcmtbaV1bMl0tPWFscGhhKihuZXR3b3JrW2ldWzJdLXIpL2luaXRhbHBoYX1mdW5jdGlvbiBhbHRlcm5laWdoKHJhZGl1cyxpLGIsZyxyKXt2YXIgbG89TWF0aC5hYnMoaS1yYWRpdXMpO3ZhciBoaT1NYXRoLm1pbihpK3JhZGl1cyxuZXRzaXplKTt2YXIgaj1pKzE7dmFyIGs9aS0xO3ZhciBtPTE7dmFyIHAsYTt3aGlsZShqPGhpfHxrPmxvKXthPXJhZHBvd2VyW20rK107aWYoajxoaSl7cD1uZXR3b3JrW2orK107cFswXS09YSoocFswXS1iKS9hbHBoYXJhZGJpYXM7cFsxXS09YSoocFsxXS1nKS9hbHBoYXJhZGJpYXM7cFsyXS09YSoocFsyXS1yKS9hbHBoYXJhZGJpYXN9aWYoaz5sbyl7cD1uZXR3b3JrW2stLV07cFswXS09YSoocFswXS1iKS9hbHBoYXJhZGJpYXM7cFsxXS09YSoocFsxXS1nKS9hbHBoYXJhZGJpYXM7cFsyXS09YSoocFsyXS1yKS9hbHBoYXJhZGJpYXN9fX1mdW5jdGlvbiBjb250ZXN0KGIsZyxyKXt2YXIgYmVzdGQ9figxPDwzMSk7dmFyIGJlc3RiaWFzZD1iZXN0ZDt2YXIgYmVzdHBvcz0tMTt2YXIgYmVzdGJpYXNwb3M9YmVzdHBvczt2YXIgaSxuLGRpc3QsYmlhc2Rpc3QsYmV0YWZyZXE7Zm9yKGk9MDtpPG5ldHNpemU7aSsrKXtuPW5ldHdvcmtbaV07ZGlzdD1NYXRoLmFicyhuWzBdLWIpK01hdGguYWJzKG5bMV0tZykrTWF0aC5hYnMoblsyXS1yKTtpZihkaXN0PGJlc3RkKXtiZXN0ZD1kaXN0O2Jlc3Rwb3M9aX1iaWFzZGlzdD1kaXN0LShiaWFzW2ldPj5pbnRiaWFzc2hpZnQtbmV0Ymlhc3NoaWZ0KTtpZihiaWFzZGlzdDxiZXN0Ymlhc2Qpe2Jlc3RiaWFzZD1iaWFzZGlzdDtiZXN0Ymlhc3Bvcz1pfWJldGFmcmVxPWZyZXFbaV0+PmJldGFzaGlmdDtmcmVxW2ldLT1iZXRhZnJlcTtiaWFzW2ldKz1iZXRhZnJlcTw8Z2FtbWFzaGlmdH1mcmVxW2Jlc3Rwb3NdKz1iZXRhO2JpYXNbYmVzdHBvc10tPWJldGFnYW1tYTtyZXR1cm4gYmVzdGJpYXNwb3N9ZnVuY3Rpb24gaW54YnVpbGQoKXt2YXIgaSxqLHAscSxzbWFsbHBvcyxzbWFsbHZhbCxwcmV2aW91c2NvbD0wLHN0YXJ0cG9zPTA7Zm9yKGk9MDtpPG5ldHNpemU7aSsrKXtwPW5ldHdvcmtbaV07c21hbGxwb3M9aTtzbWFsbHZhbD1wWzFdO2ZvcihqPWkrMTtqPG5ldHNpemU7aisrKXtxPW5ldHdvcmtbal07aWYocVsxXTxzbWFsbHZhbCl7c21hbGxwb3M9ajtzbWFsbHZhbD1xWzFdfX1xPW5ldHdvcmtbc21hbGxwb3NdO2lmKGkhPXNtYWxscG9zKXtqPXFbMF07cVswXT1wWzBdO3BbMF09ajtqPXFbMV07cVsxXT1wWzFdO3BbMV09ajtqPXFbMl07cVsyXT1wWzJdO3BbMl09ajtqPXFbM107cVszXT1wWzNdO3BbM109an1pZihzbWFsbHZhbCE9cHJldmlvdXNjb2wpe25ldGluZGV4W3ByZXZpb3VzY29sXT1zdGFydHBvcytpPj4xO2ZvcihqPXByZXZpb3VzY29sKzE7ajxzbWFsbHZhbDtqKyspbmV0aW5kZXhbal09aTtwcmV2aW91c2NvbD1zbWFsbHZhbDtzdGFydHBvcz1pfX1uZXRpbmRleFtwcmV2aW91c2NvbF09c3RhcnRwb3MrbWF4bmV0cG9zPj4xO2ZvcihqPXByZXZpb3VzY29sKzE7ajwyNTY7aisrKW5ldGluZGV4W2pdPW1heG5ldHBvc31mdW5jdGlvbiBpbnhzZWFyY2goYixnLHIpe3ZhciBhLHAsZGlzdDt2YXIgYmVzdGQ9MWUzO3ZhciBiZXN0PS0xO3ZhciBpPW5ldGluZGV4W2ddO3ZhciBqPWktMTt3aGlsZShpPG5ldHNpemV8fGo+PTApe2lmKGk8bmV0c2l6ZSl7cD1uZXR3b3JrW2ldO2Rpc3Q9cFsxXS1nO2lmKGRpc3Q+PWJlc3RkKWk9bmV0c2l6ZTtlbHNle2krKztpZihkaXN0PDApZGlzdD0tZGlzdDthPXBbMF0tYjtpZihhPDApYT0tYTtkaXN0Kz1hO2lmKGRpc3Q8YmVzdGQpe2E9cFsyXS1yO2lmKGE8MClhPS1hO2Rpc3QrPWE7aWYoZGlzdDxiZXN0ZCl7YmVzdGQ9ZGlzdDtiZXN0PXBbM119fX19aWYoaj49MCl7cD1uZXR3b3JrW2pdO2Rpc3Q9Zy1wWzFdO2lmKGRpc3Q+PWJlc3RkKWo9LTE7ZWxzZXtqLS07aWYoZGlzdDwwKWRpc3Q9LWRpc3Q7YT1wWzBdLWI7aWYoYTwwKWE9LWE7ZGlzdCs9YTtpZihkaXN0PGJlc3RkKXthPXBbMl0tcjtpZihhPDApYT0tYTtkaXN0Kz1hO2lmKGRpc3Q8YmVzdGQpe2Jlc3RkPWRpc3Q7YmVzdD1wWzNdfX19fX1yZXR1cm4gYmVzdH1mdW5jdGlvbiBsZWFybigpe3ZhciBpO3ZhciBsZW5ndGhjb3VudD1waXhlbHMubGVuZ3RoO3ZhciBhbHBoYWRlYz0zMCsoc2FtcGxlZmFjLTEpLzM7dmFyIHNhbXBsZXBpeGVscz1sZW5ndGhjb3VudC8oMypzYW1wbGVmYWMpO3ZhciBkZWx0YT1+fihzYW1wbGVwaXhlbHMvbmN5Y2xlcyk7dmFyIGFscGhhPWluaXRhbHBoYTt2YXIgcmFkaXVzPWluaXRyYWRpdXM7dmFyIHJhZD1yYWRpdXM+PnJhZGl1c2JpYXNzaGlmdDtpZihyYWQ8PTEpcmFkPTA7Zm9yKGk9MDtpPHJhZDtpKyspcmFkcG93ZXJbaV09YWxwaGEqKChyYWQqcmFkLWkqaSkqcmFkYmlhcy8ocmFkKnJhZCkpO3ZhciBzdGVwO2lmKGxlbmd0aGNvdW50PG1pbnBpY3R1cmVieXRlcyl7c2FtcGxlZmFjPTE7c3RlcD0zfWVsc2UgaWYobGVuZ3RoY291bnQlcHJpbWUxIT09MCl7c3RlcD0zKnByaW1lMX1lbHNlIGlmKGxlbmd0aGNvdW50JXByaW1lMiE9PTApe3N0ZXA9MypwcmltZTJ9ZWxzZSBpZihsZW5ndGhjb3VudCVwcmltZTMhPT0wKXtzdGVwPTMqcHJpbWUzfWVsc2V7c3RlcD0zKnByaW1lNH12YXIgYixnLHIsajt2YXIgcGl4PTA7aT0wO3doaWxlKGk8c2FtcGxlcGl4ZWxzKXtiPShwaXhlbHNbcGl4XSYyNTUpPDxuZXRiaWFzc2hpZnQ7Zz0ocGl4ZWxzW3BpeCsxXSYyNTUpPDxuZXRiaWFzc2hpZnQ7cj0ocGl4ZWxzW3BpeCsyXSYyNTUpPDxuZXRiaWFzc2hpZnQ7aj1jb250ZXN0KGIsZyxyKTthbHRlcnNpbmdsZShhbHBoYSxqLGIsZyxyKTtpZihyYWQhPT0wKWFsdGVybmVpZ2gocmFkLGosYixnLHIpO3BpeCs9c3RlcDtpZihwaXg+PWxlbmd0aGNvdW50KXBpeC09bGVuZ3RoY291bnQ7aSsrO2lmKGRlbHRhPT09MClkZWx0YT0xO2lmKGklZGVsdGE9PT0wKXthbHBoYS09YWxwaGEvYWxwaGFkZWM7cmFkaXVzLT1yYWRpdXMvcmFkaXVzZGVjO3JhZD1yYWRpdXM+PnJhZGl1c2JpYXNzaGlmdDtpZihyYWQ8PTEpcmFkPTA7Zm9yKGo9MDtqPHJhZDtqKyspcmFkcG93ZXJbal09YWxwaGEqKChyYWQqcmFkLWoqaikqcmFkYmlhcy8ocmFkKnJhZCkpfX19ZnVuY3Rpb24gYnVpbGRDb2xvcm1hcCgpe2luaXQoKTtsZWFybigpO3VuYmlhc25ldCgpO2lueGJ1aWxkKCl9dGhpcy5idWlsZENvbG9ybWFwPWJ1aWxkQ29sb3JtYXA7ZnVuY3Rpb24gZ2V0Q29sb3JtYXAoKXt2YXIgbWFwPVtdO3ZhciBpbmRleD1bXTtmb3IodmFyIGk9MDtpPG5ldHNpemU7aSsrKWluZGV4W25ldHdvcmtbaV1bM11dPWk7dmFyIGs9MDtmb3IodmFyIGw9MDtsPG5ldHNpemU7bCsrKXt2YXIgaj1pbmRleFtsXTttYXBbaysrXT1uZXR3b3JrW2pdWzBdO21hcFtrKytdPW5ldHdvcmtbal1bMV07bWFwW2srK109bmV0d29ya1tqXVsyXX1yZXR1cm4gbWFwfXRoaXMuZ2V0Q29sb3JtYXA9Z2V0Q29sb3JtYXA7dGhpcy5sb29rdXBSR0I9aW54c2VhcmNofW1vZHVsZS5leHBvcnRzPU5ldVF1YW50fSx7fV0sNDpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7dmFyIEdJRkVuY29kZXIscmVuZGVyRnJhbWU7R0lGRW5jb2Rlcj1yZXF1aXJlKCIuL0dJRkVuY29kZXIuanMiKTtyZW5kZXJGcmFtZT1mdW5jdGlvbihmcmFtZSl7dmFyIGVuY29kZXIscGFnZSxzdHJlYW0sdHJhbnNmZXI7ZW5jb2Rlcj1uZXcgR0lGRW5jb2RlcihmcmFtZS53aWR0aCxmcmFtZS5oZWlnaHQpO2lmKGZyYW1lLmluZGV4PT09MCl7ZW5jb2Rlci53cml0ZUhlYWRlcigpfWVsc2V7ZW5jb2Rlci5maXJzdEZyYW1lPWZhbHNlfWVuY29kZXIuc2V0VHJhbnNwYXJlbnQoZnJhbWUudHJhbnNwYXJlbnQpO2VuY29kZXIuc2V0UmVwZWF0KGZyYW1lLnJlcGVhdCk7ZW5jb2Rlci5zZXREZWxheShmcmFtZS5kZWxheSk7ZW5jb2Rlci5zZXRRdWFsaXR5KGZyYW1lLnF1YWxpdHkpO2VuY29kZXIuc2V0RGl0aGVyKGZyYW1lLmRpdGhlcik7ZW5jb2Rlci5zZXRHbG9iYWxQYWxldHRlKGZyYW1lLmdsb2JhbFBhbGV0dGUpO2VuY29kZXIuYWRkRnJhbWUoZnJhbWUuZGF0YSk7aWYoZnJhbWUubGFzdCl7ZW5jb2Rlci5maW5pc2goKX1pZihmcmFtZS5nbG9iYWxQYWxldHRlPT09dHJ1ZSl7ZnJhbWUuZ2xvYmFsUGFsZXR0ZT1lbmNvZGVyLmdldEdsb2JhbFBhbGV0dGUoKX1zdHJlYW09ZW5jb2Rlci5zdHJlYW0oKTtmcmFtZS5kYXRhPXN0cmVhbS5wYWdlcztmcmFtZS5jdXJzb3I9c3RyZWFtLmN1cnNvcjtmcmFtZS5wYWdlU2l6ZT1zdHJlYW0uY29uc3RydWN0b3IucGFnZVNpemU7aWYoZnJhbWUuY2FuVHJhbnNmZXIpe3RyYW5zZmVyPWZ1bmN0aW9uKCl7dmFyIGksbGVuLHJlZixyZXN1bHRzO3JlZj1mcmFtZS5kYXRhO3Jlc3VsdHM9W107Zm9yKGk9MCxsZW49cmVmLmxlbmd0aDtpPGxlbjtpKyspe3BhZ2U9cmVmW2ldO3Jlc3VsdHMucHVzaChwYWdlLmJ1ZmZlcil9cmV0dXJuIHJlc3VsdHN9KCk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2UoZnJhbWUsdHJhbnNmZXIpfWVsc2V7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2UoZnJhbWUpfX07c2VsZi5vbm1lc3NhZ2U9ZnVuY3Rpb24oZXZlbnQpe3JldHVybiByZW5kZXJGcmFtZShldmVudC5kYXRhKX19LHsiLi9HSUZFbmNvZGVyLmpzIjoxfV19LHt9LFs0XSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWdpZi53b3JrZXIuanMubWFwCg==",self.location).href});for(const i of this.frames)r.addFrame(i,{delay:this._frameDelay});r.on("finished",i=>{e(i)}),r.on("error",i=>{console.error("[GifRecorder] GIF 合成失败:",i),a(i)}),r.render()})}download(e,a="ORM-Record"){const r=`${a}.gif`,i=URL.createObjectURL(e),l=document.createElement("a");l.href=i,l.download=r,l.style.display="none",document.body.appendChild(l),l.click(),setTimeout(()=>{document.body.removeChild(l),URL.revokeObjectURL(i)},100)}async saveAsFile(e){const r=`weather-animation-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.gif`;if(window.showSaveFilePicker)try{const l=await(await window.showSaveFilePicker({suggestedName:r,types:[{description:"GIF Images",accept:{"image/gif":[".gif"]}}]})).createWritable();await l.write(e),await l.close(),console.log("文件保存成功");return}catch(i){console.log("用户取消了文件保存或发生错误:",i)}}reset(){this.frames=[],this.captureRect=null,this._isRecording=!1,this.canvas=null,this.ctx=null}get isRecording(){return this._isRecording}get frameDelay(){return this._frameDelay}}const jy="",sf={name:"IdmCapture",props:{isPlaying:{type:Boolean,default:!1},enabled:{type:Boolean,default:!1},frequency:{type:Number,default:1e3},currentTimestamp:{type:Number,default:void 0},token:{type:String,default:""}},emits:["closeRecord","preview","frameCount"],data(){return{recorder:null,actionStatus:0,startX:0,startY:0,selection:{x:0,y:0,width:0,height:0},frameCount:0,blob:null,gifUrl:""}},computed:{selectionStyle(){return{left:`${this.selection.x}px`,top:`${this.selection.y}px`,width:`${this.selection.width}px`,height:`${this.selection.height}px`}},computedUTCTime(){return t=>S(t).utc().format("yyyy-MM-DD HH:mm[Z]")}},watch:{frameCount:{handler(t){t&&this.$emit("frameCount",this.frameCount)}},enabled:{handler(t){t?this.actionStatus=1:this.actionStatus=5}},actionStatus:{handler(t){this.actionStatus===4&&this.startRecord(),this.actionStatus===5&&this.recorder&&this.createGif(),this.actionStatus===6&&this.handleUpload(this.blob),this.actionStatus===7&&this.$emit("preview",this.gifUrl)}}},methods:{handleMouseDown(t){this.actionStatus>=2&&t.clientX>=this.selection.x&&t.clientX<=this.selection.x+this.selection.width&&t.clientY>=this.selection.y&&t.clientY<=this.selection.y+this.selection.height||(this.actionStatus=2,this.startX=t.clientX,this.startY=t.clientY,this.selection={x:t.clientX,y:t.clientY,width:0,height:0})},handleMouseMove(t){if(this.actionStatus===3)return;const e=t.clientX,a=t.clientY;this.selection={x:Math.min(this.startX,e),y:Math.min(this.startY,a),width:Math.abs(e-this.startX),height:Math.abs(a-this.startY)}},handleMouseUp(){var t,e;((t=this.selection)==null?void 0:t.width)>20&&((e=this.selection)==null?void 0:e.height)>20?this.actionStatus=3:this.actionStatus=1},handleConfirm(){this.actionStatus=4},handleCancel(){this.actionStatus=1,this.recorder=null,this.selection={x:0,y:0,width:0,height:0}},startRecord(){var t,e,a;this.frameCount=0,this.recorder=new nf,(t=this.recorder)==null||t.setArea(this.selection),(e=this.recorder)==null||e.setFrameDelay(this.frequency),(a=this.recorder)==null||a.startRecording(),console.log("[BottomBar] 录制准备就绪")},async captureCurrentFrame(){var t,e,a;if(!(!this.recorder||this.actionStatus!==4)){console.log("[BottomBar] 开始截第"+(this.frameCount+1)+"帧截图");try{const r=(t=document.getElementsByClassName("gif-container"))==null?void 0:t[0];r&&(await((e=this.recorder)==null?void 0:e.captureFrame(r,this.computedUTCTime(this.currentTimestamp))),this.frameCount=(a=this.recorder)==null?void 0:a.getFrameCount(),console.log("[BottomBar] 截图总帧数:",this.frameCount))}catch(r){console.error("[BottomBar] 截图失败:",r)}}},async createGif(){console.log("[BottomBar] 等待最后一帧截图完成..."),setTimeout(async()=>{var t,e;if(this.recorder){(t=this.recorder)==null||t.stopRecording(),console.log("[BottomBar] 停止录制,总帧数:",this.frameCount);try{this.blob=await((e=this.recorder)==null?void 0:e.generateGif()),console.log("[BottomBar] GIF生成完成:",this.blob),this.blob&&(this.actionStatus=6)}catch(a){console.error("[BottomBar] GIF生成失败:",a),this.clear()}}},2e3)},clear(){var t;this.actionStatus=0,this.frameCount=0,this.blob=null,this.gifUrl="",this.recorder&&((t=this.recorder)==null||t.reset(),this.recorder=null),this.$emit("closeRecord"),console.log("[BottomBar] 关闭录制功能,清空数据")},async handleUpload(t){var i;console.log("[BottomBar] 开始上传");const e={stream:t,ext:"gif"},a=await wr.AliOssSTSClient.create(this.token),r=await(a==null?void 0:a.put2HZ("/share",[e]));this.gifUrl=((i=r==null?void 0:r[0])==null?void 0:i.url)||"",console.log("[BottomBar] 上传成功"),this.actionStatus=7},handleDownload(){const e=`ORM-Record-${S().format("yyyyMMDD-HHmm")}.gif`;this.recorder.download(this.blob,e)}}},cf={class:"capture-container"},mf={key:0,class:"drag-tips text-h4"},df={class:"size-hint mt-2 ml-2 text-body-2 px-2 py-1 rounded font-weight-bold bg-background"},hf={class:"size-hint mt-2 ml-2 text-body-2 px-2 py-1 rounded font-weight-bold bg-background"},pf={class:"text-body-2"},gf={key:0,class:"py-1 px-2 d-flex align-center justify-center ga-2"},uf={class:"text-body-2"},ff={key:1,class:"py-1 px-2 d-flex align-center justify-center ga-2"},yf={class:"text-body-2"};function bf(t,e,a,r,i,l){const n=o.resolveComponent("VBtn");return o.openBlock(),o.createElementBlock("div",cf,[i.actionStatus>0&&i.actionStatus<4?(o.openBlock(),o.createElementBlock("div",{key:0,class:"capture-selector",onMousedown:e[2]||(e[2]=(...c)=>l.handleMouseDown&&l.handleMouseDown(...c)),onMousemove:e[3]||(e[3]=(...c)=>l.handleMouseMove&&l.handleMouseMove(...c)),onMouseup:e[4]||(e[4]=(...c)=>l.handleMouseUp&&l.handleMouseUp(...c))},[i.actionStatus===1?(o.openBlock(),o.createElementBlock("div",mf,o.toDisplayString(t.$t("tips.crossHairText")),1)):o.createCommentVNode("",!0),i.actionStatus>=2?(o.openBlock(),o.createElementBlock("div",{key:1,class:"selection-box",style:o.normalizeStyle(l.selectionStyle)},[o.createElementVNode("div",df,o.toDisplayString(Math.round(i.selection.width))+" × "+o.toDisplayString(Math.round(i.selection.height)),1),i.actionStatus===3?(o.openBlock(),o.createElementBlock("div",{key:0,class:"action-buttons px-2 rounded font-weight-bold bg-background d-flex justify-end ga-4",onMousedown:e[0]||(e[0]=o.withModifiers(()=>{},["stop"])),onMouseup:e[1]||(e[1]=o.withModifiers(()=>{},["stop"]))},[o.createVNode(n,{icon:"mdi-check",density:"compact",variant:"plain",class:"text-none text-body-1",onClick:o.withModifiers(l.handleConfirm,["stop"])},null,8,["onClick"]),o.createVNode(n,{icon:"mdi-close",density:"compact",variant:"plain",class:"text-none text-body-1",onClick:o.withModifiers(l.handleCancel,["stop"])},null,8,["onClick"])],32)):o.createCommentVNode("",!0)],4)):o.createCommentVNode("",!0)],32)):o.createCommentVNode("",!0),i.actionStatus>=4&&i.actionStatus<=6?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["capture-frame",{recording:i.actionStatus===5}]),style:o.normalizeStyle(l.selectionStyle)},[o.createElementVNode("div",hf,[o.createElementVNode("div",pf,o.toDisplayString(i.selection.width)+" × "+o.toDisplayString(i.selection.height),1)]),o.createElementVNode("div",{class:"action-status mt-2 px-2 rounded font-weight-bold bg-background d-flex align-center justify-end ga-4",onMousedown:e[5]||(e[5]=o.withModifiers(()=>{},["stop"])),onMouseup:e[6]||(e[6]=o.withModifiers(()=>{},["stop"]))},[i.actionStatus===4?(o.openBlock(),o.createElementBlock("div",gf,[e[7]||(e[7]=o.createElementVNode("div",{class:"dot bg-danger"},null,-1)),o.createElementVNode("div",uf,o.toDisplayString(t.$t("tips.recordingText")),1)])):o.createCommentVNode("",!0),i.actionStatus===5||i.actionStatus===6?(o.openBlock(),o.createElementBlock("div",ff,[e[8]||(e[8]=o.createElementVNode("div",{class:"dot bg-success"},null,-1)),o.createElementVNode("div",yf,o.toDisplayString(t.$t("tips.savingText")),1)])):o.createCommentVNode("",!0)],32)],6)):o.createCommentVNode("",!0)])}const wf=X(sf,[["render",bf],["__scopeId","data-v-46a701be"]]),Hy="",xf={name:"IdmBottomBar",components:{DateTimePicker:qe,IdmCapture:wf},props:{menuToggle:{type:Object,default:{}},weatherCheckList:{type:Array}},emits:["forecastModel","realTime","timeZone"],data(){return{right:10,show:{weather:!1,spot:!1,tropical:!1,ship:!1},dayAbout:{h:-7,f:14},currentDateTimeZ:void 0,currentTimestamp:void 0,currentDateTime:void 0,currentRealTime:void 0,minTimestamp:void 0,maxTimestamp:void 0,animation:void 0,startAnimate:0,step:0,frequency:1e3,paused:!0,intervalHour:3,intervalOptions:[3,6,12,24],showTimezone:!1,timeZone:localStorage.getItem("idm-timeZone-gl4")?Number(localStorage.getItem("idm-timeZone-gl4")):S().utcOffset()/60,offsets:[-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12],source:localStorage.getItem("forecastModelCacheGL4")==="undefined"?"ECMWF":localStorage.getItem("forecastModelCacheGL4"),gifEnabled:!1,frameCount:0}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10})},immediate:!0},source:{handler(t,e){t&&t!==e&&(this.$emit("forecastModel",t),localStorage.setItem("forecastModelCacheGL4",t))},immediate:!0},step:{handler(t,e){if(!isNaN(t)&&!isNaN(e)&&t!==e){const a=t-e;let r=this.currentTimestamp;r=r+a*this.intervalHour*3600*1e3,r<=this.minTimestamp||r>=this.maxTimestamp?this.paused?this.currentTimestamp=a<0?this.minTimestamp:this.maxTimestamp:this.handleReset():this.currentTimestamp=r}}},currentTimestamp:{handler(){this.currentDateTimeZ=S(this.currentTimestamp).utc().format("yyyy-MM-DD HH:00[Z]"),this.$emit("realTime",this.currentDateTimeZ),this.currentDateTime=`${S.tz(this.currentTimestamp,this.timeZoneName).clone().format("yyyy-MM-DD : HH:00")}`},immediate:!0},timeZone:{handler(t,e){t!==e&&(this.$emit("timeZone",this.timeZone),localStorage.setItem("idm-timeZone-gl4",this.timeZone),this.showTimezone=!1)},immediate:!0},show:{handler(){var t;Object.values(this.show).includes(!0)||(t=this.$refs.dateTimePicker)==null||t.handleCancelDate()},deep:!0},gifEnabled:{handler(t,e){t||this.handlePause()},immediate:!0}},mounted(){this.handleReset()},methods:{handleReset(){var t;this.handlePause(),this.startAnimate=0,(t=this.$refs.dateTimePicker)==null||t.handleReset()},changeDayAbout(t,e){this.dayAbout={h:t??-7,f:e??14}},handleToggle(t,e){this.show[t]=e},handleBackward(){this.handlePause(),this.step-=1},handleForward(){this.handlePause(),this.step+=1},handlePlay(){this.paused=!1,this.step=0,this.animateSpeeds()},async handlePause(){this.animation&&cancelAnimationFrame(this.animation),this.paused=!0},animateSpeeds(t){const e=t-this.startAnimate;this.step=Math.floor(e/this.frequency),this.animation=requestAnimationFrame(this.animateSpeeds)},handleClickFastWeather(t){this.$parent.$refs.idmWeatherLayers.handleFastWeatherToggle(t)},handleClickFastMore(){this.$parent.$refs.idmWeatherLayers.handleMenuToggle()}}},kf={class:"idm-bottom-bar-gl4"},_f={class:"date-box d-flex ga-2 mr-2"},Lf={class:"play-btns-box d-flex justify-center align-center cursor-pointer ga-1"},zf={class:"fast-weathers-box d-flex justify-center align-center ga-2 cursor-pointer"},Cf={class:"model-box d-flex justify-center align-center ga-2 my-2"},vf={key:0,class:"list d-flex flex-wrap pa-2 rounded ga-2"},Sf=["onClick"],Nf={class:"btn-box d-flex justify-start align-center rounded ga-2 py-1 px-3"},Vf={class:"text-body-1"};function Pf(t,e,a,r,i,l){const n=o.resolveComponent("IdmCapture"),c=o.resolveComponent("DateTimePicker"),s=o.resolveComponent("VListItemTitle"),d=o.resolveComponent("VListItem"),m=o.resolveComponent("VList"),p=o.resolveComponent("VMenu"),g=o.resolveComponent("VBtn"),y=o.resolveComponent("VDivider"),u=o.resolveComponent("VTooltip");return o.openBlock(),o.createElementBlock("div",kf,[o.createVNode(n,o.mergeProps({ref:"capture","is-playing":!i.paused,enabled:i.gifEnabled,frequency:i.frequency,"current-timestamp":i.currentTimestamp},t.$attrs,{onCloseRecord:e[0]||(e[0]=h=>{i.gifEnabled=!1,i.paused=!0}),onFrameCount:e[1]||(e[1]=h=>i.frameCount=h)}),null,16,["is-playing","enabled","frequency","current-timestamp"]),o.createElementVNode("div",{class:"timeline-box px-2 d-flex justify-start align-center rounded",style:o.normalizeStyle({right:i.right+146+"px",bottom:Object.values(i.show).includes(!0)?"10px":"-100px"})},[o.createElementVNode("div",_f,[o.createVNode(c,o.mergeProps({ref:"dateTimePicker","date-time":i.currentDateTimeZ,"time-zone":i.timeZone,"day-about":i.dayAbout,"interval-hour":i.intervalHour,width:230},t.$attrs,{onCurrentTimestamp:e[2]||(e[2]=h=>i.currentTimestamp=h),onCurrentRealTime:e[3]||(e[3]=h=>i.currentRealTime=h),onMinTimestamp:e[4]||(e[4]=h=>i.minTimestamp=h),onMaxTimestamp:e[5]||(e[5]=h=>i.maxTimestamp=h)}),null,16,["date-time","time-zone","day-about","interval-hour"]),o.createVNode(g,{text:"",height:"30",class:"text-none elevation-0 btn-border-1 btn-bg-1 text-body-1","min-width":"30"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.intervalHour)+" h ",1),o.createVNode(p,{activator:"parent"},{default:o.withCtx(()=>[o.createVNode(m,{class:"pa-1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.intervalOptions,(h,f)=>(o.openBlock(),o.createBlock(d,{key:f,value:h,variant:i.intervalHour===h?"tonal":"text",color:"primary",rounded:"",active:i.intervalHour===h,height:"30","min-height":"30","min-width":"30",class:"pa-0 text-center text-body-1"},{default:o.withCtx(()=>[o.createVNode(s,{onClick:k=>i.intervalHour=h},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(h)+"h",1)]),_:2},1032,["onClick"])]),_:2},1032,["value","variant","active"]))),128))]),_:1})]),_:1})]),_:1})]),o.createVNode(y,{vertical:"",class:"mx-2 my-3",style:{height:"16px"}}),o.createElementVNode("div",Lf,[o.createVNode(u,{text:i.gifEnabled?t.$t("actions.stop"):t.$t("actions.record"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[i.gifEnabled?(o.openBlock(),o.createBlock(g,o.mergeProps({key:1,disabled:i.frameCount<1},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:e[7]||(e[7]=f=>i.gifEnabled=!i.gifEnabled)}),{default:o.withCtx(()=>e[15]||(e[15]=[o.createElementVNode("i",{class:"iconfont icon-stop-record text-danger"},null,-1)])),_:2,__:[15]},1040,["disabled"])):(o.openBlock(),o.createBlock(g,o.mergeProps({key:0},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:e[6]||(e[6]=f=>i.gifEnabled=!i.gifEnabled)}),{default:o.withCtx(()=>e[14]||(e[14]=[o.createElementVNode("i",{class:"iconfont icon-record"},null,-1)])),_:2,__:[14]},1040))]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.reset"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handleReset}),{default:o.withCtx(()=>e[16]||(e[16]=[o.createElementVNode("i",{class:"iconfont icon-Reset"},null,-1)])),_:2,__:[16]},1040,["onClick"])]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.backward"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handleBackward}),{default:o.withCtx(()=>e[17]||(e[17]=[o.createElementVNode("i",{class:"iconfont icon-Backward"},null,-1)])),_:2,__:[17]},1040,["onClick"])]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.play"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[i.paused?(o.openBlock(),o.createBlock(g,o.mergeProps({key:0},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handlePlay}),{default:o.withCtx(()=>e[18]||(e[18]=[o.createElementVNode("i",{class:"iconfont icon-Play"},null,-1)])),_:2,__:[18]},1040,["onClick"])):o.createCommentVNode("",!0)]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.pause"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[i.paused?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(g,o.mergeProps({key:0},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handlePause}),{default:o.withCtx(()=>e[19]||(e[19]=[o.createElementVNode("i",{class:"iconfont icon-Pause"},null,-1)])),_:2,__:[19]},1040,["onClick"]))]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.forward"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handleForward}),{default:o.withCtx(()=>e[20]||(e[20]=[o.createElementVNode("i",{class:"iconfont icon-Forward"},null,-1)])),_:2,__:[20]},1040,["onClick"])]),_:1},8,["text"])]),o.createVNode(y,{vertical:"",class:"mx-2 my-3",style:{height:"16px"}}),o.createElementVNode("div",zf,[o.createVNode(u,{text:t.$t("weather.windBarbs"),location:"top"},{activator:o.withCtx(({props:h})=>{var f,k;return[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",color:(f=a.weatherCheckList)!=null&&f.includes("wind")?"primary":"",variant:(k=a.weatherCheckList)!=null&&k.includes("wind")?"elevated":"text",height:"24",width:"24","min-width":"24",onClick:e[8]||(e[8]=w=>l.handleClickFastWeather("wind"))}),{default:o.withCtx(()=>e[21]||(e[21]=[o.createElementVNode("i",{class:"iconfont icon-a-WindLevel"},null,-1)])),_:2,__:[21]},1040,["color","variant"])]}),_:1},8,["text"]),o.createVNode(u,{text:t.$t("weather.sigWaveHeight"),location:"top"},{activator:o.withCtx(({props:h})=>{var f,k;return[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",color:(f=a.weatherCheckList)!=null&&f.includes("sig-wave-height")?"primary":"",variant:(k=a.weatherCheckList)!=null&&k.includes("sig-wave-height")?"elevated":"text",height:"24",width:"24","min-width":"24",onClick:e[9]||(e[9]=w=>l.handleClickFastWeather("sig-wave-height"))}),{default:o.withCtx(()=>[o.createElementVNode("i",o.mergeProps(h,{class:"iconfont icon-a-WaveHeight"}),null,16)]),_:2},1040,["color","variant"])]}),_:1},8,["text"]),o.createVNode(u,{text:t.$t("weather.currentDirection"),location:"top"},{activator:o.withCtx(({props:h})=>{var f,k;return[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",color:(f=a.weatherCheckList)!=null&&f.includes("current-direction")?"primary":"",variant:(k=a.weatherCheckList)!=null&&k.includes("current-direction")?"elevated":"text",height:"24",width:"24","min-width":"24",onClick:e[10]||(e[10]=w=>l.handleClickFastWeather("current-direction"))}),{default:o.withCtx(()=>[o.createElementVNode("i",o.mergeProps(h,{class:"iconfont icon-Current"}),null,16)]),_:2},1040,["color","variant"])]}),_:1},8,["text"]),o.createVNode(u,{text:t.$t("weather.weatherLayers"),location:"top"},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",variant:"text",height:"24",width:"24","min-width":"24",onClick:l.handleClickFastMore}),{default:o.withCtx(()=>[o.createElementVNode("i",o.mergeProps(h,{class:"iconfont icon-dots-align"}),null,16)]),_:2},1040,["onClick"])]),_:1},8,["text"])]),o.createVNode(y,{vertical:"",class:"mx-2 mr-3 my-3",style:{height:"16px"}}),o.createElementVNode("div",Cf,[o.createVNode(g,{text:"",height:"30",class:"px-2 elevation-0 text-body-1 btn-border-2 btn-bg-2",color:i.source==="GFS"?"primary":"",onClick:e[11]||(e[11]=h=>i.source="GFS")},{default:o.withCtx(()=>e[22]||(e[22]=[o.createTextVNode(" NOAA ",-1)])),_:1,__:[22]},8,["color"]),o.createVNode(g,{text:"",height:"30",class:"px-2 elevation-0 text-body-1 btn-border-2 btn-bg-2",color:i.source==="ECMWF"?"primary":"",onClick:e[12]||(e[12]=h=>i.source="ECMWF")},{default:o.withCtx(()=>e[23]||(e[23]=[o.createTextVNode(" ECMWF ",-1)])),_:1,__:[23]},8,["color"])])],4),o.createElementVNode("div",{class:"timezone-box d-flex flex-column justify-space-between align-end",style:o.normalizeStyle({right:i.right+"px"})},[i.showTimezone?(o.openBlock(),o.createElementBlock("div",vf,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.offsets,h=>(o.openBlock(),o.createElementBlock("div",{key:h,class:"item rounded text-body-2 hover-active",onClick:f=>i.timeZone=h},o.toDisplayString(h<0?h:"+"+h),9,Sf))),128))])):o.createCommentVNode("",!0),o.createElementVNode("div",Nf,[o.createVNode(g,{text:"",variant:"flat",height:"28",class:"pa-1 text-body-1",color:"primary",onClick:e[13]||(e[13]=h=>i.showTimezone=!i.showTimezone)},{default:o.withCtx(()=>[o.createTextVNode(" UTC "+o.toDisplayString(i.timeZone<0?i.timeZone:"+"+i.timeZone),1)]),_:1}),o.createElementVNode("span",Vf,o.toDisplayString(i.currentRealTime),1)])],4)])}const Mf=X(xf,[["render",Pf]]),Xy="",Tf={name:"IdmTimePlayer",components:{DateTimePicker:qe},props:{menuToggle:{type:Object,default:{}},weatherCheckList:{type:Array},playerBottom:{type:Number,default:30}},emits:["realTime","timeZone"],data(){return{right:10,show:{weather:!1,spot:!1,tropical:!1,ship:!1},dayAbout:{h:-7,f:14},currentDateTimeZ:void 0,currentTimestamp:void 0,currentDateTime:void 0,currentRealTime:void 0,minTimestamp:void 0,maxTimestamp:void 0,animation:void 0,startAnimate:0,step:0,frequency:1e3,paused:!0,intervalHour:3,intervalOptions:[3,6,12,24],showTimezone:!1,timeZone:S().utcOffset()/60,offsets:[-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12]}},watch:{step:{handler(t,e){if(!isNaN(t)&&!isNaN(e)&&t!==e){const a=t-e;let r=this.currentTimestamp;r=r+a*this.intervalHour*3600*1e3,r<=this.minTimestamp||r>=this.maxTimestamp?this.paused?this.currentTimestamp=a<0?this.minTimestamp:this.maxTimestamp:this.handleReset():this.currentTimestamp=r}}},currentTimestamp:{handler(){this.currentDateTimeZ=S(this.currentTimestamp).utc().format("yyyy-MM-DD HH:00[Z]"),this.$emit("realTime",this.currentDateTimeZ),this.currentDateTime=`${S.tz(this.currentTimestamp,this.timeZoneName).clone().format("yyyy-MM-DD : HH:00")}`},immediate:!0},timeZone:{handler(t,e){t!==e&&(this.$emit("timeZone",this.timeZone),this.showTimezone=!1)},immediate:!0},show:{handler(){var t;Object.values(this.show).includes(!0)||(t=this.$refs.dateTimePicker)==null||t.handleCancelDate()},deep:!0}},mounted(){this.handleReset()},methods:{handleReset(){var t;this.handlePause(),this.startAnimate=0,(t=this.$refs.dateTimePicker)==null||t.handleReset()},changeDayAbout(t,e){this.dayAbout={h:t??-7,f:e??14}},handleToggle(t,e){this.show[t]=e},handleBackward(){this.handlePause(),this.step-=1},handleForward(){this.handlePause(),this.step+=1},handlePlay(){this.paused=!1,this.step=0,this.animateSpeeds()},handlePause(){this.animation&&cancelAnimationFrame(this.animation),this.paused=!0},animateSpeeds(t){const e=t-this.startAnimate;this.step=Math.floor(e/this.frequency),this.animation=requestAnimationFrame(this.animateSpeeds)}}},Ef={class:"w-100 timeline-box d-flex justify-space-around align-center rounded px-2"};function Df(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("DateTimePicker");return o.openBlock(),o.createElementBlock("div",{class:"idm-time-player-gl4 d-flex justify-center align-center",style:o.normalizeStyle({bottom:Object.values(i.show).includes(!0)?a.playerBottom+"px":"-100px"})},[o.createElementVNode("div",Ef,[o.createVNode(n,{size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handleReset},{default:o.withCtx(()=>e[4]||(e[4]=[o.createElementVNode("i",{class:"iconfont icon-Reset"},null,-1)])),_:1,__:[4]},8,["onClick"]),o.createVNode(n,{size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handleBackward},{default:o.withCtx(()=>e[5]||(e[5]=[o.createElementVNode("i",{class:"iconfont icon-Backward"},null,-1)])),_:1,__:[5]},8,["onClick"]),o.createVNode(c,o.mergeProps({ref:"dateTimePicker","date-time":i.currentDateTimeZ,"time-zone":i.timeZone,"day-about":i.dayAbout,"interval-hour":i.intervalHour,height:32},t.$attrs,{onCurrentTimestamp:e[0]||(e[0]=s=>i.currentTimestamp=s),onCurrentRealTime:e[1]||(e[1]=s=>i.currentRealTime=s),onMinTimestamp:e[2]||(e[2]=s=>i.minTimestamp=s),onMaxTimestamp:e[3]||(e[3]=s=>i.maxTimestamp=s)}),null,16,["date-time","time-zone","day-about","interval-hour"]),o.createVNode(n,{size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handleForward},{default:o.withCtx(()=>e[6]||(e[6]=[o.createElementVNode("i",{class:"iconfont icon-Forward"},null,-1)])),_:1,__:[6]},8,["onClick"]),i.paused?(o.openBlock(),o.createBlock(n,{key:0,size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handlePlay},{default:o.withCtx(()=>e[7]||(e[7]=[o.createElementVNode("i",{class:"iconfont icon-Play"},null,-1)])),_:1,__:[7]},8,["onClick"])):(o.openBlock(),o.createBlock(n,{key:1,size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handlePause},{default:o.withCtx(()=>e[8]||(e[8]=[o.createElementVNode("i",{class:"iconfont icon-Pause"},null,-1)])),_:1,__:[8]},8,["onClick"]))])],4)}const la=X(Tf,[["render",Df]]),Rf={name:"IdmGL4",components:{IdmOtherLayer:Vs,IdmWeatherLayer:wm,IdmTropicals:jo,IdmMeasure:gp,IdmSpot:mp,IdmMarker:Fg,IdmBottomBar:Mf,IdmTimePlayer:la},props:{map:{type:Object},token:{type:String},beforeLayer:{type:String,default:""},forecastModel:{type:String},mapFeather:{type:String},simple:{type:Boolean,default:!1}},emits:[],data(){return{weatherCheckList:[],otherCheckList:[],layerVersion:0,autoActive:!0,tropicals:void 0,playerBottom:30,gateway:"https://cbe.ormwx.com",assistGateway:["https://assist0.ormwx.com","https://assist1.ormwx.com"],defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNtZWliMDg2dTAwMDdmdnV4ZHRhcmFoODIiLCJyb2xlIjoyLCJuYW1lIjoiY2hlbmhlbmdAb3Jtd3guY29tIiwicGxhdElkIjoiZ2QwbXQxZCIsImNvbXBhbnkiOnsiaWQiOm51bGwsImNoaWxkcmVuIjpbXX0sImlhdCI6MTc1NTg1NzQ0NiwiZXhwIjozOTYzMzc3NDQ2fQ.nll8PA8tZEFONV2ydX4Rx_Xya7nMzJQ6vPSL_Sg2dVU"}},watch:{map:{handler(){this.map&&(this.layerVersion=Math.random())},immediate:!0},layerVersion:{handler(){if(this.map){const t=this.autoActive&&this.weatherCheckList.some(r=>["wind-particle","sig-wave","swell","current-particle","water-temp","temp"].some(i=>i===r)),e=this.otherCheckList.some(r=>["navareas","eca-zones","load-lines","voluntary-reporting-area","war-zones","special-area","ice-areas"].some(i=>i===r)),a=t||e;this.mapFeather==="nautical"?t?(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","visible"),this.map.getLayer("i4")&&this.map.setLayoutProperty("i4","visibility","none"),this.map.getLayer("hi")&&this.map.setLayoutProperty("hi","visibility","none"),this.map.getLayer("admin-0-boundary-bg")&&this.map.setLayoutProperty("admin-0-boundary-bg","visibility","visible"),this.map.getLayer("admin-0-boundary")&&this.map.setLayoutProperty("admin-0-boundary","visibility","visible"),this.map.getLayer("admin-0-boundary-disputed")&&this.map.setLayoutProperty("admin-0-boundary-disputed","visibility","visible"),this.map.getLayer("country-label")&&this.map.setLayoutProperty("country-label","visibility","visible"),this.map.getLayer("continent-label")&&this.map.setLayoutProperty("continent-label","visibility","visible")):(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","none"),this.map.getLayer("i4")&&this.map.setLayoutProperty("i4","visibility","visible"),this.map.getLayer("hi")&&this.map.setLayoutProperty("hi","visibility","visible"),this.map.getLayer("admin-0-boundary-bg")&&this.map.setLayoutProperty("admin-0-boundary-bg","visibility","none"),this.map.getLayer("admin-0-boundary")&&this.map.setLayoutProperty("admin-0-boundary","visibility","none"),this.map.getLayer("admin-0-boundary-disputed")&&this.map.setLayoutProperty("admin-0-boundary-disputed","visibility","none"),this.map.getLayer("country-label")&&this.map.setLayoutProperty("country-label","visibility","none"),this.map.getLayer("continent-label")&&this.map.setLayoutProperty("continent-label","visibility","none")):this.mapFeather==="satellite"?t?(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","visible"),this.map.getLayer("water-outline")&&this.map.setLayoutProperty("water-outline","visibility","visible"),this.map.getLayer("ramp-color-layer")&&this.map.moveLayer("ramp-color-layer","country-boundaries"),this.map.getLayer("particle-layer")&&this.map.moveLayer("particle-layer","country-boundaries")):(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","none"),this.map.getLayer("water-outline")&&this.map.setLayoutProperty("water-outline","visibility","none")):a?(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","visible"),this.map.getLayer("water-outline2")&&this.map.setLayoutProperty("water-outline2","visibility","visible"),t&&(this.map.getLayer("ramp-color-layer")&&this.map.moveLayer("ramp-color-layer","empty-layer-0"),this.map.getLayer("particle-layer")&&this.map.moveLayer("particle-layer","empty-layer-0"))):(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","none"),this.map.getLayer("water-outline2")&&this.map.setLayoutProperty("water-outline2","visibility","none"))}},immediate:!0}},methods:{}},Bf={id:"map-gl4-home",ref:"mapHomeGl4",class:"map-gl4-home"};function If(t,e,a,r,i,l){const n=o.resolveComponent("IdmOtherLayer"),c=o.resolveComponent("IdmWeatherLayer"),s=o.resolveComponent("IdmTropicals"),d=o.resolveComponent("IdmSpot"),m=o.resolveComponent("IdmMeasure"),p=o.resolveComponent("IdmMarker"),g=o.resolveComponent("IdmBottomBar"),y=o.resolveComponent("IdmTimePlayer");return o.openBlock(),o.createElementBlock("div",Bf,[o.createVNode(n,o.mergeProps({ref:"idmOtherLayers",simple:a.simple,token:a.token,"default-meteo-token":i.defaultMeteoToken,map:a.map,"before-layer":"empty-layer-1",gateway:i.gateway,"assist-gateway":i.assistGateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs,{onOtherCheckList:e[0]||(e[0]=u=>{i.otherCheckList=u,i.layerVersion=i.layerVersion+1})}),null,16,["simple","token","default-meteo-token","map","gateway","assist-gateway","forecast-model","map-feather"]),o.createVNode(c,o.mergeProps({ref:"idmWeatherLayers",simple:a.simple,map:a.map,"before-layer":"empty-layer-2",token:a.token,"default-meteo-token":i.defaultMeteoToken,gateway:i.gateway,"assist-gateway":i.assistGateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs,{onAutoActive:e[1]||(e[1]=u=>{i.autoActive=u,i.layerVersion=i.layerVersion+1}),onWeatherCheckList:e[2]||(e[2]=u=>{i.weatherCheckList=u,i.layerVersion=i.layerVersion+1})}),null,16,["simple","map","token","default-meteo-token","gateway","assist-gateway","forecast-model","map-feather"]),o.createVNode(s,o.mergeProps({ref:"idmTropicals",simple:a.simple,map:a.map,token:a.token,"default-meteo-token":i.defaultMeteoToken,tropicals:i.tropicals,"before-layer":"empty-layer-4",gateway:i.gateway,"assist-gateway":i.assistGateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs),null,16,["simple","map","token","default-meteo-token","tropicals","gateway","assist-gateway","forecast-model","map-feather"]),o.createVNode(d,o.mergeProps({ref:"idmSpot",simple:a.simple,map:a.map,token:a.token,"default-meteo-token":i.defaultMeteoToken,gateway:i.gateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs),null,16,["simple","map","token","default-meteo-token","gateway","forecast-model","map-feather"]),o.createVNode(m,o.mergeProps({simple:a.simple,map:a.map,"map-feather":a.mapFeather},t.$attrs),null,16,["simple","map","map-feather"]),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(p,o.mergeProps({key:0,simple:a.simple,map:a.map,"map-feather":a.mapFeather,gateway:i.gateway,"default-meteo-token":i.defaultMeteoToken,token:a.token},t.$attrs),null,16,["simple","map","map-feather","gateway","default-meteo-token","token"])),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(g,o.mergeProps({key:1,ref:"idmBottomBar","forecast-model":a.forecastModel,"weather-check-list":i.weatherCheckList,"map-feather":a.mapFeather,gateway:i.gateway,"default-meteo-token":i.defaultMeteoToken,token:a.token},t.$attrs),null,16,["forecast-model","weather-check-list","map-feather","gateway","default-meteo-token","token"])),a.simple?(o.openBlock(),o.createBlock(y,o.mergeProps({key:2,ref:"idmBottomBar","player-bottom":i.playerBottom,"bg-class":a.simple?"bg-background":"","weather-check-list":i.weatherCheckList,"map-feather":a.mapFeather,disabled:!0},t.$attrs),null,16,["player-bottom","bg-class","weather-check-list","map-feather"])):o.createCommentVNode("",!0)],512)}const Xa=X(Rf,[["render",If]]),Yy="";class Ya{constructor(e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNsYmY5M3I0YTAwMDE4Ymx0NWJ4emFwNWMiLCJyb2xlIjoyMDQ3LCJpYXQiOjE2NzA1NTM0NzAsImV4cCI6Mzg3ODA3MzQ3MH0.MxTv0yLGarZCtOSCZfJHMqrXNMNN0-OL4gBGKGcYcc8"){de(this,"originStyle");de(this,"mapboxStyle");de(this,"i4");de(this,"hi");de(this,"td");de(this,"windy");var a,r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re,he,ge,ee,se,pe,xe,O,te,Me,Ce,be,ke,J,we,ie,ce,Se,Ee,Te,F,me,_e,Ne,Ve,H,ve,Q,We,Oe,Ze,Le,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,kt,_t,Lt,zt,Ct,vt,St,Nt,Vt,Pt,Mt,Tt,Et,Dt,Rt,Bt,It,At,Ft,Gt,Wt,Ot,Zt,jt,Ht,Xt,Yt,Ut,$t,Jt,Kt,qt,Qt,eo,to,oo,ao,io,ro,lo,no,so,co,mo,ho,po,go,uo,fo,yo,bo,wo,xo,ko,_o,Lo,zo,Co,vo,So,No,Vo,oi,ai,ii,ri,li,ni,si,ci,mi,di,hi,pi,gi,ui,fi,yi,bi,wi,xi,ki,_i,Li,zi,Ci,vi,Si,Ni,Vi,Pi,Mi,Ti,Ei,Di,Ri,Bi,Ii,Ai,Fi,Gi,Wi,Oi,Zi,ji,Hi,Xi,Yi,Ui,$i,Ji,Ki,qi,Qi,er,tr,or,ar,ir,rr,lr,nr,sr,cr,mr,dr,hr,pr;this.i4={source:{type:"raster",tiles:["https://ossimg.ormwx.com/nautical/{z}/{x}/{y}.png"],tileSize:256},layer:{id:"i4",type:"raster",source:"i4",minzoom:1,maxzoom:12,layout:{visibility:"visible"}}},this.hi={source:{type:"raster",tiles:[`https://assist0.ormwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${e}`,`https://assist1.ormwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${e}`],tileSize:256},layer:{id:"hi",type:"raster",source:"hi",minZoom:1,maxZoom:12,layout:{visibility:"visible"}}},this.originStyle={light:{version:8,name:"light",metadata:{"mapbox:print":{width:8.5,height:11,units:"in",format:"png",resolution:300},"mapbox:type":"default","mapbox:trackposition":!0,"mapbox:autocomposite":!0,"mapbox:sdk-support":{android:"11.0.0",ios:"11.0.0",js:"3.0.0"},"mapbox:origin":"outdoors-v12","mapbox:groups":{"Terrain, terrain-labels":{name:"Terrain, terrain-labels",collapsed:!0},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!0},"Land & water, built":{name:"Land & water, built",collapsed:!0},"Terrain, surface":{name:"Terrain, surface",collapsed:!0},"Land & water, land":{name:"Land & water, land",collapsed:!1},"Natural features, natural-labels":{name:"Natural features, natural-labels",collapsed:!0},e9bb8e77353431519f7918998e9079d9:{name:"Group",collapsed:!1},"Walking, cycling, etc., barriers-bridges":{name:"Walking, cycling, etc., barriers-bridges",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1},"Transit, ferries":{name:"Transit, ferries",collapsed:!0},"Transit, elevated":{name:"Transit, elevated",collapsed:!0},"Walking, cycling, etc., tunnels":{name:"Walking, cycling, etc., tunnels",collapsed:!0},"Terrain, land":{name:"Terrain, land",collapsed:!0},"Road network, tunnels-case":{name:"Road network, tunnels-case",collapsed:!0},"Walking, cycling, etc., walking-cycling-labels":{name:"Walking, cycling, etc., walking-cycling-labels",collapsed:!0},"Walking, cycling, etc., surface":{name:"Walking, cycling, etc., surface",collapsed:!0},"Road network, surface-icons":{name:"Road network, surface-icons",collapsed:!0},"Land & water, water":{name:"Land & water, water",collapsed:!1}}},center:[104.01743114258029,17.078999978347557],zoom:1.9133216316430233,bearing:0,pitch:0,lights:[],fog:{range:[.5,10]},sources:{composite:{url:"mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0,neatchenheng.9uwc9x7l,neatchenheng.7y3kpvvv,neatchenheng.dlkkohie",type:"vector"},i4:this.i4.source},sprite:"mapbox://sprites/neatchenheng/cmd894dwn036m01rf7anc0k0d/bph0p8ithotzwly53az7lwdmv",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},layers:[{id:"land",type:"background",layout:{},paint:{"background-color":"#e9ebed"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},maxzoom:12,type:"fill",source:"composite",id:"landcover",paint:{"fill-color":["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","crop","hsla(68, 55%, 70%, 0.6)","grass","hsla(98, 50%, 74%, 0.6)","snow","hsl(205, 45%, 95%)","hsl(98, 48%, 67%)"],"fill-opacity":["interpolate",["exponential",1.5],["zoom"],8,.8,12,0],"fill-antialias":!1},"source-layer":"landcover"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"fill",source:"composite",id:"national-park",paint:{"fill-color":"hsl(98, 38%, 68%)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.6,12,.2]},"source-layer":"landuse_overlay"},{minzoom:9,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"line",source:"composite",id:"national-park_tint-band",paint:{"line-color":"hsl(98, 38%, 68%)","line-width":["interpolate",["exponential",1.5],["zoom"],9,1,14,8],"line-blur":["interpolate",["exponential",1.5],["zoom"],9,1,14,8]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["all",[">=",["to-number",["get","sizerank"]],0],["match",["get","class"],["agriculture","wood","grass","scrub","glacier","pitch","sand"],["step",["zoom"],!1,11,!0],"residential",["step",["zoom"],!0,10,!1],["park","airport"],["step",["zoom"],!1,8,["case",["==",["get","sizerank"],1],!0,!1],10,!0],["facility","industrial"],["step",["zoom"],!1,12,!0],"rock",["step",["zoom"],!1,11,!0],"cemetery",["step",["zoom"],!1,11,!0],"school",["step",["zoom"],!1,11,!0],"hospital",["step",["zoom"],!1,11,!0],"commercial_area",["step",["zoom"],!1,11,!0],!1],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14]],type:"fill",source:"composite",id:"landuse",paint:{"fill-color":["interpolate",["linear"],["zoom"],15,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsl(60, 0%, 85%)","school","hsl(40, 45%, 78%)","commercial_area","hsl(55, 45%, 85%)","residential","hsl(60, 7%, 87%)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"],16,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsla(60, 0%, 85%, 0.5)","school","hsl(40, 45%, 78%)","commercial_area","hsla(55, 45%, 85%, 0.5)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"]],"fill-opacity":["interpolate",["linear"],["zoom"],8,["match",["get","class"],"residential",.8,.2],10,["match",["get","class"],"residential",0,1]],"fill-antialias":!1},"source-layer":"landuse"},{minzoom:15,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"pitch"],type:"line",source:"composite",id:"pitch-outline",paint:{"line-color":"hsl(0, 0%, 69%)"},"source-layer":"landuse"},{id:"waterway-shadow",type:"line",source:"composite","source-layer":"waterway",minzoom:10,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"],visibility:"none"},paint:{"line-color":"hsl(224, 79%, 69%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"line-translate-anchor":"viewport","line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",minzoom:10,layout:{visibility:"none"},paint:{"fill-color":"hsl(224, 79%, 69%)","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-translate-anchor":"viewport"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"]},paint:{"line-color":"hsl(198, 100%, 37%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"hsl(215, 92%, 81%)"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},maxzoom:8,type:"fill",source:"composite",id:"water-depth",paint:{"fill-antialias":!1,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0.35)",200,"hsla(205, 75%, 63%, 0.35)",7e3,"hsla(205, 75%, 56%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0)",200,"hsla(205, 75%, 63%, 0)",7e3,"hsla(205, 75%, 53%, 0)"]]},"source-layer":"depth"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,.25,10.5,.15]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland-pattern",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,0,10.5,1],"fill-pattern":"wetland","fill-translate-anchor":"viewport"},"source-layer":"landuse_overlay"},{minzoom:13,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"Polygon"]],type:"fill",source:"composite",id:"land-structure-polygon",paint:{"fill-color":"hsl(0, 0%, 69%)"},"source-layer":"structure"},{minzoom:13,layout:{"line-cap":"square",visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"LineString"]],type:"line",source:"composite",id:"land-structure-line",paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(60, 20%, 85%)"},"source-layer":"structure"},{id:"empty-layer-0",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-1",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"country-boundaries",type:"fill",source:"composite","source-layer":"country_boundaries",paint:{"fill-color":"rgb(200, 200, 200)"},layout:{visibility:"none"}},{id:"empty-layer-2",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-3",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-4",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"water-outline2",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgb(150, 150, 150)"},layout:{visibility:"none"},source:"composite","source-layer":"water"},{id:"water-outline",type:"line",paint:{"line-color":"hsl(0, 0%, 70%)","line-width":["interpolate",["linear"],["zoom"],0,1.5,4,1]},source:"composite","source-layer":"water"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-bg",paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"rgb(173, 169, 170)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary",paint:{"line-color":"rgb(143, 143, 143)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-disputed",paint:{"line-color":"rgb(95, 93, 94)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]},"source-layer":"admin"},{minzoom:13,layout:{"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"waterway-label",paint:{"text-color":"hsl(205, 43%, 90%)","text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"natural-line-label",paint:{"text-halo-width":.5,"text-halo-color":"hsl(60, 17%, 84%)","text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["get","maki_beta"]],["image",["get","maki"]]],["image",["get","maki"]]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.8]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.8]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"natural-point-label",paint:{"icon-opacity":["step",["zoom"],["step",["get","sizerank"],0,5,1],17,["step",["get","sizerank"],0,13,1]],"text-halo-color":"hsl(60, 20%, 98%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"water-line-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(205, 71%, 90%)","hsl(205, 43%, 90%)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"water-point-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(205, 71%, 90%)","hsl(205, 43%, 90%)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:10,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",15,14]],visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["match",["get","class"],["settlement_subdivision","disputed_settlement_subdivision"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],3],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-subdivision-label",paint:{"text-halo-color":"hsla(60, 25%, 100%, 0.75)","text-halo-width":1,"text-color":"hsl(230, 29%, 36%)","text-halo-blur":.5},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-justify":"auto",visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-minor-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-major-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:3,layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":["DIN Pro Bold","Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"state-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-opacity":.5},"source-layer":"place_label"},{minzoom:1,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],12.100000000000001,4,9.9,5,8.8],9,["step",["get","symbolrank"],24.200000000000003,4,20.900000000000002,5,18.700000000000003]]},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"country-label",paint:{"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":"hsl(0, 0.00%, 13.70%)","text-halo-color":["interpolate",["linear"],["zoom"],2,"hsla(60, 25%, 100%, 0.75)",3,"hsl(60, 25%, 100%)"],"text-halo-width":1.25},"source-layer":"place_label"},{minzoom:.75,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:3,filter:["==",["get","class"],"continent"],type:"symbol",source:"composite",id:"continent-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":["interpolate",["linear"],["zoom"],0,"hsla(60, 25%, 100%, 0.75)",3,"hsl(60, 25%, 100%)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,.8,1.5,.5,2.5,0]},"source-layer":"natural_label"},{id:"world-12nm-v4-20231025",minzoom:3,type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]},source:"composite","source-layer":"eez_12nm_new1-6jzkww",layout:{"line-join":"round",visibility:"none"}},{id:"china-taiwan",type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2]},layout:{"line-join":"round",visibility:"none"},source:"composite","source-layer":"eez-d4udtm"},{id:"ne-10m-outline",type:"line",paint:{"line-color":"hsl(172, 0%, 33%)"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",layout:{visibility:"none"}},{id:"ne-10m-label",type:"symbol",paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-halo-blur":1},layout:{"text-field":["to-string",["get","name"]],"text-size":12,visibility:"none"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"china-route-line",type:"line",paint:{"line-color":"rgba(119, 239, 157, 1)","line-width":2},source:"composite","source-layer":"china_route-bdtx5d",layout:{visibility:"none"}},{id:"china-route-fill",type:"fill",paint:{"fill-color":"rgba(119, 239, 157, 1)","fill-opacity":.2},source:"composite","source-layer":"china_route-bdtx5d",filter:["match",["geometry-type"],["Polygon"],!0,!1],layout:{visibility:"none"}},{id:"china-route-label",type:"symbol",paint:{"text-color":"rgba(0, 0, 0, 1)"},source:"composite","source-layer":"china_route-bdtx5d",layout:{"text-field":["to-string",["get","route_name"]],"text-size":10,"text-offset":[0,1.6],visibility:"none"}},{id:"ice-area-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(199, 239, 236, 0.7)"},source:"composite","source-layer":"ICE_AREA-6oqazd",layout:{visibility:"none"}},{id:"ice-area-line",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgba(199, 239, 236, 1)"},layout:{visibility:"none"},source:"composite","source-layer":"ICE_AREA-6oqazd"},{id:"tide-stations",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(0, 0, 0)","text-opacity":["step",["zoom"],0,4,1]},layout:{visibility:"none","text-field":["to-string",["get","Location_EN"]],"text-size":10,"icon-image":"tide","icon-size":1,"icon-offset":[0,-13],"text-offset":[0,1.6],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},source:"composite","source-layer":"tide_station_cn-8xvt91"},{id:"loadlines-label",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(0, 0, 0)"},layout:{"text-field":["to-string",["get","name"]],"text-size":10,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,1]},source:"composite","source-layer":"loadlines-b6mgr8"},{id:"loadlines-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":["match",["get","val"],["LLGreen"],"rgba(164, 214, 217, 0.6)",["LLBlue"],"rgba(53, 121, 194, 0.6)",["LLRed"],"rgba(217, 150, 151, 0.6)",["LLSUMMER"],"rgba(111, 110, 212, 0.6)","rgba(255, 255, 255, 0.6)"],"fill-outline-color":"rgba(255, 255, 255, 0.3)"},layout:{visibility:"none"},source:"composite","source-layer":"loadlines-b6mgr8"}],created:"2025-07-18T03:20:31.079Z",modified:"2025-07-31T03:57:21.238Z",id:"cmd894dwn036m01rf7anc0k0d",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1},dark:{version:8,name:"dark",metadata:{"mapbox:print":{width:8.5,height:11,units:"in",format:"png",resolution:300},"mapbox:type":"default","mapbox:trackposition":!0,"mapbox:autocomposite":!0,"mapbox:sdk-support":{android:"11.0.0",ios:"11.0.0",js:"3.0.0"},"mapbox:origin":"outdoors-v12","mapbox:groups":{"Terrain, terrain-labels":{name:"Terrain, terrain-labels",collapsed:!0},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!1},"Land & water, built":{name:"Land & water, built",collapsed:!0},"Terrain, surface":{name:"Terrain, surface",collapsed:!0},"Land & water, land":{name:"Land & water, land",collapsed:!1},"Natural features, natural-labels":{name:"Natural features, natural-labels",collapsed:!0},e9bb8e77353431519f7918998e9079d9:{name:"Group",collapsed:!1},"Walking, cycling, etc., barriers-bridges":{name:"Walking, cycling, etc., barriers-bridges",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1},"Transit, ferries":{name:"Transit, ferries",collapsed:!0},"Transit, elevated":{name:"Transit, elevated",collapsed:!0},"Walking, cycling, etc., tunnels":{name:"Walking, cycling, etc., tunnels",collapsed:!0},"Terrain, land":{name:"Terrain, land",collapsed:!0},"Road network, tunnels-case":{name:"Road network, tunnels-case",collapsed:!0},"Walking, cycling, etc., walking-cycling-labels":{name:"Walking, cycling, etc., walking-cycling-labels",collapsed:!0},"Walking, cycling, etc., surface":{name:"Walking, cycling, etc., surface",collapsed:!0},"Road network, surface-icons":{name:"Road network, surface-icons",collapsed:!0},"Land & water, water":{name:"Land & water, water",collapsed:!1}}},center:[90.22129259388525,-3.2084663486364606],zoom:1.2556266457717493,bearing:0,pitch:0,lights:[],fog:{range:[.5,10]},sources:{composite:{url:"mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0,neatchenheng.9uwc9x7l,neatchenheng.7y3kpvvv,neatchenheng.dlkkohie",type:"vector"}},sprite:"mapbox://sprites/neatchenheng/cmdqwez32005b01re2w0k3zk4/3w0qcixxrxxonxutm2qkollqi",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},layers:[{id:"land",type:"background",layout:{},paint:{"background-color":["interpolate",["linear"],["zoom"],9,"rgb(2, 43, 59)",11,"rgb(36, 36, 36)"]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},maxzoom:12,type:"fill",source:"composite",id:"landcover",paint:{"fill-color":["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","crop","hsla(68, 55%, 70%, 0.6)","grass","hsla(98, 50%, 74%, 0.6)","snow","hsl(205, 45%, 95%)","hsl(98, 48%, 67%)"],"fill-opacity":["interpolate",["exponential",1.5],["zoom"],8,.8,12,0],"fill-antialias":!1},"source-layer":"landcover"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"fill",source:"composite",id:"national-park",paint:{"fill-color":"hsl(98, 38%, 68%)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.6,12,.2]},"source-layer":"landuse_overlay"},{minzoom:9,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"line",source:"composite",id:"national-park_tint-band",paint:{"line-color":"hsl(98, 38%, 68%)","line-width":["interpolate",["exponential",1.5],["zoom"],9,1,14,8],"line-blur":["interpolate",["exponential",1.5],["zoom"],9,1,14,8]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["all",[">=",["to-number",["get","sizerank"]],0],["match",["get","class"],["agriculture","wood","grass","scrub","glacier","pitch","sand"],["step",["zoom"],!1,11,!0],"residential",["step",["zoom"],!0,10,!1],["park","airport"],["step",["zoom"],!1,8,["case",["==",["get","sizerank"],1],!0,!1],10,!0],["facility","industrial"],["step",["zoom"],!1,12,!0],"rock",["step",["zoom"],!1,11,!0],"cemetery",["step",["zoom"],!1,11,!0],"school",["step",["zoom"],!1,11,!0],"hospital",["step",["zoom"],!1,11,!0],"commercial_area",["step",["zoom"],!1,11,!0],!1],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14]],type:"fill",source:"composite",id:"landuse",paint:{"fill-color":["interpolate",["linear"],["zoom"],15,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsl(60, 0%, 85%)","school","hsl(40, 45%, 78%)","commercial_area","hsl(55, 45%, 85%)","residential","hsl(60, 7%, 87%)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"],16,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsla(60, 0%, 85%, 0.5)","school","hsl(40, 45%, 78%)","commercial_area","hsla(55, 45%, 85%, 0.5)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"]],"fill-opacity":["interpolate",["linear"],["zoom"],8,["match",["get","class"],"residential",.8,.2],10,["match",["get","class"],"residential",0,1]],"fill-antialias":!1},"source-layer":"landuse"},{minzoom:15,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"pitch"],type:"line",source:"composite",id:"pitch-outline",paint:{"line-color":"hsl(0, 0%, 69%)"},"source-layer":"landuse"},{id:"waterway-shadow",type:"line",source:"composite","source-layer":"waterway",minzoom:10,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"],visibility:"none"},paint:{"line-color":"hsl(224, 79%, 69%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"line-translate-anchor":"viewport","line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",minzoom:10,layout:{visibility:"none"},paint:{"fill-color":"hsl(224, 79%, 69%)","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-translate-anchor":"viewport"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"],visibility:"none"},paint:{"line-color":"rgb(20, 66, 92)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"rgb(20, 66, 92)"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},maxzoom:8,type:"fill",source:"composite",id:"water-depth",paint:{"fill-antialias":!1,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0.35)",200,"hsla(205, 75%, 63%, 0.35)",7e3,"hsla(205, 75%, 56%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0)",200,"hsla(205, 75%, 63%, 0)",7e3,"hsla(205, 75%, 53%, 0)"]]},"source-layer":"depth"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,.25,10.5,.15]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland-pattern",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,0,10.5,1],"fill-pattern":"wetland","fill-translate-anchor":"viewport"},"source-layer":"landuse_overlay"},{minzoom:13,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"Polygon"]],type:"fill",source:"composite",id:"land-structure-polygon",paint:{"fill-color":"hsl(0, 0%, 69%)"},"source-layer":"structure"},{minzoom:13,layout:{"line-cap":"square",visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"LineString"]],type:"line",source:"composite",id:"land-structure-line",paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(60, 20%, 85%)"},"source-layer":"structure"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-bg",paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"rgb(0, 96, 107)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary",paint:{"line-color":"rgb(0, 96, 107)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-disputed",paint:{"line-color":"rgb(0, 96, 107)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]},"source-layer":"admin"},{id:"empty-layer-0",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-1",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"country-boundaries",type:"fill",source:"composite","source-layer":"country_boundaries",paint:{"fill-color":["interpolate",["linear"],["zoom"],0,"rgb(2, 45, 62)",22,"rgb(2, 45, 62)"]},layout:{visibility:"none"}},{id:"empty-layer-2",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-3",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-4",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"water-outline",type:"line",paint:{"line-color":"rgb(0, 96, 107)","line-width":["interpolate",["linear"],["zoom"],0,1.5,4,1]},source:"composite","source-layer":"water"},{minzoom:13,layout:{"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"waterway-label",paint:{"text-color":"hsl(205, 43%, 90%)","text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"natural-line-label",paint:{"text-halo-width":.5,"text-halo-color":"hsl(60, 17%, 84%)","text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["get","maki_beta"]],["image",["get","maki"]]],["image",["get","maki"]]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.8]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.8]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"natural-point-label",paint:{"icon-opacity":["step",["zoom"],["step",["get","sizerank"],0,5,1],17,["step",["get","sizerank"],0,13,1]],"text-halo-color":"hsl(60, 20%, 98%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"water-line-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"rgb(1, 121, 137)","rgb(1, 121, 137)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"water-point-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"rgb(3, 117, 129)","rgb(3, 117, 129)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:10,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",15,14]],visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["match",["get","class"],["settlement_subdivision","disputed_settlement_subdivision"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],3],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-subdivision-label",paint:{"text-halo-color":"hsla(60, 25%, 100%, 0.75)","text-halo-width":1,"text-color":"hsl(230, 29%, 36%)","text-halo-blur":.5},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-justify":"auto",visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-minor-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-major-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:3,layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":["DIN Pro Bold","Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"state-label",paint:{"text-color":"rgb(0, 170, 189)","text-halo-color":"rgb(3, 3, 3)","text-halo-width":1,"text-opacity":.5},"source-layer":"place_label"},{minzoom:1,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],12.100000000000001,4,9.9,5,8.8],9,["step",["get","symbolrank"],24.200000000000003,4,20.900000000000002,5,18.700000000000003]]},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"country-label",paint:{"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":"rgb(2, 141, 156)","text-halo-color":["interpolate",["linear"],["zoom"],2,"rgb(252, 252, 252)",3,"rgb(250, 250, 250)"]},"source-layer":"place_label"},{minzoom:.75,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:3,filter:["==",["get","class"],"continent"],type:"symbol",source:"composite",id:"continent-label",paint:{"text-color":"rgb(0, 170, 189)","text-halo-color":["interpolate",["linear"],["zoom"],0,"rgba(0, 0, 0, 0.75)",3,"rgb(5, 5, 5)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,.8,1.5,.5,2.5,0]},"source-layer":"natural_label"},{id:"world-12nm-v4-20231025",minzoom:3,type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]},source:"composite","source-layer":"eez_12nm_new1-6jzkww",layout:{"line-join":"round",visibility:"none"}},{id:"china-taiwan",type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2]},layout:{"line-join":"round",visibility:"none"},source:"composite","source-layer":"eez-d4udtm"},{id:"ne-10m-outline",type:"line",paint:{"line-color":"rgb(1, 119, 132)"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",layout:{visibility:"none"}},{id:"ne-10m-label",type:"symbol",paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":0,"text-halo-blur":0,"text-color":"rgb(1, 119, 132)"},layout:{"text-field":["to-string",["get","name"]],"text-size":12,visibility:"none"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"china-route-line",type:"line",paint:{"line-color":"rgba(119, 239, 157, 1)","line-width":2},source:"composite","source-layer":"china_route-bdtx5d",layout:{visibility:"none"}},{id:"china-route-fill",type:"fill",paint:{"fill-color":"rgba(119, 239, 157, 1)","fill-opacity":.2},source:"composite","source-layer":"china_route-bdtx5d",filter:["match",["geometry-type"],["Polygon"],!0,!1],layout:{visibility:"none"}},{id:"china-route-label",type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},source:"composite","source-layer":"china_route-bdtx5d",layout:{"text-field":["to-string",["get","route_name"]],"text-size":10,"text-offset":[0,1.6],visibility:"none"}},{id:"ice-area-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(199, 239, 236, 0.7)"},source:"composite","source-layer":"ICE_AREA-6oqazd",layout:{visibility:"none"}},{id:"ice-area-line",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgba(199, 239, 236, 1)"},layout:{visibility:"none"},source:"composite","source-layer":"ICE_AREA-6oqazd"},{id:"tide-stations",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(255, 255, 255)","text-opacity":["step",["zoom"],0,4,1]},layout:{visibility:"none","text-field":["to-string",["get","Location_EN"]],"text-size":10,"icon-image":"tide","icon-size":1,"icon-offset":[0,-13],"text-offset":[0,1.6],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},source:"composite","source-layer":"tide_station_cn-8xvt91"},{id:"loadlines-label",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},layout:{"text-field":["to-string",["get","name"]],"text-size":10,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,1]},source:"composite","source-layer":"loadlines-b6mgr8"},{id:"loadlines-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":["match",["get","val"],["LLGreen"],"rgba(164, 214, 217, 0.6)",["LLBlue"],"rgba(53, 121, 194, 0.6)",["LLRed"],"rgba(217, 150, 151, 0.6)",["LLSUMMER"],"rgba(111, 110, 212, 0.6)","rgba(255, 255, 255, 0.6)"],"fill-outline-color":"rgba(255, 255, 255, 0.3)"},layout:{visibility:"none"},source:"composite","source-layer":"loadlines-b6mgr8"}],created:"2025-07-31T04:32:27.422Z",modified:"2025-07-31T04:43:38.610Z",id:"cmdqwez32005b01re2w0k3zk4",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1},satellite:{version:8,name:"satellite",metadata:{"mapbox:type":"default","mapbox:autocomposite":!0,"mapbox:sdk-support":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"},"mapbox:origin":"satellite-streets-v12","mapbox:uiExpandedImports":["basemap"],"mapbox:groups":{"Satellite imagery, land":{name:"Satellite imagery, land",collapsed:!1},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1}}},center:[55.13,25.12],zoom:12,fog:{range:[1,10],color:["interpolate",["exponential",1.2],["zoom"],5.5,"hsl(240, 12%, 70%)",6,"hsl(0, 0%, 100%)"],"high-color":["interpolate",["exponential",1.2],["zoom"],5.5,"hsl(240, 12%, 7%)",6,"hsl(38, 63%, 84%)"],"space-color":["interpolate",["exponential",1.2],["zoom"],5.5,"hsl(240, 12%, 9%)",6,"hsl(199, 61%, 80%)"],"horizon-blend":["interpolate",["exponential",1.2],["zoom"],5.5,.008,6,.15],"star-intensity":["interpolate",["exponential",1.2],["zoom"],5.5,.1,6,0]},imports:[{id:"basemap",url:"mapbox://styles/mapbox/standard-satellite",config:{lightPreset:"day"},data:{version:8,name:"Mapbox Standard Satellite",metadata:{"mapbox:compatibility":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"},"mapbox:autocomposite":!0,"mapbox:groups":{"road & transit labels":{name:"Road & Transit labels",collapsed:!0},"land & water":{name:"Land & water",collapsed:!0},"road shields":{name:"Road shields",collapsed:!0},"building labels":{name:"Building labels",collapsed:!0},"transit labels":{name:"Transit labels",collapsed:!0},"poi labels":{name:"Poi labels",collapsed:!0},"natural labels":{name:"Natural labels",collapsed:!0},"place labels":{name:"Place labels",collapsed:!0},"administrative boudaries":{name:"Administrative boudaries",collapsed:!0},"roads & transit network":{name:"Roads & transit network",collapsed:!0}}},center:[15.07,48.72],zoom:3.3,bearing:0,pitch:0,lights:[{id:"ambient",type:"ambient",properties:{color:["match",["config","lightPreset"],"dawn","hsl(28, 98%, 93%)","day","hsl(0, 0%, 100%)","dusk","hsl(228, 27%, 29%)","night","hsl(217, 100%, 11%)","hsl(0, 0%, 100%)"],intensity:["match",["config","lightPreset"],"dawn",.75,"day",.8,"dusk",.8,"night",.5,.8]}},{id:"directional",type:"directional",properties:{direction:["match",["config","lightPreset"],"dawn",["literal",[120,50]],"day",["literal",[180,20]],"dusk",["literal",[240,80]],"night",["literal",[270,20]],["literal",[180,20]]],color:["match",["config","lightPreset"],"dawn","hsl(33, 98%, 77%)","day","hsl(0, 0%, 100%)","dusk","hsl(30, 98%, 76%)","night","hsl(0, 0%, 29%)","hsl(0, 0%, 100%)"],intensity:["interpolate",["linear"],["zoom"],12,["match",["config","lightPreset"],"dawn",.5,"day",.2,"dusk",0,"night",0,.2],14,["match",["config","lightPreset"],"dawn",.5,"day",.2,"dusk",.2,"night",.5,.2]],"cast-shadows":!0,"shadow-intensity":["match",["config","lightPreset"],"night",.5,1]}}],terrain:{source:"mapbox-dem",exaggeration:["interpolate",["linear"],["zoom"],6,0,7,1,12,1,13.7,0]},fog:{"vertical-range":[30,120],range:["interpolate",["linear"],["zoom"],13,["literal",[1,20]],15,["literal",[1,4]]],color:["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],.1,"hsla(240, 9%, 55%, 0.2)",.4,"hsla(0, 0%, 100%, 0.2)"],7,["interpolate",["linear"],["measure-light","brightness"],.02,"hsla(213, 63%, 20%, 0.9)",.03,"hsla(30, 65%, 60%, 0.5)",.4,"hsla(10, 79%, 88%, 0.8)",.45,"hsla(200, 60%, 98%, 0.9)"]],"high-color":["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],.1,"hsla(215, 60%, 20%, 1)",.4,"hsla(215, 100%, 80%, 1)"],7,["interpolate",["linear"],["measure-light","brightness"],0,"hsla(228, 38%, 20%, 1)",.05,"hsla(360, 100%, 85%, 1)",.2,"hsla(205, 88%, 86%, 1)",.4,"hsla(270, 65%, 85%, 1)",.45,"hsla(0, 0%, 100%, 1)"]],"space-color":["interpolate",["exponential",1.2],["zoom"],5,"hsl(211, 84%, 0%)",7,["interpolate",["linear"],["measure-light","brightness"],0,"hsl(210, 84%, 5%)",.2,"hsl(210, 40%, 30%)",.4,"hsl(210, 45%, 30%)",.45,"hsl(210, 100%, 80%)"]],"horizon-blend":["interpolate",["exponential",1.2],["zoom"],5,.004,7,["interpolate",["exponential",1.2],["measure-light","brightness"],.35,.03,.4,.07,.45,.03]],"star-intensity":["interpolate",["exponential",1.2],["zoom"],5,.4,7,["interpolate",["exponential",1.2],["measure-light","brightness"],.1,.2,.3,0]]},camera:{"camera-projection":"orthographic"},schema:{roadsBrightness:{default:.7,type:"number",metadata:{"mapbox:title":"Roads brightness","mapbox:description":"Control how bright road network appear in dark styles","mapbox:group":!1}},colorPlaceLabelHighlight:{default:"hsl(5, 80%, 75%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Place label color used when setting highlight state.","mapbox:group":!1}},colorPlaceLabelSelect:{default:"hsl(5, 95%, 70%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Place label color used when setting select state.","mapbox:group":!1}},colorMotorways:{default:"hsl(214, 23%, 80%)",type:"color",metadata:{"mapbox:title":"Motorways","mapbox:description":"Set a custom color for motorway roads.","mapbox:group":"Color"}},colorTrunks:{default:"hsl(235, 20%, 80%)",type:"color",metadata:{"mapbox:title":"Trunk roads","mapbox:description":"Set a custom color for trunk roads.","mapbox:group":"Color"}},colorRoads:{default:"hsl(224, 25%, 75%)",type:"color",metadata:{"mapbox:title":"Roads","mapbox:description":"Set a custom color for roads.","mapbox:group":"Color"}},showPlaceLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Place labels","mapbox:description":"Shows and hides place label layers.","mapbox:group":"Visibility"}},showRoadsAndTransit:{default:!0,type:"boolean",metadata:{"mapbox:title":"Roads and transit network","mapbox:description":"Shows and hides all roads and transit networks.","mapbox:group":"Visibility"}},showPedestrianRoads:{default:!1,type:"boolean",metadata:{"mapbox:title":"Pedestrian roads, paths, trails","mapbox:description":"Shows and hides all pedestrian roads, paths, trails.","mapbox:group":"Visibility"}},showRoadLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Road labels","mapbox:description":"Shows and hides all road labels, including road shields.","mapbox:group":"Visibility"}},showPointOfInterestLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"POI labels","mapbox:description":"Shows or hides all POI icons and text.","mapbox:group":"Visibility"}},showTransitLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Transit labels","mapbox:description":"Shows or hides all transit icons and text.","mapbox:group":"Visibility"}},lightPreset:{default:"day",type:"string",values:["dawn","day","dusk","night"],metadata:{"mapbox:title":"Light preset","mapbox:description":"Switch between 4 time-of-day states: dusk, dawn, day and night.","mapbox:group":"Basemap"}},font:{default:"DIN Pro",type:"string",values:["Alegreya","Alegreya SC","Asap","Barlow","DIN Pro","EB Garamond","Faustina","Frank Ruhl Libre","Heebo","Inter","Lato","League Mono","Montserrat","Manrope","Noto Sans CJK JP","Open Sans","Poppins","Raleway","Roboto","Roboto Mono","Rubik","Source Code Pro","Source Sans Pro","Spectral","Ubuntu"],metadata:{"mapbox:title":"Font","mapbox:description":"Defines font family for the style from predefined options.","mapbox:group":"Typography"}}},sources:{"mapbox-dem":{url:"mapbox://mapbox.mapbox-terrain-dem-v1",type:"raster-dem",tileSize:512},"mapbox://mapbox.satellite":{url:"mapbox://mapbox.satellite",type:"raster",tileSize:256},composite:{url:"mapbox://mapbox.mapbox-bathymetry-v2,mapbox.mapbox-streets-v8-lite,mapbox.mapbox-poi-v2",type:"vector"}},sprite:"mapbox://sprites/mapbox/standard-satellite/46l64mrox16m5svqgseryp8fm",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"globe"},layers:[{id:"mapbox-satellite",type:"raster",source:"mapbox://mapbox.satellite",layout:{},paint:{"raster-emissive-strength":.5}},{id:"water",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"hsl(200, 35%, 28%)","fill-emissive-strength":.4,"fill-opacity":["interpolate",["linear"],["zoom"],10,.8,16,0]}},{id:"water-depth",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"depth",maxzoom:8,layout:{},paint:{"fill-emissive-strength":.4,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(200, 35%, 23%, 0.35)",200,"hsla(200, 35%, 20%, 0.35)",7e3,"hsla(200, 35%, 15%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(200, 35%, 30%, 0)",200,"hsla(200, 35%, 25%, 0)",7e3,"hsla(200, 35%, 20%, 0)"]]}},{id:"bottom",type:"slot",metadata:{"mapbox:description":"Above polygons (land, landuse, water, etc.)"}},{id:"tunnel-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)","line-dasharray":[10,0]}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":"round","line-join":"round"},paint:{"line-emissive-strength":.6,"line-opacity":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)"}},{id:"tunnel-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)","line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"tunnel-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"pedestrian"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":"round","line-join":"round"},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)"}},{id:"tunnel-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"tunnel-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"tunnel-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"tunnel-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-color":"hsl(125, 50%, 60%)","line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,.5],"line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"ferry",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["==",["get","type"],"ferry"],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.8,"line-color":"hsl(210, 40%, 55%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-dasharray":["step",["zoom"],["literal",[1,0]],13,["literal",[12,4]]]}},{id:"ferry-auto",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["==",["get","type"],"ferry_auto"],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.8,"line-color":"hsl(210, 40%, 55%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1]}},{id:"road-primary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["-",["config","roadsBrightness"],.3],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,1],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-opacity":["step",["zoom"],1,14,1,14.5,0]}},{id:"road-major-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["-",["config","roadsBrightness"],.3],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,1],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-opacity":["step",["zoom"],0,11,1,14,1,14.5,0]}},{id:"road-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:3,filter:["all",["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],5,["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["-",["config","roadsBrightness"],.3],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,1],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-opacity":["interpolate",["linear"],["zoom"],3,0,3.5,1,14,1,14.5,0]}},{id:"road-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":[10,0]}},{id:"road-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":.6,"line-opacity":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"road-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"road-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["case",["has","layer"],[">=",["get","layer"],0],!0],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"golf-hole-line",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["==",["get","class"],"golf"],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-color":"hsl(110, 29%, 70%)"}},{id:"road-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"road-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"road-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:3,filter:["all",["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],5,["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],3,0,3.5,1,14,1,15,0]}},{id:"road-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-color":"hsl(125, 50%, 60%)","line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,1],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"road-rail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-gap-width":["interpolate",["linear"],["zoom"],15,0,16,1,18,2,22,20],"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,2]}},{id:"road-rail-tracks",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],16,2,18,6,20,16,22,32],"line-dasharray":["step",["zoom"],["literal",[.1,15]],16,["literal",[.1,1]],18,["literal",[.05,.5]]],"line-opacity":["interpolate",["linear"],["zoom"],13.75,0,14,1]}},{id:"bridge-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":[10,0]}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-emissive-strength":.6,"line-opacity":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"bridge-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"bridge-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"bridge-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":"round"},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":"round"},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-major-link-2",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":"round"},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-motorway-trunk-2",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-color":"hsl(125, 50%, 60%)","line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,1],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"bridge-rail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-gap-width":["interpolate",["linear"],["zoom"],15,0,16,1,18,2,22,20],"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,2]}},{id:"bridge-rail-tracks",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],16,2,18,6,20,16,22,32],"line-dasharray":["step",["zoom"],["literal",[.1,15]],16,["literal",[.1,1]],18,["literal",[.05,.5]]],"line-opacity":["interpolate",["linear"],["zoom"],13.75,0,14,1]}},{id:"aerialway",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"aerialway"],["match",["get","type"],["aerialway:zip_line"],["step",["zoom"],!1,15,!0],!0]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":1,"line-color":"hsl(225, 60%, 58%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,1,20,2],"line-dasharray":[4,1]}},{id:"admin-1-boundary-bg",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:7,filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-width":["interpolate",["linear"],["zoom"],3,3,12,6],"line-color":"hsl(345, 100%, 0%)","line-opacity":["interpolate",["linear"],["zoom"],5,0,6,.1],"line-dasharray":[1,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,3]}},{id:"admin-0-boundary-bg",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"hsl(345, 100%, 0%)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.1],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]}},{id:"admin-1-boundary",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:2,filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],layout:{},paint:{"line-emissive-strength":1,"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]],"line-width":["interpolate",["linear"],["zoom"],3,.5,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":"hsl(345, 100%, 75%)"}},{id:"admin-0-boundary",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],layout:{},paint:{"line-emissive-strength":1,"line-color":"hsl(345, 100%, 70%)","line-width":["interpolate",["linear"],["zoom"],3,.8,12,2],"line-dasharray":[10,0]}},{id:"admin-0-boundary-disputed",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-color":"hsl(345, 100%, 70%)","line-width":["interpolate",["linear"],["zoom"],3,.8,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]}},{id:"middle",type:"slot",metadata:{"mapbox:description":"Above lines (roads, etc.) and behind 3D buildings"}},{id:"road-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["has","name"],["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],12,["match",["get","class"],["motorway","trunk","primary","secondary"],!0,!1],13,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary","street","street_limited"],!0,!1],15,["match",["get","class"],["path","pedestrian","golf","ferry","aerialway"],!1,!0]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.2]]]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],9,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","street","street_limited"],8,6.5],18,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],16,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","street","street_limited"],14,13]],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,visibility:["case",["config","showRoadLabels"],"visible","none"],"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15},paint:{"text-color":"hsl(0, 0%, 100%)","text-halo-color":"hsl(0, 0%, 20%)","text-halo-width":1.5,"text-halo-blur":1}},{id:"path-pedestrian-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["case",["has","layer"],[">=",["get","layer"],0],!0],["step",["zoom"],["match",["get","class"],["pedestrian"],!0,!1],15,["match",["get","class"],["path","pedestrian"],!0,!1]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.2]]]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],"pedestrian",9,6.5],18,["match",["get","class"],"pedestrian",14,13]],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,visibility:["case",["config","showRoadLabels"],"visible","none"],"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-color":"hsl(0, 0%, 100%)","text-halo-color":"hsl(0, 0%, 20%)","text-halo-width":1.5,"text-halo-blur":1}},{id:"golf-hole-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","class"],"golf"],["case",["<=",["pitch"],40],!0,["<=",["distance-from-center"],0]]],layout:{visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-size":12},paint:{"text-emissive-strength":.8,"text-halo-color":"hsl(110, 70%, 28%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(110, 40%, 65%)"}},{id:"ferry-aerialway-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],"aerialway",!0,"ferry",!0,!1],["case",["<=",["pitch"],40],!0,["<=",["distance-from-center"],0]]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,6.5,18,13],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,visibility:["case",["config","showTransitLabels"],"visible","none"],"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-emissive-strength":.8,"text-color":"hsl(200, 40%, 60%)","text-halo-color":"hsl(225, 60%, 20%)","text-halo-width":1.5,"text-halo-blur":1}},{id:"waterway-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-emissive-strength":.8,"text-color":"hsl(210, 96%, 75%)"}},{id:"natural-line-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["get","filterrank"],2],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-halo-width":1,"text-halo-color":"hsl(210, 20%,20%)","text-halo-blur":.5,"text-color":"hsl(0, 0%, 95%)"}},{id:"natural-point-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["get","filterrank"],2],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"Point"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["image",["string",["get","maki"]]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.75]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.75]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-color":"hsl(210, 20%,20%)","text-color":"hsl(0, 0%, 95%)","text-halo-width":1}},{id:"water-line-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-emissive-strength":.8,"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(210, 96%, 65%)","hsl(210, 96%, 75%)"]}},{id:"water-point-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"Point"],["!=",["id"],1]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},paint:{"text-emissive-strength":.8,"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(210, 96%, 65%)","hsl(210, 96%, 75%)"]}},{id:"road-intersection",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","class"],"intersection"],["has","name"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"icon-image":"intersection","icon-text-fit":"both","icon-text-fit-padding":[1,2,1,2],"text-size":["interpolate",["exponential",1.2],["zoom"],15,9,18,12],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":"hsl(230, 57%, 64%)"}},{id:"road-number-shield",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["has","reflen"],["<=",["get","reflen"],6],["match",["get","class"],["pedestrian","service"],!1,!0],["step",["zoom"],["==",["geometry-type"],"Point"],11,[">",["coalesce",["get","len"],0],5e3],12,[">",["coalesce",["get","len"],0],2500],13,[">",["coalesce",["get","len"],0],1e3],14,!0],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{"text-size":9,"icon-image":["case",["has","shield_beta"],["coalesce",["image",["concat",["get","shield_beta"],"-",["to-string",["get","reflen"]]]],["image",["concat",["get","shield"],"-",["to-string",["get","reflen"]]]],["image",["concat","default-",["to-string",["get","reflen"]]]]],["concat",["get","shield"],"-",["to-string",["get","reflen"]]]],"icon-rotation-alignment":"viewport","text-max-angle":38,"symbol-spacing":["interpolate",["linear"],["zoom"],11,400,14,600],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"],"symbol-placement":["step",["zoom"],"point",11,"line"],visibility:["case",["config","showRoadLabels"],"visible","none"],"text-rotation-alignment":"viewport","text-field":["get","ref"],"text-letter-spacing":.05},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":["case",["has","shield_beta"],["case",["all",["has","shield_text_color_beta"],["to-boolean",["coalesce",["image",["concat",["get","shield_beta"],"-",["to-string",["get","reflen"]]]],""]]],["match",["get","shield_text_color_beta"],"white","hsl(0, 0%, 100%)","yellow","hsl(50, 100%, 70%)","orange","hsl(25, 100%, 75%)","blue","hsl(230, 57%, 44%)","red","hsl(0, 87%, 59%)","green","hsl(140, 74%, 37%)","hsl(230, 18%, 13%)"],"hsl(230, 18%, 13%)"],["match",["get","shield_text_color"],"white","hsl(0, 0%, 100%)","yellow","hsl(50, 100%, 70%)","orange","hsl(25, 100%, 75%)","blue","hsl(230, 57%, 44%)","red","hsl(0, 87%, 59%)","green","hsl(140, 74%, 37%)","hsl(230, 18%, 13%)"]]}},{id:"road-exit-shield",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"motorway_junction",minzoom:14,filter:["all",["has","reflen"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-field":["get","ref"],"text-size":9,"icon-image":["concat","motorway-exit-",["to-string",["get","reflen"]]],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":"hsl(0, 0%, 100%)","text-translate":[0,0]}},{id:"gate-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"structure",minzoom:17,filter:["all",["==",["get","class"],"gate"],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<=",["distance-from-center"],.4],50,["<",["distance-from-center"],.2],55,["<",["distance-from-center"],0],60,["<",["distance-from-center"],-.05]]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"icon-image":["match",["get","type"],"gate","gate","lift_gate","lift-gate",""]},paint:{"icon-emissive-strength":.8}},{id:"building-entrance",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"structure",minzoom:18,filter:["all",["==",["get","class"],"entrance"],["case",["<=",["pitch"],40],!0,!1]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"icon-image":"marker","text-field":["get","ref"],"text-size":10,"text-offset":[0,-.5],"text-font":[["concat",["config","font"]," Regular"],"Arial Unicode MS Regular"]},paint:{"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)","icon-opacity":.4}},{id:"building-number-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"housenum_label",minzoom:17,filter:["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],.4],50,["<",["distance-from-center"],.2],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.4]]],layout:{"symbol-z-elevate":!0,visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["get","house_num"],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-max-width":10,"text-size":10,"text-padding":20},paint:{"text-emissive-strength":1.4,"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)"}},{id:"block-number-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"place_label",minzoom:16,filter:["all",["==",["get","class"],"settlement_subdivision"],["==",["get","type"],"block"],["case",["<=",["pitch"],60],!0,["<=",["distance-from-center"],.5]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["get","name"],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-max-width":7,"text-size":11},paint:{"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)"}},{id:"poi-label",type:"symbol",metadata:{"mapbox:group":"poi labels"},source:"composite","source-layer":"poi",minzoom:6,filter:["all",["has","sub_category"],["case",["<=",["pitch"],15],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","category"],"park_like",4,"visitor_amenities",2,"store_like",3,"lodging",1,2]]],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","category"],"park_like",4,["food_and_drink","visitor_amenities","lodging"],1,"religion",0,2]]]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1.2],50,["<",["distance-from-center"],1],55,["<",["distance-from-center"],.8],60,["<=",["distance-from-center"],.6]]],["match",["get","category"],["sport_and_leisure","visitor_amenities","commercial_services","general"],[">",["get","reality_score"],.95],["building","lodging","medical","store_like","food_and_drink","food_and_drink_stores","motorist","industrial","education"],[">",["get","reality_score"],.85],!0]],layout:{"text-size":13,"icon-image":["image",["string",["get","icon"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","icon"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","category"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","icon"],["literal",["communications-tower","museum","zoo"]]],["in",["get","category"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","icon"],"car-repair"],["in",["get","category"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","icon"],"picnic-site"],["==",["get","category"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","icon"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-padding":["interpolate",["linear"],["zoom"],16,6,17,4],visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"symbol-z-elevate":!0,"text-offset":["case",["match",["get","category"],["building","general","place_like"],!0,!1],["literal",[0,-.6]],["literal",[0,.8]]],"text-anchor":["case",["match",["get","category"],["building","general","place_like"],!0,!1],"bottom","top"],"text-field":["format",["get","name"],{}]},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"icon-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"text-opacity":1,"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-width":1,"text-halo-color":"hsl(0, 0%, 15%)","text-color":["match",["get","category"],"food_and_drink","hsl(40, 100%, 75%)","park_like","hsl(110, 65%, 65%)","education","hsl(30, 100%, 70%)","medical","hsl(0, 100%, 85%)","sport_and_leisure","hsl(190, 60%, 75%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 80%)",["commercial_services","motorist","lodging"],"hsl(260, 100%, 85%)",["arts_and_entertainment","historic","landmark"],"hsl(320, 90%, 85%)",["match",["get","maki_beta"],"terminal","hsl(220, 100%, 80%)","hsl(0, 0%, 90%)"]]}},{id:"poi-label-osm",type:"symbol",metadata:{"mapbox:group":"poi labels"},source:"composite","source-layer":"poi",minzoom:6,filter:["all",["!",["has","sub_category"]],["case",["<=",["pitch"],15],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","class"],"park_like",4,"visitor_amenities",2,"store_like",3,"lodging",1,2]]],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","class"],"park_like",4,["food_and_drink","visitor_amenities","lodging"],1,"religion",0,2]]]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1.2],50,["<",["distance-from-center"],1],55,["<",["distance-from-center"],.8],60,["<=",["distance-from-center"],.6]]],["all",["match",["get","type"],"Toilets",[">=",["zoom"],17],!0]]],layout:{"text-size":["step",["zoom"],["step",["number",["get","sizerank"]],18,5,13],17,["step",["number",["get","sizerank"]],18,13,13]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["string",["get","maki_beta"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","maki_beta"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","class"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","maki_beta"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}],["image",["string",["get","maki"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","maki"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","class"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","maki"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}]],["image",["string",["get","maki"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","maki"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","class"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","maki"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-padding":["interpolate",["linear"],["zoom"],16,6,17,4],visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"symbol-z-elevate":!0,"text-offset":["step",["zoom"],["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],["literal",[0,-.6]],["step",["number",["get","sizerank"]],["literal",[0,0]],5,["literal",[0,.8]]]],17,["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],["literal",[0,-.6]],["step",["number",["get","sizerank"]],["literal",[0,0]],13,["literal",[0,.8]]]]],"text-anchor":["step",["zoom"],["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],"bottom",["step",["number",["get","sizerank"]],"center",5,"top"]],17,["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],"bottom",["step",["number",["get","sizerank"]],"center",13,"top"]]],"text-field":["format",["coalesce",["get","name_en"],["get","name"]],{}]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-width":1.2,"text-halo-color":"hsl(0, 0%, 15%)","text-color":["match",["get","class"],"food_and_drink","hsl(40, 100%, 75%)","park_like","hsl(110, 65%, 65%)","education","hsl(30, 100%, 70%)","medical","hsl(0, 100%, 85%)","sport_and_leisure","hsl(190, 60%, 75%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 80%)",["commercial_services","motorist","lodging"],"hsl(260, 100%, 85%)",["arts_and_entertainment","historic","landmark"],"hsl(320, 90%, 85%)",["match",["get","maki_beta"],"terminal","hsl(220, 100%, 80%)","hsl(0, 0%, 90%)"]]}},{id:"top",type:"slot",metadata:{"mapbox:description":"Above POI labels and behind Place and Transit labels"}},{id:"transit-label",type:"symbol",metadata:{"mapbox:group":"transit labels"},source:"composite","source-layer":"transit_stop_label",minzoom:12,filter:["all",["step",["zoom"],["all",["!=",["get","mode"],"bus"],["!=",["get","stop_type"],"entrance"]],17,["!=",["get","stop_type"],"entrance"],19,!0],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],50,["<",["distance-from-center"],.8],55,["<",["distance-from-center"],.4],60,["<=",["distance-from-center"],-.1]]]],layout:{"text-size":13,"icon-image":["image",["string",["get","network"]],{params:{background:"hsl(220, 100%, 70%)","background-stroke":"hsl(0, 0%, 0%)",icon:"hsl(0, 0%, 0%)"}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-justify":["match",["get","stop_type"],"entrance","left","center"],visibility:["case",["config","showTransitLabels"],"visible","none"],"text-offset":["match",["get","stop_type"],"entrance",["literal",[1,0]],["literal",[0,.6]]],"text-anchor":["match",["get","stop_type"],"entrance","left","top"],"text-field":["step",["zoom"],["format","",{}],13,["match",["get","mode"],["metro_rail","rail"],["format",["coalesce",["get","name_en"],["get","name"]],{}],["format","",{}]],14,["match",["get","mode"],["bicycle","bus"],["format","",{}],["format",["coalesce",["get","name_en"],["get","name"]],{}]],18,["format",["coalesce",["get","name_en"],["get","name"]],{}]],"text-letter-spacing":.01,"text-max-width":["match",["get","stop_type"],"entrance",15,9]},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-halo-width":1.2,"text-halo-color":"hsl(0, 0%, 10%)","text-color":["match",["get","network"],"tokyo-metro","hsl(180, 50%, 30%)","mexico-city-metro","hsl(25, 100%, 63%)",["barcelona-metro","delhi-metro","hong-kong-mtr","milan-metro","osaka-subway"],"hsl(0, 90%, 47%)",["boston-t","washington-metro"],"hsl(230, 18%, 20%)",["chongqing-rail-transit","kiev-metro","singapore-mrt","taipei-metro"],"hsl(140, 90%, 25%)","hsl(225, 100%, 82%)"]}},{id:"airport-label",type:"symbol",metadata:{"mapbox:group":"transit labels"},source:"composite","source-layer":"airport_label",minzoom:8,filter:["all",["match",["get","class"],["military","civil","disputed_military","disputed_civil"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{"text-line-height":1.1,"text-size":["step",["get","sizerank"],18,9,13],"icon-image":["image",["string",["get","maki"]],{params:{background:"hsl(220, 100%, 70%)","background-stroke":"hsl(0, 0%, 0%)",icon:"hsl(0, 0%, 0%)"}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],visibility:["case",["config","showTransitLabels"],"visible","none"],"text-offset":[0,.8],"text-rotation-alignment":"viewport","text-anchor":"top","text-field":["step",["get","sizerank"],["case",["has","ref"],["concat",["get","ref"],` -
232
+ `:""}function t0(t){t&&(t.nodeType===Node.ELEMENT_NODE&&t.setAttribute("data-sd-slotted",""),t.querySelectorAll&&t.querySelectorAll("*").forEach(e=>e.setAttribute("data-sd-slotted","")))}async function o0(t,e=3){let a=()=>{var l;try{return t.contentDocument||((l=t.contentWindow)==null?void 0:l.document)||null}catch{return null}},r=a(),i=0;for(;i<e&&(!r||!r.body&&!r.documentElement);)await new Promise(l=>setTimeout(l,0)),r=a(),i++;return r&&(r.body||r.documentElement)?r:null}function a0(t){let e=t.getBoundingClientRect(),a=0,r=0,i=0,l=0;try{let s=getComputedStyle(t);a=parseFloat(s.borderLeftWidth)||0,r=parseFloat(s.borderRightWidth)||0,i=parseFloat(s.borderTopWidth)||0,l=parseFloat(s.borderBottomWidth)||0}catch{}let n=Math.max(0,Math.round(e.width-(a+r))),c=Math.max(0,Math.round(e.height-(i+l)));return{contentWidth:n,contentHeight:c,rect:e}}function i0(t,e,a){let r=t.createElement("style");return r.setAttribute("data-sd-iframe-pin",""),r.textContent=`html, body {margin: 0 !important;padding: 0 !important;width: ${e}px !important;height: ${a}px !important;min-width: ${e}px !important;min-height: ${a}px !important;box-sizing: border-box !important;overflow: hidden !important;background-clip: border-box !important;}`,(t.head||t.documentElement).appendChild(r),()=>{try{r.remove()}catch{}}}async function r0(t,e,a){let r=await o0(t,3);if(!r)throw new Error("iframe document not accessible/ready");let{contentWidth:i,contentHeight:l,rect:n}=a0(t),c=a==null?void 0:a.snap;if(!c||typeof c.toPng!="function")throw new Error("snapdom.toPng not available in iframe or window");let s={...a,scale:1},d=i0(r,i,l),m;try{m=await c.toPng(r.documentElement,s)}finally{d()}m.style.display="block",m.style.width=`${i}px`,m.style.height=`${l}px`;let p=document.createElement("div");return e.nodeMap.set(p,t),Ye(t,p,e,a),p.style.overflow="hidden",p.style.display="block",p.style.width||(p.style.width=`${Math.round(n.width)}px`),p.style.height||(p.style.height=`${Math.round(n.height)}px`),p.appendChild(m),p}var tt=new Map;async function ot(t){var a;if((a=R.resource)!=null&&a.has(t))return R.resource.get(t);if(tt.has(t))return tt.get(t);let e=(async()=>{var i;let r=await De(t,{as:"dataURL",silent:!0});if(!r.ok||typeof r.data!="string")throw new Error(`[snapDOM] Failed to read blob URL: ${t}`);return(i=R.resource)==null||i.set(t,r.data),r.data})();tt.set(t,e);try{let r=await e;return tt.set(t,r),r}catch(r){throw tt.delete(t),r}}var l0=/\bblob:[^)"'\s]+/g;async function Ma(t){if(!t||t.indexOf("blob:")===-1)return t;let e=Array.from(new Set(t.match(l0)||[]));if(e.length===0)return t;let a=t;for(let r of e)try{let i=await ot(r);a=a.split(r).join(i)}catch{}return a}function Fo(t){return typeof t=="string"&&t.startsWith("blob:")}function n0(t){return(t||"").split(",").map(e=>e.trim()).filter(Boolean).map(e=>{let a=e.match(/^(\S+)(\s+.+)?$/);return a?{url:a[1],desc:a[2]||""}:null}).filter(Boolean)}function s0(t){return t.map(e=>e.desc?`${e.url} ${e.desc.trim()}`:e.url).join(", ")}async function c0(t){var n,c;if(!t)return;let e=t.querySelectorAll?t.querySelectorAll("img"):[];for(let s of e)try{let d=s.getAttribute("src")||s.currentSrc||"";if(Fo(d)){let p=await ot(d);s.setAttribute("src",p)}let m=s.getAttribute("srcset");if(m&&m.includes("blob:")){let p=n0(m),g=!1;for(let y of p)if(Fo(y.url))try{y.url=await ot(y.url),g=!0}catch{}g&&s.setAttribute("srcset",s0(p))}}catch{}let a=t.querySelectorAll?t.querySelectorAll("image"):[];for(let s of a)try{let d="http://www.w3.org/1999/xlink",m=s.getAttribute("href")||((n=s.getAttributeNS)==null?void 0:n.call(s,d,"href"));if(Fo(m)){let p=await ot(m);s.setAttribute("href",p),(c=s.removeAttributeNS)==null||c.call(s,d,"href")}}catch{}let r=t.querySelectorAll?t.querySelectorAll("[style*='blob:']"):[];for(let s of r)try{let d=s.getAttribute("style");if(d&&d.includes("blob:")){let m=await Ma(d);s.setAttribute("style",m)}}catch{}let i=t.querySelectorAll?t.querySelectorAll("style"):[];for(let s of i)try{let d=s.textContent||"";d.includes("blob:")&&(s.textContent=await Ma(d))}catch{}let l=["poster"];for(let s of l){let d=t.querySelectorAll?t.querySelectorAll(`[${s}^='blob:']`):[];for(let m of d)try{let p=m.getAttribute(s);Fo(p)&&m.setAttribute(s,await ot(p))}catch{}}}async function Go(t,e,a){var d,m,p,g,y,u;if(!t)throw new Error("Invalid node");let r=new Set,i=null,l=null;if(t.nodeType===Node.ELEMENT_NODE){let h=(t.localName||t.tagName||"").toLowerCase();if(t.id==="snapdom-sandbox"||t.hasAttribute("data-snapdom-sandbox")||Ug.has(h))return null}if(t.nodeType===Node.TEXT_NODE||t.nodeType!==Node.ELEMENT_NODE)return t.cloneNode(!0);if(t.getAttribute("data-capture")==="exclude"){if(a.excludeMode==="hide"){let h=document.createElement("div"),f=t.getBoundingClientRect();return h.style.cssText=`display:inline-block;width:${f.width}px;height:${f.height}px;visibility:hidden;`,h}else if(a.excludeMode==="remove")return null}if(a.exclude&&Array.isArray(a.exclude))for(let h of a.exclude)try{if((d=t.matches)!=null&&d.call(t,h)){if(a.excludeMode==="hide"){let f=document.createElement("div"),k=t.getBoundingClientRect();return f.style.cssText=`display:inline-block;width:${k.width}px;height:${k.height}px;visibility:hidden;`,f}else if(a.excludeMode==="remove")return null}}catch(f){console.warn(`Invalid selector in exclude option: ${h}`,f)}if(typeof a.filter=="function")try{if(!a.filter(t)){if(a.filterMode==="hide"){let h=document.createElement("div"),f=t.getBoundingClientRect();return h.style.cssText=`display:inline-block;width:${f.width}px;height:${f.height}px;visibility:hidden;`,h}else if(a.filterMode==="remove")return null}}catch(h){console.warn("Error in filter function:",h)}if(t.tagName==="IFRAME"){let h=!1;try{h=!!(t.contentDocument||(m=t.contentWindow)!=null&&m.document)}catch{h=!1}if(h)try{return await r0(t,e,a)}catch(f){console.warn("[SnapDOM] iframe rasterization failed, fallback:",f)}if(a.placeholders){let f=document.createElement("div");return f.style.cssText=`width:${t.offsetWidth}px;height:${t.offsetHeight}px;background-image:repeating-linear-gradient(45deg,#ddd,#ddd 5px,#f9f9f9 5px,#f9f9f9 10px);display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;border:1px solid #aaa;`,Ye(t,f,e,a),f}else{let f=t.getBoundingClientRect(),k=document.createElement("div");return k.style.cssText=`display:inline-block;width:${f.width}px;height:${f.height}px;visibility:hidden;`,Ye(t,k,e,a),k}}if(t.getAttribute("data-capture")==="placeholder"){let h=t.cloneNode(!1);e.nodeMap.set(h,t),Ye(t,h,e,a);let f=document.createElement("div");return f.textContent=t.getAttribute("data-placeholder-text")||"",f.style.cssText="color:#666;font-size:12px;text-align:center;line-height:1.4;padding:0.5em;box-sizing:border-box;",h.appendChild(f),h}if(t.tagName==="CANVAS"){let h="";try{let k=t.getContext("2d",{willReadFrequently:!0});try{k&&k.getImageData(0,0,1,1)}catch{}if(await new Promise(w=>requestAnimationFrame(w)),h=t.toDataURL("image/png"),!h||h==="data:,"){try{k&&k.getImageData(0,0,1,1)}catch{}if(await new Promise(w=>requestAnimationFrame(w)),h=t.toDataURL("image/png"),!h||h==="data:,"){let w=document.createElement("canvas");w.width=t.width,w.height=t.height;let b=w.getContext("2d");b&&(b.drawImage(t,0,0),h=w.toDataURL("image/png"))}}}catch{}let f=document.createElement("img");try{f.decoding="sync",f.loading="eager"}catch{}h&&(f.src=h),f.width=t.width,f.height=t.height;try{let k=getComputedStyle(t);k.width&&(f.style.width=k.width),k.height&&(f.style.height=k.height)}catch{}return e.nodeMap.set(f,t),Ye(t,f,e,a),f}let n;try{if(n=t.cloneNode(!1),ju(t,n),e.nodeMap.set(n,t),t.tagName==="IMG"){Ku(t,n);try{let h=t.getBoundingClientRect(),f=Math.round(h.width||0),k=Math.round(h.height||0);if(!f||!k){let w=window.getComputedStyle(t),b=parseFloat(w.width)||0,x=parseFloat(w.height)||0,C=parseInt(t.getAttribute("width")||"",10)||0,L=parseInt(t.getAttribute("height")||"",10)||0,z=t.width||t.naturalWidth||0,v=t.height||t.naturalHeight||0;f=Math.round(f||b||C||z||0),k=Math.round(k||x||L||v||0)}f&&(n.dataset.snapdomWidth=String(f)),k&&(n.dataset.snapdomHeight=String(k))}catch{}try{let h=t.getAttribute("style")||"",f=window.getComputedStyle(t),k=L=>{let z=h.match(new RegExp(`${L}\\s*:\\s*([^;]+)`,"i")),v=z?z[1].trim():f.getPropertyValue(L);return/%|auto/i.test(String(v||""))},w=parseInt(n.dataset.snapdomWidth||"0",10),b=parseInt(n.dataset.snapdomHeight||"0",10),x=k("width")||!w,C=k("height")||!b;x&&w&&(n.style.width=`${w}px`),C&&b&&(n.style.height=`${b}px`),w&&(n.style.minWidth=`${w}px`),b&&(n.style.minHeight=`${b}px`)}catch{}}}catch(h){throw console.error("[Snapdom] Failed to clone node:",t,h),h}if(t instanceof HTMLTextAreaElement){let h=t.getBoundingClientRect();n.style.width=`${h.width}px`,n.style.height=`${h.height}px`}if(t instanceof HTMLInputElement&&(n.value=t.value,n.setAttribute("value",t.value),t.checked!==void 0&&(n.checked=t.checked,t.checked&&n.setAttribute("checked",""),t.indeterminate&&(n.indeterminate=t.indeterminate))),t instanceof HTMLSelectElement&&(i=t.value),t instanceof HTMLTextAreaElement&&(l=t.value),Ye(t,n,e,a),t.shadowRoot){let h=function(v,M){if(v.nodeType===Node.ELEMENT_NODE&&v.tagName==="STYLE")return M(null);Go(v,e,a).then(T=>{M(T||null)}).catch(()=>{M(null)})};try{let v=t.shadowRoot.querySelectorAll("slot");for(let M of v){let T=[];try{T=((p=M.assignedNodes)==null?void 0:p.call(M,{flatten:!0}))||((g=M.assignedNodes)==null?void 0:g.call(M))||[]}catch{T=((y=M.assignedNodes)==null?void 0:y.call(M))||[]}for(let E of T)r.add(E)}}catch{}let f=Uu(e),k=`[data-sd="${f}"]`;try{n.setAttribute("data-sd",f)}catch{}let w=$u(t.shadowRoot),b=Yu(w,k),x=qu(w),C=e0(t,x,k);Ju(n,C+b,f);let L=document.createDocumentFragment(),z=await ea(Array.from(t.shadowRoot.childNodes),h,a.fast);L.append(...z.filter(v=>!!v)),n.appendChild(L)}if(t.tagName==="SLOT"){let h=function(x,C){Go(x,e,a).then(L=>{L&&t0(L),C(L||null)}).catch(()=>{C(null)})},f=((u=t.assignedNodes)==null?void 0:u.call(t,{flatten:!0}))||[],k=f.length>0?f:Array.from(t.childNodes),w=document.createDocumentFragment(),b=await ea(Array.from(k),h,a.fast);return w.append(...b.filter(x=>!!x)),w}function c(h,f){if(r.has(h))return f(null);Go(h,e,a).then(k=>{f(k||null)}).catch(()=>{f(null)})}let s=await ea(Array.from(t.childNodes),c,a.fast);if(n.append(...s.filter(h=>!!h)),i!==null&&n instanceof HTMLSelectElement){n.value=i;for(let h of n.options)h.value===i?h.setAttribute("selected",""):h.removeAttribute("selected")}return l!==null&&n instanceof HTMLTextAreaElement&&(n.textContent=l),n}function m0(t){return/\bcounter\s*\(|\bcounters\s*\(/.test(t||"")}function d0(t){return(t||"").replace(/"([^"]*)"/g,"$1")}function Ta(t,e=!1){let a="",r=Math.max(1,t);for(;r>0;)r--,a=String.fromCharCode(97+r%26)+a,r=Math.floor(r/26);return e?a.toUpperCase():a}function Ea(t,e=!0){let a=[[1e3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],r=Math.max(1,Math.min(3999,t)),i="";for(let[l,n]of a)for(;r>=l;)i+=n,r-=l;return e?i:i.toLowerCase()}function Da(t,e){switch((e||"decimal").toLowerCase()){case"decimal":return String(Math.max(0,t));case"decimal-leading-zero":return(t<10?"0":"")+String(Math.max(0,t));case"lower-alpha":return Ta(t,!1);case"upper-alpha":return Ta(t,!0);case"lower-roman":return Ea(t,!1);case"upper-roman":return Ea(t,!0);default:return String(Math.max(0,t))}}function h0(t){let e=()=>{var g;return((g=R==null?void 0:R.session)==null?void 0:g.__counterEpoch)??0},a=e(),r=new WeakMap,i=t instanceof Document?t.documentElement:t,l=g=>g&&g.tagName==="LI",n=g=>{let y=0,u=g==null?void 0:g.parentElement;if(!u)return 0;for(let h of u.children){if(h===g)break;h.tagName==="LI"&&y++}return y},c=g=>{let y=new Map;for(let[u,h]of g)y.set(u,h.slice());return y},s=(g,y,u)=>{var w,b;let h=c(g),f;try{f=((w=u.style)==null?void 0:w.counterReset)||getComputedStyle(u).counterReset}catch{}if(f&&f!=="none")for(let x of f.split(",")){let C=x.trim().split(/\s+/),L=C[0],z=Number.isFinite(Number(C[1]))?Number(C[1]):0;if(!L)continue;let v=y.get(L);if(v&&v.length){let M=v.slice();M.push(z),h.set(L,M)}else h.set(L,[z])}let k;try{k=((b=u.style)==null?void 0:b.counterIncrement)||getComputedStyle(u).counterIncrement}catch{}if(k&&k!=="none")for(let x of k.split(",")){let C=x.trim().split(/\s+/),L=C[0],z=Number.isFinite(Number(C[1]))?Number(C[1]):1;if(!L)continue;let v=h.get(L)||[];v.length===0&&v.push(0),v[v.length-1]+=z,h.set(L,v)}try{if(getComputedStyle(u).display==="list-item"&&l(u)){let x=u.parentElement,C=1;if(x&&x.tagName==="OL"){let z=x.getAttribute("start"),v=Number.isFinite(Number(z))?Number(z):1,M=n(u),T=u.getAttribute("value");C=Number.isFinite(Number(T))?Number(T):v+M}else C=1+n(u);let L=h.get("list-item")||[];L.length===0&&L.push(0),L[L.length-1]=C,h.set("list-item",L)}}catch{}return h},d=(g,y,u)=>{let h=s(u,y,g);r.set(g,h);let f=h;for(let k of g.children)f=d(k,h,f);return h},m=new Map;d(i,m,m);function p(){let g=e();if(g!==a){a=g;let y=new Map;d(i,y,y)}}return{get(g,y){var h;p();let u=(h=r.get(g))==null?void 0:h.get(y);return u&&u.length?u[u.length-1]:0},getStack(g,y){var h;p();let u=(h=r.get(g))==null?void 0:h.get(y);return u?u.slice():[]}}}function p0(t,e,a){if(!t||t==="none")return t;try{let r=/\b(counter|counters)\s*\(([^)]+)\)/g,i=t.replace(r,(l,n,c)=>{var d,m,p;let s=String(c).split(",").map(g=>g.trim());if(n==="counter"){let g=(d=s[0])==null?void 0:d.replace(/^["']|["']$/g,""),y=(s[1]||"decimal").toLowerCase(),u=a.get(e,g);return Da(u,y)}else{let g=(m=s[0])==null?void 0:m.replace(/^["']|["']$/g,""),y=((p=s[1])==null?void 0:p.replace(/^["']|["']$/g,""))??"",u=(s[2]||"decimal").toLowerCase(),h=a.getStack(e,g);return h.length?h.map(f=>Da(f,u)).join(y):""}});return d0(i)}catch{return"- "}}var Ue=new WeakMap,Ra=300;function g0(t,e){let a=Ba(t);return e?(e.__pseudoPreflightFp!==a&&(e.__pseudoPreflight=Aa(t),e.__pseudoPreflightFp=a),!!e.__pseudoPreflight):Aa(t)}function ta(t){try{return t&&t.cssRules?t.cssRules:null}catch{return null}}function Ba(t){let e=t.querySelectorAll('style,link[rel~="stylesheet"]'),a=`n:${e.length}|`,r=0;for(let l=0;l<e.length;l++){let n=e[l];if(n.tagName==="STYLE"){let c=n.textContent?n.textContent.length:0;a+=`S${c}|`;let s=n.sheet,d=s?ta(s):null;d&&(r+=d.length)}else{let c=n.getAttribute("href")||"",s=n.getAttribute("media")||"all";a+=`L${c}|m:${s}|`;let d=n.sheet,m=d?ta(d):null;m&&(r+=m.length)}}let i=t.adoptedStyleSheets;return a+=`ass:${Array.isArray(i)?i.length:0}|tr:${r}`,a}function Ia(t,e,a){let r=ta(t);if(!r)return!1;for(let i=0;i<r.length;i++){if(a.budget<=0)return!1;let l=r[i],n=l&&l.cssText?l.cssText:"";a.budget--;for(let c of e)if(n.includes(c))return!0;if(l&&l.cssRules&&l.cssRules.length)for(let c=0;c<l.cssRules.length&&a.budget>0;c++){let s=l.cssRules[c],d=s&&s.cssText?s.cssText:"";a.budget--;for(let m of e)if(d.includes(m))return!0}if(a.budget<=0)return!1}return!1}function Aa(t=document){let e=Ba(t),a=Ue.get(t);if(a&&a.fingerprint===e)return a.result;let r=["::before","::after","::first-letter",":before",":after",":first-letter","counter(","counters(","counter-increment","counter-reset"],i=t.querySelectorAll("style");for(let n=0;n<i.length;n++){let c=i[n].textContent||"";for(let s of r)if(c.includes(s))return Ue.set(t,{fingerprint:e,result:!0}),!0}let l=t.adoptedStyleSheets;if(Array.isArray(l)&&l.length){let n={budget:Ra};try{for(let c of l)if(Ia(c,r,n))return Ue.set(t,{fingerprint:e,result:!0}),!0}catch{}}{let n=t.querySelectorAll('style,link[rel~="stylesheet"]'),c={budget:Ra};for(let s=0;s<n.length&&c.budget>0;s++){let d=n[s],m=null;if(d.tagName,m=d.sheet||null,m&&Ia(m,r,c))return Ue.set(t,{fingerprint:e,result:!0}),!0}}return t.querySelector('[style*="counter("], [style*="counters("]')?(Ue.set(t,{fingerprint:e,result:!0}),!0):(Ue.set(t,{fingerprint:e,result:!1}),!1)}var $e=new WeakMap,Fa=-1;function u0(t){return(t||"").replace(/"([^"]*)"/g,"$1")}function f0(t){if(!t)return"";let e=[],a=/"([^"]*)"/g,r;for(;r=a.exec(t);)e.push(r[1]);return e.length?e.join(""):u0(t)}function oa(t,e){let a=t.parentElement,r=a?$e.get(a):null;return r?{get(i,l){let n=e.get(i,l),c=r.get(l);return typeof c=="number"?Math.max(n,c):n},getStack(i,l){let n=e.getStack(i,l);if(!n.length)return n;let c=r.get(l);if(typeof c=="number"){let s=n.slice();return s[s.length-1]=Math.max(s[s.length-1],c),s}return n}}:e}function aa(t,e,a){let r=new Map;function i(s){let d=[];if(!s||s==="none")return d;for(let m of String(s).split(",")){let p=m.trim().split(/\s+/),g=p[0],y=Number.isFinite(Number(p[1]))?Number(p[1]):void 0;g&&d.push({name:g,num:y})}return d}let l=i(e==null?void 0:e.counterReset),n=i(e==null?void 0:e.counterIncrement);function c(s){if(r.has(s))return r.get(s).slice();let d=a.getStack(t,s);d=d.length?d.slice():[];let m=l.find(g=>g.name===s);if(m){let g=Number.isFinite(m.num)?m.num:0;d=d.length?[...d,g]:[g]}let p=n.find(g=>g.name===s);if(p){let g=Number.isFinite(p.num)?p.num:1;d.length===0&&(d=[0]),d[d.length-1]+=g}return r.set(s,d.slice()),d}return{get(s,d){let m=c(d);return m.length?m[m.length-1]:0},getStack(s,d){return c(d)},__incs:n}}function y0(t,e,a){let r;try{r=getComputedStyle(t,e)}catch{}let i=r==null?void 0:r.content;if(!i||i==="none"||i==="normal")return{text:"",incs:[]};let l=oa(t,a),n=aa(t,r,l),c=m0(i)?p0(i,t,n):i;return{text:f0(c),incs:n.__incs||[]}}async function Ga(t,e,a,r){var d,m,p;if(!(t instanceof Element)||!(e instanceof Element))return;let i=t.ownerDocument||document;if(!g0(i,a))return;let l=((d=R==null?void 0:R.session)==null?void 0:d.__counterEpoch)??0;if(Fa!==l&&($e=new WeakMap,a&&(a.__counterCtx=null),Fa=l),!a.__counterCtx)try{a.__counterCtx=h0(t.ownerDocument||document)}catch{}let n=a.__counterCtx;for(let g of["::before","::after","::first-letter"])try{let y=pa(t,g);if(!y||y.content==="none"&&y.backgroundImage==="none"&&y.backgroundColor==="transparent"&&(y.borderStyle==="none"||parseFloat(y.borderWidth)===0)&&(!y.transform||y.transform==="none")&&y.display==="inline")continue;if(g==="::first-letter"){let A=getComputedStyle(t);if(!(y.color!==A.color||y.fontSize!==A.fontSize||y.fontWeight!==A.fontWeight))continue;let B=Array.from(e.childNodes).find(se=>{var pe;return se.nodeType===Node.TEXT_NODE&&((pe=se.textContent)==null?void 0:pe.trim().length)>0});if(!B)continue;let j=B.textContent,N=(m=j.match(/^([^\p{L}\p{N}\s]*[\p{L}\p{N}](?:['’])?)/u))==null?void 0:m[0],q=j.slice((N==null?void 0:N.length)||0);if(!N||/[\uD800-\uDFFF]/.test(N))continue;let re=document.createElement("span");re.textContent=N,re.dataset.snapdomPseudo="::first-letter";let he=ga(y),ge=Uo(he,"span");a.styleMap.set(re,ge);let ee=document.createTextNode(q);e.replaceChild(ee,B),e.insertBefore(re,ee);continue}let u=y.content??"",h=u===""||u==="none"||u==="normal",{text:f,incs:k}=y0(t,g,n),w=y.backgroundImage,b=y.backgroundColor,x=y.fontFamily,C=parseInt(y.fontSize)||32,L=parseInt(y.fontWeight)||!1,z=y.color||"#000",v=y.borderStyle,M=parseFloat(y.borderWidth),T=y.transform,E=Re(x),I=!h&&f!=="",Z=w&&w!=="none",Y=b&&b!=="transparent"&&b!=="rgba(0, 0, 0, 0)",$=v&&v!=="none"&&M>0,ae=T&&T!=="none";if(!(I||Z||Y||$||ae)){if(k&&k.length&&t.parentElement){let A=$e.get(t.parentElement)||new Map;for(let{name:B}of k){if(!B)continue;let j=oa(t,n),N=aa(t,getComputedStyle(t,g),j).get(t,B);A.set(B,N)}$e.set(t.parentElement,A)}continue}let V=document.createElement("span");V.dataset.snapdomPseudo=g,V.style.pointerEvents="none";let G=ga(y),W=Uo(G,"span");if(a.styleMap.set(V,W),E&&f&&f.length===1){let{dataUrl:A,width:B,height:j}=await du(f,x,L,C,z),N=document.createElement("img");N.src=A,N.style=`height:${C}px;width:${B/j*C}px;object-fit:contain;`,V.appendChild(N),e.dataset.snapdomHasIcon="true"}else if(f&&f.startsWith("url(")){let A=Ho(f);if(A!=null&&A.trim())try{let B=document.createElement("img"),j=await De(Eo(A),{as:"dataURL",useProxy:r.useProxy});B.src=j.data,B.style=`width:${C}px;height:auto;object-fit:contain;`,V.appendChild(B)}catch(B){console.error(`[snapdom] Error in pseudo ${g} for`,t,B)}}else!E&&I&&(V.textContent=f);V.style.backgroundImage="none","maskImage"in V.style&&(V.style.maskImage="none"),"webkitMaskImage"in V.style&&(V.style.webkitMaskImage="none");try{V.style.backgroundRepeat=y.backgroundRepeat,V.style.backgroundSize=y.backgroundSize,y.backgroundPositionX&&y.backgroundPositionY?(V.style.backgroundPositionX=y.backgroundPositionX,V.style.backgroundPositionY=y.backgroundPositionY):V.style.backgroundPosition=y.backgroundPosition,V.style.backgroundOrigin=y.backgroundOrigin,V.style.backgroundClip=y.backgroundClip,V.style.backgroundAttachment=y.backgroundAttachment,V.style.backgroundBlendMode=y.backgroundBlendMode}catch{}if(Z)try{let A=ua(w),B=await Promise.all(A.map(da));V.style.backgroundImage=B.join(", ")}catch(A){console.warn(`[snapdom] Failed to inline background-image for ${g}`,A)}Y&&(V.style.backgroundColor=b);let U=V.childNodes.length>0||((p=V.textContent)==null?void 0:p.trim())!==""||Z||Y||$||ae;if(k&&k.length&&t.parentElement){let A=$e.get(t.parentElement)||new Map,B=oa(t,n),j=aa(t,getComputedStyle(t,g),B);for(let{name:N}of k){if(!N)continue;let q=j.get(t,N);A.set(N,q)}$e.set(t.parentElement,A)}if(!U)continue;g==="::before"?e.insertBefore(V,e.firstChild):e.appendChild(V)}catch(y){console.warn(`[snapdom] Failed to capture ${g} for`,t,y)}let c=Array.from(t.children),s=Array.from(e.children).filter(g=>!g.dataset.snapdomPseudo);for(let g=0;g<Math.min(c.length,s.length);g++)await Ga(c[g],s[g],a,r)}function b0(t,e){var x,C;if(!t||!(t instanceof Element))return;let a=t.ownerDocument||document,r=e||a,i=t instanceof SVGSVGElement?[t]:Array.from(t.querySelectorAll("svg"));if(i.length===0)return;let l=/url\(\s*#([^)]+)\)/g,n=["fill","stroke","filter","clip-path","mask","marker","marker-start","marker-mid","marker-end"],c=L=>window.CSS&&CSS.escape?CSS.escape(L):L.replace(/[^a-zA-Z0-9_-]/g,"\\$&"),s="http://www.w3.org/1999/xlink",d=L=>{if(!L||!L.getAttribute)return null;let z=L.getAttribute("href")||L.getAttribute("xlink:href")||(typeof L.getAttributeNS=="function"?L.getAttributeNS(s,"href"):null);if(z)return z;let v=L.attributes;if(!v)return null;for(let M=0;M<v.length;M++){let T=v[M];if(!T||!T.name)continue;if(T.name==="href")return T.value;let E=T.name.indexOf(":");if(E!==-1&&T.name.slice(E+1)==="href")return T.value}return null},m=new Set(Array.from(t.querySelectorAll("[id]")).map(L=>L.id)),p=new Set,g=!1,y=(L,z=null)=>{if(!L)return;l.lastIndex=0;let v;for(;v=l.exec(L);){g=!0;let M=(v[1]||"").trim();M&&(m.has(M)||(p.add(M),z&&!z.has(M)&&z.add(M)))}},u=L=>{let z=L.querySelectorAll("use");for(let M of z){let T=d(M);if(!T||!T.startsWith("#"))continue;g=!0;let E=T.slice(1).trim();E&&!m.has(E)&&p.add(E)}let v=L.querySelectorAll('*[style*="url("],*[fill^="url("], *[stroke^="url("],*[filter^="url("],*[clip-path^="url("],*[mask^="url("],*[marker^="url("],*[marker-start^="url("],*[marker-mid^="url("],*[marker-end^="url("]');for(let M of v){y(M.getAttribute("style")||"");for(let T of n)y(M.getAttribute(T))}};for(let L of i)u(L);if(!g)return;let h=t.querySelector("svg.inline-defs-container");h||(h=a.createElementNS("http://www.w3.org/2000/svg","svg"),h.classList.add("inline-defs-container"),h.setAttribute("aria-hidden","true"),h.setAttribute("style","position:absolute;width:0;height:0;overflow:hidden"),t.insertBefore(h,t.firstChild||null));let f=h.querySelector("defs")||null,k=L=>{if(!L||m.has(L))return null;let z=c(L),v=M=>{let T=r.querySelector(M);return T&&!t.contains(T)?T:null};return v(`svg defs > *#${z}`)||v(`svg > symbol#${z}`)||v(`*#${z}`)};if(!p.size)return;let w=new Set(p),b=new Set;for(;w.size;){let L=w.values().next().value;if(w.delete(L),!L||m.has(L)||b.has(L))continue;let z=k(L);if(!z){b.add(L);continue}f||(f=a.createElementNS("http://www.w3.org/2000/svg","defs"),h.appendChild(f));let v=z.cloneNode(!0);v.id||v.setAttribute("id",L),f.appendChild(v),b.add(L),m.add(L);let M=[v,...v.querySelectorAll("*")];for(let T of M){let E=d(T);if(E&&E.startsWith("#")){let Z=E.slice(1).trim();Z&&!m.has(Z)&&!b.has(Z)&&w.add(Z)}let I=((x=T.getAttribute)==null?void 0:x.call(T,"style"))||"";I&&y(I,w);for(let Z of n){let Y=(C=T.getAttribute)==null?void 0:C.call(T,Z);Y&&y(Y,w)}}}}function w0(t,e){var c;if(!t||!e)return;let a=t.scrollTop||0;if(!a)return;getComputedStyle(e).position==="static"&&(e.style.position="relative");let r=t.getBoundingClientRect(),i=t.clientHeight,l="data-snap-ph",n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();){let s=n.currentNode,d=getComputedStyle(s),m=d.position;if(m!=="sticky"&&m!=="-webkit-sticky")continue;let p=Wa(d.top),g=Wa(d.bottom);if(p==null&&g==null)continue;let y=x0(s,t),u=k0(e,y,l);if(!u)continue;let h=s.getBoundingClientRect(),f=h.width,k=h.height,w=h.left-r.left;if(!(f>0&&k>0)||!Number.isFinite(w))continue;let b=p!=null?p+a:a+(i-k-g);if(!Number.isFinite(b))continue;let x=Number.parseInt(d.zIndex,10),C=Number.isFinite(x),L=C?Math.max(x,1)+1:2,z=C?x-1:0,v=u.cloneNode(!1);v.setAttribute(l,"1"),v.style.position="sticky",v.style.left=`${w}px`,v.style.top=`${b}px`,v.style.width=`${f}px`,v.style.height=`${k}px`,v.style.visibility="hidden",v.style.zIndex=String(z),v.style.overflow="hidden",v.style.background="transparent",v.style.boxShadow="none",v.style.filter="none",(c=u.parentElement)==null||c.insertBefore(v,u),u.style.position="absolute",u.style.left=`${w}px`,u.style.top=`${b}px`,u.style.bottom="auto",u.style.zIndex=String(L),u.style.pointerEvents="none"}}function Wa(t){if(!t||t==="auto")return null;let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}function x0(t,e){let a=[];for(let r=t;r&&r!==e;){let i=r.parentElement;if(!i)break;a.push(Array.prototype.indexOf.call(i.children,r)),r=i}return a.reverse()}function k0(t,e,a){let r=t;for(let i=0;i<e.length;i++)if(r=_0(r,a)[e[i]],!r)return null;return r instanceof HTMLElement?r:null}function _0(t,e){let a=[],r=t.children;for(let i=0;i<r.length;i++){let l=r[i];l.hasAttribute(e)||a.push(l)}return a}function L0(t){let e=getComputedStyle(t),a=e.outlineStyle,r=e.outlineWidth,i=e.borderStyle,l=e.borderWidth,n=a!=="none"&&parseFloat(r)>0,c=i==="none"||parseFloat(l)===0;n&&c&&(t.style.border=`${r} solid transparent`)}async function z0(t,e={}){var s,d;let a={styleMap:R.session.styleMap,styleCache:R.session.styleCache,nodeMap:R.session.nodeMap},r,i="",l="";L0(t);try{b0(t)}catch(m){console.warn("inlineExternal defs or symbol failed:",m)}try{r=await Go(t,a,e,t)}catch(m){throw console.warn("deepClone failed:",m),m}try{await Ga(t,r,a,e)}catch(m){console.warn("inlinePseudoElements failed:",m)}await c0(r);try{let m=r.querySelectorAll("style[data-sd]");for(let p of m)l+=p.textContent||"",p.remove()}catch{}let n=tu(a.styleMap);i=Array.from(n.entries()).map(([m,p])=>`.${p}{${m}}`).join(""),i=l+i;for(let[m,p]of a.styleMap.entries()){if(m.tagName==="STYLE")continue;if(m.getRootNode&&m.getRootNode()instanceof ShadowRoot){m.setAttribute("style",p.replace(/;/g,"; "));continue}let g=n.get(p);g&&m.classList.add(g);let y=(s=m.style)==null?void 0:s.backgroundImage,u=(d=m.dataset)==null?void 0:d.snapdomHasIcon;y&&y!=="none"&&(m.style.backgroundImage=y),u&&(m.style.verticalAlign="middle",m.style.display="inline")}for(let[m,p]of a.nodeMap.entries()){let g=p.scrollLeft,y=p.scrollTop;if((g||y)&&m instanceof HTMLElement){m.style.overflow="hidden",m.style.scrollbarWidth="none",m.style.msOverflowStyle="none";let u=document.createElement("div");for(u.style.transform=`translate(${-g}px, ${-y}px)`,u.style.willChange="transform",u.style.display="inline-block",u.style.width="100%";m.firstChild;)u.appendChild(m.firstChild);m.appendChild(u)}}let c=r instanceof HTMLElement&&r.firstElementChild instanceof HTMLElement?r.firstElementChild:r;if(w0(t,c),t===a.nodeMap.get(r)){let m=a.styleCache.get(t)||window.getComputedStyle(t);a.styleCache.set(t,m);let p=Wg(m.transform);r.style.margin="0",r.style.top="auto",r.style.left="auto",r.style.right="auto",r.style.bottom="auto",r.style.animation="none",r.style.transition="none",r.style.willChange="auto",r.style.float="none",r.style.clear="none",r.style.transform=p||""}for(let[m,p]of a.nodeMap.entries())p.tagName==="PRE"&&(m.style.marginTop="0",m.style.marginBlockStart="0");return{clone:r,classCSS:i,styleCache:a.styleCache}}function C0(t){var d,m,p,g;let e=parseInt(((d=t.dataset)==null?void 0:d.snapdomWidth)||"",10)||0,a=parseInt(((m=t.dataset)==null?void 0:m.snapdomHeight)||"",10)||0,r=parseInt(t.getAttribute("width")||"",10)||0,i=parseInt(t.getAttribute("height")||"",10)||0,l=parseFloat(((p=t.style)==null?void 0:p.width)||"")||0,n=parseFloat(((g=t.style)==null?void 0:g.height)||"")||0,c=e||l||r||t.width||t.naturalWidth||100,s=a||n||i||t.height||t.naturalHeight||100;return{width:c,height:s}}async function v0(t,e={}){let a=Array.from(t.querySelectorAll("img")),r=async i=>{if(!i.getAttribute("src")){let m=i.currentSrc||i.src||"";m&&i.setAttribute("src",m)}i.removeAttribute("srcset"),i.removeAttribute("sizes");let l=i.src||"";if(!l)return;let n=await De(l,{as:"dataURL",useProxy:e.useProxy});if(n.ok&&typeof n.data=="string"&&n.data.startsWith("data:")){i.src=n.data,i.width||(i.width=i.naturalWidth||100),i.height||(i.height=i.naturalHeight||100);return}let{width:c,height:s}=C0(i),{fallbackURL:d}=e||{};if(d)try{let m=typeof d=="function"?await d({width:c,height:s,src:l,element:i}):d;if(m){let p=await De(m,{as:"dataURL",useProxy:e.useProxy});i.src=p.data,i.width||(i.width=c),i.height||(i.height=s);return}}catch{}if(e.placeholders!==!1){let m=document.createElement("div");m.style.cssText=[`width:${c}px`,`height:${s}px`,"background:#ccc","display:inline-block","text-align:center",`line-height:${s}px`,"color:#666","font-size:12px","overflow:hidden"].join(";"),m.textContent="img",i.replaceWith(m)}else{let m=document.createElement("div");m.style.cssText=`display:inline-block;width:${c}px;height:${s}px;visibility:hidden;`,i.replaceWith(m)}};for(let i=0;i<a.length;i+=4){let l=a.slice(i,i+4).map(r);await Promise.allSettled(l)}}function S0(t){if(!t)return()=>{};let e=N0(t);if(e<=0)return()=>{};if(!M0(t))return()=>{};let a=getComputedStyle(t),r=Math.round(V0(a)*e+P0(a)),i=t.textContent??"",l=i;if(t.scrollHeight<=r+.5)return()=>{};let n=0,c=i.length,s=-1;for(;n<=c;){let d=n+c>>1;t.textContent=i.slice(0,d)+"…",t.scrollHeight<=r+.5?(s=d,n=d+1):c=d-1}return t.textContent=(s>=0?i.slice(0,s):"")+"…",()=>{t.textContent=l}}function N0(t){let e=getComputedStyle(t),a=e.getPropertyValue("-webkit-line-clamp")||e.getPropertyValue("line-clamp");a=(a||"").trim();let r=parseInt(a,10);return Number.isFinite(r)&&r>0?r:0}function V0(t){let e=(t.lineHeight||"").trim(),a=parseFloat(t.fontSize)||16;return!e||e==="normal"?Math.round(a*1.2):e.endsWith("px")?parseFloat(e):/^\d+(\.\d+)?$/.test(e)?Math.round(parseFloat(e)*a):e.endsWith("%")?Math.round(parseFloat(e)/100*a):Math.round(a*1.2)}function P0(t){return(parseFloat(t.paddingTop)||0)+(parseFloat(t.paddingBottom)||0)}function M0(t){return t.childElementCount>0?!1:Array.from(t.childNodes).some(e=>e.nodeType===Node.TEXT_NODE)}function T0(t,e){if(!t||!e||!e.style)return;let a=getComputedStyle(t);try{e.style.boxShadow="none"}catch{}try{e.style.textShadow="none"}catch{}try{e.style.outline="none"}catch{}let r=(a.filter||"").replace(/\bblur\([^()]*\)\s*/gi,"").replace(/\bdrop-shadow\([^()]*\)\s*/gi,"").trim().replace(/\s+/g," ");try{e.style.filter=r.length?r:"none"}catch{}}function E0(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_COMMENT),a=[];for(;e.nextNode();)a.push(e.currentNode);for(let r of a)r.remove()}function D0(t,e={}){let{stripFrameworkDirectives:a=!0}=e,r=new Set(["xml","xlink"]),i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;i.nextNode();){let l=i.currentNode;for(let n of Array.from(l.attributes)){let c=n.name;if(c.includes("@")){l.removeAttribute(c);continue}if(c.includes(":")){let s=c.split(":",1)[0];if(!r.has(s)){l.removeAttribute(c);continue}}if(a&&(c.startsWith("x-")||c.startsWith("v-")||c.startsWith(":")||c.startsWith("on:")||c.startsWith("bind:")||c.startsWith("let:")||c.startsWith("class:"))){l.removeAttribute(c);continue}}}}function R0(t,e={}){t&&(D0(t,e),E0(t))}function B0(t){var e;try{let a=((e=t.getAttribute)==null?void 0:e.call(t,"style"))||"";return/\b(height|width|block-size|inline-size)\s*:/.test(a)}catch{return!1}}function I0(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof HTMLIFrameElement||t instanceof SVGElement||t instanceof HTMLObjectElement||t instanceof HTMLEmbedElement}function A0(t,e){if(!(t instanceof Element)||B0(t)||I0(t))return!1;let a=e.position;if(a==="absolute"||a==="fixed"||a==="sticky")return!1;let r=e.display||"";return!(r.includes("flex")||r.includes("grid")||r.startsWith("table")||e.transform&&e.transform!=="none")}function F0(t,e,a=new Map){function r(i,l){if(!(i instanceof Element)||!(l instanceof Element))return;let n=i.childElementCount>l.childElementCount,c=a.get(i)||getComputedStyle(i);if(a.has(i)||a.set(i,c),n&&A0(i,c)){l.style.height||(l.style.height="auto"),l.style.width||(l.style.width="auto"),l.style.removeProperty("block-size"),l.style.removeProperty("inline-size"),l.style.minHeight||(l.style.minHeight="0"),l.style.minWidth||(l.style.minWidth="0"),l.style.maxHeight||(l.style.maxHeight="none"),l.style.maxWidth||(l.style.maxWidth="none");let m=c.overflowY||c.overflowBlock||"visible",p=c.overflowX||c.overflowInline||"visible";(m!=="visible"||p!=="visible")&&(l.style.overflow="visible")}let s=Array.from(i.children),d=Array.from(l.children);for(let m=0;m<Math.min(s.length,d.length);m++)r(s[m],d[m])}r(t,e)}function G0(t){let e=getComputedStyle(t);return!(e.display==="none"||e.position==="absolute"||e.position==="fixed"||e.position==="sticky"||(e.cssFloat||e.float||"none")!=="none"||e.transform&&e.transform!=="none")}function W0(t,e){if(!(t instanceof Element))return!1;if(t.getAttribute("data-capture")==="exclude"&&(e==null?void 0:e.excludeMode)==="remove")return!0;if(Array.isArray(e==null?void 0:e.exclude))for(let a of e.exclude)try{if(t.matches(a))return e.excludeMode==="remove"}catch{}return!1}function O0(t,e){let a=getComputedStyle(t),r=t.getBoundingClientRect(),i=1/0,l=-1/0,n=!1,c=Array.from(t.children);for(let y of c){if(W0(y,e)||!G0(y))continue;let u=y.getBoundingClientRect(),h=u.top-r.top,f=u.bottom-r.top;f<=h||(h<i&&(i=h),f>l&&(l=f),n=!0)}let s=n?Math.max(0,l-i):0,d=parseFloat(a.borderTopWidth)||0,m=parseFloat(a.borderBottomWidth)||0,p=parseFloat(a.paddingTop)||0,g=parseFloat(a.paddingBottom)||0;return d+m+p+g+s}var K=(t,e=3)=>Number.isFinite(t)?Math.round(t*10**e)/10**e:t;function Z0(t){var c;let e=t.boxShadow||"";if(!e||e==="none")return{top:0,right:0,bottom:0,left:0};let a=e.split(/\),(?=(?:[^()]*\([^()]*\))*[^()]*$)/).map(s=>s.trim()),r=0,i=0,l=0,n=0;for(let s of a){let d=((c=s.match(/-?\d+(\.\d+)?px/g))==null?void 0:c.map(f=>parseFloat(f)))||[];if(d.length<2)continue;let[m,p,g=0,y=0]=d,u=Math.abs(m)+g+y,h=Math.abs(p)+g+y;i=Math.max(i,u+Math.max(m,0)),n=Math.max(n,u+Math.max(-m,0)),l=Math.max(l,h+Math.max(p,0)),r=Math.max(r,h+Math.max(-p,0))}return{top:Math.ceil(r),right:Math.ceil(i),bottom:Math.ceil(l),left:Math.ceil(n)}}function j0(t){let e=(t.filter||"").match(/blur\(\s*([0-9.]+)px\s*\)/),a=e?Math.ceil(parseFloat(e[1])||0):0;return{top:a,right:a,bottom:a,left:a}}function H0(t){if((t.outlineStyle||"none")==="none")return{top:0,right:0,bottom:0,left:0};let e=Math.ceil(parseFloat(t.outlineWidth||"0")||0);return{top:e,right:e,bottom:e,left:e}}function X0(t){var s;let e=`${t.filter||""} ${t.webkitFilter||""}`.trim();if(!e||e==="none")return{bleed:{top:0,right:0,bottom:0,left:0},has:!1};let a=e.match(/drop-shadow\((?:[^()]|\([^()]*\))*\)/gi)||[],r=0,i=0,l=0,n=0,c=!1;for(let d of a){c=!0;let m=((s=d.match(/-?\d+(?:\.\d+)?px/gi))==null?void 0:s.map(f=>parseFloat(f)))||[],[p=0,g=0,y=0]=m,u=Math.abs(p)+y,h=Math.abs(g)+y;i=Math.max(i,u+Math.max(p,0)),n=Math.max(n,u+Math.max(-p,0)),l=Math.max(l,h+Math.max(g,0)),r=Math.max(r,h+Math.max(-g,0))}return{bleed:{top:K(r),right:K(i),bottom:K(l),left:K(n)},has:c}}function Y0(t,e){if(!t||!e||!e.style)return null;let a=getComputedStyle(t);try{e.style.transformOrigin="0 0"}catch{}try{"translate"in e.style&&(e.style.translate="none"),"rotate"in e.style&&(e.style.rotate="none")}catch{}let r=a.transform||"none";if(!r||r==="none")try{let l=Za(t);if(l.a===1&&l.b===0&&l.c===0&&l.d===1)return e.style.transform="none",{a:1,b:0,c:0,d:1}}catch{}let i=r.match(/^matrix\(\s*([^)]+)\)$/i);if(i){let l=i[1].split(",").map(n=>parseFloat(n.trim()));if(l.length===6&&l.every(Number.isFinite)){let[n,c,s,d]=l,m=Math.sqrt(n*n+c*c)||0,p=0,g=0,y=0,u=0,h=0,f=0;m>0&&(p=n/m,g=c/m,y=p*s+g*d,u=s-p*y,h=d-g*y,f=Math.sqrt(u*u+h*h)||0,f>0?y=y/f:y=0);let k=m,w=0,b=y*f,x=f;try{e.style.transform=`matrix(${k}, ${w}, ${b}, ${x}, 0, 0)`}catch{}return{a:k,b:w,c:b,d:x}}}try{let l=String(r).trim();return e.style.transform=l+" translate(0px, 0px) rotate(0deg)",null}catch{return null}}function Oa(t,e,a,r,i){let l=a.a,n=a.b,c=a.c,s=a.d,d=a.e||0,m=a.f||0;function p(k,w){let b=k-r,x=w-i,C=l*b+c*x,L=n*b+s*x;return C+=r+d,L+=i+m,[C,L]}let g=[p(0,0),p(t,0),p(0,e),p(t,e)],y=1/0,u=1/0,h=-1/0,f=-1/0;for(let[k,w]of g)k<y&&(y=k),w<u&&(u=w),k>h&&(h=k),w>f&&(f=w);return{minX:y,minY:u,maxX:h,maxY:f,width:h-y,height:f-u}}function U0(t,e,a){let r=(t.transformOrigin||"0 0").trim().split(/\s+/),[i,l]=[r[0]||"0",r[1]||"0"],n=(c,s)=>{let d=c.toLowerCase();return d==="left"||d==="top"?0:d==="center"?s/2:d==="right"||d==="bottom"?s:d.endsWith("px")?parseFloat(d)||0:d.endsWith("%")?(parseFloat(d)||0)*s/100:/^-?\d+(\.\d+)?$/.test(d)&&parseFloat(d)||0};return{ox:n(i,e),oy:n(l,a)}}function $0(t){var i,l,n,c,s,d,m,p;let e={rotate:"0deg",scale:null,translate:null},a=typeof t.computedStyleMap=="function"?t.computedStyleMap():null;if(a){let g=f=>{try{return typeof a.has=="function"&&!a.has(f)||typeof a.get!="function"?null:a.get(f)}catch{return null}},y=g("rotate");if(y)if(y.angle){let f=y.angle;e.rotate=f.unit==="rad"?f.value*180/Math.PI+"deg":f.value+f.unit}else y.unit?e.rotate=y.unit==="rad"?y.value*180/Math.PI+"deg":y.value+y.unit:e.rotate=String(y);else{let f=getComputedStyle(t);e.rotate=f.rotate&&f.rotate!=="none"?f.rotate:"0deg"}let u=g("scale");if(u){let f="x"in u&&((i=u.x)==null?void 0:i.value)!=null?u.x.value:Array.isArray(u)?(l=u[0])==null?void 0:l.value:Number(u)||1,k="y"in u&&((n=u.y)==null?void 0:n.value)!=null?u.y.value:Array.isArray(u)?(c=u[1])==null?void 0:c.value:f;e.scale=`${f} ${k}`}else{let f=getComputedStyle(t);e.scale=f.scale&&f.scale!=="none"?f.scale:null}let h=g("translate");if(h){let f="x"in h&&"value"in h.x?h.x.value:Array.isArray(h)?(s=h[0])==null?void 0:s.value:0,k="y"in h&&"value"in h.y?h.y.value:Array.isArray(h)?(d=h[1])==null?void 0:d.value:0,w="x"in h&&((m=h.x)!=null&&m.unit)?h.x.unit:"px",b="y"in h&&((p=h.y)!=null&&p.unit)?h.y.unit:"px";e.translate=`${f}${w} ${k}${b}`}else{let f=getComputedStyle(t);e.translate=f.translate&&f.translate!=="none"?f.translate:null}return e}let r=getComputedStyle(t);return e.rotate=r.rotate&&r.rotate!=="none"?r.rotate:"0deg",e.scale=r.scale&&r.scale!=="none"?r.scale:null,e.translate=r.translate&&r.translate!=="none"?r.translate:null,e}var ia=null;function J0(){if(ia)return ia;let t=document.createElement("div");return t.id="snapdom-measure-slot",t.setAttribute("aria-hidden","true"),Object.assign(t.style,{position:"absolute",left:"-99999px",top:"0px",width:"0px",height:"0px",overflow:"hidden",opacity:"0",pointerEvents:"none",contain:"size layout style"}),document.documentElement.appendChild(t),ia=t,t}function K0(t){let e=J0(),a=document.createElement("div");a.style.transformOrigin="0 0",t.baseTransform&&(a.style.transform=t.baseTransform),t.rotate&&(a.style.rotate=t.rotate),t.scale&&(a.style.scale=t.scale),t.translate&&(a.style.translate=t.translate),e.appendChild(a);let r=Za(a);return e.removeChild(a),r}function q0(t){let e=getComputedStyle(t),a=e.transform||"none";if(a!=="none"&&!/^matrix\(\s*1\s*,\s*0\s*,\s*0\s*,\s*1\s*,\s*0\s*,\s*0\s*\)$/i.test(a))return!0;let r=e.rotate&&e.rotate!=="none"&&e.rotate!=="0deg",i=e.scale&&e.scale!=="none"&&e.scale!=="1",l=e.translate&&e.translate!=="none"&&e.translate!=="0px 0px";return!!(r||i||l)}function Za(t){let e=getComputedStyle(t).transform;if(!e||e==="none")return new DOMMatrix;try{return new DOMMatrix(e)}catch{return new WebKitCSSMatrix(e)}}async function ja(t,e){var w;if(!t)throw new Error("Element cannot be null or undefined");Gg(e.cache);let a=e.fast,r=e.outerTransforms!==!1,i=!!e.outerShadows,l={element:t,options:e,plugins:e.plugins},n,c,s,d="",m="",p,g,y=null;await Be("beforeSnap",l),await Be("beforeClone",l);let u=S0(l.element);try{({clone:n,classCSS:c,styleCache:s}=await z0(l.element,l.options)),!r&&n&&(y=Y0(l.element,n)),!i&&n&&T0(l.element,n)}finally{u()}if(l={clone:n,classCSS:c,styleCache:s,...l},await Be("afterClone",l),R0(l.clone),((w=l.options)==null?void 0:w.excludeMode)==="remove")try{F0(l.element,l.clone,l.styleCache)}catch(b){console.warn("[snapdom] shrink pass failed:",b)}try{await mu(l.clone,l.element)}catch{}await new Promise(b=>{Xe(async()=>{await v0(l.clone,l.options),b()},{fast:a})}),await new Promise(b=>{Xe(async()=>{await Nu(l.element,l.clone,l.styleCache,l.options),b()},{fast:a})}),e.embedFonts&&await new Promise(b=>{Xe(async()=>{let x=Cu(l.element),C=vu(l.element);if(Fe()){let L=new Set(Array.from(x).map(z=>String(z).split("__")[0]).filter(Boolean));await Su(L,1)}d=await zu({required:x,usedCodepoints:C,preCached:!1,exclude:l.options.excludeFonts,useProxy:l.options.useProxy}),b()},{fast:a})});let h=Qg(l.clone).sort(),f=h.join(",");R.baseStyle.has(f)?m=R.baseStyle.get(f):await new Promise(b=>{Xe(()=>{m=eu(h),R.baseStyle.set(f,m),b()},{fast:a})}),l={fontsCSS:d,baseCSS:m,...l},await Be("beforeRender",l),await new Promise(b=>{Xe(()=>{var Te;let x=getComputedStyle(l.element),C=l.element.getBoundingClientRect(),L=Math.max(1,K(l.element.offsetWidth||parseFloat(x.width)||C.width||1)),z=Math.max(1,K(l.element.offsetHeight||parseFloat(x.height)||C.height||1));if(((Te=l.options)==null?void 0:Te.excludeMode)==="remove"){let F=O0(l.element,l.options);Number.isFinite(F)&&F>0&&(z=Math.max(1,Math.min(z,K(F+1))))}let v=(F,me=NaN)=>{let _e=typeof F=="string"?parseFloat(F):F;return Number.isFinite(_e)?_e:me},M=v(l.options.width),T=v(l.options.height),E=L,I=z,Z=Number.isFinite(M),Y=Number.isFinite(T),$=z>0?L/z:1;Z&&Y?(E=Math.max(1,K(M)),I=Math.max(1,K(T))):Z?(E=Math.max(1,K(M)),I=Math.max(1,K(E/($||1)))):Y?(I=Math.max(1,K(T)),E=Math.max(1,K(I*($||1)))):(E=L,I=z);let ae=0,V=0,G=L,W=z;if(!r&&y&&Number.isFinite(y.a)){let F={a:y.a,b:y.b||0,c:y.c||0,d:y.d||1,e:0,f:0},me=Oa(L,z,F,0,0);ae=K(me.minX),V=K(me.minY),G=K(me.maxX),W=K(me.maxY)}else if(r&&Q0(l.element)){let F=x.transform&&x.transform!=="none"?x.transform:"",me=$0(l.element),_e=K0({baseTransform:F,rotate:me.rotate||"0deg",scale:me.scale,translate:me.translate}),{ox:Ne,oy:Ve}=U0(x,L,z),H=_e.is2D?_e:new DOMMatrix(_e.toString()),ve=Oa(L,z,H,Ne,Ve);ae=K(ve.minX),V=K(ve.minY),G=K(ve.maxX),W=K(ve.maxY)}let U=Z0(x),A=j0(x),B=H0(x),j=X0(x),N=i?{top:K(U.top+A.top+B.top+j.bleed.top),right:K(U.right+A.right+B.right+j.bleed.right),bottom:K(U.bottom+A.bottom+B.bottom+j.bleed.bottom),left:K(U.left+A.left+B.left+j.bleed.left)}:{top:0,right:0,bottom:0,left:0};ae=K(ae-N.left),V=K(V-N.top),G=K(G+N.right),W=K(W+N.bottom);let q=Math.max(1,K(G-ae)),re=Math.max(1,K(W-V)),he=Z||Y?K(E/L):1,ge=Y||Z?K(I/z):1,ee=Math.max(1,K(q*he)),se=Math.max(1,K(re*ge)),pe="http://www.w3.org/2000/svg",xe=Fe()?1:0,O=K(xe+(r?0:1)),te=document.createElementNS(pe,"foreignObject"),Me=K(ae),Ce=K(V);te.setAttribute("x",String(K(-(Me-O)))),te.setAttribute("y",String(K(-(Ce-O)))),te.setAttribute("width",String(K(L+O*2))),te.setAttribute("height",String(K(z+O*2))),te.style.overflow="visible";let be=document.createElement("style");be.textContent=l.baseCSS+l.fontsCSS+"svg{overflow:visible;} foreignObject{overflow:visible;}"+l.classCSS,te.appendChild(be);let ke=document.createElement("div");ke.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),ke.style.width=`${K(L)}px`,ke.style.height=`${K(z)}px`,ke.style.overflow="visible",l.clone.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),ke.appendChild(l.clone),te.appendChild(ke);let J=new XMLSerializer().serializeToString(te),we=K(q+O*2),ie=K(re+O*2),ce=Z||Y;e.meta={w0:L,h0:z,vbW:we,vbH:ie,targetW:E,targetH:I};let Se=Fe()&&ce?we:K(ee+O*2),Ee=Fe()&&ce?ie:K(se+O*2);g=`<svg xmlns="${pe}" width="${Se}" height="${Ee}" viewBox="0 0 ${we} ${ie}">`+J+"</svg>",p=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(g)}`,l={svgString:g,dataURL:p,...l},b()},{fast:a})}),await Be("afterRender",l);let k=document.getElementById("snapdom-sandbox");return k&&k.style.position==="absolute"&&k.remove(),l.dataURL}function Q0(t){return q0(t)}function ef(t){if(typeof t=="string"){let e=t.toLowerCase().trim();if(e==="disabled"||e==="full"||e==="auto"||e==="soft")return e}return"soft"}function tf(t={}){let e=t.format??"png";e==="jpg"&&(e="jpeg");let a=ef(t.cache);return{debug:t.debug??!1,fast:t.fast??!0,scale:t.scale??1,exclude:t.exclude??[],excludeMode:t.excludeMode??"hide",filter:t.filter??null,filterMode:t.filterMode??"hide",placeholders:t.placeholders!==!1,embedFonts:t.embedFonts??!1,iconFonts:Array.isArray(t.iconFonts)?t.iconFonts:t.iconFonts?[t.iconFonts]:[],localFonts:Array.isArray(t.localFonts)?t.localFonts:[],excludeFonts:t.excludeFonts??void 0,fallbackURL:t.fallbackURL??void 0,cache:a,useProxy:typeof t.useProxy=="string"?t.useProxy:"",width:t.width??null,height:t.height??null,format:e,type:t.type??"svg",quality:t.quality??.92,dpr:t.dpr??(window.devicePixelRatio||1),backgroundColor:t.backgroundColor??(["jpeg","webp"].includes(e)?"#ffffff":null),filename:t.filename??"snapDOM",outerTransforms:t.outerTransforms??!0,outerShadows:t.outerShadows??!1}}function of(...t){return Vu(...t),ye}var ye=Object.assign(af,{plugins:of}),Ha=Symbol("snapdom.internal"),Ie=Symbol("snapdom.internal.silent"),ra=!1;async function af(t,e){if(!t)throw new Error("Element cannot be null or undefined");let a=tf(e);if(Tu(a,e&&e.plugins),Fe()&&(a.embedFonts===!0||lf(t)))for(let r=0;r<3;r++)try{await rf(t,e),ra=!1}catch{}return a.iconFonts&&a.iconFonts.length>0&&au(a.iconFonts),a.snap||(a.snap={toPng:(r,i)=>ye.toPng(r,i),toSvg:(r,i)=>ye.toSvg(r,i)}),ye.capture(t,a,Ha)}ye.capture=async(t,e,a)=>{if(a!==Ha)throw new Error("[snapdom.capture] is internal. Use snapdom(...) instead.");let r=await ja(t,e),i={img:async(u,h)=>{let{toImg:f}=await Promise.resolve().then(()=>Oo);return f(r,{...u,...h||{}})},svg:async(u,h)=>{let{toSvg:f}=await Promise.resolve().then(()=>Oo);return f(r,{...u,...h||{}})},canvas:async(u,h)=>{let{toCanvas:f}=await Promise.resolve().then(()=>Qa);return f(r,{...u,...h||{}})},blob:async(u,h)=>{let{toBlob:f}=await Promise.resolve().then(()=>ti);return f(r,{...u,...h||{}})},png:async(u,h)=>{let{rasterize:f}=await Promise.resolve().then(()=>Ge);return f(r,{...u,...h||{},format:"png"})},jpeg:async(u,h)=>{let{rasterize:f}=await Promise.resolve().then(()=>Ge);return f(r,{...u,...h||{},format:"jpeg"})},webp:async(u,h)=>{let{rasterize:f}=await Promise.resolve().then(()=>Ge);return f(r,{...u,...h||{},format:"webp"})},download:async(u,h)=>{let{download:f}=await Promise.resolve().then(()=>ny);return f(r,{...u,...h||{}})}},l={...e,export:{url:r},exports:{svg:async u=>{let{toSvg:h}=await Promise.resolve().then(()=>Oo);return h(r,{...e,...u||{},[Ie]:!0})},canvas:async u=>{let{toCanvas:h}=await Promise.resolve().then(()=>Qa);return h(r,{...e,...u||{},[Ie]:!0})},png:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"png",[Ie]:!0})},jpeg:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"jpeg",[Ie]:!0})},jpg:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"jpeg",[Ie]:!0})},webp:async u=>{let{rasterize:h}=await Promise.resolve().then(()=>Ge);return h(r,{...e,...u||{},format:"webp",[Ie]:!0})},blob:async u=>{let{toBlob:h}=await Promise.resolve().then(()=>ti);return h(r,{...e,...u||{},[Ie]:!0})},img:async u=>{let{toImg:h}=await Promise.resolve().then(()=>Oo);return h(r,{...e,...u||{},[Ie]:!0})}}},n=await Pu("defineExports",l),c=Object.assign({},...n.filter(u=>u&&typeof u=="object")),s={...i,...c};s.jpeg&&!s.jpg&&(s.jpg=(u,h)=>s.jpeg(u,h));function d(u,h){let f={...e,...h||{}};return(u==="jpeg"||u==="jpg")&&(f.backgroundColor==null||f.backgroundColor==="transparent")&&(f.backgroundColor="#ffffff"),f}let m=!1,p=Promise.resolve();async function g(u,h){let f=async()=>{let k=s[u];if(!k)throw new Error(`[snapdom] Unknown export type: ${u}`);let w=d(u,h),b={...e,export:{type:u,options:w,url:r}};await Be("beforeExport",b);let x=await k(b,w);return await Be("afterExport",b,x),m||(m=!0,await Be("afterSnap",e)),x};return p=p.then(f)}let y={url:r,toRaw:()=>r,to:(u,h)=>g(u,h),toImg:u=>g("img",u),toSvg:u=>g("svg",u),toCanvas:u=>g("canvas",u),toBlob:u=>g("blob",u),toPng:u=>g("png",u),toJpg:u=>g("jpg",u),toWebp:u=>g("webp",u),download:u=>g("download",u)};for(let u of Object.keys(s)){let h="to"+u.charAt(0).toUpperCase()+u.slice(1);y[h]||(y[h]=f=>g(u,f))}return y},ye.toRaw=(t,e)=>ye(t,e).then(a=>a.toRaw()),ye.toImg=(t,e)=>ye(t,e).then(a=>a.toImg()),ye.toSvg=(t,e)=>ye(t,e).then(a=>a.toSvg()),ye.toCanvas=(t,e)=>ye(t,e).then(a=>a.toCanvas()),ye.toBlob=(t,e)=>ye(t,e).then(a=>a.toBlob()),ye.toPng=(t,e)=>ye(t,{...e,format:"png"}).then(a=>a.toPng()),ye.toJpg=(t,e)=>ye(t,{...e,format:"jpeg"}).then(a=>a.toJpg()),ye.toWebp=(t,e)=>ye(t,{...e,format:"webp"}).then(a=>a.toWebp()),ye.download=(t,e)=>ye(t,e).then(a=>a.download());async function rf(t,e){if(ra)return;let a={...e,fast:!0,embedFonts:!0,scale:.2},r;try{r=await ja(t,a)}catch{}await new Promise(i=>requestAnimationFrame(()=>requestAnimationFrame(i))),r&&await new Promise(i=>{let l=new Image;try{l.decoding="sync",l.loading="eager"}catch{}l.style.cssText="position:fixed;left:0px;top:0px;width:10px;height:10px;opacity:0.01;pointer-events:none;",l.src=r,document.body.appendChild(l),(async()=>{try{typeof l.decode=="function"&&await l.decode()}catch{}let n=performance.now();for(;!(l.complete&&l.naturalWidth>0)&&performance.now()-n<900;)await new Promise(c=>setTimeout(c,200));await new Promise(c=>requestAnimationFrame(c));try{l.remove()}catch{}i()})()}),t.querySelectorAll("canvas").forEach(i=>{try{let l=i.getContext("2d",{willReadFrequently:!0});l&&l.getImageData(0,0,1,1)}catch{}}),ra=!0}function lf(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();){let a=e.currentNode,r=getComputedStyle(a),i=r.backgroundImage&&r.backgroundImage!=="none",l=r.maskImage&&r.maskImage!=="none"||r.webkitMaskImage&&r.webkitMaskImage!=="none";if(i||l||a.tagName==="CANVAS")return!0}return!1}class nf{constructor(){de(this,"frames",[]);de(this,"captureRect",null);de(this,"_isRecording",!1);de(this,"_frameDelay",1e3);de(this,"canvas",null);de(this,"ctx",null)}setArea(e){this.captureRect=e,this.canvas=document.createElement("canvas"),this.canvas.width=e.width,this.canvas.height=e.height,this.ctx=this.canvas.getContext("2d")}setFrameDelay(e){this._frameDelay=e}getArea(){return this.captureRect}startRecording(){this._isRecording=!0,this.frames=[]}stopRecording(){this._isRecording=!1}async captureFrame(e,a){var i;if(!this._isRecording||!this.captureRect||!this.canvas||!this.ctx){console.log("[GifRecorder] captureFrame 跳过:",{isRecording:this._isRecording,hasRect:!!this.captureRect,hasCanvas:!!this.canvas});return}const r=e||document.body;try{console.log("[GifRecorder] 开始 snapdom 截图(全屏模式)...");const n=await(await ye(r,{filter:c=>!(c instanceof HTMLElement&&c.classList.contains("capture-exclude"))})).toPng();if(console.log("[GifRecorder] snapdom 截图完成, img:",(i=n==null?void 0:n.src)==null?void 0:i.length),!n||!n.src){console.error("[GifRecorder] snapdom 返回空图片");return}await new Promise((c,s)=>{n.complete&&n.naturalWidth>0?(console.log("[GifRecorder] 图片已加载, 开始裁剪区域"),this.processImage(n,a),c()):(n.onload=()=>{console.log("[GifRecorder] 图片加载完成, 开始裁剪区域"),this.processImage(n,a),c()},n.onerror=d=>{console.error("[GifRecorder] 图片加载失败:",d),s(d)})})}catch(l){console.error("[GifRecorder] 截图失败:",l)}}processImage(e,a){const r=window.devicePixelRatio||1,i=this.captureRect.x*r,l=this.captureRect.y*r,n=this.captureRect.width*r,c=this.captureRect.height*r;this.ctx.drawImage(e,i,l,n,c,0,0,this.captureRect.width,this.captureRect.height);const s=a,d=Math.max(this.captureRect.width/48,this.captureRect.height/48),m=8,p=12;this.ctx.font=`bold ${d}px Arial, sans-serif`,this.ctx.textAlign="center",this.ctx.textBaseline="top";const y=this.ctx.measureText(s).width,u=d,h=(this.captureRect.width-y)/2-m*2,f=p,k=y+m*4,w=u+m*2;this.ctx.fillStyle="rgba(0, 0, 0, 0.6)",this.ctx.beginPath(),this.ctx.roundRect(h,f,k,w,16),this.ctx.fill(),this.ctx.fillStyle="#ffffff",this.ctx.fillText(s,this.captureRect.width/2,p+m);const b=this.ctx.getImageData(0,0,this.captureRect.width,this.captureRect.height);this.frames.push(b),console.log("[GifRecorder] 帧添加成功, 当前帧数:",this.frames.length)}getFrameCount(){return this.frames.length}async generateGif(){return this.frames.length===0?(console.warn("[GifRecorder] 没有可用的帧"),null):new Promise((e,a)=>{const r=new br({workers:2,quality:10,width:this.captureRect.width,height:this.captureRect.height,workerScript:new URL("data:application/javascript;base64,Ly8gZ2lmLndvcmtlci5qcyAwLjIuMCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9qbm9yZGJlcmcvZ2lmLmpzCihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09ImZ1bmN0aW9uIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBmLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09ImZ1bmN0aW9uIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkoezE6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpe3ZhciBOZXVRdWFudD1yZXF1aXJlKCIuL1R5cGVkTmV1UXVhbnQuanMiKTt2YXIgTFpXRW5jb2Rlcj1yZXF1aXJlKCIuL0xaV0VuY29kZXIuanMiKTtmdW5jdGlvbiBCeXRlQXJyYXkoKXt0aGlzLnBhZ2U9LTE7dGhpcy5wYWdlcz1bXTt0aGlzLm5ld1BhZ2UoKX1CeXRlQXJyYXkucGFnZVNpemU9NDA5NjtCeXRlQXJyYXkuY2hhck1hcD17fTtmb3IodmFyIGk9MDtpPDI1NjtpKyspQnl0ZUFycmF5LmNoYXJNYXBbaV09U3RyaW5nLmZyb21DaGFyQ29kZShpKTtCeXRlQXJyYXkucHJvdG90eXBlLm5ld1BhZ2U9ZnVuY3Rpb24oKXt0aGlzLnBhZ2VzWysrdGhpcy5wYWdlXT1uZXcgVWludDhBcnJheShCeXRlQXJyYXkucGFnZVNpemUpO3RoaXMuY3Vyc29yPTB9O0J5dGVBcnJheS5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3ZhciBydj0iIjtmb3IodmFyIHA9MDtwPHRoaXMucGFnZXMubGVuZ3RoO3ArKyl7Zm9yKHZhciBpPTA7aTxCeXRlQXJyYXkucGFnZVNpemU7aSsrKXtydis9Qnl0ZUFycmF5LmNoYXJNYXBbdGhpcy5wYWdlc1twXVtpXV19fXJldHVybiBydn07Qnl0ZUFycmF5LnByb3RvdHlwZS53cml0ZUJ5dGU9ZnVuY3Rpb24odmFsKXtpZih0aGlzLmN1cnNvcj49Qnl0ZUFycmF5LnBhZ2VTaXplKXRoaXMubmV3UGFnZSgpO3RoaXMucGFnZXNbdGhpcy5wYWdlXVt0aGlzLmN1cnNvcisrXT12YWx9O0J5dGVBcnJheS5wcm90b3R5cGUud3JpdGVVVEZCeXRlcz1mdW5jdGlvbihzdHJpbmcpe2Zvcih2YXIgbD1zdHJpbmcubGVuZ3RoLGk9MDtpPGw7aSsrKXRoaXMud3JpdGVCeXRlKHN0cmluZy5jaGFyQ29kZUF0KGkpKX07Qnl0ZUFycmF5LnByb3RvdHlwZS53cml0ZUJ5dGVzPWZ1bmN0aW9uKGFycmF5LG9mZnNldCxsZW5ndGgpe2Zvcih2YXIgbD1sZW5ndGh8fGFycmF5Lmxlbmd0aCxpPW9mZnNldHx8MDtpPGw7aSsrKXRoaXMud3JpdGVCeXRlKGFycmF5W2ldKX07ZnVuY3Rpb24gR0lGRW5jb2Rlcih3aWR0aCxoZWlnaHQpe3RoaXMud2lkdGg9fn53aWR0aDt0aGlzLmhlaWdodD1+fmhlaWdodDt0aGlzLnRyYW5zcGFyZW50PW51bGw7dGhpcy50cmFuc0luZGV4PTA7dGhpcy5yZXBlYXQ9LTE7dGhpcy5kZWxheT0wO3RoaXMuaW1hZ2U9bnVsbDt0aGlzLnBpeGVscz1udWxsO3RoaXMuaW5kZXhlZFBpeGVscz1udWxsO3RoaXMuY29sb3JEZXB0aD1udWxsO3RoaXMuY29sb3JUYWI9bnVsbDt0aGlzLm5ldVF1YW50PW51bGw7dGhpcy51c2VkRW50cnk9bmV3IEFycmF5O3RoaXMucGFsU2l6ZT03O3RoaXMuZGlzcG9zZT0tMTt0aGlzLmZpcnN0RnJhbWU9dHJ1ZTt0aGlzLnNhbXBsZT0xMDt0aGlzLmRpdGhlcj1mYWxzZTt0aGlzLmdsb2JhbFBhbGV0dGU9ZmFsc2U7dGhpcy5vdXQ9bmV3IEJ5dGVBcnJheX1HSUZFbmNvZGVyLnByb3RvdHlwZS5zZXREZWxheT1mdW5jdGlvbihtaWxsaXNlY29uZHMpe3RoaXMuZGVsYXk9TWF0aC5yb3VuZChtaWxsaXNlY29uZHMvMTApfTtHSUZFbmNvZGVyLnByb3RvdHlwZS5zZXRGcmFtZVJhdGU9ZnVuY3Rpb24oZnBzKXt0aGlzLmRlbGF5PU1hdGgucm91bmQoMTAwL2Zwcyl9O0dJRkVuY29kZXIucHJvdG90eXBlLnNldERpc3Bvc2U9ZnVuY3Rpb24oZGlzcG9zYWxDb2RlKXtpZihkaXNwb3NhbENvZGU+PTApdGhpcy5kaXNwb3NlPWRpc3Bvc2FsQ29kZX07R0lGRW5jb2Rlci5wcm90b3R5cGUuc2V0UmVwZWF0PWZ1bmN0aW9uKHJlcGVhdCl7dGhpcy5yZXBlYXQ9cmVwZWF0fTtHSUZFbmNvZGVyLnByb3RvdHlwZS5zZXRUcmFuc3BhcmVudD1mdW5jdGlvbihjb2xvcil7dGhpcy50cmFuc3BhcmVudD1jb2xvcn07R0lGRW5jb2Rlci5wcm90b3R5cGUuYWRkRnJhbWU9ZnVuY3Rpb24oaW1hZ2VEYXRhKXt0aGlzLmltYWdlPWltYWdlRGF0YTt0aGlzLmNvbG9yVGFiPXRoaXMuZ2xvYmFsUGFsZXR0ZSYmdGhpcy5nbG9iYWxQYWxldHRlLnNsaWNlP3RoaXMuZ2xvYmFsUGFsZXR0ZTpudWxsO3RoaXMuZ2V0SW1hZ2VQaXhlbHMoKTt0aGlzLmFuYWx5emVQaXhlbHMoKTtpZih0aGlzLmdsb2JhbFBhbGV0dGU9PT10cnVlKXRoaXMuZ2xvYmFsUGFsZXR0ZT10aGlzLmNvbG9yVGFiO2lmKHRoaXMuZmlyc3RGcmFtZSl7dGhpcy53cml0ZUxTRCgpO3RoaXMud3JpdGVQYWxldHRlKCk7aWYodGhpcy5yZXBlYXQ+PTApe3RoaXMud3JpdGVOZXRzY2FwZUV4dCgpfX10aGlzLndyaXRlR3JhcGhpY0N0cmxFeHQoKTt0aGlzLndyaXRlSW1hZ2VEZXNjKCk7aWYoIXRoaXMuZmlyc3RGcmFtZSYmIXRoaXMuZ2xvYmFsUGFsZXR0ZSl0aGlzLndyaXRlUGFsZXR0ZSgpO3RoaXMud3JpdGVQaXhlbHMoKTt0aGlzLmZpcnN0RnJhbWU9ZmFsc2V9O0dJRkVuY29kZXIucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe3RoaXMub3V0LndyaXRlQnl0ZSg1OSl9O0dJRkVuY29kZXIucHJvdG90eXBlLnNldFF1YWxpdHk9ZnVuY3Rpb24ocXVhbGl0eSl7aWYocXVhbGl0eTwxKXF1YWxpdHk9MTt0aGlzLnNhbXBsZT1xdWFsaXR5fTtHSUZFbmNvZGVyLnByb3RvdHlwZS5zZXREaXRoZXI9ZnVuY3Rpb24oZGl0aGVyKXtpZihkaXRoZXI9PT10cnVlKWRpdGhlcj0iRmxveWRTdGVpbmJlcmciO3RoaXMuZGl0aGVyPWRpdGhlcn07R0lGRW5jb2Rlci5wcm90b3R5cGUuc2V0R2xvYmFsUGFsZXR0ZT1mdW5jdGlvbihwYWxldHRlKXt0aGlzLmdsb2JhbFBhbGV0dGU9cGFsZXR0ZX07R0lGRW5jb2Rlci5wcm90b3R5cGUuZ2V0R2xvYmFsUGFsZXR0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsb2JhbFBhbGV0dGUmJnRoaXMuZ2xvYmFsUGFsZXR0ZS5zbGljZSYmdGhpcy5nbG9iYWxQYWxldHRlLnNsaWNlKDApfHx0aGlzLmdsb2JhbFBhbGV0dGV9O0dJRkVuY29kZXIucHJvdG90eXBlLndyaXRlSGVhZGVyPWZ1bmN0aW9uKCl7dGhpcy5vdXQud3JpdGVVVEZCeXRlcygiR0lGODlhIil9O0dJRkVuY29kZXIucHJvdG90eXBlLmFuYWx5emVQaXhlbHM9ZnVuY3Rpb24oKXtpZighdGhpcy5jb2xvclRhYil7dGhpcy5uZXVRdWFudD1uZXcgTmV1UXVhbnQodGhpcy5waXhlbHMsdGhpcy5zYW1wbGUpO3RoaXMubmV1UXVhbnQuYnVpbGRDb2xvcm1hcCgpO3RoaXMuY29sb3JUYWI9dGhpcy5uZXVRdWFudC5nZXRDb2xvcm1hcCgpfWlmKHRoaXMuZGl0aGVyKXt0aGlzLmRpdGhlclBpeGVscyh0aGlzLmRpdGhlci5yZXBsYWNlKCItc2VycGVudGluZSIsIiIpLHRoaXMuZGl0aGVyLm1hdGNoKC8tc2VycGVudGluZS8pIT09bnVsbCl9ZWxzZXt0aGlzLmluZGV4UGl4ZWxzKCl9dGhpcy5waXhlbHM9bnVsbDt0aGlzLmNvbG9yRGVwdGg9ODt0aGlzLnBhbFNpemU9NztpZih0aGlzLnRyYW5zcGFyZW50IT09bnVsbCl7dGhpcy50cmFuc0luZGV4PXRoaXMuZmluZENsb3Nlc3QodGhpcy50cmFuc3BhcmVudCx0cnVlKX19O0dJRkVuY29kZXIucHJvdG90eXBlLmluZGV4UGl4ZWxzPWZ1bmN0aW9uKGltZ3Epe3ZhciBuUGl4PXRoaXMucGl4ZWxzLmxlbmd0aC8zO3RoaXMuaW5kZXhlZFBpeGVscz1uZXcgVWludDhBcnJheShuUGl4KTt2YXIgaz0wO2Zvcih2YXIgaj0wO2o8blBpeDtqKyspe3ZhciBpbmRleD10aGlzLmZpbmRDbG9zZXN0UkdCKHRoaXMucGl4ZWxzW2srK10mMjU1LHRoaXMucGl4ZWxzW2srK10mMjU1LHRoaXMucGl4ZWxzW2srK10mMjU1KTt0aGlzLnVzZWRFbnRyeVtpbmRleF09dHJ1ZTt0aGlzLmluZGV4ZWRQaXhlbHNbal09aW5kZXh9fTtHSUZFbmNvZGVyLnByb3RvdHlwZS5kaXRoZXJQaXhlbHM9ZnVuY3Rpb24oa2VybmVsLHNlcnBlbnRpbmUpe3ZhciBrZXJuZWxzPXtGYWxzZUZsb3lkU3RlaW5iZXJnOltbMy84LDEsMF0sWzMvOCwwLDFdLFsyLzgsMSwxXV0sRmxveWRTdGVpbmJlcmc6W1s3LzE2LDEsMF0sWzMvMTYsLTEsMV0sWzUvMTYsMCwxXSxbMS8xNiwxLDFdXSxTdHVja2k6W1s4LzQyLDEsMF0sWzQvNDIsMiwwXSxbMi80MiwtMiwxXSxbNC80MiwtMSwxXSxbOC80MiwwLDFdLFs0LzQyLDEsMV0sWzIvNDIsMiwxXSxbMS80MiwtMiwyXSxbMi80MiwtMSwyXSxbNC80MiwwLDJdLFsyLzQyLDEsMl0sWzEvNDIsMiwyXV0sQXRraW5zb246W1sxLzgsMSwwXSxbMS84LDIsMF0sWzEvOCwtMSwxXSxbMS84LDAsMV0sWzEvOCwxLDFdLFsxLzgsMCwyXV19O2lmKCFrZXJuZWx8fCFrZXJuZWxzW2tlcm5lbF0pe3Rocm93IlVua25vd24gZGl0aGVyaW5nIGtlcm5lbDogIitrZXJuZWx9dmFyIGRzPWtlcm5lbHNba2VybmVsXTt2YXIgaW5kZXg9MCxoZWlnaHQ9dGhpcy5oZWlnaHQsd2lkdGg9dGhpcy53aWR0aCxkYXRhPXRoaXMucGl4ZWxzO3ZhciBkaXJlY3Rpb249c2VycGVudGluZT8tMToxO3RoaXMuaW5kZXhlZFBpeGVscz1uZXcgVWludDhBcnJheSh0aGlzLnBpeGVscy5sZW5ndGgvMyk7Zm9yKHZhciB5PTA7eTxoZWlnaHQ7eSsrKXtpZihzZXJwZW50aW5lKWRpcmVjdGlvbj1kaXJlY3Rpb24qLTE7Zm9yKHZhciB4PWRpcmVjdGlvbj09MT8wOndpZHRoLTEseGVuZD1kaXJlY3Rpb249PTE/d2lkdGg6MDt4IT09eGVuZDt4Kz1kaXJlY3Rpb24pe2luZGV4PXkqd2lkdGgreDt2YXIgaWR4PWluZGV4KjM7dmFyIHIxPWRhdGFbaWR4XTt2YXIgZzE9ZGF0YVtpZHgrMV07dmFyIGIxPWRhdGFbaWR4KzJdO2lkeD10aGlzLmZpbmRDbG9zZXN0UkdCKHIxLGcxLGIxKTt0aGlzLnVzZWRFbnRyeVtpZHhdPXRydWU7dGhpcy5pbmRleGVkUGl4ZWxzW2luZGV4XT1pZHg7aWR4Kj0zO3ZhciByMj10aGlzLmNvbG9yVGFiW2lkeF07dmFyIGcyPXRoaXMuY29sb3JUYWJbaWR4KzFdO3ZhciBiMj10aGlzLmNvbG9yVGFiW2lkeCsyXTt2YXIgZXI9cjEtcjI7dmFyIGVnPWcxLWcyO3ZhciBlYj1iMS1iMjtmb3IodmFyIGk9ZGlyZWN0aW9uPT0xPzA6ZHMubGVuZ3RoLTEsZW5kPWRpcmVjdGlvbj09MT9kcy5sZW5ndGg6MDtpIT09ZW5kO2krPWRpcmVjdGlvbil7dmFyIHgxPWRzW2ldWzFdO3ZhciB5MT1kc1tpXVsyXTtpZih4MSt4Pj0wJiZ4MSt4PHdpZHRoJiZ5MSt5Pj0wJiZ5MSt5PGhlaWdodCl7dmFyIGQ9ZHNbaV1bMF07aWR4PWluZGV4K3gxK3kxKndpZHRoO2lkeCo9MztkYXRhW2lkeF09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsZGF0YVtpZHhdK2VyKmQpKTtkYXRhW2lkeCsxXT1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxkYXRhW2lkeCsxXStlZypkKSk7ZGF0YVtpZHgrMl09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsZGF0YVtpZHgrMl0rZWIqZCkpfX19fX07R0lGRW5jb2Rlci5wcm90b3R5cGUuZmluZENsb3Nlc3Q9ZnVuY3Rpb24oYyx1c2VkKXtyZXR1cm4gdGhpcy5maW5kQ2xvc2VzdFJHQigoYyYxNjcxMTY4MCk+PjE2LChjJjY1MjgwKT4+OCxjJjI1NSx1c2VkKX07R0lGRW5jb2Rlci5wcm90b3R5cGUuZmluZENsb3Nlc3RSR0I9ZnVuY3Rpb24ocixnLGIsdXNlZCl7aWYodGhpcy5jb2xvclRhYj09PW51bGwpcmV0dXJuLTE7aWYodGhpcy5uZXVRdWFudCYmIXVzZWQpe3JldHVybiB0aGlzLm5ldVF1YW50Lmxvb2t1cFJHQihyLGcsYil9dmFyIGM9YnxnPDw4fHI8PDE2O3ZhciBtaW5wb3M9MDt2YXIgZG1pbj0yNTYqMjU2KjI1Njt2YXIgbGVuPXRoaXMuY29sb3JUYWIubGVuZ3RoO2Zvcih2YXIgaT0wLGluZGV4PTA7aTxsZW47aW5kZXgrKyl7dmFyIGRyPXItKHRoaXMuY29sb3JUYWJbaSsrXSYyNTUpO3ZhciBkZz1nLSh0aGlzLmNvbG9yVGFiW2krK10mMjU1KTt2YXIgZGI9Yi0odGhpcy5jb2xvclRhYltpKytdJjI1NSk7dmFyIGQ9ZHIqZHIrZGcqZGcrZGIqZGI7aWYoKCF1c2VkfHx0aGlzLnVzZWRFbnRyeVtpbmRleF0pJiZkPGRtaW4pe2RtaW49ZDttaW5wb3M9aW5kZXh9fXJldHVybiBtaW5wb3N9O0dJRkVuY29kZXIucHJvdG90eXBlLmdldEltYWdlUGl4ZWxzPWZ1bmN0aW9uKCl7dmFyIHc9dGhpcy53aWR0aDt2YXIgaD10aGlzLmhlaWdodDt0aGlzLnBpeGVscz1uZXcgVWludDhBcnJheSh3KmgqMyk7dmFyIGRhdGE9dGhpcy5pbWFnZTt2YXIgc3JjUG9zPTA7dmFyIGNvdW50PTA7Zm9yKHZhciBpPTA7aTxoO2krKyl7Zm9yKHZhciBqPTA7ajx3O2orKyl7dGhpcy5waXhlbHNbY291bnQrK109ZGF0YVtzcmNQb3MrK107dGhpcy5waXhlbHNbY291bnQrK109ZGF0YVtzcmNQb3MrK107dGhpcy5waXhlbHNbY291bnQrK109ZGF0YVtzcmNQb3MrK107c3JjUG9zKyt9fX07R0lGRW5jb2Rlci5wcm90b3R5cGUud3JpdGVHcmFwaGljQ3RybEV4dD1mdW5jdGlvbigpe3RoaXMub3V0LndyaXRlQnl0ZSgzMyk7dGhpcy5vdXQud3JpdGVCeXRlKDI0OSk7dGhpcy5vdXQud3JpdGVCeXRlKDQpO3ZhciB0cmFuc3AsZGlzcDtpZih0aGlzLnRyYW5zcGFyZW50PT09bnVsbCl7dHJhbnNwPTA7ZGlzcD0wfWVsc2V7dHJhbnNwPTE7ZGlzcD0yfWlmKHRoaXMuZGlzcG9zZT49MCl7ZGlzcD1kaXNwb3NlJjd9ZGlzcDw8PTI7dGhpcy5vdXQud3JpdGVCeXRlKDB8ZGlzcHwwfHRyYW5zcCk7dGhpcy53cml0ZVNob3J0KHRoaXMuZGVsYXkpO3RoaXMub3V0LndyaXRlQnl0ZSh0aGlzLnRyYW5zSW5kZXgpO3RoaXMub3V0LndyaXRlQnl0ZSgwKX07R0lGRW5jb2Rlci5wcm90b3R5cGUud3JpdGVJbWFnZURlc2M9ZnVuY3Rpb24oKXt0aGlzLm91dC53cml0ZUJ5dGUoNDQpO3RoaXMud3JpdGVTaG9ydCgwKTt0aGlzLndyaXRlU2hvcnQoMCk7dGhpcy53cml0ZVNob3J0KHRoaXMud2lkdGgpO3RoaXMud3JpdGVTaG9ydCh0aGlzLmhlaWdodCk7aWYodGhpcy5maXJzdEZyYW1lfHx0aGlzLmdsb2JhbFBhbGV0dGUpe3RoaXMub3V0LndyaXRlQnl0ZSgwKX1lbHNle3RoaXMub3V0LndyaXRlQnl0ZSgxMjh8MHwwfDB8dGhpcy5wYWxTaXplKX19O0dJRkVuY29kZXIucHJvdG90eXBlLndyaXRlTFNEPWZ1bmN0aW9uKCl7dGhpcy53cml0ZVNob3J0KHRoaXMud2lkdGgpO3RoaXMud3JpdGVTaG9ydCh0aGlzLmhlaWdodCk7dGhpcy5vdXQud3JpdGVCeXRlKDEyOHwxMTJ8MHx0aGlzLnBhbFNpemUpO3RoaXMub3V0LndyaXRlQnl0ZSgwKTt0aGlzLm91dC53cml0ZUJ5dGUoMCl9O0dJRkVuY29kZXIucHJvdG90eXBlLndyaXRlTmV0c2NhcGVFeHQ9ZnVuY3Rpb24oKXt0aGlzLm91dC53cml0ZUJ5dGUoMzMpO3RoaXMub3V0LndyaXRlQnl0ZSgyNTUpO3RoaXMub3V0LndyaXRlQnl0ZSgxMSk7dGhpcy5vdXQud3JpdGVVVEZCeXRlcygiTkVUU0NBUEUyLjAiKTt0aGlzLm91dC53cml0ZUJ5dGUoMyk7dGhpcy5vdXQud3JpdGVCeXRlKDEpO3RoaXMud3JpdGVTaG9ydCh0aGlzLnJlcGVhdCk7dGhpcy5vdXQud3JpdGVCeXRlKDApfTtHSUZFbmNvZGVyLnByb3RvdHlwZS53cml0ZVBhbGV0dGU9ZnVuY3Rpb24oKXt0aGlzLm91dC53cml0ZUJ5dGVzKHRoaXMuY29sb3JUYWIpO3ZhciBuPTMqMjU2LXRoaXMuY29sb3JUYWIubGVuZ3RoO2Zvcih2YXIgaT0wO2k8bjtpKyspdGhpcy5vdXQud3JpdGVCeXRlKDApfTtHSUZFbmNvZGVyLnByb3RvdHlwZS53cml0ZVNob3J0PWZ1bmN0aW9uKHBWYWx1ZSl7dGhpcy5vdXQud3JpdGVCeXRlKHBWYWx1ZSYyNTUpO3RoaXMub3V0LndyaXRlQnl0ZShwVmFsdWU+PjgmMjU1KX07R0lGRW5jb2Rlci5wcm90b3R5cGUud3JpdGVQaXhlbHM9ZnVuY3Rpb24oKXt2YXIgZW5jPW5ldyBMWldFbmNvZGVyKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsdGhpcy5pbmRleGVkUGl4ZWxzLHRoaXMuY29sb3JEZXB0aCk7ZW5jLmVuY29kZSh0aGlzLm91dCl9O0dJRkVuY29kZXIucHJvdG90eXBlLnN0cmVhbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm91dH07bW9kdWxlLmV4cG9ydHM9R0lGRW5jb2Rlcn0seyIuL0xaV0VuY29kZXIuanMiOjIsIi4vVHlwZWROZXVRdWFudC5qcyI6M31dLDI6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpe3ZhciBFT0Y9LTE7dmFyIEJJVFM9MTI7dmFyIEhTSVpFPTUwMDM7dmFyIG1hc2tzPVswLDEsMyw3LDE1LDMxLDYzLDEyNywyNTUsNTExLDEwMjMsMjA0Nyw0MDk1LDgxOTEsMTYzODMsMzI3NjcsNjU1MzVdO2Z1bmN0aW9uIExaV0VuY29kZXIod2lkdGgsaGVpZ2h0LHBpeGVscyxjb2xvckRlcHRoKXt2YXIgaW5pdENvZGVTaXplPU1hdGgubWF4KDIsY29sb3JEZXB0aCk7dmFyIGFjY3VtPW5ldyBVaW50OEFycmF5KDI1Nik7dmFyIGh0YWI9bmV3IEludDMyQXJyYXkoSFNJWkUpO3ZhciBjb2RldGFiPW5ldyBJbnQzMkFycmF5KEhTSVpFKTt2YXIgY3VyX2FjY3VtLGN1cl9iaXRzPTA7dmFyIGFfY291bnQ7dmFyIGZyZWVfZW50PTA7dmFyIG1heGNvZGU7dmFyIGNsZWFyX2ZsZz1mYWxzZTt2YXIgZ19pbml0X2JpdHMsQ2xlYXJDb2RlLEVPRkNvZGU7ZnVuY3Rpb24gY2hhcl9vdXQoYyxvdXRzKXthY2N1bVthX2NvdW50KytdPWM7aWYoYV9jb3VudD49MjU0KWZsdXNoX2NoYXIob3V0cyl9ZnVuY3Rpb24gY2xfYmxvY2sob3V0cyl7Y2xfaGFzaChIU0laRSk7ZnJlZV9lbnQ9Q2xlYXJDb2RlKzI7Y2xlYXJfZmxnPXRydWU7b3V0cHV0KENsZWFyQ29kZSxvdXRzKX1mdW5jdGlvbiBjbF9oYXNoKGhzaXplKXtmb3IodmFyIGk9MDtpPGhzaXplOysraSlodGFiW2ldPS0xfWZ1bmN0aW9uIGNvbXByZXNzKGluaXRfYml0cyxvdXRzKXt2YXIgZmNvZGUsYyxpLGVudCxkaXNwLGhzaXplX3JlZyxoc2hpZnQ7Z19pbml0X2JpdHM9aW5pdF9iaXRzO2NsZWFyX2ZsZz1mYWxzZTtuX2JpdHM9Z19pbml0X2JpdHM7bWF4Y29kZT1NQVhDT0RFKG5fYml0cyk7Q2xlYXJDb2RlPTE8PGluaXRfYml0cy0xO0VPRkNvZGU9Q2xlYXJDb2RlKzE7ZnJlZV9lbnQ9Q2xlYXJDb2RlKzI7YV9jb3VudD0wO2VudD1uZXh0UGl4ZWwoKTtoc2hpZnQ9MDtmb3IoZmNvZGU9SFNJWkU7ZmNvZGU8NjU1MzY7ZmNvZGUqPTIpKytoc2hpZnQ7aHNoaWZ0PTgtaHNoaWZ0O2hzaXplX3JlZz1IU0laRTtjbF9oYXNoKGhzaXplX3JlZyk7b3V0cHV0KENsZWFyQ29kZSxvdXRzKTtvdXRlcl9sb29wOndoaWxlKChjPW5leHRQaXhlbCgpKSE9RU9GKXtmY29kZT0oYzw8QklUUykrZW50O2k9Yzw8aHNoaWZ0XmVudDtpZihodGFiW2ldPT09ZmNvZGUpe2VudD1jb2RldGFiW2ldO2NvbnRpbnVlfWVsc2UgaWYoaHRhYltpXT49MCl7ZGlzcD1oc2l6ZV9yZWctaTtpZihpPT09MClkaXNwPTE7ZG97aWYoKGktPWRpc3ApPDApaSs9aHNpemVfcmVnO2lmKGh0YWJbaV09PT1mY29kZSl7ZW50PWNvZGV0YWJbaV07Y29udGludWUgb3V0ZXJfbG9vcH19d2hpbGUoaHRhYltpXT49MCl9b3V0cHV0KGVudCxvdXRzKTtlbnQ9YztpZihmcmVlX2VudDwxPDxCSVRTKXtjb2RldGFiW2ldPWZyZWVfZW50Kys7aHRhYltpXT1mY29kZX1lbHNle2NsX2Jsb2NrKG91dHMpfX1vdXRwdXQoZW50LG91dHMpO291dHB1dChFT0ZDb2RlLG91dHMpfWZ1bmN0aW9uIGVuY29kZShvdXRzKXtvdXRzLndyaXRlQnl0ZShpbml0Q29kZVNpemUpO3JlbWFpbmluZz13aWR0aCpoZWlnaHQ7Y3VyUGl4ZWw9MDtjb21wcmVzcyhpbml0Q29kZVNpemUrMSxvdXRzKTtvdXRzLndyaXRlQnl0ZSgwKX1mdW5jdGlvbiBmbHVzaF9jaGFyKG91dHMpe2lmKGFfY291bnQ+MCl7b3V0cy53cml0ZUJ5dGUoYV9jb3VudCk7b3V0cy53cml0ZUJ5dGVzKGFjY3VtLDAsYV9jb3VudCk7YV9jb3VudD0wfX1mdW5jdGlvbiBNQVhDT0RFKG5fYml0cyl7cmV0dXJuKDE8PG5fYml0cyktMX1mdW5jdGlvbiBuZXh0UGl4ZWwoKXtpZihyZW1haW5pbmc9PT0wKXJldHVybiBFT0Y7LS1yZW1haW5pbmc7dmFyIHBpeD1waXhlbHNbY3VyUGl4ZWwrK107cmV0dXJuIHBpeCYyNTV9ZnVuY3Rpb24gb3V0cHV0KGNvZGUsb3V0cyl7Y3VyX2FjY3VtJj1tYXNrc1tjdXJfYml0c107aWYoY3VyX2JpdHM+MCljdXJfYWNjdW18PWNvZGU8PGN1cl9iaXRzO2Vsc2UgY3VyX2FjY3VtPWNvZGU7Y3VyX2JpdHMrPW5fYml0czt3aGlsZShjdXJfYml0cz49OCl7Y2hhcl9vdXQoY3VyX2FjY3VtJjI1NSxvdXRzKTtjdXJfYWNjdW0+Pj04O2N1cl9iaXRzLT04fWlmKGZyZWVfZW50Pm1heGNvZGV8fGNsZWFyX2ZsZyl7aWYoY2xlYXJfZmxnKXttYXhjb2RlPU1BWENPREUobl9iaXRzPWdfaW5pdF9iaXRzKTtjbGVhcl9mbGc9ZmFsc2V9ZWxzZXsrK25fYml0cztpZihuX2JpdHM9PUJJVFMpbWF4Y29kZT0xPDxCSVRTO2Vsc2UgbWF4Y29kZT1NQVhDT0RFKG5fYml0cyl9fWlmKGNvZGU9PUVPRkNvZGUpe3doaWxlKGN1cl9iaXRzPjApe2NoYXJfb3V0KGN1cl9hY2N1bSYyNTUsb3V0cyk7Y3VyX2FjY3VtPj49ODtjdXJfYml0cy09OH1mbHVzaF9jaGFyKG91dHMpfX10aGlzLmVuY29kZT1lbmNvZGV9bW9kdWxlLmV4cG9ydHM9TFpXRW5jb2Rlcn0se31dLDM6W2Z1bmN0aW9uKHJlcXVpcmUsbW9kdWxlLGV4cG9ydHMpe3ZhciBuY3ljbGVzPTEwMDt2YXIgbmV0c2l6ZT0yNTY7dmFyIG1heG5ldHBvcz1uZXRzaXplLTE7dmFyIG5ldGJpYXNzaGlmdD00O3ZhciBpbnRiaWFzc2hpZnQ9MTY7dmFyIGludGJpYXM9MTw8aW50Ymlhc3NoaWZ0O3ZhciBnYW1tYXNoaWZ0PTEwO3ZhciBnYW1tYT0xPDxnYW1tYXNoaWZ0O3ZhciBiZXRhc2hpZnQ9MTA7dmFyIGJldGE9aW50Ymlhcz4+YmV0YXNoaWZ0O3ZhciBiZXRhZ2FtbWE9aW50Ymlhczw8Z2FtbWFzaGlmdC1iZXRhc2hpZnQ7dmFyIGluaXRyYWQ9bmV0c2l6ZT4+Mzt2YXIgcmFkaXVzYmlhc3NoaWZ0PTY7dmFyIHJhZGl1c2JpYXM9MTw8cmFkaXVzYmlhc3NoaWZ0O3ZhciBpbml0cmFkaXVzPWluaXRyYWQqcmFkaXVzYmlhczt2YXIgcmFkaXVzZGVjPTMwO3ZhciBhbHBoYWJpYXNzaGlmdD0xMDt2YXIgaW5pdGFscGhhPTE8PGFscGhhYmlhc3NoaWZ0O3ZhciBhbHBoYWRlYzt2YXIgcmFkYmlhc3NoaWZ0PTg7dmFyIHJhZGJpYXM9MTw8cmFkYmlhc3NoaWZ0O3ZhciBhbHBoYXJhZGJzaGlmdD1hbHBoYWJpYXNzaGlmdCtyYWRiaWFzc2hpZnQ7dmFyIGFscGhhcmFkYmlhcz0xPDxhbHBoYXJhZGJzaGlmdDt2YXIgcHJpbWUxPTQ5OTt2YXIgcHJpbWUyPTQ5MTt2YXIgcHJpbWUzPTQ4Nzt2YXIgcHJpbWU0PTUwMzt2YXIgbWlucGljdHVyZWJ5dGVzPTMqcHJpbWU0O2Z1bmN0aW9uIE5ldVF1YW50KHBpeGVscyxzYW1wbGVmYWMpe3ZhciBuZXR3b3JrO3ZhciBuZXRpbmRleDt2YXIgYmlhczt2YXIgZnJlcTt2YXIgcmFkcG93ZXI7ZnVuY3Rpb24gaW5pdCgpe25ldHdvcms9W107bmV0aW5kZXg9bmV3IEludDMyQXJyYXkoMjU2KTtiaWFzPW5ldyBJbnQzMkFycmF5KG5ldHNpemUpO2ZyZXE9bmV3IEludDMyQXJyYXkobmV0c2l6ZSk7cmFkcG93ZXI9bmV3IEludDMyQXJyYXkobmV0c2l6ZT4+Myk7dmFyIGksdjtmb3IoaT0wO2k8bmV0c2l6ZTtpKyspe3Y9KGk8PG5ldGJpYXNzaGlmdCs4KS9uZXRzaXplO25ldHdvcmtbaV09bmV3IEZsb2F0NjRBcnJheShbdix2LHYsMF0pO2ZyZXFbaV09aW50Ymlhcy9uZXRzaXplO2JpYXNbaV09MH19ZnVuY3Rpb24gdW5iaWFzbmV0KCl7Zm9yKHZhciBpPTA7aTxuZXRzaXplO2krKyl7bmV0d29ya1tpXVswXT4+PW5ldGJpYXNzaGlmdDtuZXR3b3JrW2ldWzFdPj49bmV0Ymlhc3NoaWZ0O25ldHdvcmtbaV1bMl0+Pj1uZXRiaWFzc2hpZnQ7bmV0d29ya1tpXVszXT1pfX1mdW5jdGlvbiBhbHRlcnNpbmdsZShhbHBoYSxpLGIsZyxyKXtuZXR3b3JrW2ldWzBdLT1hbHBoYSoobmV0d29ya1tpXVswXS1iKS9pbml0YWxwaGE7bmV0d29ya1tpXVsxXS09YWxwaGEqKG5ldHdvcmtbaV1bMV0tZykvaW5pdGFscGhhO25ldHdvcmtbaV1bMl0tPWFscGhhKihuZXR3b3JrW2ldWzJdLXIpL2luaXRhbHBoYX1mdW5jdGlvbiBhbHRlcm5laWdoKHJhZGl1cyxpLGIsZyxyKXt2YXIgbG89TWF0aC5hYnMoaS1yYWRpdXMpO3ZhciBoaT1NYXRoLm1pbihpK3JhZGl1cyxuZXRzaXplKTt2YXIgaj1pKzE7dmFyIGs9aS0xO3ZhciBtPTE7dmFyIHAsYTt3aGlsZShqPGhpfHxrPmxvKXthPXJhZHBvd2VyW20rK107aWYoajxoaSl7cD1uZXR3b3JrW2orK107cFswXS09YSoocFswXS1iKS9hbHBoYXJhZGJpYXM7cFsxXS09YSoocFsxXS1nKS9hbHBoYXJhZGJpYXM7cFsyXS09YSoocFsyXS1yKS9hbHBoYXJhZGJpYXN9aWYoaz5sbyl7cD1uZXR3b3JrW2stLV07cFswXS09YSoocFswXS1iKS9hbHBoYXJhZGJpYXM7cFsxXS09YSoocFsxXS1nKS9hbHBoYXJhZGJpYXM7cFsyXS09YSoocFsyXS1yKS9hbHBoYXJhZGJpYXN9fX1mdW5jdGlvbiBjb250ZXN0KGIsZyxyKXt2YXIgYmVzdGQ9figxPDwzMSk7dmFyIGJlc3RiaWFzZD1iZXN0ZDt2YXIgYmVzdHBvcz0tMTt2YXIgYmVzdGJpYXNwb3M9YmVzdHBvczt2YXIgaSxuLGRpc3QsYmlhc2Rpc3QsYmV0YWZyZXE7Zm9yKGk9MDtpPG5ldHNpemU7aSsrKXtuPW5ldHdvcmtbaV07ZGlzdD1NYXRoLmFicyhuWzBdLWIpK01hdGguYWJzKG5bMV0tZykrTWF0aC5hYnMoblsyXS1yKTtpZihkaXN0PGJlc3RkKXtiZXN0ZD1kaXN0O2Jlc3Rwb3M9aX1iaWFzZGlzdD1kaXN0LShiaWFzW2ldPj5pbnRiaWFzc2hpZnQtbmV0Ymlhc3NoaWZ0KTtpZihiaWFzZGlzdDxiZXN0Ymlhc2Qpe2Jlc3RiaWFzZD1iaWFzZGlzdDtiZXN0Ymlhc3Bvcz1pfWJldGFmcmVxPWZyZXFbaV0+PmJldGFzaGlmdDtmcmVxW2ldLT1iZXRhZnJlcTtiaWFzW2ldKz1iZXRhZnJlcTw8Z2FtbWFzaGlmdH1mcmVxW2Jlc3Rwb3NdKz1iZXRhO2JpYXNbYmVzdHBvc10tPWJldGFnYW1tYTtyZXR1cm4gYmVzdGJpYXNwb3N9ZnVuY3Rpb24gaW54YnVpbGQoKXt2YXIgaSxqLHAscSxzbWFsbHBvcyxzbWFsbHZhbCxwcmV2aW91c2NvbD0wLHN0YXJ0cG9zPTA7Zm9yKGk9MDtpPG5ldHNpemU7aSsrKXtwPW5ldHdvcmtbaV07c21hbGxwb3M9aTtzbWFsbHZhbD1wWzFdO2ZvcihqPWkrMTtqPG5ldHNpemU7aisrKXtxPW5ldHdvcmtbal07aWYocVsxXTxzbWFsbHZhbCl7c21hbGxwb3M9ajtzbWFsbHZhbD1xWzFdfX1xPW5ldHdvcmtbc21hbGxwb3NdO2lmKGkhPXNtYWxscG9zKXtqPXFbMF07cVswXT1wWzBdO3BbMF09ajtqPXFbMV07cVsxXT1wWzFdO3BbMV09ajtqPXFbMl07cVsyXT1wWzJdO3BbMl09ajtqPXFbM107cVszXT1wWzNdO3BbM109an1pZihzbWFsbHZhbCE9cHJldmlvdXNjb2wpe25ldGluZGV4W3ByZXZpb3VzY29sXT1zdGFydHBvcytpPj4xO2ZvcihqPXByZXZpb3VzY29sKzE7ajxzbWFsbHZhbDtqKyspbmV0aW5kZXhbal09aTtwcmV2aW91c2NvbD1zbWFsbHZhbDtzdGFydHBvcz1pfX1uZXRpbmRleFtwcmV2aW91c2NvbF09c3RhcnRwb3MrbWF4bmV0cG9zPj4xO2ZvcihqPXByZXZpb3VzY29sKzE7ajwyNTY7aisrKW5ldGluZGV4W2pdPW1heG5ldHBvc31mdW5jdGlvbiBpbnhzZWFyY2goYixnLHIpe3ZhciBhLHAsZGlzdDt2YXIgYmVzdGQ9MWUzO3ZhciBiZXN0PS0xO3ZhciBpPW5ldGluZGV4W2ddO3ZhciBqPWktMTt3aGlsZShpPG5ldHNpemV8fGo+PTApe2lmKGk8bmV0c2l6ZSl7cD1uZXR3b3JrW2ldO2Rpc3Q9cFsxXS1nO2lmKGRpc3Q+PWJlc3RkKWk9bmV0c2l6ZTtlbHNle2krKztpZihkaXN0PDApZGlzdD0tZGlzdDthPXBbMF0tYjtpZihhPDApYT0tYTtkaXN0Kz1hO2lmKGRpc3Q8YmVzdGQpe2E9cFsyXS1yO2lmKGE8MClhPS1hO2Rpc3QrPWE7aWYoZGlzdDxiZXN0ZCl7YmVzdGQ9ZGlzdDtiZXN0PXBbM119fX19aWYoaj49MCl7cD1uZXR3b3JrW2pdO2Rpc3Q9Zy1wWzFdO2lmKGRpc3Q+PWJlc3RkKWo9LTE7ZWxzZXtqLS07aWYoZGlzdDwwKWRpc3Q9LWRpc3Q7YT1wWzBdLWI7aWYoYTwwKWE9LWE7ZGlzdCs9YTtpZihkaXN0PGJlc3RkKXthPXBbMl0tcjtpZihhPDApYT0tYTtkaXN0Kz1hO2lmKGRpc3Q8YmVzdGQpe2Jlc3RkPWRpc3Q7YmVzdD1wWzNdfX19fX1yZXR1cm4gYmVzdH1mdW5jdGlvbiBsZWFybigpe3ZhciBpO3ZhciBsZW5ndGhjb3VudD1waXhlbHMubGVuZ3RoO3ZhciBhbHBoYWRlYz0zMCsoc2FtcGxlZmFjLTEpLzM7dmFyIHNhbXBsZXBpeGVscz1sZW5ndGhjb3VudC8oMypzYW1wbGVmYWMpO3ZhciBkZWx0YT1+fihzYW1wbGVwaXhlbHMvbmN5Y2xlcyk7dmFyIGFscGhhPWluaXRhbHBoYTt2YXIgcmFkaXVzPWluaXRyYWRpdXM7dmFyIHJhZD1yYWRpdXM+PnJhZGl1c2JpYXNzaGlmdDtpZihyYWQ8PTEpcmFkPTA7Zm9yKGk9MDtpPHJhZDtpKyspcmFkcG93ZXJbaV09YWxwaGEqKChyYWQqcmFkLWkqaSkqcmFkYmlhcy8ocmFkKnJhZCkpO3ZhciBzdGVwO2lmKGxlbmd0aGNvdW50PG1pbnBpY3R1cmVieXRlcyl7c2FtcGxlZmFjPTE7c3RlcD0zfWVsc2UgaWYobGVuZ3RoY291bnQlcHJpbWUxIT09MCl7c3RlcD0zKnByaW1lMX1lbHNlIGlmKGxlbmd0aGNvdW50JXByaW1lMiE9PTApe3N0ZXA9MypwcmltZTJ9ZWxzZSBpZihsZW5ndGhjb3VudCVwcmltZTMhPT0wKXtzdGVwPTMqcHJpbWUzfWVsc2V7c3RlcD0zKnByaW1lNH12YXIgYixnLHIsajt2YXIgcGl4PTA7aT0wO3doaWxlKGk8c2FtcGxlcGl4ZWxzKXtiPShwaXhlbHNbcGl4XSYyNTUpPDxuZXRiaWFzc2hpZnQ7Zz0ocGl4ZWxzW3BpeCsxXSYyNTUpPDxuZXRiaWFzc2hpZnQ7cj0ocGl4ZWxzW3BpeCsyXSYyNTUpPDxuZXRiaWFzc2hpZnQ7aj1jb250ZXN0KGIsZyxyKTthbHRlcnNpbmdsZShhbHBoYSxqLGIsZyxyKTtpZihyYWQhPT0wKWFsdGVybmVpZ2gocmFkLGosYixnLHIpO3BpeCs9c3RlcDtpZihwaXg+PWxlbmd0aGNvdW50KXBpeC09bGVuZ3RoY291bnQ7aSsrO2lmKGRlbHRhPT09MClkZWx0YT0xO2lmKGklZGVsdGE9PT0wKXthbHBoYS09YWxwaGEvYWxwaGFkZWM7cmFkaXVzLT1yYWRpdXMvcmFkaXVzZGVjO3JhZD1yYWRpdXM+PnJhZGl1c2JpYXNzaGlmdDtpZihyYWQ8PTEpcmFkPTA7Zm9yKGo9MDtqPHJhZDtqKyspcmFkcG93ZXJbal09YWxwaGEqKChyYWQqcmFkLWoqaikqcmFkYmlhcy8ocmFkKnJhZCkpfX19ZnVuY3Rpb24gYnVpbGRDb2xvcm1hcCgpe2luaXQoKTtsZWFybigpO3VuYmlhc25ldCgpO2lueGJ1aWxkKCl9dGhpcy5idWlsZENvbG9ybWFwPWJ1aWxkQ29sb3JtYXA7ZnVuY3Rpb24gZ2V0Q29sb3JtYXAoKXt2YXIgbWFwPVtdO3ZhciBpbmRleD1bXTtmb3IodmFyIGk9MDtpPG5ldHNpemU7aSsrKWluZGV4W25ldHdvcmtbaV1bM11dPWk7dmFyIGs9MDtmb3IodmFyIGw9MDtsPG5ldHNpemU7bCsrKXt2YXIgaj1pbmRleFtsXTttYXBbaysrXT1uZXR3b3JrW2pdWzBdO21hcFtrKytdPW5ldHdvcmtbal1bMV07bWFwW2srK109bmV0d29ya1tqXVsyXX1yZXR1cm4gbWFwfXRoaXMuZ2V0Q29sb3JtYXA9Z2V0Q29sb3JtYXA7dGhpcy5sb29rdXBSR0I9aW54c2VhcmNofW1vZHVsZS5leHBvcnRzPU5ldVF1YW50fSx7fV0sNDpbZnVuY3Rpb24ocmVxdWlyZSxtb2R1bGUsZXhwb3J0cyl7dmFyIEdJRkVuY29kZXIscmVuZGVyRnJhbWU7R0lGRW5jb2Rlcj1yZXF1aXJlKCIuL0dJRkVuY29kZXIuanMiKTtyZW5kZXJGcmFtZT1mdW5jdGlvbihmcmFtZSl7dmFyIGVuY29kZXIscGFnZSxzdHJlYW0sdHJhbnNmZXI7ZW5jb2Rlcj1uZXcgR0lGRW5jb2RlcihmcmFtZS53aWR0aCxmcmFtZS5oZWlnaHQpO2lmKGZyYW1lLmluZGV4PT09MCl7ZW5jb2Rlci53cml0ZUhlYWRlcigpfWVsc2V7ZW5jb2Rlci5maXJzdEZyYW1lPWZhbHNlfWVuY29kZXIuc2V0VHJhbnNwYXJlbnQoZnJhbWUudHJhbnNwYXJlbnQpO2VuY29kZXIuc2V0UmVwZWF0KGZyYW1lLnJlcGVhdCk7ZW5jb2Rlci5zZXREZWxheShmcmFtZS5kZWxheSk7ZW5jb2Rlci5zZXRRdWFsaXR5KGZyYW1lLnF1YWxpdHkpO2VuY29kZXIuc2V0RGl0aGVyKGZyYW1lLmRpdGhlcik7ZW5jb2Rlci5zZXRHbG9iYWxQYWxldHRlKGZyYW1lLmdsb2JhbFBhbGV0dGUpO2VuY29kZXIuYWRkRnJhbWUoZnJhbWUuZGF0YSk7aWYoZnJhbWUubGFzdCl7ZW5jb2Rlci5maW5pc2goKX1pZihmcmFtZS5nbG9iYWxQYWxldHRlPT09dHJ1ZSl7ZnJhbWUuZ2xvYmFsUGFsZXR0ZT1lbmNvZGVyLmdldEdsb2JhbFBhbGV0dGUoKX1zdHJlYW09ZW5jb2Rlci5zdHJlYW0oKTtmcmFtZS5kYXRhPXN0cmVhbS5wYWdlcztmcmFtZS5jdXJzb3I9c3RyZWFtLmN1cnNvcjtmcmFtZS5wYWdlU2l6ZT1zdHJlYW0uY29uc3RydWN0b3IucGFnZVNpemU7aWYoZnJhbWUuY2FuVHJhbnNmZXIpe3RyYW5zZmVyPWZ1bmN0aW9uKCl7dmFyIGksbGVuLHJlZixyZXN1bHRzO3JlZj1mcmFtZS5kYXRhO3Jlc3VsdHM9W107Zm9yKGk9MCxsZW49cmVmLmxlbmd0aDtpPGxlbjtpKyspe3BhZ2U9cmVmW2ldO3Jlc3VsdHMucHVzaChwYWdlLmJ1ZmZlcil9cmV0dXJuIHJlc3VsdHN9KCk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2UoZnJhbWUsdHJhbnNmZXIpfWVsc2V7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2UoZnJhbWUpfX07c2VsZi5vbm1lc3NhZ2U9ZnVuY3Rpb24oZXZlbnQpe3JldHVybiByZW5kZXJGcmFtZShldmVudC5kYXRhKX19LHsiLi9HSUZFbmNvZGVyLmpzIjoxfV19LHt9LFs0XSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWdpZi53b3JrZXIuanMubWFwCg==",self.location).href});for(const i of this.frames)r.addFrame(i,{delay:this._frameDelay});r.on("finished",i=>{e(i)}),r.on("error",i=>{console.error("[GifRecorder] GIF 合成失败:",i),a(i)}),r.render()})}download(e,a="ORM-Record"){const r=`${a}.gif`,i=URL.createObjectURL(e),l=document.createElement("a");l.href=i,l.download=r,l.style.display="none",document.body.appendChild(l),l.click(),setTimeout(()=>{document.body.removeChild(l),URL.revokeObjectURL(i)},100)}async saveAsFile(e){const r=`weather-animation-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.gif`;if(window.showSaveFilePicker)try{const l=await(await window.showSaveFilePicker({suggestedName:r,types:[{description:"GIF Images",accept:{"image/gif":[".gif"]}}]})).createWritable();await l.write(e),await l.close(),console.log("文件保存成功");return}catch(i){console.log("用户取消了文件保存或发生错误:",i)}}reset(){this.frames=[],this.captureRect=null,this._isRecording=!1,this.canvas=null,this.ctx=null}get isRecording(){return this._isRecording}get frameDelay(){return this._frameDelay}}const jy="",sf={name:"IdmCapture",props:{isPlaying:{type:Boolean,default:!1},enabled:{type:Boolean,default:!1},frequency:{type:Number,default:1e3},currentTimestamp:{type:Number,default:void 0},token:{type:String,default:""}},emits:["closeRecord","preview","frameCount"],data(){return{recorder:null,actionStatus:0,startX:0,startY:0,selection:{x:0,y:0,width:0,height:0},frameCount:0,blob:null,gifUrl:""}},computed:{selectionStyle(){return{left:`${this.selection.x}px`,top:`${this.selection.y}px`,width:`${this.selection.width}px`,height:`${this.selection.height}px`}},computedUTCTime(){return t=>S(t).utc().format("yyyy-MM-DD HH:mm[Z]")}},watch:{frameCount:{handler(t){t&&this.$emit("frameCount",this.frameCount)}},enabled:{handler(t){t?this.actionStatus=1:this.actionStatus=5}},actionStatus:{handler(t){this.actionStatus===4&&this.startRecord(),this.actionStatus===5&&this.recorder&&this.createGif(),this.actionStatus===6&&this.handleUpload(this.blob),this.actionStatus===7&&this.$emit("preview",this.gifUrl)}}},methods:{handleMouseDown(t){this.actionStatus>=2&&t.clientX>=this.selection.x&&t.clientX<=this.selection.x+this.selection.width&&t.clientY>=this.selection.y&&t.clientY<=this.selection.y+this.selection.height||(this.actionStatus=2,this.startX=t.clientX,this.startY=t.clientY,this.selection={x:t.clientX,y:t.clientY,width:0,height:0})},handleMouseMove(t){if(this.actionStatus===3)return;const e=t.clientX,a=t.clientY;this.selection={x:Math.min(this.startX,e),y:Math.min(this.startY,a),width:Math.abs(e-this.startX),height:Math.abs(a-this.startY)}},handleMouseUp(){var t,e;((t=this.selection)==null?void 0:t.width)>20&&((e=this.selection)==null?void 0:e.height)>20?this.actionStatus=3:this.actionStatus=1},handleConfirm(){this.actionStatus=4},handleCancel(){this.actionStatus=1,this.recorder=null,this.selection={x:0,y:0,width:0,height:0}},startRecord(){var t,e,a;this.frameCount=0,this.recorder=new nf,(t=this.recorder)==null||t.setArea(this.selection),(e=this.recorder)==null||e.setFrameDelay(this.frequency),(a=this.recorder)==null||a.startRecording(),console.log("[BottomBar] 录制准备就绪")},async captureCurrentFrame(){var t,e,a;if(!(!this.recorder||this.actionStatus!==4)){console.log("[BottomBar] 开始截第"+(this.frameCount+1)+"帧截图");try{const r=(t=document.getElementsByClassName("gif-container"))==null?void 0:t[0];r&&(await((e=this.recorder)==null?void 0:e.captureFrame(r,this.computedUTCTime(this.currentTimestamp))),this.frameCount=(a=this.recorder)==null?void 0:a.getFrameCount(),console.log("[BottomBar] 截图总帧数:",this.frameCount))}catch(r){console.error("[BottomBar] 截图失败:",r)}}},async createGif(){console.log("[BottomBar] 等待最后一帧截图完成..."),setTimeout(async()=>{var t,e;if(this.recorder){(t=this.recorder)==null||t.stopRecording(),console.log("[BottomBar] 停止录制,总帧数:",this.frameCount);try{this.blob=await((e=this.recorder)==null?void 0:e.generateGif()),console.log("[BottomBar] GIF生成完成:",this.blob),this.blob&&(this.actionStatus=6)}catch(a){console.error("[BottomBar] GIF生成失败:",a),this.clear()}}},2e3)},clear(){var t;this.actionStatus=0,this.frameCount=0,this.blob=null,this.gifUrl="",this.recorder&&((t=this.recorder)==null||t.reset(),this.recorder=null),this.$emit("closeRecord"),console.log("[BottomBar] 关闭录制功能,清空数据")},async handleUpload(t){var i;console.log("[BottomBar] 开始上传");const e={stream:t,ext:"gif"},a=await wr.AliOssSTSClient.create(this.token),r=await(a==null?void 0:a.put2HZ("/share",[e]));this.gifUrl=((i=r==null?void 0:r[0])==null?void 0:i.url)||"",console.log("[BottomBar] 上传成功"),this.actionStatus=7},handleDownload(){const e=`ORM-Record-${S().format("yyyyMMDD-HHmm")}.gif`;this.recorder.download(this.blob,e)}}},cf={class:"capture-container"},mf={key:0,class:"drag-tips text-h4"},df={class:"size-hint mt-2 ml-2 text-body-2 px-2 py-1 rounded font-weight-bold bg-background"},hf={class:"size-hint mt-2 ml-2 text-body-2 px-2 py-1 rounded font-weight-bold bg-background"},pf={class:"text-body-2"},gf={key:0,class:"py-1 px-2 d-flex align-center justify-center ga-2"},uf={class:"text-body-2"},ff={key:1,class:"py-1 px-2 d-flex align-center justify-center ga-2"},yf={class:"text-body-2"};function bf(t,e,a,r,i,l){const n=o.resolveComponent("VBtn");return o.openBlock(),o.createElementBlock("div",cf,[i.actionStatus>0&&i.actionStatus<4?(o.openBlock(),o.createElementBlock("div",{key:0,class:"capture-selector",onMousedown:e[2]||(e[2]=(...c)=>l.handleMouseDown&&l.handleMouseDown(...c)),onMousemove:e[3]||(e[3]=(...c)=>l.handleMouseMove&&l.handleMouseMove(...c)),onMouseup:e[4]||(e[4]=(...c)=>l.handleMouseUp&&l.handleMouseUp(...c))},[i.actionStatus===1?(o.openBlock(),o.createElementBlock("div",mf,o.toDisplayString(t.$t("tips.crossHairText")),1)):o.createCommentVNode("",!0),i.actionStatus>=2?(o.openBlock(),o.createElementBlock("div",{key:1,class:"selection-box",style:o.normalizeStyle(l.selectionStyle)},[o.createElementVNode("div",df,o.toDisplayString(Math.round(i.selection.width))+" × "+o.toDisplayString(Math.round(i.selection.height)),1),i.actionStatus===3?(o.openBlock(),o.createElementBlock("div",{key:0,class:"action-buttons px-2 rounded font-weight-bold bg-background d-flex justify-end ga-4",onMousedown:e[0]||(e[0]=o.withModifiers(()=>{},["stop"])),onMouseup:e[1]||(e[1]=o.withModifiers(()=>{},["stop"]))},[o.createVNode(n,{icon:"mdi-check",density:"compact",variant:"plain",class:"text-none text-body-1",onClick:o.withModifiers(l.handleConfirm,["stop"])},null,8,["onClick"]),o.createVNode(n,{icon:"mdi-close",density:"compact",variant:"plain",class:"text-none text-body-1",onClick:o.withModifiers(l.handleCancel,["stop"])},null,8,["onClick"])],32)):o.createCommentVNode("",!0)],4)):o.createCommentVNode("",!0)],32)):o.createCommentVNode("",!0),i.actionStatus>=4&&i.actionStatus<=6?(o.openBlock(),o.createElementBlock("div",{key:1,class:o.normalizeClass(["capture-frame",{recording:i.actionStatus===5}]),style:o.normalizeStyle(l.selectionStyle)},[o.createElementVNode("div",hf,[o.createElementVNode("div",pf,o.toDisplayString(i.selection.width)+" × "+o.toDisplayString(i.selection.height),1)]),o.createElementVNode("div",{class:"action-status mt-2 px-2 rounded font-weight-bold bg-background d-flex align-center justify-end ga-4",onMousedown:e[5]||(e[5]=o.withModifiers(()=>{},["stop"])),onMouseup:e[6]||(e[6]=o.withModifiers(()=>{},["stop"]))},[i.actionStatus===4?(o.openBlock(),o.createElementBlock("div",gf,[e[7]||(e[7]=o.createElementVNode("div",{class:"dot bg-danger"},null,-1)),o.createElementVNode("div",uf,o.toDisplayString(t.$t("tips.recordingText")),1)])):o.createCommentVNode("",!0),i.actionStatus===5||i.actionStatus===6?(o.openBlock(),o.createElementBlock("div",ff,[e[8]||(e[8]=o.createElementVNode("div",{class:"dot bg-success"},null,-1)),o.createElementVNode("div",yf,o.toDisplayString(t.$t("tips.savingText")),1)])):o.createCommentVNode("",!0)],32)],6)):o.createCommentVNode("",!0)])}const wf=X(sf,[["render",bf],["__scopeId","data-v-46a701be"]]),Hy="",xf={name:"IdmBottomBar",components:{DateTimePicker:qe,IdmCapture:wf},props:{menuToggle:{type:Object,default:{}},weatherCheckList:{type:Array}},emits:["forecastModel","realTime","timeZone"],data(){return{right:10,show:{weather:!1,spot:!1,tropical:!1,ship:!1},dayAbout:{h:-7,f:14},currentDateTimeZ:void 0,currentTimestamp:void 0,currentDateTime:void 0,currentRealTime:void 0,minTimestamp:void 0,maxTimestamp:void 0,animation:void 0,startAnimate:0,step:0,frequency:1e3,paused:!0,intervalHour:3,intervalOptions:[3,6,12,24],showTimezone:!1,timeZone:localStorage.getItem("idm-timeZone-gl4")?Number(localStorage.getItem("idm-timeZone-gl4")):S().utcOffset()/60,offsets:[-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12],source:localStorage.getItem("forecastModelCacheGL4")==="undefined"?"ECMWF":localStorage.getItem("forecastModelCacheGL4"),gifEnabled:!1,frameCount:0}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10})},immediate:!0},source:{handler(t,e){t&&t!==e&&(this.$emit("forecastModel",t),localStorage.setItem("forecastModelCacheGL4",t))},immediate:!0},step:{handler(t,e){if(!isNaN(t)&&!isNaN(e)&&t!==e){const a=t-e;let r=this.currentTimestamp;r=r+a*this.intervalHour*3600*1e3,r<=this.minTimestamp||r>=this.maxTimestamp?this.paused?this.currentTimestamp=a<0?this.minTimestamp:this.maxTimestamp:this.handleReset():this.currentTimestamp=r}}},currentTimestamp:{handler(){this.currentDateTimeZ=S(this.currentTimestamp).utc().format("yyyy-MM-DD HH:00[Z]"),this.$emit("realTime",this.currentDateTimeZ),this.currentDateTime=`${S.tz(this.currentTimestamp,this.timeZoneName).clone().format("yyyy-MM-DD : HH:00")}`},immediate:!0},timeZone:{handler(t,e){t!==e&&(this.$emit("timeZone",this.timeZone),localStorage.setItem("idm-timeZone-gl4",this.timeZone),this.showTimezone=!1)},immediate:!0},show:{handler(){var t;Object.values(this.show).includes(!0)||(t=this.$refs.dateTimePicker)==null||t.handleCancelDate()},deep:!0},gifEnabled:{handler(t,e){t||this.handlePause()},immediate:!0}},mounted(){this.handleReset()},methods:{handleReset(){var t;this.handlePause(),this.startAnimate=0,(t=this.$refs.dateTimePicker)==null||t.handleReset()},changeDayAbout(t,e){this.dayAbout={h:t??-7,f:e??14}},handleToggle(t,e){this.show[t]=e},handleBackward(){this.handlePause(),this.step-=1},handleForward(){this.handlePause(),this.step+=1},handlePlay(){this.paused=!1,this.step=0,this.animateSpeeds()},async handlePause(){this.animation&&cancelAnimationFrame(this.animation),this.paused=!0},animateSpeeds(t){const e=t-this.startAnimate;this.step=Math.floor(e/this.frequency),this.animation=requestAnimationFrame(this.animateSpeeds)},handleClickFastWeather(t){this.$parent.$refs.idmWeatherLayers.handleFastWeatherToggle(t)},handleClickFastMore(){this.$parent.$refs.idmWeatherLayers.handleMenuToggle()}}},kf={class:"idm-bottom-bar-gl4"},_f={class:"date-box d-flex ga-2 mr-2"},Lf={class:"play-btns-box d-flex justify-center align-center cursor-pointer ga-1"},zf={class:"fast-weathers-box d-flex justify-center align-center ga-2 cursor-pointer"},Cf={class:"model-box d-flex justify-center align-center ga-2 my-2"},vf={key:0,class:"list d-flex flex-wrap pa-2 rounded ga-2"},Sf=["onClick"],Nf={class:"btn-box d-flex justify-start align-center rounded ga-2 py-1 px-3"},Vf={class:"text-body-1"};function Pf(t,e,a,r,i,l){const n=o.resolveComponent("IdmCapture"),c=o.resolveComponent("DateTimePicker"),s=o.resolveComponent("VListItemTitle"),d=o.resolveComponent("VListItem"),m=o.resolveComponent("VList"),p=o.resolveComponent("VMenu"),g=o.resolveComponent("VBtn"),y=o.resolveComponent("VDivider"),u=o.resolveComponent("VTooltip");return o.openBlock(),o.createElementBlock("div",kf,[o.createVNode(n,o.mergeProps({ref:"capture","is-playing":!i.paused,enabled:i.gifEnabled,frequency:i.frequency,"current-timestamp":i.currentTimestamp},t.$attrs,{onCloseRecord:e[0]||(e[0]=h=>{i.gifEnabled=!1,i.paused=!0}),onFrameCount:e[1]||(e[1]=h=>i.frameCount=h)}),null,16,["is-playing","enabled","frequency","current-timestamp"]),o.createElementVNode("div",{class:"timeline-box px-2 d-flex justify-start align-center rounded",style:o.normalizeStyle({right:i.right+146+"px",bottom:Object.values(i.show).includes(!0)?"10px":"-100px"})},[o.createElementVNode("div",_f,[o.createVNode(c,o.mergeProps({ref:"dateTimePicker","date-time":i.currentDateTimeZ,"time-zone":i.timeZone,"day-about":i.dayAbout,"interval-hour":i.intervalHour,width:230},t.$attrs,{onCurrentTimestamp:e[2]||(e[2]=h=>i.currentTimestamp=h),onCurrentRealTime:e[3]||(e[3]=h=>i.currentRealTime=h),onMinTimestamp:e[4]||(e[4]=h=>i.minTimestamp=h),onMaxTimestamp:e[5]||(e[5]=h=>i.maxTimestamp=h)}),null,16,["date-time","time-zone","day-about","interval-hour"]),o.createVNode(g,{text:"",height:"30",class:"text-none elevation-0 btn-border-1 btn-bg-1 text-body-1","min-width":"30"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(i.intervalHour)+" h ",1),o.createVNode(p,{activator:"parent"},{default:o.withCtx(()=>[o.createVNode(m,{class:"pa-1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.intervalOptions,(h,f)=>(o.openBlock(),o.createBlock(d,{key:f,value:h,variant:i.intervalHour===h?"tonal":"text",color:"primary",rounded:"",active:i.intervalHour===h,height:"30","min-height":"30","min-width":"30",class:"pa-0 text-center text-body-1"},{default:o.withCtx(()=>[o.createVNode(s,{onClick:k=>i.intervalHour=h},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(h)+"h",1)]),_:2},1032,["onClick"])]),_:2},1032,["value","variant","active"]))),128))]),_:1})]),_:1})]),_:1})]),o.createVNode(y,{vertical:"",class:"mx-2 my-3",style:{height:"16px"}}),o.createElementVNode("div",Lf,[o.createVNode(u,{text:i.gifEnabled?t.$t("actions.stop"):t.$t("actions.record"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[i.gifEnabled?(o.openBlock(),o.createBlock(g,o.mergeProps({key:1,disabled:i.frameCount<1},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:e[7]||(e[7]=f=>i.gifEnabled=!i.gifEnabled)}),{default:o.withCtx(()=>e[15]||(e[15]=[o.createElementVNode("i",{class:"iconfont icon-stop-record text-danger"},null,-1)])),_:2,__:[15]},1040,["disabled"])):(o.openBlock(),o.createBlock(g,o.mergeProps({key:0},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:e[6]||(e[6]=f=>i.gifEnabled=!i.gifEnabled)}),{default:o.withCtx(()=>e[14]||(e[14]=[o.createElementVNode("i",{class:"iconfont icon-record"},null,-1)])),_:2,__:[14]},1040))]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.reset"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handleReset}),{default:o.withCtx(()=>e[16]||(e[16]=[o.createElementVNode("i",{class:"iconfont icon-Reset"},null,-1)])),_:2,__:[16]},1040,["onClick"])]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.backward"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handleBackward}),{default:o.withCtx(()=>e[17]||(e[17]=[o.createElementVNode("i",{class:"iconfont icon-Backward"},null,-1)])),_:2,__:[17]},1040,["onClick"])]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.play"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[i.paused?(o.openBlock(),o.createBlock(g,o.mergeProps({key:0},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handlePlay}),{default:o.withCtx(()=>e[18]||(e[18]=[o.createElementVNode("i",{class:"iconfont icon-Play"},null,-1)])),_:2,__:[18]},1040,["onClick"])):o.createCommentVNode("",!0)]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.pause"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[i.paused?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(g,o.mergeProps({key:0},h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handlePause}),{default:o.withCtx(()=>e[19]||(e[19]=[o.createElementVNode("i",{class:"iconfont icon-Pause"},null,-1)])),_:2,__:[19]},1040,["onClick"]))]),_:1},8,["text"]),o.createVNode(u,{text:t.$t("actions.forward"),location:"top",interactive:!0,"open-on-click":!1},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{icon:"",size:"small",density:"comfortable",variant:"text",onClick:l.handleForward}),{default:o.withCtx(()=>e[20]||(e[20]=[o.createElementVNode("i",{class:"iconfont icon-Forward"},null,-1)])),_:2,__:[20]},1040,["onClick"])]),_:1},8,["text"])]),o.createVNode(y,{vertical:"",class:"mx-2 my-3",style:{height:"16px"}}),o.createElementVNode("div",zf,[o.createVNode(u,{text:t.$t("weather.windBarbs"),location:"top"},{activator:o.withCtx(({props:h})=>{var f,k;return[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",color:(f=a.weatherCheckList)!=null&&f.includes("wind")?"primary":"",variant:(k=a.weatherCheckList)!=null&&k.includes("wind")?"elevated":"text",height:"24",width:"24","min-width":"24",onClick:e[8]||(e[8]=w=>l.handleClickFastWeather("wind"))}),{default:o.withCtx(()=>e[21]||(e[21]=[o.createElementVNode("i",{class:"iconfont icon-a-WindLevel"},null,-1)])),_:2,__:[21]},1040,["color","variant"])]}),_:1},8,["text"]),o.createVNode(u,{text:t.$t("weather.sigWaveHeight"),location:"top"},{activator:o.withCtx(({props:h})=>{var f,k;return[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",color:(f=a.weatherCheckList)!=null&&f.includes("sig-wave-height")?"primary":"",variant:(k=a.weatherCheckList)!=null&&k.includes("sig-wave-height")?"elevated":"text",height:"24",width:"24","min-width":"24",onClick:e[9]||(e[9]=w=>l.handleClickFastWeather("sig-wave-height"))}),{default:o.withCtx(()=>[o.createElementVNode("i",o.mergeProps(h,{class:"iconfont icon-a-WaveHeight"}),null,16)]),_:2},1040,["color","variant"])]}),_:1},8,["text"]),o.createVNode(u,{text:t.$t("weather.currentDirection"),location:"top"},{activator:o.withCtx(({props:h})=>{var f,k;return[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",color:(f=a.weatherCheckList)!=null&&f.includes("current-direction")?"primary":"",variant:(k=a.weatherCheckList)!=null&&k.includes("current-direction")?"elevated":"text",height:"24",width:"24","min-width":"24",onClick:e[10]||(e[10]=w=>l.handleClickFastWeather("current-direction"))}),{default:o.withCtx(()=>[o.createElementVNode("i",o.mergeProps(h,{class:"iconfont icon-Current"}),null,16)]),_:2},1040,["color","variant"])]}),_:1},8,["text"]),o.createVNode(u,{text:t.$t("weather.weatherLayers"),location:"top"},{activator:o.withCtx(({props:h})=>[o.createVNode(g,o.mergeProps(h,{class:"pa-1 d-flex",variant:"text",height:"24",width:"24","min-width":"24",onClick:l.handleClickFastMore}),{default:o.withCtx(()=>[o.createElementVNode("i",o.mergeProps(h,{class:"iconfont icon-dots-align"}),null,16)]),_:2},1040,["onClick"])]),_:1},8,["text"])]),o.createVNode(y,{vertical:"",class:"mx-2 mr-3 my-3",style:{height:"16px"}}),o.createElementVNode("div",Cf,[o.createVNode(g,{text:"",height:"30",class:"px-2 elevation-0 text-body-1 btn-border-2 btn-bg-2",color:i.source==="GFS"?"primary":"",onClick:e[11]||(e[11]=h=>i.source="GFS")},{default:o.withCtx(()=>e[22]||(e[22]=[o.createTextVNode(" NOAA ",-1)])),_:1,__:[22]},8,["color"]),o.createVNode(g,{text:"",height:"30",class:"px-2 elevation-0 text-body-1 btn-border-2 btn-bg-2",color:i.source==="ECMWF"?"primary":"",onClick:e[12]||(e[12]=h=>i.source="ECMWF")},{default:o.withCtx(()=>e[23]||(e[23]=[o.createTextVNode(" ECMWF ",-1)])),_:1,__:[23]},8,["color"])])],4),o.createElementVNode("div",{class:"timezone-box d-flex flex-column justify-space-between align-end",style:o.normalizeStyle({right:i.right+"px"})},[i.showTimezone?(o.openBlock(),o.createElementBlock("div",vf,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.offsets,h=>(o.openBlock(),o.createElementBlock("div",{key:h,class:"item rounded text-body-2 hover-active",onClick:f=>i.timeZone=h},o.toDisplayString(h<0?h:"+"+h),9,Sf))),128))])):o.createCommentVNode("",!0),o.createElementVNode("div",Nf,[o.createVNode(g,{text:"",variant:"flat",height:"28",class:"pa-1 text-body-1",color:"primary",onClick:e[13]||(e[13]=h=>i.showTimezone=!i.showTimezone)},{default:o.withCtx(()=>[o.createTextVNode(" UTC "+o.toDisplayString(i.timeZone<0?i.timeZone:"+"+i.timeZone),1)]),_:1}),o.createElementVNode("span",Vf,o.toDisplayString(i.currentRealTime),1)])],4)])}const Mf=X(xf,[["render",Pf]]),Xy="",Tf={name:"IdmTimePlayer",components:{DateTimePicker:qe},props:{menuToggle:{type:Object,default:{}},weatherCheckList:{type:Array},playerBottom:{type:Number,default:30}},emits:["realTime","timeZone"],data(){return{right:10,show:{weather:!1,spot:!1,tropical:!1,ship:!1},dayAbout:{h:-7,f:14},currentDateTimeZ:void 0,currentTimestamp:void 0,currentDateTime:void 0,currentRealTime:void 0,minTimestamp:void 0,maxTimestamp:void 0,animation:void 0,startAnimate:0,step:0,frequency:1e3,paused:!0,intervalHour:3,intervalOptions:[3,6,12,24],showTimezone:!1,timeZone:S().utcOffset()/60,offsets:[-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12]}},watch:{step:{handler(t,e){if(!isNaN(t)&&!isNaN(e)&&t!==e){const a=t-e;let r=this.currentTimestamp;r=r+a*this.intervalHour*3600*1e3,r<=this.minTimestamp||r>=this.maxTimestamp?this.paused?this.currentTimestamp=a<0?this.minTimestamp:this.maxTimestamp:this.handleReset():this.currentTimestamp=r}}},currentTimestamp:{handler(){this.currentDateTimeZ=S(this.currentTimestamp).utc().format("yyyy-MM-DD HH:00[Z]"),this.$emit("realTime",this.currentDateTimeZ),this.currentDateTime=`${S.tz(this.currentTimestamp,this.timeZoneName).clone().format("yyyy-MM-DD : HH:00")}`},immediate:!0},timeZone:{handler(t,e){t!==e&&(this.$emit("timeZone",this.timeZone),this.showTimezone=!1)},immediate:!0},show:{handler(){var t;Object.values(this.show).includes(!0)||(t=this.$refs.dateTimePicker)==null||t.handleCancelDate()},deep:!0}},mounted(){this.handleReset()},methods:{handleReset(){var t;this.handlePause(),this.startAnimate=0,(t=this.$refs.dateTimePicker)==null||t.handleReset()},changeDayAbout(t,e){this.dayAbout={h:t??-7,f:e??14}},handleToggle(t,e){this.show[t]=e},handleBackward(){this.handlePause(),this.step-=1},handleForward(){this.handlePause(),this.step+=1},handlePlay(){this.paused=!1,this.step=0,this.animateSpeeds()},handlePause(){this.animation&&cancelAnimationFrame(this.animation),this.paused=!0},animateSpeeds(t){const e=t-this.startAnimate;this.step=Math.floor(e/this.frequency),this.animation=requestAnimationFrame(this.animateSpeeds)}}},Ef={class:"w-100 timeline-box d-flex justify-space-around align-center rounded px-2"};function Df(t,e,a,r,i,l){const n=o.resolveComponent("VBtn"),c=o.resolveComponent("DateTimePicker");return o.openBlock(),o.createElementBlock("div",{class:"idm-time-player-gl4 d-flex justify-center align-center",style:o.normalizeStyle({bottom:Object.values(i.show).includes(!0)?a.playerBottom+"px":"-100px"})},[o.createElementVNode("div",Ef,[o.createVNode(n,{size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handleReset},{default:o.withCtx(()=>e[4]||(e[4]=[o.createElementVNode("i",{class:"iconfont icon-Reset"},null,-1)])),_:1,__:[4]},8,["onClick"]),o.createVNode(n,{size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handleBackward},{default:o.withCtx(()=>e[5]||(e[5]=[o.createElementVNode("i",{class:"iconfont icon-Backward"},null,-1)])),_:1,__:[5]},8,["onClick"]),o.createVNode(c,o.mergeProps({ref:"dateTimePicker","date-time":i.currentDateTimeZ,"time-zone":i.timeZone,"day-about":i.dayAbout,"interval-hour":i.intervalHour,height:32},t.$attrs,{onCurrentTimestamp:e[0]||(e[0]=s=>i.currentTimestamp=s),onCurrentRealTime:e[1]||(e[1]=s=>i.currentRealTime=s),onMinTimestamp:e[2]||(e[2]=s=>i.minTimestamp=s),onMaxTimestamp:e[3]||(e[3]=s=>i.maxTimestamp=s)}),null,16,["date-time","time-zone","day-about","interval-hour"]),o.createVNode(n,{size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handleForward},{default:o.withCtx(()=>e[6]||(e[6]=[o.createElementVNode("i",{class:"iconfont icon-Forward"},null,-1)])),_:1,__:[6]},8,["onClick"]),i.paused?(o.openBlock(),o.createBlock(n,{key:0,size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handlePlay},{default:o.withCtx(()=>e[7]||(e[7]=[o.createElementVNode("i",{class:"iconfont icon-Play"},null,-1)])),_:1,__:[7]},8,["onClick"])):(o.openBlock(),o.createBlock(n,{key:1,size:"small",density:"compact",class:"px-1 bg-background btn-border-1",width:"30","min-width":"30",height:"30",onClick:l.handlePause},{default:o.withCtx(()=>e[8]||(e[8]=[o.createElementVNode("i",{class:"iconfont icon-Pause"},null,-1)])),_:1,__:[8]},8,["onClick"]))])],4)}const la=X(Tf,[["render",Df]]),Rf={name:"IdmGL4",components:{IdmOtherLayer:Vs,IdmWeatherLayer:wm,IdmTropicals:jo,IdmMeasure:gp,IdmSpot:mp,IdmMarker:Fg,IdmBottomBar:Mf,IdmTimePlayer:la},props:{map:{type:Object},token:{type:String},beforeLayer:{type:String,default:""},forecastModel:{type:String},mapFeather:{type:String},simple:{type:Boolean,default:!1}},emits:[],data(){return{weatherCheckList:[],otherCheckList:[],layerVersion:0,autoActive:!0,tropicals:void 0,playerBottom:30,gateway:"https://cbe.ormwx.com",assistGateway:["https://assist0.ormwx.com","https://assist1.ormwx.com"],defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNtZWliMDg2dTAwMDdmdnV4ZHRhcmFoODIiLCJyb2xlIjoyLCJuYW1lIjoiY2hlbmhlbmdAb3Jtd3guY29tIiwicGxhdElkIjoiZ2QwbXQxZCIsImNvbXBhbnkiOnsiaWQiOm51bGwsImNoaWxkcmVuIjpbXX0sImlhdCI6MTc1NTg1NzQ0NiwiZXhwIjozOTYzMzc3NDQ2fQ.nll8PA8tZEFONV2ydX4Rx_Xya7nMzJQ6vPSL_Sg2dVU"}},watch:{map:{handler(){this.map&&(this.layerVersion=Math.random())},immediate:!0},layerVersion:{handler(){if(this.map){const t=this.autoActive&&this.weatherCheckList.some(r=>["wind-particle","sig-wave","swell","current-particle","water-temp","temp","sig-wave-height"].some(i=>i===r)),e=this.otherCheckList.some(r=>["navareas","eca-zones","load-lines","voluntary-reporting-area","war-zones","special-area","ice-areas"].some(i=>i===r)),a=t||e;this.mapFeather==="nautical"?t?(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","visible"),this.map.getLayer("i4")&&this.map.setLayoutProperty("i4","visibility","none"),this.map.getLayer("hi")&&this.map.setLayoutProperty("hi","visibility","none"),this.map.getLayer("admin-0-boundary-bg")&&this.map.setLayoutProperty("admin-0-boundary-bg","visibility","visible"),this.map.getLayer("admin-0-boundary")&&this.map.setLayoutProperty("admin-0-boundary","visibility","visible"),this.map.getLayer("admin-0-boundary-disputed")&&this.map.setLayoutProperty("admin-0-boundary-disputed","visibility","visible"),this.map.getLayer("country-label")&&this.map.setLayoutProperty("country-label","visibility","visible"),this.map.getLayer("continent-label")&&this.map.setLayoutProperty("continent-label","visibility","visible")):(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","none"),this.map.getLayer("i4")&&this.map.setLayoutProperty("i4","visibility","visible"),this.map.getLayer("hi")&&this.map.setLayoutProperty("hi","visibility","visible"),this.map.getLayer("admin-0-boundary-bg")&&this.map.setLayoutProperty("admin-0-boundary-bg","visibility","none"),this.map.getLayer("admin-0-boundary")&&this.map.setLayoutProperty("admin-0-boundary","visibility","none"),this.map.getLayer("admin-0-boundary-disputed")&&this.map.setLayoutProperty("admin-0-boundary-disputed","visibility","none"),this.map.getLayer("country-label")&&this.map.setLayoutProperty("country-label","visibility","none"),this.map.getLayer("continent-label")&&this.map.setLayoutProperty("continent-label","visibility","none")):this.mapFeather==="satellite"?t?(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","visible"),this.map.getLayer("water-outline")&&this.map.setLayoutProperty("water-outline","visibility","visible"),this.map.getLayer("ramp-color-layer")&&this.map.moveLayer("ramp-color-layer","country-boundaries"),this.map.getLayer("particle-layer")&&this.map.moveLayer("particle-layer","country-boundaries")):(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","none"),this.map.getLayer("water-outline")&&this.map.setLayoutProperty("water-outline","visibility","none")):a?(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","visible"),this.map.getLayer("water-outline2")&&this.map.setLayoutProperty("water-outline2","visibility","visible"),t&&(this.map.getLayer("ramp-color-layer")&&this.map.moveLayer("ramp-color-layer","empty-layer-0"),this.map.getLayer("particle-layer")&&this.map.moveLayer("particle-layer","empty-layer-0"),setTimeout(()=>{this.map.getLayer("sig-wave-height-label-layer")&&this.map.moveLayer("sig-wave-height-label-layer","empty-layer-0"),this.map.getLayer("sig-wave-height-layer")&&this.map.moveLayer("sig-wave-height-layer","empty-layer-0")},1e3))):(this.map.getLayer("country-boundaries")&&this.map.setLayoutProperty("country-boundaries","visibility","none"),this.map.getLayer("water-outline2")&&this.map.setLayoutProperty("water-outline2","visibility","none"))}},immediate:!0}},methods:{}},Bf={id:"map-gl4-home",ref:"mapHomeGl4",class:"map-gl4-home"};function If(t,e,a,r,i,l){const n=o.resolveComponent("IdmOtherLayer"),c=o.resolveComponent("IdmWeatherLayer"),s=o.resolveComponent("IdmTropicals"),d=o.resolveComponent("IdmSpot"),m=o.resolveComponent("IdmMeasure"),p=o.resolveComponent("IdmMarker"),g=o.resolveComponent("IdmBottomBar"),y=o.resolveComponent("IdmTimePlayer");return o.openBlock(),o.createElementBlock("div",Bf,[o.createVNode(n,o.mergeProps({ref:"idmOtherLayers",simple:a.simple,token:a.token,"default-meteo-token":i.defaultMeteoToken,map:a.map,"before-layer":"empty-layer-1",gateway:i.gateway,"assist-gateway":i.assistGateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs,{onOtherCheckList:e[0]||(e[0]=u=>{i.otherCheckList=u,i.layerVersion=i.layerVersion+1})}),null,16,["simple","token","default-meteo-token","map","gateway","assist-gateway","forecast-model","map-feather"]),o.createVNode(c,o.mergeProps({ref:"idmWeatherLayers",simple:a.simple,map:a.map,"before-layer":"empty-layer-2",token:a.token,"default-meteo-token":i.defaultMeteoToken,gateway:i.gateway,"assist-gateway":i.assistGateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs,{onAutoActive:e[1]||(e[1]=u=>{i.autoActive=u,i.layerVersion=i.layerVersion+1}),onWeatherCheckList:e[2]||(e[2]=u=>{i.weatherCheckList=u,i.layerVersion=i.layerVersion+1})}),null,16,["simple","map","token","default-meteo-token","gateway","assist-gateway","forecast-model","map-feather"]),o.createVNode(s,o.mergeProps({ref:"idmTropicals",simple:a.simple,map:a.map,token:a.token,"default-meteo-token":i.defaultMeteoToken,tropicals:i.tropicals,"before-layer":"empty-layer-4",gateway:i.gateway,"assist-gateway":i.assistGateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs),null,16,["simple","map","token","default-meteo-token","tropicals","gateway","assist-gateway","forecast-model","map-feather"]),o.createVNode(d,o.mergeProps({ref:"idmSpot",simple:a.simple,map:a.map,token:a.token,"default-meteo-token":i.defaultMeteoToken,gateway:i.gateway,"forecast-model":a.forecastModel,"map-feather":a.mapFeather},t.$attrs),null,16,["simple","map","token","default-meteo-token","gateway","forecast-model","map-feather"]),o.createVNode(m,o.mergeProps({simple:a.simple,map:a.map,"map-feather":a.mapFeather},t.$attrs),null,16,["simple","map","map-feather"]),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(p,o.mergeProps({key:0,simple:a.simple,map:a.map,"map-feather":a.mapFeather,gateway:i.gateway,"default-meteo-token":i.defaultMeteoToken,token:a.token},t.$attrs),null,16,["simple","map","map-feather","gateway","default-meteo-token","token"])),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(g,o.mergeProps({key:1,ref:"idmBottomBar","forecast-model":a.forecastModel,"weather-check-list":i.weatherCheckList,"map-feather":a.mapFeather,gateway:i.gateway,"default-meteo-token":i.defaultMeteoToken,token:a.token},t.$attrs),null,16,["forecast-model","weather-check-list","map-feather","gateway","default-meteo-token","token"])),a.simple?(o.openBlock(),o.createBlock(y,o.mergeProps({key:2,ref:"idmBottomBar","player-bottom":i.playerBottom,"bg-class":a.simple?"bg-background":"","weather-check-list":i.weatherCheckList,"map-feather":a.mapFeather,disabled:!0},t.$attrs),null,16,["player-bottom","bg-class","weather-check-list","map-feather"])):o.createCommentVNode("",!0)],512)}const Xa=X(Rf,[["render",If]]),Yy="";class Ya{constructor(e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNsYmY5M3I0YTAwMDE4Ymx0NWJ4emFwNWMiLCJyb2xlIjoyMDQ3LCJpYXQiOjE2NzA1NTM0NzAsImV4cCI6Mzg3ODA3MzQ3MH0.MxTv0yLGarZCtOSCZfJHMqrXNMNN0-OL4gBGKGcYcc8"){de(this,"originStyle");de(this,"mapboxStyle");de(this,"i4");de(this,"hi");de(this,"td");de(this,"windy");var a,r,i,l,n,c,s,d,m,p,g,y,u,h,f,k,w,b,x,C,L,z,v,M,T,E,I,Z,Y,$,ae,V,G,W,U,A,B,j,N,q,re,he,ge,ee,se,pe,xe,O,te,Me,Ce,be,ke,J,we,ie,ce,Se,Ee,Te,F,me,_e,Ne,Ve,H,ve,Q,We,Oe,Ze,Le,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,kt,_t,Lt,zt,Ct,vt,St,Nt,Vt,Pt,Mt,Tt,Et,Dt,Rt,Bt,It,At,Ft,Gt,Wt,Ot,Zt,jt,Ht,Xt,Yt,Ut,$t,Jt,Kt,qt,Qt,eo,to,oo,ao,io,ro,lo,no,so,co,mo,ho,po,go,uo,fo,yo,bo,wo,xo,ko,_o,Lo,zo,Co,vo,So,No,Vo,oi,ai,ii,ri,li,ni,si,ci,mi,di,hi,pi,gi,ui,fi,yi,bi,wi,xi,ki,_i,Li,zi,Ci,vi,Si,Ni,Vi,Pi,Mi,Ti,Ei,Di,Ri,Bi,Ii,Ai,Fi,Gi,Wi,Oi,Zi,ji,Hi,Xi,Yi,Ui,$i,Ji,Ki,qi,Qi,er,tr,or,ar,ir,rr,lr,nr,sr,cr,mr,dr,hr,pr;this.i4={source:{type:"raster",tiles:["https://ossimg.ormwx.com/nautical/{z}/{x}/{y}.png"],tileSize:256},layer:{id:"i4",type:"raster",source:"i4",minzoom:1,maxzoom:12,layout:{visibility:"visible"}}},this.hi={source:{type:"raster",tiles:[`https://assist0.ormwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${e}`,`https://assist1.ormwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${e}`],tileSize:256},layer:{id:"hi",type:"raster",source:"hi",minZoom:1,maxZoom:12,layout:{visibility:"visible"}}},this.originStyle={light:{version:8,name:"light",metadata:{"mapbox:print":{width:8.5,height:11,units:"in",format:"png",resolution:300},"mapbox:type":"default","mapbox:trackposition":!0,"mapbox:autocomposite":!0,"mapbox:sdk-support":{android:"11.0.0",ios:"11.0.0",js:"3.0.0"},"mapbox:origin":"outdoors-v12","mapbox:groups":{"Terrain, terrain-labels":{name:"Terrain, terrain-labels",collapsed:!0},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!0},"Land & water, built":{name:"Land & water, built",collapsed:!0},"Terrain, surface":{name:"Terrain, surface",collapsed:!0},"Land & water, land":{name:"Land & water, land",collapsed:!1},"Natural features, natural-labels":{name:"Natural features, natural-labels",collapsed:!0},e9bb8e77353431519f7918998e9079d9:{name:"Group",collapsed:!1},"Walking, cycling, etc., barriers-bridges":{name:"Walking, cycling, etc., barriers-bridges",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1},"Transit, ferries":{name:"Transit, ferries",collapsed:!0},"Transit, elevated":{name:"Transit, elevated",collapsed:!0},"Walking, cycling, etc., tunnels":{name:"Walking, cycling, etc., tunnels",collapsed:!0},"Terrain, land":{name:"Terrain, land",collapsed:!0},"Road network, tunnels-case":{name:"Road network, tunnels-case",collapsed:!0},"Walking, cycling, etc., walking-cycling-labels":{name:"Walking, cycling, etc., walking-cycling-labels",collapsed:!0},"Walking, cycling, etc., surface":{name:"Walking, cycling, etc., surface",collapsed:!0},"Road network, surface-icons":{name:"Road network, surface-icons",collapsed:!0},"Land & water, water":{name:"Land & water, water",collapsed:!1}}},center:[104.01743114258029,17.078999978347557],zoom:1.9133216316430233,bearing:0,pitch:0,lights:[],fog:{range:[.5,10]},sources:{composite:{url:"mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0,neatchenheng.9uwc9x7l,neatchenheng.7y3kpvvv,neatchenheng.dlkkohie",type:"vector"},i4:this.i4.source},sprite:"mapbox://sprites/neatchenheng/cmd894dwn036m01rf7anc0k0d/bph0p8ithotzwly53az7lwdmv",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},layers:[{id:"land",type:"background",layout:{},paint:{"background-color":"#e9ebed"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},maxzoom:12,type:"fill",source:"composite",id:"landcover",paint:{"fill-color":["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","crop","hsla(68, 55%, 70%, 0.6)","grass","hsla(98, 50%, 74%, 0.6)","snow","hsl(205, 45%, 95%)","hsl(98, 48%, 67%)"],"fill-opacity":["interpolate",["exponential",1.5],["zoom"],8,.8,12,0],"fill-antialias":!1},"source-layer":"landcover"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"fill",source:"composite",id:"national-park",paint:{"fill-color":"hsl(98, 38%, 68%)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.6,12,.2]},"source-layer":"landuse_overlay"},{minzoom:9,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"line",source:"composite",id:"national-park_tint-band",paint:{"line-color":"hsl(98, 38%, 68%)","line-width":["interpolate",["exponential",1.5],["zoom"],9,1,14,8],"line-blur":["interpolate",["exponential",1.5],["zoom"],9,1,14,8]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["all",[">=",["to-number",["get","sizerank"]],0],["match",["get","class"],["agriculture","wood","grass","scrub","glacier","pitch","sand"],["step",["zoom"],!1,11,!0],"residential",["step",["zoom"],!0,10,!1],["park","airport"],["step",["zoom"],!1,8,["case",["==",["get","sizerank"],1],!0,!1],10,!0],["facility","industrial"],["step",["zoom"],!1,12,!0],"rock",["step",["zoom"],!1,11,!0],"cemetery",["step",["zoom"],!1,11,!0],"school",["step",["zoom"],!1,11,!0],"hospital",["step",["zoom"],!1,11,!0],"commercial_area",["step",["zoom"],!1,11,!0],!1],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14]],type:"fill",source:"composite",id:"landuse",paint:{"fill-color":["interpolate",["linear"],["zoom"],15,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsl(60, 0%, 85%)","school","hsl(40, 45%, 78%)","commercial_area","hsl(55, 45%, 85%)","residential","hsl(60, 7%, 87%)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"],16,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsla(60, 0%, 85%, 0.5)","school","hsl(40, 45%, 78%)","commercial_area","hsla(55, 45%, 85%, 0.5)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"]],"fill-opacity":["interpolate",["linear"],["zoom"],8,["match",["get","class"],"residential",.8,.2],10,["match",["get","class"],"residential",0,1]],"fill-antialias":!1},"source-layer":"landuse"},{minzoom:15,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"pitch"],type:"line",source:"composite",id:"pitch-outline",paint:{"line-color":"hsl(0, 0%, 69%)"},"source-layer":"landuse"},{id:"waterway-shadow",type:"line",source:"composite","source-layer":"waterway",minzoom:10,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"],visibility:"none"},paint:{"line-color":"hsl(224, 79%, 69%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"line-translate-anchor":"viewport","line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",minzoom:10,layout:{visibility:"none"},paint:{"fill-color":"hsl(224, 79%, 69%)","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-translate-anchor":"viewport"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"]},paint:{"line-color":"hsl(198, 100%, 37%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"hsl(215, 92%, 81%)"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},maxzoom:8,type:"fill",source:"composite",id:"water-depth",paint:{"fill-antialias":!1,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0.35)",200,"hsla(205, 75%, 63%, 0.35)",7e3,"hsla(205, 75%, 56%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0)",200,"hsla(205, 75%, 63%, 0)",7e3,"hsla(205, 75%, 53%, 0)"]]},"source-layer":"depth"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,.25,10.5,.15]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland-pattern",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,0,10.5,1],"fill-pattern":"wetland","fill-translate-anchor":"viewport"},"source-layer":"landuse_overlay"},{minzoom:13,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"Polygon"]],type:"fill",source:"composite",id:"land-structure-polygon",paint:{"fill-color":"hsl(0, 0%, 69%)"},"source-layer":"structure"},{minzoom:13,layout:{"line-cap":"square",visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"LineString"]],type:"line",source:"composite",id:"land-structure-line",paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(60, 20%, 85%)"},"source-layer":"structure"},{id:"empty-layer-0",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-1",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"country-boundaries",type:"fill",source:"composite","source-layer":"country_boundaries",paint:{"fill-color":"rgb(200, 200, 200)"},layout:{visibility:"none"}},{id:"empty-layer-2",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-3",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-4",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"water-outline2",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgb(150, 150, 150)"},layout:{visibility:"none"},source:"composite","source-layer":"water"},{id:"water-outline",type:"line",paint:{"line-color":"hsl(0, 0%, 70%)","line-width":["interpolate",["linear"],["zoom"],0,1.5,4,1]},source:"composite","source-layer":"water"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-bg",paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"rgb(173, 169, 170)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary",paint:{"line-color":"rgb(143, 143, 143)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-disputed",paint:{"line-color":"rgb(95, 93, 94)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]},"source-layer":"admin"},{minzoom:13,layout:{"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"waterway-label",paint:{"text-color":"hsl(205, 43%, 90%)","text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"natural-line-label",paint:{"text-halo-width":.5,"text-halo-color":"hsl(60, 17%, 84%)","text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["get","maki_beta"]],["image",["get","maki"]]],["image",["get","maki"]]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.8]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.8]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"natural-point-label",paint:{"icon-opacity":["step",["zoom"],["step",["get","sizerank"],0,5,1],17,["step",["get","sizerank"],0,13,1]],"text-halo-color":"hsl(60, 20%, 98%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"water-line-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(205, 71%, 90%)","hsl(205, 43%, 90%)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"water-point-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(205, 71%, 90%)","hsl(205, 43%, 90%)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:10,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",15,14]],visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["match",["get","class"],["settlement_subdivision","disputed_settlement_subdivision"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],3],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-subdivision-label",paint:{"text-halo-color":"hsla(60, 25%, 100%, 0.75)","text-halo-width":1,"text-color":"hsl(230, 29%, 36%)","text-halo-blur":.5},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-justify":"auto",visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-minor-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-major-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:3,layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":["DIN Pro Bold","Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"state-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-opacity":.5},"source-layer":"place_label"},{minzoom:1,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],12.100000000000001,4,9.9,5,8.8],9,["step",["get","symbolrank"],24.200000000000003,4,20.900000000000002,5,18.700000000000003]]},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"country-label",paint:{"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":"hsl(0, 0.00%, 13.70%)","text-halo-color":["interpolate",["linear"],["zoom"],2,"hsla(60, 25%, 100%, 0.75)",3,"hsl(60, 25%, 100%)"],"text-halo-width":1.25},"source-layer":"place_label"},{minzoom:.75,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:3,filter:["==",["get","class"],"continent"],type:"symbol",source:"composite",id:"continent-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":["interpolate",["linear"],["zoom"],0,"hsla(60, 25%, 100%, 0.75)",3,"hsl(60, 25%, 100%)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,.8,1.5,.5,2.5,0]},"source-layer":"natural_label"},{id:"world-12nm-v4-20231025",minzoom:3,type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]},source:"composite","source-layer":"eez_12nm_new1-6jzkww",layout:{"line-join":"round",visibility:"none"}},{id:"china-taiwan",type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2]},layout:{"line-join":"round",visibility:"none"},source:"composite","source-layer":"eez-d4udtm"},{id:"ne-10m-outline",type:"line",paint:{"line-color":"hsl(172, 0%, 33%)"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",layout:{visibility:"none"}},{id:"ne-10m-label",type:"symbol",paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-halo-blur":1},layout:{"text-field":["to-string",["get","name"]],"text-size":12,visibility:"none"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"china-route-line",type:"line",paint:{"line-color":"rgba(119, 239, 157, 1)","line-width":2},source:"composite","source-layer":"china_route-bdtx5d",layout:{visibility:"none"}},{id:"china-route-fill",type:"fill",paint:{"fill-color":"rgba(119, 239, 157, 1)","fill-opacity":.2},source:"composite","source-layer":"china_route-bdtx5d",filter:["match",["geometry-type"],["Polygon"],!0,!1],layout:{visibility:"none"}},{id:"china-route-label",type:"symbol",paint:{"text-color":"rgba(0, 0, 0, 1)"},source:"composite","source-layer":"china_route-bdtx5d",layout:{"text-field":["to-string",["get","route_name"]],"text-size":10,"text-offset":[0,1.6],visibility:"none"}},{id:"ice-area-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(199, 239, 236, 0.7)"},source:"composite","source-layer":"ICE_AREA-6oqazd",layout:{visibility:"none"}},{id:"ice-area-line",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgba(199, 239, 236, 1)"},layout:{visibility:"none"},source:"composite","source-layer":"ICE_AREA-6oqazd"},{id:"tide-stations",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(0, 0, 0)","text-opacity":["step",["zoom"],0,4,1]},layout:{visibility:"none","text-field":["to-string",["get","Location_EN"]],"text-size":10,"icon-image":"tide","icon-size":1,"icon-offset":[0,-13],"text-offset":[0,1.6],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},source:"composite","source-layer":"tide_station_cn-8xvt91"},{id:"loadlines-label",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(0, 0, 0)"},layout:{"text-field":["to-string",["get","name"]],"text-size":10,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,1]},source:"composite","source-layer":"loadlines-b6mgr8"},{id:"loadlines-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":["match",["get","val"],["LLGreen"],"rgba(164, 214, 217, 0.6)",["LLBlue"],"rgba(53, 121, 194, 0.6)",["LLRed"],"rgba(217, 150, 151, 0.6)",["LLSUMMER"],"rgba(111, 110, 212, 0.6)","rgba(255, 255, 255, 0.6)"],"fill-outline-color":"rgba(255, 255, 255, 0.3)"},layout:{visibility:"none"},source:"composite","source-layer":"loadlines-b6mgr8"}],created:"2025-07-18T03:20:31.079Z",modified:"2025-07-31T03:57:21.238Z",id:"cmd894dwn036m01rf7anc0k0d",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1},dark:{version:8,name:"dark",metadata:{"mapbox:print":{width:8.5,height:11,units:"in",format:"png",resolution:300},"mapbox:type":"default","mapbox:trackposition":!0,"mapbox:autocomposite":!0,"mapbox:sdk-support":{android:"11.0.0",ios:"11.0.0",js:"3.0.0"},"mapbox:origin":"outdoors-v12","mapbox:groups":{"Terrain, terrain-labels":{name:"Terrain, terrain-labels",collapsed:!0},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!1},"Land & water, built":{name:"Land & water, built",collapsed:!0},"Terrain, surface":{name:"Terrain, surface",collapsed:!0},"Land & water, land":{name:"Land & water, land",collapsed:!1},"Natural features, natural-labels":{name:"Natural features, natural-labels",collapsed:!0},e9bb8e77353431519f7918998e9079d9:{name:"Group",collapsed:!1},"Walking, cycling, etc., barriers-bridges":{name:"Walking, cycling, etc., barriers-bridges",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1},"Transit, ferries":{name:"Transit, ferries",collapsed:!0},"Transit, elevated":{name:"Transit, elevated",collapsed:!0},"Walking, cycling, etc., tunnels":{name:"Walking, cycling, etc., tunnels",collapsed:!0},"Terrain, land":{name:"Terrain, land",collapsed:!0},"Road network, tunnels-case":{name:"Road network, tunnels-case",collapsed:!0},"Walking, cycling, etc., walking-cycling-labels":{name:"Walking, cycling, etc., walking-cycling-labels",collapsed:!0},"Walking, cycling, etc., surface":{name:"Walking, cycling, etc., surface",collapsed:!0},"Road network, surface-icons":{name:"Road network, surface-icons",collapsed:!0},"Land & water, water":{name:"Land & water, water",collapsed:!1}}},center:[90.22129259388525,-3.2084663486364606],zoom:1.2556266457717493,bearing:0,pitch:0,lights:[],fog:{range:[.5,10]},sources:{composite:{url:"mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0,neatchenheng.9uwc9x7l,neatchenheng.7y3kpvvv,neatchenheng.dlkkohie",type:"vector"}},sprite:"mapbox://sprites/neatchenheng/cmdqwez32005b01re2w0k3zk4/3w0qcixxrxxonxutm2qkollqi",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},layers:[{id:"land",type:"background",layout:{},paint:{"background-color":["interpolate",["linear"],["zoom"],9,"rgb(2, 43, 59)",11,"rgb(36, 36, 36)"]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},maxzoom:12,type:"fill",source:"composite",id:"landcover",paint:{"fill-color":["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","crop","hsla(68, 55%, 70%, 0.6)","grass","hsla(98, 50%, 74%, 0.6)","snow","hsl(205, 45%, 95%)","hsl(98, 48%, 67%)"],"fill-opacity":["interpolate",["exponential",1.5],["zoom"],8,.8,12,0],"fill-antialias":!1},"source-layer":"landcover"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"fill",source:"composite",id:"national-park",paint:{"fill-color":"hsl(98, 38%, 68%)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.6,12,.2]},"source-layer":"landuse_overlay"},{minzoom:9,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"national_park"],type:"line",source:"composite",id:"national-park_tint-band",paint:{"line-color":"hsl(98, 38%, 68%)","line-width":["interpolate",["exponential",1.5],["zoom"],9,1,14,8],"line-blur":["interpolate",["exponential",1.5],["zoom"],9,1,14,8]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["all",[">=",["to-number",["get","sizerank"]],0],["match",["get","class"],["agriculture","wood","grass","scrub","glacier","pitch","sand"],["step",["zoom"],!1,11,!0],"residential",["step",["zoom"],!0,10,!1],["park","airport"],["step",["zoom"],!1,8,["case",["==",["get","sizerank"],1],!0,!1],10,!0],["facility","industrial"],["step",["zoom"],!1,12,!0],"rock",["step",["zoom"],!1,11,!0],"cemetery",["step",["zoom"],!1,11,!0],"school",["step",["zoom"],!1,11,!0],"hospital",["step",["zoom"],!1,11,!0],"commercial_area",["step",["zoom"],!1,11,!0],!1],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14]],type:"fill",source:"composite",id:"landuse",paint:{"fill-color":["interpolate",["linear"],["zoom"],15,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsl(60, 0%, 85%)","school","hsl(40, 45%, 78%)","commercial_area","hsl(55, 45%, 85%)","residential","hsl(60, 7%, 87%)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"],16,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsla(60, 0%, 85%, 0.5)","school","hsl(40, 45%, 78%)","commercial_area","hsla(55, 45%, 85%, 0.5)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"]],"fill-opacity":["interpolate",["linear"],["zoom"],8,["match",["get","class"],"residential",.8,.2],10,["match",["get","class"],"residential",0,1]],"fill-antialias":!1},"source-layer":"landuse"},{minzoom:15,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},filter:["==",["get","class"],"pitch"],type:"line",source:"composite",id:"pitch-outline",paint:{"line-color":"hsl(0, 0%, 69%)"},"source-layer":"landuse"},{id:"waterway-shadow",type:"line",source:"composite","source-layer":"waterway",minzoom:10,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"],visibility:"none"},paint:{"line-color":"hsl(224, 79%, 69%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"line-translate-anchor":"viewport","line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",minzoom:10,layout:{visibility:"none"},paint:{"fill-color":"hsl(224, 79%, 69%)","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-translate-anchor":"viewport"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"],visibility:"none"},paint:{"line-color":"rgb(20, 66, 92)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{id:"water",type:"fill",source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"rgb(20, 66, 92)"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"}},{layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},maxzoom:8,type:"fill",source:"composite",id:"water-depth",paint:{"fill-antialias":!1,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0.35)",200,"hsla(205, 75%, 63%, 0.35)",7e3,"hsla(205, 75%, 56%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0)",200,"hsla(205, 75%, 63%, 0)",7e3,"hsla(205, 75%, 53%, 0)"]]},"source-layer":"depth"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,.25,10.5,.15]},"source-layer":"landuse_overlay"},{minzoom:5,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],type:"fill",source:"composite",id:"wetland-pattern",paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,0,10.5,1],"fill-pattern":"wetland","fill-translate-anchor":"viewport"},"source-layer":"landuse_overlay"},{minzoom:13,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"Polygon"]],type:"fill",source:"composite",id:"land-structure-polygon",paint:{"fill-color":"hsl(0, 0%, 69%)"},"source-layer":"structure"},{minzoom:13,layout:{"line-cap":"square",visibility:"none"},metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"LineString"]],type:"line",source:"composite",id:"land-structure-line",paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(60, 20%, 85%)"},"source-layer":"structure"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-bg",paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"rgb(0, 96, 107)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary",paint:{"line-color":"rgb(0, 96, 107)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]},"source-layer":"admin"},{minzoom:1,layout:{},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-disputed",paint:{"line-color":"rgb(0, 96, 107)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]},"source-layer":"admin"},{id:"empty-layer-0",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-1",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"country-boundaries",type:"fill",source:"composite","source-layer":"country_boundaries",paint:{"fill-color":["interpolate",["linear"],["zoom"],0,"rgb(2, 45, 62)",22,"rgb(2, 45, 62)"]},layout:{visibility:"none"}},{id:"empty-layer-2",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-3",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-4",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"water-outline",type:"line",paint:{"line-color":"rgb(0, 96, 107)","line-width":["interpolate",["linear"],["zoom"],0,1.5,4,1]},source:"composite","source-layer":"water"},{minzoom:13,layout:{"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"waterway-label",paint:{"text-color":"hsl(205, 43%, 90%)","text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"natural-line-label",paint:{"text-halo-width":.5,"text-halo-color":"hsl(60, 17%, 84%)","text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:4,layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["get","maki_beta"]],["image",["get","maki"]]],["image",["get","maki"]]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.8]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.8]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"natural-point-label",paint:{"icon-opacity":["step",["zoom"],["step",["get","sizerank"],0,5,1],17,["step",["get","sizerank"],0,13,1]],"text-halo-color":"hsl(60, 20%, 98%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],type:"symbol",source:"composite",id:"water-line-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"rgb(1, 121, 137)","rgb(1, 121, 137)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:1,layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],type:"symbol",source:"composite",id:"water-point-label",paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"rgb(3, 117, 129)","rgb(3, 117, 129)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"},"source-layer":"natural_label"},{minzoom:10,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",15,14]],visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["match",["get","class"],["settlement_subdivision","disputed_settlement_subdivision"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],3],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-subdivision-label",paint:{"text-halo-color":"hsla(60, 25%, 100%, 0.75)","text-halo-width":1,"text-color":"hsl(230, 29%, 36%)","text-halo-blur":.5},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-justify":"auto",visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-minor-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-major-label",paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:3,layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":["DIN Pro Bold","Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"state-label",paint:{"text-color":"rgb(0, 170, 189)","text-halo-color":"rgb(3, 3, 3)","text-halo-width":1,"text-opacity":.5},"source-layer":"place_label"},{minzoom:1,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],12.100000000000001,4,9.9,5,8.8],9,["step",["get","symbolrank"],24.200000000000003,4,20.900000000000002,5,18.700000000000003]]},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"country-label",paint:{"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":"rgb(2, 141, 156)","text-halo-color":["interpolate",["linear"],["zoom"],2,"rgb(252, 252, 252)",3,"rgb(250, 250, 250)"]},"source-layer":"place_label"},{minzoom:.75,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:3,filter:["==",["get","class"],"continent"],type:"symbol",source:"composite",id:"continent-label",paint:{"text-color":"rgb(0, 170, 189)","text-halo-color":["interpolate",["linear"],["zoom"],0,"rgba(0, 0, 0, 0.75)",3,"rgb(5, 5, 5)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,.8,1.5,.5,2.5,0]},"source-layer":"natural_label"},{id:"world-12nm-v4-20231025",minzoom:3,type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]},source:"composite","source-layer":"eez_12nm_new1-6jzkww",layout:{"line-join":"round",visibility:"none"}},{id:"china-taiwan",type:"line",paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2]},layout:{"line-join":"round",visibility:"none"},source:"composite","source-layer":"eez-d4udtm"},{id:"ne-10m-outline",type:"line",paint:{"line-color":"rgb(1, 119, 132)"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",layout:{visibility:"none"}},{id:"ne-10m-label",type:"symbol",paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":0,"text-halo-blur":0,"text-color":"rgb(1, 119, 132)"},layout:{"text-field":["to-string",["get","name"]],"text-size":12,visibility:"none"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"china-route-line",type:"line",paint:{"line-color":"rgba(119, 239, 157, 1)","line-width":2},source:"composite","source-layer":"china_route-bdtx5d",layout:{visibility:"none"}},{id:"china-route-fill",type:"fill",paint:{"fill-color":"rgba(119, 239, 157, 1)","fill-opacity":.2},source:"composite","source-layer":"china_route-bdtx5d",filter:["match",["geometry-type"],["Polygon"],!0,!1],layout:{visibility:"none"}},{id:"china-route-label",type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},source:"composite","source-layer":"china_route-bdtx5d",layout:{"text-field":["to-string",["get","route_name"]],"text-size":10,"text-offset":[0,1.6],visibility:"none"}},{id:"ice-area-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(199, 239, 236, 0.7)"},source:"composite","source-layer":"ICE_AREA-6oqazd",layout:{visibility:"none"}},{id:"ice-area-line",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgba(199, 239, 236, 1)"},layout:{visibility:"none"},source:"composite","source-layer":"ICE_AREA-6oqazd"},{id:"tide-stations",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(255, 255, 255)","text-opacity":["step",["zoom"],0,4,1]},layout:{visibility:"none","text-field":["to-string",["get","Location_EN"]],"text-size":10,"icon-image":"tide","icon-size":1,"icon-offset":[0,-13],"text-offset":[0,1.6],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},source:"composite","source-layer":"tide_station_cn-8xvt91"},{id:"loadlines-label",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},layout:{"text-field":["to-string",["get","name"]],"text-size":10,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,1]},source:"composite","source-layer":"loadlines-b6mgr8"},{id:"loadlines-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":["match",["get","val"],["LLGreen"],"rgba(164, 214, 217, 0.6)",["LLBlue"],"rgba(53, 121, 194, 0.6)",["LLRed"],"rgba(217, 150, 151, 0.6)",["LLSUMMER"],"rgba(111, 110, 212, 0.6)","rgba(255, 255, 255, 0.6)"],"fill-outline-color":"rgba(255, 255, 255, 0.3)"},layout:{visibility:"none"},source:"composite","source-layer":"loadlines-b6mgr8"}],created:"2025-07-31T04:32:27.422Z",modified:"2025-07-31T04:43:38.610Z",id:"cmdqwez32005b01re2w0k3zk4",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1},satellite:{version:8,name:"satellite",metadata:{"mapbox:type":"default","mapbox:autocomposite":!0,"mapbox:sdk-support":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"},"mapbox:origin":"satellite-streets-v12","mapbox:uiExpandedImports":["basemap"],"mapbox:groups":{"Satellite imagery, land":{name:"Satellite imagery, land",collapsed:!1},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1}}},center:[55.13,25.12],zoom:12,fog:{range:[1,10],color:["interpolate",["exponential",1.2],["zoom"],5.5,"hsl(240, 12%, 70%)",6,"hsl(0, 0%, 100%)"],"high-color":["interpolate",["exponential",1.2],["zoom"],5.5,"hsl(240, 12%, 7%)",6,"hsl(38, 63%, 84%)"],"space-color":["interpolate",["exponential",1.2],["zoom"],5.5,"hsl(240, 12%, 9%)",6,"hsl(199, 61%, 80%)"],"horizon-blend":["interpolate",["exponential",1.2],["zoom"],5.5,.008,6,.15],"star-intensity":["interpolate",["exponential",1.2],["zoom"],5.5,.1,6,0]},imports:[{id:"basemap",url:"mapbox://styles/mapbox/standard-satellite",config:{lightPreset:"day"},data:{version:8,name:"Mapbox Standard Satellite",metadata:{"mapbox:compatibility":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"},"mapbox:autocomposite":!0,"mapbox:groups":{"road & transit labels":{name:"Road & Transit labels",collapsed:!0},"land & water":{name:"Land & water",collapsed:!0},"road shields":{name:"Road shields",collapsed:!0},"building labels":{name:"Building labels",collapsed:!0},"transit labels":{name:"Transit labels",collapsed:!0},"poi labels":{name:"Poi labels",collapsed:!0},"natural labels":{name:"Natural labels",collapsed:!0},"place labels":{name:"Place labels",collapsed:!0},"administrative boudaries":{name:"Administrative boudaries",collapsed:!0},"roads & transit network":{name:"Roads & transit network",collapsed:!0}}},center:[15.07,48.72],zoom:3.3,bearing:0,pitch:0,lights:[{id:"ambient",type:"ambient",properties:{color:["match",["config","lightPreset"],"dawn","hsl(28, 98%, 93%)","day","hsl(0, 0%, 100%)","dusk","hsl(228, 27%, 29%)","night","hsl(217, 100%, 11%)","hsl(0, 0%, 100%)"],intensity:["match",["config","lightPreset"],"dawn",.75,"day",.8,"dusk",.8,"night",.5,.8]}},{id:"directional",type:"directional",properties:{direction:["match",["config","lightPreset"],"dawn",["literal",[120,50]],"day",["literal",[180,20]],"dusk",["literal",[240,80]],"night",["literal",[270,20]],["literal",[180,20]]],color:["match",["config","lightPreset"],"dawn","hsl(33, 98%, 77%)","day","hsl(0, 0%, 100%)","dusk","hsl(30, 98%, 76%)","night","hsl(0, 0%, 29%)","hsl(0, 0%, 100%)"],intensity:["interpolate",["linear"],["zoom"],12,["match",["config","lightPreset"],"dawn",.5,"day",.2,"dusk",0,"night",0,.2],14,["match",["config","lightPreset"],"dawn",.5,"day",.2,"dusk",.2,"night",.5,.2]],"cast-shadows":!0,"shadow-intensity":["match",["config","lightPreset"],"night",.5,1]}}],terrain:{source:"mapbox-dem",exaggeration:["interpolate",["linear"],["zoom"],6,0,7,1,12,1,13.7,0]},fog:{"vertical-range":[30,120],range:["interpolate",["linear"],["zoom"],13,["literal",[1,20]],15,["literal",[1,4]]],color:["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],.1,"hsla(240, 9%, 55%, 0.2)",.4,"hsla(0, 0%, 100%, 0.2)"],7,["interpolate",["linear"],["measure-light","brightness"],.02,"hsla(213, 63%, 20%, 0.9)",.03,"hsla(30, 65%, 60%, 0.5)",.4,"hsla(10, 79%, 88%, 0.8)",.45,"hsla(200, 60%, 98%, 0.9)"]],"high-color":["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],.1,"hsla(215, 60%, 20%, 1)",.4,"hsla(215, 100%, 80%, 1)"],7,["interpolate",["linear"],["measure-light","brightness"],0,"hsla(228, 38%, 20%, 1)",.05,"hsla(360, 100%, 85%, 1)",.2,"hsla(205, 88%, 86%, 1)",.4,"hsla(270, 65%, 85%, 1)",.45,"hsla(0, 0%, 100%, 1)"]],"space-color":["interpolate",["exponential",1.2],["zoom"],5,"hsl(211, 84%, 0%)",7,["interpolate",["linear"],["measure-light","brightness"],0,"hsl(210, 84%, 5%)",.2,"hsl(210, 40%, 30%)",.4,"hsl(210, 45%, 30%)",.45,"hsl(210, 100%, 80%)"]],"horizon-blend":["interpolate",["exponential",1.2],["zoom"],5,.004,7,["interpolate",["exponential",1.2],["measure-light","brightness"],.35,.03,.4,.07,.45,.03]],"star-intensity":["interpolate",["exponential",1.2],["zoom"],5,.4,7,["interpolate",["exponential",1.2],["measure-light","brightness"],.1,.2,.3,0]]},camera:{"camera-projection":"orthographic"},schema:{roadsBrightness:{default:.7,type:"number",metadata:{"mapbox:title":"Roads brightness","mapbox:description":"Control how bright road network appear in dark styles","mapbox:group":!1}},colorPlaceLabelHighlight:{default:"hsl(5, 80%, 75%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Place label color used when setting highlight state.","mapbox:group":!1}},colorPlaceLabelSelect:{default:"hsl(5, 95%, 70%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Place label color used when setting select state.","mapbox:group":!1}},colorMotorways:{default:"hsl(214, 23%, 80%)",type:"color",metadata:{"mapbox:title":"Motorways","mapbox:description":"Set a custom color for motorway roads.","mapbox:group":"Color"}},colorTrunks:{default:"hsl(235, 20%, 80%)",type:"color",metadata:{"mapbox:title":"Trunk roads","mapbox:description":"Set a custom color for trunk roads.","mapbox:group":"Color"}},colorRoads:{default:"hsl(224, 25%, 75%)",type:"color",metadata:{"mapbox:title":"Roads","mapbox:description":"Set a custom color for roads.","mapbox:group":"Color"}},showPlaceLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Place labels","mapbox:description":"Shows and hides place label layers.","mapbox:group":"Visibility"}},showRoadsAndTransit:{default:!0,type:"boolean",metadata:{"mapbox:title":"Roads and transit network","mapbox:description":"Shows and hides all roads and transit networks.","mapbox:group":"Visibility"}},showPedestrianRoads:{default:!1,type:"boolean",metadata:{"mapbox:title":"Pedestrian roads, paths, trails","mapbox:description":"Shows and hides all pedestrian roads, paths, trails.","mapbox:group":"Visibility"}},showRoadLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Road labels","mapbox:description":"Shows and hides all road labels, including road shields.","mapbox:group":"Visibility"}},showPointOfInterestLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"POI labels","mapbox:description":"Shows or hides all POI icons and text.","mapbox:group":"Visibility"}},showTransitLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Transit labels","mapbox:description":"Shows or hides all transit icons and text.","mapbox:group":"Visibility"}},lightPreset:{default:"day",type:"string",values:["dawn","day","dusk","night"],metadata:{"mapbox:title":"Light preset","mapbox:description":"Switch between 4 time-of-day states: dusk, dawn, day and night.","mapbox:group":"Basemap"}},font:{default:"DIN Pro",type:"string",values:["Alegreya","Alegreya SC","Asap","Barlow","DIN Pro","EB Garamond","Faustina","Frank Ruhl Libre","Heebo","Inter","Lato","League Mono","Montserrat","Manrope","Noto Sans CJK JP","Open Sans","Poppins","Raleway","Roboto","Roboto Mono","Rubik","Source Code Pro","Source Sans Pro","Spectral","Ubuntu"],metadata:{"mapbox:title":"Font","mapbox:description":"Defines font family for the style from predefined options.","mapbox:group":"Typography"}}},sources:{"mapbox-dem":{url:"mapbox://mapbox.mapbox-terrain-dem-v1",type:"raster-dem",tileSize:512},"mapbox://mapbox.satellite":{url:"mapbox://mapbox.satellite",type:"raster",tileSize:256},composite:{url:"mapbox://mapbox.mapbox-bathymetry-v2,mapbox.mapbox-streets-v8-lite,mapbox.mapbox-poi-v2",type:"vector"}},sprite:"mapbox://sprites/mapbox/standard-satellite/46l64mrox16m5svqgseryp8fm",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"globe"},layers:[{id:"mapbox-satellite",type:"raster",source:"mapbox://mapbox.satellite",layout:{},paint:{"raster-emissive-strength":.5}},{id:"water",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"water",layout:{},paint:{"fill-color":"hsl(200, 35%, 28%)","fill-emissive-strength":.4,"fill-opacity":["interpolate",["linear"],["zoom"],10,.8,16,0]}},{id:"water-depth",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"depth",maxzoom:8,layout:{},paint:{"fill-emissive-strength":.4,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(200, 35%, 23%, 0.35)",200,"hsla(200, 35%, 20%, 0.35)",7e3,"hsla(200, 35%, 15%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(200, 35%, 30%, 0)",200,"hsla(200, 35%, 25%, 0)",7e3,"hsla(200, 35%, 20%, 0)"]]}},{id:"bottom",type:"slot",metadata:{"mapbox:description":"Above polygons (land, landuse, water, etc.)"}},{id:"tunnel-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)","line-dasharray":[10,0]}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":"round","line-join":"round"},paint:{"line-emissive-strength":.6,"line-opacity":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)"}},{id:"tunnel-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)","line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"tunnel-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"pedestrian"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":"round","line-join":"round"},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)"}},{id:"tunnel-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"tunnel-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"tunnel-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"tunnel-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-color":"hsl(125, 50%, 60%)","line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,.5],"line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"ferry",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["==",["get","type"],"ferry"],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.8,"line-color":"hsl(210, 40%, 55%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-dasharray":["step",["zoom"],["literal",[1,0]],13,["literal",[12,4]]]}},{id:"ferry-auto",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["==",["get","type"],"ferry_auto"],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.8,"line-color":"hsl(210, 40%, 55%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1]}},{id:"road-primary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["-",["config","roadsBrightness"],.3],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,1],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-opacity":["step",["zoom"],1,14,1,14.5,0]}},{id:"road-major-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["-",["config","roadsBrightness"],.3],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,1],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-opacity":["step",["zoom"],0,11,1,14,1,14.5,0]}},{id:"road-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:3,filter:["all",["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],5,["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["-",["config","roadsBrightness"],.3],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,1],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],30]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-opacity":["interpolate",["linear"],["zoom"],3,0,3.5,1,14,1,14.5,0]}},{id:"road-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":[10,0]}},{id:"road-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":.6,"line-opacity":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"road-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"road-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["case",["has","layer"],[">=",["get","layer"],0],!0],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"golf-hole-line",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["==",["get","class"],"golf"],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-color":"hsl(110, 29%, 70%)"}},{id:"road-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"road-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"road-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:3,filter:["all",["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],5,["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],3,0,3.5,1,14,1,15,0]}},{id:"road-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-color":"hsl(125, 50%, 60%)","line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,1],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"road-rail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-gap-width":["interpolate",["linear"],["zoom"],15,0,16,1,18,2,22,20],"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,2]}},{id:"road-rail-tracks",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],16,2,18,6,20,16,22,32],"line-dasharray":["step",["zoom"],["literal",[.1,15]],16,["literal",[.1,1]],18,["literal",[.05,.5]]],"line-opacity":["interpolate",["linear"],["zoom"],13.75,0,14,1]}},{id:"bridge-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":[10,0]}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-emissive-strength":.6,"line-opacity":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"bridge-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"bridge-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-opacity":.6,"line-emissive-strength":.6,"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"bridge-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":"round"},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":"round"},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-major-link-2",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":"round"},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-motorway-trunk-2",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"],"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["config","roadsBrightness"],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],14,1,15,0]}},{id:"bridge-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":.6,"line-color":"hsl(125, 50%, 60%)","line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,1],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"bridge-rail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-gap-width":["interpolate",["linear"],["zoom"],15,0,16,1,18,2,22,20],"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,2]}},{id:"bridge-rail-tracks",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-color":"hsl(0, 0%, 20%)","line-width":["interpolate",["exponential",1.5],["zoom"],16,2,18,6,20,16,22,32],"line-dasharray":["step",["zoom"],["literal",[.1,15]],16,["literal",[.1,1]],18,["literal",[.05,.5]]],"line-opacity":["interpolate",["linear"],["zoom"],13.75,0,14,1]}},{id:"aerialway",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"aerialway"],["match",["get","type"],["aerialway:zip_line"],["step",["zoom"],!1,15,!0],!0]],layout:{visibility:["case",["config","showRoadsAndTransit"],"visible","none"]},paint:{"line-emissive-strength":1,"line-color":"hsl(225, 60%, 58%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,1,20,2],"line-dasharray":[4,1]}},{id:"admin-1-boundary-bg",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:7,filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-width":["interpolate",["linear"],["zoom"],3,3,12,6],"line-color":"hsl(345, 100%, 0%)","line-opacity":["interpolate",["linear"],["zoom"],5,0,6,.1],"line-dasharray":[1,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,3]}},{id:"admin-0-boundary-bg",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"hsl(345, 100%, 0%)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.1],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]}},{id:"admin-1-boundary",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:2,filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],layout:{},paint:{"line-emissive-strength":1,"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]],"line-width":["interpolate",["linear"],["zoom"],3,.5,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":"hsl(345, 100%, 75%)"}},{id:"admin-0-boundary",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],layout:{},paint:{"line-emissive-strength":1,"line-color":"hsl(345, 100%, 70%)","line-width":["interpolate",["linear"],["zoom"],3,.8,12,2],"line-dasharray":[10,0]}},{id:"admin-0-boundary-disputed",type:"line",metadata:{"mapbox:group":"administrative boudaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-color":"hsl(345, 100%, 70%)","line-width":["interpolate",["linear"],["zoom"],3,.8,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]}},{id:"middle",type:"slot",metadata:{"mapbox:description":"Above lines (roads, etc.) and behind 3D buildings"}},{id:"road-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["has","name"],["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],12,["match",["get","class"],["motorway","trunk","primary","secondary"],!0,!1],13,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary","street","street_limited"],!0,!1],15,["match",["get","class"],["path","pedestrian","golf","ferry","aerialway"],!1,!0]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.2]]]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],9,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","street","street_limited"],8,6.5],18,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],16,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","street","street_limited"],14,13]],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,visibility:["case",["config","showRoadLabels"],"visible","none"],"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15},paint:{"text-color":"hsl(0, 0%, 100%)","text-halo-color":"hsl(0, 0%, 20%)","text-halo-width":1.5,"text-halo-blur":1}},{id:"path-pedestrian-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["case",["has","layer"],[">=",["get","layer"],0],!0],["step",["zoom"],["match",["get","class"],["pedestrian"],!0,!1],15,["match",["get","class"],["path","pedestrian"],!0,!1]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.2]]]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],"pedestrian",9,6.5],18,["match",["get","class"],"pedestrian",14,13]],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,visibility:["case",["config","showRoadLabels"],"visible","none"],"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-color":"hsl(0, 0%, 100%)","text-halo-color":"hsl(0, 0%, 20%)","text-halo-width":1.5,"text-halo-blur":1}},{id:"golf-hole-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","class"],"golf"],["case",["<=",["pitch"],40],!0,["<=",["distance-from-center"],0]]],layout:{visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-size":12},paint:{"text-emissive-strength":.8,"text-halo-color":"hsl(110, 70%, 28%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(110, 40%, 65%)"}},{id:"ferry-aerialway-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],"aerialway",!0,"ferry",!0,!1],["case",["<=",["pitch"],40],!0,["<=",["distance-from-center"],0]]],layout:{"text-size":["interpolate",["linear"],["zoom"],10,6.5,18,13],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,visibility:["case",["config","showTransitLabels"],"visible","none"],"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-emissive-strength":.8,"text-color":"hsl(200, 40%, 60%)","text-halo-color":"hsl(225, 60%, 20%)","text-halo-width":1.5,"text-halo-blur":1}},{id:"waterway-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-emissive-strength":.8,"text-color":"hsl(210, 96%, 75%)"}},{id:"natural-line-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["get","filterrank"],2],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-halo-width":1,"text-halo-color":"hsl(210, 20%,20%)","text-halo-blur":.5,"text-color":"hsl(0, 0%, 95%)"}},{id:"natural-point-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["get","filterrank"],2],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"Point"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["image",["string",["get","maki"]]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.75]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.75]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-color":"hsl(210, 20%,20%)","text-color":"hsl(0, 0%, 95%)","text-halo-width":1}},{id:"water-line-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-emissive-strength":.8,"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(210, 96%, 65%)","hsl(210, 96%, 75%)"]}},{id:"water-point-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"Point"],["!=",["id"],1]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},paint:{"text-emissive-strength":.8,"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(210, 96%, 65%)","hsl(210, 96%, 75%)"]}},{id:"road-intersection",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","class"],"intersection"],["has","name"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"icon-image":"intersection","icon-text-fit":"both","icon-text-fit-padding":[1,2,1,2],"text-size":["interpolate",["exponential",1.2],["zoom"],15,9,18,12],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":"hsl(230, 57%, 64%)"}},{id:"road-number-shield",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["has","reflen"],["<=",["get","reflen"],6],["match",["get","class"],["pedestrian","service"],!1,!0],["step",["zoom"],["==",["geometry-type"],"Point"],11,[">",["coalesce",["get","len"],0],5e3],12,[">",["coalesce",["get","len"],0],2500],13,[">",["coalesce",["get","len"],0],1e3],14,!0],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{"text-size":9,"icon-image":["case",["has","shield_beta"],["coalesce",["image",["concat",["get","shield_beta"],"-",["to-string",["get","reflen"]]]],["image",["concat",["get","shield"],"-",["to-string",["get","reflen"]]]],["image",["concat","default-",["to-string",["get","reflen"]]]]],["concat",["get","shield"],"-",["to-string",["get","reflen"]]]],"icon-rotation-alignment":"viewport","text-max-angle":38,"symbol-spacing":["interpolate",["linear"],["zoom"],11,400,14,600],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"],"symbol-placement":["step",["zoom"],"point",11,"line"],visibility:["case",["config","showRoadLabels"],"visible","none"],"text-rotation-alignment":"viewport","text-field":["get","ref"],"text-letter-spacing":.05},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":["case",["has","shield_beta"],["case",["all",["has","shield_text_color_beta"],["to-boolean",["coalesce",["image",["concat",["get","shield_beta"],"-",["to-string",["get","reflen"]]]],""]]],["match",["get","shield_text_color_beta"],"white","hsl(0, 0%, 100%)","yellow","hsl(50, 100%, 70%)","orange","hsl(25, 100%, 75%)","blue","hsl(230, 57%, 44%)","red","hsl(0, 87%, 59%)","green","hsl(140, 74%, 37%)","hsl(230, 18%, 13%)"],"hsl(230, 18%, 13%)"],["match",["get","shield_text_color"],"white","hsl(0, 0%, 100%)","yellow","hsl(50, 100%, 70%)","orange","hsl(25, 100%, 75%)","blue","hsl(230, 57%, 44%)","red","hsl(0, 87%, 59%)","green","hsl(140, 74%, 37%)","hsl(230, 18%, 13%)"]]}},{id:"road-exit-shield",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"motorway_junction",minzoom:14,filter:["all",["has","reflen"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-field":["get","ref"],"text-size":9,"icon-image":["concat","motorway-exit-",["to-string",["get","reflen"]]],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":"hsl(0, 0%, 100%)","text-translate":[0,0]}},{id:"gate-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"structure",minzoom:17,filter:["all",["==",["get","class"],"gate"],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<=",["distance-from-center"],.4],50,["<",["distance-from-center"],.2],55,["<",["distance-from-center"],0],60,["<",["distance-from-center"],-.05]]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"icon-image":["match",["get","type"],"gate","gate","lift_gate","lift-gate",""]},paint:{"icon-emissive-strength":.8}},{id:"building-entrance",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"structure",minzoom:18,filter:["all",["==",["get","class"],"entrance"],["case",["<=",["pitch"],40],!0,!1]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"icon-image":"marker","text-field":["get","ref"],"text-size":10,"text-offset":[0,-.5],"text-font":[["concat",["config","font"]," Regular"],"Arial Unicode MS Regular"]},paint:{"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)","icon-opacity":.4}},{id:"building-number-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"housenum_label",minzoom:17,filter:["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],.4],50,["<",["distance-from-center"],.2],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.4]]],layout:{"symbol-z-elevate":!0,visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["get","house_num"],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-max-width":10,"text-size":10,"text-padding":20},paint:{"text-emissive-strength":1.4,"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)"}},{id:"block-number-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"place_label",minzoom:16,filter:["all",["==",["get","class"],"settlement_subdivision"],["==",["get","type"],"block"],["case",["<=",["pitch"],60],!0,["<=",["distance-from-center"],.5]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["get","name"],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-max-width":7,"text-size":11},paint:{"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)"}},{id:"poi-label",type:"symbol",metadata:{"mapbox:group":"poi labels"},source:"composite","source-layer":"poi",minzoom:6,filter:["all",["has","sub_category"],["case",["<=",["pitch"],15],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","category"],"park_like",4,"visitor_amenities",2,"store_like",3,"lodging",1,2]]],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","category"],"park_like",4,["food_and_drink","visitor_amenities","lodging"],1,"religion",0,2]]]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1.2],50,["<",["distance-from-center"],1],55,["<",["distance-from-center"],.8],60,["<=",["distance-from-center"],.6]]],["match",["get","category"],["sport_and_leisure","visitor_amenities","commercial_services","general"],[">",["get","reality_score"],.95],["building","lodging","medical","store_like","food_and_drink","food_and_drink_stores","motorist","industrial","education"],[">",["get","reality_score"],.85],!0]],layout:{"text-size":13,"icon-image":["image",["string",["get","icon"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","icon"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","category"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","icon"],["literal",["communications-tower","museum","zoo"]]],["in",["get","category"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","icon"],"car-repair"],["in",["get","category"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","icon"],"picnic-site"],["==",["get","category"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","icon"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-padding":["interpolate",["linear"],["zoom"],16,6,17,4],visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"symbol-z-elevate":!0,"text-offset":["case",["match",["get","category"],["building","general","place_like"],!0,!1],["literal",[0,-.6]],["literal",[0,.8]]],"text-anchor":["case",["match",["get","category"],["building","general","place_like"],!0,!1],"bottom","top"],"text-field":["format",["get","name"],{}]},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"icon-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"text-opacity":1,"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-width":1,"text-halo-color":"hsl(0, 0%, 15%)","text-color":["match",["get","category"],"food_and_drink","hsl(40, 100%, 75%)","park_like","hsl(110, 65%, 65%)","education","hsl(30, 100%, 70%)","medical","hsl(0, 100%, 85%)","sport_and_leisure","hsl(190, 60%, 75%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 80%)",["commercial_services","motorist","lodging"],"hsl(260, 100%, 85%)",["arts_and_entertainment","historic","landmark"],"hsl(320, 90%, 85%)",["match",["get","maki_beta"],"terminal","hsl(220, 100%, 80%)","hsl(0, 0%, 90%)"]]}},{id:"poi-label-osm",type:"symbol",metadata:{"mapbox:group":"poi labels"},source:"composite","source-layer":"poi",minzoom:6,filter:["all",["!",["has","sub_category"]],["case",["<=",["pitch"],15],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","class"],"park_like",4,"visitor_amenities",2,"store_like",3,"lodging",1,2]]],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],1,16,2,18,3],["match",["get","class"],"park_like",4,["food_and_drink","visitor_amenities","lodging"],1,"religion",0,2]]]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1.2],50,["<",["distance-from-center"],1],55,["<",["distance-from-center"],.8],60,["<=",["distance-from-center"],.6]]],["all",["match",["get","type"],"Toilets",[">=",["zoom"],17],!0]]],layout:{"text-size":["step",["zoom"],["step",["number",["get","sizerank"]],18,5,13],17,["step",["number",["get","sizerank"]],18,13,13]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["string",["get","maki_beta"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","maki_beta"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","class"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","maki_beta"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}],["image",["string",["get","maki"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","maki"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","class"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","maki"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}]],["image",["string",["get","maki"]],{params:{"background-stroke":"hsl(0, 0%, 0%)",icon:["case",["==",["get","maki"],"marker"],"hsla(0, 0%, 0%, 0)","hsl(0, 0%, 0%)"],background:["match",["get","class"],"food_and_drink","hsl(40, 100%, 70%)","education","hsl(30, 100%, 65%)","medical","hsl(0, 100%, 80%)","sport_and_leisure","hsl(190, 60%, 70%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 75%)",["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],"hsl(320, 90%, 80%)",["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],"hsl(260, 100%, 80%)",["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],"hsl(110, 65%, 60%)",["==",["get","maki"],"terminal"],"hsl(220, 100%, 70%)","hsl(0, 0%, 90%)"]],"icon-stroke":"hsla(0, 0%, 0%, 0)"}}]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-padding":["interpolate",["linear"],["zoom"],16,6,17,4],visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"symbol-z-elevate":!0,"text-offset":["step",["zoom"],["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],["literal",[0,-.6]],["step",["number",["get","sizerank"]],["literal",[0,0]],5,["literal",[0,.8]]]],17,["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],["literal",[0,-.6]],["step",["number",["get","sizerank"]],["literal",[0,0]],13,["literal",[0,.8]]]]],"text-anchor":["step",["zoom"],["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],"bottom",["step",["number",["get","sizerank"]],"center",5,"top"]],17,["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],"bottom",["step",["number",["get","sizerank"]],"center",13,"top"]]],"text-field":["format",["coalesce",["get","name_en"],["get","name"]],{}]},paint:{"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-width":1.2,"text-halo-color":"hsl(0, 0%, 15%)","text-color":["match",["get","class"],"food_and_drink","hsl(40, 100%, 75%)","park_like","hsl(110, 65%, 65%)","education","hsl(30, 100%, 70%)","medical","hsl(0, 100%, 85%)","sport_and_leisure","hsl(190, 60%, 75%)",["store_like","food_and_drink_stores"],"hsl(210, 100%, 80%)",["commercial_services","motorist","lodging"],"hsl(260, 100%, 85%)",["arts_and_entertainment","historic","landmark"],"hsl(320, 90%, 85%)",["match",["get","maki_beta"],"terminal","hsl(220, 100%, 80%)","hsl(0, 0%, 90%)"]]}},{id:"top",type:"slot",metadata:{"mapbox:description":"Above POI labels and behind Place and Transit labels"}},{id:"transit-label",type:"symbol",metadata:{"mapbox:group":"transit labels"},source:"composite","source-layer":"transit_stop_label",minzoom:12,filter:["all",["step",["zoom"],["all",["!=",["get","mode"],"bus"],["!=",["get","stop_type"],"entrance"]],17,["!=",["get","stop_type"],"entrance"],19,!0],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],50,["<",["distance-from-center"],.8],55,["<",["distance-from-center"],.4],60,["<=",["distance-from-center"],-.1]]]],layout:{"text-size":13,"icon-image":["image",["string",["get","network"]],{params:{background:"hsl(220, 100%, 70%)","background-stroke":"hsl(0, 0%, 0%)",icon:"hsl(0, 0%, 0%)"}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-justify":["match",["get","stop_type"],"entrance","left","center"],visibility:["case",["config","showTransitLabels"],"visible","none"],"text-offset":["match",["get","stop_type"],"entrance",["literal",[1,0]],["literal",[0,.6]]],"text-anchor":["match",["get","stop_type"],"entrance","left","top"],"text-field":["step",["zoom"],["format","",{}],13,["match",["get","mode"],["metro_rail","rail"],["format",["coalesce",["get","name_en"],["get","name"]],{}],["format","",{}]],14,["match",["get","mode"],["bicycle","bus"],["format","",{}],["format",["coalesce",["get","name_en"],["get","name"]],{}]],18,["format",["coalesce",["get","name_en"],["get","name"]],{}]],"text-letter-spacing":.01,"text-max-width":["match",["get","stop_type"],"entrance",15,9]},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-halo-width":1.2,"text-halo-color":"hsl(0, 0%, 10%)","text-color":["match",["get","network"],"tokyo-metro","hsl(180, 50%, 30%)","mexico-city-metro","hsl(25, 100%, 63%)",["barcelona-metro","delhi-metro","hong-kong-mtr","milan-metro","osaka-subway"],"hsl(0, 90%, 47%)",["boston-t","washington-metro"],"hsl(230, 18%, 20%)",["chongqing-rail-transit","kiev-metro","singapore-mrt","taipei-metro"],"hsl(140, 90%, 25%)","hsl(225, 100%, 82%)"]}},{id:"airport-label",type:"symbol",metadata:{"mapbox:group":"transit labels"},source:"composite","source-layer":"airport_label",minzoom:8,filter:["all",["match",["get","class"],["military","civil","disputed_military","disputed_civil"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{"text-line-height":1.1,"text-size":["step",["get","sizerank"],18,9,13],"icon-image":["image",["string",["get","maki"]],{params:{background:"hsl(220, 100%, 70%)","background-stroke":"hsl(0, 0%, 0%)",icon:"hsl(0, 0%, 0%)"}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],visibility:["case",["config","showTransitLabels"],"visible","none"],"text-offset":[0,.8],"text-rotation-alignment":"viewport","text-anchor":"top","text-field":["step",["get","sizerank"],["case",["has","ref"],["concat",["get","ref"],` -
233
233
  `,["coalesce",["get","name_en"],["get","name"]]],["coalesce",["get","name_en"],["get","name"]]],15,["get","ref"]],"text-letter-spacing":.01,"text-max-width":9},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-emissive-strength":.8,"text-emissive-strength":.9,"text-color":"hsl(225, 100%, 82%)","text-halo-color":"hsl(0, 0%, 10%)","text-halo-width":1.2}},{id:"settlement-subdivision-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:10,maxzoom:15,filter:["all",["match",["get","class"],["disputed_settlement_subdivision","settlement_subdivision"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["number",["get","filterrank"]],3],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1.5]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",12,11.5],15,["match",["get","type"],"suburb",16,15]]},paint:{"text-emissive-strength":["case",["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.8],"text-halo-color":["case",["to-boolean",["feature-state","select"]],"hsl(0, 0%, 15%)",["to-boolean",["feature-state","highlight"]],"hsl(0, 0%, 15%)","hsl(0, 0%, 25%)"],"text-halo-width":1.5,"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],"hsl(0, 0%, 100%)"],"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.8],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1]}},{id:"settlement-minor-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:2,maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],["image","border-dot-13",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}],["step",["get","symbolrank"],["image","dot-11",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}],9,["image","dot-10",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}],11,["image","dot-9",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}]]],8,""],"text-font":[["concat",["config","font"]," Regular"],"Arial Unicode MS Regular"],"text-justify":"auto",visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.02,"text-max-width":7},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],"hsl(0, 0%, 100%)"],"text-halo-color":["case",["to-boolean",["feature-state","select"]],"hsl(0, 0%, 15%)",["to-boolean",["feature-state","highlight"]],"hsl(0, 0%, 15%)","hsl(0, 0%, 25%)"],"text-halo-width":1.25}},{id:"settlement-major-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:2,maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],["image","border-dot-13",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}],["step",["get","symbolrank"],["image","dot-11",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}],9,["image","dot-10",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}],11,["image","dot-9",{params:{"color-primary":"hsl(0, 0%, 100%)","color-secondary":"hsl(0, 0%, 0%)"}}]]],8,""],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.02,"text-max-width":7},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],"hsl(0, 0%, 100%)"],"text-halo-color":["case",["to-boolean",["feature-state","select"]],"hsl(0, 0%, 15%)",["to-boolean",["feature-state","highlight"]],"hsl(0, 0%, 15%)","hsl(0, 0%, 25%)"],"text-halo-width":1.25}},{id:"state-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:3,maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6},paint:{"text-emissive-strength":["case",["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.8],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],"hsl(0, 0%, 100%)"],"text-halo-color":["case",["to-boolean",["feature-state","select"]],"hsl(0, 0%, 15%)",["to-boolean",["feature-state","highlight"]],"hsl(0, 0%, 15%)","hsl(0, 0%, 25%)"],"text-halo-width":1.5,"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.5]}},{id:"country-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:1,maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],11,4,9,5,8],9,["step",["get","symbolrank"],22,4,19,5,17]],"text-radial-offset":["step",["zoom"],.6,8,0],"icon-image":"","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":6},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-emissive-strength":["case",["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.8],"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],"hsl(0, 0%, 100%)"],"text-halo-color":["case",["to-boolean",["feature-state","select"]],"hsl(0, 0%, 15%)",["to-boolean",["feature-state","highlight"]],"hsl(0, 0%, 15%)","hsl(0, 0%, 25%)"],"text-halo-width":1.25}},{id:"continent-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"natural_label",minzoom:.75,maxzoom:3,filter:["all",["==",["get","class"],"continent"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05},paint:{"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],"hsl(0, 0%, 100%)"],"text-halo-color":["case",["to-boolean",["feature-state","select"]],"hsl(0, 0%, 15%)",["to-boolean",["feature-state","highlight"]],"hsl(0, 0%, 15%)","hsl(0, 0%, 25%)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.8],1.5,["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.5],2.5,["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.5]]}}],models:{"maple2-lod1":"mapbox://models/mapbox/maple2-lod1.glb","palm1-lod3":"mapbox://models/mapbox/palm1-lod3.glb","maple1-lod1":"mapbox://models/mapbox/maple1-lod1.glb","maple2-lod2":"mapbox://models/mapbox/maple2-lod2.glb","palm1-lod4":"mapbox://models/mapbox/palm1-lod4.glb","maple1-lod2":"mapbox://models/mapbox/maple1-lod2.glb","maple2-lod3":"mapbox://models/mapbox/maple2-lod3.glb","turbinetower-lod1":"mapbox://models/mapbox/turbinetower-lod1.glb","maple1-lod3":"mapbox://models/mapbox/maple1-lod3.glb","maple2-lod4":"mapbox://models/mapbox/maple2-lod4.glb","turbinetower-lod2":"mapbox://models/mapbox/turbinetower-lod2.glb","maple1-lod4":"mapbox://models/mapbox/maple1-lod4.glb","oak2-lod1":"mapbox://models/mapbox/oak2-lod1.glb","oak1-lod1":"mapbox://models/mapbox/oak1-lod1.glb","oak2-lod2":"mapbox://models/mapbox/oak2-lod2.glb","oak1-lod2":"mapbox://models/mapbox/oak1-lod2.glb","oak2-lod3":"mapbox://models/mapbox/oak2-lod3.glb","oak1-lod3":"mapbox://models/mapbox/oak1-lod3.glb","oak2-lod4":"mapbox://models/mapbox/oak2-lod4.glb","oak1-lod4":"mapbox://models/mapbox/oak1-lod4.glb","turbinerotor-lod1":"mapbox://models/mapbox/turbinerotor-lod1.glb","turbinerotor-lod2":"mapbox://models/mapbox/turbinerotor-lod2.glb","pine2-lod1":"mapbox://models/mapbox/pine2-lod1.glb","pine1-lod1":"mapbox://models/mapbox/pine1-lod1.glb","pine2-lod2":"mapbox://models/mapbox/pine2-lod2.glb","pine1-lod2":"mapbox://models/mapbox/pine1-lod2.glb","pine2-lod3":"mapbox://models/mapbox/pine2-lod3.glb","pine1-lod3":"mapbox://models/mapbox/pine1-lod3.glb","palm1-lod1":"mapbox://models/mapbox/palm1-lod1.glb","pine2-lod4":"mapbox://models/mapbox/pine2-lod4.glb","pine1-lod4":"mapbox://models/mapbox/pine1-lod4.glb","palm1-lod2":"mapbox://models/mapbox/palm1-lod2.glb"},featuresets:{poi:{metadata:{"mapbox:title":"Points of interest","mapbox:description":"A point of interest.","mapbox:states":[{id:"hide",type:"boolean",doc:"When `true`, hides the icon and text. Use this state when displaying a custom annotation on top.",importConfigs:[]}],"mapbox:properties":[{name:"name",type:"string",doc:"Name of the point of interest."},{name:"group",type:"string",doc:"A high-level category, like POI, airport, transit, etc."},{name:"class",type:"string",doc:"A broad category of point of interest."},{name:"maki",type:"string",doc:"An icon identifier, designed to assign icons using the Maki icon project or other icons that follow the same naming scheme."},{name:"transit_mode",type:"string",doc:"Mode of transport served by a stop/station. Expected to be null for non-transit points of interest."},{name:"transit_stop_type",type:"string",doc:"A type of transit stop. Expected to be null for non-transit points of interest."},{name:"transit_network",type:"string",doc:"A rail station network identifier that is part of specific local or regional transit systems. Expected to be null for non-transit points of interest."},{name:"airport_ref",type:"string",doc:"A short identifier code of the airport. Expected to be null for non-airport points of interest"}]},selectors:[{layer:"poi-label-osm",properties:{name:["get","name"],class:["get","class"],maki:["coalesce",["get","maki_beta"],["get","maki"]],group:"poi"},featureNamespace:"poi-A"},{layer:"poi-label",properties:{name:["get","name"],class:["get","category"],maki:["get","icon"],group:"poi"},featureNamespace:"poi-A"},{layer:"transit-label",properties:{name:["get","name"],transit_mode:["get","mode"],transit_stop_type:["get","stop_type"],transit_network:["get","network"],group:"transit"},featureNamespace:"poi-B"},{layer:"airport-label",properties:{name:["get","name"],class:["get","class"],maki:["get","maki"],airport_ref:["get","ref"],group:"airport"},featureNamespace:"poi-C"},{layer:"natural-point-label",properties:{name:["get","name"],class:["get","class"],maki:["coalesce",["get","maki_beta"],["get","maki"]],group:"natural-point"},featureNamespace:"poi-D"}]},"place-labels":{metadata:{"mapbox:title":"Place labels","mapbox:description":"Points for labeling places including countries, states, cities, towns, and neighborhoods.","mapbox:states":[{id:"hide",type:"boolean",doc:"When `true`, hides the label. Use this state when displaying a custom annotation on top.",importConfigs:[]},{id:"highlight",type:"boolean",doc:"When `true`, the feature is highlighted. Use this state to create a temporary effect (e.g. hover).",importConfigs:["colorPlaceLabelHighlight"]},{id:"select",type:"boolean",doc:"When `true`, the feature is selected. Use this state to create a permanent effect. Note: the `select` state has a higher priority than `highlight`.",importConfigs:["colorPlaceLabelSelect"]}],"mapbox:properties":[{name:"name",type:"string",doc:"Name of the place label."},{name:"class",type:"string",doc:"Provides a broad distinction between place types."}]},selectors:[{layer:"continent-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-A"},{layer:"country-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"state-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"settlement-major-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"settlement-minor-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"settlement-subdivision-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"}]}},created:"2024-07-26T16:01:36.908Z",modified:"2025-07-22T16:17:01.022Z",id:"standard-satellite",owner:"mapbox",visibility:"public",protected:!0,draft:!1}}],sources:{"mapbox://mapbox.satellite":{url:"mapbox://mapbox.satellite",type:"raster",tileSize:256},composite:{url:"mapbox://mapbox.mapbox-streets-v8,mapbox.country-boundaries-v1,neatchenheng.82kqbc1q,neatchenheng.d44z21eg,neatchenheng.a4ifbysm,neatchenheng.27issko0,neatchenheng.9uwc9x7l,neatchenheng.7y3kpvvv,neatchenheng.dlkkohie",type:"vector"}},sprite:"mapbox://sprites/neatchenheng/cmdiadnej03n101r485bs2m6a/3ypt5l12v7es7ihchvsclc3i2",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},layers:[{id:"background",type:"background",layout:{},paint:{"background-color":"hsl(222, 56%, 4%)"},metadata:{"mapbox:featureComponent":"satellite","mapbox:group":"Satellite imagery, land"}},{id:"satellite",type:"raster",source:"mapbox://mapbox.satellite",layout:{},paint:{},metadata:{"mapbox:featureComponent":"satellite","mapbox:group":"Satellite imagery, land"}},{minzoom:7,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-1-boundary-bg",paint:{"line-color":"hsl(260, 45%, 0%)","line-width":["interpolate",["linear"],["zoom"],3,3,12,6],"line-opacity":["interpolate",["linear"],["zoom"],7,0,8,.5],"line-dasharray":[1,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,3]},"source-layer":"admin"},{minzoom:1,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-bg",paint:{"line-width":["interpolate",["linear"],["zoom"],3,6,12,12],"line-color":"hsl(260, 45%, 0%)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,3]},"source-layer":"admin"},{minzoom:2,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-1-boundary",paint:{"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]],"line-width":["interpolate",["linear"],["zoom"],3,.3,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":"hsl(260, 15%, 85%)"},"source-layer":"admin"},{minzoom:1,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary",paint:{"line-color":"hsl(260, 15%, 80%)","line-width":["interpolate",["linear"],["zoom"],3,.75,12,3],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]},"source-layer":"admin"},{minzoom:1,layout:{visibility:"none"},metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],type:"line",source:"composite",id:"admin-0-boundary-disputed",paint:{"line-color":"hsl(260, 15%, 80%)","line-width":["interpolate",["linear"],["zoom"],3,.75,12,3],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]},"source-layer":"admin"},{id:"empty-layer-0",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-1",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{type:"fill",source:"composite",id:"country-boundaries",paint:{"fill-color":"rgb(2, 45, 62)"},slot:"","source-layer":"country_boundaries",layout:{visibility:"none"}},{id:"empty-layer-2",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-3",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-4",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{minzoom:10,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",12.100000000000001,11.55],15,["match",["get","type"],"suburb",16.5,15.400000000000002]],visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["match",["get","class"],["settlement_subdivision","disputed_settlement_subdivision"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-subdivision-label",paint:{"text-halo-color":"hsla(0, 5%, 0%, 0.75)","text-halo-width":1,"text-color":"hsl(0, 0%, 100%)","text-halo-blur":.5},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],12.100000000000001,9,11],6,["step",["get","symbolrank"],15.400000000000002,9,13.200000000000001,12,11],8,["step",["get","symbolrank"],17.6,9,15.400000000000002,12,13.200000000000001,15,11],13,["step",["get","symbolrank"],24.200000000000003,9,22,12,17.6,15,15.400000000000002]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":"auto",visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-minor-label",paint:{"text-color":"hsl(0, 0%, 95%)","text-halo-color":"hsl(0, 5%, 0%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:2,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],14.3,6,12.100000000000001],6,["step",["get","symbolrank"],19.8,6,17.6,7,15.400000000000002],8,["step",["get","symbolrank"],22,9,17.6,10,15.400000000000002],15,["step",["get","symbolrank"],26.400000000000002,9,22,12,17.6,15,15.400000000000002]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"settlement-major-label",paint:{"text-color":"hsl(0, 0%, 95%)","text-halo-color":"hsl(0, 5%, 0%)","text-halo-width":1,"text-halo-blur":1},"source-layer":"place_label"},{minzoom:3,layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9.9,6,8.8,7,7.700000000000001],9,["step",["get","symbolrank"],23.1,6,17.6,7,15.400000000000002]],"text-transform":"uppercase","text-font":["DIN Pro Bold","Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6,visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"state-label",paint:{"text-color":"hsl(0, 0%, 95%)","text-halo-color":"hsl(0, 5%, 0%)","text-halo-width":1,"text-opacity":.5},"source-layer":"place_label"},{minzoom:1,layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],12.100000000000001,4,9.9,5,8.8],9,["step",["get","symbolrank"],24.200000000000003,4,20.900000000000002,5,18.700000000000003]],"text-radial-offset":["step",["zoom"],.6,8,0],"icon-image":"","text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],visibility:"none","text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":6},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],type:"symbol",source:"composite",id:"country-label",paint:{"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":"hsl(0, 0%, 95%)","text-halo-color":["interpolate",["linear"],["zoom"],2,"hsla(0, 5%, 0%, 0.75)",3,"hsl(0, 5%, 0%)"],"text-halo-width":1.25},"source-layer":"place_label"},{minzoom:.75,layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-size":["interpolate",["exponential",.5],["zoom"],0,11,2.5,16.5],"text-transform":"uppercase","text-letter-spacing":.05,visibility:"none"},metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},maxzoom:3,filter:["==",["get","class"],"continent"],type:"symbol",source:"composite",id:"continent-label",paint:{"text-color":"hsl(0, 0%, 95%)","text-halo-color":["interpolate",["linear"],["zoom"],0,"hsla(0, 5%, 0%, 0.75)",3,"hsl(0, 5%, 0%)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,.8,1.5,.5,2.5,0]},"source-layer":"natural_label"},{id:"water-outline",type:"line",paint:{"line-color":"rgb(0, 96, 107)"},layout:{visibility:"none"},source:"composite","source-layer":"water"},{id:"world-12nm-v4-20231025",minzoom:3,type:"line",paint:{"line-color":"rgb(241, 46, 39)"},layout:{visibility:"none"},source:"composite","source-layer":"eez_12nm_new1-6jzkww"},{id:"china-taiwan",minzoom:3,type:"line",paint:{"line-color":"rgb(241, 46, 39)"},layout:{visibility:"none"},source:"composite","source-layer":"eez-d4udtm"},{id:"ne-10m-outline",type:"line",paint:{"line-color":"rgb(115, 115, 115)"},layout:{visibility:"none"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"ne-10m-label",type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},layout:{"text-field":["to-string",["get","name"]],"text-size":12,visibility:"none"},source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"china-route-line",type:"line",paint:{"line-color":"rgba(119, 239, 157, 1)","line-width":2},layout:{visibility:"none"},source:"composite","source-layer":"china_route-bdtx5d"},{id:"china-route-fill",type:"fill",paint:{"fill-color":"rgba(119, 239, 157, 1)","fill-opacity":.2},layout:{visibility:"none"},source:"composite",filter:["match",["geometry-type"],["Polygon"],!0,!1],"source-layer":"china_route-bdtx5d"},{id:"china-route-label",type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},layout:{"text-field":["to-string",["get","route_name"]],"text-size":10,"text-offset":[0,1.6],visibility:"none"},source:"composite","source-layer":"china_route-bdtx5d"},{id:"ice-area-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(199, 239, 236, 0.7)"},source:"composite","source-layer":"ICE_AREA-6oqazd",layout:{visibility:"none"}},{id:"ice-area-line",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgba(199, 239, 236, 1)"},layout:{visibility:"none"},source:"composite","source-layer":"ICE_AREA-6oqazd"},{id:"tide-stations",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(255, 255, 255)","text-opacity":["step",["zoom"],0,4,1]},layout:{visibility:"none","text-field":["to-string",["get","Location_EN"]],"text-size":10,"icon-image":"tide","icon-size":1,"icon-offset":[0,-13],"text-offset":[0,1.6],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},source:"composite","source-layer":"tide_station_cn-8xvt91"},{id:"loadlines-label",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(255, 255, 255)"},layout:{"text-field":["to-string",["get","name"]],"text-size":10,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,1]},source:"composite","source-layer":"loadlines-b6mgr8"},{id:"loadlines-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":["match",["get","val"],["LLGreen"],"rgba(164, 214, 217, 0.6)",["LLBlue"],"rgba(53, 121, 194, 0.6)",["LLRed"],"rgba(217, 150, 151, 0.6)",["LLSUMMER"],"rgba(111, 110, 212, 0.6)","rgba(255, 255, 255, 0.6)"],"fill-outline-color":"rgba(255, 255, 255, 0.3)"},layout:{visibility:"none"},source:"composite","source-layer":"loadlines-b6mgr8"}],created:"2025-07-25T03:53:24.667Z",modified:"2025-07-31T05:04:42.779Z",id:"cmdiadnej03n101r485bs2m6a",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1},nautical:{version:8,name:"nautical",metadata:{"mapbox:autocomposite":!1,"mapbox:sdk-support":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"},"mapbox:uiExpandedImports":["basemap"],"mapbox:groups":{}},center:[-34,38],zoom:2,terrain:null,imports:[{id:"basemap",url:"mapbox://styles/neatchenheng/cmg0ale3r008801rhdey4f0go",config:{theme:"faded",lightPreset:"dawn",showLandmarkIcons:!1,showRoadLabels:!1,showPedestrianRoads:!1,showTransitLabels:!1,showPointOfInterestLabels:!1,showPlaceLabels:!0},data:{version:8,name:"Mapbox Standard",metadata:{"mapbox:compatibility":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"mapbox:autocomposite":!1,"mapbox:configGroups":[{name:"Basemap",properties:["theme","theme-data","lightPreset"]},{name:"Typography",properties:["font"]},{name:"Places & boundaries",properties:["showPlaceLabels","colorPlaceLabels","showAdminBoundaries","colorAdminBoundaries"]},{name:"Land & water",properties:["colorGreenspace","colorWater"]},{name:"Road & transit network",properties:["showRoadLabels","colorRoadLabels","showTransitLabels","colorMotorways","colorTrunks","colorRoads","showPedestrianRoads"]},{name:"Points of interest",properties:["showPointOfInterestLabels","densityPointOfInterestLabels","backgroundPointOfInterestLabels","colorModePointOfInterestLabels","colorPointOfInterestLabels","showLandmarkIcons","showLandmarkIconLabels"]},{name:"3d models",properties:["show3dObjects"]}],"mapbox:groups":{"land & water":{name:"Land & water",collapsed:!0},"natural labels":{name:"Natural labels",collapsed:!0},"place labels":{name:"Place labels",collapsed:!0},"poi labels":{name:"Poi labels",collapsed:!0},"administrative boundaries":{name:"Administrative boundaries",collapsed:!0},"road & transit labels":{name:"Road & Transit labels",collapsed:!0},"roads & transit network":{name:"Roads & transit network",collapsed:!0},"building labels":{name:"Building labels",collapsed:!0},"3d models":{name:"3d models",collapsed:!0},"3d buildings":{name:"3d buildings",collapsed:!0},buildings:{name:"Buildings",collapsed:!0},"landmark icons":{name:"Landmark Icons",collapsed:!0},"transit labels":{name:"Transit labels",collapsed:!0},"road shields":{name:"Road shields",collapsed:!0}}},center:[-10,30],zoom:1.5,bearing:0,pitch:0,lights:[{id:"ambient",type:"ambient",properties:{color:["match",["config","lightPreset"],"dawn","hsl(28, 98%, 93%)","day","hsl(0, 0%, 100%)","dusk","hsl(228, 27%, 29%)","night",["match",["config","theme"],"monochrome","hsl(217, 100%, 0%)","hsl(217, 100%, 11%)"],"hsl(0, 0%, 100%)"],intensity:["match",["config","lightPreset"],"dawn",.75,"day",["match",["config","theme"],"monochrome",.85,.8],"dusk",["match",["config","theme"],"monochrome",.1,.8],"night",["match",["config","theme"],"monochrome",0,.5],.8]}},{id:"directional",type:"directional",properties:{direction:["match",["config","lightPreset"],"dawn",["match",["config","theme"],"monochrome",["literal",[120,40]],["literal",[120,50]]],"day",["literal",[180,20]],"dusk",["match",["config","theme"],"monochrome",["literal",[240,30]],["literal",[240,80]]],"night",["literal",[270,20]],["literal",[180,20]]],color:["match",["config","lightPreset"],"dawn","hsl(33, 98%, 77%)","day","hsl(0, 0%, 100%)","dusk",["match",["config","theme"],"monochrome","hsl(30, 0%, 50%)","hsl(30, 98%, 76%)"],"night",["match",["config","theme"],"monochrome","hsl(0, 0%, 0%)","hsl(225, 15%, 29%)"],"hsl(0, 0%, 100%)"],intensity:["interpolate",["linear"],["zoom"],12,["match",["config","lightPreset"],"dawn",.5,"day",["match",["config","theme"],"monochrome",.3,.2],"dusk",0,"night",["match",["config","theme"],"monochrome",.01,0],.2],13,["match",["config","lightPreset"],"night",["match",["config","theme"],"monochrome",.01,0],.2],14,["match",["config","lightPreset"],"dawn",["match",["config","theme"],"monochrome",.35,.5],"day",.2,"dusk",["match",["config","theme"],"monochrome",.15,.2],"night",["match",["config","theme"],"monochrome",.25,.5],.2]],"cast-shadows":!0,"shadow-intensity":["match",["config","lightPreset"],"night",.5,1],"shadow-quality":.5}}],terrain:{source:"mapbox-dem",exaggeration:["interpolate",["linear"],["zoom"],6,0,7,1,12,1,13.7,0]},fog:{"vertical-range":[30,120],range:["interpolate",["linear"],["zoom"],13,["literal",[1,10]],15,["literal",[1,4]],22,["literal",[14,20]]],color:["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],.1,["match",["config","theme"],"monochrome","hsla(0, 0%, 20%, 1)","hsla(240, 9%, 55%, 1)"],.4,"hsla(0, 0%, 100%, 1)"],7,["interpolate",["linear"],["measure-light","brightness"],.02,"hsla(213, 63%, 20%, 0.9)",.03,"hsla(30, 65%, 60%, 0.5)",.4,"hsla(10, 79%, 88%, 0.95)",.45,"hsla(200, 60%, 98%, 0.9)"]],"high-color":["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],.1,"hsla(215, 100%, 20%, 1)",.4,"hsla(215, 100%, 51%, 1)"],7,["interpolate",["linear"],["measure-light","brightness"],0,"hsla(228, 38%, 20%, 1)",.05,"hsla(360, 100%, 85%, 1)",.2,"hsla(205, 88%, 86%, 1)",.4,"hsla(270, 65%, 85%, 1)",.45,"hsla(0, 0%, 100%, 1)"]],"space-color":["interpolate",["exponential",1.2],["zoom"],5,["match",["config","theme"],"monochrome","hsl(0, 0%, 0%)","hsl(211, 84%, 9%)"],7,["interpolate",["linear"],["measure-light","brightness"],0,["match",["config","theme"],"monochrome","hsl(0, 0%, 0%)","hsl(211, 84%, 17%)"],.2,"hsl(210, 40%, 30%)",.4,"hsl(270, 45%, 98%)",.45,"hsl(210, 100%, 80%)"]],"horizon-blend":["interpolate",["exponential",1.2],["zoom"],5,["match",["config","theme"],"monochrome",.001,.01],7,["interpolate",["exponential",1.2],["measure-light","brightness"],.35,.03,.4,.1,.45,.03]],"star-intensity":["interpolate",["exponential",1.2],["zoom"],5,.4,7,["interpolate",["exponential",1.2],["measure-light","brightness"],.1,.2,.3,0]]},camera:{"camera-projection":"orthographic"},"color-theme":{data:["match",["config","theme"],"faded","iVBORw0KGgoAAAANSUhEUgAABAAAAAAgCAIAAAADnJ3xAAAllklEQVR42qSUi6rcOgxFlzR5zbP9//88XHpb7IIYsXF1THroYEKcZFa2l+QY8IIHfIOn+xPuMa4xDvcdNMwO2OCAPe5e42Qj7rpvsMJCHN0XWD8uwW/f8M/4NvL9oG148rniO22L4+5L8NuCB58FWz/8Aa9/yu8b7bP8l4W2fqzy4zzxz/htx8/8ZH7xbYH9v/ADzxx3/E4Lvh9OkJv8DHyTH9id5NtKT77y3+HEf+FP6ttWPPlL8gW/06/YFZR/8NODb4cTfNvowb9stMG/+Mp/i6nyf6E/beZ/7ocd2+k7Jj+0Ay9+uvzQk2/iI3jlT/Lbaf7rj+UJz8z/SD8HXJOj/PJvZ/y+uAf/knzJv2X+XfxYiHFgY30t+F181J/Kn0P5Ef8A8b/s5zL6Uf4D0dI/8/wW+8vEd5R/zo/8mbDmj+qX/OLf/s/9m/B78G+ILD6M9WXwo/x9xRa34G8PeM35gRVk3L+Vz4olv+RPOfdS3yCkmUl/Fv825c/86I1d9f1a/nM/WoWbvm+T/nz8Cv9l/15Fq360itKfkV/9Y49fu74/mVz8Ucs6dmzUqJf88pP5+Q7PzJ/ft+JH+XU9Huuz+gZ/LfnP/OhK9tjUj/zHFhb/KN+HrfCPYYFd9ZUfe7Ut88vPbZJ/rX7G1q3982qr+GlGfkp+wZGfTfye9RU//HDOr36UX8eVHvlJP8s7f2LvIP9l7bqoc6lb36Of+Cmcv8qf/CVEBZ/vLNmcqL6lf1L+1P+W+Re9pQd/fZ70T+EXP5ss6RWX9/kLgAYeg/Fn49TzyXqlwSKU/n4BcPx9z32kdsw0jQeMkY8b+Sb3nCbfcA8oDSh8gt91zXnTxMfEvwD5fIv8xQAMgc0N13L8z+WIr6lBh45dWGmt8AUEw5D35Fc/kKcGeXBWGCtW/DD33wPolm9XvKzdhG8lv4C6q8BWdIH45nKDxYCO+Kappy75iQbQcjQd/dT2F3/wMy5HwjU1iS5+Cr9nfkP11RSo9ZWfjd6z+8/yy3/NX5eTfMAqVsaL/3EKClD4HnwDHFXByoAewyp/zO+QPkv+85/4TPKPNCP5s10mURM/HUz9XPk/aU2QppOBbOLX/Gazchj8wL1AYC5t4n/G/6n7lkdXlcuofPkxxO+Ij4tfYs8vyv88f+WfM4EJcJb/d3FXoOO2cgOXlK95RVH0//+0eGdriywiDIjJYEyvggqHxGvLY4qULM6S4+WAzjK0+Ln2xfUFE1/kCmH/FI+1/bHsx/mTFIgCIgMEwIIP+0PZj3/5+XqOies3lv31y8dZy59OX6eJneY4z3H+ii8u4amizH7DPvR1Bz/VbyH2TOOimAHcGK+RWfHJ836Dgyi+8xdG0CkUHPH6h93qu2CS9g9wnMHsK/b/iVCW4GKoN1jKn1u/mVIa48GRUtTHj5+T8/gQemsaPgAOwDsf6/k8R6bhGJOQFcc4YH51jOcY2DTH+JU0UAYAjoH9iWMUfHhk2XMiKy2n5zkeYBibHANJIbaFn8Qx6k4Lf7zFMeit44FgeY6BHIXxz/rOK4db+LhuJceIip/yeGMABvgBfOYY8A/ncEwqApezsD92cvSI4uOVgDqOsd7jOAbii1fnT/xwHIP97+2/PmXZH1G+nU24U+aIhD+W/ZVjrEE2OQb7v+CbW3iDY9S9kSCOHsfQOW7UO8IPmfZh6DkGxuX6vezPHNnnGDLpxFsXflaOodnF8BwjyP9wOvA3OEa1FAn6Psdg/wMfHAPBNRzDxDfXWyu1xNbnGBzfNVz2V45RokmUwHEM8g++/x3H4AcYhjzm6xZN+DLXp6G+vuLXP5PcS2nou19Q9ft54Ys9+xwgSv4JoyOItBg7TcoOfNhPwWKmQVHO8gz+4H+kdfQvfdxUBnsCAg5JHMM7HB6hx4/xn5F0tdchMkOdpl8VAP7wrxxjh2PQEOZfZYxROAZ2U4cOxkIEI4mTfGHP5LqBr2PAvDIxsM554A9Xx/Ac5ip0rMLCevs6Htzg9zkGJlbxdomf2n7NMZbNF34AP1WdYVKdBP7nHJT/Yfws+NU/Zp51UHznAD7qGCHqGDVHn4Px2f9/DxA3lUmstzQ5Rqxh/MQfLY4xBMeY+MQIDP+7cMExaEK0+gf2ixya/IPPlDcVX8cIugczfsQV3HR1DObAAj/GN+6RNI8lN4uPaeNvlxYYjkHnJ/ADBCZrHUPMczsOGeQfECTmGGE5Rs3RHX6kvcf/nmMEcxjgv3D9Er7cwuTol7sqARA5rsdnjoF54hfiK+oYahpY1zFisP2ZwhXqXDUcYOL8zPXHM8TOXRofw0UAcMcOwg+Rg1IdA2QL+DhU2HYSoKtjAEPhg1QYDtngGPBP9DmwP3XnhY/PTNotTALNB4hhVDrDdU42Musw3B/KwiefmfzYXwh8vI/8d9Z5eZEfi2QdebOY1M/j5x4bHMPQg+treY9j6FfzQBLc6pXiHcB7jwGog74EdR1jCI5Rk84ovVJHYQ04q4AvpvYZH//M6+1zfMkURNgvOEYswJ/mzpKSHjgPz5Pxo1qoe6UiqFcE+JpjLEDgR81B69GBg8E8+EdxGFGaIPtFL81/SxJGM9wLCsFjjsH4E700V4JrchR4QHOMEL1GX3CK61Wbwv4Q8YV/wDHUPDfOn+ntXzsCP8sFwlv1MnMkfjviCwIWYoYb4RYcgEnpOjrEF041eafBp14R4NeAps9OwMHYflAO4FeOobosvP1D2s/nv+mFgP3CPxEgGFSHtC0uEn8W+1/m+n1zE+d/oEKyWccI0WsEArPXKxWiV+pFVnKWZlBVL9OE/XChZxfhOUb1T5Qc9CDL9Qy375Va+PgKVKmn7z8RrWsrnLh+a72Ch2bj1mLYn4a9N6KMB6WsllnxmWy0KWvWuekYxv++bJXlwXyMf+vpvX46jms0MYOeI9PjtzhG0RjkII4R93GMr8RhNczWhYv66rIfSTAStj2OsV69yEZFyBH7HAMJ31FNiEzUMWIwxyiUH+oC5hjLG5f98W4d40JTOfqo9lf8dHoMzqHZPxgyvrxnUIgtx0ATn3JIn2MEzaMzflAOqjgG57iBiZlruPDLNR7m6yha8QU+MBocg44O+1f/UB3jPfspOtRr9I8F1+AYVGcTOSjwiwHUCY0/k6OT/Xm1eMGpW3oM2I8h8EUWhWHDfgQL+I5jeD1GQI+B/Z7wjOAYvnuer1/Y/8TO3CsV7k9zsID92eMYIQNeeqWAP/4Ixyj263lfPOhyjFjjk0zssQutx4gBfMcxePN6DOAXjkH2C0zLMeD/yjEEwW7rMeB/7DEnMYpP9RgYTOCL/PtzPUY1CBwM/5qh2NAC9C9OKXFI5d6sutLQkIPTEanPg/BN6txkIAs/R27ho+jBTVJ4Og1sgxphexTLp8AHZotjwH7kHNUMwhShlxyjEgBWCfc031EJc0Sxk+sYYfQYNE+MA4BI3TSxkv0mB61D4OM7iPDD9etX/2DI+C09xhT4E8MvwrKab1cHWCjwT4ELp8eAf2oOB/w6/KJTV7jK2M+uZPzxgR6DGXIdfpcrWtQxRDCE/8vwmw10dxc3T48bY0StAGCH0F00Wo/B/k/gl++uLY5Rht/yFh1NzTcYJuHfyjGqu775+9PlB36GAjkiCIbhGJJv6PMnLvtpCm+PY2AI/xhkv1X/YHhSakHsosE0goYgYLiXxY7mm+ObhmOEy/6Hxcdz2n4esg0VAPj0FYhtU48xzffz3NNj4J3l+K1D/BYgAFRc+zwd5+FDWDS5OsLpOHfw12EufH9T36AcX7+yzCwnkjLbfUQwgTlH5MVhzujXMXhnZOfwf+zVMfTwmOuSEnUMwpTRDCIYv/Dpc5E4GT2GGiJN4goD1zFYMw3AiSFerXqMw1yXwv6w9kMkrQNq7Ochz/MxfuosAYSmyjPYfoiwMSCH4BVyCFEOVYd5AIgdEk6Pgc9mfPifchTYb/QY1j9IEEUdIwzH4GHVYwBf9kpNoccQh1P1GF/FM209Bp9O1T/QaFUH2Lntij9kL9w33Yn0PJyXyPOcwouOv9scElznCYHvOeQ09tP356tk7DK+LtxUBwA+dq3xHb7FhTlG1PgG8GsOSvgmNDK+p8jeLJTBD+ATCuLb12MwPpsVcZ8e46z5dZD/23oM8j+AcMcGLD0ww8vHODwd32k4jC34UDokBBiOY8jtMf5JvhNszeSgs8xjw2GH+5aJvRw09SHOso8hFTSkBLFdx/DDWeznXinNhRhTzIEVfKfHCEU39TDjepybdQwdX3AMqmM49y63+F6pUHUMXQcoM9linh4Yso6BnKaXow/GZ28b+/Xw8sKkCo/G56RcH85AKEmXzwbrpFDZj9HBZmt8DGio5vkOIbGUHCMAyGUrnmf9gmfq5QkExzF4iN2pwvNur1TlSMF6DPifne/1GGilcParLy7/27U6HEChCo+KLx7n8BwDFr9wnyKO4Y/C++dFnumkm4KDjYqvOQaslUPtnwl8EV/DkXwdY80Qh4mvb3GR+HMRgLI3cYz+VoroOr47vVLAl2/28TX4AQIJZMOUWmUf4DOHDEdKjccQX4yoDpm2F0grfMpXCJ1CEW0ZiScASS/bpNMPD2cCvNbMQScRDM8x+sOHOClVHSPYacTvqAVI4m8eBfwPDhDE+MmqDsdInpifFX+PY2S5ZF0dw2LWAME/uo4R3Y8AfrVfJ82+V2rKefqUZkR0OQZCi2+gg7jxfRwjRo4UzvS9UoNyUN4fjILxPceg11iPAfujxTEYUOgxvitmi2Owf1iP8U0XdfgcBfgmvlTB2+IYODrgf4tJHN8rZcIBfHimzTEwCqHHeJr44mlTxxD9+k9RZW3qMWQd40koTT2GsH8W+w3H0D3cpk44gS84xqYeg0TGRAIlvu+VgkjXcYx+rxSJgDc4hsP/lGN4/AC+S+pDVzC094IqPNjCFnwcqwkiYKzHSLZfD3nPR/6VYZbw+DQ7X4j5xFnL+Ptpbj5z2C26R4EZ4nwki/rmfRwjn+J5cr7jGOVJ/NrBEQZ/7yjy4KsuDD4/o9XymVR9Jvv7ZsOx1f4sr9/BMTI5q8CwwTGYeqGCcRvHoLcH8FscQ5MKDPHNxDloS4+h7ScC0OcY2LR/OhyjDqz/FwHb4RjVP3VIEzQmB/VJJ+kxFkHa5Rjefs8xsJn4wjLg4+CNHqNtP0TAnmPwpv0PkaWJr2uhQZcD9iP8uzgGdgf+Rnz5Hk0cg/BVfL0e4/f2v+CK5jy0mY4Fvr0rCVJBT/J7YuHfzDHI/j/HMUAg+frlbVKUPf7J8aX7stdj0GYqPE6PIT+XKwA/MKD1Vn2/vpYFowIQy84E/o0cY+HDJo3fTOYA+Rox7uAYU/nnamcRcd+vAIT56mTbRHADvAjDTMbPG+sYyfYn4cOqdlmDf40U9u9zDKiQqY6xzzHYPxP4jmOw03TNdZdj6ByaMA3HAIRuntFfkNM2CnRydBRiuxxD9+sD33a/9jTfvsI29jkG50DmFKKAOs134KyF/ym+plfKxDfKMJVnNKaJL4bANxyjJTCo9h90J+ppvo1IeuGb+Ir5TsUxKntInXjMhjJbcAzgk+Ue2XMMiKTFUXTX4OP4PlV2YTmG2WB/9DmGCDS9BwRGxHdb833Ql4N6T++nh2D/Qm7EV3GMKfBlbpPCQmf2ZAKAlcZovbGNHAUMbBqxCMdeq1Rn3eH4VSwOsdKn8I3gbfye5zkiY4g6xn6v1EGLTHk9BntJ6zG+yyJZ99cxvpf9ajeOb5Sh12Ok6O64i2N8ryQV/kFSonulOuH+lirenV4pbLHwcWbA/g2Owfjv1DEE5tT40eUYDEIcgxhIm2PUjfDrMAsfNr1Syv6STlRvZzde9IKxX7T5mWtM6zHYfj+nox/CP9gCQE4FZPkI90qNSimTPQMUkaPY+GJoKjB2Y45UL0jCp6HXfEvvVnxmX23Ndx3aCo/XfA/iGGy/ntzsa77ZYQ99zkR/DT521wN2ShTfoK+/Px9yWtD3ell8iIylZ3BKd1pc4JGHSSyNwbYUMI1nvObb4CvH7Wm+mQDkwAPlEXaiT1MOPH3yubjDMYAfxDHM0TdmiI8co3AMWi+wW8dg+4ljbOsxWATc4Rh8FPqdmZQEbOgxhhQBY8eOHsP/wHIG+aejx7CvavtjhOEYtHGiBvvJaMcx/LVW7Q/qwLYc4z1VyWhxjE9/Hte/Bc82eqVSYuqk2+sxcLRJfX2aY/Tt9wmi2Iweo/jHZ+c9zTfj++9b34sVxj/GM1ESEafHwHXzVCIrk6M4EXAIkW7v6ve9Ui8HNDqab7b/ab7S+71S1f8vZbbT29CqfCyS9vj7vVKnvUfrHN0sV6LXNNnvlVqbxPd6DEvJ2P7tXikyh/Dv7JVi/Pt7pUAA9BYShee9zAEkHm5wDMKnER7M9jyoxg9KKmQOavCpBLbwAhlhX48hD2rhE8dg5I/T3APDcJDabF9iXvaPRh3DHhT7x3MMBnd6jGMIlaq1tyHydhxDbl6PkeF+DXAKfMeEgT+pmUdxjA8JgOcYHA+vx/AEgGG6mu9OBaClx8CyRTgimYP29Riw35q9p/n2BK+t+Wb/93NQYT+76zCe2dV8v9QkYlePIcL95Dfcqvk+BP6G5rvaz6Zsar4xYALm9Rjv9Upp/Js134zf13zDUXw5K/x9jhFsfzg9RreOwfijr/nWIpzin/gjHOMRPyIvqFx/YVto/Nwq3hxnctIWnmP4ae8L3xS0zea6Lxb+FA361CvVwl/Ayz+aWnv/GD3G5f8cAxlhEr6GdRrEF1Vvb9V8xxEDXk+uY8SeHiNeyz+UQt3UK7X8A5i4XY8RR9nJ4zePInJU+3nR5tjGD+Bzjr6nx4hjDKzXkppj9GVCA/4x9uNdbT0Gne89PcZwegyN73ul+GVy7/QHC5her5Swv6PHwH+6Xz+NZz5tDVHLpPQ038Nqvr/fPJNNDiH1GFlv0ONmzbcheNt6DMLf1XxTi2xBuFePQRWkJsfAn9RjkIjccAzanB7jmxLZ+/QYRPC8HsP/rhSJmNF0PS3H6M3TU4XtUz2G/L3ReIy/KD1v9OvzRi6YZ44c4BWlcPYxx+Au2eDv1UYOLU+OhR8+R2+rhJHWJj4Mqe5kjtHlMMBPIzCS9ns9xmU/4GMEFc429BivkcUxGeSuLT0G/MMduvt6jGU/diWOtM8xHgtfcgzbC+f0GM9I08yyRfDGE96H/8WqRp/oMR6Rw3IMbE09xmU/OAbpMTZ/V+qgFPEuPQYqVG2OgaHtNUoCaXIM0yuV7xzp53UM8k9Pj+HtP1oVufYafOPoz+ngofSPwLccQ/ZKqToP4Rs9hnCVja/PnvlhOI4n8ff1GFjJmAH7egxdFqsE4FM9BvYljnEQ4I16jCACcJMeoyPyNhyShhLfN2l7DsktQP8YSdZgkltkoo1r5pW8W/Y0wWpmFAs95GpFD9GgbzhGqGcKvumGa6VBjI+niL1s6jGe48KfwHQ01wcX+HMEcsSb9Ri5vuAisyyyShyjqcdgkXfyTYJP8z7HgP9pom5XjxFFZJwqCdhfHyMRX/hnV/Nd10lY+GT/fh0D/vH2f6z5hv0ACjb6Y83337BfJEnYu8kxGN//8JHnGH6Se5djDC/y3vrtWrMYb0eP4e3PPufX7qLzQTjfab5j+B8bJZG3Ta0EvrZ/4UeDLbteqWp/owLQ+l2pGl98mjC72yvFGsINjsFb4OQWInV3Y3qrGDBhfze+em4xGezQgL5OZTdeKd94pi2EfAizN3ulAP+X1o4abmZ7CsEk0rTQ1KFJUxgrryWlOy6GMyhUbGucOcAxUnDcNj8AvucYHl+fQMwxYqsCgFcr/jSltLZmFCLpHNnQNiGa7rgeC5ZyUMExsHklA/yPHN1xjH64jxijwTHaRaoD9nOHLkF0+/ULPuXoGsBXY4DP8e3j6yHsH9r+puYbz0DkzRyA8T/hGAn7qZkH48/rGKH9A7yd9TEarZ/NXqmWxsNwjCH0GISvbkaGY0j7D/ObTr1eKaagB4MYfJEjCj3GYWZb9nqlgG82k4NiE/5xMoO+HkPbv98rNWH/w3pmT49xNDzT0WNwAm2Yku3X57IVaRgIcF+P8VLf4ft6DBYBK0w9D+IZic5pY59jML75oaE+xziVGY15bjab8VHHEH++VyrUQhsdjtHVfL9iDMMxHKy6RZH9rnlmmuAqfMpBzWrkHF9de31dg5g8T0+R7a+P8Sz2czF9t051UHwLh9leH+Nb2S/0GK3sHPYLjrGvxziwA8X3Dj3GN55ROfSWHiPD4G/qMRIIpVcqhB6jxzEI3/invz5GqKn0XT0GwVrMFse4juFvg9nWY8D+wPlJCNt6jMt1f3dniHutiQLf6jE8PvzTVhZZDgD/1BagPT2Gt39fj8HfbwbQ6DE8fhnu6zEKkNZgeI7B1II+i/A3OQYjrZWAB+S/1KDvOYBRb+Q5eMt9jgH8JMw7OUZCRGuYBj/P+DzMM+h5Ax6GYzD+3OYY0ksJhgqOEV3NNwcG+FnxwygZCr6/1PNV/YNmbmqr6HEM4LP92G1nfYzAStvEMUbhGMDvcYy6UrXnGNFfg6+uVD1v5xhsP+foG3qM5X8d332OkUdBqPbvr49R8T3HiGiuwZeJfcEBbuIYbD/jb3KMXIieY/TX+eaX9jlGcLA8Zl+PAWfOkTJd21iDD0dHOvgdjsH2L/BGdm6YEtlP+NGMLx4K/yS93OuVYvxZPv0QN28dX6/HYPy+Z4a/1wTw2xzD2A8YEKQNjqHPNRJhb2m+Gf8x/jlyDJ9DiwOc9ifYZ+YFnlIbqqtA9n4/bfm3j4+jgEhUbB37g1++/GMn5gHV0mOQSDfokzb1GMBHr1SI+EZLjwH7B+dAsd08wyJs4PfDDQyJ3+mVcsHF9rUAZQ6q2CPHV+GjeYbwocfgEDOetl/koLu9UrDf5Og60J5yvCJhnuzX9xxD/4yvsJ9yULMJPcaj4LteqT7HAD78o+PbX4PvAf/DfkqQEbBGr1THfkBEj2McFp/t93oMHALg9nql+K7AIt37e6WWwX6G3n2itr/ghwFpr8HnRcC+GM5OqSJa80uALY5BD6mF5uZeKS0CHlu/r48L5IGf6DHnjO2nFy3QxjN9PcYkEbA022u+bYf4D8xvn7QrmSU4wNSX0DwxjSL4tqyGIO56qmzmgsUfEERVJQhJTIXiZW6e8TTV1zHgH3CMu+sYy+rCMZLCuqXHOKNipkk6YbnXY1xWR2InKQLmM8dPRUOjEiZpayaIABD4DNXXfKOFSUzMmx8xMBwD+JR07mu+keDinCSBQexrvoGvJ7a3NN+vOYYW0e5rvl9j4U+RdJL97Rav3/mn3SulGye++fqNuFHz/Vz4Jr69Nfi4hSxxSIPwyf4GxxD+hzXNNfhoKPD3e6V0kPbrGKZefK/mWyHcpfm+QLJcKTu9UiFE3nf0StEwVc7R0HwbfIxvrGNAY+O171P2wvkpj0O1wOxqvoHv9/MLc039K0DIbZN2tS0uvlw+cwStz3UjxzjP9UyezDFERFoc41qq+syRto7R75VawAGzb9djLPv/JMc454gAxzBh7XAM2L9yLJMafKrHeI0RnKMgRRCxNprgkuAivk2O4fUYwO+JgN/nGM8VX+YY25rvCx/+V80/5WGnjsH20y2Uwt3tlXqa+PbrGKTxiN9xjEa4jQiY7CeD49P1MeBT5pD7egzYXzkSx3djfYycI0JzDL8Gn8df2Ca+bg0+fc9b+3N84UdyV6tXKjS+Hv5/OQa9ejvH4D1NHaOjx9AgeYsew7h6m2N08ffWx0iz8Ij1KuPrX2zc0WPQpghSn2P4CgDnblMja57Md0quAMhtmo4IcQbMhRojBccwm+UY81z4qdw7TSbtOMYEkRUCDDz+hGOcuPnG3RwD7g6s0qXPtj7HqGWpcJWwqU8kjb8AAysA3KzHgP0RzDEcmfS9Ui8Mw3CMvh6j9FBOSko2NN/Ap/ja5hnmkFYEDHzfoB+tdb4PNXM5eZ6+Ed+Cr36x3usx/JY4P9l+RckaNCbJPxscw9pP8d3+Xak019fu70plNFaGrnhO881JWBApAqroNXIXeVB8Aag136PBMRr+Ad4ux9j/XalgsUe/V8rrMeKz7NwndgUfHMMidPUYfY7h+Vu1P2z23O+VYnxP3j6qY6SxavN3pR75Ix8rBI8rFgf/0uXbmSLvkfOxZun9Fh9cF2jOydNTCwwnDYUff9n/8y/yg4bDcHWMxDM/4Q35p3+dHgMi6aKxoz8hpfV6iTyPMU5X7MPWx48iS+o06DM+W7b8MzlH95vXY0DkrXLQua3HyBf5h3K4Euim5hsi5gjK0e26lb6Ocdk/BT69tdcrBZG650hcoTLBhX8EPoW7v8ZitZ+aZyjcJtC0Gf+IlL3x/Xxc8VimCf8Yzbe1X+egvldqGvsvSIG/o8eAyFvn6HJoLgFhv+mVausxMq+nInGOw2DSZDf1GHnU+Io6xsd6jGX/NP7R8fV6jMTOexwD/wn8fY5BA23kvh7D4O/qMYDfJ0Lvr28Q9Wd2t/QYGh+A23oMjOJqAaKeDgnlzag5KHL0Q6wBHCAbBjlKHaC0beVyUiLi3tUhhlNwjDKlC2N8HcP3Ss2B5oQY0502fo2ayfjoR2SOMQW40WPQSs+LIx0i3WS3ez0G7L8AyjxxZwvNMeB/cLAwUB/h1xxoElpfjwERobrHR8d+8cIB/6AOQGtTmgZ9g5+Swzgcv8+B5i7BUaN7A0KwIeIUdYw6jI7mG/YzPgC29RivkdybgT2MHsP3Sr0iYTp2hv07a/DB/2HiqyilqVOxfyJKALf1GC+6fo1/Out84+4l6pCOsvpLLCMHcTyYstMrBfsrx+AUPxp6DMYHRen6X3AM+lWDDXxwDBOP7UYmpjR7E9s8xOnXmfF1egxvCc+Id81WdYxtz/gP1TYPswbfO/iP8dVbfUr+4ofKQaExlpYYr1qOwVkI/715RRDHYD9nr44Be3SvFGaqAkcm9BhdjjEL/oj69n3NN67lvDhGTB2+aGq+1ziivN9MbGNoeqW4CTZu6ZViP4bhGBq5gd/nGPykxOc6AOAbjuJtFlKh6jAh/gw+2S/iu6HHmACUdaodzfekuzJz4B09RgbZTzO1O3qMlPYXgI97pc5g/5P9G3qMBCrVaQmjxTHY//X6hf07a/Bl+PNzp1cqB+GDI3F8Hb62X3OM0VqDT8cXHEPaxb4zmm/gaw5At2oiGSbPmEpFjc33SnGsdjmGr2OM3eYZ3ohCdTlGqw1pg2P0SiULMzc8E2qd0keRMZxiTTUkmp1+ffwsDOG0U6tChwBBX8qGTfU4Rp2YORTH0JZ7joGk8xjjhAONuwzFLRqGyMIxmD3KzceXOUw5aTuab62snYO6OMmrGtDg801FLSbPQx9u+Aev73KMKoLniecmxzD4UfBr7d4qMXjIe1NS6PUYPtCT/YNN6DG662NIfAz3Nd8nJ4W7egzGp30aegzTTnkOgd9o/gkMu/bHYD3GsBzD228KFxhafFHYofiKV91F/iLR7Qh3fnbW4HsN9g9PbJP9vo5x2d+6vkIkgXp7TST9ADECEgwtpwq2X+oxGN/n9MHxdXqMUfUYwWvEMj44hsQHQK+OUbH2U2f6ODDoxuz4bh3Dgyh7fB3DszVfx0AFoIQudbu8WVPA5azTZJmNRXyRg4IhU+cLOUdPzDPHKG+WrNCTGf9SpUqZVXhWhrCtdZvMWk2dxuAP6X35oZV5qx6j2H/Nc8+mOJ45HtdiUlBKS/hDHeas9nOt39Ss5EcAeOKLjXppTOwa+Osjsk6otJI2jY9LQNm/pfmedCUI+2e714jxhR4DKXuDYOB9wBd6jM7sQzA+rt8h9Bgm3M4/cwBfaPoxNCGeTFA5vhFscF+PwfZrPcZ4V48hOm4Zn5Oq8JSV8TOuG/usvTqekr3VzpRwguiVCtUr5YvPAC3fP+/ZP96zP978fiA9xnulzqT4ul6v6p9p9BjV/zq+pMcQnNnga05Cegw2QPyKFOIbSNm9f0a4Ooan+Pt1jKT08N46RnZIS78E8chHjoG57aiPU8xwKw7A8/QZ9v6NLawUld6ea+IcLxHgNOmmaLaG/Tgpz9b9j4+CxSHnWPj4IR1y0a4eI2fUpCSy2LOrx8hx1KQhaZWuph7D2V/6I8hRdjgJXyUl0wQXONJdsD9oIkToMczJw/gJ/DJPk9hNh5v2EfbLpBObrykZ/CHwDUgYfDxFdYydXimNj7FdcszXMXJeTo1Er5SuA0RHj4GfT67Xr0iaKTrGfojgZQM6N9AbTMZXE42sKTd6DB6y/SbprGbiOBv+x2Y033rqLwo+J4Uh6xgELmA5voyPpI3sN1s4/+D6Vetj+I3Pn6gXlJ/n9t6ZY/lnmvgyPuOGsB8+3okvQkT4eLuok8g6BuOHtH8SaZf2c6rL+BP41yh8ncT7R7z6p+oYOEpBBrbrGI/xKJ0/FsqrLASZOUAn8ECs9CcxmY1gCqg3Pa87OvjQLo6RgleIJ8305FxOuW66J5bQ6m1ej4ETG/PmOldu9EoBn3K4HY7B9ifn0LCzf6JW/IjfT3yG4Rh2SP6Hf5zm25/G4JAFEB8iNN/hLzTGTxYBo19WdUm5nwMCPvuH3dXvlQI+9tvUY2h8GN7XY+hvDOAvTOBrzfds3ZXIP06PMdu/Xcv+l5rvhsQ/CJ8M1viM07Df6DEcx2D8IPtv1Xy/SgM9pYde8y2m4Rh/AN/XMZDSeftho9Vj9DXfr6CAYuhay0wnpPVPO+Xl3YLuv+JyEJTS4cOG0ivlNf0aPwq+dngENN9Os17hJ+HjHxNfo8egLcoNERzS+8dTjuvfP6jH+B9tbvF7rbl/AQAAAABJRU5ErkJggg==","monochrome","iVBORw0KGgoAAAANSUhEUgAABAAAAAAgCAAAAACplVV6AAAcTUlEQVR4AbyStxrUMBCEVzr31NTUlFDT0tOQc84555zeh0fgCXgAenpbku/Y2RGnYGhZW3u+b37NrIPb4513K+9XbtC2snPAz6BLr77NaS3iV3qgQUYbrCnzfU4pigCxA9vowfZjTjHCQsSZORa98Tv8THNMMQDQwnYsFkJ+zXPUAlARCCcyJgSEEA1Amcr5wWB/CjUgK5YxOzB/jFOOYDlGYP/OOWE+PaYgpfyf+9+lOgBUlKqy/+7sbwapBpwRe+kfosph4gj1neyr/BXYSGexfw17GKgapiht+QPJ8k3GmTrgEPLxfDDiNPUjyHHLx3bsBtHqp3l/MEC+nm3CefirDoB6aBKuqL6dL44gmoQb6p9or8Qy4Q7yE+Nj1uun9LB+vnqOqtcJT6v7hzQiZSwjvuL9Ix4BWtCLwTt+n1OM8IWIKiN+qt+/qgTKiF/b9wdiDCMM/o/unTYsNK7tRfnvtLSBdljOizgKpgFjeWW2kNe1cQQywpLSyBOQvN17OJHAIlgIytbsDvIVy3uhigUztBoQCkYYLKSklEpYADe2vR6SxUyGUfWdzhKedJSlg4BhFJim8n6msxaA9cJIW0ylyMcqfTGbw7glsKFm0l8NTIf5dtRe9/kWi74kUCR6gHP9+yH85sUMt1zVQShck2ggM+//tkcv7HzL1K7+vcOp1LjZAEGyTme7BfrT4CI4XX70SVKEkQQJbk//C8PsgZMdwjZ98Jd71LcIulGWf4gXt72GNCld973kLN1Hyk98PHRew39ymeosNsZxLJtxX7K+tsBHL3sfyASx+gl+uullq4fPED/uyyLijyGDFxaO85FKfD20nJ6wWPmNVIov+769sNAD0X3Az2dH4kRxWYSH4If1pOxsaOsD2D34LvQnKI1dLbsNBP/sSBGsNB71+5C4cpRsbFjg8k5E5UiQw8HBFKdOkCwiv2rhXg48izIikIVfhWLUrkcElUr9xE9NkQjx6Yr8lA9cPC7t8wOvxm7TtRBqkJDfChDKHrj8EwBpC1/94+XKKKQ48T7YXSRtVop6/3DNq0WKj/ocG2Xq9zaDA1G/jPcH/pyeFPsjvMTSWqvzX427KVqn7O3w3q33o7+JxfLQs+s8y/gJ+U0leazO66xfwV/w4DuLbxbyr8X4sJCGr/XhYAjx/1Xx00AWzwQu8VntdVlIK/82tIxrVA3/EvHrSt9KjF3HXh4u8ke6Jpcg1F+x12fX2B3jNxaZs/CVExMeQe74V+WWCBuzPas+/13wccD8KU/646Dodp8wQzj5STIrL+uEoT9PUQQOU+E3nRrW/FXlB04G0wGi/Nb+YLM/8HF752LCwdsnTopPPhA32mbh2t9HeLXGwKn/l9ylpNsTX9GffVL/ePqU9id4MQ/ZG7/uS0W4LcXdzI5yY7chP8L1/84eNuuaCjnP2OLdh7ulGh6X2YhvKY8Er0u4Pno48jvNAg/4dbXh8EE9ZYwx+a/gmyjTQo7wdgYuPpw39x4q/C9+rnHAt6X/M/L3BQQPM/lPg+YuhyHK4+mf+nBwfNb/4b+3ri2aRYxL/nEoOcquIEqC+IPixKp5gMS97IN/XhBI3bac/vf4zXVvbO2h6Sf+7J9hbvnU6jxA3vtDQVM6Z9DKT3gopHHCRPxXeGjmTgbUUDhhLOmBU76qSptIUVInHgzoijKUomTu7xDXJbNGAz9V/6JLMoUGn/13WZCBqinC6S+eMZM+PnGbEIlQ45f+6U4O/gAv3s3cDv1Jjj99SQoqQHfrAQTM/OsuVC584rUIwiAtMJs7WPzbgHtIJhh4rPXR9poLXC/otTH3MjIBeQP/DP9qocgUK2XzBRIfzrjdu/jnzV/DKzE90wAJV+7K3mR2H0DCmRDBATz9X0VIrjGhfgYA/6kQfLnhn/1YuJEj+/MYABXOMSX6Vdf8KNL7/ucEF+Ursvwcfsef/ROoDiqPfR0g9Meg83qVegzweAPAB3joQ8dDxhe/KikapPv2Ki1iRH4pVRlT4axtHiD0P3DotHGMxgHy1r/V15Qyf+LoBNucXZtJhzYGeNZXVntkopsqnP7imSjrjPnWfyyU4rf+ZZvStv8BXsi2a7ibxpY5lrSZrAVeKlDT5LO2+4QQqQCUaVZq70GOf/Gs6VPrvPiRcalDVzG9HmotszrV9WIHjTfbZXg3Av5msp8WEl7F4KuD6g5kUPFf8GUt8rABeh8wgfOC44Qb4ZJNsDzgfw1IJvDigRA8aBXByV8PEfkWY/kXj8ogDw4oTaAecvh8HiDnpifA7BLxmWBoZjeX+ODi3LIOEOJDl1szwd/xFLT6OxN4KeA6HAPlAD51ApGfjMhPB4jw6xU4GzQS1x4f+6N/8ORCttZaB9f+EdwGBbi9yiFc+0fy4pLp/ir7pfR4f9aLO283DaD2n/4jGOyBf+mfpVbA7X/HC6/r8J2Jr3yjA1JlY+INpHElnp/ga7ksUC6DL3zUEfIfLWe03agOQ9EUjA33/7+X3mp7Ly0FZx6jBjeToyPLJsaSoDP6EQWFfhz9QLpH6z1WB6eAWpbVx1mpYRr5AoXSoLwSqBWl+QYUfnDRqBI57pyjQX1EDWuYYT8Uoo9eKpt4EUfYV8H+g61p7etApwYlQieYCCoH/XtkO7/g1X5waxHTL3jgMgCzSFr7D9gilN5H/05At0vhaENn0vGvujffBl7GL50kfJ0f/IEXiI7ov/5pYvou3+7xzyHWel04n7jTAmJXgTq/UrRNrdnxFf+idweArr07/4ozTARj945f25fTP7yAwvf80ziGsy/nj+5zHPu38W1kyn7MLZxja5vB/BgBR3MEFihAvI8GMk3bNNC2TTUiBIqGn/g0wCPaiBowoRNEJBthQ8jej6P9vRqvaJAc4H1EXHMqEQfiGCffQsQYRUMBNVEOL9UYYQD8Vwn7ohfQACfFQekAeNonQonmdVRsKg7sv7QvAOIbd1A8bHyYQ7C3GWLff+1xzQ8Fbej8FW0b85Ohjv4RIUUb9pM6og0CdGa4gQ3b5NfxM3Hh47g+z8+ZY/Ct/uOfXaea9m9Gd2PfU5MyEn/4bzvK+QPHdVww16Tv6t9IOhLYK3q4GyRE9hn8PEGHRIafQzDCDPuOSw9s1vOHeeHv49t18hPAkSH83jKEDzWjtiM+VswUGrjSJzuVWMmmCP/kazukf6ghgOuCMYpe1seFNBWxBDKGTe+5wCgVnf8tIXSeYEptaNQQPXfgX0tlsB9FOK9ADgUpITgLKOxjGIROskaR9mcAfEpGJb/glCrN8EPFKh90+g//ymwa2LkAQw7gcKHUMPIC+FbKshSSNRLwRsdgNUVQGD9s5ubj/NQimvxA9K/VIlqmCKBYOIREc351T/8BA58DNELB/9MUGEwlUNyXH2iJ0vMCGfPHkASd47xAxvybONZU7zPOGBjtev70zZP8bXw7xzj5GcMVzOFu3tjhA4zmqBGC7wIJFWOIQFTh2AE0cggs/JN2ZAzSNtWoIYBFe+jWXkKIU374eGiz+Ttan6XhV+9nH/EzBk3/k3KCXy3O/XuUMPyCWopSioo5aLR3FETEbA0R/QbuIk5Y3YGQFsBVVUZcwbV/Yx+keBi8GWG82OO94KaJsgD1vwY4dYe771Zdpy93cGWvG9i4+JUXSMZf6B/nJ+0qdQFqf5ROyNEdIf7LBI1XWYD4X+WqEQoCfsleIpC7+qdGiRD1/1JjjUBe2E9QvFxAfz/MD/zH+Ss64+v4NurNu/ZpgasQzbGE8FuONH4O4ThcqUBjJJ+fyg/Eawx80ea7ybftWo+XEYopBiJf40QJW/YfeBcJvs0Mkf0O7mMJQzOC8AzWJRxtIIEhzaVxrSkAVuTXFKXY9woSCPgVjV8fV4hcc5XQpW8X8N0EVXsuwLBfoGEKEOwXfrRC1pAL0P4zPq4LoI5fcJmfiku9lgV4N9f/skBYYPJrnlJThPiGF2ZeABH9rwnIVS/AnIOX9ksaVC+QXoEEfVciFOdXGTUFUMCvijP+5fwxDYNk4tv4NktJl3e4RgmrLfK9KfSElQZGA7+JptqF3cJv73yMQ46X9tWKVtOaAP9UZLSUOZKK1P5R6cuTjsRkGRUNgZT24qvx175CDi1lk0WgOLjh+niSkc2RF1Fo1rkoFoGLcjQ+oxCnJkh+w4KvivVIUBWIkgMuRUxQ2RHFCmcZUO/U2EGBP/Z/XHqXRcTn+JNoF4nTiJdaHmhwwY+sckpnfiTH+P08XQCXDI5pkMTTQOClBnaVIqoK6Z+F0CyiehxXghd2HJ89eH7hBsz4IRbcU2s1O5D1/F1Bphj5bTxSADdRo/BHCH4CAYZiX3forOLBh5eJRA3RV/4W/CKDGAI0+z/pOPEelmsMIkIDvwmoEUCx0TNA0IiAgn0AeygpysC+1PjBkxKis0dcjyKbO/ztJoS/7C0W0soOFM32TDHM4ZXEM0QuF5CQ/apb+FV2SMzf22OPrjWKeLeDAn3sf9f7jECe4w+s+p94zUJKuVTzTEH1b6w7OOOP2dUF5H0B3j9BHwUvEUoMdMO2LrwVUbHwKv7RlCLuYw83lagRJOdXsBSZQxIvGIqBLOevnKFv45uRkBnVaSXuWaSDgcIRcHli4ISFFq/RADLEhsVr4ZfnCOZpjdewBhlHWBqcKZ0O/8KoLoZqfFPkhp1rbGG3piDAmdd2P99sLHGOywnpG+6nfwGWQuSTb9AKjJ0jepceKhkCKm19ECp3IM7Qo4goN62IA4eJxxf83iOaKY8sZJHMPgh5liJm6d86n/2XGoJZRJCyEvhIUchifI7G5zQKfoNbCasPemXvjA+y9dpYYEWBGCimGxfCxnMBWknEdB1fzsBe5vZRRJ24kd1puQxAbI5f2z6rWS+QZClBAjTFKCFAOX968N+5nj/ru8q38W1YYMt9+vjXbUBXyPG8DYiAhpxtvQ2I+ZVPI+tEyRik3gbErj7wvtcagPaHdPnu4RiSXu1valT+mfzeyg5fawi+mlSOZ4Tg+KSHIfEpYevIyeMC8diBIg+vieyyAEoejeG3GgVRtph4KZK5QkfJ8TNH1YoxQC1ilhoCbVsjDHN0VMJ/ZssIp+boVvJEaOsFzjpI6fxcF9jvLup1X1yp+LUUUe+s1H0sokYb44e4RHClEqhc4AG9X8FHLSSWIrPjl2zz6fyNhL+PbzPHjtZc+nrPo4GvqjCAmpm0u4VqpY6gBewDVz4v+fLQkV9rEACAmuiJhkwAIgf8IvJAp4Ge9Pbga38CNpKE2XUFa41E8yH23x41Co/rOb95czhsz9B1b1OwsSyAyNN9ziaamgK4h5pizrZWoVG424Q0IQrmN9i/eis5tlC4ELh0dMTl4t9F8mutoiwdLSz4w8AuMud8WWDk8fRtDaS6V/E5wGeEgv/lr1khehgDkOIH6PhrCOD8wr7WGkrgW3DxPRQl1/HRcZm/4oA49uccfxvfvINGa6Ie9+vzNtqZ+btq3O+vO7RMoBN+rQG4Ay58VOQr9gT/EWGIG6VDtzmrTH4X1f8FPwTd4fm81hF62cA3P85Jss6RdyFy8hxB1imMcfwspzDvdrapUe2r1x07mcxYcPzLGKqGeD75vZU9rN7GU+5t1Cr5XWsUcw+86m3CV6kh0Bd7bObBjxQl9Oo5Eb+f+JC/hMD4j1hjeEQg5PGg3iasC3CqidOuEYoxgrLukOB+Web4MWAkhX/Sr7WGAv+npJ1D/LbG4vhHzt96gbp/6l2Cb+NbZuclke+u4NikBEMCZ6c6tvbIwSV60kapAYj9m2+KD4Sp4GcNADwT+Pm6es3hs0AxROcKUaPwHcM7v2UsKR4O9FIDyLkB4hd8/XN8Ys7EkfRS49C8/ucF9N2+I2lMvvPns3uJnvDL/BmNp97ZyzNS6wKkFp8P+vy+hwDm+f41ZsVrDFD+quyZopjnCpvCBFbxU/h63kUJkZ81iGcEEv6BMmmPIiZ97WLgS4QS/uepWndI+YFFLzB1Dxz/GQDj/3CBfO1ipQbh4fjEolkvUJMv/HV86+Ps8cOzMb1HO6KQN+Xnp8fHbkCBnr33s20/+aDOCS0gGo6SZvceaA9+gPBH5U/OCLNpYAeEP1lD0YvyoI/9jh4uJj+7f/DVbvBp5rDl60cXjGbCDALBQIupmRrBxfHA7OBs9P7zp6J9NBwq48P5On5nCFszBPlBQft9aJ8mAKfI8XEC1Xs7f7jsEJFQDNvOIXtb3eG4WziyMrPUEOLVsvIyXn9oiv+QjzxzdLooeJDiJfNFKv6GrwvsDz8Tf/0DR2WNUGgbIPgSgZAlVf+FSlv9e0QoL2wUXFpSl/HV5yDQqvz+dXymAPljQD8ySG8Z2QKpMwBrEYxXHudaJBwqAcvf4EOyGVpoyUcfqjgmdsBoZY7sAskQvobQ2k4+TcERccBoAl2yiNEyCi9FSBBw7be99q+XtJmibGXo2mH8WYSUoePq6V8czg+Qeo/zlzNsq39OcD/6cfS/tnfezN9HViE+LsBfrCHlPr7JfDTABDfLAuQ1AkSWHBwZ9TbiusB+e8aDa4qAfcOt5Taj7gw7GEsKQBevEXRMwK7u8RuQBtbzAnLX8T0iGKSDR+OcSk++8Pfx7frPH2twxibH8teAKlhRyyqWeCnycRz5oI7Uha+BpMpXo2URLXnZw9K/n1YDYKFReJYB0WjSm3yPfJ/+6bjw1NC+4xO2mZ4856dWCZ1fC4UBCIOqeUhvD/sOpdovA7CL5/mja/tXq9jPOQfUxgG5rRcwX/3gKnEc6wJDzvkczbWmCMh9lr/2m3yaVBjlrykfVT6URlgPnTVFQP5w5sQi5qJwRoEwjjUFEKfGWv9WIi3k3z5+LlI6/gATF17wK8df6ODCX8c3o2IiUINljhmkkgL0oYhGc+YOneGpYeZpFO4Wawi98kHhSwLLgD6LaHxkeAw0s4jdEHic8jMSn11I32CMIiplBBLWMC2qDelbBv8jf6Gd43PmMgew2UwBlhDdLMMdeE0RtDJTgL3ax0/AXuff+VHkl/NXB8aLZMkIaUPdM1NToR8yiCUFGsPff1ieX5nCSNpfUgTFbs74UMwIueLneN5GjDfgoJ9ThHibKUyNQOYLBeHxoYiK6llSAI9s9Q/5HKHc4vCfKQ7yOQUIVD4D6F/HI8TNR33mb2tyhpBW8FRQOQp2xqBZbrHhiJdFKotc/+SDSLKZTswQGL6mVfSf3kVIPk1xwOcEsrrmMNMJnxMQps0uQrKIWQ2oFH3u+GdFWCXfopoPEhX7tDqyFiG1owGLiGuR0H85f86corF6/uy5jgCO/hWnnUJHZASx9u94rGMKCaONDO0/58cu0v/5jHVZ/75+dWq5j+8Cu43oPhUpEf+Hlk8RCgb0taQAoKHHpcZY6PGkIW/dw/FgjVDUgY39BUfDsKymUKL4Av/6Pr7lMzrj/9rOcMl9EwbiRgJM+v7P2/lP9IMdYZyPR9Oa3kqLwIeFkbjslbXTpgQahfnmuyahAuEgwEE01wBo/tZfPwUK5cnDoeEt0QZyqPoWJtvShRCMGQ4OBvvCu/sZZkMiKn1lKmJvsn42R/8mkgQmwwwGogs/yCIIdQPNlmEC/KbxAxeb7EOcIrF0/2ZvEj9NzDXAyxJ/Ntfx8O/tq/+mXqXhiw/85x4HuO4/9iX7ZSLbwK+bdOHG3xKd5OSFv7wCUC5c0pbqy345LRaehFumIXVe+wlmfp4rFPn6Qod+rVAm/2d/QKV9ksKj86/xrwdRIA8/v5xBVxhsJIHkxPFgeIhbBKDs9FU8ID/P+vfSz7nJiEqs4+E/DLRg+cjbzG15MGCgKUUsYPdw+B+u/QizyT4FI58rDAiwsSvMmM4AL7E8PvAl/w3BjQdGYPPQcPIWgqz4F7js8318ENrvH+TZNAhISJr9yyANwW/IJhwrxK/OyXgq8HsdT5yr7r/GB0HBjM8e5tSt1f131xcv6Nw3tavUM9OQDyuMy+bfEzg9OPPYCJNuSwAEkCnffGVwCMRAsc/4uUIR/nlkgmp+cmzg73Er5rwF5l16Lh0P1L11LRDWRQk7eLt+evjBPoC8QiipvvR9qMj/oU37lmH5KUpEywJ46E+KpihE7hWgDv5IVxc5wWbPFQYMi6u/Jfrw3zw+A1z0yQdmD4yOeIg1pPFR07K/nYeV8hgwfmeikcYo2w8NcrTO+FYANNCXtd3O/tMH8fuB8wm+Zs8V2hbyYR9DnIFk/eD3jO/8JHxt30RDWd/nUe9+349UXznoOPy8H5fOHpyk6fdEp7UK8M+vFQrFUxTl2CVE/+9xm99BNad4fgXgWAACpXZuT57goxGn9wJDmsCIVjMPyWYIAD/0p4S1dBthafoFDGN6mh4hkcJs31I1Q+el8QqhST0fU+KvRybesg28ue9hvqf9X/1HQVL9O5fAa3yw/wzzYS+4bWcRnhMI+47nA20vnIYFpSbgX41tDwjksO9snyr9f48STH4cwBsOXzvOaiBEc+RDHa9QSb/akQm6lVZj/F8ecFTr4w/G6Dqr4+73/69hRvbW2/h8zkQbKuuPkP16Rfji7TyLgDL06P8xbtcsRQuB9KBn/m8CeYLf5r4JaILOirvdvSHCQ+LQ53xPQaDp1wExTZDuq4U8wYYpDj+6B8EWkR+eJ1C36/K+cPTXBNE5pXqPjGuCKEm4Z/vPOH/LBHfw7yuA/u0CMth3FEwMAvjVocTD1ez1HX+k+yfXScF4/gl+8KOI/7X9yRP6Z/v5/p94TifRA2Q/k44MMzzbc1j4+wGBwUcquQrNur3uwYjAqvNMSI8JrpS7922XXS/aM/g25hL8+oWPoT/oAhxgwj9/jWv+Mr/i7Ty96rtfT4EcNPhknIXC0kTEvSSYGbpA9HvbRGyaAMeId/BeLbVwhy7wx41M2yoO6yNQmrH1jt1rkYkj0MjPNYt6SLhMnARffk+hgW4aBPZNsG+ezf9Waiagf5MfBiggiEHeU5VjzvMcnBbQPsrUPs0gmFv12lXAjEjktraGKEURKGFqrf1LDj9E+6Hrtgi8Hu2zf9Lpk9m5h0BPxP/EZxs3/E4/zz0ERuURRQhaPmi58PuBo7CnklPnw8/OPZgsze/HW/9mr4ZX82JWlLlarBD+9JnH+czFpyy3PBONFrxAlf/+HLdrL8ZSX8tEv06BkY4I7/rMj+wnpK+Ck33XlwkLHtXPFmpHPexj/XA8ZZYvCQ+h2S8Tk35cdw5rOsO8rTBUIAh+Td3RbCMAz0vg7skCfih+SrdEEHj28KKAAPufvq2VzQI/MgFpo9TJ/+JBY7SMhchbJmK0UVpU/cxE1GILfszKOEaw3DOgYw+he4nXUn+8QqX3J2uMz69S6w0/1Mcewmh93OceDB9G+x62rXzUCdl6rJD0v2jMhK15oZDkVqPWjiiEluhxGX+NnxOwkETuZqWYlesUKOZIFCvgezFbWSTm11uxUD30VQIkj+Z6J1hNlAuJ00TzsP/68rxZwKO6XB5ULy0wAFcxqgdBdBAcpr1Y8TAQ/iDZcUa5wB+iiQMCTABGfifgq14tPvFv7iodZCjDjqBKVsCPB3MHzEYE8aN9FCTgutNYGzV6qjFCbcctt+DGvaYtOMu6CdFN1DCQniKhrtN7OMoUgABOjOACj0c3vvwe9F5sDTcmRjcgc/VzKqtj6y5P4+KCXMHSckEK8ILT0d/F/hr/B+mhM34UN50QAAAAAElFTkSuQmCC","custom",["config","theme-data"],"default","",""]},iconsets:{landmarks:{type:"source",source:"mapbox-landmarks"}},schema:{theme:{default:"default",values:["default","faded","monochrome","custom"],metadata:{"mapbox:title":"Color theme","mapbox:description":"Switch between predefined themes or set a custom theme."}},"theme-data":{default:"",type:"string",metadata:{"mapbox:title":"Color theme","mapbox:description":"Set a custom theme based on a look-up table (LUT).","mapbox:auxiliary":["theme","custom"]}},lightPreset:{default:"day",type:"string",values:["dawn","day","dusk","night"],metadata:{"mapbox:title":"Light preset","mapbox:description":"Switch between 4 time-of-day states: dusk, dawn, day and night."}},showPlaceLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Place labels","mapbox:description":"Show or hide place labels."}},colorPlaceLabels:{default:"hsl(0, 0%, 0%)",type:"color",metadata:{"mapbox:title":"Place labels color","mapbox:description":"Set a custom color for place labels.","mapbox:auxiliary":["showPlaceLabels",!0]}},showAdminBoundaries:{default:!0,type:"boolean",metadata:{"mapbox:title":"Administrative boundaries","mapbox:description":"Show or hide administrative boundaries."}},colorAdminBoundaries:{default:"hsl(345, 100%, 70%)",type:"color",metadata:{"mapbox:title":"Administrative boundaries color","mapbox:description":"Set a custom color for administrative boundaries.","mapbox:auxiliary":["showAdminBoundaries",!0]}},colorGreenspace:{default:"hsl(115, 60%, 84%)",type:"color",metadata:{"mapbox:title":"Greenspace color","mapbox:description":"Set a custom color for greenspaces such as forests, parks, and woods."}},colorWater:{default:"hsl(200, 100%, 80%)",type:"color",metadata:{"mapbox:title":"Water color","mapbox:description":"Set a custom color for water."}},showRoadLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Road labels","mapbox:description":"Show or hide road labels including road shields."}},colorRoadLabels:{default:"hsl(0, 0%, 25%)",type:"color",metadata:{"mapbox:title":"Road labels color","mapbox:description":"Set a custom color for road labels.","mapbox:auxiliary":["showRoadLabels",!0]}},showTransitLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Transit labels","mapbox:description":"Show or hide transit labels."}},colorMotorways:{default:"hsl(214, 23%, 70%)",type:"color",metadata:{"mapbox:title":"Motorways color","mapbox:description":"Set a custom color for motorway roads."}},colorTrunks:{default:"hsl(235, 20%, 70%)",type:"color",metadata:{"mapbox:title":"Trunk roads color","mapbox:description":"Set a custom color for trunk roads."}},colorRoads:{default:"hsl(224, 25%, 80%)",type:"color",metadata:{"mapbox:title":"Other roads color","mapbox:description":"Set a custom color for other roads."}},showPedestrianRoads:{default:!0,type:"boolean",metadata:{"mapbox:title":"Pedestrian paths","mapbox:description":"Show or hide pedestrian roads, paths, and trails."}},roadsBrightness:{default:.4,type:"number",metadata:{"mapbox:title":"Roads brightness","mapbox:description":"Control how bright roads appear in dark styles."}},showPointOfInterestLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"POI labels","mapbox:description":"Show or hide POI labels."}},densityPointOfInterestLabels:{type:"number",default:3,minValue:1,maxValue:5,stepValue:1,metadata:{"mapbox:title":"POI density","mapbox:description":"Set the density of POI labels.","mapbox:auxiliary":["showPointOfInterestLabels",!0]}},backgroundPointOfInterestLabels:{default:"circle",type:"string",values:["circle","none"],metadata:{"mapbox:title":"POI background","mapbox:description":"Set background shape for POI labels.","mapbox:auxiliary":["showPointOfInterestLabels",!0]}},colorModePointOfInterestLabels:{type:"string",default:"default",values:["default","single"],metadata:{"mapbox:title":"POI color mode","mapbox:description":"Use the default categorical colors or set a single custom color for POI labels.","mapbox:auxiliary":["showPointOfInterestLabels",!0]}},colorPointOfInterestLabels:{default:"#848e94",type:"color",metadata:{"mapbox:title":"POI color","mapbox:description":"Set a custom color for POI labels.","mapbox:auxiliary":[["showPointOfInterestLabels",!0],["colorModePointOfInterestLabels","single"]]}},showLandmarkIcons:{default:!1,type:"boolean",metadata:{"mapbox:title":"Landmark icons","mapbox:description":"Show or hide Landmark icons."}},showLandmarkIconLabels:{default:!0,type:"boolean",metadata:{"mapbox:title":"Landmark icon labels","mapbox:description":"Show or hide Landmark icon labels.","mapbox:auxiliary":["showLandmarkIcons",!0]}},show3dObjects:{default:!0,type:"boolean",metadata:{"mapbox:title":"3d buildings and trees","mapbox:description":"Show or hide 3d objects (buildings, landmarks, trees, etc.) including shadows, ambient occlusion, and flood lights."}},colorPlaceLabelHighlight:{default:"hsl(4, 43%, 55%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Set a custom color for place labels when setting highlight state."}},colorPlaceLabelSelect:{default:"hsl(4, 53%, 42%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Set a custom color for place labels when setting select state."}},colorBuildingHighlight:{default:"hsl(34, 30%, 93%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Set a custom color for building fill extrusion when setting highlight state."}},colorBuildingSelect:{default:"hsl(214, 82%, 63%)",type:"color",metadata:{"mapbox:title":"Color","mapbox:description":"Set a custom color for building fill extrusion when setting select state."}},font:{default:"DIN Pro",type:"string",metadata:{"mapbox:title":"Font","mapbox:description":"Set the text font family. The basemap uses Medium, Bold, Italic and Regular. Falls back to Arial Unicode MS if a weight is missing."}}},sources:{composite:{url:"mapbox://mapbox.mapbox-bathymetry-v2,mapbox.mapbox-streets-v8-lite,mapbox.mapbox-terrain-v3,mapbox.mapbox-models-v1,mapbox.mapbox-poi-v2",type:"vector",promoteId:{building:["coalesce",["get","building_id"],["id"]]},data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a> <a href="https://www.openstreetmap.org/copyright/" target="_blank" title="OpenStreetMap" aria-label="OpenStreetMap">&copy; OpenStreetMap</a> <a class="mapbox-improve-map" href="https://www.mapbox.com/contribute/" target="_blank" title="Improve this map" aria-label="Improve this map">Improve this map</a>',bounds:[-180,-85,180,85],cacheControl:"max-age=43200,s-maxage=7200",center:[0,0,0],constituents:[{maxzoom:7,minzoom:0,source:"mapbox.mapbox-bathymetry-v2"},{maxzoom:16,minzoom:0,source:"mapbox.mapbox-streets-v8-lite"},{maxzoom:15,minzoom:0,source:"mapbox.mapbox-terrain-v3"},{maxzoom:16,minzoom:13,source:"mapbox.mapbox-models-v1"},{maxzoom:16,minzoom:6,source:"mapbox.mapbox-poi-v2"}],format:"pbf",language_options:{all:"Every available language",ar:"Arabic",bg:"Bulgarian",ca:"Catalan",cs:"Czech",da:"Danish",de:"German",el:"Greek",en:"English",es:"Spanish",et:"Estonian",fa:"Farsi",fi:"Finnish",fr:"French",he:"Hebrew",hr:"Croatian",hu:"Hungarian",id:"Indonesian",it:"Italian",ja:"Japanese",ka:"Georgian",ko:"Korean",local:"Renderable local language",lv:"Latvian",ms:"Malay",nb:"Norwegian Bokmål",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sk:"Slovak",sl:"Slovenian",sq:"Albanian",sr:"Serbian",sv:"Swedish",th:"Thai",tl:"Tagalog",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese","zh-Hans":"Simplified Chinese","zh-Hant":"Traditional Chinese"},mapbox_logo:!0,maxzoom:16,minzoom:0,name:"Mapbox POI v2 + Mapbox Models v1 + Mapbox Terrain v3 + Mapbox Streets v8 Lite + Mapbox Bathymetry v2",scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/mapbox.mapbox-bathymetry-v2,mapbox.mapbox-streets-v8-lite,mapbox.mapbox-terrain-v3,mapbox.mapbox-models-v1,mapbox.mapbox-poi-v2/{z}/{x}/{y}.vector.pbf"],vector_layers:[{id:"depth",maxzoom:7,minzoom:0,source:"mapbox.mapbox-bathymetry-v2"},{id:"landuse",minzoom:5,source:"mapbox.mapbox-streets-v8-lite"},{id:"waterway",minzoom:7,source:"mapbox.mapbox-streets-v8-lite"},{id:"water",minzoom:0,source:"mapbox.mapbox-streets-v8-lite"},{id:"aeroway",minzoom:9,source:"mapbox.mapbox-streets-v8-lite"},{id:"structure",minzoom:13,source:"mapbox.mapbox-streets-v8-lite"},{id:"building",minzoom:15,source:"mapbox.mapbox-streets-v8-lite"},{id:"landuse_overlay",minzoom:5,source:"mapbox.mapbox-streets-v8-lite"},{id:"road",minzoom:3,source:"mapbox.mapbox-streets-v8-lite"},{id:"admin",minzoom:1,source:"mapbox.mapbox-streets-v8-lite"},{id:"place_label",minzoom:0,source:"mapbox.mapbox-streets-v8-lite"},{id:"airport_label",minzoom:8,source:"mapbox.mapbox-streets-v8-lite"},{id:"transit_stop_label",minzoom:5,source:"mapbox.mapbox-streets-v8-lite"},{id:"natural_label",minzoom:0,source:"mapbox.mapbox-streets-v8-lite"},{id:"poi_label",minzoom:6,source:"mapbox.mapbox-streets-v8-lite"},{id:"motorway_junction",minzoom:9,source:"mapbox.mapbox-streets-v8-lite"},{id:"housenum_label",minzoom:16,source:"mapbox.mapbox-streets-v8-lite"},{id:"hillshade",maxzoom:22,minzoom:0,source:"mapbox.mapbox-terrain-v3"},{id:"landcover",maxzoom:12,minzoom:0,source:"mapbox.mapbox-terrain-v3"},{id:"tree",minzoom:15,source:"mapbox.mapbox-models-v1"},{id:"wind_turbine",minzoom:13,source:"mapbox.mapbox-models-v1"},{id:"poi",maxzoom:16,minzoom:6,source:"mapbox.mapbox-poi-v2"}],worldview_default:"CN",worldview_options:{ALL:"Every available worldview",AR:"Argentina",CN:"China",IN:"India",JP:"Japan",MA:"Morocco",RS:"Serbia",RU:"Russia",TR:"Turkey",US:"United States",VN:"Vietnam"}}},"3dbuildings":{url:"mapbox://mapbox.mapbox-3dbuildings-v1",type:"batched-model",data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a>',bounds:[-180,-85,180,85],capabilities:["draco"],center:[0,0,3],created:1683634017088,description:"Public tileset - Mapbox 3D buildings",format:"glb",id:"mapbox.mapbox-3dbuildings-v1",mapbox_logo:!0,maxzoom:14,minzoom:14,modified:1719240021306,name:"Mapbox 3D landmark buildings v1",private:!1,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://3dtiles/mapbox.mapbox-3dbuildings-v1/{z}/{x}/{y}.glb"],variants:[{capabilities:["meshopt"],tiles:["mapbox://3dtiles/mapbox.mapbox-3dbuildings-v1-meshopt/{z}/{x}/{y}.glb"]}],webpage:"https://studio.mapbox.com/tilesets/mapbox.mapbox-3dbuildings-v1"}},"mapbox-dem":{url:"mapbox://mapbox.mapbox-terrain-dem-v1",type:"raster-dem",tileSize:514,data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a>',autoscale:!0,bounds:[-180,-85,180,85],cacheControl:"max-age=43200,s-maxage=604800",center:[0,0,3],created:1604614692e3,description:"png or webp file extension must be used. height = -10000 + ((R * 256 * 256 + G * 256 + B) * 0.1)",encoding:"mapbox",filesize:0,format:"png",id:"mapbox.mapbox-terrain-dem-v1",mapbox_logo:!0,maxzoom:14,minzoom:0,modified:160583357e4,name:"Mapbox Terrain-DEM v1",packs:{scheme:[{indexzoom:0,maxzoom:5,minzoom:0},{indexzoom:6,maxzoom:9,minzoom:6},{indexzoom:10,maxzoom:12,minzoom:10},{indexzoom:11,maxzoom:14,minzoom:13}]},private:!1,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://raster/mapbox.mapbox-terrain-dem-v1/{z}/{x}/{y}.png"],webpage:"https://studio.mapbox.com/tilesets/mapbox.mapbox-terrain-dem-v1"}},"mapbox-landmark-pois":{url:"mapbox://mapbox.mapbox-landmark-pois-v1",type:"vector",data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a>',bounds:[-180,-85,180,85],center:[0,0,0],created:1742999403069,description:"POIs for Landmarks",filesize:0,format:"pbf",id:"mapbox.mapbox-landmark-pois-v1",mapbox_logo:!0,maxzoom:17,minzoom:10,modified:1754404415e3,name:"Mapbox Landmark POIs v1",private:!1,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/mapbox.mapbox-landmark-pois-v1/{z}/{x}/{y}.vector.pbf"],vector_layers:[{id:"landmarks_poi",minzoom:10,source:"mapbox.mapbox-landmark-pois-v1"}],webpage:"https://studio.mapbox.com/tilesets/mapbox.mapbox-landmark-pois-v1"}},"mapbox-landmarks":{url:"mapbox://mapbox.mapbox-landmark-icons-v1",type:"raster-array",data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a> <a class="mapbox-improve-map" href="https://www.mapbox.com/contribute/" target="_blank" title="Improve this map" aria-label="Improve this map">Improve this map</a>',bounds:[-180,-85,180,85],cacheControl:"max-age=43200,s-maxage=604800",capabilities:[],center:[0,0,3],created:1739202188782,description:"External tileset used for production - Mapbox Landmark Icons v1",extra_bounds:[[-18.716583,34.608345,48.080292,73.128931],[122.871094,26.431228,158.730469,46.800059],[-129.550781,19.642588,-64.335938,53.540307],[-46.7563,-23.6582,-43.1526,-22.8737],[76.948907,28.403519,77.385614,28.811024],[100.221813,13.570897,100.739887,13.954299]],format:"mrt",id:"mapbox.mapbox-landmark-icons-v1",mapbox_logo:!0,maxzoom:10,minzoom:10,name:"Mapbox Landmark Icons v1 - Production",private:!1,raster_layers:[{fields:{current_job_id:"2025-08-04"},id:"landmark-icons"}],scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://rasterarrays/mapbox.mapbox-landmark-icons-v1/{z}/{x}/{y}.mrt?jobid=2025-08-04"],webpage:"https://studio.mapbox.com/tilesets/mapbox.mapbox-landmark-icons-v1"}}},sprite:"mapbox://sprites/mapbox/standard/cearqi1fcr4p9hhmnba1yy3fr",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"globe"},layers:[{id:"land",type:"background",metadata:{"mapbox:group":"land & water"},paint:{"background-color":["match",["config","lightPreset"],"night","hsl(230, 30%, 95%)","hsl(20, 20%, 95%)"],"background-emissive-strength":["interpolate",["linear"],["zoom"],13,.1,14,["interpolate",["linear"],["measure-light","brightness"],.28,["match",["config","theme"],"monochrome",.05,0],.3,.25]]}},{id:"landcover",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"landcover",maxzoom:12,paint:{"fill-emissive-strength":["match",["config","theme"],"monochrome",.1,.2],"fill-color":["match",["get","class"],"snow","hsl(0, 0%, 100%)",["scrub"],["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],12]]],["flooded"],["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],2]]],"wood",["config","colorGreenspace"],["crop"],["hsl",["max",0,["-",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],13]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],2]]],["range"],["hsl",["max",0,["-",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],25]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],5]]],["bare"],"hsl(55, 60%, 94%)",["built-up"],"hsl(20, 100%, 97%)","hsl(20, 20%, 95%)"],"fill-opacity":["interpolate",["linear"],["zoom"],10,1,12,0],"fill-antialias":!1}},{id:"national-park",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"landuse_overlay",minzoom:5,paint:{"fill-emissive-strength":["match",["config","theme"],"monochrome",.08,.2],"fill-color":["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["*",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],.5]],["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]]],"fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.5],"fill-antialias":!1}},{id:"road-pedestrian-polygon-fill",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["match",["get","class"],["path","pedestrian"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["case",["has","layer"],[">=",["get","layer"],0],!0],["==",["geometry-type"],"Polygon"]],paint:{"fill-color":"hsl(0, 20%, 97%)","fill-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.28,["match",["config","theme"],"monochrome",.05,0],.3,.25],"fill-antialias":!1}},{id:"landuse",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"landuse",minzoom:8,filter:["all",[">=",["to-number",["get","sizerank"]],0],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14],["match",["get","type"],["skateboard","playground","parking","surface","sand"],!1,!0]],paint:{"fill-emissive-strength":["interpolate",["linear"],["zoom"],12,["match",["config","theme"],"monochrome",.05,.25],14,["match",["config","theme"],"monochrome",0,.25]],"fill-color":["interpolate",["linear"],["measure-light","brightness"],.1,["match",["get","class"],"wood",["hsla",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],10]],["max",0,["-",["to-number",["at",3,["to-hsla",["config","colorGreenspace"]]]],.2]]],"scrub",["hsla",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",3,["to-hsla",["config","colorGreenspace"]]]],.4]]],["agriculture","grass"],["hsla",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],3]],["max",0,["-",["to-number",["at",3,["to-hsla",["config","colorGreenspace"]]]],.4]]],"park",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],4]]],"airport","hsl(225, 35%, 70%)","cemetery",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],30]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],9]]],"glacier","hsl(200, 70%, 95%)","hospital","hsl(0, 30%, 70%)","pitch",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],10]],["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]]],"sand","hsl(52, 65%, 75%)","school","hsl(40, 10%, 60%)","commercial_area","hsl(324, 27%, 70%)","residential","hsl(20, 7%, 97%)",["facility","industrial"],"hsl(230, 20%, 70%)","hsl(20, 22%, 86%)"],.4,["match",["get","class"],"wood",["hsla",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],10]],["max",0,["-",["to-number",["at",3,["to-hsla",["config","colorGreenspace"]]]],.2]]],"scrub",["hsla",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",3,["to-hsla",["config","colorGreenspace"]]]],.4]]],["agriculture","grass"],["hsla",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],3]],["max",0,["-",["to-number",["at",3,["to-hsla",["config","colorGreenspace"]]]],.4]]],"park",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],4]]],"airport","hsl(225, 60%, 92%)","cemetery",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],10]],["at",2,["to-hsla",["config","colorGreenspace"]]]],"glacier","hsl(200, 70%, 90%)","hospital","hsl(0, 50%, 92%)","pitch",["hsl",["max",0,["-",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],12]],["min",100,["+",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],10]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],2]]],"sand","hsl(52, 65%, 86%)","school","hsl(40, 50%, 88%)","commercial_area","hsl(24, 100%, 94%)","residential","hsl(20, 7%, 97%)",["facility","industrial"],"hsl(230, 15%, 92%)","hsl(20, 22%, 86%)"]],"fill-opacity":["interpolate",["linear"],["zoom"],9,["match",["get","class"],["airport"],.8,.2],10,["match",["config","theme"],"monochrome",["match",["get","class"],["residential","industrial","hospital","parking","school","facility","commercial_area"],0,["grass","scrub","glacier","pitch","sand","airport"],1,["interpolate",["linear"],["measure-light","brightness"],.1,.8,.4,1]],["match",["get","class"],["residential"],0,["grass","scrub","glacier","pitch","sand","airport"],1,["interpolate",["linear"],["measure-light","brightness"],.1,.8,.4,1]]]],"fill-antialias":!1}},{id:"recreation-polygon",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"landuse",minzoom:14,filter:["all",[">=",["to-number",["get","sizerank"]],0],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14],["match",["get","type"],["skateboard","playground","parking","surface","sand"],!0,!1]],paint:{"fill-emissive-strength":["interpolate",["linear"],["zoom"],12,["match",["config","theme"],"monochrome",.05,.25],14,["match",["config","theme"],"monochrome",0,.25]],"fill-opacity":["interpolate",["linear"],["zoom"],14,0,15,1],"fill-color":["interpolate",["linear"],["measure-light","brightness"],.1,["match",["get","type"],["parking","playground","skateboard","surface"],"hsla(20, 3%, 90%, 0.2)","hsl(52, 65%, 75%)"],.4,["match",["get","type"],["parking","playground","skateboard","surface"],"hsl(20, 3%, 92%)","hsl(52, 65%, 86%)"]],"fill-antialias":!1}},{id:"3d-hillshade",type:"hillshade",metadata:{"mapbox:group":"land & water"},source:"mapbox-dem",minzoom:6,maxzoom:14.49,paint:{"hillshade-exaggeration":["interpolate",["exponential",1.5],["zoom"],12,.4,14,0],"hillshade-illumination-anchor":"map","hillshade-shadow-color":["interpolate",["exponential",1.5],["zoom"],7,["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(235, 10%, 0%, 0.2)",.3,"hsla(0, 100%, 0%,0.2)"],10,["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(235, 10%, 0%, 0.3)",.3,"hsla(0, 100%, 0%,0.2)"]],"hillshade-highlight-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(235, 20%, 85%, 0.2)",.3,"hsla(0, 100%, 100%, 0.8)"],"hillshade-accent-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(235, 30%, 30%, 1)",.3,"hsla(0, 100%, 100%, 1)"]}},{id:"hillshade",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"hillshade",maxzoom:16,paint:{"fill-emissive-strength":["interpolate",["exponential",1.5],["zoom"],5.9,0,6,["match",["config","theme"],"monochrome",0,.2]],"fill-color":["interpolate",["linear"],["measure-light","brightness"],.28,["match",["get","class"],"shadow","hsla(235, 10%, 10%, 0.1)","hsla(235, 20%, 80%, 0)"],.3,["match",["get","class"],"shadow","hsla(40, 20%, 20%, 0.04)","hsla(20, 20%, 100%, 0.12)"]],"fill-opacity":["interpolate",["linear"],["zoom"],10,1,12,.8,16,0],"fill-antialias":!1}},{id:"pitch-outline",type:"line",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"landuse",minzoom:15,filter:["any",["==",["get","class"],"pitch"],["==",["get","type"],"playground"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.05,.15],"line-color":["match",["get","type"],["playground","skateboard"],"hsl(0, 0%, 85%)",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],10]]]]}},{id:"waterway-shadow",type:"line",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":"round"},paint:{"line-color":["hsla",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],19]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],1]],["to-number",["at",3,["to-hsla",["config","colorWater"]]]]],"line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"line-translate-anchor":"viewport","line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"waterway",type:"line",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"waterway",minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":"round"},paint:{"line-color":["config","colorWater"],"line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"water",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"water",paint:{"fill-color":["interpolate",["linear"],["zoom"],13,["config","colorWater"],14,["interpolate",["linear"],["measure-light","brightness"],0,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],55]],["to-number",["at",3,["to-hsla",["config","colorWater"]]]]],.02,["config","colorWater"]]],"fill-emissive-strength":["interpolate",["linear"],["zoom"],5,["match",["config","theme"],"monochrome",.05,.1],7,0],"fill-antialias":!1}},{id:"water-depth",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"depth",maxzoom:8,paint:{"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["to-number",["at",2,["to-hsla",["config","colorWater"]]]],.35],200,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],8]],.35],7e3,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],16]],.35]],8,["interpolate",["linear"],["get","min_depth"],0,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["to-number",["at",2,["to-hsla",["config","colorWater"]]]],0],200,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],8]],0],7e3,["hsla",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],16]],0]]],"fill-antialias":!1}},{id:"land-structure-polygon",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"structure",minzoom:13,filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"Polygon"]],paint:{"fill-color":"hsl(20, 20%, 95%)","fill-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.28,["match",["config","theme"],"monochrome",.05,0],.3,.25],"fill-antialias":!1}},{id:"land-structure-line",type:"line",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"structure",minzoom:13,filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"square"},paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(20, 20%, 95%)","line-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.28,["match",["config","theme"],"monochrome",.05,0],.3,.25]}},{id:"aeroway-polygon",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"aeroway",minzoom:11,filter:["==",["geometry-type"],"Polygon"],paint:{"fill-emissive-strength":.15,"fill-color":"hsl(225, 52%, 87%)","fill-opacity":["interpolate",["linear"],["zoom"],10,0,11,1],"fill-antialias":!1}},{id:"aeroway-line",type:"line",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"aeroway",minzoom:9,filter:["==",["geometry-type"],"LineString"],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.3,.8],"line-color":["interpolate",["linear"],["measure-light","brightness"],0,"hsl(238, 16%, 40%)",.2,"hsl(225, 52%, 87%)"],"line-width":["interpolate",["exponential",1.5],["zoom"],9,["match",["get","type"],"runway",1,.5],18,["match",["get","type"],"runway",80,20]],"line-opacity":["interpolate",["linear"],["zoom"],10,0,11,1]}},{id:"building-underground",type:"fill",metadata:{"mapbox:group":"land & water"},source:"composite","source-layer":"building",minzoom:15,filter:["all",["==",["get","underground"],"true"],["==",["geometry-type"],"Polygon"]],paint:{"fill-color":["case",["to-boolean",["feature-state","select"]],["config","colorBuildingSelect"],["to-boolean",["feature-state","highlight"]],["config","colorBuildingHighlight"],"hsl(240, 60%, 92%)"],"fill-opacity":["interpolate",["linear"],["zoom"],15,0,16,.5],"fill-antialias":!1}},{id:"bottom",type:"slot",metadata:{"mapbox:description":"Above polygons (land, landuse, water, etc.)"}},{id:"tunnel-path-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,1,22,2],"line-color":"hsl(0, 10%, 80%)","line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-dasharray":[3,1]}},{id:"tunnel-pedestrian-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","type"],["pedestrian"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,1,22,2],"line-color":"hsl(0, 10%, 80%)","line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-dasharray":[3,1]}},{id:"tunnel-steps-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 10%, 93%)"}},{id:"tunnel-minor-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["match",["get","type"],["piste"],!1,!0],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100],"line-dasharray":[3,3]}},{id:"tunnel-street-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-opacity":["step",["zoom"],0,14,1],"line-dasharray":[3,3]}},{id:"tunnel-minor-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["==",["get","structure"],"tunnel"],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-opacity":["step",["zoom"],0,11,1],"line-dasharray":[3,3]}},{id:"tunnel-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260],"line-dasharray":[3,3]}},{id:"tunnel-primary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-dasharray":[3,3]}},{id:"tunnel-major-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-dasharray":[3,3]}},{id:"tunnel-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["min",["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],85],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-dasharray":[3,3]}},{id:"tunnel-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.05,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)","line-dasharray":[10,0]}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":"round","line-join":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.05,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)"}},{id:"tunnel-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.05,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)","line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"tunnel-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","type"],"pedestrian"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":"round","line-join":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.05,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(295, 11%, 95%)"}},{id:"tunnel-construction",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,20,22,200],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]],"line-dasharray":[.2,.1]}},{id:"tunnel-minor",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["match",["get","type"],["piste"],!1,!0],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]]}},{id:"tunnel-minor-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["==",["get","structure"],"tunnel"],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]]}},{id:"tunnel-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],["motorway_link"],["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]],.2]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]],.2]]]}},{id:"tunnel-street",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]],"line-opacity":["step",["zoom"],0,14,1]}},{id:"tunnel-street-low",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,maxzoom:14,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]]}},{id:"tunnel-secondary-tertiary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]]}},{id:"tunnel-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorRoads"]]]],.2]]}},{id:"tunnel-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.3],["-",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]],.2]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10],98],["-",["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]],.2]]]}},{id:"tunnel-oneway-arrow",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["==",["get","oneway"],"true"],["step",["zoom"],["match",["get","class"],["primary","secondary","street","street_limited","tertiary"],!0,!1],16,["match",["get","class"],["primary","secondary","tertiary","street","street_limited","primary_link","secondary_link","tertiary_link","service","track"],!0,!1]]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.7],.5,1]}},{id:"tunnel-oneway-arrow-trunk",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["trunk","trunk_link"],!0,!1],["==",["get","oneway"],"true"]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1]}},{id:"tunnel-oneway-arrow-motorway",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["motorway","motorway_link"],!0,!1],["==",["get","oneway"],"true"]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1]}},{id:"tunnel-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"tunnel"],["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.2],"line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-color":"hsl(125, 50%, 60%)","line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,.5],"line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"ferry",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["==",["get","type"],"ferry"],paint:{"line-emissive-strength":["interpolate",["linear"],["zoom"],13,["match",["config","theme"],"monochrome",.2,.3],14,["match",["config","theme"],"monochrome",.4,.5]],"line-color":["interpolate",["linear"],["measure-light","brightness"],.3,["hsl",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],9]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],50]],50],.4,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],50],["hsl",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],9]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],20]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],20]]],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],20]]]]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,17,1],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1],"line-dasharray":["step",["zoom"],["literal",[1,0]],13,["literal",[12,4]]]}},{id:"ferry-auto",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["==",["get","type"],"ferry_auto"],paint:{"line-emissive-strength":["interpolate",["linear"],["zoom"],13,["match",["config","theme"],"monochrome",.15,.3],14,["match",["config","theme"],"monochrome",.3,.5]],"line-color":["interpolate",["linear"],["measure-light","brightness"],.3,["hsl",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],9]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],50]],50],.4,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],50],["hsl",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],9]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],20]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],20]]],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],20]]]]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,17,1],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,20,1]}},{id:"road-path-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,1,22,2],"line-color":"hsl(0, 10%, 80%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80]}},{id:"road-steps-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":"hsl(0, 10%, 80%)"}},{id:"road-pedestrian-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["case",["has","layer"],[">=",["get","layer"],0],!0],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,1,22,2],"line-color":"hsl(0, 10%, 80%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80]}},{id:"road-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":[10,0]}},{id:"road-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"road-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-join":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"road-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"pedestrian"],["match",["get","structure"],["none","ford"],!0,!1],["case",["has","layer"],[">=",["get","layer"],0],!0],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"],"line-join":["step",["zoom"],"miter",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"golf-hole-line",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["==",["get","class"],"golf"],paint:{"line-emissive-strength":.2,"line-color":["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],30]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],14]]]}},{id:"gate-fence-hedge-shade",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"structure",minzoom:17,filter:["match",["get","class"],["gate","fence","hedge"],!0,!1],paint:{"line-width":["interpolate",["linear"],["zoom"],16,1,20,3],"line-opacity":["match",["get","class"],"gate",.5,1],"line-translate":[1.5,1.5],"line-color":["match",["get","class"],"hedge",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],25]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],14]]],"hsl(221, 0%, 70%)"]}},{id:"gate-fence-hedge",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"structure",minzoom:16,filter:["match",["get","class"],["gate","fence","hedge"],!0,!1],paint:{"line-color":["match",["get","class"],"hedge",["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],25]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],14]]],"hsl(221, 0%, 85%)"],"line-width":["interpolate",["linear"],["zoom"],16,1,20,3],"line-opacity":["match",["get","class"],"gate",.5,1]}},{id:"road-minor-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["match",["get","type"],["piste"],!1,!0],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100]}},{id:"road-street-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["street","street_limited"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-minor-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-opacity":["step",["zoom"],0,11,1]}},{id:"road-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260]}},{id:"road-primary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280]}},{id:"road-major-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-opacity":["step",["zoom"],0,11,1]}},{id:"road-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],5,["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-opacity":["interpolate",["linear"],["zoom"],3,0,3.5,1]}},{id:"turning-feature",type:"circle",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["turning_circle","turning_loop"],!0,!1],["==",["geometry-type"],"Point"]],paint:{"circle-emissive-strength":["match",["config","theme"],"monochrome",.2,.35],"circle-radius":["interpolate",["exponential",1.5],["zoom"],15,4.5,16,8,18,20,22,200],"circle-color":["config","colorRoads"],"circle-pitch-alignment":"map"}},{id:"road-polygon-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["street","street_limited","primary","trunk_link","secondary_link","tertiary_link","tertiary","secondary","trunk","primary_link","motorway_link"],!0,!1],["match",["geometry-type"],["Polygon"],!0,!1],["match",["get","type"],["service"],!1,!0]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-opacity":["step",["zoom"],0,14,1],"line-color":["match",["get","class"],["motorway","motorway_link"],["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["trunk","trunk_link"],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-offset":["interpolate",["exponential",1.5],["zoom"],14,.4,22,-1]}},{id:"road-others-polygon-fill",type:"fill",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["street","street_limited"],!0,!1],["match",["geometry-type"],["Polygon"],!0,!1],["match",["get","type"],["service"],!1,!0]],layout:{},paint:{"fill-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"fill-opacity":["interpolate",["linear"],["zoom"],13,0,14,1],"fill-color":["config","colorRoads"],"fill-antialias":!1}},{id:"road-secondary-tertiary-polygon-fill",type:"fill",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["secondary_link","tertiary_link","tertiary","secondary"],!0,!1],["match",["geometry-type"],["Polygon"],!0,!1],["match",["get","type"],["service"],!1,!0]],layout:{},paint:{"fill-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"fill-opacity":["interpolate",["linear"],["zoom"],13,0,14,1],"fill-color":["config","colorRoads"],"fill-antialias":!1}},{id:"road-primary-polygon-fill",type:"fill",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["primary","primary_link"],!0,!1],["match",["geometry-type"],["Polygon"],!0,!1],["match",["get","type"],["service"],!1,!0]],layout:{},paint:{"fill-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"fill-opacity":["interpolate",["linear"],["zoom"],13,0,14,1],"fill-color":["config","colorRoads"],"fill-antialias":!1}},{id:"road-motorway-trunk-polygon-fill",type:"fill",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["motorway","trunk","trunk_link","motorway_link"],!0,!1],["match",["geometry-type"],["Polygon"],!0,!1],["match",["get","type"],["service"],!1,!0]],layout:{},paint:{"fill-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"fill-opacity":["interpolate",["linear"],["zoom"],13,0,14,1],"fill-color":["match",["get","class"],["motorway","motorway_link"],["config","colorMotorways"],["config","colorTrunks"]],"fill-antialias":!1}},{id:"road-construction",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","class"],"construction"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,20,22,200],"line-color":["config","colorRoads"],"line-dasharray":[.2,.1]}},{id:"road-minor",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["match",["get","type"],["piste"],!1,!0],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100],"line-color":["config","colorRoads"]}},{id:"road-minor-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-color":["config","colorRoads"]}},{id:"road-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],"motorway_link",["config","colorMotorways"],["config","colorTrunks"]]}},{id:"road-street",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["street","street_limited"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-color":["config","colorRoads"],"line-opacity":["step",["zoom"],0,14,1]}},{id:"road-street-low",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:11,maxzoom:14,filter:["all",["match",["get","class"],["street","street_limited"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-color":["config","colorRoads"]}},{id:"road-secondary-tertiary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:8,filter:["all",["match",["get","class"],["secondary","tertiary"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260],"line-color":["config","colorRoads"]}},{id:"road-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["==",["get","class"],"primary"],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"]}},{id:"road-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:3,filter:["all",["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],5,["all",["match",["get","class"],["motorway","trunk"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]]],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",13,"round"],"line-join":["step",["zoom"],"miter",13,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]],"line-opacity":["interpolate",["linear"],["zoom"],3,0,3.5,["match",["config","theme"],"monochrome",0,1],5,["match",["config","theme"],"monochrome",1,1]]}},{id:"road-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["match",["get","structure"],["none","ford"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.5,.6],"line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-color":"hsl(125, 50%, 60%)","line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,1],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"road-rail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],paint:{"line-gap-width":["interpolate",["linear"],["zoom"],15,0,16,1,18,2,22,20],"line-color":["interpolate",["linear"],["measure-light","brightness"],.1,"hsl(0, 0%, 30%)",.4,"hsl(0, 0%, 65%)"],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,2]}},{id:"road-rail-tracks",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["major_rail","minor_rail"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],paint:{"line-color":["interpolate",["linear"],["measure-light","brightness"],.1,"hsl(0, 0%, 30%)",.4,"hsl(0, 0%, 65%)"],"line-width":["interpolate",["exponential",1.5],["zoom"],16,2,18,6,20,16,22,32],"line-dasharray":["step",["zoom"],["literal",[.1,15]],16,["literal",[.1,1]],18,["literal",[.05,.5]]],"line-opacity":["interpolate",["linear"],["zoom"],13.75,0,14,1]}},{id:"road-oneway-arrow",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","oneway"],"true"],["step",["zoom"],["match",["get","class"],["primary","secondary","tertiary","street","street_limited"],!0,!1],16,["match",["get","class"],["primary","secondary","tertiary","street","street_limited","primary_link","secondary_link","tertiary_link","service","track"],!0,!1]],["match",["get","structure"],["none","ford"],!0,!1]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.7],.5,1]}},{id:"road-oneway-arrow-trunk",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","oneway"],"true"],["match",["get","class"],["trunk","trunk_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1]}},{id:"road-oneway-arrow-motorway",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","oneway"],"true"],["match",["get","class"],["motorway","motorway_link"],!0,!1],["match",["get","structure"],["none","ford"],!0,!1]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1]}},{id:"crosswalks",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"structure",minzoom:17,filter:["all",["==",["get","class"],"crosswalk"],["==",["geometry-type"],"Point"]],layout:{"icon-size":["interpolate",["linear"],["zoom"],16,.1,18,.2,19,.5,22,1.5],"icon-image":["step",["zoom"],["image","crosswalk-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","crosswalk-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"icon-rotate":["get","direction"],"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.7],.5,1]}},{id:"bridge-path-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["step",["zoom"],["!",["match",["get","type"],["steps","sidewalk","crossing"],!0,!1]],16,["!=",["get","type"],"steps"]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,1,22,2],"line-color":"hsl(0, 10%, 80%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80]}},{id:"bridge-steps-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],15,2,17,4.6,18,7],"line-color":"hsl(0, 10%, 80%)"}},{id:"bridge-pedestrian-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",0,.15],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,18,1,22,2],"line-color":"hsl(0, 10%, 80%)","line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80]}},{id:"bridge-path-trail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["match",["get","type"],["hiking","mountain_bike","trail"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":[10,0]}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"path"],["!=",["get","type"],"steps"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"bridge-steps",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","type"],"steps"],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"],"line-dasharray":["step",["zoom"],["literal",[1,0]],17,["literal",[.2,.2]],19,["literal",[.1,.1]]]}},{id:"bridge-pedestrian",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"pedestrian"],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"],"line-cap":["step",["zoom"],"butt",16,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.1,.25],"line-width":["interpolate",["exponential",1.5],["zoom"],12,0,18,6,22,80],"line-color":["interpolate",["linear"],["zoom"],15,"hsl(295, 10%, 97%)",16,"hsl(295, 10%, 93%)"]}},{id:"bridge-minor-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100],"line-blur":10}},{id:"bridge-minor-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["match",["get","type"],["piste"],!1,!0],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100]}},{id:"bridge-street-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-opacity":["step",["zoom"],0,14,1],"line-blur":10}},{id:"bridge-street-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-opacity":["step",["zoom"],0,14,1]}},{id:"bridge-minor-link-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-opacity":["step",["zoom"],0,11,1],"line-blur":10}},{id:"bridge-minor-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-opacity":["step",["zoom"],0,11,1]}},{id:"bridge-secondary-tertiary-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260],"line-opacity":["step",["zoom"],0,10,1],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-blur":10}},{id:"bridge-secondary-tertiary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260],"line-opacity":["step",["zoom"],0,10,1]}},{id:"bridge-primary-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],paint:{"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-opacity":["step",["zoom"],0,10,1],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-blur":10}},{id:"bridge-primary-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorRoads"]]]],["to-number",["at",1,["to-hsla",["config","colorRoads"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorRoads"]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-opacity":["step",["zoom"],0,10,1]}},{id:"bridge-major-link-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-blur":10}},{id:"bridge-major-link-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200]}},{id:"bridge-motorway-trunk-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],paint:{"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-blur":10}},{id:"bridge-motorway-trunk-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300]}},{id:"bridge-construction",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"construction"],["==",["geometry-type"],"LineString"]],paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,18,20,22,200],"line-color":["config","colorRoads"],"line-dasharray":[.2,.1]}},{id:"bridge-minor",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["track"],!0,"service",["step",["zoom"],!1,14,!0],!1],["match",["get","type"],["piste"],!1,!0],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,18,10,22,100],"line-color":["config","colorRoads"]}},{id:"bridge-minor-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["match",["get","class"],["primary_link","secondary_link","tertiary_link"],!0,!1],["==",["get","structure"],"bridge"],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.4,18,18,22,180],"line-color":["config","colorRoads"]}},{id:"bridge-major-link",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],"motorway_link",["config","colorMotorways"],["config","colorTrunks"]]}},{id:"bridge-street",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-color":["config","colorRoads"],"line-opacity":["step",["zoom"],0,14,1]}},{id:"bridge-street-low",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,maxzoom:14,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["street","street_limited"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"],"line-join":["step",["zoom"],"miter",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.5,18,20,22,200],"line-color":["config","colorRoads"]}},{id:"bridge-secondary-tertiary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,0,18,26,22,260],"line-color":["config","colorRoads"]}},{id:"bridge-primary",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["==",["get","class"],"primary"],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.2],["config","roadsBrightness"]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,28,22,280],"line-color":["config","colorRoads"]}},{id:"bridge-motorway-trunk",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","trunk"],!0,!1],["<=",["get","layer"],1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]]}},{id:"bridge-major-link-2-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-blur":10}},{id:"bridge-major-link-2-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,.8,22,2],"line-color":["match",["get","class"],"motorway_link",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200]}},{id:"bridge-motorway-trunk-2-shadow",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],20]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-width":["interpolate",["exponential",1.5],["zoom"],14,2,22,10],"line-blur":10}},{id:"bridge-motorway-trunk-2-case",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],paint:{"line-width":["interpolate",["exponential",1.5],["zoom"],14,1,22,2],"line-color":["match",["get","class"],"motorway",["hsla",["to-number",["at",0,["to-hsla",["config","colorMotorways"]]]],["to-number",["at",1,["to-hsla",["config","colorMotorways"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorMotorways"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorTrunks"]]]],["to-number",["at",1,["to-hsla",["config","colorTrunks"]]]],["abs",["-",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],10]],["to-number",["at",3,["to-hsla",["config","colorTrunks"]]]]]],"line-gap-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300]}},{id:"bridge-major-link-2",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway_link","trunk_link"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"round"},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],12,.8,18,20,22,200],"line-color":["match",["get","class"],"motorway_link",["config","colorMotorways"],["config","colorTrunks"]]}},{id:"bridge-motorway-trunk-2",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],[">=",["get","layer"],2],["match",["get","class"],["motorway","trunk"],!0,!1],["==",["geometry-type"],"LineString"]],layout:{"line-cap":["step",["zoom"],"butt",14,"round"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",["-",["config","roadsBrightness"],.1],["+",["config","roadsBrightness"],.2]],"line-width":["interpolate",["exponential",1.5],["zoom"],3,.8,18,30,22,300],"line-color":["match",["get","class"],"motorway",["config","colorMotorways"],["config","colorTrunks"]]}},{id:"bridge-oneway-arrow",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"bridge"],["==",["get","oneway"],"true"],["step",["zoom"],["match",["get","class"],["primary","secondary","tertiary","street","street_limited"],!0,!1],16,["match",["get","class"],["primary","secondary","tertiary","street","street_limited","primary_link","secondary_link","tertiary_link","service","track"],!0,!1]]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoads"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.7],.5,1]}},{id:"bridge-oneway-arrow-trunk",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["trunk","trunk_link"],!0,!1],["==",["get","oneway"],"true"]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorTrunks"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1]}},{id:"bridge-oneway-arrow-motorway",type:"symbol",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["motorway","motorway_link"],!0,!1],["==",["get","oneway"],"true"]],layout:{"symbol-placement":"line","icon-image":["step",["zoom"],["image","oneway-small",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}],18,["image","oneway-large",{params:{color:["case",[">=",["to-number",["at",2,["to-hsla",["config","colorMotorways"]]]],92],"hsl(0, 0%, 85%)","hsl(0, 0%, 100%)"]}}]],"symbol-spacing":200,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0},paint:{"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1]}},{id:"bridge-path-cycleway-piste",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:14,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["path","track"],!0,!1],["match",["get","type"],"cycleway",["step",["zoom"],!1,15,!0],"piste",!0,!1],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPedestrianRoads"],"visible","none"]},paint:{"line-emissive-strength":["match",["config","theme"],"monochrome",.5,.6],"line-color":"hsl(125, 50%, 60%)","line-width":["interpolate",["linear"],["zoom"],12,["match",["get","type"],["piste"],.5,0],18,["match",["get","type"],["piste"],4,2],22,["match",["get","type"],["piste"],40,20]],"line-translate":[0,0],"line-offset":["interpolate",["linear"],["zoom"],12,0,18,["match",["get","type"],["piste"],0,-2],22,["match",["get","type"],["piste"],0,-20]],"line-opacity":["interpolate",["linear"],["zoom"],15,["match",["get","type"],["piste"],1,0],16,1],"line-dasharray":["step",["zoom"],["literal",[1]],16,["literal",[1,1]]]}},{id:"bridge-rail",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],paint:{"line-gap-width":["interpolate",["linear"],["zoom"],15,0,16,1,18,2,22,20],"line-color":["interpolate",["linear"],["measure-light","brightness"],.1,"hsl(0, 0%, 30%)",.4,"hsl(0, 0%, 65%)"],"line-width":["interpolate",["exponential",1.5],["zoom"],14,.5,22,2]}},{id:"bridge-rail-tracks",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:13,filter:["all",["==",["get","structure"],"bridge"],["match",["get","class"],["major_rail","minor_rail"],!0,!1]],paint:{"line-color":["interpolate",["linear"],["measure-light","brightness"],.1,"hsl(0, 0%, 30%)",.4,"hsl(0, 0%, 65%)"],"line-width":["interpolate",["exponential",1.5],["zoom"],16,2,18,6,20,16,22,32],"line-dasharray":["step",["zoom"],["literal",[.1,15]],16,["literal",[.1,1]],18,["literal",[.05,.5]]],"line-opacity":["interpolate",["linear"],["zoom"],13.75,0,14,1]}},{id:"aerialway",type:"line",metadata:{"mapbox:group":"roads & transit network"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["==",["get","class"],"aerialway"],["match",["get","type"],["aerialway:zip_line"],["step",["zoom"],!1,15,!0],!0]],paint:{"line-emissive-strength":1,"line-color":"hsl(225, 60%, 58%)","line-width":["interpolate",["exponential",1.5],["zoom"],14,1,20,2],"line-dasharray":[4,1]}},{id:"2d-building",type:"fill-extrusion",metadata:{"mapbox:group":"buildings"},source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{visibility:["case",["config","show3dObjects"],"none","visible"]},paint:{"fill-extrusion-emissive-strength":["case",["to-boolean",["feature-state","select"]],["interpolate",["linear"],["at",2,["to-hsla",["config","colorBuildingSelect"]]],50,.6,90,.4],["to-boolean",["feature-state","highlight"]],["interpolate",["linear"],["at",2,["to-hsla",["config","colorBuildingHighlight"]]],50,.6,90,.4],.25],"fill-extrusion-cutoff-fade-range":.5,"fill-extrusion-color":["case",["to-boolean",["feature-state","select"]],["config","colorBuildingSelect"],["to-boolean",["feature-state","highlight"]],["config","colorBuildingHighlight"],["interpolate",["linear"],["measure-light","brightness"],0,["match",["config","theme"],"monochrome","hsl(0, 0%, 5%)","hsl(235, 8%, 42%)"],.02,"hsl(235, 8%, 42%)",.03,"hsl(280, 8%, 58%)",.4,"hsl(25, 20%, 91%)"]],"fill-extrusion-opacity":1,"fill-extrusion-base":0}},{id:"2d-building-outline",type:"line",metadata:{"mapbox:group":"buildings"},source:"composite","source-layer":"building",minzoom:15,filter:["all",["!=",["get","type"],"building:part"],["==",["get","underground"],"false"]],layout:{visibility:["case",["config","show3dObjects"],"none","visible"]},paint:{"line-width":.5,"line-emissive-strength":.25,"line-color":["interpolate",["linear"],["zoom"],14,"hsla(0, 0%, 100%, 0)",16,["interpolate",["linear"],["measure-light","brightness"],0,["match",["config","theme"],"monochrome","hsl(0, 0%, 0%)","hsl(235, 8%, 22%)"],.02,"hsl(235, 8%, 22%)",.03,"hsl(280, 8%, 50%)",.4,"hsl(25, 10%, 76%)"]]}},{id:"admin-1-boundary-bg",type:"line",metadata:{"mapbox:group":"administrative boundaries"},source:"composite","source-layer":"admin",minzoom:7,filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-color":["hsla",345,100,100,["to-number",["at",3,["to-hsla",["config","colorAdminBoundaries"]]]]],"line-width":["interpolate",["linear"],["zoom"],3,3,12,6],"line-opacity":["interpolate",["linear"],["zoom"],7,0,8,.5],"line-dasharray":[1,0],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,3]},layout:{visibility:["case",["config","showAdminBoundaries"],"visible","none"]}},{id:"admin-0-boundary-bg",type:"line",metadata:{"mapbox:group":"administrative boundaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":["hsla",345,100,100,["to-number",["at",3,["to-hsla",["config","colorAdminBoundaries"]]]]],"line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]},layout:{visibility:["case",["config","showAdminBoundaries"],"visible","none"]}},{id:"admin-1-boundary",type:"line",metadata:{"mapbox:group":"administrative boundaries"},source:"composite","source-layer":"admin",minzoom:2,filter:["all",["==",["get","admin_level"],1],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":.5,"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]],"line-width":["interpolate",["linear"],["zoom"],3,.3,12,1.5],"line-opacity":["interpolate",["linear"],["zoom"],2,0,3,1],"line-color":["hsla",["to-number",["at",0,["to-hsla",["config","colorAdminBoundaries"]]]],["to-number",["at",1,["to-hsla",["config","colorAdminBoundaries"]]]],["min",100,["+",5,["to-number",["at",2,["to-hsla",["config","colorAdminBoundaries"]]]]]],["to-number",["at",3,["to-hsla",["config","colorAdminBoundaries"]]]]]},layout:{visibility:["case",["config","showAdminBoundaries"],"visible","none"]}},{id:"admin-0-boundary",type:"line",metadata:{"mapbox:group":"administrative boundaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":1,"line-color":["config","colorAdminBoundaries"],"line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":[10,0]},layout:{visibility:["case",["config","showAdminBoundaries"],"visible","none"]}},{id:"admin-0-boundary-disputed",type:"line",metadata:{"mapbox:group":"administrative boundaries"},source:"composite","source-layer":"admin",minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]]],paint:{"line-emissive-strength":.8,"line-color":["config","colorAdminBoundaries"],"line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]},layout:{visibility:["case",["config","showAdminBoundaries"],"visible","none"]}},{id:"middle",type:"slot",metadata:{"mapbox:description":"Above lines (roads, etc.) and behind 3D buildings"}},{id:"trees",type:"model",metadata:{"mapbox:group":"3d models"},source:"composite","source-layer":"tree",minzoom:15,layout:{visibility:["case",["config","show3dObjects"],"visible","none"],"model-id":["step",["zoom"],["match",["get","leaf_type"],"needleleaved",["case",["==",["%",["number",["id"]],2],0],"pine1-lod4","pine2-lod4"],"palm","palm1-lod4",["case",["==",["%",["number",["id"]],4],0],"oak1-lod4",["==",["%",["number",["id"]],4],1],"oak2-lod4",["==",["%",["number",["id"]],4],2],"maple1-lod4","maple2-lod4"]],15.8,["match",["get","leaf_type"],"needleleaved",["case",["==",["%",["number",["id"]],2],0],"pine1-lod3","pine2-lod3"],"palm","palm1-lod3",["case",["==",["%",["number",["id"]],4],0],"oak1-lod3",["==",["%",["number",["id"]],4],1],"oak2-lod3",["==",["%",["number",["id"]],4],2],"maple1-lod3","maple2-lod3"]],16.8,["match",["get","leaf_type"],"needleleaved",["case",["==",["%",["number",["id"]],2],0],"pine1-lod2","pine2-lod2"],"palm","palm1-lod2",["case",["==",["%",["number",["id"]],4],0],"oak1-lod2",["==",["%",["number",["id"]],4],1],"oak2-lod2",["==",["%",["number",["id"]],4],2],"maple1-lod2","maple2-lod2"]],17.5,["match",["get","leaf_type"],"needleleaved",["case",["==",["%",["number",["id"]],2],0],"pine1-lod1","pine2-lod1"],"palm","palm1-lod1",["case",["==",["%",["number",["id"]],4],0],"oak1-lod1",["==",["%",["number",["id"]],4],1],"oak2-lod1",["==",["%",["number",["id"]],4],2],"maple1-lod1","maple2-lod1"]]]},paint:{"model-cutoff-fade-range":.5,"model-color":["hsl",["random",["max",["-",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],20],0],["min",["+",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],40],360],["id"]],50,["random",["max",["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],20],0],["min",["+",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],5],90],["id"]]],"model-color-mix-intensity":.4,"model-opacity":["interpolate",["linear"],["zoom"],15,0,16,1],"model-rotation":[0,0,["random",0,360,["id"]]],"model-scale":["match",["%",["number",["id"]],5],0,["literal",[.8,.8,.8]],1,["literal",[.8,.8,.8]],2,["literal",[.9,.9,.9]],["literal",[1,1,1]]]}},{id:"wind-turbine-shadow",type:"circle",metadata:{"mapbox:group":"3d models"},source:"composite","source-layer":"wind_turbine",minzoom:15,layout:{visibility:["case",["config","show3dObjects"],"visible","none"]},paint:{"circle-pitch-alignment":"map","circle-blur":2,"circle-radius":["interpolate",["exponential",1.6],["zoom"],16,2,22,260],"circle-color":"hsl(0, 0%, 60%)","circle-opacity":["interpolate",["exponential",1.8],["zoom"],15,0,15.5,1]}},{id:"wind-turbine-towers",type:"model",metadata:{"mapbox:group":"3d models"},source:"composite","source-layer":"wind_turbine",minzoom:15,layout:{visibility:["case",["config","show3dObjects"],"visible","none"],"model-id":["step",["zoom"],"turbinetower-lod2",18,"turbinetower-lod1"]},paint:{"model-opacity":["interpolate",["exponential",1.8],["zoom"],15,0,15.5,1],"model-color":"hsl(0, 0%, 85%)","model-color-mix-intensity":.5,"model-cast-shadows":!1,"model-emissive-strength":.1}},{id:"wind-turbine-rotors",type:"model",metadata:{"mapbox:group":"3d models"},source:"composite","source-layer":"wind_turbine",minzoom:15,layout:{visibility:["case",["config","show3dObjects"],"visible","none"],"model-id":["step",["zoom"],"turbinerotor-lod2",18,"turbinerotor-lod1"]},paint:{"model-opacity":["interpolate",["exponential",1.8],["zoom"],15,0,15.5,1],"model-color":"hsl(0, 0%, 85%)","model-color-mix-intensity":.5,"model-cast-shadows":!1,"model-translation":[0,0,54.46344],"model-rotation":["interpolate",["linear"],["zoom"],15,[["random",0,45,["id"]],6,0],20,[["random",45,720,["id"]],6,0]],"model-emissive-strength":.1}},{id:"3d-building",type:"fill-extrusion",metadata:{"mapbox:group":"3d buildings"},source:"composite","source-layer":"building",minzoom:15,filter:["all",["==",["get","extrude"],"true"],["==",["get","underground"],"false"]],layout:{visibility:["case",["config","show3dObjects"],"visible","none"],"fill-extrusion-edge-radius":.4},paint:{"fill-extrusion-emissive-strength":["case",["to-boolean",["feature-state","select"]],["interpolate",["linear"],["at",2,["to-hsla",["config","colorBuildingSelect"]]],50,.6,90,.4],["to-boolean",["feature-state","highlight"]],["interpolate",["linear"],["at",2,["to-hsla",["config","colorBuildingHighlight"]]],50,.6,90,.4],0],"fill-extrusion-cutoff-fade-range":.5,"fill-extrusion-ambient-occlusion-intensity":.15,"fill-extrusion-color":["case",["to-boolean",["feature-state","select"]],["config","colorBuildingSelect"],["to-boolean",["feature-state","highlight"]],["config","colorBuildingHighlight"],["interpolate",["linear"],["get","height"],0,"hsl(40, 43%, 93%)",200,"hsl(23, 100%, 97%)"]],"fill-extrusion-ambient-occlusion-ground-radius":["interpolate",["linear"],["zoom"],17,0,17.8,8],"fill-extrusion-height":["case",["all",["==",["get","height"],3],["in",["get","type"],["literal",["beach_hut","boathouse","bunker","cabin","carport","garage","garages","greenhouse","houseboat","hut","service","stable","toilets"]]]],2,["all",["==",["get","height"],3],["==",["get","type"],"bungalow"]],4,["all",["==",["get","height"],3],["in",["get","type"],["literal",["apartments","church","civic","college","commercial","hangar","hotel","mosque","office","school","university","warehouse"]]]],["random",18,20,["id"]],["==",["get","height"],3],["random",5,7,["id"]],["case",["to-boolean",["feature-state","select"]],["+",["number",["get","height"]],1],["to-boolean",["feature-state","highlight"]],["+",["number",["get","height"]],1],["number",["get","height"]]]],"fill-extrusion-opacity":["interpolate",["linear"],["zoom"],15,0,15.3,1],"fill-extrusion-base":["case",[">=",["number",["get","min_height"]],0],["get","min_height"],0],"fill-extrusion-flood-light-intensity":["interpolate",["linear"],["measure-light","brightness"],.015,["match",["config","theme"],"monochrome",0,.3],.026,0],"fill-extrusion-vertical-scale":["interpolate",["linear"],["zoom"],15,0,15.3,1],"fill-extrusion-flood-light-wall-radius":["case",[">",["number",["get","height"]],200],["/",["number",["get","height"]],3],0],"fill-extrusion-flood-light-ground-radius":["step",["number",["get","height"]],0,30,["random",30,100,["id"]]],"fill-extrusion-flood-light-color":"hsl(30, 79%, 81%)"}},{id:"building-models",type:"model",metadata:{"mapbox:group":"3d buildings"},source:"3dbuildings",minzoom:14,layout:{visibility:["case",["config","show3dObjects"],"visible","none"]},paint:{"model-ambient-occlusion-intensity":["match",["config","theme"],"monochrome",.3,.75],"model-color":["match",["get","part"],"roof",["hsl",22,82,90],"wall",["interpolate",["linear"],["measure-light","brightness"],0,["hsl",29,93,77],.2,["hsl",0,0,100]],"window",["interpolate",["linear"],["measure-light","brightness"],0,["hsl",["random",0,90,["id"]],["random",20,100,["id"]],87],.15,["hsl",["random",200,215,["id"]],100,["random",70,80,["id"]]]],["interpolate",["linear"],["measure-light","brightness"],.16,["hsla",["random",10,70,["id"]],55,["random",80,90,["id"]],1],.4,"hsl(0, 100%, 100%)"]],"model-color-mix-intensity":["match",["get","part"],"logo",["interpolate",["linear"],["measure-light","brightness"],.2,0,.4,.3],1],"model-emissive-strength":["match",["get","part"],"door",["interpolate",["linear"],["measure-light","brightness"],.2,["match",["config","theme"],"monochrome",.2,1.5],.4,2.5],"logo",.6,"wall",["interpolate",["linear"],["measure-light","brightness"],.45,.1,.5,.8],"window",["interpolate",["linear"],["measure-light","brightness"],.2,["match",["config","theme"],"monochrome",["random",.1,.4,["id"]],["random",.5,.8,["id"]]],.4,.4],0],"model-height-based-emissive-strength-multiplier":["match",["get","part"],"wall",["interpolate",["linear"],["measure-light","brightness"],.2,["match",["config","theme"],"monochrome",["literal",[.5,0,0,.5,.8]],["literal",[.5,0,0,1,.8]]],.4,["literal",[0,1,0,1,.6]]],"window",["literal",[0,.9,0,1,.5]],["literal",[1,1,1,1,1]]],"model-opacity":["interpolate",["linear"],["zoom"],14.2,0,14.6,1],"model-roughness":["match",["get","part"],"window",0,1],"model-scale":["interpolate",["linear"],["zoom"],14.2,[1,1,0],14.6,[1,1,1]]}},{id:"path-pedestrian-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:12,filter:["all",["case",["has","layer"],[">=",["get","layer"],0],!0],["step",["zoom"],["match",["get","class"],["pedestrian"],!0,!1],15,["match",["get","class"],["path","pedestrian"],!0,!1]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.2]]]],layout:{visibility:["case",["all",["config","showRoadLabels"],["config","showPedestrianRoads"]],"visible","none"],"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],"pedestrian",9,6.5],18,["match",["get","class"],"pedestrian",14,13]],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01},paint:{"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.5,1],"text-color":["interpolate",["linear"],["measure-light","brightness"],.28,["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],90,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]],.3,["config","colorRoadLabels"]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],30,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]],.3,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoadLabels"]]]],75],["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],65,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],95,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]]]],"text-halo-width":1}},{id:"road-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:10,filter:["all",["has","name"],["step",["zoom"],["match",["get","class"],["motorway","trunk"],!0,!1],12,["match",["get","class"],["motorway","trunk","primary","secondary"],!0,!1],13,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary","street","street_limited"],!0,!1],15,["match",["get","class"],["path","pedestrian","golf","ferry","aerialway"],!1,!0]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.2]]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-size":["interpolate",["linear"],["zoom"],10,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],9,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","street","street_limited"],8,6.5],18,["match",["get","class"],["motorway","trunk","primary","secondary","tertiary"],16,["motorway_link","trunk_link","primary_link","secondary_link","tertiary_link","street","street_limited"],14,13]],"text-max-angle":30,"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15},paint:{"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.5,1],"text-color":["interpolate",["linear"],["measure-light","brightness"],.28,["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],90,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]],.3,["config","colorRoadLabels"]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],30,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]],.3,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorRoadLabels"]]]],75],["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],65,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]],["hsla",["to-number",["at",0,["to-hsla",["config","colorRoadLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorRoadLabels"]]]],95,["to-number",["at",3,["to-hsla",["config","colorRoadLabels"]]]]]]],"text-halo-width":1}},{id:"golf-hole-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:16,filter:["all",["==",["get","class"],"golf"],["case",["<=",["pitch"],40],!0,["<=",["distance-from-center"],0]]],layout:{visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-size":12},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.5,.7],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],54]]],.3,["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],20]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],20]]]],"text-halo-width":.5,"text-halo-blur":.5,"text-color":["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],20]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],20]]],.3,["hsl",["to-number",["at",0,["to-hsla",["config","colorGreenspace"]]]],["to-number",["at",1,["to-hsla",["config","colorGreenspace"]]]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorGreenspace"]]]],54]]]]}},{id:"ferry-aerialway-label",type:"symbol",metadata:{"mapbox:group":"road & transit labels"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["match",["get","class"],"aerialway",!0,"ferry",!0,!1],["case",["<=",["pitch"],40],!0,["<=",["distance-from-center"],0]]],layout:{visibility:["case",["config","showTransitLabels"],"visible","none"],"text-size":["interpolate",["linear"],["zoom"],10,6.5,18,13],"text-max-angle":30,"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line","text-padding":1,"text-rotation-alignment":"map","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.01,"text-transform":"uppercase"},paint:{"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.5,1],"text-color":["interpolate",["linear"],["measure-light","brightness"],.3,["hsl",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],9]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],50]],60],.4,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],50],["hsl",["min",360,["+",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],9]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],30]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],30]]],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],30]]]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 0%)",.3,["config","colorWater"]],"text-halo-width":1,"text-halo-blur":1}},{id:"waterway-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-occlusion-opacity":0,"text-color":["interpolate",["linear"],["measure-light","brightness"],.3,["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["min",100,["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],60]]],["min",100,["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],36]]]],.4,["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["min",100,["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],4]]],["min",100,["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],36]]]]]}},{id:"natural-line-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["get","filterrank"],2],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"symbol-placement":"line-center","text-pitch-alignment":"viewport"},paint:{"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"text-halo-width":.5,"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 0%)",.3,"hsl(0, 0%, 100%)"],"text-halo-blur":.5,"text-color":["interpolate",["linear"],["measure-light","brightness"],.28,["match",["config","theme"],"monochrome","hsl(0, 0%, 60%)","hsl(210, 20%, 80%)"],.3,"hsl(210, 20%, 46%)"]}},{id:"natural-point-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["get","filterrank"],2],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"Point"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["image",["string",["get","maki"]]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.75]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.75]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"icon-occlusion-opacity":0,"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.7],.5,1],"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 0%)",.3,"hsl(20, 20%, 100%)"],"text-color":["interpolate",["linear"],["measure-light","brightness"],.28,["match",["config","theme"],"monochrome","hsl(0, 0%, 60%)","hsl(210, 20%, 80%)"],.3,"hsl(210, 20%, 46%)"],"text-halo-width":.5,"text-halo-blur":.5}},{id:"water-line-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"LineString"]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]]},paint:{"text-occlusion-opacity":0,"text-color":["interpolate",["linear"],["measure-light","brightness"],.3,["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],60]],44],.4,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],50],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],4]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],36]]],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],25]]]]]}},{id:"water-point-label",type:"symbol",metadata:{"mapbox:group":"natural labels"},source:"composite","source-layer":"natural_label",minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],0]],["==",["geometry-type"],"Point"],["!=",["id"],1]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":[["concat",["config","font"]," Italic"],"Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10]},paint:{"text-occlusion-opacity":0,"text-color":["interpolate",["linear"],["measure-light","brightness"],.3,["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],60]],44],.4,["case",[">=",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],50],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["max",0,["-",["to-number",["at",1,["to-hsla",["config","colorWater"]]]],4]],["max",0,["-",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],36]]],["hsl",["to-number",["at",0,["to-hsla",["config","colorWater"]]]],["to-number",["at",1,["to-hsla",["config","colorWater"]]]],["min",100,["+",["to-number",["at",2,["to-hsla",["config","colorWater"]]]],25]]]]]}},{id:"road-intersection",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"road",minzoom:15,filter:["all",["==",["get","class"],"intersection"],["has","name"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"icon-image":"intersection","icon-text-fit":"both","icon-text-fit-padding":[1,2,1,2],"text-size":["interpolate",["exponential",1.2],["zoom"],15,9,18,12],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"]},paint:{"icon-occlusion-opacity":.1,"text-occlusion-opacity":.1,"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.6,.75],.3,1],"text-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.45,.75],.3,1],"text-color":"hsl(230, 57%, 64%)"}},{id:"road-number-shield",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"road",minzoom:6,filter:["all",["has","reflen"],["<=",["get","reflen"],6],["match",["get","class"],["pedestrian","service"],!1,!0],["step",["zoom"],["==",["geometry-type"],"Point"],11,[">",["coalesce",["get","len"],0],5e3],12,[">",["coalesce",["get","len"],0],2500],13,[">",["coalesce",["get","len"],0],1e3],14,!0],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-size":9,"icon-image":["case",["has","shield_beta"],["coalesce",["image",["concat",["get","shield_beta"],"-",["to-string",["get","reflen"]]]],["image",["concat",["get","shield"],"-",["to-string",["get","reflen"]]]],["image",["concat","default-",["to-string",["get","reflen"]]]]],["concat",["get","shield"],"-",["to-string",["get","reflen"]]]],"icon-rotation-alignment":"viewport","text-max-angle":38,"symbol-spacing":["interpolate",["linear"],["zoom"],11,400,14,600],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"],"symbol-placement":["step",["zoom"],"point",11,"line"],"text-rotation-alignment":"viewport","text-field":["get","ref"],"text-letter-spacing":.05},paint:{"icon-occlusion-opacity":.1,"text-occlusion-opacity":.1,"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.75],.3,1],"text-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.75],.3,1],"text-color":["case",["has","shield_beta"],["case",["all",["has","shield_text_color_beta"],["to-boolean",["coalesce",["image",["concat",["get","shield_beta"],"-",["to-string",["get","reflen"]]]],""]]],["match",["get","shield_text_color_beta"],"white","hsl(0, 0%, 100%)","yellow","hsl(50, 100%, 70%)","orange","hsl(25, 100%, 75%)","blue","hsl(230, 57%, 44%)","red","hsl(0, 87%, 59%)","green","hsl(140, 74%, 37%)","hsl(230, 18%, 13%)"],"hsl(230, 18%, 13%)"],["match",["get","shield_text_color"],"white","hsl(0, 0%, 100%)","yellow","hsl(50, 100%, 70%)","orange","hsl(25, 100%, 75%)","blue","hsl(230, 57%, 44%)","red","hsl(0, 87%, 59%)","green","hsl(140, 74%, 37%)","hsl(230, 18%, 13%)"]]}},{id:"road-exit-shield",type:"symbol",metadata:{"mapbox:group":"road shields"},source:"composite","source-layer":"motorway_junction",minzoom:14,filter:["all",["has","reflen"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"text-field":["get","ref"],"text-size":9,"icon-image":["concat","motorway-exit-",["to-string",["get","reflen"]]],"text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"]},paint:{"icon-occlusion-opacity":.1,"text-occlusion-opacity":.1,"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.75],.3,1],"text-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.5,.75],.3,1],"text-color":"hsl(0, 0%, 100%)","text-translate":[0,0]}},{id:"gate-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"structure",minzoom:17,filter:["all",["==",["get","class"],"gate"],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<=",["distance-from-center"],.4],50,["<",["distance-from-center"],.2],55,["<",["distance-from-center"],0],60,["<",["distance-from-center"],-.05]]]],layout:{visibility:["case",["config","showRoadLabels"],"visible","none"],"icon-image":["match",["get","type"],"gate","gate","lift_gate","lift-gate",""]},paint:{"icon-occlusion-opacity":0,"text-occlusion-opacity":0,"icon-emissive-strength":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome",.4,.5],.3,1]}},{id:"building-entrance",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"structure",minzoom:18,filter:["all",["==",["get","class"],"entrance"],["case",["<=",["pitch"],40],!0,!1]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"icon-image":"marker","text-field":["get","ref"],"text-size":10,"text-offset":[0,-.5],"text-font":[["concat",["config","font"]," Regular"],"Arial Unicode MS Regular"]},paint:{"icon-occlusion-opacity":0,"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.5,1],"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)","icon-opacity":.4}},{id:"building-number-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"housenum_label",minzoom:17,filter:["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],.4],50,["<",["distance-from-center"],.2],55,["<",["distance-from-center"],0],60,["<=",["distance-from-center"],-.4]]],layout:{"symbol-z-elevate":!0,visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["get","house_num"],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-max-width":10,"text-size":10,"text-padding":20},paint:{"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.5,1],"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)"}},{id:"block-number-label",type:"symbol",metadata:{"mapbox:group":"building labels"},source:"composite","source-layer":"place_label",minzoom:16,filter:["all",["==",["get","class"],"settlement_subdivision"],["==",["get","type"],"block"],["case",["<=",["pitch"],60],!0,["<=",["distance-from-center"],.5]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["get","name"],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-max-width":7,"text-size":11},paint:{"text-occlusion-opacity":0,"text-emissive-strength":["match",["config","theme"],"monochrome",.5,1],"text-color":"hsl(20, 0%, 60%)","text-halo-color":"hsl(20, 17%, 100%)"}},{id:"poi-label",type:"symbol",metadata:{"mapbox:group":"poi labels"},source:"composite","source-layer":"poi",minzoom:6,filter:["all",["has","sub_category"],["case",["<=",["pitch"],15],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],-2,16,-1,18,0],["match",["get","category"],"park_like",4,"visitor_amenities",2,"store_like",3,"lodging",1,2],["config","densityPointOfInterestLabels"]]],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],-2,16,-1,18,0],["match",["get","category"],"park_like",4,["food_and_drink","visitor_amenities","lodging"],1,"religion",0,2],["config","densityPointOfInterestLabels"]]]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1.2],50,["<",["distance-from-center"],1],55,["<",["distance-from-center"],.8],60,["<=",["distance-from-center"],.6]]],["match",["get","category"],["sport_and_leisure","visitor_amenities","commercial_services","general"],[">",["get","reality_score"],.95],["building","lodging","medical","store_like","food_and_drink","food_and_drink_stores","motorist","industrial","education"],[">",["get","reality_score"],.85],!0]],layout:{"icon-size":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],1,1.15],"text-size":13,"icon-image":["image",["string",["get","icon"]],{params:{"background-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]],"hsla(0, 0, 0, 0)"],icon:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["case",["==",["get","icon"],"marker"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["max",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],5],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","category"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","icon"],["literal",["communications-tower","museum","zoo"]]],["in",["get","category"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","icon"],"car-repair"],["in",["get","category"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","icon"],"picnic-site"],["==",["get","category"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]]],background:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","category"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","icon"],["literal",["communications-tower","museum","zoo"]]],["in",["get","category"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","icon"],"car-repair"],["in",["get","category"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","icon"],"picnic-site"],["==",["get","category"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]],"hsla(0,0, 0, 0)"],"icon-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]]}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-padding":["interpolate",["linear"],["zoom"],16,6,17,4],visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"symbol-z-elevate":!0,"text-offset":["case",["match",["get","category"],["building","general","place_like"],!0,!1],["literal",[0,-.6]],["literal",[0,.8]]],"text-anchor":["case",["match",["get","category"],["building","general","place_like"],!0,!1],"bottom","top"],"text-field":["format",["get","name"],{}]},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.7,.9],"icon-emissive-strength":["match",["config","theme"],"monochrome",.7,.9],"text-opacity":1,"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-width":1,"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome","#000000",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"]],.3,["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"hsl(0, 0%, 100%)"]],"text-color":["match",["config","theme"],"monochrome",["interpolate",["linear"],["measure-light","brightness"],.25,"#999999",.3,"#A6A6A6"],["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["max",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],10],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","category"],"food_and_drink",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(40, 95%, 70%)",.3,"hsl(30, 100%, 48%)"],"education",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(30, 50%, 70%)",.3,"hsl(30, 50%, 38%)"],"medical",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 70%, 70%)",.3,"hsl(0, 90%, 60%)"],"sport_and_leisure",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(190, 60%, 70%)",.3,"hsl(190, 75%, 38%)"],["store_like","food_and_drink_stores"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(210, 70%, 75%)",.3,"hsl(210, 75%, 53%)"],["arts_and_entertainment","historic","landmark"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(320, 70%, 75%)",.3,"hsl(320, 85%, 60%)"],["commercial_services","motorist","lodging"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(260, 70%, 75%)",.3,"hsl(250, 75%, 60%)"],"park_like",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(110, 55%, 65%)",.3,"hsl(110, 70%, 28%)"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(210, 20%, 70%)",.3,"hsl(210, 20%, 43%)"]]]]}},{id:"poi-label-osm",type:"symbol",source:"composite","source-layer":"poi",minzoom:6,filter:["all",["!",["has","sub_category"]],["case",["<=",["pitch"],15],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],-2,16,-1,18,0],["match",["get","class"],"park_like",4,"visitor_amenities",2,"store_like",3,"lodging",1,2],["config","densityPointOfInterestLabels"]]],["<=",["number",["get","filterrank"]],["+",["step",["zoom"],-2,16,-1,18,0],["match",["get","class"],"park_like",4,["food_and_drink","visitor_amenities","lodging"],1,"religion",0,2],["config","densityPointOfInterestLabels"]]]],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1.2],50,["<",["distance-from-center"],1],55,["<",["distance-from-center"],.8],60,["<=",["distance-from-center"],.6]]],["all",["match",["get","type"],"Toilets",[">=",["zoom"],17],!0]]],layout:{"icon-size":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],1,1.15],"symbol-z-elevate":!0,visibility:["case",["config","showPointOfInterestLabels"],"visible","none"],"text-size":["step",["zoom"],["step",["number",["get","sizerank"]],18,5,13],17,["step",["number",["get","sizerank"]],18,13,13]],"text-field":["format",["coalesce",["get","name_en"],["get","name"]],{}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-padding":["interpolate",["linear"],["zoom"],16,6,17,4],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["string",["get","maki_beta"]],{params:{"background-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]],"hsla(0, 0, 0, 0)"],icon:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["case",["==",["get","maki_beta"],"marker"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["max",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],5],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","maki_beta"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","maki_beta"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","maki_beta"],"picnic-site"],["==",["get","class"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]]],background:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]],"hsla(0,0, 0, 0)"],"icon-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]]}}],["image",["string",["get","maki"]],{params:{"background-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]],"hsla(0, 0, 0, 0)"],icon:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["case",["==",["get","maki"],"marker"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["max",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],5],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]]],background:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]],"hsla(0,0, 0, 0)"],"icon-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]]}}]],["image",["string",["get","maki"]],{params:{"background-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]],"hsla(0, 0, 0, 0)"],icon:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["case",["==",["get","maki"],"marker"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["max",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],5],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]]],background:["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],["match",["config","theme"],"monochrome","#A6A6A6",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["match",["config","lightPreset"],["dusk","night"],"#FBCB6A","#F93"],"education",["match",["config","lightPreset"],["dusk","night"],"#D9B38C","#BF8040"],"medical",["match",["config","lightPreset"],["dusk","night"],"#E87D7D","#FB7474"],"sport_and_leisure",["match",["config","lightPreset"],["dusk","night"],"#85D1E0","#20BFDF"],["store_like","food_and_drink_stores"],["match",["config","lightPreset"],["dusk","night"],"#93C0EC","#63A6E9"],["case",["any",["in",["get","maki"],["literal",["communications-tower","museum","zoo"]]],["in",["get","class"],["literal",["arts_and_entertainment","historic","landmark"]]]],["match",["config","lightPreset"],["dusk","night"],"#EC93CE","#F47BCB"],["any",["==",["get","maki"],"car-repair"],["in",["get","class"],["literal",["commercial_services","motorist","lodging"]]]],["match",["config","lightPreset"],["dusk","night"],"#A17DE8","#9482ED"],["any",["==",["get","maki"],"picnic-site"],["==",["get","class"],"park_like"]],["match",["config","lightPreset"],["dusk","night"],"#85D775","#36AD1F"],["match",["config","lightPreset"],["dusk","night"],"#A3B3C2","#7594A3"]]]]],"hsla(0,0, 0, 0)"],"icon-stroke":["case",["==",["config","backgroundPointOfInterestLabels"],"circle"],"hsla(0, 0, 0, 0)",["match",["config","lightPreset"],["dusk","night"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"],["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]]]}}]],"text-offset":["step",["zoom"],["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],["literal",[0,-.6]],["step",["number",["get","sizerank"]],["literal",[0,0]],5,["literal",[0,.8]]]],17,["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],["literal",[0,-.6]],["step",["number",["get","sizerank"]],["literal",[0,0]],13,["literal",[0,.8]]]]],"text-anchor":["step",["zoom"],["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],"bottom",["step",["number",["get","sizerank"]],"center",5,"top"]],17,["case",["all",["!=",["get","maki_beta"],"terminal"],["match",["get","class"],["building","general","place_like"],!0,!1]],"bottom",["step",["number",["get","sizerank"]],"center",13,"top"]]]},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.7,.9],"icon-emissive-strength":["match",["config","theme"],"monochrome",.7,.9],"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["step",["zoom"],["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,5,1]],17,["case",["to-boolean",["feature-state","hide"]],0,["step",["number",["get","sizerank"]],0,13,1]]],"text-halo-width":1,"text-halo-blur":0,"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,["match",["config","theme"],"monochrome","#000000",["case",["==",["config","colorModePointOfInterestLabels"],"single"],["hsla",0,0,5,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],"#0D0D0D"]],.3,["case",["all",["==",["config","colorModePointOfInterestLabels"],"single"],["!=",["config","theme"],"monochrome"]],["case",[">=",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],80],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],40,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["hsla",0,0,100,["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]]],"#FFFFFF"]],"text-color":["match",["config","theme"],"monochrome",["interpolate",["linear"],["measure-light","brightness"],.25,"#999999",.3,"#A6A6A6"],["case",["==",["config","colorModePointOfInterestLabels"],"single"],["match",["config","lightPreset"],["dusk","night"],["hsla",["to-number",["at",0,["to-hsla",["config","colorPointOfInterestLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPointOfInterestLabels"]]]],["min",["+",["max",["to-number",["at",2,["to-hsla",["config","colorPointOfInterestLabels"]]]],10],20],100],["to-number",["at",3,["to-hsla",["config","colorPointOfInterestLabels"]]]]],["config","colorPointOfInterestLabels"]],["match",["get","class"],"food_and_drink",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(40, 95%, 70%)",.3,"hsl(30, 100%, 48%)"],"education",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(30, 50%, 70%)",.3,"hsl(30, 50%, 38%)"],"medical",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 70%, 70%)",.3,"hsl(0, 90%, 60%)"],"sport_and_leisure",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(190, 60%, 70%)",.3,"hsl(190, 75%, 38%)"],["store_like","food_and_drink_stores"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(210, 70%, 75%)",.3,"hsl(210, 75%, 53%)"],["arts_and_entertainment","historic","landmark"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(320, 70%, 75%)",.3,"hsl(320, 85%, 60%)"],["commercial_services","motorist","lodging"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(260, 70%, 75%)",.3,"hsl(250, 75%, 60%)"],"park_like",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(110, 55%, 65%)",.3,"hsl(110, 70%, 28%)"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(210, 20%, 70%)",.3,"hsl(210, 20%, 43%)"]]]]},metadata:{"mapbox:group":"poi labels"}},{id:"top",type:"slot",metadata:{"mapbox:description":"Above POI labels and behind Place and Transit labels"}},{id:"transit-label",type:"symbol",metadata:{"mapbox:group":"transit labels"},source:"composite","source-layer":"transit_stop_label",minzoom:12,filter:["all",["step",["zoom"],["all",["!=",["get","mode"],"bus"],["!=",["get","stop_type"],"entrance"]],17,["!=",["get","stop_type"],"entrance"],19,!0],["case",["<=",["pitch"],40],!0,["step",["pitch"],!0,40,["<",["distance-from-center"],1],50,["<",["distance-from-center"],.8],55,["<",["distance-from-center"],.4],60,["<=",["distance-from-center"],-.1]]]],layout:{visibility:["case",["config","showTransitLabels"],"visible","none"],"text-size":13,"icon-image":["image",["string",["get","network"]],{params:{background:["match",["config","lightPreset"],["dusk","night"],"hsl(225, 60%, 60%)","hsl(225, 60%, 58%)"],"background-stroke":["match",["config","lightPreset"],["dusk","night"],"hsl(0, 0%, 0%)","hsl(0, 0%, 100%)"],icon:["match",["config","lightPreset"],["dusk","night"],"hsl(0, 0%, 0%)","hsl(0, 0%, 100%)"]}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-justify":["match",["get","stop_type"],"entrance","left","center"],"text-offset":["case",["==",["get","network"],"entrance"],["literal",[1,0]],["==",["get","stop_type"],"entrance"],["literal",[1.8,0]],["literal",[0,.8]]],"text-anchor":["match",["get","stop_type"],"entrance","left","top"],"text-field":["step",["zoom"],["format","",{}],13,["match",["get","mode"],["metro_rail","rail"],["format",["coalesce",["get","name_en"],["get","name"]],{}],["format","",{}]],14,["match",["get","mode"],["bicycle","bus"],["format","",{}],["format",["coalesce",["get","name_en"],["get","name"]],{}]],18,["format",["coalesce",["get","name_en"],["get","name"]],{}]],"text-letter-spacing":.01,"text-max-width":["match",["get","stop_type"],"entrance",15,9]},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-emissive-strength":["match",["config","theme"],"monochrome",.7,1.5],"icon-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"text-halo-width":1,"text-halo-blur":0,"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 0%)",.3,"hsl(0, 0%, 100%)"],"text-color":["match",["config","theme"],"monochrome",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 70%)",.3,"hsl(0, 0%, 40%)"],["match",["get","network"],"tokyo-metro",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(180, 50%, 80%)",.3,"hsl(180, 50%, 30%)"],"mexico-city-metro",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(25, 100%, 80%)",.3,"hsl(25, 100%, 63%)"],["barcelona-metro","delhi-metro","hong-kong-mtr","milan-metro","osaka-subway"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 90%, 65%)",.3,"hsl(0, 90%, 47%)"],["boston-t","washington-metro"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(230, 18%, 80%)",.3,"hsl(230, 18%, 20%)"],["chongqing-rail-transit","kiev-metro","singapore-mrt","taipei-metro"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(140, 90%, 85%)",.3,"hsl(140, 90%, 25%)"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(225, 60%, 60%)",.3,"hsl(225, 60%, 50%)"]]]}},{id:"airport-label",type:"symbol",metadata:{"mapbox:group":"transit labels"},source:"composite","source-layer":"airport_label",minzoom:8,filter:["all",["match",["get","class"],["military","civil","disputed_military","disputed_civil"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showTransitLabels"],"visible","none"],"text-line-height":1.1,"text-size":["step",["get","sizerank"],18,9,13],"icon-image":["image",["string",["get","maki"]],{params:{background:["match",["config","lightPreset"],["dusk","night"],"hsl(225, 60%, 60%)","hsl(225, 60%, 58%)"],"background-stroke":["match",["config","lightPreset"],["dusk","night"],"hsl(0, 0%, 0%)","hsl(0, 0%, 100%)"],icon:["match",["config","lightPreset"],["dusk","night"],"hsl(0, 0%, 0%)","hsl(0, 0%, 100%)"]}}],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-offset":[0,.8],"text-rotation-alignment":"viewport","text-anchor":"top","text-field":["step",["get","sizerank"],["case",["has","ref"],["concat",["get","ref"],` -
234
234
  `,["coalesce",["get","name_en"],["get","name"]]],["coalesce",["get","name_en"],["get","name"]]],15,["get","ref"]],"text-letter-spacing":.01,"text-max-width":9},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-emissive-strength":["match",["config","theme"],"monochrome",.7,1.5],"icon-emissive-strength":["match",["config","theme"],"monochrome",.7,1],"text-color":["match",["config","theme"],"monochrome",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 70%)",.3,"hsl(0, 0%, 40%)"],["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(225, 60%, 60%)",.3,"hsl(225, 60%, 50%)"]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 0%)",.3,"hsl(0, 0%, 100%)"],"text-halo-width":1}},{id:"settlement-subdivision-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:10,maxzoom:15,filter:["all",["match",["get","class"],["disputed_settlement_subdivision","settlement_subdivision"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["<=",["number",["get","filterrank"]],3],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],1.5]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",12,11.5],15,["match",["get","type"],"suburb",16,15]]},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-emissive-strength":["match",["config","theme"],"monochrome",.6,1.2],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(0, 0%, 20%, 0.5)",.3,["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 80%, 1)"]],"text-halo-width":1.3,"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],["interpolate",["linear"],["measure-light","brightness"],.28,["hsla",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],85,.6],.3,["hsla",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],.6]]]}},{id:"settlement-minor-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:2,maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],["image","border-dot-13",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}],["step",["get","symbolrank"],["image","dot-11",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}],9,["image","dot-10",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}],11,["image","dot-9",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}]]],8,""],"text-font":[["concat",["config","font"]," Regular"],"Arial Unicode MS Regular"],"text-justify":"auto","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"icon-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],.3,["config","colorPlaceLabels"]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(0, 0%, 20%, 1)",.3,["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]],"text-halo-width":1,"text-halo-blur":1}},{id:"landmark-icon",type:"symbol",metadata:{"mapbox:group":"Landmark icons"},source:"mapbox-landmark-pois","source-layer":"landmarks_poi",minzoom:10,maxzoom:17,filter:["all",["has","local_rank"],["<=",["get","local_rank"],1],["step",["zoom"],["==",["geometry-type"],"Point"],10,[">=",["get","local_rank"],.9],11,[">=",["get","local_rank"],.8],12,[">=",["get","local_rank"],.7],13,[">=",["get","local_rank"],.5],13.5,[">=",["get","local_rank"],.3],14,[">=",["get","local_rank"],.1],15.5,["case",[">",["pitch"],1],[">",["get","local_rank"],1],[">=",["get","local_rank"],.1]]],["case",["<=",["pitch"],45],!0,["all",["<=",["distance-from-center"],2],[">",["pitch"],45]],!0,!1]],paint:{"symbol-z-offset":["interpolate",["linear"],["zoom"],14,0,15,["case",["config","show3dObjects"],["+",["to-number",["get","height"]],10],0]],"icon-image-cross-fade":["interpolate",["linear"],["measure-light","brightness"],.25,0,.3,1],"icon-opacity":["interpolate",["linear"],["zoom"],10,0,10.3,1,16.7,1,17,0],"icon-emissive-strength":["match",["config","theme"],"monochrome",["interpolate",["linear"],["measure-light","brightness"],.25,.5,.3,1],1],"text-color":["match",["config","theme"],"monochrome",["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 40%)",.3,"hsl(0, 0%, 35%)"],["interpolate",["linear"],["measure-light","brightness"],.28,"hsl(240, 15%, 75%)",.3,"hsl(0, 0%, 35%)"]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.25,"hsl(0, 0%, 0%)",.3,"hsl(0, 0%, 100%)"],"text-halo-width":1,"text-opacity":["interpolate",["linear"],["zoom"],10,0,10.3,["case",["==",["config","showLandmarkIconLabels"],!0],1,0],16.7,["case",["==",["config","showLandmarkIconLabels"],!0],1,0],17,0]},layout:{visibility:["case",["config","showLandmarkIcons"],"visible","none"],"text-field":["to-string",["get","short_name_en"]],"icon-allow-overlap":!1,"icon-padding":30,"symbol-sort-key":["-",1,["get","local_rank"]],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"icon-image":["image",["concat","landmark-icons","/",["get","icon_name"],"-dark"],{iconset:{id:"landmarks"}},["concat","landmark-icons","/",["get","icon_name"]],{iconset:{id:"landmarks"}}],"icon-size":["interpolate",["linear"],["zoom"],12,.8,14,1],"symbol-placement":"point","text-size":["interpolate",["linear"],["zoom"],12,12,14,14],"text-padding":20,"text-anchor":"top","text-offset":[0,1.8]}},{id:"settlement-major-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:2,maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],["image","border-dot-13",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}],["step",["get","symbolrank"],["image","dot-11",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}],9,["image","dot-10",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}],11,["image","dot-9",{params:{"color-primary":["match",["config","lightPreset"],["dusk","night"],["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],["config","colorPlaceLabels"]],"color-secondary":["match",["config","lightPreset"],["dusk","night"],"hsla(0, 0%, 20%, 1)",["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]]}}]]],8,""],"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],"text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"icon-opacity":["case",["to-boolean",["feature-state","hide"]],0,1],"text-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"icon-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],.3,["config","colorPlaceLabels"]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(0, 0%, 20%, 1)",.3,["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]],"text-halo-width":1,"text-halo-blur":1}},{id:"state-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:3,maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":[["concat",["config","font"]," Bold"],"Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],.3,["config","colorPlaceLabels"]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(0, 0%, 20%, 1)",.3,["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]],"text-halo-width":1,"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.5]}},{id:"country-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"place_label",minzoom:1,maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["case",["has","$localized"],!0,["match",["get","worldview"],["all","CN"],!0,!1]],!1],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"icon-image":"","text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],11,4,9,5,8],9,["step",["get","symbolrank"],22,4,19,5,17]]},paint:{"text-opacity":["case",["to-boolean",["feature-state","hide"]],0,.8],"text-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],.3,["config","colorPlaceLabels"]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(0, 0%, 20%, 1)",.3,["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]],"text-halo-width":1.25}},{id:"continent-label",type:"symbol",metadata:{"mapbox:group":"place labels"},source:"composite","source-layer":"natural_label",minzoom:.75,maxzoom:3,filter:["all",["==",["get","class"],"continent"],["case",["<=",["pitch"],45],!0,["<=",["distance-from-center"],2]]],layout:{visibility:["case",["config","showPlaceLabels"],"visible","none"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":[["concat",["config","font"]," Medium"],"Arial Unicode MS Bold"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05},paint:{"text-emissive-strength":["match",["config","theme"],"monochrome",.6,1],"text-color":["case",["to-boolean",["feature-state","select"]],["config","colorPlaceLabelSelect"],["to-boolean",["feature-state","highlight"]],["config","colorPlaceLabelHighlight"],["interpolate",["linear"],["measure-light","brightness"],.28,["hsl",["to-number",["at",0,["to-hsla",["config","colorPlaceLabels"]]]],["to-number",["at",1,["to-hsla",["config","colorPlaceLabels"]]]],80],.3,["config","colorPlaceLabels"]]],"text-halo-color":["interpolate",["linear"],["measure-light","brightness"],.28,"hsla(0, 0%, 20%, 1)",.3,["step",["to-number",["at",2,["to-hsla",["config","colorPlaceLabels"]]]],"hsla(0, 0%, 100%, 1)",90,"hsla(0, 0%, 60%, 1)"]],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.8],1.5,["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.5],2.5,["case",["to-boolean",["feature-state","hide"]],0,["to-boolean",["feature-state","select"]],1,["to-boolean",["feature-state","highlight"]],1,.5]]}}],models:{"maple1-lod1":"mapbox://models/mapbox/maple1-v4-lod1.glb","maple1-lod2":"mapbox://models/mapbox/maple1-v4-lod2.glb","maple1-lod3":"mapbox://models/mapbox/maple1-v4-lod3.glb","maple1-lod4":"mapbox://models/mapbox/maple1-v4-lod4.glb","maple2-lod1":"mapbox://models/mapbox/maple2-v4-lod1.glb","maple2-lod2":"mapbox://models/mapbox/maple2-v4-lod2.glb","maple2-lod3":"mapbox://models/mapbox/maple2-v4-lod3.glb","maple2-lod4":"mapbox://models/mapbox/maple2-v4-lod4.glb","oak1-lod1":"mapbox://models/mapbox/oak1-v4-lod1.glb","oak1-lod2":"mapbox://models/mapbox/oak1-v4-lod2.glb","oak1-lod3":"mapbox://models/mapbox/oak1-v4-lod3.glb","oak1-lod4":"mapbox://models/mapbox/oak1-v4-lod4.glb","oak2-lod1":"mapbox://models/mapbox/oak2-v4-lod1.glb","oak2-lod2":"mapbox://models/mapbox/oak2-v4-lod2.glb","oak2-lod3":"mapbox://models/mapbox/oak2-v4-lod3.glb","oak2-lod4":"mapbox://models/mapbox/oak2-v4-lod4.glb","palm1-lod1":"mapbox://models/mapbox/palm1-v4-lod1.glb","palm1-lod2":"mapbox://models/mapbox/palm1-v4-lod2.glb","palm1-lod3":"mapbox://models/mapbox/palm1-v4-lod3.glb","palm1-lod4":"mapbox://models/mapbox/palm1-v4-lod4.glb","pine1-lod1":"mapbox://models/mapbox/pine1-v4-lod1.glb","pine1-lod2":"mapbox://models/mapbox/pine1-v4-lod2.glb","pine1-lod3":"mapbox://models/mapbox/pine1-v4-lod3.glb","pine1-lod4":"mapbox://models/mapbox/pine1-v4-lod4.glb","pine2-lod1":"mapbox://models/mapbox/pine2-v4-lod1.glb","pine2-lod2":"mapbox://models/mapbox/pine2-v4-lod2.glb","pine2-lod3":"mapbox://models/mapbox/pine2-v4-lod3.glb","pine2-lod4":"mapbox://models/mapbox/pine2-v4-lod4.glb","turbinetower-lod1":"mapbox://models/mapbox/turbinetower1-lod1.glb","turbinerotor-lod1":"mapbox://models/mapbox/turbinerotor1-lod1.glb","turbinetower-lod2":"mapbox://models/mapbox/turbinetower1-lod2.glb","turbinerotor-lod2":"mapbox://models/mapbox/turbinerotor1-lod2.glb"},featuresets:{poi:{metadata:{"mapbox:title":"Points of interest","mapbox:description":"A point of interest.","mapbox:states":[{id:"hide",type:"boolean",doc:"When `true`, hides the icon and text. Use this state when displaying a custom annotation on top.",importConfigs:[]}],"mapbox:properties":[{name:"name",type:"string",doc:"Name of the point of interest."},{name:"group",type:"string",doc:"A high-level category, like POI, airport, transit, etc."},{name:"class",type:"string",doc:"A broad category of point of interest."},{name:"maki",type:"string",doc:"An icon identifier, designed to assign icons using the Maki icon project or other icons that follow the same naming scheme."},{name:"transit_mode",type:"string",doc:"Mode of transport served by a stop/station. Expected to be null for non-transit points of interest."},{name:"transit_stop_type",type:"string",doc:"A type of transit stop. Expected to be null for non-transit points of interest."},{name:"transit_network",type:"string",doc:"A rail station network identifier that is part of specific local or regional transit systems. Expected to be null for non-transit points of interest."},{name:"airport_ref",type:"string",doc:"A short identifier code of the airport. Expected to be null for non-airport points of interest"}]},selectors:[{layer:"poi-label-osm",properties:{name:["get","name"],class:["get","class"],maki:["coalesce",["get","maki_beta"],["get","maki"]],group:"poi"},featureNamespace:"poi-A"},{layer:"poi-label",properties:{name:["get","name"],class:["get","category"],maki:["get","icon"],group:"poi"},featureNamespace:"poi-A"},{layer:"transit-label",properties:{name:["get","name"],transit_mode:["get","mode"],transit_stop_type:["get","stop_type"],transit_network:["get","network"],group:"transit"},featureNamespace:"poi-B"},{layer:"airport-label",properties:{name:["get","name"],class:["get","class"],maki:["get","maki"],airport_ref:["get","ref"],group:"airport"},featureNamespace:"poi-C"},{layer:"natural-point-label",properties:{name:["get","name"],class:["get","class"],maki:["coalesce",["get","maki_beta"],["get","maki"]],group:"natural-point"},featureNamespace:"poi-D"}]},"place-labels":{metadata:{"mapbox:title":"Place labels","mapbox:description":"Points for labeling places including countries, states, cities, towns, and neighborhoods.","mapbox:states":[{id:"hide",type:"boolean",doc:"When `true`, hides the label. Use this state when displaying a custom annotation on top.",importConfigs:[]},{id:"highlight",type:"boolean",doc:"When `true`, the feature is highlighted. Use this state to create a temporary effect (e.g. hover).",importConfigs:["colorPlaceLabelHighlight"]},{id:"select",type:"boolean",doc:"When `true`, the feature is selected. Use this state to create a permanent effect. Note: the `select` state has a higher priority than `highlight`.",importConfigs:["colorPlaceLabelSelect"]}],"mapbox:properties":[{name:"name",type:"string",doc:"Name of the place label."},{name:"class",type:"string",doc:"Provides a broad distinction between place types."}]},selectors:[{layer:"continent-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-A"},{layer:"country-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"state-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"settlement-major-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"settlement-minor-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"},{layer:"settlement-subdivision-label",properties:{name:["get","name"],class:["get","class"]},featureNamespace:"place-B"}]},buildings:{metadata:{"mapbox:title":"Buildings","mapbox:description":"Featureset describing the buildings.","mapbox:states":[{id:"highlight",type:"boolean",doc:"When `true`, the building is highlighted. Use this state to create a temporary effect (e.g. hover).",importConfigs:["colorBuildingHighlight"]},{id:"select",type:"boolean",doc:"When `true`, the building is selected. Use this state to create a permanent effect. Note: the `select` state has a higher priority than `highlight`.",importConfigs:["colorBuildingSelect"]}],"mapbox:properties":[{name:"group",type:"string",doc:"A high-level building group like building-2d, building-3d, etc."}]},selectors:[{layer:"3d-building",properties:{group:"building-3d"},featureNamespace:"building-A",_uniqueFeatureID:!0},{layer:"2d-building",properties:{group:"building-2d"},featureNamespace:"building-A",_uniqueFeatureID:!0}]},"landmark-icons":{metadata:{"mapbox:title":"Landmark Icons","mapbox:description":"Icons for landmark buildings","mapbox:properties":[{name:"id",type:"string",doc:"Unique landmark ID."},{name:"name",type:"string",doc:"Name of the Landmark in local language."},{name:"name_en",type:"string",doc:"Name of the Landmark in English."},{name:"short_name",type:"string",doc:"Short name of the Landmark in local language."},{name:"short_name_en",type:"string",doc:"Short name of the Landmark in English."},{name:"type",type:"string",doc:"Landmark type or building use."}]},selectors:[{layer:"landmark-icon",properties:{id:["get","id"],name:["get","name"],name_en:["get","name_en"],short_name:["get","short_name"],short_name_en:["get","short_name_en"],type:["get","type"]}}]}},created:"2023-10-26T16:35:57.777Z",modified:"2025-08-06T22:58:42.731Z",id:"standard",owner:"mapbox",visibility:"public",protected:!0,draft:!1}}],sources:{composite:{url:"mapbox://mapbox.country-boundaries-v1,mapbox.mapbox-streets-v8",type:"vector",data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a> <a href="https://www.openstreetmap.org/copyright/" target="_blank" title="OpenStreetMap" aria-label="OpenStreetMap">&copy; OpenStreetMap</a> <a class="mapbox-improve-map" href="https://www.mapbox.com/contribute/" target="_blank" title="Improve this map" aria-label="Improve this map">Improve this map</a>',bounds:[-180,-85.051129,180,85],center:[0,-.025564500000001544,0],constituents:[{maxzoom:12,minzoom:0,source:"mapbox.country-boundaries-v1"},{maxzoom:16,minzoom:0,source:"mapbox.mapbox-streets-v8"}],description:"Global polygon tileset of country boundaries and disputed areas",fillzoom:8,format:"pbf",language_options:{all:"Every available language",ar:"Arabic",bg:"Bulgarian",ca:"Catalan",cs:"Czech",da:"Danish",de:"German",el:"Greek",en:"English",es:"Spanish",et:"Estonian",fa:"Farsi",fi:"Finnish",fr:"French",he:"Hebrew",hr:"Croatian",hu:"Hungarian",id:"Indonesian",it:"Italian",ja:"Japanese",ka:"Georgian",ko:"Korean",local:"Renderable local language",lv:"Latvian",ms:"Malay",nb:"Norwegian Bokmål",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sk:"Slovak",sl:"Slovenian",sq:"Albanian",sr:"Serbian",sv:"Swedish",th:"Thai",tl:"Tagalog",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese","zh-Hans":"Simplified Chinese","zh-Hant":"Traditional Chinese"},mapbox_logo:!0,maxzoom:16,minzoom:0,mts:!0,name:"Mapbox Streets v8 + Mapbox Countries v1",scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/mapbox.country-boundaries-v1,mapbox.mapbox-streets-v8/{z}/{x}/{y}.vector.pbf"],vector_layers:[{id:"country_boundaries",maxzoom:22,minzoom:0,source:"mapbox.country-boundaries-v1"},{id:"landuse",minzoom:5,source:"mapbox.mapbox-streets-v8"},{id:"waterway",minzoom:7,source:"mapbox.mapbox-streets-v8"},{id:"water",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"aeroway",minzoom:9,source:"mapbox.mapbox-streets-v8"},{id:"structure",minzoom:13,source:"mapbox.mapbox-streets-v8"},{id:"building",minzoom:12,source:"mapbox.mapbox-streets-v8"},{id:"landuse_overlay",minzoom:5,source:"mapbox.mapbox-streets-v8"},{id:"road",minzoom:3,source:"mapbox.mapbox-streets-v8"},{id:"admin",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"place_label",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"airport_label",minzoom:8,source:"mapbox.mapbox-streets-v8"},{id:"transit_stop_label",minzoom:5,source:"mapbox.mapbox-streets-v8"},{id:"natural_label",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"poi_label",minzoom:6,source:"mapbox.mapbox-streets-v8"},{id:"motorway_junction",minzoom:9,source:"mapbox.mapbox-streets-v8"},{id:"housenum_label",minzoom:16,source:"mapbox.mapbox-streets-v8"}],worldview_default:"CN",worldview_options:{ALL:"Every available worldview",AR:"Argentina",CN:"China",IN:"India",JP:"Japan",MA:"Morocco",RS:"Serbia",RU:"Russia",TR:"Turkey",US:"United States",VN:"Vietnam"}}},"mapbox://neatchenheng.7y3kpvvv":{url:"mapbox://neatchenheng.7y3kpvvv",type:"vector",data:{bounds:[-179.798,-69.008,179.195,82.49],center:[-.3015000000000043,6.741,0],created:1756267632047,created_by_client:"studio",filesize:587124,format:"pbf",id:"neatchenheng.7y3kpvvv",mapbox_logo:!0,maxzoom:10,minzoom:0,modified:1756267631830,name:"tide_station_cn-8xvt91",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.7y3kpvvv/{z}/{x}/{y}.vector.pbf"],upload_id:"cmetgd2xo142e1oqnwmn6owp2",vector_layers:[{id:"tide_station_cn-8xvt91",maxzoom:22,minzoom:0,source:"neatchenheng.7y3kpvvv"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.7y3kpvvv"}},"mapbox://neatchenheng.9uwc9x7l":{url:"mapbox://neatchenheng.9uwc9x7l",type:"vector",data:{bounds:[-180,-89.999999,180,87.948427],center:[0,-1.0257860000000036,0],created:1756258790178,created_by_client:"studio",filesize:21891,format:"pbf",id:"neatchenheng.9uwc9x7l",mapbox_logo:!0,maxzoom:6,minzoom:0,modified:1756258789958,name:"ICE_AREA-6oqazd",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.9uwc9x7l/{z}/{x}/{y}.vector.pbf"],upload_id:"cmetb4f0d12lt1mma92qeqhea",vector_layers:[{id:"ICE_AREA-6oqazd",maxzoom:22,minzoom:0,source:"neatchenheng.9uwc9x7l"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.9uwc9x7l"}},"mapbox://neatchenheng.bbqlsheu":{url:"mapbox://neatchenheng.bbqlsheu",type:"vector",data:{bounds:[-180,-56.7252897416281,180,83.8746022304263],center:[0,13.574656244399101,3],created:1734949386768,created_by_client:"studio",filesize:71176884,format:"pbf",id:"neatchenheng.bbqlsheu",mapbox_logo:!0,maxzoom:9,minzoom:3,modified:1734949386547,name:"World_12NM_v4_20231025-4rlzig",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.bbqlsheu/{z}/{x}/{y}.vector.pbf"],upload_id:"cm50vf2t1fbcu1pqgik3s6iuf",vector_layers:[{id:"World_12NM_v4_20231025-4rlzig",maxzoom:22,minzoom:0,source:"neatchenheng.bbqlsheu"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.bbqlsheu"}},"mapbox://neatchenheng.d44z21eg":{url:"mapbox://neatchenheng.d44z21eg",type:"vector",data:{bounds:[114.23736254035865,17.26387530490726,123.54476074541262,26.931359896042608],center:[118.89106164288563,22.097617600474933,0],created:1734952431828,created_by_client:"studio",filesize:88540,format:"pbf",id:"neatchenheng.d44z21eg",mapbox_logo:!0,maxzoom:9,minzoom:0,modified:1734952431589,name:"eez-d4udtm",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.d44z21eg/{z}/{x}/{y}.vector.pbf"],upload_id:"cm50xvcov1c0b1ony6ujyjdxy",vector_layers:[{id:"eez-d4udtm",maxzoom:22,minzoom:0,source:"neatchenheng.d44z21eg"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.d44z21eg"}},"mapbox://neatchenheng.a4ifbysm":{url:"mapbox://neatchenheng.a4ifbysm",type:"vector",data:{bounds:[-180,-85.19206064243458,179.99989708894586,89.99999999999996],center:[-5145552707119805e-20,2.403969678782687,0],created:1747207518572,created_by_client:"studio",filesize:957976,format:"pbf",id:"neatchenheng.a4ifbysm",mapbox_logo:!0,maxzoom:6,minzoom:0,modified:1747207518355,name:"ne_10m_geography_marine_polys-3968bv",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.a4ifbysm/{z}/{x}/{y}.vector.pbf"],upload_id:"cmanm83zc5ykk1tpgdupzbhb5",vector_layers:[{id:"ne_10m_geography_marine_polys-3968bv",maxzoom:22,minzoom:0,source:"neatchenheng.a4ifbysm"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.a4ifbysm"}},"mapbox://neatchenheng.27issko0":{url:"mapbox://neatchenheng.27issko0",type:"vector",data:{bounds:[108.09,20.116666666666667,123.31291651780737,30.871605632915227],center:[115.70145825890368,25.494136149790947,0],created:1747623775149,created_by_client:"studio",filesize:57724,format:"pbf",id:"neatchenheng.27issko0",mapbox_logo:!0,maxzoom:8,minzoom:0,modified:1747897418131,name:"china_route-bdtx5d",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.27issko0/{z}/{x}/{y}.vector.pbf"],upload_id:"cmaz0zckd20bi1onv2xqfrzcv",vector_layers:[{id:"china_route-bdtx5d",maxzoom:22,minzoom:0,source:"neatchenheng.27issko0"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.27issko0"}},"mapbox://neatchenheng.dlkkohie":{url:"mapbox://neatchenheng.dlkkohie",type:"vector",data:{bounds:[-180.0443283402411,-80,180.00284240174312,90],center:[-.020742969248985332,5,0],created:1756711198438,created_by_client:"studio",filesize:38990,format:"pbf",id:"neatchenheng.dlkkohie",mapbox_logo:!0,maxzoom:6,minzoom:0,modified:1758161205109,name:"loadlines-b6mgr8",private:!0,scheme:"xyz",tilejson:"3.0.0",tiles:["mapbox://tiles/neatchenheng.dlkkohie/{z}/{x}/{y}.vector.pbf"],upload_id:"cmforrscu3fwp1pqw2ibccowm",vector_layers:[{id:"loadlines-b6mgr8",maxzoom:22,minzoom:0,source:"neatchenheng.dlkkohie"}],version:"1.0.0",webpage:"https://studio.mapbox.com/tilesets/neatchenheng.dlkkohie"}},i4:this.i4.source},sprite:"mapbox://sprites/neatchenheng/cmddwkooj003i01ptch7p9gvz/8ej8fh7bqw5mhdjot66571v26",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},layers:[{id:"empty-layer-0",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"empty-layer-1",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries",slot:""},{id:"country-boundaries",type:"fill",paint:{"fill-color":"rgb(200, 200, 200)"},layout:{visibility:"none"},source:"composite","source-layer":"country_boundaries",slot:""},{id:"empty-layer-2",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries",slot:""},{id:"empty-layer-3",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries",slot:""},{id:"empty-layer-4",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(0, 0, 0, 0)"},layout:{},source:"composite","source-layer":"country_boundaries"},{id:"water-outline",type:"line",paint:{"line-color":"rgb(176, 180, 181)"},layout:{},source:"composite","source-layer":"water",metadata:{"mapbox:featureStateHandler":{}},slot:""},{layout:{visibility:"none"},type:"line",source:"mapbox://neatchenheng.bbqlsheu",id:"world-12nm-v4-20231025",paint:{"line-color":"rgb(241, 46, 39)","line-width":2},slot:"","source-layer":"World_12NM_v4_20231025-4rlzig"},{id:"china-taiwan",type:"line",paint:{"line-width":2,"line-color":"rgb(241, 46, 39)"},layout:{visibility:"none"},source:"mapbox://neatchenheng.d44z21eg","source-layer":"eez-d4udtm"},{id:"ne-10m-outline",type:"line",paint:{"line-color":"rgb(84, 84, 84)"},layout:{visibility:"none"},source:"mapbox://neatchenheng.a4ifbysm","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"ne-10m-label",type:"symbol",paint:{"text-halo-width":1,"text-halo-color":"rgb(255, 255, 255)"},layout:{"text-field":["to-string",["get","name"]],"text-size":12,visibility:"none"},source:"mapbox://neatchenheng.a4ifbysm","source-layer":"ne_10m_geography_marine_polys-3968bv"},{id:"china-route-line",type:"line",paint:{"line-color":"rgba(119, 239, 157, 1)","line-width":2},layout:{visibility:"none"},source:"mapbox://neatchenheng.27issko0","source-layer":"china_route-bdtx5d"},{id:"china-route-fill",type:"fill",paint:{"fill-color":"rgba(119, 239, 157, 1)","fill-opacity":.2},layout:{visibility:"none"},source:"mapbox://neatchenheng.27issko0",filter:["match",["geometry-type"],["Polygon"],!0,!1],"source-layer":"china_route-bdtx5d"},{id:"china-route-label",type:"symbol",paint:{"text-color":"rgb(0, 0, 0)"},layout:{"text-field":["to-string",["get","route_name"]],"text-size":10,"text-offset":[0,1.6],visibility:"none"},source:"mapbox://neatchenheng.27issko0","source-layer":"china_route-bdtx5d"},{id:"ice-area-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":"rgba(199, 239, 236, 0.7)"},source:"mapbox://neatchenheng.9uwc9x7l","source-layer":"ICE_AREA-6oqazd",layout:{visibility:"none"}},{id:"ice-area-line",minzoom:0,maxzoom:22,type:"line",paint:{"line-color":"rgba(199, 239, 236, 1)"},layout:{visibility:"none"},source:"mapbox://neatchenheng.9uwc9x7l","source-layer":"ICE_AREA-6oqazd"},{id:"tide-stations",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(0, 0, 0)","text-opacity":["step",["zoom"],0,4,1]},layout:{visibility:"none","text-field":["to-string",["get","Location_EN"]],"text-size":10,"icon-image":"tide","icon-size":1,"icon-offset":[0,-13],"text-offset":[0,1.6],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},source:"mapbox://neatchenheng.7y3kpvvv","source-layer":"tide_station_cn-8xvt91"},{id:"loadlines-label",minzoom:0,maxzoom:22,type:"symbol",paint:{"text-color":"rgb(0, 0, 0)"},layout:{"text-field":["to-string",["get","name"]],"text-size":10,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],visibility:"none","text-offset":[0,1]},source:"mapbox://neatchenheng.dlkkohie","source-layer":"loadlines-b6mgr8"},{id:"loadlines-fill",minzoom:0,maxzoom:22,type:"fill",paint:{"fill-color":["match",["get","val"],["LLGreen"],"rgba(164, 214, 217, 0.6)",["LLBlue"],"rgba(53, 121, 194, 0.6)",["LLRed"],"rgba(217, 150, 151, 0.6)",["LLSUMMER"],"rgba(111, 110, 212, 0.6)","rgba(255, 255, 255, 0.6)"],"fill-outline-color":"rgba(255, 255, 255, 0.3)"},layout:{visibility:"none"},source:"mapbox://neatchenheng.dlkkohie","source-layer":"loadlines-b6mgr8"}],created:"2025-07-22T02:15:53.587Z",modified:"2025-08-07T10:15:43.870Z",id:"cmddwkooj003i01ptch7p9gvz",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1}},this.mapboxStyle={light:{version:8,name:"origin",lights:[],fog:this.originStyle.light.fog,bearing:0,pitch:1,sprite:this.originStyle.light.sprite,glyphs:this.originStyle.light.glyphs,projection:this.originStyle.light.projection,sources:{composite:this.originStyle.light.sources.composite},layers:[(r=(a=this.originStyle)==null?void 0:a.light.layers)==null?void 0:r.find(_=>_.id==="land"),(l=(i=this.originStyle)==null?void 0:i.light.layers)==null?void 0:l.find(_=>_.id==="water"),(c=(n=this.originStyle)==null?void 0:n.light.layers)==null?void 0:c.find(_=>_.id==="ice-area-fill"),(d=(s=this.originStyle)==null?void 0:s.light.layers)==null?void 0:d.find(_=>_.id==="ice-area-line"),(p=(m=this.originStyle)==null?void 0:m.light.layers)==null?void 0:p.find(_=>_.id==="loadlines-label"),(y=(g=this.originStyle)==null?void 0:g.light.layers)==null?void 0:y.find(_=>_.id==="loadlines-fill"),(h=(u=this.originStyle)==null?void 0:u.light.layers)==null?void 0:h.find(_=>_.id==="empty-layer-0"),(k=(f=this.originStyle)==null?void 0:f.light.layers)==null?void 0:k.find(_=>_.id==="empty-layer-1"),(b=(w=this.originStyle)==null?void 0:w.light.layers)==null?void 0:b.find(_=>_.id==="country-boundaries"),(C=(x=this.originStyle)==null?void 0:x.light.layers)==null?void 0:C.find(_=>_.id==="water-outline"),(z=(L=this.originStyle)==null?void 0:L.light.layers)==null?void 0:z.find(_=>_.id==="water-outline2"),(M=(v=this.originStyle)==null?void 0:v.light.layers)==null?void 0:M.find(_=>_.id==="empty-layer-2"),(E=(T=this.originStyle)==null?void 0:T.light.layers)==null?void 0:E.find(_=>_.id==="water-line-label"),(Z=(I=this.originStyle)==null?void 0:I.light.layers)==null?void 0:Z.find(_=>_.id==="water-point-label"),($=(Y=this.originStyle)==null?void 0:Y.light.layers)==null?void 0:$.find(_=>_.id==="world-12nm-v4-20231025"),(V=(ae=this.originStyle)==null?void 0:ae.light.layers)==null?void 0:V.find(_=>_.id==="ne-10m-outline"),(W=(G=this.originStyle)==null?void 0:G.light.layers)==null?void 0:W.find(_=>_.id==="ne-10m-label"),(A=(U=this.originStyle)==null?void 0:U.light.layers)==null?void 0:A.find(_=>_.id==="china-route-line"),(j=(B=this.originStyle)==null?void 0:B.light.layers)==null?void 0:j.find(_=>_.id==="china-route-fill"),(q=(N=this.originStyle)==null?void 0:N.light.layers)==null?void 0:q.find(_=>_.id==="china-route-label"),(he=(re=this.originStyle)==null?void 0:re.light.layers)==null?void 0:he.find(_=>_.id==="admin-0-boundary-bg"),(ee=(ge=this.originStyle)==null?void 0:ge.light.layers)==null?void 0:ee.find(_=>_.id==="admin-0-boundary"),(pe=(se=this.originStyle)==null?void 0:se.light.layers)==null?void 0:pe.find(_=>_.id==="admin-0-boundary-disputed"),(O=(xe=this.originStyle)==null?void 0:xe.light.layers)==null?void 0:O.find(_=>_.id==="country-label"),(Me=(te=this.originStyle)==null?void 0:te.light.layers)==null?void 0:Me.find(_=>_.id==="continent-label"),(be=(Ce=this.originStyle)==null?void 0:Ce.light.layers)==null?void 0:be.find(_=>_.id==="tide-stations"),(J=(ke=this.originStyle)==null?void 0:ke.light.layers)==null?void 0:J.find(_=>_.id==="empty-layer-3"),(ie=(we=this.originStyle)==null?void 0:we.light.layers)==null?void 0:ie.find(_=>_.id==="empty-layer-4")]},dark:{version:8,name:"dark",metadata:(ce=this.originStyle)==null?void 0:ce.dark.metadata,center:[90.22129259388525,-3.2084663486364606],zoom:1.2556266457717493,bearing:0,pitch:0,lights:[],fog:{range:[.5,10]},sources:(Se=this.originStyle)==null?void 0:Se.dark.sources,sprite:(Ee=this.originStyle)==null?void 0:Ee.dark.sprite,glyphs:(Te=this.originStyle)==null?void 0:Te.dark.glyphs,projection:(F=this.originStyle)==null?void 0:F.dark.projection,id:"cmdqwez32005b01re2w0k3zk4",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1,layers:[(_e=(me=this.originStyle)==null?void 0:me.dark.layers)==null?void 0:_e.find(_=>_.id==="land"),(Ve=(Ne=this.originStyle)==null?void 0:Ne.dark.layers)==null?void 0:Ve.find(_=>_.id==="water"),(ve=(H=this.originStyle)==null?void 0:H.dark.layers)==null?void 0:ve.find(_=>_.id==="ice-area-fill"),(We=(Q=this.originStyle)==null?void 0:Q.dark.layers)==null?void 0:We.find(_=>_.id==="ice-area-line"),(Ze=(Oe=this.originStyle)==null?void 0:Oe.dark.layers)==null?void 0:Ze.find(_=>_.id==="loadlines-label"),(at=(Le=this.originStyle)==null?void 0:Le.dark.layers)==null?void 0:at.find(_=>_.id==="loadlines-fill"),(rt=(it=this.originStyle)==null?void 0:it.dark.layers)==null?void 0:rt.find(_=>_.id==="empty-layer-0"),(nt=(lt=this.originStyle)==null?void 0:lt.dark.layers)==null?void 0:nt.find(_=>_.id==="empty-layer-1"),(ct=(st=this.originStyle)==null?void 0:st.dark.layers)==null?void 0:ct.find(_=>_.id==="country-boundaries"),(dt=(mt=this.originStyle)==null?void 0:mt.dark.layers)==null?void 0:dt.find(_=>_.id==="water-outline"),(pt=(ht=this.originStyle)==null?void 0:ht.dark.layers)==null?void 0:pt.find(_=>_.id==="empty-layer-2"),(ut=(gt=this.originStyle)==null?void 0:gt.dark.layers)==null?void 0:ut.find(_=>_.id==="water-line-label"),(yt=(ft=this.originStyle)==null?void 0:ft.dark.layers)==null?void 0:yt.find(_=>_.id==="water-point-label"),(wt=(bt=this.originStyle)==null?void 0:bt.dark.layers)==null?void 0:wt.find(_=>_.id==="world-12nm-v4-20231025"),(kt=(xt=this.originStyle)==null?void 0:xt.dark.layers)==null?void 0:kt.find(_=>_.id==="ne-10m-outline"),(Lt=(_t=this.originStyle)==null?void 0:_t.dark.layers)==null?void 0:Lt.find(_=>_.id==="ne-10m-label"),(Ct=(zt=this.originStyle)==null?void 0:zt.dark.layers)==null?void 0:Ct.find(_=>_.id==="china-route-line"),(St=(vt=this.originStyle)==null?void 0:vt.dark.layers)==null?void 0:St.find(_=>_.id==="china-route-fill"),(Vt=(Nt=this.originStyle)==null?void 0:Nt.dark.layers)==null?void 0:Vt.find(_=>_.id==="china-route-label"),(Mt=(Pt=this.originStyle)==null?void 0:Pt.dark.layers)==null?void 0:Mt.find(_=>_.id==="admin-0-boundary-bg"),(Et=(Tt=this.originStyle)==null?void 0:Tt.dark.layers)==null?void 0:Et.find(_=>_.id==="admin-0-boundary"),(Rt=(Dt=this.originStyle)==null?void 0:Dt.dark.layers)==null?void 0:Rt.find(_=>_.id==="admin-0-boundary-disputed"),(It=(Bt=this.originStyle)==null?void 0:Bt.dark.layers)==null?void 0:It.find(_=>_.id==="country-label"),(Ft=(At=this.originStyle)==null?void 0:At.dark.layers)==null?void 0:Ft.find(_=>_.id==="continent-label"),(Wt=(Gt=this.originStyle)==null?void 0:Gt.dark.layers)==null?void 0:Wt.find(_=>_.id==="tide-stations"),(Zt=(Ot=this.originStyle)==null?void 0:Ot.dark.layers)==null?void 0:Zt.find(_=>_.id==="empty-layer-3"),(Ht=(jt=this.originStyle)==null?void 0:jt.dark.layers)==null?void 0:Ht.find(_=>_.id==="empty-layer-4")]},satellite:{version:8,name:"Satellite Streets",metadata:(Xt=this.originStyle)==null?void 0:Xt.satellite.metadata,center:[55.13,25.12],zoom:12,fog:(Yt=this.originStyle)==null?void 0:Yt.satellite.fog,imports:(Ut=this.originStyle)==null?void 0:Ut.satellite.imports,sources:($t=this.originStyle)==null?void 0:$t.satellite.sources,sprite:(Jt=this.originStyle)==null?void 0:Jt.satellite.sprite,glyphs:(Kt=this.originStyle)==null?void 0:Kt.satellite.glyphs,projection:(qt=this.originStyle)==null?void 0:qt.satellite.projection,created:"2025-07-25T03:53:24.667Z",modified:"2025-07-28T06:47:35.471Z",id:"cmdiadnej03n101r485bs2m6a",owner:"neatchenheng",visibility:"private",protected:!1,draft:!1,layers:[(eo=(Qt=this.originStyle)==null?void 0:Qt.satellite.layers)==null?void 0:eo.find(_=>_.id==="background"),(oo=(to=this.originStyle)==null?void 0:to.satellite.layers)==null?void 0:oo.find(_=>_.id==="satellite"),(io=(ao=this.originStyle)==null?void 0:ao.satellite.layers)==null?void 0:io.find(_=>_.id==="loadlines-label"),(lo=(ro=this.originStyle)==null?void 0:ro.satellite.layers)==null?void 0:lo.find(_=>_.id==="loadlines-fill"),(so=(no=this.originStyle)==null?void 0:no.satellite.layers)==null?void 0:so.find(_=>_.id==="empty-layer-0"),(mo=(co=this.originStyle)==null?void 0:co.satellite.layers)==null?void 0:mo.find(_=>_.id==="empty-layer-1"),(po=(ho=this.originStyle)==null?void 0:ho.satellite.layers)==null?void 0:po.find(_=>_.id==="country-boundaries"),(uo=(go=this.originStyle)==null?void 0:go.satellite.layers)==null?void 0:uo.find(_=>_.id==="water-outline"),(yo=(fo=this.originStyle)==null?void 0:fo.satellite.layers)==null?void 0:yo.find(_=>_.id==="empty-layer-2"),(wo=(bo=this.originStyle)==null?void 0:bo.satellite.layers)==null?void 0:wo.find(_=>_.id==="world-12nm-v4-20231025"),(ko=(xo=this.originStyle)==null?void 0:xo.satellite.layers)==null?void 0:ko.find(_=>_.id==="ne-10m-outline"),(Lo=(_o=this.originStyle)==null?void 0:_o.satellite.layers)==null?void 0:Lo.find(_=>_.id==="ne-10m-label"),(Co=(zo=this.originStyle)==null?void 0:zo.satellite.layers)==null?void 0:Co.find(_=>_.id==="china-route-line"),(So=(vo=this.originStyle)==null?void 0:vo.satellite.layers)==null?void 0:So.find(_=>_.id==="china-route-fill"),(Vo=(No=this.originStyle)==null?void 0:No.satellite.layers)==null?void 0:Vo.find(_=>_.id==="china-route-label"),(ai=(oi=this.originStyle)==null?void 0:oi.satellite.layers)==null?void 0:ai.find(_=>_.id==="country-label"),(ri=(ii=this.originStyle)==null?void 0:ii.satellite.layers)==null?void 0:ri.find(_=>_.id==="continent-label"),(ni=(li=this.originStyle)==null?void 0:li.satellite.layers)==null?void 0:ni.find(_=>_.id==="tide-stations"),(ci=(si=this.originStyle)==null?void 0:si.satellite.layers)==null?void 0:ci.find(_=>_.id==="ice-area-fill"),(di=(mi=this.originStyle)==null?void 0:mi.satellite.layers)==null?void 0:di.find(_=>_.id==="ice-area-line"),(pi=(hi=this.originStyle)==null?void 0:hi.satellite.layers)==null?void 0:pi.find(_=>_.id==="empty-layer-3"),(ui=(gi=this.originStyle)==null?void 0:gi.satellite.layers)==null?void 0:ui.find(_=>_.id==="empty-layer-4")]},nautical:{version:8,name:"origin",lights:[],fog:this.originStyle.light.fog,bearing:0,pitch:1,sprite:this.originStyle.light.sprite,glyphs:this.originStyle.light.glyphs,projection:this.originStyle.light.projection,sources:this.originStyle.light.sources,layers:[(yi=(fi=this.originStyle)==null?void 0:fi.light.layers)==null?void 0:yi.find(_=>_.id==="land"),(wi=(bi=this.originStyle)==null?void 0:bi.light.layers)==null?void 0:wi.find(_=>_.id==="water"),this.i4.layer,(ki=(xi=this.originStyle)==null?void 0:xi.light.layers)==null?void 0:ki.find(_=>_.id==="ice-area-fill"),(Li=(_i=this.originStyle)==null?void 0:_i.light.layers)==null?void 0:Li.find(_=>_.id==="ice-area-line"),(Ci=(zi=this.originStyle)==null?void 0:zi.light.layers)==null?void 0:Ci.find(_=>_.id==="loadlines-label"),(Si=(vi=this.originStyle)==null?void 0:vi.light.layers)==null?void 0:Si.find(_=>_.id==="loadlines-fill"),(Vi=(Ni=this.originStyle)==null?void 0:Ni.light.layers)==null?void 0:Vi.find(_=>_.id==="empty-layer-0"),(Mi=(Pi=this.originStyle)==null?void 0:Pi.light.layers)==null?void 0:Mi.find(_=>_.id==="empty-layer-1"),(Ei=(Ti=this.originStyle)==null?void 0:Ti.light.layers)==null?void 0:Ei.find(_=>_.id==="empty-layer-2"),(Ri=(Di=this.originStyle)==null?void 0:Di.light.layers)==null?void 0:Ri.find(_=>_.id==="country-boundaries"),(Ii=(Bi=this.originStyle)==null?void 0:Bi.light.layers)==null?void 0:Ii.find(_=>_.id==="water-outline"),(Fi=(Ai=this.originStyle)==null?void 0:Ai.light.layers)==null?void 0:Fi.find(_=>_.id==="water-outline2"),(Wi=(Gi=this.originStyle)==null?void 0:Gi.light.layers)==null?void 0:Wi.find(_=>_.id==="world-12nm-v4-20231025"),(Zi=(Oi=this.originStyle)==null?void 0:Oi.light.layers)==null?void 0:Zi.find(_=>_.id==="ne-10m-outline"),(Hi=(ji=this.originStyle)==null?void 0:ji.light.layers)==null?void 0:Hi.find(_=>_.id==="ne-10m-label"),(Yi=(Xi=this.originStyle)==null?void 0:Xi.light.layers)==null?void 0:Yi.find(_=>_.id==="china-route-line"),($i=(Ui=this.originStyle)==null?void 0:Ui.light.layers)==null?void 0:$i.find(_=>_.id==="china-route-fill"),(Ki=(Ji=this.originStyle)==null?void 0:Ji.light.layers)==null?void 0:Ki.find(_=>_.id==="china-route-label"),(Qi=(qi=this.originStyle)==null?void 0:qi.light.layers)==null?void 0:Qi.find(_=>_.id==="admin-0-boundary-bg"),(tr=(er=this.originStyle)==null?void 0:er.light.layers)==null?void 0:tr.find(_=>_.id==="admin-0-boundary"),(ar=(or=this.originStyle)==null?void 0:or.light.layers)==null?void 0:ar.find(_=>_.id==="admin-0-boundary-disputed"),(rr=(ir=this.originStyle)==null?void 0:ir.light.layers)==null?void 0:rr.find(_=>_.id==="country-label"),(nr=(lr=this.originStyle)==null?void 0:lr.light.layers)==null?void 0:nr.find(_=>_.id==="continent-label"),(cr=(sr=this.originStyle)==null?void 0:sr.light.layers)==null?void 0:cr.find(_=>_.id==="tide-stations"),(dr=(mr=this.originStyle)==null?void 0:mr.light.layers)==null?void 0:dr.find(_=>_.id==="empty-layer-3"),(pr=(hr=this.originStyle)==null?void 0:hr.light.layers)==null?void 0:pr.find(_=>_.id==="empty-layer-4")]}}}}const Uy="",Af={name:"MapInitial",props:{token:{type:String,default:""},height:{type:String,default:"100vh"},width:{type:String,default:"100vw"},top:{type:Number,default:60},simple:{type:Boolean,default:!1},mapFeather:{type:String},menuToggle:{type:Object,default:{}}},emits:["map","menuToggle"],data(){return{map:void 0,beforeLayer:"",helper:void 0,zoom:2,right:10}},computed:{computeYear(){const t=new Date().getFullYear();return t>2023?t:2023}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var t;this.simple||(this.right=(((t=document.getElementsByClassName("right-bar")[0])==null?void 0:t.clientWidth)||0)+10)})}},mapFeather:{handler(){this.map=void 0,this.mapFeather&&this.$nextTick(()=>{this.initOnlineMap()})},immediate:!0},map:{handler(){this.$emit("map",this.map)},immediate:!0}},methods:{async initOnlineMap(){this.helper=new Ya(this.token),ne.accessToken="pk.eyJ1IjoibmVhdGNoZW5oZW5nIiwiYSI6ImNsdXM3cnBmODBsemgycW1vaXc1bjV6bXMifQ.w6fqHGRbhNhLvm0LnX4ZVw";const t=new ne.Map({container:"map",style:this.helper.mapboxStyle[this.mapFeather],minZoom:2,maxZoom:22,zoom:2,center:[120,30],dragRotate:!1,pitchWithRotate:!1,touchZoomRotate:{enabled:!0,rotate:!1},projection:"mercator",preserveDrawingBuffer:!0,fadeDuration:300});t.dragRotate.disable(),t.touchZoomRotate.disableRotation(),t.on("load",()=>{this.zoom=2,this.map=t,this.$emit("menuToggle"),this.addScaleControl()}),t.on("move",()=>{var e;this.zoom=(e=this.map)==null?void 0:e.getZoom()})},addScaleControl(){var e;this.map.addControl(new ne.ScaleControl({maxWidth:120,unit:"nautical"}),"bottom-left");const t=(e=document.getElementsByClassName("mapboxgl-ctrl-scale"))==null?void 0:e[0];t&&(t.className="mapboxgl-ctrl-scale "+this.mapFeather)},handleZoomIn(){var t;this.zoom<=22&&(this.zoom=Math.floor(this.zoom)+1,(t=this.map)==null||t.flyTo({zoom:this.zoom,duration:500}))},handleZoomOut(){var t;this.zoom>2&&(this.zoom=Math.floor(this.zoom)-1,(t=this.map)==null||t.flyTo({zoom:this.zoom,duration:500}))}}},Ff={class:"v-btn--variant-elevated rounded"},Gf={class:"v-btn--variant-elevated rounded"},Wf={class:"zoom"},Of={key:2,class:"position-absolute left-0 bottom-0 ma-2 my-1 text-caption text-label opacity-70"};function Zf(t,e,a,r,i,l){const n=o.resolveComponent("VBtn");return o.openBlock(),o.createElementBlock("div",{id:"mapbox-initial-gl4",class:"mapbox-initial-gl4 gif-container",style:o.normalizeStyle({height:a.height,width:a.width})},[e[6]||(e[6]=o.createElementVNode("div",{id:"map"},null,-1)),a.simple?(o.openBlock(),o.createElementBlock("div",{key:0,class:"menu-bar-box transition px-1 rounded d-flex flex-column pa-1 simple",style:o.normalizeStyle({top:a.top+294+"px",right:i.right+"px",height:"40px"})},[o.createElementVNode("div",Ff,[o.createVNode(n,{"min-width":"32",width:"32",height:"32",class:"pa-0 elevation-0",onClick:l.initOnlineMap},{default:o.withCtx(()=>e[0]||(e[0]=[o.createElementVNode("i",{class:"iconfont icon-shuaxin text-h4"},null,-1)])),_:1,__:[0]},8,["onClick"])])],4)):o.createCommentVNode("",!0),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("div",{key:1,class:"menu-bar-box transition px-1 rounded d-flex flex-column",style:o.normalizeStyle({top:a.top+308+"px",right:i.right+"px",height:"112px"})},[o.createElementVNode("div",Gf,[o.createVNode(n,{"min-width":"32",width:"32",height:"32",class:"pa-0 elevation-0",onClick:l.handleZoomIn},{default:o.withCtx(()=>e[1]||(e[1]=[o.createElementVNode("i",{class:"iconfont icon-a-Zoomin text-h4"},null,-1)])),_:1,__:[1]},8,["onClick"]),o.createElementVNode("div",Wf,o.toDisplayString(i.zoom?Math.floor(i.zoom):0),1),o.createVNode(n,{"min-width":"32",width:"32",height:"32",class:"elevation-0 pa-0",onClick:l.handleZoomOut},{default:o.withCtx(()=>e[2]||(e[2]=[o.createElementVNode("i",{class:"iconfont icon-a-Zoomout text-h4"},null,-1)])),_:1,__:[2]},8,["onClick"])])],4)),a.simple?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("div",Of,[e[3]||(e[3]=o.createElementVNode("span",null,"© 2023",-1)),o.createElementVNode("span",null,"-"+o.toDisplayString(l.computeYear),1),e[4]||(e[4]=o.createElementVNode("span",{class:"text-uppercase ma-2"},"ormwx.com",-1)),e[5]||(e[5]=o.createElementVNode("a",{class:"text-decoration-underline cursor-pointer text-label",href:"https://beian.miit.gov.cn/",target:"_blank"},"沪ICP备18039043号-6",-1))]))],4)}const Ua=X(Af,[["render",Zf]]),$y="",jf={name:"DateRangePicker",props:{width:{type:Number,default:null},height:{type:Number,default:30},position:{type:String,default:"top"},locale:{type:String,default:"en"},timeZone:{type:Number},defaultRange:{type:Array,default:()=>[]},dayAbout:{type:Object,default:()=>({})},fastPick:{type:Object,default:()=>({show:!1,allows:["past7day","past14day","past1month","past3month","past6month","past1mear","lastMonth","lastSeason","lastYear","forward7day","forward14day","forward1month","forward3month"]})}},emits:["dateRange"],data(){return{showDatePicker:!1,minDate:void 0,maxDate:void 0,dateRange:[],dateRangeStr:void 0,activeFastPick:"",fastPickOptions:["past7day","past14day","past1month","past3month","past6month","past1year","lastMonth","lastSeason","lastYear","forward7day","forward14day","forward1month","forward3month"]}},computed:{getStyle(){const t=this.width||226;return this.position==="top"?{bottom:"40px",left:`-${(630-t)/2}px`}:this.position==="bottom"?{top:"40px",left:`-${(630-t)/2}px`}:this.position==="left"?{bottom:"-140px",left:"-636px"}:this.position==="right"?{bottom:"-140px",right:"-636px"}:{bottom:"40px",left:`-${(630-t)/2}px`}},timeZoneNames(){return S.tz.names()},timeZoneName(){var t;return(t=this.timeZoneNames.filter(e=>S.tz(S(),e).utcOffset()===this.timeZone*60))==null?void 0:t[0]},utcTimeZoneName(){return"Africa/Abidjan"},localTimeZoneName(){return Intl.DateTimeFormat().resolvedOptions().timeZone||"Asia/Shanghai"},computeTzSimple(){return(t,e,a="yyyy-MM-DD")=>{var r,i;if(t){const l=e||0;return(i=(r=S(t))==null?void 0:r.utcOffset(l))==null?void 0:i.format(a)}return"-"}}},watch:{timeZone:{handler(t,e){t!==e&&(this.handleResetDateRange(),this.handleResetMinMax())}},defaultRange:{handler(t,e){((t==null?void 0:t[0])!==(e==null?void 0:e[0])||(t==null?void 0:t[1])!==(e==null?void 0:e[1]))&&this.handleResetDateRange()},deep:!0}},mounted(){this.handleReset()},unmounted(){this.handleCancelDate()},methods:{handleReset(){this.handleResetDateRange(),this.handleResetMinMax()},handleResetDateRange(){var t;((t=this.defaultRange)==null?void 0:t.length)===2&&(this.dateRange=this.defaultRange,this.dateRangeStr=`${S.tz(this.dateRange[0],this.timeZoneName).format("yyyy-MM-DD")} ~ ${S.tz(this.dateRange[1],this.timeZoneName).format("yyyy-MM-DD")}`,this.$emit("dateRange",[S.tz(this.dateRange[0],this.timeZoneName).set({hour:0,minute:0,second:0,millisecond:0}).format(),S.tz(this.dateRange[1],this.timeZoneName).set({hour:23,minute:59,second:59,millisecond:59}).format()]))},handleResetMinMax(){const t=S.tz(S().format(),this.timeZoneName).clone(),{h:e,f:a}=this.dayAbout;e!=null&&typeof Number(e)=="number"&&!isNaN(e)&&(this.minDate=t.clone().add(e,"day").format("yyyy-MM-DD")),a!=null&&typeof Number(a)=="number"&&!isNaN(a)&&(this.maxDate=t.clone().add(a,"day").format("yyyy-MM-DD"))},handleOpenDatePicker(){this.showDatePicker=!this.showDatePicker},handleFastPick(t){if(t.dateRange){const e=[];switch(t.dateRange){case"past7day":e.push(S.tz(S(),this.timeZoneName).clone().subtract(7,"day").format()),e.push(S.tz(S(),this.timeZoneName).clone().format());break;case"past14day":e.push(S.tz(S(),this.timeZoneName).clone().subtract(14,"day").format()),e.push(S.tz(S(),this.timeZoneName).clone().format());break;case"past1month":e.push(S.tz(S(),this.timeZoneName).clone().add(-1,"month").format()),e.push(S.tz(S(),this.timeZoneName).clone().format());break;case"past3month":e.push(S.tz(S(),this.timeZoneName).clone().add(-3,"month").format()),e.push(S.tz(S(),this.timeZoneName).clone().format());break;case"past6month":e.push(S.tz(S(),this.timeZoneName).clone().add(-6,"month").format()),e.push(S.tz(S(),this.timeZoneName).clone().format());break;case"past1year":e.push(S.tz(S(),this.timeZoneName).clone().add(-12,"month").format()),e.push(S.tz(S(),this.timeZoneName).clone().format());break;case"lastMonth":e.push(S.tz(S(),this.timeZoneName).clone().subtract(1,"month").startOf("month").format()),e.push(S.tz(S(),this.timeZoneName).clone().subtract(1,"month").endOf("month").format());break;case"lastSeason":e.push(S.tz(S(),this.timeZoneName).clone().startOf("quarter").subtract(3,"months").startOf("month").format()),e.push(S.tz(S(),this.timeZoneName).clone().startOf("quarter").subtract(1,"day").endOf("month").format());break;case"lastYear":e.push(S.tz(S(),this.timeZoneName).clone().subtract(1,"year").startOf("year").format()),e.push(S.tz(S(),this.timeZoneName).clone().subtract(1,"year").endOf("year").format());break;case"forward7day":e.push(S.tz(S(),this.timeZoneName).clone().format()),e.push(S.tz(S(),this.timeZoneName).clone().add(7,"day").format());break;case"forward14day":e.push(S.tz(S(),this.timeZoneName).clone().format()),e.push(S.tz(S(),this.timeZoneName).clone().add(14,"day").format());break;case"forward1month":e.push(S.tz(S(),this.timeZoneName).clone().format()),e.push(S.tz(S(),this.timeZoneName).clone().add(1,"month").format());break;case"forward3month":e.push(S.tz(S(),this.timeZoneName).clone().format()),e.push(S.tz(S(),this.timeZoneName).clone().add(3,"month").format());break}this.dateRange=e,this.activeFastPick=t.dateRange}},handleConfirmDate(){var e;const t=[this.dateRange[0],this.dateRange[((e=this.dateRange)==null?void 0:e.length)-1]];this.dateRangeStr=`${S(t[0]).format("yyyy-MM-DD")} ~ ${S(t[1]).format("yyyy-MM-DD")}`,this.$emit("dateRange",[S.tz(t[0],this.timeZoneName).set({year:S(t[0]).year(),month:S(t[0]).month(),date:S(t[0]).date(),hour:0,minute:0,second:0,millisecond:0}).format(),S.tz(t[1],this.timeZoneName).set({year:S(t[1]).year(),month:S(t[1]).month(),date:S(t[1]).date(),hour:23,minute:59,second:59,millisecond:59}).format()]),this.showDatePicker=!1},handleCancelDate(){this.showDatePicker=!1},handleClickOutside(t){const e=this.$refs.idmGl4Timepicker;e&&!e.contains(t.target)&&(this.showDatePicker=!1)},handleClearDate(){this.dateRange=[],this.dateRangeStr="",this.$emit("dateRange",[])}}},Hf={ref:"idmGl4DatePicker",class:"idm-gl4-date-picker"},Xf={class:"flex-1-1-0"},Yf={class:"pa-0 w-100 d-flex justify-space-between align-center ga-4"},Uf={key:0,class:"d-flex justify-start align-center flex-wrap ga-3 ml-n2"},$f={class:"flex-1-1-0 d-flex justify-end align-center ga-4"};function Jf(t,e,a,r,i,l){const n=o.resolveComponent("VIcon"),c=o.resolveComponent("VDatePicker"),s=o.resolveComponent("VDivider"),d=o.resolveComponent("VCardText"),m=o.resolveComponent("VBtn"),p=o.resolveComponent("VCardActions"),g=o.resolveComponent("VCard");return o.openBlock(),o.createElementBlock("div",Hf,[o.createElementVNode("div",{style:o.normalizeStyle({height:a.height+"px",width:a.width?a.width+"px":"auto"}),class:"rounded text-body-1 btn-border-1 btn-bg-1 d-flex align-center justify-space-between px-2 cursor-pointer",onClick:e[0]||(e[0]=(...y)=>l.handleOpenDatePicker&&l.handleOpenDatePicker(...y))},[o.createElementVNode("span",Xf,o.toDisplayString(i.dateRangeStr),1),i.dateRangeStr?(o.openBlock(),o.createBlock(n,{key:0,class:"text-h5",icon:"mdi-close-circle",style:{opacity:"0.4"},onClick:o.withModifiers(l.handleClearDate,["stop"])},null,8,["onClick"])):o.createCommentVNode("",!0)],4),i.showDatePicker?(o.openBlock(),o.createBlock(g,{key:0,class:"card-box d-flex flex-column border elevation-12",style:o.normalizeStyle(l.getStyle)},{default:o.withCtx(()=>[o.createVNode(d,{class:"w-100 flex-1-1-0 d-flex pa-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Yf,[o.createVNode(c,{modelValue:i.dateRange[0],"onUpdate:modelValue":[e[1]||(e[1]=y=>i.dateRange[0]=y),e[2]||(e[2]=y=>i.activeFastPick=void 0)],min:i.minDate,max:i.maxDate,"weekday-format":"narrow",color:"primary",density:"compact",class:"w-100","hide-header":"","no-month-picker":!0},null,8,["modelValue","min","max"]),o.createVNode(s,{vertical:"",class:"my-2"}),o.createVNode(c,{modelValue:i.dateRange[1],"onUpdate:modelValue":[e[3]||(e[3]=y=>i.dateRange[1]=y),e[4]||(e[4]=y=>i.activeFastPick=void 0)],min:i.minDate,max:i.maxDate,"weekday-format":"narrow",color:"primary",density:"compact",class:"w-100","hide-header":"","no-month-picker":!0},null,8,["modelValue","min","max"])])]),_:1}),o.createVNode(s),o.createVNode(p,{class:"w-100 d-flex justify-space-between align-center pa-0 px-4",style:{height:"50px"}},{default:o.withCtx(()=>{var y,u;return[(y=a.fastPick)!=null&&y.show?(o.openBlock(),o.createElementBlock("div",Uf,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList((u=i.fastPickOptions)==null?void 0:u.filter(h=>a.fastPick.allows.some(f=>f===h)),h=>(o.openBlock(),o.createBlock(m,{key:h,size:"small",color:i.activeFastPick===h?"primary":"",variant:i.activeFastPick===h?"tonal":"text",class:"text-none text-body-2 px-1",onClick:f=>l.handleFastPick({dateRange:h})},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("time."+h)),1)]),_:2},1032,["color","variant","onClick"]))),128))])):o.createCommentVNode("",!0),o.createElementVNode("div",$f,[o.createVNode(m,{size:"small",variant:"tonal",class:"text-none text-body-1 px-4",onClick:l.handleCancelDate},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.cancel")),1)]),_:1},8,["onClick"]),o.createVNode(m,{size:"small",variant:"flat",color:"primary",class:"text-none text-body-1 px-4",onClick:l.handleConfirmDate},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(t.$t("actions.confirm")),1)]),_:1},8,["onClick"])])]}),_:1})]),_:1},8,["style"])):o.createCommentVNode("",!0)],512)}const $a=X(jf,[["render",Jf]]),Kf={install(t){t.component("MapInitial",Ua),t.component("MapboxGL",Xa),t.component("TropicalGL",jo),t.component("LatLngGL",Zo),t.component("DateTimePicker",qe),t.component("DateRangePicker",$a),t.component("PortDetail",Mo),t.component("TimePlayer",la)}};function qf(t){return typeof t=="string"&&/^data:image\/svg\+xml/i.test(t)}function Qf(t){let e=t.indexOf(",");return e>=0?decodeURIComponent(t.slice(e+1)):""}function ey(t){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function ty(t){let e=[],a="",r=0;for(let i=0;i<t.length;i++){let l=t[i];l==="("&&r++,l===")"&&(r=Math.max(0,r-1)),l===";"&&r===0?(e.push(a),a=""):a+=l}return a.trim()&&e.push(a),e.map(i=>i.trim()).filter(Boolean)}function oy(t){let e=[],a="",r=0;for(let l=0;l<t.length;l++){let n=t[l];n==="("&&r++,n===")"&&(r=Math.max(0,r-1)),n===","&&r===0?(e.push(a.trim()),a=""):a+=n}a.trim()&&e.push(a.trim());let i=[];for(let l of e){if(/\binset\b/i.test(l))continue;let n=l.match(/-?\d+(?:\.\d+)?px/gi)||[],[c="0px",s="0px",d="0px"]=n,m=l.replace(/-?\d+(?:\.\d+)?px/gi,"").replace(/\binset\b/ig,"").trim().replace(/\s{2,}/g," "),p=!!m&&m!==",";i.push(`drop-shadow(${c} ${s} ${d}${p?` ${m}`:""})`)}return i.join(" ")}function Ja(t){let e=ty(t),a=null,r=null,i=null,l=[];for(let c of e){let s=c.indexOf(":");if(s<0)continue;let d=c.slice(0,s).trim().toLowerCase(),m=c.slice(s+1).trim();d==="box-shadow"?i=m:d==="filter"?a=m:d==="-webkit-filter"?r=m:l.push([d,m])}if(i){let c=oy(i);c&&(a=a?`${a} ${c}`:c,r=r?`${r} ${c}`:c)}let n=[...l];return a&&n.push(["filter",a]),r&&n.push(["-webkit-filter",r]),n.map(([c,s])=>`${c}:${s}`).join(";")}function ay(t){return t.replace(/([^{}]+)\{([^}]*)\}/g,(e,a,r)=>`${a}{${Ja(r)}}`)}function iy(t){return t=t.replace(/<style[^>]*>([\s\S]*?)<\/style>/gi,(e,a)=>e.replace(a,ay(a))),t=t.replace(/style=(['"])([\s\S]*?)\1/gi,(e,a,r)=>`style=${a}${Ja(r)}${a}`),t}function ry(t){if(!Fe()||!qf(t))return t;try{let e=Qf(t),a=iy(e);return ey(a)}catch{return t}}async function Wo(t,e){let{width:a,height:r,scale:i=1,dpr:l=1,meta:n={},backgroundColor:c}=e;t=ry(t);let s=new Image;s.loading="eager",s.decoding="sync",s.crossOrigin="anonymous",s.src=t,await s.decode();let d=s.naturalWidth,m=s.naturalHeight,p=Number.isFinite(n.w0)?n.w0:d,g=Number.isFinite(n.h0)?n.h0:m,y,u,h=Number.isFinite(a),f=Number.isFinite(r);if(h&&f)y=Math.max(1,a),u=Math.max(1,r);else if(h){let b=a/Math.max(1,p);y=a,u=g*b}else if(f){let b=r/Math.max(1,g);u=r,y=p*b}else y=d,u=m;y=y*i,u=u*i;let k=document.createElement("canvas");k.width=y*l,k.height=u*l,k.style.width=`${y}px`,k.style.height=`${u}px`;let w=k.getContext("2d");return l!==1&&w.scale(l,l),c&&(w.save(),w.fillStyle=c,w.fillRect(0,0,y,u),w.restore()),w.drawImage(s,0,0,y,u),k}async function Ka(t,e){let a=await Wo(t,e),r=new Image;return r.src=a.toDataURL(`image/${e.format}`,e.quality),await r.decode(),r.style.width=`${a.width/e.dpr}px`,r.style.height=`${a.height/e.dpr}px`,r}async function qa(t,e){let{scale:a=1,width:r,height:i,meta:l={}}=e,n=Number.isFinite(r),c=Number.isFinite(i),s=Number.isFinite(a)&&a!==1||n||c;if(Fe()&&s)return await Ka(t,{...e,format:"png",quality:1,meta:l});let d=new Image;if(d.decoding="sync",d.loading="eager",d.src=t,await d.decode(),n&&c)d.style.width=`${r}px`,d.style.height=`${i}px`;else if(n){let m=Number.isFinite(l.w0)?l.w0:d.naturalWidth,p=Number.isFinite(l.h0)?l.h0:d.naturalHeight,g=r/Math.max(1,m);d.style.width=`${r}px`,d.style.height=`${Math.round(p*g)}px`}else if(c){let m=Number.isFinite(l.w0)?l.w0:d.naturalWidth,p=Number.isFinite(l.h0)?l.h0:d.naturalHeight,g=i/Math.max(1,p);d.style.height=`${i}px`,d.style.width=`${Math.round(m*g)}px`}else{let m=Math.round(d.naturalWidth*a),p=Math.round(d.naturalHeight*a);if(d.style.width=`${m}px`,d.style.height=`${p}px`,typeof t=="string"&&t.startsWith("data:image/svg+xml"))try{let g=decodeURIComponent(t.split(",")[1]).replace(/width="[^"]*"/,`width="${m}"`).replace(/height="[^"]*"/,`height="${p}"`);t=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(g)}`,d.src=t}catch{}}return d}const Oo=Object.freeze(Object.defineProperty({__proto__:null,toImg:qa,toSvg:qa},Symbol.toStringTag,{value:"Module"})),Qa=Object.freeze(Object.defineProperty({__proto__:null,toCanvas:Wo},Symbol.toStringTag,{value:"Module"}));async function ei(t,e){let a=e.type;if(a==="svg"){let i=decodeURIComponent(t.split(",")[1]);return new Blob([i],{type:"image/svg+xml"})}let r=await Wo(t,e);return new Promise(i=>r.toBlob(l=>i(l),`image/${a}`,e.quality))}const ti=Object.freeze(Object.defineProperty({__proto__:null,toBlob:ei},Symbol.toStringTag,{value:"Module"})),Ge=Object.freeze(Object.defineProperty({__proto__:null,rasterize:Ka},Symbol.toStringTag,{value:"Module"}));async function ly(t,e){let a=((e==null?void 0:e.format)||(e==null?void 0:e.type)||"").toLowerCase(),r=a==="jpg"?"jpeg":a||"png",i=(e==null?void 0:e.filename)||`snapdom.${r}`,l={...e||{},format:r,type:r};if(l.dpr=1,r==="svg"){let s=await ei(t,{...l,type:"svg"}),d=URL.createObjectURL(s),m=document.createElement("a");m.href=d,m.download=i,m.click(),URL.revokeObjectURL(d);return}let n=await Wo(t,l),c=document.createElement("a");c.href=n.toDataURL(`image/${r}`,e==null?void 0:e.quality),c.download=i,c.click()}const ny=Object.freeze(Object.defineProperty({__proto__:null,download:ly},Symbol.toStringTag,{value:"Module"}));oe.DateRangePicker=$a,oe.DateTimePicker=qe,oe.LatLngGL=Zo,oe.MapInitial=Ua,oe.MapboxGL=Xa,oe.MapboxGLPlugin=Kf,oe.MapboxStyleHelper=Ya,oe.ParticleSchema=ze,oe.PortDetail=Mo,oe.TimePlayer=la,oe.TropicalGL=jo,oe.Viewport=To,oe.WebGL=Pe,oe.WebGLSchema=ue,Object.defineProperty(oe,Symbol.toStringTag,{value:"Module"})});