@idmwx/idmui-gl3 5.5.8 → 5.5.9

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
@@ -61,6 +61,9 @@ const _ = (t, e) => {
61
61
  showCurrentParticle: {
62
62
  type: Boolean,
63
63
  default: void 0
64
+ },
65
+ forecastModel: {
66
+ type: String
64
67
  }
65
68
  },
66
69
  emits: ["weather", "other", "toggleWindParticle", "toggleWindFeather", "toggleCurrentParticle", "toggleCurrentIsoband", "toggleWindParticeVersion", "toggleCurrentParticeVersion", "coordinate", "measure", "point", "3d", "layerToggle", "handleToggleVersion", "login", "forecastModel"],
@@ -194,7 +197,7 @@ const _ = (t, e) => {
194
197
  { weight: 4096, name: "Pressure", key: "prmsl", enabled: !0, type: "json" },
195
198
  { weight: 256, name: "Tropicals", key: "tropicals", enabled: !0, type: "json" }
196
199
  ]
197
- )), e = localStorage.getItem(this.activeWeatherLayersCache), a = JSON.parse(e), this.autoActive ? this.activeWeatherLayers = [...a] : this.activeWeatherLayersCollected = [...a], a.some((r) => r.key === "wind" && r.particle) && (this.$emit("toggleWindParticle", !0), this.showWindParticleCollected = !0), a.some((r) => r.key === "current" && r.particle) && (this.$emit("toggleCurrentParticle", !0), this.showCurrentParticleCollected = !0), this.showWindFeatherCollected = JSON.parse(localStorage.getItem(this.windFeatherCollectedCache)), this.showCurrentIsobandCollected = JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache)), this.autoActive && (this.$emit("toggleWindFeather", this.showWindFeatherCollected), this.$emit("toggleCurrentIsoband", this.showCurrentIsobandCollected)), a.some((r) => r.key === "wind" && !r.particle && !this.showWindFeatherCollected) && (a = a.filter((r) => r.key !== "wind")), a.some((r) => r.key === "current" && !r.particle && !this.showCurrentIsobandCollected) && (a = a.filter((r) => r.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 = e ? e === "CMEMS" ? "ECMWF" : e : this.source, this.$emit("forecastModel", this.source);
200
+ )), e = localStorage.getItem(this.activeWeatherLayersCache), a = JSON.parse(e), this.autoActive ? this.activeWeatherLayers = [...a] : this.activeWeatherLayersCollected = [...a], a.some((r) => r.key === "wind" && r.particle) && (this.$emit("toggleWindParticle", !0), this.showWindParticleCollected = !0), a.some((r) => r.key === "current" && r.particle) && (this.$emit("toggleCurrentParticle", !0), this.showCurrentParticleCollected = !0), this.showWindFeatherCollected = JSON.parse(localStorage.getItem(this.windFeatherCollectedCache)), this.showCurrentIsobandCollected = JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache)), this.autoActive && (this.$emit("toggleWindFeather", this.showWindFeatherCollected), this.$emit("toggleCurrentIsoband", this.showCurrentIsobandCollected)), a.some((r) => r.key === "wind" && !r.particle && !this.showWindFeatherCollected) && (a = a.filter((r) => r.key !== "wind")), a.some((r) => r.key === "current" && !r.particle && !this.showCurrentIsobandCollected) && (a = a.filter((r) => r.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);
198
201
  },
199
202
  handleConfirm() {
200
203
  var t;
@@ -1,4 +1,4 @@
1
- (function(M,F){typeof exports=="object"&&typeof module<"u"?F(exports,require("@idm-plugin/tag"),require("moment"),require("axios"),require("moment-timezone"),require("vue"),require("@turf/turf"),require("@mapbox/sphericalmercator"),require("mapbox-gl"),require("@idm-plugin/geo"),require("@idm-plugin/meteo")):typeof define=="function"&&define.amd?define(["exports","@idm-plugin/tag","moment","axios","moment-timezone","vue","@turf/turf","@mapbox/sphericalmercator","mapbox-gl","@idm-plugin/geo","@idm-plugin/meteo"],F):(M=typeof globalThis<"u"?globalThis:M||self,F(M["idm-gl"]={},M["@idm-plugin/tag"],M.moment,M.axios,M["moment-timezone"],M.Vue,M["@turf/turf"],M["@mapbox/sphericalmercator"],M["mapbox-gl"],M["@idm-plugin/geo"],M["@idm-plugin/meteo"]))})(this,function(M,F,T,K,de,e,Ye,Ke,ne,S,ce){"use strict";var uo=Object.defineProperty;var wo=(M,F,T)=>F in M?uo(M,F,{enumerable:!0,configurable:!0,writable:!0,value:T}):M[F]=T;var H=(M,F,T)=>(wo(M,typeof F!="symbol"?F+"":F,T),T);function Xe(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const i in a)if(i!=="default"){const o=Object.getOwnPropertyDescriptor(a,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:()=>a[i]})}}return t.default=a,Object.freeze(t)}const v=Xe(Ye),bo="",Lo="",P=(a,t)=>{const i=a.__vccOpts||a;for(const[o,r]of t)i[o]=r;return i},Je={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}},emits:["weather","other","toggleWindParticle","toggleWindFeather","toggleCurrentParticle","toggleCurrentIsoband","toggleWindParticeVersion","toggleCurrentParticeVersion","coordinate","measure","point","3d","layerToggle","handleToggleVersion","login","forecastModel"],data(){return{autoActive:!0,layers:{weather:[...F.LayerHelper.WEATHER_LAYERS.filter(a=>!["swell-height","swell-direction","current-direction","current-speed"].includes(a.key))],other:[...F.LayerHelper.OTHER_LAYERS.filter(a=>a.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.0",k:"glCacheVersion"},source:"Best Match",sourceList:[],right:10,rampColorLayers:["visibility","precip3h","temp","water-temp","arctic"],showWindParticleCollected:!1,showWindFeatherCollected:!1,showCurrentParticleCollected:!1,showCurrentIsobandCollected:!1}},computed:{computeLayerClass(){return function(a,t){var o;let i="layer flex-between";return t.some(r=>r.key===a.key)&&(i=i+" active"),(!a.enabled||(o=this.layers.weather)!=null&&o.some(r=>r.key===a.key)&&!this.autoActive||this.rampColorLayers.includes(a.key)&&this.mapProjection==="globe")&&(i=i+" disabled"),i}},hasCollectedLayers(){var a;return((a=this.layers.weather.filter(t=>t.collected))==null?void 0:a.length)>0},computeDateZ(){return function(a){var t;if(a){const i=T(a);return`${(t=i==null?void 0:i.utc())==null?void 0:t.format("MMM-DD/HHmm")}Z`}return"-"}}},watch:{toggleVersion:{handler(){this.$nextTick(()=>{var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10})}},source:{handler(a,t){a&&a!==t&&this.$emit("forecastModel",this.source),a&&t&&a!==t&&this.handleConfirm()}},activeWeatherLayers:{handler(a,t){this.autoActive&&(this.activeWeatherLayersCollected=this.activeWeatherLayers,localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify(this.activeWeatherLayers)))}},showWindParticle:{handler(a,t){this.autoActive&&(this.showWindParticleCollected=this.showWindParticle)}},showWindFeather:{handler(a,t){this.autoActive&&(this.showWindFeatherCollected=this.showWindFeather,localStorage.setItem(this.windFeatherCollectedCache,this.showWindFeatherCollected))}},showCurrentParticle:{handler(a,t){this.autoActive&&(this.showCurrentParticleCollected=this.showCurrentParticle)}},showCurrentIsoband:{handler(a,t){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 t;this.sourceList=[];let a=await K.get(`${this.gateway}/api/arc/meteo2/models`,{headers:{Authorization:this.token}});(a==null?void 0:a.data.code)===0&&(this.sourceList=(t=a==null?void 0:a.data.data)==null?void 0:t.weather)},fetchCache(){const a=localStorage.getItem(this.version.k);this.version.v!==a&&(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 t=localStorage.getItem(this.autoActiveCache);this.autoActive=t!=="false",t=localStorage.getItem(this.collectedLayerCache);let i=JSON.parse(t||'[{"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=!!i.some(r=>r.key===o.key&&r.collected)}),t=localStorage.getItem(this.activeWeatherLayersCache),t||localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify([{weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!0},{weight:4096,name:"Pressure",key:"prmsl",enabled:!0,type:"json"},{weight:256,name:"Tropicals",key:"tropicals",enabled:!0,type:"json"}])),t=localStorage.getItem(this.activeWeatherLayersCache),i=JSON.parse(t),this.autoActive?this.activeWeatherLayers=[...i]:this.activeWeatherLayersCollected=[...i],i.some(o=>o.key==="wind"&&o.particle)&&(this.$emit("toggleWindParticle",!0),this.showWindParticleCollected=!0),i.some(o=>o.key==="current"&&o.particle)&&(this.$emit("toggleCurrentParticle",!0),this.showCurrentParticleCollected=!0),this.showWindFeatherCollected=JSON.parse(localStorage.getItem(this.windFeatherCollectedCache)),this.showCurrentIsobandCollected=JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache)),this.autoActive&&(this.$emit("toggleWindFeather",this.showWindFeatherCollected),this.$emit("toggleCurrentIsoband",this.showCurrentIsobandCollected)),i.some(o=>o.key==="wind"&&!o.particle&&!this.showWindFeatherCollected)&&(i=i.filter(o=>o.key!=="wind")),i.some(o=>o.key==="current"&&!o.particle&&!this.showCurrentIsobandCollected)&&(i=i.filter(o=>o.key!=="current")),t=localStorage.getItem(this.activeOtherLayersCache),i=JSON.parse(t||'[{"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=i,t=localStorage.getItem(this.sourceCache),this.source=t?t==="CMEMS"?"ECMWF":t:this.source,this.$emit("forecastModel",this.source)},handleConfirm(){var a;if(this.autoActive){const t=(a=this.sourceList.find(i=>i.name===this.source))==null?void 0:a.code;this.$emit("weather",JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),t)}this.$emit("other",this.activeOtherLayers),localStorage.setItem(this.autoActiveCache,this.autoActive),localStorage.setItem(this.sourceCache,this.source)},handleWeatherLayerPick(a){var i;if(this.activeWeatherLayers=JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),this.rampColorLayers.includes(a.key)&&this.mapProjection==="globe"||!this.autoActive)return!1;(a.key==="wind"&&!this.showWindFeather||a.key==="current"&&!this.showCurrentIsoband)&&(a.particle=!0),this.activeWeatherLayers.some(o=>o.key===a.key)?this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.key!==a.key):this.activeWeatherLayers.length<6&&a.enabled&&(["png","jpg"].includes(a.type)?(this.activeWeatherLayers.forEach(o=>{(o.key==="wind"&&this.showWindFeather||a.key==="current"&&this.showCurrentIsoband)&&(o.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.type==="json"&&!(["wind","current"].includes(o.key)&&o.particle))):a.key==="wind"?(this.activeWeatherLayers.forEach(o=>{o.key==="current"&&this.showCurrentIsoband&&(o.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.type==="json"&&!(["wind","current"].includes(o.key)&&o.particle))):a.key==="current"&&(this.activeWeatherLayers.forEach(o=>{o.key==="wind"&&this.showWindFeather&&(o.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.type==="json"&&!(["wind","current"].includes(o.key)&&o.particle))),this.activeWeatherLayers.push(a));const t=(i=this.sourceList.find(o=>o.name===this.source))==null?void 0:i.code;this.$emit("weather",this.activeWeatherLayers,t)},handleWeatherLayerCollect(a){var t;if(!this.autoActive)return!1;!a.collected&&((t=this.layers.weather.filter(i=>i.collected))==null?void 0:t.length)>=6&&(this.layers.weather.filter(i=>i.collected)[0].collected=!1),a.collected=!a.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:!0}):(this.showCurrentParticle&&(this.$emit("toggleCurrentParticle",!1),this.showCurrentIsoband||(this.activeWeatherLayers=this.activeWeatherLayers.filter(a=>a.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:!0}),this.$emit("toggleWindFeather",!this.showWindFeather)},handleToggleCurrentParticle(){!this.showCurrentIsoband&&this.showCurrentParticle?this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",enabled:!0,type:"json",particle:!0}):(this.showWindParticle&&(this.$emit("toggleWindParticle",!1),this.showWindFeather||(this.activeWeatherLayers=this.activeWeatherLayers.filter(a=>a.key!=="wind"))),this.$emit("toggleCurrentParticle",!this.showCurrentParticle),this.$emit("toggleCurrentParticeVersion"))},handleToggleCurrentIsoband(){this.showCurrentIsoband&&!this.showCurrentParticle&&this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",vendor:"cmems",merge:!0,h5:!0,enabled:!0}),this.$emit("toggleCurrentIsoband",!this.showCurrentIsoband)},handleOtherLayerPick(a){this.activeOtherLayers.some(t=>t.key===a.key)?this.activeOtherLayers=this.activeOtherLayers.filter(t=>t.key!==a.key):a.enabled&&this.activeOtherLayers.push(a),localStorage.setItem(this.activeOtherLayersCache,JSON.stringify(this.activeOtherLayers)),this.$emit("other",this.activeOtherLayers)},handleMenuToggle(){this.$emit("layerToggle",!this.layerToggle)},toggleAutoActive(){var t;const a=(t=this.sourceList.find(i=>i.name===this.source))==null?void 0:t.code;this.autoActive=!this.autoActive,localStorage.setItem(this.autoActiveCache,this.autoActive),this.autoActive?(this.$emit("weather",this.activeWeatherLayersCollected,a),this.$emit("toggleWindFeather",localStorage.getItem(this.windFeatherCollectedCache)==="true"),this.$emit("toggleCurrentIsoband",localStorage.getItem(this.currentIsobandCollectedCache)==="true")):(this.$emit("weather",[],a),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)}}},qe={class:"idm-gl3-layer"},Ze={class:"bar-item layer-bars"},$e={class:"bar-item tool-bars"},et={class:"flex-between"},tt={key:0,class:"iconfont active"},at={key:1,class:"iconfont"},it=["onClick"],rt=["onClick"],ot={key:0,class:"flex-start"},st={key:1,class:"flex-start"},nt={class:"header-box flex-between"},lt={class:"weather-layers card-bg"},ct={class:"layers-title flex-between"},ht={key:0,class:"iconfont active"},dt={key:1,class:"iconfont"},pt={class:"layers-body"},mt={class:"flex-start"},gt=["onClick"],At=["onClick"],yt={key:0,class:"flex-start"},ft={key:1,class:"flex-start"},ut=["onClick"],wt={key:0,class:"iconfont bookmark-icon active"},bt={key:1,class:"iconfont bookmark-icon inactive"},Lt={class:"other-layers card-bg"},Ct={class:"layers-body"},xt=["onClick"],Et={class:"flex-start"},Bt={class:"switch flex-center"},vt={key:0,class:"iconfont active"},It={key:1,class:"iconfont"},kt={class:"source-layers card-bg"},Dt={class:"layers-body"},Pt={key:0},Nt={key:1,class:"radio-tip"},St={key:2,class:"radio-tip"};function zt(a,t,i,o,r,s){const n=e.resolveComponent("ElTooltip"),c=e.resolveComponent("ElRadio"),h=e.resolveComponent("ElRadioGroup"),m=e.resolveComponent("ElScrollbar");return e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",{class:"menu-bar-box",style:e.normalizeStyle({top:i.top+10+"px",right:r.right+"px"})},[e.createElementVNode("div",Ze,[e.createVNode(n,{placement:"left",effect:"light",content:"Menu","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(i.layerToggle?"menu-icon active":"menu-icon"),onClick:t[0]||(t[0]=(...l)=>s.handleMenuToggle&&s.handleMenuToggle(...l))},t[17]||(t[17]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),e.createElementVNode("div",{class:"menu-bar-box",style:e.normalizeStyle({top:i.top+160+"px",right:r.right+"px"})},[e.createElementVNode("div",$e,[e.createVNode(n,{placement:"left",effect:"light",content:"Measure","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.showMeasure?"menu-icon active":"menu-icon"),onClick:t[1]||(t[1]=(...l)=>s.handleMeasureToggle&&s.handleMeasureToggle(...l))},t[18]||(t[18]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),e.createVNode(n,{placement:"left",effect:"light",content:"Point Meteo","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.showPoint?"menu-icon active":"menu-icon"),onClick:t[2]||(t[2]=(...l)=>s.handlePointToggle&&s.handlePointToggle(...l))},t[19]||(t[19]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),e.createVNode(n,{placement:"left",effect:"light",content:"Grid","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.showCoord?"menu-icon active":"menu-icon"),onClick:t[3]||(t[3]=(...l)=>s.handleCoordToggle&&s.handleCoordToggle(...l))},t[20]||(t[20]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),e.createVNode(n,{placement:"left",effect:"light",content:"3D","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.show3d?"menu-icon active":"menu-icon"),onClick:t[4]||(t[4]=(...l)=>s.handle3DToggle&&s.handle3DToggle(...l))},t[21]||(t[21]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),s.hasCollectedLayers?(e.openBlock(),e.createElementBlock("div",{key:0,class:"active-layers",style:e.normalizeStyle({right:r.right+"px",bottom:"100px"})},[e.createElementVNode("div",et,[t[22]||(t[22]=e.createElementVNode("div",{style:{margin:"2px 5px"}},"Weather Layers",-1)),e.createElementVNode("div",{class:"switch flex-center",style:{"font-size":"28px","margin-right":"0"},onClick:t[5]||(t[5]=(...l)=>s.toggleAutoActive&&s.toggleAutoActive(...l))},[r.autoActive?(e.openBlock(),e.createElementBlock("i",tt,"")):(e.openBlock(),e.createElementBlock("i",at,""))])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.layers.weather.filter(l=>l.collected),l=>(e.openBlock(),e.createElementBlock("div",{key:l.key,class:e.normalizeClass(s.computeLayerClass(l,r.activeWeatherLayersCollected))},[e.createElementVNode("div",{class:"checkbox",onClick:p=>s.handleWeatherLayerPick(l)},null,8,it),e.createElementVNode("span",{class:"name",onClick:p=>s.handleWeatherLayerPick(l)},e.toDisplayString(l.name),9,rt),l.key==="wind"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:t[6]||(t[6]=p=>s.handleToggleWindParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:t[7]||(t[7]=p=>s.handleToggleWindFeather())},"",2)])):e.createCommentVNode("",!0),l.key==="current"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:t[8]||(t[8]=p=>s.handleToggleCurrentParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:t[9]||(t[9]=p=>s.handleToggleCurrentIsoband())},"",2)])):e.createCommentVNode("",!0)],2))),128))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"available-layers flex-center",style:e.normalizeStyle({top:i.top+"px",right:i.layerToggle?"0px":"-240px"})},[e.createElementVNode("div",{class:e.normalizeClass(["list-box",i.layerToggle?"right-bar":""])},[e.createElementVNode("div",nt,[t[23]||(t[23]=e.createElementVNode("div",null,"Layers",-1)),e.createElementVNode("div",{class:"iconfont close-btn",onClick:t[10]||(t[10]=(...l)=>s.handleMenuToggle&&s.handleMenuToggle(...l))},"")]),e.createVNode(m,{style:{flex:"1"}},{default:e.withCtx(()=>[e.createElementVNode("div",lt,[e.createElementVNode("div",ct,[t[24]||(t[24]=e.createElementVNode("div",null,"Weather Layers",-1)),e.createElementVNode("div",{class:"switch flex-center",style:{"margin-right":"0"},onClick:t[11]||(t[11]=(...l)=>s.toggleAutoActive&&s.toggleAutoActive(...l))},[r.autoActive?(e.openBlock(),e.createElementBlock("i",ht,"")):(e.openBlock(),e.createElementBlock("i",dt,""))])]),e.createElementVNode("div",pt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.layers.weather,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.key},[l.hide?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.computeLayerClass(l,r.activeWeatherLayersCollected))},[e.createElementVNode("div",mt,[e.createElementVNode("div",{class:"checkbox",onClick:p=>s.handleWeatherLayerPick(l)},null,8,gt),e.createElementVNode("span",{class:"name",onClick:p=>s.handleWeatherLayerPick(l)},e.toDisplayString(l.name),9,At),l.key==="wind"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",yt,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:t[12]||(t[12]=p=>s.handleToggleWindParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:t[13]||(t[13]=p=>s.handleToggleWindFeather())},"",2)])):e.createCommentVNode("",!0),l.key==="current"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",ft,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:t[14]||(t[14]=p=>s.handleToggleCurrentParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:t[15]||(t[15]=p=>s.handleToggleCurrentIsoband())},"",2)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{onClick:p=>s.handleWeatherLayerCollect(l)},[l.collected?(e.openBlock(),e.createElementBlock("i",wt,"")):(e.openBlock(),e.createElementBlock("i",bt,""))],8,ut)],2))],64))),128)),t[25]||(t[25]=e.createElementVNode("div",{class:"tip flex-start"},[e.createElementVNode("i",{class:"iconfont bookmark-icon",style:{"align-self":"flex-start",padding:"5px 5px 0 0"}},""),e.createElementVNode("div",null,"You can add the layers to your favorites. (Max 6)")],-1))])]),e.createElementVNode("div",Lt,[t[26]||(t[26]=e.createElementVNode("div",{class:"layers-title"},"Other Layers",-1)),e.createElementVNode("div",Ct,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.layers.other,l=>{var p;return e.openBlock(),e.createElementBlock("div",{key:l.key,class:e.normalizeClass(["layer flex-between",s.computeLayerClass(l,r.activeOtherLayers)]),onClick:f=>s.handleOtherLayerPick(l)},[e.createElementVNode("div",Et,[e.createElementVNode("div",Bt,[(p=s.computeLayerClass(l,r.activeOtherLayers))!=null&&p.includes("active")?(e.openBlock(),e.createElementBlock("i",vt,"")):(e.openBlock(),e.createElementBlock("i",It,""))]),e.createElementVNode("span",null,e.toDisplayString(l.name),1)])],10,xt)}),128))])]),e.createElementVNode("div",kt,[t[27]||(t[27]=e.createElementVNode("span",{class:"layers-title"},"Forecast Model",-1)),e.createElementVNode("div",Dt,[e.createVNode(h,{modelValue:r.source,"onUpdate:modelValue":t[16]||(t[16]=l=>r.source=l),class:"layer-radio flex-col-start-start",style:{width:"180px","align-items":"flex-start"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.sourceList,(l,p)=>(e.openBlock(),e.createBlock(c,{key:`source${l.name}`,value:l.name},{default:e.withCtx(()=>{var f,u,g,w,y,d;return[e.createTextVNode(e.toDisplayString(l.name)+" ",1),p!==0?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(l.resolution)+"km "+e.toDisplayString(l.length)+"days",1)):e.createCommentVNode("",!0),p===0?(e.openBlock(),e.createElementBlock("div",Nt,"Provides the best forecast")):(g=(u=(f=l==null?void 0:l.update)==null?void 0:f.default)==null?void 0:u.meta)!=null&&g.initialisationTime?(e.openBlock(),e.createElementBlock("div",St,"Update: "+e.toDisplayString(s.computeDateZ((d=(y=(w=l==null?void 0:l.update)==null?void 0:w.default)==null?void 0:y.meta)==null?void 0:d.initialisationTime)),1)):e.createCommentVNode("",!0)]}),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])])]),_:1})],2)],4)])}const Mt=P(Je,[["render",zt]]),Co="",Tt={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:v.featureCollection([]),right:10,bottom:125,windBarbLoaded:!1}},watch:{"wind.version":{handler(){var a;(a=this.wind)!=null&&a.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 a,t,i,o;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.wind){const r=new Date().valueOf();let s=0,n=0,c=this.empty;if((a=this.wind)!=null&&a.active&&(c=(t=this.wind)==null?void 0:t.data),(i=this.map)!=null&&i.getSource(this.source))(o=this.map)==null||o.getSource(this.source).setData(c),n=new Date().valueOf()-(r+s),console.log("[wind] update elapsed: ",n,", total: ",s+=n);else{this.map.addSource(this.source,{type:"geojson",data:c});for(let h=0;h<(this.barbs??[]).length-1;h++){const m=(this.barbs??[])[h]||0,l=(this.barbs??[])[h+1]||0,p=m<10?`00${m}kts`:m<100?`0${m}kts`:`${m}kts`;this.map.addLayer({id:p,type:"symbol",filter:["all",[">=","spd",m],["<","spd",l]],source:this.source,layout:{"symbol-placement":"point","icon-image":p,"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 a of this.barbs??[]){const t=a<10?`00${a}kts`:a<100?`0${a}kts`:`${a}kts`;this.map.getLayer(t)&&this.map.setLayoutProperty(t,"visibility",this.showWindFeather?"visible":"none")}},handleClear(){for(const a of this.barbs??[]){const t=a<10?`00${a}kts`:a<100?`0${a}kts`:`${a}kts`;this.map.getLayer(t)&&this.map.removeLayer(t)}this.map.getSource(this.source)&&this.map.removeSource(this.source),this.windBarbLoaded=!1}}};function Qt(a,t,i,o,r,s){return null}const _t=P(Tt,[["render",Qt]]);class ze{constructor(t){H(this,"map");H(this,"mercator");H(this,"rampColorLayer");H(this,"rampColorSource");H(this,"particleLayer");H(this,"particleSource");H(this,"rampColorCanvas");H(this,"particleCanvas");H(this,"ratio");this.map=t,this.mercator=new Ke,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(t,i=0){return t>180?this.convertNLng(t-360,i+1):t<-180?this.convertNLng(t+360,i+1):[t,i]}getBoundLngLat(){const t=this.map.getBounds();return[[t._sw.lng,t._ne.lat],[t._ne.lng,t._ne.lat],[t._ne.lng,t._sw.lat],[t._sw.lng,t._sw.lat]]}getBoundPixel(){const t=this.map.getBounds(),i=this.map.getZoom()+1,o=[t._ne.lng,t._ne.lat],r=[t._sw.lng,t._sw.lat],[s,n]=this.convertNLng(o[0]),[c,h]=this.convertNLng(r[0]),[m,l]=this.mercator.px([s,o[1]],i),[p,f]=this.mercator.px([c,r[1]],i),u=Math.round(this.mercator.size*Math.pow(2,i)*(n+h));return[p,f,m+u,l]}getBoundRange(){const t=this.map.getZoom()+1,i=this.mercator.size*Math.pow(2,t),o=this.getBoundPixel();return[o[0]/i,o[2]/i,o[3]/i,o[1]/i]}getWorldCopy(t,i){const o=2**i,[r,s,n,c]=t.map(l=>~~(l/(o*256))),h=[];for(let l=c;l<=s;l++)for(let p=r;p<=n;p++)h.push([p,l]);return h.map(l=>{const p=2**i*256;return[l[0]*p,l[1]*p,p]})}resize(){let t=this.map.getSource(this.rampColorSource);t.setCoordinates(this.getBoundLngLat()),t=this.map.getSource(this.particleSource),t.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(t){const i=this.map.getLayoutProperty(this.rampColorLayer,"visibility"),o=t?"visible":"none";i!==o&&this.map.setLayoutProperty(this.rampColorLayer,"visibility",o)}toggleParticle(t){const i=this.map.getLayoutProperty(this.particleLayer,"visibility"),o=t?"visible":"none";i!==o&&this.map.setLayoutProperty(this.particleLayer,"visibility",o)}}class Z{createShader(t,i,o){const r=t.createShader(i);if(r&&(t.shaderSource(r,o),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)))throw new Error(t.getShaderInfoLog(r)||"error happened while create shader...");return r}createTexture(t,i,o,r,s,n,c){const h=t.createTexture();return t.bindTexture(t.TEXTURE_2D,h),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,o),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,r),s instanceof Uint8Array?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,n,c,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,s),t.bindTexture(t.TEXTURE_2D,null),h}createDataBuffer(t,i,o){if(t){const r=t.createBuffer();return i==="array"?(t.bindBuffer(t.ARRAY_BUFFER,r),o&&t.bufferData(t.ARRAY_BUFFER,o,t.STATIC_DRAW)):i==="element"&&(t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,r),o&&t.bufferData(t.ELEMENT_ARRAY_BUFFER,o,t.STATIC_DRAW)),r}return null}createProgram(t,i,o){const r=t.createProgram(),s=this.createShader(t,t.VERTEX_SHADER,i),n=this.createShader(t,t.FRAGMENT_SHADER,o);if(r&&s&&n&&(t.attachShader(r,s),t.attachShader(r,n),t.linkProgram(r),!t.getProgramParameter(r,t.LINK_STATUS)))throw new Error(t.getProgramInfoLog(r)||"error happened while creating ramp color program");return r}createProgramWrapper(t,i,o){const r=this.createProgram(t,i,o);if(r){const s={program:r},n=t.getProgramParameter(r,t.ACTIVE_ATTRIBUTES);for(let h=0;h<n;h++){const m=t.getActiveAttrib(r,h);s[m.name]=t.getAttribLocation(r,m.name)}const c=t.getProgramParameter(r,t.ACTIVE_UNIFORMS);for(let h=0;h<c;h++){const m=t.getActiveUniform(r,h);s[m.name]=t.getUniformLocation(r,m.name)}return s}}setup(t,i,o=!1,r,s){const n=document.createElement("canvas");n.width=256,n.height=1;const c=n.getContext("2d");if(c&&t){const h=c==null?void 0:c.createLinearGradient(0,0,256,0);return i.forEach(([m,l])=>{h.addColorStop(m,l)}),c.fillStyle=h,c.fillRect(0,0,256,1),{canvas:n,texture:this.createTexture(t,t.LINEAR,t.LINEAR,t.CLAMP_TO_EDGE,o?new Uint8Array(c.getImageData(0,0,256,1).data):n,r,s)}}}setupParticle(t,i=1e3){const o=Math.ceil(Math.sqrt(i)),r=o*o,s=new Uint8Array(r*4);for(let l=0;l<s.length;l++)s[l]=Math.floor(Math.random()*256);const n=this.createTexture(t,t.NEAREST,t.NEAREST,t.CLAMP_TO_EDGE,s,o,o),c=this.createTexture(t,t.NEAREST,t.NEAREST,t.CLAMP_TO_EDGE,s,o,o),h=new Float32Array(r);for(let l=0;l<r;l++)h[l]=l;const m=this.createDataBuffer(t,"array",h);return{resolution:o,total:r,texture0:n,texture1:c,indexBuffer:m}}bind(t,i,o){const r=this.createProgram(t,i,o);if(r){const s=this.createDataBuffer(t,"array",void 0),n=t.getAttribLocation(r,"a_position");t.enableVertexAttribArray(n),t.vertexAttribPointer(n,2,t.FLOAT,!1,0,0);const c=new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]);this.createDataBuffer(t,"array",c);const h=t.getAttribLocation(r,"a_texCoord");return t.enableVertexAttribArray(h),t.vertexAttribPointer(h,2,t.FLOAT,!1,0,0),{program:r,aPositionBuffer:s}}return{}}bindParticle(t,i,o,r,s,n){const c=this.createProgramWrapper(t,i,o),h=this.createProgramWrapper(t,r,s),m=this.createProgramWrapper(t,r,n),l=this.createDataBuffer(t,"array",new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1])),p=t.createFramebuffer();return{particle:c,screen:h,update:m,quadBuffer:l,frameBuffer:p}}draw(t,i,o,r,s,n,c){var h,m;if(i&&o){t.resize(),i==null||i.viewport(0,0,(h=i==null?void 0:i.canvas)==null?void 0:h.width,(m=i==null?void 0:i.canvas)==null?void 0:m.height),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT);try{const l=i.getUniformLocation(o,"u_resolution"),p=i.getUniformLocation(o,"u_image"),f=i.getUniformLocation(o,"u_color");if(i.useProgram(o),i.uniform2f(l,i.canvas.width*t.ratio,i.canvas.height*t.ratio),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,r),i.uniform1i(p,0),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,s),i.uniform1i(f,1),c!=null&&c.uvRange&&(c!=null&&c.sRange)){const d=i.getUniformLocation(o,"u_range_u_v"),L=i.getUniformLocation(o,"u_range_s");i.uniform2f(d,c.uvRange[0],c.uvRange[1]),i.uniform2f(L,c.sRange[0],c.sRange[1])}const u=i.getUniformLocation(o,"u_scale");i.uniform1f(u,(c==null?void 0:c.scale)||1);const g=t.getBoundPixel(),w=t.map.getZoom()+1,y=t.getWorldCopy(g,w);for(const d of y){const L=(d[0]-g[0])*t.ratio,A=(d[1]-g[3])*t.ratio,C=d[2]*t.ratio,[I,E,k,N]=[L,C+L,A,C+A],D=new Float32Array([I,k,E,k,I,N,I,N,E,k,E,N]);i.bindBuffer(i.ARRAY_BUFFER,n),i.bufferData(i.ARRAY_BUFFER,D,i.STATIC_DRAW),i.drawArrays(i.TRIANGLES,0,6)}}catch(l){console.log(`render failed...${l}`)}}}drawParticle(t,i,o,r,s){var n,c;i&&(i==null||i.viewport(0,0,(n=i==null?void 0:i.canvas)==null?void 0:n.width,(c=i==null?void 0:i.canvas)==null?void 0:c.height),i.disable(i.DEPTH_TEST),i.disable(i.STENCIL_TEST),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,o),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,r.texture0),this.renderScreen(t,i,r,s),this.updateParticles(t,i,r,s))}renderScreen(t,i,o,r){i.bindFramebuffer(i.FRAMEBUFFER,o.frameBuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.screenTexture,0),i.viewport(0,0,i.canvas.width,i.canvas.height),this.renderScreenTexture(i,o.backgroundTexture,o.screen,o.quadBuffer,.95),this.renderParticles(t,i,o,r),i.bindFramebuffer(i.FRAMEBUFFER,null),this.renderScreenTexture(i,o.screenTexture,o.screen,o.quadBuffer,1);const s=o.backgroundTexture;o.backgroundTexture=o.screenTexture,o.screenTexture=s}renderScreenTexture(t,i,o,r,s){t&&(t.useProgram(o.program),t.bindBuffer(t.ARRAY_BUFFER,r),t.enableVertexAttribArray(o.a_pos),t.vertexAttribPointer(o.a_pos,2,t.FLOAT,!1,0,0),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,i),t.uniform1i(o.u_screen,2),t.uniform1f(o.u_opacity,s),t.drawArrays(t.TRIANGLES,0,6))}renderParticles(t,i,o,r){if(i){i.useProgram(o.particle.program),i.bindBuffer(i.ARRAY_BUFFER,o.indexBuffer),i.enableVertexAttribArray(o.particle.a_index),i.vertexAttribPointer(o.particle.a_index,1,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,o.color.texture),i.uniform1i(o.particle.u_factor,0),i.uniform1i(o.particle.u_particles,1),i.uniform1i(o.particle.u_color_ramp,2),i.uniform1f(o.particle.u_particles_resolution,o.resolution*t.ratio),i.uniform1f(o.particle.u_point,t.ratio);const s=t.getBoundRange();i.uniform4f(o.particle.u_viewport,s[0],s[1],s[2],s[3]),i.uniform2f(o.particle.u_factor_min,r.uvRange[0],r.uvRange[0]),i.uniform2f(o.particle.u_factor_max,r.uvRange[1],r.uvRange[1]),i.drawArrays(i.POINTS,0,o.total)}}updateParticles(t,i,o,r){var n,c;if(i){i.bindFramebuffer(i.FRAMEBUFFER,o.frameBuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.texture1,0),i.viewport(0,0,o.resolution,o.resolution),i.useProgram(o.update.program),i.bindBuffer(i.ARRAY_BUFFER,o.quadBuffer),i.enableVertexAttribArray(o.update.a_pos),i.vertexAttribPointer(o.update.a_pos,2,i.FLOAT,!1,0,0),i.uniform1i(o.update.u_factor,0),i.uniform1i(o.update.u_particles,1);const h=t.getBoundRange();i.uniform4f(o.update.u_viewport,h[0],h[1],h[2],h[3]),i.uniform1f(o.update.u_rand_seed,Math.random()),i.uniform2f(o.update.u_factor_res,(n=o==null?void 0:o.image)==null?void 0:n.width,(c=o==null?void 0:o.image)==null?void 0:c.height),i.uniform2f(o.update.u_factor_min,r.uvRange[0],r.uvRange[0]),i.uniform2f(o.update.u_factor_max,r.uvRange[1],r.uvRange[1]),i.uniform1f(o.update.u_speed_factor,r.speedFactor*t.ratio),i.uniform1f(o.update.u_drop_rate,r.dropRate),i.uniform1f(o.update.u_drop_rate_bump,r.dropRateBump),i.drawArrays(i.TRIANGLES,0,6)}const s=o.texture0;o.texture0=o.texture1,o.texture1=s}resize(t,i){t.resize();const o=new Uint8Array(i.canvas.width*i.canvas.height*4).fill(0,0,i.canvas.width*i.canvas.height*4),r=this.createTexture(i,i.NEAREST,i.NEAREST,i.CLAMP_TO_EDGE,o,i.canvas.width,i.canvas.height),s=this.createTexture(i,i.NEAREST,i.NEAREST,i.CLAMP_TO_EDGE,o,i.canvas.width,i.canvas.height);return{screenTexture:r,backgroundTexture:s}}async loadImg(t){return new Promise(i=>{const o=new Blob([t],{type:t.type}),r=URL.createObjectURL(o),s=new Image;s.crossOrigin="anonymous",s.src=r,s.onload=()=>i(s)})}}class V{}H(V,"vertexSchema",`
1
+ (function(M,F){typeof exports=="object"&&typeof module<"u"?F(exports,require("@idm-plugin/tag"),require("moment"),require("axios"),require("moment-timezone"),require("vue"),require("@turf/turf"),require("@mapbox/sphericalmercator"),require("mapbox-gl"),require("@idm-plugin/geo"),require("@idm-plugin/meteo")):typeof define=="function"&&define.amd?define(["exports","@idm-plugin/tag","moment","axios","moment-timezone","vue","@turf/turf","@mapbox/sphericalmercator","mapbox-gl","@idm-plugin/geo","@idm-plugin/meteo"],F):(M=typeof globalThis<"u"?globalThis:M||self,F(M["idm-gl"]={},M["@idm-plugin/tag"],M.moment,M.axios,M["moment-timezone"],M.Vue,M["@turf/turf"],M["@mapbox/sphericalmercator"],M["mapbox-gl"],M["@idm-plugin/geo"],M["@idm-plugin/meteo"]))})(this,function(M,F,T,K,de,e,Ye,Ke,ne,S,ce){"use strict";var uo=Object.defineProperty;var wo=(M,F,T)=>F in M?uo(M,F,{enumerable:!0,configurable:!0,writable:!0,value:T}):M[F]=T;var H=(M,F,T)=>(wo(M,typeof F!="symbol"?F+"":F,T),T);function Xe(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const i in a)if(i!=="default"){const o=Object.getOwnPropertyDescriptor(a,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:()=>a[i]})}}return t.default=a,Object.freeze(t)}const v=Xe(Ye),bo="",Lo="",P=(a,t)=>{const i=a.__vccOpts||a;for(const[o,r]of t)i[o]=r;return i},Je={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:[...F.LayerHelper.WEATHER_LAYERS.filter(a=>!["swell-height","swell-direction","current-direction","current-speed"].includes(a.key))],other:[...F.LayerHelper.OTHER_LAYERS.filter(a=>a.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.0",k:"glCacheVersion"},source:"Best Match",sourceList:[],right:10,rampColorLayers:["visibility","precip3h","temp","water-temp","arctic"],showWindParticleCollected:!1,showWindFeatherCollected:!1,showCurrentParticleCollected:!1,showCurrentIsobandCollected:!1}},computed:{computeLayerClass(){return function(a,t){var o;let i="layer flex-between";return t.some(r=>r.key===a.key)&&(i=i+" active"),(!a.enabled||(o=this.layers.weather)!=null&&o.some(r=>r.key===a.key)&&!this.autoActive||this.rampColorLayers.includes(a.key)&&this.mapProjection==="globe")&&(i=i+" disabled"),i}},hasCollectedLayers(){var a;return((a=this.layers.weather.filter(t=>t.collected))==null?void 0:a.length)>0},computeDateZ(){return function(a){var t;if(a){const i=T(a);return`${(t=i==null?void 0:i.utc())==null?void 0:t.format("MMM-DD/HHmm")}Z`}return"-"}}},watch:{toggleVersion:{handler(){this.$nextTick(()=>{var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10})}},source:{handler(a,t){a&&a!==t&&this.$emit("forecastModel",this.source),a&&t&&a!==t&&this.handleConfirm()}},activeWeatherLayers:{handler(a,t){this.autoActive&&(this.activeWeatherLayersCollected=this.activeWeatherLayers,localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify(this.activeWeatherLayers)))}},showWindParticle:{handler(a,t){this.autoActive&&(this.showWindParticleCollected=this.showWindParticle)}},showWindFeather:{handler(a,t){this.autoActive&&(this.showWindFeatherCollected=this.showWindFeather,localStorage.setItem(this.windFeatherCollectedCache,this.showWindFeatherCollected))}},showCurrentParticle:{handler(a,t){this.autoActive&&(this.showCurrentParticleCollected=this.showCurrentParticle)}},showCurrentIsoband:{handler(a,t){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 t;this.sourceList=[];let a=await K.get(`${this.gateway}/api/arc/meteo2/models`,{headers:{Authorization:this.token}});(a==null?void 0:a.data.code)===0&&(this.sourceList=(t=a==null?void 0:a.data.data)==null?void 0:t.weather)},fetchCache(){const a=localStorage.getItem(this.version.k);this.version.v!==a&&(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 t=localStorage.getItem(this.autoActiveCache);this.autoActive=t!=="false",t=localStorage.getItem(this.collectedLayerCache);let i=JSON.parse(t||'[{"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=!!i.some(r=>r.key===o.key&&r.collected)}),t=localStorage.getItem(this.activeWeatherLayersCache),t||localStorage.setItem(this.activeWeatherLayersCache,JSON.stringify([{weight:1,name:"Wind",key:"wind",enabled:!0,type:"json",particle:!0},{weight:4096,name:"Pressure",key:"prmsl",enabled:!0,type:"json"},{weight:256,name:"Tropicals",key:"tropicals",enabled:!0,type:"json"}])),t=localStorage.getItem(this.activeWeatherLayersCache),i=JSON.parse(t),this.autoActive?this.activeWeatherLayers=[...i]:this.activeWeatherLayersCollected=[...i],i.some(o=>o.key==="wind"&&o.particle)&&(this.$emit("toggleWindParticle",!0),this.showWindParticleCollected=!0),i.some(o=>o.key==="current"&&o.particle)&&(this.$emit("toggleCurrentParticle",!0),this.showCurrentParticleCollected=!0),this.showWindFeatherCollected=JSON.parse(localStorage.getItem(this.windFeatherCollectedCache)),this.showCurrentIsobandCollected=JSON.parse(localStorage.getItem(this.currentIsobandCollectedCache)),this.autoActive&&(this.$emit("toggleWindFeather",this.showWindFeatherCollected),this.$emit("toggleCurrentIsoband",this.showCurrentIsobandCollected)),i.some(o=>o.key==="wind"&&!o.particle&&!this.showWindFeatherCollected)&&(i=i.filter(o=>o.key!=="wind")),i.some(o=>o.key==="current"&&!o.particle&&!this.showCurrentIsobandCollected)&&(i=i.filter(o=>o.key!=="current")),t=localStorage.getItem(this.activeOtherLayersCache),i=JSON.parse(t||'[{"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=i,t=localStorage.getItem(this.sourceCache),this.source=this.forecastModel?this.forecastModel:t?t==="CMEMS"?"ECMWF":t:this.source,this.$emit("forecastModel",this.source)},handleConfirm(){var a;if(this.autoActive){const t=(a=this.sourceList.find(i=>i.name===this.source))==null?void 0:a.code;this.$emit("weather",JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),t)}this.$emit("other",this.activeOtherLayers),localStorage.setItem(this.autoActiveCache,this.autoActive),localStorage.setItem(this.sourceCache,this.source)},handleWeatherLayerPick(a){var i;if(this.activeWeatherLayers=JSON.parse(localStorage.getItem(this.activeWeatherLayersCache)),this.rampColorLayers.includes(a.key)&&this.mapProjection==="globe"||!this.autoActive)return!1;(a.key==="wind"&&!this.showWindFeather||a.key==="current"&&!this.showCurrentIsoband)&&(a.particle=!0),this.activeWeatherLayers.some(o=>o.key===a.key)?this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.key!==a.key):this.activeWeatherLayers.length<6&&a.enabled&&(["png","jpg"].includes(a.type)?(this.activeWeatherLayers.forEach(o=>{(o.key==="wind"&&this.showWindFeather||a.key==="current"&&this.showCurrentIsoband)&&(o.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.type==="json"&&!(["wind","current"].includes(o.key)&&o.particle))):a.key==="wind"?(this.activeWeatherLayers.forEach(o=>{o.key==="current"&&this.showCurrentIsoband&&(o.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.type==="json"&&!(["wind","current"].includes(o.key)&&o.particle))):a.key==="current"&&(this.activeWeatherLayers.forEach(o=>{o.key==="wind"&&this.showWindFeather&&(o.particle=!1)}),this.activeWeatherLayers=this.activeWeatherLayers.filter(o=>o.type==="json"&&!(["wind","current"].includes(o.key)&&o.particle))),this.activeWeatherLayers.push(a));const t=(i=this.sourceList.find(o=>o.name===this.source))==null?void 0:i.code;this.$emit("weather",this.activeWeatherLayers,t)},handleWeatherLayerCollect(a){var t;if(!this.autoActive)return!1;!a.collected&&((t=this.layers.weather.filter(i=>i.collected))==null?void 0:t.length)>=6&&(this.layers.weather.filter(i=>i.collected)[0].collected=!1),a.collected=!a.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:!0}):(this.showCurrentParticle&&(this.$emit("toggleCurrentParticle",!1),this.showCurrentIsoband||(this.activeWeatherLayers=this.activeWeatherLayers.filter(a=>a.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:!0}),this.$emit("toggleWindFeather",!this.showWindFeather)},handleToggleCurrentParticle(){!this.showCurrentIsoband&&this.showCurrentParticle?this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",enabled:!0,type:"json",particle:!0}):(this.showWindParticle&&(this.$emit("toggleWindParticle",!1),this.showWindFeather||(this.activeWeatherLayers=this.activeWeatherLayers.filter(a=>a.key!=="wind"))),this.$emit("toggleCurrentParticle",!this.showCurrentParticle),this.$emit("toggleCurrentParticeVersion"))},handleToggleCurrentIsoband(){this.showCurrentIsoband&&!this.showCurrentParticle&&this.handleWeatherLayerPick({weight:96,name:"Current",key:"current",vendor:"cmems",merge:!0,h5:!0,enabled:!0}),this.$emit("toggleCurrentIsoband",!this.showCurrentIsoband)},handleOtherLayerPick(a){this.activeOtherLayers.some(t=>t.key===a.key)?this.activeOtherLayers=this.activeOtherLayers.filter(t=>t.key!==a.key):a.enabled&&this.activeOtherLayers.push(a),localStorage.setItem(this.activeOtherLayersCache,JSON.stringify(this.activeOtherLayers)),this.$emit("other",this.activeOtherLayers)},handleMenuToggle(){this.$emit("layerToggle",!this.layerToggle)},toggleAutoActive(){var t;const a=(t=this.sourceList.find(i=>i.name===this.source))==null?void 0:t.code;this.autoActive=!this.autoActive,localStorage.setItem(this.autoActiveCache,this.autoActive),this.autoActive?(this.$emit("weather",this.activeWeatherLayersCollected,a),this.$emit("toggleWindFeather",localStorage.getItem(this.windFeatherCollectedCache)==="true"),this.$emit("toggleCurrentIsoband",localStorage.getItem(this.currentIsobandCollectedCache)==="true")):(this.$emit("weather",[],a),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)}}},qe={class:"idm-gl3-layer"},Ze={class:"bar-item layer-bars"},$e={class:"bar-item tool-bars"},et={class:"flex-between"},tt={key:0,class:"iconfont active"},at={key:1,class:"iconfont"},it=["onClick"],rt=["onClick"],ot={key:0,class:"flex-start"},st={key:1,class:"flex-start"},nt={class:"header-box flex-between"},lt={class:"weather-layers card-bg"},ct={class:"layers-title flex-between"},ht={key:0,class:"iconfont active"},dt={key:1,class:"iconfont"},pt={class:"layers-body"},mt={class:"flex-start"},gt=["onClick"],At=["onClick"],yt={key:0,class:"flex-start"},ft={key:1,class:"flex-start"},ut=["onClick"],wt={key:0,class:"iconfont bookmark-icon active"},bt={key:1,class:"iconfont bookmark-icon inactive"},Lt={class:"other-layers card-bg"},Ct={class:"layers-body"},xt=["onClick"],Et={class:"flex-start"},Bt={class:"switch flex-center"},vt={key:0,class:"iconfont active"},It={key:1,class:"iconfont"},kt={class:"source-layers card-bg"},Dt={class:"layers-body"},Pt={key:0},Nt={key:1,class:"radio-tip"},St={key:2,class:"radio-tip"};function zt(a,t,i,o,r,s){const n=e.resolveComponent("ElTooltip"),c=e.resolveComponent("ElRadio"),h=e.resolveComponent("ElRadioGroup"),m=e.resolveComponent("ElScrollbar");return e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",{class:"menu-bar-box",style:e.normalizeStyle({top:i.top+10+"px",right:r.right+"px"})},[e.createElementVNode("div",Ze,[e.createVNode(n,{placement:"left",effect:"light",content:"Menu","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(i.layerToggle?"menu-icon active":"menu-icon"),onClick:t[0]||(t[0]=(...l)=>s.handleMenuToggle&&s.handleMenuToggle(...l))},t[17]||(t[17]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),e.createElementVNode("div",{class:"menu-bar-box",style:e.normalizeStyle({top:i.top+160+"px",right:r.right+"px"})},[e.createElementVNode("div",$e,[e.createVNode(n,{placement:"left",effect:"light",content:"Measure","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.showMeasure?"menu-icon active":"menu-icon"),onClick:t[1]||(t[1]=(...l)=>s.handleMeasureToggle&&s.handleMeasureToggle(...l))},t[18]||(t[18]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),e.createVNode(n,{placement:"left",effect:"light",content:"Point Meteo","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.showPoint?"menu-icon active":"menu-icon"),onClick:t[2]||(t[2]=(...l)=>s.handlePointToggle&&s.handlePointToggle(...l))},t[19]||(t[19]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),e.createVNode(n,{placement:"left",effect:"light",content:"Grid","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.showCoord?"menu-icon active":"menu-icon"),onClick:t[3]||(t[3]=(...l)=>s.handleCoordToggle&&s.handleCoordToggle(...l))},t[20]||(t[20]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1}),e.createVNode(n,{placement:"left",effect:"light",content:"3D","show-after":1e3},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.show3d?"menu-icon active":"menu-icon"),onClick:t[4]||(t[4]=(...l)=>s.handle3DToggle&&s.handle3DToggle(...l))},t[21]||(t[21]=[e.createElementVNode("span",{class:"iconfont"},"",-1)]),2)]),_:1})])],4),s.hasCollectedLayers?(e.openBlock(),e.createElementBlock("div",{key:0,class:"active-layers",style:e.normalizeStyle({right:r.right+"px",bottom:"100px"})},[e.createElementVNode("div",et,[t[22]||(t[22]=e.createElementVNode("div",{style:{margin:"2px 5px"}},"Weather Layers",-1)),e.createElementVNode("div",{class:"switch flex-center",style:{"font-size":"28px","margin-right":"0"},onClick:t[5]||(t[5]=(...l)=>s.toggleAutoActive&&s.toggleAutoActive(...l))},[r.autoActive?(e.openBlock(),e.createElementBlock("i",tt,"")):(e.openBlock(),e.createElementBlock("i",at,""))])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.layers.weather.filter(l=>l.collected),l=>(e.openBlock(),e.createElementBlock("div",{key:l.key,class:e.normalizeClass(s.computeLayerClass(l,r.activeWeatherLayersCollected))},[e.createElementVNode("div",{class:"checkbox",onClick:p=>s.handleWeatherLayerPick(l)},null,8,it),e.createElementVNode("span",{class:"name",onClick:p=>s.handleWeatherLayerPick(l)},e.toDisplayString(l.name),9,rt),l.key==="wind"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:t[6]||(t[6]=p=>s.handleToggleWindParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:t[7]||(t[7]=p=>s.handleToggleWindFeather())},"",2)])):e.createCommentVNode("",!0),l.key==="current"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:t[8]||(t[8]=p=>s.handleToggleCurrentParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:t[9]||(t[9]=p=>s.handleToggleCurrentIsoband())},"",2)])):e.createCommentVNode("",!0)],2))),128))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"available-layers flex-center",style:e.normalizeStyle({top:i.top+"px",right:i.layerToggle?"0px":"-240px"})},[e.createElementVNode("div",{class:e.normalizeClass(["list-box",i.layerToggle?"right-bar":""])},[e.createElementVNode("div",nt,[t[23]||(t[23]=e.createElementVNode("div",null,"Layers",-1)),e.createElementVNode("div",{class:"iconfont close-btn",onClick:t[10]||(t[10]=(...l)=>s.handleMenuToggle&&s.handleMenuToggle(...l))},"")]),e.createVNode(m,{style:{flex:"1"}},{default:e.withCtx(()=>[e.createElementVNode("div",lt,[e.createElementVNode("div",ct,[t[24]||(t[24]=e.createElementVNode("div",null,"Weather Layers",-1)),e.createElementVNode("div",{class:"switch flex-center",style:{"margin-right":"0"},onClick:t[11]||(t[11]=(...l)=>s.toggleAutoActive&&s.toggleAutoActive(...l))},[r.autoActive?(e.openBlock(),e.createElementBlock("i",ht,"")):(e.openBlock(),e.createElementBlock("i",dt,""))])]),e.createElementVNode("div",pt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.layers.weather,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.key},[l.hide?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(s.computeLayerClass(l,r.activeWeatherLayersCollected))},[e.createElementVNode("div",mt,[e.createElementVNode("div",{class:"checkbox",onClick:p=>s.handleWeatherLayerPick(l)},null,8,gt),e.createElementVNode("span",{class:"name",onClick:p=>s.handleWeatherLayerPick(l)},e.toDisplayString(l.name),9,At),l.key==="wind"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",yt,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindParticleCollected?"active":""]),onClick:t[12]||(t[12]=p=>s.handleToggleWindParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showWindFeatherCollected?"active":""]),onClick:t[13]||(t[13]=p=>s.handleToggleWindFeather())},"",2)])):e.createCommentVNode("",!0),l.key==="current"&&r.activeWeatherLayersCollected.some(p=>p.key===l.key)?(e.openBlock(),e.createElementBlock("div",ft,[e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentParticleCollected?"active":""]),onClick:t[14]||(t[14]=p=>s.handleToggleCurrentParticle())},"",2),e.createElementVNode("i",{class:e.normalizeClass(["iconfont sub-layer-icon",r.showCurrentIsobandCollected?"active":""]),onClick:t[15]||(t[15]=p=>s.handleToggleCurrentIsoband())},"",2)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{onClick:p=>s.handleWeatherLayerCollect(l)},[l.collected?(e.openBlock(),e.createElementBlock("i",wt,"")):(e.openBlock(),e.createElementBlock("i",bt,""))],8,ut)],2))],64))),128)),t[25]||(t[25]=e.createElementVNode("div",{class:"tip flex-start"},[e.createElementVNode("i",{class:"iconfont bookmark-icon",style:{"align-self":"flex-start",padding:"5px 5px 0 0"}},""),e.createElementVNode("div",null,"You can add the layers to your favorites. (Max 6)")],-1))])]),e.createElementVNode("div",Lt,[t[26]||(t[26]=e.createElementVNode("div",{class:"layers-title"},"Other Layers",-1)),e.createElementVNode("div",Ct,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.layers.other,l=>{var p;return e.openBlock(),e.createElementBlock("div",{key:l.key,class:e.normalizeClass(["layer flex-between",s.computeLayerClass(l,r.activeOtherLayers)]),onClick:f=>s.handleOtherLayerPick(l)},[e.createElementVNode("div",Et,[e.createElementVNode("div",Bt,[(p=s.computeLayerClass(l,r.activeOtherLayers))!=null&&p.includes("active")?(e.openBlock(),e.createElementBlock("i",vt,"")):(e.openBlock(),e.createElementBlock("i",It,""))]),e.createElementVNode("span",null,e.toDisplayString(l.name),1)])],10,xt)}),128))])]),e.createElementVNode("div",kt,[t[27]||(t[27]=e.createElementVNode("span",{class:"layers-title"},"Forecast Model",-1)),e.createElementVNode("div",Dt,[e.createVNode(h,{modelValue:r.source,"onUpdate:modelValue":t[16]||(t[16]=l=>r.source=l),class:"layer-radio flex-col-start-start",style:{width:"180px","align-items":"flex-start"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.sourceList,(l,p)=>(e.openBlock(),e.createBlock(c,{key:`source${l.name}`,value:l.name},{default:e.withCtx(()=>{var f,u,g,w,y,d;return[e.createTextVNode(e.toDisplayString(l.name)+" ",1),p!==0?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(l.resolution)+"km "+e.toDisplayString(l.length)+"days",1)):e.createCommentVNode("",!0),p===0?(e.openBlock(),e.createElementBlock("div",Nt,"Provides the best forecast")):(g=(u=(f=l==null?void 0:l.update)==null?void 0:f.default)==null?void 0:u.meta)!=null&&g.initialisationTime?(e.openBlock(),e.createElementBlock("div",St,"Update: "+e.toDisplayString(s.computeDateZ((d=(y=(w=l==null?void 0:l.update)==null?void 0:w.default)==null?void 0:y.meta)==null?void 0:d.initialisationTime)),1)):e.createCommentVNode("",!0)]}),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])])]),_:1})],2)],4)])}const Mt=P(Je,[["render",zt]]),Co="",Tt={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:v.featureCollection([]),right:10,bottom:125,windBarbLoaded:!1}},watch:{"wind.version":{handler(){var a;(a=this.wind)!=null&&a.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 a,t,i,o;if(!this.map)setTimeout(()=>{this.handleRender()},500);else if(this.wind){const r=new Date().valueOf();let s=0,n=0,c=this.empty;if((a=this.wind)!=null&&a.active&&(c=(t=this.wind)==null?void 0:t.data),(i=this.map)!=null&&i.getSource(this.source))(o=this.map)==null||o.getSource(this.source).setData(c),n=new Date().valueOf()-(r+s),console.log("[wind] update elapsed: ",n,", total: ",s+=n);else{this.map.addSource(this.source,{type:"geojson",data:c});for(let h=0;h<(this.barbs??[]).length-1;h++){const m=(this.barbs??[])[h]||0,l=(this.barbs??[])[h+1]||0,p=m<10?`00${m}kts`:m<100?`0${m}kts`:`${m}kts`;this.map.addLayer({id:p,type:"symbol",filter:["all",[">=","spd",m],["<","spd",l]],source:this.source,layout:{"symbol-placement":"point","icon-image":p,"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 a of this.barbs??[]){const t=a<10?`00${a}kts`:a<100?`0${a}kts`:`${a}kts`;this.map.getLayer(t)&&this.map.setLayoutProperty(t,"visibility",this.showWindFeather?"visible":"none")}},handleClear(){for(const a of this.barbs??[]){const t=a<10?`00${a}kts`:a<100?`0${a}kts`:`${a}kts`;this.map.getLayer(t)&&this.map.removeLayer(t)}this.map.getSource(this.source)&&this.map.removeSource(this.source),this.windBarbLoaded=!1}}};function Qt(a,t,i,o,r,s){return null}const _t=P(Tt,[["render",Qt]]);class ze{constructor(t){H(this,"map");H(this,"mercator");H(this,"rampColorLayer");H(this,"rampColorSource");H(this,"particleLayer");H(this,"particleSource");H(this,"rampColorCanvas");H(this,"particleCanvas");H(this,"ratio");this.map=t,this.mercator=new Ke,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(t,i=0){return t>180?this.convertNLng(t-360,i+1):t<-180?this.convertNLng(t+360,i+1):[t,i]}getBoundLngLat(){const t=this.map.getBounds();return[[t._sw.lng,t._ne.lat],[t._ne.lng,t._ne.lat],[t._ne.lng,t._sw.lat],[t._sw.lng,t._sw.lat]]}getBoundPixel(){const t=this.map.getBounds(),i=this.map.getZoom()+1,o=[t._ne.lng,t._ne.lat],r=[t._sw.lng,t._sw.lat],[s,n]=this.convertNLng(o[0]),[c,h]=this.convertNLng(r[0]),[m,l]=this.mercator.px([s,o[1]],i),[p,f]=this.mercator.px([c,r[1]],i),u=Math.round(this.mercator.size*Math.pow(2,i)*(n+h));return[p,f,m+u,l]}getBoundRange(){const t=this.map.getZoom()+1,i=this.mercator.size*Math.pow(2,t),o=this.getBoundPixel();return[o[0]/i,o[2]/i,o[3]/i,o[1]/i]}getWorldCopy(t,i){const o=2**i,[r,s,n,c]=t.map(l=>~~(l/(o*256))),h=[];for(let l=c;l<=s;l++)for(let p=r;p<=n;p++)h.push([p,l]);return h.map(l=>{const p=2**i*256;return[l[0]*p,l[1]*p,p]})}resize(){let t=this.map.getSource(this.rampColorSource);t.setCoordinates(this.getBoundLngLat()),t=this.map.getSource(this.particleSource),t.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(t){const i=this.map.getLayoutProperty(this.rampColorLayer,"visibility"),o=t?"visible":"none";i!==o&&this.map.setLayoutProperty(this.rampColorLayer,"visibility",o)}toggleParticle(t){const i=this.map.getLayoutProperty(this.particleLayer,"visibility"),o=t?"visible":"none";i!==o&&this.map.setLayoutProperty(this.particleLayer,"visibility",o)}}class Z{createShader(t,i,o){const r=t.createShader(i);if(r&&(t.shaderSource(r,o),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS)))throw new Error(t.getShaderInfoLog(r)||"error happened while create shader...");return r}createTexture(t,i,o,r,s,n,c){const h=t.createTexture();return t.bindTexture(t.TEXTURE_2D,h),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,o),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,r),s instanceof Uint8Array?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,n,c,0,t.RGBA,t.UNSIGNED_BYTE,s):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,s),t.bindTexture(t.TEXTURE_2D,null),h}createDataBuffer(t,i,o){if(t){const r=t.createBuffer();return i==="array"?(t.bindBuffer(t.ARRAY_BUFFER,r),o&&t.bufferData(t.ARRAY_BUFFER,o,t.STATIC_DRAW)):i==="element"&&(t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,r),o&&t.bufferData(t.ELEMENT_ARRAY_BUFFER,o,t.STATIC_DRAW)),r}return null}createProgram(t,i,o){const r=t.createProgram(),s=this.createShader(t,t.VERTEX_SHADER,i),n=this.createShader(t,t.FRAGMENT_SHADER,o);if(r&&s&&n&&(t.attachShader(r,s),t.attachShader(r,n),t.linkProgram(r),!t.getProgramParameter(r,t.LINK_STATUS)))throw new Error(t.getProgramInfoLog(r)||"error happened while creating ramp color program");return r}createProgramWrapper(t,i,o){const r=this.createProgram(t,i,o);if(r){const s={program:r},n=t.getProgramParameter(r,t.ACTIVE_ATTRIBUTES);for(let h=0;h<n;h++){const m=t.getActiveAttrib(r,h);s[m.name]=t.getAttribLocation(r,m.name)}const c=t.getProgramParameter(r,t.ACTIVE_UNIFORMS);for(let h=0;h<c;h++){const m=t.getActiveUniform(r,h);s[m.name]=t.getUniformLocation(r,m.name)}return s}}setup(t,i,o=!1,r,s){const n=document.createElement("canvas");n.width=256,n.height=1;const c=n.getContext("2d");if(c&&t){const h=c==null?void 0:c.createLinearGradient(0,0,256,0);return i.forEach(([m,l])=>{h.addColorStop(m,l)}),c.fillStyle=h,c.fillRect(0,0,256,1),{canvas:n,texture:this.createTexture(t,t.LINEAR,t.LINEAR,t.CLAMP_TO_EDGE,o?new Uint8Array(c.getImageData(0,0,256,1).data):n,r,s)}}}setupParticle(t,i=1e3){const o=Math.ceil(Math.sqrt(i)),r=o*o,s=new Uint8Array(r*4);for(let l=0;l<s.length;l++)s[l]=Math.floor(Math.random()*256);const n=this.createTexture(t,t.NEAREST,t.NEAREST,t.CLAMP_TO_EDGE,s,o,o),c=this.createTexture(t,t.NEAREST,t.NEAREST,t.CLAMP_TO_EDGE,s,o,o),h=new Float32Array(r);for(let l=0;l<r;l++)h[l]=l;const m=this.createDataBuffer(t,"array",h);return{resolution:o,total:r,texture0:n,texture1:c,indexBuffer:m}}bind(t,i,o){const r=this.createProgram(t,i,o);if(r){const s=this.createDataBuffer(t,"array",void 0),n=t.getAttribLocation(r,"a_position");t.enableVertexAttribArray(n),t.vertexAttribPointer(n,2,t.FLOAT,!1,0,0);const c=new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]);this.createDataBuffer(t,"array",c);const h=t.getAttribLocation(r,"a_texCoord");return t.enableVertexAttribArray(h),t.vertexAttribPointer(h,2,t.FLOAT,!1,0,0),{program:r,aPositionBuffer:s}}return{}}bindParticle(t,i,o,r,s,n){const c=this.createProgramWrapper(t,i,o),h=this.createProgramWrapper(t,r,s),m=this.createProgramWrapper(t,r,n),l=this.createDataBuffer(t,"array",new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1])),p=t.createFramebuffer();return{particle:c,screen:h,update:m,quadBuffer:l,frameBuffer:p}}draw(t,i,o,r,s,n,c){var h,m;if(i&&o){t.resize(),i==null||i.viewport(0,0,(h=i==null?void 0:i.canvas)==null?void 0:h.width,(m=i==null?void 0:i.canvas)==null?void 0:m.height),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT);try{const l=i.getUniformLocation(o,"u_resolution"),p=i.getUniformLocation(o,"u_image"),f=i.getUniformLocation(o,"u_color");if(i.useProgram(o),i.uniform2f(l,i.canvas.width*t.ratio,i.canvas.height*t.ratio),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,r),i.uniform1i(p,0),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,s),i.uniform1i(f,1),c!=null&&c.uvRange&&(c!=null&&c.sRange)){const d=i.getUniformLocation(o,"u_range_u_v"),L=i.getUniformLocation(o,"u_range_s");i.uniform2f(d,c.uvRange[0],c.uvRange[1]),i.uniform2f(L,c.sRange[0],c.sRange[1])}const u=i.getUniformLocation(o,"u_scale");i.uniform1f(u,(c==null?void 0:c.scale)||1);const g=t.getBoundPixel(),w=t.map.getZoom()+1,y=t.getWorldCopy(g,w);for(const d of y){const L=(d[0]-g[0])*t.ratio,A=(d[1]-g[3])*t.ratio,C=d[2]*t.ratio,[I,E,k,N]=[L,C+L,A,C+A],D=new Float32Array([I,k,E,k,I,N,I,N,E,k,E,N]);i.bindBuffer(i.ARRAY_BUFFER,n),i.bufferData(i.ARRAY_BUFFER,D,i.STATIC_DRAW),i.drawArrays(i.TRIANGLES,0,6)}}catch(l){console.log(`render failed...${l}`)}}}drawParticle(t,i,o,r,s){var n,c;i&&(i==null||i.viewport(0,0,(n=i==null?void 0:i.canvas)==null?void 0:n.width,(c=i==null?void 0:i.canvas)==null?void 0:c.height),i.disable(i.DEPTH_TEST),i.disable(i.STENCIL_TEST),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,o),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,r.texture0),this.renderScreen(t,i,r,s),this.updateParticles(t,i,r,s))}renderScreen(t,i,o,r){i.bindFramebuffer(i.FRAMEBUFFER,o.frameBuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.screenTexture,0),i.viewport(0,0,i.canvas.width,i.canvas.height),this.renderScreenTexture(i,o.backgroundTexture,o.screen,o.quadBuffer,.95),this.renderParticles(t,i,o,r),i.bindFramebuffer(i.FRAMEBUFFER,null),this.renderScreenTexture(i,o.screenTexture,o.screen,o.quadBuffer,1);const s=o.backgroundTexture;o.backgroundTexture=o.screenTexture,o.screenTexture=s}renderScreenTexture(t,i,o,r,s){t&&(t.useProgram(o.program),t.bindBuffer(t.ARRAY_BUFFER,r),t.enableVertexAttribArray(o.a_pos),t.vertexAttribPointer(o.a_pos,2,t.FLOAT,!1,0,0),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,i),t.uniform1i(o.u_screen,2),t.uniform1f(o.u_opacity,s),t.drawArrays(t.TRIANGLES,0,6))}renderParticles(t,i,o,r){if(i){i.useProgram(o.particle.program),i.bindBuffer(i.ARRAY_BUFFER,o.indexBuffer),i.enableVertexAttribArray(o.particle.a_index),i.vertexAttribPointer(o.particle.a_index,1,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,o.color.texture),i.uniform1i(o.particle.u_factor,0),i.uniform1i(o.particle.u_particles,1),i.uniform1i(o.particle.u_color_ramp,2),i.uniform1f(o.particle.u_particles_resolution,o.resolution*t.ratio),i.uniform1f(o.particle.u_point,t.ratio);const s=t.getBoundRange();i.uniform4f(o.particle.u_viewport,s[0],s[1],s[2],s[3]),i.uniform2f(o.particle.u_factor_min,r.uvRange[0],r.uvRange[0]),i.uniform2f(o.particle.u_factor_max,r.uvRange[1],r.uvRange[1]),i.drawArrays(i.POINTS,0,o.total)}}updateParticles(t,i,o,r){var n,c;if(i){i.bindFramebuffer(i.FRAMEBUFFER,o.frameBuffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o.texture1,0),i.viewport(0,0,o.resolution,o.resolution),i.useProgram(o.update.program),i.bindBuffer(i.ARRAY_BUFFER,o.quadBuffer),i.enableVertexAttribArray(o.update.a_pos),i.vertexAttribPointer(o.update.a_pos,2,i.FLOAT,!1,0,0),i.uniform1i(o.update.u_factor,0),i.uniform1i(o.update.u_particles,1);const h=t.getBoundRange();i.uniform4f(o.update.u_viewport,h[0],h[1],h[2],h[3]),i.uniform1f(o.update.u_rand_seed,Math.random()),i.uniform2f(o.update.u_factor_res,(n=o==null?void 0:o.image)==null?void 0:n.width,(c=o==null?void 0:o.image)==null?void 0:c.height),i.uniform2f(o.update.u_factor_min,r.uvRange[0],r.uvRange[0]),i.uniform2f(o.update.u_factor_max,r.uvRange[1],r.uvRange[1]),i.uniform1f(o.update.u_speed_factor,r.speedFactor*t.ratio),i.uniform1f(o.update.u_drop_rate,r.dropRate),i.uniform1f(o.update.u_drop_rate_bump,r.dropRateBump),i.drawArrays(i.TRIANGLES,0,6)}const s=o.texture0;o.texture0=o.texture1,o.texture1=s}resize(t,i){t.resize();const o=new Uint8Array(i.canvas.width*i.canvas.height*4).fill(0,0,i.canvas.width*i.canvas.height*4),r=this.createTexture(i,i.NEAREST,i.NEAREST,i.CLAMP_TO_EDGE,o,i.canvas.width,i.canvas.height),s=this.createTexture(i,i.NEAREST,i.NEAREST,i.CLAMP_TO_EDGE,o,i.canvas.width,i.canvas.height);return{screenTexture:r,backgroundTexture:s}}async loadImg(t){return new Promise(i=>{const o=new Blob([t],{type:t.type}),r=URL.createObjectURL(o),s=new Image;s.crossOrigin="anonymous",s.src=r,s.onload=()=>i(s)})}}class V{}H(V,"vertexSchema",`
2
2
  //canvas 坐标系上的坐标 (x, y)
3
3
  attribute vec2 a_position; //像素坐标
4
4
  attribute vec2 a_texCoord; //纹理坐标
@@ -63,6 +63,10 @@ declare namespace _sfc_main {
63
63
  const _default_6: undefined;
64
64
  export { _default_6 as default };
65
65
  }
66
+ namespace forecastModel {
67
+ const type_12: StringConstructor;
68
+ export { type_12 as type };
69
+ }
66
70
  }
67
71
  const emits: string[];
68
72
  function data(): {
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-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-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:160px;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-a19c3da9]{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-a19c3da9]{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-a9741758]{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-a9741758]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.idm-gl2-arctic-legend-bars{margin-bottom:30px;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));border-radius:5px;text-shadow:var(--idm-text-shadow);box-shadow:var(--idm-gl-box-shadow)}.idm-gl2-arctic-legend-bars span{font-size:14px;text-align:center;color:var(--idm-white-8);width:40px}.idm-gl2-arctic-legend-bars[data-v-29257f7d]{margin-bottom:30px;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));border-radius:5px;text-shadow:var(--idm-text-shadow);box-shadow:var(--idm-gl-box-shadow)}.idm-gl2-arctic-legend-bars span[data-v-29257f7d]{font-size:14px;text-align:center;color:var(--idm-white-8);width:40px}.active-tropical[data-v-44a4e671]{bottom:unset;background:var(--idm-white-9);padding:10px;border-radius:5px;box-shadow:0 2px 12px #0003;z-index:5}.active-tropical .header-box[data-v-44a4e671]{min-width:360px;margin-bottom:10px;box-sizing:border-box;color:var(--idm-black-8)}.active-tropical .header-box .close-btn[data-v-44a4e671]{position:relative;height:0px;text-align:right;font-size:20px;color:var(--idm-black-2);cursor:pointer}.active-tropical .header-box .close-btn[data-v-44a4e671]:hover{color:var(--idm-primary-color)}.active-tropical .header-box .main[data-v-44a4e671]{font-size:16px}.active-tropical .header-box .sub[data-v-44a4e671]{margin:3px 0;font-size:12px;color:var(--idm-info-color)}.active-tropical .main-box[data-v-44a4e671]{min-width:360px;color:var(--idm-black-8);overflow-y:auto;box-sizing:border-box;font-size:12px;z-index:4}.active-tropical .main-box .content[data-v-44a4e671]{padding:5px 0;border-radius:5px;background:var(--idm-gray-light)}.active-tropical .main-box .row[data-v-44a4e671]{width:100%;padding:4px 10px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.active-tropical .main-box .row .col[data-v-44a4e671]{display:flex;align-items:center;justify-content:space-between}.active-tropical .main-box .row .col label[data-v-44a4e671]{width:82px;margin-right:4px;color:var(--idm-info-color)}.active-tropical .main-box .row .col.col-24[data-v-44a4e671]{width:100%}.active-tropical .main-box .row .col.col-left[data-v-44a4e671]{width:55%}.active-tropical .main-box .row .col.col-right[data-v-44a4e671]{width:40%}.active-tropical .main-box .row .col .icon[data-v-44a4e671]{font-size:30px;color:var(--idm-black-4)}.active-tropical .main-box .row .col .icon.active[data-v-44a4e671]{color:var(--idm-primary-color)}.forecast-models[data-v-44a4e671]{display:flex;justify-content:flex-end;flex:1;margin-left:5px;flex-wrap:wrap}.forecast-models .model[data-v-44a4e671]{font-size:12px;padding:0 6px 4px;display:flex;border:1px solid var(--idm-primary-color);cursor:pointer}.forecast-models .model span[data-v-44a4e671]{border-bottom:2px dashed var(--idm-white)}.forecast-models .model span.cma[data-v-44a4e671]{border-color:#e2ea03cc}.forecast-models .model span.jma[data-v-44a4e671]{border-color:#01d2b7cc}.forecast-models .model span.ecmwf[data-v-44a4e671]{border-color:#f582f2cc}.forecast-models .model span.ukm[data-v-44a4e671]{border-color:#f5bb47cc}.forecast-models .model span.noaa-at[data-v-44a4e671],.forecast-models .model span.noaa-ep[data-v-44a4e671]{border-color:#9758fbcc}.forecast-models .model.active[data-v-44a4e671]{border:1px solid var(--idm-primary-color);background-color:var(--idm-primary-color);color:var(--idm-white)}.forecast-models .model[data-v-44a4e671]:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.forecast-models .model.center-child[data-v-44a4e671]{border-left:1px solid var(--idm-primary-color);border-right:1px solid var(--idm-primary-color)}.forecast-models .model[data-v-44a4e671]:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.legend[data-v-44a4e671]{display:flex;align-items:center;color:var(--idm-info-color)}.legend .icon[data-v-44a4e671]{height:14px;width:14px;border-radius:50%;border:3px solid #fff;margin-right:3px}.legend .icon.td[data-v-44a4e671]{background-color:var(--idm-tropicals-td)}.legend .icon.ts[data-v-44a4e671]{background-color:var(--idm-tropicals-ts)}.legend .icon.sts[data-v-44a4e671]{background-color:var(--idm-tropicals-sts)}.legend .icon.ty[data-v-44a4e671]{background-color:var(--idm-tropicals-ty)}.legend .icon.sty[data-v-44a4e671]{background-color:var(--idm-tropicals-sty)}.legend .icon.supper-ty[data-v-44a4e671]{background-color:var(--idm-tropicals-super-ty)}.legend .icon.r7[data-v-44a4e671]{border:1.5px solid var(--idm-tropicals-r7)}.legend .icon.r10[data-v-44a4e671]{border:1.5px solid var(--idm-tropicals-r10)}.legend .icon.history[data-v-44a4e671]{border:none;border-radius:0;height:4px;background:var(--idm-black-5)}.legend .button[data-v-44a4e671]{cursor:pointer;padding:0 4px;border-radius:4px;border:1px solid var(--idm-primary-color);color:var(--idm-primary-color)}.more[data-v-44a4e671]{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-0e299352]{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-0e299352]{font-size:12px;text-align:center;color:var(--idm-white);width:35px}.legend-bars[data-v-46d62c81]{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-46d62c81]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.legend-bars[data-v-839d844f]{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-839d844f]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-1573eb2b]{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-1573eb2b]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-5215043b]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-5215043b]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.point-meteo[data-v-cdc6da70]{bottom:unset;z-index:9;top:0!important}.point-meteo .meteo-box[data-v-cdc6da70]{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-cdc6da70]{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-cdc6da70]{margin:0 5px}.point-meteo .meteo-box .header-box .close[data-v-cdc6da70]{font-size:18px;color:var(--idm-black-3);cursor:pointer}.point-meteo .meteo-box .header-box .close[data-v-cdc6da70]:hover{color:var(--idm-primary-color)}.point-meteo .meteo-box .header-box .toggle[data-v-cdc6da70]{margin-right:10px;font-size:22px;color:var(--idm-primary-color);cursor:pointer}.point-meteo .meteo-box .main-box[data-v-cdc6da70]{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-cdc6da70]{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-cdc6da70]{color:var(--idm-white)!important}.point-meteo .meteo-box .main-box.day-bg[data-v-cdc6da70]{color:var(--idm-black-7);background:#fff}.point-meteo .meteo-box .main-box.font-color-white[data-v-cdc6da70]{color:var(--idm-white)}.point-meteo .meteo-box .main-box .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .info[data-v-cdc6da70]{font-size:13px;opacity:.8}.point-meteo .meteo-box .main-box .summary-row[data-v-cdc6da70]{margin-bottom:10px}.point-meteo .meteo-box .main-box .summary-row .summary .icon[data-v-cdc6da70]{height:60px;width:60px;cursor:pointer}.point-meteo .meteo-box .main-box .summary-row .summary .temp[data-v-cdc6da70]{font-size:28px;margin:0 20px 0 5px}.point-meteo .meteo-box .main-box .summary-row .summary .des[data-v-cdc6da70]{font-size:13px}.point-meteo .meteo-box .main-box .summary-row .summary label[data-v-cdc6da70]{margin-right:2px}.point-meteo .meteo-box .main-box .summary-row .date[data-v-cdc6da70]{margin:0 5px;font-size:14px}.point-meteo .meteo-box .main-box .summary-row .row[data-v-cdc6da70]{padding:3px 0;box-sizing:border-box}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-cdc6da70]{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-cdc6da70]{color:#409eff;font-weight:600;border-bottom:2px solid #409EFF}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-cdc6da70]:hover{color:#409eff;font-weight:600}.point-meteo .meteo-box .main-box .detail-box .basic-table[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table[data-v-cdc6da70]{width:100%;height:152px;font-size:12px}.point-meteo .meteo-box .main-box .detail-box .basic-table tr[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table tr[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table tr[data-v-cdc6da70]{width:100%}.point-meteo .meteo-box .main-box .detail-box .basic-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table td[data-v-cdc6da70]{text-align:center;height:18px;line-height:15px;width:43px}.point-meteo .meteo-box .main-box .detail-box .basic-table th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table th[data-v-cdc6da70]{font-weight:400}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-title[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-title[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-title[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-title[data-v-cdc6da70]{text-align:right!important;width:95px}.point-meteo .meteo-box .main-box .detail-box .basic-table .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .unit[data-v-cdc6da70]{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-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide[data-v-cdc6da70]{padding:5px 40px}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide td[data-v-cdc6da70]{width:max-content!important}.point-meteo .meteo-box .main-box .detail-box .basic-table .weather-icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .weather-icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .weather-icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .weather-icon[data-v-cdc6da70]{width:22px;height:22px;cursor:pointer}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon[data-v-cdc6da70]{font-size:10px;margin-right:1px}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.wind[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.wind[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.wind[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.wind[data-v-cdc6da70]{color:#60c43e}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.windwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.windwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.windwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.windwave[data-v-cdc6da70]{color:#017c8a}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.swell[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.swell[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.swell[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.swell[data-v-cdc6da70]{color:#21baa3}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.current[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.current[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.current[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.current[data-v-cdc6da70]{color:#bc6cfe}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.orange[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.orange[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.orange[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.orange[data-v-cdc6da70]{color:var(--idm-warning-color-light)}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.gray[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.gray[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.gray[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.gray[data-v-cdc6da70]{color:var(--idm-black-6)}.point-meteo .meteo-box .main-box .more[data-v-cdc6da70]{margin-top:5px;padding:5px 10px 5px 0;text-align:right;font-size:14px;font-weight:600;font-style:italic;cursor:pointer}.point-meteo .meteo-box .main-box .more.day[data-v-cdc6da70]{color:var(--idm-black-7);border-top:1px solid var(--idm-black-2)}.point-meteo .meteo-box .main-box .more.night[data-v-cdc6da70]{color:var(--idm-white);border-top:1px solid var(--idm-white-2)}.point-meteo .meteo-box .main-box .more[data-v-cdc6da70]:hover{font-style:normal;color:#409eff}.point-meteo[data-v-cdc6da70]: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-cdc6da70]: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-2fc5fc5e]{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-2fc5fc5e]{min-width:240px;width:max-content}#port-info .port-box .flex-start[data-v-2fc5fc5e]{line-height:2}#port-info .port-box .flex-start label[data-v-2fc5fc5e]{color:var(--idm-info-color);margin-right:10px;width:50px}#port-info .port-box .flex-start span[data-v-2fc5fc5e]{flex:1;flex-wrap:wrap;text-align:justify-all;color:var(--idm-black-8)}#port-info .port-box .flex-start span.link[data-v-2fc5fc5e]{cursor:pointer;text-decoration:underline}#port-info .port-box .flex-start span.link[data-v-2fc5fc5e]:hover{font-weight:600}#port-info .port-box .meteo-forecast[data-v-2fc5fc5e]{color:var(--idm-primary-color);font-size:14px;font-weight:700;cursor:pointer}#port-info .close[data-v-2fc5fc5e]{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-2fc5fc5e]:hover{color:var(--idm-primary-color)}.lat-lng-tip[data-v-ad66a24c]{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-7301123d]{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-7301123d]{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-7301123d]{padding:8px;display:flex}.menu-bar-box .bar-item .menu-icon[data-v-7301123d]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.menu-bar-box .bar-item .menu-icon[data-v-7301123d]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.menu-bar-box .bar-item .menu-icon span[data-v-7301123d]{font-size:18px;font-weight:500;color:var(--idm-black-8)}.menu-bar-box .bar-item .menu-icon.active[data-v-7301123d]{background:var(--idm-primary-color)}.menu-bar-box .bar-item .menu-icon.active span[data-v-7301123d]{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}@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:160px;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-a19c3da9]{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-a19c3da9]{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-a9741758]{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-a9741758]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.idm-gl2-arctic-legend-bars{margin-bottom:30px;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));border-radius:5px;text-shadow:var(--idm-text-shadow);box-shadow:var(--idm-gl-box-shadow)}.idm-gl2-arctic-legend-bars span{font-size:14px;text-align:center;color:var(--idm-white-8);width:40px}.idm-gl2-arctic-legend-bars[data-v-29257f7d]{margin-bottom:30px;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));border-radius:5px;text-shadow:var(--idm-text-shadow);box-shadow:var(--idm-gl-box-shadow)}.idm-gl2-arctic-legend-bars span[data-v-29257f7d]{font-size:14px;text-align:center;color:var(--idm-white-8);width:40px}.active-tropical[data-v-44a4e671]{bottom:unset;background:var(--idm-white-9);padding:10px;border-radius:5px;box-shadow:0 2px 12px #0003;z-index:5}.active-tropical .header-box[data-v-44a4e671]{min-width:360px;margin-bottom:10px;box-sizing:border-box;color:var(--idm-black-8)}.active-tropical .header-box .close-btn[data-v-44a4e671]{position:relative;height:0px;text-align:right;font-size:20px;color:var(--idm-black-2);cursor:pointer}.active-tropical .header-box .close-btn[data-v-44a4e671]:hover{color:var(--idm-primary-color)}.active-tropical .header-box .main[data-v-44a4e671]{font-size:16px}.active-tropical .header-box .sub[data-v-44a4e671]{margin:3px 0;font-size:12px;color:var(--idm-info-color)}.active-tropical .main-box[data-v-44a4e671]{min-width:360px;color:var(--idm-black-8);overflow-y:auto;box-sizing:border-box;font-size:12px;z-index:4}.active-tropical .main-box .content[data-v-44a4e671]{padding:5px 0;border-radius:5px;background:var(--idm-gray-light)}.active-tropical .main-box .row[data-v-44a4e671]{width:100%;padding:4px 10px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.active-tropical .main-box .row .col[data-v-44a4e671]{display:flex;align-items:center;justify-content:space-between}.active-tropical .main-box .row .col label[data-v-44a4e671]{width:82px;margin-right:4px;color:var(--idm-info-color)}.active-tropical .main-box .row .col.col-24[data-v-44a4e671]{width:100%}.active-tropical .main-box .row .col.col-left[data-v-44a4e671]{width:55%}.active-tropical .main-box .row .col.col-right[data-v-44a4e671]{width:40%}.active-tropical .main-box .row .col .icon[data-v-44a4e671]{font-size:30px;color:var(--idm-black-4)}.active-tropical .main-box .row .col .icon.active[data-v-44a4e671]{color:var(--idm-primary-color)}.forecast-models[data-v-44a4e671]{display:flex;justify-content:flex-end;flex:1;margin-left:5px;flex-wrap:wrap}.forecast-models .model[data-v-44a4e671]{font-size:12px;padding:0 6px 4px;display:flex;border:1px solid var(--idm-primary-color);cursor:pointer}.forecast-models .model span[data-v-44a4e671]{border-bottom:2px dashed var(--idm-white)}.forecast-models .model span.cma[data-v-44a4e671]{border-color:#e2ea03cc}.forecast-models .model span.jma[data-v-44a4e671]{border-color:#01d2b7cc}.forecast-models .model span.ecmwf[data-v-44a4e671]{border-color:#f582f2cc}.forecast-models .model span.ukm[data-v-44a4e671]{border-color:#f5bb47cc}.forecast-models .model span.noaa-at[data-v-44a4e671],.forecast-models .model span.noaa-ep[data-v-44a4e671]{border-color:#9758fbcc}.forecast-models .model.active[data-v-44a4e671]{border:1px solid var(--idm-primary-color);background-color:var(--idm-primary-color);color:var(--idm-white)}.forecast-models .model[data-v-44a4e671]:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.forecast-models .model.center-child[data-v-44a4e671]{border-left:1px solid var(--idm-primary-color);border-right:1px solid var(--idm-primary-color)}.forecast-models .model[data-v-44a4e671]:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.legend[data-v-44a4e671]{display:flex;align-items:center;color:var(--idm-info-color)}.legend .icon[data-v-44a4e671]{height:14px;width:14px;border-radius:50%;border:3px solid #fff;margin-right:3px}.legend .icon.td[data-v-44a4e671]{background-color:var(--idm-tropicals-td)}.legend .icon.ts[data-v-44a4e671]{background-color:var(--idm-tropicals-ts)}.legend .icon.sts[data-v-44a4e671]{background-color:var(--idm-tropicals-sts)}.legend .icon.ty[data-v-44a4e671]{background-color:var(--idm-tropicals-ty)}.legend .icon.sty[data-v-44a4e671]{background-color:var(--idm-tropicals-sty)}.legend .icon.supper-ty[data-v-44a4e671]{background-color:var(--idm-tropicals-super-ty)}.legend .icon.r7[data-v-44a4e671]{border:1.5px solid var(--idm-tropicals-r7)}.legend .icon.r10[data-v-44a4e671]{border:1.5px solid var(--idm-tropicals-r10)}.legend .icon.history[data-v-44a4e671]{border:none;border-radius:0;height:4px;background:var(--idm-black-5)}.legend .button[data-v-44a4e671]{cursor:pointer;padding:0 4px;border-radius:4px;border:1px solid var(--idm-primary-color);color:var(--idm-primary-color)}.more[data-v-44a4e671]{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-0e299352]{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-0e299352]{font-size:12px;text-align:center;color:var(--idm-white);width:35px}.legend-bars[data-v-46d62c81]{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-46d62c81]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.legend-bars[data-v-839d844f]{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-839d844f]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-1573eb2b]{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-1573eb2b]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-5215043b]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-5215043b]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.point-meteo[data-v-cdc6da70]{bottom:unset;z-index:9;top:0!important}.point-meteo .meteo-box[data-v-cdc6da70]{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-cdc6da70]{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-cdc6da70]{margin:0 5px}.point-meteo .meteo-box .header-box .close[data-v-cdc6da70]{font-size:18px;color:var(--idm-black-3);cursor:pointer}.point-meteo .meteo-box .header-box .close[data-v-cdc6da70]:hover{color:var(--idm-primary-color)}.point-meteo .meteo-box .header-box .toggle[data-v-cdc6da70]{margin-right:10px;font-size:22px;color:var(--idm-primary-color);cursor:pointer}.point-meteo .meteo-box .main-box[data-v-cdc6da70]{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-cdc6da70]{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-cdc6da70]{color:var(--idm-white)!important}.point-meteo .meteo-box .main-box.day-bg[data-v-cdc6da70]{color:var(--idm-black-7);background:#fff}.point-meteo .meteo-box .main-box.font-color-white[data-v-cdc6da70]{color:var(--idm-white)}.point-meteo .meteo-box .main-box .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .info[data-v-cdc6da70]{font-size:13px;opacity:.8}.point-meteo .meteo-box .main-box .summary-row[data-v-cdc6da70]{margin-bottom:10px}.point-meteo .meteo-box .main-box .summary-row .summary .icon[data-v-cdc6da70]{height:60px;width:60px;cursor:pointer}.point-meteo .meteo-box .main-box .summary-row .summary .temp[data-v-cdc6da70]{font-size:28px;margin:0 20px 0 5px}.point-meteo .meteo-box .main-box .summary-row .summary .des[data-v-cdc6da70]{font-size:13px}.point-meteo .meteo-box .main-box .summary-row .summary label[data-v-cdc6da70]{margin-right:2px}.point-meteo .meteo-box .main-box .summary-row .date[data-v-cdc6da70]{margin:0 5px;font-size:14px}.point-meteo .meteo-box .main-box .summary-row .row[data-v-cdc6da70]{padding:3px 0;box-sizing:border-box}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-cdc6da70]{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-cdc6da70]{color:#409eff;font-weight:600;border-bottom:2px solid #409EFF}.point-meteo .meteo-box .main-box .detail-box .menu-header .menu-item[data-v-cdc6da70]:hover{color:#409eff;font-weight:600}.point-meteo .meteo-box .main-box .detail-box .basic-table[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table[data-v-cdc6da70]{width:100%;height:152px;font-size:12px}.point-meteo .meteo-box .main-box .detail-box .basic-table tr[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table tr[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table tr[data-v-cdc6da70]{width:100%}.point-meteo .meteo-box .main-box .detail-box .basic-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table tr th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table td[data-v-cdc6da70]{text-align:center;height:18px;line-height:15px;width:43px}.point-meteo .meteo-box .main-box .detail-box .basic-table th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table th[data-v-cdc6da70]{font-weight:400}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-title[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-title[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-title[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-title[data-v-cdc6da70]{text-align:right!important;width:95px}.point-meteo .meteo-box .main-box .detail-box .basic-table .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .unit[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .unit[data-v-cdc6da70]{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-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide[data-v-cdc6da70]{padding:5px 40px}.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table .tr-tide td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .tr-tide td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .tr-tide td[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide th[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .tr-tide td[data-v-cdc6da70]{width:max-content!important}.point-meteo .meteo-box .main-box .detail-box .basic-table .weather-icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .weather-icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .weather-icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .weather-icon[data-v-cdc6da70]{width:22px;height:22px;cursor:pointer}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon[data-v-cdc6da70]{font-size:10px;margin-right:1px}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.blue[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.wind[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.wind[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.wind[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.wind[data-v-cdc6da70]{color:#60c43e}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.sigwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.windwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.windwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.windwave[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.windwave[data-v-cdc6da70]{color:#017c8a}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.swell[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.swell[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.swell[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.swell[data-v-cdc6da70]{color:#21baa3}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.current[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.current[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.current[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.current[data-v-cdc6da70]{color:#bc6cfe}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.orange[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.orange[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.orange[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.orange[data-v-cdc6da70]{color:var(--idm-warning-color-light)}.point-meteo .meteo-box .main-box .detail-box .basic-table .icon.gray[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .wave-current-table .icon.gray[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .sea-table .icon.gray[data-v-cdc6da70],.point-meteo .meteo-box .main-box .detail-box .tide-table .icon.gray[data-v-cdc6da70]{color:var(--idm-black-6)}.point-meteo .meteo-box .main-box .more[data-v-cdc6da70]{margin-top:5px;padding:5px 10px 5px 0;text-align:right;font-size:14px;font-weight:600;font-style:italic;cursor:pointer}.point-meteo .meteo-box .main-box .more.day[data-v-cdc6da70]{color:var(--idm-black-7);border-top:1px solid var(--idm-black-2)}.point-meteo .meteo-box .main-box .more.night[data-v-cdc6da70]{color:var(--idm-white);border-top:1px solid var(--idm-white-2)}.point-meteo .meteo-box .main-box .more[data-v-cdc6da70]:hover{font-style:normal;color:#409eff}.point-meteo[data-v-cdc6da70]: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-cdc6da70]: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-2fc5fc5e]{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-2fc5fc5e]{min-width:240px;width:max-content}#port-info .port-box .flex-start[data-v-2fc5fc5e]{line-height:2}#port-info .port-box .flex-start label[data-v-2fc5fc5e]{color:var(--idm-info-color);margin-right:10px;width:50px}#port-info .port-box .flex-start span[data-v-2fc5fc5e]{flex:1;flex-wrap:wrap;text-align:justify-all;color:var(--idm-black-8)}#port-info .port-box .flex-start span.link[data-v-2fc5fc5e]{cursor:pointer;text-decoration:underline}#port-info .port-box .flex-start span.link[data-v-2fc5fc5e]:hover{font-weight:600}#port-info .port-box .meteo-forecast[data-v-2fc5fc5e]{color:var(--idm-primary-color);font-size:14px;font-weight:700;cursor:pointer}#port-info .close[data-v-2fc5fc5e]{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-2fc5fc5e]:hover{color:var(--idm-primary-color)}.lat-lng-tip[data-v-ad66a24c]{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-7301123d]{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-7301123d]{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-7301123d]{padding:8px;display:flex}.menu-bar-box .bar-item .menu-icon[data-v-7301123d]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.menu-bar-box .bar-item .menu-icon[data-v-7301123d]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.menu-bar-box .bar-item .menu-icon span[data-v-7301123d]{font-size:18px;font-weight:500;color:var(--idm-black-8)}.menu-bar-box .bar-item .menu-icon.active[data-v-7301123d]{background:var(--idm-primary-color)}.menu-bar-box .bar-item .menu-icon.active span[data-v-7301123d]{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}@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": "5.5.8",
4
+ "version": "5.5.9",
5
5
  "description": "idm webgl3",
6
6
  "type": "module",
7
7
  "keywords": [