@idmwx/idmui-gl4 0.7.4 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -7020,8 +7020,7 @@ const Nl = {
|
|
|
7020
7020
|
default: {}
|
|
7021
7021
|
},
|
|
7022
7022
|
timeZone: {
|
|
7023
|
-
type: Number
|
|
7024
|
-
default: 0
|
|
7023
|
+
type: Number
|
|
7025
7024
|
},
|
|
7026
7025
|
token: {
|
|
7027
7026
|
type: String
|
|
@@ -7084,7 +7083,7 @@ const Nl = {
|
|
|
7084
7083
|
return function(t) {
|
|
7085
7084
|
if (t) {
|
|
7086
7085
|
const e = D(t).utcOffset(this.timeZone), o = this.timeZone < 0 ? this.timeZone : "+" + this.timeZone;
|
|
7087
|
-
return `${e == null ? void 0 : e.format("MMM-DD/HHmm")} ( UTC${o} ) ${e == null ? void 0 : e.fromNow()} `;
|
|
7086
|
+
return console.log("timeZone changed 111", this.timeZone), `${e == null ? void 0 : e.format("MMM-DD/HHmm")} ( UTC${o} ) ${e == null ? void 0 : e.fromNow()} `;
|
|
7088
7087
|
}
|
|
7089
7088
|
return "-";
|
|
7090
7089
|
};
|
|
@@ -7133,7 +7132,7 @@ const Nl = {
|
|
|
7133
7132
|
},
|
|
7134
7133
|
timeZone: {
|
|
7135
7134
|
handler() {
|
|
7136
|
-
this.handleRefresh();
|
|
7135
|
+
console.log("timeZone changed 222", this.timeZone), this.handleRefresh();
|
|
7137
7136
|
}
|
|
7138
7137
|
}
|
|
7139
7138
|
},
|
package/dist/index.umd.cjs
CHANGED
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<path d="M10 2.5V17.5" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
192
192
|
<path d="M5 7.5L10 2.5L15 7.5" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
193
193
|
</svg>`,s="data:image/svg+xml;base64,"+window.btoa(unescape(encodeURIComponent(c))),p.src=s;const h=[p];let d=0;h.forEach(g=>{g.onload=()=>{d++,this.map.hasImage("currentDirIcon")||this.map.addImage("currentDirIcon",p),d===1&&this.map.addLayer({id:this.directionLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-image":"currentDirIcon","icon-size":["step",["get","spd"],.3,.5,.4,1,.6,1.5,.8,2,1],"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"val",stops:[[0,0],[360,360]]}},paint:{"icon-opacity":this.opacity}},this.beforeLayer)}}),i=new Date().valueOf()-(a+r),console.log("[current] add elapsed: ",i,", total: ",r+=i)}}},handleClear(){this.map.getLayer(this.speedLayer)&&this.map.removeLayer(this.speedLayer),this.map.getLayer(this.speedLabelLayer)&&this.map.removeLayer(this.speedLabelLayer),this.map.getLayer(this.directionLayer)&&this.map.removeLayer(this.directionLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Yi(o,t,a,r,i,l){return null}const Zi=V(Ui,[["render",Yi]]),Zn="",Xi={name:"IdmCurrentParticle",props:{factor:{type:Object},viewport:{type:jt},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,wrapper:void 0,animation:void 0,particleContext:void 0,particleTexture:void 0,particleOptions:{fadeOpacity:.96,speedFactor:4,dropRate:.005,dropRateBump:.01,uvRange:[-2.5,2.6],sRange:[0,3],scale:.3},paused:!1,initial:!0,right:10}},watch:{"factor.version":{async handler(){var o,t;console.log("factor.version",this.viewport),(o=this.factor)!=null&&o.active?await this.handleRender():this.handleClear(),(t=this.factor)!=null&&t.particle||this.handleClearParticle()}},"factor.particle":{async handler(o,t){o!==t&&t!==void 0&&(console.log("factor.particle",o,t,this.viewport),o?(this.handleClear(),await this.handleRender()):this.handleClearParticle())}},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{async handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;await this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[current-particle] add elapsed: ",a,", total: ",t+=a)}},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0/255,"rgba(95, 143, 197,1)"],[5/255,"rgba(64,127,115,1)"],[10/255,"rgb(58,164,58)"],[15/255,"rgb(191,182,67)"],[20/255,"rgb(197,154,68)"],[30/255,"rgb(160,70,94)"],[40/255,"rgb(138,84,166)"],[45/255,"rgb(82,113,165)"],[50/255,"rgb(84,142,152)"],[65/255,"rgb(150,181,184)"],[80/255,"rgb(195,194,194)"],[254/255,"rgb(195,194,194)"],[1,"rgb(195,194,194)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.uvFragmentSchema);this.program=t,this.aPositionBuffer=a}this.handleParticleSetup()},handleParticleSetup(){if(!this.particleContext){this.particleContext=this.viewport.particleCanvas.getContext("webgl");const o=[[0,"rgb(183,224,224)"],[1,"rgb(199,202,202)"],[.6,"rgb(199,202,202)"]];this.wrapper=this.webgl.bindParticle(this.particleContext,ce.vertexSchema,ce.fragmentSchema,ce.quadVertSchema,ce.screenFragmentSchema,ce.updateFragmentSchema),this.wrapper.color=this.webgl.setup(this.particleContext,o,!0,16,16),this.wrapper={...this.wrapper,...this.webgl.setupParticle(this.particleContext,9e3),...this.webgl.resize(this.viewport,this.particleContext)},this.viewport.map.on("resize",this.handleResize),this.viewport.map.on("movestart",this.handlePause),this.viewport.map.on("moveend",this.handlePlay)}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o),this.particleTexture=this.webgl.createTexture(this.particleContext,this.particleContext.NEAREST,this.particleContext.LINEAR,this.particleContext.CLAMP_TO_EDGE,o),this.wrapper.image=o}this.initial&&(this.initial=!1,this.handlePlay()),this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer,this.particleOptions),this.viewport.toggle(!0)},handleResize(){this.wrapper={...this.wrapper,...this.webgl.resize(this.viewport,this.particleContext)}},handlePause(){this.paused=!0,this.animation&&(cancelAnimationFrame(this.animation),this.viewport.toggleParticle(!1))},handlePlay(){this.paused=!1,this.animation=requestAnimationFrame(()=>{this.webgl.drawParticle(this.viewport,this.particleContext,this.particleTexture,this.wrapper,this.particleOptions),this.viewport.toggleParticle(!0),this.handlePlay()})},handleClearParticle(){var o,t,a,r,i,l,n;(o=this.viewport)==null||o.toggleParticle(!1),this.particleContext=void 0,this.initial=!0,(a=(t=this.viewport)==null?void 0:t.map)==null||a.off("resize",this.handleResize),(i=(r=this.viewport)==null?void 0:r.map)==null||i.off("movestart",this.handlePause),(n=(l=this.viewport)==null?void 0:l.map)==null||n.off("moveend",this.handlePlay),this.handlePause()},handleClear(){var o;(o=this.viewport)==null||o.toggle(!1),this.context=void 0,this.etime=void 0,this.handleClearParticle()}}},qi={key:0};function Ki(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",qi,[e.createElementVNode("div",{class:"legend-bars-gl4 current",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"kts",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"0.4",-1),e.createElementVNode("span",null,"0.8",-1),e.createElementVNode("span",null,"1.6",-1),e.createElementVNode("span",null,"2",-1),e.createElementVNode("span",null,"3.2",-1)]),4)])):e.createCommentVNode("",!0)}const Qi=V(Xi,[["render",Ki]]),Xn="",Ji={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[sig-wave] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},$i={key:0};function er(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",$i,[e.createElementVNode("div",{class:"legend-bars-gl4 sig-wave",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"m",-1),e.createElementVNode("span",null,"0.5",-1),e.createElementVNode("span",null,"1",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"2",-1),e.createElementVNode("span",null,"6",-1),e.createElementVNode("span",null,"9",-1)]),4)])):e.createCommentVNode("",!0)}const tr=V(Ji,[["render",er],["__scopeId","data-v-79ce70e2"]]),or={name:"IdmSigWave",props:{map:{type:Object},sigWaveHeight:{type:Object},beforeLayer:{type:String},menuToggle:{type:Object}},data(){return{right:10,toggle:!1,showCaption:!1,source:"sig-wave-height-source",heightLayer:"sig-wave-height-layer",heightLabelLayer:"sig-wave-height-label-layer",empty:N.featureCollection([])}},watch:{"sigWaveHeight.version":{handler(){var o;(o=this.sigWaveHeight)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){this.$nextTick(()=>{var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10})},immediate:!0}},methods:{handleMenuToggle(){this.toggle=!this.toggle,this.showCaption=!this.showCaption},handleRender(){var o,t;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.sigWaveHeight){const a=new Date().valueOf();let r=0,i=0,l=this.empty;this.sigWaveHeight.active&&(l=this.sigWaveHeight.data),(o=this.map)!=null&&o.getSource(this.source)?((t=this.map)==null||t.getSource(this.source).setData(l),i=new Date().valueOf()-(a+r),console.log("[sig-wave-height] update elapsed: ",i,", total: ",r+=i)):(this.map.addSource(this.source,{type:"geojson",data:l}),this.map.addLayer({id:this.heightLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-opacity":.8,"fill-color":["step",["get","val"],"rgba(0,235,156,0)",2,"rgba(0,235,156,0.4)",3,"#ffed00",4,"#ff9800",5,"#f77800",6,"#e4711e",7,"#e06128",8,"#dc5132",9,"#d5453c",10,"#cd3a46",12,"#be2c50",14,"#b41a5a"]}},this.beforeLayer),this.map.addLayer({id:this.heightLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","symbol-spacing":100,"text-field":["format",["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":10},paint:{"text-color":["step",["get","val"],"rgba(0, 0, 0, 0.7)",9,"rgba(255,255,255,0.8)"]}},this.beforeLayer),i=new Date().valueOf()-(a+r),console.log("[sig-wave-height] add elapsed: ",i,", total: ",r+=i))}},handleClear(){this.map.getLayer(this.heightLayer)&&this.map.removeLayer(this.heightLayer),this.map.getLayer(this.heightLabelLayer)&&this.map.removeLayer(this.heightLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function ar(o,t,a,r,i,l){return null}const ir=V(or,[["render",ar]]),rr={name:"IdmSwell",props:{map:{type:Object},swell:{type:Object},beforeLayer:{type:String},activeWeatherLayers:{type:Array}},data(){return{source:"swell-source",directionLayer:"swell-direction-layer",heightLayer:"swell-height-layer",heightLabelLayer:"swell-height-label-layer",empty:N.featureCollection([])}},watch:{"swell.version":{handler(){var o;(o=this.swell)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0}},methods:{handleRender(){var o,t;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.swell){const a=new Date().valueOf();let r=0,i=0,l=this.empty;if(this.swell.active&&(l=this.swell.data),(o=this.map)!=null&&o.getSource(this.source))(t=this.map)==null||t.getSource(this.source).setData(l),i=new Date().valueOf()-(a+r),console.log("[swell] update elapsed: ",i,", total: ",r+=i);else{this.map.addSource(this.source,{type:"geojson",data:l}),this.map.addLayer({id:this.heightLayer,type:"line",source:this.source,filter:["==","$type","LineString"],paint:{"line-opacity":1,"line-width":1,"line-color":["match",["get","val"],2,"rgba(255,255,0,0.9)",3,"rgba(255,149,0,0.9)",4,"rgba(244,67,54,0.9)",5,"rgba(162,2,31,0.9)",6,"rgba(162,2,31,0.9)","rgba(162,2,31,0.9)"]}},this.beforeLayer),this.map.addLayer({id:this.heightLabelLayer,type:"symbol",source:this.source,filter:["==","$type","LineString"],layout:{"symbol-placement":"line","text-rotation-alignment":"viewport","text-field":"{val}m","text-size":11},paint:{"text-color":["step",["get","val"],"black",4,"white",5,"white",6,"white"],"text-halo-color":["match",["get","val"],2,"rgba(255,255,0,0.7)",3,"rgba(255,149,0,0.7)",4,"rgba(244,67,54,0.7)",5,"rgba(162,13,2,0.7)",6,"rgba(162,13,2,0.7)","rgba(162,13,2,0.7)"],"text-halo-width":2}},this.beforeLayer);const n=new Image(72,72);let c='<svg t="1752721890391" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12518" width="200" height="200"><path d="M481.386772 959.514313 481.386772 334.713224c-56.000432 37.288255-92.523253 55.876612-142.312216 57.787124 85.834924-84.884272 130.528845-195.161888 172.552961-328.434218 40.259936 133.272329 89.39296 238.731196 172.622546 328.434218-54.105269-5.729491-86.780459-21.201881-146.338926-58.965973l0 625.979938L481.386772 959.514313z" p-id="12519" fill="#ffffff"></path></svg>',s="data:image/svg+xml;base64,"+window.btoa(unescape(encodeURIComponent(c)));n.src=s,n.onload=()=>{this.map.hasImage("swellDirIconWhite")||this.map.addImage("swellDirIconWhite",n),this.map.addLayer({id:this.directionLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-image":"swellDirIconWhite","icon-size":{base:1,stops:[[2,.32],[6,.5]]},"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"val",stops:[[0,180],[360,540]]}},paint:{"icon-opacity":1}},this.beforeLayer)},i=new Date().valueOf()-(a+r),console.log("[swell] add elapsed: ",i,", total: ",r+=i)}}},handleClear(){var o,t,a;((o=this.activeWeatherLayers)==null?void 0:o.length)===0&&(t=this.map)!=null&&t.getLayer("country-boundaries")&&((a=this.map)==null||a.setLayoutProperty("country-boundaries","visibility","none")),this.map.getLayer(this.heightLayer)&&this.map.removeLayer(this.heightLayer),this.map.getLayer(this.heightLabelLayer)&&this.map.removeLayer(this.heightLabelLayer),this.map.getLayer(this.directionLayer)&&this.map.removeLayer(this.directionLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function lr(o,t,a,r,i,l){return e.openBlock(),e.createElementBlock("div")}const nr=V(rr,[["render",lr]]),sr={name:"IdmPrmsl",props:{map:{type:Object},prmsl:{type:Object},beforeLayer:{type:String},showRampColor:{type:Boolean},activeWeatherLayers:{type:Array},theme:{type:String}},data(){return{right:10,toggle:!1,source:"prmsl-source",layer:"prmsl-layer",labelLayer:"prmsl-label-layer",pointLabelLayer:"prmsl-point-label-layer",empty:N.featureCollection([])}},watch:{"prmsl.version":{handler(){var o;(o=this.prmsl)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0}},methods:{handleMenuToggle(){this.toggle=!this.toggle},handleRender(){var o,t,a;if(console.log("prmsl",this.beforeLayer),!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.prmsl){const r=new Date().valueOf();let i=0,l=0,n=this.empty;this.prmsl.active&&(n=this.prmsl.data),(o=this.map)!=null&&o.getSource(this.source)?((t=this.map)==null||t.getSource(this.source).setData(n),l=new Date().valueOf()-(r+i),console.log("[prmsl] update elapsed: ",l,", total: ",i+=l)):(this.map.addSource(this.source,{type:"geojson",data:n}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],paint:{"line-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"line-width":1,"line-opacity":this.theme==="light"?1:.3}},this.beforeLayer),(a=this.map)==null||a.addLayer({id:this.labelLayer,type:"symbol",source:this.source,minzoom:4,filter:["==","$type","LineString"],layout:{"symbol-placement":"line","text-rotation-alignment":"viewport","text-field":"{val}","text-size":10},paint:{"text-color":"black","text-halo-color":"rgba(255,255,255,1)","text-opacity":.7,"text-halo-width":1}},this.beforeLayer),setTimeout(()=>{this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":["format",["get","type"],{"font-scale":1.03},`
|
|
194
|
-
`,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},paint:{"text-color":this.theme==="light"?["step",["get","val"],"rgba(0, 0, 0, 0.5)",920,"rgba(0, 0, 0, 0.5)",980,"rgba(0, 0, 0, 0.7)",1100,"rgba(0, 0, 0, 0.7)"]:["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-width":this.theme==="light"?1:0}},this.beforeLayer)},0),l=new Date().valueOf()-(r+i),console.log("[prmsl] add elapsed: ",l,", total: ",i+=l))}},handleClear(){this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},cr={key:0,class:"legend-tip-btn-gl4"};function mr(o,t,a,r,i,l){var s;const n=e.resolveComponent("VBtn"),c=e.resolveComponent("VTooltip");return(s=a.prmsl)!=null&&s.active?(e.openBlock(),e.createElementBlock("div",cr,[e.createElementVNode("div",{class:"menu-bar-box pa-1 rounded",style:e.normalizeStyle({right:i.right+"px"})},[e.createVNode(c,{text:"Map Layers",location:"left"},{activator:e.withCtx(({props:p})=>[e.createVNode(n,e.mergeProps(p,{"min-width":"32",width:"32",height:"32",class:"text-none pa-0",color:i.toggle?"primary":"",onClick:l.handleMenuToggle}),{default:e.withCtx(()=>t[0]||(t[0]=[e.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[0]},1040,["color","onClick"])]),_:1})],4)])):e.createCommentVNode("",!0)}const dr=V(sr,[["render",mr]]),qn="",hr={name:"IdmIceEdge",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()}},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[ice-edge] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgba(86, 169, 230, 0)"],[1/255,"rgba(86, 169, 230, 0)"],[25/255,"rgba(86, 169, 230, 1)"],[25/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 84, 39, 1)"],[250/255,"rgba(230, 84, 39, 1)"],[1,"rgba(230, 84, 39, 1)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},pr={key:0};function gr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",pr,[e.createElementVNode("div",{class:"legend-bars-gl4 ice-edge",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",{style:{color:"rgba(var(--v-theme-black), 0.7)"}},"%",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"40",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"70",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"90",-1),e.createElementVNode("span",null,null,-1)]),4)])):e.createCommentVNode("",!0)}const ur=V(hr,[["render",gr]]),Kn="",fr={name:"IdmCover",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()}},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[ice-cover] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgba(68, 1, 84, 0)"],[1/255,"rgba(63, 72, 137, 0)"],[50/255,"rgba(53, 125, 177, 1)"],[100/255,"rgba(33, 145, 140, 1)"],[150/255,"rgba(45, 178, 125, 1)"],[200/255,"rgba(112, 207, 87, 1)"],[250/255,"rgba(253, 231, 37, 0.8)"],[1,"rgba(253, 231, 37, 1)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},yr={key:0};function br(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",yr,[e.createElementVNode("div",{class:"legend-bars-gl4 ice-cover",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"%",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"40",-1),e.createElementVNode("span",null,"60",-1),e.createElementVNode("span",null,"80",-1),e.createElementVNode("span",null,"100",-1)]),4)])):e.createCommentVNode("",!0)}const wr=V(fr,[["render",br],["__scopeId","data-v-9696d73b"]]),Qn="",xr={name:"IdmThickness",props:{factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[ice-thickness] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgba(4, 6, 19, 0)"],[1/255,"rgba(4, 6, 19, 0)"],[20/255,"rgba(51, 50, 102, 1)"],[40/255,"rgba(63, 82, 158, 1)"],[50/255,"rgba(66, 123, 183, 1)"],[60/255,"rgba(92, 161, 197, 1)"],[80/255,"rgba(134, 199, 212, 0.7)"],[100/255,"rgba(134, 199, 212, 1)"],[150/255,"rgba(234, 253, 2536, 0.8)"],[250/255,"rgba(234, 253, 2536, 0.9)"],[1,"rgba(234, 253, 2536, 1)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},_r={key:0};function kr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",_r,[e.createElementVNode("div",{class:"legend-bars-gl4 ice-thickness",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"m",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"0.6",-1),e.createElementVNode("span",null,"1",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"2",-1),e.createElementVNode("span",null,"3",-1)]),4)])):e.createCommentVNode("",!0)}const vr=V(xr,[["render",kr]]),Jn="",zr={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[precip3h] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Lr={key:0};function Cr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Lr,[e.createElementVNode("div",{class:"legend-bars-gl4 precip3h",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"mm",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"2",-1),e.createElementVNode("span",null,"3",-1),e.createElementVNode("span",null,"7",-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"30",-1)]),4)])):e.createCommentVNode("",!0)}const Pr=V(zr,[["render",Cr]]),$n="",Sr={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{right:10,program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[visibility] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Nr={key:0};function Tr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Nr,[e.createElementVNode("div",{class:"legend-bars-gl4 visibility",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"nm",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"0.5",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"3",-1),e.createElementVNode("span",null,"9",-1)]),4)])):e.createCommentVNode("",!0)}const Mr=V(Sr,[["render",Tr]]),es="",Er={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[water-temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Dr={key:0};function Br(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Dr,[e.createElementVNode("div",{class:"legend-bars-gl4 water-temp",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"°C",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"30",-1),e.createElementVNode("span",null,"40",-1)]),4)])):e.createCommentVNode("",!0)}const Ir=V(Er,[["render",Br]]),ts="",Ar={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Rr={key:0};function Vr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Rr,[e.createElementVNode("div",{class:"legend-bars-gl4 temp",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"°C",-1),e.createElementVNode("span",null,"-20",-1),e.createElementVNode("span",null,"-10",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"30",-1),e.createElementVNode("span",null,"40",-1)]),4)])):e.createCommentVNode("",!0)}const Or=V(Ar,[["render",Vr]]),os="",jr={name:"IdmGlLayer",components:{IdmWindBarb:ji,IdmWindParticle:Wi,IdmCurrentDirection:Zi,IdmCurrentParticle:Qi,IdmWave:tr,IdmSigWaveHeight:ir,IdmSwell:nr,IdmPrmsl:dr,IdmIceEdge:ur,IdmIceCover:wr,IdmIceThickness:vr,IdmPrecip3h:Pr,IdmVisibility:Mr,IdmWaterTemp:Ir,IdmTemp:Or},props:{isLogin:{type:Boolean,default:!1},theme:{type:String},map:{type:Object},mapFeather:{type:String},gateway:{type:String},assistGateway:{type:Array,default:[]},token:{type:String},defaultMeteoToken:{type:String},top:{type:Number,default:60},menuToggle:{type:Object,default:{}},realTime:{type:String},forecastModel:{type:String},beforeLayer:{type:String}},emits:["menuToggle","weatherCheckList","autoActive"],data(){return{right:10,toggle:!1,autoActive:!0,allLayers:[...Me.LayerHelper.WEATHER_LAYERS],tagLayers:[...Me.LayerHelper.WEATHER_LAYERS.filter(o=>!o.hide)],checkList:[],renderKey:"",iceToggleValue:void 0,weatherLayers:{},activeWeatherLayers:[],cache:{v:"0.0.1",versionKey:"weatherLayerCacheVersionGL4",autoActiveKey:"autoActiveCacheGL4",checkListKey:"weatherCheckListCacheGL4"},models:{},zoom:6,viewport:void 0,particleFactor:void 0,showWindParticle:!0,showCurrentParticle:!0,legendToggle:!1,legend:{barbs:[2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,0],current:[{label:"0-0.5 kts",size:.3,color:"rgb(58, 164, 58)"},{label:"0.5-1 kts",size:.4,color:"#ffff00"},{label:"1-1.5 kts",size:.6,color:"#ff9500"},{label:"1.5-2 kts",size:.8,color:"#f44336"},{label:">= 2 kts",size:1,color:"#e4711e"}],sigWaveHeight:[{label:"< 2 m",color:"rgba(0,235,156,0)"},{label:"2-3 m",color:"rgba(0,235,156,0.4)"},{label:"3-4 m",color:"#ffed00"},{label:"4-5 m",color:"#ff9800"},{label:"5-6 m",color:"#f77800"},{label:"6-7 m",color:"#e4711e"},{label:"7-8 m",color:"#e06128"},{label:"8-9 m",color:"#dc5132"},{label:"9-10 m",color:"#d5453c"},{label:"10-12 m",color:"#cd3a46"},{label:"12-14 m",color:"#be2c50"},{label:"> 14 m",color:"#aa1a5a"}]}}},computed:{computeDateZ(){return function(o){var t;if(o){const a=P(o);return`${(t=a==null?void 0:a.utc())==null?void 0:t.format("MMM-DD/HHmm")}Z`}return"-"}},overlaysKeys(){return this.tagLayers.filter(o=>o.overlays).map(o=>o.key)},rendersKeys(){return this.tagLayers.filter(o=>!o.overlays).map(o=>o.key)},showTipMenu(){return this.checkList.includes("wind")||this.checkList.includes("current-direction")||this.checkList.includes("sig-wave-height")},barbsIconName(){var t,a,r;const o=[];for(let i=0;i<((a=(t=this.legend)==null?void 0:t.barbs)==null?void 0:a.length);i++){const l=((r=this.legend)==null?void 0:r.barbs[i])||0,n=l<10?`00${l}kts`:l<100?`0${l}kts`:`${l}kts`;o.push("icon-a-"+n)}return o}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.weatherLayers,this.$nextTick(()=>{var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10})}},forecastModel:{handler(o,t){o&&o!==t&&this.handleWeatherLayerChange({sourceChanged:!0})}},map:{handler(){this.map&&(this.map.on("move",this.handleMove4Weather),this.viewport=new jt(this.map),this.handleRampColorInitial(),this.handleWeatherLayerChange(),this.$emit("weatherCheckList",this.checkList))},immediate:!0},realTime:{handler(o,t){o&&t&&P(o).utc().format("yyyy-MM-DD HH")!==P(t).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.fetchWeatherLayers()})},immediate:!0},renderKey:{handler(o,t){o&&o!==t?this.checkList=[o]:!o&&t&&(this.checkList=this.checkList.filter(a=>a!==t))}},checkList:{handler(o,t){this.handleCheckListChange(o,t),this.$emit("weatherCheckList",o),this.autoActive&&this.checkList.length?this.$parent.$refs.idmBottomBar.handleToggle(!0):this.$parent.$refs.idmBottomBar.handleToggle(!1)}},autoActive:{handler(o){localStorage.setItem(this.cache.autoActiveKey,this.autoActive),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(t=>this.checkList.includes(t.key)):[],this.handleWeatherLayerChange(),this.autoActive&&this.checkList.length?this.$parent.$refs.idmBottomBar.handleToggle(!0):this.$parent.$refs.idmBottomBar.handleToggle(!1),this.$emit("autoActive",this.autoActive)}},iceToggleValue:{handler(o){o&&(this.checkList=["ice-forecast",this.iceToggleValue])}},showWindParticle:{handler(o){let t="wind-particle";this.weatherLayers[t].particle=o,this.weatherLayers[t].version=Math.random()+1}},showCurrentParticle:{handler(o){let t="current-particle";this.weatherLayers[t].particle=o,this.weatherLayers[t].version=Math.random()+1}},isLogin:{handler(o){o?(this.fetchModels(),this.fetchWeatherLayers()):this.models={}},immediate:!0}},mounted(){this.fetchCache(),this.fetchModels(),this.fetchWeatherLayers()},methods:{arraysEqual(o,t){if((o==null?void 0:o.length)!==(t==null?void 0:t.length))return!1;for(let a=0;a<(o==null?void 0:o.length);a++)if((o==null?void 0:o[a])!==(t==null?void 0:t[a]))return!1;return!0},fetchCache(){const o=localStorage.getItem(this.cache.versionKey);this.cache.v!==o&&(localStorage.removeItem(this.cache.autoActiveKey),localStorage.removeItem(this.cache.checkListKey),localStorage.setItem(this.cache.versionKey,this.cache.v));let t=localStorage.getItem(this.cache.autoActiveKey);this.autoActive=t!=="false",localStorage.setItem(this.cache.autoActiveKey,this.autoActive),t=localStorage.getItem(this.cache.checkListKey),this.checkList=JSON.parse(t||"['wind', 'sig-wave-height']"),this.checkList.find(a=>this.rendersKeys.includes(a))&&(this.renderKey=this.checkList.find(a=>this.rendersKeys.includes(a))),localStorage.setItem(this.cache.checkListKey,JSON.stringify(this.checkList))},handleMenuToggle(){this.$emit("menuToggle","weatherLayers")},handleFastWeatherToggle(o){let t=[];this.checkList.includes(o)?t=this.checkList.filter(a=>a!==o):t=[...this.checkList,o],this.handleCheckListChange(t,this.checkList)},handleCheckListChange(o,t){if(this.arraysEqual(o,t))return!1;const a=[...new Set(o)],r=a==null?void 0:a.filter(l=>!(t!=null&&t.includes(l)))[0],i=t==null?void 0:t.filter(l=>!(a!=null&&a.includes(l)))[0];r&&(r==="ice-cover"||r==="ice-thickness"||r==="ice-forecast"?(this.checkList=["ice-forecast",this.iceToggleValue||"ice-cover"],this.iceToggleValue=this.iceToggleValue||"ice-cover"):this.rendersKeys.includes(r)?this.checkList=[r]:(this.checkList=a.filter(l=>!this.rendersKeys.includes(l)),this.renderKey=void 0)),i&&(i==="ice-forecast"?(this.checkList=a.filter(l=>!["ice-cover","ice-thickness","ice-forecast"].includes(l)),this.iceToggleValue=void 0):this.checkList=a),this.checkList.includes("wind-particle")&&(this.showWindParticle=!0),this.checkList.includes("current-particle")&&(this.showCurrentParticle=!0),localStorage.setItem(this.cache.checkListKey,JSON.stringify(a)),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(l=>a.includes(l.key)):[],this.handleWeatherLayerChange()},async fetchModels(){this.models={};const o=await $.get(`${this.gateway}/api/arc/meteo2/models2`,{headers:{Authorization:this.token||this.defaultMeteoToken}});(o==null?void 0:o.data.code)===0&&(this.models=o==null?void 0:o.data.data)},async fetchWeatherLayers(o={}){var i,l,n,c,s,p,h,d,g;const t=new Date().valueOf();let a=0,r=0;if(this.map){const b=((i=this.map)==null?void 0:i.getZoom())+1,f=(l=this.map)==null?void 0:l.getBounds(),v=`${f._sw.lng},${f._sw.lat},${f._ne.lng},${f._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const k=Me.LayerHelper.WEATHER_LAYERS.find(T=>{var z;return((z=T.peer)==null?void 0:z.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&k.weight?this.weatherWeight:this.weatherWeight+k.weight:this.weatherWeight=this.weatherWeight&k.weight?this.weatherWeight-k.weight:this.weatherWeight}if(this.weatherWeight>0){let k=this.weatherWeight;if(k>0){const T=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],z=await $.get(`${T}/api/arc/weather/layers2/links?l=${k}&v=${this.forecastModel}&z=${b}&bbox=${v}&t=${this.realTime}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(r=new Date().valueOf()-(t+a),console.log("weather links elapsed: ",r,", total: ",a+=r),((c=z==null?void 0:z.data)==null?void 0:c.code)===0){const x=(s=z==null?void 0:z.data)==null?void 0:s.data,y=[];for(const _ in x)y.push($.get(x[_],{headers:{Authorization:this.token||this.defaultMeteoToken,key:_},responseType:/\.(jpg|png)$/.test(x[_])?"blob":"json"}).catch(u=>{console.log(`[${_}] fetch layer error: ${u}`)}));const w=await Promise.all(y);this.weatherLayers={},w.map(_=>{var A,O,j,R;const u=((A=_==null?void 0:_.data)==null?void 0:A.data)||(_==null?void 0:_.data);let L=(j=(O=_==null?void 0:_.config)==null?void 0:O.headers)==null?void 0:j.key;L&&u&&(this.weatherLayers[L]={raw:u,type:((R=_==null?void 0:_.config)==null?void 0:R.responseType)==="blob"?"image":"json",etime:z.data.etime})})}if(r=new Date().valueOf()-(t+a),console.log("weather layers elapsed: ",r,", total: ",a+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const x=(p=this.weatherLayers["swell-direction"])==null?void 0:p.raw,y=(h=this.weatherLayers["swell-height"])==null?void 0:h.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:x,height:{raw:y},etime:z.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const x=(d=this.weatherLayers["current-direction"])==null?void 0:d.raw,y=(g=this.weatherLayers["current-speed"])==null?void 0:g.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:x,speed:{raw:y},etime:z.data.etime}}}}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json()}},handleWeatherLayerToggle(){for(const o in this.weatherLayers)this.weatherLayers[o].active=!1,this.weatherLayers[o].version=Math.random()+1;for(const o of this.activeWeatherLayers){let t=o.key;t==="current-direction"&&(t="current"),this.weatherLayers[t]&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1,t==="wind-particle"&&(this.weatherLayers[t].particle=this.showWindParticle),t==="current-particle"&&(this.weatherLayers[t].particle=this.showCurrentParticle))}},handleWeatherLayerChange(o={sourceChanged:!1}){this.map?setTimeout(()=>{var a;const t=(a=this.activeWeatherLayers)==null?void 0:a.reduce((r,i)=>r+(r&(i==null?void 0:i.weight)?0:i==null?void 0:i.weight),0);o!=null&&o.sourceChanged||this.weatherWeight!==t?(this.weatherWeight=t,this.fetchWeatherLayers()):this.handleWeatherLayerToggle()}):setTimeout(()=>{this.handleWeatherLayerChange()},500)},handleRampColorInitial(){var o,t,a,r,i,l,n,c,s,p,h,d;this.viewport.map.getSource((o=this.viewport)==null?void 0:o.rampColorSource)||this.viewport.map.addSource((t=this.viewport)==null?void 0:t.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(i=this.viewport)==null?void 0:i.rampColorLayer,source:(l=this.viewport)==null?void 0:l.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((c=this.viewport)==null?void 0:c.particleSource,{type:"canvas",canvas:(s=this.viewport)==null?void 0:s.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((p=this.viewport)==null?void 0:p.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(h=this.viewport)==null?void 0:h.particleLayer,source:(d=this.viewport)==null?void 0:d.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var p,h,d,g,b,f,v;const o=new Date().valueOf();let t=0,a=0;const r=(p=this.map)==null?void 0:p.getBounds(),i=(h=this.map)==null?void 0:h.getZoom(),l=I.LngLatHelper.convertToStdLng(r._sw.lng),n=I.LngLatHelper.convertToStdLng(r._ne.lng),c=Math.floor(r._sw.lat),s=Math.ceil(r._ne.lat);for(const k in this.weatherLayers){let T=!1;if(this.weatherLayers[k].active&&this.weatherLayers[k].type==="json"){let z=[];if(k==="swell"){T=!0;const x=((d=this.weatherLayers[k])==null?void 0:d.direction)||{};for(const w in x)if(w>c&&w<s&&(!(i<=this.zoom)||w%(i<2?10:i<4?5:3)===0)){const _=x[w].lng;l>n?_.forEach((u,L)=>{var A,O,j,R,U,Y;if(i<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if((u>=l&&u<=180||u>=-180&&u<=n)&&(!(i<=this.zoom)||u%(i<2?10:i<4?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}}):_.forEach((u,L)=>{var A,O,j,R,U,Y;if(l<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if(u>=l&&u<=n&&(!(i<=this.zoom)||u%(i<2?10:i<4?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}})}a=new Date().valueOf()-(o+t),console.log("swell direction elapsed: ",a,", total: ",t+=a);const y=this.weatherLayers[k].height;if(y){if(!y.data){const w=[];for(const _ in(g=y.raw)==null?void 0:g.LineString){const u=y.raw.LineString[_];for(const L of u)w.push(N.lineString(L,{val:Number(_)}));y.data=N.featureCollection(w)}}if(y.data){const w=this.handleBboxClip(y.data,r);z=z.concat(w)}a=new Date().valueOf()-(o+t),console.log("swell height elapsed: ",a,", total: ",t+=a)}}else if(k==="current"){T=!0;const x=((b=this.weatherLayers[k])==null?void 0:b.direction)||{};for(const w in x)if(w>c&&w<s&&(!(i<=this.zoom)||w%(i<2?10:i<4?5:3)===0)){const _=x[w].lng;l>n?_.forEach((u,L)=>{var A,O,j,R,U,Y;if(i<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if((u>=l&&u<=180||u>=-180&&u<=n)&&(!(i<=this.zoom)||u%(i<2?10:i<4?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}}):_.forEach((u,L)=>{var A,O,j,R,U,Y;if(l<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if(u>=l&&u<=n&&(!(i<=this.zoom)||u%(i<this.zoom/2?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}})}a=new Date().valueOf()-(o+t),console.log("current direction elapsed: ",a,", total: ",t+=a);const y=this.weatherLayers[k].speed;if(y){if(!y.data){const _=[];for(const u in(f=y.raw)==null?void 0:f.Polygon){const L=y.raw.Polygon[u];for(const A of L)_.push(N.polygon(A,{val:Number(u)}))}y.data=N.featureCollection(_)}const w=i<this.zoom?y.data.features.filter(_=>_.properties.val>.5):y.data.features;z=z.concat(w),a=new Date().valueOf()-(o+t),console.log("current speed elapsed: ",a,", total: ",t+=a)}}else if(k==="wind"){T=!0;const x=this.weatherLayers.wind.raw;for(const y in x)if(y>c&&y<s&&(!(i<=this.zoom)||y%(i<2?10:i<4?5:3)===0)){const w=x[y].lng;l>n?w.forEach((_,u)=>{var L,A,O,j;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const R=N.point([_,y],{dir:((L=x[y].val)==null?void 0:L[u])||((A=x[y].dir)==null?void 0:A[u]),spd:x[y].spd[u]});z.push(R)}}else if((_>=l&&_<=180||_>=-180&&_<=n)&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const R=N.point([_,y],{dir:((O=x[y].val)==null?void 0:O[u])||((j=x[y].dir)==null?void 0:j[u]),spd:x[y].spd[u]});z.push(R)}}):w.forEach((_,u)=>{var L,A,O,j;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const R=N.point([_,y],{dir:((L=x[y].val)==null?void 0:L[u])||((A=x[y].dir)==null?void 0:A[u]),spd:x[y].spd[u]});z.push(R)}}else if(_>=l&&_<=n&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const R=N.point([_,y],{dir:((O=x[y].val)==null?void 0:O[u])||((j=x[y].dir)==null?void 0:j[u]),spd:x[y].spd[u]});z.push(R)}})}a=new Date().valueOf()-(o+t),console.log("wind barb elapsed: ",a,", total: ",t+=a)}else if(k==="sig-wave-height"){if(this.weatherLayers[k].data)z=this.weatherLayers[k].data;else{T=!0;const x=this.weatherLayers[k].raw;if(x){const y=[];for(const w in x.Polygon){const _=x.Polygon[w];for(const u of _)y.push(N.polygon(u,{val:Number(w)}))}for(const w in x.MultiPolygon){const _=x.MultiPolygon[w];for(const u of _)y.push(N.multiPolygon(u,{val:Number(w)}))}for(const w in x.Point){const _=x.Point[w];for(let u=0;u<((v=_.lng)==null?void 0:v.length);u++)y.push(N.point([_.lng[u],w],{val:Number(_.val[u])}))}z=z.concat(y)}}a=new Date().valueOf()-(o+t),console.log("sig-wave-height elapsed: ",a,", total: ",t+=a)}else if(k==="prmsl"){if(this.weatherLayers[k].data)z=this.weatherLayers[k].data;else{T=!0;const x=this.weatherLayers[k].raw;if(x){const y=[];for(const w in x.LineString){const _=x.LineString[w];for(const u of _)y.push(N.lineString(u,{val:Number(w)}))}for(const w in x.Point)x.Point[w].lng.forEach((_,u)=>{_=I.LngLatHelper.convertToStdLng(_),y.push(N.point([_,w],{val:x.Point[w].val[u],type:x.Point[w].type[u]}))});z=z.concat(y)}}a=new Date().valueOf()-(o+t),console.log("prmsl elapsed: ",a,", total: ",t+=a)}z.length&&(this.weatherLayers[k].data=N.featureCollection(z)),T&&(this.weatherLayers[k].version=Math.random()+1)}}},handleMove4Weather(){for(const o in this.weatherLayers)this.weatherLayers[o].active&&this.weatherLayers[o].type==="image"&&(this.weatherLayers[o].active=!0,this.weatherLayers[o].version=Math.random()+1);this.handleDrawWeather4Json()},handleBboxClip(o,t){const a=[],r=I.LngLatHelper.convertToStdLng(t._sw.lng),i=I.LngLatHelper.convertToStdLng(t._ne.lng);return o.features.forEach(l=>{if(l.geometry.type!=="Point")if(r>i){let n=[r,t._sw.lat,180,t._ne.lat],c=N.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c),n=[-180,t._sw.lat,i,t._ne.lat],c=N.bboxClip(l,n),c.geometry.coordinates.length&&a.push(c)}else{const n=[r,t._sw.lat,i,t._ne.lat],c=N.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c)}else a.push(l)}),a}}},Fr={class:"idm-gl4-meteo-layers"},Hr={key:0,class:"legend-tip-btn-gl4"},Gr={class:"d-flex flex-row justify-center align-center"},Wr={class:"text-caption"},Ur={class:"d-flex flex-row justify-center align-center"},Yr={key:0,style:{width:"24px",height:"12px",border:"1px solid rgba(var(--v-border-color), var(--v-border-opacity))"}},Zr={class:"text-caption px-2"},Xr={class:"d-flex flex-row justify-start align-center"},qr={class:"d-flex flex-row justify-center align-center",style:{width:"40px"}},Kr={class:"text-caption px-2"},Qr={class:"header-box d-flex justify-space-between align-center pl-4 pr-4"},Jr={class:"d-flex justify-start align-center ga-3"},$r={class:"text-h5 font-weight-medium"},el={key:0,class:"d-flex justify-start align-center ga-4 pl-6"},tl={key:1,class:"d-flex justify-start align-center ga-4 pl-6"},ol={class:"text-body-1 py-2"},al={class:"text-body-1 font-weight-medium"},il={class:"text-body-2 opacity-70"},rl={class:"text-body-2 opacity-70 mb-3"},ll={class:"text-body-1 font-weight-medium"},nl={class:"text-body-2 opacity-70"},sl={class:"text-body-2 opacity-70 mb-3"},cl={class:"text-body-1 py-2"},ml={class:"text-body-1 font-weight-medium"},dl={class:"text-body-2 opacity-70"},hl={class:"text-body-2 opacity-70 mb-3"},pl={class:"text-body-1 font-weight-medium"},gl={class:"text-body-2 opacity-70"},ul={class:"text-body-2 opacity-70 mb-3"},fl={class:"text-body-1 py-2"},yl={class:"text-body-1 font-weight-medium"},bl={class:"text-body-2 opacity-70"},wl={class:"text-body-2 opacity-70 mb-3"};function xl(o,t,a,r,i,l){var ie,te,F,X,re,M,ee,he,pe,we,xe,_e,ke,ve,de;const n=e.resolveComponent("VBtn"),c=e.resolveComponent("VTooltip"),s=e.resolveComponent("VCol"),p=e.resolveComponent("VRow"),h=e.resolveComponent("VCardText"),d=e.resolveComponent("VDivider"),g=e.resolveComponent("VCard"),b=e.resolveComponent("VSwitch"),f=e.resolveComponent("VCardTitle"),v=e.resolveComponent("VCardItem"),k=e.resolveComponent("VCheckbox"),T=e.resolveComponent("VRadio"),z=e.resolveComponent("VBtnToggle"),x=e.resolveComponent("IdmWindBarb"),y=e.resolveComponent("IdmSigWaveHeight"),w=e.resolveComponent("IdmCurrentDirection"),_=e.resolveComponent("IdmPrmsl"),u=e.resolveComponent("IdmWindParticle"),L=e.resolveComponent("IdmCurrentParticle"),A=e.resolveComponent("IdmWave"),O=e.resolveComponent("IdmSwell"),j=e.resolveComponent("IdmIceEdge"),R=e.resolveComponent("IdmIceCover"),U=e.resolveComponent("IdmIceThickness"),Y=e.resolveComponent("IdmPrecip3h"),H=e.resolveComponent("IdmVisibility"),Q=e.resolveComponent("IdmWaterTemp"),ae=e.resolveComponent("IdmTemp");return e.openBlock(),e.createElementBlock("div",Fr,[e.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:e.normalizeStyle({top:a.top+94+"px",right:i.right+"px"})},[e.createVNode(c,{text:o.$t("weather.weatherLayers"),location:"left"},{activator:e.withCtx(({props:E})=>[e.createVNode(n,e.mergeProps(E,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:e.withCtx(()=>t[7]||(t[7]=[e.createElementVNode("i",{class:"iconfont icon-Weather text-h4"},null,-1)])),_:2,__:[7]},1040,["class","onClick"])]),_:1},8,["text"])],4),l.showTipMenu?(e.openBlock(),e.createElementBlock("div",Hr,[e.createElementVNode("div",{class:"menu-bar-box pa-1 rounded",style:e.normalizeStyle({right:i.right+"px"})},[e.createVNode(c,{text:"Legend",location:"left"},{activator:e.withCtx(({props:E})=>[e.createVNode(n,e.mergeProps(E,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.legendToggle?"bg-primary active-border":""],onClick:t[0]||(t[0]=Z=>i.legendToggle=!i.legendToggle)}),{default:e.withCtx(()=>t[8]||(t[8]=[e.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[8]},1040,["class"])]),_:1})],4),i.legendToggle?(e.openBlock(),e.createBlock(g,{key:0,width:"435",elevation:"16",class:"card-info d-flex justify-center align-start",style:e.normalizeStyle({position:"absolute",top:"340px",right:i.right+50+"px"})},{default:e.withCtx(()=>[e.createVNode(h,{class:"d-flex flex-column justify-center align-start opacity-80 px-4"},{default:e.withCtx(()=>[t[9]||(t[9]=e.createElementVNode("div",{class:"text-body-1 font-weight-600 mb-2"},"Wind Level",-1)),e.createVNode(p,{class:"ma-0 ml-n1 text-body-2"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.legend.barbs,(E,Z)=>(e.openBlock(),e.createBlock(s,{key:E,cols:"6",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Gr,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont",l.barbsIconName[Z]]),style:e.normalizeStyle({color:a.theme==="dark"?"#fff":"#000"})},null,6),e.createElementVNode("span",Wr,e.toDisplayString(Number(E)<10?`00${E}kts`:Number(E)<100?`0${E}kts`:`${E}kts`),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[9]}),e.createVNode(d,{vertical:""}),e.createVNode(h,{class:"d-flex flex-column justify-center align-start opacity-80 px-4"},{default:e.withCtx(()=>[t[10]||(t[10]=e.createElementVNode("div",{class:"text-body-1 font-weight-600 mb-2"},"Wave Height",-1)),e.createVNode(p,{class:"ma-0 ml-1",style:{width:"100px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.legend.sigWaveHeight,(E,Z)=>(e.openBlock(),e.createBlock(s,{key:Z,cols:"12",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Ur,[Z===0?(e.openBlock(),e.createElementBlock("div",Yr)):(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle({width:"24px",height:"12px",background:E.color})},null,4)),e.createElementVNode("div",Zr,e.toDisplayString(E.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[10]}),e.createVNode(d,{vertical:""}),e.createVNode(h,{class:"d-flex flex-column justify-center align-start opacity-80 px-4"},{default:e.withCtx(()=>[t[11]||(t[11]=e.createElementVNode("div",{class:"text-body-1 font-weight-600 mb-2"},"Current",-1)),e.createVNode(p,{class:"ma-0 ml-n5",style:{width:"110px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.legend.current,(E,Z)=>(e.openBlock(),e.createBlock(s,{key:Z,cols:"12",class:"d-flex flex-row justify-center align-center py-1 px-0 ma-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Xr,[e.createElementVNode("div",qr,[e.createElementVNode("i",{class:"iconfont icon-a-direction-arrow opacity-80",style:e.normalizeStyle({fontSize:40*E.size+"px"})},null,4)]),e.createElementVNode("div",Kr,e.toDisplayString(E.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[11]})]),_:1},8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["available-layers transition flex-center",i.toggle?"right-bar":""]),style:e.normalizeStyle({top:a.top+"px",right:i.toggle?"0px":"-280px"})},[e.createElementVNode("div",Qr,[e.createElementVNode("div",Jr,[e.createElementVNode("div",$r,e.toDisplayString(o.$t("weather.weather")),1),e.createVNode(b,{modelValue:i.autoActive,"onUpdate:modelValue":t[1]||(t[1]=E=>i.autoActive=E),class:"small-switch",color:"primary",inset:"","hide-details":""},null,8,["modelValue"])]),e.createVNode(n,{icon:"",density:"comfortable",variant:"plain",class:"mr-n2",onClick:l.handleMenuToggle},{default:e.withCtx(()=>t[12]||(t[12]=[e.createElementVNode("i",{class:"iconfont icon-close",style:{"font-size":"20px"}},null,-1)])),_:1,__:[12]},8,["onClick"])]),e.createElementVNode("div",{class:e.normalizeClass(["list-box scroll pl-4 pr-2 overflow-y-auto",i.autoActive?"":"cursor-not-allowed"])},[e.createVNode(g,{class:"menu-card mx-auto mb-3",elevation:"0"},{default:e.withCtx(()=>[e.createVNode(v,{class:"border-b-thin"},{default:e.withCtx(()=>[e.createVNode(f,{class:"text-subtitle-1 font-weight-medium",style:{"font-size":"16px !important"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.overlays")),1)]),_:1})]),_:1}),e.createVNode(h,{class:"py-2"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagLayers.filter(E=>E.overlays),E=>(e.openBlock(),e.createBlock(k,{key:E.key,modelValue:i.checkList,"onUpdate:modelValue":t[2]||(t[2]=Z=>i.checkList=Z),value:E.key,label:o.$t(`weather.${E.locale}`),disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"flex-1-0-100 text-body-2","hide-details":""},null,8,["modelValue","value","label","disabled"]))),128))]),_:1})]),_:1}),e.createVNode(g,{class:"menu-card mx-auto mb-3",elevation:"0"},{default:e.withCtx(()=>[e.createVNode(v,{class:"border-b-thin"},{default:e.withCtx(()=>[e.createVNode(f,{class:"text-subtitle-1 font-weight-medium",style:{"font-size":"16px !important"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.renders")),1)]),_:1})]),_:1}),e.createVNode(h,{class:"py-2"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagLayers.filter(E=>!E.overlays&&E.key!=="ice-thickness"),E=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:E.key},[e.createVNode(T,{modelValue:i.renderKey,"onUpdate:modelValue":t[3]||(t[3]=Z=>i.renderKey=Z),label:o.$t(`weather.${E.locale}`),value:E.key,disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"text-body-2 py-1","hide-details":"",onClick:Z=>i.renderKey=i.renderKey===E.key?"":E.key},null,8,["modelValue","label","value","disabled","onClick"]),i.renderKey==="wind-particle"&&E.key==="wind-particle"?(e.openBlock(),e.createElementBlock("div",el,[e.createElementVNode("span",null,e.toDisplayString(o.$t("weather.particleAnimatiom")),1),e.createVNode(b,{modelValue:i.showWindParticle,"onUpdate:modelValue":t[4]||(t[4]=Z=>i.showWindParticle=Z),label:"",class:"small-switch",color:"primary",density:"compact",inset:"",style:{"font-size":"14px"},"hide-details":""},null,8,["modelValue"])])):e.createCommentVNode("",!0),i.renderKey==="current-particle"&&E.key==="current-particle"?(e.openBlock(),e.createElementBlock("div",tl,[e.createElementVNode("span",null,e.toDisplayString(o.$t("weather.particleAnimatiom")),1),e.createVNode(b,{modelValue:i.showCurrentParticle,"onUpdate:modelValue":t[5]||(t[5]=Z=>i.showCurrentParticle=Z),label:"",class:"small-switch",color:"primary",inset:"",density:"compact",height:"20","hide-details":""},null,8,["modelValue"])])):e.createCommentVNode("",!0),i.renderKey==="ice-forecast"&&E.key==="ice-forecast"?(e.openBlock(),e.createBlock(z,{key:2,modelValue:i.iceToggleValue,"onUpdate:modelValue":t[6]||(t[6]=Z=>i.iceToggleValue=Z),class:"ml-7",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:e.withCtx(()=>[e.createVNode(n,{density:"compact",height:"30",value:"ice-cover",class:"text-none px-2",color:i.iceToggleValue==="ice-cover"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.coverage")),1)]),_:1},8,["color","disabled"]),e.createVNode(n,{density:"compact",height:"30",class:"text-none px-2",color:i.iceToggleValue==="ice-thickness"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"ice-thickness"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.thickness")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):e.createCommentVNode("",!0)],64))),128))]),_:1})]),_:1}),e.createVNode(g,{class:"menu-card mx-auto mb-3",elevation:"0"},{default:e.withCtx(()=>[e.createVNode(v,{class:"border-b-thin"},{default:e.withCtx(()=>[e.createVNode(f,{class:"text-subtitle-1 font-weight-medium",style:{"font-size":"16px !important"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.forecastModel")),1)]),_:1})]),_:1}),e.createVNode(h,{class:""},{default:e.withCtx(()=>{var E,Z,Pe,fe,oe,le,D,ge,G,q,ze,S,ne,ye,Le,Ce,C,B,Se,Ne,Te,ue,Be,Ie,Ae,Re,Ve,Oe,je,Fe,He,Ge,We,Ue,Ye,Ze,Xe,qe,Ke,Qe,Je,$e,et,tt,ot,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,_t,kt,vt,zt,Lt,Ct,Pt,St,Nt,Tt,Mt,Et,Dt,Bt,It,At,Rt,Vt,Ot;return[e.createElementVNode("div",ol,e.toDisplayString(o.$t("weather.atmospheric")),1),e.createElementVNode("div",al,e.toDisplayString((Pe=(Z=(E=i.models)==null?void 0:E.weather)==null?void 0:Z.NOAA)==null?void 0:Pe.source)+" "+e.toDisplayString((le=(oe=(fe=i.models)==null?void 0:fe.weather)==null?void 0:oe.NOAA)==null?void 0:le.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((q=(G=(ge=(D=i.models)==null?void 0:D.weather)==null?void 0:ge.NOAA)==null?void 0:G.meta)==null?void 0:q.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",il,e.toDisplayString(o.$t("weather.source"))+": NOAA",1),e.createElementVNode("div",rl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((ye=(ne=(S=(ze=i.models)==null?void 0:ze.weather)==null?void 0:S.NOAA)==null?void 0:ne.meta)==null?void 0:ye.initialisationTime)),1),e.createElementVNode("div",ll,e.toDisplayString((C=(Ce=(Le=i.models)==null?void 0:Le.weather)==null?void 0:Ce.ECMWF)==null?void 0:C.source)+" "+e.toDisplayString((Ne=(Se=(B=i.models)==null?void 0:B.weather)==null?void 0:Se.ECMWF)==null?void 0:Ne.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((Ie=(Be=(ue=(Te=i.models)==null?void 0:Te.weather)==null?void 0:ue.ECMWF)==null?void 0:Be.meta)==null?void 0:Ie.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",nl,e.toDisplayString(o.$t("weather.source"))+": ECMWF",1),e.createElementVNode("div",sl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((Oe=(Ve=(Re=(Ae=i.models)==null?void 0:Ae.weather)==null?void 0:Re.ECMWF)==null?void 0:Ve.meta)==null?void 0:Oe.initialisationTime)),1),e.createVNode(d),e.createElementVNode("div",cl,e.toDisplayString(o.$t("weather.wave")),1),e.createElementVNode("div",ml,e.toDisplayString((Ge=(He=(Fe=(je=i.models)==null?void 0:je.marine)==null?void 0:Fe.wave)==null?void 0:He.NOAA)==null?void 0:Ge.source)+" "+e.toDisplayString((Ze=(Ye=(Ue=(We=i.models)==null?void 0:We.marine)==null?void 0:Ue.wave)==null?void 0:Ye.NOAA)==null?void 0:Ze.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((Je=(Qe=(Ke=(qe=(Xe=i.models)==null?void 0:Xe.marine)==null?void 0:qe.wave)==null?void 0:Ke.NOAA)==null?void 0:Qe.meta)==null?void 0:Je.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",dl,e.toDisplayString(o.$t("weather.source"))+": NOAA",1),e.createElementVNode("div",hl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((at=(ot=(tt=(et=($e=i.models)==null?void 0:$e.marine)==null?void 0:et.wave)==null?void 0:tt.NOAA)==null?void 0:ot.meta)==null?void 0:at.initialisationTime)),1),e.createElementVNode("div",pl,e.toDisplayString((nt=(lt=(rt=(it=i.models)==null?void 0:it.marine)==null?void 0:rt.wave)==null?void 0:lt.ECMWF)==null?void 0:nt.source)+" "+e.toDisplayString((dt=(mt=(ct=(st=i.models)==null?void 0:st.marine)==null?void 0:ct.wave)==null?void 0:mt.ECMWF)==null?void 0:dt.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((ft=(ut=(gt=(pt=(ht=i.models)==null?void 0:ht.marine)==null?void 0:pt.wave)==null?void 0:gt.ECMWF)==null?void 0:ut.meta)==null?void 0:ft.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",gl,e.toDisplayString(o.$t("weather.source"))+": ECMWF",1),e.createElementVNode("div",ul,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((_t=(xt=(wt=(bt=(yt=i.models)==null?void 0:yt.marine)==null?void 0:bt.wave)==null?void 0:wt.ECMWF)==null?void 0:xt.meta)==null?void 0:_t.initialisationTime)),1),e.createVNode(d),e.createElementVNode("div",fl,e.toDisplayString(o.$t("weather.currents")),1),e.createElementVNode("div",yl,e.toDisplayString((Lt=(zt=(vt=(kt=i.models)==null?void 0:kt.marine)==null?void 0:vt.current)==null?void 0:zt.ECMWF)==null?void 0:Lt.source)+" "+e.toDisplayString((Nt=(St=(Pt=(Ct=i.models)==null?void 0:Ct.marine)==null?void 0:Pt.current)==null?void 0:St.ECMWF)==null?void 0:Nt.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((Bt=(Dt=(Et=(Mt=(Tt=i.models)==null?void 0:Tt.marine)==null?void 0:Mt.current)==null?void 0:Et.ECMWF)==null?void 0:Dt.meta)==null?void 0:Bt.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",bl,e.toDisplayString(o.$t("weather.source"))+": ECMWF",1),e.createElementVNode("div",wl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((Ot=(Vt=(Rt=(At=(It=i.models)==null?void 0:It.marine)==null?void 0:At.current)==null?void 0:Rt.ECMWF)==null?void 0:Vt.meta)==null?void 0:Ot.initialisationTime)),1)]}),_:1})]),_:1})],2)],6),a.map?(e.openBlock(),e.createBlock(x,e.mergeProps({key:1,ref:"windBarb",map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-3",wind:(ie=i.weatherLayers)==null?void 0:ie.wind,"menu-toggle":a.menuToggle},o.$attrs),null,16,["map","map-feather","wind","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(y,e.mergeProps({key:2,map:a.map,"before-layer":"empty-layer-2","sig-wave-height":(te=i.weatherLayers)==null?void 0:te["sig-wave-height"],"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},o.$attrs),null,16,["map","sig-wave-height","menu-toggle","active-weather-layers"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(w,e.mergeProps({key:3,map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-2",current:(F=i.weatherLayers)==null?void 0:F.current,"menu-toggle":a.menuToggle},o.$attrs),null,16,["map","map-feather","current","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(_,e.mergeProps({key:4,map:a.map,"before-layer":"empty-layer-2",prmsl:(X=i.weatherLayers)==null?void 0:X.prmsl,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},o.$attrs,{theme:a.theme}),null,16,["map","prmsl","menu-toggle","active-weather-layers","theme"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(u,e.mergeProps({key:5,viewport:i.viewport,factor:(re=i.weatherLayers)==null?void 0:re["wind-particle"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(L,e.mergeProps({key:6,viewport:i.viewport,factor:(M=i.weatherLayers)==null?void 0:M["current-particle"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(A,e.mergeProps({key:7,viewport:i.viewport,factor:(ee=i.weatherLayers)==null?void 0:ee["sig-wave"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(O,e.mergeProps({key:8,map:a.map,swell:(he=i.weatherLayers)==null?void 0:he.swell,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},o.$attrs),null,16,["map","swell","menu-toggle","active-weather-layers"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(j,e.mergeProps({key:9,viewport:i.viewport,factor:(pe=i.weatherLayers)==null?void 0:pe["ice-edge"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(R,e.mergeProps({key:10,viewport:i.viewport,factor:(we=i.weatherLayers)==null?void 0:we["ice-cover"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(U,e.mergeProps({key:11,viewport:i.viewport,factor:(xe=i.weatherLayers)==null?void 0:xe["ice-thickness"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(Y,e.mergeProps({key:12,viewport:i.viewport,factor:(_e=i.weatherLayers)==null?void 0:_e.precip3h,"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(H,e.mergeProps({key:13,viewport:i.viewport,factor:(ke=i.weatherLayers)==null?void 0:ke.visibility,"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(Q,e.mergeProps({key:14,viewport:i.viewport,factor:(ve=i.weatherLayers)==null?void 0:ve["water-temp"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(ae,e.mergeProps({key:15,viewport:i.viewport,factor:(de=i.weatherLayers)==null?void 0:de.temp,"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0)])}const _l=V(jr,[["render",xl]]),Ee=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"GFS",alias:"GFS",model:"gfs_seamless",provider:"NOAA",country:"United States",resolution:25,tips:"3-25km",length:16,frequency:1,models:["gfs_seamless"],categories:"ncep_gfs013,ncep_gfs025,ncep_gfs_graphcast025,ncep_hrrr_conus,ncep_nbm_conus",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:2,name:"ECMWF",alias:"ECMWF",model:"ecmwf_ifs025",provider:"ECMWF",country:"European Union",resolution:25,tips:"25km",length:15,frequency:6,models:["ecmwf_ifs025","ecmwf_aifs025_single"],categories:"ecmwf_ifs025,ecmwf_aifs025_single",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:3,disabled:!0,name:"ICON",alias:"ECMWF",model:"icon_seamless",provider:"Deutscher Wetterdienst (DWD)",country:"Germany",resolution:13,tips:"2-13km",length:7.5,frequency:3,models:["icon_seamless","icon_global","icon_eu","icon_d2"],categories:"dwd_icon,dwd_icon_eps,dwd_icon_d2,dwd_icon_d2_eps,dwd_icon_eu,dwd_icon_eu_eps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:4,name:"ARPEGE",disabled:!0,alias:"ECMWF",model:"arpege_seamless",provider:"Météo-France",country:"France",resolution:25,tips:"1-25km",length:4,frequency:1,models:["arpege_seamless","arpege_world","arpege_europe"],categories:"meteofrance_arpege_europe,meteofrance_arpege_europe_probabilities,meteofrance_arpege_world025",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:5,name:"UKMO",disabled:!0,alias:"ECMWF",model:"ukmo_seamless",provider:"UK Met Office",country:"United Kingdom",resolution:10,tips:"2-10km",length:7,frequency:1,models:["ukmo_seamless","ukmo_global_deterministic_10km","ukmo_uk_deterministic_2km"],categories:"ukmo_global_deterministic_10km,ukmo_uk_deterministic_2km",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:6,name:"JMA",disabled:!0,alias:"GFS",model:"jma_seamless",provider:"JMA",country:"Japan",resolution:55,tips:"5-55km",length:11,frequency:3,models:["jma_seamless","jma_msm","jma_gsm"],categories:"jma_gsm,jma_msm",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:7,name:"GEM",disabled:!0,alias:"GFS",model:"gem_seamless",provider:"Canadian Weather Service",country:"Canada",resolution:2.5,tips:"2.5km",length:10,frequency:6,models:["gem_seamless","gem_global","gem_regional"],categories:"cmc_gem_gdps,cmc_gem_hrdps,cmc_gem_rdps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:8,name:"GRAPES",disabled:!0,alias:"GFS",model:"cma_grapes_global",provider:"China Meteorological Administration (CMA)",country:"China",resolution:15,tips:"15km",length:10,frequency:6,models:["cma_grapes_global"],categories:"cma_grapes_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:9,name:"ACCESS-G",disabled:!0,alias:"GFS",model:"bom_access_global",provider:"Australian Bureau of Meteorology (BOM)",country:"Australia",resolution:15,tips:"15km",length:10,frequency:6,models:["bom_access_global"],categories:"bom_access_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"}],De=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"MFWAM",alias:"ECMWF",model:"meteofrance_wave",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:12,models:["meteofrance_wave"],categories:"meteofrance_wave",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:2,disabled:!0,name:"SMOC",alias:"ECMWF",model:"meteofrance_currents",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:24,models:["meteofrance_currents"],categories:"meteofrance_currents, meteofrance_sea_surface_temperature",variables:"ocean_u_current,ocean_v_current,invert_barometer_height,sea_level_height_msl,sea_surface_temperature"},{rank:3,disabled:!0,name:"EWAM",alias:"ECMWF",model:"ewam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:8,frequency:2,models:["ewam"],categories:"dwd_ewam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:4,disabled:!0,name:"GWAM",alias:"ECMWF",model:"gwam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:4,frequency:2,models:["gwam"],categories:"dwd_gwam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:5,disabled:!0,name:"ECWAM",alias:"ECMWF",model:"ecmwf_wam025",provider:"ECMWF",country:"Europe",resolution:25,tips:"25km",length:10,frequency:6,models:["ecmwf_wam025"],categories:"ecmwf_wam025",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:6,name:"GFSWave",alias:"GFS",model:"ncep_gfswave025",provider:"NCEP",country:"USA",resolution:25,tips:"25km",length:10,frequency:6,models:["ncep_gfswave025","ncep_gfswave016"],categories:"ncep_gfswave025,ncep_gfswave016",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:7,disabled:!0,name:"ERA5-Ocean",alias:"ECMWF",model:"era5_ocean",provider:"Copernicus",country:"Europe",resolution:50,tips:"50km",length:-5,frequency:1,models:["era5_ocean"],categories:"copernicus_era5_ocean",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"}];class Ut{static standardWeatherModels(){return Ee.filter(t=>!t.disabled&&t.alias)}static standardMarineModels(){return De.filter(t=>!t.disabled&&t.alias)}static autoPickLayerModel(t,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",t=t==null?void 0:t.toLowerCase(),t==="gfs"?"gfs":["ec","ecmwf"].includes(t)?"ecmwf":["copernicus","cmems"].includes(t)?"copernicus":a}static autoPickPeerModel(t,a,r="copernicus"){if(a=this.autoPickLayerModel(a,r),ya.LayerHelper.WEATHER_LAYERS.reduce((i,l)=>l.atmos?i+l.weight:i,0)&t.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(t="best_match"){var a,r;t=t==null?void 0:t.toLowerCase(),t=t==="ec"?"ecmwf":t;const i=t.toLowerCase().split(","),l=[],n=[];for(const c of i){let s=Ee.find(h=>{var d,g,b;return((d=h.models)==null?void 0:d.includes(c))||((g=h.alias)==null?void 0:g.toLowerCase())===c||((b=h.name)==null?void 0:b.toLowerCase())===c}),p=De.find(h=>{var d,g,b;return((d=h.models)==null?void 0:d.includes(c))||((g=h.alias)==null?void 0:g.toLowerCase())===c||((b=h.name)==null?void 0:b.toLowerCase())===c});s=s||Ee.find(h=>{var d,g;return((d=h.alias)==null?void 0:d.toLowerCase())===((g=p==null?void 0:p.alias)==null?void 0:g.toLowerCase())}),p=p||De.find(h=>{var d,g;return((d=h.alias)==null?void 0:d.toLowerCase())===((g=s==null?void 0:s.alias)==null?void 0:g.toLowerCase())}),s=s||Ee[0],p=p||De[0],l.push((a=s.models)!=null&&a.includes(c)?c:s.model),n.push((r=p.models)!=null&&r.includes(c)?c:p.model)}return{weatherModels:l.join(","),marineModels:n.join(",")}}static autoPickSubCategories(t){t=t.toUpperCase();const a=Ee.filter(l=>l.alias===t),r=De.filter(l=>l.alias===t),i=[];return a.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),r.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),i}static pickHourly(t,a){var r,i,l,n,c,s,p,h,d,g,b,f,v,k,T,z,x,y,w,_,u,L,A,O,j,R,U,Y,H,Q,ae,ie,te,F,X,re,M,ee,he,pe,we,xe,_e,ke,ve,de,E,Z,Pe,fe;const oe=typeof a=="string"?P(a):a,le=t==null?void 0:t.weather,D=t==null?void 0:t.marine,ge=P((i=(r=le==null?void 0:le[0])==null?void 0:r.hourly)==null?void 0:i.date).utc(),G=ge.clone().add((c=(n=(l=le==null?void 0:le[0])==null?void 0:l.hourly)==null?void 0:n.time)==null?void 0:c.at(0),"h"),q=ge.clone().add((h=(p=(s=le==null?void 0:le[0])==null?void 0:s.hourly)==null?void 0:p.time)==null?void 0:h.at(-1),"h"),ze=[];if(oe.isBetween(G,q,"millisecond","[]")){const S=oe.utc().diff(G,"h",!1);let ne,ye;if(le){let Le=0,Ce=0;for(const C of le){const B=C==null?void 0:C.hourly;for(let ue=S-(S-1)%3;ue<=S;ue++)Le+=(d=B==null?void 0:B.precipitation)==null?void 0:d.at(ue);for(let ue=S-(S-1)%6;ue<=S;ue++)Ce+=(g=B==null?void 0:B.precipitation)==null?void 0:g.at(ue);ne={temp:(b=B==null?void 0:B.temperature_2m)==null?void 0:b.at(S),apparentTemp:(f=B==null?void 0:B.apparent_temperature)==null?void 0:f.at(S),rh:(v=B==null?void 0:B.relative_humidity_2m)==null?void 0:v.at(S),dp:(k=B==null?void 0:B.dew_point_2m)==null?void 0:k.at(S),precip:{probability:(T=B==null?void 0:B.precipitation_probability)==null?void 0:T.at(S),sum:(z=B==null?void 0:B.precipitation)==null?void 0:z.at(S),sum3Hours:Math.round(Le*100)/100,sum6Hours:Math.round(Ce*100)/100},pmsl:(x=B==null?void 0:B.pressure_msl)==null?void 0:x.at(S),psurf:(y=B==null?void 0:B.surface_pressure)==null?void 0:y.at(S),code:(w=B==null?void 0:B.weather_code)==null?void 0:w.at(S),visibility:this.m2nm((_=B==null?void 0:B.visibility)==null?void 0:_.at(S)),wind:{speed:(u=B==null?void 0:B.wind_speed_10m)==null?void 0:u.at(S),kts:(L=B==null?void 0:B.wind_speed_10m)==null?void 0:L.at(S),degree:(A=B==null?void 0:B.wind_direction_10m)==null?void 0:A.at(S),bearing:((O=B==null?void 0:B.wind_direction_10m)==null?void 0:O.at(S))!==null?(((j=B==null?void 0:B.wind_direction_10m)==null?void 0:j.at(S))+180)%360:null,gusts:(R=B==null?void 0:B.wind_gusts_10m)==null?void 0:R.at(S)},isDay:(U=B==null?void 0:B.is_day)==null?void 0:U.at(S)};const{name:Se,url:Ne,bg:Te}=this.parseWeatherCode(ne.code,ne.isDay);ne.name=Se,ne.url=Ne,ne.bg=Te,ne.wind.scale=this.beaufort(this.kts2ms(ne.wind.kts)),ne.wind.direction=this.degree2Direction(ne.wind.degree),ze.push({utc:G.add(S,"h").format(),model:C.model,weather:{...ne}})}}if(D){let Le=0;for(const Ce of D){const C=Ce==null?void 0:Ce.hourly;ye={wave:{sig:{height:(Y=C==null?void 0:C.wave_height)==null?void 0:Y.at(S),degree:(H=C==null?void 0:C.wave_direction)==null?void 0:H.at(S),bearing:((Q=C==null?void 0:C.wave_direction)==null?void 0:Q.at(S))!==null?(((ae=C==null?void 0:C.wave_direction)==null?void 0:ae.at(S))+180)%360:null,period:(ie=C==null?void 0:C.wave_period)==null?void 0:ie.at(S)},swell:{height:(te=C==null?void 0:C.swell_wave_height)==null?void 0:te.at(S),degree:(F=C==null?void 0:C.swell_wave_direction)==null?void 0:F.at(S),bearing:((X=C==null?void 0:C.swell_wave_direction)==null?void 0:X.at(S))!==null?(((re=C==null?void 0:C.swell_wave_direction)==null?void 0:re.at(S))+180)%360:null,period:(M=C==null?void 0:C.swell_wave_period)==null?void 0:M.at(S),peakPeriod:(ee=C==null?void 0:C.swell_wave_peak_period)==null?void 0:ee.at(S)},wd:{height:(he=C==null?void 0:C.wind_wave_height)==null?void 0:he.at(S),degree:(pe=C==null?void 0:C.wind_wave_direction)==null?void 0:pe.at(S),bearing:((we=C==null?void 0:C.wind_wave_direction)==null?void 0:we.at(S))!==null?(((xe=C==null?void 0:C.wind_wave_direction)==null?void 0:xe.at(S))+180)%360:null,period:(_e=C==null?void 0:C.wind_wave_period)==null?void 0:_e.at(S),peakPeriod:(ke=C==null?void 0:C.wind_wave_peak_period)==null?void 0:ke.at(S)}},current:{speed:(ve=C==null?void 0:C.ocean_current_velocity)==null?void 0:ve.at(S),kts:(de=C==null?void 0:C.ocean_current_velocity)==null?void 0:de.at(S),degree:(E=C==null?void 0:C.ocean_current_direction)==null?void 0:E.at(S),bearing:((Z=C==null?void 0:C.ocean_current_direction)==null?void 0:Z.at(S))??null},sst:(Pe=C==null?void 0:C.sea_surface_temperature)==null?void 0:Pe.at(S),height:(fe=C==null?void 0:C.sea_level_height_msl)==null?void 0:fe.at(S)},ye.wave=this.parseWave(ye.wave,ne==null?void 0:ne.wind),ye.current.direction=this.degree2Direction(ye.current.degree),Object.assign(ze[Le],ye),Le++}}}return ze}static toLegacy(t){var a,r,i,l,n,c,s,p,h,d;return{wind:(a=t==null?void 0:t.weather)==null?void 0:a.wind,visibility:(r=t==null?void 0:t.weather)==null?void 0:r.visibility,temp:(i=t==null?void 0:t.weather)==null?void 0:i.temp,prmsl:(l=t==null?void 0:t.weather)==null?void 0:l.pmsl,gusts:{kts:(c=(n=t==null?void 0:t.weather)==null?void 0:n.wind)==null?void 0:c.gusts},precip:(s=t==null?void 0:t.weather)==null?void 0:s.precip,code:(p=t==null?void 0:t.weather)==null?void 0:p.code,name:(h=t==null?void 0:t.weather)==null?void 0:h.name,url:(d=t==null?void 0:t.weather)==null?void 0:d.url,wave:t==null?void 0:t.wave,current:t==null?void 0:t.current,sst:t==null?void 0:t.sst,height:t==null?void 0:t.height,utc:t==null?void 0:t.utc,source:t==null?void 0:t.model}}static pickDaily(t,a){var r,i,l,n,c,s,p,h,d,g,b,f,v,k,T,z,x,y,w,_,u,L,A,O,j,R,U,Y,H,Q,ae,ie,te,F,X,re,M,ee,he,pe,we,xe,_e,ke;const ve=typeof a=="string"?P(a):a,de=t==null?void 0:t.weather,E=t==null?void 0:t.marine,Z=P((l=(i=(r=de==null?void 0:de[0])==null?void 0:r.daily)==null?void 0:i.time)==null?void 0:l.at(0)),Pe=P((s=(c=(n=de==null?void 0:de[0])==null?void 0:n.daily)==null?void 0:c.time)==null?void 0:s.at(-1)),fe=[];if(ve.isBetween(Z,Pe,"millisecond","[]")){let oe,le;const D=ve.diff(Z,"d",!1);if(de)for(const ge of de){const G=ge.daily;oe={code:(p=G.weather_code)==null?void 0:p.at(D),temp:{max:(h=G.temperature_2m_max)==null?void 0:h.at(D),min:(d=G.temperature_2m_min)==null?void 0:d.at(D),mean:(g=G.temperature_2m_mean)==null?void 0:g.at(D)},apparentTemp:{max:(b=G.apparent_temperature_max)==null?void 0:b.at(D),min:(f=G.apparent_temperature_min)==null?void 0:f.at(D)},precip:{sum:(v=G.precipitation_sum)==null?void 0:v.at(D),rainSum:(k=G.rain_sum)==null?void 0:k.at(D),snowfallSum:(T=G.snowfall_sum)==null?void 0:T.at(D),showersSum:(z=G.showers_sum)==null?void 0:z.at(D),hours:(x=G.precipitation_hours)==null?void 0:x.at(D),probability:(y=G.precipitation_probability_max)==null?void 0:y.at(D)},rh:{max:(w=G.relative_humidity_2m_max)==null?void 0:w.at(D),min:(_=G.relative_humidity_2m_min)==null?void 0:_.at(D),mean:(u=G.relative_humidity_2m_mean)==null?void 0:u.at(D)},wind:{speed:(L=G.wind_speed_10m_max)==null?void 0:L.at(D),kts:(A=G.wind_speed_10m_max)==null?void 0:A.at(D),degree:(O=G.wind_direction_10m_dominant)==null?void 0:O.at(D),gusts:(j=G.wind_gusts_10m_max)==null?void 0:j.at(D),bearing:((R=G.wind_direction_10m_dominant)==null?void 0:R.at(D))!==null?(((U=G.wind_direction_10m_dominant)==null?void 0:U.at(D))+180)%360:null}};const{name:q,url:ze,bg:S}=this.parseWeatherCode(oe.code,!0);oe.name=q,oe.url=ze,oe.bg=S,oe.wind.scale=this.beaufort(this.kts2ms(oe.wind.kts)),oe.wind.direction=this.degree2Direction(oe.wind.degree),fe.push({utc:Z.add(D,"d").utc().format(),model:ge.model,weather:{...oe}})}if(E){let ge=0;for(const G of E){const q=G.daily;le={wave:{sig:{height:(Y=q.wave_height_max)==null?void 0:Y.at(D),degree:(H=q.wave_direction_dominant)==null?void 0:H.at(D),period:(Q=q.wave_period_max)==null?void 0:Q.at(D),bearing:((ae=q.wave_direction_dominant)==null?void 0:ae.at(D))!==null?(((ie=q.wave_direction_dominant)==null?void 0:ie.at(D))+180)%360:null},swell:{height:(te=q.swell_wave_height_max)==null?void 0:te.at(D),degree:(F=q.swell_wave_direction_dominant)==null?void 0:F.at(D),period:(X=q.swell_wave_period_max)==null?void 0:X.at(D),peakPeriod:(re=q.swell_wave_peak_period_max)==null?void 0:re.at(D),bearing:((M=q.swell_wave_direction_dominant)==null?void 0:M.at(D))!==null?((ee=q.swell_wave_direction_dominant)==null?void 0:ee.at(D))%360:null},wd:{height:(he=q.wind_wave_height_max)==null?void 0:he.at(D),degree:(pe=q.wind_wave_direction_dominant)==null?void 0:pe.at(D),period:(we=q.wind_wave_period_max)==null?void 0:we.at(D),peakPeriod:(xe=q.wind_wave_peak_period_max)==null?void 0:xe.at(D),bearing:((_e=q.wind_wave_direction_dominant)==null?void 0:_e.at(D))!==null?(((ke=q.wind_wave_direction_dominant)==null?void 0:ke.at(D))+180)%360:null}}},le.wave=this.parseWave(le.wave,oe==null?void 0:oe.wind),Object.assign(fe[ge],le),ge++}}}return fe}static parseWave(t,a){if(t.sig.direction=this.degree2Direction(t.sig.degree),t.swell.direction=this.degree2Direction(t.swell.degree),t.wd.direction=this.degree2Direction(t.wd.degree),t.sig.scale=this.douglas(t.sig.height),t.swell.scale=this.douglas(t.swell.height),t.wd.scale=this.douglas(t.wd.height),t.sig.height===0){const r=Math.sqrt(Math.pow(t.swell.height||0,2)+Math.pow(t.wd.height||0,2));t.sig.height=Math.round(r*100)/100}if(t.swell.height===0)if(t.sig.height>t.wd.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.wd.height||0,2)));t.swell.height=Math.round(r*100)/100}else{const r=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,i=r>1?r/10:r>.5?r/5:r>.3?r/2:r;t.swell.height=Math.round(i*100)/100}if(t.wd.height===0||t.wd.height>t.sig.height)if(t.sig.height>t.swell.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.swell.height||0,2))),i=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(Math.min(r,i)*100)/100}else{const r=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(r*100)/100}return t.swell.height>t.sig.height&&(t.swell.height=Math.round(t.sig.height*.76*100)/100),t.sig.period||(t.sig.period=Math.round(5*Math.sqrt(t.sig.height))),t.swell.period||(t.swell.period=Math.round(5*Math.sqrt(t.swell.height))),t.wd.period||(t.wd.period=Math.round(5*Math.sqrt(t.wd.height))),t}static parseWeatherCode(t,a){const r=this.weatherCode(t);return(a?r.day:r.night)||{}}static weatherCode(t){const a={code:t};switch(t){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(t){return isNaN(t)||t===null?t:Math.round(t*1852/3600*1e4)/1e4}static kts2kmh(t){return isNaN(t)||t===null?t:t*1.852}static m2nm(t){return isNaN(t)||t===null?t:Math.round(t/1e3/1.852*1e4)/1e4}static kmh2kts(t){return isNaN(t)||t===null?t:this.ms2kts(t*1e3/3600)}static ms2kts(t){return isNaN(t)||t===null?t:Math.round(t*3600/1852*1e4)/1e4}static degree2Radian(t){if(isNaN(t)||t===null)return t;let a=t%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(t){const a=this.degree2Radian(t);if(isNaN(a)||a===null)return null;let r="N/A";const i=Math.PI/16;return a<i?r="N":a>=i&&a<3*i?r="NNE":a>=3*i&&a<5*i?r="NE":a>=5*i&&a<7*i?r="ENE":a>=7*i&&a<9*i?r="E":a>=9*i&&a<11*i?r="ESE":a>=11*i&&a<13*i?r="SE":a>=13*i&&a<15*i?r="SSE":a>=15*i&&a<17*i?r="S":a>=17*i&&a<19*i?r="SSW":a>=19*i&&a<21*i?r="SW":a>=21*i&&a<23*i?r="WSW":a>=23*i&&a<25*i?r="W":a>=25*i&&a<27*i?r="WNW":a>=27*i&&a<29*i?r="NW":a>=29*i&&a<31*i?r="NNW":a>=31*i&&a<32*i&&(r="N"),r}static beaufort(t){let a=0;return isNaN(t)||(t=Math.round(t*10)/10,t<=.2?a=0:t<=1.5?a=1:t<=3.3?a=2:t<=5.4?a=3:t<=7.9?a=4:t<=10.7?a=5:t<=13.8?a=6:t<=17.1?a=7:t<=20.7?a=8:t<=22.4?a=9:t<=28.4?a=10:t<=32.6?a=11:t>32.6&&(a=12)),a}static douglas(t){let a="Calm";return isNaN(t)||t<=.1?a="Calm":t<=.5?a="Smooth":t<=1.25?a="Slight":t<=2.5?a="Moderate":t<=4?a="Rough":t<=6?a="VeryRough":t<=9?a="High":t<=14?a="VeryHigh":a="Precipitous",a}}const as="",kl={name:"IdmTropicals",props:{permission:{type:Number},map:{type:Object},top:{type:Number,default:60},menuToggle:{type:Object,default:{}},timeZone:{type:Number,default:0},token:{type:String},defaultMeteoToken:{type:String},gateway:{type:String,default:"aa"},assistGateway:{type:Array,default:[]},forecastModel:{type:String},realTime:{type:String}},setup(){return{Theme:se.useTheme()}},emits:["tropical","tropicalProbability","tropicalNotification"],data(){return{right:10,toggle:!1,helper:Me.CompanyHelper,tropicals:void 0,tropicalCacheKey:"tropicalCacheGL4",source:"tropicals-source",clusterSource:"tropicals-cluster-source",historyLayer:"tropicals-history-layer",forecastLayer:"tropicals-forecast-layer",forecastModelLayer:"tropicals-forecast-model-layer",forecastNameLayer:"tropicals-forecast-name-layer",pointCircleLayer:"tropicals-point-circle-layer",pointLabelLayer:"tropicals-point-label-layer",historyPointCircleLayer:"history-tropicals-point-circle-layer",historyPointLabelLayer:"history-tropicals-point-label-layer",interpolateData:[],interpolateMarkers:[],interpolateSource:"tropicals-interpolate-source",interpolateLineLayer:"tropicals-interpolate-line-layer",showTropicalsInfo:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:N.featureCollection([]),circleSource:"circle-source",circleSourceData:N.featureCollection([]),circleLayer:"tropical-circle-layer",showLegend:!1}},computed:{computeTime(){return function(o){if(o){const t=P(o).utcOffset(this.timeZone),a=this.timeZone<0?this.timeZone:"+"+this.timeZone;return`${t==null?void 0:t.format("MMM-DD/HHmm")} ( UTC${a} ) ${t==null?void 0:t.fromNow()} `}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(o){const t=Ut.kts2ms(o);return Ut.beaufort(t)}},computeMovement(){return function(o){var t,a;return(a=(t=o==null?void 0:o.forecasts)==null?void 0:t.find(r=>!r.disabled))==null?void 0:a.movement}}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10})},immediate:!0},map:{handler(){this.map&&(this.toggle=localStorage.getItem(this.tropicalCacheKey)==="true"||!1,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle&&this.fetchTropicals())}},showTropicalsInfo:{handler(){this.$emit("tropical",this.showTropicalsInfo)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(){this.handleRefresh()}}},mounted(){},methods:{handleMenuToggle(){this.toggle=!this.toggle,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle?this.fetchTropicals():this.handleClear()},async fetchTropicals(){var i,l,n;const o=new Date().valueOf();let t=0,a=0,r=(i=Me.LayerHelper.WEATHER_LAYERS.find(c=>c.key==="tropicals"))==null?void 0:i.weight;if(r>0){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],s=await $.get(`${c}/api/arc/weather/layers2/links?l=${r}&v=${this.forecastModel}&t=${this.realTime}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(a=new Date().valueOf()-(o+t),console.log("weather links elapsed: ",a,", total: ",t+=a),((l=s==null?void 0:s.data)==null?void 0:l.code)===0){const p=(n=s==null?void 0:s.data)==null?void 0:n.data;await $.get(p.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"},responseType:/\.(jpg|png)$/.test(p.tropicals)?"blob":"json"}).then(h=>{var b,f,v;const d=I.TropicalHelper.convert2Geojson(((b=h==null?void 0:h.data)==null?void 0:b.data)||(h==null?void 0:h.data));((v=(f=h==null?void 0:h.config)==null?void 0:f.headers)==null?void 0:v.key)&&d&&(this.tropicals={data:d,active:!0,cached:!0,type:"json",etime:s.data.etime,version:Math.random()+1},this.handleInit())}).catch(h=>{console.log(`[${key}] fetch layer error: ${h}`)})}a=new Date().valueOf()-(o+t),console.log("tropicals elapsed: ",a,", total: ",t+=a)}},handleRefresh(){var t,a;(((a=(t=this.tropicals)==null?void 0:t.data)==null?void 0:a.features)||[]).forEach(r=>{var i,l,n,c;((i=r.geometry)==null?void 0:i.type)==="Point"&&((l=r.properties)!=null&&l.important)&&(r.properties.format=(c=(n=P(r.properties.date))==null?void 0:n.utcOffset(this.timeZone))==null?void 0:c.format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`))}),this.handleInit()},handleInit(){var o;this.tropicals&&(this.handleRender(),(o=this.map)==null||o.on("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick))},handleRender(){var o,t,a,r,i,l,n,c,s,p;if(!this.map)setTimeout(()=>{this.handleRender()},500);else{if(this.tropicals){const d=new Date().valueOf();let g=0,b=0;(o=this.map)!=null&&o.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((t=this.tropicals)!=null&&t.active?this.tropicals.data:this.empty),b=new Date().valueOf()-(d+g),console.log("[tropicals] update elapsed: ",b,", total: ",g+=b)):(this.map.addSource(this.source,{type:"geojson",data:(r=this.tropicals)!=null&&r.active?(i=this.tropicals)==null?void 0:i.data:this.empty}),this.map.addLayer({id:this.historyLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","history"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["on-surface"],"line-width":3,"line-opacity":.7}}),this.map.addLayer({id:this.forecastLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["match",["get","model"],"cma","#e2ea03","jma","#01d2b7","ecmwf","#f582f2","ukm","#f5bb47","noaa-at","#9758fb","noaa-ep","#9758fb","#f2a0a0"],"line-width":3,"line-opacity":.9,"line-dasharray":[1,2]}}),this.map.addLayer({id:this.forecastModelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"symbol-placement":"line","text-field":"{model}","text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":["match",["get","model"],"cma","#000","jma","#000","ecmwf","#fff","ukm","#fff","noaa-at","#fff","noaa-ep","#fff","#000"],"text-opacity":1,"text-halo-color":["match",["get","model"],"cma","#e2ea03","jma","#01d2b7","ecmwf","#f582f2","ukm","#f5bb47","noaa-at","#9758fb","noaa-ep","#9758fb","#f2a0a0"],"text-halo-width":4}}),b=new Date().valueOf()-(d+g),console.log("[tropical] add elapsed: ",b,", total: ",g+=b)),(l=this.map)!=null&&l.getSource(this.clusterSource)?((c=this.map)==null||c.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),b=new Date().valueOf()-(d+g),console.log("[tropical] update elapsed: ",b,", total: ",g+=b)):(this.map.addSource(this.clusterSource,{type:"geojson",data:(s=this.tropicals)!=null&&s.active?(p=this.tropicals)==null?void 0:p.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"#fff"}}),this.map.addLayer({id:this.pointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":4,"circle-color":["case",["boolean",["==",["get","kts",["get","wind"]],null]],"#03f869",["boolean",["<",["get","kts",["get","wind"]],32]],"#03f869",["boolean",["<",["get","kts",["get","wind"]],47]],"#f2f202",["boolean",["<",["get","kts",["get","wind"]],63]],"#ff9100",["boolean",["<",["get","kts",["get","wind"]],79]],"#f44336",["boolean",["<",["get","kts",["get","wind"]],94]],"#f903d0",["boolean",[">=",["get","kts",["get","wind"]],94]],"#8702f9","#fff"]}}),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}}),this.map.addLayer({id:this.historyPointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":6,"circle-color":"#fff"}}),this.map.addLayer({id:this.historyPointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"rgba(0,0,0,0.7)"}}),this.map.addLayer({id:this.historyPointCircleLayer+"-inner",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":3,"circle-color":"#fff"}}),this.map.addLayer({id:this.historyPointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}}),this.map.addLayer({id:this.forecastNameLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["==","important",!0]],layout:{"text-field":["get","name"],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-offset":[0,2]},paint:{"text-color":this.Theme.current.value.colors["map-blue"],"text-halo-color":"#ffffff","text-halo-width":1}}),b=new Date().valueOf()-(d+g),console.log("[tropical] add elapsed: ",b,", total: ",g+=b))}this.handleDrawCircle();const h=I.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(h)),this.handleDateChange()}},handleClear(){var o,t;this.map&&(this.map.getLayer(this.historyLayer)&&this.map.removeLayer(this.historyLayer),this.map.getLayer(this.forecastLayer)&&this.map.removeLayer(this.forecastLayer),this.map.getLayer(this.forecastModelLayer)&&this.map.removeLayer(this.forecastModelLayer),this.map.getLayer(this.forecastNameLayer)&&this.map.removeLayer(this.forecastNameLayer),this.map.getLayer(this.pointCircleLayer)&&this.map.removeLayer(this.pointCircleLayer),this.map.getLayer(this.pointCircleLayer+"-border")&&this.map.removeLayer(this.pointCircleLayer+"-border"),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.historyPointCircleLayer)&&this.map.removeLayer(this.historyPointCircleLayer),this.map.getLayer(this.historyPointCircleLayer+"-border")&&this.map.removeLayer(this.historyPointCircleLayer+"-border"),this.map.getLayer(this.historyPointCircleLayer+"-inner")&&this.map.removeLayer(this.historyPointCircleLayer+"-inner"),this.map.getLayer(this.historyPointLabelLayer)&&this.map.removeLayer(this.historyPointLabelLayer),this.map.getLayer(this.interpolateLineLayer)&&this.map.removeLayer(this.interpolateLineLayer),(o=this.interpolateMarkers)==null||o.forEach(a=>a==null?void 0:a.remove()),this.map.getSource(this.source)&&this.map.removeSource(this.source),this.map.getSource(this.clusterSource)&&this.map.removeSource(this.clusterSource),this.map.getSource(this.interpolateSource)&&this.map.removeSource(this.interpolateSource),this.map.getLayer(this.circleLayer)&&this.map.removeLayer(this.circleLayer),this.map.getSource(this.circleSource)&&this.map.removeSource(this.circleSource)),(t=this.map)==null||t.off("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick),this.showTropicalsInfo=!1},handleDateChange(){var o,t,a,r,i,l,n,c,s,p,h,d,g,b,f,v,k,T,z,x,y,w,_,u,L,A,O,j,R,U,Y,H;if((o=this.interpolateMarkers)==null||o.forEach(Q=>Q==null?void 0:Q.remove()),this.circleSourceData.features=[],(t=this.interpolateData)!=null&&t.length&&this.tropicals.active){const Q=P(this.realTime).utc().set({minute:0,second:0,millisecond:0}),ae=this.interpolateData.filter(F=>F.properties.date===(Q==null?void 0:Q.format())&&!F.properties.disabled),ie=this.handleComputePolygons(ae),te=N.featureCollection([...ae]);ie.forEach(F=>{te.features.push(F)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(r=this.map)==null||r.getSource(this.interpolateSource).setData(te):((i=this.map)==null||i.addSource(this.interpolateSource,{type:"geojson",data:te}),(l=this.map)==null||l.addLayer({id:this.interpolateLineLayer,type:"line",source:this.interpolateSource,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-opacity":1,"line-color":["match",["get","level"],7,"#ff9100",10,"#f44336","#ffffff"],"line-width":1}})),this.interpolateMarkers=[];for(const F of ae)if(!F.properties.disabled){let X="#f44336";((c=(n=F.properties)==null?void 0:n.wind)==null?void 0:c.kts)<32||!((p=(s=F.properties)==null?void 0:s.wind)!=null&&p.kts)?X="#03f869":((d=(h=F.properties)==null?void 0:h.wind)==null?void 0:d.kts)>=32&&((b=(g=F.properties)==null?void 0:g.wind)==null?void 0:b.kts)<47?X="#f2f202":((v=(f=F.properties)==null?void 0:f.wind)==null?void 0:v.kts)>=47&&((T=(k=F.properties)==null?void 0:k.wind)==null?void 0:T.kts)<63?X="#ff9100":((x=(z=F.properties)==null?void 0:z.wind)==null?void 0:x.kts)>=63&&((w=(y=F.properties)==null?void 0:y.wind)==null?void 0:w.kts)<79?X="#f44336":((u=(_=F.properties)==null?void 0:_.wind)==null?void 0:u.kts)>=79&&((A=(L=F.properties)==null?void 0:L.wind)==null?void 0:A.kts)<94?X="#f903d0":((j=(O=F.properties)==null?void 0:O.wind)==null?void 0:j.kts)>=94?X="#8702f9":X="#f44336";const re=`<svg t="1719918955501"
|
|
194
|
+
`,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},paint:{"text-color":this.theme==="light"?["step",["get","val"],"rgba(0, 0, 0, 0.5)",920,"rgba(0, 0, 0, 0.5)",980,"rgba(0, 0, 0, 0.7)",1100,"rgba(0, 0, 0, 0.7)"]:["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-width":this.theme==="light"?1:0}},this.beforeLayer)},0),l=new Date().valueOf()-(r+i),console.log("[prmsl] add elapsed: ",l,", total: ",i+=l))}},handleClear(){this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},cr={key:0,class:"legend-tip-btn-gl4"};function mr(o,t,a,r,i,l){var s;const n=e.resolveComponent("VBtn"),c=e.resolveComponent("VTooltip");return(s=a.prmsl)!=null&&s.active?(e.openBlock(),e.createElementBlock("div",cr,[e.createElementVNode("div",{class:"menu-bar-box pa-1 rounded",style:e.normalizeStyle({right:i.right+"px"})},[e.createVNode(c,{text:"Map Layers",location:"left"},{activator:e.withCtx(({props:p})=>[e.createVNode(n,e.mergeProps(p,{"min-width":"32",width:"32",height:"32",class:"text-none pa-0",color:i.toggle?"primary":"",onClick:l.handleMenuToggle}),{default:e.withCtx(()=>t[0]||(t[0]=[e.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[0]},1040,["color","onClick"])]),_:1})],4)])):e.createCommentVNode("",!0)}const dr=V(sr,[["render",mr]]),qn="",hr={name:"IdmIceEdge",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()}},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[ice-edge] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgba(86, 169, 230, 0)"],[1/255,"rgba(86, 169, 230, 0)"],[25/255,"rgba(86, 169, 230, 1)"],[25/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 84, 39, 1)"],[250/255,"rgba(230, 84, 39, 1)"],[1,"rgba(230, 84, 39, 1)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},pr={key:0};function gr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",pr,[e.createElementVNode("div",{class:"legend-bars-gl4 ice-edge",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",{style:{color:"rgba(var(--v-theme-black), 0.7)"}},"%",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"40",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"70",-1),e.createElementVNode("span",null,null,-1),e.createElementVNode("span",null,"90",-1),e.createElementVNode("span",null,null,-1)]),4)])):e.createCommentVNode("",!0)}const ur=V(hr,[["render",gr]]),Kn="",fr={name:"IdmCover",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()}},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[ice-cover] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgba(68, 1, 84, 0)"],[1/255,"rgba(63, 72, 137, 0)"],[50/255,"rgba(53, 125, 177, 1)"],[100/255,"rgba(33, 145, 140, 1)"],[150/255,"rgba(45, 178, 125, 1)"],[200/255,"rgba(112, 207, 87, 1)"],[250/255,"rgba(253, 231, 37, 0.8)"],[1,"rgba(253, 231, 37, 1)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},yr={key:0};function br(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",yr,[e.createElementVNode("div",{class:"legend-bars-gl4 ice-cover",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"%",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"40",-1),e.createElementVNode("span",null,"60",-1),e.createElementVNode("span",null,"80",-1),e.createElementVNode("span",null,"100",-1)]),4)])):e.createCommentVNode("",!0)}const wr=V(fr,[["render",br],["__scopeId","data-v-9696d73b"]]),Qn="",xr={name:"IdmThickness",props:{factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[ice-thickness] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[0,"rgba(4, 6, 19, 0)"],[1/255,"rgba(4, 6, 19, 0)"],[20/255,"rgba(51, 50, 102, 1)"],[40/255,"rgba(63, 82, 158, 1)"],[50/255,"rgba(66, 123, 183, 1)"],[60/255,"rgba(92, 161, 197, 1)"],[80/255,"rgba(134, 199, 212, 0.7)"],[100/255,"rgba(134, 199, 212, 1)"],[150/255,"rgba(234, 253, 2536, 0.8)"],[250/255,"rgba(234, 253, 2536, 0.9)"],[1,"rgba(234, 253, 2536, 1)"]];this.rampColor=this.webgl.setup(this.context,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},_r={key:0};function kr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",_r,[e.createElementVNode("div",{class:"legend-bars-gl4 ice-thickness",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"m",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"0.6",-1),e.createElementVNode("span",null,"1",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"2",-1),e.createElementVNode("span",null,"3",-1)]),4)])):e.createCommentVNode("",!0)}const vr=V(xr,[["render",kr]]),Jn="",zr={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[precip3h] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Lr={key:0};function Cr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Lr,[e.createElementVNode("div",{class:"legend-bars-gl4 precip3h",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"mm",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"2",-1),e.createElementVNode("span",null,"3",-1),e.createElementVNode("span",null,"7",-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"30",-1)]),4)])):e.createCommentVNode("",!0)}const Pr=V(zr,[["render",Cr]]),$n="",Sr={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{right:10,program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[visibility] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Nr={key:0};function Tr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Nr,[e.createElementVNode("div",{class:"legend-bars-gl4 visibility",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"nm",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"0.5",-1),e.createElementVNode("span",null,"1.5",-1),e.createElementVNode("span",null,"3",-1),e.createElementVNode("span",null,"9",-1)]),4)])):e.createCommentVNode("",!0)}const Mr=V(Sr,[["render",Tr]]),es="",Er={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[water-temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Dr={key:0};function Br(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Dr,[e.createElementVNode("div",{class:"legend-bars-gl4 water-temp",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"°C",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"30",-1),e.createElementVNode("span",null,"40",-1)]),4)])):e.createCommentVNode("",!0)}const Ir=V(Er,[["render",Br]]),ts="",Ar={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new be,etime:void 0,right:10}},watch:{"factor.version":{handler(){var o;(o=this.factor)!=null&&o.active?this.handleRender():this.handleClear()},deep:!0},"menuToggle.v":{handler(){var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const o=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(o+t),console.log("[temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const o=[[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,o);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,K.vertexSchema,K.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const o=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,o)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Rr={key:0};function Vr(o,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(e.openBlock(),e.createElementBlock("div",Rr,[e.createElementVNode("div",{class:"legend-bars-gl4 temp",style:e.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[e.createElementVNode("span",null,"°C",-1),e.createElementVNode("span",null,"-20",-1),e.createElementVNode("span",null,"-10",-1),e.createElementVNode("span",null,"0",-1),e.createElementVNode("span",null,"10",-1),e.createElementVNode("span",null,"20",-1),e.createElementVNode("span",null,"30",-1),e.createElementVNode("span",null,"40",-1)]),4)])):e.createCommentVNode("",!0)}const Or=V(Ar,[["render",Vr]]),os="",jr={name:"IdmGlLayer",components:{IdmWindBarb:ji,IdmWindParticle:Wi,IdmCurrentDirection:Zi,IdmCurrentParticle:Qi,IdmWave:tr,IdmSigWaveHeight:ir,IdmSwell:nr,IdmPrmsl:dr,IdmIceEdge:ur,IdmIceCover:wr,IdmIceThickness:vr,IdmPrecip3h:Pr,IdmVisibility:Mr,IdmWaterTemp:Ir,IdmTemp:Or},props:{isLogin:{type:Boolean,default:!1},theme:{type:String},map:{type:Object},mapFeather:{type:String},gateway:{type:String},assistGateway:{type:Array,default:[]},token:{type:String},defaultMeteoToken:{type:String},top:{type:Number,default:60},menuToggle:{type:Object,default:{}},realTime:{type:String},forecastModel:{type:String},beforeLayer:{type:String}},emits:["menuToggle","weatherCheckList","autoActive"],data(){return{right:10,toggle:!1,autoActive:!0,allLayers:[...Me.LayerHelper.WEATHER_LAYERS],tagLayers:[...Me.LayerHelper.WEATHER_LAYERS.filter(o=>!o.hide)],checkList:[],renderKey:"",iceToggleValue:void 0,weatherLayers:{},activeWeatherLayers:[],cache:{v:"0.0.1",versionKey:"weatherLayerCacheVersionGL4",autoActiveKey:"autoActiveCacheGL4",checkListKey:"weatherCheckListCacheGL4"},models:{},zoom:6,viewport:void 0,particleFactor:void 0,showWindParticle:!0,showCurrentParticle:!0,legendToggle:!1,legend:{barbs:[2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,0],current:[{label:"0-0.5 kts",size:.3,color:"rgb(58, 164, 58)"},{label:"0.5-1 kts",size:.4,color:"#ffff00"},{label:"1-1.5 kts",size:.6,color:"#ff9500"},{label:"1.5-2 kts",size:.8,color:"#f44336"},{label:">= 2 kts",size:1,color:"#e4711e"}],sigWaveHeight:[{label:"< 2 m",color:"rgba(0,235,156,0)"},{label:"2-3 m",color:"rgba(0,235,156,0.4)"},{label:"3-4 m",color:"#ffed00"},{label:"4-5 m",color:"#ff9800"},{label:"5-6 m",color:"#f77800"},{label:"6-7 m",color:"#e4711e"},{label:"7-8 m",color:"#e06128"},{label:"8-9 m",color:"#dc5132"},{label:"9-10 m",color:"#d5453c"},{label:"10-12 m",color:"#cd3a46"},{label:"12-14 m",color:"#be2c50"},{label:"> 14 m",color:"#aa1a5a"}]}}},computed:{computeDateZ(){return function(o){var t;if(o){const a=P(o);return`${(t=a==null?void 0:a.utc())==null?void 0:t.format("MMM-DD/HHmm")}Z`}return"-"}},overlaysKeys(){return this.tagLayers.filter(o=>o.overlays).map(o=>o.key)},rendersKeys(){return this.tagLayers.filter(o=>!o.overlays).map(o=>o.key)},showTipMenu(){return this.checkList.includes("wind")||this.checkList.includes("current-direction")||this.checkList.includes("sig-wave-height")},barbsIconName(){var t,a,r;const o=[];for(let i=0;i<((a=(t=this.legend)==null?void 0:t.barbs)==null?void 0:a.length);i++){const l=((r=this.legend)==null?void 0:r.barbs[i])||0,n=l<10?`00${l}kts`:l<100?`0${l}kts`:`${l}kts`;o.push("icon-a-"+n)}return o}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.weatherLayers,this.$nextTick(()=>{var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10})}},forecastModel:{handler(o,t){o&&o!==t&&this.handleWeatherLayerChange({sourceChanged:!0})}},map:{handler(){this.map&&(this.map.on("move",this.handleMove4Weather),this.viewport=new jt(this.map),this.handleRampColorInitial(),this.handleWeatherLayerChange(),this.$emit("weatherCheckList",this.checkList))},immediate:!0},realTime:{handler(o,t){o&&t&&P(o).utc().format("yyyy-MM-DD HH")!==P(t).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.fetchWeatherLayers()})},immediate:!0},renderKey:{handler(o,t){o&&o!==t?this.checkList=[o]:!o&&t&&(this.checkList=this.checkList.filter(a=>a!==t))}},checkList:{handler(o,t){this.handleCheckListChange(o,t),this.$emit("weatherCheckList",o),this.autoActive&&this.checkList.length?this.$parent.$refs.idmBottomBar.handleToggle(!0):this.$parent.$refs.idmBottomBar.handleToggle(!1)}},autoActive:{handler(o){localStorage.setItem(this.cache.autoActiveKey,this.autoActive),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(t=>this.checkList.includes(t.key)):[],this.handleWeatherLayerChange(),this.autoActive&&this.checkList.length?this.$parent.$refs.idmBottomBar.handleToggle(!0):this.$parent.$refs.idmBottomBar.handleToggle(!1),this.$emit("autoActive",this.autoActive)}},iceToggleValue:{handler(o){o&&(this.checkList=["ice-forecast",this.iceToggleValue])}},showWindParticle:{handler(o){let t="wind-particle";this.weatherLayers[t].particle=o,this.weatherLayers[t].version=Math.random()+1}},showCurrentParticle:{handler(o){let t="current-particle";this.weatherLayers[t].particle=o,this.weatherLayers[t].version=Math.random()+1}},isLogin:{handler(o){o?(this.fetchModels(),this.fetchWeatherLayers()):this.models={}},immediate:!0}},mounted(){this.fetchCache(),this.fetchModels(),this.fetchWeatherLayers()},methods:{arraysEqual(o,t){if((o==null?void 0:o.length)!==(t==null?void 0:t.length))return!1;for(let a=0;a<(o==null?void 0:o.length);a++)if((o==null?void 0:o[a])!==(t==null?void 0:t[a]))return!1;return!0},fetchCache(){const o=localStorage.getItem(this.cache.versionKey);this.cache.v!==o&&(localStorage.removeItem(this.cache.autoActiveKey),localStorage.removeItem(this.cache.checkListKey),localStorage.setItem(this.cache.versionKey,this.cache.v));let t=localStorage.getItem(this.cache.autoActiveKey);this.autoActive=t!=="false",localStorage.setItem(this.cache.autoActiveKey,this.autoActive),t=localStorage.getItem(this.cache.checkListKey),this.checkList=JSON.parse(t||"['wind', 'sig-wave-height']"),this.checkList.find(a=>this.rendersKeys.includes(a))&&(this.renderKey=this.checkList.find(a=>this.rendersKeys.includes(a))),localStorage.setItem(this.cache.checkListKey,JSON.stringify(this.checkList))},handleMenuToggle(){this.$emit("menuToggle","weatherLayers")},handleFastWeatherToggle(o){let t=[];this.checkList.includes(o)?t=this.checkList.filter(a=>a!==o):t=[...this.checkList,o],this.handleCheckListChange(t,this.checkList)},handleCheckListChange(o,t){if(this.arraysEqual(o,t))return!1;const a=[...new Set(o)],r=a==null?void 0:a.filter(l=>!(t!=null&&t.includes(l)))[0],i=t==null?void 0:t.filter(l=>!(a!=null&&a.includes(l)))[0];r&&(r==="ice-cover"||r==="ice-thickness"||r==="ice-forecast"?(this.checkList=["ice-forecast",this.iceToggleValue||"ice-cover"],this.iceToggleValue=this.iceToggleValue||"ice-cover"):this.rendersKeys.includes(r)?this.checkList=[r]:(this.checkList=a.filter(l=>!this.rendersKeys.includes(l)),this.renderKey=void 0)),i&&(i==="ice-forecast"?(this.checkList=a.filter(l=>!["ice-cover","ice-thickness","ice-forecast"].includes(l)),this.iceToggleValue=void 0):this.checkList=a),this.checkList.includes("wind-particle")&&(this.showWindParticle=!0),this.checkList.includes("current-particle")&&(this.showCurrentParticle=!0),localStorage.setItem(this.cache.checkListKey,JSON.stringify(a)),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(l=>a.includes(l.key)):[],this.handleWeatherLayerChange()},async fetchModels(){this.models={};const o=await $.get(`${this.gateway}/api/arc/meteo2/models2`,{headers:{Authorization:this.token||this.defaultMeteoToken}});(o==null?void 0:o.data.code)===0&&(this.models=o==null?void 0:o.data.data)},async fetchWeatherLayers(o={}){var i,l,n,c,s,p,h,d,g;const t=new Date().valueOf();let a=0,r=0;if(this.map){const b=((i=this.map)==null?void 0:i.getZoom())+1,f=(l=this.map)==null?void 0:l.getBounds(),v=`${f._sw.lng},${f._sw.lat},${f._ne.lng},${f._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const k=Me.LayerHelper.WEATHER_LAYERS.find(T=>{var z;return((z=T.peer)==null?void 0:z.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&k.weight?this.weatherWeight:this.weatherWeight+k.weight:this.weatherWeight=this.weatherWeight&k.weight?this.weatherWeight-k.weight:this.weatherWeight}if(this.weatherWeight>0){let k=this.weatherWeight;if(k>0){const T=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],z=await $.get(`${T}/api/arc/weather/layers2/links?l=${k}&v=${this.forecastModel}&z=${b}&bbox=${v}&t=${this.realTime}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(r=new Date().valueOf()-(t+a),console.log("weather links elapsed: ",r,", total: ",a+=r),((c=z==null?void 0:z.data)==null?void 0:c.code)===0){const x=(s=z==null?void 0:z.data)==null?void 0:s.data,y=[];for(const _ in x)y.push($.get(x[_],{headers:{Authorization:this.token||this.defaultMeteoToken,key:_},responseType:/\.(jpg|png)$/.test(x[_])?"blob":"json"}).catch(u=>{console.log(`[${_}] fetch layer error: ${u}`)}));const w=await Promise.all(y);this.weatherLayers={},w.map(_=>{var A,O,j,R;const u=((A=_==null?void 0:_.data)==null?void 0:A.data)||(_==null?void 0:_.data);let L=(j=(O=_==null?void 0:_.config)==null?void 0:O.headers)==null?void 0:j.key;L&&u&&(this.weatherLayers[L]={raw:u,type:((R=_==null?void 0:_.config)==null?void 0:R.responseType)==="blob"?"image":"json",etime:z.data.etime})})}if(r=new Date().valueOf()-(t+a),console.log("weather layers elapsed: ",r,", total: ",a+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const x=(p=this.weatherLayers["swell-direction"])==null?void 0:p.raw,y=(h=this.weatherLayers["swell-height"])==null?void 0:h.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:x,height:{raw:y},etime:z.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const x=(d=this.weatherLayers["current-direction"])==null?void 0:d.raw,y=(g=this.weatherLayers["current-speed"])==null?void 0:g.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:x,speed:{raw:y},etime:z.data.etime}}}}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json()}},handleWeatherLayerToggle(){for(const o in this.weatherLayers)this.weatherLayers[o].active=!1,this.weatherLayers[o].version=Math.random()+1;for(const o of this.activeWeatherLayers){let t=o.key;t==="current-direction"&&(t="current"),this.weatherLayers[t]&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1,t==="wind-particle"&&(this.weatherLayers[t].particle=this.showWindParticle),t==="current-particle"&&(this.weatherLayers[t].particle=this.showCurrentParticle))}},handleWeatherLayerChange(o={sourceChanged:!1}){this.map?setTimeout(()=>{var a;const t=(a=this.activeWeatherLayers)==null?void 0:a.reduce((r,i)=>r+(r&(i==null?void 0:i.weight)?0:i==null?void 0:i.weight),0);o!=null&&o.sourceChanged||this.weatherWeight!==t?(this.weatherWeight=t,this.fetchWeatherLayers()):this.handleWeatherLayerToggle()}):setTimeout(()=>{this.handleWeatherLayerChange()},500)},handleRampColorInitial(){var o,t,a,r,i,l,n,c,s,p,h,d;this.viewport.map.getSource((o=this.viewport)==null?void 0:o.rampColorSource)||this.viewport.map.addSource((t=this.viewport)==null?void 0:t.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(i=this.viewport)==null?void 0:i.rampColorLayer,source:(l=this.viewport)==null?void 0:l.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((c=this.viewport)==null?void 0:c.particleSource,{type:"canvas",canvas:(s=this.viewport)==null?void 0:s.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((p=this.viewport)==null?void 0:p.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(h=this.viewport)==null?void 0:h.particleLayer,source:(d=this.viewport)==null?void 0:d.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var p,h,d,g,b,f,v;const o=new Date().valueOf();let t=0,a=0;const r=(p=this.map)==null?void 0:p.getBounds(),i=(h=this.map)==null?void 0:h.getZoom(),l=I.LngLatHelper.convertToStdLng(r._sw.lng),n=I.LngLatHelper.convertToStdLng(r._ne.lng),c=Math.floor(r._sw.lat),s=Math.ceil(r._ne.lat);for(const k in this.weatherLayers){let T=!1;if(this.weatherLayers[k].active&&this.weatherLayers[k].type==="json"){let z=[];if(k==="swell"){T=!0;const x=((d=this.weatherLayers[k])==null?void 0:d.direction)||{};for(const w in x)if(w>c&&w<s&&(!(i<=this.zoom)||w%(i<2?10:i<4?5:3)===0)){const _=x[w].lng;l>n?_.forEach((u,L)=>{var A,O,j,R,U,Y;if(i<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if((u>=l&&u<=180||u>=-180&&u<=n)&&(!(i<=this.zoom)||u%(i<2?10:i<4?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}}):_.forEach((u,L)=>{var A,O,j,R,U,Y;if(l<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if(u>=l&&u<=n&&(!(i<=this.zoom)||u%(i<2?10:i<4?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}})}a=new Date().valueOf()-(o+t),console.log("swell direction elapsed: ",a,", total: ",t+=a);const y=this.weatherLayers[k].height;if(y){if(!y.data){const w=[];for(const _ in(g=y.raw)==null?void 0:g.LineString){const u=y.raw.LineString[_];for(const L of u)w.push(N.lineString(L,{val:Number(_)}));y.data=N.featureCollection(w)}}if(y.data){const w=this.handleBboxClip(y.data,r);z=z.concat(w)}a=new Date().valueOf()-(o+t),console.log("swell height elapsed: ",a,", total: ",t+=a)}}else if(k==="current"){T=!0;const x=((b=this.weatherLayers[k])==null?void 0:b.direction)||{};for(const w in x)if(w>c&&w<s&&(!(i<=this.zoom)||w%(i<2?10:i<4?5:3)===0)){const _=x[w].lng;l>n?_.forEach((u,L)=>{var A,O,j,R,U,Y;if(i<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if((u>=l&&u<=180||u>=-180&&u<=n)&&(!(i<=this.zoom)||u%(i<2?10:i<4?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}}):_.forEach((u,L)=>{var A,O,j,R,U,Y;if(l<2){if((u>=0&&u<=360||u>=-360&&u<=0)&&u%10===0){const H=N.point([u,w],{val:((A=x[w].val)==null?void 0:A[L])||((O=x[w].dir)==null?void 0:O[L]),spd:(j=x[w].spd)==null?void 0:j[L]});z.push(H)}}else if(u>=l&&u<=n&&(!(i<=this.zoom)||u%(i<this.zoom/2?5:3)===0)){const H=N.point([u,w],{val:((R=x[w].val)==null?void 0:R[L])||((U=x[w].dir)==null?void 0:U[L]),spd:(Y=x[w].spd)==null?void 0:Y[L]});z.push(H)}})}a=new Date().valueOf()-(o+t),console.log("current direction elapsed: ",a,", total: ",t+=a);const y=this.weatherLayers[k].speed;if(y){if(!y.data){const _=[];for(const u in(f=y.raw)==null?void 0:f.Polygon){const L=y.raw.Polygon[u];for(const A of L)_.push(N.polygon(A,{val:Number(u)}))}y.data=N.featureCollection(_)}const w=i<this.zoom?y.data.features.filter(_=>_.properties.val>.5):y.data.features;z=z.concat(w),a=new Date().valueOf()-(o+t),console.log("current speed elapsed: ",a,", total: ",t+=a)}}else if(k==="wind"){T=!0;const x=this.weatherLayers.wind.raw;for(const y in x)if(y>c&&y<s&&(!(i<=this.zoom)||y%(i<2?10:i<4?5:3)===0)){const w=x[y].lng;l>n?w.forEach((_,u)=>{var L,A,O,j;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const R=N.point([_,y],{dir:((L=x[y].val)==null?void 0:L[u])||((A=x[y].dir)==null?void 0:A[u]),spd:x[y].spd[u]});z.push(R)}}else if((_>=l&&_<=180||_>=-180&&_<=n)&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const R=N.point([_,y],{dir:((O=x[y].val)==null?void 0:O[u])||((j=x[y].dir)==null?void 0:j[u]),spd:x[y].spd[u]});z.push(R)}}):w.forEach((_,u)=>{var L,A,O,j;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const R=N.point([_,y],{dir:((L=x[y].val)==null?void 0:L[u])||((A=x[y].dir)==null?void 0:A[u]),spd:x[y].spd[u]});z.push(R)}}else if(_>=l&&_<=n&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const R=N.point([_,y],{dir:((O=x[y].val)==null?void 0:O[u])||((j=x[y].dir)==null?void 0:j[u]),spd:x[y].spd[u]});z.push(R)}})}a=new Date().valueOf()-(o+t),console.log("wind barb elapsed: ",a,", total: ",t+=a)}else if(k==="sig-wave-height"){if(this.weatherLayers[k].data)z=this.weatherLayers[k].data;else{T=!0;const x=this.weatherLayers[k].raw;if(x){const y=[];for(const w in x.Polygon){const _=x.Polygon[w];for(const u of _)y.push(N.polygon(u,{val:Number(w)}))}for(const w in x.MultiPolygon){const _=x.MultiPolygon[w];for(const u of _)y.push(N.multiPolygon(u,{val:Number(w)}))}for(const w in x.Point){const _=x.Point[w];for(let u=0;u<((v=_.lng)==null?void 0:v.length);u++)y.push(N.point([_.lng[u],w],{val:Number(_.val[u])}))}z=z.concat(y)}}a=new Date().valueOf()-(o+t),console.log("sig-wave-height elapsed: ",a,", total: ",t+=a)}else if(k==="prmsl"){if(this.weatherLayers[k].data)z=this.weatherLayers[k].data;else{T=!0;const x=this.weatherLayers[k].raw;if(x){const y=[];for(const w in x.LineString){const _=x.LineString[w];for(const u of _)y.push(N.lineString(u,{val:Number(w)}))}for(const w in x.Point)x.Point[w].lng.forEach((_,u)=>{_=I.LngLatHelper.convertToStdLng(_),y.push(N.point([_,w],{val:x.Point[w].val[u],type:x.Point[w].type[u]}))});z=z.concat(y)}}a=new Date().valueOf()-(o+t),console.log("prmsl elapsed: ",a,", total: ",t+=a)}z.length&&(this.weatherLayers[k].data=N.featureCollection(z)),T&&(this.weatherLayers[k].version=Math.random()+1)}}},handleMove4Weather(){for(const o in this.weatherLayers)this.weatherLayers[o].active&&this.weatherLayers[o].type==="image"&&(this.weatherLayers[o].active=!0,this.weatherLayers[o].version=Math.random()+1);this.handleDrawWeather4Json()},handleBboxClip(o,t){const a=[],r=I.LngLatHelper.convertToStdLng(t._sw.lng),i=I.LngLatHelper.convertToStdLng(t._ne.lng);return o.features.forEach(l=>{if(l.geometry.type!=="Point")if(r>i){let n=[r,t._sw.lat,180,t._ne.lat],c=N.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c),n=[-180,t._sw.lat,i,t._ne.lat],c=N.bboxClip(l,n),c.geometry.coordinates.length&&a.push(c)}else{const n=[r,t._sw.lat,i,t._ne.lat],c=N.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c)}else a.push(l)}),a}}},Fr={class:"idm-gl4-meteo-layers"},Hr={key:0,class:"legend-tip-btn-gl4"},Gr={class:"d-flex flex-row justify-center align-center"},Wr={class:"text-caption"},Ur={class:"d-flex flex-row justify-center align-center"},Yr={key:0,style:{width:"24px",height:"12px",border:"1px solid rgba(var(--v-border-color), var(--v-border-opacity))"}},Zr={class:"text-caption px-2"},Xr={class:"d-flex flex-row justify-start align-center"},qr={class:"d-flex flex-row justify-center align-center",style:{width:"40px"}},Kr={class:"text-caption px-2"},Qr={class:"header-box d-flex justify-space-between align-center pl-4 pr-4"},Jr={class:"d-flex justify-start align-center ga-3"},$r={class:"text-h5 font-weight-medium"},el={key:0,class:"d-flex justify-start align-center ga-4 pl-6"},tl={key:1,class:"d-flex justify-start align-center ga-4 pl-6"},ol={class:"text-body-1 py-2"},al={class:"text-body-1 font-weight-medium"},il={class:"text-body-2 opacity-70"},rl={class:"text-body-2 opacity-70 mb-3"},ll={class:"text-body-1 font-weight-medium"},nl={class:"text-body-2 opacity-70"},sl={class:"text-body-2 opacity-70 mb-3"},cl={class:"text-body-1 py-2"},ml={class:"text-body-1 font-weight-medium"},dl={class:"text-body-2 opacity-70"},hl={class:"text-body-2 opacity-70 mb-3"},pl={class:"text-body-1 font-weight-medium"},gl={class:"text-body-2 opacity-70"},ul={class:"text-body-2 opacity-70 mb-3"},fl={class:"text-body-1 py-2"},yl={class:"text-body-1 font-weight-medium"},bl={class:"text-body-2 opacity-70"},wl={class:"text-body-2 opacity-70 mb-3"};function xl(o,t,a,r,i,l){var ie,te,F,X,re,M,ee,he,pe,we,xe,_e,ke,ve,de;const n=e.resolveComponent("VBtn"),c=e.resolveComponent("VTooltip"),s=e.resolveComponent("VCol"),p=e.resolveComponent("VRow"),h=e.resolveComponent("VCardText"),d=e.resolveComponent("VDivider"),g=e.resolveComponent("VCard"),b=e.resolveComponent("VSwitch"),f=e.resolveComponent("VCardTitle"),v=e.resolveComponent("VCardItem"),k=e.resolveComponent("VCheckbox"),T=e.resolveComponent("VRadio"),z=e.resolveComponent("VBtnToggle"),x=e.resolveComponent("IdmWindBarb"),y=e.resolveComponent("IdmSigWaveHeight"),w=e.resolveComponent("IdmCurrentDirection"),_=e.resolveComponent("IdmPrmsl"),u=e.resolveComponent("IdmWindParticle"),L=e.resolveComponent("IdmCurrentParticle"),A=e.resolveComponent("IdmWave"),O=e.resolveComponent("IdmSwell"),j=e.resolveComponent("IdmIceEdge"),R=e.resolveComponent("IdmIceCover"),U=e.resolveComponent("IdmIceThickness"),Y=e.resolveComponent("IdmPrecip3h"),H=e.resolveComponent("IdmVisibility"),Q=e.resolveComponent("IdmWaterTemp"),ae=e.resolveComponent("IdmTemp");return e.openBlock(),e.createElementBlock("div",Fr,[e.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:e.normalizeStyle({top:a.top+94+"px",right:i.right+"px"})},[e.createVNode(c,{text:o.$t("weather.weatherLayers"),location:"left"},{activator:e.withCtx(({props:E})=>[e.createVNode(n,e.mergeProps(E,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:e.withCtx(()=>t[7]||(t[7]=[e.createElementVNode("i",{class:"iconfont icon-Weather text-h4"},null,-1)])),_:2,__:[7]},1040,["class","onClick"])]),_:1},8,["text"])],4),l.showTipMenu?(e.openBlock(),e.createElementBlock("div",Hr,[e.createElementVNode("div",{class:"menu-bar-box pa-1 rounded",style:e.normalizeStyle({right:i.right+"px"})},[e.createVNode(c,{text:"Legend",location:"left"},{activator:e.withCtx(({props:E})=>[e.createVNode(n,e.mergeProps(E,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.legendToggle?"bg-primary active-border":""],onClick:t[0]||(t[0]=Z=>i.legendToggle=!i.legendToggle)}),{default:e.withCtx(()=>t[8]||(t[8]=[e.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[8]},1040,["class"])]),_:1})],4),i.legendToggle?(e.openBlock(),e.createBlock(g,{key:0,width:"435",elevation:"16",class:"card-info d-flex justify-center align-start",style:e.normalizeStyle({position:"absolute",top:"340px",right:i.right+50+"px"})},{default:e.withCtx(()=>[e.createVNode(h,{class:"d-flex flex-column justify-center align-start opacity-80 px-4"},{default:e.withCtx(()=>[t[9]||(t[9]=e.createElementVNode("div",{class:"text-body-1 font-weight-600 mb-2"},"Wind Level",-1)),e.createVNode(p,{class:"ma-0 ml-n1 text-body-2"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.legend.barbs,(E,Z)=>(e.openBlock(),e.createBlock(s,{key:E,cols:"6",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Gr,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont",l.barbsIconName[Z]]),style:e.normalizeStyle({color:a.theme==="dark"?"#fff":"#000"})},null,6),e.createElementVNode("span",Wr,e.toDisplayString(Number(E)<10?`00${E}kts`:Number(E)<100?`0${E}kts`:`${E}kts`),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[9]}),e.createVNode(d,{vertical:""}),e.createVNode(h,{class:"d-flex flex-column justify-center align-start opacity-80 px-4"},{default:e.withCtx(()=>[t[10]||(t[10]=e.createElementVNode("div",{class:"text-body-1 font-weight-600 mb-2"},"Wave Height",-1)),e.createVNode(p,{class:"ma-0 ml-1",style:{width:"100px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.legend.sigWaveHeight,(E,Z)=>(e.openBlock(),e.createBlock(s,{key:Z,cols:"12",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Ur,[Z===0?(e.openBlock(),e.createElementBlock("div",Yr)):(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle({width:"24px",height:"12px",background:E.color})},null,4)),e.createElementVNode("div",Zr,e.toDisplayString(E.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[10]}),e.createVNode(d,{vertical:""}),e.createVNode(h,{class:"d-flex flex-column justify-center align-start opacity-80 px-4"},{default:e.withCtx(()=>[t[11]||(t[11]=e.createElementVNode("div",{class:"text-body-1 font-weight-600 mb-2"},"Current",-1)),e.createVNode(p,{class:"ma-0 ml-n5",style:{width:"110px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.legend.current,(E,Z)=>(e.openBlock(),e.createBlock(s,{key:Z,cols:"12",class:"d-flex flex-row justify-center align-center py-1 px-0 ma-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Xr,[e.createElementVNode("div",qr,[e.createElementVNode("i",{class:"iconfont icon-a-direction-arrow opacity-80",style:e.normalizeStyle({fontSize:40*E.size+"px"})},null,4)]),e.createElementVNode("div",Kr,e.toDisplayString(E.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[11]})]),_:1},8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["available-layers transition flex-center",i.toggle?"right-bar":""]),style:e.normalizeStyle({top:a.top+"px",right:i.toggle?"0px":"-280px"})},[e.createElementVNode("div",Qr,[e.createElementVNode("div",Jr,[e.createElementVNode("div",$r,e.toDisplayString(o.$t("weather.weather")),1),e.createVNode(b,{modelValue:i.autoActive,"onUpdate:modelValue":t[1]||(t[1]=E=>i.autoActive=E),class:"small-switch",color:"primary",inset:"","hide-details":""},null,8,["modelValue"])]),e.createVNode(n,{icon:"",density:"comfortable",variant:"plain",class:"mr-n2",onClick:l.handleMenuToggle},{default:e.withCtx(()=>t[12]||(t[12]=[e.createElementVNode("i",{class:"iconfont icon-close",style:{"font-size":"20px"}},null,-1)])),_:1,__:[12]},8,["onClick"])]),e.createElementVNode("div",{class:e.normalizeClass(["list-box scroll pl-4 pr-2 overflow-y-auto",i.autoActive?"":"cursor-not-allowed"])},[e.createVNode(g,{class:"menu-card mx-auto mb-3",elevation:"0"},{default:e.withCtx(()=>[e.createVNode(v,{class:"border-b-thin"},{default:e.withCtx(()=>[e.createVNode(f,{class:"text-subtitle-1 font-weight-medium",style:{"font-size":"16px !important"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.overlays")),1)]),_:1})]),_:1}),e.createVNode(h,{class:"py-2"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagLayers.filter(E=>E.overlays),E=>(e.openBlock(),e.createBlock(k,{key:E.key,modelValue:i.checkList,"onUpdate:modelValue":t[2]||(t[2]=Z=>i.checkList=Z),value:E.key,label:o.$t(`weather.${E.locale}`),disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"flex-1-0-100 text-body-2","hide-details":""},null,8,["modelValue","value","label","disabled"]))),128))]),_:1})]),_:1}),e.createVNode(g,{class:"menu-card mx-auto mb-3",elevation:"0"},{default:e.withCtx(()=>[e.createVNode(v,{class:"border-b-thin"},{default:e.withCtx(()=>[e.createVNode(f,{class:"text-subtitle-1 font-weight-medium",style:{"font-size":"16px !important"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.renders")),1)]),_:1})]),_:1}),e.createVNode(h,{class:"py-2"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tagLayers.filter(E=>!E.overlays&&E.key!=="ice-thickness"),E=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:E.key},[e.createVNode(T,{modelValue:i.renderKey,"onUpdate:modelValue":t[3]||(t[3]=Z=>i.renderKey=Z),label:o.$t(`weather.${E.locale}`),value:E.key,disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"text-body-2 py-1","hide-details":"",onClick:Z=>i.renderKey=i.renderKey===E.key?"":E.key},null,8,["modelValue","label","value","disabled","onClick"]),i.renderKey==="wind-particle"&&E.key==="wind-particle"?(e.openBlock(),e.createElementBlock("div",el,[e.createElementVNode("span",null,e.toDisplayString(o.$t("weather.particleAnimatiom")),1),e.createVNode(b,{modelValue:i.showWindParticle,"onUpdate:modelValue":t[4]||(t[4]=Z=>i.showWindParticle=Z),label:"",class:"small-switch",color:"primary",density:"compact",inset:"",style:{"font-size":"14px"},"hide-details":""},null,8,["modelValue"])])):e.createCommentVNode("",!0),i.renderKey==="current-particle"&&E.key==="current-particle"?(e.openBlock(),e.createElementBlock("div",tl,[e.createElementVNode("span",null,e.toDisplayString(o.$t("weather.particleAnimatiom")),1),e.createVNode(b,{modelValue:i.showCurrentParticle,"onUpdate:modelValue":t[5]||(t[5]=Z=>i.showCurrentParticle=Z),label:"",class:"small-switch",color:"primary",inset:"",density:"compact",height:"20","hide-details":""},null,8,["modelValue"])])):e.createCommentVNode("",!0),i.renderKey==="ice-forecast"&&E.key==="ice-forecast"?(e.openBlock(),e.createBlock(z,{key:2,modelValue:i.iceToggleValue,"onUpdate:modelValue":t[6]||(t[6]=Z=>i.iceToggleValue=Z),class:"ml-7",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:e.withCtx(()=>[e.createVNode(n,{density:"compact",height:"30",value:"ice-cover",class:"text-none px-2",color:i.iceToggleValue==="ice-cover"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.coverage")),1)]),_:1},8,["color","disabled"]),e.createVNode(n,{density:"compact",height:"30",class:"text-none px-2",color:i.iceToggleValue==="ice-thickness"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"ice-thickness"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.thickness")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):e.createCommentVNode("",!0)],64))),128))]),_:1})]),_:1}),e.createVNode(g,{class:"menu-card mx-auto mb-3",elevation:"0"},{default:e.withCtx(()=>[e.createVNode(v,{class:"border-b-thin"},{default:e.withCtx(()=>[e.createVNode(f,{class:"text-subtitle-1 font-weight-medium",style:{"font-size":"16px !important"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.$t("weather.forecastModel")),1)]),_:1})]),_:1}),e.createVNode(h,{class:""},{default:e.withCtx(()=>{var E,Z,Pe,fe,oe,le,D,ge,G,q,ze,S,ne,ye,Le,Ce,C,B,Se,Ne,Te,ue,Be,Ie,Ae,Re,Ve,Oe,je,Fe,He,Ge,We,Ue,Ye,Ze,Xe,qe,Ke,Qe,Je,$e,et,tt,ot,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,_t,kt,vt,zt,Lt,Ct,Pt,St,Nt,Tt,Mt,Et,Dt,Bt,It,At,Rt,Vt,Ot;return[e.createElementVNode("div",ol,e.toDisplayString(o.$t("weather.atmospheric")),1),e.createElementVNode("div",al,e.toDisplayString((Pe=(Z=(E=i.models)==null?void 0:E.weather)==null?void 0:Z.NOAA)==null?void 0:Pe.source)+" "+e.toDisplayString((le=(oe=(fe=i.models)==null?void 0:fe.weather)==null?void 0:oe.NOAA)==null?void 0:le.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((q=(G=(ge=(D=i.models)==null?void 0:D.weather)==null?void 0:ge.NOAA)==null?void 0:G.meta)==null?void 0:q.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",il,e.toDisplayString(o.$t("weather.source"))+": NOAA",1),e.createElementVNode("div",rl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((ye=(ne=(S=(ze=i.models)==null?void 0:ze.weather)==null?void 0:S.NOAA)==null?void 0:ne.meta)==null?void 0:ye.initialisationTime)),1),e.createElementVNode("div",ll,e.toDisplayString((C=(Ce=(Le=i.models)==null?void 0:Le.weather)==null?void 0:Ce.ECMWF)==null?void 0:C.source)+" "+e.toDisplayString((Ne=(Se=(B=i.models)==null?void 0:B.weather)==null?void 0:Se.ECMWF)==null?void 0:Ne.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((Ie=(Be=(ue=(Te=i.models)==null?void 0:Te.weather)==null?void 0:ue.ECMWF)==null?void 0:Be.meta)==null?void 0:Ie.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",nl,e.toDisplayString(o.$t("weather.source"))+": ECMWF",1),e.createElementVNode("div",sl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((Oe=(Ve=(Re=(Ae=i.models)==null?void 0:Ae.weather)==null?void 0:Re.ECMWF)==null?void 0:Ve.meta)==null?void 0:Oe.initialisationTime)),1),e.createVNode(d),e.createElementVNode("div",cl,e.toDisplayString(o.$t("weather.wave")),1),e.createElementVNode("div",ml,e.toDisplayString((Ge=(He=(Fe=(je=i.models)==null?void 0:je.marine)==null?void 0:Fe.wave)==null?void 0:He.NOAA)==null?void 0:Ge.source)+" "+e.toDisplayString((Ze=(Ye=(Ue=(We=i.models)==null?void 0:We.marine)==null?void 0:Ue.wave)==null?void 0:Ye.NOAA)==null?void 0:Ze.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((Je=(Qe=(Ke=(qe=(Xe=i.models)==null?void 0:Xe.marine)==null?void 0:qe.wave)==null?void 0:Ke.NOAA)==null?void 0:Qe.meta)==null?void 0:Je.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",dl,e.toDisplayString(o.$t("weather.source"))+": NOAA",1),e.createElementVNode("div",hl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((at=(ot=(tt=(et=($e=i.models)==null?void 0:$e.marine)==null?void 0:et.wave)==null?void 0:tt.NOAA)==null?void 0:ot.meta)==null?void 0:at.initialisationTime)),1),e.createElementVNode("div",pl,e.toDisplayString((nt=(lt=(rt=(it=i.models)==null?void 0:it.marine)==null?void 0:rt.wave)==null?void 0:lt.ECMWF)==null?void 0:nt.source)+" "+e.toDisplayString((dt=(mt=(ct=(st=i.models)==null?void 0:st.marine)==null?void 0:ct.wave)==null?void 0:mt.ECMWF)==null?void 0:dt.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((ft=(ut=(gt=(pt=(ht=i.models)==null?void 0:ht.marine)==null?void 0:pt.wave)==null?void 0:gt.ECMWF)==null?void 0:ut.meta)==null?void 0:ft.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",gl,e.toDisplayString(o.$t("weather.source"))+": ECMWF",1),e.createElementVNode("div",ul,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((_t=(xt=(wt=(bt=(yt=i.models)==null?void 0:yt.marine)==null?void 0:bt.wave)==null?void 0:wt.ECMWF)==null?void 0:xt.meta)==null?void 0:_t.initialisationTime)),1),e.createVNode(d),e.createElementVNode("div",fl,e.toDisplayString(o.$t("weather.currents")),1),e.createElementVNode("div",yl,e.toDisplayString((Lt=(zt=(vt=(kt=i.models)==null?void 0:kt.marine)==null?void 0:vt.current)==null?void 0:zt.ECMWF)==null?void 0:Lt.source)+" "+e.toDisplayString((Nt=(St=(Pt=(Ct=i.models)==null?void 0:Ct.marine)==null?void 0:Pt.current)==null?void 0:St.ECMWF)==null?void 0:Nt.spatialResolution)+e.toDisplayString(o.$t("units.km"))+" "+e.toDisplayString((Bt=(Dt=(Et=(Mt=(Tt=i.models)==null?void 0:Tt.marine)==null?void 0:Mt.current)==null?void 0:Et.ECMWF)==null?void 0:Dt.meta)==null?void 0:Bt.days)+e.toDisplayString(o.$t("units.days")),1),e.createElementVNode("div",bl,e.toDisplayString(o.$t("weather.source"))+": ECMWF",1),e.createElementVNode("div",wl,e.toDisplayString(o.$t("weather.lastUpdate"))+": "+e.toDisplayString(l.computeDateZ((Ot=(Vt=(Rt=(At=(It=i.models)==null?void 0:It.marine)==null?void 0:At.current)==null?void 0:Rt.ECMWF)==null?void 0:Vt.meta)==null?void 0:Ot.initialisationTime)),1)]}),_:1})]),_:1})],2)],6),a.map?(e.openBlock(),e.createBlock(x,e.mergeProps({key:1,ref:"windBarb",map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-3",wind:(ie=i.weatherLayers)==null?void 0:ie.wind,"menu-toggle":a.menuToggle},o.$attrs),null,16,["map","map-feather","wind","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(y,e.mergeProps({key:2,map:a.map,"before-layer":"empty-layer-2","sig-wave-height":(te=i.weatherLayers)==null?void 0:te["sig-wave-height"],"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},o.$attrs),null,16,["map","sig-wave-height","menu-toggle","active-weather-layers"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(w,e.mergeProps({key:3,map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-2",current:(F=i.weatherLayers)==null?void 0:F.current,"menu-toggle":a.menuToggle},o.$attrs),null,16,["map","map-feather","current","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(_,e.mergeProps({key:4,map:a.map,"before-layer":"empty-layer-2",prmsl:(X=i.weatherLayers)==null?void 0:X.prmsl,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},o.$attrs,{theme:a.theme}),null,16,["map","prmsl","menu-toggle","active-weather-layers","theme"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(u,e.mergeProps({key:5,viewport:i.viewport,factor:(re=i.weatherLayers)==null?void 0:re["wind-particle"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(L,e.mergeProps({key:6,viewport:i.viewport,factor:(M=i.weatherLayers)==null?void 0:M["current-particle"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(A,e.mergeProps({key:7,viewport:i.viewport,factor:(ee=i.weatherLayers)==null?void 0:ee["sig-wave"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(O,e.mergeProps({key:8,map:a.map,swell:(he=i.weatherLayers)==null?void 0:he.swell,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},o.$attrs),null,16,["map","swell","menu-toggle","active-weather-layers"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(j,e.mergeProps({key:9,viewport:i.viewport,factor:(pe=i.weatherLayers)==null?void 0:pe["ice-edge"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(R,e.mergeProps({key:10,viewport:i.viewport,factor:(we=i.weatherLayers)==null?void 0:we["ice-cover"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(U,e.mergeProps({key:11,viewport:i.viewport,factor:(xe=i.weatherLayers)==null?void 0:xe["ice-thickness"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(Y,e.mergeProps({key:12,viewport:i.viewport,factor:(_e=i.weatherLayers)==null?void 0:_e.precip3h,"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(H,e.mergeProps({key:13,viewport:i.viewport,factor:(ke=i.weatherLayers)==null?void 0:ke.visibility,"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(Q,e.mergeProps({key:14,viewport:i.viewport,factor:(ve=i.weatherLayers)==null?void 0:ve["water-temp"],"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0),a.map?(e.openBlock(),e.createBlock(ae,e.mergeProps({key:15,viewport:i.viewport,factor:(de=i.weatherLayers)==null?void 0:de.temp,"menu-toggle":a.menuToggle},o.$attrs),null,16,["viewport","factor","menu-toggle"])):e.createCommentVNode("",!0)])}const _l=V(jr,[["render",xl]]),Ee=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"GFS",alias:"GFS",model:"gfs_seamless",provider:"NOAA",country:"United States",resolution:25,tips:"3-25km",length:16,frequency:1,models:["gfs_seamless"],categories:"ncep_gfs013,ncep_gfs025,ncep_gfs_graphcast025,ncep_hrrr_conus,ncep_nbm_conus",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:2,name:"ECMWF",alias:"ECMWF",model:"ecmwf_ifs025",provider:"ECMWF",country:"European Union",resolution:25,tips:"25km",length:15,frequency:6,models:["ecmwf_ifs025","ecmwf_aifs025_single"],categories:"ecmwf_ifs025,ecmwf_aifs025_single",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:3,disabled:!0,name:"ICON",alias:"ECMWF",model:"icon_seamless",provider:"Deutscher Wetterdienst (DWD)",country:"Germany",resolution:13,tips:"2-13km",length:7.5,frequency:3,models:["icon_seamless","icon_global","icon_eu","icon_d2"],categories:"dwd_icon,dwd_icon_eps,dwd_icon_d2,dwd_icon_d2_eps,dwd_icon_eu,dwd_icon_eu_eps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:4,name:"ARPEGE",disabled:!0,alias:"ECMWF",model:"arpege_seamless",provider:"Météo-France",country:"France",resolution:25,tips:"1-25km",length:4,frequency:1,models:["arpege_seamless","arpege_world","arpege_europe"],categories:"meteofrance_arpege_europe,meteofrance_arpege_europe_probabilities,meteofrance_arpege_world025",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:5,name:"UKMO",disabled:!0,alias:"ECMWF",model:"ukmo_seamless",provider:"UK Met Office",country:"United Kingdom",resolution:10,tips:"2-10km",length:7,frequency:1,models:["ukmo_seamless","ukmo_global_deterministic_10km","ukmo_uk_deterministic_2km"],categories:"ukmo_global_deterministic_10km,ukmo_uk_deterministic_2km",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:6,name:"JMA",disabled:!0,alias:"GFS",model:"jma_seamless",provider:"JMA",country:"Japan",resolution:55,tips:"5-55km",length:11,frequency:3,models:["jma_seamless","jma_msm","jma_gsm"],categories:"jma_gsm,jma_msm",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:7,name:"GEM",disabled:!0,alias:"GFS",model:"gem_seamless",provider:"Canadian Weather Service",country:"Canada",resolution:2.5,tips:"2.5km",length:10,frequency:6,models:["gem_seamless","gem_global","gem_regional"],categories:"cmc_gem_gdps,cmc_gem_hrdps,cmc_gem_rdps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:8,name:"GRAPES",disabled:!0,alias:"GFS",model:"cma_grapes_global",provider:"China Meteorological Administration (CMA)",country:"China",resolution:15,tips:"15km",length:10,frequency:6,models:["cma_grapes_global"],categories:"cma_grapes_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:9,name:"ACCESS-G",disabled:!0,alias:"GFS",model:"bom_access_global",provider:"Australian Bureau of Meteorology (BOM)",country:"Australia",resolution:15,tips:"15km",length:10,frequency:6,models:["bom_access_global"],categories:"bom_access_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"}],De=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"MFWAM",alias:"ECMWF",model:"meteofrance_wave",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:12,models:["meteofrance_wave"],categories:"meteofrance_wave",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:2,disabled:!0,name:"SMOC",alias:"ECMWF",model:"meteofrance_currents",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:24,models:["meteofrance_currents"],categories:"meteofrance_currents, meteofrance_sea_surface_temperature",variables:"ocean_u_current,ocean_v_current,invert_barometer_height,sea_level_height_msl,sea_surface_temperature"},{rank:3,disabled:!0,name:"EWAM",alias:"ECMWF",model:"ewam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:8,frequency:2,models:["ewam"],categories:"dwd_ewam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:4,disabled:!0,name:"GWAM",alias:"ECMWF",model:"gwam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:4,frequency:2,models:["gwam"],categories:"dwd_gwam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:5,disabled:!0,name:"ECWAM",alias:"ECMWF",model:"ecmwf_wam025",provider:"ECMWF",country:"Europe",resolution:25,tips:"25km",length:10,frequency:6,models:["ecmwf_wam025"],categories:"ecmwf_wam025",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:6,name:"GFSWave",alias:"GFS",model:"ncep_gfswave025",provider:"NCEP",country:"USA",resolution:25,tips:"25km",length:10,frequency:6,models:["ncep_gfswave025","ncep_gfswave016"],categories:"ncep_gfswave025,ncep_gfswave016",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:7,disabled:!0,name:"ERA5-Ocean",alias:"ECMWF",model:"era5_ocean",provider:"Copernicus",country:"Europe",resolution:50,tips:"50km",length:-5,frequency:1,models:["era5_ocean"],categories:"copernicus_era5_ocean",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"}];class Ut{static standardWeatherModels(){return Ee.filter(t=>!t.disabled&&t.alias)}static standardMarineModels(){return De.filter(t=>!t.disabled&&t.alias)}static autoPickLayerModel(t,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",t=t==null?void 0:t.toLowerCase(),t==="gfs"?"gfs":["ec","ecmwf"].includes(t)?"ecmwf":["copernicus","cmems"].includes(t)?"copernicus":a}static autoPickPeerModel(t,a,r="copernicus"){if(a=this.autoPickLayerModel(a,r),ya.LayerHelper.WEATHER_LAYERS.reduce((i,l)=>l.atmos?i+l.weight:i,0)&t.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(t="best_match"){var a,r;t=t==null?void 0:t.toLowerCase(),t=t==="ec"?"ecmwf":t;const i=t.toLowerCase().split(","),l=[],n=[];for(const c of i){let s=Ee.find(h=>{var d,g,b;return((d=h.models)==null?void 0:d.includes(c))||((g=h.alias)==null?void 0:g.toLowerCase())===c||((b=h.name)==null?void 0:b.toLowerCase())===c}),p=De.find(h=>{var d,g,b;return((d=h.models)==null?void 0:d.includes(c))||((g=h.alias)==null?void 0:g.toLowerCase())===c||((b=h.name)==null?void 0:b.toLowerCase())===c});s=s||Ee.find(h=>{var d,g;return((d=h.alias)==null?void 0:d.toLowerCase())===((g=p==null?void 0:p.alias)==null?void 0:g.toLowerCase())}),p=p||De.find(h=>{var d,g;return((d=h.alias)==null?void 0:d.toLowerCase())===((g=s==null?void 0:s.alias)==null?void 0:g.toLowerCase())}),s=s||Ee[0],p=p||De[0],l.push((a=s.models)!=null&&a.includes(c)?c:s.model),n.push((r=p.models)!=null&&r.includes(c)?c:p.model)}return{weatherModels:l.join(","),marineModels:n.join(",")}}static autoPickSubCategories(t){t=t.toUpperCase();const a=Ee.filter(l=>l.alias===t),r=De.filter(l=>l.alias===t),i=[];return a.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),r.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),i}static pickHourly(t,a){var r,i,l,n,c,s,p,h,d,g,b,f,v,k,T,z,x,y,w,_,u,L,A,O,j,R,U,Y,H,Q,ae,ie,te,F,X,re,M,ee,he,pe,we,xe,_e,ke,ve,de,E,Z,Pe,fe;const oe=typeof a=="string"?P(a):a,le=t==null?void 0:t.weather,D=t==null?void 0:t.marine,ge=P((i=(r=le==null?void 0:le[0])==null?void 0:r.hourly)==null?void 0:i.date).utc(),G=ge.clone().add((c=(n=(l=le==null?void 0:le[0])==null?void 0:l.hourly)==null?void 0:n.time)==null?void 0:c.at(0),"h"),q=ge.clone().add((h=(p=(s=le==null?void 0:le[0])==null?void 0:s.hourly)==null?void 0:p.time)==null?void 0:h.at(-1),"h"),ze=[];if(oe.isBetween(G,q,"millisecond","[]")){const S=oe.utc().diff(G,"h",!1);let ne,ye;if(le){let Le=0,Ce=0;for(const C of le){const B=C==null?void 0:C.hourly;for(let ue=S-(S-1)%3;ue<=S;ue++)Le+=(d=B==null?void 0:B.precipitation)==null?void 0:d.at(ue);for(let ue=S-(S-1)%6;ue<=S;ue++)Ce+=(g=B==null?void 0:B.precipitation)==null?void 0:g.at(ue);ne={temp:(b=B==null?void 0:B.temperature_2m)==null?void 0:b.at(S),apparentTemp:(f=B==null?void 0:B.apparent_temperature)==null?void 0:f.at(S),rh:(v=B==null?void 0:B.relative_humidity_2m)==null?void 0:v.at(S),dp:(k=B==null?void 0:B.dew_point_2m)==null?void 0:k.at(S),precip:{probability:(T=B==null?void 0:B.precipitation_probability)==null?void 0:T.at(S),sum:(z=B==null?void 0:B.precipitation)==null?void 0:z.at(S),sum3Hours:Math.round(Le*100)/100,sum6Hours:Math.round(Ce*100)/100},pmsl:(x=B==null?void 0:B.pressure_msl)==null?void 0:x.at(S),psurf:(y=B==null?void 0:B.surface_pressure)==null?void 0:y.at(S),code:(w=B==null?void 0:B.weather_code)==null?void 0:w.at(S),visibility:this.m2nm((_=B==null?void 0:B.visibility)==null?void 0:_.at(S)),wind:{speed:(u=B==null?void 0:B.wind_speed_10m)==null?void 0:u.at(S),kts:(L=B==null?void 0:B.wind_speed_10m)==null?void 0:L.at(S),degree:(A=B==null?void 0:B.wind_direction_10m)==null?void 0:A.at(S),bearing:((O=B==null?void 0:B.wind_direction_10m)==null?void 0:O.at(S))!==null?(((j=B==null?void 0:B.wind_direction_10m)==null?void 0:j.at(S))+180)%360:null,gusts:(R=B==null?void 0:B.wind_gusts_10m)==null?void 0:R.at(S)},isDay:(U=B==null?void 0:B.is_day)==null?void 0:U.at(S)};const{name:Se,url:Ne,bg:Te}=this.parseWeatherCode(ne.code,ne.isDay);ne.name=Se,ne.url=Ne,ne.bg=Te,ne.wind.scale=this.beaufort(this.kts2ms(ne.wind.kts)),ne.wind.direction=this.degree2Direction(ne.wind.degree),ze.push({utc:G.add(S,"h").format(),model:C.model,weather:{...ne}})}}if(D){let Le=0;for(const Ce of D){const C=Ce==null?void 0:Ce.hourly;ye={wave:{sig:{height:(Y=C==null?void 0:C.wave_height)==null?void 0:Y.at(S),degree:(H=C==null?void 0:C.wave_direction)==null?void 0:H.at(S),bearing:((Q=C==null?void 0:C.wave_direction)==null?void 0:Q.at(S))!==null?(((ae=C==null?void 0:C.wave_direction)==null?void 0:ae.at(S))+180)%360:null,period:(ie=C==null?void 0:C.wave_period)==null?void 0:ie.at(S)},swell:{height:(te=C==null?void 0:C.swell_wave_height)==null?void 0:te.at(S),degree:(F=C==null?void 0:C.swell_wave_direction)==null?void 0:F.at(S),bearing:((X=C==null?void 0:C.swell_wave_direction)==null?void 0:X.at(S))!==null?(((re=C==null?void 0:C.swell_wave_direction)==null?void 0:re.at(S))+180)%360:null,period:(M=C==null?void 0:C.swell_wave_period)==null?void 0:M.at(S),peakPeriod:(ee=C==null?void 0:C.swell_wave_peak_period)==null?void 0:ee.at(S)},wd:{height:(he=C==null?void 0:C.wind_wave_height)==null?void 0:he.at(S),degree:(pe=C==null?void 0:C.wind_wave_direction)==null?void 0:pe.at(S),bearing:((we=C==null?void 0:C.wind_wave_direction)==null?void 0:we.at(S))!==null?(((xe=C==null?void 0:C.wind_wave_direction)==null?void 0:xe.at(S))+180)%360:null,period:(_e=C==null?void 0:C.wind_wave_period)==null?void 0:_e.at(S),peakPeriod:(ke=C==null?void 0:C.wind_wave_peak_period)==null?void 0:ke.at(S)}},current:{speed:(ve=C==null?void 0:C.ocean_current_velocity)==null?void 0:ve.at(S),kts:(de=C==null?void 0:C.ocean_current_velocity)==null?void 0:de.at(S),degree:(E=C==null?void 0:C.ocean_current_direction)==null?void 0:E.at(S),bearing:((Z=C==null?void 0:C.ocean_current_direction)==null?void 0:Z.at(S))??null},sst:(Pe=C==null?void 0:C.sea_surface_temperature)==null?void 0:Pe.at(S),height:(fe=C==null?void 0:C.sea_level_height_msl)==null?void 0:fe.at(S)},ye.wave=this.parseWave(ye.wave,ne==null?void 0:ne.wind),ye.current.direction=this.degree2Direction(ye.current.degree),Object.assign(ze[Le],ye),Le++}}}return ze}static toLegacy(t){var a,r,i,l,n,c,s,p,h,d;return{wind:(a=t==null?void 0:t.weather)==null?void 0:a.wind,visibility:(r=t==null?void 0:t.weather)==null?void 0:r.visibility,temp:(i=t==null?void 0:t.weather)==null?void 0:i.temp,prmsl:(l=t==null?void 0:t.weather)==null?void 0:l.pmsl,gusts:{kts:(c=(n=t==null?void 0:t.weather)==null?void 0:n.wind)==null?void 0:c.gusts},precip:(s=t==null?void 0:t.weather)==null?void 0:s.precip,code:(p=t==null?void 0:t.weather)==null?void 0:p.code,name:(h=t==null?void 0:t.weather)==null?void 0:h.name,url:(d=t==null?void 0:t.weather)==null?void 0:d.url,wave:t==null?void 0:t.wave,current:t==null?void 0:t.current,sst:t==null?void 0:t.sst,height:t==null?void 0:t.height,utc:t==null?void 0:t.utc,source:t==null?void 0:t.model}}static pickDaily(t,a){var r,i,l,n,c,s,p,h,d,g,b,f,v,k,T,z,x,y,w,_,u,L,A,O,j,R,U,Y,H,Q,ae,ie,te,F,X,re,M,ee,he,pe,we,xe,_e,ke;const ve=typeof a=="string"?P(a):a,de=t==null?void 0:t.weather,E=t==null?void 0:t.marine,Z=P((l=(i=(r=de==null?void 0:de[0])==null?void 0:r.daily)==null?void 0:i.time)==null?void 0:l.at(0)),Pe=P((s=(c=(n=de==null?void 0:de[0])==null?void 0:n.daily)==null?void 0:c.time)==null?void 0:s.at(-1)),fe=[];if(ve.isBetween(Z,Pe,"millisecond","[]")){let oe,le;const D=ve.diff(Z,"d",!1);if(de)for(const ge of de){const G=ge.daily;oe={code:(p=G.weather_code)==null?void 0:p.at(D),temp:{max:(h=G.temperature_2m_max)==null?void 0:h.at(D),min:(d=G.temperature_2m_min)==null?void 0:d.at(D),mean:(g=G.temperature_2m_mean)==null?void 0:g.at(D)},apparentTemp:{max:(b=G.apparent_temperature_max)==null?void 0:b.at(D),min:(f=G.apparent_temperature_min)==null?void 0:f.at(D)},precip:{sum:(v=G.precipitation_sum)==null?void 0:v.at(D),rainSum:(k=G.rain_sum)==null?void 0:k.at(D),snowfallSum:(T=G.snowfall_sum)==null?void 0:T.at(D),showersSum:(z=G.showers_sum)==null?void 0:z.at(D),hours:(x=G.precipitation_hours)==null?void 0:x.at(D),probability:(y=G.precipitation_probability_max)==null?void 0:y.at(D)},rh:{max:(w=G.relative_humidity_2m_max)==null?void 0:w.at(D),min:(_=G.relative_humidity_2m_min)==null?void 0:_.at(D),mean:(u=G.relative_humidity_2m_mean)==null?void 0:u.at(D)},wind:{speed:(L=G.wind_speed_10m_max)==null?void 0:L.at(D),kts:(A=G.wind_speed_10m_max)==null?void 0:A.at(D),degree:(O=G.wind_direction_10m_dominant)==null?void 0:O.at(D),gusts:(j=G.wind_gusts_10m_max)==null?void 0:j.at(D),bearing:((R=G.wind_direction_10m_dominant)==null?void 0:R.at(D))!==null?(((U=G.wind_direction_10m_dominant)==null?void 0:U.at(D))+180)%360:null}};const{name:q,url:ze,bg:S}=this.parseWeatherCode(oe.code,!0);oe.name=q,oe.url=ze,oe.bg=S,oe.wind.scale=this.beaufort(this.kts2ms(oe.wind.kts)),oe.wind.direction=this.degree2Direction(oe.wind.degree),fe.push({utc:Z.add(D,"d").utc().format(),model:ge.model,weather:{...oe}})}if(E){let ge=0;for(const G of E){const q=G.daily;le={wave:{sig:{height:(Y=q.wave_height_max)==null?void 0:Y.at(D),degree:(H=q.wave_direction_dominant)==null?void 0:H.at(D),period:(Q=q.wave_period_max)==null?void 0:Q.at(D),bearing:((ae=q.wave_direction_dominant)==null?void 0:ae.at(D))!==null?(((ie=q.wave_direction_dominant)==null?void 0:ie.at(D))+180)%360:null},swell:{height:(te=q.swell_wave_height_max)==null?void 0:te.at(D),degree:(F=q.swell_wave_direction_dominant)==null?void 0:F.at(D),period:(X=q.swell_wave_period_max)==null?void 0:X.at(D),peakPeriod:(re=q.swell_wave_peak_period_max)==null?void 0:re.at(D),bearing:((M=q.swell_wave_direction_dominant)==null?void 0:M.at(D))!==null?((ee=q.swell_wave_direction_dominant)==null?void 0:ee.at(D))%360:null},wd:{height:(he=q.wind_wave_height_max)==null?void 0:he.at(D),degree:(pe=q.wind_wave_direction_dominant)==null?void 0:pe.at(D),period:(we=q.wind_wave_period_max)==null?void 0:we.at(D),peakPeriod:(xe=q.wind_wave_peak_period_max)==null?void 0:xe.at(D),bearing:((_e=q.wind_wave_direction_dominant)==null?void 0:_e.at(D))!==null?(((ke=q.wind_wave_direction_dominant)==null?void 0:ke.at(D))+180)%360:null}}},le.wave=this.parseWave(le.wave,oe==null?void 0:oe.wind),Object.assign(fe[ge],le),ge++}}}return fe}static parseWave(t,a){if(t.sig.direction=this.degree2Direction(t.sig.degree),t.swell.direction=this.degree2Direction(t.swell.degree),t.wd.direction=this.degree2Direction(t.wd.degree),t.sig.scale=this.douglas(t.sig.height),t.swell.scale=this.douglas(t.swell.height),t.wd.scale=this.douglas(t.wd.height),t.sig.height===0){const r=Math.sqrt(Math.pow(t.swell.height||0,2)+Math.pow(t.wd.height||0,2));t.sig.height=Math.round(r*100)/100}if(t.swell.height===0)if(t.sig.height>t.wd.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.wd.height||0,2)));t.swell.height=Math.round(r*100)/100}else{const r=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,i=r>1?r/10:r>.5?r/5:r>.3?r/2:r;t.swell.height=Math.round(i*100)/100}if(t.wd.height===0||t.wd.height>t.sig.height)if(t.sig.height>t.swell.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.swell.height||0,2))),i=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(Math.min(r,i)*100)/100}else{const r=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(r*100)/100}return t.swell.height>t.sig.height&&(t.swell.height=Math.round(t.sig.height*.76*100)/100),t.sig.period||(t.sig.period=Math.round(5*Math.sqrt(t.sig.height))),t.swell.period||(t.swell.period=Math.round(5*Math.sqrt(t.swell.height))),t.wd.period||(t.wd.period=Math.round(5*Math.sqrt(t.wd.height))),t}static parseWeatherCode(t,a){const r=this.weatherCode(t);return(a?r.day:r.night)||{}}static weatherCode(t){const a={code:t};switch(t){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(t){return isNaN(t)||t===null?t:Math.round(t*1852/3600*1e4)/1e4}static kts2kmh(t){return isNaN(t)||t===null?t:t*1.852}static m2nm(t){return isNaN(t)||t===null?t:Math.round(t/1e3/1.852*1e4)/1e4}static kmh2kts(t){return isNaN(t)||t===null?t:this.ms2kts(t*1e3/3600)}static ms2kts(t){return isNaN(t)||t===null?t:Math.round(t*3600/1852*1e4)/1e4}static degree2Radian(t){if(isNaN(t)||t===null)return t;let a=t%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(t){const a=this.degree2Radian(t);if(isNaN(a)||a===null)return null;let r="N/A";const i=Math.PI/16;return a<i?r="N":a>=i&&a<3*i?r="NNE":a>=3*i&&a<5*i?r="NE":a>=5*i&&a<7*i?r="ENE":a>=7*i&&a<9*i?r="E":a>=9*i&&a<11*i?r="ESE":a>=11*i&&a<13*i?r="SE":a>=13*i&&a<15*i?r="SSE":a>=15*i&&a<17*i?r="S":a>=17*i&&a<19*i?r="SSW":a>=19*i&&a<21*i?r="SW":a>=21*i&&a<23*i?r="WSW":a>=23*i&&a<25*i?r="W":a>=25*i&&a<27*i?r="WNW":a>=27*i&&a<29*i?r="NW":a>=29*i&&a<31*i?r="NNW":a>=31*i&&a<32*i&&(r="N"),r}static beaufort(t){let a=0;return isNaN(t)||(t=Math.round(t*10)/10,t<=.2?a=0:t<=1.5?a=1:t<=3.3?a=2:t<=5.4?a=3:t<=7.9?a=4:t<=10.7?a=5:t<=13.8?a=6:t<=17.1?a=7:t<=20.7?a=8:t<=22.4?a=9:t<=28.4?a=10:t<=32.6?a=11:t>32.6&&(a=12)),a}static douglas(t){let a="Calm";return isNaN(t)||t<=.1?a="Calm":t<=.5?a="Smooth":t<=1.25?a="Slight":t<=2.5?a="Moderate":t<=4?a="Rough":t<=6?a="VeryRough":t<=9?a="High":t<=14?a="VeryHigh":a="Precipitous",a}}const as="",kl={name:"IdmTropicals",props:{permission:{type:Number},map:{type:Object},top:{type:Number,default:60},menuToggle:{type:Object,default:{}},timeZone:{type:Number},token:{type:String},defaultMeteoToken:{type:String},gateway:{type:String,default:"aa"},assistGateway:{type:Array,default:[]},forecastModel:{type:String},realTime:{type:String}},setup(){return{Theme:se.useTheme()}},emits:["tropical","tropicalProbability","tropicalNotification"],data(){return{right:10,toggle:!1,helper:Me.CompanyHelper,tropicals:void 0,tropicalCacheKey:"tropicalCacheGL4",source:"tropicals-source",clusterSource:"tropicals-cluster-source",historyLayer:"tropicals-history-layer",forecastLayer:"tropicals-forecast-layer",forecastModelLayer:"tropicals-forecast-model-layer",forecastNameLayer:"tropicals-forecast-name-layer",pointCircleLayer:"tropicals-point-circle-layer",pointLabelLayer:"tropicals-point-label-layer",historyPointCircleLayer:"history-tropicals-point-circle-layer",historyPointLabelLayer:"history-tropicals-point-label-layer",interpolateData:[],interpolateMarkers:[],interpolateSource:"tropicals-interpolate-source",interpolateLineLayer:"tropicals-interpolate-line-layer",showTropicalsInfo:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:N.featureCollection([]),circleSource:"circle-source",circleSourceData:N.featureCollection([]),circleLayer:"tropical-circle-layer",showLegend:!1}},computed:{computeTime(){return function(o){if(o){const t=P(o).utcOffset(this.timeZone),a=this.timeZone<0?this.timeZone:"+"+this.timeZone;return console.log("timeZone changed 111",this.timeZone),`${t==null?void 0:t.format("MMM-DD/HHmm")} ( UTC${a} ) ${t==null?void 0:t.fromNow()} `}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(o){const t=Ut.kts2ms(o);return Ut.beaufort(t)}},computeMovement(){return function(o){var t,a;return(a=(t=o==null?void 0:o.forecasts)==null?void 0:t.find(r=>!r.disabled))==null?void 0:a.movement}}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var o;this.right=(((o=document.getElementsByClassName("right-bar")[0])==null?void 0:o.clientWidth)||0)+10})},immediate:!0},map:{handler(){this.map&&(this.toggle=localStorage.getItem(this.tropicalCacheKey)==="true"||!1,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle&&this.fetchTropicals())}},showTropicalsInfo:{handler(){this.$emit("tropical",this.showTropicalsInfo)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(){console.log("timeZone changed 222",this.timeZone),this.handleRefresh()}}},mounted(){},methods:{handleMenuToggle(){this.toggle=!this.toggle,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle?this.fetchTropicals():this.handleClear()},async fetchTropicals(){var i,l,n;const o=new Date().valueOf();let t=0,a=0,r=(i=Me.LayerHelper.WEATHER_LAYERS.find(c=>c.key==="tropicals"))==null?void 0:i.weight;if(r>0){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],s=await $.get(`${c}/api/arc/weather/layers2/links?l=${r}&v=${this.forecastModel}&t=${this.realTime}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(a=new Date().valueOf()-(o+t),console.log("weather links elapsed: ",a,", total: ",t+=a),((l=s==null?void 0:s.data)==null?void 0:l.code)===0){const p=(n=s==null?void 0:s.data)==null?void 0:n.data;await $.get(p.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"},responseType:/\.(jpg|png)$/.test(p.tropicals)?"blob":"json"}).then(h=>{var b,f,v;const d=I.TropicalHelper.convert2Geojson(((b=h==null?void 0:h.data)==null?void 0:b.data)||(h==null?void 0:h.data));((v=(f=h==null?void 0:h.config)==null?void 0:f.headers)==null?void 0:v.key)&&d&&(this.tropicals={data:d,active:!0,cached:!0,type:"json",etime:s.data.etime,version:Math.random()+1},this.handleInit())}).catch(h=>{console.log(`[${key}] fetch layer error: ${h}`)})}a=new Date().valueOf()-(o+t),console.log("tropicals elapsed: ",a,", total: ",t+=a)}},handleRefresh(){var t,a;(((a=(t=this.tropicals)==null?void 0:t.data)==null?void 0:a.features)||[]).forEach(r=>{var i,l,n,c;((i=r.geometry)==null?void 0:i.type)==="Point"&&((l=r.properties)!=null&&l.important)&&(r.properties.format=(c=(n=P(r.properties.date))==null?void 0:n.utcOffset(this.timeZone))==null?void 0:c.format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`))}),this.handleInit()},handleInit(){var o;this.tropicals&&(this.handleRender(),(o=this.map)==null||o.on("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick))},handleRender(){var o,t,a,r,i,l,n,c,s,p;if(!this.map)setTimeout(()=>{this.handleRender()},500);else{if(this.tropicals){const d=new Date().valueOf();let g=0,b=0;(o=this.map)!=null&&o.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((t=this.tropicals)!=null&&t.active?this.tropicals.data:this.empty),b=new Date().valueOf()-(d+g),console.log("[tropicals] update elapsed: ",b,", total: ",g+=b)):(this.map.addSource(this.source,{type:"geojson",data:(r=this.tropicals)!=null&&r.active?(i=this.tropicals)==null?void 0:i.data:this.empty}),this.map.addLayer({id:this.historyLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","history"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["on-surface"],"line-width":3,"line-opacity":.7}}),this.map.addLayer({id:this.forecastLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["match",["get","model"],"cma","#e2ea03","jma","#01d2b7","ecmwf","#f582f2","ukm","#f5bb47","noaa-at","#9758fb","noaa-ep","#9758fb","#f2a0a0"],"line-width":3,"line-opacity":.9,"line-dasharray":[1,2]}}),this.map.addLayer({id:this.forecastModelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"symbol-placement":"line","text-field":"{model}","text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":["match",["get","model"],"cma","#000","jma","#000","ecmwf","#fff","ukm","#fff","noaa-at","#fff","noaa-ep","#fff","#000"],"text-opacity":1,"text-halo-color":["match",["get","model"],"cma","#e2ea03","jma","#01d2b7","ecmwf","#f582f2","ukm","#f5bb47","noaa-at","#9758fb","noaa-ep","#9758fb","#f2a0a0"],"text-halo-width":4}}),b=new Date().valueOf()-(d+g),console.log("[tropical] add elapsed: ",b,", total: ",g+=b)),(l=this.map)!=null&&l.getSource(this.clusterSource)?((c=this.map)==null||c.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),b=new Date().valueOf()-(d+g),console.log("[tropical] update elapsed: ",b,", total: ",g+=b)):(this.map.addSource(this.clusterSource,{type:"geojson",data:(s=this.tropicals)!=null&&s.active?(p=this.tropicals)==null?void 0:p.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"#fff"}}),this.map.addLayer({id:this.pointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":4,"circle-color":["case",["boolean",["==",["get","kts",["get","wind"]],null]],"#03f869",["boolean",["<",["get","kts",["get","wind"]],32]],"#03f869",["boolean",["<",["get","kts",["get","wind"]],47]],"#f2f202",["boolean",["<",["get","kts",["get","wind"]],63]],"#ff9100",["boolean",["<",["get","kts",["get","wind"]],79]],"#f44336",["boolean",["<",["get","kts",["get","wind"]],94]],"#f903d0",["boolean",[">=",["get","kts",["get","wind"]],94]],"#8702f9","#fff"]}}),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}}),this.map.addLayer({id:this.historyPointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":6,"circle-color":"#fff"}}),this.map.addLayer({id:this.historyPointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"rgba(0,0,0,0.7)"}}),this.map.addLayer({id:this.historyPointCircleLayer+"-inner",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":3,"circle-color":"#fff"}}),this.map.addLayer({id:this.historyPointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}}),this.map.addLayer({id:this.forecastNameLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["==","important",!0]],layout:{"text-field":["get","name"],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-offset":[0,2]},paint:{"text-color":this.Theme.current.value.colors["map-blue"],"text-halo-color":"#ffffff","text-halo-width":1}}),b=new Date().valueOf()-(d+g),console.log("[tropical] add elapsed: ",b,", total: ",g+=b))}this.handleDrawCircle();const h=I.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(h)),this.handleDateChange()}},handleClear(){var o,t;this.map&&(this.map.getLayer(this.historyLayer)&&this.map.removeLayer(this.historyLayer),this.map.getLayer(this.forecastLayer)&&this.map.removeLayer(this.forecastLayer),this.map.getLayer(this.forecastModelLayer)&&this.map.removeLayer(this.forecastModelLayer),this.map.getLayer(this.forecastNameLayer)&&this.map.removeLayer(this.forecastNameLayer),this.map.getLayer(this.pointCircleLayer)&&this.map.removeLayer(this.pointCircleLayer),this.map.getLayer(this.pointCircleLayer+"-border")&&this.map.removeLayer(this.pointCircleLayer+"-border"),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.historyPointCircleLayer)&&this.map.removeLayer(this.historyPointCircleLayer),this.map.getLayer(this.historyPointCircleLayer+"-border")&&this.map.removeLayer(this.historyPointCircleLayer+"-border"),this.map.getLayer(this.historyPointCircleLayer+"-inner")&&this.map.removeLayer(this.historyPointCircleLayer+"-inner"),this.map.getLayer(this.historyPointLabelLayer)&&this.map.removeLayer(this.historyPointLabelLayer),this.map.getLayer(this.interpolateLineLayer)&&this.map.removeLayer(this.interpolateLineLayer),(o=this.interpolateMarkers)==null||o.forEach(a=>a==null?void 0:a.remove()),this.map.getSource(this.source)&&this.map.removeSource(this.source),this.map.getSource(this.clusterSource)&&this.map.removeSource(this.clusterSource),this.map.getSource(this.interpolateSource)&&this.map.removeSource(this.interpolateSource),this.map.getLayer(this.circleLayer)&&this.map.removeLayer(this.circleLayer),this.map.getSource(this.circleSource)&&this.map.removeSource(this.circleSource)),(t=this.map)==null||t.off("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick),this.showTropicalsInfo=!1},handleDateChange(){var o,t,a,r,i,l,n,c,s,p,h,d,g,b,f,v,k,T,z,x,y,w,_,u,L,A,O,j,R,U,Y,H;if((o=this.interpolateMarkers)==null||o.forEach(Q=>Q==null?void 0:Q.remove()),this.circleSourceData.features=[],(t=this.interpolateData)!=null&&t.length&&this.tropicals.active){const Q=P(this.realTime).utc().set({minute:0,second:0,millisecond:0}),ae=this.interpolateData.filter(F=>F.properties.date===(Q==null?void 0:Q.format())&&!F.properties.disabled),ie=this.handleComputePolygons(ae),te=N.featureCollection([...ae]);ie.forEach(F=>{te.features.push(F)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(r=this.map)==null||r.getSource(this.interpolateSource).setData(te):((i=this.map)==null||i.addSource(this.interpolateSource,{type:"geojson",data:te}),(l=this.map)==null||l.addLayer({id:this.interpolateLineLayer,type:"line",source:this.interpolateSource,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-opacity":1,"line-color":["match",["get","level"],7,"#ff9100",10,"#f44336","#ffffff"],"line-width":1}})),this.interpolateMarkers=[];for(const F of ae)if(!F.properties.disabled){let X="#f44336";((c=(n=F.properties)==null?void 0:n.wind)==null?void 0:c.kts)<32||!((p=(s=F.properties)==null?void 0:s.wind)!=null&&p.kts)?X="#03f869":((d=(h=F.properties)==null?void 0:h.wind)==null?void 0:d.kts)>=32&&((b=(g=F.properties)==null?void 0:g.wind)==null?void 0:b.kts)<47?X="#f2f202":((v=(f=F.properties)==null?void 0:f.wind)==null?void 0:v.kts)>=47&&((T=(k=F.properties)==null?void 0:k.wind)==null?void 0:T.kts)<63?X="#ff9100":((x=(z=F.properties)==null?void 0:z.wind)==null?void 0:x.kts)>=63&&((w=(y=F.properties)==null?void 0:y.wind)==null?void 0:w.kts)<79?X="#f44336":((u=(_=F.properties)==null?void 0:_.wind)==null?void 0:u.kts)>=79&&((A=(L=F.properties)==null?void 0:L.wind)==null?void 0:A.kts)<94?X="#f903d0":((j=(O=F.properties)==null?void 0:O.wind)==null?void 0:j.kts)>=94?X="#8702f9":X="#f44336";const re=`<svg t="1719918955501"
|
|
195
195
|
class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" p-id="18382"
|
|
196
196
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
|
|
197
197
|
<path
|
|
@@ -24,8 +24,6 @@ declare namespace _sfc_main {
|
|
|
24
24
|
namespace timeZone {
|
|
25
25
|
const type_4: NumberConstructor;
|
|
26
26
|
export { type_4 as type };
|
|
27
|
-
const _default_2: number;
|
|
28
|
-
export { _default_2 as default };
|
|
29
27
|
}
|
|
30
28
|
namespace token {
|
|
31
29
|
const type_5: StringConstructor;
|
|
@@ -38,14 +36,14 @@ declare namespace _sfc_main {
|
|
|
38
36
|
namespace gateway {
|
|
39
37
|
const type_7: StringConstructor;
|
|
40
38
|
export { type_7 as type };
|
|
41
|
-
const
|
|
42
|
-
export {
|
|
39
|
+
const _default_2: string;
|
|
40
|
+
export { _default_2 as default };
|
|
43
41
|
}
|
|
44
42
|
namespace assistGateway {
|
|
45
43
|
const type_8: ArrayConstructor;
|
|
46
44
|
export { type_8 as type };
|
|
47
|
-
const
|
|
48
|
-
export {
|
|
45
|
+
const _default_3: never[];
|
|
46
|
+
export { _default_3 as default };
|
|
49
47
|
}
|
|
50
48
|
namespace forecastModel {
|
|
51
49
|
const type_9: StringConstructor;
|