@idmwx/idmui-gl3 6.3.7 → 6.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(G,ee){typeof exports=="object"&&typeof module<"u"?ee(exports,require("@idm-plugin/tag"),require("moment"),require("axios"),require("moment-timezone"),require("vue"),require("@turf/turf"),require("@mapbox/sphericalmercator"),require("mapbox-gl"),require("@idm-plugin/geo"),require("@idm-plugin/meteo")):typeof define=="function"&&define.amd?define(["exports","@idm-plugin/tag","moment","axios","moment-timezone","vue","@turf/turf","@mapbox/sphericalmercator","mapbox-gl","@idm-plugin/geo","@idm-plugin/meteo"],ee):(G=typeof globalThis<"u"?globalThis:G||self,ee(G["idm-gl"]={},G["@idm-plugin/tag"],G.moment,G.axios,G["moment-timezone"],G.Vue,G["@turf/turf"],G["@mapbox/sphericalmercator"],G["mapbox-gl"],G["@idm-plugin/geo"],G["@idm-plugin/meteo"]))})(this,function(G,ee,j,ve,Pe,t,qe,Je,_e,W,De){"use strict";var Bo=Object.defineProperty;var _o=(G,ee,j)=>ee in G?Bo(G,ee,{enumerable:!0,configurable:!0,writable:!0,value:j}):G[ee]=j;var J=(G,ee,j)=>(_o(G,typeof ee!="symbol"?ee+"":ee,j),j);function Ze(i){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const a in i)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(i,a);Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>i[a]})}}return e.default=i,Object.freeze(e)}const z=Ze(qe),ko="",Io="",O=(i,e)=>{const a=i.__vccOpts||i;for(const[o,r]of e)a[o]=r;return a},$e={name:"IdmGlLayer",props:{map:{type:Object},mapProjection:{type:String},gateway:{type:String},token:{type:String},top:{type:Number,default:60},layerToggle:{type:Boolean,default:!1},toggleVersion:{type:Number},isLogin:{type:Boolean,default:void 0},showWindFeather:{type:Boolean,default:void 0},showWindParticle:{type:Boolean,default:void 0},showCurrentIsoband:{type:Boolean,default:void 0},showCurrentParticle:{type:Boolean,default:void 0},forecastModel:{type:String}},emits:["weather","other","toggleWindParticle","toggleWindFeather","toggleCurrentParticle","toggleCurrentIsoband","toggleWindParticeVersion","toggleCurrentParticeVersion","coordinate","measure","point","3d","layerToggle","handleToggleVersion","login","forecastModel"],data(){return{autoActive:!0,layers:{weather:[...ee.LayerHelper.WEATHER_LAYERS.filter(i=>!["swell-height","swell-direction","current-direction","current-speed"].includes(i.key))],other:[...ee.LayerHelper.OTHER_LAYERS.filter(i=>i.enabled)]},activeWeatherLayers:[],activeWeatherLayersCollected:[],activeOtherLayers:[],autoActiveCache:"autoActiveCache",activeWeatherLayersCache:"activeWeatherLayersCache",activeOtherLayersCache:"activeOtherLayersCache",collectedLayerCache:"collectedLayerCache",sourceCache:"defaultSourceCache",windFeatherCollectedCache:"windFeatherCollectedCache",currentIsobandCollectedCache:"currentIsobandCollectedCache",showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,version:{v:"0.1.1",k:"glCacheVersion"},source:"Best Match",sourceList:[],right:10,rampColorLayers:["visibility","precip3h","temp","water-temp","ice-thickness","ice-cover"],showWindParticleCollected:!1,showWindFeatherCollected:!0,showCurrentParticleCollected:!1,showCurrentIsobandCollected:!1}},computed:{computeLayerClass(){return function(i,e){var o;let a="layer flex-between";return e.some(r=>r.key===i.key)&&(a=a+" active"),(!i.enabled||(o=this.layers.weather)!=null&&o.some(r=>r.key===i.key)&&!this.autoActive||this.rampColorLayers.includes(i.key)&&this.mapProjection==="globe")&&(a=a+" disabled"),a}},hasCollectedLayers(){var i;return((i=this.layers.weather.filter(e=>e.collected))==null?void 0:i.length)>0},computeDateZ(){return function(i){var e;if(i){const a=j(i);return`${(e=a==null?void 0:a.utc())==null?void 0:e.format("MMM-DD/HHmm")}Z`}return"-"}},sourceCode(){var i;return(i=this.sourceList.find(e=>e.name===this.source))==null?void 0:i.code}},watch:{toggleVersion:{handler(){this.$nextTick(()=>{var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10})}},source:{handler(i,e){i&&i!==e&&this.$emit("forecastModel",this.source),i&&e&&i!==e&&this.handleConfirm()}},activeWeatherLayers:{handler(i,e){this.autoActive&&(this.activeWeatherLayersCollected=this.activeWeatherLayers,localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify(this.activeWeatherLayers)))}},showWindParticle:{handler(i,e){this.autoActive&&(this.showWindParticleCollected=this.showWindParticle)}},showWindFeather:{handler(i,e){this.autoActive&&(this.showWindFeatherCollected=this.showWindFeather,localStorage.setItem(this.windFeatherCollectedCache,this.showWindFeatherCollected))}},showCurrentParticle:{handler(i,e){this.autoActive&&(this.showCurrentParticleCollected=this.showCurrentParticle)}},showCurrentIsoband:{handler(i,e){this.autoActive&&(this.showCurrentIsobandCollected=this.showCurrentIsoband,localStorage.setItem(this.currentIsobandCollectedCache,this.showCurrentIsobandCollected))}}},async mounted(){await this.fetchMeteoSource(),this.fetchCache(),this.handleConfirm()},methods:{async fetchMeteoSource(){var e;this.sourceList=[];let i=await ve.get(`${this.gateway}/api/arc/meteo2/models`,{headers:{Authorization:this.token}});(i==null?void 0:i.data.code)===0&&(this.sourceList=(e=i==null?void 0:i.data.data)==null?void 0:e.weather)},fetchCache(){const i=localStorage.getItem(this.version.k);this.version.v!==i&&(localStorage.removeItem(this.autoActiveCache),localStorage.removeItem(this.activeWeatherLayersCache),localStorage.removeItem(this.activeOtherLayersCache),localStorage.removeItem(this.windFeatherCollectedCache),localStorage.removeItem(this.currentIsobandCollectedCache),localStorage.setItem(this.version.k,this.version.v));let e=localStorage.getItem(this.autoActiveCache);this.autoActive=e!=="false",e=localStorage.getItem(this.collectedLayerCache);let a=JSON.parse(e||'[{"weight": 16, "name": "Sig Waves", "key": "sig-wave-height", "collected": true},{"weight": 1, "name": "Wind", "key": "wind", "h5": true, "collected": true},{"weight": 96, "name": "Current", "key": "current", "collected": true},{"weight": 256,"name": "Tropicals","key": "tropicals", "collected": true}]');this.layers.weather.forEach(o=>{o.collected=!!a.some(r=>r.key===o.key&&r.collected)}),e=localStorage.getItem(this.activeWeatherLayersCache),e||localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify([{weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!1},{weight:16,name:"Sig Waves",key:"sig-wave-height",enabled:!0,type:"json"},{weight:256,name:"Tropicals",key:"tropicals",enabled:!0,type:"json"}])),e=localStorage.getItem(this.activeWeatherLayersCache),a=JSON.parse(e),this.autoActive?this.activeWeatherLayers=[...a]:this.activeWeatherLayersCollected=[...a],a.some(o=>o.key==="wind"&&o.particle)&&(this.$emit("toggleWindParticle",!0),this.showWindParticleCollected=!0),a.some(o=>o.key==="current"&&o.particle)&&(this.$emit("toggleCurrentParticle",!0),this.showCurrentParticleCollected=!0),this.showWindFeatherCollected=JSON.parse(localStorage.getItem(this.windFeatherCollectedCache))?JSON.parse(localStorage.getItem(this.windFeatherCollectedCache)):this.showWindFeatherCollected,this.showCurrentIsobandCollected=JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache))?JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache)):this.showCurrentIsobandCollected,this.autoActive&&(this.$emit("toggleWindFeather",this.showWindFeatherCollected),this.$emit("toggleCurrentIsoband",this.showCurrentIsobandCollected)),a.some(o=>o.key==="wind"&&!o.particle&&!this.showWindFeatherCollected)&&(a=a.filter(o=>o.key!=="wind")),a.some(o=>o.key==="current"&&!o.particle&&!this.showCurrentIsobandCollected)&&(a=a.filter(o=>o.key!=="current")),e=localStorage.getItem(this.activeOtherLayersCache),a=JSON.parse(e||'[{"weight":4,"name":"ECA Zones","key":"eca-zones","enabled":true,"type":"json"}, {"weight": 2048,"name": "ENC","key": "enc","h5": true,"enabled": true,"type": "origin"}]'),this.activeOtherLayers=a,e=localStorage.getItem(this.sourceCache),this.source=this.forecastModel?this.forecastModel:e?e==="CMEMS"?"ECMWF":e:this.source,this.$emit("forecastModel",this.source)},handleConfirm(){this.autoActive&&this.$emit("weather",JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),this.sourceCode),this.$emit("other",this.activeOtherLayers),localStorage.setItem(this.autoActiveCache,this.autoActive),localStorage.setItem(this.sourceCache,this.source)},handleWeatherLayerPick(i){if(this.activeWeatherLayers=JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),this.rampColorLayers.includes(i.key)&&this.mapProjection==="globe"||!this.autoActive)return!1;(i.key==="wind"&&!this.showWindFeather||i.key==="current"&&!this.showCurrentIsoband)&&(i.particle=!0),this.activeWeatherLayers.some(e=>e.key===i.key)?this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.key!==i.key):this.activeWeatherLayers.length<6&&i.enabled&&(["png","jpg"].includes(i.type)?(this.activeWeatherLayers.forEach(e=>{(e.key==="wind"&&this.showWindFeather||i.key==="current"&&this.showCurrentIsoband)&&(e.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json"&&!(["wind","current"].includes(e.key)&&e.particle))):i.key==="wind"?(this.activeWeatherLayers.forEach(e=>{e.key==="current"&&this.showCurrentIsoband&&(e.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json"&&!(["wind","current"].includes(e.key)&&e.particle))):i.key==="current"&&(this.activeWeatherLayers.forEach(e=>{e.key==="wind"&&this.showWindFeather&&(e.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json"&&!(["wind","current"].includes(e.key)&&e.particle))),this.activeWeatherLayers.push(i)),this.$emit("weather",this.activeWeatherLayers,this.sourceCode)},handleWeatherLayerCollect(i){var e;if(!this.autoActive)return!1;!i.collected&&((e=this.layers.weather.filter(a=>a.collected))==null?void 0:e.length)>=6&&(this.layers.weather.filter(a=>a.collected)[0].collected=!1),i.collected=!i.collected,localStorage.setItem(this.collectedLayerCache,JSON.stringify(this.layers.weather)),this.$emit("handleToggleVersion")},handleToggleWindParticle(){!this.showWindFeather&&this.showWindParticle?this.handleWeatherLayerPick({weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!1}):(this.showCurrentParticle&&(this.$emit("toggleCurrentParticle",!1),this.showCurrentIsoband||(this.activeWeatherLayers=this.activeWeatherLayers.filter(i=>i.key!=="current"))),this.$emit("toggleWindParticle",!this.showWindParticle),this.$emit("toggleWindParticeVersion"))},handleToggleWindFeather(){this.showWindFeather&&!this.showWindParticle&&this.handleWeatherLayerPick({weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!1}),this.$emit("toggleWindFeather",!this.showWindFeather)},handleToggleCurrentParticle(){!this.showCurrentIsoband&&this.showCurrentParticle?this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",enabled:!0,type:"json",particle:!1}):(this.showWindParticle&&(this.$emit("toggleWindParticle",!1),this.showWindFeather||(this.activeWeatherLayers=this.activeWeatherLayers.filter(i=>i.key!=="wind"))),this.$emit("toggleCurrentParticle",!this.showCurrentParticle),this.$emit("toggleCurrentParticeVersion"))},handleToggleCurrentIsoband(){this.showCurrentIsoband&&!this.showCurrentParticle&&this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",enabled:!0,type:"json",particle:!1}),this.$emit("toggleCurrentIsoband",!this.showCurrentIsoband)},handleOtherLayerPick(i){this.activeOtherLayers.some(e=>e.key===i.key)?this.activeOtherLayers=this.activeOtherLayers.filter(e=>e.key!==i.key):i.enabled&&this.activeOtherLayers.push(i),localStorage.setItem(this.activeOtherLayersCache,JSON.stringify(this.activeOtherLayers)),this.$emit("other",this.activeOtherLayers)},handleMenuToggle(){this.$emit("layerToggle",!this.layerToggle)},toggleAutoActive(){this.autoActive=!this.autoActive,localStorage.setItem(this.autoActiveCache,this.autoActive),this.autoActive?(this.$emit("weather",this.activeWeatherLayersCollected,this.sourceCode),this.$emit("toggleWindFeather",localStorage.getItem(this.windFeatherCollectedCache)==="true"),this.$emit("toggleCurrentIsoband",localStorage.getItem(this.currentIsobandCollectedCache)==="true")):(this.$emit("weather",[],this.sourceCode),this.$emit("toggleWindFeather",!1),this.$emit("toggleCurrentIsoband",!1))},handleCoordToggle(){this.showCoord=!this.showCoord,this.$emit("coordinate",this.showCoord)},handlePointToggle(){this.isLogin?(this.showPoint=!this.showPoint,this.$emit("point",this.showPoint)):this.$emit("login")},handleMeasureToggle(){this.showMeasure=!this.showMeasure,this.$emit("measure",this.showMeasure)},handle3DToggle(){this.show3d=!this.show3d,this.$emit("3d",this.show3d)}}},et={class:"idm-gl3-layer"},tt={class:"bar-item layer-bars"},at={class:"bar-item tool-bars"},it={class:"flex-between"},rt={key:0,class:"iconfont active"},ot={key:1,class:"iconfont"},st=["onClick"],nt=["onClick"],lt={key:0,class:"flex-start"},ct={key:1,class:"flex-start"},ht={class:"header-box flex-between"},dt={class:"weather-layers card-bg"},mt={class:"layers-title flex-between"},pt={key:0,class:"iconfont active"},gt={key:1,class:"iconfont"},yt={class:"layers-body"},ut={class:"flex-start"},ft=["onClick"],At=["onClick"],wt={key:0,class:"flex-start"},bt={key:1,class:"flex-start"},Lt=["onClick"],Ct={key:0,class:"iconfont bookmark-icon active"},vt={key:1,class:"iconfont bookmark-icon inactive"},xt={class:"other-layers card-bg"},Et={class:"layers-body"},Bt=["onClick"],_t={class:"flex-start"},kt={class:"switch flex-center"},It={key:0,class:"iconfont active"},Dt={key:1,class:"iconfont"},Nt={class:"source-layers card-bg"},zt={class:"layers-body"},Pt={key:0},Mt={key:1,class:"radio-tip"},St={key:2,class:"radio-tip"};function Tt(i,e,a,o,r,s){const n=t.resolveComponent("ElTooltip"),l=t.resolveComponent("ElRadio"),h=t.resolveComponent("ElRadioGroup"),d=t.resolveComponent("ElScrollbar");return t.openBlock(),t.createElementBlock("div",et,[t.createElementVNode("div",{class:"menu-bar-box",style:t.normalizeStyle({top:a.top+10+"px",right:r.right+"px"})},[t.createElementVNode("div",tt,[t.createVNode(n,{placement:"left",effect:"light",content:"Menu","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(a.layerToggle?"menu-icon active":"menu-icon"),onClick:e[0]||(e[0]=(...c)=>s.handleMenuToggle&&s.handleMenuToggle(...c))},e[17]||(e[17]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),t.createElementVNode("div",{class:"menu-bar-box",style:t.normalizeStyle({top:a.top+160+"px",right:r.right+"px"})},[t.createElementVNode("div",at,[t.createVNode(n,{placement:"left",effect:"light",content:"Measure","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.showMeasure?"menu-icon active":"menu-icon"),onClick:e[1]||(e[1]=(...c)=>s.handleMeasureToggle&&s.handleMeasureToggle(...c))},e[18]||(e[18]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"Point Meteo","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.showPoint?"menu-icon active":"menu-icon"),onClick:e[2]||(e[2]=(...c)=>s.handlePointToggle&&s.handlePointToggle(...c))},e[19]||(e[19]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"Grid","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.showCoord?"menu-icon active":"menu-icon"),onClick:e[3]||(e[3]=(...c)=>s.handleCoordToggle&&s.handleCoordToggle(...c))},e[20]||(e[20]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"3D","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.show3d?"menu-icon active":"menu-icon"),onClick:e[4]||(e[4]=(...c)=>s.handle3DToggle&&s.handle3DToggle(...c))},e[21]||(e[21]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),s.hasCollectedLayers?(t.openBlock(),t.createElementBlock("div",{key:0,class:"active-layers",style:t.normalizeStyle({right:r.right+"px",bottom:"100px"})},[t.createElementVNode("div",it,[e[22]||(e[22]=t.createElementVNode("div",{style:{margin:"2px 5px"}},"Weather Layers",-1)),t.createElementVNode("div",{class:"switch flex-center",style:{"font-size":"28px","margin-right":"0"},onClick:e[5]||(e[5]=(...c)=>s.toggleAutoActive&&s.toggleAutoActive(...c))},[r.autoActive?(t.openBlock(),t.createElementBlock("i",rt,"")):(t.openBlock(),t.createElementBlock("i",ot,""))])]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.layers.weather.filter(c=>c.collected),c=>(t.openBlock(),t.createElementBlock("div",{key:c.key,class:t.normalizeClass(s.computeLayerClass(c,r.activeWeatherLayersCollected))},[t.createElementVNode("div",{class:"checkbox",onClick:m=>s.handleWeatherLayerPick(c)},null,8,st),t.createElementVNode("span",{class:"name",onClick:m=>s.handleWeatherLayerPick(c)},t.toDisplayString(c.name),9,nt),c.key==="wind"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",lt,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:e[6]||(e[6]=m=>s.handleToggleWindParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:e[7]||(e[7]=m=>s.handleToggleWindFeather())},"",2)])):t.createCommentVNode("",!0),c.key==="current"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",ct,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:e[8]||(e[8]=m=>s.handleToggleCurrentParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:e[9]||(e[9]=m=>s.handleToggleCurrentIsoband())},"",2)])):t.createCommentVNode("",!0)],2))),128))],4)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"available-layers flex-center",style:t.normalizeStyle({top:a.top+"px",right:a.layerToggle?"0px":"-240px"})},[t.createElementVNode("div",{class:t.normalizeClass(["list-box",a.layerToggle?"right-bar":""])},[t.createElementVNode("div",ht,[e[23]||(e[23]=t.createElementVNode("div",null,"Layers",-1)),t.createElementVNode("div",{class:"iconfont close-btn",onClick:e[10]||(e[10]=(...c)=>s.handleMenuToggle&&s.handleMenuToggle(...c))},"")]),t.createVNode(d,{style:{flex:"1"}},{default:t.withCtx(()=>[t.createElementVNode("div",dt,[t.createElementVNode("div",mt,[e[24]||(e[24]=t.createElementVNode("div",null,"Weather Layers",-1)),t.createElementVNode("div",{class:"switch flex-center",style:{"margin-right":"0"},onClick:e[11]||(e[11]=(...c)=>s.toggleAutoActive&&s.toggleAutoActive(...c))},[r.autoActive?(t.openBlock(),t.createElementBlock("i",pt,"")):(t.openBlock(),t.createElementBlock("i",gt,""))])]),t.createElementVNode("div",yt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.layers.weather,c=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:c.key},[c.hide?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.computeLayerClass(c,r.activeWeatherLayersCollected))},[t.createElementVNode("div",ut,[t.createElementVNode("div",{class:"checkbox",onClick:m=>s.handleWeatherLayerPick(c)},null,8,ft),t.createElementVNode("span",{class:"name",onClick:m=>s.handleWeatherLayerPick(c)},t.toDisplayString(c.name),9,At),c.key==="wind"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",wt,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:e[12]||(e[12]=m=>s.handleToggleWindParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:e[13]||(e[13]=m=>s.handleToggleWindFeather())},"",2)])):t.createCommentVNode("",!0),c.key==="current"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",bt,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:e[14]||(e[14]=m=>s.handleToggleCurrentParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:e[15]||(e[15]=m=>s.handleToggleCurrentIsoband())},"",2)])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{onClick:m=>s.handleWeatherLayerCollect(c)},[c.collected?(t.openBlock(),t.createElementBlock("i",Ct,"")):(t.openBlock(),t.createElementBlock("i",vt,""))],8,Lt)],2))],64))),128)),e[25]||(e[25]=t.createElementVNode("div",{class:"tip flex-start"},[t.createElementVNode("i",{class:"iconfont bookmark-icon",style:{"align-self":"flex-start",padding:"5px 5px 0 0"}},""),t.createElementVNode("div",null,"You can add the layers to your favorites. (Max 6)")],-1))])]),t.createElementVNode("div",xt,[e[26]||(e[26]=t.createElementVNode("div",{class:"layers-title"},"Other Layers",-1)),t.createElementVNode("div",Et,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.layers.other,c=>{var m;return t.openBlock(),t.createElementBlock("div",{key:c.key,class:t.normalizeClass(["layer flex-between",s.computeLayerClass(c,r.activeOtherLayers)]),onClick:w=>s.handleOtherLayerPick(c)},[t.createElementVNode("div",_t,[t.createElementVNode("div",kt,[(m=s.computeLayerClass(c,r.activeOtherLayers))!=null&&m.includes("active")?(t.openBlock(),t.createElementBlock("i",It,"")):(t.openBlock(),t.createElementBlock("i",Dt,""))]),t.createElementVNode("span",null,t.toDisplayString(c.name),1)])],10,Bt)}),128))])]),t.createElementVNode("div",Nt,[e[27]||(e[27]=t.createElementVNode("span",{class:"layers-title"},"Forecast Model",-1)),t.createElementVNode("div",zt,[t.createVNode(h,{modelValue:r.source,"onUpdate:modelValue":e[16]||(e[16]=c=>r.source=c),class:"layer-radio flex-col-start-start",style:{width:"180px","align-items":"flex-start"}},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.sourceList,(c,m)=>(t.openBlock(),t.createBlock(l,{key:`source${c.name}`,value:c.name},{default:t.withCtx(()=>{var w,C,B,y,E,v;return[t.createTextVNode(t.toDisplayString(c.name)+" ",1),m!==0?(t.openBlock(),t.createElementBlock("span",Pt,t.toDisplayString(c.resolution)+"km "+t.toDisplayString(c.length)+"days",1)):t.createCommentVNode("",!0),m===0?(t.openBlock(),t.createElementBlock("div",Mt,"Provides the best forecast")):(B=(C=(w=c==null?void 0:c.update)==null?void 0:w.default)==null?void 0:C.meta)!=null&&B.initialisationTime?(t.openBlock(),t.createElementBlock("div",St,"Update: "+t.toDisplayString(s.computeDateZ((v=(E=(y=c==null?void 0:c.update)==null?void 0:y.default)==null?void 0:E.meta)==null?void 0:v.initialisationTime)),1)):t.createCommentVNode("",!0)]}),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])])]),_:1})],2)],4)])}const Qt=O($e,[["render",Tt]]),Do="",Ht={name:"IdmWindBarb",props:{map:{type:Object},wind:{type:Object},current:{type:Object},beforeLayer:{type:String},mapProjection:{type:String},showWindFeather:{type:Boolean,default:!1},showWindParticle:{type:Boolean,default:!1},toggleParticeVersion:{type:Number},toggleVersion:{type:Number}},emits:["particle","showWindFeather"],data(){return{source:"wind-barb-source",barbs:[0,2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105],empty:z.featureCollection([]),right:10,bottom:125,windBarbLoaded:!1}},watch:{"wind.version":{handler(){var i;(i=this.wind)!=null&&i.active&&this.showWindFeather?this.handleRender():this.handleClear()},deep:!0},toggleParticeVersion:{handler(){this.handleParticle()}},showWindFeather:{handler(){this.handleToggle()}}},methods:{handleParticle(){this.$emit("particle",{particle:this.showWindParticle,key:"wind",weight:1})},handleRender(){var i,e,a,o;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.wind){const r=new Date().valueOf();let s=0,n=0,l=this.empty;if((i=this.wind)!=null&&i.active&&(l=(e=this.wind)==null?void 0:e.data),(a=this.map)!=null&&a.getSource(this.source))(o=this.map)==null||o.getSource(this.source).setData(l),n=new Date().valueOf()-(r+s),console.log("[wind] update elapsed: ",n,", total: ",s+=n);else{this.map.addSource(this.source,{type:"geojson",data:l});for(let h=0;h<(this.barbs??[]).length-1;h++){const d=(this.barbs??[])[h]||0,c=(this.barbs??[])[h+1]||0,m=d<10?`00${d}kts`:d<100?`0${d}kts`:`${d}kts`;this.map.addLayer({id:m,type:"symbol",filter:["all",[">=","spd",d],["<","spd",c]],source:this.source,layout:{"symbol-placement":"point","icon-image":m,"icon-size":.14,"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"dir",stops:[[0,0],[360,360]]}},paint:{"icon-opacity":1,"text-color":"#222"}},this.beforeLayer)}this.windBarbLoaded=!0,n=new Date().valueOf()-(r+s),console.log("[wind] add elapsed: ",n,", total: ",s+=n)}}},handleToggle(){if(!this.windBarbLoaded)this.handleRender();else for(const i of this.barbs??[]){const e=i<10?`00${i}kts`:i<100?`0${i}kts`:`${i}kts`;this.map.getLayer(e)&&this.map.setLayoutProperty(e,"visibility",this.showWindFeather?"visible":"none")}},handleClear(){for(const i of this.barbs??[]){const e=i<10?`00${i}kts`:i<100?`0${i}kts`:`${i}kts`;this.map.getLayer(e)&&this.map.removeLayer(e)}this.map.getSource(this.source)&&this.map.removeSource(this.source),this.windBarbLoaded=!1}}};function Vt(i,e,a,o,r,s){return null}const Ft=O(Ht,[["render",Vt]]);class Te{constructor(e){J(this,"map");J(this,"mercator");J(this,"rampColorLayer");J(this,"rampColorSource");J(this,"particleLayer");J(this,"particleSource");J(this,"rampColorCanvas");J(this,"particleCanvas");J(this,"ratio");this.map=e,this.mercator=new Je,this.rampColorLayer="ramp-color-layer",this.rampColorSource="ramp-color-source",this.particleLayer="particle-layer",this.particleSource="particle-source",this.rampColorCanvas=document.createElement("canvas"),this.particleCanvas=document.createElement("canvas"),this.ratio=window.devicePixelRatio}convertNLng(e,a=0){return e>180?this.convertNLng(e-360,a+1):e<-180?this.convertNLng(e+360,a+1):[e,a]}getBoundLngLat(){const e=this.map.getBounds();return[[e._sw.lng,e._ne.lat],[e._ne.lng,e._ne.lat],[e._ne.lng,e._sw.lat],[e._sw.lng,e._sw.lat]]}getBoundPixel(){const e=this.map.getBounds(),a=this.map.getZoom()+1,o=[e._ne.lng,e._ne.lat],r=[e._sw.lng,e._sw.lat],[s,n]=this.convertNLng(o[0]),[l,h]=this.convertNLng(r[0]),[d,c]=this.mercator.px([s,o[1]],a),[m,w]=this.mercator.px([l,r[1]],a),C=Math.round(this.mercator.size*Math.pow(2,a)*(n+h));return[m,w,d+C,c]}getBoundRange(){const e=this.map.getZoom()+1,a=this.mercator.size*Math.pow(2,e),o=this.getBoundPixel();return[o[0]/a,o[2]/a,o[3]/a,o[1]/a]}getWorldCopy(e,a){const o=2**a,[r,s,n,l]=e.map(c=>~~(c/(o*256))),h=[];for(let c=l;c<=s;c++)for(let m=r;m<=n;m++)h.push([m,c]);return h.map(c=>{const m=2**a*256;return[c[0]*m,c[1]*m,m]})}resize(){let e=this.map.getSource(this.rampColorSource);e.setCoordinates(this.getBoundLngLat()),e=this.map.getSource(this.particleSource),e.setCoordinates(this.getBoundLngLat()),this.rampColorCanvas.width=this.map._canvas.clientWidth,this.rampColorCanvas.height=this.map._canvas.clientHeight,this.particleCanvas.width=this.map._canvas.clientWidth,this.particleCanvas.height=this.map._canvas.clientHeight}toggle(e){const a=this.map.getLayoutProperty(this.rampColorLayer,"visibility"),o=e?"visible":"none";a!==o&&this.map.setLayoutProperty(this.rampColorLayer,"visibility",o)}toggleParticle(e){const a=this.map.getLayoutProperty(this.particleLayer,"visibility"),o=e?"visible":"none";a!==o&&this.map.setLayoutProperty(this.particleLayer,"visibility",o)}}class ke{createShader(e,a,o){const r=e.createShader(a);if(r&&(e.shaderSource(r,o),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)))throw new Error(e.getShaderInfoLog(r)||"error happened while create shader...");return r}createTexture(e,a,o,r,s,n,l){const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,r),s instanceof Uint8Array?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,l,0,e.RGBA,e.UNSIGNED_BYTE,s):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s),e.bindTexture(e.TEXTURE_2D,null),h}createDataBuffer(e,a,o){if(e){const r=e.createBuffer();return a==="array"?(e.bindBuffer(e.ARRAY_BUFFER,r),o&&e.bufferData(e.ARRAY_BUFFER,o,e.STATIC_DRAW)):a==="element"&&(e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r),o&&e.bufferData(e.ELEMENT_ARRAY_BUFFER,o,e.STATIC_DRAW)),r}return null}createProgram(e,a,o){const r=e.createProgram(),s=this.createShader(e,e.VERTEX_SHADER,a),n=this.createShader(e,e.FRAGMENT_SHADER,o);if(r&&s&&n&&(e.attachShader(r,s),e.attachShader(r,n),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS)))throw new Error(e.getProgramInfoLog(r)||"error happened while creating ramp color program");return r}createProgramWrapper(e,a,o){const r=this.createProgram(e,a,o);if(r){const s={program:r},n=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let h=0;h<n;h++){const d=e.getActiveAttrib(r,h);s[d.name]=e.getAttribLocation(r,d.name)}const l=e.getProgramParameter(r,e.ACTIVE_UNIFORMS);for(let h=0;h<l;h++){const d=e.getActiveUniform(r,h);s[d.name]=e.getUniformLocation(r,d.name)}return s}}setup(e,a,o=!1,r,s){const n=document.createElement("canvas");n.width=256,n.height=1;const l=n.getContext("2d");if(l&&e){const h=l==null?void 0:l.createLinearGradient(0,0,256,0);return a.forEach(([d,c])=>{h.addColorStop(d,c)}),l.fillStyle=h,l.fillRect(0,0,256,1),{canvas:n,texture:this.createTexture(e,e.LINEAR,e.LINEAR,e.CLAMP_TO_EDGE,o?new Uint8Array(l.getImageData(0,0,256,1).data):n,r,s)}}}setupParticle(e,a=1e3){const o=Math.ceil(Math.sqrt(a)),r=o*o,s=new Uint8Array(r*4);for(let c=0;c<s.length;c++)s[c]=Math.floor(Math.random()*256);const n=this.createTexture(e,e.NEAREST,e.NEAREST,e.CLAMP_TO_EDGE,s,o,o),l=this.createTexture(e,e.NEAREST,e.NEAREST,e.CLAMP_TO_EDGE,s,o,o),h=new Float32Array(r);for(let c=0;c<r;c++)h[c]=c;const d=this.createDataBuffer(e,"array",h);return{resolution:o,total:r,texture0:n,texture1:l,indexBuffer:d}}bind(e,a,o){const r=this.createProgram(e,a,o);if(r){const s=this.createDataBuffer(e,"array",void 0),n=e.getAttribLocation(r,"a_position");e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0);const l=new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]);this.createDataBuffer(e,"array",l);const h=e.getAttribLocation(r,"a_texCoord");return e.enableVertexAttribArray(h),e.vertexAttribPointer(h,2,e.FLOAT,!1,0,0),{program:r,aPositionBuffer:s}}return{}}bindParticle(e,a,o,r,s,n){const l=this.createProgramWrapper(e,a,o),h=this.createProgramWrapper(e,r,s),d=this.createProgramWrapper(e,r,n),c=this.createDataBuffer(e,"array",new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1])),m=e.createFramebuffer();return{particle:l,screen:h,update:d,quadBuffer:c,frameBuffer:m}}draw(e,a,o,r,s,n,l){var h,d;if(a&&o){e.resize(),a==null||a.viewport(0,0,(h=a==null?void 0:a.canvas)==null?void 0:h.width,(d=a==null?void 0:a.canvas)==null?void 0:d.height),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);try{a.useProgram(o);const c={resolution:a.getUniformLocation(o,"u_resolution"),image:a.getUniformLocation(o,"u_image"),color:a.getUniformLocation(o,"u_color"),scale:a.getUniformLocation(o,"u_scale"),uvRange:a.getUniformLocation(o,"u_range_u_v"),sRange:a.getUniformLocation(o,"u_range_s")};c.resolution&&a.uniform2f(c.resolution,a.canvas.width*e.ratio,a.canvas.height*e.ratio),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,r),c.image&&a.uniform1i(c.image,0),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,s),c.color&&a.uniform1i(c.color,1),l!=null&&l.uvRange&&(l!=null&&l.sRange)&&(c.uvRange&&a.uniform2f(c.uvRange,l.uvRange[0],l.uvRange[1]),c.sRange&&a.uniform2f(c.sRange,l.sRange[0],l.sRange[1])),c.scale&&a.uniform1f(c.scale,(l==null?void 0:l.scale)||1);const m=e.getBoundPixel(),w=e.map.getZoom()+1,C=e.getWorldCopy(m,w);for(const B of C){const y=(B[0]-m[0])*e.ratio,E=(B[1]-m[3])*e.ratio,v=B[2]*e.ratio,[u,f,p,b]=[y,v+y,E,v+E],g=new Float32Array([u,p,f,p,u,b,u,b,f,p,f,b]);a.bindBuffer(a.ARRAY_BUFFER,n),a.bufferData(a.ARRAY_BUFFER,g,a.STATIC_DRAW),a.drawArrays(a.TRIANGLES,0,6)}}catch(c){console.log(`render failed...${c}`)}}}drawParticle(e,a,o,r,s){var n,l;a&&(a==null||a.viewport(0,0,(n=a==null?void 0:a.canvas)==null?void 0:n.width,(l=a==null?void 0:a.canvas)==null?void 0:l.height),a.disable(a.DEPTH_TEST),a.disable(a.STENCIL_TEST),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,r.texture0),this.renderScreen(e,a,r,s),this.updateParticles(e,a,r,s))}renderScreen(e,a,o,r){a.bindFramebuffer(a.FRAMEBUFFER,o.frameBuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o.screenTexture,0),a.viewport(0,0,a.canvas.width,a.canvas.height),this.renderScreenTexture(a,o.backgroundTexture,o.screen,o.quadBuffer,.95),this.renderParticles(e,a,o,r),a.bindFramebuffer(a.FRAMEBUFFER,null),this.renderScreenTexture(a,o.screenTexture,o.screen,o.quadBuffer,1);const s=o.backgroundTexture;o.backgroundTexture=o.screenTexture,o.screenTexture=s}renderScreenTexture(e,a,o,r,s){e&&(e.useProgram(o.program),e.bindBuffer(e.ARRAY_BUFFER,r),e.enableVertexAttribArray(o.a_pos),e.vertexAttribPointer(o.a_pos,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,a),e.uniform1i(o.u_screen,2),e.uniform1f(o.u_opacity,s),e.drawArrays(e.TRIANGLES,0,6))}renderParticles(e,a,o,r){if(a){a.useProgram(o.particle.program),a.bindBuffer(a.ARRAY_BUFFER,o.indexBuffer),a.enableVertexAttribArray(o.particle.a_index),a.vertexAttribPointer(o.particle.a_index,1,a.FLOAT,!1,0,0),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,o.color.texture),a.uniform1i(o.particle.u_factor,0),a.uniform1i(o.particle.u_particles,1),a.uniform1i(o.particle.u_color_ramp,2),a.uniform1f(o.particle.u_particles_resolution,o.resolution*e.ratio),a.uniform1f(o.particle.u_point,e.ratio);const s=e.getBoundRange();a.uniform4f(o.particle.u_viewport,s[0],s[1],s[2],s[3]),a.uniform2f(o.particle.u_factor_min,r.uvRange[0],r.uvRange[0]),a.uniform2f(o.particle.u_factor_max,r.uvRange[1],r.uvRange[1]),a.drawArrays(a.POINTS,0,o.total)}}updateParticles(e,a,o,r){var n,l;if(a){a.bindFramebuffer(a.FRAMEBUFFER,o.frameBuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o.texture1,0),a.viewport(0,0,o.resolution,o.resolution),a.useProgram(o.update.program),a.bindBuffer(a.ARRAY_BUFFER,o.quadBuffer),a.enableVertexAttribArray(o.update.a_pos),a.vertexAttribPointer(o.update.a_pos,2,a.FLOAT,!1,0,0),a.uniform1i(o.update.u_factor,0),a.uniform1i(o.update.u_particles,1);const h=e.getBoundRange();a.uniform4f(o.update.u_viewport,h[0],h[1],h[2],h[3]),a.uniform1f(o.update.u_rand_seed,Math.random()),a.uniform2f(o.update.u_factor_res,(n=o==null?void 0:o.image)==null?void 0:n.width,(l=o==null?void 0:o.image)==null?void 0:l.height),a.uniform2f(o.update.u_factor_min,r.uvRange[0],r.uvRange[0]),a.uniform2f(o.update.u_factor_max,r.uvRange[1],r.uvRange[1]),a.uniform1f(o.update.u_speed_factor,r.speedFactor*e.ratio),a.uniform1f(o.update.u_drop_rate,r.dropRate),a.uniform1f(o.update.u_drop_rate_bump,r.dropRateBump),a.drawArrays(a.TRIANGLES,0,6)}const s=o.texture0;o.texture0=o.texture1,o.texture1=s}resize(e,a){e.resize();const o=new Uint8Array(a.canvas.width*a.canvas.height*4).fill(0,0,a.canvas.width*a.canvas.height*4),r=this.createTexture(a,a.NEAREST,a.NEAREST,a.CLAMP_TO_EDGE,o,a.canvas.width,a.canvas.height),s=this.createTexture(a,a.NEAREST,a.NEAREST,a.CLAMP_TO_EDGE,o,a.canvas.width,a.canvas.height);return{screenTexture:r,backgroundTexture:s}}async loadImg(e){return new Promise(a=>{const o=new Blob([e],{type:e.type}),r=URL.createObjectURL(o),s=new Image;s.crossOrigin="anonymous",s.src=r,s.onload=()=>a(s)})}}class Z{}J(Z,"vertexSchema",`
1
+ (function(G,ee){typeof exports=="object"&&typeof module<"u"?ee(exports,require("@idm-plugin/tag"),require("moment"),require("axios"),require("moment-timezone"),require("vue"),require("@turf/turf"),require("@mapbox/sphericalmercator"),require("mapbox-gl"),require("@idm-plugin/geo"),require("@idm-plugin/meteo")):typeof define=="function"&&define.amd?define(["exports","@idm-plugin/tag","moment","axios","moment-timezone","vue","@turf/turf","@mapbox/sphericalmercator","mapbox-gl","@idm-plugin/geo","@idm-plugin/meteo"],ee):(G=typeof globalThis<"u"?globalThis:G||self,ee(G["idm-gl"]={},G["@idm-plugin/tag"],G.moment,G.axios,G["moment-timezone"],G.Vue,G["@turf/turf"],G["@mapbox/sphericalmercator"],G["mapbox-gl"],G["@idm-plugin/geo"],G["@idm-plugin/meteo"]))})(this,function(G,ee,j,ve,Pe,t,qe,Je,_e,W,De){"use strict";var Bo=Object.defineProperty;var _o=(G,ee,j)=>ee in G?Bo(G,ee,{enumerable:!0,configurable:!0,writable:!0,value:j}):G[ee]=j;var J=(G,ee,j)=>(_o(G,typeof ee!="symbol"?ee+"":ee,j),j);function Ze(i){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const a in i)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(i,a);Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>i[a]})}}return e.default=i,Object.freeze(e)}const z=Ze(qe),ko="",Io="",O=(i,e)=>{const a=i.__vccOpts||i;for(const[o,r]of e)a[o]=r;return a},$e={name:"IdmGlLayer",props:{map:{type:Object},mapProjection:{type:String},gateway:{type:String},token:{type:String},top:{type:Number,default:60},layerToggle:{type:Boolean,default:!1},toggleVersion:{type:Number},isLogin:{type:Boolean,default:void 0},showWindFeather:{type:Boolean,default:void 0},showWindParticle:{type:Boolean,default:void 0},showCurrentIsoband:{type:Boolean,default:void 0},showCurrentParticle:{type:Boolean,default:void 0},forecastModel:{type:String}},emits:["weather","other","toggleWindParticle","toggleWindFeather","toggleCurrentParticle","toggleCurrentIsoband","toggleWindParticeVersion","toggleCurrentParticeVersion","coordinate","measure","point","3d","layerToggle","handleToggleVersion","login","forecastModel"],data(){return{autoActive:!0,layers:{weather:[...ee.LayerHelper.WEATHER_LAYERS.filter(i=>!["swell-height","swell-direction","current-direction","current-speed"].includes(i.key))],other:[...ee.LayerHelper.OTHER_LAYERS.filter(i=>i.enabled)]},activeWeatherLayers:[],activeWeatherLayersCollected:[],activeOtherLayers:[],autoActiveCache:"autoActiveCache",activeWeatherLayersCache:"activeWeatherLayersCache",activeOtherLayersCache:"activeOtherLayersCache",collectedLayerCache:"collectedLayerCache",sourceCache:"defaultSourceCache",windFeatherCollectedCache:"windFeatherCollectedCache",currentIsobandCollectedCache:"currentIsobandCollectedCache",showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,version:{v:"0.1.1",k:"glCacheVersion"},source:"Best Match",sourceList:[],right:10,rampColorLayers:["visibility","precip3h","temp","water-temp","ice-thickness","ice-cover"],showWindParticleCollected:!1,showWindFeatherCollected:!0,showCurrentParticleCollected:!1,showCurrentIsobandCollected:!1}},computed:{computeLayerClass(){return function(i,e){var o;let a="layer flex-between";return e.some(r=>r.key===i.key)&&(a=a+" active"),(!i.enabled||(o=this.layers.weather)!=null&&o.some(r=>r.key===i.key)&&!this.autoActive||this.rampColorLayers.includes(i.key)&&this.mapProjection==="globe")&&(a=a+" disabled"),a}},hasCollectedLayers(){var i;return((i=this.layers.weather.filter(e=>e.collected))==null?void 0:i.length)>0},computeDateZ(){return function(i){var e;if(i){const a=j(i);return`${(e=a==null?void 0:a.utc())==null?void 0:e.format("MMM-DD/HHmm")}Z`}return"-"}},sourceCode(){var i;return(i=this.sourceList.find(e=>e.name===this.source))==null?void 0:i.code}},watch:{toggleVersion:{handler(){this.$nextTick(()=>{var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10})}},source:{handler(i,e){i&&i!==e&&this.$emit("forecastModel",this.source),i&&e&&i!==e&&this.handleConfirm()}},activeWeatherLayers:{handler(i,e){this.autoActive&&(this.activeWeatherLayersCollected=this.activeWeatherLayers,localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify(this.activeWeatherLayers)))}},showWindParticle:{handler(i,e){this.autoActive&&(this.showWindParticleCollected=this.showWindParticle)}},showWindFeather:{handler(i,e){this.autoActive&&(this.showWindFeatherCollected=this.showWindFeather,localStorage.setItem(this.windFeatherCollectedCache,this.showWindFeatherCollected))}},showCurrentParticle:{handler(i,e){this.autoActive&&(this.showCurrentParticleCollected=this.showCurrentParticle)}},showCurrentIsoband:{handler(i,e){this.autoActive&&(this.showCurrentIsobandCollected=this.showCurrentIsoband,localStorage.setItem(this.currentIsobandCollectedCache,this.showCurrentIsobandCollected))}}},async mounted(){await this.fetchMeteoSource(),this.fetchCache(),this.handleConfirm()},methods:{async fetchMeteoSource(){var e;this.sourceList=[];let i=await ve.get(`${this.gateway}/api/arc/meteo2/models`,{headers:{Authorization:this.token}});(i==null?void 0:i.data.code)===0&&(this.sourceList=(e=i==null?void 0:i.data.data)==null?void 0:e.weather)},fetchCache(){const i=localStorage.getItem(this.version.k);this.version.v!==i&&(localStorage.removeItem(this.autoActiveCache),localStorage.removeItem(this.activeWeatherLayersCache),localStorage.removeItem(this.activeOtherLayersCache),localStorage.removeItem(this.windFeatherCollectedCache),localStorage.removeItem(this.currentIsobandCollectedCache),localStorage.setItem(this.version.k,this.version.v));let e=localStorage.getItem(this.autoActiveCache);this.autoActive=e!=="false",e=localStorage.getItem(this.collectedLayerCache);let a=JSON.parse(e||'[{"weight": 16, "name": "Sig Waves", "key": "sig-wave-height", "collected": true},{"weight": 1, "name": "Wind", "key": "wind", "h5": true, "collected": true},{"weight": 96, "name": "Current", "key": "current", "collected": true},{"weight": 256,"name": "Tropicals","key": "tropicals", "collected": true}]');this.layers.weather.forEach(o=>{o.collected=!!a.some(r=>r.key===o.key&&r.collected)}),e=localStorage.getItem(this.activeWeatherLayersCache),e||localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify([{weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!1},{weight:16,name:"Sig Waves",key:"sig-wave-height",enabled:!0,type:"json"},{weight:256,name:"Tropicals",key:"tropicals",enabled:!0,type:"json"}])),e=localStorage.getItem(this.activeWeatherLayersCache),a=JSON.parse(e),this.autoActive?this.activeWeatherLayers=[...a]:this.activeWeatherLayersCollected=[...a],a.some(o=>o.key==="wind"&&o.particle)&&(this.$emit("toggleWindParticle",!0),this.showWindParticleCollected=!0),a.some(o=>o.key==="current"&&o.particle)&&(this.$emit("toggleCurrentParticle",!0),this.showCurrentParticleCollected=!0),this.showWindFeatherCollected=JSON.parse(localStorage.getItem(this.windFeatherCollectedCache))?JSON.parse(localStorage.getItem(this.windFeatherCollectedCache)):this.showWindFeatherCollected,this.showCurrentIsobandCollected=JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache))?JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache)):this.showCurrentIsobandCollected,this.autoActive&&(this.$emit("toggleWindFeather",this.showWindFeatherCollected),this.$emit("toggleCurrentIsoband",this.showCurrentIsobandCollected)),a.some(o=>o.key==="wind"&&!o.particle&&!this.showWindFeatherCollected)&&(a=a.filter(o=>o.key!=="wind")),a.some(o=>o.key==="current"&&!o.particle&&!this.showCurrentIsobandCollected)&&(a=a.filter(o=>o.key!=="current")),e=localStorage.getItem(this.activeOtherLayersCache),a=JSON.parse(e||'[{"weight":4,"name":"ECA Zones","key":"eca-zones","enabled":true,"type":"json"}, {"weight": 2048,"name": "ENC","key": "enc","h5": true,"enabled": true,"type": "origin"}]'),this.activeOtherLayers=a,e=localStorage.getItem(this.sourceCache),this.source=this.forecastModel?this.forecastModel:e?e==="CMEMS"?"ECMWF":e:this.source,this.$emit("forecastModel",this.source)},handleConfirm(){this.autoActive&&this.$emit("weather",JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),this.sourceCode),this.$emit("other",this.activeOtherLayers),localStorage.setItem(this.autoActiveCache,this.autoActive),localStorage.setItem(this.sourceCache,this.source)},handleWeatherLayerPick(i){if(this.activeWeatherLayers=JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),this.rampColorLayers.includes(i.key)&&this.mapProjection==="globe"||!this.autoActive)return!1;(i.key==="wind"&&!this.showWindFeather||i.key==="current"&&!this.showCurrentIsoband)&&(i.particle=!0),this.activeWeatherLayers.some(e=>e.key===i.key)?this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.key!==i.key):this.activeWeatherLayers.length<6&&i.enabled&&(["png","jpg"].includes(i.type)?(this.activeWeatherLayers.forEach(e=>{(e.key==="wind"&&this.showWindFeather||i.key==="current"&&this.showCurrentIsoband)&&(e.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json"&&!(["wind","current"].includes(e.key)&&e.particle))):i.key==="wind"?(this.activeWeatherLayers.forEach(e=>{e.key==="current"&&this.showCurrentIsoband&&(e.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json"&&!(["wind","current"].includes(e.key)&&e.particle))):i.key==="current"&&(this.activeWeatherLayers.forEach(e=>{e.key==="wind"&&this.showWindFeather&&(e.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json"&&!(["wind","current"].includes(e.key)&&e.particle))),this.activeWeatherLayers.push(i)),this.$emit("weather",this.activeWeatherLayers,this.sourceCode)},handleWeatherLayerCollect(i){var e;if(!this.autoActive)return!1;!i.collected&&((e=this.layers.weather.filter(a=>a.collected))==null?void 0:e.length)>=6&&(this.layers.weather.filter(a=>a.collected)[0].collected=!1),i.collected=!i.collected,localStorage.setItem(this.collectedLayerCache,JSON.stringify(this.layers.weather)),this.$emit("handleToggleVersion")},handleToggleWindParticle(){!this.showWindFeather&&this.showWindParticle?this.handleWeatherLayerPick({weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!1}):(this.showCurrentParticle&&(this.$emit("toggleCurrentParticle",!1),this.showCurrentIsoband||(this.activeWeatherLayers=this.activeWeatherLayers.filter(i=>i.key!=="current"))),this.$emit("toggleWindParticle",!this.showWindParticle),this.$emit("toggleWindParticeVersion"))},handleToggleWindFeather(){this.showWindFeather&&!this.showWindParticle&&this.handleWeatherLayerPick({weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!1}),this.$emit("toggleWindFeather",!this.showWindFeather)},handleToggleCurrentParticle(){!this.showCurrentIsoband&&this.showCurrentParticle?this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",enabled:!0,type:"json",particle:!1}):(this.showWindParticle&&(this.$emit("toggleWindParticle",!1),this.showWindFeather||(this.activeWeatherLayers=this.activeWeatherLayers.filter(i=>i.key!=="wind"))),this.$emit("toggleCurrentParticle",!this.showCurrentParticle),this.$emit("toggleCurrentParticeVersion"))},handleToggleCurrentIsoband(){this.showCurrentIsoband&&!this.showCurrentParticle&&this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",enabled:!0,type:"json",particle:!1}),this.$emit("toggleCurrentIsoband",!this.showCurrentIsoband)},handleOtherLayerPick(i){this.activeOtherLayers.some(e=>e.key===i.key)?this.activeOtherLayers=this.activeOtherLayers.filter(e=>e.key!==i.key):i.enabled&&this.activeOtherLayers.push(i),localStorage.setItem(this.activeOtherLayersCache,JSON.stringify(this.activeOtherLayers)),this.$emit("other",this.activeOtherLayers)},handleMenuToggle(){this.$emit("layerToggle",!this.layerToggle)},toggleAutoActive(){this.autoActive=!this.autoActive,localStorage.setItem(this.autoActiveCache,this.autoActive),this.autoActive?(this.$emit("weather",this.activeWeatherLayersCollected,this.sourceCode),this.$emit("toggleWindFeather",localStorage.getItem(this.windFeatherCollectedCache)==="true"),this.$emit("toggleCurrentIsoband",localStorage.getItem(this.currentIsobandCollectedCache)==="true")):(this.$emit("weather",[],this.sourceCode),this.$emit("toggleWindFeather",!1),this.$emit("toggleCurrentIsoband",!1))},handleCoordToggle(){this.showCoord=!this.showCoord,this.$emit("coordinate",this.showCoord)},handlePointToggle(){this.isLogin?(this.showPoint=!this.showPoint,this.$emit("point",this.showPoint)):this.$emit("login")},handleMeasureToggle(){this.showMeasure=!this.showMeasure,this.$emit("measure",this.showMeasure)},handle3DToggle(){this.show3d=!this.show3d,this.$emit("3d",this.show3d)}}},et={class:"idm-gl3-layer"},tt={class:"bar-item layer-bars"},at={class:"bar-item tool-bars"},it={class:"flex-between"},rt={key:0,class:"iconfont active"},ot={key:1,class:"iconfont"},st=["onClick"],nt=["onClick"],lt={key:0,class:"flex-start"},ct={key:1,class:"flex-start"},ht={class:"header-box flex-between"},dt={class:"weather-layers card-bg"},mt={class:"layers-title flex-between"},pt={key:0,class:"iconfont active"},gt={key:1,class:"iconfont"},yt={class:"layers-body"},ut={class:"flex-start"},ft=["onClick"],At=["onClick"],wt={key:0,class:"flex-start"},bt={key:1,class:"flex-start"},Lt=["onClick"],Ct={key:0,class:"iconfont bookmark-icon active"},vt={key:1,class:"iconfont bookmark-icon inactive"},xt={class:"other-layers card-bg"},Et={class:"layers-body"},Bt=["onClick"],_t={class:"flex-start"},kt={class:"switch flex-center"},It={key:0,class:"iconfont active"},Dt={key:1,class:"iconfont"},Nt={class:"source-layers card-bg"},zt={class:"layers-body"},Pt={key:0},Mt={key:1,class:"radio-tip"},St={key:2,class:"radio-tip"};function Tt(i,e,a,o,r,s){const n=t.resolveComponent("ElTooltip"),l=t.resolveComponent("ElRadio"),h=t.resolveComponent("ElRadioGroup"),d=t.resolveComponent("ElScrollbar");return t.openBlock(),t.createElementBlock("div",et,[t.createElementVNode("div",{class:"menu-bar-box",style:t.normalizeStyle({top:a.top+10+"px",right:r.right+"px"})},[t.createElementVNode("div",tt,[t.createVNode(n,{placement:"left",effect:"light",content:"Menu","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(a.layerToggle?"menu-icon active":"menu-icon"),onClick:e[0]||(e[0]=(...c)=>s.handleMenuToggle&&s.handleMenuToggle(...c))},e[17]||(e[17]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),t.createElementVNode("div",{class:"menu-bar-box",style:t.normalizeStyle({top:a.top+160+"px",right:r.right+"px"})},[t.createElementVNode("div",at,[t.createVNode(n,{placement:"left",effect:"light",content:"Measure","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.showMeasure?"menu-icon active":"menu-icon"),onClick:e[1]||(e[1]=(...c)=>s.handleMeasureToggle&&s.handleMeasureToggle(...c))},e[18]||(e[18]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"Point Meteo","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.showPoint?"menu-icon active":"menu-icon"),onClick:e[2]||(e[2]=(...c)=>s.handlePointToggle&&s.handlePointToggle(...c))},e[19]||(e[19]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"Grid","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.showCoord?"menu-icon active":"menu-icon"),onClick:e[3]||(e[3]=(...c)=>s.handleCoordToggle&&s.handleCoordToggle(...c))},e[20]||(e[20]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"3D","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.show3d?"menu-icon active":"menu-icon"),onClick:e[4]||(e[4]=(...c)=>s.handle3DToggle&&s.handle3DToggle(...c))},e[21]||(e[21]=[t.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),s.hasCollectedLayers?(t.openBlock(),t.createElementBlock("div",{key:0,class:"active-layers",style:t.normalizeStyle({right:r.right+"px",bottom:"100px"})},[t.createElementVNode("div",it,[e[22]||(e[22]=t.createElementVNode("div",{style:{margin:"2px 5px"}},"Weather Layers",-1)),t.createElementVNode("div",{class:"switch flex-center",style:{"font-size":"28px","margin-right":"0"},onClick:e[5]||(e[5]=(...c)=>s.toggleAutoActive&&s.toggleAutoActive(...c))},[r.autoActive?(t.openBlock(),t.createElementBlock("i",rt,"")):(t.openBlock(),t.createElementBlock("i",ot,""))])]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.layers.weather.filter(c=>c.collected),c=>(t.openBlock(),t.createElementBlock("div",{key:c.key,class:t.normalizeClass(s.computeLayerClass(c,r.activeWeatherLayersCollected))},[t.createElementVNode("div",{class:"checkbox",onClick:m=>s.handleWeatherLayerPick(c)},null,8,st),t.createElementVNode("span",{class:"name",onClick:m=>s.handleWeatherLayerPick(c)},t.toDisplayString(c.name),9,nt),c.key==="wind"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",lt,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:e[6]||(e[6]=m=>s.handleToggleWindParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:e[7]||(e[7]=m=>s.handleToggleWindFeather())},"",2)])):t.createCommentVNode("",!0),c.key==="current"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",ct,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:e[8]||(e[8]=m=>s.handleToggleCurrentParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:e[9]||(e[9]=m=>s.handleToggleCurrentIsoband())},"",2)])):t.createCommentVNode("",!0)],2))),128))],4)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"available-layers flex-center",style:t.normalizeStyle({top:a.top+"px",right:a.layerToggle?"0px":"-240px"})},[t.createElementVNode("div",{class:t.normalizeClass(["list-box",a.layerToggle?"right-bar":""])},[t.createElementVNode("div",ht,[e[23]||(e[23]=t.createElementVNode("div",null,"Layers",-1)),t.createElementVNode("div",{class:"iconfont close-btn",onClick:e[10]||(e[10]=(...c)=>s.handleMenuToggle&&s.handleMenuToggle(...c))},"")]),t.createVNode(d,{style:{flex:"1"}},{default:t.withCtx(()=>[t.createElementVNode("div",dt,[t.createElementVNode("div",mt,[e[24]||(e[24]=t.createElementVNode("div",null,"Weather Layers",-1)),t.createElementVNode("div",{class:"switch flex-center",style:{"margin-right":"0"},onClick:e[11]||(e[11]=(...c)=>s.toggleAutoActive&&s.toggleAutoActive(...c))},[r.autoActive?(t.openBlock(),t.createElementBlock("i",pt,"")):(t.openBlock(),t.createElementBlock("i",gt,""))])]),t.createElementVNode("div",yt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.layers.weather,c=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:c.key},[c.hide?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(s.computeLayerClass(c,r.activeWeatherLayersCollected))},[t.createElementVNode("div",ut,[t.createElementVNode("div",{class:"checkbox",onClick:m=>s.handleWeatherLayerPick(c)},null,8,ft),t.createElementVNode("span",{class:"name",onClick:m=>s.handleWeatherLayerPick(c)},t.toDisplayString(c.name),9,At),c.key==="wind"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",wt,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:e[12]||(e[12]=m=>s.handleToggleWindParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:e[13]||(e[13]=m=>s.handleToggleWindFeather())},"",2)])):t.createCommentVNode("",!0),c.key==="current"&&r.activeWeatherLayersCollected.some(m=>m.key===c.key)?(t.openBlock(),t.createElementBlock("div",bt,[t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:e[14]||(e[14]=m=>s.handleToggleCurrentParticle())},"",2),t.createElementVNode("i",{class:t.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:e[15]||(e[15]=m=>s.handleToggleCurrentIsoband())},"",2)])):t.createCommentVNode("",!0)]),t.createElementVNode("div",{onClick:m=>s.handleWeatherLayerCollect(c)},[c.collected?(t.openBlock(),t.createElementBlock("i",Ct,"")):(t.openBlock(),t.createElementBlock("i",vt,""))],8,Lt)],2))],64))),128)),e[25]||(e[25]=t.createElementVNode("div",{class:"tip flex-start"},[t.createElementVNode("i",{class:"iconfont bookmark-icon",style:{"align-self":"flex-start",padding:"5px 5px 0 0"}},""),t.createElementVNode("div",null,"You can add the layers to your favorites. (Max 6)")],-1))])]),t.createElementVNode("div",xt,[e[26]||(e[26]=t.createElementVNode("div",{class:"layers-title"},"Other Layers",-1)),t.createElementVNode("div",Et,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.layers.other,c=>{var m;return t.openBlock(),t.createElementBlock("div",{key:c.key,class:t.normalizeClass(["layer flex-between",s.computeLayerClass(c,r.activeOtherLayers)]),onClick:A=>s.handleOtherLayerPick(c)},[t.createElementVNode("div",_t,[t.createElementVNode("div",kt,[(m=s.computeLayerClass(c,r.activeOtherLayers))!=null&&m.includes("active")?(t.openBlock(),t.createElementBlock("i",It,"")):(t.openBlock(),t.createElementBlock("i",Dt,""))]),t.createElementVNode("span",null,t.toDisplayString(c.name),1)])],10,Bt)}),128))])]),t.createElementVNode("div",Nt,[e[27]||(e[27]=t.createElementVNode("span",{class:"layers-title"},"Forecast Model",-1)),t.createElementVNode("div",zt,[t.createVNode(h,{modelValue:r.source,"onUpdate:modelValue":e[16]||(e[16]=c=>r.source=c),class:"layer-radio flex-col-start-start",style:{width:"180px","align-items":"flex-start"}},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.sourceList,(c,m)=>(t.openBlock(),t.createBlock(l,{key:`source${c.name}`,value:c.name},{default:t.withCtx(()=>{var A,C,B,y,E,v;return[t.createTextVNode(t.toDisplayString(c.name)+" ",1),m!==0?(t.openBlock(),t.createElementBlock("span",Pt,t.toDisplayString(c.resolution)+"km "+t.toDisplayString(c.length)+"days",1)):t.createCommentVNode("",!0),m===0?(t.openBlock(),t.createElementBlock("div",Mt,"Provides the best forecast")):(B=(C=(A=c==null?void 0:c.update)==null?void 0:A.default)==null?void 0:C.meta)!=null&&B.initialisationTime?(t.openBlock(),t.createElementBlock("div",St,"Update: "+t.toDisplayString(s.computeDateZ((v=(E=(y=c==null?void 0:c.update)==null?void 0:y.default)==null?void 0:E.meta)==null?void 0:v.initialisationTime)),1)):t.createCommentVNode("",!0)]}),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])])]),_:1})],2)],4)])}const Qt=O($e,[["render",Tt]]),Do="",Ht={name:"IdmWindBarb",props:{map:{type:Object},wind:{type:Object},current:{type:Object},beforeLayer:{type:String},mapProjection:{type:String},showWindFeather:{type:Boolean,default:!1},showWindParticle:{type:Boolean,default:!1},toggleParticeVersion:{type:Number},toggleVersion:{type:Number}},emits:["particle","showWindFeather"],data(){return{source:"wind-barb-source",barbs:[0,2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105],empty:z.featureCollection([]),right:10,bottom:125,windBarbLoaded:!1}},watch:{"wind.version":{handler(){var i;(i=this.wind)!=null&&i.active&&this.showWindFeather?this.handleRender():this.handleClear()},deep:!0},toggleParticeVersion:{handler(){this.handleParticle()}},showWindFeather:{handler(){this.handleToggle()}}},methods:{handleParticle(){this.$emit("particle",{particle:this.showWindParticle,key:"wind",weight:1})},handleRender(){var i,e,a,o;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.wind){const r=new Date().valueOf();let s=0,n=0,l=this.empty;if((i=this.wind)!=null&&i.active&&(l=(e=this.wind)==null?void 0:e.data),(a=this.map)!=null&&a.getSource(this.source))(o=this.map)==null||o.getSource(this.source).setData(l),n=new Date().valueOf()-(r+s),console.log("[wind] update elapsed: ",n,", total: ",s+=n);else{this.map.addSource(this.source,{type:"geojson",data:l});for(let h=0;h<(this.barbs??[]).length-1;h++){const d=(this.barbs??[])[h]||0,c=(this.barbs??[])[h+1]||0,m=d<10?`00${d}kts`:d<100?`0${d}kts`:`${d}kts`;this.map.addLayer({id:m,type:"symbol",filter:["all",[">=","spd",d],["<","spd",c]],source:this.source,layout:{"symbol-placement":"point","icon-image":m,"icon-size":.14,"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"dir",stops:[[0,0],[360,360]]}},paint:{"icon-opacity":1,"text-color":"#222"}},this.beforeLayer)}this.windBarbLoaded=!0,n=new Date().valueOf()-(r+s),console.log("[wind] add elapsed: ",n,", total: ",s+=n)}}},handleToggle(){if(!this.windBarbLoaded)this.handleRender();else for(const i of this.barbs??[]){const e=i<10?`00${i}kts`:i<100?`0${i}kts`:`${i}kts`;this.map.getLayer(e)&&this.map.setLayoutProperty(e,"visibility",this.showWindFeather?"visible":"none")}},handleClear(){for(const i of this.barbs??[]){const e=i<10?`00${i}kts`:i<100?`0${i}kts`:`${i}kts`;this.map.getLayer(e)&&this.map.removeLayer(e)}this.map.getSource(this.source)&&this.map.removeSource(this.source),this.windBarbLoaded=!1}}};function Vt(i,e,a,o,r,s){return null}const Ft=O(Ht,[["render",Vt]]);class Te{constructor(e){J(this,"map");J(this,"mercator");J(this,"rampColorLayer");J(this,"rampColorSource");J(this,"particleLayer");J(this,"particleSource");J(this,"rampColorCanvas");J(this,"particleCanvas");J(this,"ratio");this.map=e,this.mercator=new Je,this.rampColorLayer="ramp-color-layer",this.rampColorSource="ramp-color-source",this.particleLayer="particle-layer",this.particleSource="particle-source",this.rampColorCanvas=document.createElement("canvas"),this.particleCanvas=document.createElement("canvas"),this.ratio=window.devicePixelRatio}convertNLng(e,a=0){return e>180?this.convertNLng(e-360,a+1):e<-180?this.convertNLng(e+360,a+1):[e,a]}getBoundLngLat(){const e=this.map.getBounds();return[[e._sw.lng,e._ne.lat],[e._ne.lng,e._ne.lat],[e._ne.lng,e._sw.lat],[e._sw.lng,e._sw.lat]]}getBoundPixel(){const e=this.map.getBounds(),a=this.map.getZoom()+1,o=[e._ne.lng,e._ne.lat],r=[e._sw.lng,e._sw.lat],[s,n]=this.convertNLng(o[0]),[l,h]=this.convertNLng(r[0]),[d,c]=this.mercator.px([s,o[1]],a),[m,A]=this.mercator.px([l,r[1]],a),C=Math.round(this.mercator.size*Math.pow(2,a)*(n+h));return[m,A,d+C,c]}getBoundRange(){const e=this.map.getZoom()+1,a=this.mercator.size*Math.pow(2,e),o=this.getBoundPixel();return[o[0]/a,o[2]/a,o[3]/a,o[1]/a]}getWorldCopy(e,a){const o=2**a,[r,s,n,l]=e.map(c=>~~(c/(o*256))),h=[];for(let c=l;c<=s;c++)for(let m=r;m<=n;m++)h.push([m,c]);return h.map(c=>{const m=2**a*256;return[c[0]*m,c[1]*m,m]})}resize(){let e=this.map.getSource(this.rampColorSource);e.setCoordinates(this.getBoundLngLat()),e=this.map.getSource(this.particleSource),e.setCoordinates(this.getBoundLngLat()),this.rampColorCanvas.width=this.map._canvas.clientWidth,this.rampColorCanvas.height=this.map._canvas.clientHeight,this.particleCanvas.width=this.map._canvas.clientWidth,this.particleCanvas.height=this.map._canvas.clientHeight}toggle(e){const a=this.map.getLayoutProperty(this.rampColorLayer,"visibility"),o=e?"visible":"none";a!==o&&this.map.setLayoutProperty(this.rampColorLayer,"visibility",o)}toggleParticle(e){const a=this.map.getLayoutProperty(this.particleLayer,"visibility"),o=e?"visible":"none";a!==o&&this.map.setLayoutProperty(this.particleLayer,"visibility",o)}}class ke{createShader(e,a,o){const r=e.createShader(a);if(r&&(e.shaderSource(r,o),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)))throw new Error(e.getShaderInfoLog(r)||"error happened while create shader...");return r}createTexture(e,a,o,r,s,n,l){const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,r),s instanceof Uint8Array?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,l,0,e.RGBA,e.UNSIGNED_BYTE,s):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s),e.bindTexture(e.TEXTURE_2D,null),h}createDataBuffer(e,a,o){if(e){const r=e.createBuffer();return a==="array"?(e.bindBuffer(e.ARRAY_BUFFER,r),o&&e.bufferData(e.ARRAY_BUFFER,o,e.STATIC_DRAW)):a==="element"&&(e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r),o&&e.bufferData(e.ELEMENT_ARRAY_BUFFER,o,e.STATIC_DRAW)),r}return null}createProgram(e,a,o){const r=e.createProgram(),s=this.createShader(e,e.VERTEX_SHADER,a),n=this.createShader(e,e.FRAGMENT_SHADER,o);if(r&&s&&n&&(e.attachShader(r,s),e.attachShader(r,n),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS)))throw new Error(e.getProgramInfoLog(r)||"error happened while creating ramp color program");return r}createProgramWrapper(e,a,o){const r=this.createProgram(e,a,o);if(r){const s={program:r},n=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let h=0;h<n;h++){const d=e.getActiveAttrib(r,h);s[d.name]=e.getAttribLocation(r,d.name)}const l=e.getProgramParameter(r,e.ACTIVE_UNIFORMS);for(let h=0;h<l;h++){const d=e.getActiveUniform(r,h);s[d.name]=e.getUniformLocation(r,d.name)}return s}}setup(e,a,o=!1,r,s){const n=document.createElement("canvas");n.width=256,n.height=1;const l=n.getContext("2d");if(l&&e){const h=l==null?void 0:l.createLinearGradient(0,0,256,0);return a.forEach(([d,c])=>{h.addColorStop(d,c)}),l.fillStyle=h,l.fillRect(0,0,256,1),{canvas:n,texture:this.createTexture(e,e.LINEAR,e.LINEAR,e.CLAMP_TO_EDGE,o?new Uint8Array(l.getImageData(0,0,256,1).data):n,r,s)}}}setupParticle(e,a=1e3){const o=Math.ceil(Math.sqrt(a)),r=o*o,s=new Uint8Array(r*4);for(let c=0;c<s.length;c++)s[c]=Math.floor(Math.random()*256);const n=this.createTexture(e,e.NEAREST,e.NEAREST,e.CLAMP_TO_EDGE,s,o,o),l=this.createTexture(e,e.NEAREST,e.NEAREST,e.CLAMP_TO_EDGE,s,o,o),h=new Float32Array(r);for(let c=0;c<r;c++)h[c]=c;const d=this.createDataBuffer(e,"array",h);return{resolution:o,total:r,texture0:n,texture1:l,indexBuffer:d}}bind(e,a,o){const r=this.createProgram(e,a,o);if(r){const s=this.createDataBuffer(e,"array",void 0),n=e.getAttribLocation(r,"a_position");e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0);const l=new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]);this.createDataBuffer(e,"array",l);const h=e.getAttribLocation(r,"a_texCoord");return e.enableVertexAttribArray(h),e.vertexAttribPointer(h,2,e.FLOAT,!1,0,0),{program:r,aPositionBuffer:s}}return{}}bindParticle(e,a,o,r,s,n){const l=this.createProgramWrapper(e,a,o),h=this.createProgramWrapper(e,r,s),d=this.createProgramWrapper(e,r,n),c=this.createDataBuffer(e,"array",new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1])),m=e.createFramebuffer();return{particle:l,screen:h,update:d,quadBuffer:c,frameBuffer:m}}draw(e,a,o,r,s,n,l){var h,d;if(a&&o){e.resize(),a==null||a.viewport(0,0,(h=a==null?void 0:a.canvas)==null?void 0:h.width,(d=a==null?void 0:a.canvas)==null?void 0:d.height),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);try{a.useProgram(o);const c={resolution:a.getUniformLocation(o,"u_resolution"),image:a.getUniformLocation(o,"u_image"),color:a.getUniformLocation(o,"u_color"),scale:a.getUniformLocation(o,"u_scale"),uvRange:a.getUniformLocation(o,"u_range_u_v"),sRange:a.getUniformLocation(o,"u_range_s")};c.resolution&&a.uniform2f(c.resolution,a.canvas.width*e.ratio,a.canvas.height*e.ratio),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,r),c.image&&a.uniform1i(c.image,0),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,s),c.color&&a.uniform1i(c.color,1),l!=null&&l.uvRange&&(l!=null&&l.sRange)&&(c.uvRange&&a.uniform2f(c.uvRange,l.uvRange[0],l.uvRange[1]),c.sRange&&a.uniform2f(c.sRange,l.sRange[0],l.sRange[1])),c.scale&&a.uniform1f(c.scale,(l==null?void 0:l.scale)||1);const m=e.getBoundPixel(),A=e.map.getZoom()+1,C=e.getWorldCopy(m,A);for(const B of C){const y=(B[0]-m[0])*e.ratio,E=(B[1]-m[3])*e.ratio,v=B[2]*e.ratio,[u,f,p,b]=[y,v+y,E,v+E],g=new Float32Array([u,p,f,p,u,b,u,b,f,p,f,b]);a.bindBuffer(a.ARRAY_BUFFER,n),a.bufferData(a.ARRAY_BUFFER,g,a.STATIC_DRAW),a.drawArrays(a.TRIANGLES,0,6)}}catch(c){console.log(`render failed...${c}`)}}}drawParticle(e,a,o,r,s){var n,l;a&&(a==null||a.viewport(0,0,(n=a==null?void 0:a.canvas)==null?void 0:n.width,(l=a==null?void 0:a.canvas)==null?void 0:l.height),a.disable(a.DEPTH_TEST),a.disable(a.STENCIL_TEST),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,r.texture0),this.renderScreen(e,a,r,s),this.updateParticles(e,a,r,s))}renderScreen(e,a,o,r){a.bindFramebuffer(a.FRAMEBUFFER,o.frameBuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o.screenTexture,0),a.viewport(0,0,a.canvas.width,a.canvas.height),this.renderScreenTexture(a,o.backgroundTexture,o.screen,o.quadBuffer,.95),this.renderParticles(e,a,o,r),a.bindFramebuffer(a.FRAMEBUFFER,null),this.renderScreenTexture(a,o.screenTexture,o.screen,o.quadBuffer,1);const s=o.backgroundTexture;o.backgroundTexture=o.screenTexture,o.screenTexture=s}renderScreenTexture(e,a,o,r,s){e&&(e.useProgram(o.program),e.bindBuffer(e.ARRAY_BUFFER,r),e.enableVertexAttribArray(o.a_pos),e.vertexAttribPointer(o.a_pos,2,e.FLOAT,!1,0,0),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,a),e.uniform1i(o.u_screen,2),e.uniform1f(o.u_opacity,s),e.drawArrays(e.TRIANGLES,0,6))}renderParticles(e,a,o,r){if(a){a.useProgram(o.particle.program),a.bindBuffer(a.ARRAY_BUFFER,o.indexBuffer),a.enableVertexAttribArray(o.particle.a_index),a.vertexAttribPointer(o.particle.a_index,1,a.FLOAT,!1,0,0),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,o.color.texture),a.uniform1i(o.particle.u_factor,0),a.uniform1i(o.particle.u_particles,1),a.uniform1i(o.particle.u_color_ramp,2),a.uniform1f(o.particle.u_particles_resolution,o.resolution*e.ratio),a.uniform1f(o.particle.u_point,e.ratio);const s=e.getBoundRange();a.uniform4f(o.particle.u_viewport,s[0],s[1],s[2],s[3]),a.uniform2f(o.particle.u_factor_min,r.uvRange[0],r.uvRange[0]),a.uniform2f(o.particle.u_factor_max,r.uvRange[1],r.uvRange[1]),a.drawArrays(a.POINTS,0,o.total)}}updateParticles(e,a,o,r){var n,l;if(a){a.bindFramebuffer(a.FRAMEBUFFER,o.frameBuffer),a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o.texture1,0),a.viewport(0,0,o.resolution,o.resolution),a.useProgram(o.update.program),a.bindBuffer(a.ARRAY_BUFFER,o.quadBuffer),a.enableVertexAttribArray(o.update.a_pos),a.vertexAttribPointer(o.update.a_pos,2,a.FLOAT,!1,0,0),a.uniform1i(o.update.u_factor,0),a.uniform1i(o.update.u_particles,1);const h=e.getBoundRange();a.uniform4f(o.update.u_viewport,h[0],h[1],h[2],h[3]),a.uniform1f(o.update.u_rand_seed,Math.random()),a.uniform2f(o.update.u_factor_res,(n=o==null?void 0:o.image)==null?void 0:n.width,(l=o==null?void 0:o.image)==null?void 0:l.height),a.uniform2f(o.update.u_factor_min,r.uvRange[0],r.uvRange[0]),a.uniform2f(o.update.u_factor_max,r.uvRange[1],r.uvRange[1]),a.uniform1f(o.update.u_speed_factor,r.speedFactor*e.ratio),a.uniform1f(o.update.u_drop_rate,r.dropRate),a.uniform1f(o.update.u_drop_rate_bump,r.dropRateBump),a.drawArrays(a.TRIANGLES,0,6)}const s=o.texture0;o.texture0=o.texture1,o.texture1=s}resize(e,a){e.resize();const o=new Uint8Array(a.canvas.width*a.canvas.height*4).fill(0,0,a.canvas.width*a.canvas.height*4),r=this.createTexture(a,a.NEAREST,a.NEAREST,a.CLAMP_TO_EDGE,o,a.canvas.width,a.canvas.height),s=this.createTexture(a,a.NEAREST,a.NEAREST,a.CLAMP_TO_EDGE,o,a.canvas.width,a.canvas.height);return{screenTexture:r,backgroundTexture:s}}async loadImg(e){return new Promise(a=>{const o=new Blob([e],{type:e.type}),r=URL.createObjectURL(o),s=new Image;s.crossOrigin="anonymous",s.src=r,s.onload=()=>a(s)})}}class Z{}J(Z,"vertexSchema",`
2
2
  //canvas 坐标系上的坐标 (x, y)
3
3
  attribute vec2 a_position; //像素坐标
4
4
  attribute vec2 a_texCoord; //纹理坐标
@@ -188,7 +188,7 @@
188
188
  fract(pos * 255.0),
189
189
  floor(pos * 255.0) / 255.0);
190
190
  }`);class Ve{constructor(e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg"){J(this,"token");J(this,"mapboxCustomer");J(this,"i4");J(this,"hi");J(this,"td");J(this,"windy");this.token=e,this.mapboxCustomer={source:this.initialOnlineStyle().sources.composite,layers:{water:{id:"water",type:"fill",source:"composite","source-layer":"water",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},paint:{"fill-color":"hsl(205, 75%, 70%)"}},waterDeplth:{id:"water-depth",type:"fill",source:"composite","source-layer":"depth",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},maxzoom:8,paint:{"fill-antialias":!1,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0.35)",200,"hsla(205, 75%, 63%, 0.35)",7e3,"hsla(205, 75%, 56%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0)",200,"hsla(205, 75%, 63%, 0)",7e3,"hsla(205, 75%, 53%, 0)"]]}},countryBoundary:{id:"country-boundaries",type:"fill",source:"composite","source-layer":"country_boundaries",layout:{visibility:"visible"},paint:{"fill-color":"#d9d8d8"}},countryAdmin0BoundaryBg:{id:"admin-0-boundary-bg",type:"line",source:"composite","source-layer":"admin",metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"rgb(193, 190, 190)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]}},countryAdmin0Boundary:{id:"admin-0-boundary",type:"line",source:"composite","source-layer":"admin",metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],paint:{"line-color":"rgb(114, 110, 111)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]}},countryAdmin0BoundaryDisputed:{id:"admin-0-boundary-disputed",type:"line",source:"composite","source-layer":"admin",metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],paint:{"line-color":"rgb(95, 93, 94)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]}},countryLabel:{id:"country-label",type:"symbol",source:"composite","source-layer":"place_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},layout:{visibility:"visible","text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["HelveticaNeueThin"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],11,4,9,5,8],9,["step",["get","symbolrank"],22,4,19,5,17]]},paint:{"text-color":"rgba(255,255,255,0)"}},world12nm:{id:"world-12nm-v4-20231025",type:"line",source:"composite","source-layer":"eez_12nm_new1-6jzkww",minzoom:0,layout:{"line-join":"round",visibility:"none"},paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]}},worldMarineLine:{id:"ne-10m-outline",type:"line",source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",minzoom:1,layout:{"line-join":"round",visibility:"none"},paint:{"line-color":"hsl(0, 0.60%, 34.70%)","line-opacity":1,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]}},worldMarineLabel:{id:"ne-10m-label",type:"symbol",source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",minzoom:1,layout:{"text-field":["to-string",["get","name"]],"text-size":13,visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-halo-blur":1}},chinaRouteLine:{id:"china-route-line",type:"line",source:"composite","source-layer":"china_route-bdtx5d",layout:{visibility:"none"},paint:{"line-color":["interpolate",["linear"],["zoom"],0,"rgb(2,196,140)",22,"rgb(2,196,140)"],"line-width":2}},chinaRouteFill:{id:"china-route-fill",type:"fill",source:"composite","source-layer":"china_route-bdtx5d",filter:["match",["get","featureType"],["route"],!0,!1],layout:{visibility:"none"},paint:{"fill-color":"rgb(2,196,140)","fill-opacity":.2}},chinaRouteLabel:{id:"china-route-label",type:"symbol",source:"composite","source-layer":"china_route-bdtx5d",layout:{"text-field":["to-string",["get","RouteName"]],"text-size":12,visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 96%)","text-halo-width":1,"text-color":"hsl(0, 1%, 2%)"}}}},this.td={source:{type:"raster",tiles:["https://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t1.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t2.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t3.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t4.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t5.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t6.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8","https://t7.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=3b3833b65e3705d5dc51a5e473b41da8"],tileSize:256},layer:{id:"td",type:"raster",source:"td",layout:{visibility:"visible"}}},this.i4={source:{type:"raster",tiles:["https://osshz.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz1.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz2.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz3.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz4.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz5.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz6.idmwx.com/nautical/{z}/{x}/{y}.png","https://osshz7.idmwx.com/nautical/{z}/{x}/{y}.png"],tileSize:256},layer:{id:"i4",type:"raster",source:"i4",minzoom:3,maxzoom:12,layout:{visibility:"none"}}},this.hi={source:{type:"raster",tiles:[`https://assist4.idmwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${this.token}`,`https://assist5.idmwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${this.token}`,`https://assist6.idmwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${this.token}`,`https://assist7.idmwx.com/api/arc/hifleets/{z}/{y}/{x}/nauticalmap?tk=${this.token}`],tileSize:256},layer:{id:"hi",type:"raster",source:"hi",minZoom:3,maxZoom:12,layout:{visibility:"none"}}},this.windy={darkmap:{source:{type:"raster",tiles:["https://tiles.windy.com/tiles/v10.0/darkmap/{z}/{x}/{y}.png"],tileSize:256},layer:{id:"darkmap",type:"raster",source:"darkmap",layout:{visibility:"none"}}},grayland:{source:{type:"raster",tiles:["https://tiles.windy.com/tiles/v9.0/grayland/{z}/{x}/{y}.png"],tileSize:256},layer:{id:"grayland",type:"raster",source:"grayland",layout:{visibility:"none"},paint:{"raster-opacity":1}}}}}initialOnlineStyle(){return{version:8,name:"map-weather-v2.0.0",metadata:{"mapbox:print":{width:8.5,height:11,units:"in",format:"png",resolution:300},"mapbox:type":"default","mapbox:trackposition":!0,"mapbox:autocomposite":!0,"mapbox:sdk-support":{android:"11.0.0",ios:"11.0.0",js:"3.0.0"},"mapbox:origin":"outdoors-v12","mapbox:groups":{"Terrain, terrain-labels":{name:"Terrain, terrain-labels",collapsed:!0},"Administrative boundaries, admin":{name:"Administrative boundaries, admin",collapsed:!1},"Land & water, built":{name:"Land & water, built",collapsed:!1},"Terrain, surface":{name:"Terrain, surface",collapsed:!0},"Land & water, land":{name:"Land & water, land",collapsed:!1},"Natural features, natural-labels":{name:"Natural features, natural-labels",collapsed:!0},"Walking, cycling, etc., barriers-bridges":{name:"Walking, cycling, etc., barriers-bridges",collapsed:!0},"Place labels, place-labels":{name:"Place labels, place-labels",collapsed:!1},"Transit, ferries":{name:"Transit, ferries",collapsed:!0},"Transit, elevated":{name:"Transit, elevated",collapsed:!0},"Walking, cycling, etc., tunnels":{name:"Walking, cycling, etc., tunnels",collapsed:!0},"Terrain, land":{name:"Terrain, land",collapsed:!0},"Road network, tunnels-case":{name:"Road network, tunnels-case",collapsed:!0},"Walking, cycling, etc., walking-cycling-labels":{name:"Walking, cycling, etc., walking-cycling-labels",collapsed:!0},"Walking, cycling, etc., surface":{name:"Walking, cycling, etc., surface",collapsed:!0},"Road network, surface-icons":{name:"Road network, surface-icons",collapsed:!0},"Land & water, water":{name:"Land & water, water",collapsed:!1}}},lights:[],fog:{color:"#ffffff",range:[.5,10],"high-color":"#245cdf","space-color":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"horizon-blend":["interpolate",["linear"],["zoom"],4,.2,7,.1],"star-intensity":["interpolate",["linear"],["zoom"],5,.35,6,0],"vertical-range":[0,0]},center:[80.02170408691855,17.83215724225399],zoom:2.4589703839156347,bearing:0,pitch:1,sprite:"mapbox://sprites/neatchenheng/clxwst0tq00wd01rn0usb2eer/7zoestv3ytlgmyxxrlljl4rzs",glyphs:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf",projection:{name:"equirectangular"},sources:{composite:{type:"vector",url:"mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0,neatchenheng.afzf6vzv",data:{attribution:'<a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a> <a href="https://www.openstreetmap.org/about/" target="_blank" title="OpenStreetMap" aria-label="OpenStreetMap">&copy; OpenStreetMap</a> <a href="https://www.mapbox.com/about/maps/" target="_blank" title="Mapbox" aria-label="Mapbox">&copy; Mapbox</a> <a href="https://www.openstreetmap.org/about/" target="_blank" title="OpenStreetMap" aria-label="OpenStreetMap">&copy; OpenStreetMap</a> <a class="mapbox-improve-map" href="https://www.mapbox.com/contribute/" target="_blank" title="Improve this map" aria-label="Improve this map">Improve this map</a>',bounds:[-180,-85.051129,180,85],center:[0,-.025564500000001544,0],description:"Global polygon tileset of country boundaries and disputed areas",format:"pbf",language_options:{ar:"Arabic",ca:"Catalan",cs:"Czech",da:"Danish",de:"German",el:"Greek",en:"English",es:"Spanish",fa:"Farsi",fi:"Finnish",fr:"French",he:"Hebrew",hu:"Hungarian",id:"Indonesian",it:"Italian",ja:"Japanese",ka:"Georgian",ko:"Korean",local:"Renderable local language",lv:"Latvian",ms:"Malay",nb:"Norwegian Bokmål",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sk:"Slovak",sl:"Slovenian",sr:"Serbian",sv:"Swedish",th:"Thai",tl:"Tagalog",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese","zh-Hans":"Simplified Chinese","zh-Hant":"Traditional Chinese"},mapbox_logo:!0,maskLevel:9,maxzoom:16,minzoom:0,mts:!0,name:"nic_miz2025169nc_pl_a-cqk3ud + china_route-bdtx5d + ne_10m_geography_marine_polys-3968bv + eez_12nm_new1-6jzkww + eez-d4udtm + Mapbox Countries v1 + Mapbox Bathymetry v2 + Mapbox Terrain v2 + Mapbox Streets v8",scheme:"xyz",tilejson:"3.0.0",tiles:["https://a.tiles.mapbox.com/v4/mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0/{z}/{x}/{y}.vector.pbf?access_token=pk.eyJ1IjoibmVhdGNoZW5oZW5nIiwiYSI6ImNsdXM3cnBmODBsemgycW1vaXc1bjV6bXMifQ.w6fqHGRbhNhLvm0LnX4ZVw","https://b.tiles.mapbox.com/v4/mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2,mapbox.country-boundaries-v1,neatchenheng.d44z21eg,neatchenheng.82kqbc1q,neatchenheng.a4ifbysm,neatchenheng.27issko0/{z}/{x}/{y}.vector.pbf?access_token=pk.eyJ1IjoibmVhdGNoZW5oZW5nIiwiYSI6ImNsdXM3cnBmODBsemgycW1vaXc1bjV6bXMifQ.w6fqHGRbhNhLvm0LnX4ZVw"],vector_layers:[{id:"landuse",minzoom:5,source:"mapbox.mapbox-streets-v8"},{id:"waterway",minzoom:7,source:"mapbox.mapbox-streets-v8"},{id:"water",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"aeroway",minzoom:9,source:"mapbox.mapbox-streets-v8"},{id:"structure",minzoom:13,source:"mapbox.mapbox-streets-v8"},{id:"building",minzoom:12,source:"mapbox.mapbox-streets-v8"},{id:"landuse_overlay",minzoom:5,source:"mapbox.mapbox-streets-v8"},{id:"road",minzoom:3,source:"mapbox.mapbox-streets-v8"},{id:"admin",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"place_label",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"airport_label",minzoom:8,source:"mapbox.mapbox-streets-v8"},{id:"transit_stop_label",minzoom:5,source:"mapbox.mapbox-streets-v8"},{id:"natural_label",minzoom:0,source:"mapbox.mapbox-streets-v8"},{id:"poi_label",minzoom:6,source:"mapbox.mapbox-streets-v8"},{id:"motorway_junction",minzoom:9,source:"mapbox.mapbox-streets-v8"},{id:"housenum_label",minzoom:16,source:"mapbox.mapbox-streets-v8"},{id:"landcover",maxzoom:22,minzoom:0,source:"mapbox.mapbox-terrain-v2"},{id:"hillshade",maxzoom:22,minzoom:0,source:"mapbox.mapbox-terrain-v2"},{id:"contour",maxzoom:22,minzoom:0,source:"mapbox.mapbox-terrain-v2"},{id:"depth",maxzoom:7,minzoom:0,source:"mapbox.mapbox-bathymetry-v2"},{id:"country_boundaries",maxzoom:22,minzoom:0,source:"mapbox.country-boundaries-v1"},{id:"eez_12nm_new1-6jzkww",maxzoom:22,minzoom:0,source:"neatchenheng.82kqbc1q"},{id:"ne_10m_geography_marine_polys-3968bv",maxzoom:22,minzoom:0,source:"neatchenheng.a4ifbysm",source_name:"ne_10m_geography_marine_polys-3968bv"},{id:"china_route-bdtx5d",maxzoom:22,minzoom:0,source:"neatchenheng.27issko0",source_name:"china_route-bdtx5d"},{description:"",fields:{ICECODE:"String",ORIG_FID:"Number",Shape_Area:"Number",Shape_Leng:"Number"},id:"nic_miz2025169nc_pl_a-cqk3ud",maxzoom:22,minzoom:0,source:"neatchenheng.afzf6vzv",source_name:"nic_miz2025169nc_pl_a-cqk3ud"}],worldview_default:"US",worldview_options:{ALL:"Every available worldview",AR:"Argentina",CN:"China",IN:"India",JP:"Japan",MA:"Morocco",RS:"Serbia",RU:"Russia",TR:"Turkey",US:"United States",VN:"Vietnam"}}}},layers:[{id:"land",type:"background",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},paint:{"background-color":"rgb(171, 174, 172)"}},{id:"landcover",type:"fill",source:"composite","source-layer":"landcover",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},maxzoom:12,paint:{"fill-color":["match",["get","class"],"wood","hsl(0, 0%, 69%)","scrub","hsl(0, 0%, 69%)","crop","hsl(0, 0%, 69%)","grass","hsl(0, 0%, 69%)","snow","hsl(0, 0%, 69%)","hsl(0, 0%, 69%)"],"fill-opacity":["interpolate",["exponential",1.5],["zoom"],8,.8,12,0],"fill-antialias":!1}},{id:"national-park",type:"fill",source:"composite","source-layer":"landuse_overlay",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},minzoom:5,filter:["==",["get","class"],"national_park"],paint:{"fill-color":"hsl(98, 38%, 68%)","fill-opacity":["interpolate",["linear"],["zoom"],5,0,6,.6,12,.2]}},{id:"national-park_tint-band",type:"line",source:"composite","source-layer":"landuse_overlay",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},minzoom:9,filter:["==",["get","class"],"national_park"],paint:{"line-color":"hsl(98, 38%, 68%)","line-width":["interpolate",["exponential",1.5],["zoom"],9,1,14,8],"line-blur":["interpolate",["exponential",1.5],["zoom"],9,1,14,8]}},{id:"landuse",type:"fill",source:"composite","source-layer":"landuse",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},minzoom:5,filter:["all",[">=",["to-number",["get","sizerank"]],0],["match",["get","class"],["agriculture","wood","grass","scrub","glacier","pitch","sand"],["step",["zoom"],!1,11,!0],"residential",["step",["zoom"],!0,10,!1],["park","airport"],["step",["zoom"],!1,8,["case",["==",["get","sizerank"],1],!0,!1],10,!0],["facility","industrial"],["step",["zoom"],!1,12,!0],"rock",["step",["zoom"],!1,11,!0],"cemetery",["step",["zoom"],!1,11,!0],"school",["step",["zoom"],!1,11,!0],"hospital",["step",["zoom"],!1,11,!0],"commercial_area",["step",["zoom"],!1,11,!0],!1],["<=",["-",["to-number",["get","sizerank"]],["interpolate",["exponential",1.5],["zoom"],12,0,18,14]],14]],paint:{"fill-color":["interpolate",["linear"],["zoom"],15,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsl(60, 0%, 85%)","school","hsl(40, 45%, 78%)","commercial_area","hsl(55, 45%, 85%)","residential","hsl(60, 7%, 87%)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"],16,["match",["get","class"],"wood","hsla(103, 50%, 60%, 0.8)","scrub","hsla(98, 47%, 68%, 0.6)","agriculture","hsla(98, 50%, 74%, 0.6)","park",["match",["get","type"],["garden","playground","zoo"],"hsl(98, 38%, 68%)","hsl(98, 55%, 70%)"],"grass","hsla(98, 50%, 74%, 0.6)","airport","hsl(230, 40%, 82%)","cemetery","hsl(98, 45%, 75%)","glacier","hsl(205, 45%, 95%)","hospital","hsl(20, 45%, 82%)","pitch","hsl(88, 65%, 75%)","sand","hsl(69, 60%, 72%)","rock","hsla(60, 0%, 85%, 0.5)","school","hsl(40, 45%, 78%)","commercial_area","hsla(55, 45%, 85%, 0.5)",["facility","industrial"],"hsl(230, 20%, 85%)","hsl(60, 12%, 72%)"]],"fill-opacity":["interpolate",["linear"],["zoom"],8,["match",["get","class"],"residential",.8,.2],10,["match",["get","class"],"residential",0,1]],"fill-antialias":!1}},{id:"pitch-outline",type:"line",source:"composite","source-layer":"landuse",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, land"},minzoom:15,filter:["==",["get","class"],"pitch"],paint:{"line-color":"hsl(0, 0%, 69%)"}},{id:"waterway-shadow",type:"line",source:"composite","source-layer":"waterway",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},minzoom:10,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"]},paint:{"line-color":"hsl(224, 79%, 69%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"line-translate-anchor":"viewport","line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"water-shadow",type:"fill",source:"composite","source-layer":"water",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},minzoom:10,paint:{"fill-color":"hsl(224, 79%, 69%)","fill-translate":["interpolate",["exponential",1.2],["zoom"],7,["literal",[0,0]],16,["literal",[-1,-1]]],"fill-translate-anchor":"viewport"}},{id:"waterway",type:"line",source:"composite","source-layer":"waterway",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},minzoom:8,layout:{"line-cap":["step",["zoom"],"butt",11,"round"],"line-join":["step",["zoom"],"miter",11,"round"]},paint:{"line-color":"hsl(205, 75%, 70%)","line-width":["interpolate",["exponential",1.3],["zoom"],9,["match",["get","class"],["canal","river"],.1,0],20,["match",["get","class"],["canal","river"],8,3]],"line-opacity":["interpolate",["linear"],["zoom"],8,0,8.5,1]}},{id:"water",type:"fill",source:"composite","source-layer":"water",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},paint:{"fill-color":"hsl(205, 75%, 70%)"}},{id:"water-depth",type:"fill",source:"composite","source-layer":"depth",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},maxzoom:8,paint:{"fill-antialias":!1,"fill-color":["interpolate",["linear"],["zoom"],6,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0.35)",200,"hsla(205, 75%, 63%, 0.35)",7e3,"hsla(205, 75%, 56%, 0.35)"],8,["interpolate",["linear"],["get","min_depth"],0,"hsla(205, 75%, 70%, 0)",200,"hsla(205, 75%, 63%, 0)",7e3,"hsla(205, 75%, 53%, 0)"]]}},{id:"wetland",type:"fill",source:"composite","source-layer":"landuse_overlay",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},minzoom:5,filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,.25,10.5,.15]}},{id:"wetland-pattern",type:"fill",source:"composite","source-layer":"landuse_overlay",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, water"},minzoom:5,filter:["match",["get","class"],["wetland","wetland_noveg"],!0,!1],paint:{"fill-color":"hsl(194, 38%, 74%)","fill-opacity":["interpolate",["linear"],["zoom"],10,0,10.5,1],"fill-pattern":"wetland","fill-translate-anchor":"viewport"}},{id:"land-structure-polygon",type:"fill",source:"composite","source-layer":"structure",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},minzoom:13,filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"Polygon"]],paint:{"fill-color":"hsl(0, 0%, 69%)"}},{id:"land-structure-line",type:"line",source:"composite","source-layer":"structure",metadata:{"mapbox:featureComponent":"land-and-water","mapbox:group":"Land & water, built"},minzoom:13,filter:["all",["==",["get","class"],"land"],["==",["geometry-type"],"LineString"]],layout:{"line-cap":"square"},paint:{"line-width":["interpolate",["exponential",1.99],["zoom"],14,.75,20,40],"line-color":"hsl(60, 20%, 85%)"}},{id:"country-boundaries",type:"fill",source:"composite","source-layer":"country_boundaries",paint:{"fill-color":["interpolate",["linear"],["zoom"],0,"rgb(171, 174, 172)",22,"rgb(171, 174, 172)"]}},{id:"admin-0-boundary-bg",type:"line",source:"composite","source-layer":"admin",metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],paint:{"line-width":["interpolate",["linear"],["zoom"],3,4,12,8],"line-color":"rgb(193, 190, 190)","line-opacity":["interpolate",["linear"],["zoom"],3,0,4,.5],"line-blur":["interpolate",["linear"],["zoom"],3,0,12,2]}},{id:"admin-0-boundary",type:"line",source:"composite","source-layer":"admin",metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},minzoom:1,filter:["all",["==",["get","admin_level"],0],["==",["get","disputed"],"false"],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],paint:{"line-color":"rgb(114, 110, 111)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[2,0]],7,["literal",[2,2,6,2]]]}},{id:"admin-0-boundary-disputed",type:"line",source:"composite","source-layer":"admin",metadata:{"mapbox:featureComponent":"admin-boundaries","mapbox:group":"Administrative boundaries, admin"},minzoom:1,filter:["all",["==",["get","disputed"],"true"],["==",["get","admin_level"],0],["==",["get","maritime"],"false"],["match",["get","worldview"],["all","CN"],!0,!1]],paint:{"line-color":"rgb(95, 93, 94)","line-width":["interpolate",["linear"],["zoom"],3,.5,12,2],"line-dasharray":["step",["zoom"],["literal",[3,2,5]],7,["literal",[2,1.5]]]}},{id:"waterway-label",type:"symbol",source:"composite","source-layer":"natural_label",metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},minzoom:13,filter:["all",["match",["get","class"],["canal","river","stream","disputed_canal","disputed_river","disputed_stream"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],layout:{"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-max-angle":30,"symbol-spacing":["interpolate",["linear",1],["zoom"],15,250,17,400],"text-size":["interpolate",["linear"],["zoom"],13,12,18,18],"symbol-placement":"line","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],visibility:"none"},paint:{"text-color":"hsl(205, 43%, 90%)","text-halo-color":"hsla(60, 17%, 84%, 0.5)"}},{id:"natural-line-label",type:"symbol",source:"composite","source-layer":"natural_label",metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},minzoom:4,filter:["all",["match",["get","class"],["glacier","landform","disputed_glacier","disputed_landform"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"text-max-angle":30,"text-field":["coalesce",["get","name_en"],["get","name"]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport",visibility:"none"},paint:{"text-halo-width":.5,"text-halo-color":"hsl(60, 17%, 84%)","text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"}},{id:"natural-point-label",type:"symbol",source:"composite","source-layer":"natural_label",metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},minzoom:4,filter:["all",["match",["get","class"],["dock","glacier","landform","water_feature","wetland","disputed_dock","disputed_glacier","disputed_landform","disputed_water_feature","disputed_wetland"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],4],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],layout:{"text-size":["step",["zoom"],["step",["get","sizerank"],18,5,12],17,["step",["get","sizerank"],18,13,12]],"icon-image":["case",["has","maki_beta"],["coalesce",["image",["get","maki_beta"]],["image",["get","maki"]]],["image",["get","maki"]]],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-offset":["step",["zoom"],["step",["get","sizerank"],["literal",[0,0]],5,["literal",[0,.8]]],17,["step",["get","sizerank"],["literal",[0,0]],13,["literal",[0,.8]]]],"text-anchor":["step",["zoom"],["step",["get","sizerank"],"center",5,"top"],17,["step",["get","sizerank"],"center",13,"top"]],"text-field":["coalesce",["get","name_en"],["get","name"]],visibility:"none"},paint:{"icon-opacity":["step",["zoom"],["step",["get","sizerank"],0,5,1],17,["step",["get","sizerank"],0,13,1]],"text-halo-color":"hsl(60, 20%, 98%)","text-halo-width":.5,"text-halo-blur":.5,"text-color":"hsl(340, 10%, 38%)"}},{id:"water-line-label",type:"symbol",source:"composite","source-layer":"natural_label",metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"LineString"]],layout:{"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-max-angle":30,"text-letter-spacing":["match",["get","class"],"ocean",.25,["sea","bay"],.15,0],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line-center","text-pitch-alignment":"viewport","text-field":["coalesce",["get","name_en"],["get","name"]],visibility:"none"},paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(205, 71%, 90%)","hsl(205, 43%, 90%)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"}},{id:"water-point-label",type:"symbol",source:"composite","source-layer":"natural_label",metadata:{"mapbox:featureComponent":"natural-features","mapbox:group":"Natural features, natural-labels"},minzoom:1,filter:["all",["match",["get","class"],["bay","ocean","reservoir","sea","water","disputed_bay","disputed_ocean","disputed_reservoir","disputed_sea","disputed_water"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],1],60,["<",["distance-from-center"],1.5],70,["<",["distance-from-center"],2]],["==",["geometry-type"],"Point"]],layout:{"text-line-height":1.3,"text-size":["interpolate",["linear"],["zoom"],0,["*",["-",16,["sqrt",["get","sizerank"]]],1],22,["*",["-",22,["sqrt",["get","sizerank"]]],1]],"text-font":["DIN Pro Italic","Arial Unicode MS Regular"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":["match",["get","class"],"ocean",.25,["bay","sea"],.15,.01],"text-max-width":["match",["get","class"],"ocean",4,"sea",5,["bay","water"],7,10],visibility:"none"},paint:{"text-color":["match",["get","class"],["bay","ocean","sea"],"hsl(205, 71%, 90%)","hsl(205, 43%, 90%)"],"text-halo-color":"hsla(60, 17%, 84%, 0.5)"}},{id:"settlement-subdivision-label",type:"symbol",source:"composite","source-layer":"place_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},minzoom:10,maxzoom:15,filter:["all",["match",["get","class"],["settlement_subdivision","disputed_settlement_subdivision"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["<=",["get","filterrank"],3],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-transform":"uppercase","text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-letter-spacing":["match",["get","type"],"suburb",.15,.05],"text-max-width":7,"text-padding":3,"text-size":["interpolate",["cubic-bezier",.5,0,1,1],["zoom"],11,["match",["get","type"],"suburb",11,10.5],15,["match",["get","type"],"suburb",15,14]],visibility:"none"},paint:{"text-halo-color":"hsla(60, 25%, 100%, 0.75)","text-halo-width":1,"text-color":"hsl(230, 29%, 36%)","text-halo-blur":.5}},{id:"settlement-minor-label",type:"symbol",source:"composite","source-layer":"place_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},minzoom:2,maxzoom:13,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],[">",["get","symbolrank"],6],4,[">=",["get","symbolrank"],7],6,[">=",["get","symbolrank"],8],7,[">=",["get","symbolrank"],10],10,[">=",["get","symbolrank"],11],11,[">=",["get","symbolrank"],13],12,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],11,9,10],6,["step",["get","symbolrank"],14,9,12,12,10],8,["step",["get","symbolrank"],16,9,14,12,12,15,10],13,["step",["get","symbolrank"],22,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-justify":"auto",visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1}},{id:"settlement-major-label",type:"symbol",source:"composite","source-layer":"place_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},minzoom:2,maxzoom:15,filter:["all",["<=",["get","filterrank"],3],["match",["get","class"],["settlement","disputed_settlement"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["zoom"],!1,2,["<=",["get","symbolrank"],6],4,["<",["get","symbolrank"],7],6,["<",["get","symbolrank"],8],7,["<",["get","symbolrank"],10],10,["<",["get","symbolrank"],11],11,["<",["get","symbolrank"],13],12,["<",["get","symbolrank"],15],13,[">=",["get","symbolrank"],11],14,[">=",["get","symbolrank"],15]],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],layout:{"text-line-height":1.1,"text-size":["interpolate",["cubic-bezier",.2,0,.9,1],["zoom"],3,["step",["get","symbolrank"],13,6,11],6,["step",["get","symbolrank"],18,6,16,7,14],8,["step",["get","symbolrank"],20,9,16,10,14],15,["step",["get","symbolrank"],24,9,20,12,16,15,14]],"text-radial-offset":["step",["zoom"],["match",["get","capital"],2,.6,.55],8,0],"symbol-sort-key":["get","symbolrank"],"icon-image":["step",["zoom"],["case",["==",["get","capital"],2],"border-dot-13",["step",["get","symbolrank"],"dot-11",9,"dot-10",11,"dot-9"]],8,""],"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],8,"center"],visibility:"none","text-anchor":["step",["zoom"],["get","text_anchor"],8,"center"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-max-width":7},paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-halo-blur":1}},{id:"state-label",type:"symbol",source:"composite","source-layer":"place_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},minzoom:3,maxzoom:9,filter:["all",["match",["get","class"],["state","disputed_state"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],layout:{"text-size":["interpolate",["cubic-bezier",.85,.7,.65,1],["zoom"],4,["step",["get","symbolrank"],9,6,8,7,7],9,["step",["get","symbolrank"],21,6,16,7,14]],"text-transform":"uppercase","text-font":["DIN Pro Bold","Arial Unicode MS Bold"],"text-field":["coalesce",["get","name_en"],["get","name"]],"text-letter-spacing":.15,"text-max-width":6,visibility:"none"},paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":"hsl(60, 25%, 100%)","text-halo-width":1,"text-opacity":.5}},{id:"country-label",type:"symbol",source:"composite","source-layer":"place_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},minzoom:1,maxzoom:10,filter:["all",["match",["get","class"],["country","disputed_country"],["match",["get","worldview"],["all","CN"],!0,!1],!1],["step",["pitch"],!0,50,["<",["distance-from-center"],3],60,["<",["distance-from-center"],4],70,["<",["distance-from-center"],5]]],layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-radial-offset":["step",["zoom"],.6,8,0],"text-justify":["step",["zoom"],["match",["get","text_anchor"],["left","bottom-left","top-left"],"left",["right","bottom-right","top-right"],"right","center"],7,"auto"],"text-size":["interpolate",["cubic-bezier",.2,0,.7,1],["zoom"],1,["step",["get","symbolrank"],11,4,9,5,8],9,["step",["get","symbolrank"],22,4,19,5,17]]},paint:{"icon-opacity":["step",["zoom"],["case",["has","text_anchor"],1,0],7,0],"text-color":"hsl(230, 29%, 0%)","text-halo-color":["interpolate",["linear"],["zoom"],2,"hsla(60, 25%, 100%, 0.75)",3,"hsl(60, 25%, 100%)"],"text-halo-width":1.25}},{id:"continent-label",type:"symbol",source:"composite","source-layer":"natural_label",metadata:{"mapbox:featureComponent":"place-labels","mapbox:group":"Place labels, place-labels"},minzoom:.75,maxzoom:3,filter:["==",["get","class"],"continent"],layout:{"text-field":["coalesce",["get","name_en"],["get","name"]],"text-line-height":1.1,"text-max-width":6,"text-font":["DIN Pro Medium","Arial Unicode MS Regular"],"text-size":["interpolate",["exponential",.5],["zoom"],0,10,2.5,15],"text-transform":"uppercase","text-letter-spacing":.05,visibility:"none"},paint:{"text-color":"hsl(230, 29%, 0%)","text-halo-color":["interpolate",["linear"],["zoom"],0,"hsla(60, 25%, 100%, 0.75)",3,"hsl(60, 25%, 100%)"],"text-halo-width":1.5,"text-opacity":["interpolate",["linear"],["zoom"],0,.8,1.5,.5,2.5,0]}},{id:"world-12nm-v4-20231025",type:"line",source:"composite","source-layer":"eez_12nm_new1-6jzkww",minzoom:0,layout:{"line-join":"round",visibility:"none"},paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2],"line-translate":[0,0]}},{id:"china-taiwan",type:"line",source:"composite","source-layer":"eez-d4udtm",layout:{"line-join":"round",visibility:"none"},paint:{"line-color":"hsl(2, 88%, 55%)","line-opacity":.62,"line-width":["interpolate",["linear"],["zoom"],0,2,22,2]}},{id:"ne-10m-outline",type:"line",source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",layout:{visibility:"none"},paint:{"line-color":"hsl(172, 0%, 33%)"}},{id:"ne-10m-label",type:"symbol",source:"composite","source-layer":"ne_10m_geography_marine_polys-3968bv",layout:{"text-field":["to-string",["get","name"]],"text-size":13,visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 100%)","text-halo-width":1,"text-halo-blur":1}},{id:"china-route-line",type:"line",source:"composite","source-layer":"china_route-bdtx5d",layout:{visibility:"none"},paint:{"line-color":["interpolate",["linear"],["zoom"],0,"rgb(11, 168, 121)",22,"rgb(11, 168, 121)"],"line-width":2}},{id:"china-route-fill",type:"fill",source:"composite","source-layer":"china_route-bdtx5d",filter:["match",["get","featureType"],["route"],!0,!1],layout:{visibility:"none"},paint:{"fill-color":"rgb(11, 168, 121)","fill-opacity":.2}},{id:"china-route-label",type:"symbol",source:"composite","source-layer":"china_route-bdtx5d",layout:{"text-field":["to-string",["get","RouteName"]],"text-size":12,visibility:"none"},paint:{"text-halo-color":"hsl(0, 0%, 96%)","text-halo-width":1,"text-color":"hsl(0, 1%, 2%)"}},{id:"ice-edge",type:"line",paint:{"line-color":"rgb(252, 182, 182)"},layout:{visibility:"visible"},source:"composite","source-layer":"nic_miz2025169nc_pl_a-cqk3ud"}]}}}const No="",Ot={name:"IdmWindParticle",props:{factor:{type:Object},viewport:{type:Te},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,wrapper:void 0,animation:void 0,particleContext:void 0,particleTexture:void 0,particleOptions:{fadeOpacity:.9,speedFactor:.25,dropRate:.003,dropRateBump:.01,uvRange:[-50,50],sRange:[0,50],scale:1},paused:!1,initial:!0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[wind-particle] add elapsed: ",a,", total: ",e+=a)}},handleClear(){var i,e,a,o,r,s,n,l;(i=this.viewport)==null||i.toggle(!1),(e=this.viewport)==null||e.toggleParticle(!1),this.context=void 0,this.particleContext=void 0,this.etime=void 0,this.initial=!0,(o=(a=this.viewport)==null?void 0:a.map)==null||o.off("resize",this.handleResize),(s=(r=this.viewport)==null?void 0:r.map)==null||s.off("movestart",this.handlePause),(l=(n=this.viewport)==null?void 0:n.map)==null||l.off("moveend",this.handlePlay),this.handlePause()},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[0,"rgb(98, 113, 184, 0.8)"],[12/255,"rgb(98, 113, 184)"],[24/255,"rgb(61, 110, 163)"],[32/255,"rgb(74, 146, 148)"],[40/255,"rgb(77, 142, 124)"],[60/255,"rgb(76, 164, 76)"],[80/255,"rgb(103, 164, 54)"],[100/255,"rgb(162, 135, 64)"],[120/255,"rgb(162, 109, 92)"],[140/255,"rgb(141, 63, 92)"],[160/255,"rgb(151, 75, 145)"],[200/255,"rgb(95, 100, 160)"],[240/255,"rgb(91, 136, 161)"],[1,"rgb(91, 136, 161)"]];this.rampColor=this.webgl.setup(this.context,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.uvFragmentSchema);this.program=e,this.aPositionBuffer=a}this.handleParticleSetup()},handleParticleSetup(){if(!this.particleContext){this.particleContext=this.viewport.particleCanvas.getContext("webgl");const i=[[0,"rgb(183,224,224)"],[1,"rgb(217,220,220)"]];this.wrapper=this.webgl.bindParticle(this.particleContext,ue.vertexSchema,ue.fragmentSchema,ue.quadVertSchema,ue.screenFragmentSchema,ue.updateFragmentSchema),this.wrapper.color=this.webgl.setup(this.particleContext,i,!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 i=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,i),this.particleTexture=this.webgl.createTexture(this.particleContext,this.particleContext.NEAREST,this.particleContext.LINEAR,this.particleContext.CLAMP_TO_EDGE,i),this.wrapper.image=i}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()})}}},Rt={key:0};function jt(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Rt,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"kts",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"5",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1),t.createElementVNode("span",null,"40",-1),t.createElementVNode("span",null,"60",-1)]),4)])):t.createCommentVNode("",!0)}const Wt=O(Ot,[["render",jt],["__scopeId","data-v-e5910f11"]]),zo="",Gt={name:"IdmCurrent",props:{map:{type:Object},current:{type:Object},beforeLayer:{type:String},mapProjection:{type:String},showCurrentParticle:{type:Boolean,default:!1},showCurrentIsoband:{type:Boolean,default:!1},marginBottom:{type:String,default:"30px"},toggleParticeVersion:{type:Number},toggleVersion:{type:Number}},emits:["particle","handleToggleVersion"],data(){return{source:"current-source",directionLayer:"current-direction-layer",speedLayer:"current-speed-layer",speedLabelLayer:"current-speed-label-layer",empty:z.featureCollection([]),right:10,bottom:95}},watch:{"current.version":{handler(){var i;(i=this.current)!=null&&i.active&&this.showCurrentIsoband?this.handleRender():this.handleClear(),this.$emit("handleToggleVersion")},deep:!0},toggleParticeVersion:{handler(){this.handleParticle()}},showCurrentIsoband:{handler(){this.handleToggle()}}},methods:{handleParticle(){this.$emit("particle",{particle:this.showCurrentParticle,key:"current",weight:96})},handleRender(){var i,e;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.current){const a=new Date().valueOf();let o=0,r=0,s=this.empty;this.current.active&&(s=this.current.data),(i=this.map)!=null&&i.getSource(this.source)?((e=this.map)==null||e.getSource(this.source).setData(s),r=new Date().valueOf()-(a+o),console.log("[current] update elapsed: ",r,", total: ",o+=r)):(this.map.addSource(this.source,{type:"geojson",data:s}),this.map.addLayer({id:this.speedLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["step",["get","val"],"#e1ffb3",1,"#ffff00",3,"#ff9500",4,"#f44336",5,"#f44336"]}},this.beforeLayer),this.map.addLayer({id:this.speedLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Polygon"],layout:{"symbol-placement":"line","text-field":"{val} kts","text-allow-overlap":!0,"text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":"rgba(0, 0, 0, 0.8)"}},this.beforeLayer),this.map.addLayer({id:this.directionLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-image":"arrow-red","icon-size":["interpolate",["linear"],["get","spd"],.5,.14,3,.28],"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"val",stops:[[0,0],[360,360]]}},paint:{"icon-opacity":.6}},this.beforeLayer),r=new Date().valueOf()-(a+o),console.log("[current] add elapsed: ",r,", total: ",o+=r)),this.handleToggle()}},handleToggle(){this.map.getLayer(this.speedLayer)&&this.map.setLayoutProperty(this.speedLayer,"visibility",this.showCurrentIsoband?"visible":"none"),this.map.getLayer(this.speedLabelLayer)&&this.map.setLayoutProperty(this.speedLabelLayer,"visibility",this.showCurrentIsoband?"visible":"none"),this.map.getLayer(this.directionLayer)&&this.map.setLayoutProperty(this.directionLayer,"visibility",this.showCurrentIsoband?"visible":"none")},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 Ut(i,e,a,o,r,s){return null}const Yt=O(Gt,[["render",Ut]]),Po="",Kt={name:"IdmCurrentParticle",props:{factor:{type:Object},viewport:{type:Te},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,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":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[current-particle] add elapsed: ",a,", total: ",e+=a)}},handleClear(){var i,e,a,o,r,s,n,l;(i=this.viewport)==null||i.toggle(!1),(e=this.viewport)==null||e.toggleParticle(!1),this.context=void 0,this.particleContext=void 0,this.etime=void 0,this.initial=!0,(o=(a=this.viewport)==null?void 0:a.map)==null||o.off("resize",this.handleResize),(s=(r=this.viewport)==null?void 0:r.map)==null||s.off("movestart",this.handlePause),(l=(n=this.viewport)==null?void 0:n.map)==null||l.off("moveend",this.handlePlay),this.handlePause()},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.uvFragmentSchema);this.program=e,this.aPositionBuffer=a}this.handleParticleSetup()},handleParticleSetup(){if(!this.particleContext){this.particleContext=this.viewport.particleCanvas.getContext("webgl");const i=[[0,"rgb(183,224,224)"],[1,"rgb(199,202,202)"],[.6,"rgb(199,202,202)"]];this.wrapper=this.webgl.bindParticle(this.particleContext,ue.vertexSchema,ue.fragmentSchema,ue.quadVertSchema,ue.screenFragmentSchema,ue.updateFragmentSchema),this.wrapper.color=this.webgl.setup(this.particleContext,i,!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 i=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,i),this.particleTexture=this.webgl.createTexture(this.particleContext,this.particleContext.NEAREST,this.particleContext.LINEAR,this.particleContext.CLAMP_TO_EDGE,i),this.wrapper.image=i}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()})}}},Xt={key:0};function qt(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Xt,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"kts",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"0.4",-1),t.createElementVNode("span",null,"0.8",-1),t.createElementVNode("span",null,"1.6",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"3.2",-1)]),4)])):t.createCommentVNode("",!0)}const Jt=O(Kt,[["render",qt],["__scopeId","data-v-c2962e63"]]),Zt={name:"IdmSigWave",props:{map:{type:Object},sigWave:{type:Object},beforeLayer:{type:String},activeWeatherLayers:{type:Array}},data(){return{source:"sig-wave-source",heightLayer:"sig-wave-height-layer",heightLabelLayer:"sig-wave-height-label-layer",empty:z.featureCollection([])}},watch:{"sigWave.version":{handler(){var i;(i=this.sigWave)!=null&&i.active?(this.handleRender(),this.handleMove()):this.handleClear()},deep:!0}},methods:{handleRender(){var i,e;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.sigWave){const a=new Date().valueOf();let o=0,r=0,s=this.empty;this.sigWave.active&&(s=this.sigWave.data),(i=this.map)!=null&&i.getSource(this.source)?((e=this.map)==null||e.getSource(this.source).setData(s),r=new Date().valueOf()-(a+o),console.log("[sig.wave] update elapsed: ",r,", total: ",o+=r)):(this.map.addSource(this.source,{type:"geojson",data:s}),this.map.addLayer({id:this.heightLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],layout:{"fill-sort-key":["get","val"]},paint:{"fill-opacity":.7,"fill-color":["step",["get","val"],"rgba(0,235,156,0.4)",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",16,"#aa1464",18,"#962878",20,"#8c328c"]}},this.beforeLayer),this.map.addLayer({id:this.heightLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","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),r=new Date().valueOf()-(a+o),console.log("[sig.wave] add elapsed: ",r,", total: ",o+=r))}},handleMove(){var i,e;(e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("visibility","visible"),this.map.getLayer(this.heightLayer)&&this.map.moveLayer(this.heightLayer,"country-boundaries"),this.map.getLayer(this.heightLabelLayer)&&this.map.moveLayer(this.heightLabelLayer,"country-boundaries")},handleClear(){var i,e,a;((i=this.activeWeatherLayers)==null?void 0:i.length)===0&&((a=(e=this.map)==null?void 0:e.getLayer("country-boundaries"))==null||a.setLayoutProperty("visibility","none")),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 $t(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const ea=O(Zt,[["render",$t]]),ta={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:z.featureCollection([])}},watch:{"swell.version":{handler(){var i;(i=this.swell)!=null&&i.active?(this.handleRender(),this.handleMove()):this.handleClear()},deep:!0},activeWeatherLayers:{handler(){setTimeout(()=>{this.activeWeatherLayers.length>0?this.handleMove():this.handleClear()},500)},deep:!0,immediate:!0}},methods:{handleRender(){var i,e;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.swell){const a=new Date().valueOf();let o=0,r=0,s=this.empty;this.swell.active&&(s=this.swell.data),(i=this.map)!=null&&i.getSource(this.source)?((e=this.map)==null||e.getSource(this.source).setData(s),r=new Date().valueOf()-(a+o),console.log("[swell] update elapsed: ",r,", total: ",o+=r)):(this.map.addSource(this.source,{type:"geojson",data:s}),this.map.addLayer({id:this.heightLayer,type:"line",source:this.source,filter:["==","$type","LineString"],paint:{"line-opacity":1,"line-width":2,"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":12},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":4}},this.beforeLayer),this.map.addLayer({id:this.directionLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-image":"arrow-yellow","icon-size":{base:1,stops:[[2,.14],[6,.28]]},"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"val",stops:[[0,180],[360,540]]}},paint:{"icon-opacity":.8}},this.beforeLayer),r=new Date().valueOf()-(a+o),console.log("[swell] add elapsed: ",r,", total: ",o+=r))}},handleMove(){var i,e;(e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("visibility","visible"),this.map.getLayer(this.heightLayer)&&this.map.moveLayer(this.heightLayer,"country-boundaries"),this.map.getLayer(this.directionLayer)&&this.map.moveLayer(this.directionLayer,"country-boundaries"),this.map.getLayer(this.heightLabelLayer)&&this.map.moveLayer(this.heightLabelLayer,"country-boundaries")},handleClear(){var i,e;this.activeWeatherLayers.length===0&&((e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("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 aa(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const ia=O(ta,[["render",aa]]),ra={name:"IdmPrmsl",props:{map:{type:Object},prmsl:{type:Object},beforeLayer:{type:String},showRampColor:{type:Boolean},activeWeatherLayers:{type:Array}},data(){return{source:"prmsl-source",layer:"prmsl-layer",labelLayer:"prmsl-label-layer",pointLabelLayer:"prmsl-point-label-layer",empty:z.featureCollection([])}},watch:{"prmsl.version":{handler(){var i;(i=this.prmsl)!=null&&i.active?(this.handleRender(),this.handleMove()):this.handleClear()},deep:!0},activeWeatherLayers:{handler(){setTimeout(()=>{this.activeWeatherLayers.length>0?this.handleMove():this.handleClear()},500)},deep:!0,immediate:!0}},methods:{handleRender(){var i,e,a;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.prmsl){const o=new Date().valueOf();let r=0,s=0,n=this.empty;this.prmsl.active&&(n=this.prmsl.data),(i=this.map)!=null&&i.getSource(this.source)?((e=this.map)==null||e.getSource(this.source).setData(n),s=new Date().valueOf()-(o+r),console.log("[prmsl] update elapsed: ",s,", total: ",r+=s)):(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(244,67,54,1)",980,"rgba(255,255,0,1)",1100,"rgba(199,171,250,1)"],"line-width":1,"line-opacity":.6}}),(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}}),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},`
191
- `,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12},paint:{"text-color":["step",["get","val"],"rgba(255,255,255,0.8)",980,"rgba(0,0,0,0.6)",1100,"rgba(0,0,0,0.6)"],"text-halo-color":["step",["get","val"],"rgba(162,13,2,0.7)",920,"rgba(244,67,54,0.7)",980,"rgba(255,255,0,0.7)",1100,"rgba(199,171,250,0.7)"],"text-halo-width":2}})},0),s=new Date().valueOf()-(o+r),console.log("[prmsl] add elapsed: ",s,", total: ",r+=s))}},handleMove(){var i,e;(e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("visibility","visible")},handleClear(){var i,e;this.activeWeatherLayers.length===0&&((e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("visibility","none")),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function oa(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const sa=O(ra,[["render",oa]]),Mo="",na={name:"IdmIceEdge",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()}},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[ice-edge] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},la={key:0};function ca(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",la,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,null,-1),t.createElementVNode("span",{style:{display:"inline-block",position:"relative",left:"-10px"}},"%",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,"40",-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,"70",-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,"90",-1),t.createElementVNode("span",null,null,-1)]),4)])):t.createCommentVNode("",!0)}const ha=O(na,[["render",ca],["__scopeId","data-v-14ae1a6c"]]),So="",da={name:"IdmCover",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()}},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[ice-cover] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ma={key:0};function pa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",ma,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"%",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"40",-1),t.createElementVNode("span",null,"60",-1),t.createElementVNode("span",null,"80",-1),t.createElementVNode("span",null,"100",-1)]),4)])):t.createCommentVNode("",!0)}const ga=O(da,[["render",pa],["__scopeId","data-v-f21edb81"]]),To="",ya={name:"IdmThickness",props:{factor:{type:Object},viewport:{type:Object},toggleVersion:{type:Number},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[ice-thickness] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ua={key:0};function fa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",ua,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"m",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"0.6",-1),t.createElementVNode("span",null,"1",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"3",-1)]),4)])):t.createCommentVNode("",!0)}const Aa=O(ya,[["render",fa],["__scopeId","data-v-a4c3d2ed"]]),Me=[{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"}],Se=[{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 Fe{static standardWeatherModels(){return Me.filter(e=>!e.disabled&&e.alias)}static standardMarineModels(){return Se.filter(e=>!e.disabled&&e.alias)}static autoPickLayerModel(e,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",e=e==null?void 0:e.toLowerCase(),e==="gfs"?"gfs":["ec","ecmwf"].includes(e)?"ecmwf":["copernicus","cmems"].includes(e)?"copernicus":a}static autoPickPeerModel(e,a,o="copernicus"){if(a=this.autoPickLayerModel(a,o),ee.LayerHelper.WEATHER_LAYERS.reduce((r,s)=>s.atmos?r+s.weight:r,0)&e.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(e="best_match"){var a,o;e=e==null?void 0:e.toLowerCase(),e=e==="ec"?"ecmwf":e;const r=e.toLowerCase().split(","),s=[],n=[];for(const l of r){let h=Me.find(c=>{var m,w,C;return((m=c.models)==null?void 0:m.includes(l))||((w=c.alias)==null?void 0:w.toLowerCase())===l||((C=c.name)==null?void 0:C.toLowerCase())===l}),d=Se.find(c=>{var m,w,C;return((m=c.models)==null?void 0:m.includes(l))||((w=c.alias)==null?void 0:w.toLowerCase())===l||((C=c.name)==null?void 0:C.toLowerCase())===l});h=h||Me.find(c=>{var m,w;return((m=c.alias)==null?void 0:m.toLowerCase())===((w=d==null?void 0:d.alias)==null?void 0:w.toLowerCase())}),d=d||Se.find(c=>{var m,w;return((m=c.alias)==null?void 0:m.toLowerCase())===((w=h==null?void 0:h.alias)==null?void 0:w.toLowerCase())}),h=h||Me[0],d=d||Se[0],s.push((a=h.models)!=null&&a.includes(l)?l:h.model),n.push((o=d.models)!=null&&o.includes(l)?l:d.model)}return{weatherModels:s.join(","),marineModels:n.join(",")}}static autoPickSubCategories(e){e=e.toUpperCase();const a=Me.filter(s=>s.alias===e),o=Se.filter(s=>s.alias===e),r=[];return a.forEach(s=>{s.categories&&r.push(...s.categories.split(","))}),o.forEach(s=>{s.categories&&r.push(...s.categories.split(","))}),r}static pickHourly(e,a){var o,r,s,n,l,h,d,c,m,w,C,B,y,E,v,u,f,p,b,g,A,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae;const X=typeof a=="string"?j(a):a,U=e==null?void 0:e.weather,I=e==null?void 0:e.marine,pe=j((r=(o=U==null?void 0:U[0])==null?void 0:o.hourly)==null?void 0:r.date).utc(),R=pe.clone().add((l=(n=(s=U==null?void 0:U[0])==null?void 0:s.hourly)==null?void 0:n.time)==null?void 0:l.at(0),"h"),K=pe.clone().add((c=(d=(h=U==null?void 0:U[0])==null?void 0:h.hourly)==null?void 0:d.time)==null?void 0:c.at(-1),"h"),xe=[];if(X.isBetween(R,K,"millisecond","[]")){const N=X.utc().diff(R,"h",!1);let le,Ce;if(U){let Ee=0,Be=0;for(const D of U){const T=D==null?void 0:D.hourly;for(let Ie=N-(N-1)%3;Ie<=N;Ie++)Ee+=(m=T==null?void 0:T.precipitation)==null?void 0:m.at(Ie);for(let Ie=N-(N-1)%6;Ie<=N;Ie++)Be+=(w=T==null?void 0:T.precipitation)==null?void 0:w.at(Ie);le={temp:(C=T==null?void 0:T.temperature_2m)==null?void 0:C.at(N),apparentTemp:(B=T==null?void 0:T.apparent_temperature)==null?void 0:B.at(N),rh:(y=T==null?void 0:T.relative_humidity_2m)==null?void 0:y.at(N),dp:(E=T==null?void 0:T.dew_point_2m)==null?void 0:E.at(N),precip:{probability:(v=T==null?void 0:T.precipitation_probability)==null?void 0:v.at(N),sum:(u=T==null?void 0:T.precipitation)==null?void 0:u.at(N),sum3Hours:Math.round(Ee*100)/100,sum6Hours:Math.round(Be*100)/100},pmsl:(f=T==null?void 0:T.pressure_msl)==null?void 0:f.at(N),psurf:(p=T==null?void 0:T.surface_pressure)==null?void 0:p.at(N),code:(b=T==null?void 0:T.weather_code)==null?void 0:b.at(N),visibility:this.m2nm((g=T==null?void 0:T.visibility)==null?void 0:g.at(N)),wind:{speed:(A=T==null?void 0:T.wind_speed_10m)==null?void 0:A.at(N),kts:(k=T==null?void 0:T.wind_speed_10m)==null?void 0:k.at(N),degree:(_=T==null?void 0:T.wind_direction_10m)==null?void 0:_.at(N),bearing:((S=T==null?void 0:T.wind_direction_10m)==null?void 0:S.at(N))!==null?(((M=T==null?void 0:T.wind_direction_10m)==null?void 0:M.at(N))+180)%360:null,gusts:(Q=T==null?void 0:T.wind_gusts_10m)==null?void 0:Q.at(N)},isDay:(V=T==null?void 0:T.is_day)==null?void 0:V.at(N)};const{name:Ne,url:ze,bg:$}=this.parseWeatherCode(le.code,le.isDay);le.name=Ne,le.url=ze,le.bg=$,le.wind.scale=this.beaufort(this.kts2ms(le.wind.kts)),le.wind.direction=this.degree2Direction(le.wind.degree),xe.push({utc:R.add(N,"h").format(),model:D.model,weather:{...le}})}}if(I){let Ee=0;for(const Be of I){const D=Be==null?void 0:Be.hourly;Ce={wave:{sig:{height:(H=D==null?void 0:D.wave_height)==null?void 0:H.at(N),degree:(ae=D==null?void 0:D.wave_direction)==null?void 0:ae.at(N),bearing:((q=D==null?void 0:D.wave_direction)==null?void 0:q.at(N))!==null?(((ie=D==null?void 0:D.wave_direction)==null?void 0:ie.at(N))+180)%360:null,period:(ce=D==null?void 0:D.wave_period)==null?void 0:ce.at(N)},swell:{height:(re=D==null?void 0:D.swell_wave_height)==null?void 0:re.at(N),degree:(he=D==null?void 0:D.swell_wave_direction)==null?void 0:he.at(N),bearing:((oe=D==null?void 0:D.swell_wave_direction)==null?void 0:oe.at(N))!==null?(((F=D==null?void 0:D.swell_wave_direction)==null?void 0:F.at(N))+180)%360:null,period:(Y=D==null?void 0:D.swell_wave_period)==null?void 0:Y.at(N),peakPeriod:(se=D==null?void 0:D.swell_wave_peak_period)==null?void 0:se.at(N)},wd:{height:(te=D==null?void 0:D.wind_wave_height)==null?void 0:te.at(N),degree:(ne=D==null?void 0:D.wind_wave_direction)==null?void 0:ne.at(N),bearing:((ge=D==null?void 0:D.wind_wave_direction)==null?void 0:ge.at(N))!==null?(((de=D==null?void 0:D.wind_wave_direction)==null?void 0:de.at(N))+180)%360:null,period:(ye=D==null?void 0:D.wind_wave_period)==null?void 0:ye.at(N),peakPeriod:(x=D==null?void 0:D.wind_wave_peak_period)==null?void 0:x.at(N)}},current:{speed:(we=D==null?void 0:D.ocean_current_velocity)==null?void 0:we.at(N),kts:(me=D==null?void 0:D.ocean_current_velocity)==null?void 0:me.at(N),degree:(be=D==null?void 0:D.ocean_current_direction)==null?void 0:be.at(N),bearing:((fe=D==null?void 0:D.ocean_current_direction)==null?void 0:fe.at(N))??null},sst:(Le=D==null?void 0:D.sea_surface_temperature)==null?void 0:Le.at(N),height:(Ae=D==null?void 0:D.sea_level_height_msl)==null?void 0:Ae.at(N)},Ce.wave=this.parseWave(Ce.wave,le==null?void 0:le.wind),Ce.current.direction=this.degree2Direction(Ce.current.degree),Object.assign(xe[Ee],Ce),Ee++}}}return xe}static toLegacy(e){var a,o,r,s,n,l,h,d,c,m;return{wind:(a=e==null?void 0:e.weather)==null?void 0:a.wind,visibility:(o=e==null?void 0:e.weather)==null?void 0:o.visibility,temp:(r=e==null?void 0:e.weather)==null?void 0:r.temp,prmsl:(s=e==null?void 0:e.weather)==null?void 0:s.pmsl,gusts:{kts:(l=(n=e==null?void 0:e.weather)==null?void 0:n.wind)==null?void 0:l.gusts},precip:(h=e==null?void 0:e.weather)==null?void 0:h.precip,code:(d=e==null?void 0:e.weather)==null?void 0:d.code,name:(c=e==null?void 0:e.weather)==null?void 0:c.name,url:(m=e==null?void 0:e.weather)==null?void 0:m.url,wave:e==null?void 0:e.wave,current:e==null?void 0:e.current,sst:e==null?void 0:e.sst,height:e==null?void 0:e.height,utc:e==null?void 0:e.utc,source:e==null?void 0:e.model}}static pickDaily(e,a){var o,r,s,n,l,h,d,c,m,w,C,B,y,E,v,u,f,p,b,g,A,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x;const we=typeof a=="string"?j(a):a,me=e==null?void 0:e.weather,be=e==null?void 0:e.marine,fe=j((s=(r=(o=me==null?void 0:me[0])==null?void 0:o.daily)==null?void 0:r.time)==null?void 0:s.at(0)),Le=j((h=(l=(n=me==null?void 0:me[0])==null?void 0:n.daily)==null?void 0:l.time)==null?void 0:h.at(-1)),Ae=[];if(we.isBetween(fe,Le,"millisecond","[]")){let X,U;const I=we.diff(fe,"d",!1);if(me)for(const pe of me){const R=pe.daily;X={code:(d=R.weather_code)==null?void 0:d.at(I),temp:{max:(c=R.temperature_2m_max)==null?void 0:c.at(I),min:(m=R.temperature_2m_min)==null?void 0:m.at(I),mean:(w=R.temperature_2m_mean)==null?void 0:w.at(I)},apparentTemp:{max:(C=R.apparent_temperature_max)==null?void 0:C.at(I),min:(B=R.apparent_temperature_min)==null?void 0:B.at(I)},precip:{sum:(y=R.precipitation_sum)==null?void 0:y.at(I),rainSum:(E=R.rain_sum)==null?void 0:E.at(I),snowfallSum:(v=R.snowfall_sum)==null?void 0:v.at(I),showersSum:(u=R.showers_sum)==null?void 0:u.at(I),hours:(f=R.precipitation_hours)==null?void 0:f.at(I),probability:(p=R.precipitation_probability_max)==null?void 0:p.at(I)},rh:{max:(b=R.relative_humidity_2m_max)==null?void 0:b.at(I),min:(g=R.relative_humidity_2m_min)==null?void 0:g.at(I),mean:(A=R.relative_humidity_2m_mean)==null?void 0:A.at(I)},wind:{speed:(k=R.wind_speed_10m_max)==null?void 0:k.at(I),kts:(_=R.wind_speed_10m_max)==null?void 0:_.at(I),degree:(S=R.wind_direction_10m_dominant)==null?void 0:S.at(I),gusts:(M=R.wind_gusts_10m_max)==null?void 0:M.at(I),bearing:((Q=R.wind_direction_10m_dominant)==null?void 0:Q.at(I))!==null?(((V=R.wind_direction_10m_dominant)==null?void 0:V.at(I))+180)%360:null}};const{name:K,url:xe,bg:N}=this.parseWeatherCode(X.code,!0);X.name=K,X.url=xe,X.bg=N,X.wind.scale=this.beaufort(this.kts2ms(X.wind.kts)),X.wind.direction=this.degree2Direction(X.wind.degree),Ae.push({utc:fe.add(I,"d").utc().format(),model:pe.model,weather:{...X}})}if(be){let pe=0;for(const R of be){const K=R.daily;U={wave:{sig:{height:(H=K.wave_height_max)==null?void 0:H.at(I),degree:(ae=K.wave_direction_dominant)==null?void 0:ae.at(I),period:(q=K.wave_period_max)==null?void 0:q.at(I),bearing:((ie=K.wave_direction_dominant)==null?void 0:ie.at(I))!==null?(((ce=K.wave_direction_dominant)==null?void 0:ce.at(I))+180)%360:null},swell:{height:(re=K.swell_wave_height_max)==null?void 0:re.at(I),degree:(he=K.swell_wave_direction_dominant)==null?void 0:he.at(I),period:(oe=K.swell_wave_period_max)==null?void 0:oe.at(I),peakPeriod:(F=K.swell_wave_peak_period_max)==null?void 0:F.at(I),bearing:((Y=K.swell_wave_direction_dominant)==null?void 0:Y.at(I))!==null?((se=K.swell_wave_direction_dominant)==null?void 0:se.at(I))%360:null},wd:{height:(te=K.wind_wave_height_max)==null?void 0:te.at(I),degree:(ne=K.wind_wave_direction_dominant)==null?void 0:ne.at(I),period:(ge=K.wind_wave_period_max)==null?void 0:ge.at(I),peakPeriod:(de=K.wind_wave_peak_period_max)==null?void 0:de.at(I),bearing:((ye=K.wind_wave_direction_dominant)==null?void 0:ye.at(I))!==null?(((x=K.wind_wave_direction_dominant)==null?void 0:x.at(I))+180)%360:null}}},U.wave=this.parseWave(U.wave,X==null?void 0:X.wind),Object.assign(Ae[pe],U),pe++}}}return Ae}static parseWave(e,a){if(e.sig.direction=this.degree2Direction(e.sig.degree),e.swell.direction=this.degree2Direction(e.swell.degree),e.wd.direction=this.degree2Direction(e.wd.degree),e.sig.scale=this.douglas(e.sig.height),e.swell.scale=this.douglas(e.swell.height),e.wd.scale=this.douglas(e.wd.height),e.sig.height===0){const o=Math.sqrt(Math.pow(e.swell.height||0,2)+Math.pow(e.wd.height||0,2));e.sig.height=Math.round(o*100)/100}if(e.swell.height===0)if(e.sig.height>e.wd.height){const o=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.wd.height||0,2)));e.swell.height=Math.round(o*100)/100}else{const o=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,r=o>1?o/10:o>.5?o/5:o>.3?o/2:o;e.swell.height=Math.round(r*100)/100}if(e.wd.height===0||e.wd.height>e.sig.height)if(e.sig.height>e.swell.height){const o=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.swell.height||0,2))),r=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(Math.min(o,r)*100)/100}else{const o=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(o*100)/100}return e.swell.height>e.sig.height&&(e.swell.height=Math.round(e.sig.height*.76*100)/100),e.sig.period||(e.sig.period=Math.round(5*Math.sqrt(e.sig.height))),e.swell.period||(e.swell.period=Math.round(5*Math.sqrt(e.swell.height))),e.wd.period||(e.wd.period=Math.round(5*Math.sqrt(e.wd.height))),e}static parseWeatherCode(e,a){const o=this.weatherCode(e);return(a?o.day:o.night)||{}}static weatherCode(e){const a={code:e};switch(e){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(e){return isNaN(e)||e===null?e:Math.round(e*1852/3600*1e4)/1e4}static kts2kmh(e){return isNaN(e)||e===null?e:e*1.852}static m2nm(e){return isNaN(e)||e===null?e:Math.round(e/1e3/1.852*1e4)/1e4}static kmh2kts(e){return isNaN(e)||e===null?e:this.ms2kts(e*1e3/3600)}static ms2kts(e){return isNaN(e)||e===null?e:Math.round(e*3600/1852*1e4)/1e4}static degree2Radian(e){if(isNaN(e)||e===null)return e;let a=e%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(e){const a=this.degree2Radian(e);if(isNaN(a)||a===null)return null;let o="N/A";const r=Math.PI/16;return a<r?o="N":a>=r&&a<3*r?o="NNE":a>=3*r&&a<5*r?o="NE":a>=5*r&&a<7*r?o="ENE":a>=7*r&&a<9*r?o="E":a>=9*r&&a<11*r?o="ESE":a>=11*r&&a<13*r?o="SE":a>=13*r&&a<15*r?o="SSE":a>=15*r&&a<17*r?o="S":a>=17*r&&a<19*r?o="SSW":a>=19*r&&a<21*r?o="SW":a>=21*r&&a<23*r?o="WSW":a>=23*r&&a<25*r?o="W":a>=25*r&&a<27*r?o="WNW":a>=27*r&&a<29*r?o="NW":a>=29*r&&a<31*r?o="NNW":a>=31*r&&a<32*r&&(o="N"),o}static beaufort(e){let a=0;return isNaN(e)||(e=Math.round(e*10)/10,e<=.2?a=0:e<=1.5?a=1:e<=3.3?a=2:e<=5.4?a=3:e<=7.9?a=4:e<=10.7?a=5:e<=13.8?a=6:e<=17.1?a=7:e<=20.7?a=8:e<=22.4?a=9:e<=28.4?a=10:e<=32.6?a=11:e<=36.9?a=12:e<=41.4?a=13:e<=46.1?a=14:e<=50.9?a=15:e<=55.9?a=16:e<=61.2?a=17:e>61.2&&(a=18)),a}static douglas(e){let a="Calm";return isNaN(e)||e<=.1?a="Calm":e<=.5?a="Smooth":e<=1.25?a="Slight":e<=2.5?a="Moderate":e<=4?a="Rough":e<=6?a="VeryRough":e<=9?a="High":e<=14?a="VeryHigh":a="Precipitous",a}}const Qo="",wa={name:"IdmTropicals",props:{map:{type:Object},tropicals:{type:Object},date:{type:String},timeZone:{type:Number,default:0},permission:{type:Number},fromTropicalReport:{type:Boolean,default:!1}},emits:["tropical","tropicalProbability","tropicalNotification"],data(){return{helper:ee.CompanyHelper,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",showTropicals:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:z.featureCollection([]),circleSource:"circle-source",circleSourceData:z.featureCollection([]),circleLayer:"tropical-circle-layer",labelMarkers:[]}},computed:{computeTime(){return function(i){if(i){const e=j(i).utcOffset(this.timeZone),a=this.timeZone<0?this.timeZone:"+"+this.timeZone;return`${e.format("MMM-DD/HHmm")} [ UTC${a} ] ( ${e==null?void 0:e.fromNow()} )`}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(i){const e=Fe.kts2ms(i);return Fe.beaufort(e)}},computeMovement(){return function(i){var e,a;return(a=(e=i==null?void 0:i.forecasts)==null?void 0:e.find(o=>!o.disabled))==null?void 0:a.movement}}},watch:{"tropicals.active":{handler(){this.handleInit()},immediate:!0},showTropicals:{handler(){this.$emit("tropical",this.showTropicals)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(){this.handleRefresh()}}},methods:{handleRefresh(){var e,a;(((a=(e=this.tropicals)==null?void 0:e.data)==null?void 0:a.features)||[]).forEach(o=>{var r,s;((r=o.geometry)==null?void 0:r.type)==="Point"&&((s=o.properties)!=null&&s.important)&&(o.properties.format=j(o.properties.date).utcOffset(this.timeZone).format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`))}),this.handleInit()},handleInit(){var i,e;this.tropicals&&this.tropicals.active?(this.handleRender(),(i=this.map)==null||i.on("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick))},handleRender(){var i,e,a,o,r,s,n,l,h,d,c,m,w;if(!this.map)setTimeout(()=>{this.handleRender()},500);else{if(this.tropicals){const B=new Date().valueOf();let y=0,E=0;if((i=this.map)!=null&&i.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((e=this.tropicals)!=null&&e.active?this.tropicals.data:this.empty),E=new Date().valueOf()-(B+y),console.log("[tropicals] update elapsed: ",E,", total: ",y+=E)):(this.map.addSource(this.source,{type:"geojson",data:(o=this.tropicals)!=null&&o.active?(r=this.tropicals)==null?void 0:r.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":"#000","line-width":4,"line-opacity":.5}}),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":13},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}}),E=new Date().valueOf()-(B+y),console.log("[tropical] add elapsed: ",E,", total: ",y+=E)),(s=this.map)!=null&&s.getSource(this.clusterSource))(l=this.map)==null||l.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),E=new Date().valueOf()-(B+y),console.log("[tropical] update elapsed: ",E,", total: ",y+=E);else{if(this.map.addSource(this.clusterSource,{type:"geojson",data:(h=this.tropicals)!=null&&h.active?(d=this.tropicals)==null?void 0:d.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":6,"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.fromTropicalReport)this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[0,-.5],"text-anchor":"bottom-left","text-size":12},paint:{"text-color":"rgba(0, 0, 0, 1)","text-halo-color":"#fff","text-halo-width":1}});else{const v=(c=this.tropicals.data.features)==null?void 0:c.filter(g=>{var A;return g.geometry.type==="Point"&&g.properties.type==="forecast"&&((A=g.properties)==null?void 0:A.model)==="ecmwf"&&g.properties.name==="melissa"});let u=0,f=0,p=0,b=(w=(m=this.findClosestToNumber(v,"hour",12))==null?void 0:m.properties)==null?void 0:w.hour;v.forEach((g,A)=>{var S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae;let k;const _=this.findClosestToNumber(v,"hour",b+u*24);if(_&&((S=_==null?void 0:_.properties)==null?void 0:S.hour)===((M=g.properties)==null?void 0:M.hour)&&(k=_),k){let X=0,U="tropical-marker-box",I="tropical-marker-line";U=((H=(V=(Q=k.properties)==null?void 0:Q.wind)==null?void 0:V.en)==null?void 0:H.toUpperCase())==="SUPER TY"?U+" supper":U+" normal",I=((ie=(q=(ae=k.properties)==null?void 0:ae.wind)==null?void 0:q.en)==null?void 0:ie.toUpperCase())==="SUPER TY"?I+" supper":I+" normal",((re=(ce=k.properties)==null?void 0:ce.movement)==null?void 0:re.deg)>=0&&((oe=(he=k.properties)==null?void 0:he.movement)==null?void 0:oe.deg)<=45||((Y=(F=k.properties)==null?void 0:F.movement)==null?void 0:Y.deg)>=135&&((te=(se=k.properties)==null?void 0:se.movement)==null?void 0:te.deg)<=215||((ge=(ne=k.properties)==null?void 0:ne.movement)==null?void 0:ge.deg)>=315&&((ye=(de=k.properties)==null?void 0:de.movement)==null?void 0:ye.deg)<=360?(X=p%2===0?[100,0]:[-100,0],U=p%2===0?U+" right":U+" left",I=p%2===0?I+" vertical right":I+" vertical left",p=p+1):(X=f%2===0?[60,40]:[60,-40],U=f%2===0?U+" right":U+" left",I=f%2===0?I+" align bottom":I+" align top",f=f+1);const pe=document.createElement("div");pe.className=U,pe.innerHTML=`
191
+ `,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12},paint:{"text-color":["step",["get","val"],"rgba(255,255,255,0.8)",980,"rgba(0,0,0,0.6)",1100,"rgba(0,0,0,0.6)"],"text-halo-color":["step",["get","val"],"rgba(162,13,2,0.7)",920,"rgba(244,67,54,0.7)",980,"rgba(255,255,0,0.7)",1100,"rgba(199,171,250,0.7)"],"text-halo-width":2}})},0),s=new Date().valueOf()-(o+r),console.log("[prmsl] add elapsed: ",s,", total: ",r+=s))}},handleMove(){var i,e;(e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("visibility","visible")},handleClear(){var i,e;this.activeWeatherLayers.length===0&&((e=(i=this.map)==null?void 0:i.getLayer("country-boundaries"))==null||e.setLayoutProperty("visibility","none")),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function oa(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const sa=O(ra,[["render",oa]]),Mo="",na={name:"IdmIceEdge",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()}},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[ice-edge] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},la={key:0};function ca(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",la,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,null,-1),t.createElementVNode("span",{style:{display:"inline-block",position:"relative",left:"-10px"}},"%",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,"40",-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,"70",-1),t.createElementVNode("span",null,null,-1),t.createElementVNode("span",null,"90",-1),t.createElementVNode("span",null,null,-1)]),4)])):t.createCommentVNode("",!0)}const ha=O(na,[["render",ca],["__scopeId","data-v-14ae1a6c"]]),So="",da={name:"IdmCover",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()}},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[ice-cover] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ma={key:0};function pa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",ma,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"%",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"40",-1),t.createElementVNode("span",null,"60",-1),t.createElementVNode("span",null,"80",-1),t.createElementVNode("span",null,"100",-1)]),4)])):t.createCommentVNode("",!0)}const ga=O(da,[["render",pa],["__scopeId","data-v-f21edb81"]]),To="",ya={name:"IdmThickness",props:{factor:{type:Object},viewport:{type:Object},toggleVersion:{type:Number},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[ice-thickness] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ua={key:0};function fa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",ua,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"m",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"0.6",-1),t.createElementVNode("span",null,"1",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"3",-1)]),4)])):t.createCommentVNode("",!0)}const Aa=O(ya,[["render",fa],["__scopeId","data-v-a4c3d2ed"]]),Me=[{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"}],Se=[{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 Fe{static standardWeatherModels(){return Me.filter(e=>!e.disabled&&e.alias)}static standardMarineModels(){return Se.filter(e=>!e.disabled&&e.alias)}static autoPickLayerModel(e,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",e=e==null?void 0:e.toLowerCase(),e==="gfs"?"gfs":["ec","ecmwf"].includes(e)?"ecmwf":["copernicus","cmems"].includes(e)?"copernicus":a}static autoPickPeerModel(e,a,o="copernicus"){if(a=this.autoPickLayerModel(a,o),ee.LayerHelper.WEATHER_LAYERS.reduce((r,s)=>s.atmos?r+s.weight:r,0)&e.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(e="best_match"){var a,o;e=e==null?void 0:e.toLowerCase(),e=e==="ec"?"ecmwf":e;const r=e.toLowerCase().split(","),s=[],n=[];for(const l of r){let h=Me.find(c=>{var m,A,C;return((m=c.models)==null?void 0:m.includes(l))||((A=c.alias)==null?void 0:A.toLowerCase())===l||((C=c.name)==null?void 0:C.toLowerCase())===l}),d=Se.find(c=>{var m,A,C;return((m=c.models)==null?void 0:m.includes(l))||((A=c.alias)==null?void 0:A.toLowerCase())===l||((C=c.name)==null?void 0:C.toLowerCase())===l});h=h||Me.find(c=>{var m,A;return((m=c.alias)==null?void 0:m.toLowerCase())===((A=d==null?void 0:d.alias)==null?void 0:A.toLowerCase())}),d=d||Se.find(c=>{var m,A;return((m=c.alias)==null?void 0:m.toLowerCase())===((A=h==null?void 0:h.alias)==null?void 0:A.toLowerCase())}),h=h||Me[0],d=d||Se[0],s.push((a=h.models)!=null&&a.includes(l)?l:h.model),n.push((o=d.models)!=null&&o.includes(l)?l:d.model)}return{weatherModels:s.join(","),marineModels:n.join(",")}}static autoPickSubCategories(e){e=e.toUpperCase();const a=Me.filter(s=>s.alias===e),o=Se.filter(s=>s.alias===e),r=[];return a.forEach(s=>{s.categories&&r.push(...s.categories.split(","))}),o.forEach(s=>{s.categories&&r.push(...s.categories.split(","))}),r}static pickHourly(e,a){var o,r,s,n,l,h,d,c,m,A,C,B,y,E,v,u,f,p,b,g,w,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae;const X=typeof a=="string"?j(a):a,U=e==null?void 0:e.weather,I=e==null?void 0:e.marine,pe=j((r=(o=U==null?void 0:U[0])==null?void 0:o.hourly)==null?void 0:r.date).utc(),R=pe.clone().add((l=(n=(s=U==null?void 0:U[0])==null?void 0:s.hourly)==null?void 0:n.time)==null?void 0:l.at(0),"h"),K=pe.clone().add((c=(d=(h=U==null?void 0:U[0])==null?void 0:h.hourly)==null?void 0:d.time)==null?void 0:c.at(-1),"h"),xe=[];if(X.isBetween(R,K,"millisecond","[]")){const N=X.utc().diff(R,"h",!1);let le,Ce;if(U){let Ee=0,Be=0;for(const D of U){const T=D==null?void 0:D.hourly;for(let Ie=N-(N-1)%3;Ie<=N;Ie++)Ee+=(m=T==null?void 0:T.precipitation)==null?void 0:m.at(Ie);for(let Ie=N-(N-1)%6;Ie<=N;Ie++)Be+=(A=T==null?void 0:T.precipitation)==null?void 0:A.at(Ie);le={temp:(C=T==null?void 0:T.temperature_2m)==null?void 0:C.at(N),apparentTemp:(B=T==null?void 0:T.apparent_temperature)==null?void 0:B.at(N),rh:(y=T==null?void 0:T.relative_humidity_2m)==null?void 0:y.at(N),dp:(E=T==null?void 0:T.dew_point_2m)==null?void 0:E.at(N),precip:{probability:(v=T==null?void 0:T.precipitation_probability)==null?void 0:v.at(N),sum:(u=T==null?void 0:T.precipitation)==null?void 0:u.at(N),sum3Hours:Math.round(Ee*100)/100,sum6Hours:Math.round(Be*100)/100},pmsl:(f=T==null?void 0:T.pressure_msl)==null?void 0:f.at(N),psurf:(p=T==null?void 0:T.surface_pressure)==null?void 0:p.at(N),code:(b=T==null?void 0:T.weather_code)==null?void 0:b.at(N),visibility:this.m2nm((g=T==null?void 0:T.visibility)==null?void 0:g.at(N)),wind:{speed:(w=T==null?void 0:T.wind_speed_10m)==null?void 0:w.at(N),kts:(k=T==null?void 0:T.wind_speed_10m)==null?void 0:k.at(N),degree:(_=T==null?void 0:T.wind_direction_10m)==null?void 0:_.at(N),bearing:((S=T==null?void 0:T.wind_direction_10m)==null?void 0:S.at(N))!==null?(((M=T==null?void 0:T.wind_direction_10m)==null?void 0:M.at(N))+180)%360:null,gusts:(Q=T==null?void 0:T.wind_gusts_10m)==null?void 0:Q.at(N)},isDay:(V=T==null?void 0:T.is_day)==null?void 0:V.at(N)};const{name:Ne,url:ze,bg:$}=this.parseWeatherCode(le.code,le.isDay);le.name=Ne,le.url=ze,le.bg=$,le.wind.scale=this.beaufort(this.kts2ms(le.wind.kts)),le.wind.direction=this.degree2Direction(le.wind.degree),xe.push({utc:R.add(N,"h").format(),model:D.model,weather:{...le}})}}if(I){let Ee=0;for(const Be of I){const D=Be==null?void 0:Be.hourly;Ce={wave:{sig:{height:(H=D==null?void 0:D.wave_height)==null?void 0:H.at(N),degree:(ae=D==null?void 0:D.wave_direction)==null?void 0:ae.at(N),bearing:((q=D==null?void 0:D.wave_direction)==null?void 0:q.at(N))!==null?(((ie=D==null?void 0:D.wave_direction)==null?void 0:ie.at(N))+180)%360:null,period:(ce=D==null?void 0:D.wave_period)==null?void 0:ce.at(N)},swell:{height:(re=D==null?void 0:D.swell_wave_height)==null?void 0:re.at(N),degree:(he=D==null?void 0:D.swell_wave_direction)==null?void 0:he.at(N),bearing:((oe=D==null?void 0:D.swell_wave_direction)==null?void 0:oe.at(N))!==null?(((F=D==null?void 0:D.swell_wave_direction)==null?void 0:F.at(N))+180)%360:null,period:(Y=D==null?void 0:D.swell_wave_period)==null?void 0:Y.at(N),peakPeriod:(se=D==null?void 0:D.swell_wave_peak_period)==null?void 0:se.at(N)},wd:{height:(te=D==null?void 0:D.wind_wave_height)==null?void 0:te.at(N),degree:(ne=D==null?void 0:D.wind_wave_direction)==null?void 0:ne.at(N),bearing:((ge=D==null?void 0:D.wind_wave_direction)==null?void 0:ge.at(N))!==null?(((de=D==null?void 0:D.wind_wave_direction)==null?void 0:de.at(N))+180)%360:null,period:(ye=D==null?void 0:D.wind_wave_period)==null?void 0:ye.at(N),peakPeriod:(x=D==null?void 0:D.wind_wave_peak_period)==null?void 0:x.at(N)}},current:{speed:(we=D==null?void 0:D.ocean_current_velocity)==null?void 0:we.at(N),kts:(me=D==null?void 0:D.ocean_current_velocity)==null?void 0:me.at(N),degree:(be=D==null?void 0:D.ocean_current_direction)==null?void 0:be.at(N),bearing:((fe=D==null?void 0:D.ocean_current_direction)==null?void 0:fe.at(N))??null},sst:(Le=D==null?void 0:D.sea_surface_temperature)==null?void 0:Le.at(N),height:(Ae=D==null?void 0:D.sea_level_height_msl)==null?void 0:Ae.at(N)},Ce.wave=this.parseWave(Ce.wave,le==null?void 0:le.wind),Ce.current.direction=this.degree2Direction(Ce.current.degree),Object.assign(xe[Ee],Ce),Ee++}}}return xe}static toLegacy(e){var a,o,r,s,n,l,h,d,c,m;return{wind:(a=e==null?void 0:e.weather)==null?void 0:a.wind,visibility:(o=e==null?void 0:e.weather)==null?void 0:o.visibility,temp:(r=e==null?void 0:e.weather)==null?void 0:r.temp,prmsl:(s=e==null?void 0:e.weather)==null?void 0:s.pmsl,gusts:{kts:(l=(n=e==null?void 0:e.weather)==null?void 0:n.wind)==null?void 0:l.gusts},precip:(h=e==null?void 0:e.weather)==null?void 0:h.precip,code:(d=e==null?void 0:e.weather)==null?void 0:d.code,name:(c=e==null?void 0:e.weather)==null?void 0:c.name,url:(m=e==null?void 0:e.weather)==null?void 0:m.url,wave:e==null?void 0:e.wave,current:e==null?void 0:e.current,sst:e==null?void 0:e.sst,height:e==null?void 0:e.height,utc:e==null?void 0:e.utc,source:e==null?void 0:e.model}}static pickDaily(e,a){var o,r,s,n,l,h,d,c,m,A,C,B,y,E,v,u,f,p,b,g,w,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x;const we=typeof a=="string"?j(a):a,me=e==null?void 0:e.weather,be=e==null?void 0:e.marine,fe=j((s=(r=(o=me==null?void 0:me[0])==null?void 0:o.daily)==null?void 0:r.time)==null?void 0:s.at(0)),Le=j((h=(l=(n=me==null?void 0:me[0])==null?void 0:n.daily)==null?void 0:l.time)==null?void 0:h.at(-1)),Ae=[];if(we.isBetween(fe,Le,"millisecond","[]")){let X,U;const I=we.diff(fe,"d",!1);if(me)for(const pe of me){const R=pe.daily;X={code:(d=R.weather_code)==null?void 0:d.at(I),temp:{max:(c=R.temperature_2m_max)==null?void 0:c.at(I),min:(m=R.temperature_2m_min)==null?void 0:m.at(I),mean:(A=R.temperature_2m_mean)==null?void 0:A.at(I)},apparentTemp:{max:(C=R.apparent_temperature_max)==null?void 0:C.at(I),min:(B=R.apparent_temperature_min)==null?void 0:B.at(I)},precip:{sum:(y=R.precipitation_sum)==null?void 0:y.at(I),rainSum:(E=R.rain_sum)==null?void 0:E.at(I),snowfallSum:(v=R.snowfall_sum)==null?void 0:v.at(I),showersSum:(u=R.showers_sum)==null?void 0:u.at(I),hours:(f=R.precipitation_hours)==null?void 0:f.at(I),probability:(p=R.precipitation_probability_max)==null?void 0:p.at(I)},rh:{max:(b=R.relative_humidity_2m_max)==null?void 0:b.at(I),min:(g=R.relative_humidity_2m_min)==null?void 0:g.at(I),mean:(w=R.relative_humidity_2m_mean)==null?void 0:w.at(I)},wind:{speed:(k=R.wind_speed_10m_max)==null?void 0:k.at(I),kts:(_=R.wind_speed_10m_max)==null?void 0:_.at(I),degree:(S=R.wind_direction_10m_dominant)==null?void 0:S.at(I),gusts:(M=R.wind_gusts_10m_max)==null?void 0:M.at(I),bearing:((Q=R.wind_direction_10m_dominant)==null?void 0:Q.at(I))!==null?(((V=R.wind_direction_10m_dominant)==null?void 0:V.at(I))+180)%360:null}};const{name:K,url:xe,bg:N}=this.parseWeatherCode(X.code,!0);X.name=K,X.url=xe,X.bg=N,X.wind.scale=this.beaufort(this.kts2ms(X.wind.kts)),X.wind.direction=this.degree2Direction(X.wind.degree),Ae.push({utc:fe.add(I,"d").utc().format(),model:pe.model,weather:{...X}})}if(be){let pe=0;for(const R of be){const K=R.daily;U={wave:{sig:{height:(H=K.wave_height_max)==null?void 0:H.at(I),degree:(ae=K.wave_direction_dominant)==null?void 0:ae.at(I),period:(q=K.wave_period_max)==null?void 0:q.at(I),bearing:((ie=K.wave_direction_dominant)==null?void 0:ie.at(I))!==null?(((ce=K.wave_direction_dominant)==null?void 0:ce.at(I))+180)%360:null},swell:{height:(re=K.swell_wave_height_max)==null?void 0:re.at(I),degree:(he=K.swell_wave_direction_dominant)==null?void 0:he.at(I),period:(oe=K.swell_wave_period_max)==null?void 0:oe.at(I),peakPeriod:(F=K.swell_wave_peak_period_max)==null?void 0:F.at(I),bearing:((Y=K.swell_wave_direction_dominant)==null?void 0:Y.at(I))!==null?((se=K.swell_wave_direction_dominant)==null?void 0:se.at(I))%360:null},wd:{height:(te=K.wind_wave_height_max)==null?void 0:te.at(I),degree:(ne=K.wind_wave_direction_dominant)==null?void 0:ne.at(I),period:(ge=K.wind_wave_period_max)==null?void 0:ge.at(I),peakPeriod:(de=K.wind_wave_peak_period_max)==null?void 0:de.at(I),bearing:((ye=K.wind_wave_direction_dominant)==null?void 0:ye.at(I))!==null?(((x=K.wind_wave_direction_dominant)==null?void 0:x.at(I))+180)%360:null}}},U.wave=this.parseWave(U.wave,X==null?void 0:X.wind),Object.assign(Ae[pe],U),pe++}}}return Ae}static parseWave(e,a){if(e.sig.direction=this.degree2Direction(e.sig.degree),e.swell.direction=this.degree2Direction(e.swell.degree),e.wd.direction=this.degree2Direction(e.wd.degree),e.sig.scale=this.douglas(e.sig.height),e.swell.scale=this.douglas(e.swell.height),e.wd.scale=this.douglas(e.wd.height),e.sig.height===0){const o=Math.sqrt(Math.pow(e.swell.height||0,2)+Math.pow(e.wd.height||0,2));e.sig.height=Math.round(o*100)/100}if(e.swell.height===0)if(e.sig.height>e.wd.height){const o=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.wd.height||0,2)));e.swell.height=Math.round(o*100)/100}else{const o=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,r=o>1?o/10:o>.5?o/5:o>.3?o/2:o;e.swell.height=Math.round(r*100)/100}if(e.wd.height===0||e.wd.height>e.sig.height)if(e.sig.height>e.swell.height){const o=Math.sqrt(Math.abs(Math.pow(e.sig.height||0,2)-Math.pow(e.swell.height||0,2))),r=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(Math.min(o,r)*100)/100}else{const o=.24*this.kts2ms((a==null?void 0:a.kts)||0);e.wd.height=Math.round(o*100)/100}return e.swell.height>e.sig.height&&(e.swell.height=Math.round(e.sig.height*.76*100)/100),e.sig.period||(e.sig.period=Math.round(5*Math.sqrt(e.sig.height))),e.swell.period||(e.swell.period=Math.round(5*Math.sqrt(e.swell.height))),e.wd.period||(e.wd.period=Math.round(5*Math.sqrt(e.wd.height))),e}static parseWeatherCode(e,a){const o=this.weatherCode(e);return(a?o.day:o.night)||{}}static weatherCode(e){const a={code:e};switch(e){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(e){return isNaN(e)||e===null?e:Math.round(e*1852/3600*1e4)/1e4}static kts2kmh(e){return isNaN(e)||e===null?e:e*1.852}static m2nm(e){return isNaN(e)||e===null?e:Math.round(e/1e3/1.852*1e4)/1e4}static kmh2kts(e){return isNaN(e)||e===null?e:this.ms2kts(e*1e3/3600)}static ms2kts(e){return isNaN(e)||e===null?e:Math.round(e*3600/1852*1e4)/1e4}static degree2Radian(e){if(isNaN(e)||e===null)return e;let a=e%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(e){const a=this.degree2Radian(e);if(isNaN(a)||a===null)return null;let o="N/A";const r=Math.PI/16;return a<r?o="N":a>=r&&a<3*r?o="NNE":a>=3*r&&a<5*r?o="NE":a>=5*r&&a<7*r?o="ENE":a>=7*r&&a<9*r?o="E":a>=9*r&&a<11*r?o="ESE":a>=11*r&&a<13*r?o="SE":a>=13*r&&a<15*r?o="SSE":a>=15*r&&a<17*r?o="S":a>=17*r&&a<19*r?o="SSW":a>=19*r&&a<21*r?o="SW":a>=21*r&&a<23*r?o="WSW":a>=23*r&&a<25*r?o="W":a>=25*r&&a<27*r?o="WNW":a>=27*r&&a<29*r?o="NW":a>=29*r&&a<31*r?o="NNW":a>=31*r&&a<32*r&&(o="N"),o}static beaufort(e){let a=0;return isNaN(e)||(e=Math.round(e*10)/10,e<=.2?a=0:e<=1.5?a=1:e<=3.3?a=2:e<=5.4?a=3:e<=7.9?a=4:e<=10.7?a=5:e<=13.8?a=6:e<=17.1?a=7:e<=20.7?a=8:e<=22.4?a=9:e<=28.4?a=10:e<=32.6?a=11:e<=36.9?a=12:e<=41.4?a=13:e<=46.1?a=14:e<=50.9?a=15:e<=55.9?a=16:e<=61.2?a=17:e>61.2&&(a=18)),a}static douglas(e){let a="Calm";return isNaN(e)||e<=.1?a="Calm":e<=.5?a="Smooth":e<=1.25?a="Slight":e<=2.5?a="Moderate":e<=4?a="Rough":e<=6?a="VeryRough":e<=9?a="High":e<=14?a="VeryHigh":a="Precipitous",a}}const Qo="",wa={name:"IdmTropicals",props:{map:{type:Object},tropicals:{type:Object},date:{type:String},timeZone:{type:Number,default:0},permission:{type:Number},fromTropicalReport:{type:Boolean,default:!1}},emits:["tropical","tropicalProbability","tropicalNotification"],data(){return{helper:ee.CompanyHelper,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",showTropicals:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:z.featureCollection([]),circleSource:"circle-source",circleSourceData:z.featureCollection([]),circleLayer:"tropical-circle-layer",labelMarkers:[]}},computed:{computeTime(){return function(i){if(i){const e=j(i).utcOffset(this.timeZone),a=this.timeZone<0?this.timeZone:"+"+this.timeZone;return`${e.format("MMM-DD/HHmm")} [ UTC${a} ] ( ${e==null?void 0:e.fromNow()} )`}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(i){const e=Fe.kts2ms(i);return Fe.beaufort(e)}},computeMovement(){return function(i){var e,a;return(a=(e=i==null?void 0:i.forecasts)==null?void 0:e.find(o=>!o.disabled))==null?void 0:a.movement}}},watch:{"tropicals.active":{handler(){this.handleInit()},immediate:!0},showTropicals:{handler(){this.$emit("tropical",this.showTropicals)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(){this.handleRefresh()}}},methods:{handleRefresh(){var e,a;(((a=(e=this.tropicals)==null?void 0:e.data)==null?void 0:a.features)||[]).forEach(o=>{var r,s;((r=o.geometry)==null?void 0:r.type)==="Point"&&((s=o.properties)!=null&&s.important)&&(o.properties.format=j(o.properties.date).utcOffset(this.timeZone).format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`))}),this.handleInit()},handleInit(){var i,e;this.tropicals&&this.tropicals.active?(this.handleRender(),(i=this.map)==null||i.on("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.forecastModelLayer,this.pointCircleLayer,this.pointLabelLayer,this.historyPointCircleLayer,this.historyPointLabelLayer],this.handleClick))},handleRender(){var i,e,a,o,r,s,n,l,h,d,c,m,A;if(!this.map)setTimeout(()=>{this.handleRender()},500);else{if(this.tropicals){const B=new Date().valueOf();let y=0,E=0;if((i=this.map)!=null&&i.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((e=this.tropicals)!=null&&e.active?this.tropicals.data:this.empty),E=new Date().valueOf()-(B+y),console.log("[tropicals] update elapsed: ",E,", total: ",y+=E)):(this.map.addSource(this.source,{type:"geojson",data:(o=this.tropicals)!=null&&o.active?(r=this.tropicals)==null?void 0:r.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":"#000","line-width":4,"line-opacity":.5}}),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":13},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}}),E=new Date().valueOf()-(B+y),console.log("[tropical] add elapsed: ",E,", total: ",y+=E)),(s=this.map)!=null&&s.getSource(this.clusterSource))(l=this.map)==null||l.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),E=new Date().valueOf()-(B+y),console.log("[tropical] update elapsed: ",E,", total: ",y+=E);else{if(this.map.addSource(this.clusterSource,{type:"geojson",data:(h=this.tropicals)!=null&&h.active?(d=this.tropicals)==null?void 0:d.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":6,"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.fromTropicalReport)this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[0,-.5],"text-anchor":"bottom-left","text-size":12},paint:{"text-color":"rgba(0, 0, 0, 1)","text-halo-color":"#fff","text-halo-width":1}});else{const v=(c=this.tropicals.data.features)==null?void 0:c.filter(g=>g.geometry.type==="Point"&&g.properties.type==="forecast");let u=0,f=0,p=0,b=(A=(m=this.findClosestToNumber(v,"hour",12))==null?void 0:m.properties)==null?void 0:A.hour;v.forEach((g,w)=>{var S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae;let k;const _=this.findClosestToNumber(v,"hour",b+u*24);if(_&&((S=_==null?void 0:_.properties)==null?void 0:S.hour)===((M=g.properties)==null?void 0:M.hour)&&(k=_),k){let X=0,U="tropical-marker-box",I="tropical-marker-line";U=((H=(V=(Q=k.properties)==null?void 0:Q.wind)==null?void 0:V.en)==null?void 0:H.toUpperCase())==="SUPER TY"?U+" supper":U+" normal",I=((ie=(q=(ae=k.properties)==null?void 0:ae.wind)==null?void 0:q.en)==null?void 0:ie.toUpperCase())==="SUPER TY"?I+" supper":I+" normal",((re=(ce=k.properties)==null?void 0:ce.movement)==null?void 0:re.deg)>=0&&((oe=(he=k.properties)==null?void 0:he.movement)==null?void 0:oe.deg)<=45||((Y=(F=k.properties)==null?void 0:F.movement)==null?void 0:Y.deg)>=135&&((te=(se=k.properties)==null?void 0:se.movement)==null?void 0:te.deg)<=215||((ge=(ne=k.properties)==null?void 0:ne.movement)==null?void 0:ge.deg)>=315&&((ye=(de=k.properties)==null?void 0:de.movement)==null?void 0:ye.deg)<=360?(X=p%2===0?[100,0]:[-100,0],U=p%2===0?U+" right":U+" left",I=p%2===0?I+" vertical right":I+" vertical left",p=p+1):(X=f%2===0?[60,40]:[60,-40],U=f%2===0?U+" right":U+" left",I=f%2===0?I+" align bottom":I+" align top",f=f+1);const pe=document.createElement("div");pe.className=U,pe.innerHTML=`
192
192
  <div style="">
193
193
  <span>${((x=g.properties)==null?void 0:x.format)||"-"}</span>
194
194
  <span> [${((be=(me=(we=g.properties)==null?void 0:we.wind)==null?void 0:me.en)==null?void 0:be.toUpperCase())||"-"}]</span>
@@ -198,7 +198,7 @@
198
198
  <span>${((Ae=g.properties)==null?void 0:Ae.pressure)||"-"} kPa</span>
199
199
  </div>
200
200
  <div class="${I}"></div>
201
- `,this.labelMarkers.push(new _e.Marker(pe).setLngLat(g.geometry.coordinates).setOffset(X).addTo(this.map)),u=u+1}})}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":7,"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,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[0,-.5],"text-anchor":"bottom-left","text-size":14},paint:{"text-color":"rgba(0, 0, 0, 1)","text-halo-color":"#fff","text-halo-width":1}}),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-offset":[0,1.5],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0},paint:{"text-color":"#fff","text-halo-color":"#0033ff","text-halo-width":4}}),E=new Date().valueOf()-(B+y),console.log("[tropical] add elapsed: ",E,", total: ",y+=E)}}this.handleDrawCircle();const C=W.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(C)),this.handleDateChange()}},findClosestToNumber(i,e,a){var s,n;if(!i.length)return null;let o=i[0],r=Math.abs(((s=o==null?void 0:o.properties)==null?void 0:s[e])-a);for(let l=1;l<i.length;l++){const h=i[l],d=Math.abs(Number((n=h==null?void 0:h.properties)==null?void 0:n.hour)-a);d<r&&(r=d,o=h)}return o},handleClear(){var i;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),(i=this.interpolateMarkers)==null||i.forEach(e=>e==null?void 0:e.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),this.labelMarkers.forEach(e=>e==null?void 0:e.remove()),this.labelMarkers=[])},handleDateChange(){var i,e,a,o,r,s,n,l,h,d,c,m,w,C,B,y,E,v,u,f,p,b,g,A,k,_,S,M,Q,V,H,ae;if((i=this.interpolateMarkers)==null||i.forEach(q=>q==null?void 0:q.remove()),this.circleSourceData.features=[],(e=this.interpolateData)!=null&&e.length&&this.tropicals.active){const q=j(this.date).utc().set({minute:0,second:0,millisecond:0}),ie=j.utc().add(1,"hour").set({minute:0,second:0,millisecond:0}),ce=q.isBefore(ie)&&ie.diff(q,"h")<2?ie.format():q.format(),re=this.interpolateData.filter(F=>F.properties.date===ce&&!F.properties.disabled),he=this.handleComputePolygons(re),oe=z.featureCollection([...re]);he.forEach(F=>{oe.features.push(F)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(o=this.map)==null||o.getSource(this.interpolateSource).setData(oe):((r=this.map)==null||r.addSource(this.interpolateSource,{type:"geojson",data:oe}),(s=this.map)==null||s.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 re)if(!F.properties.disabled){let Y="#f44336";((l=(n=F.properties)==null?void 0:n.wind)==null?void 0:l.kts)<32||!((d=(h=F.properties)==null?void 0:h.wind)!=null&&d.kts)?Y="#03f869":((m=(c=F.properties)==null?void 0:c.wind)==null?void 0:m.kts)>=32&&((C=(w=F.properties)==null?void 0:w.wind)==null?void 0:C.kts)<47?Y="#f2f202":((y=(B=F.properties)==null?void 0:B.wind)==null?void 0:y.kts)>=47&&((v=(E=F.properties)==null?void 0:E.wind)==null?void 0:v.kts)<63?Y="#ff9100":((f=(u=F.properties)==null?void 0:u.wind)==null?void 0:f.kts)>=63&&((b=(p=F.properties)==null?void 0:p.wind)==null?void 0:b.kts)<79?Y="#f44336":((A=(g=F.properties)==null?void 0:g.wind)==null?void 0:A.kts)>=79&&((_=(k=F.properties)==null?void 0:k.wind)==null?void 0:_.kts)<94?Y="#f903d0":((M=(S=F.properties)==null?void 0:S.wind)==null?void 0:M.kts)>=94?Y="#8702f9":Y="#f44336";const se=`<svg t="1719918955501"
201
+ `,this.labelMarkers.push(new _e.Marker(pe).setLngLat(g.geometry.coordinates).setOffset(X).addTo(this.map)),u=u+1}})}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":7,"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,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[0,-.5],"text-anchor":"bottom-left","text-size":14},paint:{"text-color":"rgba(0, 0, 0, 1)","text-halo-color":"#fff","text-halo-width":1}}),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-offset":[0,1.5],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0},paint:{"text-color":"#fff","text-halo-color":"#0033ff","text-halo-width":4}}),E=new Date().valueOf()-(B+y),console.log("[tropical] add elapsed: ",E,", total: ",y+=E)}}this.handleDrawCircle();const C=W.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(C)),this.handleDateChange()}},findClosestToNumber(i,e,a){var s,n;if(!i.length)return null;let o=i[0],r=Math.abs(((s=o==null?void 0:o.properties)==null?void 0:s[e])-a);for(let l=1;l<i.length;l++){const h=i[l],d=Math.abs(Number((n=h==null?void 0:h.properties)==null?void 0:n.hour)-a);d<r&&(r=d,o=h)}return o},handleClear(){var i;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),(i=this.interpolateMarkers)==null||i.forEach(e=>e==null?void 0:e.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),this.labelMarkers.forEach(e=>e==null?void 0:e.remove()),this.labelMarkers=[])},handleDateChange(){var i,e,a,o,r,s,n,l,h,d,c,m,A,C,B,y,E,v,u,f,p,b,g,w,k,_,S,M,Q,V,H,ae;if((i=this.interpolateMarkers)==null||i.forEach(q=>q==null?void 0:q.remove()),this.circleSourceData.features=[],(e=this.interpolateData)!=null&&e.length&&this.tropicals.active){const q=j(this.date).utc().set({minute:0,second:0,millisecond:0}),ie=j.utc().add(1,"hour").set({minute:0,second:0,millisecond:0}),ce=q.isBefore(ie)&&ie.diff(q,"h")<2?ie.format():q.format(),re=this.interpolateData.filter(F=>F.properties.date===ce&&!F.properties.disabled),he=this.handleComputePolygons(re),oe=z.featureCollection([...re]);he.forEach(F=>{oe.features.push(F)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(o=this.map)==null||o.getSource(this.interpolateSource).setData(oe):((r=this.map)==null||r.addSource(this.interpolateSource,{type:"geojson",data:oe}),(s=this.map)==null||s.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 re)if(!F.properties.disabled){let Y="#f44336";((l=(n=F.properties)==null?void 0:n.wind)==null?void 0:l.kts)<32||!((d=(h=F.properties)==null?void 0:h.wind)!=null&&d.kts)?Y="#03f869":((m=(c=F.properties)==null?void 0:c.wind)==null?void 0:m.kts)>=32&&((C=(A=F.properties)==null?void 0:A.wind)==null?void 0:C.kts)<47?Y="#f2f202":((y=(B=F.properties)==null?void 0:B.wind)==null?void 0:y.kts)>=47&&((v=(E=F.properties)==null?void 0:E.wind)==null?void 0:v.kts)<63?Y="#ff9100":((f=(u=F.properties)==null?void 0:u.wind)==null?void 0:f.kts)>=63&&((b=(p=F.properties)==null?void 0:p.wind)==null?void 0:b.kts)<79?Y="#f44336":((w=(g=F.properties)==null?void 0:g.wind)==null?void 0:w.kts)>=79&&((_=(k=F.properties)==null?void 0:k.wind)==null?void 0:_.kts)<94?Y="#f903d0":((M=(S=F.properties)==null?void 0:S.wind)==null?void 0:M.kts)>=94?Y="#8702f9":Y="#f44336";const se=`<svg t="1719918955501"
202
202
  class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" p-id="18382"
203
203
  xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
204
204
  <path
@@ -212,4 +212,4 @@
212
212
  <path
213
213
  d="M420.66666667 959.17a16.08 16.08 0 0 1-15.91-13.49A15.89 15.89 0 0 1 415.50666667 928c1.49-0.55 38.88-14.76 72.79-65.52A354.55 354.55 0 0 1 162.66666667 509.17a450.14 450.14 0 0 1 450.5-450.5 16.07 16.07 0 0 1 15.91 13.48 15.88 15.88 0 0 1-10.75 17.66c-1.58 0.58-39.13 14.9-73.07 65.95A354.22 354.22 0 0 1 871.66666667 509.17a16 16 0 0 1-0.52 4.05A450.14 450.14 0 0 1 420.66666667 959.17zM554.80666667 94.72C351.57666667 123.2 194.66666667 298.21 194.66666667 509.17c0 177.08 144.06 321.74 321.13 322.48a16 16 0 0 1 14.07 23.49c-16.11 30.42-34.27 52.37-50.85 68C682.25666667 894.63 839.16666667 719.63 839.16666667 508.67a15.94 15.94 0 0 1 0.47-3.86C837.30666667 329.33 693.82666667 187 517.80666667 186.67A16 16 0 0 1 503.66666667 163.21c16.21-30.69 34.47-52.79 51.14-68.49z"
214
214
  fill="#ffffff" p-id="18386"></path>
215
- </svg>`,te=document.createElement("div");te.className="hurricane-hourly-marker",te.innerHTML=`<div class="${F.geometry.coordinates[1]>=0?"center north":"center south"}">${se}</div>`;const ne=new _e.Marker(te).setLngLat(F.geometry.coordinates).addTo(this.map);this.interpolateMarkers.push(ne),(V=(Q=this.map)==null?void 0:Q.getSource(this.circleSource))==null||V.setData(this.circleSourceData)}}else(H=this.map)!=null&&H.getSource(this.interpolateSource)&&((ae=this.map)==null||ae.getSource(this.interpolateSource).setData(this.empty))},handleClick(i){var s,n,l,h,d,c,m,w;const e=i.features[0],a=(n=(s=this.tropicals)==null?void 0:s.data)==null?void 0:n.features.filter(C=>{var B;return C.geometry.type==="LineString"&&C.properties.type==="forecast"&&C.properties.name===((B=e==null?void 0:e.properties)==null?void 0:B.name)}),o=(h=(l=this.tropicals)==null?void 0:l.data)==null?void 0:h.features.filter(C=>{var B;return C.geometry.type==="LineString"&&C.properties.type==="history"&&C.properties.name===((B=e==null?void 0:e.properties)==null?void 0:B.name)});this.activeTropicals={name:(d=e==null?void 0:e.properties)==null?void 0:d.name,forecasts:a.map(C=>C.properties),history:(c=o[0])==null?void 0:c.properties,showCircle:(w=(m=a[0])==null?void 0:m.properties)==null?void 0:w.showCircle},this.showTropicals=!0;const r=document.getElementById("idm-tropical-gl3");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat([i.lngLat.lng,i.lngLat.lat]):this.activeTropicalsMarker=new _e.Marker(r).setLngLat([i.lngLat.lng,i.lngLat.lat]).setOffset([220,0]).addTo(this.map)},handleForecastToggle(i){var o,r,s,n,l,h;i.disabled=!i.disabled;const e=`${i.name}-${i.model}`,a=(r=(o=this.map)==null?void 0:o.getSource(this.source)._data)==null?void 0:r.features;a.forEach(d=>{d.properties.category===e&&(d.properties.disabled=i.disabled)}),this.interpolateData.forEach(d=>{d.properties.category===e&&(d.properties.disabled=i.disabled)}),(n=(s=this.map)==null?void 0:s.getSource(this.source))==null||n.setData(z.featureCollection(a)),(h=(l=this.map)==null?void 0:l.getSource(this.clusterSource))==null||h.setData(z.featureCollection(a)),this.handleDateChange()},handleStrikeProbability(i){this.$emit("tropicalProbability",i)},handleNotification(i){this.$emit("tropicalNotification",i)},handleToggleCircles(i){var e,a;i.showCircle=!i.showCircle,(a=(e=this.tropicals.data)==null?void 0:e.features)==null||a.forEach(o=>{o.properties.name===i.name&&(o.properties.showCircle=i.showCircle)}),this.handleRender()},handleDrawCircle(){var i,e;(i=this.map)!=null&&i.getSource(this.circleSource)?(e=this.map)==null||e.getSource(this.circleSource).setData(this.circleSourceData):(this.map.addSource(this.circleSource,{type:"geojson",data:this.circleSourceData}),this.map.addLayer({id:this.circleLayer,type:"line",source:this.circleSource,filter:["all",["==","$type","Polygon"],["==","type","tropicalCircle"]],paint:{"line-color":"#fff","line-width":2,"line-opacity":1,"line-dasharray":[1,1]}}))},handleComputePolygons(i){const e=[];for(const a of i){const o=a.properties.wind,r={ne:o.r7ne>=0?o.r7ne:void 0,se:o.r7se>=0?o.r7se:void 0,sw:o.r7sw>=0?o.r7sw:void 0,nw:o.r7nw>=0?o.r7nw:void 0},s=this.handleComputeArc(a.geometry.coordinates,r,{...a.properties,level:7});e.push(s);const n={ne:o.r10ne>=0?o.r10ne:void 0,se:o.r10se>=0?o.r10se:void 0,sw:o.r10sw>=0?o.r10sw:void 0,nw:o.r10nw>=0?o.r10nw:void 0},l=this.handleComputeArc(a.geometry.coordinates,n,{...a.properties,level:10});e.push(l)}return e},handleComputeArc(i,e,a){var s;const o=[];for(const n in e){const l=e[n]??0;let h;switch(n){case"ne":h=z.lineArc(i,l,0,90,{steps:l>0?32:1,units:"nauticalmiles"});break;case"se":h=z.lineArc(i,l,90,180,{steps:l>0?32:1,units:"nauticalmiles"});break;case"sw":h=z.lineArc(i,l,180,270,{steps:l>0?32:1,units:"nauticalmiles"});break;case"nw":h=z.lineArc(i,l,270,360,{steps:l>0?32:1,units:"nauticalmiles"});break}o.push(...(s=h==null?void 0:h.geometry)==null?void 0:s.coordinates)}const r=z.lineString(o);return z.lineToPolygon(r,{properties:a})}}},ba={id:"idm-tropical-gl3",class:"idm-tropical-gl3"},La={class:"header-box"},Ca={class:"main"},va={key:0},xa={class:"sub"},Ea={id:"meteoBox",class:"main-box"},Ba={class:"content"},_a={class:"row"},ka={class:"col col-left",style:{"justify-content":"flex-start"}},Ia={class:"col col-right",style:{"justify-content":"flex-start"}},Da={class:"row"},Na={class:"col col-left",style:{"justify-content":"flex-start"}},za={class:"col col-right",style:{"justify-content":"flex-start"}},Pa={class:"row"},Ma={class:"col col-24",style:{"justify-content":"flex-start"}},Sa={class:"forecast-models"},Ta=["onClick"],Qa={class:"more"};function Ha(i,e,a,o,r,s){var n,l,h,d,c,m,w,C,B,y,E,v,u,f,p,b,g,A,k;return t.withDirectives((t.openBlock(),t.createElementBlock("div",ba,[t.createElementVNode("div",La,[t.createElementVNode("div",{class:"iconfont close-btn",onClick:e[0]||(e[0]=_=>r.showTropicals=!1)},""),t.createElementVNode("div",Ca,[(l=(n=r.activeTropicals)==null?void 0:n.history)!=null&&l.level?(t.openBlock(),t.createElementBlock("span",va,t.toDisplayString((d=(h=r.activeTropicals)==null?void 0:h.history)==null?void 0:d.level)+" , ",1)):t.createCommentVNode("",!0),t.createTextVNode(t.toDisplayString((c=r.activeTropicals)==null?void 0:c.name),1)]),t.createElementVNode("div",xa," Last update: "+t.toDisplayString(s.computeTime(((w=(m=r.activeTropicals)==null?void 0:m.history)==null?void 0:w.updated)||((y=(B=(C=r.activeTropicals)==null?void 0:C.forecasts)==null?void 0:B.filter(_=>!_.disabled)[0])==null?void 0:y.date))),1)]),t.createElementVNode("div",Ea,[t.createElementVNode("div",Ba,[t.createElementVNode("div",_a,[t.createElementVNode("div",ka,[e[3]||(e[3]=t.createElementVNode("label",null,"Wind speed : ",-1)),t.createElementVNode("span",null,t.toDisplayString(((v=(E=r.activeTropicals)==null?void 0:E.history)==null?void 0:v.kts)||"-")+" [kts]",1),t.createElementVNode("span",null,", BF "+t.toDisplayString(s.computeBF(((f=(u=r.activeTropicals)==null?void 0:u.history)==null?void 0:f.kts)||0)),1)]),t.createElementVNode("div",Ia,[e[4]||(e[4]=t.createElementVNode("label",null,"Pressure : ",-1)),t.createElementVNode("span",null,t.toDisplayString(((b=(p=r.activeTropicals)==null?void 0:p.history)==null?void 0:b.pressure)||"-")+" [hPa]",1)])]),t.createElementVNode("div",Da,[t.createElementVNode("div",Na,[e[5]||(e[5]=t.createElementVNode("label",null,"Move Speed: ",-1)),t.createElementVNode("span",null,t.toDisplayString((g=s.computeMovement(r.activeTropicals))==null?void 0:g.kts)+" [kts]",1)]),t.createElementVNode("div",za,[e[6]||(e[6]=t.createElementVNode("label",null,"Move Dir: ",-1)),t.createElementVNode("span",null,t.toDisplayString((A=s.computeMovement(r.activeTropicals))==null?void 0:A.deg)+" [°]",1)])]),t.createElementVNode("div",Pa,[t.createElementVNode("div",Ma,[e[7]||(e[7]=t.createElementVNode("label",{style:{width:"max-content"}},"Forecast Models : ",-1)),t.createElementVNode("div",Sa,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList((k=r.activeTropicals)==null?void 0:k.forecasts,(_,S)=>{var M,Q,V,H;return t.openBlock(),t.createElementBlock("div",{key:S,class:t.normalizeClass(["model",_.disabled?"":"active",S>0&&S<((Q=(M=r.activeTropicals)==null?void 0:M.forecasts)==null?void 0:Q.length)-1&&((H=(V=r.activeTropicals)==null?void 0:V.forecasts)==null?void 0:H.length)>2?"center-child":""]),onClick:ae=>s.handleForecastToggle(_)},[t.createElementVNode("span",{class:t.normalizeClass(_.model)},t.toDisplayString(_.model),3)],10,Ta)}),128))])])]),e[8]||(e[8]=t.createStaticVNode('<div class="row" style="padding:0;height:1px;margin:10px 0;background:var(--idm-black-1);"></div><div class="row" style="padding:2px 10px;"><div class="legend"><div class="icon td"></div><div class="label">TD</div></div><div class="legend"><div class="icon ts"></div><div class="label">TS</div></div><div class="legend"><div class="icon sts"></div><div class="label">STS</div></div><div class="legend"><div class="icon ty"></div><div class="label">TY</div></div><div class="legend"><div class="icon sty"></div><div class="label">STY</div></div><div class="legend"><div class="icon supper-ty"></div><div class="label">Super TY</div></div></div><div class="row" style="padding:2px 10px;"><div class="legend"><div class="icon history"></div><div class="label">History</div></div><div class="legend"><div class="icon r7"></div><div class="label">35kts Radii</div></div><div class="legend"><div class="icon r10"></div><div class="label">50kts Radii</div></div></div>',3))]),t.createElementVNode("div",Qa,[a.permission&r.helper.LEVEL.Supper?(t.openBlock(),t.createElementBlock("div",{key:0,class:"button",style:{"margin-right":"10px"},onClick:e[1]||(e[1]=_=>s.handleNotification(r.activeTropicals))},"Notify")):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"button",onClick:e[2]||(e[2]=_=>s.handleStrikeProbability(r.activeTropicals))},"Strike Probability >>")])])],512)),[[t.vShow,r.showTropicals&&!i.$attrs.hideTropicalsLegend]])}const Qe=O(wa,[["render",Ha]]),Ho="",Va={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[precip3h] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Fa={key:0};function Oa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Fa,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"mm",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"3",-1),t.createElementVNode("span",null,"7",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1)]),4)])):t.createCommentVNode("",!0)}const Ra=O(Va,[["render",Oa],["__scopeId","data-v-9708a7a3"]]),Vo="",ja={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[visibility] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Wa={key:0};function Ga(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Wa,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:i.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"nm",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"0.5",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"3",-1),t.createElementVNode("span",null,"9",-1)]),4)])):t.createCommentVNode("",!0)}const Ua=O(ja,[["render",Ga],["__scopeId","data-v-f7b2fb08"]]),Fo="",Ya={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[water-temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Ka={key:0};function Xa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Ka,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"°C",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1),t.createElementVNode("span",null,"40",-1)]),4)])):t.createCommentVNode("",!0)}const qa=O(Ya,[["render",Xa],["__scopeId","data-v-7521f582"]]),Oo="",Ja={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[water-temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Za={key:0};function $a(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Za,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"°C",-1),t.createElementVNode("span",null,"-20",-1),t.createElementVNode("span",null,"-10",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1),t.createElementVNode("span",null,"40",-1)]),4)])):t.createCommentVNode("",!0)}const ei=O(Ja,[["render",$a],["__scopeId","data-v-25daaa82"]]);/*! Element Plus Icons Vue v2.3.1 */var ti=t.defineComponent({name:"LocationFilled",__name:"location-filled",setup(i){return(e,a)=>(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t.createElementVNode("path",{fill:"currentColor",d:"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928m0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6"})]))}}),ai=ti;const ii="data:image/gif;base64,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",Ro="",ri={name:"IdmPoint",components:{LocationFilled:ai},props:{token:{type:String},map:{type:Object},show:{type:Boolean},ts:{type:String},gateway:{type:String},startTs:{type:String},forecastModel:{type:String},permission:{type:Number}},emits:["meteoMore","meteoNotify"],data(){return{helper:ee.CompanyHelper,showMeteo:!1,loading:!1,point:{},meteoData:void 0,activeIndex:2,tableData:{hours:[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]},currentHourData:void 0,positionOffset:void 0,positionGmt:void 0,localDate:void 0,meteoMarker:void 0,tideData:{},tideTableData:[],tideLoading:!1,showTables:!0,isDay:!0}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.show&&this.handleBind()}},forecastModel:{async handler(){var i;if(this.showMeteo&&this.ts){this.handleRender();const e=j();((i=j(this.ts))==null?void 0:i.diff(e,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData)}}},point:{async handler(){var i;if(this.showMeteo=!0,this.tideData={},this.meteoData={},this.showMeteo&&this.ts){this.handleRender();const e=j();if(((i=j(this.ts))==null?void 0:i.diff(e,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData),this.activeIndex===4){const o=De.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(o==null?void 0:o.length)>0?this.tideTableData=o:await this.fetchTidesData(this.point,this.ts,7)}}}},ts:{async handler(){var i;if(this.showMeteo&&this.ts){const e=j(),a=(i=j(this.ts))==null?void 0:i.diff(e,"d",!0),r=[0,1,2,3,4,5,6,7].every(s=>{var l;const n=Pe(this.ts).tz(this.positionGmt).add(3*s,"h").format();return(l=De.Meteo2Assist.pickHourly(this.meteoData,n))==null?void 0:l[0]});if(this.meteoData&&r?this.initTableData(this.meteoData):(this.loading||(a>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts)),this.initTableData(this.meteoData)),this.activeIndex===4){const s=De.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(s==null?void 0:s.length)>0?this.tideTableData=s:await this.fetchTidesData(this.point,this.ts,7)}}}}},computed:{computeHourL(){return function(i){return i?`${Pe(i).tz(this.positionGmt).format("HH")}`:"-"}},computeHourZ(){return function(i){return i?`${j(i).utc().format("HH")}Z`:"-"}},computeHourHmmLT(){return function(i){return i?`${Pe(i).tz(this.positionGmt).format("H:mm")}`:"-"}},computeLat(){return function(i,e=4){return W.LngLatHelper.lat2pretty(i,e).pretty}},computeLng(){return function(i,e=4){return W.LngLatHelper.lng2pretty(i,e).pretty}},roundPrecision(){return function(i,e=4){return isNaN(i)?"-":W.LngLatHelper.roundPrecision(i,e)}}},methods:{async fetchMeteoData(i,e,a){this.loading=!0,this.meteoData=[];let o=e?j(e).utc().format():j().utc().format();const{weatherModels:r,marineModels:s}=De.Meteo2Assist.autoPickMeteoModel(this.forecastModel);let n={lat:i.lat,lng:i.lng,datetime:o,forecastDays:a??7,weatherModels:r,marineModels:s},l=await ve.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,n,{headers:{Authorization:this.token||this.defaultMeteoToken}});(l==null?void 0:l.data.code)===0&&(this.meteoData=l==null?void 0:l.data.data,this.loading=!1)},async fetchHistoryData(i,e){this.loading=!0,this.meteoData=[];const a=e?j(e).utc().format():j().utc().format(),{weatherModels:o,marineModels:r}=De.Meteo2Assist.autoPickMeteoModel(this.forecastModel),s={lat:i.lat,lng:i.lng,datetime:a,forecastDays:3,pastDays:1,weatherModels:o,marineModels:r},n=await ve.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,s,{headers:{Authorization:this.token||this.defaultMeteoToken}});(n==null?void 0:n.data.code)===0&&(this.meteoData=n==null?void 0:n.data.data,this.loading=!1)},initTableData(i){var e,a,o,r,s,n,l,h,d;this.clearTable(),this.positionGmt=(a=(e=i==null?void 0:i.weather)==null?void 0:e[0])==null?void 0:a.timezone,this.positionOffset=(r=(o=i==null?void 0:i.weather)==null?void 0:o[0])==null?void 0:r.offset,this.localDate=(n=(s=Pe(this.ts))==null?void 0:s.tz(this.positionGmt))==null?void 0:n.format("MMM-DD/HHmm[LT]"),this.currentHourData=(l=De.Meteo2Assist.pickHourly(i,j(this.ts)))==null?void 0:l[0],((d=(h=this.currentHourData)==null?void 0:h.weather)==null?void 0:d.isDay)===0?this.isDay=!1:this.isDay=!0,this.$nextTick(()=>{var m,w,C,B,y,E,v,u,f,p,b,g,A,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge;if(!document.getElementById("meteoMainBox"))return!1;if(!this.currentHourData)return this.loading=!1,this.tableData.hours=[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],this.handleRender(),!1;for(let de=0;de<8;de++){const ye=Pe(this.ts).tz(this.positionGmt).add(3*de,"h").format();this.tableData.hours.push(ye);const x=((m=De.Meteo2Assist.pickHourly(i,ye))==null?void 0:m[0])||{};this.tableData.temp.push(this.roundPrecision((w=x==null?void 0:x.weather)==null?void 0:w.temp,0)??"-"),this.tableData.precipProbability.push(this.roundPrecision((B=(C=x==null?void 0:x.weather)==null?void 0:C.precip)==null?void 0:B.probability,0)??"-"),this.tableData.precip1h.push(this.roundPrecision((E=(y=x==null?void 0:x.weather)==null?void 0:y.precip)==null?void 0:E.sum,0)??"-"),this.tableData.visibility.push(this.roundPrecision((v=x==null?void 0:x.weather)==null?void 0:v.visibility,0)??"-"),this.tableData.windSpeed.push(this.roundPrecision((f=(u=x==null?void 0:x.weather)==null?void 0:u.wind)==null?void 0:f.kts,1)??"-"),this.tableData.windDir.push((b=(p=x==null?void 0:x.weather)==null?void 0:p.wind)==null?void 0:b.bearing),this.tableData.windGust.push(this.roundPrecision((A=(g=x==null?void 0:x.weather)==null?void 0:g.wind)==null?void 0:A.gusts,1)??"-"),this.tableData.sigwaveHeight.push(this.roundPrecision((_=(k=x==null?void 0:x.wave)==null?void 0:k.sig)==null?void 0:_.height,1)??"-"),this.tableData.sigwaveDir.push((M=(S=x==null?void 0:x.wave)==null?void 0:S.sig)==null?void 0:M.bearing),this.tableData.windwaveHeight.push(this.roundPrecision((V=(Q=x==null?void 0:x.wave)==null?void 0:Q.wd)==null?void 0:V.height,1)??"-"),this.tableData.windwaveDir.push((ae=(H=x==null?void 0:x.wave)==null?void 0:H.wd)==null?void 0:ae.bearing),this.tableData.windwavePeriod.push(this.roundPrecision((ie=(q=x==null?void 0:x.wave)==null?void 0:q.wd)==null?void 0:ie.period,1)??"-"),this.tableData.swellHeight.push(this.roundPrecision((re=(ce=x==null?void 0:x.wave)==null?void 0:ce.swell)==null?void 0:re.height,1)??"-"),this.tableData.swellDir.push((oe=(he=x==null?void 0:x.wave)==null?void 0:he.swell)==null?void 0:oe.bearing),this.tableData.swellPeriod.push(this.roundPrecision((Y=(F=x==null?void 0:x.wave)==null?void 0:F.swell)==null?void 0:Y.period,1)??"-"),this.tableData.currentSpeed.push(this.roundPrecision((se=x==null?void 0:x.current)==null?void 0:se.speed,1)??"-"),this.tableData.currentDir.push((te=x==null?void 0:x.current)==null?void 0:te.bearing),this.tableData.seaLevel.push(this.roundPrecision(x==null?void 0:x.height,1)??"-"),this.tableData.seaTemp.push(this.roundPrecision(x==null?void 0:x.sst,0)??"-"),this.tableData.weatherUrls.push((ne=x==null?void 0:x.weather)==null?void 0:ne.url),this.tableData.weatherNames.push(((ge=x==null?void 0:x.weather)==null?void 0:ge.name)??"-")}})},clearTable(){this.currentHourData=void 0,this.positionGmt=void 0,this.localDate=void 0,this.tableData={hours:[],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]}},async handleSelectTab(i){this.activeIndex=i,this.activeIndex===4&&await this.fetchTidesData(this.point,this.ts,7)},async fetchTidesData(i,e,a){this.tideLoading=!0,this.tideData={};let o=e?j(e).utc().format():j().utc().format(),r={lat:i.lat,lng:i.lng,date:o,forecastDays:a??7,extremes:!0,heights:!1},s=await ve.post(`${this.gateway}/api/arc/meteo2/spot/tides/forecast`,r,{headers:{Authorization:this.token||this.defaultMeteoToken}});if((s==null?void 0:s.data.code)===0){this.tideData=(s==null?void 0:s.data.data)||{},this.tideLoading=!1;const n=De.TidesAssist.pickDailyExtremes(this.tideData,this.ts);this.tideTableData=n}},handleBind(){var i,e;this.show?((i=this.map)==null||i.on("click",this.handleClick),this.map.getCanvas().style.cursor="pointer"):((e=this.map)==null||e.off("click",this.handleClick),this.showMeteo=!1)},handleClick(i){if(i.originalEvent.stopPropagation(),i.originalEvent.target.className==="mapboxgl-canvas")this.point=i.lngLat;else return!1},handleMeteoMore(){this.point.forecastModel=this.forecastModel,this.$emit("meteoMore",this.point)},handleNotify(){this.point.forecastModel=this.forecastModel,this.point.datetime=this.ts,this.$emit("meteoNotify",this.point)},handleCloseMeteo(){this.showMeteo=!1},handleRender(){this.$nextTick(()=>{var e;const i=document.getElementById("point-meteo");this.point&&(this.meteoMarker?(e=this.meteoMarker)==null||e.setLngLat([this.point.lng,this.point.lat]):this.meteoMarker=new _e.Marker(i).setLngLat([this.point.lng,this.point.lat]).addTo(this.map))})}}},oi={id:"point-meteo",class:"point-meteo"},si={class:"meteo-box"},ni={class:"header-box flex-between"},li={class:"flex-center"},ci={class:"lnglat"},hi={class:"flex-center"},di={class:"summary-row flex-between"},mi={class:"summary flex-center"},pi=["src"],gi={key:1,class:"icon flex-center",style:{"margin-right":"5px"}},yi={class:"temp"},ui={class:"des info"},fi={class:"flex-start"},Ai={class:"flex-start"},wi={class:"flex-start"},bi={class:"date flex-col-center-end"},Li={class:""},Ci={class:""},vi={class:"detail-box"},xi={class:"menu-header flex-start"},Ei={class:"basic-table"},Bi={class:"hour"},_i={class:"hour"},ki={class:"icon"},Ii=["src"],Di={class:"text"},Ni={class:"text"},zi={class:"text"},Pi={class:"text"},Mi={class:"wave-current-table"},Si={class:"hour"},Ti={class:"hour"},Qi={class:"text"},Hi={class:"text"},Vi={class:"text"},Fi={class:"text"},Oi={class:"text"},Ri={class:"sea-table",style:{height:"92px"}},ji={class:"hour"},Wi={class:"hour"},Gi={class:"text"},Ui={class:"text"},Yi={key:0},Ki={class:"tide-table flex-col-start-center"},Xi={class:"tr-tide flex-space"},qi={class:"tr-tide flex-space"},Ji={class:"tr-tide flex-space"},Zi={style:{padding:"17px 10px 18px 10px"}},$i={class:"flex-between"},er={class:"flex-space",style:{flex:"1","line-height":"30px"}},tr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},ar={class:"flex-between"},ir={class:"flex-space",style:{flex:"1","line-height":"30px"}},rr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},or={class:"flex-between"},sr={class:"flex-space",style:{flex:"1","line-height":"30px"}},nr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},lr={class:"flex-between"},cr={class:"flex-space",style:{flex:"1","line-height":"30px"}},hr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},dr={class:"flex-between"},mr={class:"flex-space",style:{flex:"1","line-height":"30px"}},pr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},gr={key:1,class:"main-box flex-center"};function yr(i,e,a,o,r,s){var d,c,m,w,C,B,y,E,v,u,f,p,b,g,A,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae,X,U,I,pe,R,K,xe,N,le,Ce,Ee,Be,D,T,Ne,ze,$,Ie,Re,je,We,Ge,Ue,Ye;const n=t.resolveComponent("LocationFilled"),l=t.resolveComponent("ElIcon"),h=t.resolveComponent("ElTooltip");return t.withDirectives((t.openBlock(),t.createElementBlock("div",oi,[t.createElementVNode("div",si,[t.createElementVNode("div",ni,[t.createElementVNode("div",li,[t.createVNode(l,{size:"22"},{default:t.withCtx(()=>[t.createVNode(n)]),_:1}),t.createElementVNode("div",ci,t.toDisplayString(s.computeLat((d=r.point)==null?void 0:d.lat))+","+t.toDisplayString(s.computeLng((c=r.point)==null?void 0:c.lng)),1)]),t.createElementVNode("div",hi,[r.showTables?(t.openBlock(),t.createElementBlock("div",{key:0,class:"iconfont toggle",onClick:e[0]||(e[0]=L=>r.showTables=!r.showTables)},"")):(t.openBlock(),t.createElementBlock("div",{key:1,class:"iconfont toggle",onClick:e[1]||(e[1]=L=>r.showTables=!r.showTables)},"")),t.createElementVNode("div",{class:"iconfont close",onClick:e[2]||(e[2]=(...L)=>s.handleCloseMeteo&&s.handleCloseMeteo(...L))},"")])]),r.loading?(t.openBlock(),t.createElementBlock("div",gr,e[43]||(e[43]=[t.createElementVNode("img",{src:ii,alt:""},null,-1)]))):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["main-box",r.isDay?"day-bg":"night-bg"]),id:"meteoMainBox"},[t.createElementVNode("div",di,[t.createElementVNode("div",mi,[t.createVNode(h,{placement:"top",effect:"light",content:(w=(m=r.currentHourData)==null?void 0:m.weather)==null?void 0:w.name,"show-after":1e3},{default:t.withCtx(()=>{var L,P,Ke,Xe;return[(P=(L=r.currentHourData)==null?void 0:L.weather)!=null&&P.url?(t.openBlock(),t.createElementBlock("img",{key:0,class:"iconfont icon",style:{"margin-right":"5px"},src:(Xe=(Ke=r.currentHourData)==null?void 0:Ke.weather)==null?void 0:Xe.url},null,8,pi)):(t.openBlock(),t.createElementBlock("span",gi))]}),_:1},8,["content"]),t.createElementVNode("div",yi,[t.createElementVNode("div",null,[t.createTextVNode(t.toDisplayString(s.roundPrecision((B=(C=r.currentHourData)==null?void 0:C.weather)==null?void 0:B.temp,0)),1),e[9]||(e[9]=t.createElementVNode("span",{style:{"font-size":"14px"}},"°C",-1))])]),t.createElementVNode("div",ui,[t.createElementVNode("div",fi,[e[10]||(e[10]=t.createElementVNode("label",null,"Precip : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.roundPrecision((v=(E=(y=r.currentHourData)==null?void 0:y.weather)==null?void 0:E.precip)==null?void 0:v.sum,0))+" mm",1)]),t.createElementVNode("div",Ai,[e[11]||(e[11]=t.createElementVNode("label",null,"Visibility : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.roundPrecision((f=(u=r.currentHourData)==null?void 0:u.weather)==null?void 0:f.visibility,0))+" nm",1)]),t.createElementVNode("div",wi,[e[12]||(e[12]=t.createElementVNode("label",null,"Wind : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.roundPrecision((g=(b=(p=r.currentHourData)==null?void 0:p.weather)==null?void 0:b.wind)==null?void 0:g.kts,1))+" kts",1)])])]),t.createElementVNode("div",bi,[t.createElementVNode("div",Li,t.toDisplayString(r.localDate),1),t.createElementVNode("div",Ci,"( UTC "+t.toDisplayString(r.positionOffset)+" )",1)])]),t.withDirectives(t.createElementVNode("div",vi,[t.createElementVNode("div",xi,[t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===1?"active":""]),onClick:e[3]||(e[3]=t.withModifiers(L=>s.handleSelectTab(1),["prevent"]))},"Basis",2),t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===2?"active":""]),onClick:e[4]||(e[4]=t.withModifiers(L=>s.handleSelectTab(2),["prevent"]))},"Wave & Current",2),t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===3?"active":""]),onClick:e[5]||(e[5]=t.withModifiers(L=>s.handleSelectTab(3),["prevent"]))},"Sea Surface",2),t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===4?"active":""]),onClick:e[6]||(e[6]=t.withModifiers(L=>s.handleSelectTab(4),["prevent"]))},"Tides",2)]),t.withDirectives(t.createElementVNode("table",Ei,[t.createElementVNode("tr",Bi,[e[13]||(e[13]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Hours"),t.createElementVNode("span",{class:"unit"},"(LT)")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,L=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourL${L}`},t.toDisplayString(s.computeHourL(L)),1))),128))]),t.createElementVNode("tr",_i,[e[14]||(e[14]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("UTC"),t.createElementVNode("span",{class:"unit"})],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,L=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourZ${L}`},t.toDisplayString(s.computeHourZ(L)),1))),128))]),t.createElementVNode("tr",ki,[e[15]||(e[15]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},null,-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.weatherUrls,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`weatherUrls${P}${L}`},[t.createVNode(h,{placement:"top",effect:"light",content:r.tableData.weatherNames[P],"show-after":500},{default:t.withCtx(()=>[L?(t.openBlock(),t.createElementBlock("img",{key:0,class:"iconfont weather-icon",src:L,alt:""},null,8,Ii)):t.createCommentVNode("",!0)]),_:2},1032,["content"])]))),128))]),t.createElementVNode("tr",Di,[e[16]||(e[16]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Temp"),t.createElementVNode("span",{class:"unit"},"°C")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.temp,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`weatherUrls${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",Ni,[e[17]||(e[17]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Precip"),t.createElementVNode("span",{class:"unit"},"mm")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.precip1h,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`precip1h${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",zi,[e[18]||(e[18]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Visibility"),t.createElementVNode("span",{class:"unit"},"nm")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.visibility,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`visibility${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",Pi,[e[19]||(e[19]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Wind gust"),t.createElementVNode("span",{class:"unit"},"kts")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.windGust,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windGust${P}${L}`},[t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))])],512),[[t.vShow,r.activeIndex===1]]),t.withDirectives(t.createElementVNode("table",Mi,[t.createElementVNode("tr",Si,[e[20]||(e[20]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Hours"),t.createElementVNode("span",{class:"unit"},"(LT)")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursL${P}${L}`},t.toDisplayString(s.computeHourL(L)),1))),128))]),t.createElementVNode("tr",Ti,[e[21]||(e[21]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("UTC"),t.createElementVNode("span",{class:"unit"})],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursZ${P}${L}`},t.toDisplayString(s.computeHourZ(L)),1))),128))]),t.createElementVNode("tr",Qi,[e[22]||(e[22]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Wind"),t.createElementVNode("span",{class:"unit"},"kts")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.windSpeed,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windSpeed${P}${L}`},[isNaN(r.tableData.windDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon wind",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.windDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Hi,[e[23]||(e[23]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Sig Wave"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.sigwaveHeight,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`sigwaveHeight${P}${L}`},[isNaN(r.tableData.sigwaveDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon sigwave",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.sigwaveDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Vi,[e[24]||(e[24]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Wind Wave"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.windwaveHeight,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windwaveHeight${P}${L}`},[isNaN(r.tableData.sigwaveDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon windwave",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.windwaveDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Fi,[e[25]||(e[25]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Swell"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.swellHeight,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`swellHeight${P}${L}`},[isNaN(r.tableData.swellDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon swell",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.swellDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Oi,[e[26]||(e[26]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Current"),t.createElementVNode("span",{class:"unit"},"kts")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.currentSpeed,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`currentSpeed${P}${L}`},[isNaN(r.tableData.currentDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon current",id:"meteoGrayIcon",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.currentDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))])],512),[[t.vShow,r.activeIndex===2]]),t.withDirectives(t.createElementVNode("table",Ri,[t.createElementVNode("tr",ji,[e[27]||(e[27]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Hours"),t.createElementVNode("span",{class:"unit"},"(LT)")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursL${P}${L}`},t.toDisplayString(s.computeHourL(L)),1))),128))]),t.createElementVNode("tr",Wi,[e[28]||(e[28]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("UTC"),t.createElementVNode("span",{class:"unit"})],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursZ${P}${L}`},t.toDisplayString(s.computeHourZ(L)),1))),128))]),t.createElementVNode("tr",Gi,[e[29]||(e[29]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("SeaLevel"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.seaLevel,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaLevel${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",Ui,[e[30]||(e[30]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("SeaTemp"),t.createElementVNode("span",{class:"unit"},"°C")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.seaTemp,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaTemp${P}${L}`},t.toDisplayString(L),1))),128))])],512),[[t.vShow,r.activeIndex===3]]),r.activeIndex===3?(t.openBlock(),t.createElementBlock("div",Yi,e[31]||(e[31]=[t.createElementVNode("p",{style:{"font-size":"12px",padding:"12px 20px 0 20px","line-height":"16px"}},"*Sea level height accounts for tides, barometer effects, and global variations. Based on mean sea level, accuracy is limited in coastal areas. For coastal navigation, use data from Tides Tab.",-1)]))):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("table",Ki,[t.createElementVNode("tr",Xi,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tideTableData,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`Tide-tr-${P}${L}`},t.toDisplayString(L.type)+" Tide",1))),128))]),t.createElementVNode("tr",qi,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tideTableData,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-date-${P}${L}`},t.toDisplayString(s.computeHourHmmLT(L==null?void 0:L.date)),1))),128))]),t.createElementVNode("tr",Ji,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tideTableData,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-height-${P}${L}`},t.toDisplayString(s.roundPrecision(L==null?void 0:L.height,2))+" m",1))),128))]),e[32]||(e[32]=t.createElementVNode("tr",{class:"tr-tide flex-center info"},[t.createElementVNode("td",null,[t.createElementVNode("span",null,"Tide Datum: Chart Datum")])],-1))],512),[[t.vShow,r.activeIndex===4]])],512),[[t.vShow,((k=(A=r.tableData)==null?void 0:A.hours)==null?void 0:k.length)>0&&r.showTables]]),t.withDirectives(t.createElementVNode("div",Zi,[t.createElementVNode("div",$i,[t.createElementVNode("div",er,[e[33]||(e[33]=t.createElementVNode("div",null,"Wind",-1)),t.createElementVNode("div",null,t.toDisplayString((M=(S=(_=r.currentHourData)==null?void 0:_.weather)==null?void 0:S.wind)==null?void 0:M.direction)+"/"+t.toDisplayString(s.roundPrecision((H=(V=(Q=r.currentHourData)==null?void 0:Q.weather)==null?void 0:V.wind)==null?void 0:H.kts,1))+"kts/BF"+t.toDisplayString((ie=(q=(ae=r.currentHourData)==null?void 0:ae.weather)==null?void 0:q.wind)==null?void 0:ie.scale)+"/"+t.toDisplayString(s.roundPrecision((he=(re=(ce=r.currentHourData)==null?void 0:ce.weather)==null?void 0:re.wind)==null?void 0:he.gusts,1))+" kts",1)]),t.createElementVNode("div",tr,[e[34]||(e[34]=t.createElementVNode("div",null,"Sig wave",-1)),t.createElementVNode("div",null,t.toDisplayString((Y=(F=(oe=r.currentHourData)==null?void 0:oe.wave)==null?void 0:F.sig)==null?void 0:Y.direction)+"/"+t.toDisplayString(s.roundPrecision((ne=(te=(se=r.currentHourData)==null?void 0:se.wave)==null?void 0:te.sig)==null?void 0:ne.height,1))+"m/"+t.toDisplayString(s.roundPrecision((ye=(de=(ge=r.currentHourData)==null?void 0:ge.wave)==null?void 0:de.sig)==null?void 0:ye.period,1))+"s",1)])]),t.createElementVNode("div",ar,[t.createElementVNode("div",ir,[e[35]||(e[35]=t.createElementVNode("div",null,"Wind wave",-1)),t.createElementVNode("div",null,t.toDisplayString((me=(we=(x=r.currentHourData)==null?void 0:x.wave)==null?void 0:we.wd)==null?void 0:me.direction)+"/"+t.toDisplayString(s.roundPrecision((Le=(fe=(be=r.currentHourData)==null?void 0:be.wave)==null?void 0:fe.wd)==null?void 0:Le.height,1))+"m/"+t.toDisplayString(s.roundPrecision((U=(X=(Ae=r.currentHourData)==null?void 0:Ae.wave)==null?void 0:X.wd)==null?void 0:U.period,1))+"s",1)]),t.createElementVNode("div",rr,[e[36]||(e[36]=t.createElementVNode("div",null,"Swell",-1)),t.createElementVNode("div",null,t.toDisplayString((R=(pe=(I=r.currentHourData)==null?void 0:I.wave)==null?void 0:pe.swell)==null?void 0:R.direction)+"/"+t.toDisplayString(s.roundPrecision((N=(xe=(K=r.currentHourData)==null?void 0:K.wave)==null?void 0:xe.swell)==null?void 0:N.height,1))+"m/"+t.toDisplayString(s.roundPrecision((Ee=(Ce=(le=r.currentHourData)==null?void 0:le.wave)==null?void 0:Ce.swell)==null?void 0:Ee.period,1))+"s",1)])]),t.createElementVNode("div",or,[t.createElementVNode("div",sr,[e[37]||(e[37]=t.createElementVNode("div",null,"Current",-1)),t.createElementVNode("div",null,t.toDisplayString((D=(Be=r.currentHourData)==null?void 0:Be.current)==null?void 0:D.direction)+"/"+t.toDisplayString(s.roundPrecision((Ne=(T=r.currentHourData)==null?void 0:T.current)==null?void 0:Ne.kts,2))+"kts",1)]),t.createElementVNode("div",nr,[e[38]||(e[38]=t.createElementVNode("div",null,"Sea level",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((ze=r.currentHourData)==null?void 0:ze.height,1))+"m",1)])]),t.createElementVNode("div",lr,[t.createElementVNode("div",cr,[e[39]||(e[39]=t.createElementVNode("div",null,"Sea Temp",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision(($=r.currentHourData)==null?void 0:$.sst,1))+"°C",1)]),t.createElementVNode("div",hr,[e[40]||(e[40]=t.createElementVNode("div",null,"Visibility",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((Re=(Ie=r.currentHourData)==null?void 0:Ie.weather)==null?void 0:Re.visibility,1))+"nm",1)])]),t.createElementVNode("div",dr,[t.createElementVNode("div",mr,[e[41]||(e[41]=t.createElementVNode("div",null,"Temp",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((We=(je=r.currentHourData)==null?void 0:je.weather)==null?void 0:We.temp,1))+"°C",1)]),t.createElementVNode("div",pr,[e[42]||(e[42]=t.createElementVNode("div",null,"Precip",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((Ye=(Ue=(Ge=r.currentHourData)==null?void 0:Ge.weather)==null?void 0:Ue.precip)==null?void 0:Ye.sum3Hours,1))+"mm",1)])])],512),[[t.vShow,!r.showTables]]),t.createElementVNode("div",{class:t.normalizeClass(["action",r.isDay?"day":"night"])},[a.permission&r.helper.LEVEL.Supper?(t.openBlock(),t.createElementBlock("div",{key:0,class:"button",style:{"margin-right":"10px"},onClick:e[7]||(e[7]=(...L)=>s.handleNotify&&s.handleNotify(...L))},"Notify")):t.createCommentVNode("",!0),t.createElementVNode("div",{onClick:e[8]||(e[8]=(...L)=>s.handleMeteoMore&&s.handleMeteoMore(...L))},"More >>")],2)],2))])],512)),[[t.vShow,r.showMeteo]])}const ur=O(ri,[["render",yr],["__scopeId","data-v-3afdcf26"]]),fr={name:"IdmWarZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"war-zone-source",zoneLayer:"war-zone-layer",zoneLabelLayer:"war-zone-label-layer"}},watch:{zone:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-color":"#f44336","fill-opacity":.4}},this.beforeLayer),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#f44336"}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-1]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.zoneLayer)&&this.map.moveLayer(this.zoneLayer,"country-boundaries"),this.map.getLayer(this.zoneLayer+"-border")&&this.map.moveLayer(this.zoneLayer+"-border","country-boundaries"),this.map.getLayer(this.zoneLabelLayer)&&this.map.moveLayer(this.zoneLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ar(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const wr=O(fr,[["render",Ar]]),br={name:"IdmGmdssArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"gmdss-area-source",areaLayer:"gmdss-area-layer",areaLabelLayer:"gmdss-area-label-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","val"],"AreaI","#EB8996","AreaII","#6F448B","AreaIII","#3E8BD3","AreaIV","#5EBCC4","AreaV","#00AAE7","AreaVI","#9CCE6D","AreaVII","#F4AE00","AreaVIII","#EF9A85","AreaIX","#00AAA7","AreaX","#7AC49F","AreaXI","#DFDFDF","AreaXII","#FFF974","AreaXIII","#EF9A85","AreaXIV","#86A2D1","AreaXV","#EC8972","AreaXVI","#EAC2DA","AreaXVII","#B9C8E7","AreaXVIII","#BBA1C8","AreaXIX","#FAE0BD","AreaXX","#DBECC8","AreaXXI","#D496AF","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-opacity":.8,"text-color":"#000"}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.areaLayer)&&this.map.moveLayer(this.areaLayer,"country-boundaries"),this.map.getLayer(this.areaLabelLayer)&&this.map.moveLayer(this.areaLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Lr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Cr=O(br,[["render",Lr]]),vr={name:"IdmEcaZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String},activeWeatherLayers:{type:Array}},data(){return{source:"eca-zone-source",zoneLayer:"eca-zone-layer",zoneLabelLayer:"eca-zone-label-layer"}},watch:{zone:{handler(){this.zone?(this.handleRender(),this.handleMove()):this.handleClear()}}},methods:{handleRender(){var i;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(i=this.map)==null||i.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"silver","fill-opacity":.3,"fill-color":"#05f324"}}),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-color":"#05f324","line-width":2,"line-opacity":1}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-max-width":16,"text-justify":"left","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}})))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.zoneLayer)&&this.map.moveLayer(this.zoneLayer,"country-boundaries"),this.map.getLayer(this.zoneLayer+"-border")&&this.map.moveLayer(this.zoneLayer+"-border","country-boundaries"),this.map.getLayer(this.zoneLabelLayer)&&this.map.moveLayer(this.zoneLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function xr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Er=O(vr,[["render",xr]]),jo="",Br={name:"IdmAlertZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"alert-zone-source",polygonLayer:"alert-zone-polygon-layer",polygonLabelLayer:"alert-zone-polygon-label-layer",lineLayer:"alert-zone-line-layer",lineLabelLayer:"alert-zone-line-label-layer",pointLayer:"alert-zone-point-layer",showZone:!1,form:{}}},watch:{zone:{handler(){var i,e;this.zone?(this.handleRender(),this.handleMove(),(i=this.map)==null||i.on("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick))}}},methods:{handleClick(i){var o;const e=i.features[0],a=(o=this.zone)==null?void 0:o.features.filter(r=>{var s;return r.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(a){this.showZone=!0,this.form={...a.properties};const r=document.getElementById("idm-gl3-zone-info");this.marker?this.marker.setLngLat([i.lngLat.lng,i.lngLat.lat]):this.marker=new _e.Marker(r).setLngLat([i.lngLat.lng,i.lngLat.lat]).setOffset([0,0]).addTo(this.map)}},handleRender(){var i;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(i=this.map)==null||i.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.polygonLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"#d57d02","fill-opacity":.4,"fill-color":"#d57d02"}}),this.map.addLayer({id:this.polygonLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-width":1,"line-color":"#d57d02"}}),this.map.addLayer({id:this.lineLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],paint:{"line-color":"#d57d02","line-width":2}}),this.map.addLayer({id:this.polygonLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],layout:{"symbol-placement":"line-center","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.pointLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08},paint:{"icon-opacity":.8}})))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.polygonLayer)&&this.map.moveLayer(this.polygonLayer,"country-boundaries"),this.map.getLayer(this.polygonLayer+"-border")&&this.map.moveLayer(this.polygonLayer+"-border","country-boundaries"),this.map.getLayer(this.polygonLabelLayer)&&this.map.moveLayer(this.polygonLabelLayer,"country-boundaries"),this.map.getLayer(this.lineLayer)&&this.map.moveLayer(this.lineLayer,"country-boundaries"),this.map.getLayer(this.lineLabelLayer)&&this.map.moveLayer(this.lineLabelLayer,"country-boundaries"),this.map.getLayer(this.pointLayer)&&this.map.moveLayer(this.pointLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.polygonLayer)&&this.map.removeLayer(this.polygonLayer),this.map.getLayer(this.polygonLayer+"-border")&&this.map.removeLayer(this.polygonLayer+"-border"),this.map.getLayer(this.polygonLabelLayer)&&this.map.removeLayer(this.polygonLabelLayer),this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getLayer(this.pointLayer)&&this.map.removeLayer(this.pointLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},_r={id:"idm-gl3-zone-info"},kr=["innerHTML"];function Ir(i,e,a,o,r,s){var n;return t.withDirectives((t.openBlock(),t.createElementBlock("div",_r,[t.createElementVNode("div",{class:"iconfont close",onClick:e[0]||(e[0]=l=>r.showZone=!1)},""),t.createElementVNode("div",{class:"rich-context",innerHTML:(n=r.form)==null?void 0:n.name},null,8,kr)],512)),[[t.vShow,r.showZone]])}const Dr=O(Br,[["render",Ir]]),Wo="",Nr={name:"IdmPort",props:{map:{type:Object},port:{type:Object},beforeLayer:{type:String},forecastModel:{type:String}},emits:["meteoMore"],data(){return{source:"port-source",layer:"port-layer",showPort:!1,form:{},marker:void 0}},computed:{computeLat(){return function(i){return W.LngLatHelper.lat2pretty(i,4).pretty}},computeLng(){return function(i){return W.LngLatHelper.lng2pretty(i,4).pretty}}},watch:{port:{handler(){var i,e;this.port?(this.handleRender(),(i=this.map)==null||i.on("click",[this.layer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.layer],this.handleClick))}}},methods:{handleClick(i){var o;const e=i.features[0],a=(o=this.port)==null?void 0:o.features.filter(r=>{var s;return r.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(a){this.showPort=!0,this.form={...a.properties},this.form.lng=a.geometry.coordinates[0],this.form.lat=a.geometry.coordinates[1];const r=document.getElementById("port-info");this.marker?this.marker.setLngLat([i.lngLat.lng,i.lngLat.lat]):this.marker=new _e.Marker(r).setLngLat([i.lngLat.lng,i.lngLat.lat]).setOffset([0,-85]).addTo(this.map)}},handleRender(){var i;this.map?this.port&&(this.map.getSource(this.source)?(i=this.map)==null||i.getSource(this.source).setData(this.port):(this.map.addSource(this.source,{type:"geojson",data:this.port}),this.map.addLayer({id:this.layer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"port","text-anchor":"left","text-field":"{name}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[1,0]},paint:{"text-color":"rgba(0, 0, 0, 0.8)","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.showPort=!1,this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)},handleClickMeteo(i){i.forecastModel=this.forecastModel,this.$emit("meteoMore",i)}}},zr={ref:"idmPortInfo",id:"port-info"},Pr={class:"port-box"},Mr={class:"flex-start"},Sr={class:"flex-start"},Tr={class:"flex-start"},Qr={class:"flex-start",style:{"align-items":"flex-start"}},Hr={class:"meteo-forecast flex-end"};function Vr(i,e,a,o,r,s){return t.withDirectives((t.openBlock(),t.createElementBlock("div",zr,[t.createElementVNode("div",{class:"close iconfont",onClick:e[0]||(e[0]=n=>r.showPort=!1)},""),t.createElementVNode("div",Pr,[t.createElementVNode("div",Mr,[e[2]||(e[2]=t.createElementVNode("label",null,"Name : ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.form.name),1)]),t.createElementVNode("div",Sr,[e[3]||(e[3]=t.createElementVNode("label",null,"Position : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.computeLat(r.form.lat))+", "+t.toDisplayString(s.computeLng(r.form.lng)),1)]),t.createElementVNode("div",Tr,[e[4]||(e[4]=t.createElementVNode("label",null,"LoCode : ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.form.loCode||"-"),1)]),t.createElementVNode("div",Qr,[e[5]||(e[5]=t.createElementVNode("label",null,"Region : ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.form.zoneName||"-"),1)]),t.createElementVNode("div",Hr,[t.createElementVNode("span",{onClick:e[1]||(e[1]=n=>s.handleClickMeteo(r.form))},"Meteo Forecast")])])],512)),[[t.vShow,r.showPort]])}const Fr=O(Nr,[["render",Vr],["__scopeId","data-v-39da1804"]]),Or={name:"IdmLoadLine",props:{map:{type:Object},line:{type:Object},beforeLayer:{type:String}},data(){return{source:"load-line-source",lineLayer:"load-line-layer",lineLabelLayer:"load-line-label-layer"}},watch:{line:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.line&&(this.map.addSource(this.source,{type:"geojson",data:this.line}),this.map.addLayer({id:this.lineLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.75,"fill-color":["match",["get","val"],"LLGreen","#A0C0C0","LLRed","#F5A39D","LLBlue","#6B94E4","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{lbl} (Length < {shipLength}, {start} - {end})","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}},this.beforeLayer))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.lineLayer)&&this.map.moveLayer(this.lineLayer,"country-boundaries"),this.map.getLayer(this.lineLabelLayer)&&this.map.moveLayer(this.lineLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Rr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const jr=O(Or,[["render",Rr]]),Wr={name:"IdmTimezone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"time-zone-source",zoneLayer:"time-zone-layer",zoneLabelLayer:"time-zone-label-layer"}},watch:{zone:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","offSet"],"-11.5","rgba(255,0,0,0.4)","-11","rgba(0,255,0,0.3)","-10.5","rgba(0,255,0,0.3)","-10","rgba(0,0,255,0.3)","-9.5","rgba(0,0,255,0.3)","-9","rgba(255,0,0,0.4)","-8.5","rgba(255,0,0,0.4)","-8","rgba(0,255,0,0.3)","-7.5","rgba(0,255,0,0.3)","-7","rgba(0,0,255,0.3)","-6.5","rgba(0,0,255,0.3)","-6","rgba(255,0,0,0.4)","-5.5","rgba(255,0,0,0.4)","-5","rgba(0,255,0,0.3)","-4.5","rgba(0,255,0,0.3)","-4","rgba(0,0,255,0.3)","-3.5","rgba(0,0,255,0.3)","-3","rgba(255,0,0,0.4)","-2.5","rgba(255,0,0,0.4)","-2","rgba(0,255,0,0.3)","-1.5","rgba(0,255,0,0.3)","-1","rgba(0,0,255,0.3)","-0.5","rgba(0,0,255,0.3)","+0","rgba(255,0,0,0.4)","+0.5","rgba(255,0,0,0.4)","+1","rgba(0,255,0,0.3)","+1.5","rgba(0,255,0,0.3)","+2","rgba(0,0,255,0.3)","+2.5","rgba(0,0,255,0.3)","+3","rgba(255,0,0,0.4)","+3.5","rgba(255,0,0,0.4)","+4","rgba(0,255,0,0.3)","+4.5","rgba(0,255,0,0.3)","+5","rgba(0,0,255,0.3)","+5.5","rgba(0,0,255,0.3)","+6","rgba(255,0,0,0.4)","+6.5","rgba(255,0,0,0.4)","+7","rgba(0,255,0,0.3)","+7.5","rgba(0,255,0,0.3)","+8","rgba(0,0,255,0.3)","+8.5","rgba(0,0,255,0.3)","+9","rgba(255,0,0,0.4)","+9.5","rgba(255,0,0,0.4)","+10","rgba(0,255,0,0.3)","+10.5","rgba(0,255,0,0.3)","+11","rgba(0,0,255,0.3)","+11.5","rgba(0,0,255,0.3)","rgba(255,0,0,0.4)"]}}),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{offSet}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,1]},paint:{"text-opacity":.8,"text-color":"#fff"}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.zoneLayer)&&this.map.moveLayer(this.zoneLayer,"country-boundaries"),this.map.getLayer(this.zoneLabelLayer)&&this.map.moveLayer(this.zoneLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Gr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Ur=O(Wr,[["render",Gr]]),Yr={name:"IdmVoluntaryReportingArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"vra-source",areaLayer:"vra-layer",areaLabelLayer:"vra-label-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.areaLayer)&&this.map.moveLayer(this.areaLayer,"country-boundaries"),this.map.getLayer(this.areaLayer+"-border")&&this.map.moveLayer(this.areaLayer+"-border","country-boundaries"),this.map.getLayer(this.areaLabelLayer)&&this.map.moveLayer(this.areaLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Kr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Xr=O(Yr,[["render",Kr]]),qr={name:"IdmSpecialArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"special-area-source",areaLayer:"special-area-layer",areaLabelLayer:"special-area-label-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.area.features.forEach(i=>{i.geometry.type==="Polygon"&&i.geometry.coordinates.forEach(e=>W.LngLatHelper.convertToMonotonicLng2(e))}),this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":["match",["get","val"],"DefaultStyle","rgb(0,0,0)","JWCriskArea","rgb(0,0,0)","rgb(0,0,0)"]}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":.4,"line-color":"rgb(0,0,0)"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.areaLayer)&&this.map.moveLayer(this.areaLayer,"country-boundaries"),this.map.getLayer(this.areaLayer+"-border")&&this.map.moveLayer(this.areaLayer+"-border","country-boundaries"),this.map.getLayer(this.areaLabelLayer)&&this.map.moveLayer(this.areaLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Jr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Zr=O(qr,[["render",Jr]]),$r={name:"IdmTerminator",props:{map:{type:Object},area:{type:Object}},data(){return{source:"terminator-source",layer:"terminator-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.layer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":"rgba(0, 0, 0, 0.4)"}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.layer)&&this.map.moveLayer(this.layer,"country-boundaries")},handleClear(){this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function eo(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const to=O($r,[["render",eo]]),Go="",ao={name:"IdmLatLng",props:{map:{type:Object},show:{type:Boolean},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{lngLat:void 0,source:"idm-lat-lng-source",layer:"idm-lat-lng-layer",labelLayer:"idm-lat-lng-label-layer",right:10}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){var i;this.map&&((i=this.map)==null||i.on("mousemove",this.handleMouseMove))},immediate:!0},toggleVersion:{handler(){var i,e;this.right=(((i=document.getElementsByClassName("legend-bars")[0])==null?void 0:i.clientWidth)||-10)+(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+20},immediate:!0}},methods:{handleBind(){var i,e;this.show?((i=this.map)==null||i.on("zoomend",this.handleZoomEnd),this.handleRender()):(this.handleClear(),(e=this.map)==null||e.off("zoomend",this.handleZoomEnd))},handleMouseMove(i){const e=i.lngLat,a=W.LngLatHelper.lng2pretty(e.lng,2),o=W.LngLatHelper.lat2pretty(e.lat,2);this.lngLat={lng:a,lat:o}},handleComputeLatLngs(){var o;const i=(o=this.map)==null?void 0:o.getZoom();let e=30;i>4?e=10:i>3&&(e=15);const a=[];for(let r=-60;r<90;r+=e)a.push({type:"Feature",geometry:{type:"LineString",coordinates:[[-180,r],[180,r]]}});for(let r=-180;r<180;r+=e)a.push({type:"Feature",geometry:{type:"LineString",coordinates:[[r,-90],[r,90]]}});for(let r=180;r>-180;r-=e)for(let s=-60;s<90;s+=e)a.push({type:"Feature",geometry:{type:"Point",coordinates:[r,s]},properties:{val:`${s>0?s+" N":s===0?s:s*-1+" S"}, ${r>0?r+" E":r*-1+" W"}`}});return a},handleZoomEnd(){var e;const i=this.handleComputeLatLngs();(e=this.map)==null||e.getSource(this.source).setData(z.featureCollection(i))},handleRender(){if(this.map){const i=this.handleComputeLatLngs();this.map.addSource(this.source,{type:"geojson",data:{type:"FeatureCollection",features:i}}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"rgba(0, 0, 0, 0.3)","line-width":1}}),this.map.addLayer({id:this.labelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{val}","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}})}},handleClear(){var i,e,a,o,r,s;(i=this.map)!=null&&i.getLayer(this.layer)&&((e=this.map)==null||e.removeLayer(this.layer)),(a=this.map)!=null&&a.getLayer(this.labelLayer)&&((o=this.map)==null||o.removeLayer(this.labelLayer)),(r=this.map)!=null&&r.getSource(this.source)&&((s=this.map)==null||s.removeSource(this.source))}}};function io(i,e,a,o,r,s){return r.lngLat?(t.openBlock(),t.createElementBlock("div",{key:0,class:"lat-lng-tip",style:t.normalizeStyle({right:r.right+"px",bottom:a.bottom})},[t.createElementVNode("span",null,t.toDisplayString(r.lngLat.lat.pretty),1),e[0]||(e[0]=t.createElementVNode("span",null,", ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.lngLat.lng.pretty),1)],4)):t.createCommentVNode("",!0)}const He=O(ao,[["render",io],["__scopeId","data-v-747fb3c8"]]),ro={name:"IdmMeasure",props:{map:{type:Object},show:{type:Boolean}},data(){return{geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL"}},watch:{show:{handler(){var i,e,a;if(this.show)this.handleBind();else{(i=this.map)==null||i.getCanvas().removeEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.off("mousemove",this.handleMove),(a=this.map)==null||a.off("dblclick",this.handleDblClick),this.map&&(this.map.getCanvas().style.cursor="grab");let o=this.geojson.find(r=>!r.closed);o&&this.handleClear(o,!0),this.geojson=this.geojson.filter(r=>!!r.closed),o=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(o)}},immediate:!0},map:{handler(){this.map&&(this.show?this.handleBind():this.handleUnbind())}}},methods:{handleBind(){var i,e,a,o,r;(i=this.map)==null||i.getCanvas().addEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.on("mousemove",this.handleMove),(a=this.map)==null||a.on("dblclick",this.handleDblClick),(o=this.map)==null||o.on("click",this.handleClick),(r=this.map)==null||r.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair")},handleUnbind(){var i,e,a,o,r;(i=this.map)==null||i.getCanvas().removeEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.off("mousemove",this.handleMove),(a=this.map)==null||a.off("dblclick",this.handleDblClick),(o=this.map)==null||o.off("click",this.handleClick),(r=this.map)==null||r.off("contextmenu",this.handleContextmenu);for(const s of this.geojson)this.handleClear(s,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")},handleKeydown(i){if(i.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const e=this.geojson.at(-1),a=e.features.filter(o=>o.geometry.type==="Point");a.length&&(a.at(-1).properties.mode=this.navigation),this.handleRender(e)}},handleDrag(i){var a,o,r,s,n,l,h,d,c,m;const e=(o=(a=i.target)==null?void 0:a._element)==null?void 0:o.id;if((e==null?void 0:e.split("-").length)===2){const w=this.geojson.filter(E=>E.id===e.split("-")[0])[0];this.pointMarkers[w.id].filter(E=>{var v;return((v=E._element)==null?void 0:v.id)===e})[0].setLngLat([(s=(r=i.target)==null?void 0:r._lngLat)==null?void 0:s.lng,(l=(n=i.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);let B;w.features.forEach((E,v)=>{if(E.geometry.type==="Point"&&E.properties.id==e.split("-")[1]){B=v;return}});const y=w.features.filter(E=>E.geometry.type==="Point");this.handleTmpPointUpdate(w,y[B-1],{lng:(d=(h=i.target)==null?void 0:h._lngLat)==null?void 0:d.lng,lat:(m=(c=i.target)==null?void 0:c._lngLat)==null?void 0:m.lat,properties:y[B].properties},B===y.length-1?void 0:y[B+1])}},handleDragEnd(i){var a,o,r,s,n,l,h,d,c,m;const e=(o=(a=i.target)==null?void 0:a._element)==null?void 0:o.id;if((e==null?void 0:e.split("-").length)===2){const w=this.geojson.filter(y=>y.id===e.split("-")[0])[0];this.pointMarkers[w.id].filter(y=>{var E;return((E=y._element)==null?void 0:E.id)===e})[0].setLngLat([(s=(r=i.target)==null?void 0:r._lngLat)==null?void 0:s.lng,(l=(n=i.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);const B=w.features.filter(y=>y.geometry.type==="Point"&&y.properties.id==e.split("-")[1])[0];B.geometry.coordinates=[(d=(h=i.target)==null?void 0:h._lngLat)==null?void 0:d.lng,(m=(c=i.target)==null?void 0:c._lngLat)==null?void 0:m.lat],w.features=w.features.filter(y=>y.geometry.type==="Point"),this.handlePointUpdate(w)}},handleContextmenu(i){var a,o,r,s;i.preventDefault(),(a=this.contextmenu)==null||a.remove();const e=(s=(r=(o=i.originalEvent)==null?void 0:o.target)==null?void 0:r.parentElement)==null?void 0:s.id;if((e==null?void 0:e.split("-").length)===2){const l=this.geojson.filter(h=>h.id===e.split("-")[0])[0].features.filter(h=>h.geometry.type==="Point");if(l.length>2&&l.filter(d=>d.properties.id===(e==null?void 0:e.split("-")[1]))[0]){const d=document.createElement("div");d.className="point-contextmenu-marker",d.innerHTML=`<span id="del-${e}" class="del-point">Del</span>`,this.contextmenu=new _e.Marker(d).setOffset([24,0]).setLngLat([i.lngLat.lng,i.lngLat.lat]).addTo(this.map)}}},handleClick(i){var a,o,r,s,n,l;(a=this.contextmenu)==null||a.remove();const e=i.originalEvent.target.className;if(e==="marker-close"){const h=(r=(o=i.originalEvent)==null?void 0:o.srcElement)==null?void 0:r.id,d=this.geojson.filter(c=>c.id===h)[0];d&&this.handleClear(d,!0),this.geojson=this.geojson.filter(c=>c.id!==h),!this.show&&!((s=this.geojson)!=null&&s.some(c=>c.closed))&&this.handleUnbind()}else if(e==="del-point"){const h=(l=(n=i.originalEvent.target.id)==null?void 0:n.replace("del-",""))==null?void 0:l.split("-"),d=this.geojson.filter(c=>c.id===h[0])[0];d.features=d.features.filter(c=>c.geometry.type==="Point"&&c.properties.id!==h[1]),this.handlePointUpdate(d)}else if(e!=="marker-label"&&this.show){let h=this.geojson.at(-1);h||(h=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(h)),h.features=h.features.filter(c=>c.geometry.type==="Point");const d=z.feature({type:"Point",coordinates:[i.lngLat.lng,i.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation});h.features.push(d),this.handlePointUpdate(h)}},handlePointUpdate(i){const e=i.features;if(e.length>1){let a=0;const o=[];for(let r=1;r<e.length;r++){const s=e[r-1],n=e[r],l=s.properties,h={lng:s.geometry.coordinates[0],lat:s.geometry.coordinates[1]},d={lng:n.geometry.coordinates[0],lat:n.geometry.coordinates[1]},c=W.LaneHelper.calculateDistance(h,d,l.mode==="RL",4),m=W.LaneHelper.calculateBearing(h,d,l.mode==="RL",2);a=W.LngLatHelper.roundPrecision(a+c,2);let w;l.mode==="RL"?w=W.LngLatHelper.convertToMonotonicLng([h,d]):w=W.LngLatHelper.convertToMonotonicLng(W.LaneHelper.interpolateCoordinates(h,d,200));const C=z.lineString(w.map(B=>[B.lng,B.lat]));C.properties.dist=c,C.properties.bearing=m,C.properties.total=a,o.push(C)}e.push(...o),i.total=a}return this.handleRender(i),i},handleTmpPointUpdate(i,e,a,o){const r=z.featureCollection([]);let s,n;if(e){const h=e.properties,d={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},c={lng:a.lng,lat:a.lat};s=W.LaneHelper.calculateDistance(d,c,h.mode==="RL",4),n=W.LaneHelper.calculateBearing(d,c,h.mode==="RL",2);let m;h.mode==="RL"?m=W.LngLatHelper.convertToMonotonicLng([d,c]):m=W.LngLatHelper.convertToMonotonicLng(W.LaneHelper.interpolateCoordinates(d,c,200));const w=z.lineString(m.map(C=>[C.lng,C.lat]));w.properties.dist=s,w.properties.bearing=n,r.features.push(w)}if(o){const h=a.properties,d=a,c={lng:o.geometry.coordinates[0],lat:o.geometry.coordinates[1]};s=W.LaneHelper.calculateDistance(d,c,h.mode==="RL",4),n=W.LaneHelper.calculateBearing(d,c,h.mode==="RL",2);let m;h.mode==="RL"?m=W.LngLatHelper.convertToMonotonicLng([d,c]):m=W.LngLatHelper.convertToMonotonicLng(W.LaneHelper.interpolateCoordinates(d,c,200));const w=z.lineString(m.map(C=>[C.lng,C.lat]));w.properties.dist=s,w.properties.bearing=n,r.features.push(w)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(r):this.map.addSource(this.tmpSource,{type:"geojson",data:r}),this.map.getLayer(this.tmpLayer)||this.map.addLayer({id:this.tmpLayer,type:"line",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2,"line-opacity":1,"line-dasharray":[3,2]}}),this.map.getLayer(this.tmpLabelLayer)||this.map.addLayer({id:this.tmpLabelLayer,type:"symbol",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});let l;if(o?l='<div class="marker-label">Drag and drop</div>':l=`<div class="marker-label">Total distance: <b>${W.LngLatHelper.roundPrecision((i.total??0)+s,1)}</b>nm, bearing: <b>${n}</b>°</div><div class="marker-label">${this.navigation==="RL"?"RL":"GC"} mode, using 'Shift' to switch</div><div class="marker-label">Double click to end</div>`,this.tipMarker)this.tipMarker._element.innerHTML=l,this.tipMarker.setLngLat([a.lng,a.lat]);else{const h=document.createElement("div");h.className="tip-marker",h.innerHTML=l,this.tipMarker=new _e.Marker(h).setOffset([140,0]).setLngLat([a.lng,a.lat]).addTo(this.map)}},handleMove(i){this.map.getCanvas().style.cursor="crosshair";let e=this.geojson.at(-1);e||(e=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e));const a=e.features.filter(o=>o.geometry.type==="Point");a!=null&&a.length&&this.handleTmpPointUpdate(e,a.at(-1),{lng:i.lngLat.lng,lat:i.lngLat.lat})},handleDblClick(i){i.preventDefault();let e=this.geojson.at(-1);e.closed=!0,this.handleRender(e),e=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e)},handleRender(i){var e;if((e=i==null?void 0:i.features)!=null&&e.length){const a=`${i.id}-${this.source}`,o=`${i.id}-${this.layer}`,r=`${i.id}-${this.labelLayer}`;this.map.getSource(a)?this.map.getSource(a).setData(i):this.map.addSource(a,{type:"geojson",data:i}),this.handleClear(i,!1),this.map.addLayer({id:o,type:"line",source:a,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2}}),this.map.addLayer({id:r,type:"symbol",source:a,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});const s=i.features.filter(n=>n.geometry.type==="Point");for(const n of s){const l=document.createElement("div");l.id=`${i.id}-${n.properties.id}`,l.className=`${i.closed?"point-marker closed":"point-marker"}`,l.innerHTML='<div class="marker-circle"></div>';const h=new _e.Marker({element:l,draggable:!0,contextmenu:!0}).setLngLat(n.geometry.coordinates).addTo(this.map);h.on("drag",this.handleDrag),h.on("dragend",this.handleDragEnd),this.pointMarkers[i.id]?this.pointMarkers[i.id].push(h):this.pointMarkers[i.id]=[h]}if(i.closed){const n=s.at(-1),h=i.features.filter(c=>c.geometry.type==="LineString").at(-1),d=document.createElement("div");d.className="point-summary-marker",d.innerHTML=`<div id="${i.id}" class="marker-close">×</div><div class="marker-label">Total: ${h.properties.total}nm</div>`,this.closeMarkers[i.id]=new _e.Marker(d).setOffset([60,0]).setLngLat(n.geometry.coordinates).addTo(this.map)}}},handleClear(i,e=!0){var s,n,l,h,d,c,m,w,C;const a=`${i.id}-${this.source}`,o=`${i.id}-${this.layer}`,r=`${i.id}-${this.labelLayer}`;(s=this.map)!=null&&s.getLayer(o)&&this.map.removeLayer(o),(n=this.map)!=null&&n.getLayer(r)&&this.map.removeLayer(r),(l=this.map)!=null&&l.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(h=this.map)!=null&&h.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(d=this.closeMarkers[i.id])==null||d.remove(),this.closeMarkers[i.id]=void 0,(c=this.pointMarkers[i.id])==null||c.forEach(B=>{B==null||B.remove()}),this.pointMarkers[i.id]=[],(m=this.tipMarker)==null||m.remove(),this.tipMarker=void 0,e&&((w=this.map)!=null&&w.getSource(a))&&this.map.removeSource(a),e&&((C=this.map)!=null&&C.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}};function oo(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const so=O(ro,[["render",oo]]),Uo="",no={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},beforeLayer:{type:String,default:"grayland"},bottom:{type:String,default:"280px"},token:{type:String,default:""},toggleVersion:{type:Number},permission:{type:Number}},emits:["enc"],data(){return{helper:ee.CompanyHelper,vendor:"",right:10}},watch:{vendor:{handler(){this.$emit("enc",this.vendor)},immediate:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},mounted(){this.vendor=this.permission&ee.CompanyHelper.LEVEL.Supper?"hi":"i4"},methods:{}},lo={key:0},co={class:"bar-item"};function ho(i,e,a,o,r,s){const n=t.resolveComponent("ElTooltip");return a.enabled&&a.permission&r.helper.LEVEL.Supper?(t.openBlock(),t.createElementBlock("div",lo,[t.createElementVNode("div",{class:"menu-bar-box",style:t.normalizeStyle({position:"absolute",right:r.right+"px",bottom:a.bottom})},[t.createElementVNode("div",co,[t.createVNode(n,{placement:"left",effect:"light",content:"Hifleet","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.vendor==="hi"?"menu-icon active":"menu-icon"),onClick:e[0]||(e[0]=l=>r.vendor="hi")},e[2]||(e[2]=[t.createElementVNode("span",{class:"iconfont"},"HI",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"I4insight","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.vendor==="i4"?"menu-icon active":"menu-icon"),onClick:e[1]||(e[1]=l=>r.vendor="i4")},e[3]||(e[3]=[t.createElementVNode("span",{class:"iconfont"},"I4",-1)]),2)]),_:1})])],4)])):t.createCommentVNode("",!0)}const mo=O(no,[["render",ho],["__scopeId","data-v-8eecd76d"]]),po={name:"IdmWorld12nm",props:{map:{type:Object},enabled:{type:Boolean},weatherLayers:{type:Object,default:()=>({})},zoom:{type:Number,default:3},left:{type:String,default:"10px"},bottom:{type:String,default:"64px"},token:{type:String,default:""}},data(){return{layer:"world-12nm-v4-20231025"}},watch:{enabled:{handler(){this.enabled?(this.handleRender(),this.handleMove()):this.handleClear()},immediate:!0}},methods:{handleRender(){var i;this.map?(console.log(this.map.style._layers),(i=this.map)!=null&&i.getLayer(this.layer)&&(this.map.setLayoutProperty(this.layer,"visibility","visible"),this.map.setPaintProperty(this.layer,"line-color","rgb(210,54,83)"),this.map.setPaintProperty(this.layer,"line-width",2))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.layer)&&this.map.moveLayer(this.layer,"country-boundaries")},handleClear(){var i;(i=this.map)!=null&&i.getLayer(this.layer)&&this.map.setLayoutProperty(this.layer,"visibility","none")}}};function go(i,e,a,o,r,s){return null}const yo=O(po,[["render",go]]),Yo="",uo={name:"IdmWorldMarine",props:{map:{type:Object},enabled:{type:Boolean}},data(){return{labelLayer:"ne-10m-label",lineLayer:"ne-10m-outline"}},watch:{enabled:{handler(){this.enabled?(this.handleRender(),this.handleMove()):this.handleClear()},immediate:!0}},methods:{handleRender(){var i,e;this.map?((i=this.map)!=null&&i.getLayer(this.lineLayer)&&(this.map.setLayoutProperty(this.lineLayer,"visibility","visible"),this.map.setPaintProperty(this.lineLayer,"line-width",1)),(e=this.map)!=null&&e.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","visible")):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.lineLayer)&&this.map.moveLayer(this.lineLayer,"country-boundaries"),this.map.getLayer(this.labelLayer)&&this.map.moveLayer(this.labelLayer,"country-boundaries")},handleClear(){var i,e;(i=this.map)!=null&&i.getLayer(this.lineLayer)&&this.map.setLayoutProperty(this.lineLayer,"visibility","none"),(e=this.map)!=null&&e.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","none")}}};function fo(i,e,a,o,r,s){return null}const Ao=O(uo,[["render",fo]]),wo={name:"IdmChinaRoute",props:{map:{type:Object},enabled:{type:Boolean}},data(){return{labelLayer:"china-route-label",lineLayer:"china-route-line",fillLayer:"china-route-fill"}},watch:{enabled:{handler(){this.enabled?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleRender(){var i,e,a;this.map?((i=this.map)!=null&&i.getLayer(this.lineLayer)&&this.map.setLayoutProperty(this.lineLayer,"visibility","visible"),(e=this.map)!=null&&e.getLayer(this.fillLayer)&&this.map.setLayoutProperty(this.fillLayer,"visibility","visible"),(a=this.map)!=null&&a.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","visible")):setTimeout(()=>{this.handleRender()},500)},handleClear(){var i,e,a;(i=this.map)!=null&&i.getLayer(this.lineLayer)&&this.map.setLayoutProperty(this.lineLayer,"visibility","none"),(e=this.map)!=null&&e.getLayer(this.fillLayer)&&this.map.setLayoutProperty(this.fillLayer,"visibility","none"),(a=this.map)!=null&&a.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","none")}}};function bo(i,e,a,o,r,s){return null}const Lo=O(wo,[["render",bo]]),Ko="",Co={name:"IdmGLV2",components:{IdmGlLayer:Qt,IdmWindBarb:Ft,IdmWindParticle:Wt,IdmCurrents:Yt,IdmCurrentParticle:Jt,IdmSigWave:ea,IdmSwell:ia,IdmPrmsl:sa,IdmIceEdge:ha,IdmIceCover:ga,IdmIceThickness:Aa,IdmTropicals:Qe,IdmPrecip3h:Ra,IdmVisibility:Ua,IdmWaterTemp:qa,IdmTemp:ei,IdmWarZone:wr,IdmGmdssArea:Cr,IdmEcaZone:Er,IdmAlertZone:Dr,IdmPort:Fr,IdmLoadLine:jr,IdmTimezone:Ur,IdmVRA:Xr,IdmSpecialArea:Zr,IdmTerminator:to,IdmLatLng:He,IdmMeasure:so,IdmPoint:ur,IdmENC:mo,IdmWorld12nm:yo,IdmWorldMarine:Ao,IdmChinaRoute:Lo},props:{map:{type:Object,default:void 0},token:{type:String},ts:{type:String},beforeLayer:{type:String,default:""},toggleVersion:{type:Number},forecastModel:{type:String}},emits:["toggleVersion","activeWeatherLayers","showMeteoPoint"],data(){return{weatherLayers:{},activeWeatherLayers:[],weatherWeight:0,otherLayers:{},otherWeight:0,showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,meteo:void 0,source:"",gateway:"https://cbe.idmwx.com",assistGateway:["https://assist0.idmwx.com","https://assist1.idmwx.com","https://assist2.idmwx.com","https://assist3.idmwx.com"],mapProjection:"mercator",zoom:6,viewport:void 0,particleFactor:void 0,showRampColor:!1,activeWindLayer:!1,showWindFeather:!0,showWindParticle:!1,toggleWindParticeVersion:0,toggleCurrentParticeVersion:0,showCurrentIsoband:!1,showCurrentParticle:!1,enc:"",defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg",helper:new Ve}},watch:{ts:{handler(i,e){i&&e&&j(i).utc().format("yyyy-MM-DD HH")!==j(e).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.handleDateChange({tropicals:!1})})},immediate:!0},map:{handler(){this.map&&(this.map.on("move",this.handleMove4Weather),this.viewport=new Te(this.map),this.handleRampColorInitial())},immediate:!0},enc:{handler(i,e){var a,o,r,s,n,l,h,d;i&&this.map.getZoom()>3?((o=(a=this.map)==null?void 0:a.getLayer(i))==null||o.setLayoutProperty("visibility","visible"),(s=(r=this.map)==null?void 0:r.getLayer(e))==null||s.setLayoutProperty("visibility","none")):((l=(n=this.map)==null?void 0:n.getLayer("i4"))==null||l.setLayoutProperty("visibility","none"),(d=(h=this.map)==null?void 0:h.getLayer("hi"))==null||d.setLayoutProperty("visibility","none"))}},activeWeatherLayers:{handler(){var a,o,r,s,n,l,h,d,c,m,w,C,B,y,E,v,u,f,p,b,g,A,k;if(!this.map)return!1;const i=this.activeWeatherLayers.some(_=>_.key==="wind"&&_.particle===!0||_.key==="current"&&_.particle===!0||_.key==="ice-edge"||_.key==="ice-thickness"||_.key==="ice-cover"||_.key==="temp"||_.key==="water-temp"),e=this.activeWeatherLayers.some(_=>_.key==="visibility"||_.key==="precip3h");this.activeWeatherLayers.length>0?(!i&&this.map.getZoom()>3&&this.enc?(o=(a=this.map)==null?void 0:a.getLayer(this.enc))==null||o.setLayoutProperty("visibility","visible"):((s=(r=this.map)==null?void 0:r.getLayer("i4"))==null||s.setLayoutProperty("visibility","none"),(l=(n=this.map)==null?void 0:n.getLayer("hi"))==null||l.setLayoutProperty("visibility","none")),(d=(h=this.map)==null?void 0:h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||d.setLayoutProperty("visibility","visible"),(m=this.map)!=null&&m.getLayer((c=this.viewport)==null?void 0:c.rampColorLayer)&&((w=this.map)!=null&&w.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((B=this.map)==null||B.moveLayer((C=this.viewport)==null?void 0:C.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),e&&((E=this.map)==null||E.moveLayer(this.helper.mapboxCustomer.layers.countryBoundary.id,(y=this.viewport)==null?void 0:y.rampColorLayer))):((u=(v=this.map)==null?void 0:v.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||u.setLayoutProperty("visibility","none"),this.enc&&this.map.getZoom()>3?(p=(f=this.map)==null?void 0:f.getLayer(this.enc))==null||p.setLayoutProperty("visibility","visible"):((g=(b=this.map)==null?void 0:b.getLayer("i4"))==null||g.setLayoutProperty("visibility","none"),(k=(A=this.map)==null?void 0:A.getLayer("hi"))==null||k.setLayoutProperty("visibility","none"))),this.$emit("activeWeatherLayers",this.activeWeatherLayers)},immediate:!0},showPoint:{handler(){this.$emit("showMeteoPoint",this.showPoint)}}},methods:{async fetchWeatherLayers(i={tropicals:!1}){var r,s,n,l,h,d,c,m,w;const e=new Date().valueOf();let a=0,o=0;if(this.map){const C=((r=this.map)==null?void 0:r.getZoom())+1,B=(s=this.map)==null?void 0:s.getBounds(),y=`${B._sw.lng},${B._sw.lat},${B._ne.lng},${B._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const E=ee.LayerHelper.WEATHER_LAYERS.find(v=>{var u;return((u=v.peer)==null?void 0:u.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&E.weight?this.weatherWeight:this.weatherWeight+E.weight:this.weatherWeight=this.weatherWeight&E.weight?this.weatherWeight-E.weight:this.weatherWeight}if(this.weatherWeight>0){let E=this.weatherWeight,v;if(i.tropicals||this.weatherWeight&256&&(v=this.weatherLayers.tropicals,v&&(E-=256,v.version=Math.random()+1)),E>0){const u=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],f=await ve.get(`${u}/api/arc/weather/layers2/links?l=${E}&v=${this.source}&z=${C}&bbox=${y}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(o=new Date().valueOf()-(e+a),console.log("weather links elapsed: ",o,", total: ",a+=o),((l=f==null?void 0:f.data)==null?void 0:l.code)===0){const p=(h=f==null?void 0:f.data)==null?void 0:h.data,b=[];for(const A in p)A!=="tropicals"&&b.push(ve.get(p[A],{headers:{Authorization:this.token||this.defaultMeteoToken,key:A},responseType:/\.(jpg|png)$/.test(p[A])?"blob":"json"}).catch(k=>{console.log(`[${A}] fetch layer error: ${k}`)}));const g=await Promise.all(b);this.weatherLayers={},g.map(A=>{var S,M,Q,V;const k=((S=A==null?void 0:A.data)==null?void 0:S.data)||(A==null?void 0:A.data),_=(Q=(M=A==null?void 0:A.config)==null?void 0:M.headers)==null?void 0:Q.key;_&&k&&(this.weatherLayers[_]={raw:k,type:((V=A==null?void 0:A.config)==null?void 0:V.responseType)==="blob"?"image":"json",etime:f.data.etime})}),p.tropicals&&ve.get(p.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"}}).then(A=>{var S,M,Q;const k=W.TropicalHelper.convert2Geojson(((S=A==null?void 0:A.data)==null?void 0:S.data)||(A==null?void 0:A.data)),_=(Q=(M=A==null?void 0:A.config)==null?void 0:M.headers)==null?void 0:Q.key;this.weatherLayers[_]={data:k,active:!0,cached:!1,type:"json",etime:f.data.etime,version:Math.random()+1}})}if(o=new Date().valueOf()-(e+a),console.log("weather layers elapsed: ",o,", total: ",a+=o),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const p=(d=this.weatherLayers["swell-direction"])==null?void 0:d.raw,b=(c=this.weatherLayers["swell-height"])==null?void 0:c.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:p,height:{raw:b},etime:f.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const p=(m=this.weatherLayers["current-direction"])==null?void 0:m.raw,b=(w=this.weatherLayers["current-speed"])==null?void 0:w.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:p,speed:{raw:b},etime:f.data.etime}}}v&&(v.etime=this.ts,v.cached=!0,this.weatherLayers.tropicals=v)}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json()}this.$emit("toggleVersion",Math.random())},async fetchOtherLayers(i={all:!1,dayNight:!1,enc:!1,world12nm:!1,worldMarine:!1,chinaRoute:!1}){var e,a,o,r;if(this.map){let s=this.otherWeight;if(s){let n=!1,l=!1,h=!1,d=!1;if(this.otherWeight&2048&&(s=this.otherWeight-2048,n=!0),this.otherWeight&8192&&(s=s-8192,l=!0),this.otherWeight&16384&&(s=s-16384,h=!0),this.otherWeight&32768&&(s=s-32768,d=!0),s){if(i.all){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],m=await ve.get(`${c}/api/arc/other/layers/links?l=${s}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((e=m==null?void 0:m.data)==null?void 0:e.code)===0){const w=(a=m==null?void 0:m.data)==null?void 0:a.data,C=[];for(const y in w)C.push(ve.get(w[y],{headers:{Authorization:this.token||this.defaultMeteoToken,key:y}}));const B=await Promise.all(C);this.otherLayers={enc:n,world12nm:l,worldMarine:h,chinaRoute:d},B.map(y=>{var u,f,p;const E=((u=y==null?void 0:y.data)==null?void 0:u.data)||(y==null?void 0:y.data),v=(p=(f=y==null?void 0:y.config)==null?void 0:f.headers)==null?void 0:p.key;this.otherLayers[v]=E})}}else if(i.dayNight&&s&1024){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],m=await ve.get(`${c}/api/arc/other/layers/links?l=1024&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((o=m==null?void 0:m.data)==null?void 0:o.code)===0){const w=(r=m==null?void 0:m.data)==null?void 0:r.data,C=[];for(const y in w)C.push(ve.get(w[y],{headers:{Authorization:this.token||this.defaultMeteoToken,key:y}}));(await Promise.all(C)).map(y=>{var u,f,p;const E=((u=y==null?void 0:y.data)==null?void 0:u.data)||(y==null?void 0:y.data),v=(p=(f=y==null?void 0:y.config)==null?void 0:f.headers)==null?void 0:p.key;this.otherLayers[v]=E})}}}else this.otherLayers={enc:n,world12nm:l,worldMarine:h,chinaRoute:d}}else this.otherLayers={};this.handleBeforeLayerToggle()}},handleRampColorState(){var i;if(this.showRampColor=!1,this.showWindParticle=!1,this.showCurrentParticle=!1,(i=this.particleFactor)!=null&&i.particle)this.showRampColor=!0,this.particleFactor.key==="wind"&&(this.showWindParticle=!0),this.particleFactor.key==="current"&&(this.showCurrentParticle=!0);else for(const e of this.activeWeatherLayers)["png","jpg"].includes(e.type)&&(this.showRampColor=!0);this.activeWindLayer=!!this.activeWeatherLayers.find(e=>e.key==="wind"),this.$refs.layer&&(this.$refs.layer.activeWeatherLayers=this.activeWeatherLayers)},handleRampColorInitial(){var i,e,a,o,r,s,n,l,h,d,c,m;this.viewport.map.getSource((i=this.viewport)==null?void 0:i.rampColorSource)||this.viewport.map.addSource((e=this.viewport)==null?void 0:e.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((o=this.viewport)==null?void 0:o.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(r=this.viewport)==null?void 0:r.rampColorLayer,source:(s=this.viewport)==null?void 0:s.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((l=this.viewport)==null?void 0:l.particleSource,{type:"canvas",canvas:(h=this.viewport)==null?void 0:h.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((d=this.viewport)==null?void 0:d.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(c=this.viewport)==null?void 0:c.particleLayer,source:(m=this.viewport)==null?void 0:m.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var d,c,m,w,C,B;const i=new Date().valueOf();let e=0,a=0;const o=(d=this.map)==null?void 0:d.getBounds(),r=this.map.getZoom(),s=W.LngLatHelper.convertToStdLng(o._sw.lng),n=W.LngLatHelper.convertToStdLng(o._ne.lng),l=Math.floor(o._sw.lat),h=Math.ceil(o._ne.lat);for(const y in this.weatherLayers){let E=!1;if(this.weatherLayers[y].active&&this.weatherLayers[y].type==="json"){let v=[];if(y==="swell"){E=!0;const u=((c=this.weatherLayers[y])==null?void 0:c.direction)||{};for(const p in u)if(p>l&&p<h&&(!(r<=this.zoom)||p%(r<2?10:r<4?5:3)===0)){const b=u[p].lng;s>n?b.forEach((g,A)=>{var k,_,S,M,Q,V;if(r<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[A])||((_=u[p].dir)==null?void 0:_[A]),spd:(S=u[p].spd)==null?void 0:S[A]});v.push(H)}}else if((g>=s&&g<=180||g>=-180&&g<=n)&&(!(r<=this.zoom)||g%(r<2?10:r<4?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[A])||((Q=u[p].dir)==null?void 0:Q[A]),spd:(V=u[p].spd)==null?void 0:V[A]});v.push(H)}}):b.forEach((g,A)=>{var k,_,S,M,Q,V;if(s<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[A])||((_=u[p].dir)==null?void 0:_[A]),spd:(S=u[p].spd)==null?void 0:S[A]});v.push(H)}}else if(g>=s&&g<=n&&(!(r<=this.zoom)||g%(r<2?10:r<4?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[A])||((Q=u[p].dir)==null?void 0:Q[A]),spd:(V=u[p].spd)==null?void 0:V[A]});v.push(H)}})}a=new Date().valueOf()-(i+e),console.log("swell direction elapsed: ",a,", total: ",e+=a);const f=this.weatherLayers[y].height;if(f){if(!f.data){const p=[];for(const b in(m=f.raw)==null?void 0:m.LineString){const g=f.raw.LineString[b];for(const A of g)p.push(z.lineString(A,{val:Number(b)}));f.data=z.featureCollection(p)}}if(f.data){const p=this.handleBboxClip(f.data,o);v=v.concat(p)}a=new Date().valueOf()-(i+e),console.log("swell height elapsed: ",a,", total: ",e+=a)}}else if(y==="current"&&this.showCurrentIsoband){E=!0;const u=((w=this.weatherLayers[y])==null?void 0:w.direction)||{};for(const p in u)if(p>l&&p<h&&(!(r<=this.zoom)||p%(r<2?10:r<4?5:3)===0)){const b=u[p].lng;s>n?b.forEach((g,A)=>{var k,_,S,M,Q,V;if(r<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[A])||((_=u[p].dir)==null?void 0:_[A]),spd:(S=u[p].spd)==null?void 0:S[A]});v.push(H)}}else if((g>=s&&g<=180||g>=-180&&g<=n)&&(!(r<=this.zoom)||g%(r<2?10:r<4?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[A])||((Q=u[p].dir)==null?void 0:Q[A]),spd:(V=u[p].spd)==null?void 0:V[A]});v.push(H)}}):b.forEach((g,A)=>{var k,_,S,M,Q,V;if(s<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[A])||((_=u[p].dir)==null?void 0:_[A]),spd:(S=u[p].spd)==null?void 0:S[A]});v.push(H)}}else if(g>=s&&g<=n&&(!(r<=this.zoom)||g%(r<this.zoom/2?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[A])||((Q=u[p].dir)==null?void 0:Q[A]),spd:(V=u[p].spd)==null?void 0:V[A]});v.push(H)}})}a=new Date().valueOf()-(i+e),console.log("current direction elapsed: ",a,", total: ",e+=a);const f=this.weatherLayers[y].speed;if(f){if(!f.data){const b=[];for(const g in(C=f.raw)==null?void 0:C.Polygon){const A=f.raw.Polygon[g];for(const k of A)b.push(z.polygon(k,{val:Number(g)}))}f.data=z.featureCollection(b)}const p=r<this.zoom?f.data.features.filter(b=>b.properties.val>.5):f.data.features;v=v.concat(p),a=new Date().valueOf()-(i+e),console.log("current speed elapsed: ",a,", total: ",e+=a)}}else if(y==="wind"&&this.showWindFeather){E=!0;const u=this.weatherLayers.wind.raw;for(const f in u)if(f>l&&f<h&&(!(r<=this.zoom)||f%(r<2?10:r<4?5:3)===0)){const p=u[f].lng;s>n?p.forEach((b,g)=>{var A,k,_,S;if(r<2){if((b>=0&&b<=360||b>=-360&&b<=0)&&b%10===0){const M=z.point([b,f],{dir:((A=u[f].val)==null?void 0:A[g])||((k=u[f].dir)==null?void 0:k[g]),spd:u[f].spd[g]});v.push(M)}}else if((b>=s&&b<=180||b>=-180&&b<=n)&&(!(r<=this.zoom)||b%(r<2?10:r<4?5:3)===0)){const M=z.point([b,f],{dir:((_=u[f].val)==null?void 0:_[g])||((S=u[f].dir)==null?void 0:S[g]),spd:u[f].spd[g]});v.push(M)}}):p.forEach((b,g)=>{var A,k,_,S;if(r<2){if((b>=0&&b<=360||b>=-360&&b<=0)&&b%10===0){const M=z.point([b,f],{dir:((A=u[f].val)==null?void 0:A[g])||((k=u[f].dir)==null?void 0:k[g]),spd:u[f].spd[g]});v.push(M)}}else if(b>=s&&b<=n&&(!(r<=this.zoom)||b%(r<2?10:r<4?5:3)===0)){const M=z.point([b,f],{dir:((_=u[f].val)==null?void 0:_[g])||((S=u[f].dir)==null?void 0:S[g]),spd:u[f].spd[g]});v.push(M)}})}a=new Date().valueOf()-(i+e),console.log("wind barb elapsed: ",a,", total: ",e+=a)}else if(y==="sig-wave-height"){if(this.weatherLayers[y].data)v=this.weatherLayers[y].data;else{E=!0;const u=this.weatherLayers[y].raw;if(u){const f=[];for(const p in u.Polygon){const b=u.Polygon[p];for(const g of b)f.push(z.polygon(g,{val:Number(p)}))}for(const p in u.MultiPolygon){const b=u.MultiPolygon[p];for(const g of b)f.push(z.multiPolygon(g,{val:Number(p)}))}for(const p in u.Point){const b=u.Point[p];for(let g=0;g<((B=b.lng)==null?void 0:B.length);g++)f.push(z.point([b.lng[g],p],{val:Number(b.val[g])}))}v=v.concat(f)}}a=new Date().valueOf()-(i+e),console.log("sigWave elapsed: ",a,", total: ",e+=a)}else if(y==="prmsl"){if(this.weatherLayers[y].data)v=this.weatherLayers[y].data;else{E=!0;const u=this.weatherLayers[y].raw;if(u){const f=[];for(const p in u.LineString){const b=u.LineString[p];for(const g of b)f.push(z.lineString(g,{val:Number(p)}))}for(const p in u.Point)u.Point[p].lng.forEach((b,g)=>{b=W.LngLatHelper.convertToStdLng(b),f.push(z.point([b,p],{val:u.Point[p].val[g],type:u.Point[p].type[g]}))});v=v.concat(f)}}a=new Date().valueOf()-(i+e),console.log("prmsl elapsed: ",a,", total: ",e+=a)}v.length&&(this.weatherLayers[y].data=z.featureCollection(v)),E&&(this.weatherLayers[y].version=Math.random()+1)}}},handleMove4Weather(){var e,a,o,r,s,n;for(const l in this.weatherLayers)this.weatherLayers[l].active&&this.weatherLayers[l].type==="image"&&(this.weatherLayers[l].active=!0,this.weatherLayers[l].version=Math.random()+1);this.handleDrawWeather4Json(),!this.activeWeatherLayers.some(l=>l.key==="wind"&&l.particle===!0||l.key==="current"&&l.particle===!0||l.key==="ice-edge"||l.key==="ice-thickness"||l.key==="ice-cover"||l.key==="temp"||l.key==="water-temp")&&this.map.getZoom()>3&&this.enc?(a=(e=this.map)==null?void 0:e.getLayer(this.enc))==null||a.setLayoutProperty("visibility","visible"):((r=(o=this.map)==null?void 0:o.getLayer("i4"))==null||r.setLayoutProperty("visibility","none"),(n=(s=this.map)==null?void 0:s.getLayer("hi"))==null||n.setLayoutProperty("visibility","none"))},handleBboxClip(i,e){const a=[],o=W.LngLatHelper.convertToStdLng(e._sw.lng),r=W.LngLatHelper.convertToStdLng(e._ne.lng);return i.features.forEach(s=>{if(s.geometry.type!=="Point")if(o>r){let n=[o,e._sw.lat,180,e._ne.lat],l=z.bboxClip(s,n);l.geometry.coordinates.length&&a.push(l),n=[-180,e._sw.lat,r,e._ne.lat],l=z.bboxClip(s,n),l.geometry.coordinates.length&&a.push(l)}else{const n=[o,e._sw.lat,r,e._ne.lat],l=z.bboxClip(s,n);l.geometry.coordinates.length&&a.push(l)}else a.push(s)}),a},handleWeatherLayerToggle(){var i;for(const e in this.weatherLayers)this.weatherLayers[e].active=!1,this.weatherLayers[e].version=Math.random()+1;for(const e of this.activeWeatherLayers){let a=e.key;a.indexOf("swell")>-1?a="swell":a.indexOf("current")>-1&&(a="current"),this.weatherLayers[a]&&(this.weatherLayers[a].active=!0,this.weatherLayers[a].version=Math.random()+1,((i=this.particleFactor)==null?void 0:i.key)===a&&this.weatherLayers[`${a}-particle`]&&(this.weatherLayers[`${a}-particle`].active=this.particleFactor.particle))}this.handleBeforeLayerToggle()},handleBeforeLayerToggle(){var i,e,a,o,r,s,n,l,h,d,c,m,w,C,B,y;(i=this.map)!=null&&i.getLayer(this.beforeLayer)&&((e=this.activeWeatherLayers)!=null&&e.length||(a=this.otherLayers)!=null&&a["war-zones"]||(o=this.otherLayers)!=null&&o["gmdss-areas"]||(r=this.otherLayers)!=null&&r["load-lines"]||(s=this.otherLayers)!=null&&s["high-risk-area"]||(n=this.otherLayers)!=null&&n["time-zones"]||(l=this.otherLayers)!=null&&l.pirates||(h=this.otherLayers)!=null&&h.ports||(d=this.otherLayers)!=null&&d.enc||(c=this.otherLayers)!=null&&c.world12nm||(m=this.otherLayers)!=null&&m.worldMarine||(w=this.otherLayers)!=null&&w.chinaRoute||(C=this.otherLayers)!=null&&C["voluntary-reporting-area"]||(B=this.otherLayers)!=null&&B["eca-zones"]||(y=this.otherLayers)!=null&&y["special-area"])&&this.map.setLayoutProperty(this.beforeLayer,"visibility","visible")},handleDateChange(i={tropicals:!1}){this.fetchWeatherLayers(i),this.fetchOtherLayers({dayNight:!0})},handleWeatherLayerChange(i,e){this.showWindParticle=!1,this.showCurrentParticle=!1,this.map?setTimeout(()=>{this.activeWeatherLayers=JSON.parse(JSON.stringify(i));const a=this.activeWeatherLayers.some(s=>{var n;return["wind","current"].includes(s.key)&&(!((n=Object.keys(s))!=null&&n.some(l=>l==="particle"))||!!s.particle)}),o=this.activeWeatherLayers.some(s=>["png","jpg"].includes(s.type));a&&!o?(this.activeWeatherLayers.forEach(s=>{s.key==="wind"&&s.particle&&(this.particleFactor=s,this.showWindParticle=!0),s.key==="current"&&s.particle&&(this.particleFactor=s,this.showCurrentParticle=!0)}),this.particleFactor.particle=!0):o&&this.particleFactor&&(this.particleFactor.particle=!1);const r=i==null?void 0:i.reduce((s,n)=>s+(s&(n==null?void 0:n.weight)?0:n==null?void 0:n.weight),0);this.weatherWeight!==r||this.source!==e?(this.source=e,this.weatherWeight=r,this.fetchWeatherLayers({tropicals:!1})):this.handleWeatherLayerToggle()}):setTimeout(()=>{this.handleWeatherLayerChange(i,e)},500)},handleOtherLayerChange(i){if(!this.map)setTimeout(()=>{this.handleOtherLayerChange(i)},500);else{const e=i==null?void 0:i.reduce((a,o)=>a+(o==null?void 0:o.weight),0);i.find(a=>a.key==="enc")?this.enc=this.$attrs.permission&ee.CompanyHelper.LEVEL.Supper?"hi":"i4":this.enc="",this.otherWeight!==e&&(this.otherWeight=e,this.fetchOtherLayers({all:!0}))}},handle3dToggle(i){var e,a,o,r,s,n,l,h,d,c,m,w,C,B,y,E,v,u,f,p;i?(this.map.setProjection("globe"),this.mapProjection="globe",(a=this.map)!=null&&a.getLayer((e=this.viewport)==null?void 0:e.rampColorLayer)&&((o=this.map)!=null&&o.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((s=this.map)==null||s.moveLayer((r=this.viewport)==null?void 0:r.rampColorLayer,this.helper.mapboxCustomer.layers.water.id)),(l=this.map)!=null&&l.getLayer((n=this.viewport)==null?void 0:n.particleLayer)&&((h=this.map)!=null&&h.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((c=this.map)==null||c.moveLayer((d=this.viewport)==null?void 0:d.particleLayer,this.helper.mapboxCustomer.layers.water.id))):(this.map.setProjection("mercator"),this.mapProjection="mercator",(w=this.map)!=null&&w.getLayer((m=this.viewport)==null?void 0:m.rampColorLayer)&&((C=this.map)!=null&&C.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((y=this.map)==null||y.moveLayer((B=this.viewport)==null?void 0:B.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(v=this.map)!=null&&v.getLayer((E=this.viewport)==null?void 0:E.particleLayer)&&((u=this.map)!=null&&u.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((p=this.map)==null||p.moveLayer((f=this.viewport)==null?void 0:f.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)))},handleParticle(i){this.particleFactor=i,this.weatherLayers[i.key]&&(this.weatherLayers[i.key].particle=i.particle),this.activeWeatherLayers.map(o=>{var r;return o.key===i.key?o.particle=i.particle:i.particle&&((r=Object.keys(o))!=null&&r.some(s=>s==="particle"))&&(o.particle=!1),o});let e=localStorage.getItem("activeWeatherLayersCache");const a=JSON.parse(e)||[];a==null||a.forEach(o=>{var r;o.key===i.key?o.particle=i.particle:i.particle&&((r=Object.keys(o))!=null&&r.some(s=>s==="particle"))&&(o.particle=!1)}),localStorage.setItem("activeWeatherLayersCache",JSON.stringify(a)),this.fetchWeatherLayers({tropicals:!1})},handleToggleVersion(){this.$emit("toggleVersion",Math.random())}}},vo={key:0,ref:"mapGlHome",class:"map-gl-home"};function xo(i,e,a,o,r,s){var Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae,X,U,I,pe,R,K,xe,N,le,Ce,Ee,Be,D,T,Ne,ze;const n=t.resolveComponent("IdmGlLayer"),l=t.resolveComponent("IdmENC"),h=t.resolveComponent("IdmWorld12nm"),d=t.resolveComponent("IdmWorldMarine"),c=t.resolveComponent("IdmChinaRoute"),m=t.resolveComponent("IdmSigWave"),w=t.resolveComponent("IdmSwell"),C=t.resolveComponent("IdmPrmsl"),B=t.resolveComponent("IdmIceEdge"),y=t.resolveComponent("IdmIceCover"),E=t.resolveComponent("IdmIceThickness"),v=t.resolveComponent("IdmTropicals"),u=t.resolveComponent("IdmCurrents"),f=t.resolveComponent("IdmCurrentParticle"),p=t.resolveComponent("IdmWindBarb"),b=t.resolveComponent("IdmWindParticle"),g=t.resolveComponent("IdmPrecip3h"),A=t.resolveComponent("IdmVisibility"),k=t.resolveComponent("IdmWaterTemp"),_=t.resolveComponent("IdmTemp"),S=t.resolveComponent("IdmWarZone"),M=t.resolveComponent("IdmGmdssArea"),Q=t.resolveComponent("IdmEcaZone"),V=t.resolveComponent("IdmAlertZone"),H=t.resolveComponent("IdmPort"),ae=t.resolveComponent("IdmLoadLine"),q=t.resolveComponent("IdmTimezone"),ie=t.resolveComponent("IdmVRA"),ce=t.resolveComponent("IdmSpecialArea"),re=t.resolveComponent("IdmTerminator"),he=t.resolveComponent("IdmLatLng"),oe=t.resolveComponent("IdmMeasure"),F=t.resolveComponent("IdmPoint");return a.map?(t.openBlock(),t.createElementBlock("div",vo,[t.createVNode(n,t.mergeProps({ref:"layer",map:a.map,"toggle-version":a.toggleVersion,"map-projection":r.mapProjection,"show-wind-feather":r.showWindFeather,"show-wind-particle":r.showWindParticle,"show-current-isoband":r.showCurrentIsoband,"show-current-particle":r.showCurrentParticle,token:a.token,gateway:r.gateway},i.$attrs,{"forecast-model":a.forecastModel,onWeather:s.handleWeatherLayerChange,onOther:s.handleOtherLayerChange,onToggleWindParticle:e[0]||(e[0]=$=>r.showWindParticle=$),onToggleWindFeather:e[1]||(e[1]=$=>{(r.showWindFeather=$)&&s.handleDrawWeather4Json()}),onToggleCurrentParticle:e[2]||(e[2]=$=>r.showCurrentParticle=$),onToggleCurrentIsoband:e[3]||(e[3]=$=>{(r.showCurrentIsoband=$)&&s.handleDrawWeather4Json()}),onToggleWindParticeVersion:e[4]||(e[4]=$=>r.toggleWindParticeVersion=Math.random()),onToggleCurrentParticeVersion:e[5]||(e[5]=$=>r.toggleCurrentParticeVersion=Math.random()),onCoordinate:e[6]||(e[6]=$=>r.showCoord=$),onMeasure:e[7]||(e[7]=$=>r.showMeasure=$),onPoint:e[8]||(e[8]=$=>r.showPoint=$),on3d:s.handle3dToggle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","toggle-version","map-projection","show-wind-feather","show-wind-particle","show-current-isoband","show-current-particle","token","gateway","forecast-model","onWeather","onOther","on3d","onHandleToggleVersion"]),t.createVNode(l,t.mergeProps({map:a.map,token:a.token,enabled:(Y=r.otherLayers)==null?void 0:Y.enc,"toggle-version":a.toggleVersion},i.$attrs,{onEnc:e[9]||(e[9]=$=>r.enc=$)}),null,16,["map","token","enabled","toggle-version"]),t.createVNode(h,t.mergeProps({map:a.map,token:a.token,"weather-layers":r.weatherLayers,enabled:(se=r.otherLayers)==null?void 0:se.world12nm},i.$attrs),null,16,["map","token","weather-layers","enabled"]),t.createVNode(d,t.mergeProps({map:a.map,token:a.token,"weather-layers":r.weatherLayers,enabled:(te=r.otherLayers)==null?void 0:te.worldMarine},i.$attrs),null,16,["map","token","weather-layers","enabled"]),t.createVNode(c,t.mergeProps({map:a.map,token:a.token,"weather-layers":r.weatherLayers,enabled:(ne=r.otherLayers)==null?void 0:ne.chinaRoute},i.$attrs),null,16,["map","token","weather-layers","enabled"]),t.createVNode(m,t.mergeProps({map:a.map,"sig-wave":(ge=r.weatherLayers)==null?void 0:ge["sig-wave-height"],"before-layer":a.beforeLayer,"active-weather-layers":r.activeWeatherLayers},i.$attrs),null,16,["map","sig-wave","before-layer","active-weather-layers"]),t.createVNode(w,t.mergeProps({map:a.map,swell:(de=r.weatherLayers)==null?void 0:de.swell,"before-layer":a.beforeLayer,"active-weather-layers":r.activeWeatherLayers},i.$attrs),null,16,["map","swell","before-layer","active-weather-layers"]),t.createVNode(C,t.mergeProps({map:a.map,prmsl:(ye=r.weatherLayers)==null?void 0:ye.prmsl,"before-layer":a.beforeLayer,"active-weather-layers":r.activeWeatherLayers},i.$attrs),null,16,["map","prmsl","before-layer","active-weather-layers"]),t.createVNode(B,t.mergeProps({viewport:r.viewport,factor:(x=r.weatherLayers)==null?void 0:x["ice-edge"],"toggle-version":a.toggleVersion,"before-layer":a.beforeLayer},i.$attrs),null,16,["viewport","factor","toggle-version","before-layer"]),t.createVNode(y,t.mergeProps({viewport:r.viewport,factor:(we=r.weatherLayers)==null?void 0:we["ice-cover"],"toggle-version":a.toggleVersion,"before-layer":a.beforeLayer},i.$attrs),null,16,["viewport","factor","toggle-version","before-layer"]),t.createVNode(E,t.mergeProps({viewport:r.viewport,factor:(me=r.weatherLayers)==null?void 0:me["ice-thickness"],"toggle-version":a.toggleVersion,"before-layer":a.beforeLayer},i.$attrs),null,16,["viewport","factor","toggle-version","before-layer"]),t.createVNode(v,t.mergeProps({map:a.map,date:a.ts,tropicals:(be=r.weatherLayers)==null?void 0:be.tropicals,"before-layer":a.beforeLayer},i.$attrs),null,16,["map","date","tropicals","before-layer"]),t.createVNode(u,t.mergeProps({map:a.map,"map-projection":r.mapProjection,current:(fe=r.weatherLayers)==null?void 0:fe.current,"before-layer":a.beforeLayer,"show-current-isoband":r.showCurrentIsoband,"show-current-particle":r.showCurrentParticle,"toggle-partice-version":r.toggleCurrentParticeVersion,"margin-bottom":r.activeWindLayer?r.showRampColor?"84px":"56px":r.showRampColor?"56px":"30px","toggle-version":a.toggleVersion,"weather-layers":r.weatherLayers},i.$attrs,{onParticle:s.handleParticle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","map-projection","current","before-layer","show-current-isoband","show-current-particle","toggle-partice-version","margin-bottom","toggle-version","weather-layers","onParticle","onHandleToggleVersion"]),t.createVNode(f,t.mergeProps({viewport:r.viewport,factor:(Le=r.weatherLayers)==null?void 0:Le["current-particle"],"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(p,t.mergeProps({ref:"windBarb",map:a.map,"map-projection":r.mapProjection,wind:(Ae=r.weatherLayers)==null?void 0:Ae.wind,current:(X=r.weatherLayers)==null?void 0:X.current,"before-layer":a.beforeLayer,"margin-bottom":r.showRampColor?"56px":"30px","show-wind-feather":r.showWindFeather,"show-wind-particle":r.showWindParticle,"toggle-partice-version":r.toggleWindParticeVersion},i.$attrs,{"toggle-version":a.toggleVersion,"weather-layers":r.weatherLayers,onParticle:s.handleParticle}),null,16,["map","map-projection","wind","current","before-layer","margin-bottom","show-wind-feather","show-wind-particle","toggle-partice-version","toggle-version","weather-layers","onParticle"]),t.createVNode(b,t.mergeProps({viewport:r.viewport,factor:(U=r.weatherLayers)==null?void 0:U["wind-particle"],"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(g,t.mergeProps({viewport:r.viewport,factor:(I=r.weatherLayers)==null?void 0:I.precip3h,"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(A,t.mergeProps({viewport:r.viewport,factor:(pe=r.weatherLayers)==null?void 0:pe.visibility,"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(k,t.mergeProps({viewport:r.viewport,factor:(R=r.weatherLayers)==null?void 0:R["water-temp"],"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(_,t.mergeProps({viewport:r.viewport,factor:(K=r.weatherLayers)==null?void 0:K.temp,"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(S,t.mergeProps({map:a.map,zone:(xe=r.otherLayers)==null?void 0:xe["war-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(M,t.mergeProps({map:a.map,area:(N=r.otherLayers)==null?void 0:N["gmdss-areas"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","area","before-layer"]),t.createVNode(Q,t.mergeProps({map:a.map,zone:(le=r.otherLayers)==null?void 0:le["eca-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(V,t.mergeProps({map:a.map,zone:(Ce=r.otherLayers)==null?void 0:Ce["alert-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(H,t.mergeProps({map:a.map,port:(Ee=r.otherLayers)==null?void 0:Ee.ports,"before-layer":a.beforeLayer,"forecast-model":a.forecastModel},i.$attrs),null,16,["map","port","before-layer","forecast-model"]),t.createVNode(ae,t.mergeProps({map:a.map,line:(Be=r.otherLayers)==null?void 0:Be["load-lines"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","line","before-layer"]),t.createVNode(q,t.mergeProps({map:a.map,zone:(D=r.otherLayers)==null?void 0:D["time-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(ie,t.mergeProps({map:a.map,area:(T=r.otherLayers)==null?void 0:T["voluntary-reporting-area"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","area","before-layer"]),t.createVNode(ce,t.mergeProps({map:a.map,area:(Ne=r.otherLayers)==null?void 0:Ne["special-area"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","area","before-layer"]),t.createVNode(re,t.mergeProps({map:a.map,area:(ze=r.otherLayers)==null?void 0:ze["day-night"]},i.$attrs),null,16,["map","area"]),t.createVNode(he,t.mergeProps({map:a.map,show:r.showCoord,"toggle-version":a.toggleVersion},i.$attrs),null,16,["map","show","toggle-version"]),t.createVNode(oe,t.mergeProps({map:a.map,show:r.showMeasure},i.$attrs),null,16,["map","show"]),t.createVNode(F,t.mergeProps({ref:"idmPoint",map:a.map,show:r.showPoint,meteo:r.meteo,ts:a.ts,token:a.token,gateway:r.gateway,"forecast-model":a.forecastModel},i.$attrs),null,16,["map","show","meteo","ts","token","gateway","forecast-model"])],512)):t.createCommentVNode("",!0)}const Oe=O(Co,[["render",xo]]),Eo={install(i){i.component("MapboxGL",Oe),i.component("TropicalGL",Qe),i.component("LatLngGL",He)}};G.LatLngGL=He,G.MapboxGL=Oe,G.MapboxGLPlugin=Eo,G.MapboxHelper=Ve,G.ParticleSchema=ue,G.TropicalGL=Qe,G.Viewport=Te,G.WebGL=ke,G.WebGLSchema=Z,Object.defineProperty(G,Symbol.toStringTag,{value:"Module"})});
215
+ </svg>`,te=document.createElement("div");te.className="hurricane-hourly-marker",te.innerHTML=`<div class="${F.geometry.coordinates[1]>=0?"center north":"center south"}">${se}</div>`;const ne=new _e.Marker(te).setLngLat(F.geometry.coordinates).addTo(this.map);this.interpolateMarkers.push(ne),(V=(Q=this.map)==null?void 0:Q.getSource(this.circleSource))==null||V.setData(this.circleSourceData)}}else(H=this.map)!=null&&H.getSource(this.interpolateSource)&&((ae=this.map)==null||ae.getSource(this.interpolateSource).setData(this.empty))},handleClick(i){var s,n,l,h,d,c,m,A;const e=i.features[0],a=(n=(s=this.tropicals)==null?void 0:s.data)==null?void 0:n.features.filter(C=>{var B;return C.geometry.type==="LineString"&&C.properties.type==="forecast"&&C.properties.name===((B=e==null?void 0:e.properties)==null?void 0:B.name)}),o=(h=(l=this.tropicals)==null?void 0:l.data)==null?void 0:h.features.filter(C=>{var B;return C.geometry.type==="LineString"&&C.properties.type==="history"&&C.properties.name===((B=e==null?void 0:e.properties)==null?void 0:B.name)});this.activeTropicals={name:(d=e==null?void 0:e.properties)==null?void 0:d.name,forecasts:a.map(C=>C.properties),history:(c=o[0])==null?void 0:c.properties,showCircle:(A=(m=a[0])==null?void 0:m.properties)==null?void 0:A.showCircle},this.showTropicals=!0;const r=document.getElementById("idm-tropical-gl3");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat([i.lngLat.lng,i.lngLat.lat]):this.activeTropicalsMarker=new _e.Marker(r).setLngLat([i.lngLat.lng,i.lngLat.lat]).setOffset([220,0]).addTo(this.map)},handleForecastToggle(i){var o,r,s,n,l,h;i.disabled=!i.disabled;const e=`${i.name}-${i.model}`,a=(r=(o=this.map)==null?void 0:o.getSource(this.source)._data)==null?void 0:r.features;a.forEach(d=>{d.properties.category===e&&(d.properties.disabled=i.disabled)}),this.interpolateData.forEach(d=>{d.properties.category===e&&(d.properties.disabled=i.disabled)}),(n=(s=this.map)==null?void 0:s.getSource(this.source))==null||n.setData(z.featureCollection(a)),(h=(l=this.map)==null?void 0:l.getSource(this.clusterSource))==null||h.setData(z.featureCollection(a)),this.handleDateChange()},handleStrikeProbability(i){this.$emit("tropicalProbability",i)},handleNotification(i){this.$emit("tropicalNotification",i)},handleToggleCircles(i){var e,a;i.showCircle=!i.showCircle,(a=(e=this.tropicals.data)==null?void 0:e.features)==null||a.forEach(o=>{o.properties.name===i.name&&(o.properties.showCircle=i.showCircle)}),this.handleRender()},handleDrawCircle(){var i,e;(i=this.map)!=null&&i.getSource(this.circleSource)?(e=this.map)==null||e.getSource(this.circleSource).setData(this.circleSourceData):(this.map.addSource(this.circleSource,{type:"geojson",data:this.circleSourceData}),this.map.addLayer({id:this.circleLayer,type:"line",source:this.circleSource,filter:["all",["==","$type","Polygon"],["==","type","tropicalCircle"]],paint:{"line-color":"#fff","line-width":2,"line-opacity":1,"line-dasharray":[1,1]}}))},handleComputePolygons(i){const e=[];for(const a of i){const o=a.properties.wind,r={ne:o.r7ne>=0?o.r7ne:void 0,se:o.r7se>=0?o.r7se:void 0,sw:o.r7sw>=0?o.r7sw:void 0,nw:o.r7nw>=0?o.r7nw:void 0},s=this.handleComputeArc(a.geometry.coordinates,r,{...a.properties,level:7});e.push(s);const n={ne:o.r10ne>=0?o.r10ne:void 0,se:o.r10se>=0?o.r10se:void 0,sw:o.r10sw>=0?o.r10sw:void 0,nw:o.r10nw>=0?o.r10nw:void 0},l=this.handleComputeArc(a.geometry.coordinates,n,{...a.properties,level:10});e.push(l)}return e},handleComputeArc(i,e,a){var s;const o=[];for(const n in e){const l=e[n]??0;let h;switch(n){case"ne":h=z.lineArc(i,l,0,90,{steps:l>0?32:1,units:"nauticalmiles"});break;case"se":h=z.lineArc(i,l,90,180,{steps:l>0?32:1,units:"nauticalmiles"});break;case"sw":h=z.lineArc(i,l,180,270,{steps:l>0?32:1,units:"nauticalmiles"});break;case"nw":h=z.lineArc(i,l,270,360,{steps:l>0?32:1,units:"nauticalmiles"});break}o.push(...(s=h==null?void 0:h.geometry)==null?void 0:s.coordinates)}const r=z.lineString(o);return z.lineToPolygon(r,{properties:a})}}},ba={id:"idm-tropical-gl3",class:"idm-tropical-gl3"},La={class:"header-box"},Ca={class:"main"},va={key:0},xa={class:"sub"},Ea={id:"meteoBox",class:"main-box"},Ba={class:"content"},_a={class:"row"},ka={class:"col col-left",style:{"justify-content":"flex-start"}},Ia={class:"col col-right",style:{"justify-content":"flex-start"}},Da={class:"row"},Na={class:"col col-left",style:{"justify-content":"flex-start"}},za={class:"col col-right",style:{"justify-content":"flex-start"}},Pa={class:"row"},Ma={class:"col col-24",style:{"justify-content":"flex-start"}},Sa={class:"forecast-models"},Ta=["onClick"],Qa={class:"more"};function Ha(i,e,a,o,r,s){var n,l,h,d,c,m,A,C,B,y,E,v,u,f,p,b,g,w,k;return t.withDirectives((t.openBlock(),t.createElementBlock("div",ba,[t.createElementVNode("div",La,[t.createElementVNode("div",{class:"iconfont close-btn",onClick:e[0]||(e[0]=_=>r.showTropicals=!1)},""),t.createElementVNode("div",Ca,[(l=(n=r.activeTropicals)==null?void 0:n.history)!=null&&l.level?(t.openBlock(),t.createElementBlock("span",va,t.toDisplayString((d=(h=r.activeTropicals)==null?void 0:h.history)==null?void 0:d.level)+" , ",1)):t.createCommentVNode("",!0),t.createTextVNode(t.toDisplayString((c=r.activeTropicals)==null?void 0:c.name),1)]),t.createElementVNode("div",xa," Last update: "+t.toDisplayString(s.computeTime(((A=(m=r.activeTropicals)==null?void 0:m.history)==null?void 0:A.updated)||((y=(B=(C=r.activeTropicals)==null?void 0:C.forecasts)==null?void 0:B.filter(_=>!_.disabled)[0])==null?void 0:y.date))),1)]),t.createElementVNode("div",Ea,[t.createElementVNode("div",Ba,[t.createElementVNode("div",_a,[t.createElementVNode("div",ka,[e[3]||(e[3]=t.createElementVNode("label",null,"Wind speed : ",-1)),t.createElementVNode("span",null,t.toDisplayString(((v=(E=r.activeTropicals)==null?void 0:E.history)==null?void 0:v.kts)||"-")+" [kts]",1),t.createElementVNode("span",null,", BF "+t.toDisplayString(s.computeBF(((f=(u=r.activeTropicals)==null?void 0:u.history)==null?void 0:f.kts)||0)),1)]),t.createElementVNode("div",Ia,[e[4]||(e[4]=t.createElementVNode("label",null,"Pressure : ",-1)),t.createElementVNode("span",null,t.toDisplayString(((b=(p=r.activeTropicals)==null?void 0:p.history)==null?void 0:b.pressure)||"-")+" [hPa]",1)])]),t.createElementVNode("div",Da,[t.createElementVNode("div",Na,[e[5]||(e[5]=t.createElementVNode("label",null,"Move Speed: ",-1)),t.createElementVNode("span",null,t.toDisplayString((g=s.computeMovement(r.activeTropicals))==null?void 0:g.kts)+" [kts]",1)]),t.createElementVNode("div",za,[e[6]||(e[6]=t.createElementVNode("label",null,"Move Dir: ",-1)),t.createElementVNode("span",null,t.toDisplayString((w=s.computeMovement(r.activeTropicals))==null?void 0:w.deg)+" [°]",1)])]),t.createElementVNode("div",Pa,[t.createElementVNode("div",Ma,[e[7]||(e[7]=t.createElementVNode("label",{style:{width:"max-content"}},"Forecast Models : ",-1)),t.createElementVNode("div",Sa,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList((k=r.activeTropicals)==null?void 0:k.forecasts,(_,S)=>{var M,Q,V,H;return t.openBlock(),t.createElementBlock("div",{key:S,class:t.normalizeClass(["model",_.disabled?"":"active",S>0&&S<((Q=(M=r.activeTropicals)==null?void 0:M.forecasts)==null?void 0:Q.length)-1&&((H=(V=r.activeTropicals)==null?void 0:V.forecasts)==null?void 0:H.length)>2?"center-child":""]),onClick:ae=>s.handleForecastToggle(_)},[t.createElementVNode("span",{class:t.normalizeClass(_.model)},t.toDisplayString(_.model),3)],10,Ta)}),128))])])]),e[8]||(e[8]=t.createStaticVNode('<div class="row" style="padding:0;height:1px;margin:10px 0;background:var(--idm-black-1);"></div><div class="row" style="padding:2px 10px;"><div class="legend"><div class="icon td"></div><div class="label">TD</div></div><div class="legend"><div class="icon ts"></div><div class="label">TS</div></div><div class="legend"><div class="icon sts"></div><div class="label">STS</div></div><div class="legend"><div class="icon ty"></div><div class="label">TY</div></div><div class="legend"><div class="icon sty"></div><div class="label">STY</div></div><div class="legend"><div class="icon supper-ty"></div><div class="label">Super TY</div></div></div><div class="row" style="padding:2px 10px;"><div class="legend"><div class="icon history"></div><div class="label">History</div></div><div class="legend"><div class="icon r7"></div><div class="label">35kts Radii</div></div><div class="legend"><div class="icon r10"></div><div class="label">50kts Radii</div></div></div>',3))]),t.createElementVNode("div",Qa,[a.permission&r.helper.LEVEL.Supper?(t.openBlock(),t.createElementBlock("div",{key:0,class:"button",style:{"margin-right":"10px"},onClick:e[1]||(e[1]=_=>s.handleNotification(r.activeTropicals))},"Notify")):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"button",onClick:e[2]||(e[2]=_=>s.handleStrikeProbability(r.activeTropicals))},"Strike Probability >>")])])],512)),[[t.vShow,r.showTropicals&&!i.$attrs.hideTropicalsLegend]])}const Qe=O(wa,[["render",Ha]]),Ho="",Va={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[precip3h] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Fa={key:0};function Oa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Fa,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"mm",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"3",-1),t.createElementVNode("span",null,"7",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1)]),4)])):t.createCommentVNode("",!0)}const Ra=O(Va,[["render",Oa],["__scopeId","data-v-9708a7a3"]]),Vo="",ja={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[visibility] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Wa={key:0};function Ga(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Wa,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:i.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"nm",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"0.5",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"3",-1),t.createElementVNode("span",null,"9",-1)]),4)])):t.createCommentVNode("",!0)}const Ua=O(ja,[["render",Ga],["__scopeId","data-v-f7b2fb08"]]),Fo="",Ya={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[water-temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Ka={key:0};function Xa(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Ka,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"°C",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1),t.createElementVNode("span",null,"40",-1)]),4)])):t.createCommentVNode("",!0)}const qa=O(Ya,[["render",Xa],["__scopeId","data-v-7521f582"]]),Oo="",Ja={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new ke,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[water-temp] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[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,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,Z.vertexSchema,Z.fragmentSchema);this.program=e,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const i=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,i)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Za={key:0};function $a(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",Za,[t.createElementVNode("div",{class:"legend-bars flex-center",style:t.normalizeStyle([{position:"absolute"},{right:r.right+"px",bottom:a.bottom}])},e[0]||(e[0]=[t.createElementVNode("span",null,"°C",-1),t.createElementVNode("span",null,"-20",-1),t.createElementVNode("span",null,"-10",-1),t.createElementVNode("span",null,"0",-1),t.createElementVNode("span",null,"10",-1),t.createElementVNode("span",null,"20",-1),t.createElementVNode("span",null,"30",-1),t.createElementVNode("span",null,"40",-1)]),4)])):t.createCommentVNode("",!0)}const ei=O(Ja,[["render",$a],["__scopeId","data-v-25daaa82"]]);/*! Element Plus Icons Vue v2.3.1 */var ti=t.defineComponent({name:"LocationFilled",__name:"location-filled",setup(i){return(e,a)=>(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t.createElementVNode("path",{fill:"currentColor",d:"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928m0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6"})]))}}),ai=ti;const ii="data:image/gif;base64,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",Ro="",ri={name:"IdmPoint",components:{LocationFilled:ai},props:{token:{type:String},map:{type:Object},show:{type:Boolean},ts:{type:String},gateway:{type:String},startTs:{type:String},forecastModel:{type:String},permission:{type:Number}},emits:["meteoMore","meteoNotify"],data(){return{helper:ee.CompanyHelper,showMeteo:!1,loading:!1,point:{},meteoData:void 0,activeIndex:2,tableData:{hours:[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]},currentHourData:void 0,positionOffset:void 0,positionGmt:void 0,localDate:void 0,meteoMarker:void 0,tideData:{},tideTableData:[],tideLoading:!1,showTables:!0,isDay:!0}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.show&&this.handleBind()}},forecastModel:{async handler(){var i;if(this.showMeteo&&this.ts){this.handleRender();const e=j();((i=j(this.ts))==null?void 0:i.diff(e,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData)}}},point:{async handler(){var i;if(this.showMeteo=!0,this.tideData={},this.meteoData={},this.showMeteo&&this.ts){this.handleRender();const e=j();if(((i=j(this.ts))==null?void 0:i.diff(e,"d",!0))>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts),this.initTableData(this.meteoData),this.activeIndex===4){const o=De.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(o==null?void 0:o.length)>0?this.tideTableData=o:await this.fetchTidesData(this.point,this.ts,7)}}}},ts:{async handler(){var i;if(this.showMeteo&&this.ts){const e=j(),a=(i=j(this.ts))==null?void 0:i.diff(e,"d",!0),r=[0,1,2,3,4,5,6,7].every(s=>{var l;const n=Pe(this.ts).tz(this.positionGmt).add(3*s,"h").format();return(l=De.Meteo2Assist.pickHourly(this.meteoData,n))==null?void 0:l[0]});if(this.meteoData&&r?this.initTableData(this.meteoData):(this.loading||(a>=0?await this.fetchMeteoData(this.point,this.ts,7):await this.fetchHistoryData(this.point,this.ts)),this.initTableData(this.meteoData)),this.activeIndex===4){const s=De.TidesAssist.pickDailyExtremes(this.tideData,this.ts);(s==null?void 0:s.length)>0?this.tideTableData=s:await this.fetchTidesData(this.point,this.ts,7)}}}}},computed:{computeHourL(){return function(i){return i?`${Pe(i).tz(this.positionGmt).format("HH")}`:"-"}},computeHourZ(){return function(i){return i?`${j(i).utc().format("HH")}Z`:"-"}},computeHourHmmLT(){return function(i){return i?`${Pe(i).tz(this.positionGmt).format("H:mm")}`:"-"}},computeLat(){return function(i,e=4){return W.LngLatHelper.lat2pretty(i,e).pretty}},computeLng(){return function(i,e=4){return W.LngLatHelper.lng2pretty(i,e).pretty}},roundPrecision(){return function(i,e=4){return isNaN(i)?"-":W.LngLatHelper.roundPrecision(i,e)}}},methods:{async fetchMeteoData(i,e,a){this.loading=!0,this.meteoData=[];let o=e?j(e).utc().format():j().utc().format();const{weatherModels:r,marineModels:s}=De.Meteo2Assist.autoPickMeteoModel(this.forecastModel);let n={lat:i.lat,lng:i.lng,datetime:o,forecastDays:a??7,weatherModels:r,marineModels:s},l=await ve.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,n,{headers:{Authorization:this.token||this.defaultMeteoToken}});(l==null?void 0:l.data.code)===0&&(this.meteoData=l==null?void 0:l.data.data,this.loading=!1)},async fetchHistoryData(i,e){this.loading=!0,this.meteoData=[];const a=e?j(e).utc().format():j().utc().format(),{weatherModels:o,marineModels:r}=De.Meteo2Assist.autoPickMeteoModel(this.forecastModel),s={lat:i.lat,lng:i.lng,datetime:a,forecastDays:3,pastDays:1,weatherModels:o,marineModels:r},n=await ve.post(`${this.gateway}/api/arc/meteo2/spot/forecast`,s,{headers:{Authorization:this.token||this.defaultMeteoToken}});(n==null?void 0:n.data.code)===0&&(this.meteoData=n==null?void 0:n.data.data,this.loading=!1)},initTableData(i){var e,a,o,r,s,n,l,h,d;this.clearTable(),this.positionGmt=(a=(e=i==null?void 0:i.weather)==null?void 0:e[0])==null?void 0:a.timezone,this.positionOffset=(r=(o=i==null?void 0:i.weather)==null?void 0:o[0])==null?void 0:r.offset,this.localDate=(n=(s=Pe(this.ts))==null?void 0:s.tz(this.positionGmt))==null?void 0:n.format("MMM-DD/HHmm[LT]"),this.currentHourData=(l=De.Meteo2Assist.pickHourly(i,j(this.ts)))==null?void 0:l[0],((d=(h=this.currentHourData)==null?void 0:h.weather)==null?void 0:d.isDay)===0?this.isDay=!1:this.isDay=!0,this.$nextTick(()=>{var m,A,C,B,y,E,v,u,f,p,b,g,w,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge;if(!document.getElementById("meteoMainBox"))return!1;if(!this.currentHourData)return this.loading=!1,this.tableData.hours=[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0],this.handleRender(),!1;for(let de=0;de<8;de++){const ye=Pe(this.ts).tz(this.positionGmt).add(3*de,"h").format();this.tableData.hours.push(ye);const x=((m=De.Meteo2Assist.pickHourly(i,ye))==null?void 0:m[0])||{};this.tableData.temp.push(this.roundPrecision((A=x==null?void 0:x.weather)==null?void 0:A.temp,0)??"-"),this.tableData.precipProbability.push(this.roundPrecision((B=(C=x==null?void 0:x.weather)==null?void 0:C.precip)==null?void 0:B.probability,0)??"-"),this.tableData.precip1h.push(this.roundPrecision((E=(y=x==null?void 0:x.weather)==null?void 0:y.precip)==null?void 0:E.sum,0)??"-"),this.tableData.visibility.push(this.roundPrecision((v=x==null?void 0:x.weather)==null?void 0:v.visibility,0)??"-"),this.tableData.windSpeed.push(this.roundPrecision((f=(u=x==null?void 0:x.weather)==null?void 0:u.wind)==null?void 0:f.kts,1)??"-"),this.tableData.windDir.push((b=(p=x==null?void 0:x.weather)==null?void 0:p.wind)==null?void 0:b.bearing),this.tableData.windGust.push(this.roundPrecision((w=(g=x==null?void 0:x.weather)==null?void 0:g.wind)==null?void 0:w.gusts,1)??"-"),this.tableData.sigwaveHeight.push(this.roundPrecision((_=(k=x==null?void 0:x.wave)==null?void 0:k.sig)==null?void 0:_.height,1)??"-"),this.tableData.sigwaveDir.push((M=(S=x==null?void 0:x.wave)==null?void 0:S.sig)==null?void 0:M.bearing),this.tableData.windwaveHeight.push(this.roundPrecision((V=(Q=x==null?void 0:x.wave)==null?void 0:Q.wd)==null?void 0:V.height,1)??"-"),this.tableData.windwaveDir.push((ae=(H=x==null?void 0:x.wave)==null?void 0:H.wd)==null?void 0:ae.bearing),this.tableData.windwavePeriod.push(this.roundPrecision((ie=(q=x==null?void 0:x.wave)==null?void 0:q.wd)==null?void 0:ie.period,1)??"-"),this.tableData.swellHeight.push(this.roundPrecision((re=(ce=x==null?void 0:x.wave)==null?void 0:ce.swell)==null?void 0:re.height,1)??"-"),this.tableData.swellDir.push((oe=(he=x==null?void 0:x.wave)==null?void 0:he.swell)==null?void 0:oe.bearing),this.tableData.swellPeriod.push(this.roundPrecision((Y=(F=x==null?void 0:x.wave)==null?void 0:F.swell)==null?void 0:Y.period,1)??"-"),this.tableData.currentSpeed.push(this.roundPrecision((se=x==null?void 0:x.current)==null?void 0:se.speed,1)??"-"),this.tableData.currentDir.push((te=x==null?void 0:x.current)==null?void 0:te.bearing),this.tableData.seaLevel.push(this.roundPrecision(x==null?void 0:x.height,1)??"-"),this.tableData.seaTemp.push(this.roundPrecision(x==null?void 0:x.sst,0)??"-"),this.tableData.weatherUrls.push((ne=x==null?void 0:x.weather)==null?void 0:ne.url),this.tableData.weatherNames.push(((ge=x==null?void 0:x.weather)==null?void 0:ge.name)??"-")}})},clearTable(){this.currentHourData=void 0,this.positionGmt=void 0,this.localDate=void 0,this.tableData={hours:[],weatherUrls:[],weatherNames:[],temp:[],precipProbability:[],precip1h:[],visibility:[],humidity:[],windSpeed:[],windDir:[],windGust:[],sigwaveHeight:[],sigwaveDir:[],windwaveHeight:[],windwaveDir:[],windwavePeriod:[],swellHeight:[],swellDir:[],swellPeriod:[],currentSpeed:[],currentDir:[],seaLevel:[],seaTemp:[]}},async handleSelectTab(i){this.activeIndex=i,this.activeIndex===4&&await this.fetchTidesData(this.point,this.ts,7)},async fetchTidesData(i,e,a){this.tideLoading=!0,this.tideData={};let o=e?j(e).utc().format():j().utc().format(),r={lat:i.lat,lng:i.lng,date:o,forecastDays:a??7,extremes:!0,heights:!1},s=await ve.post(`${this.gateway}/api/arc/meteo2/spot/tides/forecast`,r,{headers:{Authorization:this.token||this.defaultMeteoToken}});if((s==null?void 0:s.data.code)===0){this.tideData=(s==null?void 0:s.data.data)||{},this.tideLoading=!1;const n=De.TidesAssist.pickDailyExtremes(this.tideData,this.ts);this.tideTableData=n}},handleBind(){var i,e;this.show?((i=this.map)==null||i.on("click",this.handleClick),this.map.getCanvas().style.cursor="pointer"):((e=this.map)==null||e.off("click",this.handleClick),this.showMeteo=!1)},handleClick(i){if(i.originalEvent.stopPropagation(),i.originalEvent.target.className==="mapboxgl-canvas")this.point=i.lngLat;else return!1},handleMeteoMore(){this.point.forecastModel=this.forecastModel,this.$emit("meteoMore",this.point)},handleNotify(){this.point.forecastModel=this.forecastModel,this.point.datetime=this.ts,this.$emit("meteoNotify",this.point)},handleCloseMeteo(){this.showMeteo=!1},handleRender(){this.$nextTick(()=>{var e;const i=document.getElementById("point-meteo");this.point&&(this.meteoMarker?(e=this.meteoMarker)==null||e.setLngLat([this.point.lng,this.point.lat]):this.meteoMarker=new _e.Marker(i).setLngLat([this.point.lng,this.point.lat]).addTo(this.map))})}}},oi={id:"point-meteo",class:"point-meteo"},si={class:"meteo-box"},ni={class:"header-box flex-between"},li={class:"flex-center"},ci={class:"lnglat"},hi={class:"flex-center"},di={class:"summary-row flex-between"},mi={class:"summary flex-center"},pi=["src"],gi={key:1,class:"icon flex-center",style:{"margin-right":"5px"}},yi={class:"temp"},ui={class:"des info"},fi={class:"flex-start"},Ai={class:"flex-start"},wi={class:"flex-start"},bi={class:"date flex-col-center-end"},Li={class:""},Ci={class:""},vi={class:"detail-box"},xi={class:"menu-header flex-start"},Ei={class:"basic-table"},Bi={class:"hour"},_i={class:"hour"},ki={class:"icon"},Ii=["src"],Di={class:"text"},Ni={class:"text"},zi={class:"text"},Pi={class:"text"},Mi={class:"wave-current-table"},Si={class:"hour"},Ti={class:"hour"},Qi={class:"text"},Hi={class:"text"},Vi={class:"text"},Fi={class:"text"},Oi={class:"text"},Ri={class:"sea-table",style:{height:"92px"}},ji={class:"hour"},Wi={class:"hour"},Gi={class:"text"},Ui={class:"text"},Yi={key:0},Ki={class:"tide-table flex-col-start-center"},Xi={class:"tr-tide flex-space"},qi={class:"tr-tide flex-space"},Ji={class:"tr-tide flex-space"},Zi={style:{padding:"17px 10px 18px 10px"}},$i={class:"flex-between"},er={class:"flex-space",style:{flex:"1","line-height":"30px"}},tr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},ar={class:"flex-between"},ir={class:"flex-space",style:{flex:"1","line-height":"30px"}},rr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},or={class:"flex-between"},sr={class:"flex-space",style:{flex:"1","line-height":"30px"}},nr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},lr={class:"flex-between"},cr={class:"flex-space",style:{flex:"1","line-height":"30px"}},hr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},dr={class:"flex-between"},mr={class:"flex-space",style:{flex:"1","line-height":"30px"}},pr={class:"flex-space",style:{flex:"1","padding-left":"30px"}},gr={key:1,class:"main-box flex-center"};function yr(i,e,a,o,r,s){var d,c,m,A,C,B,y,E,v,u,f,p,b,g,w,k,_,S,M,Q,V,H,ae,q,ie,ce,re,he,oe,F,Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae,X,U,I,pe,R,K,xe,N,le,Ce,Ee,Be,D,T,Ne,ze,$,Ie,Re,je,We,Ge,Ue,Ye;const n=t.resolveComponent("LocationFilled"),l=t.resolveComponent("ElIcon"),h=t.resolveComponent("ElTooltip");return t.withDirectives((t.openBlock(),t.createElementBlock("div",oi,[t.createElementVNode("div",si,[t.createElementVNode("div",ni,[t.createElementVNode("div",li,[t.createVNode(l,{size:"22"},{default:t.withCtx(()=>[t.createVNode(n)]),_:1}),t.createElementVNode("div",ci,t.toDisplayString(s.computeLat((d=r.point)==null?void 0:d.lat))+","+t.toDisplayString(s.computeLng((c=r.point)==null?void 0:c.lng)),1)]),t.createElementVNode("div",hi,[r.showTables?(t.openBlock(),t.createElementBlock("div",{key:0,class:"iconfont toggle",onClick:e[0]||(e[0]=L=>r.showTables=!r.showTables)},"")):(t.openBlock(),t.createElementBlock("div",{key:1,class:"iconfont toggle",onClick:e[1]||(e[1]=L=>r.showTables=!r.showTables)},"")),t.createElementVNode("div",{class:"iconfont close",onClick:e[2]||(e[2]=(...L)=>s.handleCloseMeteo&&s.handleCloseMeteo(...L))},"")])]),r.loading?(t.openBlock(),t.createElementBlock("div",gr,e[43]||(e[43]=[t.createElementVNode("img",{src:ii,alt:""},null,-1)]))):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["main-box",r.isDay?"day-bg":"night-bg"]),id:"meteoMainBox"},[t.createElementVNode("div",di,[t.createElementVNode("div",mi,[t.createVNode(h,{placement:"top",effect:"light",content:(A=(m=r.currentHourData)==null?void 0:m.weather)==null?void 0:A.name,"show-after":1e3},{default:t.withCtx(()=>{var L,P,Ke,Xe;return[(P=(L=r.currentHourData)==null?void 0:L.weather)!=null&&P.url?(t.openBlock(),t.createElementBlock("img",{key:0,class:"iconfont icon",style:{"margin-right":"5px"},src:(Xe=(Ke=r.currentHourData)==null?void 0:Ke.weather)==null?void 0:Xe.url},null,8,pi)):(t.openBlock(),t.createElementBlock("span",gi))]}),_:1},8,["content"]),t.createElementVNode("div",yi,[t.createElementVNode("div",null,[t.createTextVNode(t.toDisplayString(s.roundPrecision((B=(C=r.currentHourData)==null?void 0:C.weather)==null?void 0:B.temp,0)),1),e[9]||(e[9]=t.createElementVNode("span",{style:{"font-size":"14px"}},"°C",-1))])]),t.createElementVNode("div",ui,[t.createElementVNode("div",fi,[e[10]||(e[10]=t.createElementVNode("label",null,"Precip : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.roundPrecision((v=(E=(y=r.currentHourData)==null?void 0:y.weather)==null?void 0:E.precip)==null?void 0:v.sum,0))+" mm",1)]),t.createElementVNode("div",Ai,[e[11]||(e[11]=t.createElementVNode("label",null,"Visibility : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.roundPrecision((f=(u=r.currentHourData)==null?void 0:u.weather)==null?void 0:f.visibility,0))+" nm",1)]),t.createElementVNode("div",wi,[e[12]||(e[12]=t.createElementVNode("label",null,"Wind : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.roundPrecision((g=(b=(p=r.currentHourData)==null?void 0:p.weather)==null?void 0:b.wind)==null?void 0:g.kts,1))+" kts",1)])])]),t.createElementVNode("div",bi,[t.createElementVNode("div",Li,t.toDisplayString(r.localDate),1),t.createElementVNode("div",Ci,"( UTC "+t.toDisplayString(r.positionOffset)+" )",1)])]),t.withDirectives(t.createElementVNode("div",vi,[t.createElementVNode("div",xi,[t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===1?"active":""]),onClick:e[3]||(e[3]=t.withModifiers(L=>s.handleSelectTab(1),["prevent"]))},"Basis",2),t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===2?"active":""]),onClick:e[4]||(e[4]=t.withModifiers(L=>s.handleSelectTab(2),["prevent"]))},"Wave & Current",2),t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===3?"active":""]),onClick:e[5]||(e[5]=t.withModifiers(L=>s.handleSelectTab(3),["prevent"]))},"Sea Surface",2),t.createElementVNode("div",{class:t.normalizeClass(["menu-item",r.activeIndex===4?"active":""]),onClick:e[6]||(e[6]=t.withModifiers(L=>s.handleSelectTab(4),["prevent"]))},"Tides",2)]),t.withDirectives(t.createElementVNode("table",Ei,[t.createElementVNode("tr",Bi,[e[13]||(e[13]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Hours"),t.createElementVNode("span",{class:"unit"},"(LT)")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,L=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourL${L}`},t.toDisplayString(s.computeHourL(L)),1))),128))]),t.createElementVNode("tr",_i,[e[14]||(e[14]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("UTC"),t.createElementVNode("span",{class:"unit"})],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,L=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`HourZ${L}`},t.toDisplayString(s.computeHourZ(L)),1))),128))]),t.createElementVNode("tr",ki,[e[15]||(e[15]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},null,-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.weatherUrls,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`weatherUrls${P}${L}`},[t.createVNode(h,{placement:"top",effect:"light",content:r.tableData.weatherNames[P],"show-after":500},{default:t.withCtx(()=>[L?(t.openBlock(),t.createElementBlock("img",{key:0,class:"iconfont weather-icon",src:L,alt:""},null,8,Ii)):t.createCommentVNode("",!0)]),_:2},1032,["content"])]))),128))]),t.createElementVNode("tr",Di,[e[16]||(e[16]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Temp"),t.createElementVNode("span",{class:"unit"},"°C")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.temp,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`weatherUrls${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",Ni,[e[17]||(e[17]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Precip"),t.createElementVNode("span",{class:"unit"},"mm")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.precip1h,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`precip1h${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",zi,[e[18]||(e[18]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Visibility"),t.createElementVNode("span",{class:"unit"},"nm")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.visibility,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`visibility${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",Pi,[e[19]||(e[19]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Wind gust"),t.createElementVNode("span",{class:"unit"},"kts")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.windGust,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windGust${P}${L}`},[t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))])],512),[[t.vShow,r.activeIndex===1]]),t.withDirectives(t.createElementVNode("table",Mi,[t.createElementVNode("tr",Si,[e[20]||(e[20]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Hours"),t.createElementVNode("span",{class:"unit"},"(LT)")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursL${P}${L}`},t.toDisplayString(s.computeHourL(L)),1))),128))]),t.createElementVNode("tr",Ti,[e[21]||(e[21]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("UTC"),t.createElementVNode("span",{class:"unit"})],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`currenthoursZ${P}${L}`},t.toDisplayString(s.computeHourZ(L)),1))),128))]),t.createElementVNode("tr",Qi,[e[22]||(e[22]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Wind"),t.createElementVNode("span",{class:"unit"},"kts")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.windSpeed,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windSpeed${P}${L}`},[isNaN(r.tableData.windDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon wind",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.windDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Hi,[e[23]||(e[23]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Sig Wave"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.sigwaveHeight,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`sigwaveHeight${P}${L}`},[isNaN(r.tableData.sigwaveDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon sigwave",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.sigwaveDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Vi,[e[24]||(e[24]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Wind Wave"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.windwaveHeight,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`windwaveHeight${P}${L}`},[isNaN(r.tableData.sigwaveDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon windwave",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.windwaveDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Fi,[e[25]||(e[25]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Swell"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.swellHeight,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`swellHeight${P}${L}`},[isNaN(r.tableData.swellDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon swell",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.swellDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))]),t.createElementVNode("tr",Oi,[e[26]||(e[26]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Current"),t.createElementVNode("span",{class:"unit"},"kts")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.currentSpeed,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`currentSpeed${P}${L}`},[isNaN(r.tableData.currentDir[P])?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:"iconfont icon current",id:"meteoGrayIcon",style:t.normalizeStyle({display:"inline-block",transform:`rotate(${r.tableData.currentDir[P]}deg)`})},"",4)),t.createElementVNode("span",null,t.toDisplayString(L),1)]))),128))])],512),[[t.vShow,r.activeIndex===2]]),t.withDirectives(t.createElementVNode("table",Ri,[t.createElementVNode("tr",ji,[e[27]||(e[27]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("Hours"),t.createElementVNode("span",{class:"unit"},"(LT)")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursL${P}${L}`},t.toDisplayString(s.computeHourL(L)),1))),128))]),t.createElementVNode("tr",Wi,[e[28]||(e[28]=t.createElementVNode("th",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("UTC"),t.createElementVNode("span",{class:"unit"})],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.hours,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`seahoursZ${P}${L}`},t.toDisplayString(s.computeHourZ(L)),1))),128))]),t.createElementVNode("tr",Gi,[e[29]||(e[29]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("SeaLevel"),t.createElementVNode("span",{class:"unit"},"m")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.seaLevel,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaLevel${P}${L}`},t.toDisplayString(L),1))),128))]),t.createElementVNode("tr",Ui,[e[30]||(e[30]=t.createElementVNode("td",{rowspan:"1",colspan:"1",class:"tr-title"},[t.createTextVNode("SeaTemp"),t.createElementVNode("span",{class:"unit"},"°C")],-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tableData.seaTemp,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`SeaTemp${P}${L}`},t.toDisplayString(L),1))),128))])],512),[[t.vShow,r.activeIndex===3]]),r.activeIndex===3?(t.openBlock(),t.createElementBlock("div",Yi,e[31]||(e[31]=[t.createElementVNode("p",{style:{"font-size":"12px",padding:"12px 20px 0 20px","line-height":"16px"}},"*Sea level height accounts for tides, barometer effects, and global variations. Based on mean sea level, accuracy is limited in coastal areas. For coastal navigation, use data from Tides Tab.",-1)]))):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("table",Ki,[t.createElementVNode("tr",Xi,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tideTableData,(L,P)=>(t.openBlock(),t.createElementBlock("th",{rowspan:"1",colspan:"1",key:`Tide-tr-${P}${L}`},t.toDisplayString(L.type)+" Tide",1))),128))]),t.createElementVNode("tr",qi,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tideTableData,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-date-${P}${L}`},t.toDisplayString(s.computeHourHmmLT(L==null?void 0:L.date)),1))),128))]),t.createElementVNode("tr",Ji,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.tideTableData,(L,P)=>(t.openBlock(),t.createElementBlock("td",{rowspan:"1",colspan:"1",key:`Tide-height-${P}${L}`},t.toDisplayString(s.roundPrecision(L==null?void 0:L.height,2))+" m",1))),128))]),e[32]||(e[32]=t.createElementVNode("tr",{class:"tr-tide flex-center info"},[t.createElementVNode("td",null,[t.createElementVNode("span",null,"Tide Datum: Chart Datum")])],-1))],512),[[t.vShow,r.activeIndex===4]])],512),[[t.vShow,((k=(w=r.tableData)==null?void 0:w.hours)==null?void 0:k.length)>0&&r.showTables]]),t.withDirectives(t.createElementVNode("div",Zi,[t.createElementVNode("div",$i,[t.createElementVNode("div",er,[e[33]||(e[33]=t.createElementVNode("div",null,"Wind",-1)),t.createElementVNode("div",null,t.toDisplayString((M=(S=(_=r.currentHourData)==null?void 0:_.weather)==null?void 0:S.wind)==null?void 0:M.direction)+"/"+t.toDisplayString(s.roundPrecision((H=(V=(Q=r.currentHourData)==null?void 0:Q.weather)==null?void 0:V.wind)==null?void 0:H.kts,1))+"kts/BF"+t.toDisplayString((ie=(q=(ae=r.currentHourData)==null?void 0:ae.weather)==null?void 0:q.wind)==null?void 0:ie.scale)+"/"+t.toDisplayString(s.roundPrecision((he=(re=(ce=r.currentHourData)==null?void 0:ce.weather)==null?void 0:re.wind)==null?void 0:he.gusts,1))+" kts",1)]),t.createElementVNode("div",tr,[e[34]||(e[34]=t.createElementVNode("div",null,"Sig wave",-1)),t.createElementVNode("div",null,t.toDisplayString((Y=(F=(oe=r.currentHourData)==null?void 0:oe.wave)==null?void 0:F.sig)==null?void 0:Y.direction)+"/"+t.toDisplayString(s.roundPrecision((ne=(te=(se=r.currentHourData)==null?void 0:se.wave)==null?void 0:te.sig)==null?void 0:ne.height,1))+"m/"+t.toDisplayString(s.roundPrecision((ye=(de=(ge=r.currentHourData)==null?void 0:ge.wave)==null?void 0:de.sig)==null?void 0:ye.period,1))+"s",1)])]),t.createElementVNode("div",ar,[t.createElementVNode("div",ir,[e[35]||(e[35]=t.createElementVNode("div",null,"Wind wave",-1)),t.createElementVNode("div",null,t.toDisplayString((me=(we=(x=r.currentHourData)==null?void 0:x.wave)==null?void 0:we.wd)==null?void 0:me.direction)+"/"+t.toDisplayString(s.roundPrecision((Le=(fe=(be=r.currentHourData)==null?void 0:be.wave)==null?void 0:fe.wd)==null?void 0:Le.height,1))+"m/"+t.toDisplayString(s.roundPrecision((U=(X=(Ae=r.currentHourData)==null?void 0:Ae.wave)==null?void 0:X.wd)==null?void 0:U.period,1))+"s",1)]),t.createElementVNode("div",rr,[e[36]||(e[36]=t.createElementVNode("div",null,"Swell",-1)),t.createElementVNode("div",null,t.toDisplayString((R=(pe=(I=r.currentHourData)==null?void 0:I.wave)==null?void 0:pe.swell)==null?void 0:R.direction)+"/"+t.toDisplayString(s.roundPrecision((N=(xe=(K=r.currentHourData)==null?void 0:K.wave)==null?void 0:xe.swell)==null?void 0:N.height,1))+"m/"+t.toDisplayString(s.roundPrecision((Ee=(Ce=(le=r.currentHourData)==null?void 0:le.wave)==null?void 0:Ce.swell)==null?void 0:Ee.period,1))+"s",1)])]),t.createElementVNode("div",or,[t.createElementVNode("div",sr,[e[37]||(e[37]=t.createElementVNode("div",null,"Current",-1)),t.createElementVNode("div",null,t.toDisplayString((D=(Be=r.currentHourData)==null?void 0:Be.current)==null?void 0:D.direction)+"/"+t.toDisplayString(s.roundPrecision((Ne=(T=r.currentHourData)==null?void 0:T.current)==null?void 0:Ne.kts,2))+"kts",1)]),t.createElementVNode("div",nr,[e[38]||(e[38]=t.createElementVNode("div",null,"Sea level",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((ze=r.currentHourData)==null?void 0:ze.height,1))+"m",1)])]),t.createElementVNode("div",lr,[t.createElementVNode("div",cr,[e[39]||(e[39]=t.createElementVNode("div",null,"Sea Temp",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision(($=r.currentHourData)==null?void 0:$.sst,1))+"°C",1)]),t.createElementVNode("div",hr,[e[40]||(e[40]=t.createElementVNode("div",null,"Visibility",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((Re=(Ie=r.currentHourData)==null?void 0:Ie.weather)==null?void 0:Re.visibility,1))+"nm",1)])]),t.createElementVNode("div",dr,[t.createElementVNode("div",mr,[e[41]||(e[41]=t.createElementVNode("div",null,"Temp",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((We=(je=r.currentHourData)==null?void 0:je.weather)==null?void 0:We.temp,1))+"°C",1)]),t.createElementVNode("div",pr,[e[42]||(e[42]=t.createElementVNode("div",null,"Precip",-1)),t.createElementVNode("div",null,t.toDisplayString(s.roundPrecision((Ye=(Ue=(Ge=r.currentHourData)==null?void 0:Ge.weather)==null?void 0:Ue.precip)==null?void 0:Ye.sum3Hours,1))+"mm",1)])])],512),[[t.vShow,!r.showTables]]),t.createElementVNode("div",{class:t.normalizeClass(["action",r.isDay?"day":"night"])},[a.permission&r.helper.LEVEL.Supper?(t.openBlock(),t.createElementBlock("div",{key:0,class:"button",style:{"margin-right":"10px"},onClick:e[7]||(e[7]=(...L)=>s.handleNotify&&s.handleNotify(...L))},"Notify")):t.createCommentVNode("",!0),t.createElementVNode("div",{onClick:e[8]||(e[8]=(...L)=>s.handleMeteoMore&&s.handleMeteoMore(...L))},"More >>")],2)],2))])],512)),[[t.vShow,r.showMeteo]])}const ur=O(ri,[["render",yr],["__scopeId","data-v-3afdcf26"]]),fr={name:"IdmWarZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"war-zone-source",zoneLayer:"war-zone-layer",zoneLabelLayer:"war-zone-label-layer"}},watch:{zone:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-color":"#f44336","fill-opacity":.4}},this.beforeLayer),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#f44336"}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-1]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.zoneLayer)&&this.map.moveLayer(this.zoneLayer,"country-boundaries"),this.map.getLayer(this.zoneLayer+"-border")&&this.map.moveLayer(this.zoneLayer+"-border","country-boundaries"),this.map.getLayer(this.zoneLabelLayer)&&this.map.moveLayer(this.zoneLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ar(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const wr=O(fr,[["render",Ar]]),br={name:"IdmGmdssArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"gmdss-area-source",areaLayer:"gmdss-area-layer",areaLabelLayer:"gmdss-area-label-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","val"],"AreaI","#EB8996","AreaII","#6F448B","AreaIII","#3E8BD3","AreaIV","#5EBCC4","AreaV","#00AAE7","AreaVI","#9CCE6D","AreaVII","#F4AE00","AreaVIII","#EF9A85","AreaIX","#00AAA7","AreaX","#7AC49F","AreaXI","#DFDFDF","AreaXII","#FFF974","AreaXIII","#EF9A85","AreaXIV","#86A2D1","AreaXV","#EC8972","AreaXVI","#EAC2DA","AreaXVII","#B9C8E7","AreaXVIII","#BBA1C8","AreaXIX","#FAE0BD","AreaXX","#DBECC8","AreaXXI","#D496AF","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-opacity":.8,"text-color":"#000"}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.areaLayer)&&this.map.moveLayer(this.areaLayer,"country-boundaries"),this.map.getLayer(this.areaLabelLayer)&&this.map.moveLayer(this.areaLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Lr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Cr=O(br,[["render",Lr]]),vr={name:"IdmEcaZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String},activeWeatherLayers:{type:Array}},data(){return{source:"eca-zone-source",zoneLayer:"eca-zone-layer",zoneLabelLayer:"eca-zone-label-layer"}},watch:{zone:{handler(){this.zone?(this.handleRender(),this.handleMove()):this.handleClear()}}},methods:{handleRender(){var i;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(i=this.map)==null||i.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"silver","fill-opacity":.3,"fill-color":"#05f324"}}),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-color":"#05f324","line-width":2,"line-opacity":1}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-max-width":16,"text-justify":"left","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}})))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.zoneLayer)&&this.map.moveLayer(this.zoneLayer,"country-boundaries"),this.map.getLayer(this.zoneLayer+"-border")&&this.map.moveLayer(this.zoneLayer+"-border","country-boundaries"),this.map.getLayer(this.zoneLabelLayer)&&this.map.moveLayer(this.zoneLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function xr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Er=O(vr,[["render",xr]]),jo="",Br={name:"IdmAlertZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"alert-zone-source",polygonLayer:"alert-zone-polygon-layer",polygonLabelLayer:"alert-zone-polygon-label-layer",lineLayer:"alert-zone-line-layer",lineLabelLayer:"alert-zone-line-label-layer",pointLayer:"alert-zone-point-layer",showZone:!1,form:{}}},watch:{zone:{handler(){var i,e;this.zone?(this.handleRender(),this.handleMove(),(i=this.map)==null||i.on("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick))}}},methods:{handleClick(i){var o;const e=i.features[0],a=(o=this.zone)==null?void 0:o.features.filter(r=>{var s;return r.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(a){this.showZone=!0,this.form={...a.properties};const r=document.getElementById("idm-gl3-zone-info");this.marker?this.marker.setLngLat([i.lngLat.lng,i.lngLat.lat]):this.marker=new _e.Marker(r).setLngLat([i.lngLat.lng,i.lngLat.lat]).setOffset([0,0]).addTo(this.map)}},handleRender(){var i;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(i=this.map)==null||i.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.polygonLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"#d57d02","fill-opacity":.4,"fill-color":"#d57d02"}}),this.map.addLayer({id:this.polygonLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-width":1,"line-color":"#d57d02"}}),this.map.addLayer({id:this.lineLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],paint:{"line-color":"#d57d02","line-width":2}}),this.map.addLayer({id:this.polygonLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],layout:{"symbol-placement":"line-center","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.pointLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08},paint:{"icon-opacity":.8}})))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.polygonLayer)&&this.map.moveLayer(this.polygonLayer,"country-boundaries"),this.map.getLayer(this.polygonLayer+"-border")&&this.map.moveLayer(this.polygonLayer+"-border","country-boundaries"),this.map.getLayer(this.polygonLabelLayer)&&this.map.moveLayer(this.polygonLabelLayer,"country-boundaries"),this.map.getLayer(this.lineLayer)&&this.map.moveLayer(this.lineLayer,"country-boundaries"),this.map.getLayer(this.lineLabelLayer)&&this.map.moveLayer(this.lineLabelLayer,"country-boundaries"),this.map.getLayer(this.pointLayer)&&this.map.moveLayer(this.pointLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.polygonLayer)&&this.map.removeLayer(this.polygonLayer),this.map.getLayer(this.polygonLayer+"-border")&&this.map.removeLayer(this.polygonLayer+"-border"),this.map.getLayer(this.polygonLabelLayer)&&this.map.removeLayer(this.polygonLabelLayer),this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getLayer(this.pointLayer)&&this.map.removeLayer(this.pointLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},_r={id:"idm-gl3-zone-info"},kr=["innerHTML"];function Ir(i,e,a,o,r,s){var n;return t.withDirectives((t.openBlock(),t.createElementBlock("div",_r,[t.createElementVNode("div",{class:"iconfont close",onClick:e[0]||(e[0]=l=>r.showZone=!1)},""),t.createElementVNode("div",{class:"rich-context",innerHTML:(n=r.form)==null?void 0:n.name},null,8,kr)],512)),[[t.vShow,r.showZone]])}const Dr=O(Br,[["render",Ir]]),Wo="",Nr={name:"IdmPort",props:{map:{type:Object},port:{type:Object},beforeLayer:{type:String},forecastModel:{type:String}},emits:["meteoMore"],data(){return{source:"port-source",layer:"port-layer",showPort:!1,form:{},marker:void 0}},computed:{computeLat(){return function(i){return W.LngLatHelper.lat2pretty(i,4).pretty}},computeLng(){return function(i){return W.LngLatHelper.lng2pretty(i,4).pretty}}},watch:{port:{handler(){var i,e;this.port?(this.handleRender(),(i=this.map)==null||i.on("click",[this.layer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.layer],this.handleClick))}}},methods:{handleClick(i){var o;const e=i.features[0],a=(o=this.port)==null?void 0:o.features.filter(r=>{var s;return r.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(a){this.showPort=!0,this.form={...a.properties},this.form.lng=a.geometry.coordinates[0],this.form.lat=a.geometry.coordinates[1];const r=document.getElementById("port-info");this.marker?this.marker.setLngLat([i.lngLat.lng,i.lngLat.lat]):this.marker=new _e.Marker(r).setLngLat([i.lngLat.lng,i.lngLat.lat]).setOffset([0,-85]).addTo(this.map)}},handleRender(){var i;this.map?this.port&&(this.map.getSource(this.source)?(i=this.map)==null||i.getSource(this.source).setData(this.port):(this.map.addSource(this.source,{type:"geojson",data:this.port}),this.map.addLayer({id:this.layer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"port","text-anchor":"left","text-field":"{name}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[1,0]},paint:{"text-color":"rgba(0, 0, 0, 0.8)","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.showPort=!1,this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)},handleClickMeteo(i){i.forecastModel=this.forecastModel,this.$emit("meteoMore",i)}}},zr={ref:"idmPortInfo",id:"port-info"},Pr={class:"port-box"},Mr={class:"flex-start"},Sr={class:"flex-start"},Tr={class:"flex-start"},Qr={class:"flex-start",style:{"align-items":"flex-start"}},Hr={class:"meteo-forecast flex-end"};function Vr(i,e,a,o,r,s){return t.withDirectives((t.openBlock(),t.createElementBlock("div",zr,[t.createElementVNode("div",{class:"close iconfont",onClick:e[0]||(e[0]=n=>r.showPort=!1)},""),t.createElementVNode("div",Pr,[t.createElementVNode("div",Mr,[e[2]||(e[2]=t.createElementVNode("label",null,"Name : ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.form.name),1)]),t.createElementVNode("div",Sr,[e[3]||(e[3]=t.createElementVNode("label",null,"Position : ",-1)),t.createElementVNode("span",null,t.toDisplayString(s.computeLat(r.form.lat))+", "+t.toDisplayString(s.computeLng(r.form.lng)),1)]),t.createElementVNode("div",Tr,[e[4]||(e[4]=t.createElementVNode("label",null,"LoCode : ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.form.loCode||"-"),1)]),t.createElementVNode("div",Qr,[e[5]||(e[5]=t.createElementVNode("label",null,"Region : ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.form.zoneName||"-"),1)]),t.createElementVNode("div",Hr,[t.createElementVNode("span",{onClick:e[1]||(e[1]=n=>s.handleClickMeteo(r.form))},"Meteo Forecast")])])],512)),[[t.vShow,r.showPort]])}const Fr=O(Nr,[["render",Vr],["__scopeId","data-v-39da1804"]]),Or={name:"IdmLoadLine",props:{map:{type:Object},line:{type:Object},beforeLayer:{type:String}},data(){return{source:"load-line-source",lineLayer:"load-line-layer",lineLabelLayer:"load-line-label-layer"}},watch:{line:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.line&&(this.map.addSource(this.source,{type:"geojson",data:this.line}),this.map.addLayer({id:this.lineLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.75,"fill-color":["match",["get","val"],"LLGreen","#A0C0C0","LLRed","#F5A39D","LLBlue","#6B94E4","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{lbl} (Length < {shipLength}, {start} - {end})","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}},this.beforeLayer))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.lineLayer)&&this.map.moveLayer(this.lineLayer,"country-boundaries"),this.map.getLayer(this.lineLabelLayer)&&this.map.moveLayer(this.lineLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Rr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const jr=O(Or,[["render",Rr]]),Wr={name:"IdmTimezone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"time-zone-source",zoneLayer:"time-zone-layer",zoneLabelLayer:"time-zone-label-layer"}},watch:{zone:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","offSet"],"-11.5","rgba(255,0,0,0.4)","-11","rgba(0,255,0,0.3)","-10.5","rgba(0,255,0,0.3)","-10","rgba(0,0,255,0.3)","-9.5","rgba(0,0,255,0.3)","-9","rgba(255,0,0,0.4)","-8.5","rgba(255,0,0,0.4)","-8","rgba(0,255,0,0.3)","-7.5","rgba(0,255,0,0.3)","-7","rgba(0,0,255,0.3)","-6.5","rgba(0,0,255,0.3)","-6","rgba(255,0,0,0.4)","-5.5","rgba(255,0,0,0.4)","-5","rgba(0,255,0,0.3)","-4.5","rgba(0,255,0,0.3)","-4","rgba(0,0,255,0.3)","-3.5","rgba(0,0,255,0.3)","-3","rgba(255,0,0,0.4)","-2.5","rgba(255,0,0,0.4)","-2","rgba(0,255,0,0.3)","-1.5","rgba(0,255,0,0.3)","-1","rgba(0,0,255,0.3)","-0.5","rgba(0,0,255,0.3)","+0","rgba(255,0,0,0.4)","+0.5","rgba(255,0,0,0.4)","+1","rgba(0,255,0,0.3)","+1.5","rgba(0,255,0,0.3)","+2","rgba(0,0,255,0.3)","+2.5","rgba(0,0,255,0.3)","+3","rgba(255,0,0,0.4)","+3.5","rgba(255,0,0,0.4)","+4","rgba(0,255,0,0.3)","+4.5","rgba(0,255,0,0.3)","+5","rgba(0,0,255,0.3)","+5.5","rgba(0,0,255,0.3)","+6","rgba(255,0,0,0.4)","+6.5","rgba(255,0,0,0.4)","+7","rgba(0,255,0,0.3)","+7.5","rgba(0,255,0,0.3)","+8","rgba(0,0,255,0.3)","+8.5","rgba(0,0,255,0.3)","+9","rgba(255,0,0,0.4)","+9.5","rgba(255,0,0,0.4)","+10","rgba(0,255,0,0.3)","+10.5","rgba(0,255,0,0.3)","+11","rgba(0,0,255,0.3)","+11.5","rgba(0,0,255,0.3)","rgba(255,0,0,0.4)"]}}),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{offSet}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,1]},paint:{"text-opacity":.8,"text-color":"#fff"}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.zoneLayer)&&this.map.moveLayer(this.zoneLayer,"country-boundaries"),this.map.getLayer(this.zoneLabelLayer)&&this.map.moveLayer(this.zoneLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Gr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Ur=O(Wr,[["render",Gr]]),Yr={name:"IdmVoluntaryReportingArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"vra-source",areaLayer:"vra-layer",areaLabelLayer:"vra-label-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.areaLayer)&&this.map.moveLayer(this.areaLayer,"country-boundaries"),this.map.getLayer(this.areaLayer+"-border")&&this.map.moveLayer(this.areaLayer+"-border","country-boundaries"),this.map.getLayer(this.areaLabelLayer)&&this.map.moveLayer(this.areaLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Kr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Xr=O(Yr,[["render",Kr]]),qr={name:"IdmSpecialArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"special-area-source",areaLayer:"special-area-layer",areaLabelLayer:"special-area-label-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.area.features.forEach(i=>{i.geometry.type==="Polygon"&&i.geometry.coordinates.forEach(e=>W.LngLatHelper.convertToMonotonicLng2(e))}),this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":["match",["get","val"],"DefaultStyle","rgb(0,0,0)","JWCriskArea","rgb(0,0,0)","rgb(0,0,0)"]}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":.4,"line-color":"rgb(0,0,0)"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.areaLayer)&&this.map.moveLayer(this.areaLayer,"country-boundaries"),this.map.getLayer(this.areaLayer+"-border")&&this.map.moveLayer(this.areaLayer+"-border","country-boundaries"),this.map.getLayer(this.areaLabelLayer)&&this.map.moveLayer(this.areaLabelLayer,"country-boundaries")},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Jr(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const Zr=O(qr,[["render",Jr]]),$r={name:"IdmTerminator",props:{map:{type:Object},area:{type:Object}},data(){return{source:"terminator-source",layer:"terminator-layer"}},watch:{area:{handler(){this.handleRender(),this.handleMove()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.layer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":"rgba(0, 0, 0, 0.4)"}}))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.layer)&&this.map.moveLayer(this.layer,"country-boundaries")},handleClear(){this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function eo(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const to=O($r,[["render",eo]]),Go="",ao={name:"IdmLatLng",props:{map:{type:Object},show:{type:Boolean},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{lngLat:void 0,source:"idm-lat-lng-source",layer:"idm-lat-lng-layer",labelLayer:"idm-lat-lng-label-layer",right:10}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){var i;this.map&&((i=this.map)==null||i.on("mousemove",this.handleMouseMove))},immediate:!0},toggleVersion:{handler(){var i,e;this.right=(((i=document.getElementsByClassName("legend-bars")[0])==null?void 0:i.clientWidth)||-10)+(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+20},immediate:!0}},methods:{handleBind(){var i,e;this.show?((i=this.map)==null||i.on("zoomend",this.handleZoomEnd),this.handleRender()):(this.handleClear(),(e=this.map)==null||e.off("zoomend",this.handleZoomEnd))},handleMouseMove(i){const e=i.lngLat,a=W.LngLatHelper.lng2pretty(e.lng,2),o=W.LngLatHelper.lat2pretty(e.lat,2);this.lngLat={lng:a,lat:o}},handleComputeLatLngs(){var o;const i=(o=this.map)==null?void 0:o.getZoom();let e=30;i>4?e=10:i>3&&(e=15);const a=[];for(let r=-60;r<90;r+=e)a.push({type:"Feature",geometry:{type:"LineString",coordinates:[[-180,r],[180,r]]}});for(let r=-180;r<180;r+=e)a.push({type:"Feature",geometry:{type:"LineString",coordinates:[[r,-90],[r,90]]}});for(let r=180;r>-180;r-=e)for(let s=-60;s<90;s+=e)a.push({type:"Feature",geometry:{type:"Point",coordinates:[r,s]},properties:{val:`${s>0?s+" N":s===0?s:s*-1+" S"}, ${r>0?r+" E":r*-1+" W"}`}});return a},handleZoomEnd(){var e;const i=this.handleComputeLatLngs();(e=this.map)==null||e.getSource(this.source).setData(z.featureCollection(i))},handleRender(){if(this.map){const i=this.handleComputeLatLngs();this.map.addSource(this.source,{type:"geojson",data:{type:"FeatureCollection",features:i}}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"rgba(0, 0, 0, 0.3)","line-width":1}}),this.map.addLayer({id:this.labelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{val}","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}})}},handleClear(){var i,e,a,o,r,s;(i=this.map)!=null&&i.getLayer(this.layer)&&((e=this.map)==null||e.removeLayer(this.layer)),(a=this.map)!=null&&a.getLayer(this.labelLayer)&&((o=this.map)==null||o.removeLayer(this.labelLayer)),(r=this.map)!=null&&r.getSource(this.source)&&((s=this.map)==null||s.removeSource(this.source))}}};function io(i,e,a,o,r,s){return r.lngLat?(t.openBlock(),t.createElementBlock("div",{key:0,class:"lat-lng-tip",style:t.normalizeStyle({right:r.right+"px",bottom:a.bottom})},[t.createElementVNode("span",null,t.toDisplayString(r.lngLat.lat.pretty),1),e[0]||(e[0]=t.createElementVNode("span",null,", ",-1)),t.createElementVNode("span",null,t.toDisplayString(r.lngLat.lng.pretty),1)],4)):t.createCommentVNode("",!0)}const He=O(ao,[["render",io],["__scopeId","data-v-747fb3c8"]]),ro={name:"IdmMeasure",props:{map:{type:Object},show:{type:Boolean}},data(){return{geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL"}},watch:{show:{handler(){var i,e,a;if(this.show)this.handleBind();else{(i=this.map)==null||i.getCanvas().removeEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.off("mousemove",this.handleMove),(a=this.map)==null||a.off("dblclick",this.handleDblClick),this.map&&(this.map.getCanvas().style.cursor="grab");let o=this.geojson.find(r=>!r.closed);o&&this.handleClear(o,!0),this.geojson=this.geojson.filter(r=>!!r.closed),o=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(o)}},immediate:!0},map:{handler(){this.map&&(this.show?this.handleBind():this.handleUnbind())}}},methods:{handleBind(){var i,e,a,o,r;(i=this.map)==null||i.getCanvas().addEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.on("mousemove",this.handleMove),(a=this.map)==null||a.on("dblclick",this.handleDblClick),(o=this.map)==null||o.on("click",this.handleClick),(r=this.map)==null||r.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair")},handleUnbind(){var i,e,a,o,r;(i=this.map)==null||i.getCanvas().removeEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.off("mousemove",this.handleMove),(a=this.map)==null||a.off("dblclick",this.handleDblClick),(o=this.map)==null||o.off("click",this.handleClick),(r=this.map)==null||r.off("contextmenu",this.handleContextmenu);for(const s of this.geojson)this.handleClear(s,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")},handleKeydown(i){if(i.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const e=this.geojson.at(-1),a=e.features.filter(o=>o.geometry.type==="Point");a.length&&(a.at(-1).properties.mode=this.navigation),this.handleRender(e)}},handleDrag(i){var a,o,r,s,n,l,h,d,c,m;const e=(o=(a=i.target)==null?void 0:a._element)==null?void 0:o.id;if((e==null?void 0:e.split("-").length)===2){const A=this.geojson.filter(E=>E.id===e.split("-")[0])[0];this.pointMarkers[A.id].filter(E=>{var v;return((v=E._element)==null?void 0:v.id)===e})[0].setLngLat([(s=(r=i.target)==null?void 0:r._lngLat)==null?void 0:s.lng,(l=(n=i.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);let B;A.features.forEach((E,v)=>{if(E.geometry.type==="Point"&&E.properties.id==e.split("-")[1]){B=v;return}});const y=A.features.filter(E=>E.geometry.type==="Point");this.handleTmpPointUpdate(A,y[B-1],{lng:(d=(h=i.target)==null?void 0:h._lngLat)==null?void 0:d.lng,lat:(m=(c=i.target)==null?void 0:c._lngLat)==null?void 0:m.lat,properties:y[B].properties},B===y.length-1?void 0:y[B+1])}},handleDragEnd(i){var a,o,r,s,n,l,h,d,c,m;const e=(o=(a=i.target)==null?void 0:a._element)==null?void 0:o.id;if((e==null?void 0:e.split("-").length)===2){const A=this.geojson.filter(y=>y.id===e.split("-")[0])[0];this.pointMarkers[A.id].filter(y=>{var E;return((E=y._element)==null?void 0:E.id)===e})[0].setLngLat([(s=(r=i.target)==null?void 0:r._lngLat)==null?void 0:s.lng,(l=(n=i.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);const B=A.features.filter(y=>y.geometry.type==="Point"&&y.properties.id==e.split("-")[1])[0];B.geometry.coordinates=[(d=(h=i.target)==null?void 0:h._lngLat)==null?void 0:d.lng,(m=(c=i.target)==null?void 0:c._lngLat)==null?void 0:m.lat],A.features=A.features.filter(y=>y.geometry.type==="Point"),this.handlePointUpdate(A)}},handleContextmenu(i){var a,o,r,s;i.preventDefault(),(a=this.contextmenu)==null||a.remove();const e=(s=(r=(o=i.originalEvent)==null?void 0:o.target)==null?void 0:r.parentElement)==null?void 0:s.id;if((e==null?void 0:e.split("-").length)===2){const l=this.geojson.filter(h=>h.id===e.split("-")[0])[0].features.filter(h=>h.geometry.type==="Point");if(l.length>2&&l.filter(d=>d.properties.id===(e==null?void 0:e.split("-")[1]))[0]){const d=document.createElement("div");d.className="point-contextmenu-marker",d.innerHTML=`<span id="del-${e}" class="del-point">Del</span>`,this.contextmenu=new _e.Marker(d).setOffset([24,0]).setLngLat([i.lngLat.lng,i.lngLat.lat]).addTo(this.map)}}},handleClick(i){var a,o,r,s,n,l;(a=this.contextmenu)==null||a.remove();const e=i.originalEvent.target.className;if(e==="marker-close"){const h=(r=(o=i.originalEvent)==null?void 0:o.srcElement)==null?void 0:r.id,d=this.geojson.filter(c=>c.id===h)[0];d&&this.handleClear(d,!0),this.geojson=this.geojson.filter(c=>c.id!==h),!this.show&&!((s=this.geojson)!=null&&s.some(c=>c.closed))&&this.handleUnbind()}else if(e==="del-point"){const h=(l=(n=i.originalEvent.target.id)==null?void 0:n.replace("del-",""))==null?void 0:l.split("-"),d=this.geojson.filter(c=>c.id===h[0])[0];d.features=d.features.filter(c=>c.geometry.type==="Point"&&c.properties.id!==h[1]),this.handlePointUpdate(d)}else if(e!=="marker-label"&&this.show){let h=this.geojson.at(-1);h||(h=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(h)),h.features=h.features.filter(c=>c.geometry.type==="Point");const d=z.feature({type:"Point",coordinates:[i.lngLat.lng,i.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation});h.features.push(d),this.handlePointUpdate(h)}},handlePointUpdate(i){const e=i.features;if(e.length>1){let a=0;const o=[];for(let r=1;r<e.length;r++){const s=e[r-1],n=e[r],l=s.properties,h={lng:s.geometry.coordinates[0],lat:s.geometry.coordinates[1]},d={lng:n.geometry.coordinates[0],lat:n.geometry.coordinates[1]},c=W.LaneHelper.calculateDistance(h,d,l.mode==="RL",4),m=W.LaneHelper.calculateBearing(h,d,l.mode==="RL",2);a=W.LngLatHelper.roundPrecision(a+c,2);let A;l.mode==="RL"?A=W.LngLatHelper.convertToMonotonicLng([h,d]):A=W.LngLatHelper.convertToMonotonicLng(W.LaneHelper.interpolateCoordinates(h,d,200));const C=z.lineString(A.map(B=>[B.lng,B.lat]));C.properties.dist=c,C.properties.bearing=m,C.properties.total=a,o.push(C)}e.push(...o),i.total=a}return this.handleRender(i),i},handleTmpPointUpdate(i,e,a,o){const r=z.featureCollection([]);let s,n;if(e){const h=e.properties,d={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},c={lng:a.lng,lat:a.lat};s=W.LaneHelper.calculateDistance(d,c,h.mode==="RL",4),n=W.LaneHelper.calculateBearing(d,c,h.mode==="RL",2);let m;h.mode==="RL"?m=W.LngLatHelper.convertToMonotonicLng([d,c]):m=W.LngLatHelper.convertToMonotonicLng(W.LaneHelper.interpolateCoordinates(d,c,200));const A=z.lineString(m.map(C=>[C.lng,C.lat]));A.properties.dist=s,A.properties.bearing=n,r.features.push(A)}if(o){const h=a.properties,d=a,c={lng:o.geometry.coordinates[0],lat:o.geometry.coordinates[1]};s=W.LaneHelper.calculateDistance(d,c,h.mode==="RL",4),n=W.LaneHelper.calculateBearing(d,c,h.mode==="RL",2);let m;h.mode==="RL"?m=W.LngLatHelper.convertToMonotonicLng([d,c]):m=W.LngLatHelper.convertToMonotonicLng(W.LaneHelper.interpolateCoordinates(d,c,200));const A=z.lineString(m.map(C=>[C.lng,C.lat]));A.properties.dist=s,A.properties.bearing=n,r.features.push(A)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(r):this.map.addSource(this.tmpSource,{type:"geojson",data:r}),this.map.getLayer(this.tmpLayer)||this.map.addLayer({id:this.tmpLayer,type:"line",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2,"line-opacity":1,"line-dasharray":[3,2]}}),this.map.getLayer(this.tmpLabelLayer)||this.map.addLayer({id:this.tmpLabelLayer,type:"symbol",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});let l;if(o?l='<div class="marker-label">Drag and drop</div>':l=`<div class="marker-label">Total distance: <b>${W.LngLatHelper.roundPrecision((i.total??0)+s,1)}</b>nm, bearing: <b>${n}</b>°</div><div class="marker-label">${this.navigation==="RL"?"RL":"GC"} mode, using 'Shift' to switch</div><div class="marker-label">Double click to end</div>`,this.tipMarker)this.tipMarker._element.innerHTML=l,this.tipMarker.setLngLat([a.lng,a.lat]);else{const h=document.createElement("div");h.className="tip-marker",h.innerHTML=l,this.tipMarker=new _e.Marker(h).setOffset([140,0]).setLngLat([a.lng,a.lat]).addTo(this.map)}},handleMove(i){this.map.getCanvas().style.cursor="crosshair";let e=this.geojson.at(-1);e||(e=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e));const a=e.features.filter(o=>o.geometry.type==="Point");a!=null&&a.length&&this.handleTmpPointUpdate(e,a.at(-1),{lng:i.lngLat.lng,lat:i.lngLat.lat})},handleDblClick(i){i.preventDefault();let e=this.geojson.at(-1);e.closed=!0,this.handleRender(e),e=z.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e)},handleRender(i){var e;if((e=i==null?void 0:i.features)!=null&&e.length){const a=`${i.id}-${this.source}`,o=`${i.id}-${this.layer}`,r=`${i.id}-${this.labelLayer}`;this.map.getSource(a)?this.map.getSource(a).setData(i):this.map.addSource(a,{type:"geojson",data:i}),this.handleClear(i,!1),this.map.addLayer({id:o,type:"line",source:a,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2}}),this.map.addLayer({id:r,type:"symbol",source:a,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});const s=i.features.filter(n=>n.geometry.type==="Point");for(const n of s){const l=document.createElement("div");l.id=`${i.id}-${n.properties.id}`,l.className=`${i.closed?"point-marker closed":"point-marker"}`,l.innerHTML='<div class="marker-circle"></div>';const h=new _e.Marker({element:l,draggable:!0,contextmenu:!0}).setLngLat(n.geometry.coordinates).addTo(this.map);h.on("drag",this.handleDrag),h.on("dragend",this.handleDragEnd),this.pointMarkers[i.id]?this.pointMarkers[i.id].push(h):this.pointMarkers[i.id]=[h]}if(i.closed){const n=s.at(-1),h=i.features.filter(c=>c.geometry.type==="LineString").at(-1),d=document.createElement("div");d.className="point-summary-marker",d.innerHTML=`<div id="${i.id}" class="marker-close">×</div><div class="marker-label">Total: ${h.properties.total}nm</div>`,this.closeMarkers[i.id]=new _e.Marker(d).setOffset([60,0]).setLngLat(n.geometry.coordinates).addTo(this.map)}}},handleClear(i,e=!0){var s,n,l,h,d,c,m,A,C;const a=`${i.id}-${this.source}`,o=`${i.id}-${this.layer}`,r=`${i.id}-${this.labelLayer}`;(s=this.map)!=null&&s.getLayer(o)&&this.map.removeLayer(o),(n=this.map)!=null&&n.getLayer(r)&&this.map.removeLayer(r),(l=this.map)!=null&&l.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(h=this.map)!=null&&h.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(d=this.closeMarkers[i.id])==null||d.remove(),this.closeMarkers[i.id]=void 0,(c=this.pointMarkers[i.id])==null||c.forEach(B=>{B==null||B.remove()}),this.pointMarkers[i.id]=[],(m=this.tipMarker)==null||m.remove(),this.tipMarker=void 0,e&&((A=this.map)!=null&&A.getSource(a))&&this.map.removeSource(a),e&&((C=this.map)!=null&&C.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}};function oo(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const so=O(ro,[["render",oo]]),Uo="",no={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},beforeLayer:{type:String,default:"grayland"},bottom:{type:String,default:"280px"},token:{type:String,default:""},toggleVersion:{type:Number},permission:{type:Number}},emits:["enc"],data(){return{helper:ee.CompanyHelper,vendor:"",right:10}},watch:{vendor:{handler(){this.$emit("enc",this.vendor)},immediate:!0},toggleVersion:{handler(){var i;this.right=(((i=document.getElementsByClassName("right-bar")[0])==null?void 0:i.clientWidth)||0)+10},immediate:!0}},mounted(){this.vendor=this.permission&ee.CompanyHelper.LEVEL.Supper?"hi":"i4"},methods:{}},lo={key:0},co={class:"bar-item"};function ho(i,e,a,o,r,s){const n=t.resolveComponent("ElTooltip");return a.enabled&&a.permission&r.helper.LEVEL.Supper?(t.openBlock(),t.createElementBlock("div",lo,[t.createElementVNode("div",{class:"menu-bar-box",style:t.normalizeStyle({position:"absolute",right:r.right+"px",bottom:a.bottom})},[t.createElementVNode("div",co,[t.createVNode(n,{placement:"left",effect:"light",content:"Hifleet","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.vendor==="hi"?"menu-icon active":"menu-icon"),onClick:e[0]||(e[0]=l=>r.vendor="hi")},e[2]||(e[2]=[t.createElementVNode("span",{class:"iconfont"},"HI",-1)]),2)]),_:1}),t.createVNode(n,{placement:"left",effect:"light",content:"I4insight","show-after":1e3},{default:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(r.vendor==="i4"?"menu-icon active":"menu-icon"),onClick:e[1]||(e[1]=l=>r.vendor="i4")},e[3]||(e[3]=[t.createElementVNode("span",{class:"iconfont"},"I4",-1)]),2)]),_:1})])],4)])):t.createCommentVNode("",!0)}const mo=O(no,[["render",ho],["__scopeId","data-v-8eecd76d"]]),po={name:"IdmWorld12nm",props:{map:{type:Object},enabled:{type:Boolean},weatherLayers:{type:Object,default:()=>({})},zoom:{type:Number,default:3},left:{type:String,default:"10px"},bottom:{type:String,default:"64px"},token:{type:String,default:""}},data(){return{layer:"world-12nm-v4-20231025"}},watch:{enabled:{handler(){this.enabled?(this.handleRender(),this.handleMove()):this.handleClear()},immediate:!0}},methods:{handleRender(){var i;this.map?(console.log(this.map.style._layers),(i=this.map)!=null&&i.getLayer(this.layer)&&(this.map.setLayoutProperty(this.layer,"visibility","visible"),this.map.setPaintProperty(this.layer,"line-color","rgb(210,54,83)"),this.map.setPaintProperty(this.layer,"line-width",2))):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.layer)&&this.map.moveLayer(this.layer,"country-boundaries")},handleClear(){var i;(i=this.map)!=null&&i.getLayer(this.layer)&&this.map.setLayoutProperty(this.layer,"visibility","none")}}};function go(i,e,a,o,r,s){return null}const yo=O(po,[["render",go]]),Yo="",uo={name:"IdmWorldMarine",props:{map:{type:Object},enabled:{type:Boolean}},data(){return{labelLayer:"ne-10m-label",lineLayer:"ne-10m-outline"}},watch:{enabled:{handler(){this.enabled?(this.handleRender(),this.handleMove()):this.handleClear()},immediate:!0}},methods:{handleRender(){var i,e;this.map?((i=this.map)!=null&&i.getLayer(this.lineLayer)&&(this.map.setLayoutProperty(this.lineLayer,"visibility","visible"),this.map.setPaintProperty(this.lineLayer,"line-width",1)),(e=this.map)!=null&&e.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","visible")):setTimeout(()=>{this.handleRender()},500)},handleMove(){this.map.getLayer(this.lineLayer)&&this.map.moveLayer(this.lineLayer,"country-boundaries"),this.map.getLayer(this.labelLayer)&&this.map.moveLayer(this.labelLayer,"country-boundaries")},handleClear(){var i,e;(i=this.map)!=null&&i.getLayer(this.lineLayer)&&this.map.setLayoutProperty(this.lineLayer,"visibility","none"),(e=this.map)!=null&&e.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","none")}}};function fo(i,e,a,o,r,s){return null}const Ao=O(uo,[["render",fo]]),wo={name:"IdmChinaRoute",props:{map:{type:Object},enabled:{type:Boolean}},data(){return{labelLayer:"china-route-label",lineLayer:"china-route-line",fillLayer:"china-route-fill"}},watch:{enabled:{handler(){this.enabled?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleRender(){var i,e,a;this.map?((i=this.map)!=null&&i.getLayer(this.lineLayer)&&this.map.setLayoutProperty(this.lineLayer,"visibility","visible"),(e=this.map)!=null&&e.getLayer(this.fillLayer)&&this.map.setLayoutProperty(this.fillLayer,"visibility","visible"),(a=this.map)!=null&&a.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","visible")):setTimeout(()=>{this.handleRender()},500)},handleClear(){var i,e,a;(i=this.map)!=null&&i.getLayer(this.lineLayer)&&this.map.setLayoutProperty(this.lineLayer,"visibility","none"),(e=this.map)!=null&&e.getLayer(this.fillLayer)&&this.map.setLayoutProperty(this.fillLayer,"visibility","none"),(a=this.map)!=null&&a.getLayer(this.labelLayer)&&this.map.setLayoutProperty(this.labelLayer,"visibility","none")}}};function bo(i,e,a,o,r,s){return null}const Lo=O(wo,[["render",bo]]),Ko="",Co={name:"IdmGLV2",components:{IdmGlLayer:Qt,IdmWindBarb:Ft,IdmWindParticle:Wt,IdmCurrents:Yt,IdmCurrentParticle:Jt,IdmSigWave:ea,IdmSwell:ia,IdmPrmsl:sa,IdmIceEdge:ha,IdmIceCover:ga,IdmIceThickness:Aa,IdmTropicals:Qe,IdmPrecip3h:Ra,IdmVisibility:Ua,IdmWaterTemp:qa,IdmTemp:ei,IdmWarZone:wr,IdmGmdssArea:Cr,IdmEcaZone:Er,IdmAlertZone:Dr,IdmPort:Fr,IdmLoadLine:jr,IdmTimezone:Ur,IdmVRA:Xr,IdmSpecialArea:Zr,IdmTerminator:to,IdmLatLng:He,IdmMeasure:so,IdmPoint:ur,IdmENC:mo,IdmWorld12nm:yo,IdmWorldMarine:Ao,IdmChinaRoute:Lo},props:{map:{type:Object,default:void 0},token:{type:String},ts:{type:String},beforeLayer:{type:String,default:""},toggleVersion:{type:Number},forecastModel:{type:String}},emits:["toggleVersion","activeWeatherLayers","showMeteoPoint"],data(){return{weatherLayers:{},activeWeatherLayers:[],weatherWeight:0,otherLayers:{},otherWeight:0,showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,meteo:void 0,source:"",gateway:"https://cbe.idmwx.com",assistGateway:["https://assist0.idmwx.com","https://assist1.idmwx.com","https://assist2.idmwx.com","https://assist3.idmwx.com"],mapProjection:"mercator",zoom:6,viewport:void 0,particleFactor:void 0,showRampColor:!1,activeWindLayer:!1,showWindFeather:!0,showWindParticle:!1,toggleWindParticeVersion:0,toggleCurrentParticeVersion:0,showCurrentIsoband:!1,showCurrentParticle:!1,enc:"",defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg",helper:new Ve}},watch:{ts:{handler(i,e){i&&e&&j(i).utc().format("yyyy-MM-DD HH")!==j(e).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.handleDateChange({tropicals:!1})})},immediate:!0},map:{handler(){this.map&&(this.map.on("move",this.handleMove4Weather),this.viewport=new Te(this.map),this.handleRampColorInitial())},immediate:!0},enc:{handler(i,e){var a,o,r,s,n,l,h,d;i&&this.map.getZoom()>3?((o=(a=this.map)==null?void 0:a.getLayer(i))==null||o.setLayoutProperty("visibility","visible"),(s=(r=this.map)==null?void 0:r.getLayer(e))==null||s.setLayoutProperty("visibility","none")):((l=(n=this.map)==null?void 0:n.getLayer("i4"))==null||l.setLayoutProperty("visibility","none"),(d=(h=this.map)==null?void 0:h.getLayer("hi"))==null||d.setLayoutProperty("visibility","none"))}},activeWeatherLayers:{handler(){var a,o,r,s,n,l,h,d,c,m,A,C,B,y,E,v,u,f,p,b,g,w,k;if(!this.map)return!1;const i=this.activeWeatherLayers.some(_=>_.key==="wind"&&_.particle===!0||_.key==="current"&&_.particle===!0||_.key==="ice-edge"||_.key==="ice-thickness"||_.key==="ice-cover"||_.key==="temp"||_.key==="water-temp"),e=this.activeWeatherLayers.some(_=>_.key==="visibility"||_.key==="precip3h");this.activeWeatherLayers.length>0?(!i&&this.map.getZoom()>3&&this.enc?(o=(a=this.map)==null?void 0:a.getLayer(this.enc))==null||o.setLayoutProperty("visibility","visible"):((s=(r=this.map)==null?void 0:r.getLayer("i4"))==null||s.setLayoutProperty("visibility","none"),(l=(n=this.map)==null?void 0:n.getLayer("hi"))==null||l.setLayoutProperty("visibility","none")),(d=(h=this.map)==null?void 0:h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||d.setLayoutProperty("visibility","visible"),(m=this.map)!=null&&m.getLayer((c=this.viewport)==null?void 0:c.rampColorLayer)&&((A=this.map)!=null&&A.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((B=this.map)==null||B.moveLayer((C=this.viewport)==null?void 0:C.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),e&&((E=this.map)==null||E.moveLayer(this.helper.mapboxCustomer.layers.countryBoundary.id,(y=this.viewport)==null?void 0:y.rampColorLayer))):((u=(v=this.map)==null?void 0:v.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||u.setLayoutProperty("visibility","none"),this.enc&&this.map.getZoom()>3?(p=(f=this.map)==null?void 0:f.getLayer(this.enc))==null||p.setLayoutProperty("visibility","visible"):((g=(b=this.map)==null?void 0:b.getLayer("i4"))==null||g.setLayoutProperty("visibility","none"),(k=(w=this.map)==null?void 0:w.getLayer("hi"))==null||k.setLayoutProperty("visibility","none"))),this.$emit("activeWeatherLayers",this.activeWeatherLayers)},immediate:!0},showPoint:{handler(){this.$emit("showMeteoPoint",this.showPoint)}}},methods:{async fetchWeatherLayers(i={tropicals:!1}){var r,s,n,l,h,d,c,m,A;const e=new Date().valueOf();let a=0,o=0;if(this.map){const C=((r=this.map)==null?void 0:r.getZoom())+1,B=(s=this.map)==null?void 0:s.getBounds(),y=`${B._sw.lng},${B._sw.lat},${B._ne.lng},${B._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const E=ee.LayerHelper.WEATHER_LAYERS.find(v=>{var u;return((u=v.peer)==null?void 0:u.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&E.weight?this.weatherWeight:this.weatherWeight+E.weight:this.weatherWeight=this.weatherWeight&E.weight?this.weatherWeight-E.weight:this.weatherWeight}if(this.weatherWeight>0){let E=this.weatherWeight,v;if(i.tropicals||this.weatherWeight&256&&(v=this.weatherLayers.tropicals,v&&(E-=256,v.version=Math.random()+1)),E>0){const u=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],f=await ve.get(`${u}/api/arc/weather/layers2/links?l=${E}&v=${this.source}&z=${C}&bbox=${y}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(o=new Date().valueOf()-(e+a),console.log("weather links elapsed: ",o,", total: ",a+=o),((l=f==null?void 0:f.data)==null?void 0:l.code)===0){const p=(h=f==null?void 0:f.data)==null?void 0:h.data,b=[];for(const w in p)w!=="tropicals"&&b.push(ve.get(p[w],{headers:{Authorization:this.token||this.defaultMeteoToken,key:w},responseType:/\.(jpg|png)$/.test(p[w])?"blob":"json"}).catch(k=>{console.log(`[${w}] fetch layer error: ${k}`)}));const g=await Promise.all(b);this.weatherLayers={},g.map(w=>{var S,M,Q,V;const k=((S=w==null?void 0:w.data)==null?void 0:S.data)||(w==null?void 0:w.data),_=(Q=(M=w==null?void 0:w.config)==null?void 0:M.headers)==null?void 0:Q.key;_&&k&&(this.weatherLayers[_]={raw:k,type:((V=w==null?void 0:w.config)==null?void 0:V.responseType)==="blob"?"image":"json",etime:f.data.etime})}),p.tropicals&&ve.get(p.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"}}).then(w=>{var S,M,Q;const k=W.TropicalHelper.convert2Geojson(((S=w==null?void 0:w.data)==null?void 0:S.data)||(w==null?void 0:w.data)),_=(Q=(M=w==null?void 0:w.config)==null?void 0:M.headers)==null?void 0:Q.key;this.weatherLayers[_]={data:k,active:!0,cached:!1,type:"json",etime:f.data.etime,version:Math.random()+1}})}if(o=new Date().valueOf()-(e+a),console.log("weather layers elapsed: ",o,", total: ",a+=o),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const p=(d=this.weatherLayers["swell-direction"])==null?void 0:d.raw,b=(c=this.weatherLayers["swell-height"])==null?void 0:c.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:p,height:{raw:b},etime:f.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const p=(m=this.weatherLayers["current-direction"])==null?void 0:m.raw,b=(A=this.weatherLayers["current-speed"])==null?void 0:A.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:p,speed:{raw:b},etime:f.data.etime}}}v&&(v.etime=this.ts,v.cached=!0,this.weatherLayers.tropicals=v)}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json()}this.$emit("toggleVersion",Math.random())},async fetchOtherLayers(i={all:!1,dayNight:!1,enc:!1,world12nm:!1,worldMarine:!1,chinaRoute:!1}){var e,a,o,r;if(this.map){let s=this.otherWeight;if(s){let n=!1,l=!1,h=!1,d=!1;if(this.otherWeight&2048&&(s=this.otherWeight-2048,n=!0),this.otherWeight&8192&&(s=s-8192,l=!0),this.otherWeight&16384&&(s=s-16384,h=!0),this.otherWeight&32768&&(s=s-32768,d=!0),s){if(i.all){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],m=await ve.get(`${c}/api/arc/other/layers/links?l=${s}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((e=m==null?void 0:m.data)==null?void 0:e.code)===0){const A=(a=m==null?void 0:m.data)==null?void 0:a.data,C=[];for(const y in A)C.push(ve.get(A[y],{headers:{Authorization:this.token||this.defaultMeteoToken,key:y}}));const B=await Promise.all(C);this.otherLayers={enc:n,world12nm:l,worldMarine:h,chinaRoute:d},B.map(y=>{var u,f,p;const E=((u=y==null?void 0:y.data)==null?void 0:u.data)||(y==null?void 0:y.data),v=(p=(f=y==null?void 0:y.config)==null?void 0:f.headers)==null?void 0:p.key;this.otherLayers[v]=E})}}else if(i.dayNight&&s&1024){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],m=await ve.get(`${c}/api/arc/other/layers/links?l=1024&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((o=m==null?void 0:m.data)==null?void 0:o.code)===0){const A=(r=m==null?void 0:m.data)==null?void 0:r.data,C=[];for(const y in A)C.push(ve.get(A[y],{headers:{Authorization:this.token||this.defaultMeteoToken,key:y}}));(await Promise.all(C)).map(y=>{var u,f,p;const E=((u=y==null?void 0:y.data)==null?void 0:u.data)||(y==null?void 0:y.data),v=(p=(f=y==null?void 0:y.config)==null?void 0:f.headers)==null?void 0:p.key;this.otherLayers[v]=E})}}}else this.otherLayers={enc:n,world12nm:l,worldMarine:h,chinaRoute:d}}else this.otherLayers={};this.handleBeforeLayerToggle()}},handleRampColorState(){var i;if(this.showRampColor=!1,this.showWindParticle=!1,this.showCurrentParticle=!1,(i=this.particleFactor)!=null&&i.particle)this.showRampColor=!0,this.particleFactor.key==="wind"&&(this.showWindParticle=!0),this.particleFactor.key==="current"&&(this.showCurrentParticle=!0);else for(const e of this.activeWeatherLayers)["png","jpg"].includes(e.type)&&(this.showRampColor=!0);this.activeWindLayer=!!this.activeWeatherLayers.find(e=>e.key==="wind"),this.$refs.layer&&(this.$refs.layer.activeWeatherLayers=this.activeWeatherLayers)},handleRampColorInitial(){var i,e,a,o,r,s,n,l,h,d,c,m;this.viewport.map.getSource((i=this.viewport)==null?void 0:i.rampColorSource)||this.viewport.map.addSource((e=this.viewport)==null?void 0:e.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((o=this.viewport)==null?void 0:o.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(r=this.viewport)==null?void 0:r.rampColorLayer,source:(s=this.viewport)==null?void 0:s.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((l=this.viewport)==null?void 0:l.particleSource,{type:"canvas",canvas:(h=this.viewport)==null?void 0:h.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((d=this.viewport)==null?void 0:d.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(c=this.viewport)==null?void 0:c.particleLayer,source:(m=this.viewport)==null?void 0:m.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var d,c,m,A,C,B;const i=new Date().valueOf();let e=0,a=0;const o=(d=this.map)==null?void 0:d.getBounds(),r=this.map.getZoom(),s=W.LngLatHelper.convertToStdLng(o._sw.lng),n=W.LngLatHelper.convertToStdLng(o._ne.lng),l=Math.floor(o._sw.lat),h=Math.ceil(o._ne.lat);for(const y in this.weatherLayers){let E=!1;if(this.weatherLayers[y].active&&this.weatherLayers[y].type==="json"){let v=[];if(y==="swell"){E=!0;const u=((c=this.weatherLayers[y])==null?void 0:c.direction)||{};for(const p in u)if(p>l&&p<h&&(!(r<=this.zoom)||p%(r<2?10:r<4?5:3)===0)){const b=u[p].lng;s>n?b.forEach((g,w)=>{var k,_,S,M,Q,V;if(r<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[w])||((_=u[p].dir)==null?void 0:_[w]),spd:(S=u[p].spd)==null?void 0:S[w]});v.push(H)}}else if((g>=s&&g<=180||g>=-180&&g<=n)&&(!(r<=this.zoom)||g%(r<2?10:r<4?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[w])||((Q=u[p].dir)==null?void 0:Q[w]),spd:(V=u[p].spd)==null?void 0:V[w]});v.push(H)}}):b.forEach((g,w)=>{var k,_,S,M,Q,V;if(s<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[w])||((_=u[p].dir)==null?void 0:_[w]),spd:(S=u[p].spd)==null?void 0:S[w]});v.push(H)}}else if(g>=s&&g<=n&&(!(r<=this.zoom)||g%(r<2?10:r<4?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[w])||((Q=u[p].dir)==null?void 0:Q[w]),spd:(V=u[p].spd)==null?void 0:V[w]});v.push(H)}})}a=new Date().valueOf()-(i+e),console.log("swell direction elapsed: ",a,", total: ",e+=a);const f=this.weatherLayers[y].height;if(f){if(!f.data){const p=[];for(const b in(m=f.raw)==null?void 0:m.LineString){const g=f.raw.LineString[b];for(const w of g)p.push(z.lineString(w,{val:Number(b)}));f.data=z.featureCollection(p)}}if(f.data){const p=this.handleBboxClip(f.data,o);v=v.concat(p)}a=new Date().valueOf()-(i+e),console.log("swell height elapsed: ",a,", total: ",e+=a)}}else if(y==="current"&&this.showCurrentIsoband){E=!0;const u=((A=this.weatherLayers[y])==null?void 0:A.direction)||{};for(const p in u)if(p>l&&p<h&&(!(r<=this.zoom)||p%(r<2?10:r<4?5:3)===0)){const b=u[p].lng;s>n?b.forEach((g,w)=>{var k,_,S,M,Q,V;if(r<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[w])||((_=u[p].dir)==null?void 0:_[w]),spd:(S=u[p].spd)==null?void 0:S[w]});v.push(H)}}else if((g>=s&&g<=180||g>=-180&&g<=n)&&(!(r<=this.zoom)||g%(r<2?10:r<4?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[w])||((Q=u[p].dir)==null?void 0:Q[w]),spd:(V=u[p].spd)==null?void 0:V[w]});v.push(H)}}):b.forEach((g,w)=>{var k,_,S,M,Q,V;if(s<2){if((g>=0&&g<=360||g>=-360&&g<=0)&&g%10===0){const H=z.point([g,p],{val:((k=u[p].val)==null?void 0:k[w])||((_=u[p].dir)==null?void 0:_[w]),spd:(S=u[p].spd)==null?void 0:S[w]});v.push(H)}}else if(g>=s&&g<=n&&(!(r<=this.zoom)||g%(r<this.zoom/2?5:3)===0)){const H=z.point([g,p],{val:((M=u[p].val)==null?void 0:M[w])||((Q=u[p].dir)==null?void 0:Q[w]),spd:(V=u[p].spd)==null?void 0:V[w]});v.push(H)}})}a=new Date().valueOf()-(i+e),console.log("current direction elapsed: ",a,", total: ",e+=a);const f=this.weatherLayers[y].speed;if(f){if(!f.data){const b=[];for(const g in(C=f.raw)==null?void 0:C.Polygon){const w=f.raw.Polygon[g];for(const k of w)b.push(z.polygon(k,{val:Number(g)}))}f.data=z.featureCollection(b)}const p=r<this.zoom?f.data.features.filter(b=>b.properties.val>.5):f.data.features;v=v.concat(p),a=new Date().valueOf()-(i+e),console.log("current speed elapsed: ",a,", total: ",e+=a)}}else if(y==="wind"&&this.showWindFeather){E=!0;const u=this.weatherLayers.wind.raw;for(const f in u)if(f>l&&f<h&&(!(r<=this.zoom)||f%(r<2?10:r<4?5:3)===0)){const p=u[f].lng;s>n?p.forEach((b,g)=>{var w,k,_,S;if(r<2){if((b>=0&&b<=360||b>=-360&&b<=0)&&b%10===0){const M=z.point([b,f],{dir:((w=u[f].val)==null?void 0:w[g])||((k=u[f].dir)==null?void 0:k[g]),spd:u[f].spd[g]});v.push(M)}}else if((b>=s&&b<=180||b>=-180&&b<=n)&&(!(r<=this.zoom)||b%(r<2?10:r<4?5:3)===0)){const M=z.point([b,f],{dir:((_=u[f].val)==null?void 0:_[g])||((S=u[f].dir)==null?void 0:S[g]),spd:u[f].spd[g]});v.push(M)}}):p.forEach((b,g)=>{var w,k,_,S;if(r<2){if((b>=0&&b<=360||b>=-360&&b<=0)&&b%10===0){const M=z.point([b,f],{dir:((w=u[f].val)==null?void 0:w[g])||((k=u[f].dir)==null?void 0:k[g]),spd:u[f].spd[g]});v.push(M)}}else if(b>=s&&b<=n&&(!(r<=this.zoom)||b%(r<2?10:r<4?5:3)===0)){const M=z.point([b,f],{dir:((_=u[f].val)==null?void 0:_[g])||((S=u[f].dir)==null?void 0:S[g]),spd:u[f].spd[g]});v.push(M)}})}a=new Date().valueOf()-(i+e),console.log("wind barb elapsed: ",a,", total: ",e+=a)}else if(y==="sig-wave-height"){if(this.weatherLayers[y].data)v=this.weatherLayers[y].data;else{E=!0;const u=this.weatherLayers[y].raw;if(u){const f=[];for(const p in u.Polygon){const b=u.Polygon[p];for(const g of b)f.push(z.polygon(g,{val:Number(p)}))}for(const p in u.MultiPolygon){const b=u.MultiPolygon[p];for(const g of b)f.push(z.multiPolygon(g,{val:Number(p)}))}for(const p in u.Point){const b=u.Point[p];for(let g=0;g<((B=b.lng)==null?void 0:B.length);g++)f.push(z.point([b.lng[g],p],{val:Number(b.val[g])}))}v=v.concat(f)}}a=new Date().valueOf()-(i+e),console.log("sigWave elapsed: ",a,", total: ",e+=a)}else if(y==="prmsl"){if(this.weatherLayers[y].data)v=this.weatherLayers[y].data;else{E=!0;const u=this.weatherLayers[y].raw;if(u){const f=[];for(const p in u.LineString){const b=u.LineString[p];for(const g of b)f.push(z.lineString(g,{val:Number(p)}))}for(const p in u.Point)u.Point[p].lng.forEach((b,g)=>{b=W.LngLatHelper.convertToStdLng(b),f.push(z.point([b,p],{val:u.Point[p].val[g],type:u.Point[p].type[g]}))});v=v.concat(f)}}a=new Date().valueOf()-(i+e),console.log("prmsl elapsed: ",a,", total: ",e+=a)}v.length&&(this.weatherLayers[y].data=z.featureCollection(v)),E&&(this.weatherLayers[y].version=Math.random()+1)}}},handleMove4Weather(){var e,a,o,r,s,n;for(const l in this.weatherLayers)this.weatherLayers[l].active&&this.weatherLayers[l].type==="image"&&(this.weatherLayers[l].active=!0,this.weatherLayers[l].version=Math.random()+1);this.handleDrawWeather4Json(),!this.activeWeatherLayers.some(l=>l.key==="wind"&&l.particle===!0||l.key==="current"&&l.particle===!0||l.key==="ice-edge"||l.key==="ice-thickness"||l.key==="ice-cover"||l.key==="temp"||l.key==="water-temp")&&this.map.getZoom()>3&&this.enc?(a=(e=this.map)==null?void 0:e.getLayer(this.enc))==null||a.setLayoutProperty("visibility","visible"):((r=(o=this.map)==null?void 0:o.getLayer("i4"))==null||r.setLayoutProperty("visibility","none"),(n=(s=this.map)==null?void 0:s.getLayer("hi"))==null||n.setLayoutProperty("visibility","none"))},handleBboxClip(i,e){const a=[],o=W.LngLatHelper.convertToStdLng(e._sw.lng),r=W.LngLatHelper.convertToStdLng(e._ne.lng);return i.features.forEach(s=>{if(s.geometry.type!=="Point")if(o>r){let n=[o,e._sw.lat,180,e._ne.lat],l=z.bboxClip(s,n);l.geometry.coordinates.length&&a.push(l),n=[-180,e._sw.lat,r,e._ne.lat],l=z.bboxClip(s,n),l.geometry.coordinates.length&&a.push(l)}else{const n=[o,e._sw.lat,r,e._ne.lat],l=z.bboxClip(s,n);l.geometry.coordinates.length&&a.push(l)}else a.push(s)}),a},handleWeatherLayerToggle(){var i;for(const e in this.weatherLayers)this.weatherLayers[e].active=!1,this.weatherLayers[e].version=Math.random()+1;for(const e of this.activeWeatherLayers){let a=e.key;a.indexOf("swell")>-1?a="swell":a.indexOf("current")>-1&&(a="current"),this.weatherLayers[a]&&(this.weatherLayers[a].active=!0,this.weatherLayers[a].version=Math.random()+1,((i=this.particleFactor)==null?void 0:i.key)===a&&this.weatherLayers[`${a}-particle`]&&(this.weatherLayers[`${a}-particle`].active=this.particleFactor.particle))}this.handleBeforeLayerToggle()},handleBeforeLayerToggle(){var i,e,a,o,r,s,n,l,h,d,c,m,A,C,B,y;(i=this.map)!=null&&i.getLayer(this.beforeLayer)&&((e=this.activeWeatherLayers)!=null&&e.length||(a=this.otherLayers)!=null&&a["war-zones"]||(o=this.otherLayers)!=null&&o["gmdss-areas"]||(r=this.otherLayers)!=null&&r["load-lines"]||(s=this.otherLayers)!=null&&s["high-risk-area"]||(n=this.otherLayers)!=null&&n["time-zones"]||(l=this.otherLayers)!=null&&l.pirates||(h=this.otherLayers)!=null&&h.ports||(d=this.otherLayers)!=null&&d.enc||(c=this.otherLayers)!=null&&c.world12nm||(m=this.otherLayers)!=null&&m.worldMarine||(A=this.otherLayers)!=null&&A.chinaRoute||(C=this.otherLayers)!=null&&C["voluntary-reporting-area"]||(B=this.otherLayers)!=null&&B["eca-zones"]||(y=this.otherLayers)!=null&&y["special-area"])&&this.map.setLayoutProperty(this.beforeLayer,"visibility","visible")},handleDateChange(i={tropicals:!1}){this.fetchWeatherLayers(i),this.fetchOtherLayers({dayNight:!0})},handleWeatherLayerChange(i,e){this.showWindParticle=!1,this.showCurrentParticle=!1,this.map?setTimeout(()=>{this.activeWeatherLayers=JSON.parse(JSON.stringify(i));const a=this.activeWeatherLayers.some(s=>{var n;return["wind","current"].includes(s.key)&&(!((n=Object.keys(s))!=null&&n.some(l=>l==="particle"))||!!s.particle)}),o=this.activeWeatherLayers.some(s=>["png","jpg"].includes(s.type));a&&!o?(this.activeWeatherLayers.forEach(s=>{s.key==="wind"&&s.particle&&(this.particleFactor=s,this.showWindParticle=!0),s.key==="current"&&s.particle&&(this.particleFactor=s,this.showCurrentParticle=!0)}),this.particleFactor.particle=!0):o&&this.particleFactor&&(this.particleFactor.particle=!1);const r=i==null?void 0:i.reduce((s,n)=>s+(s&(n==null?void 0:n.weight)?0:n==null?void 0:n.weight),0);this.weatherWeight!==r||this.source!==e?(this.source=e,this.weatherWeight=r,this.fetchWeatherLayers({tropicals:!1})):this.handleWeatherLayerToggle()}):setTimeout(()=>{this.handleWeatherLayerChange(i,e)},500)},handleOtherLayerChange(i){if(!this.map)setTimeout(()=>{this.handleOtherLayerChange(i)},500);else{const e=i==null?void 0:i.reduce((a,o)=>a+(o==null?void 0:o.weight),0);i.find(a=>a.key==="enc")?this.enc=this.$attrs.permission&ee.CompanyHelper.LEVEL.Supper?"hi":"i4":this.enc="",this.otherWeight!==e&&(this.otherWeight=e,this.fetchOtherLayers({all:!0}))}},handle3dToggle(i){var e,a,o,r,s,n,l,h,d,c,m,A,C,B,y,E,v,u,f,p;i?(this.map.setProjection("globe"),this.mapProjection="globe",(a=this.map)!=null&&a.getLayer((e=this.viewport)==null?void 0:e.rampColorLayer)&&((o=this.map)!=null&&o.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((s=this.map)==null||s.moveLayer((r=this.viewport)==null?void 0:r.rampColorLayer,this.helper.mapboxCustomer.layers.water.id)),(l=this.map)!=null&&l.getLayer((n=this.viewport)==null?void 0:n.particleLayer)&&((h=this.map)!=null&&h.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((c=this.map)==null||c.moveLayer((d=this.viewport)==null?void 0:d.particleLayer,this.helper.mapboxCustomer.layers.water.id))):(this.map.setProjection("mercator"),this.mapProjection="mercator",(A=this.map)!=null&&A.getLayer((m=this.viewport)==null?void 0:m.rampColorLayer)&&((C=this.map)!=null&&C.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((y=this.map)==null||y.moveLayer((B=this.viewport)==null?void 0:B.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(v=this.map)!=null&&v.getLayer((E=this.viewport)==null?void 0:E.particleLayer)&&((u=this.map)!=null&&u.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((p=this.map)==null||p.moveLayer((f=this.viewport)==null?void 0:f.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)))},handleParticle(i){this.particleFactor=i,this.weatherLayers[i.key]&&(this.weatherLayers[i.key].particle=i.particle),this.activeWeatherLayers.map(o=>{var r;return o.key===i.key?o.particle=i.particle:i.particle&&((r=Object.keys(o))!=null&&r.some(s=>s==="particle"))&&(o.particle=!1),o});let e=localStorage.getItem("activeWeatherLayersCache");const a=JSON.parse(e)||[];a==null||a.forEach(o=>{var r;o.key===i.key?o.particle=i.particle:i.particle&&((r=Object.keys(o))!=null&&r.some(s=>s==="particle"))&&(o.particle=!1)}),localStorage.setItem("activeWeatherLayersCache",JSON.stringify(a)),this.fetchWeatherLayers({tropicals:!1})},handleToggleVersion(){this.$emit("toggleVersion",Math.random())}}},vo={key:0,ref:"mapGlHome",class:"map-gl-home"};function xo(i,e,a,o,r,s){var Y,se,te,ne,ge,de,ye,x,we,me,be,fe,Le,Ae,X,U,I,pe,R,K,xe,N,le,Ce,Ee,Be,D,T,Ne,ze;const n=t.resolveComponent("IdmGlLayer"),l=t.resolveComponent("IdmENC"),h=t.resolveComponent("IdmWorld12nm"),d=t.resolveComponent("IdmWorldMarine"),c=t.resolveComponent("IdmChinaRoute"),m=t.resolveComponent("IdmSigWave"),A=t.resolveComponent("IdmSwell"),C=t.resolveComponent("IdmPrmsl"),B=t.resolveComponent("IdmIceEdge"),y=t.resolveComponent("IdmIceCover"),E=t.resolveComponent("IdmIceThickness"),v=t.resolveComponent("IdmTropicals"),u=t.resolveComponent("IdmCurrents"),f=t.resolveComponent("IdmCurrentParticle"),p=t.resolveComponent("IdmWindBarb"),b=t.resolveComponent("IdmWindParticle"),g=t.resolveComponent("IdmPrecip3h"),w=t.resolveComponent("IdmVisibility"),k=t.resolveComponent("IdmWaterTemp"),_=t.resolveComponent("IdmTemp"),S=t.resolveComponent("IdmWarZone"),M=t.resolveComponent("IdmGmdssArea"),Q=t.resolveComponent("IdmEcaZone"),V=t.resolveComponent("IdmAlertZone"),H=t.resolveComponent("IdmPort"),ae=t.resolveComponent("IdmLoadLine"),q=t.resolveComponent("IdmTimezone"),ie=t.resolveComponent("IdmVRA"),ce=t.resolveComponent("IdmSpecialArea"),re=t.resolveComponent("IdmTerminator"),he=t.resolveComponent("IdmLatLng"),oe=t.resolveComponent("IdmMeasure"),F=t.resolveComponent("IdmPoint");return a.map?(t.openBlock(),t.createElementBlock("div",vo,[t.createVNode(n,t.mergeProps({ref:"layer",map:a.map,"toggle-version":a.toggleVersion,"map-projection":r.mapProjection,"show-wind-feather":r.showWindFeather,"show-wind-particle":r.showWindParticle,"show-current-isoband":r.showCurrentIsoband,"show-current-particle":r.showCurrentParticle,token:a.token,gateway:r.gateway},i.$attrs,{"forecast-model":a.forecastModel,onWeather:s.handleWeatherLayerChange,onOther:s.handleOtherLayerChange,onToggleWindParticle:e[0]||(e[0]=$=>r.showWindParticle=$),onToggleWindFeather:e[1]||(e[1]=$=>{(r.showWindFeather=$)&&s.handleDrawWeather4Json()}),onToggleCurrentParticle:e[2]||(e[2]=$=>r.showCurrentParticle=$),onToggleCurrentIsoband:e[3]||(e[3]=$=>{(r.showCurrentIsoband=$)&&s.handleDrawWeather4Json()}),onToggleWindParticeVersion:e[4]||(e[4]=$=>r.toggleWindParticeVersion=Math.random()),onToggleCurrentParticeVersion:e[5]||(e[5]=$=>r.toggleCurrentParticeVersion=Math.random()),onCoordinate:e[6]||(e[6]=$=>r.showCoord=$),onMeasure:e[7]||(e[7]=$=>r.showMeasure=$),onPoint:e[8]||(e[8]=$=>r.showPoint=$),on3d:s.handle3dToggle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","toggle-version","map-projection","show-wind-feather","show-wind-particle","show-current-isoband","show-current-particle","token","gateway","forecast-model","onWeather","onOther","on3d","onHandleToggleVersion"]),t.createVNode(l,t.mergeProps({map:a.map,token:a.token,enabled:(Y=r.otherLayers)==null?void 0:Y.enc,"toggle-version":a.toggleVersion},i.$attrs,{onEnc:e[9]||(e[9]=$=>r.enc=$)}),null,16,["map","token","enabled","toggle-version"]),t.createVNode(h,t.mergeProps({map:a.map,token:a.token,"weather-layers":r.weatherLayers,enabled:(se=r.otherLayers)==null?void 0:se.world12nm},i.$attrs),null,16,["map","token","weather-layers","enabled"]),t.createVNode(d,t.mergeProps({map:a.map,token:a.token,"weather-layers":r.weatherLayers,enabled:(te=r.otherLayers)==null?void 0:te.worldMarine},i.$attrs),null,16,["map","token","weather-layers","enabled"]),t.createVNode(c,t.mergeProps({map:a.map,token:a.token,"weather-layers":r.weatherLayers,enabled:(ne=r.otherLayers)==null?void 0:ne.chinaRoute},i.$attrs),null,16,["map","token","weather-layers","enabled"]),t.createVNode(m,t.mergeProps({map:a.map,"sig-wave":(ge=r.weatherLayers)==null?void 0:ge["sig-wave-height"],"before-layer":a.beforeLayer,"active-weather-layers":r.activeWeatherLayers},i.$attrs),null,16,["map","sig-wave","before-layer","active-weather-layers"]),t.createVNode(A,t.mergeProps({map:a.map,swell:(de=r.weatherLayers)==null?void 0:de.swell,"before-layer":a.beforeLayer,"active-weather-layers":r.activeWeatherLayers},i.$attrs),null,16,["map","swell","before-layer","active-weather-layers"]),t.createVNode(C,t.mergeProps({map:a.map,prmsl:(ye=r.weatherLayers)==null?void 0:ye.prmsl,"before-layer":a.beforeLayer,"active-weather-layers":r.activeWeatherLayers},i.$attrs),null,16,["map","prmsl","before-layer","active-weather-layers"]),t.createVNode(B,t.mergeProps({viewport:r.viewport,factor:(x=r.weatherLayers)==null?void 0:x["ice-edge"],"toggle-version":a.toggleVersion,"before-layer":a.beforeLayer},i.$attrs),null,16,["viewport","factor","toggle-version","before-layer"]),t.createVNode(y,t.mergeProps({viewport:r.viewport,factor:(we=r.weatherLayers)==null?void 0:we["ice-cover"],"toggle-version":a.toggleVersion,"before-layer":a.beforeLayer},i.$attrs),null,16,["viewport","factor","toggle-version","before-layer"]),t.createVNode(E,t.mergeProps({viewport:r.viewport,factor:(me=r.weatherLayers)==null?void 0:me["ice-thickness"],"toggle-version":a.toggleVersion,"before-layer":a.beforeLayer},i.$attrs),null,16,["viewport","factor","toggle-version","before-layer"]),t.createVNode(v,t.mergeProps({map:a.map,date:a.ts,tropicals:(be=r.weatherLayers)==null?void 0:be.tropicals,"before-layer":a.beforeLayer},i.$attrs),null,16,["map","date","tropicals","before-layer"]),t.createVNode(u,t.mergeProps({map:a.map,"map-projection":r.mapProjection,current:(fe=r.weatherLayers)==null?void 0:fe.current,"before-layer":a.beforeLayer,"show-current-isoband":r.showCurrentIsoband,"show-current-particle":r.showCurrentParticle,"toggle-partice-version":r.toggleCurrentParticeVersion,"margin-bottom":r.activeWindLayer?r.showRampColor?"84px":"56px":r.showRampColor?"56px":"30px","toggle-version":a.toggleVersion,"weather-layers":r.weatherLayers},i.$attrs,{onParticle:s.handleParticle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","map-projection","current","before-layer","show-current-isoband","show-current-particle","toggle-partice-version","margin-bottom","toggle-version","weather-layers","onParticle","onHandleToggleVersion"]),t.createVNode(f,t.mergeProps({viewport:r.viewport,factor:(Le=r.weatherLayers)==null?void 0:Le["current-particle"],"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(p,t.mergeProps({ref:"windBarb",map:a.map,"map-projection":r.mapProjection,wind:(Ae=r.weatherLayers)==null?void 0:Ae.wind,current:(X=r.weatherLayers)==null?void 0:X.current,"before-layer":a.beforeLayer,"margin-bottom":r.showRampColor?"56px":"30px","show-wind-feather":r.showWindFeather,"show-wind-particle":r.showWindParticle,"toggle-partice-version":r.toggleWindParticeVersion},i.$attrs,{"toggle-version":a.toggleVersion,"weather-layers":r.weatherLayers,onParticle:s.handleParticle}),null,16,["map","map-projection","wind","current","before-layer","margin-bottom","show-wind-feather","show-wind-particle","toggle-partice-version","toggle-version","weather-layers","onParticle"]),t.createVNode(b,t.mergeProps({viewport:r.viewport,factor:(U=r.weatherLayers)==null?void 0:U["wind-particle"],"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(g,t.mergeProps({viewport:r.viewport,factor:(I=r.weatherLayers)==null?void 0:I.precip3h,"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(w,t.mergeProps({viewport:r.viewport,factor:(pe=r.weatherLayers)==null?void 0:pe.visibility,"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(k,t.mergeProps({viewport:r.viewport,factor:(R=r.weatherLayers)==null?void 0:R["water-temp"],"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(_,t.mergeProps({viewport:r.viewport,factor:(K=r.weatherLayers)==null?void 0:K.temp,"before-layer":a.beforeLayer,"toggle-version":a.toggleVersion},i.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),t.createVNode(S,t.mergeProps({map:a.map,zone:(xe=r.otherLayers)==null?void 0:xe["war-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(M,t.mergeProps({map:a.map,area:(N=r.otherLayers)==null?void 0:N["gmdss-areas"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","area","before-layer"]),t.createVNode(Q,t.mergeProps({map:a.map,zone:(le=r.otherLayers)==null?void 0:le["eca-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(V,t.mergeProps({map:a.map,zone:(Ce=r.otherLayers)==null?void 0:Ce["alert-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(H,t.mergeProps({map:a.map,port:(Ee=r.otherLayers)==null?void 0:Ee.ports,"before-layer":a.beforeLayer,"forecast-model":a.forecastModel},i.$attrs),null,16,["map","port","before-layer","forecast-model"]),t.createVNode(ae,t.mergeProps({map:a.map,line:(Be=r.otherLayers)==null?void 0:Be["load-lines"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","line","before-layer"]),t.createVNode(q,t.mergeProps({map:a.map,zone:(D=r.otherLayers)==null?void 0:D["time-zones"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","zone","before-layer"]),t.createVNode(ie,t.mergeProps({map:a.map,area:(T=r.otherLayers)==null?void 0:T["voluntary-reporting-area"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","area","before-layer"]),t.createVNode(ce,t.mergeProps({map:a.map,area:(Ne=r.otherLayers)==null?void 0:Ne["special-area"],"before-layer":a.beforeLayer},i.$attrs),null,16,["map","area","before-layer"]),t.createVNode(re,t.mergeProps({map:a.map,area:(ze=r.otherLayers)==null?void 0:ze["day-night"]},i.$attrs),null,16,["map","area"]),t.createVNode(he,t.mergeProps({map:a.map,show:r.showCoord,"toggle-version":a.toggleVersion},i.$attrs),null,16,["map","show","toggle-version"]),t.createVNode(oe,t.mergeProps({map:a.map,show:r.showMeasure},i.$attrs),null,16,["map","show"]),t.createVNode(F,t.mergeProps({ref:"idmPoint",map:a.map,show:r.showPoint,meteo:r.meteo,ts:a.ts,token:a.token,gateway:r.gateway,"forecast-model":a.forecastModel},i.$attrs),null,16,["map","show","meteo","ts","token","gateway","forecast-model"])],512)):t.createCommentVNode("",!0)}const Oe=O(Co,[["render",xo]]),Eo={install(i){i.component("MapboxGL",Oe),i.component("TropicalGL",Qe),i.component("LatLngGL",He)}};G.LatLngGL=He,G.MapboxGL=Oe,G.MapboxGLPlugin=Eo,G.MapboxHelper=Ve,G.ParticleSchema=ue,G.TropicalGL=Qe,G.Viewport=Te,G.WebGL=ke,G.WebGLSchema=Z,Object.defineProperty(G,Symbol.toStringTag,{value:"Module"})});