@idmwx/idmui-gl3 6.4.9 → 6.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -72,7 +72,7 @@ const Y = (a, e) => {
72
72
  autoActive: !0,
73
73
  layers: {
74
74
  weather: [
75
- ...$e.WEATHER_LAYERS.filter((a) => !["swell-height", "swell-direction", "current-direction", "current-speed"].includes(a.key))
75
+ ...$e.WEATHER_LAYERS.filter((a) => a.enabled && !["swell-height", "swell-direction", "current-direction", "current-speed"].includes(a.key))
76
76
  ],
77
77
  other: [...$e.OTHER_LAYERS.filter((a) => a.enabled)]
78
78
  },
@@ -3720,8 +3720,8 @@ function ba(a, e, t, r, i, s) {
3720
3720
  var n;
3721
3721
  return (n = t.factor) != null && n.active ? (u(), g("div", va, [
3722
3722
  o("div", {
3723
- class: "legend-bars sig-wave",
3724
- style: ce({ right: i.right + "px" })
3723
+ class: "legend-bars flex-center",
3724
+ style: ce([{ position: "absolute" }, { right: i.right + "px", bottom: t.bottom }])
3725
3725
  }, e[0] || (e[0] = [
3726
3726
  o("span", null, "m", -1),
3727
3727
  o("span", null, "0.5", -1),
@@ -3733,7 +3733,7 @@ function ba(a, e, t, r, i, s) {
3733
3733
  ]), 4)
3734
3734
  ])) : q("", !0);
3735
3735
  }
3736
- const La = /* @__PURE__ */ Y(wa, [["render", ba], ["__scopeId", "data-v-7448b0f9"]]), Ca = {
3736
+ const La = /* @__PURE__ */ Y(wa, [["render", ba], ["__scopeId", "data-v-52aea06f"]]), Ca = {
3737
3737
  name: "IdmSigWaveHeight",
3738
3738
  props: {
3739
3739
  map: {
@@ -1,4 +1,4 @@
1
- (function(U,ee){typeof exports=="object"&&typeof module<"u"?ee(exports,require("@idm-plugin/tag"),require("moment"),require("axios"),require("vue"),require("@turf/turf"),require("@mapbox/sphericalmercator"),require("mapbox-gl"),require("@idm-plugin/geo"),require("@idm-plugin/meteo"),require("moment-timezone")):typeof define=="function"&&define.amd?define(["exports","@idm-plugin/tag","moment","axios","vue","@turf/turf","@mapbox/sphericalmercator","mapbox-gl","@idm-plugin/geo","@idm-plugin/meteo","moment-timezone"],ee):(U=typeof globalThis<"u"?globalThis:U||self,ee(U["idm-gl"]={},U["@idm-plugin/tag"],U.moment,U.axios,U.Vue,U["@turf/turf"],U["@mapbox/sphericalmercator"],U["mapbox-gl"],U["@idm-plugin/geo"],U["@idm-plugin/meteo"],U["moment-timezone"]))})(this,function(U,ee,j,xe,t,qe,Je,Ie,W,De,Me){"use strict";var Do=Object.defineProperty;var No=(U,ee,j)=>ee in U?Do(U,ee,{enumerable:!0,configurable:!0,writable:!0,value:j}):U[ee]=j;var Z=(U,ee,j)=>(No(U,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),zo="",Po="",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 xe.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))),i.key==="sig-wave-height"&&(this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.key!=="sig-wave")),i.key==="sig-wave"&&(this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.key!=="sig-wave-height")),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:b=>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 b,C,B,u,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=(b=c==null?void 0:c.update)==null?void 0:b.default)==null?void 0:C.meta)!=null&&B.initialisationTime?(t.openBlock(),t.createElementBlock("div",St,"Update: "+t.toDisplayString(s.computeDateZ((v=(E=(u=c==null?void 0:c.update)==null?void 0:u.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]]),Mo="",Vt={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 Ht(i,e,a,o,r,s){return null}const Ft=O(Vt,[["render",Ht]]);class Qe{constructor(e){Z(this,"map");Z(this,"mercator");Z(this,"rampColorLayer");Z(this,"rampColorSource");Z(this,"particleLayer");Z(this,"particleSource");Z(this,"rampColorCanvas");Z(this,"particleCanvas");Z(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,b]=this.mercator.px([l,r[1]],a),C=Math.round(this.mercator.size*Math.pow(2,a)*(n+h));return[m,b,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 Ee{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(),b=e.map.getZoom()+1,C=e.getWorldCopy(m,b);for(const B of C){const u=(B[0]-m[0])*e.ratio,E=(B[1]-m[3])*e.ratio,v=B[2]*e.ratio,[g,A,p,w]=[u,v+u,E,v+E],y=new Float32Array([g,p,A,p,g,w,g,w,A,p,A,w]);a.bindBuffer(a.ARRAY_BUFFER,n),a.bufferData(a.ARRAY_BUFFER,y,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 q{}Z(q,"vertexSchema",`
1
+ (function(U,ee){typeof exports=="object"&&typeof module<"u"?ee(exports,require("@idm-plugin/tag"),require("moment"),require("axios"),require("vue"),require("@turf/turf"),require("@mapbox/sphericalmercator"),require("mapbox-gl"),require("@idm-plugin/geo"),require("@idm-plugin/meteo"),require("moment-timezone")):typeof define=="function"&&define.amd?define(["exports","@idm-plugin/tag","moment","axios","vue","@turf/turf","@mapbox/sphericalmercator","mapbox-gl","@idm-plugin/geo","@idm-plugin/meteo","moment-timezone"],ee):(U=typeof globalThis<"u"?globalThis:U||self,ee(U["idm-gl"]={},U["@idm-plugin/tag"],U.moment,U.axios,U.Vue,U["@turf/turf"],U["@mapbox/sphericalmercator"],U["mapbox-gl"],U["@idm-plugin/geo"],U["@idm-plugin/meteo"],U["moment-timezone"]))})(this,function(U,ee,j,xe,t,qe,Je,Ie,W,De,Me){"use strict";var Do=Object.defineProperty;var No=(U,ee,j)=>ee in U?Do(U,ee,{enumerable:!0,configurable:!0,writable:!0,value:j}):U[ee]=j;var Z=(U,ee,j)=>(No(U,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),zo="",Po="",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=>i.enabled&&!["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 xe.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))),i.key==="sig-wave-height"&&(this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.key!=="sig-wave")),i.key==="sig-wave"&&(this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.key!=="sig-wave-height")),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:b=>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 b,C,B,u,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=(b=c==null?void 0:c.update)==null?void 0:b.default)==null?void 0:C.meta)!=null&&B.initialisationTime?(t.openBlock(),t.createElementBlock("div",St,"Update: "+t.toDisplayString(s.computeDateZ((v=(E=(u=c==null?void 0:c.update)==null?void 0:u.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]]),Mo="",Vt={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 Ht(i,e,a,o,r,s){return null}const Ft=O(Vt,[["render",Ht]]);class Qe{constructor(e){Z(this,"map");Z(this,"mercator");Z(this,"rampColorLayer");Z(this,"rampColorSource");Z(this,"particleLayer");Z(this,"particleSource");Z(this,"rampColorCanvas");Z(this,"particleCanvas");Z(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,b]=this.mercator.px([l,r[1]],a),C=Math.round(this.mercator.size*Math.pow(2,a)*(n+h));return[m,b,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 Ee{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(),b=e.map.getZoom()+1,C=e.getWorldCopy(m,b);for(const B of C){const u=(B[0]-m[0])*e.ratio,E=(B[1]-m[3])*e.ratio,v=B[2]*e.ratio,[g,A,p,w]=[u,v+u,E,v+E],y=new Float32Array([g,p,A,p,g,w,g,w,A,p,A,w]);a.bindBuffer(a.ARRAY_BUFFER,n),a.bufferData(a.ARRAY_BUFFER,y,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 q{}Z(q,"vertexSchema",`
2
2
  //canvas 坐标系上的坐标 (x, y)
3
3
  attribute vec2 a_position; //像素坐标
4
4
  attribute vec2 a_texCoord; //纹理坐标
@@ -187,7 +187,7 @@
187
187
  gl_FragColor = vec4(
188
188
  fract(pos * 255.0),
189
189
  floor(pos * 255.0) / 255.0);
190
- }`);class Fe{constructor(e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg"){Z(this,"token");Z(this,"mapboxCustomer");Z(this,"i4");Z(this,"hi");Z(this,"td");Z(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 So="",Ot={name:"IdmWindParticle",props:{factor:{type:Object},viewport:{type:Qe},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 Ee,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,q.vertexSchema,q.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,ye.vertexSchema,ye.fragmentSchema,ye.quadVertSchema,ye.screenFragmentSchema,ye.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"]]),To="",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]]),Qo="",Kt={name:"IdmCurrentParticle",props:{factor:{type:Object},viewport:{type:Qe},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 Ee,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,q.vertexSchema,q.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,ye.vertexSchema,ye.fragmentSchema,ye.quadVertSchema,ye.screenFragmentSchema,ye.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"]]),Vo="",Zt={name:"IdmSigWave",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 Ee,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},immediate:!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.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[sig-wave] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,q.vertexSchema,q.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)}}},$t={key:0};function ea(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",$t,[t.createElementVNode("div",{class:"legend-bars sig-wave",style:t.normalizeStyle({right:r.right+"px"})},e[0]||(e[0]=[t.createElementVNode("span",null,"m",-1),t.createElementVNode("span",null,"0.5",-1),t.createElementVNode("span",null,"1",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"6",-1),t.createElementVNode("span",null,"9",-1)]),4)])):t.createCommentVNode("",!0)}const ta=O(Zt,[["render",ea],["__scopeId","data-v-7448b0f9"]]),aa={name:"IdmSigWaveHeight",props:{map:{type:Object},sigWaveHeight:{type:Object},beforeLayer:{type:String},activeWeatherLayers:{type:Array}},data(){return{source:"sig-wave-height-source",heightLayer:"sig-wave-height-layer",heightLabelLayer:"sig-wave-height-label-layer",empty:z.featureCollection([])}},watch:{"sigWaveHeight.version":{handler(){var i;(i=this.sigWaveHeight)!=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.sigWaveHeight){const a=new Date().valueOf();let o=0,r=0,s=this.empty;this.sigWaveHeight.active&&(s=this.sigWaveHeight.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 ia(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const ra=O(aa,[["render",ia]]),oa={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 sa(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const na=O(oa,[["render",sa]]),la={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},`
190
+ }`);class Fe{constructor(e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg"){Z(this,"token");Z(this,"mapboxCustomer");Z(this,"i4");Z(this,"hi");Z(this,"td");Z(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 So="",Ot={name:"IdmWindParticle",props:{factor:{type:Object},viewport:{type:Qe},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 Ee,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,q.vertexSchema,q.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,ye.vertexSchema,ye.fragmentSchema,ye.quadVertSchema,ye.screenFragmentSchema,ye.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"]]),To="",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]]),Qo="",Kt={name:"IdmCurrentParticle",props:{factor:{type:Object},viewport:{type:Qe},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 Ee,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,q.vertexSchema,q.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,ye.vertexSchema,ye.fragmentSchema,ye.quadVertSchema,ye.screenFragmentSchema,ye.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"]]),Vo="",Zt={name:"IdmSigWave",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 Ee,etime:void 0,right:10}},watch:{"factor.version":{handler(){var i;(i=this.factor)!=null&&i.active?this.handleRender():this.handleClear()},immediate:!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.factor){const i=new Date().valueOf();let e=0,a=0;this.handleDraw(),a=new Date().valueOf()-(i+e),console.log("[sig-wave] add elapsed: ",a,", total: ",e+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const i=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,i);const{program:e,aPositionBuffer:a}=this.webgl.bind(this.context,q.vertexSchema,q.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)}}},$t={key:0};function ea(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",$t,[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.5",-1),t.createElementVNode("span",null,"1",-1),t.createElementVNode("span",null,"1.5",-1),t.createElementVNode("span",null,"2",-1),t.createElementVNode("span",null,"6",-1),t.createElementVNode("span",null,"9",-1)]),4)])):t.createCommentVNode("",!0)}const ta=O(Zt,[["render",ea],["__scopeId","data-v-52aea06f"]]),aa={name:"IdmSigWaveHeight",props:{map:{type:Object},sigWaveHeight:{type:Object},beforeLayer:{type:String},activeWeatherLayers:{type:Array}},data(){return{source:"sig-wave-height-source",heightLayer:"sig-wave-height-layer",heightLabelLayer:"sig-wave-height-label-layer",empty:z.featureCollection([])}},watch:{"sigWaveHeight.version":{handler(){var i;(i=this.sigWaveHeight)!=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.sigWaveHeight){const a=new Date().valueOf();let o=0,r=0,s=this.empty;this.sigWaveHeight.active&&(s=this.sigWaveHeight.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 ia(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const ra=O(aa,[["render",ia]]),oa={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 sa(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const na=O(oa,[["render",sa]]),la={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
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 ca(i,e,a,o,r,s){return t.openBlock(),t.createElementBlock("div")}const ha=O(la,[["render",ca]]),Ho="",da={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 Ee,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,q.vertexSchema,q.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,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 ga=O(da,[["render",pa],["__scopeId","data-v-14ae1a6c"]]),Fo="",ya={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 Ee,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,q.vertexSchema,q.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,"%",-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 Aa=O(ya,[["render",fa],["__scopeId","data-v-f21edb81"]]),Oo="",wa={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 Ee,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,q.vertexSchema,q.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)}}},ba={key:0};function La(i,e,a,o,r,s){var n;return(n=a.factor)!=null&&n.active?(t.openBlock(),t.createElementBlock("div",ba,[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 Ca=O(wa,[["render",La],["__scopeId","data-v-a4c3d2ed"]]),Se=[{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"}],Te=[{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 Oe{static standardWeatherModels(){return Se.filter(e=>!e.disabled&&e.alias)}static standardMarineModels(){return Te.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=Se.find(c=>{var m,b,C;return((m=c.models)==null?void 0:m.includes(l))||((b=c.alias)==null?void 0:b.toLowerCase())===l||((C=c.name)==null?void 0:C.toLowerCase())===l}),d=Te.find(c=>{var m,b,C;return((m=c.models)==null?void 0:m.includes(l))||((b=c.alias)==null?void 0:b.toLowerCase())===l||((C=c.name)==null?void 0:C.toLowerCase())===l});h=h||Se.find(c=>{var m,b;return((m=c.alias)==null?void 0:m.toLowerCase())===((b=d==null?void 0:d.alias)==null?void 0:b.toLowerCase())}),d=d||Te.find(c=>{var m,b;return((m=c.alias)==null?void 0:m.toLowerCase())===((b=h==null?void 0:h.alias)==null?void 0:b.toLowerCase())}),h=h||Se[0],d=d||Te[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=Se.filter(s=>s.alias===e),o=Te.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,b,C,B,u,E,v,g,A,p,w,y,f,I,_,S,M,Q,F,V,ae,J,ie,he,re,de,oe,se,H,K,$,te,le,me,ge,x,Ae,pe,we,fe,Le,ue;const G=typeof a=="string"?j(a):a,Y=e==null?void 0:e.weather,N=e==null?void 0:e.marine,be=j((r=(o=Y==null?void 0:Y[0])==null?void 0:o.hourly)==null?void 0:r.date).utc(),R=be.clone().add((l=(n=(s=Y==null?void 0:Y[0])==null?void 0:s.hourly)==null?void 0:n.time)==null?void 0:l.at(0),"h"),X=be.clone().add((c=(d=(h=Y==null?void 0:Y[0])==null?void 0:h.hourly)==null?void 0:d.time)==null?void 0:c.at(-1),"h"),Be=[];if(G.isBetween(R,X,"millisecond","[]")){const D=G.utc().diff(R,"h",!1);let ce,ve;if(Y){let _e=0,ke=0;for(const k of Y){const T=k==null?void 0:k.hourly;for(let Ce=D-(D-1)%3;Ce<=D;Ce++)_e+=(m=T==null?void 0:T.precipitation)==null?void 0:m.at(Ce);for(let Ce=D-(D-1)%6;Ce<=D;Ce++)ke+=(b=T==null?void 0:T.precipitation)==null?void 0:b.at(Ce);ce={temp:(C=T==null?void 0:T.temperature_2m)==null?void 0:C.at(D),apparentTemp:(B=T==null?void 0:T.apparent_temperature)==null?void 0:B.at(D),rh:(u=T==null?void 0:T.relative_humidity_2m)==null?void 0:u.at(D),dp:(E=T==null?void 0:T.dew_point_2m)==null?void 0:E.at(D),precip:{probability:(v=T==null?void 0:T.precipitation_probability)==null?void 0:v.at(D),sum:(g=T==null?void 0:T.precipitation)==null?void 0:g.at(D),sum3Hours:Math.round(_e*100)/100,sum6Hours:Math.round(ke*100)/100},pmsl:(A=T==null?void 0:T.pressure_msl)==null?void 0:A.at(D),psurf:(p=T==null?void 0:T.surface_pressure)==null?void 0:p.at(D),code:(w=T==null?void 0:T.weather_code)==null?void 0:w.at(D),visibility:this.m2nm((y=T==null?void 0:T.visibility)==null?void 0:y.at(D)),wind:{speed:(f=T==null?void 0:T.wind_speed_10m)==null?void 0:f.at(D),kts:(I=T==null?void 0:T.wind_speed_10m)==null?void 0:I.at(D),degree:(_=T==null?void 0:T.wind_direction_10m)==null?void 0:_.at(D),bearing:((S=T==null?void 0:T.wind_direction_10m)==null?void 0:S.at(D))!==null?(((M=T==null?void 0:T.wind_direction_10m)==null?void 0:M.at(D))+180)%360:null,gusts:(Q=T==null?void 0:T.wind_gusts_10m)==null?void 0:Q.at(D)},isDay:(F=T==null?void 0:T.is_day)==null?void 0:F.at(D)};const{name:Ne,url:ze,bg:Pe}=this.parseWeatherCode(ce.code,ce.isDay);ce.name=Ne,ce.url=ze,ce.bg=Pe,ce.wind.scale=this.beaufort(this.kts2ms(ce.wind.kts)),ce.wind.direction=this.degree2Direction(ce.wind.degree),Be.push({utc:R.add(D,"h").format(),model:k.model,weather:{...ce}})}}if(N){let _e=0;for(const ke of N){const k=ke==null?void 0:ke.hourly;ve={wave:{sig:{height:(V=k==null?void 0:k.wave_height)==null?void 0:V.at(D),degree:(ae=k==null?void 0:k.wave_direction)==null?void 0:ae.at(D),bearing:((J=k==null?void 0:k.wave_direction)==null?void 0:J.at(D))!==null?(((ie=k==null?void 0:k.wave_direction)==null?void 0:ie.at(D))+180)%360:null,period:(he=k==null?void 0:k.wave_period)==null?void 0:he.at(D)},swell:{height:(re=k==null?void 0:k.swell_wave_height)==null?void 0:re.at(D),degree:(de=k==null?void 0:k.swell_wave_direction)==null?void 0:de.at(D),bearing:((oe=k==null?void 0:k.swell_wave_direction)==null?void 0:oe.at(D))!==null?(((se=k==null?void 0:k.swell_wave_direction)==null?void 0:se.at(D))+180)%360:null,period:(H=k==null?void 0:k.swell_wave_period)==null?void 0:H.at(D),peakPeriod:(K=k==null?void 0:k.swell_wave_peak_period)==null?void 0:K.at(D)},wd:{height:($=k==null?void 0:k.wind_wave_height)==null?void 0:$.at(D),degree:(te=k==null?void 0:k.wind_wave_direction)==null?void 0:te.at(D),bearing:((le=k==null?void 0:k.wind_wave_direction)==null?void 0:le.at(D))!==null?(((me=k==null?void 0:k.wind_wave_direction)==null?void 0:me.at(D))+180)%360:null,period:(ge=k==null?void 0:k.wind_wave_period)==null?void 0:ge.at(D),peakPeriod:(x=k==null?void 0:k.wind_wave_peak_period)==null?void 0:x.at(D)}},current:{speed:(Ae=k==null?void 0:k.ocean_current_velocity)==null?void 0:Ae.at(D),kts:(pe=k==null?void 0:k.ocean_current_velocity)==null?void 0:pe.at(D),degree:(we=k==null?void 0:k.ocean_current_direction)==null?void 0:we.at(D),bearing:((fe=k==null?void 0:k.ocean_current_direction)==null?void 0:fe.at(D))??null},sst:(Le=k==null?void 0:k.sea_surface_temperature)==null?void 0:Le.at(D),height:(ue=k==null?void 0:k.sea_level_height_msl)==null?void 0:ue.at(D)},ve.wave=this.parseWave(ve.wave,ce==null?void 0:ce.wind),ve.current.direction=this.degree2Direction(ve.current.degree),Object.assign(Be[_e],ve),_e++}}}return Be}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,b,C,B,u,E,v,g,A,p,w,y,f,I,_,S,M,Q,F,V,ae,J,ie,he,re,de,oe,se,H,K,$,te,le,me,ge,x;const Ae=typeof a=="string"?j(a):a,pe=e==null?void 0:e.weather,we=e==null?void 0:e.marine,fe=j((s=(r=(o=pe==null?void 0:pe[0])==null?void 0:o.daily)==null?void 0:r.time)==null?void 0:s.at(0)),Le=j((h=(l=(n=pe==null?void 0:pe[0])==null?void 0:n.daily)==null?void 0:l.time)==null?void 0:h.at(-1)),ue=[];if(Ae.isBetween(fe,Le,"millisecond","[]")){let G,Y;const N=Ae.diff(fe,"d",!1);if(pe)for(const be of pe){const R=be.daily;G={code:(d=R.weather_code)==null?void 0:d.at(N),temp:{max:(c=R.temperature_2m_max)==null?void 0:c.at(N),min:(m=R.temperature_2m_min)==null?void 0:m.at(N),mean:(b=R.temperature_2m_mean)==null?void 0:b.at(N)},apparentTemp:{max:(C=R.apparent_temperature_max)==null?void 0:C.at(N),min:(B=R.apparent_temperature_min)==null?void 0:B.at(N)},precip:{sum:(u=R.precipitation_sum)==null?void 0:u.at(N),rainSum:(E=R.rain_sum)==null?void 0:E.at(N),snowfallSum:(v=R.snowfall_sum)==null?void 0:v.at(N),showersSum:(g=R.showers_sum)==null?void 0:g.at(N),hours:(A=R.precipitation_hours)==null?void 0:A.at(N),probability:(p=R.precipitation_probability_max)==null?void 0:p.at(N)},rh:{max:(w=R.relative_humidity_2m_max)==null?void 0:w.at(N),min:(y=R.relative_humidity_2m_min)==null?void 0:y.at(N),mean:(f=R.relative_humidity_2m_mean)==null?void 0:f.at(N)},wind:{speed:(I=R.wind_speed_10m_max)==null?void 0:I.at(N),kts:(_=R.wind_speed_10m_max)==null?void 0:_.at(N),degree:(S=R.wind_direction_10m_dominant)==null?void 0:S.at(N),gusts:(M=R.wind_gusts_10m_max)==null?void 0:M.at(N),bearing:((Q=R.wind_direction_10m_dominant)==null?void 0:Q.at(N))!==null?(((F=R.wind_direction_10m_dominant)==null?void 0:F.at(N))+180)%360:null}};const{name:X,url:Be,bg:D}=this.parseWeatherCode(G.code,!0);G.name=X,G.url=Be,G.bg=D,G.wind.scale=this.beaufort(this.kts2ms(G.wind.kts)),G.wind.direction=this.degree2Direction(G.wind.degree),ue.push({utc:fe.add(N,"d").utc().format(),model:be.model,weather:{...G}})}if(we){let be=0;for(const R of we){const X=R.daily;Y={wave:{sig:{height:(V=X.wave_height_max)==null?void 0:V.at(N),degree:(ae=X.wave_direction_dominant)==null?void 0:ae.at(N),period:(J=X.wave_period_max)==null?void 0:J.at(N),bearing:((ie=X.wave_direction_dominant)==null?void 0:ie.at(N))!==null?(((he=X.wave_direction_dominant)==null?void 0:he.at(N))+180)%360:null},swell:{height:(re=X.swell_wave_height_max)==null?void 0:re.at(N),degree:(de=X.swell_wave_direction_dominant)==null?void 0:de.at(N),period:(oe=X.swell_wave_period_max)==null?void 0:oe.at(N),peakPeriod:(se=X.swell_wave_peak_period_max)==null?void 0:se.at(N),bearing:((H=X.swell_wave_direction_dominant)==null?void 0:H.at(N))!==null?((K=X.swell_wave_direction_dominant)==null?void 0:K.at(N))%360:null},wd:{height:($=X.wind_wave_height_max)==null?void 0:$.at(N),degree:(te=X.wind_wave_direction_dominant)==null?void 0:te.at(N),period:(le=X.wind_wave_period_max)==null?void 0:le.at(N),peakPeriod:(me=X.wind_wave_peak_period_max)==null?void 0:me.at(N),bearing:((ge=X.wind_wave_direction_dominant)==null?void 0:ge.at(N))!==null?(((x=X.wind_wave_direction_dominant)==null?void 0:x.at(N))+180)%360:null}}},Y.wave=this.parseWave(Y.wave,G==null?void 0:G.wind),Object.assign(ue[be],Y),be++}}}return ue}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 Ro="",va={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","tropicalCenterPoints","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=Oe.kts2ms(i);return Oe.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,b;if(!this.map)setTimeout(()=>{this.handleRender()},500);else{if(this.tropicals){const B=new Date().valueOf();let u=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+u),console.log("[tropicals] update elapsed: ",E,", total: ",u+=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+u),console.log("[tropical] add elapsed: ",E,", total: ",u+=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+u),console.log("[tropical] update elapsed: ",E,", total: ",u+=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){const v=(c=this.tropicals.data.features)==null?void 0:c.filter(w=>w.geometry.type==="Point"&&w.properties.type==="forecast");let g=0,A=0,p=(b=(m=this.findClosestToNumber(v,"hour",12))==null?void 0:m.properties)==null?void 0:b.hour;v.forEach((w,y)=>{var _,S,M,Q,F,V,ae,J,ie,he,re,de,oe,se,H,K,$,te,le,me,ge,x,Ae,pe,we,fe,Le;let f;const I=this.findClosestToNumber(v,"hour",p+g*24);if(I&&((_=I==null?void 0:I.properties)==null?void 0:_.hour)===((S=w.properties)==null?void 0:S.hour)&&(f=I),f){let ue=0,G="tropical-marker-box",Y="tropical-marker-line";G=((F=(Q=(M=f.properties)==null?void 0:M.wind)==null?void 0:Q.en)==null?void 0:F.toUpperCase())==="SUPER TY"?G+" supper":G+" normal",Y=((J=(ae=(V=f.properties)==null?void 0:V.wind)==null?void 0:ae.en)==null?void 0:J.toUpperCase())==="SUPER TY"?Y+" supper":Y+" normal",((he=(ie=f.properties)==null?void 0:ie.movement)==null?void 0:he.deg)>=0&&((de=(re=f.properties)==null?void 0:re.movement)==null?void 0:de.deg)<=60||((se=(oe=f.properties)==null?void 0:oe.movement)==null?void 0:se.deg)>=120&&((K=(H=f.properties)==null?void 0:H.movement)==null?void 0:K.deg)<=240||((te=($=f.properties)==null?void 0:$.movement)==null?void 0:te.deg)>=300&&((me=(le=f.properties)==null?void 0:le.movement)==null?void 0:me.deg)<=360?(ue=g%2===0?[84,0]:[-84,0],G=g%2===0?G+" right":G+" left",Y=g%2===0?Y+" vertical right":Y+" vertical left"):(ue=A%2===0?[60,-40]:[60,40],G=A%2===0?G+" top":G+" bottom",Y=A%2===0?Y+" align top":Y+" align bottom",A=A+1);const N=document.createElement("div");N.className=G,N.innerHTML=`
192
192
  <div style="">
193
193
  <span>${((ge=w.properties)==null?void 0:ge.format)||"-"}</span>
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";:root{--idm-white: rgba(255, 255, 255, 1);--idm-white-9: rgba(255, 255, 255, .9);--idm-white-8: rgba(255, 255, 255, .8);--idm-white-7: rgba(255, 255, 255, .7);--idm-white-6: rgba(255, 255, 255, .6);--idm-white-5: rgba(255, 255, 255, .5);--idm-white-4: rgba(255, 255, 255, .4);--idm-white-3: rgba(255, 255, 255, .3);--idm-white-2: rgba(255, 255, 255, .2);--idm-white-1: rgba(255, 255, 255, .1);--idm-black: rgba(0, 0, 0, 1);--idm-black-9: rgba(0, 0, 0, .9);--idm-black-8: rgba(0, 0, 0, .8);--idm-black-7: rgba(0, 0, 0, .7);--idm-black-6: rgba(0, 0, 0, .6);--idm-black-5: rgba(0, 0, 0, .5);--idm-black-4: rgba(0, 0, 0, .4);--idm-black-3: rgba(0, 0, 0, .3);--idm-black-2: rgba(0, 0, 0, .2);--idm-black-1: rgba(0, 0, 0, .1);--idm-gray-light: rgba(239, 239, 239, 1);--idm-gray-light2: rgba(239, 239, 249, .6);--idm-hover-color: rgba(64, 159, 255, .1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-highlight: #0033ff;--idm-primary-color-light: #6c8ad9;--idm-primary-color-light2: #a7c4ff;--idm-primary-color-dark: #053a7e;--idm-primary-color-dark2: #002e6b;--idm-primary-color-9: rgba(42, 87, 183, .9);--idm-primary-color-8: rgba(42, 87, 183, .8);--idm-primary-color-7: rgba(42, 87, 183, .7);--idm-primary-color-6: rgba(42, 87, 183, .6);--idm-primary-color-5: rgba(42, 87, 183, .5);--idm-primary-color-4: rgba(42, 87, 183, .4);--idm-primary-color-3: rgba(42, 87, 183, .3);--idm-primary-color-2: rgba(42, 87, 183, .2);--idm-primary-color-1: rgba(42, 87, 183, .1);--idm-success-color: #0ddd9f;--idm-success-color-light: #92f7d9;--idm-success-color-dark: #06a074;--idm-success-color-dark2: #06694c;--idm-warning-color: #ff9500;--idm-warning-color-light: #ffcc00;--idm-warning-color-dark: #c77402;--idm-danger-color: #f44336;--idm-danger-color-light: #fb796e;--idm-danger-color-dark: #ad251b;--idm-info-color: #6e6e6e;--idm-info-color-light: #969696;--idm-info-color-light2: #c0c0c0;--idm-info-color-light3: #e2e2e2;--idm-info-color-dark: #494949;--idm-dangerous: #f44336;--idm-severe: #ff9500;--idm-heavy: #ffff00;--idm-gray-light: rgba(239,239,239,.8);--idm-vessel-cargo-color: lightgreen;--idm-vessel-tanker-color: red;--idm-vessel-passenger-color: blue;--idm-vessel-other-color: lightgrey;--idm-perf-cii-a: var(--idm-success-color);--idm-perf-cii-b: var(--idm-success-color-light);--idm-perf-cii-c: var(--idm-warning-color);--idm-perf-cii-d: var(--idm-danger-color-light);--idm-perf-cii-e: var(--idm-danger-color);--idm-tropicals-td: #03f869;--idm-tropicals-ts: #f2f202;--idm-tropicals-sts: #ff9100;--idm-tropicals-ty: #f44336;--idm-tropicals-sty: #f903d0;--idm-tropicals-super-ty: #8702f9;--idm-tropicals-r7: #ff9100;--idm-tropicals-r10: #f44336;--idm-text-shadow: 0px 0px 4px rgba(0, 0, 0, 1);--idm-dashed-border: 1px dashed var(--idm-white-5);--idm-solid-border: 1px solid var(--idm-white-4);--idm-background-color: var(--idm-primary-color-9);--idm-background-color-dark: var(--idm-primary-color-dark);--idm-background-color-light: var(--idm-primary-color-light);--idm-background-color-light2: #f3f5f8;--idm-active-background-light: linear-gradient(130deg, rgba(142, 163, 255, .93) 20%, rgb(90 67 193 / 93%) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(41, 32, 165) 0%, rgba(44, 93, 184) 80%, rgba(32, 90, 165) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-blink-animation: blink .8s ease-out infinite alternate}:root[colorTheme=black]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .8) 80%, rgb(0, 0, 0, .8) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-right: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-left: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(117, 117, 117, .93) 30%, rgba(200, 200, 200, .93) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(253, 253, 253), 0 0 21px rgb(226, 226, 226), 0 0 30px rgba(185, 185, 185, .4), 0 0 12px rgba(67, 67, 67, .6), 0 0 22px rgba(27, 27, 27, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(0, 0, 0, .7);--idm-primary-color-light: #757575;--idm-primary-color-light2: #a5a5a5;--idm-primary-color-dark: rgba(0, 0, 0, .8);--idm-primary-color-dark2: rgba(0, 0, 0, 1);--idm-primary-color-9: rgba(0, 0, 0, .9);--idm-primary-color-7: rgba(0, 0, 0, .7);--idm-primary-color-5: rgba(0, 0, 0, .5);--idm-primary-color-3: rgba(0, 0, 0, .3);--idm-primary-color-1: rgba(0, 0, 0, .1)}:root[colorTheme=blue]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(41, 32, 165) 0%, rgba(44, 93, 184) 80%, rgba(32, 90, 165) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(142, 163, 255, .93) 20%, rgb(90 67 193 / 93%) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6c8ad9;--idm-primary-color-light2: #a7c4ff;--idm-primary-color-dark: #053a7e;--idm-primary-color-dark2: #002e6b;--idm-primary-color-9: rgba(42, 87, 183, .9);--idm-primary-color-8: rgba(42, 87, 183, .8);--idm-primary-color-7: rgba(42, 87, 183, .7);--idm-primary-color-6: rgba(42, 87, 183, .6);--idm-primary-color-5: rgba(42, 87, 183, .5);--idm-primary-color-4: rgba(42, 87, 183, .4);--idm-primary-color-3: rgba(42, 87, 183, .3);--idm-primary-color-2: rgba(42, 87, 183, .2);--idm-primary-color-1: rgba(42, 87, 183, .1)}:root[colorTheme=dark-blue]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(104, 104, 226, .93) 20%, rgba(22, 49, 182, .93) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6266e0;--idm-primary-color-light2: #89b0ff;--idm-primary-color-dark: #00224e;--idm-primary-color-dark2: #021a39;--idm-primary-color-9: rgba(19, 47, 108, .9);--idm-primary-color-7: rgba(19, 47, 108, .7);--idm-primary-color-5: rgba(19, 47, 108, .5);--idm-primary-color-3: rgba(19, 47, 108, .3);--idm-primary-color-1: rgba(19, 47, 108, .1)}@font-face{font-family:iconfont;src:url(https://iconfont.idmwx.com/iconfont.woff2) format("woff2"),url(https://iconfont.idmwx.com/iconfont.woff) format("woff"),url(https://iconfont.idmwx.com/iconfont.ttf) format("truetype"),url(https://iconfont.idmwx.com/iconfont.svg?#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-start{display:flex;align-items:center;justify-content:flex-start}.flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between,.flex-space{display:flex;align-items:center;justify-content:space-between}.flex-around{display:flex;align-items:center;justify-content:space-around}.flex-evenly{display:flex;align-items:center;justify-content:space-evenly}.flex-col-center-center{display:flex;flex-direction:column;justify-content:center;align-items:center}.flex-col-start-center{display:flex;flex-direction:column;justify-content:flex-start;align-items:center}.flex-col-start-start{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.flex-col-end-center{display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.flex-col-between-center{display:flex;flex-direction:column;justify-content:space-between;align-items:center}.flex-col-around-center{display:flex;flex-direction:column;justify-content:space-around;align-items:center}.flex-col-center-start{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.flex-col-center-end{display:flex;flex-direction:column;justify-content:center;align-items:flex-end}.flex{flex:1}.dropdown{position:relative;display:inline-block!important}.dropdown .dropdown-content{display:none;position:absolute;z-index:1}.dropdown:hover .dropdown-content{display:block}.loading{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--idm-black-5);z-index:1000;display:flex;justify-content:center;align-items:center;flex-direction:column}.loading i{font-size:30px;color:var(--idm-white);margin-bottom:16px;animation:rotate 2s linear infinite}.loading div{color:var(--idm-white);font-size:16px}@keyframes blink{0%{box-shadow:0 0 20px var(--idm-warning-color-dark) inset}to{box-shadow:0 0 20px var(--idm-success-color) inset}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.idm-gl3-layer .fade-enter-active,.idm-gl3-layer .fade-leave-active{transition:opacity .4s}.idm-gl3-layer .fade-enter,.idm-gl3-layer .fade-leave-to{opacity:0}.idm-gl3-layer .menu-bar-box{position:absolute;overflow-y:hidden;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;transition:all .4s ease-in-out;z-index:2;border-radius:5px;box-shadow:0 2px 12px #0003}.idm-gl3-layer .menu-bar-box .bar-item{position:relative;border-radius:5px;background:var(--idm-white);cursor:pointer}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon{padding:8px;display:flex}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon span{font-size:20px;font-weight:600;color:var(--idm-black-8)}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon.active{background:var(--idm-primary-color)}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon.active span{color:var(--idm-white)}.idm-gl3-layer .active-layers{position:absolute;max-width:170px;font-size:14px;padding:2px 5px;background:var(--idm-white);border-radius:5px;box-shadow:0 2px 12px #0003;transition:all .4s ease-in-out}.idm-gl3-layer .active-layers .layer{width:auto;padding:4px 10px}.idm-gl3-layer .active-layers .layer .name{font-size:14px}.idm-gl3-layer .available-layers{position:absolute;height:calc(100vh - 120px);box-sizing:border-box;transition:all .4s ease-in-out}.idm-gl3-layer .available-layers .header-box{font-size:16px;font-weight:600;padding:5px 10px 10px;color:var(--idm-black-8)}.idm-gl3-layer .available-layers .header-box .close-btn{font-size:20px;font-weight:400;color:var(--idm-black-2);cursor:pointer}.idm-gl3-layer .available-layers .header-box .close-btn:hover{color:var(--idm-primary-color)}.idm-gl3-layer .available-layers .list-box{height:inherit;width:200px;overflow-y:auto;color:var(--idm-black-8);background:var(--idm-white);display:flex;flex-direction:column;box-shadow:0 2px 12px #0003;z-index:1}.idm-gl3-layer .available-layers .list-box .layers-title{font-size:14px;font-weight:600;padding:5px 10px;color:var(--idm-black-8)}.idm-gl3-layer .available-layers .list-box .layers-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:0 10px;font-size:14px}.idm-gl3-layer .available-layers .list-box .layers-body .layer{width:100%}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio{margin:5px 0}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio{height:44px;color:var(--idm-black-8);display:flex;align-items:flex-start;justify-content:flex-start}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio .el-radio__inner{margin-top:3px}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio .radio-tip{font-size:12px;color:var(--idm-info-color)}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio.is-checked .el-radio__inner{background:var(--idm-primary-color);border-color:var(--idm-primary-color)}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio.is-checked .el-radio__label{color:var(--idm-primary-color)}.idm-gl3-layer .available-layers .list-box .layers-body .tip{margin-left:-5px;margin-bottom:2px;font-size:12px;color:var(--idm-info-color)}.idm-gl3-layer .available-layers .list-box .layers-body .tip .bookmark-icon{color:var(--idm-warning-color)}.idm-gl3-layer .layer{display:inline-flex;align-items:center;padding:4px 0;color:var(--idm-black-8);font-size:14px;cursor:pointer}.idm-gl3-layer .layer .checkbox{width:14px;height:14px;margin-right:10px;border:1px solid var(--idm-black-2);box-sizing:border-box}.idm-gl3-layer .layer .bookmark-icon{font-size:15px}.idm-gl3-layer .layer .bookmark-icon.active{display:inline-block;color:var(--idm-warning-color)}.idm-gl3-layer .layer .bookmark-icon.inactive{display:none}.idm-gl3-layer .layer .sub-layer-icon{margin-left:10px;font-size:16px}.idm-gl3-layer .layer .sub-layer-icon.active{color:var(--idm-primary-color)}.idm-gl3-layer .layer.active .checkbox{border:1px solid var(--idm-primary-color);background:var(--idm-primary-color)}.idm-gl3-layer .layer.active .checkbox:after{position:relative;content:"✔";color:var(--idm-white);font-size:10px;display:flex;align-items:center;justify-content:center}.idm-gl3-layer .layer.active .name{color:var(--idm-primary-color)}.idm-gl3-layer .layer.disabled{color:var(--idm-black-4);cursor:not-allowed}.idm-gl3-layer .layer.disabled .checkbox{cursor:not-allowed;border:1px solid var(--idm-black-2);opacity:.5}.idm-gl3-layer .layer:hover .bookmark-icon.inactive{display:inline-block}.idm-gl3-layer .switch{font-size:24px;height:19px;margin-right:10px;color:var(--idm-black-2);cursor:pointer}.idm-gl3-layer .switch .active{color:var(--idm-primary-color)}.idm-gl3-layer .card-bg{background:var(--idm-gray-light2);border-radius:3px;margin:8px}.idm-gl3-layer .card-bg:first-child{margin-top:0}.wind-tool-bars{transition:all .4s ease-in-out;padding:2px 5px;border-radius:4px;background:var(--idm-white);box-shadow:0 2px 12px #0003}.wind-tool-bars .item-bar{cursor:pointer;padding:4px 10px}.wind-tool-bars .item-bar.active .checkbox{border:var(--idm-primary-color);background:var(--idm-primary-color)}.wind-tool-bars .item-bar.active .checkbox:after{content:"✔";color:var(--idm-white);font-size:12px;display:flex;align-items:center;justify-content:center}.wind-tool-bars .item-bar.active span{font-size:12px;color:var(--idm-primary-color)}.wind-tool-bars .item-bar .checkbox{width:14px;height:14px;margin-right:10px;border:1px solid var(--idm-black-2)}.wind-tool-bars .item-bar span{font-size:12px;color:var(--idm-black-8)}.legend-bars[data-v-e5910f11]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(98,113,184),rgb(98,113,184),rgb(98,113,184),rgb(98,113,184),rgb(61,110,163),rgb(74,148,170),rgb(74,146,148),rgb(77,142,124),rgb(76,164,76),rgb(103,164,54),rgb(162,135,64),rgb(162,109,92),rgb(141,63,92),rgb(151,75,145),rgb(95,100,160),rgb(91,136,161),rgb(91,136,161));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-e5910f11]{font-size:12px;text-align:center;color:var(--idm-white-8);width:32px}.current-tool-bars{transition:all .4s ease-in-out;background:var(--idm-white);padding:2px 5px;border-radius:4px;box-shadow:0 2px 12px #0003}.current-tool-bars .item-bar{cursor:pointer;padding:4px 10px}.current-tool-bars .item-bar.active .checkbox{border:var(--idm-primary-color);background:var(--idm-primary-color)}.current-tool-bars .item-bar.active .checkbox:after{content:"✔";color:var(--idm-white);font-size:12px;display:flex;align-items:center;justify-content:center}.current-tool-bars .item-bar.active span{font-size:12px;color:var(--idm-primary-color)}.current-tool-bars .item-bar .checkbox{width:14px;height:14px;margin-right:10px;border:1px solid var(--idm-black-2)}.current-tool-bars .item-bar span{font-size:12px;color:var(--idm-black-8)}.legend-bars[data-v-c2962e63]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(84,170,230),rgb(84,170,230),rgb(84,170,230),rgb(84,170,230),rgb(64,127,115),rgb(58,164,58),rgb(191,182,67),rgb(197,154,68),rgb(160,70,94),rgb(138,84,166),rgb(82,113,165),rgb(84,142,152),rgb(150,181,184),rgb(195,194,194),rgb(195,194,194));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-c2962e63]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.legend-bars.sig-wave[data-v-7448b0f9]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(50,158,186),rgb(50,158,186),rgb(50,158,186),rgb(50,158,186),rgb(48,128,164),rgb(48,99,142),rgb(52,101,166),rgb(56,104,192),rgb(56,82,169),rgb(57,61,143),rgb(134,48,48),rgb(194,77,91),rgb(192,118,105),rgb(192,163,157),rgb(192,163,157))}.legend-bars[data-v-14ae1a6c]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(220,243,252),rgb(220,243,252),rgb(86,169,230),rgb(47,226,155),rgb(47,226,155),rgb(47,226,155),rgb(213,253,37),rgb(213,253,37),rgb(213,253,37),rgb(230,176,39),rgb(230,176,39),rgb(230,84,39),rgb(230,84,39));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-14ae1a6c]{font-size:12px;text-align:center;color:var(--idm-info-color);width:20px}.legend-bars[data-v-f21edb81]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(255,255,255),rgb(53,125,177),rgb(33,145,140),rgb(45,178,125),rgb(112,207,87),rgb(253,231,37));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-f21edb81]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-a4c3d2ed]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(4,6,19),rgb(51,50,102),rgb(51,50,102),rgb(63,82,158),rgb(63,82,158),rgb(66,123,183),rgb(66,123,183),rgb(92,161,197),rgb(92,161,197),rgb(134,199,212),rgb(134,199,212),rgb(234,253,253));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-a4c3d2ed]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.idm-tropical-gl3{bottom:unset;top:unset;background:var(--idm-white-9);padding:10px;border-radius:5px;box-shadow:0 2px 12px #0003;z-index:5}.idm-tropical-gl3 .header-box{min-width:360px;margin-bottom:10px;box-sizing:border-box;color:var(--idm-black-8)}.idm-tropical-gl3 .header-box .close-btn{position:relative;height:0px;text-align:right;font-size:20px;color:var(--idm-black-2);cursor:pointer}.idm-tropical-gl3 .header-box .close-btn:hover{color:var(--idm-primary-color)}.idm-tropical-gl3 .header-box .main{font-size:16px}.idm-tropical-gl3 .header-box .sub{margin:3px 0;font-size:12px;color:var(--idm-info-color)}.idm-tropical-gl3 .main-box{min-width:360px;color:var(--idm-black-8);overflow-y:auto;box-sizing:border-box;font-size:12px;z-index:4}.idm-tropical-gl3 .main-box .content{padding:5px 0;border-radius:5px;background:var(--idm-gray-light)}.idm-tropical-gl3 .main-box .row{width:100%;padding:4px 10px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.idm-tropical-gl3 .main-box .row .col{display:flex;align-items:center;justify-content:space-between}.idm-tropical-gl3 .main-box .row .col label{width:82px;margin-right:4px;color:var(--idm-info-color)}.idm-tropical-gl3 .main-box .row .col.col-24{width:100%}.idm-tropical-gl3 .main-box .row .col.col-left,.idm-tropical-gl3 .main-box .row .col.col-right{width:50%}.idm-tropical-gl3 .main-box .row .col .icon{font-size:30px;color:var(--idm-black-4)}.idm-tropical-gl3 .main-box .row .col .icon.active{color:var(--idm-primary-color)}.idm-tropical-gl3 .forecast-models{display:flex;justify-content:flex-end;flex:1;margin-left:5px;flex-wrap:wrap}.idm-tropical-gl3 .forecast-models .model{font-size:12px;padding:0 6px 4px;display:flex;border:1px solid var(--idm-primary-color);cursor:pointer}.idm-tropical-gl3 .forecast-models .model span{border-bottom:2px dashed #f2a0a0}.idm-tropical-gl3 .forecast-models .model span.cma{border-color:#e2ea03cc}.idm-tropical-gl3 .forecast-models .model span.jma{border-color:#01d2b7cc}.idm-tropical-gl3 .forecast-models .model span.ecmwf{border-color:#f582f2cc}.idm-tropical-gl3 .forecast-models .model span.ukm{border-color:#f5bb47cc}.idm-tropical-gl3 .forecast-models .model span.noaa-at,.idm-tropical-gl3 .forecast-models .model span.noaa-ep{border-color:#9758fbcc}.idm-tropical-gl3 .forecast-models .model.active{border:1px solid var(--idm-primary-color);background-color:var(--idm-primary-color);color:var(--idm-white)}.idm-tropical-gl3 .forecast-models .model:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.idm-tropical-gl3 .forecast-models .model.center-child{border-left:1px solid var(--idm-primary-color);border-right:1px solid var(--idm-primary-color)}.idm-tropical-gl3 .forecast-models .model:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.idm-tropical-gl3 .legend{display:flex;align-items:center;color:var(--idm-info-color)}.idm-tropical-gl3 .legend .icon{height:14px;width:14px;border-radius:50%;border:3px solid #fff;margin-right:3px}.idm-tropical-gl3 .legend .icon.td{background-color:var(--idm-tropicals-td)}.idm-tropical-gl3 .legend .icon.ts{background-color:var(--idm-tropicals-ts)}.idm-tropical-gl3 .legend .icon.sts{background-color:var(--idm-tropicals-sts)}.idm-tropical-gl3 .legend .icon.ty{background-color:var(--idm-tropicals-ty)}.idm-tropical-gl3 .legend .icon.sty{background-color:var(--idm-tropicals-sty)}.idm-tropical-gl3 .legend .icon.supper-ty{background-color:var(--idm-tropicals-super-ty)}.idm-tropical-gl3 .legend .icon.r7{border:1.5px solid var(--idm-tropicals-r7)}.idm-tropical-gl3 .legend .icon.r10{border:1.5px solid var(--idm-tropicals-r10)}.idm-tropical-gl3 .legend .icon.history{border:none;border-radius:0;height:4px;background:var(--idm-black-5)}.idm-tropical-gl3 .legend .button{cursor:pointer;padding:0 4px;border-radius:4px;border:1px solid var(--idm-primary-color);color:var(--idm-primary-color)}.idm-tropical-gl3 .more{display:flex;align-items:center;justify-content:flex-end;color:var(--idm-primary-color);font-weight:700;margin-top:5px;cursor:pointer}.legend-bars[data-v-9708a7a3]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgba(59,126,162,0),rgb(172,210,255),rgb(172,210,255),rgb(3,248,103),rgb(14,201,3),rgb(190,226,2),rgb(248,1,1),rgb(197,5,58),rgb(197,5,58));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-9708a7a3]{font-size:12px;text-align:center;color:var(--idm-white);width:35px}.legend-bars[data-v-f7b2fb08]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(189,50,160),rgb(189,50,160),rgb(189,50,160),rgb(189,50,160),rgb(208,56,56),rgb(208,56,56),rgb(190,226,2),rgb(190,226,2),rgb(4,210,64),rgb(4,210,64),rgb(172,210,255),rgb(172,210,255));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-f7b2fb08]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.legend-bars[data-v-7521f582]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(95,143,197),rgb(95,143,197),rgb(95,143,197),rgb(95,143,197),rgb(80,140,62),rgb(121,146,28),rgb(171,161,14),rgb(223,177,6),rgb(243,150,6),rgb(236,95,21),rgb(190,65,18),rgb(138,43,10),rgb(138,43,10));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-7521f582]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-25daaa82]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(149,137,211),rgb(149,137,211),rgb(149,137,211),rgb(149,137,211),rgb(150,209,216),rgb(129,204,197),rgb(103,180,186),rgb(95,143,197),rgb(80,140,62),rgb(121,146,28),rgb(171,161,14),rgb(223,177,6),rgb(243,150,6),rgb(236,95,21),rgb(190,65,18),rgb(138,43,10),rgb(138,43,10));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-25daaa82]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.point-meteo[data-v-3afdcf26]{bottom:unset;z-index:9;top:0!important}.point-meteo .meteo-box[data-v-3afdcf26]{position:absolute;top:0;left:5px;width:480px;font-size:13px;color:var(--idm-black-8);background-color:var(--idm-white);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-top-right-radius:5px;border-bottom-right-radius:5px;box-shadow:0 2px 12px #0003;font-family:Microsoft YaHei,Helvetica Neue,Helvetica}.point-meteo .meteo-box .header-box[data-v-3afdcf26]{padding:8px 5px;font-size:16px;box-sizing:border-box;color:var(--idm-black-8);border-top-right-radius:5px;background-color:var(--idm-gray-light)}.point-meteo .meteo-box .header-box .lnglat[data-v-3afdcf26]{margin:0 5px}.point-meteo .meteo-box .header-box .close[data-v-3afdcf26]{font-size:18px;color:var(--idm-black-3);cursor:pointer}.point-meteo .meteo-box .header-box .close[data-v-3afdcf26]:hover{color:var(--idm-primary-color)}.point-meteo .meteo-box .header-box .toggle[data-v-3afdcf26]{margin-right:10px;font-size:22px;color:var(--idm-primary-color);cursor:pointer}.point-meteo .meteo-box .main-box[data-v-3afdcf26]{padding:10px;height:300px;background:var(--idm-white);color:var(--idm-black-7);background-size:cover;background-position:top left}.point-meteo .meteo-box .main-box.night-bg[data-v-3afdcf26]{color:var(--idm-white);background-image:url(https://osshz.idmwx.com/asset/weather/night.jpg)}.point-meteo .meteo-box .main-box.night-bg .gray[data-v-3afdcf26]{color:var(--idm-white)!important}.point-meteo .meteo-box .main-box.day-bg[data-v-3afdcf26]{color:var(--idm-black-7);background:#fff}.point-meteo .meteo-box .main-box.font-color-white[data-v-3afdcf26]{color:var(--idm-white)}.point-meteo .meteo-box .main-box .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .info[data-v-3afdcf26]{font-size:13px;opacity:.8}.point-meteo .meteo-box .main-box .summary-row[data-v-3afdcf26]{margin-bottom:10px}.point-meteo .meteo-box .main-box .summary-row .summary .icon[data-v-3afdcf26]{height:60px;width:60px;cursor:pointer}.point-meteo .meteo-box .main-box .summary-row .summary .temp[data-v-3afdcf26]{font-size:28px;margin:0 20px 0 5px}.point-meteo .meteo-box .main-box .summary-row .summary .des[data-v-3afdcf26]{font-size:13px}.point-meteo .meteo-box .main-box .summary-row .summary label[data-v-3afdcf26]{margin-right:2px}.point-meteo .meteo-box .main-box .summary-row .date[data-v-3afdcf26]{margin:0 5px;font-size:14px}.point-meteo .meteo-box .main-box .summary-row .row[data-v-3afdcf26]{padding:3px 0;box-sizing:border-box}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-3afdcf26]{width:max-content;padding:3px 20px;margin-bottom:5px;font-size:14px;cursor:pointer}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item.active[data-v-3afdcf26]{color:#409eff;font-weight:600;border-bottom:2px solid #409EFF}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-3afdcf26]:hover{color:#409eff;font-weight:600}.point-meteo .meteo-box .main-box .detail-box .basic-table[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table[data-v-3afdcf26]{width:100%;height:152px;font-size:12px}.point-meteo .meteo-box .main-box .detail-box .basic-table tr[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table tr[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table tr[data-v-3afdcf26]{width:100%}.point-meteo .meteo-box .main-box .detail-box .basic-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table td[data-v-3afdcf26]{text-align:center;height:18px;line-height:15px;width:43px}.point-meteo .meteo-box .main-box .detail-box .basic-table th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table th[data-v-3afdcf26]{font-weight:400}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-title[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-title[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-title[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-title[data-v-3afdcf26]{text-align:right!important;width:95px}.point-meteo .meteo-box .main-box .detail-box .basic-table .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .unit[data-v-3afdcf26]{display:inline-block;width:24px;padding:0 5px;text-align:left}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide[data-v-3afdcf26]{padding:5px 40px}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide td[data-v-3afdcf26]{width:max-content!important}.point-meteo .meteo-box .main-box .detail-box .basic-table .weather-icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .weather-icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .weather-icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .weather-icon[data-v-3afdcf26]{width:22px;height:22px;cursor:pointer}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon[data-v-3afdcf26]{font-size:10px;margin-right:1px}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.wind[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.wind[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.wind[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.wind[data-v-3afdcf26]{color:#60c43e}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.windwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.windwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.windwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.windwave[data-v-3afdcf26]{color:#017c8a}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.swell[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.swell[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.swell[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.swell[data-v-3afdcf26]{color:#21baa3}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.current[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.current[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.current[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.current[data-v-3afdcf26]{color:#bc6cfe}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.orange[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.orange[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.orange[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.orange[data-v-3afdcf26]{color:var(--idm-warning-color-light)}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.gray[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.gray[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.gray[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.gray[data-v-3afdcf26]{color:var(--idm-black-6)}.point-meteo .meteo-box .main-box .action[data-v-3afdcf26]{margin-top:5px;padding:5px 10px 5px 0;text-align:right;font-size:14px;font-weight:600;font-style:italic;cursor:pointer;display:flex;align-content:center;justify-content:flex-end}.point-meteo .meteo-box .main-box .action.day[data-v-3afdcf26]{color:var(--idm-black-7);border-top:1px solid var(--idm-black-2)}.point-meteo .meteo-box .main-box .action.night[data-v-3afdcf26]{color:var(--idm-white);border-top:1px solid var(--idm-white-2)}.point-meteo .meteo-box .main-box .action div[data-v-3afdcf26]:hover{font-style:normal;color:#409eff}.point-meteo[data-v-3afdcf26]:after{display:block;margin-bottom:360px;width:8px;height:8px;border-radius:50%;content:"";background-color:var(--idm-gray-light);box-shadow:0 2px 12px #000}.point-meteo[data-v-3afdcf26]:before{display:block;content:"";width:2px;height:360px;margin-left:3px;border-left:2px solid var(--idm-gray-light);box-shadow:0 2px 12px #000}#idm-gl3-zone-info{position:absolute;background:var(--idm-white);color:var(--idm-black-8);padding:10px;border-radius:5px;cursor:default;z-index:1000;height:fit-content;max-height:900px;overflow-y:auto;font-size:13px;box-shadow:0 2px 12px #0003}#idm-gl3-zone-info .rich-context{width:500px}#idm-gl3-zone-info .close{font-size:20px;position:absolute;right:10px;top:10px;color:var(--idm-black-2);border-top-right-radius:6px;cursor:pointer}#idm-gl3-zone-info .close:hover{color:var(--idm-primary-color)}#port-info[data-v-39da1804]{position:absolute;background:var(--idm-white);color:var(--idm-black-8);padding:5px 10px;border-radius:6px;cursor:default;height:fit-content;box-shadow:0 2px 12px #0003;z-index:7}#port-info .port-box[data-v-39da1804]{min-width:240px;width:max-content}#port-info .port-box .flex-start[data-v-39da1804]{line-height:2}#port-info .port-box .flex-start label[data-v-39da1804]{color:var(--idm-info-color);margin-right:10px;width:50px}#port-info .port-box .flex-start span[data-v-39da1804]{flex:1;flex-wrap:wrap;text-align:justify-all;color:var(--idm-black-8)}#port-info .port-box .flex-start span.link[data-v-39da1804]{cursor:pointer;text-decoration:underline}#port-info .port-box .flex-start span.link[data-v-39da1804]:hover{font-weight:600}#port-info .port-box .meteo-forecast[data-v-39da1804]{color:var(--idm-primary-color);font-size:14px;font-weight:700;cursor:pointer}#port-info .close[data-v-39da1804]{position:relative;text-align:right;height:0;color:var(--idm-black-2);font-size:20px;cursor:pointer;z-index:8}#port-info .close[data-v-39da1804]:hover{color:var(--idm-primary-color)}.lat-lng-tip[data-v-747fb3c8]{position:absolute;padding:2px 10px;border-radius:5px;color:var(--idm-primary-color);font-size:12px;top:unset;background:var(--idm-white);box-shadow:0 2px 12px #00000080;transition:all .4s ease-in-out}.menu-bar-box[data-v-8eecd76d]{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;transition:all .4s ease-in-out}.menu-bar-box .bar-item[data-v-8eecd76d]{position:relative;margin-bottom:15px;border-radius:5px;background:var(--idm-white);cursor:pointer;box-shadow:0 2px 12px #0003}.menu-bar-box .bar-item .menu-icon[data-v-8eecd76d]{padding:8px;display:flex}.menu-bar-box .bar-item .menu-icon[data-v-8eecd76d]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.menu-bar-box .bar-item .menu-icon[data-v-8eecd76d]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.menu-bar-box .bar-item .menu-icon span[data-v-8eecd76d]{font-size:18px;font-weight:500;color:var(--idm-black-8)}.menu-bar-box .bar-item .menu-icon.active[data-v-8eecd76d]{background:var(--idm-primary-color)}.menu-bar-box .bar-item .menu-icon.active span[data-v-8eecd76d]{color:var(--idm-white)}.idm-gl2-enc-legend-bars{margin-bottom:150px;border-radius:5px;background:var(--idm-background-linear-gradient-top)}.idm-gl2-enc-legend-bars div{padding:4px 8px;cursor:pointer;color:var(--idm-white-9)}.idm-gl2-enc-legend-bars div.active{color:var(--idm-success-color)}:root{--idm-gl-box-shadow-color: rgba(0, 0, 0, .5);--idm-gl-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--idm-gl-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--idm-gl-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--idm-gl-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16)}.point-marker{pointer-events:none!important}.point-marker .marker-circle{pointer-events:inherit;width:12px;height:12px;border-radius:50%;border:2px solid var(--idm-white);background:var(--idm-danger-color)}.point-marker .marker-circle:hover{cursor:pointer}.point-marker.closed{pointer-events:auto!important}.point-summary-marker,.point-contextmenu-marker{color:var(--idm-white);font-size:12px;background:var(--idm-danger-color);border:2px solid var(--idm-white);padding:2px 5px;border-radius:5px;cursor:pointer}.point-summary-marker .marker-close,.point-contextmenu-marker .marker-close{pointer-events:auto;position:absolute;background:var(--idm-danger-color);border:1px dashed var(--idm-white);display:flex;align-items:center;justify-content:center;width:20px;height:20px;right:-17px;top:-17px;cursor:pointer;font-size:20px}.tip-marker{color:var(--idm-white);font-size:12px;text-shadow:var(--idm-text-shadow);background-color:var(--idm-black-6);padding:2px 5px;border-radius:5px;cursor:pointer}.tip-marker .marker-label{border-bottom:var(--idm-dashed-border)}.tip-marker .marker-label:last-child{border-bottom:none}.tip-marker .marker-label b{font-weight:600;color:var(--idm-danger-color)}.hurricane-hourly-marker .iconfont{font-size:34px!important;color:var(--idm-danger-color)}.hurricane-hourly-marker svg{height:34px;width:34px}.hurricane-hourly-marker .center{box-sizing:border-box;display:flex;align-items:center;justify-content:center}.hurricane-hourly-marker .center.north{animation:anticlockwise 2s linear infinite}.hurricane-hourly-marker .center.south{animation:clockwise 2s linear infinite}.tropical-marker-box{font-size:10px;line-height:14px;color:#000;background-color:#fffc;border:1px solid rgba(0,0,0,.3);padding:0 2px;border-radius:6px}.tropical-marker-box.normal{width:100px}.tropical-marker-box.supper{width:130px}.tropical-marker-box.supper.right{margin-left:16px}.tropical-marker-box.supper.left{margin-left:-16px}.tropical-marker-box .tropical-marker-line{position:absolute;height:2px;width:36px;background-color:#00000080}.tropical-marker-box .tropical-marker-line.vertical{transform:rotate(0)}.tropical-marker-box .tropical-marker-line.vertical.right{margin-left:-38px;margin-top:-15px}.tropical-marker-box .tropical-marker-line.vertical.left{margin-top:-15px}.tropical-marker-box .tropical-marker-line.vertical.left.supper{margin-left:126px}.tropical-marker-box .tropical-marker-line.vertical.left.normal{margin-left:97px}.tropical-marker-box .tropical-marker-line.align.bottom{margin-left:-18px;margin-top:-42px;transform:rotate(45deg)}.tropical-marker-box .tropical-marker-line.align.top{margin-top:13px;transform:rotate(135deg)}.tropical-marker-box .tropical-marker-line.align.top.supper{margin-left:12px}.tropical-marker-box .tropical-marker-line.align.top.normal{margin-left:-19px}@keyframes clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes anticlockwise{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}
1
+ @charset "UTF-8";:root{--idm-white: rgba(255, 255, 255, 1);--idm-white-9: rgba(255, 255, 255, .9);--idm-white-8: rgba(255, 255, 255, .8);--idm-white-7: rgba(255, 255, 255, .7);--idm-white-6: rgba(255, 255, 255, .6);--idm-white-5: rgba(255, 255, 255, .5);--idm-white-4: rgba(255, 255, 255, .4);--idm-white-3: rgba(255, 255, 255, .3);--idm-white-2: rgba(255, 255, 255, .2);--idm-white-1: rgba(255, 255, 255, .1);--idm-black: rgba(0, 0, 0, 1);--idm-black-9: rgba(0, 0, 0, .9);--idm-black-8: rgba(0, 0, 0, .8);--idm-black-7: rgba(0, 0, 0, .7);--idm-black-6: rgba(0, 0, 0, .6);--idm-black-5: rgba(0, 0, 0, .5);--idm-black-4: rgba(0, 0, 0, .4);--idm-black-3: rgba(0, 0, 0, .3);--idm-black-2: rgba(0, 0, 0, .2);--idm-black-1: rgba(0, 0, 0, .1);--idm-gray-light: rgba(239, 239, 239, 1);--idm-gray-light2: rgba(239, 239, 249, .6);--idm-hover-color: rgba(64, 159, 255, .1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-highlight: #0033ff;--idm-primary-color-light: #6c8ad9;--idm-primary-color-light2: #a7c4ff;--idm-primary-color-dark: #053a7e;--idm-primary-color-dark2: #002e6b;--idm-primary-color-9: rgba(42, 87, 183, .9);--idm-primary-color-8: rgba(42, 87, 183, .8);--idm-primary-color-7: rgba(42, 87, 183, .7);--idm-primary-color-6: rgba(42, 87, 183, .6);--idm-primary-color-5: rgba(42, 87, 183, .5);--idm-primary-color-4: rgba(42, 87, 183, .4);--idm-primary-color-3: rgba(42, 87, 183, .3);--idm-primary-color-2: rgba(42, 87, 183, .2);--idm-primary-color-1: rgba(42, 87, 183, .1);--idm-success-color: #0ddd9f;--idm-success-color-light: #92f7d9;--idm-success-color-dark: #06a074;--idm-success-color-dark2: #06694c;--idm-warning-color: #ff9500;--idm-warning-color-light: #ffcc00;--idm-warning-color-dark: #c77402;--idm-danger-color: #f44336;--idm-danger-color-light: #fb796e;--idm-danger-color-dark: #ad251b;--idm-info-color: #6e6e6e;--idm-info-color-light: #969696;--idm-info-color-light2: #c0c0c0;--idm-info-color-light3: #e2e2e2;--idm-info-color-dark: #494949;--idm-dangerous: #f44336;--idm-severe: #ff9500;--idm-heavy: #ffff00;--idm-gray-light: rgba(239,239,239,.8);--idm-vessel-cargo-color: lightgreen;--idm-vessel-tanker-color: red;--idm-vessel-passenger-color: blue;--idm-vessel-other-color: lightgrey;--idm-perf-cii-a: var(--idm-success-color);--idm-perf-cii-b: var(--idm-success-color-light);--idm-perf-cii-c: var(--idm-warning-color);--idm-perf-cii-d: var(--idm-danger-color-light);--idm-perf-cii-e: var(--idm-danger-color);--idm-tropicals-td: #03f869;--idm-tropicals-ts: #f2f202;--idm-tropicals-sts: #ff9100;--idm-tropicals-ty: #f44336;--idm-tropicals-sty: #f903d0;--idm-tropicals-super-ty: #8702f9;--idm-tropicals-r7: #ff9100;--idm-tropicals-r10: #f44336;--idm-text-shadow: 0px 0px 4px rgba(0, 0, 0, 1);--idm-dashed-border: 1px dashed var(--idm-white-5);--idm-solid-border: 1px solid var(--idm-white-4);--idm-background-color: var(--idm-primary-color-9);--idm-background-color-dark: var(--idm-primary-color-dark);--idm-background-color-light: var(--idm-primary-color-light);--idm-background-color-light2: #f3f5f8;--idm-active-background-light: linear-gradient(130deg, rgba(142, 163, 255, .93) 20%, rgb(90 67 193 / 93%) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(41, 32, 165) 0%, rgba(44, 93, 184) 80%, rgba(32, 90, 165) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-blink-animation: blink .8s ease-out infinite alternate}:root[colorTheme=black]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .8) 80%, rgb(0, 0, 0, .8) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-right: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-left: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(117, 117, 117, .93) 30%, rgba(200, 200, 200, .93) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(253, 253, 253), 0 0 21px rgb(226, 226, 226), 0 0 30px rgba(185, 185, 185, .4), 0 0 12px rgba(67, 67, 67, .6), 0 0 22px rgba(27, 27, 27, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(0, 0, 0, .7);--idm-primary-color-light: #757575;--idm-primary-color-light2: #a5a5a5;--idm-primary-color-dark: rgba(0, 0, 0, .8);--idm-primary-color-dark2: rgba(0, 0, 0, 1);--idm-primary-color-9: rgba(0, 0, 0, .9);--idm-primary-color-7: rgba(0, 0, 0, .7);--idm-primary-color-5: rgba(0, 0, 0, .5);--idm-primary-color-3: rgba(0, 0, 0, .3);--idm-primary-color-1: rgba(0, 0, 0, .1)}:root[colorTheme=blue]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(41, 32, 165) 0%, rgba(44, 93, 184) 80%, rgba(32, 90, 165) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(142, 163, 255, .93) 20%, rgb(90 67 193 / 93%) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6c8ad9;--idm-primary-color-light2: #a7c4ff;--idm-primary-color-dark: #053a7e;--idm-primary-color-dark2: #002e6b;--idm-primary-color-9: rgba(42, 87, 183, .9);--idm-primary-color-8: rgba(42, 87, 183, .8);--idm-primary-color-7: rgba(42, 87, 183, .7);--idm-primary-color-6: rgba(42, 87, 183, .6);--idm-primary-color-5: rgba(42, 87, 183, .5);--idm-primary-color-4: rgba(42, 87, 183, .4);--idm-primary-color-3: rgba(42, 87, 183, .3);--idm-primary-color-2: rgba(42, 87, 183, .2);--idm-primary-color-1: rgba(42, 87, 183, .1)}:root[colorTheme=dark-blue]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(104, 104, 226, .93) 20%, rgba(22, 49, 182, .93) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6266e0;--idm-primary-color-light2: #89b0ff;--idm-primary-color-dark: #00224e;--idm-primary-color-dark2: #021a39;--idm-primary-color-9: rgba(19, 47, 108, .9);--idm-primary-color-7: rgba(19, 47, 108, .7);--idm-primary-color-5: rgba(19, 47, 108, .5);--idm-primary-color-3: rgba(19, 47, 108, .3);--idm-primary-color-1: rgba(19, 47, 108, .1)}@font-face{font-family:iconfont;src:url(https://iconfont.idmwx.com/iconfont.woff2) format("woff2"),url(https://iconfont.idmwx.com/iconfont.woff) format("woff"),url(https://iconfont.idmwx.com/iconfont.ttf) format("truetype"),url(https://iconfont.idmwx.com/iconfont.svg?#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-start{display:flex;align-items:center;justify-content:flex-start}.flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between,.flex-space{display:flex;align-items:center;justify-content:space-between}.flex-around{display:flex;align-items:center;justify-content:space-around}.flex-evenly{display:flex;align-items:center;justify-content:space-evenly}.flex-col-center-center{display:flex;flex-direction:column;justify-content:center;align-items:center}.flex-col-start-center{display:flex;flex-direction:column;justify-content:flex-start;align-items:center}.flex-col-start-start{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.flex-col-end-center{display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.flex-col-between-center{display:flex;flex-direction:column;justify-content:space-between;align-items:center}.flex-col-around-center{display:flex;flex-direction:column;justify-content:space-around;align-items:center}.flex-col-center-start{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.flex-col-center-end{display:flex;flex-direction:column;justify-content:center;align-items:flex-end}.flex{flex:1}.dropdown{position:relative;display:inline-block!important}.dropdown .dropdown-content{display:none;position:absolute;z-index:1}.dropdown:hover .dropdown-content{display:block}.loading{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--idm-black-5);z-index:1000;display:flex;justify-content:center;align-items:center;flex-direction:column}.loading i{font-size:30px;color:var(--idm-white);margin-bottom:16px;animation:rotate 2s linear infinite}.loading div{color:var(--idm-white);font-size:16px}@keyframes blink{0%{box-shadow:0 0 20px var(--idm-warning-color-dark) inset}to{box-shadow:0 0 20px var(--idm-success-color) inset}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.idm-gl3-layer .fade-enter-active,.idm-gl3-layer .fade-leave-active{transition:opacity .4s}.idm-gl3-layer .fade-enter,.idm-gl3-layer .fade-leave-to{opacity:0}.idm-gl3-layer .menu-bar-box{position:absolute;overflow-y:hidden;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;transition:all .4s ease-in-out;z-index:2;border-radius:5px;box-shadow:0 2px 12px #0003}.idm-gl3-layer .menu-bar-box .bar-item{position:relative;border-radius:5px;background:var(--idm-white);cursor:pointer}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon{padding:8px;display:flex}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon span{font-size:20px;font-weight:600;color:var(--idm-black-8)}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon.active{background:var(--idm-primary-color)}.idm-gl3-layer .menu-bar-box .bar-item .menu-icon.active span{color:var(--idm-white)}.idm-gl3-layer .active-layers{position:absolute;max-width:170px;font-size:14px;padding:2px 5px;background:var(--idm-white);border-radius:5px;box-shadow:0 2px 12px #0003;transition:all .4s ease-in-out}.idm-gl3-layer .active-layers .layer{width:auto;padding:4px 10px}.idm-gl3-layer .active-layers .layer .name{font-size:14px}.idm-gl3-layer .available-layers{position:absolute;height:calc(100vh - 120px);box-sizing:border-box;transition:all .4s ease-in-out}.idm-gl3-layer .available-layers .header-box{font-size:16px;font-weight:600;padding:5px 10px 10px;color:var(--idm-black-8)}.idm-gl3-layer .available-layers .header-box .close-btn{font-size:20px;font-weight:400;color:var(--idm-black-2);cursor:pointer}.idm-gl3-layer .available-layers .header-box .close-btn:hover{color:var(--idm-primary-color)}.idm-gl3-layer .available-layers .list-box{height:inherit;width:200px;overflow-y:auto;color:var(--idm-black-8);background:var(--idm-white);display:flex;flex-direction:column;box-shadow:0 2px 12px #0003;z-index:1}.idm-gl3-layer .available-layers .list-box .layers-title{font-size:14px;font-weight:600;padding:5px 10px;color:var(--idm-black-8)}.idm-gl3-layer .available-layers .list-box .layers-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:0 10px;font-size:14px}.idm-gl3-layer .available-layers .list-box .layers-body .layer{width:100%}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio{margin:5px 0}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio{height:44px;color:var(--idm-black-8);display:flex;align-items:flex-start;justify-content:flex-start}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio .el-radio__inner{margin-top:3px}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio .radio-tip{font-size:12px;color:var(--idm-info-color)}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio.is-checked .el-radio__inner{background:var(--idm-primary-color);border-color:var(--idm-primary-color)}.idm-gl3-layer .available-layers .list-box .layers-body .layer-radio .el-radio.is-checked .el-radio__label{color:var(--idm-primary-color)}.idm-gl3-layer .available-layers .list-box .layers-body .tip{margin-left:-5px;margin-bottom:2px;font-size:12px;color:var(--idm-info-color)}.idm-gl3-layer .available-layers .list-box .layers-body .tip .bookmark-icon{color:var(--idm-warning-color)}.idm-gl3-layer .layer{display:inline-flex;align-items:center;padding:4px 0;color:var(--idm-black-8);font-size:14px;cursor:pointer}.idm-gl3-layer .layer .checkbox{width:14px;height:14px;margin-right:10px;border:1px solid var(--idm-black-2);box-sizing:border-box}.idm-gl3-layer .layer .bookmark-icon{font-size:15px}.idm-gl3-layer .layer .bookmark-icon.active{display:inline-block;color:var(--idm-warning-color)}.idm-gl3-layer .layer .bookmark-icon.inactive{display:none}.idm-gl3-layer .layer .sub-layer-icon{margin-left:10px;font-size:16px}.idm-gl3-layer .layer .sub-layer-icon.active{color:var(--idm-primary-color)}.idm-gl3-layer .layer.active .checkbox{border:1px solid var(--idm-primary-color);background:var(--idm-primary-color)}.idm-gl3-layer .layer.active .checkbox:after{position:relative;content:"✔";color:var(--idm-white);font-size:10px;display:flex;align-items:center;justify-content:center}.idm-gl3-layer .layer.active .name{color:var(--idm-primary-color)}.idm-gl3-layer .layer.disabled{color:var(--idm-black-4);cursor:not-allowed}.idm-gl3-layer .layer.disabled .checkbox{cursor:not-allowed;border:1px solid var(--idm-black-2);opacity:.5}.idm-gl3-layer .layer:hover .bookmark-icon.inactive{display:inline-block}.idm-gl3-layer .switch{font-size:24px;height:19px;margin-right:10px;color:var(--idm-black-2);cursor:pointer}.idm-gl3-layer .switch .active{color:var(--idm-primary-color)}.idm-gl3-layer .card-bg{background:var(--idm-gray-light2);border-radius:3px;margin:8px}.idm-gl3-layer .card-bg:first-child{margin-top:0}.wind-tool-bars{transition:all .4s ease-in-out;padding:2px 5px;border-radius:4px;background:var(--idm-white);box-shadow:0 2px 12px #0003}.wind-tool-bars .item-bar{cursor:pointer;padding:4px 10px}.wind-tool-bars .item-bar.active .checkbox{border:var(--idm-primary-color);background:var(--idm-primary-color)}.wind-tool-bars .item-bar.active .checkbox:after{content:"✔";color:var(--idm-white);font-size:12px;display:flex;align-items:center;justify-content:center}.wind-tool-bars .item-bar.active span{font-size:12px;color:var(--idm-primary-color)}.wind-tool-bars .item-bar .checkbox{width:14px;height:14px;margin-right:10px;border:1px solid var(--idm-black-2)}.wind-tool-bars .item-bar span{font-size:12px;color:var(--idm-black-8)}.legend-bars[data-v-e5910f11]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(98,113,184),rgb(98,113,184),rgb(98,113,184),rgb(98,113,184),rgb(61,110,163),rgb(74,148,170),rgb(74,146,148),rgb(77,142,124),rgb(76,164,76),rgb(103,164,54),rgb(162,135,64),rgb(162,109,92),rgb(141,63,92),rgb(151,75,145),rgb(95,100,160),rgb(91,136,161),rgb(91,136,161));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-e5910f11]{font-size:12px;text-align:center;color:var(--idm-white-8);width:32px}.current-tool-bars{transition:all .4s ease-in-out;background:var(--idm-white);padding:2px 5px;border-radius:4px;box-shadow:0 2px 12px #0003}.current-tool-bars .item-bar{cursor:pointer;padding:4px 10px}.current-tool-bars .item-bar.active .checkbox{border:var(--idm-primary-color);background:var(--idm-primary-color)}.current-tool-bars .item-bar.active .checkbox:after{content:"✔";color:var(--idm-white);font-size:12px;display:flex;align-items:center;justify-content:center}.current-tool-bars .item-bar.active span{font-size:12px;color:var(--idm-primary-color)}.current-tool-bars .item-bar .checkbox{width:14px;height:14px;margin-right:10px;border:1px solid var(--idm-black-2)}.current-tool-bars .item-bar span{font-size:12px;color:var(--idm-black-8)}.legend-bars[data-v-c2962e63]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(84,170,230),rgb(84,170,230),rgb(84,170,230),rgb(84,170,230),rgb(64,127,115),rgb(58,164,58),rgb(191,182,67),rgb(197,154,68),rgb(160,70,94),rgb(138,84,166),rgb(82,113,165),rgb(84,142,152),rgb(150,181,184),rgb(195,194,194),rgb(195,194,194));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-c2962e63]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.legend-bars[data-v-52aea06f]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(50,158,186),rgb(50,158,186),rgb(50,158,186),rgb(50,158,186),rgb(48,128,164),rgb(48,99,142),rgb(52,101,166),rgb(56,104,192),rgb(56,82,169),rgb(57,61,143),rgb(134,48,48),rgb(194,77,91),rgb(192,118,105),rgb(192,163,157),rgb(192,163,157));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-52aea06f]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-14ae1a6c]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(220,243,252),rgb(220,243,252),rgb(86,169,230),rgb(47,226,155),rgb(47,226,155),rgb(47,226,155),rgb(213,253,37),rgb(213,253,37),rgb(213,253,37),rgb(230,176,39),rgb(230,176,39),rgb(230,84,39),rgb(230,84,39));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-14ae1a6c]{font-size:12px;text-align:center;color:var(--idm-info-color);width:20px}.legend-bars[data-v-f21edb81]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(255,255,255),rgb(53,125,177),rgb(33,145,140),rgb(45,178,125),rgb(112,207,87),rgb(253,231,37));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-f21edb81]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-a4c3d2ed]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(4,6,19),rgb(51,50,102),rgb(51,50,102),rgb(63,82,158),rgb(63,82,158),rgb(66,123,183),rgb(66,123,183),rgb(92,161,197),rgb(92,161,197),rgb(134,199,212),rgb(134,199,212),rgb(234,253,253));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-a4c3d2ed]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.idm-tropical-gl3{bottom:unset;top:unset;background:var(--idm-white-9);padding:10px;border-radius:5px;box-shadow:0 2px 12px #0003;z-index:5}.idm-tropical-gl3 .header-box{min-width:360px;margin-bottom:10px;box-sizing:border-box;color:var(--idm-black-8)}.idm-tropical-gl3 .header-box .close-btn{position:relative;height:0px;text-align:right;font-size:20px;color:var(--idm-black-2);cursor:pointer}.idm-tropical-gl3 .header-box .close-btn:hover{color:var(--idm-primary-color)}.idm-tropical-gl3 .header-box .main{font-size:16px}.idm-tropical-gl3 .header-box .sub{margin:3px 0;font-size:12px;color:var(--idm-info-color)}.idm-tropical-gl3 .main-box{min-width:360px;color:var(--idm-black-8);overflow-y:auto;box-sizing:border-box;font-size:12px;z-index:4}.idm-tropical-gl3 .main-box .content{padding:5px 0;border-radius:5px;background:var(--idm-gray-light)}.idm-tropical-gl3 .main-box .row{width:100%;padding:4px 10px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.idm-tropical-gl3 .main-box .row .col{display:flex;align-items:center;justify-content:space-between}.idm-tropical-gl3 .main-box .row .col label{width:82px;margin-right:4px;color:var(--idm-info-color)}.idm-tropical-gl3 .main-box .row .col.col-24{width:100%}.idm-tropical-gl3 .main-box .row .col.col-left,.idm-tropical-gl3 .main-box .row .col.col-right{width:50%}.idm-tropical-gl3 .main-box .row .col .icon{font-size:30px;color:var(--idm-black-4)}.idm-tropical-gl3 .main-box .row .col .icon.active{color:var(--idm-primary-color)}.idm-tropical-gl3 .forecast-models{display:flex;justify-content:flex-end;flex:1;margin-left:5px;flex-wrap:wrap}.idm-tropical-gl3 .forecast-models .model{font-size:12px;padding:0 6px 4px;display:flex;border:1px solid var(--idm-primary-color);cursor:pointer}.idm-tropical-gl3 .forecast-models .model span{border-bottom:2px dashed #f2a0a0}.idm-tropical-gl3 .forecast-models .model span.cma{border-color:#e2ea03cc}.idm-tropical-gl3 .forecast-models .model span.jma{border-color:#01d2b7cc}.idm-tropical-gl3 .forecast-models .model span.ecmwf{border-color:#f582f2cc}.idm-tropical-gl3 .forecast-models .model span.ukm{border-color:#f5bb47cc}.idm-tropical-gl3 .forecast-models .model span.noaa-at,.idm-tropical-gl3 .forecast-models .model span.noaa-ep{border-color:#9758fbcc}.idm-tropical-gl3 .forecast-models .model.active{border:1px solid var(--idm-primary-color);background-color:var(--idm-primary-color);color:var(--idm-white)}.idm-tropical-gl3 .forecast-models .model:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.idm-tropical-gl3 .forecast-models .model.center-child{border-left:1px solid var(--idm-primary-color);border-right:1px solid var(--idm-primary-color)}.idm-tropical-gl3 .forecast-models .model:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.idm-tropical-gl3 .legend{display:flex;align-items:center;color:var(--idm-info-color)}.idm-tropical-gl3 .legend .icon{height:14px;width:14px;border-radius:50%;border:3px solid #fff;margin-right:3px}.idm-tropical-gl3 .legend .icon.td{background-color:var(--idm-tropicals-td)}.idm-tropical-gl3 .legend .icon.ts{background-color:var(--idm-tropicals-ts)}.idm-tropical-gl3 .legend .icon.sts{background-color:var(--idm-tropicals-sts)}.idm-tropical-gl3 .legend .icon.ty{background-color:var(--idm-tropicals-ty)}.idm-tropical-gl3 .legend .icon.sty{background-color:var(--idm-tropicals-sty)}.idm-tropical-gl3 .legend .icon.supper-ty{background-color:var(--idm-tropicals-super-ty)}.idm-tropical-gl3 .legend .icon.r7{border:1.5px solid var(--idm-tropicals-r7)}.idm-tropical-gl3 .legend .icon.r10{border:1.5px solid var(--idm-tropicals-r10)}.idm-tropical-gl3 .legend .icon.history{border:none;border-radius:0;height:4px;background:var(--idm-black-5)}.idm-tropical-gl3 .legend .button{cursor:pointer;padding:0 4px;border-radius:4px;border:1px solid var(--idm-primary-color);color:var(--idm-primary-color)}.idm-tropical-gl3 .more{display:flex;align-items:center;justify-content:flex-end;color:var(--idm-primary-color);font-weight:700;margin-top:5px;cursor:pointer}.legend-bars[data-v-9708a7a3]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgba(59,126,162,0),rgb(172,210,255),rgb(172,210,255),rgb(3,248,103),rgb(14,201,3),rgb(190,226,2),rgb(248,1,1),rgb(197,5,58),rgb(197,5,58));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-9708a7a3]{font-size:12px;text-align:center;color:var(--idm-white);width:35px}.legend-bars[data-v-f7b2fb08]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(189,50,160),rgb(189,50,160),rgb(189,50,160),rgb(189,50,160),rgb(208,56,56),rgb(208,56,56),rgb(190,226,2),rgb(190,226,2),rgb(4,210,64),rgb(4,210,64),rgb(172,210,255),rgb(172,210,255));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-f7b2fb08]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.legend-bars[data-v-7521f582]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(95,143,197),rgb(95,143,197),rgb(95,143,197),rgb(95,143,197),rgb(80,140,62),rgb(121,146,28),rgb(171,161,14),rgb(223,177,6),rgb(243,150,6),rgb(236,95,21),rgb(190,65,18),rgb(138,43,10),rgb(138,43,10));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-7521f582]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-25daaa82]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(149,137,211),rgb(149,137,211),rgb(149,137,211),rgb(149,137,211),rgb(150,209,216),rgb(129,204,197),rgb(103,180,186),rgb(95,143,197),rgb(80,140,62),rgb(121,146,28),rgb(171,161,14),rgb(223,177,6),rgb(243,150,6),rgb(236,95,21),rgb(190,65,18),rgb(138,43,10),rgb(138,43,10));padding:2px 0;border-radius:10px;box-shadow:0 2px 12px #000c}.legend-bars span[data-v-25daaa82]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.point-meteo[data-v-3afdcf26]{bottom:unset;z-index:9;top:0!important}.point-meteo .meteo-box[data-v-3afdcf26]{position:absolute;top:0;left:5px;width:480px;font-size:13px;color:var(--idm-black-8);background-color:var(--idm-white);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-top-right-radius:5px;border-bottom-right-radius:5px;box-shadow:0 2px 12px #0003;font-family:Microsoft YaHei,Helvetica Neue,Helvetica}.point-meteo .meteo-box .header-box[data-v-3afdcf26]{padding:8px 5px;font-size:16px;box-sizing:border-box;color:var(--idm-black-8);border-top-right-radius:5px;background-color:var(--idm-gray-light)}.point-meteo .meteo-box .header-box .lnglat[data-v-3afdcf26]{margin:0 5px}.point-meteo .meteo-box .header-box .close[data-v-3afdcf26]{font-size:18px;color:var(--idm-black-3);cursor:pointer}.point-meteo .meteo-box .header-box .close[data-v-3afdcf26]:hover{color:var(--idm-primary-color)}.point-meteo .meteo-box .header-box .toggle[data-v-3afdcf26]{margin-right:10px;font-size:22px;color:var(--idm-primary-color);cursor:pointer}.point-meteo .meteo-box .main-box[data-v-3afdcf26]{padding:10px;height:300px;background:var(--idm-white);color:var(--idm-black-7);background-size:cover;background-position:top left}.point-meteo .meteo-box .main-box.night-bg[data-v-3afdcf26]{color:var(--idm-white);background-image:url(https://osshz.idmwx.com/asset/weather/night.jpg)}.point-meteo .meteo-box .main-box.night-bg .gray[data-v-3afdcf26]{color:var(--idm-white)!important}.point-meteo .meteo-box .main-box.day-bg[data-v-3afdcf26]{color:var(--idm-black-7);background:#fff}.point-meteo .meteo-box .main-box.font-color-white[data-v-3afdcf26]{color:var(--idm-white)}.point-meteo .meteo-box .main-box .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .info[data-v-3afdcf26]{font-size:13px;opacity:.8}.point-meteo .meteo-box .main-box .summary-row[data-v-3afdcf26]{margin-bottom:10px}.point-meteo .meteo-box .main-box .summary-row .summary .icon[data-v-3afdcf26]{height:60px;width:60px;cursor:pointer}.point-meteo .meteo-box .main-box .summary-row .summary .temp[data-v-3afdcf26]{font-size:28px;margin:0 20px 0 5px}.point-meteo .meteo-box .main-box .summary-row .summary .des[data-v-3afdcf26]{font-size:13px}.point-meteo .meteo-box .main-box .summary-row .summary label[data-v-3afdcf26]{margin-right:2px}.point-meteo .meteo-box .main-box .summary-row .date[data-v-3afdcf26]{margin:0 5px;font-size:14px}.point-meteo .meteo-box .main-box .summary-row .row[data-v-3afdcf26]{padding:3px 0;box-sizing:border-box}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-3afdcf26]{width:max-content;padding:3px 20px;margin-bottom:5px;font-size:14px;cursor:pointer}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item.active[data-v-3afdcf26]{color:#409eff;font-weight:600;border-bottom:2px solid #409EFF}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-3afdcf26]:hover{color:#409eff;font-weight:600}.point-meteo .meteo-box .main-box .detail-box .basic-table[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table[data-v-3afdcf26]{width:100%;height:152px;font-size:12px}.point-meteo .meteo-box .main-box .detail-box .basic-table tr[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table tr[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table tr[data-v-3afdcf26]{width:100%}.point-meteo .meteo-box .main-box .detail-box .basic-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table tr th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table td[data-v-3afdcf26]{text-align:center;height:18px;line-height:15px;width:43px}.point-meteo .meteo-box .main-box .detail-box .basic-table th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table th[data-v-3afdcf26]{font-weight:400}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-title[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-title[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-title[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-title[data-v-3afdcf26]{text-align:right!important;width:95px}.point-meteo .meteo-box .main-box .detail-box .basic-table .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .unit[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .unit[data-v-3afdcf26]{display:inline-block;width:24px;padding:0 5px;text-align:left}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide[data-v-3afdcf26]{padding:5px 40px}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide td[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide th[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide td[data-v-3afdcf26]{width:max-content!important}.point-meteo .meteo-box .main-box .detail-box .basic-table .weather-icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .weather-icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .weather-icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .weather-icon[data-v-3afdcf26]{width:22px;height:22px;cursor:pointer}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon[data-v-3afdcf26]{font-size:10px;margin-right:1px}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.blue[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.wind[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.wind[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.wind[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.wind[data-v-3afdcf26]{color:#60c43e}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.sigwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.windwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.windwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.windwave[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.windwave[data-v-3afdcf26]{color:#017c8a}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.swell[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.swell[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.swell[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.swell[data-v-3afdcf26]{color:#21baa3}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.current[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.current[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.current[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.current[data-v-3afdcf26]{color:#bc6cfe}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.orange[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.orange[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.orange[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.orange[data-v-3afdcf26]{color:var(--idm-warning-color-light)}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.gray[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.gray[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.gray[data-v-3afdcf26],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.gray[data-v-3afdcf26]{color:var(--idm-black-6)}.point-meteo .meteo-box .main-box .action[data-v-3afdcf26]{margin-top:5px;padding:5px 10px 5px 0;text-align:right;font-size:14px;font-weight:600;font-style:italic;cursor:pointer;display:flex;align-content:center;justify-content:flex-end}.point-meteo .meteo-box .main-box .action.day[data-v-3afdcf26]{color:var(--idm-black-7);border-top:1px solid var(--idm-black-2)}.point-meteo .meteo-box .main-box .action.night[data-v-3afdcf26]{color:var(--idm-white);border-top:1px solid var(--idm-white-2)}.point-meteo .meteo-box .main-box .action div[data-v-3afdcf26]:hover{font-style:normal;color:#409eff}.point-meteo[data-v-3afdcf26]:after{display:block;margin-bottom:360px;width:8px;height:8px;border-radius:50%;content:"";background-color:var(--idm-gray-light);box-shadow:0 2px 12px #000}.point-meteo[data-v-3afdcf26]:before{display:block;content:"";width:2px;height:360px;margin-left:3px;border-left:2px solid var(--idm-gray-light);box-shadow:0 2px 12px #000}#idm-gl3-zone-info{position:absolute;background:var(--idm-white);color:var(--idm-black-8);padding:10px;border-radius:5px;cursor:default;z-index:1000;height:fit-content;max-height:900px;overflow-y:auto;font-size:13px;box-shadow:0 2px 12px #0003}#idm-gl3-zone-info .rich-context{width:500px}#idm-gl3-zone-info .close{font-size:20px;position:absolute;right:10px;top:10px;color:var(--idm-black-2);border-top-right-radius:6px;cursor:pointer}#idm-gl3-zone-info .close:hover{color:var(--idm-primary-color)}#port-info[data-v-39da1804]{position:absolute;background:var(--idm-white);color:var(--idm-black-8);padding:5px 10px;border-radius:6px;cursor:default;height:fit-content;box-shadow:0 2px 12px #0003;z-index:7}#port-info .port-box[data-v-39da1804]{min-width:240px;width:max-content}#port-info .port-box .flex-start[data-v-39da1804]{line-height:2}#port-info .port-box .flex-start label[data-v-39da1804]{color:var(--idm-info-color);margin-right:10px;width:50px}#port-info .port-box .flex-start span[data-v-39da1804]{flex:1;flex-wrap:wrap;text-align:justify-all;color:var(--idm-black-8)}#port-info .port-box .flex-start span.link[data-v-39da1804]{cursor:pointer;text-decoration:underline}#port-info .port-box .flex-start span.link[data-v-39da1804]:hover{font-weight:600}#port-info .port-box .meteo-forecast[data-v-39da1804]{color:var(--idm-primary-color);font-size:14px;font-weight:700;cursor:pointer}#port-info .close[data-v-39da1804]{position:relative;text-align:right;height:0;color:var(--idm-black-2);font-size:20px;cursor:pointer;z-index:8}#port-info .close[data-v-39da1804]:hover{color:var(--idm-primary-color)}.lat-lng-tip[data-v-747fb3c8]{position:absolute;padding:2px 10px;border-radius:5px;color:var(--idm-primary-color);font-size:12px;top:unset;background:var(--idm-white);box-shadow:0 2px 12px #00000080;transition:all .4s ease-in-out}.menu-bar-box[data-v-8eecd76d]{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;transition:all .4s ease-in-out}.menu-bar-box .bar-item[data-v-8eecd76d]{position:relative;margin-bottom:15px;border-radius:5px;background:var(--idm-white);cursor:pointer;box-shadow:0 2px 12px #0003}.menu-bar-box .bar-item .menu-icon[data-v-8eecd76d]{padding:8px;display:flex}.menu-bar-box .bar-item .menu-icon[data-v-8eecd76d]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.menu-bar-box .bar-item .menu-icon[data-v-8eecd76d]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.menu-bar-box .bar-item .menu-icon span[data-v-8eecd76d]{font-size:18px;font-weight:500;color:var(--idm-black-8)}.menu-bar-box .bar-item .menu-icon.active[data-v-8eecd76d]{background:var(--idm-primary-color)}.menu-bar-box .bar-item .menu-icon.active span[data-v-8eecd76d]{color:var(--idm-white)}.idm-gl2-enc-legend-bars{margin-bottom:150px;border-radius:5px;background:var(--idm-background-linear-gradient-top)}.idm-gl2-enc-legend-bars div{padding:4px 8px;cursor:pointer;color:var(--idm-white-9)}.idm-gl2-enc-legend-bars div.active{color:var(--idm-success-color)}:root{--idm-gl-box-shadow-color: rgba(0, 0, 0, .5);--idm-gl-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--idm-gl-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--idm-gl-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--idm-gl-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16)}.point-marker{pointer-events:none!important}.point-marker .marker-circle{pointer-events:inherit;width:12px;height:12px;border-radius:50%;border:2px solid var(--idm-white);background:var(--idm-danger-color)}.point-marker .marker-circle:hover{cursor:pointer}.point-marker.closed{pointer-events:auto!important}.point-summary-marker,.point-contextmenu-marker{color:var(--idm-white);font-size:12px;background:var(--idm-danger-color);border:2px solid var(--idm-white);padding:2px 5px;border-radius:5px;cursor:pointer}.point-summary-marker .marker-close,.point-contextmenu-marker .marker-close{pointer-events:auto;position:absolute;background:var(--idm-danger-color);border:1px dashed var(--idm-white);display:flex;align-items:center;justify-content:center;width:20px;height:20px;right:-17px;top:-17px;cursor:pointer;font-size:20px}.tip-marker{color:var(--idm-white);font-size:12px;text-shadow:var(--idm-text-shadow);background-color:var(--idm-black-6);padding:2px 5px;border-radius:5px;cursor:pointer}.tip-marker .marker-label{border-bottom:var(--idm-dashed-border)}.tip-marker .marker-label:last-child{border-bottom:none}.tip-marker .marker-label b{font-weight:600;color:var(--idm-danger-color)}.hurricane-hourly-marker .iconfont{font-size:34px!important;color:var(--idm-danger-color)}.hurricane-hourly-marker svg{height:34px;width:34px}.hurricane-hourly-marker .center{box-sizing:border-box;display:flex;align-items:center;justify-content:center}.hurricane-hourly-marker .center.north{animation:anticlockwise 2s linear infinite}.hurricane-hourly-marker .center.south{animation:clockwise 2s linear infinite}.tropical-marker-box{font-size:10px;line-height:14px;color:#000;background-color:#fffc;border:1px solid rgba(0,0,0,.3);padding:0 2px;border-radius:6px}.tropical-marker-box.normal{width:100px}.tropical-marker-box.supper{width:130px}.tropical-marker-box.supper.right{margin-left:16px}.tropical-marker-box.supper.left{margin-left:-16px}.tropical-marker-box .tropical-marker-line{position:absolute;height:2px;width:36px;background-color:#00000080}.tropical-marker-box .tropical-marker-line.vertical{transform:rotate(0)}.tropical-marker-box .tropical-marker-line.vertical.right{margin-left:-38px;margin-top:-15px}.tropical-marker-box .tropical-marker-line.vertical.left{margin-top:-15px}.tropical-marker-box .tropical-marker-line.vertical.left.supper{margin-left:126px}.tropical-marker-box .tropical-marker-line.vertical.left.normal{margin-left:97px}.tropical-marker-box .tropical-marker-line.align.bottom{margin-left:-18px;margin-top:-42px;transform:rotate(45deg)}.tropical-marker-box .tropical-marker-line.align.top{margin-top:13px;transform:rotate(135deg)}.tropical-marker-box .tropical-marker-line.align.top.supper{margin-left:12px}.tropical-marker-box .tropical-marker-line.align.top.normal{margin-left:-19px}@keyframes clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes anticlockwise{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idmwx/idmui-gl3",
3
3
  "private": false,
4
- "version": "6.4.9",
4
+ "version": "6.5.1",
5
5
  "description": "idm webgl3",
6
6
  "type": "module",
7
7
  "keywords": [
@@ -48,7 +48,7 @@
48
48
  "devDependencies": {
49
49
  "@idm-plugin/geo": "^1.8.6",
50
50
  "@idm-plugin/meteo": "^0.5.6",
51
- "@idm-plugin/tag": "^0.3.3",
51
+ "@idm-plugin/tag": "^0.3.6",
52
52
  "@idmui/style": "^0.1.7",
53
53
  "@types/mapbox-gl": "^3.1.0",
54
54
  "@types/node": "^18.14.2",