@idmwx/idmui-gl3 5.2.7 → 5.2.8

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.
@@ -206,4 +206,4 @@
206
206
  <path
207
207
  d="M420.66666667 959.17a16.08 16.08 0 0 1-15.91-13.49A15.89 15.89 0 0 1 415.50666667 928c1.49-0.55 38.88-14.76 72.79-65.52A354.55 354.55 0 0 1 162.66666667 509.17a450.14 450.14 0 0 1 450.5-450.5 16.07 16.07 0 0 1 15.91 13.48 15.88 15.88 0 0 1-10.75 17.66c-1.58 0.58-39.13 14.9-73.07 65.95A354.22 354.22 0 0 1 871.66666667 509.17a16 16 0 0 1-0.52 4.05A450.14 450.14 0 0 1 420.66666667 959.17zM554.80666667 94.72C351.57666667 123.2 194.66666667 298.21 194.66666667 509.17c0 177.08 144.06 321.74 321.13 322.48a16 16 0 0 1 14.07 23.49c-16.11 30.42-34.27 52.37-50.85 68C682.25666667 894.63 839.16666667 719.63 839.16666667 508.67a15.94 15.94 0 0 1 0.47-3.86C837.30666667 329.33 693.82666667 187 517.80666667 186.67A16 16 0 0 1 503.66666667 163.21c16.21-30.69 34.47-52.79 51.14-68.49z"
208
208
  fill="#ffffff" p-id="18386"></path>
209
- </svg>`,C=document.createElement("div");C.className="hurricane-hourly-marker",C.innerHTML=`<div class="${T.geometry.coordinates[1]>=0?"center north":"center south"}">${M0}</div>`;const G=new f0.Marker(C).setLngLat(T.geometry.coordinates).addTo(this.map);if(this.interpolateMarkers.push(G),(r0=T.properties)!=null&&r0.showCircle){const A0={radius:100,coordinates:T.geometry.coordinates},t0={radius:200,coordinates:T.geometry.coordinates},i0={radius:500,coordinates:T.geometry.coordinates};(n0=this.circleSourceData)==null||n0.features.push(X.circle(A0.coordinates,A0.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(O0=this.circleSourceData)==null||O0.features.push(X.circle(t0.coordinates,t0.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(a0=this.circleSourceData)==null||a0.features.push(X.circle(i0.coordinates,i0.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}}))}(d0=(J=this.map)==null?void 0:J.getSource(this.circleSource))==null||d0.setData(this.circleSourceData)}}else(s0=this.map)!=null&&s0.getSource(this.interpolateSource)&&((q0=this.map)==null||q0.getSource(this.interpolateSource).setData(this.empty))},handleClick(z){var c,e,q,a,r,A,n,s;const b=z.features[0],p=(e=(c=this.tropicals)==null?void 0:c.data)==null?void 0:e.features.filter(d=>{var R;return d.geometry.type==="LineString"&&d.properties.type==="forecast"&&d.properties.name===((R=b==null?void 0:b.properties)==null?void 0:R.name)});p.sort((d,R)=>{var f,W,L,h;return((f=d.properties)==null?void 0:f.model)==="cma"?-1:((W=d.properties)==null?void 0:W.model)==="jma"?((L=R.properties)==null?void 0:L.model)==="cma"?1:-1:d.properties.model==="ecmwf"?["jma","cma"].includes((h=R.properties)==null?void 0:h.model)?1:-1:0});const o=(a=(q=this.tropicals)==null?void 0:q.data)==null?void 0:a.features.filter(d=>{var R;return d.geometry.type==="LineString"&&d.properties.type==="history"&&d.properties.name===((R=b==null?void 0:b.properties)==null?void 0:R.name)});this.activeTropicals={name:(r=b==null?void 0:b.properties)==null?void 0:r.name,forecasts:p.map(d=>d.properties),history:(A=o[0])==null?void 0:A.properties,showCircle:(s=(n=p[0])==null?void 0:n.properties)==null?void 0:s.showCircle},this.showTropicals=!0;const O=document.getElementById("active-tropical");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat([z.lngLat.lng,z.lngLat.lat]):this.activeTropicalsMarker=new f0.Marker(O).setLngLat([z.lngLat.lng,z.lngLat.lat]).setOffset([220,0]).addTo(this.map)},handleForecastToggle(z){var o,O,c,e,q,a;z.disabled=!z.disabled;const b=`${z.name}-${z.model}`,p=(O=(o=this.map)==null?void 0:o.getSource(this.source)._data)==null?void 0:O.features;p.forEach(r=>{r.properties.category===b&&(r.properties.disabled=z.disabled)}),this.interpolateData.forEach(r=>{r.properties.category===b&&(r.properties.disabled=z.disabled)}),(e=(c=this.map)==null?void 0:c.getSource(this.source))==null||e.setData(X.featureCollection(p)),(a=(q=this.map)==null?void 0:q.getSource(this.clusterSource))==null||a.setData(X.featureCollection(p)),this.handleDateChange()},handleStrikeProbability(z){this.$emit("tropicalProbability",z)},handleToggleCircles(z){var b,p;z.showCircle=!z.showCircle,(p=(b=this.tropicals.data)==null?void 0:b.features)==null||p.forEach(o=>{o.properties.name===z.name&&(o.properties.showCircle=z.showCircle)}),this.handleRender()},handleDrawCircle(){var z,b;(z=this.map)!=null&&z.getSource(this.circleSource)?(b=this.map)==null||b.getSource(this.circleSource).setData(this.circleSourceData):(this.map.addSource(this.circleSource,{type:"geojson",data:this.circleSourceData}),this.map.addLayer({id:this.circleLayer,type:"line",source:this.circleSource,filter:["all",["==","$type","Polygon"],["==","type","tropicalCircle"]],paint:{"line-color":"#fff","line-width":2,"line-opacity":1,"line-dasharray":[1,1]}}))},handleComputePolygons(z){const b=[];for(const p of z){const o=p.properties.wind,O={ne:o.r7ne>=0?o.r7ne:void 0,se:o.r7se>=0?o.r7se:void 0,sw:o.r7sw>=0?o.r7sw:void 0,nw:o.r7nw>=0?o.r7nw:void 0},c=this.handleComputeArc(p.geometry.coordinates,O,{...p.properties,level:7});b.push(c);const e={ne:o.r10ne>=0?o.r10ne:void 0,se:o.r10se>=0?o.r10se:void 0,sw:o.r10sw>=0?o.r10sw:void 0,nw:o.r10nw>=0?o.r10nw:void 0},q=this.handleComputeArc(p.geometry.coordinates,e,{...p.properties,level:10});b.push(q)}return b},handleComputeArc(z,b,p){var c;const o=[];for(const e in b){const q=b[e]??0;let a;switch(e){case"ne":a=X.lineArc(z,q*1.852,0,90,{steps:q>0?64:1});break;case"se":a=X.lineArc(z,q*1.852,90,180,{steps:q>0?64:1});break;case"sw":a=X.lineArc(z,q*1.852,180,270,{steps:q>0?64:1});break;case"nw":a=X.lineArc(z,q*1.852,270,360,{steps:q>0?64:1});break}o.push(...(c=a==null?void 0:a.geometry)==null?void 0:c.coordinates)}const O=X.lineString(o);return X.lineToPolygon(O,{properties:p})}}},I0=z=>(M.pushScopeId("data-v-44a4e671"),z=z(),M.popScopeId(),z),Q2={id:"active-tropical",class:"active-tropical"},H2={class:"header-box"},j2={class:"main"},F2={key:0},V2={class:"sub"},G2={id:"meteoBox",class:"main-box"},U2={class:"content"},K2={class:"row"},J2={class:"col col-left",style:{"justify-content":"flex-start"}},Y2=I0(()=>M.createElementVNode("label",null,"Wind speed : ",-1)),Z2={class:"col col-right",style:{"justify-content":"flex-start"}},$2=I0(()=>M.createElementVNode("label",null,"Pressure : ",-1)),MM={class:"row"},bM={class:"col col-24",style:{"justify-content":"flex-start"}},zM=I0(()=>M.createElementVNode("label",{style:{width:"max-content"}},"Forecast Models : ",-1)),pM={class:"forecast-models"},OM=["onClick"],oM=M.createStaticVNode('<div class="row" style="padding:0;height:1px;margin:10px 0;background:var(--idm-black-1);" data-v-44a4e671></div><div class="row" style="padding:2px 10px;" data-v-44a4e671><div class="legend" data-v-44a4e671><div class="icon td" data-v-44a4e671></div><div class="label" data-v-44a4e671>TD</div></div><div class="legend" data-v-44a4e671><div class="icon ts" data-v-44a4e671></div><div class="label" data-v-44a4e671>TS</div></div><div class="legend" data-v-44a4e671><div class="icon sts" data-v-44a4e671></div><div class="label" data-v-44a4e671>STS</div></div><div class="legend" data-v-44a4e671><div class="icon ty" data-v-44a4e671></div><div class="label" data-v-44a4e671>TY</div></div><div class="legend" data-v-44a4e671><div class="icon sty" data-v-44a4e671></div><div class="label" data-v-44a4e671>STY</div></div><div class="legend" data-v-44a4e671><div class="icon supper-ty" data-v-44a4e671></div><div class="label" data-v-44a4e671>Super TY</div></div></div><div class="row" style="padding:2px 10px;" data-v-44a4e671><div class="legend" data-v-44a4e671><div class="icon history" data-v-44a4e671></div><div class="label" data-v-44a4e671>History</div></div><div class="legend" data-v-44a4e671><div class="icon r7" data-v-44a4e671></div><div class="label" data-v-44a4e671>35kts Radii</div></div><div class="legend" data-v-44a4e671><div class="icon r10" data-v-44a4e671></div><div class="label" data-v-44a4e671>50kts Radii</div></div></div>',3),cM={class:"more"};function eM(z,b,p,o,O,c){var e,q,a,r,A,n,s,d,R,f,W,L,h,N,w;return M.withDirectives((M.openBlock(),M.createElementBlock("div",Q2,[M.createElementVNode("div",H2,[M.createElementVNode("div",{class:"iconfont close-btn",onClick:b[0]||(b[0]=B=>O.showTropicals=!1)},""),M.createElementVNode("div",j2,[(q=(e=O.activeTropicals)==null?void 0:e.history)!=null&&q.level?(M.openBlock(),M.createElementBlock("span",F2,M.toDisplayString((r=(a=O.activeTropicals)==null?void 0:a.history)==null?void 0:r.level)+" , ",1)):M.createCommentVNode("",!0),M.createTextVNode(M.toDisplayString((A=O.activeTropicals)==null?void 0:A.name),1)]),M.createElementVNode("div",V2," Last update: "+M.toDisplayString(c.computeTime(((s=(n=O.activeTropicals)==null?void 0:n.history)==null?void 0:s.updated)||((f=(R=(d=O.activeTropicals)==null?void 0:d.forecasts)==null?void 0:R.filter(B=>!B.disabled)[0])==null?void 0:f.date))),1)]),M.createElementVNode("div",G2,[M.createElementVNode("div",U2,[M.createElementVNode("div",K2,[M.createElementVNode("div",J2,[Y2,M.createElementVNode("span",null,M.toDisplayString(((L=(W=O.activeTropicals)==null?void 0:W.history)==null?void 0:L.kts)||"-")+"[kts]",1)]),M.createElementVNode("div",Z2,[$2,M.createElementVNode("span",null,M.toDisplayString(((N=(h=O.activeTropicals)==null?void 0:h.history)==null?void 0:N.pressure)||"-")+"[hPa]",1)])]),M.createElementVNode("div",MM,[M.createElementVNode("div",bM,[zM,M.createElementVNode("div",pM,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList((w=O.activeTropicals)==null?void 0:w.forecasts,(B,v)=>{var H,F,U,K;return M.openBlock(),M.createElementBlock("div",{key:v,class:M.normalizeClass(["model",B.disabled?"":"active",v>0&&v<((F=(H=O.activeTropicals)==null?void 0:H.forecasts)==null?void 0:F.length)-1&&((K=(U=O.activeTropicals)==null?void 0:U.forecasts)==null?void 0:K.length)>2?"center-child":""]),onClick:p0=>c.handleForecastToggle(B)},[M.createElementVNode("span",{class:M.normalizeClass(B.model)},M.toDisplayString(B.model),3)],10,OM)}),128))])])]),oM]),M.createElementVNode("div",cM,[M.createElementVNode("div",{class:"button",onClick:b[1]||(b[1]=B=>c.handleStrikeProbability(O.activeTropicals))},"Strike Probability >>")])])],512)),[[M.vShow,O.showTropicals&&!z.$attrs.hideTropicalsLegend]])}const k0=k(_2,[["render",eM],["__scopeId","data-v-44a4e671"]]),fO="",AM={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[precip3h] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},u0=z=>(M.pushScopeId("data-v-e83717bd"),z=z(),M.popScopeId(),z),tM={key:0},aM=[u0(()=>M.createElementVNode("span",null,"mm",-1)),u0(()=>M.createElementVNode("span",null,"1.5",-1)),u0(()=>M.createElementVNode("span",null,"2",-1)),u0(()=>M.createElementVNode("span",null,"3",-1)),u0(()=>M.createElementVNode("span",null,"7",-1)),u0(()=>M.createElementVNode("span",null,"10",-1)),u0(()=>M.createElementVNode("span",null,"20",-1)),u0(()=>M.createElementVNode("span",null,"30",-1))];function qM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",tM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},aM,4)])):M.createCommentVNode("",!0)}const iM=k(AM,[["render",qM],["__scopeId","data-v-e83717bd"]]),yO="",rM={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[visibility] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},N0=z=>(M.pushScopeId("data-v-1c8a9237"),z=z(),M.popScopeId(),z),nM={key:0},dM=[N0(()=>M.createElementVNode("span",null,"nm",-1)),N0(()=>M.createElementVNode("span",null,"0",-1)),N0(()=>M.createElementVNode("span",null,"0.5",-1)),N0(()=>M.createElementVNode("span",null,"1.5",-1)),N0(()=>M.createElementVNode("span",null,"3",-1)),N0(()=>M.createElementVNode("span",null,"9",-1))];function sM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",nM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:z.right+"px",bottom:p.bottom}])},dM,4)])):M.createCommentVNode("",!0)}const WM=k(rM,[["render",sM],["__scopeId","data-v-1c8a9237"]]),SO="",lM={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[water-temp] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},g0=z=>(M.pushScopeId("data-v-8974924d"),z=z(),M.popScopeId(),z),fM={key:0},LM=[g0(()=>M.createElementVNode("span",null,"°C",-1)),g0(()=>M.createElementVNode("span",null,"0",-1)),g0(()=>M.createElementVNode("span",null,"10",-1)),g0(()=>M.createElementVNode("span",null,"20",-1)),g0(()=>M.createElementVNode("span",null,"30",-1)),g0(()=>M.createElementVNode("span",null,"40",-1))];function hM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",fM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},LM,4)])):M.createCommentVNode("",!0)}const RM=k(lM,[["render",hM],["__scopeId","data-v-8974924d"]]),QO="",uM={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[water-temp] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},m0=z=>(M.pushScopeId("data-v-d709ba86"),z=z(),M.popScopeId(),z),mM={key:0},BM=[m0(()=>M.createElementVNode("span",null,"°C",-1)),m0(()=>M.createElementVNode("span",null,"-20",-1)),m0(()=>M.createElementVNode("span",null,"-10",-1)),m0(()=>M.createElementVNode("span",null,"0",-1)),m0(()=>M.createElementVNode("span",null,"10",-1)),m0(()=>M.createElementVNode("span",null,"20",-1)),m0(()=>M.createElementVNode("span",null,"30",-1)),m0(()=>M.createElementVNode("span",null,"40",-1))];function NM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",mM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},BM,4)])):M.createCommentVNode("",!0)}const gM=k(uM,[["render",NM],["__scopeId","data-v-d709ba86"]]),YO="",yM={name:"IdmArctic",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[water-temp] add elapsed: ",p,", total: ",b+=p)}},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 z=[[0,"rgba(76, 165, 228, 0)"],[50/255,"rgba(76, 165, 228, 0)"],[51/255,"rgb(76, 165, 228)"],[102/255,"rgb(129, 204, 197)"],[153/255,"rgb(150, 209, 216)"],[204/255,"rgb(180, 209, 216)"],[1,"rgb(180, 209, 216)"]];this.rampColor=this.webgl.setup(this.context,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},y0=z=>(M.pushScopeId("data-v-5bb73794"),z=z(),M.popScopeId(),z),XM={key:0},wM=[y0(()=>M.createElementVNode("span",null,"m",-1)),y0(()=>M.createElementVNode("span",null,"0",-1)),y0(()=>M.createElementVNode("span",null,"0.5",-1)),y0(()=>M.createElementVNode("span",null,"1",-1)),y0(()=>M.createElementVNode("span",null,"1.5",-1)),y0(()=>M.createElementVNode("span",null,"2",-1))];function CM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",XM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},wM,4)])):M.createCommentVNode("",!0)}const EM=k(yM,[["render",CM],["__scopeId","data-v-5bb73794"]]);/*! Element Plus Icons Vue v2.3.1 */var TM=M.defineComponent({name:"LocationFilled",__name:"location-filled",setup(z){return(b,p)=>(M.openBlock(),M.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[M.createElementVNode("path",{fill:"currentColor",d:"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928m0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6"})]))}}),xM=TM;const SM="data:image/gif;base64,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",O3="",DM={name:"IdmPoint",components:{LocationFilled:xM},props:{token:{type:String},map:{type:Object},show:{type:Boolean},ts:{type:String},gateway:{type:String},startTs:{type:String},forecastModel:{type:String}},emits:["meteoMore"],data(){return{showMeteo:!1,loading:!1,point:{},meteoData:void 0,activeIndex:2,tableData:{hours:[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]},currentHourData:void 0,positionOffset:void 0,positionGmt:void 0,localDate:void 0,meteoMarker:void 0,tideData:{},tideTableData:[],tideLoading:!1,showTables:!0}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.show&&this.handleBind()}},forecastModel:{async handler(){var z;if(this.showMeteo&&this.ts){this.handleRender();const b=I();((z=I(this.ts))==null?void 0:z.diff(b,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData)}}},point:{async handler(){var z;if(this.showMeteo=!0,this.tideData={},this.meteoData={},this.showMeteo&&this.ts){this.handleRender();const b=I();if(((z=I(this.ts))==null?void 0:z.diff(b,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData),this.activeIndex===4){const o=L0.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(o==null?void 0:o.length)>0?this.tideTableData=o:await this.fetchTidesData(this.point,this.ts,7)}}}},ts:{async handler(){var z;if(this.showMeteo&&this.ts){const b=I(),p=(z=I(this.ts))==null?void 0:z.diff(b,"d",!0),O=[0,1,2,3,4,5,6,7].every(c=>{var q;const e=w0(this.ts).tz(this.positionGmt).add(3*c,"h").format();return(q=L0.Meteo2Assist.pickHourly(this.meteoData,e))==null?void 0:q[0]});if(this.meteoData&&O?this.initTableData(this.meteoData):(this.loading||(p>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts)),this.initTableData(this.meteoData)),this.activeIndex===4){const c=L0.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(c==null?void 0:c.length)>0?this.tideTableData=c:await this.fetchTidesData(this.point,this.ts,7)}}}}},computed:{computeHourL(){return function(z){return z?`${w0(z).tz(this.positionGmt).format("HH")}`:"-"}},computeHourZ(){return function(z){return z?`${I(z).utc().format("HH")}Z`:"-"}},computeHourHmmLT(){return function(z){return z?`${w0(z).tz(this.positionGmt).format("H:mm")}`:"-"}},computeLat(){return function(z,b=4){return D.LngLatHelper.lat2pretty(z,b).pretty}},computeLng(){return function(z,b=4){return D.LngLatHelper.lng2pretty(z,b).pretty}},roundPrecision(){return function(z,b=4){return isNaN(z)?"-":D.LngLatHelper.roundPrecision(z,b)}}},methods:{async fetchMeteoData(z,b,p){this.loading=!0,this.meteoData=[];let o=b?I(b).utc().format():I().utc().format();const{weatherModels:O,marineModels:c}=L0.Meteo2Assist.autoPickMeteoModel(this.forecastModel);let e={lat:z.lat,lng:z.lng,datetime:o,forecastDays:p??7,weatherModels:O,marineModels:c},q=await l0.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,e,{headers:{Authorization:this.token||this.defaultMeteoToken}});(q==null?void 0:q.data.code)===0&&(this.meteoData=q==null?void 0:q.data.data,this.loading=!1)},async fetchHistoryData(z,b){this.loading=!0,this.meteoData=[];const p=b?I(b).utc().format():I().utc().format(),{weatherModels:o,marineModels:O}=L0.Meteo2Assist.autoPickMeteoModel(this.forecastModel),c={lat:z.lat,lng:z.lng,datetime:p,forecastDays:3,pastDays:1,weatherModels:o,marineModels:O},e=await l0.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,c,{headers:{Authorization:this.token||this.defaultMeteoToken}});(e==null?void 0:e.data.code)===0&&(this.meteoData=e==null?void 0:e.data.data,this.loading=!1)},initTableData(z){var b,p,o,O,c,e,q;this.clearTable(),this.positionGmt=(p=(b=z==null?void 0:z.weather)==null?void 0:b[0])==null?void 0:p.timezone,this.positionOffset=(O=(o=z==null?void 0:z.weather)==null?void 0:o[0])==null?void 0:O.offset,this.localDate=(e=(c=w0(this.ts))==null?void 0:c.tz(this.positionGmt))==null?void 0:e.format("MMM-DD/HHmm[LT]"),this.currentHourData=(q=L0.Meteo2Assist.pickHourly(z,I(this.ts)))==null?void 0:q[0],console.log(this.currentHourData),this.$nextTick(()=>{var r,A,n,s,d,R,f,W,L,h,N,w,B,v,H,F,U,K,p0,r0,n0,O0,a0,J,d0,s0,q0,o0,c0,W0,e0,T,V,M0,C,G,A0,t0,i0;const a=document.getElementById("meteoMainBox");if(!a)return!1;if(a.className="main-box",a.style.backgroundImage=null,a.style.backgroundPosition="top left",((A=(r=this.currentHourData)==null?void 0:r.weather)==null?void 0:A.code)===0&&((s=(n=this.currentHourData)==null?void 0:n.weather)==null?void 0:s.isDay)===0)a.className="main-box night-bg";else{const Y=(R=(d=this.currentHourData)==null?void 0:d.weather)==null?void 0:R.bg;Y?(a.className="main-box font-color-white",a.style.backgroundImage=`url(${Y})`,(Y==="https://osshz.idmwx.com/asset/weather/bg2.png"||Y==="https://osshz.idmwx.com/asset/weather/bg5.png")&&(a.style.backgroundPosition="right bottom")):a.className="main-box day-bg"}if(!this.currentHourData)return this.loading=!1,this.tableData.hours=[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],this.handleRender(),!1;for(let Y=0;Y<8;Y++){const t=w0(this.ts).tz(this.positionGmt).add(3*Y,"h").format();this.tableData.hours.push(t);const i=((f=L0.Meteo2Assist.pickHourly(z,t))==null?void 0:f[0])||{};this.tableData.temp.push(this.roundPrecision((W=i==null?void 0:i.weather)==null?void 0:W.temp,0)??"-"),this.tableData.precipProbability.push(this.roundPrecision((h=(L=i==null?void 0:i.weather)==null?void 0:L.precip)==null?void 0:h.probability,0)??"-"),this.tableData.precip1h.push(this.roundPrecision((w=(N=i==null?void 0:i.weather)==null?void 0:N.precip)==null?void 0:w.sum,0)??"-"),this.tableData.visibility.push(this.roundPrecision((B=i==null?void 0:i.weather)==null?void 0:B.visibility,0)??"-"),this.tableData.windSpeed.push(this.roundPrecision((H=(v=i==null?void 0:i.weather)==null?void 0:v.wind)==null?void 0:H.kts,1)??"-"),this.tableData.windDir.push((U=(F=i==null?void 0:i.weather)==null?void 0:F.wind)==null?void 0:U.bearing),this.tableData.windGust.push(this.roundPrecision((p0=(K=i==null?void 0:i.weather)==null?void 0:K.wind)==null?void 0:p0.gusts,1)??"-"),this.tableData.sigwaveHeight.push(this.roundPrecision((n0=(r0=i==null?void 0:i.wave)==null?void 0:r0.sig)==null?void 0:n0.height,1)??"-"),this.tableData.sigwaveDir.push((a0=(O0=i==null?void 0:i.wave)==null?void 0:O0.sig)==null?void 0:a0.bearing),this.tableData.windwaveHeight.push(this.roundPrecision((d0=(J=i==null?void 0:i.wave)==null?void 0:J.wd)==null?void 0:d0.height,1)??"-"),this.tableData.windwaveDir.push((q0=(s0=i==null?void 0:i.wave)==null?void 0:s0.wd)==null?void 0:q0.bearing),this.tableData.windwavePeriod.push(this.roundPrecision((c0=(o0=i==null?void 0:i.wave)==null?void 0:o0.wd)==null?void 0:c0.period,1)??"-"),this.tableData.swellHeight.push(this.roundPrecision((e0=(W0=i==null?void 0:i.wave)==null?void 0:W0.swell)==null?void 0:e0.height,1)??"-"),this.tableData.swellDir.push((V=(T=i==null?void 0:i.wave)==null?void 0:T.swell)==null?void 0:V.bearing),this.tableData.swellPeriod.push(this.roundPrecision((C=(M0=i==null?void 0:i.wave)==null?void 0:M0.swell)==null?void 0:C.period,1)??"-"),this.tableData.currentSpeed.push(this.roundPrecision((G=i==null?void 0:i.current)==null?void 0:G.speed,1)??"-"),this.tableData.currentDir.push((A0=i==null?void 0:i.current)==null?void 0:A0.bearing),this.tableData.seaLevel.push(this.roundPrecision(i==null?void 0:i.height,1)??"-"),this.tableData.seaTemp.push(this.roundPrecision(i==null?void 0:i.sst,0)??"-"),this.tableData.weatherUrls.push((t0=i==null?void 0:i.weather)==null?void 0:t0.url),this.tableData.weatherNames.push(((i0=i==null?void 0:i.weather)==null?void 0:i0.name)??"-")}})},clearTable(){this.currentHourData=void 0,this.positionGmt=void 0,this.localDate=void 0,this.tableData={hours:[],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]}},async handleSelectTab(z){this.activeIndex=z,this.activeIndex===4&&await this.fetchTidesData(this.point,this.ts,7)},async fetchTidesData(z,b,p){this.tideLoading=!0,this.tideData={};let o=b?I(b).utc().format():I().utc().format(),O={lat:z.lat,lng:z.lng,date:o,forecastDays:p??7,extremes:!0,heights:!1},c=await l0.post(`${this.gateway}/api/arc/meteo2/spot/tides/forecast`,O,{headers:{Authorization:this.token||this.defaultMeteoToken}});if((c==null?void 0:c.data.code)===0){this.tideData=(c==null?void 0:c.data.data)||{},this.tideLoading=!1;const e=L0.TidesAssist.pickDailyExtremes(this.tideData,this.ts);this.tideTableData=e}},handleBind(){var z,b;this.show?((z=this.map)==null||z.on("click",this.handleClick),this.map.getCanvas().style.cursor="pointer"):((b=this.map)==null||b.off("click",this.handleClick),this.showMeteo=!1)},handleClick(z){if(z.originalEvent.stopPropagation(),z.originalEvent.target.className==="mapboxgl-canvas")this.point=z.lngLat;else return!1},handleMeteoMore(){this.point.forecastModel=this.forecastModel,this.$emit("meteoMore",this.point)},handleCloseMeteo(){this.showMeteo=!1},handleRender(){this.$nextTick(()=>{var b;const z=document.getElementById("point-meteo");this.point&&(this.meteoMarker?(b=this.meteoMarker)==null||b.setLngLat([this.point.lng,this.point.lat]):this.meteoMarker=new f0.Marker(z).setLngLat([this.point.lng,this.point.lat]).addTo(this.map))})}}},x=z=>(M.pushScopeId("data-v-d4a8e2e5"),z=z(),M.popScopeId(),z),IM={id:"point-meteo",class:"point-meteo"},kM={class:"meteo-box"},PM={class:"header-box flex-between"},vM={class:"flex-center"},_M={class:"lnglat"},QM={class:"flex-center"},HM={key:0,class:"main-box",id:"meteoMainBox"},jM={class:"summary-row flex-between"},FM={class:"summary flex-center"},VM=["src"],GM={key:1,class:"icon flex-center",style:{"margin-right":"5px"}},UM={class:"temp"},KM=x(()=>M.createElementVNode("span",{style:{"font-size":"14px"}},"°C",-1)),JM={class:"des info"},YM={class:"flex-start"},ZM=x(()=>M.createElementVNode("label",null,"Precip : ",-1)),$M={class:"flex-start"},Mb=x(()=>M.createElementVNode("label",null,"Visibility : ",-1)),bb={class:"flex-start"},zb=x(()=>M.createElementVNode("label",null,"Wind : ",-1)),pb={class:"date flex-col-center-end"},Ob={class:""},ob={class:""},cb={class:"detail-box"},eb={class:"menu-header flex-start"},Ab={class:"basic-table"},tb={class:"hour"},ab=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Hours"),M.createElementVNode("span",{class:"unit"},"(LT)")],-1)),qb={class:"hour"},ib=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("UTC"),M.createElementVNode("span",{class:"unit"})],-1)),rb={class:"icon"},nb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},null,-1)),db=["src"],sb={class:"text"},Wb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Temp"),M.createElementVNode("span",{class:"unit"},"°C")],-1)),lb={class:"text"},fb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Precip"),M.createElementVNode("span",{class:"unit"},"mm")],-1)),Lb={class:"text"},hb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Visibility"),M.createElementVNode("span",{class:"unit"},"nm")],-1)),Rb={class:"text"},ub=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Wind gust"),M.createElementVNode("span",{class:"unit"},"kts")],-1)),mb={class:"wave-current-table"},Bb={class:"hour"},Nb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Hours"),M.createElementVNode("span",{class:"unit"},"(LT)")],-1)),gb={class:"hour"},yb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("UTC"),M.createElementVNode("span",{class:"unit"})],-1)),Xb={class:"text"},wb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Wind"),M.createElementVNode("span",{class:"unit"},"kts")],-1)),Cb={class:"text"},Eb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Sig Wave"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Tb={class:"text"},xb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Wind Wave"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Sb={class:"text"},Db=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Swell"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Ib={class:"text"},kb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Current"),M.createElementVNode("span",{class:"unit"},"kts")],-1)),Pb={class:"sea-table",style:{height:"92px"}},vb={class:"hour"},_b=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Hours"),M.createElementVNode("span",{class:"unit"},"(LT)")],-1)),Qb={class:"hour"},Hb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("UTC"),M.createElementVNode("span",{class:"unit"})],-1)),jb={class:"text"},Fb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("SeaLevel"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Vb={class:"text"},Gb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("SeaTemp"),M.createElementVNode("span",{class:"unit"},"°C")],-1)),Ub={key:0},Kb=[x(()=>M.createElementVNode("p",{style:{"font-size":"12px",padding:"12px 20px 0 20px","line-height":"16px"}},"*Sea level height accounts for tides, barometer effects, and global variations. Based on mean sea level, accuracy is limited in coastal areas. For coastal navigation, use data from Tides Tab.",-1))],Jb={class:"tide-table flex-col-start-center"},Yb={class:"tr-tide flex-space"},Zb={class:"tr-tide flex-space"},$b={class:"tr-tide flex-space"},Mz=x(()=>M.createElementVNode("tr",{class:"tr-tide flex-center info"},[M.createElementVNode("span",null,"Tide Datum: Chart Datum")],-1)),bz={style:{padding:"17px 10px 18px 10px"}},zz={class:"flex-between"},pz={class:"flex-space",style:{flex:"1","padding-right":"15px","line-height":"30px"}},Oz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Wind",-1)),oz={class:"flex-space",style:{flex:"1","padding-left":"15px"}},cz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Sig wave",-1)),ez={class:"flex-between"},Az={class:"flex-space",style:{flex:"1","padding-right":"15px","line-height":"30px"}},tz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Wind wave",-1)),az={class:"flex-space",style:{flex:"1","padding-left":"15px"}},qz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Swell",-1)),iz={class:"flex-between"},rz={class:"flex-space",style:{flex:"1","padding-right":"15px","line-height":"30px"}},nz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Current",-1)),dz={class:"flex-space",style:{flex:"1","padding-left":"15px"}},sz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Sea level",-1)),Wz={class:"flex-between"},lz={class:"flex-space",style:{flex:"1","padding-right":"15px","line-height":"30px"}},fz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Sea Temp",-1)),Lz={class:"flex-space",style:{flex:"1","padding-left":"15px"}},hz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Visibility",-1)),Rz={class:"flex-between"},uz={class:"flex-space",style:{flex:"1","padding-right":"15px","line-height":"30px"}},mz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Temp",-1)),Bz={class:"flex-space",style:{flex:"1","padding-left":"15px"}},Nz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Precip",-1)),gz={key:1,class:"main-box flex-center"},yz=[x(()=>M.createElementVNode("img",{src:SM},null,-1))];function Xz(z,b,p,o,O,c){var r,A,n,s,d,R,f,W,L,h,N,w,B,v,H,F,U,K,p0,r0,n0,O0,a0,J,d0,s0,q0,o0,c0,W0,e0,T,V,M0,C,G,A0,t0,i0,Y,t,i,l,u,y,E,Q,S,_,X0,C0,E0,T0,x0,b0,F0,V0,G0,U0,K0,J0,Y0,Z0,$0,M1,b1,z1,p1;const e=M.resolveComponent("LocationFilled"),q=M.resolveComponent("ElIcon"),a=M.resolveComponent("ElTooltip");return M.withDirectives((M.openBlock(),M.createElementBlock("div",IM,[M.createElementVNode("div",kM,[M.createElementVNode("div",PM,[M.createElementVNode("div",vM,[M.createVNode(q,{size:"22"},{default:M.withCtx(()=>[M.createVNode(e)]),_:1}),M.createElementVNode("div",_M,M.toDisplayString(c.computeLat((r=O.point)==null?void 0:r.lat))+","+M.toDisplayString(c.computeLng((A=O.point)==null?void 0:A.lng)),1)]),M.createElementVNode("div",QM,[O.showTables?(M.openBlock(),M.createElementBlock("div",{key:0,class:"iconfont toggle",onClick:b[0]||(b[0]=m=>O.showTables=!O.showTables)},"")):(M.openBlock(),M.createElementBlock("div",{key:1,class:"iconfont toggle",onClick:b[1]||(b[1]=m=>O.showTables=!O.showTables)},"")),M.createElementVNode("div",{class:"iconfont close",onClick:b[2]||(b[2]=(...m)=>c.handleCloseMeteo&&c.handleCloseMeteo(...m))},"")])]),O.loading?(M.openBlock(),M.createElementBlock("div",gz,yz)):(M.openBlock(),M.createElementBlock("div",HM,[M.createElementVNode("div",jM,[M.createElementVNode("div",FM,[M.createVNode(a,{placement:"top",effect:"light",content:(s=(n=O.currentHourData)==null?void 0:n.weather)==null?void 0:s.name,"show-after":1e3},{default:M.withCtx(()=>{var m,g,O1,o1;return[(g=(m=O.currentHourData)==null?void 0:m.weather)!=null&&g.url?(M.openBlock(),M.createElementBlock("img",{key:0,class:"iconfont icon",style:{"margin-right":"5px"},src:(o1=(O1=O.currentHourData)==null?void 0:O1.weather)==null?void 0:o1.url},null,8,VM)):(M.openBlock(),M.createElementBlock("span",GM))]}),_:1},8,["content"]),M.createElementVNode("div",UM,[M.createElementVNode("div",null,[M.createTextVNode(M.toDisplayString(c.roundPrecision((R=(d=O.currentHourData)==null?void 0:d.weather)==null?void 0:R.temp,0)),1),KM])]),M.createElementVNode("div",JM,[M.createElementVNode("div",YM,[ZM,M.createElementVNode("span",null,M.toDisplayString(c.roundPrecision((L=(W=(f=O.currentHourData)==null?void 0:f.weather)==null?void 0:W.precip)==null?void 0:L.sum,0))+" mm",1)]),M.createElementVNode("div",$M,[Mb,M.createElementVNode("span",null,M.toDisplayString(c.roundPrecision((N=(h=O.currentHourData)==null?void 0:h.weather)==null?void 0:N.visibility,0))+" nm",1)]),M.createElementVNode("div",bb,[zb,M.createElementVNode("span",null,M.toDisplayString(c.roundPrecision((v=(B=(w=O.currentHourData)==null?void 0:w.weather)==null?void 0:B.wind)==null?void 0:v.kts,1))+" kts",1)])])]),M.createElementVNode("div",pb,[M.createElementVNode("div",Ob,M.toDisplayString(O.localDate),1),M.createElementVNode("div",ob,"( UTC "+M.toDisplayString(O.positionOffset)+" )",1)])]),M.withDirectives(M.createElementVNode("div",cb,[M.createElementVNode("div",eb,[M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===1?"active":""]),onClick:b[3]||(b[3]=M.withModifiers(m=>c.handleSelectTab(1),["prevent"]))},"Basis",2),M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===2?"active":""]),onClick:b[4]||(b[4]=M.withModifiers(m=>c.handleSelectTab(2),["prevent"]))},"Wave & Current",2),M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===3?"active":""]),onClick:b[5]||(b[5]=M.withModifiers(m=>c.handleSelectTab(3),["prevent"]))},"Sea Surface",2),M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===4?"active":""]),onClick:b[6]||(b[6]=M.withModifiers(m=>c.handleSelectTab(4),["prevent"]))},"Tides",2)]),M.withDirectives(M.createElementVNode("table",Ab,[M.createElementVNode("tr",tb,[ab,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,m=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourL${m}`},M.toDisplayString(c.computeHourL(m)),1))),128))]),M.createElementVNode("tr",qb,[ib,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,m=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourZ${m}`},M.toDisplayString(c.computeHourZ(m)),1))),128))]),M.createElementVNode("tr",rb,[nb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.weatherUrls,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`weatherUrls${g}${m}`},[M.createVNode(a,{placement:"top",effect:"light",content:O.tableData.weatherNames[g],"show-after":500},{default:M.withCtx(()=>[m?(M.openBlock(),M.createElementBlock("img",{key:0,class:"iconfont weather-icon",src:m},null,8,db)):M.createCommentVNode("",!0)]),_:2},1032,["content"])]))),128))]),M.createElementVNode("tr",sb,[Wb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.temp,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`weatherUrls${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",lb,[fb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.precip1h,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`precip1h${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",Lb,[hb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.visibility,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`visibility${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",Rb,[ub,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.windGust,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windGust${g}${m}`},[isNaN(O.tableData.windDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon blue",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.windDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))])],512),[[M.vShow,O.activeIndex===1]]),M.withDirectives(M.createElementVNode("table",mb,[M.createElementVNode("tr",Bb,[Nb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursL${g}${m}`},M.toDisplayString(c.computeHourL(m)),1))),128))]),M.createElementVNode("tr",gb,[yb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursZ${g}${m}`},M.toDisplayString(c.computeHourZ(m)),1))),128))]),M.createElementVNode("tr",Xb,[wb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.windSpeed,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windSpeed${g}${m}`},[isNaN(O.tableData.windDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon blue",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.windDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Cb,[Eb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.sigwaveHeight,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`sigwaveHeight${g}${m}`},[isNaN(O.tableData.sigwaveDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon blue",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.sigwaveDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Tb,[xb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.windwaveHeight,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windwaveHeight${g}${m}`},[isNaN(O.tableData.sigwaveDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon orange",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.sigwaveDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Sb,[Db,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.swellHeight,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`swellHeight${g}${m}`},[isNaN(O.tableData.swellDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon orange",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.swellDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Ib,[kb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.currentSpeed,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`currentSpeed${g}${m}`},[isNaN(O.tableData.currentDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon gray",id:"meteoGrayIcon",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.currentDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))])],512),[[M.vShow,O.activeIndex===2]]),M.withDirectives(M.createElementVNode("table",Pb,[M.createElementVNode("tr",vb,[_b,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursL${g}${m}`},M.toDisplayString(c.computeHourL(m)),1))),128))]),M.createElementVNode("tr",Qb,[Hb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursZ${g}${m}`},M.toDisplayString(c.computeHourZ(m)),1))),128))]),M.createElementVNode("tr",jb,[Fb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.seaLevel,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaLevel${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",Vb,[Gb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.seaTemp,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaTemp${g}${m}`},M.toDisplayString(m),1))),128))])],512),[[M.vShow,O.activeIndex===3]]),O.activeIndex===3?(M.openBlock(),M.createElementBlock("div",Ub,Kb)):M.createCommentVNode("",!0),M.withDirectives(M.createElementVNode("table",Jb,[M.createElementVNode("tr",Yb,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tideTableData,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`Tide-tr-${g}${m}`},M.toDisplayString(m.type)+" Tide",1))),128))]),M.createElementVNode("tr",Zb,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tideTableData,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-date-${g}${m}`},M.toDisplayString(c.computeHourHmmLT(m==null?void 0:m.date)),1))),128))]),M.createElementVNode("tr",$b,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tideTableData,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-height-${g}${m}`},M.toDisplayString(c.roundPrecision(m==null?void 0:m.height,2))+" m",1))),128))]),Mz],512),[[M.vShow,O.activeIndex===4]])],512),[[M.vShow,((F=(H=O.tableData)==null?void 0:H.hours)==null?void 0:F.length)>0&&O.showTables]]),M.withDirectives(M.createElementVNode("div",bz,[M.createElementVNode("div",zz,[M.createElementVNode("div",pz,[Oz,M.createElementVNode("div",null,M.toDisplayString((p0=(K=(U=O.currentHourData)==null?void 0:U.weather)==null?void 0:K.wind)==null?void 0:p0.direction)+"/"+M.toDisplayString(c.roundPrecision((O0=(n0=(r0=O.currentHourData)==null?void 0:r0.weather)==null?void 0:n0.wind)==null?void 0:O0.kts,1))+"kts/BF"+M.toDisplayString((d0=(J=(a0=O.currentHourData)==null?void 0:a0.weather)==null?void 0:J.wind)==null?void 0:d0.scale)+"/"+M.toDisplayString(c.roundPrecision((o0=(q0=(s0=O.currentHourData)==null?void 0:s0.weather)==null?void 0:q0.wind)==null?void 0:o0.gusts,1))+" kts",1)]),M.createElementVNode("div",oz,[cz,M.createElementVNode("div",null,M.toDisplayString((e0=(W0=(c0=O.currentHourData)==null?void 0:c0.wave)==null?void 0:W0.sig)==null?void 0:e0.direction)+"/"+M.toDisplayString(c.roundPrecision((M0=(V=(T=O.currentHourData)==null?void 0:T.wave)==null?void 0:V.sig)==null?void 0:M0.height,1))+"m/"+M.toDisplayString(c.roundPrecision((A0=(G=(C=O.currentHourData)==null?void 0:C.wave)==null?void 0:G.sig)==null?void 0:A0.period,1))+"s",1)])]),M.createElementVNode("div",ez,[M.createElementVNode("div",Az,[tz,M.createElementVNode("div",null,M.toDisplayString((Y=(i0=(t0=O.currentHourData)==null?void 0:t0.wave)==null?void 0:i0.wd)==null?void 0:Y.direction)+"/"+M.toDisplayString(c.roundPrecision((l=(i=(t=O.currentHourData)==null?void 0:t.wave)==null?void 0:i.wd)==null?void 0:l.height,1))+"m/"+M.toDisplayString(c.roundPrecision((E=(y=(u=O.currentHourData)==null?void 0:u.wave)==null?void 0:y.wd)==null?void 0:E.period,1))+"s",1)]),M.createElementVNode("div",az,[qz,M.createElementVNode("div",null,M.toDisplayString((_=(S=(Q=O.currentHourData)==null?void 0:Q.wave)==null?void 0:S.swell)==null?void 0:_.direction)+"/"+M.toDisplayString(c.roundPrecision((E0=(C0=(X0=O.currentHourData)==null?void 0:X0.wave)==null?void 0:C0.swell)==null?void 0:E0.height,1))+"m/"+M.toDisplayString(c.roundPrecision((b0=(x0=(T0=O.currentHourData)==null?void 0:T0.wave)==null?void 0:x0.swell)==null?void 0:b0.period,1))+"s",1)])]),M.createElementVNode("div",iz,[M.createElementVNode("div",rz,[nz,M.createElementVNode("div",null,M.toDisplayString((V0=(F0=O.currentHourData)==null?void 0:F0.current)==null?void 0:V0.direction)+" / "+M.toDisplayString(c.roundPrecision((U0=(G0=O.currentHourData)==null?void 0:G0.current)==null?void 0:U0.kts,2))+"kts",1)]),M.createElementVNode("div",dz,[sz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((K0=O.currentHourData)==null?void 0:K0.height,1))+"m",1)])]),M.createElementVNode("div",Wz,[M.createElementVNode("div",lz,[fz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((J0=O.currentHourData)==null?void 0:J0.sst,1))+"°C",1)]),M.createElementVNode("div",Lz,[hz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((Z0=(Y0=O.currentHourData)==null?void 0:Y0.weather)==null?void 0:Z0.visibility,1))+"nm",1)])]),M.createElementVNode("div",Rz,[M.createElementVNode("div",uz,[mz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((M1=($0=O.currentHourData)==null?void 0:$0.weather)==null?void 0:M1.temp,1))+"°C",1)]),M.createElementVNode("div",Bz,[Nz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((p1=(z1=(b1=O.currentHourData)==null?void 0:b1.weather)==null?void 0:z1.precip)==null?void 0:p1.sum3Hours,1))+"mm",1)])])],512),[[M.vShow,!O.showTables]]),M.createElementVNode("div",{class:"more",onClick:b[7]||(b[7]=(...m)=>c.handleMeteoMore&&c.handleMeteoMore(...m))},"More >>")]))])],512)),[[M.vShow,O.showMeteo]])}const wz=k(DM,[["render",Xz],["__scopeId","data-v-d4a8e2e5"]]),Cz={name:"IdmWarZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"war-zone-source",zoneLayer:"war-zone-layer",zoneLabelLayer:"war-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-color":"#f44336","fill-opacity":.4}},this.beforeLayer),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#f44336"}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-1]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ez(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Tz=k(Cz,[["render",Ez]]),xz={name:"IdmGmdssArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"gmdss-area-source",areaLayer:"gmdss-area-layer",areaLabelLayer:"gmdss-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","val"],"AreaI","#EB8996","AreaII","#6F448B","AreaIII","#3E8BD3","AreaIV","#5EBCC4","AreaV","#00AAE7","AreaVI","#9CCE6D","AreaVII","#F4AE00","AreaVIII","#EF9A85","AreaIX","#00AAA7","AreaX","#7AC49F","AreaXI","#DFDFDF","AreaXII","#FFF974","AreaXIII","#EF9A85","AreaXIV","#86A2D1","AreaXV","#EC8972","AreaXVI","#EAC2DA","AreaXVII","#B9C8E7","AreaXVIII","#BBA1C8","AreaXIX","#FAE0BD","AreaXX","#DBECC8","AreaXXI","#D496AF","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-opacity":.8,"text-color":"#000"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Sz(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Dz=k(xz,[["render",Sz]]),Iz={name:"IdmEcaZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"eca-zone-source",zoneLayer:"eca-zone-layer",zoneLabelLayer:"eca-zone-label-layer"}},watch:{zone:{handler(){this.zone?this.handleRender():this.handleClear()}}},methods:{handleRender(){var z;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(z=this.map)==null||z.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#05f324"}}),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-color":"#04c021","line-width":1,"line-opacity":1}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-max-width":16,"text-justify":"left","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function kz(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Pz=k(Iz,[["render",kz]]),e3="",vz={name:"IdmAlertZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"alert-zone-source",polygonLayer:"alert-zone-polygon-layer",polygonLabelLayer:"alert-zone-polygon-label-layer",lineLayer:"alert-zone-line-layer",lineLabelLayer:"alert-zone-line-label-layer",pointLayer:"alert-zone-point-layer",showZone:!1,form:{}}},watch:{zone:{handler(){var z,b;this.zone?(this.handleRender(),(z=this.map)==null||z.on("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick)):(this.handleClear(),(b=this.map)==null||b.off("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick))}}},methods:{handleClick(z){var o;const b=z.features[0],p=(o=this.zone)==null?void 0:o.features.filter(O=>{var c;return O.properties.id===((c=b==null?void 0:b.properties)==null?void 0:c.id)})[0];if(p){this.showZone=!0,this.form={...p.properties};const O=document.getElementById("idm-gl3-zone-info");this.marker?this.marker.setLngLat([z.lngLat.lng,z.lngLat.lat]):this.marker=new f0.Marker(O).setLngLat([z.lngLat.lng,z.lngLat.lat]).setOffset([0,0]).addTo(this.map)}},handleRender(){var z;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(z=this.map)==null||z.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.polygonLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"#d57d02","fill-opacity":.4,"fill-color":"#d57d02"}}),this.map.addLayer({id:this.polygonLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-width":1,"line-color":"#d57d02"}}),this.map.addLayer({id:this.lineLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],paint:{"line-color":"#d57d02","line-width":2}}),this.map.addLayer({id:this.polygonLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],layout:{"symbol-placement":"line-center","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.pointLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08},paint:{"icon-opacity":.8}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.polygonLayer)&&this.map.removeLayer(this.polygonLayer),this.map.getLayer(this.polygonLayer+"-border")&&this.map.removeLayer(this.polygonLayer+"-border"),this.map.getLayer(this.polygonLabelLayer)&&this.map.removeLayer(this.polygonLabelLayer),this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getLayer(this.pointLayer)&&this.map.removeLayer(this.pointLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},_z={id:"idm-gl3-zone-info"},Qz=["innerHTML"];function Hz(z,b,p,o,O,c){var e;return M.withDirectives((M.openBlock(),M.createElementBlock("div",_z,[M.createElementVNode("div",{class:"iconfont close",onClick:b[0]||(b[0]=q=>O.showZone=!1)},""),M.createElementVNode("div",{class:"rich-context",innerHTML:(e=O.form)==null?void 0:e.name},null,8,Qz)],512)),[[M.vShow,O.showZone]])}const jz=k(vz,[["render",Hz]]),A3="",Fz={name:"IdmPort",props:{map:{type:Object},port:{type:Object},beforeLayer:{type:String},forecastModel:{type:String}},emits:["meteoMore"],data(){return{source:"port-source",layer:"port-layer",showPort:!1,form:{},marker:void 0}},computed:{computeLat(){return function(z){return D.LngLatHelper.lat2pretty(z,4).pretty}},computeLng(){return function(z){return D.LngLatHelper.lng2pretty(z,4).pretty}}},watch:{port:{handler(){var z,b;this.port?(this.handleRender(),(z=this.map)==null||z.on("click",[this.layer],this.handleClick)):(this.handleClear(),(b=this.map)==null||b.off("click",[this.layer],this.handleClick))}}},methods:{handleClick(z){var o;const b=z.features[0],p=(o=this.port)==null?void 0:o.features.filter(O=>{var c;return O.properties.id===((c=b==null?void 0:b.properties)==null?void 0:c.id)})[0];if(p){this.showPort=!0,this.form={...p.properties},this.form.lng=p.geometry.coordinates[0],this.form.lat=p.geometry.coordinates[1];const O=document.getElementById("port-info");this.marker?this.marker.setLngLat([z.lngLat.lng,z.lngLat.lat]):this.marker=new f0.Marker(O).setLngLat([z.lngLat.lng,z.lngLat.lat]).setOffset([0,-85]).addTo(this.map)}},handleRender(){var z;this.map?this.port&&(this.map.getSource(this.source)?(z=this.map)==null||z.getSource(this.source).setData(this.port):(this.map.addSource(this.source,{type:"geojson",data:this.port}),this.map.addLayer({id:this.layer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"port","text-anchor":"left","text-field":"{name}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[1,0]},paint:{"text-color":"rgba(0, 0, 0, 0.8)","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.showPort=!1,this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)},handleClickMeteo(z){z.forecastModel=this.forecastModel,this.$emit("meteoMore",z)}}},D0=z=>(M.pushScopeId("data-v-2fc5fc5e"),z=z(),M.popScopeId(),z),Vz={ref:"idmPortInfo",id:"port-info"},Gz={class:"port-box"},Uz={class:"flex-start"},Kz=D0(()=>M.createElementVNode("label",null,"Name : ",-1)),Jz={class:"flex-start"},Yz=D0(()=>M.createElementVNode("label",null,"Position : ",-1)),Zz={class:"flex-start"},$z=D0(()=>M.createElementVNode("label",null,"LoCode : ",-1)),Mp={class:"flex-start",style:{"align-items":"flex-start"}},bp=D0(()=>M.createElementVNode("label",null,"Region : ",-1)),zp={class:"meteo-forecast flex-end"};function pp(z,b,p,o,O,c){return M.withDirectives((M.openBlock(),M.createElementBlock("div",Vz,[M.createElementVNode("div",{class:"close iconfont",onClick:b[0]||(b[0]=e=>O.showPort=!1)},""),M.createElementVNode("div",Gz,[M.createElementVNode("div",Uz,[Kz,M.createElementVNode("span",null,M.toDisplayString(O.form.name),1)]),M.createElementVNode("div",Jz,[Yz,M.createElementVNode("span",null,M.toDisplayString(c.computeLat(O.form.lat))+", "+M.toDisplayString(c.computeLng(O.form.lng)),1)]),M.createElementVNode("div",Zz,[$z,M.createElementVNode("span",null,M.toDisplayString(O.form.loCode||"-"),1)]),M.createElementVNode("div",Mp,[bp,M.createElementVNode("span",null,M.toDisplayString(O.form.zoneName||"-"),1)]),M.createElementVNode("div",zp,[M.createElementVNode("span",{onClick:b[1]||(b[1]=e=>c.handleClickMeteo(O.form))},"Meteo Forecast")])])],512)),[[M.vShow,O.showPort]])}const Op=k(Fz,[["render",pp],["__scopeId","data-v-2fc5fc5e"]]),op={name:"IdmLoadLine",props:{map:{type:Object},line:{type:Object},beforeLayer:{type:String}},data(){return{source:"load-line-source",lineLayer:"load-line-layer",lineLabelLayer:"load-line-label-layer"}},watch:{line:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.line&&(this.map.addSource(this.source,{type:"geojson",data:this.line}),this.map.addLayer({id:this.lineLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.75,"fill-color":["match",["get","val"],"LLGreen","#A0C0C0","LLRed","#F5A39D","LLBlue","#6B94E4","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{lbl} (Length < {shipLength}, {start} - {end})","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function cp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const ep=k(op,[["render",cp]]),Ap={name:"IdmTimezone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"time-zone-source",zoneLayer:"time-zone-layer",zoneLabelLayer:"time-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","offSet"],"-11.5","rgba(255,0,0,0.4)","-11","rgba(0,255,0,0.3)","-10.5","rgba(0,255,0,0.3)","-10","rgba(0,0,255,0.3)","-9.5","rgba(0,0,255,0.3)","-9","rgba(255,0,0,0.4)","-8.5","rgba(255,0,0,0.4)","-8","rgba(0,255,0,0.3)","-7.5","rgba(0,255,0,0.3)","-7","rgba(0,0,255,0.3)","-6.5","rgba(0,0,255,0.3)","-6","rgba(255,0,0,0.4)","-5.5","rgba(255,0,0,0.4)","-5","rgba(0,255,0,0.3)","-4.5","rgba(0,255,0,0.3)","-4","rgba(0,0,255,0.3)","-3.5","rgba(0,0,255,0.3)","-3","rgba(255,0,0,0.4)","-2.5","rgba(255,0,0,0.4)","-2","rgba(0,255,0,0.3)","-1.5","rgba(0,255,0,0.3)","-1","rgba(0,0,255,0.3)","-0.5","rgba(0,0,255,0.3)","+0","rgba(255,0,0,0.4)","+0.5","rgba(255,0,0,0.4)","+1","rgba(0,255,0,0.3)","+1.5","rgba(0,255,0,0.3)","+2","rgba(0,0,255,0.3)","+2.5","rgba(0,0,255,0.3)","+3","rgba(255,0,0,0.4)","+3.5","rgba(255,0,0,0.4)","+4","rgba(0,255,0,0.3)","+4.5","rgba(0,255,0,0.3)","+5","rgba(0,0,255,0.3)","+5.5","rgba(0,0,255,0.3)","+6","rgba(255,0,0,0.4)","+6.5","rgba(255,0,0,0.4)","+7","rgba(0,255,0,0.3)","+7.5","rgba(0,255,0,0.3)","+8","rgba(0,0,255,0.3)","+8.5","rgba(0,0,255,0.3)","+9","rgba(255,0,0,0.4)","+9.5","rgba(255,0,0,0.4)","+10","rgba(0,255,0,0.3)","+10.5","rgba(0,255,0,0.3)","+11","rgba(0,0,255,0.3)","+11.5","rgba(0,0,255,0.3)","rgba(255,0,0,0.4)"]}}),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{offSet}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,1]},paint:{"text-opacity":.8,"text-color":"#fff"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function tp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const ap=k(Ap,[["render",tp]]),qp={name:"IdmVoluntaryReportingArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"vra-source",areaLayer:"vra-layer",areaLabelLayer:"vra-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function ip(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const rp=k(qp,[["render",ip]]),np={name:"IdmSpecialArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"special-area-source",areaLayer:"special-area-layer",areaLabelLayer:"special-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.area.features.forEach(z=>{z.geometry.type==="Polygon"&&z.geometry.coordinates.forEach(b=>D.LngLatHelper.convertToMonotonicLng2(b))}),this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":["match",["get","val"],"DefaultStyle","rgb(0,0,0)","JWCriskArea","rgb(0,0,0)","rgb(0,0,0)"]}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":.4,"line-color":"rgb(0,0,0)"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function dp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const sp=k(np,[["render",dp]]),Wp={name:"IdmTerminator",props:{map:{type:Object},area:{type:Object}},data(){return{source:"terminator-source",layer:"terminator-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.layer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":"rgba(0, 0, 0, 0.4)"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function lp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const fp=k(Wp,[["render",lp]]),t3="",Lp={name:"IdmLatLng",props:{map:{type:Object},show:{type:Boolean},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{lngLat:void 0,source:"idm-lat-lng-source",layer:"idm-lat-lng-layer",labelLayer:"idm-lat-lng-label-layer",right:10}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){var z;this.map&&((z=this.map)==null||z.on("mousemove",this.handleMouseMove))},immediate:!0},toggleVersion:{handler(){var z,b;this.right=(((z=document.getElementsByClassName("legend-bars")[0])==null?void 0:z.clientWidth)||-10)+(((b=document.getElementsByClassName("right-bar")[0])==null?void 0:b.clientWidth)||0)+20},immediate:!0}},methods:{handleBind(){var z,b;this.show?((z=this.map)==null||z.on("zoomend",this.handleZoomEnd),this.handleRender()):(this.handleClear(),(b=this.map)==null||b.off("zoomend",this.handleZoomEnd))},handleMouseMove(z){const b=z.lngLat,p=D.LngLatHelper.lng2pretty(b.lng,2),o=D.LngLatHelper.lat2pretty(b.lat,2);this.lngLat={lng:p,lat:o}},handleComputeLatLngs(){var o;const z=(o=this.map)==null?void 0:o.getZoom();console.log(z);let b=30;z>4?b=10:z>3&&(b=15);const p=[];for(let O=-60;O<90;O+=b)p.push({type:"Feature",geometry:{type:"LineString",coordinates:[[-180,O],[180,O]]}});for(let O=-180;O<180;O+=b)p.push({type:"Feature",geometry:{type:"LineString",coordinates:[[O,-90],[O,90]]}});for(let O=180;O>-180;O-=b)for(let c=-60;c<90;c+=b)p.push({type:"Feature",geometry:{type:"Point",coordinates:[O,c]},properties:{val:`${c>0?c+" N":c===0?c:c*-1+" S"}, ${O>0?O+" E":O*-1+" W"}`}});return p},handleZoomEnd(){var b;const z=this.handleComputeLatLngs();(b=this.map)==null||b.getSource(this.source).setData(X.featureCollection(z))},handleRender(){if(this.map){const z=this.handleComputeLatLngs();this.map.addSource(this.source,{type:"geojson",data:{type:"FeatureCollection",features:z}}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"rgba(0, 0, 0, 0.3)","line-width":1}}),this.map.addLayer({id:this.labelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{val}","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}})}},handleClear(){var z,b,p,o,O,c;(z=this.map)!=null&&z.getLayer(this.layer)&&((b=this.map)==null||b.removeLayer(this.layer)),(p=this.map)!=null&&p.getLayer(this.labelLayer)&&((o=this.map)==null||o.removeLayer(this.labelLayer)),(O=this.map)!=null&&O.getSource(this.source)&&((c=this.map)==null||c.removeSource(this.source))}}},hp=(z=>(M.pushScopeId("data-v-ad66a24c"),z=z(),M.popScopeId(),z))(()=>M.createElementVNode("span",null,", ",-1));function Rp(z,b,p,o,O,c){return O.lngLat?(M.openBlock(),M.createElementBlock("div",{key:0,class:"lat-lng-tip",style:M.normalizeStyle({right:O.right+"px",bottom:p.bottom})},[M.createElementVNode("span",null,M.toDisplayString(O.lngLat.lat.pretty),1),hp,M.createElementVNode("span",null,M.toDisplayString(O.lngLat.lng.pretty),1)],4)):M.createCommentVNode("",!0)}const P0=k(Lp,[["render",Rp],["__scopeId","data-v-ad66a24c"]]),up={name:"IdmMeasure",props:{map:{type:Object},show:{type:Boolean}},data(){return{geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL"}},watch:{show:{handler(){var z,b,p;if(this.show)this.handleBind();else{(z=this.map)==null||z.getCanvas().removeEventListener("keydown",this.handleKeydown),(b=this.map)==null||b.off("mousemove",this.handleMove),(p=this.map)==null||p.off("dblclick",this.handleDblClick),this.map&&(this.map.getCanvas().style.cursor="grab");let o=this.geojson.find(O=>!O.closed);o&&this.handleClear(o,!0),this.geojson=this.geojson.filter(O=>!!O.closed),o=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(o)}},immediate:!0},map:{handler(){this.map&&(this.show?this.handleBind():this.handleUnbind())}}},methods:{handleBind(){var z,b,p,o,O;(z=this.map)==null||z.getCanvas().addEventListener("keydown",this.handleKeydown),(b=this.map)==null||b.on("mousemove",this.handleMove),(p=this.map)==null||p.on("dblclick",this.handleDblClick),(o=this.map)==null||o.on("click",this.handleClick),(O=this.map)==null||O.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair")},handleUnbind(){var z,b,p,o,O;(z=this.map)==null||z.getCanvas().removeEventListener("keydown",this.handleKeydown),(b=this.map)==null||b.off("mousemove",this.handleMove),(p=this.map)==null||p.off("dblclick",this.handleDblClick),(o=this.map)==null||o.off("click",this.handleClick),(O=this.map)==null||O.off("contextmenu",this.handleContextmenu);for(const c of this.geojson)this.handleClear(c,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")},handleKeydown(z){if(z.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const b=this.geojson.at(-1),p=b.features.filter(o=>o.geometry.type==="Point");p.length&&(p.at(-1).properties.mode=this.navigation),this.handleRender(b)}},handleDrag(z){var p,o,O,c,e,q,a,r,A,n;const b=(o=(p=z.target)==null?void 0:p._element)==null?void 0:o.id;if((b==null?void 0:b.split("-").length)===2){const s=this.geojson.filter(W=>W.id===b.split("-")[0])[0];this.pointMarkers[s.id].filter(W=>{var L;return((L=W._element)==null?void 0:L.id)===b})[0].setLngLat([(c=(O=z.target)==null?void 0:O._lngLat)==null?void 0:c.lng,(q=(e=z.target)==null?void 0:e._lngLat)==null?void 0:q.lat]);let R;s.features.forEach((W,L)=>{if(W.geometry.type==="Point"&&W.properties.id==b.split("-")[1]){R=L;return}});const f=s.features.filter(W=>W.geometry.type==="Point");this.handleTmpPointUpdate(s,f[R-1],{lng:(r=(a=z.target)==null?void 0:a._lngLat)==null?void 0:r.lng,lat:(n=(A=z.target)==null?void 0:A._lngLat)==null?void 0:n.lat,properties:f[R].properties},R===f.length-1?void 0:f[R+1])}},handleDragEnd(z){var p,o,O,c,e,q,a,r,A,n;const b=(o=(p=z.target)==null?void 0:p._element)==null?void 0:o.id;if((b==null?void 0:b.split("-").length)===2){const s=this.geojson.filter(f=>f.id===b.split("-")[0])[0];this.pointMarkers[s.id].filter(f=>{var W;return((W=f._element)==null?void 0:W.id)===b})[0].setLngLat([(c=(O=z.target)==null?void 0:O._lngLat)==null?void 0:c.lng,(q=(e=z.target)==null?void 0:e._lngLat)==null?void 0:q.lat]);const R=s.features.filter(f=>f.geometry.type==="Point"&&f.properties.id==b.split("-")[1])[0];R.geometry.coordinates=[(r=(a=z.target)==null?void 0:a._lngLat)==null?void 0:r.lng,(n=(A=z.target)==null?void 0:A._lngLat)==null?void 0:n.lat],s.features=s.features.filter(f=>f.geometry.type==="Point"),this.handlePointUpdate(s)}},handleContextmenu(z){var p,o,O,c;z.preventDefault(),(p=this.contextmenu)==null||p.remove();const b=(c=(O=(o=z.originalEvent)==null?void 0:o.target)==null?void 0:O.parentElement)==null?void 0:c.id;if((b==null?void 0:b.split("-").length)===2){const q=this.geojson.filter(a=>a.id===b.split("-")[0])[0].features.filter(a=>a.geometry.type==="Point");if(q.length>2&&q.filter(r=>r.properties.id===(b==null?void 0:b.split("-")[1]))[0]){const r=document.createElement("div");r.className="point-contextmenu-marker",r.innerHTML=`<span id="del-${b}" class="del-point">Del</span>`,this.contextmenu=new f0.Marker(r).setOffset([24,0]).setLngLat([z.lngLat.lng,z.lngLat.lat]).addTo(this.map)}}},handleClick(z){var p,o,O,c,e,q;(p=this.contextmenu)==null||p.remove();const b=z.originalEvent.target.className;if(b==="marker-close"){const a=(O=(o=z.originalEvent)==null?void 0:o.srcElement)==null?void 0:O.id,r=this.geojson.filter(A=>A.id===a)[0];r&&this.handleClear(r,!0),this.geojson=this.geojson.filter(A=>A.id!==a),!this.show&&!((c=this.geojson)!=null&&c.some(A=>A.closed))&&this.handleUnbind()}else if(b==="del-point"){const a=(q=(e=z.originalEvent.target.id)==null?void 0:e.replace("del-",""))==null?void 0:q.split("-"),r=this.geojson.filter(A=>A.id===a[0])[0];r.features=r.features.filter(A=>A.geometry.type==="Point"&&A.properties.id!==a[1]),this.handlePointUpdate(r)}else if(b!=="marker-label"&&this.show){let a=this.geojson.at(-1);a||(a=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(a)),a.features=a.features.filter(A=>A.geometry.type==="Point");const r=X.feature({type:"Point",coordinates:[z.lngLat.lng,z.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation});a.features.push(r),this.handlePointUpdate(a)}},handlePointUpdate(z){const b=z.features;if(b.length>1){let p=0;const o=[];for(let O=1;O<b.length;O++){const c=b[O-1],e=b[O],q=c.properties,a={lng:c.geometry.coordinates[0],lat:c.geometry.coordinates[1]},r={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},A=D.LaneHelper.calculateDistance(a,r,q.mode==="RL",2),n=D.LaneHelper.calculateBearing(a,r,q.mode==="RL",2);p=D.LngLatHelper.roundPrecision(p+A,2);let s;q.mode==="RL"?s=D.LngLatHelper.convertToMonotonicLng([a,r]):s=D.LngLatHelper.convertToMonotonicLng(D.LaneHelper.interpolateCoordinates(a,r,200));const d=X.lineString(s.map(R=>[R.lng,R.lat]));d.properties.dist=A,d.properties.bearing=n,d.properties.total=p,o.push(d)}b.push(...o),z.total=p}return this.handleRender(z),z},handleTmpPointUpdate(z,b,p,o){const O=X.featureCollection([]);let c,e;if(b){const a=b.properties,r={lng:b.geometry.coordinates[0],lat:b.geometry.coordinates[1]},A={lng:p.lng,lat:p.lat};c=D.LaneHelper.calculateDistance(r,A,a.mode==="RL",2),e=D.LaneHelper.calculateBearing(r,A,a.mode==="RL",2);let n;a.mode==="RL"?n=D.LngLatHelper.convertToMonotonicLng([r,A]):n=D.LngLatHelper.convertToMonotonicLng(D.LaneHelper.interpolateCoordinates(r,A,200));const s=X.lineString(n.map(d=>[d.lng,d.lat]));s.properties.dist=c,s.properties.bearing=e,O.features.push(s)}if(o){const a=p.properties,r=p,A={lng:o.geometry.coordinates[0],lat:o.geometry.coordinates[1]};c=D.LaneHelper.calculateDistance(r,A,a.mode==="RL",2),e=D.LaneHelper.calculateBearing(r,A,a.mode==="RL",2);let n;a.mode==="RL"?n=D.LngLatHelper.convertToMonotonicLng([r,A]):n=D.LngLatHelper.convertToMonotonicLng(D.LaneHelper.interpolateCoordinates(r,A,200));const s=X.lineString(n.map(d=>[d.lng,d.lat]));s.properties.dist=c,s.properties.bearing=e,O.features.push(s)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(O):this.map.addSource(this.tmpSource,{type:"geojson",data:O}),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":"#F44336","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":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});let q;if(o?q='<div class="marker-label">Drag and drop</div>':q=`<div class="marker-label">Total distance: <b>${D.LngLatHelper.roundPrecision((z.total??0)+c,2)}</b>nm, bearing: <b>${e}</b>°</div><div class="marker-label">${this.navigation==="RL"?"RL":"GC"} mode, using 'Shift' to switch</div><div class="marker-label">Double click to end</div>`,this.tipMarker)this.tipMarker._element.innerHTML=q,this.tipMarker.setLngLat([p.lng,p.lat]);else{const a=document.createElement("div");a.className="tip-marker",a.innerHTML=q,this.tipMarker=new f0.Marker(a).setOffset([140,0]).setLngLat([p.lng,p.lat]).addTo(this.map)}},handleMove(z){this.map.getCanvas().style.cursor="crosshair";let b=this.geojson.at(-1);b||(b=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(b));const p=b.features.filter(o=>o.geometry.type==="Point");p!=null&&p.length&&this.handleTmpPointUpdate(b,p.at(-1),{lng:z.lngLat.lng,lat:z.lngLat.lat})},handleDblClick(z){z.preventDefault();let b=this.geojson.at(-1);b.closed=!0,this.handleRender(b),b=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(b)},handleRender(z){var b;if((b=z==null?void 0:z.features)!=null&&b.length){const p=`${z.id}-${this.source}`,o=`${z.id}-${this.layer}`,O=`${z.id}-${this.labelLayer}`;this.map.getSource(p)?this.map.getSource(p).setData(z):this.map.addSource(p,{type:"geojson",data:z}),this.handleClear(z,!1),this.map.addLayer({id:o,type:"line",source:p,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2}}),this.map.addLayer({id:O,type:"symbol",source:p,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist}nm,{bearing}°","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});const c=z.features.filter(e=>e.geometry.type==="Point");for(const e of c){const q=document.createElement("div");q.id=`${z.id}-${e.properties.id}`,q.className=`${z.closed?"point-marker closed":"point-marker"}`,q.innerHTML='<div class="marker-circle"></div>';const a=new f0.Marker({element:q,draggable:!0,contextmenu:!0}).setLngLat(e.geometry.coordinates).addTo(this.map);a.on("drag",this.handleDrag),a.on("dragend",this.handleDragEnd),this.pointMarkers[z.id]?this.pointMarkers[z.id].push(a):this.pointMarkers[z.id]=[a]}if(z.closed){const e=c.at(-1),a=z.features.filter(A=>A.geometry.type==="LineString").at(-1),r=document.createElement("div");r.className="point-summary-marker",r.innerHTML=`<div id="${z.id}" class="marker-close">×</div><div class="marker-label">Tol: ${a.properties.total}nm</div>`,this.closeMarkers[z.id]=new f0.Marker(r).setOffset([60,0]).setLngLat(e.geometry.coordinates).addTo(this.map)}}},handleClear(z,b=!0){var c,e,q,a,r,A,n,s,d;const p=`${z.id}-${this.source}`,o=`${z.id}-${this.layer}`,O=`${z.id}-${this.labelLayer}`;(c=this.map)!=null&&c.getLayer(o)&&this.map.removeLayer(o),(e=this.map)!=null&&e.getLayer(O)&&this.map.removeLayer(O),(q=this.map)!=null&&q.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(a=this.map)!=null&&a.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(r=this.closeMarkers[z.id])==null||r.remove(),this.closeMarkers[z.id]=void 0,(A=this.pointMarkers[z.id])==null||A.forEach(R=>{R==null||R.remove()}),this.pointMarkers[z.id]=[],(n=this.tipMarker)==null||n.remove(),this.tipMarker=void 0,b&&((s=this.map)!=null&&s.getSource(p))&&this.map.removeSource(p),b&&((d=this.map)!=null&&d.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}};function mp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Bp=k(up,[["render",mp]]),q3="",Np={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},beforeLayer:{type:String,default:"grayland"},bottom:{type:String,default:"280px"},token:{type:String,default:""},toggleVersion:{type:Number},permission:{type:Number}},emits:["enc"],data(){return{helper:Z.CompanyHelper,vendor:this.$attrs.permission&Z.CompanyHelper.LEVEL.Supper?"hi":"i4",right:10}},watch:{vendor:{handler(){this.$emit("enc",this.vendor)},immediate:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{}},H0=z=>(M.pushScopeId("data-v-7301123d"),z=z(),M.popScopeId(),z),gp={key:0},yp={class:"bar-item"},Xp=[H0(()=>M.createElementVNode("span",{class:"iconfont"},"HI",-1))],wp=[H0(()=>M.createElementVNode("span",{class:"iconfont"},"I4",-1))];function Cp(z,b,p,o,O,c){const e=M.resolveComponent("ElTooltip");return p.enabled&&p.permission&O.helper.LEVEL.Supper?(M.openBlock(),M.createElementBlock("div",gp,[M.createElementVNode("div",{class:"menu-bar-box",style:M.normalizeStyle({position:"absolute",right:O.right+"px",bottom:p.bottom})},[M.createElementVNode("div",yp,[M.createVNode(e,{placement:"left",effect:"light",content:"Hifleet","show-after":1e3},{default:M.withCtx(()=>[M.createElementVNode("div",{class:M.normalizeClass(O.vendor==="hi"?"menu-icon active":"menu-icon"),onClick:b[0]||(b[0]=q=>O.vendor="hi")},Xp,2)]),_:1}),M.createVNode(e,{placement:"left",effect:"light",content:"I4insight","show-after":1e3},{default:M.withCtx(()=>[M.createElementVNode("div",{class:M.normalizeClass(O.vendor==="i4"?"menu-icon active":"menu-icon"),onClick:b[1]||(b[1]=q=>O.vendor="i4")},wp,2)]),_:1})])],4)])):M.createCommentVNode("",!0)}const Ep=k(Np,[["render",Cp],["__scopeId","data-v-7301123d"]]),n3="",Tp={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},weatherLayers:{type:Object,default:()=>({})},zoom:{type:Number,default:3},left:{type:String,default:"10px"},bottom:{type:String,default:"64px"},token:{type:String,default:""}},data(){return{layer:"world-12nm-v4-20231025"}},watch:{enabled:{handler(){this.enabled?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleRender(){var z;this.map?(console.log(this.map.style._layers),(z=this.map)!=null&&z.getLayer(this.layer)&&(this.map.setLayoutProperty(this.layer,"visibility","visible"),this.map.setPaintProperty(this.layer,"line-color","rgb(210,54,83)"),this.map.setPaintProperty(this.layer,"line-width",2))):setTimeout(()=>{this.handleRender()},500)},handleClear(){var z;(z=this.map)!=null&&z.getLayer(this.layer)&&this.map.setLayoutProperty(this.layer,"visibility","none")}}};function xp(z,b,p,o,O,c){return null}const Sp=k(Tp,[["render",xp]]),d3="",Dp={name:"IdmGLV2",components:{IdmGlLayer:a2,IdmWindBarb:n2,IdmWindParticle:f2,IdmCurrents:u2,IdmCurrentParticle:y2,IdmSigWave:C2,IdmSwell:x2,IdmPrmsl:I2,IdmIceberg:v2,IdmTropicals:k0,IdmPrecip3h:iM,IdmVisibility:WM,IdmWaterTemp:RM,IdmTemp:gM,IdmArctic:EM,IdmWarZone:Tz,IdmGmdssArea:Dz,IdmEcaZone:Pz,IdmAlertZone:jz,IdmPort:Op,IdmLoadLine:ep,IdmTimezone:ap,IdmVRA:rp,IdmSpecialArea:sp,IdmTerminator:fp,IdmLatLng:P0,IdmMeasure:Bp,IdmPoint:wz,IdmENC:Ep,IdmWorld12nm:Sp},props:{map:{type:Object,default:void 0},token:{type:String},ts:{type:String},beforeLayer:{type:String,default:""},toggleVersion:{type:Number},forecastModel:{type:String}},emits:["toggleVersion","activeWeatherLayers","showMeteoPoint"],data(){return{weatherLayers:{},activeWeatherLayers:[],weatherWeight:0,otherLayers:{},otherWeight:0,showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,meteo:void 0,source:"",gateway:"https://cbe.idmwx.com",mapProjection:"mercator",zoom:6,viewport:void 0,particleFactor:void 0,showRampColor:!1,activeWindLayer:!1,showWindFeather:!1,showWindParticle:!1,showCurrentIsoband:!1,showCurrentParticle:!1,enc:"",defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg",helper:new Q0}},watch:{ts:{handler(z,b){z&&b&&I(z).utc().format("yyyy-MM-DD HH")!==I(b).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.handleDateChange({tropicals:!1})})},immediate:!0},map:{handler(){this.map&&(this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.viewport=new S0(this.map),this.handleRampColorInitial())},immediate:!0},enc:{handler(z,b){var p,o,O,c,e,q,a,r;z?((o=(p=this.map)==null?void 0:p.getLayer(z))==null||o.setLayoutProperty("visibility","visible"),(c=(O=this.map)==null?void 0:O.getLayer(b))==null||c.setLayoutProperty("visibility","none")):((q=(e=this.map)==null?void 0:e.getLayer("i4"))==null||q.setLayoutProperty("visibility","none"),(r=(a=this.map)==null?void 0:a.getLayer("hi"))==null||r.setLayoutProperty("visibility","none"))}},activeWeatherLayers:{handler(){var z,b,p,o,O,c,e,q,a,r,A,n,s,d;if(!this.map)return!1;this.activeWeatherLayers.length>0?((b=(z=this.map)==null?void 0:z.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||b.setLayoutProperty("visibility","visible"),(o=this.map)!=null&&o.getLayer((p=this.viewport)==null?void 0:p.rampColorLayer)&&((O=this.map)!=null&&O.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((e=this.map)==null||e.moveLayer((c=this.viewport)==null?void 0:c.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(a=this.map)!=null&&a.getLayer((q=this.viewport)==null?void 0:q.particleLayer)&&((r=this.map)!=null&&r.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((n=this.map)==null||n.moveLayer((A=this.viewport)==null?void 0:A.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id))):(d=(s=this.map)==null?void 0:s.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||d.setLayoutProperty("visibility","none"),this.$emit("activeWeatherLayers",this.activeWeatherLayers)},immediate:!0},showPoint:{handler(){this.$emit("showMeteoPoint",this.showPoint)}}},methods:{async fetchWeatherLayers(z={tropicals:!1}){var O,c,e,q,a,r,A,n;const b=new Date().valueOf();let p=0,o=0;if(this.map){const s=((O=this.map)==null?void 0:O.getZoom())+1,d=(c=this.map)==null?void 0:c.getBounds(),R=`${d._sw.lng},${d._sw.lat},${d._ne.lng},${d._ne.lat}`;if(this.particleFactor){const f=Z.LayerHelper.WEATHER_LAYERS.find(W=>{var L;return((L=W.peer)==null?void 0:L.weight)===this.particleFactor.weight});this.particleFactor.particle?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,W;if(z.tropicals||this.weatherWeight&256&&(W=this.weatherLayers.tropicals,W&&(f-=256,W.version=Math.random()+1)),f>0){const L=await l0.get(`${this.gateway}/api/arc/weather/layers/links?l=${f}&v=${this.source}&z=${s}&bbox=${R}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(o=new Date().valueOf()-(b+p),console.log("weather links elapsed: ",o,", total: ",p+=o),((e=L==null?void 0:L.data)==null?void 0:e.code)===0){const h=(q=L==null?void 0:L.data)==null?void 0:q.data,N=[];for(const B in h)B==="ice-edge"&&(h[B]="https://idm-hz.oss-cn-hangzhou.aliyuncs.com/test/sea_ice_contours.geojson"),B!=="tropicals"&&N.push(l0.get(h[B],{headers:{Authorization:this.token||this.defaultMeteoToken,key:B},responseType:/\.(jpg|png)$/.test(h[B])?"blob":"json"}).catch(v=>{console.log(`[${B}] fetch layer error: ${v}`)}));const w=await Promise.all(N);this.weatherLayers={},w.map(B=>{var F,U,K,p0;const v=((F=B==null?void 0:B.data)==null?void 0:F.data)||(B==null?void 0:B.data),H=(K=(U=B==null?void 0:B.config)==null?void 0:U.headers)==null?void 0:K.key;H&&v&&(this.weatherLayers[H]={raw:v,type:((p0=B==null?void 0:B.config)==null?void 0:p0.responseType)==="blob"?"image":"json",etime:this.ts})}),h.tropicals&&l0.get(h.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"}}).then(B=>{var F,U,K;const v=D.TropicalHelper.convert2Geojson(((F=B==null?void 0:B.data)==null?void 0:F.data)||(B==null?void 0:B.data)),H=(K=(U=B==null?void 0:B.config)==null?void 0:U.headers)==null?void 0:K.key;this.weatherLayers[H]={data:v,active:!0,cached:!1,type:"json",etime:this.ts,version:Math.random()+1}})}if(o=new Date().valueOf()-(b+p),console.log("weather layers elapsed: ",o,", total: ",p+=o),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const h=(a=this.weatherLayers["swell-direction"])==null?void 0:a.raw,N=(r=this.weatherLayers["swell-height"])==null?void 0:r.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:h,height:{raw:N},etime:this.ts}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const h=(A=this.weatherLayers["current-direction"])==null?void 0:A.raw,N=(n=this.weatherLayers["current-speed"])==null?void 0:n.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:h,speed:{raw:N},etime:this.ts}}}W&&(W.etime=this.ts,W.cached=!0,this.weatherLayers.tropicals=W)}this.handleWeatherLayerToggle(),this.handleDragEndWithZoom4Json()}this.$emit("toggleVersion",Math.random())},async fetchOtherLayers(z={all:!1,dayNight:!1,enc:!1,world12nm:!1}){var b,p,o,O;if(this.map){let c=this.otherWeight;if(c){let e=!1,q=!1;if(this.otherWeight&2048&&(c=this.otherWeight-2048,e=!0),this.otherWeight&8192&&(c=c-8192,q=!0),c){if(z.all){const a=await l0.get(`${this.gateway}/api/arc/other/layers/links?l=${c}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((b=a==null?void 0:a.data)==null?void 0:b.code)===0){const r=(p=a==null?void 0:a.data)==null?void 0:p.data,A=[];for(const s in r)A.push(l0.get(r[s],{headers:{Authorization:this.token||this.defaultMeteoToken,key:s}}));const n=await Promise.all(A);this.otherLayers={enc:e,world12nm:q},n.map(s=>{var f,W,L;const d=((f=s==null?void 0:s.data)==null?void 0:f.data)||(s==null?void 0:s.data),R=(L=(W=s==null?void 0:s.config)==null?void 0:W.headers)==null?void 0:L.key;this.otherLayers[R]=d})}}else if(z.dayNight&&c&1024){const a=await l0.get(`${this.gateway}/api/arc/other/layers/links?l=1024&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((o=a==null?void 0:a.data)==null?void 0:o.code)===0){const r=(O=a==null?void 0:a.data)==null?void 0:O.data,A=[];for(const s in r)A.push(l0.get(r[s],{headers:{Authorization:this.token||this.defaultMeteoToken,key:s}}));(await Promise.all(A)).map(s=>{var f,W,L;const d=((f=s==null?void 0:s.data)==null?void 0:f.data)||(s==null?void 0:s.data),R=(L=(W=s==null?void 0:s.config)==null?void 0:W.headers)==null?void 0:L.key;this.otherLayers[R]=d})}}}else this.otherLayers={enc:e,world12nm:q}}else this.otherLayers={};this.handleBeforeLayerToggle()}},handleRampColorState(){var z;if(this.showRampColor=!1,this.showWindParticle=!1,this.showCurrentParticle=!1,(z=this.particleFactor)!=null&&z.particle)this.showRampColor=!0,this.particleFactor.key==="wind"&&(this.showWindParticle=!0),this.particleFactor.key==="current"&&(this.showCurrentParticle=!0);else for(const b of this.activeWeatherLayers)["png","jpg"].includes(b.type)&&(this.showRampColor=!0);this.activeWindLayer=!!this.activeWeatherLayers.find(b=>b.key==="wind"),this.$refs.layer&&(this.$refs.layer.activeWeatherLayers=this.activeWeatherLayers)},handleRampColorInitial(){var z,b,p,o,O,c,e,q,a,r,A,n;this.viewport.map.getSource((z=this.viewport)==null?void 0:z.rampColorSource)||this.viewport.map.addSource((b=this.viewport)==null?void 0:b.rampColorSource,{type:"canvas",canvas:(p=this.viewport)==null?void 0:p.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((o=this.viewport)==null?void 0:o.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(O=this.viewport)==null?void 0:O.rampColorLayer,source:(c=this.viewport)==null?void 0:c.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((e=this.viewport)==null?void 0:e.particleSource)||this.viewport.map.addSource((q=this.viewport)==null?void 0:q.particleSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(A=this.viewport)==null?void 0:A.particleLayer,source:(n=this.viewport)==null?void 0:n.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDragEndWithZoom4Json(){var r,A,n,s;const z=new Date().valueOf();let b=0,p=0;const o=(r=this.map)==null?void 0:r.getBounds(),O=this.map.getZoom(),c=D.LngLatHelper.convertToStdLng(o._sw.lng),e=D.LngLatHelper.convertToStdLng(o._ne.lng),q=Math.floor(o._sw.lat),a=Math.ceil(o._ne.lat);for(const d in this.weatherLayers)if(this.weatherLayers[d].active&&this.weatherLayers[d].type==="json"){this.weatherLayers[d].active=!1,this.weatherLayers[d].version=Math.random()+1;let R=[];if(["swell","current"].includes(d)){const f=((A=this.weatherLayers[d])==null?void 0:A.direction)||{};for(const W in f)if(W>q&&W<a&&(!(O<=this.zoom)||W%(O<this.zoom/2?5:3)===0)){const L=f[W].lng;c>e?L.forEach((h,N)=>{var w;if((h>=c&&h<=180||h>=-180&&h<=e)&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const B=X.point([h,W],{val:f[W].val[N],spd:(w=f[W].spd)==null?void 0:w[N]});R.push(B)}}):L.forEach((h,N)=>{var w;if(h>=c&&h<=e&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const B=X.point([h,W],{val:f[W].val[N],spd:(w=f[W].spd)==null?void 0:w[N]});R.push(B)}})}if(p=new Date().valueOf()-(z+b),console.log("direction elapsed: ",p,", total: ",b+=p),d==="swell"){const W=this.weatherLayers[d].height;if(W){if(!W.data){const L=[];for(const h in(n=W.raw)==null?void 0:n.LineString){const N=W.raw.LineString[h];for(const w of N)L.push(X.lineString(w,{val:Number(h)}));W.data=X.featureCollection(L)}}if(W.data){const L=this.handleBboxClip(W.data,o);R=R.concat(L)}p=new Date().valueOf()-(z+b),console.log("height elapsed: ",p,", total: ",b+=p)}}if(d==="current"){const W=this.weatherLayers[d].speed;if(W){if(!W.data){const h=[];for(const N in(s=W.raw)==null?void 0:s.Polygon){const w=W.raw.Polygon[N];for(const B of w)h.push(X.polygon(B,{val:Number(N)}))}W.data=X.featureCollection(h)}const L=O<this.zoom?W.data.features.filter(h=>h.properties.val>.5):W.data.features;R=R.concat(L),p=new Date().valueOf()-(z+b),console.log("speed elapsed: ",p,", total: ",b+=p)}}}else if(d==="wind"){const f=this.weatherLayers.wind.raw;for(const W in f)if(W>q&&W<a&&(!(O<=this.zoom)||W%(O<this.zoom/2?5:3)===0)){const L=f[W].lng;c>e?L.forEach((h,N)=>{if((h>=c&&h<=180||h>=-180&&h<=e)&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const w=X.point([h,W],{val:f[W].val[N],spd:f[W].spd[N]});R.push(w)}}):L.forEach((h,N)=>{if(h>=c&&h<=e&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const w=X.point([h,W],{val:f[W].val[N],spd:f[W].spd[N]});R.push(w)}})}p=new Date().valueOf()-(z+b),console.log("wind barb elapsed: ",p,", total: ",b+=p)}else if(d==="sig-wave-height"){if(this.weatherLayers[d].data)R=this.weatherLayers[d].data;else{const f=this.weatherLayers[d].raw;if(f){const W=[];for(const L in f.Polygon){const h=f.Polygon[L];for(const N of h)W.push(X.polygon(N,{val:Number(L)}))}for(const L in f.Point){const h=f.Point[L];for(const N of h)W.push(...X.points(N,{val:Number(L)}).features)}R=R.concat(W)}}p=new Date().valueOf()-(z+b),console.log("sigWave elapsed: ",p,", total: ",b+=p)}else if(d==="prmsl"){if(this.weatherLayers[d].data)R=this.weatherLayers[d].data;else{const f=this.weatherLayers[d].raw;if(f){const W=[];for(const L in f.LineString){const h=f.LineString[L];for(const N of h)W.push(X.lineString(N,{val:Number(L)}))}for(const L in f.Point)f.Point[L].lng.forEach((h,N)=>{h=D.LngLatHelper.convertToStdLng(h),W.push(X.point([h,L],{val:f.Point[L].val[N],type:f.Point[L].type[N]}))});R=R.concat(W)}}p=new Date().valueOf()-(z+b),console.log("prmsl elapsed: ",p,", total: ",b+=p)}else if(d==="arctic"||d==="iceberg"){if(this.weatherLayers[d].data)R=this.weatherLayers[d].data;else{const f=this.weatherLayers[d].raw;if(f){const W=[];for(const L in f.LineString){const h=f.LineString[L];for(const N of h)W.push(X.lineString(N,{val:Number(L)}))}R=R.concat(W)}}p=new Date().valueOf()-(z+b)}console.log(d," elapsed: ",p,", total: ",b+=p),R.length&&(this.weatherLayers[d].data=X.featureCollection(R)),this.weatherLayers[d].active=!0,this.weatherLayers[d].version=Math.random()+1}},handleDragEndWithZoom4Image(){for(const z in this.weatherLayers)this.weatherLayers[z].active&&this.weatherLayers[z].type==="image"&&(this.weatherLayers[z].active=!0,this.weatherLayers[z].version=Math.random()+1)},handleBboxClip(z,b){const p=[],o=D.LngLatHelper.convertToStdLng(b._sw.lng),O=D.LngLatHelper.convertToStdLng(b._ne.lng);return z.features.forEach(c=>{if(c.geometry.type!=="Point")if(o>O){let e=[o,b._sw.lat,180,b._ne.lat],q=X.bboxClip(c,e);q.geometry.coordinates.length&&p.push(q),e=[-180,b._sw.lat,O,b._ne.lat],q=X.bboxClip(c,e),q.geometry.coordinates.length&&p.push(q)}else{const e=[o,b._sw.lat,O,b._ne.lat],q=X.bboxClip(c,e);q.geometry.coordinates.length&&p.push(q)}else p.push(c)}),p},handleWeatherLayerToggle(){var z;for(const b in this.weatherLayers)this.weatherLayers[b].active=!1,this.weatherLayers[b].version=Math.random()+1;for(const b of this.activeWeatherLayers){let p=b.key;p.indexOf("swell")>-1?p="swell":p.indexOf("current")>-1&&(p="current"),this.weatherLayers[p]&&(this.weatherLayers[p].active=!0,this.weatherLayers[p].version=Math.random()+1,((z=this.particleFactor)==null?void 0:z.key)===p&&this.weatherLayers[`${p}-particle`]&&(this.weatherLayers[`${p}-particle`].active=this.particleFactor.particle))}this.handleBeforeLayerToggle()},handleBeforeLayerToggle(){var z,b,p,o,O,c,e,q,a,r,A,n,s,d;(z=this.map)!=null&&z.getLayer(this.beforeLayer)&&((b=this.activeWeatherLayers)!=null&&b.length||(p=this.otherLayers)!=null&&p["war-zones"]||(o=this.otherLayers)!=null&&o["gmdss-areas"]||(O=this.otherLayers)!=null&&O["load-lines"]||(c=this.otherLayers)!=null&&c["high-risk-area"]||(e=this.otherLayers)!=null&&e["time-zones"]||(q=this.otherLayers)!=null&&q.pirates||(a=this.otherLayers)!=null&&a.ports||(r=this.otherLayers)!=null&&r.enc||(A=this.otherLayers)!=null&&A.world12nm||(n=this.otherLayers)!=null&&n["voluntary-reporting-area"]||(s=this.otherLayers)!=null&&s["eca-zones"]||(d=this.otherLayers)!=null&&d["special-area"])&&this.map.setLayoutProperty(this.beforeLayer,"visibility","visible")},handleDateChange(z={tropicals:!1}){this.fetchWeatherLayers(z),this.fetchOtherLayers({dayNight:!0})},handleWeatherLayerChange(z,b){this.showWindParticle=!1,this.showCurrentParticle=!1,this.map?setTimeout(()=>{this.activeWeatherLayers=JSON.parse(JSON.stringify(z));const p=this.activeWeatherLayers.some(c=>{var e;return["wind","current"].includes(c.key)&&(!((e=Object.keys(c))!=null&&e.some(q=>q==="particle"))||!!c.particle)}),o=this.activeWeatherLayers.some(c=>["png","jpg"].includes(c.type));p&&!o?(this.activeWeatherLayers.forEach(c=>{c.key==="wind"&&c.particle&&(this.particleFactor=c,this.showWindParticle=!0),c.key==="current"&&c.particle&&(this.particleFactor=c,this.showCurrentParticle=!0)}),this.particleFactor.particle=!0):o&&this.particleFactor&&(this.particleFactor.particle=!1);const O=z==null?void 0:z.reduce((c,e)=>c+(c&(e==null?void 0:e.weight)?0:e==null?void 0:e.weight),0);this.weatherWeight!==O||this.source!==b?(this.source=b,this.weatherWeight=O,this.fetchWeatherLayers({tropicals:!1})):this.handleWeatherLayerToggle()}):setTimeout(()=>{this.handleWeatherLayerChange(z,b)},500)},handleOtherLayerChange(z){if(!this.map)setTimeout(()=>{this.handleOtherLayerChange(z)},500);else{const b=z==null?void 0:z.reduce((p,o)=>p+(o==null?void 0:o.weight),0);z.find(p=>p.key==="enc")?this.enc="i4":this.enc="",this.otherWeight!=b&&(this.otherWeight=b,this.fetchOtherLayers({all:!0}))}},handle3dToggle(z){var b,p,o,O,c,e,q,a,r,A,n,s,d,R,f,W,L,h,N,w;z?(this.map.setProjection("globe"),this.mapProjection="globe",(p=this.map)!=null&&p.getLayer((b=this.viewport)==null?void 0:b.rampColorLayer)&&((o=this.map)!=null&&o.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((c=this.map)==null||c.moveLayer((O=this.viewport)==null?void 0:O.rampColorLayer,this.helper.mapboxCustomer.layers.water.id)),(q=this.map)!=null&&q.getLayer((e=this.viewport)==null?void 0:e.particleLayer)&&((a=this.map)!=null&&a.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((A=this.map)==null||A.moveLayer((r=this.viewport)==null?void 0:r.particleLayer,this.helper.mapboxCustomer.layers.water.id)),this.map.off("zoomend",this.handleDragEndWithZoom4Json),this.map.off("dragend",this.handleDragEndWithZoom4Json),this.map.off("move",this.handleDragEndWithZoom4Image)):(this.map.setProjection("mercator"),this.mapProjection="mercator",this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.handleDragEndWithZoom4Image(),this.handleDragEndWithZoom4Json(),(s=this.map)!=null&&s.getLayer((n=this.viewport)==null?void 0:n.rampColorLayer)&&((d=this.map)!=null&&d.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((f=this.map)==null||f.moveLayer((R=this.viewport)==null?void 0:R.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(L=this.map)!=null&&L.getLayer((W=this.viewport)==null?void 0:W.particleLayer)&&((h=this.map)!=null&&h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((w=this.map)==null||w.moveLayer((N=this.viewport)==null?void 0:N.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)))},handleParticle(z){this.particleFactor=z,this.weatherLayers[z.key]&&(this.weatherLayers[z.key].particle=z.particle),this.activeWeatherLayers.map(o=>{var O;return o.key===z.key?o.particle=z.particle:(O=Object.keys(o))!=null&&O.some(c=>c==="particle")&&(o.particle=!1),o});let b=localStorage.getItem("activeWeatherLayersCache");const p=JSON.parse(b)||[];p==null||p.forEach(o=>{var O;o.key===z.key?o.particle=z.particle:(O=Object.keys(o))!=null&&O.some(c=>c==="particle")&&(o.particle=!1)}),localStorage.setItem("activeWeatherLayersCache",JSON.stringify(p)),this.fetchWeatherLayers({tropicals:!1})},handleToggleVersion(){this.$emit("toggleVersion",Math.random())}}},Ip={key:0,ref:"mapGlHome",className:"map-gl-home"};function kp(z,b,p,o,O,c){var o0,c0,W0,e0,T,V,M0,C,G,A0,t0,i0,Y,t,i,l,u,y,E,Q,S,_,X0,C0,E0,T0,x0;const e=M.resolveComponent("IdmGlLayer"),q=M.resolveComponent("IdmENC"),a=M.resolveComponent("IdmWorld12nm"),r=M.resolveComponent("IdmSigWave"),A=M.resolveComponent("IdmSwell"),n=M.resolveComponent("IdmPrmsl"),s=M.resolveComponent("IdmIceberg"),d=M.resolveComponent("IdmTropicals"),R=M.resolveComponent("IdmCurrents"),f=M.resolveComponent("IdmCurrentParticle"),W=M.resolveComponent("IdmWindBarb"),L=M.resolveComponent("IdmWindParticle"),h=M.resolveComponent("IdmPrecip3h"),N=M.resolveComponent("IdmVisibility"),w=M.resolveComponent("IdmWaterTemp"),B=M.resolveComponent("IdmTemp"),v=M.resolveComponent("IdmArctic"),H=M.resolveComponent("IdmWarZone"),F=M.resolveComponent("IdmGmdssArea"),U=M.resolveComponent("IdmEcaZone"),K=M.resolveComponent("IdmAlertZone"),p0=M.resolveComponent("IdmPort"),r0=M.resolveComponent("IdmLoadLine"),n0=M.resolveComponent("IdmTimezone"),O0=M.resolveComponent("IdmVRA"),a0=M.resolveComponent("IdmSpecialArea"),J=M.resolveComponent("IdmTerminator"),d0=M.resolveComponent("IdmLatLng"),s0=M.resolveComponent("IdmMeasure"),q0=M.resolveComponent("IdmPoint");return p.map?(M.openBlock(),M.createElementBlock("div",Ip,[M.createVNode(e,M.mergeProps({ref:"layer",map:p.map,"toggle-version":p.toggleVersion,"map-projection":O.mapProjection,showWindFeather:O.showWindFeather,showWindParticle:O.showWindParticle,showCurrentIsoband:O.showCurrentIsoband,showCurrentParticle:O.showCurrentParticle,token:p.token,gateway:O.gateway},z.$attrs,{forecastModel:p.forecastModel,onWeather:c.handleWeatherLayerChange,onOther:c.handleOtherLayerChange,onToggleWindParticle:b[0]||(b[0]=b0=>O.showWindParticle=b0),onToggleWindFeather:b[1]||(b[1]=b0=>O.showWindFeather=b0),onToggleCurrentParticle:b[2]||(b[2]=b0=>O.showCurrentParticle=b0),onToggleCurrentIsoband:b[3]||(b[3]=b0=>O.showCurrentIsoband=b0),onCoordinate:b[4]||(b[4]=b0=>O.showCoord=b0),onMeasure:b[5]||(b[5]=b0=>O.showMeasure=b0),onPoint:b[6]||(b[6]=b0=>O.showPoint=b0),on3d:c.handle3dToggle,onHandleToggleVersion:c.handleToggleVersion}),null,16,["map","toggle-version","map-projection","showWindFeather","showWindParticle","showCurrentIsoband","showCurrentParticle","token","gateway","forecastModel","onWeather","onOther","on3d","onHandleToggleVersion"]),M.createVNode(q,M.mergeProps({map:p.map,token:p.token,enabled:(o0=O.otherLayers)==null?void 0:o0.enc,"toggle-version":p.toggleVersion},z.$attrs,{onEnc:b[7]||(b[7]=b0=>O.enc=b0)}),null,16,["map","token","enabled","toggle-version"]),M.createVNode(a,M.mergeProps({map:p.map,token:p.token,"weather-layers":O.weatherLayers,enabled:(c0=O.otherLayers)==null?void 0:c0.world12nm},z.$attrs),null,16,["map","token","weather-layers","enabled"]),M.createVNode(r,M.mergeProps({map:p.map,"sig-wave":(W0=O.weatherLayers)==null?void 0:W0["sig-wave-height"],"before-layer":p.beforeLayer,activeWeatherLayers:O.activeWeatherLayers},z.$attrs),null,16,["map","sig-wave","before-layer","activeWeatherLayers"]),M.createVNode(A,M.mergeProps({map:p.map,swell:(e0=O.weatherLayers)==null?void 0:e0.swell,"before-layer":p.beforeLayer,activeWeatherLayers:O.activeWeatherLayers},z.$attrs),null,16,["map","swell","before-layer","activeWeatherLayers"]),M.createVNode(n,M.mergeProps({map:p.map,prmsl:(T=O.weatherLayers)==null?void 0:T.prmsl,"before-layer":p.beforeLayer,"active-weather-layers":O.activeWeatherLayers},z.$attrs),null,16,["map","prmsl","before-layer","active-weather-layers"]),M.createVNode(s,M.mergeProps({map:p.map,iceberg:(V=O.weatherLayers)==null?void 0:V.iceberg,"before-layer":p.beforeLayer},z.$attrs),null,16,["map","iceberg","before-layer"]),M.createVNode(d,M.mergeProps({map:p.map,date:p.ts,tropicals:(M0=O.weatherLayers)==null?void 0:M0.tropicals,"before-layer":p.beforeLayer},z.$attrs),null,16,["map","date","tropicals","before-layer"]),M.createVNode(R,M.mergeProps({map:p.map,"map-projection":O.mapProjection,current:(C=O.weatherLayers)==null?void 0:C.current,"before-layer":p.beforeLayer,showCurrentIsoband:O.showCurrentIsoband,showCurrentParticle:O.showCurrentParticle,"margin-bottom":O.activeWindLayer?O.showRampColor?"84px":"56px":O.showRampColor?"56px":"30px","toggle-version":p.toggleVersion,"weather-layers":O.weatherLayers},z.$attrs,{onParticle:c.handleParticle,onHandleToggleVersion:c.handleToggleVersion}),null,16,["map","map-projection","current","before-layer","showCurrentIsoband","showCurrentParticle","margin-bottom","toggle-version","weather-layers","onParticle","onHandleToggleVersion"]),M.createVNode(f,M.mergeProps({viewport:O.viewport,factor:(G=O.weatherLayers)==null?void 0:G["current-particle"],"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(W,M.mergeProps({ref:"windBarb",map:p.map,"map-projection":O.mapProjection,wind:(A0=O.weatherLayers)==null?void 0:A0.wind,current:(t0=O.weatherLayers)==null?void 0:t0.current,"before-layer":p.beforeLayer,"margin-bottom":O.showRampColor?"56px":"30px",showWindFeather:O.showWindFeather,showWindParticle:O.showWindParticle},z.$attrs,{"toggle-version":p.toggleVersion,"weather-layers":O.weatherLayers,onParticle:c.handleParticle}),null,16,["map","map-projection","wind","current","before-layer","margin-bottom","showWindFeather","showWindParticle","toggle-version","weather-layers","onParticle"]),M.createVNode(L,M.mergeProps({viewport:O.viewport,factor:(i0=O.weatherLayers)==null?void 0:i0["wind-particle"],"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(h,M.mergeProps({viewport:O.viewport,factor:(Y=O.weatherLayers)==null?void 0:Y.precip3h,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(N,M.mergeProps({viewport:O.viewport,factor:(t=O.weatherLayers)==null?void 0:t.visibility,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(w,M.mergeProps({viewport:O.viewport,factor:(i=O.weatherLayers)==null?void 0:i["water-temp"],"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(B,M.mergeProps({viewport:O.viewport,factor:(l=O.weatherLayers)==null?void 0:l.temp,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(v,M.mergeProps({viewport:O.viewport,factor:(u=O.weatherLayers)==null?void 0:u.arctic,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(H,M.mergeProps({map:p.map,zone:(y=O.otherLayers)==null?void 0:y["war-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(F,M.mergeProps({map:p.map,area:(E=O.otherLayers)==null?void 0:E["gmdss-areas"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","area","before-layer"]),M.createVNode(U,M.mergeProps({map:p.map,zone:(Q=O.otherLayers)==null?void 0:Q["eca-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(K,M.mergeProps({map:p.map,zone:(S=O.otherLayers)==null?void 0:S["alert-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(p0,M.mergeProps({map:p.map,port:(_=O.otherLayers)==null?void 0:_.ports,"before-layer":p.beforeLayer,forecastModel:p.forecastModel},z.$attrs),null,16,["map","port","before-layer","forecastModel"]),M.createVNode(r0,M.mergeProps({map:p.map,line:(X0=O.otherLayers)==null?void 0:X0["load-lines"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","line","before-layer"]),M.createVNode(n0,M.mergeProps({map:p.map,zone:(C0=O.otherLayers)==null?void 0:C0["time-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(O0,M.mergeProps({map:p.map,area:(E0=O.otherLayers)==null?void 0:E0["voluntary-reporting-area"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","area","before-layer"]),M.createVNode(a0,M.mergeProps({map:p.map,area:(T0=O.otherLayers)==null?void 0:T0["special-area"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","area","before-layer"]),M.createVNode(J,M.mergeProps({map:p.map,area:(x0=O.otherLayers)==null?void 0:x0["day-night"]},z.$attrs),null,16,["map","area"]),M.createVNode(d0,M.mergeProps({map:p.map,show:O.showCoord,"toggle-version":p.toggleVersion},z.$attrs),null,16,["map","show","toggle-version"]),M.createVNode(s0,M.mergeProps({map:p.map,show:O.showMeasure},z.$attrs),null,16,["map","show"]),M.createVNode(q0,M.mergeProps({ref:"idmPoint",map:p.map,show:O.showPoint,meteo:O.meteo,ts:p.ts,token:p.token,gateway:O.gateway,forecastModel:p.forecastModel},z.$attrs),null,16,["map","show","meteo","ts","token","gateway","forecastModel"])],512)):M.createCommentVNode("",!0)}const j0=k(Dp,[["render",kp]]),Pp={install(z){z.component("MapboxGL",j0),z.component("TropicalGL",k0),z.component("LatLngGL",P0)}};P.LatLngGL=P0,P.MapboxGL=j0,P.MapboxGLPlugin=Pp,P.MapboxHelper=Q0,P.ParticleSchema=z0,P.TropicalGL=k0,P.Viewport=S0,P.WebGL=h0,P.WebGLSchema=$,Object.defineProperty(P,Symbol.toStringTag,{value:"Module"})});
209
+ </svg>`,C=document.createElement("div");C.className="hurricane-hourly-marker",C.innerHTML=`<div class="${T.geometry.coordinates[1]>=0?"center north":"center south"}">${M0}</div>`;const G=new f0.Marker(C).setLngLat(T.geometry.coordinates).addTo(this.map);if(this.interpolateMarkers.push(G),(r0=T.properties)!=null&&r0.showCircle){const A0={radius:100,coordinates:T.geometry.coordinates},t0={radius:200,coordinates:T.geometry.coordinates},i0={radius:500,coordinates:T.geometry.coordinates};(n0=this.circleSourceData)==null||n0.features.push(X.circle(A0.coordinates,A0.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(O0=this.circleSourceData)==null||O0.features.push(X.circle(t0.coordinates,t0.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(a0=this.circleSourceData)==null||a0.features.push(X.circle(i0.coordinates,i0.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}}))}(d0=(J=this.map)==null?void 0:J.getSource(this.circleSource))==null||d0.setData(this.circleSourceData)}}else(s0=this.map)!=null&&s0.getSource(this.interpolateSource)&&((q0=this.map)==null||q0.getSource(this.interpolateSource).setData(this.empty))},handleClick(z){var c,e,q,a,r,A,n,s;const b=z.features[0],p=(e=(c=this.tropicals)==null?void 0:c.data)==null?void 0:e.features.filter(d=>{var R;return d.geometry.type==="LineString"&&d.properties.type==="forecast"&&d.properties.name===((R=b==null?void 0:b.properties)==null?void 0:R.name)});p.sort((d,R)=>{var f,W,L,h;return((f=d.properties)==null?void 0:f.model)==="cma"?-1:((W=d.properties)==null?void 0:W.model)==="jma"?((L=R.properties)==null?void 0:L.model)==="cma"?1:-1:d.properties.model==="ecmwf"?["jma","cma"].includes((h=R.properties)==null?void 0:h.model)?1:-1:0});const o=(a=(q=this.tropicals)==null?void 0:q.data)==null?void 0:a.features.filter(d=>{var R;return d.geometry.type==="LineString"&&d.properties.type==="history"&&d.properties.name===((R=b==null?void 0:b.properties)==null?void 0:R.name)});this.activeTropicals={name:(r=b==null?void 0:b.properties)==null?void 0:r.name,forecasts:p.map(d=>d.properties),history:(A=o[0])==null?void 0:A.properties,showCircle:(s=(n=p[0])==null?void 0:n.properties)==null?void 0:s.showCircle},this.showTropicals=!0;const O=document.getElementById("active-tropical");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat([z.lngLat.lng,z.lngLat.lat]):this.activeTropicalsMarker=new f0.Marker(O).setLngLat([z.lngLat.lng,z.lngLat.lat]).setOffset([220,0]).addTo(this.map)},handleForecastToggle(z){var o,O,c,e,q,a;z.disabled=!z.disabled;const b=`${z.name}-${z.model}`,p=(O=(o=this.map)==null?void 0:o.getSource(this.source)._data)==null?void 0:O.features;p.forEach(r=>{r.properties.category===b&&(r.properties.disabled=z.disabled)}),this.interpolateData.forEach(r=>{r.properties.category===b&&(r.properties.disabled=z.disabled)}),(e=(c=this.map)==null?void 0:c.getSource(this.source))==null||e.setData(X.featureCollection(p)),(a=(q=this.map)==null?void 0:q.getSource(this.clusterSource))==null||a.setData(X.featureCollection(p)),this.handleDateChange()},handleStrikeProbability(z){this.$emit("tropicalProbability",z)},handleToggleCircles(z){var b,p;z.showCircle=!z.showCircle,(p=(b=this.tropicals.data)==null?void 0:b.features)==null||p.forEach(o=>{o.properties.name===z.name&&(o.properties.showCircle=z.showCircle)}),this.handleRender()},handleDrawCircle(){var z,b;(z=this.map)!=null&&z.getSource(this.circleSource)?(b=this.map)==null||b.getSource(this.circleSource).setData(this.circleSourceData):(this.map.addSource(this.circleSource,{type:"geojson",data:this.circleSourceData}),this.map.addLayer({id:this.circleLayer,type:"line",source:this.circleSource,filter:["all",["==","$type","Polygon"],["==","type","tropicalCircle"]],paint:{"line-color":"#fff","line-width":2,"line-opacity":1,"line-dasharray":[1,1]}}))},handleComputePolygons(z){const b=[];for(const p of z){const o=p.properties.wind,O={ne:o.r7ne>=0?o.r7ne:void 0,se:o.r7se>=0?o.r7se:void 0,sw:o.r7sw>=0?o.r7sw:void 0,nw:o.r7nw>=0?o.r7nw:void 0},c=this.handleComputeArc(p.geometry.coordinates,O,{...p.properties,level:7});b.push(c);const e={ne:o.r10ne>=0?o.r10ne:void 0,se:o.r10se>=0?o.r10se:void 0,sw:o.r10sw>=0?o.r10sw:void 0,nw:o.r10nw>=0?o.r10nw:void 0},q=this.handleComputeArc(p.geometry.coordinates,e,{...p.properties,level:10});b.push(q)}return b},handleComputeArc(z,b,p){var c;const o=[];for(const e in b){const q=b[e]??0;let a;switch(e){case"ne":a=X.lineArc(z,q*1.852,0,90,{steps:q>0?64:1});break;case"se":a=X.lineArc(z,q*1.852,90,180,{steps:q>0?64:1});break;case"sw":a=X.lineArc(z,q*1.852,180,270,{steps:q>0?64:1});break;case"nw":a=X.lineArc(z,q*1.852,270,360,{steps:q>0?64:1});break}o.push(...(c=a==null?void 0:a.geometry)==null?void 0:c.coordinates)}const O=X.lineString(o);return X.lineToPolygon(O,{properties:p})}}},I0=z=>(M.pushScopeId("data-v-44a4e671"),z=z(),M.popScopeId(),z),Q2={id:"active-tropical",class:"active-tropical"},H2={class:"header-box"},j2={class:"main"},F2={key:0},V2={class:"sub"},G2={id:"meteoBox",class:"main-box"},U2={class:"content"},K2={class:"row"},J2={class:"col col-left",style:{"justify-content":"flex-start"}},Y2=I0(()=>M.createElementVNode("label",null,"Wind speed : ",-1)),Z2={class:"col col-right",style:{"justify-content":"flex-start"}},$2=I0(()=>M.createElementVNode("label",null,"Pressure : ",-1)),MM={class:"row"},bM={class:"col col-24",style:{"justify-content":"flex-start"}},zM=I0(()=>M.createElementVNode("label",{style:{width:"max-content"}},"Forecast Models : ",-1)),pM={class:"forecast-models"},OM=["onClick"],oM=M.createStaticVNode('<div class="row" style="padding:0;height:1px;margin:10px 0;background:var(--idm-black-1);" data-v-44a4e671></div><div class="row" style="padding:2px 10px;" data-v-44a4e671><div class="legend" data-v-44a4e671><div class="icon td" data-v-44a4e671></div><div class="label" data-v-44a4e671>TD</div></div><div class="legend" data-v-44a4e671><div class="icon ts" data-v-44a4e671></div><div class="label" data-v-44a4e671>TS</div></div><div class="legend" data-v-44a4e671><div class="icon sts" data-v-44a4e671></div><div class="label" data-v-44a4e671>STS</div></div><div class="legend" data-v-44a4e671><div class="icon ty" data-v-44a4e671></div><div class="label" data-v-44a4e671>TY</div></div><div class="legend" data-v-44a4e671><div class="icon sty" data-v-44a4e671></div><div class="label" data-v-44a4e671>STY</div></div><div class="legend" data-v-44a4e671><div class="icon supper-ty" data-v-44a4e671></div><div class="label" data-v-44a4e671>Super TY</div></div></div><div class="row" style="padding:2px 10px;" data-v-44a4e671><div class="legend" data-v-44a4e671><div class="icon history" data-v-44a4e671></div><div class="label" data-v-44a4e671>History</div></div><div class="legend" data-v-44a4e671><div class="icon r7" data-v-44a4e671></div><div class="label" data-v-44a4e671>35kts Radii</div></div><div class="legend" data-v-44a4e671><div class="icon r10" data-v-44a4e671></div><div class="label" data-v-44a4e671>50kts Radii</div></div></div>',3),cM={class:"more"};function eM(z,b,p,o,O,c){var e,q,a,r,A,n,s,d,R,f,W,L,h,N,w;return M.withDirectives((M.openBlock(),M.createElementBlock("div",Q2,[M.createElementVNode("div",H2,[M.createElementVNode("div",{class:"iconfont close-btn",onClick:b[0]||(b[0]=B=>O.showTropicals=!1)},""),M.createElementVNode("div",j2,[(q=(e=O.activeTropicals)==null?void 0:e.history)!=null&&q.level?(M.openBlock(),M.createElementBlock("span",F2,M.toDisplayString((r=(a=O.activeTropicals)==null?void 0:a.history)==null?void 0:r.level)+" , ",1)):M.createCommentVNode("",!0),M.createTextVNode(M.toDisplayString((A=O.activeTropicals)==null?void 0:A.name),1)]),M.createElementVNode("div",V2," Last update: "+M.toDisplayString(c.computeTime(((s=(n=O.activeTropicals)==null?void 0:n.history)==null?void 0:s.updated)||((f=(R=(d=O.activeTropicals)==null?void 0:d.forecasts)==null?void 0:R.filter(B=>!B.disabled)[0])==null?void 0:f.date))),1)]),M.createElementVNode("div",G2,[M.createElementVNode("div",U2,[M.createElementVNode("div",K2,[M.createElementVNode("div",J2,[Y2,M.createElementVNode("span",null,M.toDisplayString(((L=(W=O.activeTropicals)==null?void 0:W.history)==null?void 0:L.kts)||"-")+"[kts]",1)]),M.createElementVNode("div",Z2,[$2,M.createElementVNode("span",null,M.toDisplayString(((N=(h=O.activeTropicals)==null?void 0:h.history)==null?void 0:N.pressure)||"-")+"[hPa]",1)])]),M.createElementVNode("div",MM,[M.createElementVNode("div",bM,[zM,M.createElementVNode("div",pM,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList((w=O.activeTropicals)==null?void 0:w.forecasts,(B,v)=>{var H,F,U,K;return M.openBlock(),M.createElementBlock("div",{key:v,class:M.normalizeClass(["model",B.disabled?"":"active",v>0&&v<((F=(H=O.activeTropicals)==null?void 0:H.forecasts)==null?void 0:F.length)-1&&((K=(U=O.activeTropicals)==null?void 0:U.forecasts)==null?void 0:K.length)>2?"center-child":""]),onClick:p0=>c.handleForecastToggle(B)},[M.createElementVNode("span",{class:M.normalizeClass(B.model)},M.toDisplayString(B.model),3)],10,OM)}),128))])])]),oM]),M.createElementVNode("div",cM,[M.createElementVNode("div",{class:"button",onClick:b[1]||(b[1]=B=>c.handleStrikeProbability(O.activeTropicals))},"Strike Probability >>")])])],512)),[[M.vShow,O.showTropicals&&!z.$attrs.hideTropicalsLegend]])}const k0=k(_2,[["render",eM],["__scopeId","data-v-44a4e671"]]),fO="",AM={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[precip3h] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},u0=z=>(M.pushScopeId("data-v-e83717bd"),z=z(),M.popScopeId(),z),tM={key:0},aM=[u0(()=>M.createElementVNode("span",null,"mm",-1)),u0(()=>M.createElementVNode("span",null,"1.5",-1)),u0(()=>M.createElementVNode("span",null,"2",-1)),u0(()=>M.createElementVNode("span",null,"3",-1)),u0(()=>M.createElementVNode("span",null,"7",-1)),u0(()=>M.createElementVNode("span",null,"10",-1)),u0(()=>M.createElementVNode("span",null,"20",-1)),u0(()=>M.createElementVNode("span",null,"30",-1))];function qM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",tM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},aM,4)])):M.createCommentVNode("",!0)}const iM=k(AM,[["render",qM],["__scopeId","data-v-e83717bd"]]),yO="",rM={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[visibility] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},N0=z=>(M.pushScopeId("data-v-1c8a9237"),z=z(),M.popScopeId(),z),nM={key:0},dM=[N0(()=>M.createElementVNode("span",null,"nm",-1)),N0(()=>M.createElementVNode("span",null,"0",-1)),N0(()=>M.createElementVNode("span",null,"0.5",-1)),N0(()=>M.createElementVNode("span",null,"1.5",-1)),N0(()=>M.createElementVNode("span",null,"3",-1)),N0(()=>M.createElementVNode("span",null,"9",-1))];function sM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",nM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:z.right+"px",bottom:p.bottom}])},dM,4)])):M.createCommentVNode("",!0)}const WM=k(rM,[["render",sM],["__scopeId","data-v-1c8a9237"]]),SO="",lM={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[water-temp] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},g0=z=>(M.pushScopeId("data-v-8974924d"),z=z(),M.popScopeId(),z),fM={key:0},LM=[g0(()=>M.createElementVNode("span",null,"°C",-1)),g0(()=>M.createElementVNode("span",null,"0",-1)),g0(()=>M.createElementVNode("span",null,"10",-1)),g0(()=>M.createElementVNode("span",null,"20",-1)),g0(()=>M.createElementVNode("span",null,"30",-1)),g0(()=>M.createElementVNode("span",null,"40",-1))];function hM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",fM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},LM,4)])):M.createCommentVNode("",!0)}const RM=k(lM,[["render",hM],["__scopeId","data-v-8974924d"]]),QO="",uM={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[water-temp] add elapsed: ",p,", total: ",b+=p)}},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 z=[[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,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},m0=z=>(M.pushScopeId("data-v-d709ba86"),z=z(),M.popScopeId(),z),mM={key:0},BM=[m0(()=>M.createElementVNode("span",null,"°C",-1)),m0(()=>M.createElementVNode("span",null,"-20",-1)),m0(()=>M.createElementVNode("span",null,"-10",-1)),m0(()=>M.createElementVNode("span",null,"0",-1)),m0(()=>M.createElementVNode("span",null,"10",-1)),m0(()=>M.createElementVNode("span",null,"20",-1)),m0(()=>M.createElementVNode("span",null,"30",-1)),m0(()=>M.createElementVNode("span",null,"40",-1))];function NM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",mM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},BM,4)])):M.createCommentVNode("",!0)}const gM=k(uM,[["render",NM],["__scopeId","data-v-d709ba86"]]),YO="",yM={name:"IdmArctic",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new h0,etime:void 0,right:10}},watch:{"factor.version":{handler(){var z;(z=this.factor)!=null&&z.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const z=new Date().valueOf();let b=0,p=0;this.handleDraw(),p=new Date().valueOf()-(z+b),console.log("[water-temp] add elapsed: ",p,", total: ",b+=p)}},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 z=[[0,"rgba(76, 165, 228, 0)"],[50/255,"rgba(76, 165, 228, 0)"],[51/255,"rgb(76, 165, 228)"],[102/255,"rgb(129, 204, 197)"],[153/255,"rgb(150, 209, 216)"],[204/255,"rgb(180, 209, 216)"],[1,"rgb(180, 209, 216)"]];this.rampColor=this.webgl.setup(this.context,z);const{program:b,aPositionBuffer:p}=this.webgl.bind(this.context,$.vertexSchema,$.fragmentSchema);this.program=b,this.aPositionBuffer=p}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const z=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,z)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},y0=z=>(M.pushScopeId("data-v-5bb73794"),z=z(),M.popScopeId(),z),XM={key:0},wM=[y0(()=>M.createElementVNode("span",null,"m",-1)),y0(()=>M.createElementVNode("span",null,"0",-1)),y0(()=>M.createElementVNode("span",null,"0.5",-1)),y0(()=>M.createElementVNode("span",null,"1",-1)),y0(()=>M.createElementVNode("span",null,"1.5",-1)),y0(()=>M.createElementVNode("span",null,"2",-1))];function CM(z,b,p,o,O,c){var e;return(e=p.factor)!=null&&e.active?(M.openBlock(),M.createElementBlock("div",XM,[M.createElementVNode("div",{class:"legend-bars flex-center",style:M.normalizeStyle([{position:"absolute"},{right:O.right+"px",bottom:p.bottom}])},wM,4)])):M.createCommentVNode("",!0)}const EM=k(yM,[["render",CM],["__scopeId","data-v-5bb73794"]]);/*! Element Plus Icons Vue v2.3.1 */var TM=M.defineComponent({name:"LocationFilled",__name:"location-filled",setup(z){return(b,p)=>(M.openBlock(),M.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[M.createElementVNode("path",{fill:"currentColor",d:"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928m0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6"})]))}}),xM=TM;const SM="data:image/gif;base64,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",O3="",DM={name:"IdmPoint",components:{LocationFilled:xM},props:{token:{type:String},map:{type:Object},show:{type:Boolean},ts:{type:String},gateway:{type:String},startTs:{type:String},forecastModel:{type:String}},emits:["meteoMore"],data(){return{showMeteo:!1,loading:!1,point:{},meteoData:void 0,activeIndex:2,tableData:{hours:[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]},currentHourData:void 0,positionOffset:void 0,positionGmt:void 0,localDate:void 0,meteoMarker:void 0,tideData:{},tideTableData:[],tideLoading:!1,showTables:!0}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.show&&this.handleBind()}},forecastModel:{async handler(){var z;if(this.showMeteo&&this.ts){this.handleRender();const b=I();((z=I(this.ts))==null?void 0:z.diff(b,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData)}}},point:{async handler(){var z;if(this.showMeteo=!0,this.tideData={},this.meteoData={},this.showMeteo&&this.ts){this.handleRender();const b=I();if(((z=I(this.ts))==null?void 0:z.diff(b,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData),this.activeIndex===4){const o=L0.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(o==null?void 0:o.length)>0?this.tideTableData=o:await this.fetchTidesData(this.point,this.ts,7)}}}},ts:{async handler(){var z;if(this.showMeteo&&this.ts){const b=I(),p=(z=I(this.ts))==null?void 0:z.diff(b,"d",!0),O=[0,1,2,3,4,5,6,7].every(c=>{var q;const e=w0(this.ts).tz(this.positionGmt).add(3*c,"h").format();return(q=L0.Meteo2Assist.pickHourly(this.meteoData,e))==null?void 0:q[0]});if(this.meteoData&&O?this.initTableData(this.meteoData):(this.loading||(p>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts)),this.initTableData(this.meteoData)),this.activeIndex===4){const c=L0.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(c==null?void 0:c.length)>0?this.tideTableData=c:await this.fetchTidesData(this.point,this.ts,7)}}}}},computed:{computeHourL(){return function(z){return z?`${w0(z).tz(this.positionGmt).format("HH")}`:"-"}},computeHourZ(){return function(z){return z?`${I(z).utc().format("HH")}Z`:"-"}},computeHourHmmLT(){return function(z){return z?`${w0(z).tz(this.positionGmt).format("H:mm")}`:"-"}},computeLat(){return function(z,b=4){return D.LngLatHelper.lat2pretty(z,b).pretty}},computeLng(){return function(z,b=4){return D.LngLatHelper.lng2pretty(z,b).pretty}},roundPrecision(){return function(z,b=4){return isNaN(z)?"-":D.LngLatHelper.roundPrecision(z,b)}}},methods:{async fetchMeteoData(z,b,p){this.loading=!0,this.meteoData=[];let o=b?I(b).utc().format():I().utc().format();const{weatherModels:O,marineModels:c}=L0.Meteo2Assist.autoPickMeteoModel(this.forecastModel);let e={lat:z.lat,lng:z.lng,datetime:o,forecastDays:p??7,weatherModels:O,marineModels:c},q=await l0.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,e,{headers:{Authorization:this.token||this.defaultMeteoToken}});(q==null?void 0:q.data.code)===0&&(this.meteoData=q==null?void 0:q.data.data,this.loading=!1)},async fetchHistoryData(z,b){this.loading=!0,this.meteoData=[];const p=b?I(b).utc().format():I().utc().format(),{weatherModels:o,marineModels:O}=L0.Meteo2Assist.autoPickMeteoModel(this.forecastModel),c={lat:z.lat,lng:z.lng,datetime:p,forecastDays:3,pastDays:1,weatherModels:o,marineModels:O},e=await l0.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,c,{headers:{Authorization:this.token||this.defaultMeteoToken}});(e==null?void 0:e.data.code)===0&&(this.meteoData=e==null?void 0:e.data.data,this.loading=!1)},initTableData(z){var b,p,o,O,c,e,q;this.clearTable(),this.positionGmt=(p=(b=z==null?void 0:z.weather)==null?void 0:b[0])==null?void 0:p.timezone,this.positionOffset=(O=(o=z==null?void 0:z.weather)==null?void 0:o[0])==null?void 0:O.offset,this.localDate=(e=(c=w0(this.ts))==null?void 0:c.tz(this.positionGmt))==null?void 0:e.format("MMM-DD/HHmm[LT]"),this.currentHourData=(q=L0.Meteo2Assist.pickHourly(z,I(this.ts)))==null?void 0:q[0],this.$nextTick(()=>{var r,A,n,s,d,R,f,W,L,h,N,w,B,v,H,F,U,K,p0,r0,n0,O0,a0,J,d0,s0,q0,o0,c0,W0,e0,T,V,M0,C,G,A0,t0,i0;const a=document.getElementById("meteoMainBox");if(!a)return!1;if(a.className="main-box",a.style.backgroundImage=null,a.style.backgroundPosition="top left",((A=(r=this.currentHourData)==null?void 0:r.weather)==null?void 0:A.code)===0&&((s=(n=this.currentHourData)==null?void 0:n.weather)==null?void 0:s.isDay)===0)a.className="main-box night-bg";else{const Y=(R=(d=this.currentHourData)==null?void 0:d.weather)==null?void 0:R.bg;Y?(a.className="main-box font-color-white",a.style.backgroundImage=`url(${Y})`,(Y==="https://osshz.idmwx.com/asset/weather/bg2.png"||Y==="https://osshz.idmwx.com/asset/weather/bg5.png")&&(a.style.backgroundPosition="right bottom")):a.className="main-box day-bg"}if(!this.currentHourData)return this.loading=!1,this.tableData.hours=[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],this.handleRender(),!1;for(let Y=0;Y<8;Y++){const t=w0(this.ts).tz(this.positionGmt).add(3*Y,"h").format();this.tableData.hours.push(t);const i=((f=L0.Meteo2Assist.pickHourly(z,t))==null?void 0:f[0])||{};this.tableData.temp.push(this.roundPrecision((W=i==null?void 0:i.weather)==null?void 0:W.temp,0)??"-"),this.tableData.precipProbability.push(this.roundPrecision((h=(L=i==null?void 0:i.weather)==null?void 0:L.precip)==null?void 0:h.probability,0)??"-"),this.tableData.precip1h.push(this.roundPrecision((w=(N=i==null?void 0:i.weather)==null?void 0:N.precip)==null?void 0:w.sum,0)??"-"),this.tableData.visibility.push(this.roundPrecision((B=i==null?void 0:i.weather)==null?void 0:B.visibility,0)??"-"),this.tableData.windSpeed.push(this.roundPrecision((H=(v=i==null?void 0:i.weather)==null?void 0:v.wind)==null?void 0:H.kts,1)??"-"),this.tableData.windDir.push((U=(F=i==null?void 0:i.weather)==null?void 0:F.wind)==null?void 0:U.bearing),this.tableData.windGust.push(this.roundPrecision((p0=(K=i==null?void 0:i.weather)==null?void 0:K.wind)==null?void 0:p0.gusts,1)??"-"),this.tableData.sigwaveHeight.push(this.roundPrecision((n0=(r0=i==null?void 0:i.wave)==null?void 0:r0.sig)==null?void 0:n0.height,1)??"-"),this.tableData.sigwaveDir.push((a0=(O0=i==null?void 0:i.wave)==null?void 0:O0.sig)==null?void 0:a0.bearing),this.tableData.windwaveHeight.push(this.roundPrecision((d0=(J=i==null?void 0:i.wave)==null?void 0:J.wd)==null?void 0:d0.height,1)??"-"),this.tableData.windwaveDir.push((q0=(s0=i==null?void 0:i.wave)==null?void 0:s0.wd)==null?void 0:q0.bearing),this.tableData.windwavePeriod.push(this.roundPrecision((c0=(o0=i==null?void 0:i.wave)==null?void 0:o0.wd)==null?void 0:c0.period,1)??"-"),this.tableData.swellHeight.push(this.roundPrecision((e0=(W0=i==null?void 0:i.wave)==null?void 0:W0.swell)==null?void 0:e0.height,1)??"-"),this.tableData.swellDir.push((V=(T=i==null?void 0:i.wave)==null?void 0:T.swell)==null?void 0:V.bearing),this.tableData.swellPeriod.push(this.roundPrecision((C=(M0=i==null?void 0:i.wave)==null?void 0:M0.swell)==null?void 0:C.period,1)??"-"),this.tableData.currentSpeed.push(this.roundPrecision((G=i==null?void 0:i.current)==null?void 0:G.speed,1)??"-"),this.tableData.currentDir.push((A0=i==null?void 0:i.current)==null?void 0:A0.bearing),this.tableData.seaLevel.push(this.roundPrecision(i==null?void 0:i.height,1)??"-"),this.tableData.seaTemp.push(this.roundPrecision(i==null?void 0:i.sst,0)??"-"),this.tableData.weatherUrls.push((t0=i==null?void 0:i.weather)==null?void 0:t0.url),this.tableData.weatherNames.push(((i0=i==null?void 0:i.weather)==null?void 0:i0.name)??"-")}})},clearTable(){this.currentHourData=void 0,this.positionGmt=void 0,this.localDate=void 0,this.tableData={hours:[],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]}},async handleSelectTab(z){this.activeIndex=z,this.activeIndex===4&&await this.fetchTidesData(this.point,this.ts,7)},async fetchTidesData(z,b,p){this.tideLoading=!0,this.tideData={};let o=b?I(b).utc().format():I().utc().format(),O={lat:z.lat,lng:z.lng,date:o,forecastDays:p??7,extremes:!0,heights:!1},c=await l0.post(`${this.gateway}/api/arc/meteo2/spot/tides/forecast`,O,{headers:{Authorization:this.token||this.defaultMeteoToken}});if((c==null?void 0:c.data.code)===0){this.tideData=(c==null?void 0:c.data.data)||{},this.tideLoading=!1;const e=L0.TidesAssist.pickDailyExtremes(this.tideData,this.ts);this.tideTableData=e}},handleBind(){var z,b;this.show?((z=this.map)==null||z.on("click",this.handleClick),this.map.getCanvas().style.cursor="pointer"):((b=this.map)==null||b.off("click",this.handleClick),this.showMeteo=!1)},handleClick(z){if(z.originalEvent.stopPropagation(),z.originalEvent.target.className==="mapboxgl-canvas")this.point=z.lngLat;else return!1},handleMeteoMore(){this.point.forecastModel=this.forecastModel,this.$emit("meteoMore",this.point)},handleCloseMeteo(){this.showMeteo=!1},handleRender(){this.$nextTick(()=>{var b;const z=document.getElementById("point-meteo");this.point&&(this.meteoMarker?(b=this.meteoMarker)==null||b.setLngLat([this.point.lng,this.point.lat]):this.meteoMarker=new f0.Marker(z).setLngLat([this.point.lng,this.point.lat]).addTo(this.map))})}}},x=z=>(M.pushScopeId("data-v-75f924df"),z=z(),M.popScopeId(),z),IM={id:"point-meteo",class:"point-meteo"},kM={class:"meteo-box"},PM={class:"header-box flex-between"},vM={class:"flex-center"},_M={class:"lnglat"},QM={class:"flex-center"},HM={key:0,class:"main-box",id:"meteoMainBox"},jM={class:"summary-row flex-between"},FM={class:"summary flex-center"},VM=["src"],GM={key:1,class:"icon flex-center",style:{"margin-right":"5px"}},UM={class:"temp"},KM=x(()=>M.createElementVNode("span",{style:{"font-size":"14px"}},"°C",-1)),JM={class:"des info"},YM={class:"flex-start"},ZM=x(()=>M.createElementVNode("label",null,"Precip : ",-1)),$M={class:"flex-start"},Mb=x(()=>M.createElementVNode("label",null,"Visibility : ",-1)),bb={class:"flex-start"},zb=x(()=>M.createElementVNode("label",null,"Wind : ",-1)),pb={class:"date flex-col-center-end"},Ob={class:""},ob={class:""},cb={class:"detail-box"},eb={class:"menu-header flex-start"},Ab={class:"basic-table"},tb={class:"hour"},ab=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Hours"),M.createElementVNode("span",{class:"unit"},"(LT)")],-1)),qb={class:"hour"},ib=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("UTC"),M.createElementVNode("span",{class:"unit"})],-1)),rb={class:"icon"},nb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},null,-1)),db=["src"],sb={class:"text"},Wb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Temp"),M.createElementVNode("span",{class:"unit"},"°C")],-1)),lb={class:"text"},fb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Precip"),M.createElementVNode("span",{class:"unit"},"mm")],-1)),Lb={class:"text"},hb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Visibility"),M.createElementVNode("span",{class:"unit"},"nm")],-1)),Rb={class:"text"},ub=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Wind gust"),M.createElementVNode("span",{class:"unit"},"kts")],-1)),mb={class:"wave-current-table"},Bb={class:"hour"},Nb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Hours"),M.createElementVNode("span",{class:"unit"},"(LT)")],-1)),gb={class:"hour"},yb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("UTC"),M.createElementVNode("span",{class:"unit"})],-1)),Xb={class:"text"},wb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Wind"),M.createElementVNode("span",{class:"unit"},"kts")],-1)),Cb={class:"text"},Eb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Sig Wave"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Tb={class:"text"},xb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Wind Wave"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Sb={class:"text"},Db=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Swell"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Ib={class:"text"},kb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Current"),M.createElementVNode("span",{class:"unit"},"kts")],-1)),Pb={class:"sea-table",style:{height:"92px"}},vb={class:"hour"},_b=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("Hours"),M.createElementVNode("span",{class:"unit"},"(LT)")],-1)),Qb={class:"hour"},Hb=x(()=>M.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("UTC"),M.createElementVNode("span",{class:"unit"})],-1)),jb={class:"text"},Fb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("SeaLevel"),M.createElementVNode("span",{class:"unit"},"m")],-1)),Vb={class:"text"},Gb=x(()=>M.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[M.createTextVNode("SeaTemp"),M.createElementVNode("span",{class:"unit"},"°C")],-1)),Ub={key:0},Kb=[x(()=>M.createElementVNode("p",{style:{"font-size":"12px",padding:"12px 20px 0 20px","line-height":"16px",color:"var(--idm-white-8)"}},"*Sea level height accounts for tides, barometer effects, and global variations. Based on mean sea level, accuracy is limited in coastal areas. For coastal navigation, use data from Tides Tab.",-1))],Jb={class:"tide-table flex-col-start-center"},Yb={class:"tr-tide flex-space"},Zb={class:"tr-tide flex-space"},$b={class:"tr-tide flex-space"},Mz=x(()=>M.createElementVNode("tr",{class:"tr-tide flex-center info"},[M.createElementVNode("span",null,"Tide Datum: Chart Datum")],-1)),bz={style:{padding:"17px 10px 18px 10px"}},zz={class:"flex-between"},pz={class:"flex-space",style:{flex:"1","line-height":"30px"}},Oz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Wind",-1)),oz={class:"flex-space",style:{flex:"1","padding-left":"30px"}},cz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Sig wave",-1)),ez={class:"flex-between"},Az={class:"flex-space",style:{flex:"1","line-height":"30px"}},tz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Wind wave",-1)),az={class:"flex-space",style:{flex:"1","padding-left":"30px"}},qz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Swell",-1)),iz={class:"flex-between"},rz={class:"flex-space",style:{flex:"1","line-height":"30px"}},nz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Current",-1)),dz={class:"flex-space",style:{flex:"1","padding-left":"30px"}},sz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Sea level",-1)),Wz={class:"flex-between"},lz={class:"flex-space",style:{flex:"1","line-height":"30px"}},fz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Sea Temp",-1)),Lz={class:"flex-space",style:{flex:"1","padding-left":"30px"}},hz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Visibility",-1)),Rz={class:"flex-between"},uz={class:"flex-space",style:{flex:"1","line-height":"30px"}},mz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Temp",-1)),Bz={class:"flex-space",style:{flex:"1","padding-left":"30px"}},Nz=x(()=>M.createElementVNode("div",{style:{color:"var(--idm-white-8)"}},"Precip",-1)),gz={key:1,class:"main-box flex-center"},yz=[x(()=>M.createElementVNode("img",{src:SM},null,-1))];function Xz(z,b,p,o,O,c){var r,A,n,s,d,R,f,W,L,h,N,w,B,v,H,F,U,K,p0,r0,n0,O0,a0,J,d0,s0,q0,o0,c0,W0,e0,T,V,M0,C,G,A0,t0,i0,Y,t,i,l,u,y,E,Q,S,_,X0,C0,E0,T0,x0,b0,F0,V0,G0,U0,K0,J0,Y0,Z0,$0,M1,b1,z1,p1;const e=M.resolveComponent("LocationFilled"),q=M.resolveComponent("ElIcon"),a=M.resolveComponent("ElTooltip");return M.withDirectives((M.openBlock(),M.createElementBlock("div",IM,[M.createElementVNode("div",kM,[M.createElementVNode("div",PM,[M.createElementVNode("div",vM,[M.createVNode(q,{size:"22"},{default:M.withCtx(()=>[M.createVNode(e)]),_:1}),M.createElementVNode("div",_M,M.toDisplayString(c.computeLat((r=O.point)==null?void 0:r.lat))+","+M.toDisplayString(c.computeLng((A=O.point)==null?void 0:A.lng)),1)]),M.createElementVNode("div",QM,[O.showTables?(M.openBlock(),M.createElementBlock("div",{key:0,class:"iconfont toggle",onClick:b[0]||(b[0]=m=>O.showTables=!O.showTables)},"")):(M.openBlock(),M.createElementBlock("div",{key:1,class:"iconfont toggle",onClick:b[1]||(b[1]=m=>O.showTables=!O.showTables)},"")),M.createElementVNode("div",{class:"iconfont close",onClick:b[2]||(b[2]=(...m)=>c.handleCloseMeteo&&c.handleCloseMeteo(...m))},"")])]),O.loading?(M.openBlock(),M.createElementBlock("div",gz,yz)):(M.openBlock(),M.createElementBlock("div",HM,[M.createElementVNode("div",jM,[M.createElementVNode("div",FM,[M.createVNode(a,{placement:"top",effect:"light",content:(s=(n=O.currentHourData)==null?void 0:n.weather)==null?void 0:s.name,"show-after":1e3},{default:M.withCtx(()=>{var m,g,O1,o1;return[(g=(m=O.currentHourData)==null?void 0:m.weather)!=null&&g.url?(M.openBlock(),M.createElementBlock("img",{key:0,class:"iconfont icon",style:{"margin-right":"5px"},src:(o1=(O1=O.currentHourData)==null?void 0:O1.weather)==null?void 0:o1.url},null,8,VM)):(M.openBlock(),M.createElementBlock("span",GM))]}),_:1},8,["content"]),M.createElementVNode("div",UM,[M.createElementVNode("div",null,[M.createTextVNode(M.toDisplayString(c.roundPrecision((R=(d=O.currentHourData)==null?void 0:d.weather)==null?void 0:R.temp,0)),1),KM])]),M.createElementVNode("div",JM,[M.createElementVNode("div",YM,[ZM,M.createElementVNode("span",null,M.toDisplayString(c.roundPrecision((L=(W=(f=O.currentHourData)==null?void 0:f.weather)==null?void 0:W.precip)==null?void 0:L.sum,0))+" mm",1)]),M.createElementVNode("div",$M,[Mb,M.createElementVNode("span",null,M.toDisplayString(c.roundPrecision((N=(h=O.currentHourData)==null?void 0:h.weather)==null?void 0:N.visibility,0))+" nm",1)]),M.createElementVNode("div",bb,[zb,M.createElementVNode("span",null,M.toDisplayString(c.roundPrecision((v=(B=(w=O.currentHourData)==null?void 0:w.weather)==null?void 0:B.wind)==null?void 0:v.kts,1))+" kts",1)])])]),M.createElementVNode("div",pb,[M.createElementVNode("div",Ob,M.toDisplayString(O.localDate),1),M.createElementVNode("div",ob,"( UTC "+M.toDisplayString(O.positionOffset)+" )",1)])]),M.withDirectives(M.createElementVNode("div",cb,[M.createElementVNode("div",eb,[M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===1?"active":""]),onClick:b[3]||(b[3]=M.withModifiers(m=>c.handleSelectTab(1),["prevent"]))},"Basis",2),M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===2?"active":""]),onClick:b[4]||(b[4]=M.withModifiers(m=>c.handleSelectTab(2),["prevent"]))},"Wave & Current",2),M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===3?"active":""]),onClick:b[5]||(b[5]=M.withModifiers(m=>c.handleSelectTab(3),["prevent"]))},"Sea Surface",2),M.createElementVNode("div",{class:M.normalizeClass(["menu-item",O.activeIndex===4?"active":""]),onClick:b[6]||(b[6]=M.withModifiers(m=>c.handleSelectTab(4),["prevent"]))},"Tides",2)]),M.withDirectives(M.createElementVNode("table",Ab,[M.createElementVNode("tr",tb,[ab,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,m=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourL${m}`},M.toDisplayString(c.computeHourL(m)),1))),128))]),M.createElementVNode("tr",qb,[ib,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,m=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourZ${m}`},M.toDisplayString(c.computeHourZ(m)),1))),128))]),M.createElementVNode("tr",rb,[nb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.weatherUrls,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`weatherUrls${g}${m}`},[M.createVNode(a,{placement:"top",effect:"light",content:O.tableData.weatherNames[g],"show-after":500},{default:M.withCtx(()=>[m?(M.openBlock(),M.createElementBlock("img",{key:0,class:"iconfont weather-icon",src:m},null,8,db)):M.createCommentVNode("",!0)]),_:2},1032,["content"])]))),128))]),M.createElementVNode("tr",sb,[Wb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.temp,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`weatherUrls${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",lb,[fb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.precip1h,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`precip1h${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",Lb,[hb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.visibility,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`visibility${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",Rb,[ub,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.windGust,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windGust${g}${m}`},[isNaN(O.tableData.windDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon blue",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.windDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))])],512),[[M.vShow,O.activeIndex===1]]),M.withDirectives(M.createElementVNode("table",mb,[M.createElementVNode("tr",Bb,[Nb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursL${g}${m}`},M.toDisplayString(c.computeHourL(m)),1))),128))]),M.createElementVNode("tr",gb,[yb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursZ${g}${m}`},M.toDisplayString(c.computeHourZ(m)),1))),128))]),M.createElementVNode("tr",Xb,[wb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.windSpeed,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windSpeed${g}${m}`},[isNaN(O.tableData.windDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon blue",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.windDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Cb,[Eb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.sigwaveHeight,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`sigwaveHeight${g}${m}`},[isNaN(O.tableData.sigwaveDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon blue",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.sigwaveDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Tb,[xb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.windwaveHeight,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windwaveHeight${g}${m}`},[isNaN(O.tableData.sigwaveDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon orange",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.sigwaveDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Sb,[Db,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.swellHeight,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`swellHeight${g}${m}`},[isNaN(O.tableData.swellDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon orange",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.swellDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))]),M.createElementVNode("tr",Ib,[kb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.currentSpeed,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`currentSpeed${g}${m}`},[isNaN(O.tableData.currentDir[g])?M.createCommentVNode("",!0):(M.openBlock(),M.createElementBlock("span",{key:0,class:"iconfont icon gray",id:"meteoGrayIcon",style:M.normalizeStyle({display:"inline-block",transform:`rotate(${O.tableData.currentDir[g]}deg)`})},"",4)),M.createElementVNode("span",null,M.toDisplayString(m),1)]))),128))])],512),[[M.vShow,O.activeIndex===2]]),M.withDirectives(M.createElementVNode("table",Pb,[M.createElementVNode("tr",vb,[_b,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursL${g}${m}`},M.toDisplayString(c.computeHourL(m)),1))),128))]),M.createElementVNode("tr",Qb,[Hb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.hours,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursZ${g}${m}`},M.toDisplayString(c.computeHourZ(m)),1))),128))]),M.createElementVNode("tr",jb,[Fb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.seaLevel,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaLevel${g}${m}`},M.toDisplayString(m),1))),128))]),M.createElementVNode("tr",Vb,[Gb,(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tableData.seaTemp,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaTemp${g}${m}`},M.toDisplayString(m),1))),128))])],512),[[M.vShow,O.activeIndex===3]]),O.activeIndex===3?(M.openBlock(),M.createElementBlock("div",Ub,Kb)):M.createCommentVNode("",!0),M.withDirectives(M.createElementVNode("table",Jb,[M.createElementVNode("tr",Yb,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tideTableData,(m,g)=>(M.openBlock(),M.createElementBlock("th",{rowspan:"1",colspan:"1",key:`Tide-tr-${g}${m}`},M.toDisplayString(m.type)+" Tide",1))),128))]),M.createElementVNode("tr",Zb,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tideTableData,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-date-${g}${m}`},M.toDisplayString(c.computeHourHmmLT(m==null?void 0:m.date)),1))),128))]),M.createElementVNode("tr",$b,[(M.openBlock(!0),M.createElementBlock(M.Fragment,null,M.renderList(O.tideTableData,(m,g)=>(M.openBlock(),M.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-height-${g}${m}`},M.toDisplayString(c.roundPrecision(m==null?void 0:m.height,2))+" m",1))),128))]),Mz],512),[[M.vShow,O.activeIndex===4]])],512),[[M.vShow,((F=(H=O.tableData)==null?void 0:H.hours)==null?void 0:F.length)>0&&O.showTables]]),M.withDirectives(M.createElementVNode("div",bz,[M.createElementVNode("div",zz,[M.createElementVNode("div",pz,[Oz,M.createElementVNode("div",null,M.toDisplayString((p0=(K=(U=O.currentHourData)==null?void 0:U.weather)==null?void 0:K.wind)==null?void 0:p0.direction)+"/"+M.toDisplayString(c.roundPrecision((O0=(n0=(r0=O.currentHourData)==null?void 0:r0.weather)==null?void 0:n0.wind)==null?void 0:O0.kts,1))+"kts/BF"+M.toDisplayString((d0=(J=(a0=O.currentHourData)==null?void 0:a0.weather)==null?void 0:J.wind)==null?void 0:d0.scale)+"/"+M.toDisplayString(c.roundPrecision((o0=(q0=(s0=O.currentHourData)==null?void 0:s0.weather)==null?void 0:q0.wind)==null?void 0:o0.gusts,1))+" kts",1)]),M.createElementVNode("div",oz,[cz,M.createElementVNode("div",null,M.toDisplayString((e0=(W0=(c0=O.currentHourData)==null?void 0:c0.wave)==null?void 0:W0.sig)==null?void 0:e0.direction)+"/"+M.toDisplayString(c.roundPrecision((M0=(V=(T=O.currentHourData)==null?void 0:T.wave)==null?void 0:V.sig)==null?void 0:M0.height,1))+"m/"+M.toDisplayString(c.roundPrecision((A0=(G=(C=O.currentHourData)==null?void 0:C.wave)==null?void 0:G.sig)==null?void 0:A0.period,1))+"s",1)])]),M.createElementVNode("div",ez,[M.createElementVNode("div",Az,[tz,M.createElementVNode("div",null,M.toDisplayString((Y=(i0=(t0=O.currentHourData)==null?void 0:t0.wave)==null?void 0:i0.wd)==null?void 0:Y.direction)+"/"+M.toDisplayString(c.roundPrecision((l=(i=(t=O.currentHourData)==null?void 0:t.wave)==null?void 0:i.wd)==null?void 0:l.height,1))+"m/"+M.toDisplayString(c.roundPrecision((E=(y=(u=O.currentHourData)==null?void 0:u.wave)==null?void 0:y.wd)==null?void 0:E.period,1))+"s",1)]),M.createElementVNode("div",az,[qz,M.createElementVNode("div",null,M.toDisplayString((_=(S=(Q=O.currentHourData)==null?void 0:Q.wave)==null?void 0:S.swell)==null?void 0:_.direction)+"/"+M.toDisplayString(c.roundPrecision((E0=(C0=(X0=O.currentHourData)==null?void 0:X0.wave)==null?void 0:C0.swell)==null?void 0:E0.height,1))+"m/"+M.toDisplayString(c.roundPrecision((b0=(x0=(T0=O.currentHourData)==null?void 0:T0.wave)==null?void 0:x0.swell)==null?void 0:b0.period,1))+"s",1)])]),M.createElementVNode("div",iz,[M.createElementVNode("div",rz,[nz,M.createElementVNode("div",null,M.toDisplayString((V0=(F0=O.currentHourData)==null?void 0:F0.current)==null?void 0:V0.direction)+"/"+M.toDisplayString(c.roundPrecision((U0=(G0=O.currentHourData)==null?void 0:G0.current)==null?void 0:U0.kts,2))+"kts",1)]),M.createElementVNode("div",dz,[sz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((K0=O.currentHourData)==null?void 0:K0.height,1))+"m",1)])]),M.createElementVNode("div",Wz,[M.createElementVNode("div",lz,[fz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((J0=O.currentHourData)==null?void 0:J0.sst,1))+"°C",1)]),M.createElementVNode("div",Lz,[hz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((Z0=(Y0=O.currentHourData)==null?void 0:Y0.weather)==null?void 0:Z0.visibility,1))+"nm",1)])]),M.createElementVNode("div",Rz,[M.createElementVNode("div",uz,[mz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((M1=($0=O.currentHourData)==null?void 0:$0.weather)==null?void 0:M1.temp,1))+"°C",1)]),M.createElementVNode("div",Bz,[Nz,M.createElementVNode("div",null,M.toDisplayString(c.roundPrecision((p1=(z1=(b1=O.currentHourData)==null?void 0:b1.weather)==null?void 0:z1.precip)==null?void 0:p1.sum3Hours,1))+"mm",1)])])],512),[[M.vShow,!O.showTables]]),M.createElementVNode("div",{class:"more",onClick:b[7]||(b[7]=(...m)=>c.handleMeteoMore&&c.handleMeteoMore(...m))},"More >>")]))])],512)),[[M.vShow,O.showMeteo]])}const wz=k(DM,[["render",Xz],["__scopeId","data-v-75f924df"]]),Cz={name:"IdmWarZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"war-zone-source",zoneLayer:"war-zone-layer",zoneLabelLayer:"war-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-color":"#f44336","fill-opacity":.4}},this.beforeLayer),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#f44336"}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-1]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ez(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Tz=k(Cz,[["render",Ez]]),xz={name:"IdmGmdssArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"gmdss-area-source",areaLayer:"gmdss-area-layer",areaLabelLayer:"gmdss-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","val"],"AreaI","#EB8996","AreaII","#6F448B","AreaIII","#3E8BD3","AreaIV","#5EBCC4","AreaV","#00AAE7","AreaVI","#9CCE6D","AreaVII","#F4AE00","AreaVIII","#EF9A85","AreaIX","#00AAA7","AreaX","#7AC49F","AreaXI","#DFDFDF","AreaXII","#FFF974","AreaXIII","#EF9A85","AreaXIV","#86A2D1","AreaXV","#EC8972","AreaXVI","#EAC2DA","AreaXVII","#B9C8E7","AreaXVIII","#BBA1C8","AreaXIX","#FAE0BD","AreaXX","#DBECC8","AreaXXI","#D496AF","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-opacity":.8,"text-color":"#000"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Sz(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Dz=k(xz,[["render",Sz]]),Iz={name:"IdmEcaZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"eca-zone-source",zoneLayer:"eca-zone-layer",zoneLabelLayer:"eca-zone-label-layer"}},watch:{zone:{handler(){this.zone?this.handleRender():this.handleClear()}}},methods:{handleRender(){var z;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(z=this.map)==null||z.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#05f324"}}),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-color":"#04c021","line-width":1,"line-opacity":1}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-max-width":16,"text-justify":"left","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function kz(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Pz=k(Iz,[["render",kz]]),e3="",vz={name:"IdmAlertZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"alert-zone-source",polygonLayer:"alert-zone-polygon-layer",polygonLabelLayer:"alert-zone-polygon-label-layer",lineLayer:"alert-zone-line-layer",lineLabelLayer:"alert-zone-line-label-layer",pointLayer:"alert-zone-point-layer",showZone:!1,form:{}}},watch:{zone:{handler(){var z,b;this.zone?(this.handleRender(),(z=this.map)==null||z.on("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick)):(this.handleClear(),(b=this.map)==null||b.off("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick))}}},methods:{handleClick(z){var o;const b=z.features[0],p=(o=this.zone)==null?void 0:o.features.filter(O=>{var c;return O.properties.id===((c=b==null?void 0:b.properties)==null?void 0:c.id)})[0];if(p){this.showZone=!0,this.form={...p.properties};const O=document.getElementById("idm-gl3-zone-info");this.marker?this.marker.setLngLat([z.lngLat.lng,z.lngLat.lat]):this.marker=new f0.Marker(O).setLngLat([z.lngLat.lng,z.lngLat.lat]).setOffset([0,0]).addTo(this.map)}},handleRender(){var z;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(z=this.map)==null||z.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.polygonLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"#d57d02","fill-opacity":.4,"fill-color":"#d57d02"}}),this.map.addLayer({id:this.polygonLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-width":1,"line-color":"#d57d02"}}),this.map.addLayer({id:this.lineLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],paint:{"line-color":"#d57d02","line-width":2}}),this.map.addLayer({id:this.polygonLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],layout:{"symbol-placement":"line-center","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.pointLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08},paint:{"icon-opacity":.8}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.polygonLayer)&&this.map.removeLayer(this.polygonLayer),this.map.getLayer(this.polygonLayer+"-border")&&this.map.removeLayer(this.polygonLayer+"-border"),this.map.getLayer(this.polygonLabelLayer)&&this.map.removeLayer(this.polygonLabelLayer),this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getLayer(this.pointLayer)&&this.map.removeLayer(this.pointLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},_z={id:"idm-gl3-zone-info"},Qz=["innerHTML"];function Hz(z,b,p,o,O,c){var e;return M.withDirectives((M.openBlock(),M.createElementBlock("div",_z,[M.createElementVNode("div",{class:"iconfont close",onClick:b[0]||(b[0]=q=>O.showZone=!1)},""),M.createElementVNode("div",{class:"rich-context",innerHTML:(e=O.form)==null?void 0:e.name},null,8,Qz)],512)),[[M.vShow,O.showZone]])}const jz=k(vz,[["render",Hz]]),A3="",Fz={name:"IdmPort",props:{map:{type:Object},port:{type:Object},beforeLayer:{type:String},forecastModel:{type:String}},emits:["meteoMore"],data(){return{source:"port-source",layer:"port-layer",showPort:!1,form:{},marker:void 0}},computed:{computeLat(){return function(z){return D.LngLatHelper.lat2pretty(z,4).pretty}},computeLng(){return function(z){return D.LngLatHelper.lng2pretty(z,4).pretty}}},watch:{port:{handler(){var z,b;this.port?(this.handleRender(),(z=this.map)==null||z.on("click",[this.layer],this.handleClick)):(this.handleClear(),(b=this.map)==null||b.off("click",[this.layer],this.handleClick))}}},methods:{handleClick(z){var o;const b=z.features[0],p=(o=this.port)==null?void 0:o.features.filter(O=>{var c;return O.properties.id===((c=b==null?void 0:b.properties)==null?void 0:c.id)})[0];if(p){this.showPort=!0,this.form={...p.properties},this.form.lng=p.geometry.coordinates[0],this.form.lat=p.geometry.coordinates[1];const O=document.getElementById("port-info");this.marker?this.marker.setLngLat([z.lngLat.lng,z.lngLat.lat]):this.marker=new f0.Marker(O).setLngLat([z.lngLat.lng,z.lngLat.lat]).setOffset([0,-85]).addTo(this.map)}},handleRender(){var z;this.map?this.port&&(this.map.getSource(this.source)?(z=this.map)==null||z.getSource(this.source).setData(this.port):(this.map.addSource(this.source,{type:"geojson",data:this.port}),this.map.addLayer({id:this.layer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"port","text-anchor":"left","text-field":"{name}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[1,0]},paint:{"text-color":"rgba(0, 0, 0, 0.8)","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.showPort=!1,this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)},handleClickMeteo(z){z.forecastModel=this.forecastModel,this.$emit("meteoMore",z)}}},D0=z=>(M.pushScopeId("data-v-2fc5fc5e"),z=z(),M.popScopeId(),z),Vz={ref:"idmPortInfo",id:"port-info"},Gz={class:"port-box"},Uz={class:"flex-start"},Kz=D0(()=>M.createElementVNode("label",null,"Name : ",-1)),Jz={class:"flex-start"},Yz=D0(()=>M.createElementVNode("label",null,"Position : ",-1)),Zz={class:"flex-start"},$z=D0(()=>M.createElementVNode("label",null,"LoCode : ",-1)),Mp={class:"flex-start",style:{"align-items":"flex-start"}},bp=D0(()=>M.createElementVNode("label",null,"Region : ",-1)),zp={class:"meteo-forecast flex-end"};function pp(z,b,p,o,O,c){return M.withDirectives((M.openBlock(),M.createElementBlock("div",Vz,[M.createElementVNode("div",{class:"close iconfont",onClick:b[0]||(b[0]=e=>O.showPort=!1)},""),M.createElementVNode("div",Gz,[M.createElementVNode("div",Uz,[Kz,M.createElementVNode("span",null,M.toDisplayString(O.form.name),1)]),M.createElementVNode("div",Jz,[Yz,M.createElementVNode("span",null,M.toDisplayString(c.computeLat(O.form.lat))+", "+M.toDisplayString(c.computeLng(O.form.lng)),1)]),M.createElementVNode("div",Zz,[$z,M.createElementVNode("span",null,M.toDisplayString(O.form.loCode||"-"),1)]),M.createElementVNode("div",Mp,[bp,M.createElementVNode("span",null,M.toDisplayString(O.form.zoneName||"-"),1)]),M.createElementVNode("div",zp,[M.createElementVNode("span",{onClick:b[1]||(b[1]=e=>c.handleClickMeteo(O.form))},"Meteo Forecast")])])],512)),[[M.vShow,O.showPort]])}const Op=k(Fz,[["render",pp],["__scopeId","data-v-2fc5fc5e"]]),op={name:"IdmLoadLine",props:{map:{type:Object},line:{type:Object},beforeLayer:{type:String}},data(){return{source:"load-line-source",lineLayer:"load-line-layer",lineLabelLayer:"load-line-label-layer"}},watch:{line:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.line&&(this.map.addSource(this.source,{type:"geojson",data:this.line}),this.map.addLayer({id:this.lineLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.75,"fill-color":["match",["get","val"],"LLGreen","#A0C0C0","LLRed","#F5A39D","LLBlue","#6B94E4","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{lbl} (Length < {shipLength}, {start} - {end})","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function cp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const ep=k(op,[["render",cp]]),Ap={name:"IdmTimezone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"time-zone-source",zoneLayer:"time-zone-layer",zoneLabelLayer:"time-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","offSet"],"-11.5","rgba(255,0,0,0.4)","-11","rgba(0,255,0,0.3)","-10.5","rgba(0,255,0,0.3)","-10","rgba(0,0,255,0.3)","-9.5","rgba(0,0,255,0.3)","-9","rgba(255,0,0,0.4)","-8.5","rgba(255,0,0,0.4)","-8","rgba(0,255,0,0.3)","-7.5","rgba(0,255,0,0.3)","-7","rgba(0,0,255,0.3)","-6.5","rgba(0,0,255,0.3)","-6","rgba(255,0,0,0.4)","-5.5","rgba(255,0,0,0.4)","-5","rgba(0,255,0,0.3)","-4.5","rgba(0,255,0,0.3)","-4","rgba(0,0,255,0.3)","-3.5","rgba(0,0,255,0.3)","-3","rgba(255,0,0,0.4)","-2.5","rgba(255,0,0,0.4)","-2","rgba(0,255,0,0.3)","-1.5","rgba(0,255,0,0.3)","-1","rgba(0,0,255,0.3)","-0.5","rgba(0,0,255,0.3)","+0","rgba(255,0,0,0.4)","+0.5","rgba(255,0,0,0.4)","+1","rgba(0,255,0,0.3)","+1.5","rgba(0,255,0,0.3)","+2","rgba(0,0,255,0.3)","+2.5","rgba(0,0,255,0.3)","+3","rgba(255,0,0,0.4)","+3.5","rgba(255,0,0,0.4)","+4","rgba(0,255,0,0.3)","+4.5","rgba(0,255,0,0.3)","+5","rgba(0,0,255,0.3)","+5.5","rgba(0,0,255,0.3)","+6","rgba(255,0,0,0.4)","+6.5","rgba(255,0,0,0.4)","+7","rgba(0,255,0,0.3)","+7.5","rgba(0,255,0,0.3)","+8","rgba(0,0,255,0.3)","+8.5","rgba(0,0,255,0.3)","+9","rgba(255,0,0,0.4)","+9.5","rgba(255,0,0,0.4)","+10","rgba(0,255,0,0.3)","+10.5","rgba(0,255,0,0.3)","+11","rgba(0,0,255,0.3)","+11.5","rgba(0,0,255,0.3)","rgba(255,0,0,0.4)"]}}),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{offSet}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,1]},paint:{"text-opacity":.8,"text-color":"#fff"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function tp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const ap=k(Ap,[["render",tp]]),qp={name:"IdmVoluntaryReportingArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"vra-source",areaLayer:"vra-layer",areaLabelLayer:"vra-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function ip(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const rp=k(qp,[["render",ip]]),np={name:"IdmSpecialArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"special-area-source",areaLayer:"special-area-layer",areaLabelLayer:"special-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.area.features.forEach(z=>{z.geometry.type==="Polygon"&&z.geometry.coordinates.forEach(b=>D.LngLatHelper.convertToMonotonicLng2(b))}),this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":["match",["get","val"],"DefaultStyle","rgb(0,0,0)","JWCriskArea","rgb(0,0,0)","rgb(0,0,0)"]}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":.4,"line-color":"rgb(0,0,0)"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function dp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const sp=k(np,[["render",dp]]),Wp={name:"IdmTerminator",props:{map:{type:Object},area:{type:Object}},data(){return{source:"terminator-source",layer:"terminator-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.layer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":"rgba(0, 0, 0, 0.4)"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function lp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const fp=k(Wp,[["render",lp]]),t3="",Lp={name:"IdmLatLng",props:{map:{type:Object},show:{type:Boolean},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{lngLat:void 0,source:"idm-lat-lng-source",layer:"idm-lat-lng-layer",labelLayer:"idm-lat-lng-label-layer",right:10}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){var z;this.map&&((z=this.map)==null||z.on("mousemove",this.handleMouseMove))},immediate:!0},toggleVersion:{handler(){var z,b;this.right=(((z=document.getElementsByClassName("legend-bars")[0])==null?void 0:z.clientWidth)||-10)+(((b=document.getElementsByClassName("right-bar")[0])==null?void 0:b.clientWidth)||0)+20},immediate:!0}},methods:{handleBind(){var z,b;this.show?((z=this.map)==null||z.on("zoomend",this.handleZoomEnd),this.handleRender()):(this.handleClear(),(b=this.map)==null||b.off("zoomend",this.handleZoomEnd))},handleMouseMove(z){const b=z.lngLat,p=D.LngLatHelper.lng2pretty(b.lng,2),o=D.LngLatHelper.lat2pretty(b.lat,2);this.lngLat={lng:p,lat:o}},handleComputeLatLngs(){var o;const z=(o=this.map)==null?void 0:o.getZoom();console.log(z);let b=30;z>4?b=10:z>3&&(b=15);const p=[];for(let O=-60;O<90;O+=b)p.push({type:"Feature",geometry:{type:"LineString",coordinates:[[-180,O],[180,O]]}});for(let O=-180;O<180;O+=b)p.push({type:"Feature",geometry:{type:"LineString",coordinates:[[O,-90],[O,90]]}});for(let O=180;O>-180;O-=b)for(let c=-60;c<90;c+=b)p.push({type:"Feature",geometry:{type:"Point",coordinates:[O,c]},properties:{val:`${c>0?c+" N":c===0?c:c*-1+" S"}, ${O>0?O+" E":O*-1+" W"}`}});return p},handleZoomEnd(){var b;const z=this.handleComputeLatLngs();(b=this.map)==null||b.getSource(this.source).setData(X.featureCollection(z))},handleRender(){if(this.map){const z=this.handleComputeLatLngs();this.map.addSource(this.source,{type:"geojson",data:{type:"FeatureCollection",features:z}}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"rgba(0, 0, 0, 0.3)","line-width":1}}),this.map.addLayer({id:this.labelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{val}","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}})}},handleClear(){var z,b,p,o,O,c;(z=this.map)!=null&&z.getLayer(this.layer)&&((b=this.map)==null||b.removeLayer(this.layer)),(p=this.map)!=null&&p.getLayer(this.labelLayer)&&((o=this.map)==null||o.removeLayer(this.labelLayer)),(O=this.map)!=null&&O.getSource(this.source)&&((c=this.map)==null||c.removeSource(this.source))}}},hp=(z=>(M.pushScopeId("data-v-ad66a24c"),z=z(),M.popScopeId(),z))(()=>M.createElementVNode("span",null,", ",-1));function Rp(z,b,p,o,O,c){return O.lngLat?(M.openBlock(),M.createElementBlock("div",{key:0,class:"lat-lng-tip",style:M.normalizeStyle({right:O.right+"px",bottom:p.bottom})},[M.createElementVNode("span",null,M.toDisplayString(O.lngLat.lat.pretty),1),hp,M.createElementVNode("span",null,M.toDisplayString(O.lngLat.lng.pretty),1)],4)):M.createCommentVNode("",!0)}const P0=k(Lp,[["render",Rp],["__scopeId","data-v-ad66a24c"]]),up={name:"IdmMeasure",props:{map:{type:Object},show:{type:Boolean}},data(){return{geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL"}},watch:{show:{handler(){var z,b,p;if(this.show)this.handleBind();else{(z=this.map)==null||z.getCanvas().removeEventListener("keydown",this.handleKeydown),(b=this.map)==null||b.off("mousemove",this.handleMove),(p=this.map)==null||p.off("dblclick",this.handleDblClick),this.map&&(this.map.getCanvas().style.cursor="grab");let o=this.geojson.find(O=>!O.closed);o&&this.handleClear(o,!0),this.geojson=this.geojson.filter(O=>!!O.closed),o=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(o)}},immediate:!0},map:{handler(){this.map&&(this.show?this.handleBind():this.handleUnbind())}}},methods:{handleBind(){var z,b,p,o,O;(z=this.map)==null||z.getCanvas().addEventListener("keydown",this.handleKeydown),(b=this.map)==null||b.on("mousemove",this.handleMove),(p=this.map)==null||p.on("dblclick",this.handleDblClick),(o=this.map)==null||o.on("click",this.handleClick),(O=this.map)==null||O.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair")},handleUnbind(){var z,b,p,o,O;(z=this.map)==null||z.getCanvas().removeEventListener("keydown",this.handleKeydown),(b=this.map)==null||b.off("mousemove",this.handleMove),(p=this.map)==null||p.off("dblclick",this.handleDblClick),(o=this.map)==null||o.off("click",this.handleClick),(O=this.map)==null||O.off("contextmenu",this.handleContextmenu);for(const c of this.geojson)this.handleClear(c,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")},handleKeydown(z){if(z.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const b=this.geojson.at(-1),p=b.features.filter(o=>o.geometry.type==="Point");p.length&&(p.at(-1).properties.mode=this.navigation),this.handleRender(b)}},handleDrag(z){var p,o,O,c,e,q,a,r,A,n;const b=(o=(p=z.target)==null?void 0:p._element)==null?void 0:o.id;if((b==null?void 0:b.split("-").length)===2){const s=this.geojson.filter(W=>W.id===b.split("-")[0])[0];this.pointMarkers[s.id].filter(W=>{var L;return((L=W._element)==null?void 0:L.id)===b})[0].setLngLat([(c=(O=z.target)==null?void 0:O._lngLat)==null?void 0:c.lng,(q=(e=z.target)==null?void 0:e._lngLat)==null?void 0:q.lat]);let R;s.features.forEach((W,L)=>{if(W.geometry.type==="Point"&&W.properties.id==b.split("-")[1]){R=L;return}});const f=s.features.filter(W=>W.geometry.type==="Point");this.handleTmpPointUpdate(s,f[R-1],{lng:(r=(a=z.target)==null?void 0:a._lngLat)==null?void 0:r.lng,lat:(n=(A=z.target)==null?void 0:A._lngLat)==null?void 0:n.lat,properties:f[R].properties},R===f.length-1?void 0:f[R+1])}},handleDragEnd(z){var p,o,O,c,e,q,a,r,A,n;const b=(o=(p=z.target)==null?void 0:p._element)==null?void 0:o.id;if((b==null?void 0:b.split("-").length)===2){const s=this.geojson.filter(f=>f.id===b.split("-")[0])[0];this.pointMarkers[s.id].filter(f=>{var W;return((W=f._element)==null?void 0:W.id)===b})[0].setLngLat([(c=(O=z.target)==null?void 0:O._lngLat)==null?void 0:c.lng,(q=(e=z.target)==null?void 0:e._lngLat)==null?void 0:q.lat]);const R=s.features.filter(f=>f.geometry.type==="Point"&&f.properties.id==b.split("-")[1])[0];R.geometry.coordinates=[(r=(a=z.target)==null?void 0:a._lngLat)==null?void 0:r.lng,(n=(A=z.target)==null?void 0:A._lngLat)==null?void 0:n.lat],s.features=s.features.filter(f=>f.geometry.type==="Point"),this.handlePointUpdate(s)}},handleContextmenu(z){var p,o,O,c;z.preventDefault(),(p=this.contextmenu)==null||p.remove();const b=(c=(O=(o=z.originalEvent)==null?void 0:o.target)==null?void 0:O.parentElement)==null?void 0:c.id;if((b==null?void 0:b.split("-").length)===2){const q=this.geojson.filter(a=>a.id===b.split("-")[0])[0].features.filter(a=>a.geometry.type==="Point");if(q.length>2&&q.filter(r=>r.properties.id===(b==null?void 0:b.split("-")[1]))[0]){const r=document.createElement("div");r.className="point-contextmenu-marker",r.innerHTML=`<span id="del-${b}" class="del-point">Del</span>`,this.contextmenu=new f0.Marker(r).setOffset([24,0]).setLngLat([z.lngLat.lng,z.lngLat.lat]).addTo(this.map)}}},handleClick(z){var p,o,O,c,e,q;(p=this.contextmenu)==null||p.remove();const b=z.originalEvent.target.className;if(b==="marker-close"){const a=(O=(o=z.originalEvent)==null?void 0:o.srcElement)==null?void 0:O.id,r=this.geojson.filter(A=>A.id===a)[0];r&&this.handleClear(r,!0),this.geojson=this.geojson.filter(A=>A.id!==a),!this.show&&!((c=this.geojson)!=null&&c.some(A=>A.closed))&&this.handleUnbind()}else if(b==="del-point"){const a=(q=(e=z.originalEvent.target.id)==null?void 0:e.replace("del-",""))==null?void 0:q.split("-"),r=this.geojson.filter(A=>A.id===a[0])[0];r.features=r.features.filter(A=>A.geometry.type==="Point"&&A.properties.id!==a[1]),this.handlePointUpdate(r)}else if(b!=="marker-label"&&this.show){let a=this.geojson.at(-1);a||(a=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(a)),a.features=a.features.filter(A=>A.geometry.type==="Point");const r=X.feature({type:"Point",coordinates:[z.lngLat.lng,z.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation});a.features.push(r),this.handlePointUpdate(a)}},handlePointUpdate(z){const b=z.features;if(b.length>1){let p=0;const o=[];for(let O=1;O<b.length;O++){const c=b[O-1],e=b[O],q=c.properties,a={lng:c.geometry.coordinates[0],lat:c.geometry.coordinates[1]},r={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},A=D.LaneHelper.calculateDistance(a,r,q.mode==="RL",2),n=D.LaneHelper.calculateBearing(a,r,q.mode==="RL",2);p=D.LngLatHelper.roundPrecision(p+A,2);let s;q.mode==="RL"?s=D.LngLatHelper.convertToMonotonicLng([a,r]):s=D.LngLatHelper.convertToMonotonicLng(D.LaneHelper.interpolateCoordinates(a,r,200));const d=X.lineString(s.map(R=>[R.lng,R.lat]));d.properties.dist=A,d.properties.bearing=n,d.properties.total=p,o.push(d)}b.push(...o),z.total=p}return this.handleRender(z),z},handleTmpPointUpdate(z,b,p,o){const O=X.featureCollection([]);let c,e;if(b){const a=b.properties,r={lng:b.geometry.coordinates[0],lat:b.geometry.coordinates[1]},A={lng:p.lng,lat:p.lat};c=D.LaneHelper.calculateDistance(r,A,a.mode==="RL",2),e=D.LaneHelper.calculateBearing(r,A,a.mode==="RL",2);let n;a.mode==="RL"?n=D.LngLatHelper.convertToMonotonicLng([r,A]):n=D.LngLatHelper.convertToMonotonicLng(D.LaneHelper.interpolateCoordinates(r,A,200));const s=X.lineString(n.map(d=>[d.lng,d.lat]));s.properties.dist=c,s.properties.bearing=e,O.features.push(s)}if(o){const a=p.properties,r=p,A={lng:o.geometry.coordinates[0],lat:o.geometry.coordinates[1]};c=D.LaneHelper.calculateDistance(r,A,a.mode==="RL",2),e=D.LaneHelper.calculateBearing(r,A,a.mode==="RL",2);let n;a.mode==="RL"?n=D.LngLatHelper.convertToMonotonicLng([r,A]):n=D.LngLatHelper.convertToMonotonicLng(D.LaneHelper.interpolateCoordinates(r,A,200));const s=X.lineString(n.map(d=>[d.lng,d.lat]));s.properties.dist=c,s.properties.bearing=e,O.features.push(s)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(O):this.map.addSource(this.tmpSource,{type:"geojson",data:O}),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":"#F44336","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":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});let q;if(o?q='<div class="marker-label">Drag and drop</div>':q=`<div class="marker-label">Total distance: <b>${D.LngLatHelper.roundPrecision((z.total??0)+c,2)}</b>nm, bearing: <b>${e}</b>°</div><div class="marker-label">${this.navigation==="RL"?"RL":"GC"} mode, using 'Shift' to switch</div><div class="marker-label">Double click to end</div>`,this.tipMarker)this.tipMarker._element.innerHTML=q,this.tipMarker.setLngLat([p.lng,p.lat]);else{const a=document.createElement("div");a.className="tip-marker",a.innerHTML=q,this.tipMarker=new f0.Marker(a).setOffset([140,0]).setLngLat([p.lng,p.lat]).addTo(this.map)}},handleMove(z){this.map.getCanvas().style.cursor="crosshair";let b=this.geojson.at(-1);b||(b=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(b));const p=b.features.filter(o=>o.geometry.type==="Point");p!=null&&p.length&&this.handleTmpPointUpdate(b,p.at(-1),{lng:z.lngLat.lng,lat:z.lngLat.lat})},handleDblClick(z){z.preventDefault();let b=this.geojson.at(-1);b.closed=!0,this.handleRender(b),b=X.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(b)},handleRender(z){var b;if((b=z==null?void 0:z.features)!=null&&b.length){const p=`${z.id}-${this.source}`,o=`${z.id}-${this.layer}`,O=`${z.id}-${this.labelLayer}`;this.map.getSource(p)?this.map.getSource(p).setData(z):this.map.addSource(p,{type:"geojson",data:z}),this.handleClear(z,!1),this.map.addLayer({id:o,type:"line",source:p,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2}}),this.map.addLayer({id:O,type:"symbol",source:p,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist}nm,{bearing}°","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});const c=z.features.filter(e=>e.geometry.type==="Point");for(const e of c){const q=document.createElement("div");q.id=`${z.id}-${e.properties.id}`,q.className=`${z.closed?"point-marker closed":"point-marker"}`,q.innerHTML='<div class="marker-circle"></div>';const a=new f0.Marker({element:q,draggable:!0,contextmenu:!0}).setLngLat(e.geometry.coordinates).addTo(this.map);a.on("drag",this.handleDrag),a.on("dragend",this.handleDragEnd),this.pointMarkers[z.id]?this.pointMarkers[z.id].push(a):this.pointMarkers[z.id]=[a]}if(z.closed){const e=c.at(-1),a=z.features.filter(A=>A.geometry.type==="LineString").at(-1),r=document.createElement("div");r.className="point-summary-marker",r.innerHTML=`<div id="${z.id}" class="marker-close">×</div><div class="marker-label">Tol: ${a.properties.total}nm</div>`,this.closeMarkers[z.id]=new f0.Marker(r).setOffset([60,0]).setLngLat(e.geometry.coordinates).addTo(this.map)}}},handleClear(z,b=!0){var c,e,q,a,r,A,n,s,d;const p=`${z.id}-${this.source}`,o=`${z.id}-${this.layer}`,O=`${z.id}-${this.labelLayer}`;(c=this.map)!=null&&c.getLayer(o)&&this.map.removeLayer(o),(e=this.map)!=null&&e.getLayer(O)&&this.map.removeLayer(O),(q=this.map)!=null&&q.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(a=this.map)!=null&&a.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(r=this.closeMarkers[z.id])==null||r.remove(),this.closeMarkers[z.id]=void 0,(A=this.pointMarkers[z.id])==null||A.forEach(R=>{R==null||R.remove()}),this.pointMarkers[z.id]=[],(n=this.tipMarker)==null||n.remove(),this.tipMarker=void 0,b&&((s=this.map)!=null&&s.getSource(p))&&this.map.removeSource(p),b&&((d=this.map)!=null&&d.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}};function mp(z,b,p,o,O,c){return M.openBlock(),M.createElementBlock("div")}const Bp=k(up,[["render",mp]]),q3="",Np={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},beforeLayer:{type:String,default:"grayland"},bottom:{type:String,default:"280px"},token:{type:String,default:""},toggleVersion:{type:Number},permission:{type:Number}},emits:["enc"],data(){return{helper:Z.CompanyHelper,vendor:this.$attrs.permission&Z.CompanyHelper.LEVEL.Supper?"hi":"i4",right:10}},watch:{vendor:{handler(){this.$emit("enc",this.vendor)},immediate:!0},toggleVersion:{handler(){var z;this.right=(((z=document.getElementsByClassName("right-bar")[0])==null?void 0:z.clientWidth)||0)+10},immediate:!0}},methods:{}},H0=z=>(M.pushScopeId("data-v-7301123d"),z=z(),M.popScopeId(),z),gp={key:0},yp={class:"bar-item"},Xp=[H0(()=>M.createElementVNode("span",{class:"iconfont"},"HI",-1))],wp=[H0(()=>M.createElementVNode("span",{class:"iconfont"},"I4",-1))];function Cp(z,b,p,o,O,c){const e=M.resolveComponent("ElTooltip");return p.enabled&&p.permission&O.helper.LEVEL.Supper?(M.openBlock(),M.createElementBlock("div",gp,[M.createElementVNode("div",{class:"menu-bar-box",style:M.normalizeStyle({position:"absolute",right:O.right+"px",bottom:p.bottom})},[M.createElementVNode("div",yp,[M.createVNode(e,{placement:"left",effect:"light",content:"Hifleet","show-after":1e3},{default:M.withCtx(()=>[M.createElementVNode("div",{class:M.normalizeClass(O.vendor==="hi"?"menu-icon active":"menu-icon"),onClick:b[0]||(b[0]=q=>O.vendor="hi")},Xp,2)]),_:1}),M.createVNode(e,{placement:"left",effect:"light",content:"I4insight","show-after":1e3},{default:M.withCtx(()=>[M.createElementVNode("div",{class:M.normalizeClass(O.vendor==="i4"?"menu-icon active":"menu-icon"),onClick:b[1]||(b[1]=q=>O.vendor="i4")},wp,2)]),_:1})])],4)])):M.createCommentVNode("",!0)}const Ep=k(Np,[["render",Cp],["__scopeId","data-v-7301123d"]]),n3="",Tp={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},weatherLayers:{type:Object,default:()=>({})},zoom:{type:Number,default:3},left:{type:String,default:"10px"},bottom:{type:String,default:"64px"},token:{type:String,default:""}},data(){return{layer:"world-12nm-v4-20231025"}},watch:{enabled:{handler(){this.enabled?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleRender(){var z;this.map?(console.log(this.map.style._layers),(z=this.map)!=null&&z.getLayer(this.layer)&&(this.map.setLayoutProperty(this.layer,"visibility","visible"),this.map.setPaintProperty(this.layer,"line-color","rgb(210,54,83)"),this.map.setPaintProperty(this.layer,"line-width",2))):setTimeout(()=>{this.handleRender()},500)},handleClear(){var z;(z=this.map)!=null&&z.getLayer(this.layer)&&this.map.setLayoutProperty(this.layer,"visibility","none")}}};function xp(z,b,p,o,O,c){return null}const Sp=k(Tp,[["render",xp]]),d3="",Dp={name:"IdmGLV2",components:{IdmGlLayer:a2,IdmWindBarb:n2,IdmWindParticle:f2,IdmCurrents:u2,IdmCurrentParticle:y2,IdmSigWave:C2,IdmSwell:x2,IdmPrmsl:I2,IdmIceberg:v2,IdmTropicals:k0,IdmPrecip3h:iM,IdmVisibility:WM,IdmWaterTemp:RM,IdmTemp:gM,IdmArctic:EM,IdmWarZone:Tz,IdmGmdssArea:Dz,IdmEcaZone:Pz,IdmAlertZone:jz,IdmPort:Op,IdmLoadLine:ep,IdmTimezone:ap,IdmVRA:rp,IdmSpecialArea:sp,IdmTerminator:fp,IdmLatLng:P0,IdmMeasure:Bp,IdmPoint:wz,IdmENC:Ep,IdmWorld12nm:Sp},props:{map:{type:Object,default:void 0},token:{type:String},ts:{type:String},beforeLayer:{type:String,default:""},toggleVersion:{type:Number},forecastModel:{type:String}},emits:["toggleVersion","activeWeatherLayers","showMeteoPoint"],data(){return{weatherLayers:{},activeWeatherLayers:[],weatherWeight:0,otherLayers:{},otherWeight:0,showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,meteo:void 0,source:"",gateway:"https://cbe.idmwx.com",mapProjection:"mercator",zoom:6,viewport:void 0,particleFactor:void 0,showRampColor:!1,activeWindLayer:!1,showWindFeather:!1,showWindParticle:!1,showCurrentIsoband:!1,showCurrentParticle:!1,enc:"",defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg",helper:new Q0}},watch:{ts:{handler(z,b){z&&b&&I(z).utc().format("yyyy-MM-DD HH")!==I(b).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.handleDateChange({tropicals:!1})})},immediate:!0},map:{handler(){this.map&&(this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.viewport=new S0(this.map),this.handleRampColorInitial())},immediate:!0},enc:{handler(z,b){var p,o,O,c,e,q,a,r;z?((o=(p=this.map)==null?void 0:p.getLayer(z))==null||o.setLayoutProperty("visibility","visible"),(c=(O=this.map)==null?void 0:O.getLayer(b))==null||c.setLayoutProperty("visibility","none")):((q=(e=this.map)==null?void 0:e.getLayer("i4"))==null||q.setLayoutProperty("visibility","none"),(r=(a=this.map)==null?void 0:a.getLayer("hi"))==null||r.setLayoutProperty("visibility","none"))}},activeWeatherLayers:{handler(){var z,b,p,o,O,c,e,q,a,r,A,n,s,d;if(!this.map)return!1;this.activeWeatherLayers.length>0?((b=(z=this.map)==null?void 0:z.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||b.setLayoutProperty("visibility","visible"),(o=this.map)!=null&&o.getLayer((p=this.viewport)==null?void 0:p.rampColorLayer)&&((O=this.map)!=null&&O.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((e=this.map)==null||e.moveLayer((c=this.viewport)==null?void 0:c.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(a=this.map)!=null&&a.getLayer((q=this.viewport)==null?void 0:q.particleLayer)&&((r=this.map)!=null&&r.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((n=this.map)==null||n.moveLayer((A=this.viewport)==null?void 0:A.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id))):(d=(s=this.map)==null?void 0:s.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||d.setLayoutProperty("visibility","none"),this.$emit("activeWeatherLayers",this.activeWeatherLayers)},immediate:!0},showPoint:{handler(){this.$emit("showMeteoPoint",this.showPoint)}}},methods:{async fetchWeatherLayers(z={tropicals:!1}){var O,c,e,q,a,r,A,n;const b=new Date().valueOf();let p=0,o=0;if(this.map){const s=((O=this.map)==null?void 0:O.getZoom())+1,d=(c=this.map)==null?void 0:c.getBounds(),R=`${d._sw.lng},${d._sw.lat},${d._ne.lng},${d._ne.lat}`;if(this.particleFactor){const f=Z.LayerHelper.WEATHER_LAYERS.find(W=>{var L;return((L=W.peer)==null?void 0:L.weight)===this.particleFactor.weight});this.particleFactor.particle?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,W;if(z.tropicals||this.weatherWeight&256&&(W=this.weatherLayers.tropicals,W&&(f-=256,W.version=Math.random()+1)),f>0){const L=await l0.get(`${this.gateway}/api/arc/weather/layers/links?l=${f}&v=${this.source}&z=${s}&bbox=${R}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(o=new Date().valueOf()-(b+p),console.log("weather links elapsed: ",o,", total: ",p+=o),((e=L==null?void 0:L.data)==null?void 0:e.code)===0){const h=(q=L==null?void 0:L.data)==null?void 0:q.data,N=[];for(const B in h)B==="ice-edge"&&(h[B]="https://idm-hz.oss-cn-hangzhou.aliyuncs.com/test/sea_ice_contours.geojson"),B!=="tropicals"&&N.push(l0.get(h[B],{headers:{Authorization:this.token||this.defaultMeteoToken,key:B},responseType:/\.(jpg|png)$/.test(h[B])?"blob":"json"}).catch(v=>{console.log(`[${B}] fetch layer error: ${v}`)}));const w=await Promise.all(N);this.weatherLayers={},w.map(B=>{var F,U,K,p0;const v=((F=B==null?void 0:B.data)==null?void 0:F.data)||(B==null?void 0:B.data),H=(K=(U=B==null?void 0:B.config)==null?void 0:U.headers)==null?void 0:K.key;H&&v&&(this.weatherLayers[H]={raw:v,type:((p0=B==null?void 0:B.config)==null?void 0:p0.responseType)==="blob"?"image":"json",etime:this.ts})}),h.tropicals&&l0.get(h.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"}}).then(B=>{var F,U,K;const v=D.TropicalHelper.convert2Geojson(((F=B==null?void 0:B.data)==null?void 0:F.data)||(B==null?void 0:B.data)),H=(K=(U=B==null?void 0:B.config)==null?void 0:U.headers)==null?void 0:K.key;this.weatherLayers[H]={data:v,active:!0,cached:!1,type:"json",etime:this.ts,version:Math.random()+1}})}if(o=new Date().valueOf()-(b+p),console.log("weather layers elapsed: ",o,", total: ",p+=o),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const h=(a=this.weatherLayers["swell-direction"])==null?void 0:a.raw,N=(r=this.weatherLayers["swell-height"])==null?void 0:r.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:h,height:{raw:N},etime:this.ts}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const h=(A=this.weatherLayers["current-direction"])==null?void 0:A.raw,N=(n=this.weatherLayers["current-speed"])==null?void 0:n.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:h,speed:{raw:N},etime:this.ts}}}W&&(W.etime=this.ts,W.cached=!0,this.weatherLayers.tropicals=W)}this.handleWeatherLayerToggle(),this.handleDragEndWithZoom4Json()}this.$emit("toggleVersion",Math.random())},async fetchOtherLayers(z={all:!1,dayNight:!1,enc:!1,world12nm:!1}){var b,p,o,O;if(this.map){let c=this.otherWeight;if(c){let e=!1,q=!1;if(this.otherWeight&2048&&(c=this.otherWeight-2048,e=!0),this.otherWeight&8192&&(c=c-8192,q=!0),c){if(z.all){const a=await l0.get(`${this.gateway}/api/arc/other/layers/links?l=${c}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((b=a==null?void 0:a.data)==null?void 0:b.code)===0){const r=(p=a==null?void 0:a.data)==null?void 0:p.data,A=[];for(const s in r)A.push(l0.get(r[s],{headers:{Authorization:this.token||this.defaultMeteoToken,key:s}}));const n=await Promise.all(A);this.otherLayers={enc:e,world12nm:q},n.map(s=>{var f,W,L;const d=((f=s==null?void 0:s.data)==null?void 0:f.data)||(s==null?void 0:s.data),R=(L=(W=s==null?void 0:s.config)==null?void 0:W.headers)==null?void 0:L.key;this.otherLayers[R]=d})}}else if(z.dayNight&&c&1024){const a=await l0.get(`${this.gateway}/api/arc/other/layers/links?l=1024&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((o=a==null?void 0:a.data)==null?void 0:o.code)===0){const r=(O=a==null?void 0:a.data)==null?void 0:O.data,A=[];for(const s in r)A.push(l0.get(r[s],{headers:{Authorization:this.token||this.defaultMeteoToken,key:s}}));(await Promise.all(A)).map(s=>{var f,W,L;const d=((f=s==null?void 0:s.data)==null?void 0:f.data)||(s==null?void 0:s.data),R=(L=(W=s==null?void 0:s.config)==null?void 0:W.headers)==null?void 0:L.key;this.otherLayers[R]=d})}}}else this.otherLayers={enc:e,world12nm:q}}else this.otherLayers={};this.handleBeforeLayerToggle()}},handleRampColorState(){var z;if(this.showRampColor=!1,this.showWindParticle=!1,this.showCurrentParticle=!1,(z=this.particleFactor)!=null&&z.particle)this.showRampColor=!0,this.particleFactor.key==="wind"&&(this.showWindParticle=!0),this.particleFactor.key==="current"&&(this.showCurrentParticle=!0);else for(const b of this.activeWeatherLayers)["png","jpg"].includes(b.type)&&(this.showRampColor=!0);this.activeWindLayer=!!this.activeWeatherLayers.find(b=>b.key==="wind"),this.$refs.layer&&(this.$refs.layer.activeWeatherLayers=this.activeWeatherLayers)},handleRampColorInitial(){var z,b,p,o,O,c,e,q,a,r,A,n;this.viewport.map.getSource((z=this.viewport)==null?void 0:z.rampColorSource)||this.viewport.map.addSource((b=this.viewport)==null?void 0:b.rampColorSource,{type:"canvas",canvas:(p=this.viewport)==null?void 0:p.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((o=this.viewport)==null?void 0:o.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(O=this.viewport)==null?void 0:O.rampColorLayer,source:(c=this.viewport)==null?void 0:c.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((e=this.viewport)==null?void 0:e.particleSource)||this.viewport.map.addSource((q=this.viewport)==null?void 0:q.particleSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(A=this.viewport)==null?void 0:A.particleLayer,source:(n=this.viewport)==null?void 0:n.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDragEndWithZoom4Json(){var r,A,n,s;const z=new Date().valueOf();let b=0,p=0;const o=(r=this.map)==null?void 0:r.getBounds(),O=this.map.getZoom(),c=D.LngLatHelper.convertToStdLng(o._sw.lng),e=D.LngLatHelper.convertToStdLng(o._ne.lng),q=Math.floor(o._sw.lat),a=Math.ceil(o._ne.lat);for(const d in this.weatherLayers)if(this.weatherLayers[d].active&&this.weatherLayers[d].type==="json"){this.weatherLayers[d].active=!1,this.weatherLayers[d].version=Math.random()+1;let R=[];if(["swell","current"].includes(d)){const f=((A=this.weatherLayers[d])==null?void 0:A.direction)||{};for(const W in f)if(W>q&&W<a&&(!(O<=this.zoom)||W%(O<this.zoom/2?5:3)===0)){const L=f[W].lng;c>e?L.forEach((h,N)=>{var w;if((h>=c&&h<=180||h>=-180&&h<=e)&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const B=X.point([h,W],{val:f[W].val[N],spd:(w=f[W].spd)==null?void 0:w[N]});R.push(B)}}):L.forEach((h,N)=>{var w;if(h>=c&&h<=e&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const B=X.point([h,W],{val:f[W].val[N],spd:(w=f[W].spd)==null?void 0:w[N]});R.push(B)}})}if(p=new Date().valueOf()-(z+b),console.log("direction elapsed: ",p,", total: ",b+=p),d==="swell"){const W=this.weatherLayers[d].height;if(W){if(!W.data){const L=[];for(const h in(n=W.raw)==null?void 0:n.LineString){const N=W.raw.LineString[h];for(const w of N)L.push(X.lineString(w,{val:Number(h)}));W.data=X.featureCollection(L)}}if(W.data){const L=this.handleBboxClip(W.data,o);R=R.concat(L)}p=new Date().valueOf()-(z+b),console.log("height elapsed: ",p,", total: ",b+=p)}}if(d==="current"){const W=this.weatherLayers[d].speed;if(W){if(!W.data){const h=[];for(const N in(s=W.raw)==null?void 0:s.Polygon){const w=W.raw.Polygon[N];for(const B of w)h.push(X.polygon(B,{val:Number(N)}))}W.data=X.featureCollection(h)}const L=O<this.zoom?W.data.features.filter(h=>h.properties.val>.5):W.data.features;R=R.concat(L),p=new Date().valueOf()-(z+b),console.log("speed elapsed: ",p,", total: ",b+=p)}}}else if(d==="wind"){const f=this.weatherLayers.wind.raw;for(const W in f)if(W>q&&W<a&&(!(O<=this.zoom)||W%(O<this.zoom/2?5:3)===0)){const L=f[W].lng;c>e?L.forEach((h,N)=>{if((h>=c&&h<=180||h>=-180&&h<=e)&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const w=X.point([h,W],{val:f[W].val[N],spd:f[W].spd[N]});R.push(w)}}):L.forEach((h,N)=>{if(h>=c&&h<=e&&(!(O<=this.zoom)||h%(O<this.zoom/2?5:3)===0)){const w=X.point([h,W],{val:f[W].val[N],spd:f[W].spd[N]});R.push(w)}})}p=new Date().valueOf()-(z+b),console.log("wind barb elapsed: ",p,", total: ",b+=p)}else if(d==="sig-wave-height"){if(this.weatherLayers[d].data)R=this.weatherLayers[d].data;else{const f=this.weatherLayers[d].raw;if(f){const W=[];for(const L in f.Polygon){const h=f.Polygon[L];for(const N of h)W.push(X.polygon(N,{val:Number(L)}))}for(const L in f.Point){const h=f.Point[L];for(const N of h)W.push(...X.points(N,{val:Number(L)}).features)}R=R.concat(W)}}p=new Date().valueOf()-(z+b),console.log("sigWave elapsed: ",p,", total: ",b+=p)}else if(d==="prmsl"){if(this.weatherLayers[d].data)R=this.weatherLayers[d].data;else{const f=this.weatherLayers[d].raw;if(f){const W=[];for(const L in f.LineString){const h=f.LineString[L];for(const N of h)W.push(X.lineString(N,{val:Number(L)}))}for(const L in f.Point)f.Point[L].lng.forEach((h,N)=>{h=D.LngLatHelper.convertToStdLng(h),W.push(X.point([h,L],{val:f.Point[L].val[N],type:f.Point[L].type[N]}))});R=R.concat(W)}}p=new Date().valueOf()-(z+b),console.log("prmsl elapsed: ",p,", total: ",b+=p)}else if(d==="arctic"||d==="iceberg"){if(this.weatherLayers[d].data)R=this.weatherLayers[d].data;else{const f=this.weatherLayers[d].raw;if(f){const W=[];for(const L in f.LineString){const h=f.LineString[L];for(const N of h)W.push(X.lineString(N,{val:Number(L)}))}R=R.concat(W)}}p=new Date().valueOf()-(z+b)}console.log(d," elapsed: ",p,", total: ",b+=p),R.length&&(this.weatherLayers[d].data=X.featureCollection(R)),this.weatherLayers[d].active=!0,this.weatherLayers[d].version=Math.random()+1}},handleDragEndWithZoom4Image(){for(const z in this.weatherLayers)this.weatherLayers[z].active&&this.weatherLayers[z].type==="image"&&(this.weatherLayers[z].active=!0,this.weatherLayers[z].version=Math.random()+1)},handleBboxClip(z,b){const p=[],o=D.LngLatHelper.convertToStdLng(b._sw.lng),O=D.LngLatHelper.convertToStdLng(b._ne.lng);return z.features.forEach(c=>{if(c.geometry.type!=="Point")if(o>O){let e=[o,b._sw.lat,180,b._ne.lat],q=X.bboxClip(c,e);q.geometry.coordinates.length&&p.push(q),e=[-180,b._sw.lat,O,b._ne.lat],q=X.bboxClip(c,e),q.geometry.coordinates.length&&p.push(q)}else{const e=[o,b._sw.lat,O,b._ne.lat],q=X.bboxClip(c,e);q.geometry.coordinates.length&&p.push(q)}else p.push(c)}),p},handleWeatherLayerToggle(){var z;for(const b in this.weatherLayers)this.weatherLayers[b].active=!1,this.weatherLayers[b].version=Math.random()+1;for(const b of this.activeWeatherLayers){let p=b.key;p.indexOf("swell")>-1?p="swell":p.indexOf("current")>-1&&(p="current"),this.weatherLayers[p]&&(this.weatherLayers[p].active=!0,this.weatherLayers[p].version=Math.random()+1,((z=this.particleFactor)==null?void 0:z.key)===p&&this.weatherLayers[`${p}-particle`]&&(this.weatherLayers[`${p}-particle`].active=this.particleFactor.particle))}this.handleBeforeLayerToggle()},handleBeforeLayerToggle(){var z,b,p,o,O,c,e,q,a,r,A,n,s,d;(z=this.map)!=null&&z.getLayer(this.beforeLayer)&&((b=this.activeWeatherLayers)!=null&&b.length||(p=this.otherLayers)!=null&&p["war-zones"]||(o=this.otherLayers)!=null&&o["gmdss-areas"]||(O=this.otherLayers)!=null&&O["load-lines"]||(c=this.otherLayers)!=null&&c["high-risk-area"]||(e=this.otherLayers)!=null&&e["time-zones"]||(q=this.otherLayers)!=null&&q.pirates||(a=this.otherLayers)!=null&&a.ports||(r=this.otherLayers)!=null&&r.enc||(A=this.otherLayers)!=null&&A.world12nm||(n=this.otherLayers)!=null&&n["voluntary-reporting-area"]||(s=this.otherLayers)!=null&&s["eca-zones"]||(d=this.otherLayers)!=null&&d["special-area"])&&this.map.setLayoutProperty(this.beforeLayer,"visibility","visible")},handleDateChange(z={tropicals:!1}){this.fetchWeatherLayers(z),this.fetchOtherLayers({dayNight:!0})},handleWeatherLayerChange(z,b){this.showWindParticle=!1,this.showCurrentParticle=!1,this.map?setTimeout(()=>{this.activeWeatherLayers=JSON.parse(JSON.stringify(z));const p=this.activeWeatherLayers.some(c=>{var e;return["wind","current"].includes(c.key)&&(!((e=Object.keys(c))!=null&&e.some(q=>q==="particle"))||!!c.particle)}),o=this.activeWeatherLayers.some(c=>["png","jpg"].includes(c.type));p&&!o?(this.activeWeatherLayers.forEach(c=>{c.key==="wind"&&c.particle&&(this.particleFactor=c,this.showWindParticle=!0),c.key==="current"&&c.particle&&(this.particleFactor=c,this.showCurrentParticle=!0)}),this.particleFactor.particle=!0):o&&this.particleFactor&&(this.particleFactor.particle=!1);const O=z==null?void 0:z.reduce((c,e)=>c+(c&(e==null?void 0:e.weight)?0:e==null?void 0:e.weight),0);this.weatherWeight!==O||this.source!==b?(this.source=b,this.weatherWeight=O,this.fetchWeatherLayers({tropicals:!1})):this.handleWeatherLayerToggle()}):setTimeout(()=>{this.handleWeatherLayerChange(z,b)},500)},handleOtherLayerChange(z){if(!this.map)setTimeout(()=>{this.handleOtherLayerChange(z)},500);else{const b=z==null?void 0:z.reduce((p,o)=>p+(o==null?void 0:o.weight),0);z.find(p=>p.key==="enc")?this.enc="i4":this.enc="",this.otherWeight!=b&&(this.otherWeight=b,this.fetchOtherLayers({all:!0}))}},handle3dToggle(z){var b,p,o,O,c,e,q,a,r,A,n,s,d,R,f,W,L,h,N,w;z?(this.map.setProjection("globe"),this.mapProjection="globe",(p=this.map)!=null&&p.getLayer((b=this.viewport)==null?void 0:b.rampColorLayer)&&((o=this.map)!=null&&o.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((c=this.map)==null||c.moveLayer((O=this.viewport)==null?void 0:O.rampColorLayer,this.helper.mapboxCustomer.layers.water.id)),(q=this.map)!=null&&q.getLayer((e=this.viewport)==null?void 0:e.particleLayer)&&((a=this.map)!=null&&a.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((A=this.map)==null||A.moveLayer((r=this.viewport)==null?void 0:r.particleLayer,this.helper.mapboxCustomer.layers.water.id)),this.map.off("zoomend",this.handleDragEndWithZoom4Json),this.map.off("dragend",this.handleDragEndWithZoom4Json),this.map.off("move",this.handleDragEndWithZoom4Image)):(this.map.setProjection("mercator"),this.mapProjection="mercator",this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.handleDragEndWithZoom4Image(),this.handleDragEndWithZoom4Json(),(s=this.map)!=null&&s.getLayer((n=this.viewport)==null?void 0:n.rampColorLayer)&&((d=this.map)!=null&&d.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((f=this.map)==null||f.moveLayer((R=this.viewport)==null?void 0:R.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(L=this.map)!=null&&L.getLayer((W=this.viewport)==null?void 0:W.particleLayer)&&((h=this.map)!=null&&h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((w=this.map)==null||w.moveLayer((N=this.viewport)==null?void 0:N.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)))},handleParticle(z){this.particleFactor=z,this.weatherLayers[z.key]&&(this.weatherLayers[z.key].particle=z.particle),this.activeWeatherLayers.map(o=>{var O;return o.key===z.key?o.particle=z.particle:(O=Object.keys(o))!=null&&O.some(c=>c==="particle")&&(o.particle=!1),o});let b=localStorage.getItem("activeWeatherLayersCache");const p=JSON.parse(b)||[];p==null||p.forEach(o=>{var O;o.key===z.key?o.particle=z.particle:(O=Object.keys(o))!=null&&O.some(c=>c==="particle")&&(o.particle=!1)}),localStorage.setItem("activeWeatherLayersCache",JSON.stringify(p)),this.fetchWeatherLayers({tropicals:!1})},handleToggleVersion(){this.$emit("toggleVersion",Math.random())}}},Ip={key:0,ref:"mapGlHome",className:"map-gl-home"};function kp(z,b,p,o,O,c){var o0,c0,W0,e0,T,V,M0,C,G,A0,t0,i0,Y,t,i,l,u,y,E,Q,S,_,X0,C0,E0,T0,x0;const e=M.resolveComponent("IdmGlLayer"),q=M.resolveComponent("IdmENC"),a=M.resolveComponent("IdmWorld12nm"),r=M.resolveComponent("IdmSigWave"),A=M.resolveComponent("IdmSwell"),n=M.resolveComponent("IdmPrmsl"),s=M.resolveComponent("IdmIceberg"),d=M.resolveComponent("IdmTropicals"),R=M.resolveComponent("IdmCurrents"),f=M.resolveComponent("IdmCurrentParticle"),W=M.resolveComponent("IdmWindBarb"),L=M.resolveComponent("IdmWindParticle"),h=M.resolveComponent("IdmPrecip3h"),N=M.resolveComponent("IdmVisibility"),w=M.resolveComponent("IdmWaterTemp"),B=M.resolveComponent("IdmTemp"),v=M.resolveComponent("IdmArctic"),H=M.resolveComponent("IdmWarZone"),F=M.resolveComponent("IdmGmdssArea"),U=M.resolveComponent("IdmEcaZone"),K=M.resolveComponent("IdmAlertZone"),p0=M.resolveComponent("IdmPort"),r0=M.resolveComponent("IdmLoadLine"),n0=M.resolveComponent("IdmTimezone"),O0=M.resolveComponent("IdmVRA"),a0=M.resolveComponent("IdmSpecialArea"),J=M.resolveComponent("IdmTerminator"),d0=M.resolveComponent("IdmLatLng"),s0=M.resolveComponent("IdmMeasure"),q0=M.resolveComponent("IdmPoint");return p.map?(M.openBlock(),M.createElementBlock("div",Ip,[M.createVNode(e,M.mergeProps({ref:"layer",map:p.map,"toggle-version":p.toggleVersion,"map-projection":O.mapProjection,showWindFeather:O.showWindFeather,showWindParticle:O.showWindParticle,showCurrentIsoband:O.showCurrentIsoband,showCurrentParticle:O.showCurrentParticle,token:p.token,gateway:O.gateway},z.$attrs,{forecastModel:p.forecastModel,onWeather:c.handleWeatherLayerChange,onOther:c.handleOtherLayerChange,onToggleWindParticle:b[0]||(b[0]=b0=>O.showWindParticle=b0),onToggleWindFeather:b[1]||(b[1]=b0=>O.showWindFeather=b0),onToggleCurrentParticle:b[2]||(b[2]=b0=>O.showCurrentParticle=b0),onToggleCurrentIsoband:b[3]||(b[3]=b0=>O.showCurrentIsoband=b0),onCoordinate:b[4]||(b[4]=b0=>O.showCoord=b0),onMeasure:b[5]||(b[5]=b0=>O.showMeasure=b0),onPoint:b[6]||(b[6]=b0=>O.showPoint=b0),on3d:c.handle3dToggle,onHandleToggleVersion:c.handleToggleVersion}),null,16,["map","toggle-version","map-projection","showWindFeather","showWindParticle","showCurrentIsoband","showCurrentParticle","token","gateway","forecastModel","onWeather","onOther","on3d","onHandleToggleVersion"]),M.createVNode(q,M.mergeProps({map:p.map,token:p.token,enabled:(o0=O.otherLayers)==null?void 0:o0.enc,"toggle-version":p.toggleVersion},z.$attrs,{onEnc:b[7]||(b[7]=b0=>O.enc=b0)}),null,16,["map","token","enabled","toggle-version"]),M.createVNode(a,M.mergeProps({map:p.map,token:p.token,"weather-layers":O.weatherLayers,enabled:(c0=O.otherLayers)==null?void 0:c0.world12nm},z.$attrs),null,16,["map","token","weather-layers","enabled"]),M.createVNode(r,M.mergeProps({map:p.map,"sig-wave":(W0=O.weatherLayers)==null?void 0:W0["sig-wave-height"],"before-layer":p.beforeLayer,activeWeatherLayers:O.activeWeatherLayers},z.$attrs),null,16,["map","sig-wave","before-layer","activeWeatherLayers"]),M.createVNode(A,M.mergeProps({map:p.map,swell:(e0=O.weatherLayers)==null?void 0:e0.swell,"before-layer":p.beforeLayer,activeWeatherLayers:O.activeWeatherLayers},z.$attrs),null,16,["map","swell","before-layer","activeWeatherLayers"]),M.createVNode(n,M.mergeProps({map:p.map,prmsl:(T=O.weatherLayers)==null?void 0:T.prmsl,"before-layer":p.beforeLayer,"active-weather-layers":O.activeWeatherLayers},z.$attrs),null,16,["map","prmsl","before-layer","active-weather-layers"]),M.createVNode(s,M.mergeProps({map:p.map,iceberg:(V=O.weatherLayers)==null?void 0:V.iceberg,"before-layer":p.beforeLayer},z.$attrs),null,16,["map","iceberg","before-layer"]),M.createVNode(d,M.mergeProps({map:p.map,date:p.ts,tropicals:(M0=O.weatherLayers)==null?void 0:M0.tropicals,"before-layer":p.beforeLayer},z.$attrs),null,16,["map","date","tropicals","before-layer"]),M.createVNode(R,M.mergeProps({map:p.map,"map-projection":O.mapProjection,current:(C=O.weatherLayers)==null?void 0:C.current,"before-layer":p.beforeLayer,showCurrentIsoband:O.showCurrentIsoband,showCurrentParticle:O.showCurrentParticle,"margin-bottom":O.activeWindLayer?O.showRampColor?"84px":"56px":O.showRampColor?"56px":"30px","toggle-version":p.toggleVersion,"weather-layers":O.weatherLayers},z.$attrs,{onParticle:c.handleParticle,onHandleToggleVersion:c.handleToggleVersion}),null,16,["map","map-projection","current","before-layer","showCurrentIsoband","showCurrentParticle","margin-bottom","toggle-version","weather-layers","onParticle","onHandleToggleVersion"]),M.createVNode(f,M.mergeProps({viewport:O.viewport,factor:(G=O.weatherLayers)==null?void 0:G["current-particle"],"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(W,M.mergeProps({ref:"windBarb",map:p.map,"map-projection":O.mapProjection,wind:(A0=O.weatherLayers)==null?void 0:A0.wind,current:(t0=O.weatherLayers)==null?void 0:t0.current,"before-layer":p.beforeLayer,"margin-bottom":O.showRampColor?"56px":"30px",showWindFeather:O.showWindFeather,showWindParticle:O.showWindParticle},z.$attrs,{"toggle-version":p.toggleVersion,"weather-layers":O.weatherLayers,onParticle:c.handleParticle}),null,16,["map","map-projection","wind","current","before-layer","margin-bottom","showWindFeather","showWindParticle","toggle-version","weather-layers","onParticle"]),M.createVNode(L,M.mergeProps({viewport:O.viewport,factor:(i0=O.weatherLayers)==null?void 0:i0["wind-particle"],"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(h,M.mergeProps({viewport:O.viewport,factor:(Y=O.weatherLayers)==null?void 0:Y.precip3h,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(N,M.mergeProps({viewport:O.viewport,factor:(t=O.weatherLayers)==null?void 0:t.visibility,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(w,M.mergeProps({viewport:O.viewport,factor:(i=O.weatherLayers)==null?void 0:i["water-temp"],"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(B,M.mergeProps({viewport:O.viewport,factor:(l=O.weatherLayers)==null?void 0:l.temp,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(v,M.mergeProps({viewport:O.viewport,factor:(u=O.weatherLayers)==null?void 0:u.arctic,"before-layer":p.beforeLayer,"toggle-version":p.toggleVersion},z.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),M.createVNode(H,M.mergeProps({map:p.map,zone:(y=O.otherLayers)==null?void 0:y["war-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(F,M.mergeProps({map:p.map,area:(E=O.otherLayers)==null?void 0:E["gmdss-areas"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","area","before-layer"]),M.createVNode(U,M.mergeProps({map:p.map,zone:(Q=O.otherLayers)==null?void 0:Q["eca-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(K,M.mergeProps({map:p.map,zone:(S=O.otherLayers)==null?void 0:S["alert-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(p0,M.mergeProps({map:p.map,port:(_=O.otherLayers)==null?void 0:_.ports,"before-layer":p.beforeLayer,forecastModel:p.forecastModel},z.$attrs),null,16,["map","port","before-layer","forecastModel"]),M.createVNode(r0,M.mergeProps({map:p.map,line:(X0=O.otherLayers)==null?void 0:X0["load-lines"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","line","before-layer"]),M.createVNode(n0,M.mergeProps({map:p.map,zone:(C0=O.otherLayers)==null?void 0:C0["time-zones"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","zone","before-layer"]),M.createVNode(O0,M.mergeProps({map:p.map,area:(E0=O.otherLayers)==null?void 0:E0["voluntary-reporting-area"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","area","before-layer"]),M.createVNode(a0,M.mergeProps({map:p.map,area:(T0=O.otherLayers)==null?void 0:T0["special-area"],"before-layer":p.beforeLayer},z.$attrs),null,16,["map","area","before-layer"]),M.createVNode(J,M.mergeProps({map:p.map,area:(x0=O.otherLayers)==null?void 0:x0["day-night"]},z.$attrs),null,16,["map","area"]),M.createVNode(d0,M.mergeProps({map:p.map,show:O.showCoord,"toggle-version":p.toggleVersion},z.$attrs),null,16,["map","show","toggle-version"]),M.createVNode(s0,M.mergeProps({map:p.map,show:O.showMeasure},z.$attrs),null,16,["map","show"]),M.createVNode(q0,M.mergeProps({ref:"idmPoint",map:p.map,show:O.showPoint,meteo:O.meteo,ts:p.ts,token:p.token,gateway:O.gateway,forecastModel:p.forecastModel},z.$attrs),null,16,["map","show","meteo","ts","token","gateway","forecastModel"])],512)):M.createCommentVNode("",!0)}const j0=k(Dp,[["render",kp]]),Pp={install(z){z.component("MapboxGL",j0),z.component("TropicalGL",k0),z.component("LatLngGL",P0)}};P.LatLngGL=P0,P.MapboxGL=j0,P.MapboxGLPlugin=Pp,P.MapboxHelper=Q0,P.ParticleSchema=z0,P.TropicalGL=k0,P.Viewport=S0,P.WebGL=h0,P.WebGLSchema=$,Object.defineProperty(P,Symbol.toStringTag,{value:"Module"})});