@idmwx/idmui-gl4 2.9.0 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { l as b } from "./index-1e2659ec.js";
1
+ import { l as b } from "./index-e501d918.js";
2
2
  function M(e) {
3
3
  return typeof e == "string" && /^data:image\/svg\+xml/i.test(e);
4
4
  }
@@ -1,4 +1,4 @@
1
- import { W as a } from "./chunk-3VYIPD3A-de747d6d.js";
1
+ import { W as a } from "./chunk-3VYIPD3A-e66f094c.js";
2
2
  async function o(r, t) {
3
3
  let i = await a(r, t), e = new Image();
4
4
  return e.src = i.toDataURL(`image/${t.format}`, t.quality), await e.decode(), e.style.width = `${i.width / t.dpr}px`, e.style.height = `${i.height / t.dpr}px`, e;
@@ -1,4 +1,4 @@
1
- import { W as m } from "./chunk-3VYIPD3A-de747d6d.js";
1
+ import { W as m } from "./chunk-3VYIPD3A-e66f094c.js";
2
2
  async function a(n, e) {
3
3
  let o = e.type;
4
4
  if (o === "svg") {
@@ -1,6 +1,6 @@
1
- import { m as d } from "./chunk-T4JIPPZO-0e79060d.js";
2
- import { W as f } from "./chunk-3VYIPD3A-de747d6d.js";
3
- import "./index-1e2659ec.js";
1
+ import { m as d } from "./chunk-T4JIPPZO-3355e75e.js";
2
+ import { W as f } from "./chunk-3VYIPD3A-e66f094c.js";
3
+ import "./index-e501d918.js";
4
4
  import "axios";
5
5
  import "vuetify";
6
6
  import "vue";
@@ -8703,12 +8703,6 @@ const Oc = {
8703
8703
  };
8704
8704
  },
8705
8705
  computed: {
8706
- // menuStyle() {
8707
- // if (this.simple) {
8708
- // return { top: this.top + this.paddingTop + 46 + 'px', right: 10 + 'px' }
8709
- // }
8710
- // return { top: this.top + this.paddingTop + 46 + 'px', right: this.right + 'px' }
8711
- // },
8712
8706
  listStyle() {
8713
8707
  return this.simple ? { top: this.top + "px", left: this.toggle ? "0px" : "-280px" } : { top: this.top + "px", right: this.toggle ? "0px" : "-280px" };
8714
8708
  },
@@ -8782,7 +8776,11 @@ const Oc = {
8782
8776
  },
8783
8777
  renderKey: {
8784
8778
  handler(e, t) {
8785
- e && e !== t ? e === "wave-group" ? this.checkList = ["wave-group", this.waveToggleValue || "sig-wave"] : e === "ice-forecast" ? this.checkList = ["ice-forecast", this.iceToggleValue || "ice-cover"] : this.checkList = [e] : !e && t && (this.checkList = this.checkList.filter((o) => o !== t));
8779
+ if (e && e !== t) {
8780
+ const o = this.checkList.filter((i) => !this.rendersKeys.some((a) => a === i));
8781
+ e === "wave-group" ? (this.waveToggleValue = this.waveToggleValue || "sig-wave", this.checkList = [...o, "wave-group", this.waveToggleValue]) : e === "ice-forecast" ? (this.iceToggleValue = this.iceToggleValue || "ice-cover", this.checkList = [...o, "ice-forecast", this.iceToggleValue || "ice-cover"]) : this.checkList = [...o, e];
8782
+ } else
8783
+ !e && t && (this.checkList = this.checkList.filter((o) => o !== t));
8786
8784
  }
8787
8785
  },
8788
8786
  checkList: {
@@ -8799,12 +8797,18 @@ const Oc = {
8799
8797
  },
8800
8798
  iceToggleValue: {
8801
8799
  handler(e) {
8802
- e && (this.checkList = ["ice-forecast", this.iceToggleValue]);
8800
+ if (e) {
8801
+ const t = this.checkList.filter((o) => !this.rendersKeys.some((i) => i === o));
8802
+ this.checkList = [...t, "ice-forecast", this.iceToggleValue];
8803
+ }
8803
8804
  }
8804
8805
  },
8805
8806
  waveToggleValue: {
8806
8807
  handler(e) {
8807
- e && (this.checkList = ["wave-group", this.waveToggleValue]);
8808
+ if (e) {
8809
+ const t = this.checkList.filter((o) => !this.rendersKeys.some((i) => i === o));
8810
+ this.checkList = [...t, "wave-group", this.waveToggleValue];
8811
+ }
8808
8812
  }
8809
8813
  },
8810
8814
  showWindParticle: {
@@ -8855,8 +8859,8 @@ const Oc = {
8855
8859
  handleCheckListChange(e, t) {
8856
8860
  if (this.arraysEqual(e, t))
8857
8861
  return !1;
8858
- const o = [...new Set(e)], i = o == null ? void 0 : o.filter((r) => !(t != null && t.includes(r)))[0], a = t == null ? void 0 : t.filter((r) => !(o != null && o.includes(r)))[0];
8859
- i && (i === "ice-cover" || i === "ice-thickness" || i === "ice-forecast" ? (this.checkList = ["ice-forecast", this.iceToggleValue || "ice-cover"], this.iceToggleValue = this.iceToggleValue || "ice-cover") : i === "sig-wave" || i === "swell" || i === "wave-group" ? (this.checkList = ["wave-group", this.waveToggleValue || "sig-wave"], this.waveToggleValue = this.waveToggleValue || "sig-wave") : this.rendersKeys.includes(i) ? this.checkList = [i] : (this.checkList = o.filter((r) => !this.rendersKeys.includes(r)), this.renderKey = void 0)), a && (a === "ice-forecast" ? (this.checkList = o.filter((r) => !["ice-cover", "ice-thickness", "ice-forecast"].includes(r)), this.iceToggleValue = void 0) : a === "wave-group" ? (this.checkList = o.filter((r) => !["wave-group", "sig-wave", "swell"].includes(r)), this.waveToggleValue = void 0) : this.checkList = o), this.checkList.includes("wind-particle") && (this.showWindParticle = !0), this.checkList.includes("current-particle") && (this.showCurrentParticle = !0), localStorage.setItem(this.cache.checkListKey, JSON.stringify(o)), this.activeWeatherLayers = this.autoActive ? this.allLayers.filter((r) => o.includes(r.key)) : [], this.handleWeatherLayerChange();
8862
+ const o = [...new Set(e)], i = o == null ? void 0 : o.filter((l) => !(t != null && t.includes(l)))[0], a = t == null ? void 0 : t.filter((l) => !(o != null && o.includes(l)))[0], r = this.checkList.filter((l) => !this.rendersKeys.some((c) => c === l));
8863
+ i && (i === "ice-cover" || i === "ice-thickness" || i === "ice-forecast" ? (this.checkList = [...r, "ice-forecast", this.iceToggleValue || "ice-cover"], this.iceToggleValue = this.iceToggleValue || "ice-cover") : i === "sig-wave" || i === "swell" || i === "wave-group" ? (this.checkList = [...r, "wave-group", this.waveToggleValue || "sig-wave"], this.waveToggleValue = this.waveToggleValue || "sig-wave") : this.rendersKeys.includes(i) && (this.checkList = [...r, i])), a && (a === "ice-forecast" ? (this.checkList = o.filter((l) => !["ice-cover", "ice-thickness", "ice-forecast"].includes(l)), this.iceToggleValue = void 0) : a === "wave-group" ? (this.checkList = o.filter((l) => !["wave-group", "sig-wave", "swell"].includes(l)), this.waveToggleValue = void 0) : this.checkList = o), this.checkList.includes("wind-particle") && (this.showWindParticle = !0), this.checkList.includes("current-particle") && (this.showCurrentParticle = !0), localStorage.setItem(this.cache.checkListKey, JSON.stringify(o)), this.activeWeatherLayers = this.autoActive ? this.allLayers.filter((l) => o.includes(l.key)) : [], this.handleWeatherLayerChange();
8860
8864
  },
8861
8865
  async fetchModels() {
8862
8866
  this.models = {};
@@ -17280,52 +17284,52 @@ Ce.capture = async (e, t, o) => {
17280
17284
  if (o !== wr)
17281
17285
  throw new Error("[snapdom.capture] is internal. Use snapdom(...) instead.");
17282
17286
  let i = await br(e, t), a = { img: async (f, d) => {
17283
- let { toImg: u } = await import("./toImg-418ff752.js");
17287
+ let { toImg: u } = await import("./toImg-d58f1541.js");
17284
17288
  return u(i, { ...f, ...d || {} });
17285
17289
  }, svg: async (f, d) => {
17286
- let { toSvg: u } = await import("./toImg-418ff752.js");
17290
+ let { toSvg: u } = await import("./toImg-d58f1541.js");
17287
17291
  return u(i, { ...f, ...d || {} });
17288
17292
  }, canvas: async (f, d) => {
17289
- let { toCanvas: u } = await import("./toCanvas-6ad4bbd7.js");
17293
+ let { toCanvas: u } = await import("./toCanvas-fafec511.js");
17290
17294
  return u(i, { ...f, ...d || {} });
17291
17295
  }, blob: async (f, d) => {
17292
- let { toBlob: u } = await import("./toBlob-0e8242d8.js");
17296
+ let { toBlob: u } = await import("./toBlob-e0b9b772.js");
17293
17297
  return u(i, { ...f, ...d || {} });
17294
17298
  }, png: async (f, d) => {
17295
- let { rasterize: u } = await import("./rasterize-JS5G2XHH-9f640430.js");
17299
+ let { rasterize: u } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17296
17300
  return u(i, { ...f, ...d || {}, format: "png" });
17297
17301
  }, jpeg: async (f, d) => {
17298
- let { rasterize: u } = await import("./rasterize-JS5G2XHH-9f640430.js");
17302
+ let { rasterize: u } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17299
17303
  return u(i, { ...f, ...d || {}, format: "jpeg" });
17300
17304
  }, webp: async (f, d) => {
17301
- let { rasterize: u } = await import("./rasterize-JS5G2XHH-9f640430.js");
17305
+ let { rasterize: u } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17302
17306
  return u(i, { ...f, ...d || {}, format: "webp" });
17303
17307
  }, download: async (f, d) => {
17304
- let { download: u } = await import("./download-3de535de.js");
17308
+ let { download: u } = await import("./download-cbce7afa.js");
17305
17309
  return u(i, { ...f, ...d || {} });
17306
17310
  } }, r = { ...t, export: { url: i }, exports: { svg: async (f) => {
17307
- let { toSvg: d } = await import("./toImg-418ff752.js");
17311
+ let { toSvg: d } = await import("./toImg-d58f1541.js");
17308
17312
  return d(i, { ...t, ...f || {}, [$e]: !0 });
17309
17313
  }, canvas: async (f) => {
17310
- let { toCanvas: d } = await import("./toCanvas-6ad4bbd7.js");
17314
+ let { toCanvas: d } = await import("./toCanvas-fafec511.js");
17311
17315
  return d(i, { ...t, ...f || {}, [$e]: !0 });
17312
17316
  }, png: async (f) => {
17313
- let { rasterize: d } = await import("./rasterize-JS5G2XHH-9f640430.js");
17317
+ let { rasterize: d } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17314
17318
  return d(i, { ...t, ...f || {}, format: "png", [$e]: !0 });
17315
17319
  }, jpeg: async (f) => {
17316
- let { rasterize: d } = await import("./rasterize-JS5G2XHH-9f640430.js");
17320
+ let { rasterize: d } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17317
17321
  return d(i, { ...t, ...f || {}, format: "jpeg", [$e]: !0 });
17318
17322
  }, jpg: async (f) => {
17319
- let { rasterize: d } = await import("./rasterize-JS5G2XHH-9f640430.js");
17323
+ let { rasterize: d } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17320
17324
  return d(i, { ...t, ...f || {}, format: "jpeg", [$e]: !0 });
17321
17325
  }, webp: async (f) => {
17322
- let { rasterize: d } = await import("./rasterize-JS5G2XHH-9f640430.js");
17326
+ let { rasterize: d } = await import("./rasterize-JS5G2XHH-be7cf7f1.js");
17323
17327
  return d(i, { ...t, ...f || {}, format: "webp", [$e]: !0 });
17324
17328
  }, blob: async (f) => {
17325
- let { toBlob: d } = await import("./toBlob-0e8242d8.js");
17329
+ let { toBlob: d } = await import("./toBlob-e0b9b772.js");
17326
17330
  return d(i, { ...t, ...f || {}, [$e]: !0 });
17327
17331
  }, img: async (f) => {
17328
- let { toImg: d } = await import("./toImg-418ff752.js");
17332
+ let { toImg: d } = await import("./toImg-d58f1541.js");
17329
17333
  return d(i, { ...t, ...f || {}, [$e]: !0 });
17330
17334
  } } }, l = await yp("defineExports", r), c = Object.assign({}, ...l.filter((f) => f && typeof f == "object")), s = { ...a, ...c };
17331
17335
  s.jpeg && !s.jpg && (s.jpg = (f, d) => s.jpeg(f, d));
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as M, D as g, L as n, a as x, b as D, M as T, g as S, f as W, P as f, d as h, T as k, V as y, W as V, e as d } from "./index-1e2659ec.js";
1
+ import { c as M, D as g, L as n, a as x, b as D, M as T, g as S, f as W, P as f, d as h, T as k, V as y, W as V, e as d } from "./index-e501d918.js";
2
2
  import "axios";
3
3
  import "vuetify";
4
4
  import "vue";
@@ -200,7 +200,7 @@
200
200
  <path d="M10 2.5V17.5" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
201
201
  <path d="M5 7.5L10 2.5L15 7.5" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
202
202
  </svg>`;s.src="data:image/svg+xml;base64,"+window.btoa(d);const m=[s];let g=0;m.forEach(u=>{u.onload=()=>{g++,this.map.hasImage("currentDirIcon")||this.map.addImage("currentDirIcon",s),g===1&&this.map.addLayer({id:this.directionLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-image":"currentDirIcon","icon-size":["interpolate",["linear"],["get","spd"],.5,.3,1,.5,1.5,.7,2,.8,3.5,1],"icon-offset":[0,-20],"icon-allow-overlap":!0,"icon-rotation-alignment":"map","icon-rotate":{property:"val",stops:[[0,0],[360,360]]}},paint:{"icon-opacity":this.opacity}},this.beforeLayer)}}),i=new Date().valueOf()-(a+r),console.log("[current] add elapsed: ",i,", total: ",r+=i)}}},handleClear(){this.map.getLayer(this.speedLayer)&&this.map.removeLayer(this.speedLayer),this.map.getLayer(this.speedLabelLayer)&&this.map.removeLayer(this.speedLabelLayer),this.map.getLayer(this.directionLayer)&&this.map.removeLayer(this.directionLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ws(e,t,a,r,i,l){return null}const Zs=Q(Gs,[["render",Ws]]),cf="",Os={name:"IdmCurrentParticle",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Eo},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,wrapper:void 0,animation:void 0,particleContext:void 0,particleTexture:void 0,particleOptions:{fadeOpacity:.96,speedFactor:4,dropRate:.005,dropRateBump:.01,uvRange:[-2.5,2.6],sRange:[0,3],scale:.3},paused:!1,initial:!0,right:10}},watch:{"factor.version":{async handler(){var e,t;(e=this.factor)!=null&&e.active?await this.handleRender():this.handleClear(),(t=this.factor)!=null&&t.particle||this.handleClearParticle()},immediate:!0},"factor.particle":{async handler(e,t){e!==t&&t!==void 0&&(e?(this.handleClear(),await this.handleRender()):this.handleClearParticle())}},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{async handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;await this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[current-particle] add elapsed: ",a,", total: ",t+=a)}},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0/255,"rgba(95, 143, 197,1)"],[5/255,"rgba(64,127,115,1)"],[10/255,"rgb(58,164,58)"],[15/255,"rgb(191,182,67)"],[20/255,"rgb(197,154,68)"],[30/255,"rgb(160,70,94)"],[40/255,"rgb(138,84,166)"],[45/255,"rgb(82,113,165)"],[50/255,"rgb(84,142,152)"],[65/255,"rgb(150,181,184)"],[80/255,"rgb(195,194,194)"],[254/255,"rgb(195,194,194)"],[1,"rgb(195,194,194)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.uvFragmentSchema);this.program=t,this.aPositionBuffer=a}this.handleParticleSetup()},handleParticleSetup(){if(!this.particleContext){this.particleContext=this.viewport.particleCanvas.getContext("webgl");const e=[[0,"rgb(183,224,224)"],[1,"rgb(199,202,202)"],[.6,"rgb(199,202,202)"]];this.wrapper=this.webgl.bindParticle(this.particleContext,ze.vertexSchema,ze.fragmentSchema,ze.quadVertSchema,ze.screenFragmentSchema,ze.updateFragmentSchema),this.wrapper.color=this.webgl.setup(this.particleContext,e,!0,16,16),this.wrapper={...this.wrapper,...this.webgl.setupParticle(this.particleContext,9e3),...this.webgl.resize(this.viewport,this.particleContext)},this.viewport.map.on("resize",this.handleResize),this.viewport.map.on("movestart",this.handlePause),this.viewport.map.on("moveend",this.handlePlay)}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e),this.particleTexture=this.webgl.createTexture(this.particleContext,this.particleContext.NEAREST,this.particleContext.LINEAR,this.particleContext.CLAMP_TO_EDGE,e),this.wrapper.image=e}this.initial&&(this.initial=!1,this.handlePlay()),this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer,this.particleOptions),this.viewport.toggle(!0)},handleResize(){this.wrapper={...this.wrapper,...this.webgl.resize(this.viewport,this.particleContext)}},handlePause(){this.paused=!0,this.animation&&(cancelAnimationFrame(this.animation),this.viewport.toggleParticle(!1))},handlePlay(){this.paused=!1,this.animation=requestAnimationFrame(()=>{this.webgl.drawParticle(this.viewport,this.particleContext,this.particleTexture,this.wrapper,this.particleOptions),this.viewport.toggleParticle(!0),this.handlePlay()})},handleClearParticle(){var e,t,a,r,i,l,n;(e=this.viewport)==null||e.toggleParticle(!1),this.particleContext=void 0,this.initial=!0,(a=(t=this.viewport)==null?void 0:t.map)==null||a.off("resize",this.handleResize),(i=(r=this.viewport)==null?void 0:r.map)==null||i.off("movestart",this.handlePause),(n=(l=this.viewport)==null?void 0:l.map)==null||n.off("moveend",this.handlePlay),this.handlePause()},handleClear(){var e;(e=this.viewport)==null||e.toggle(!1),this.context=void 0,this.etime=void 0,this.handleClearParticle()}}},js={key:0};function Xs(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",js,[o.createElementVNode("div",{class:"legend-bars-gl4 current",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"kts",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.4",-1),o.createElementVNode("span",null,"0.8",-1),o.createElementVNode("span",null,"1.6",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3.2",-1)]),4)])):o.createCommentVNode("",!0)}const Hs=Q(Os,[["render",Xs]]),mf="",Ys={name:"IdmSigWave",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[sig-wave] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Us={key:0};function Js(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Us,[o.createElementVNode("div",{class:"legend-bars-gl4 sig-wave",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"6",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const $s=Q(Ys,[["render",Js],["__scopeId","data-v-c6137292"]]),Ks={name:"IdmSigWaveHeight",props:{map:{type:Object},sigWaveHeight:{type:Object},beforeLayer:{type:String},menuToggle:{type:Object}},data(){return{right:10,toggle:!1,showCaption:!1,source:"sig-wave-height-source",heightLayer:"sig-wave-height-layer",heightLabelLayer:"sig-wave-height-label-layer",empty:J.featureCollection([])}},watch:{"sigWaveHeight.version":{handler(){var e;(e=this.sigWaveHeight)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleMenuToggle(){this.toggle=!this.toggle,this.showCaption=!this.showCaption},handleRender(){var e,t;if(this.sigWaveHeight){const a=new Date().valueOf();let r=0,i=0,l=this.empty;this.sigWaveHeight.active&&(l=this.sigWaveHeight.data),(e=this.map)!=null&&e.getSource(this.source)?((t=this.map)==null||t.getSource(this.source).setData(l),i=new Date().valueOf()-(a+r),console.log("[sig-wave-height] update elapsed: ",i,", total: ",r+=i)):(this.map.addSource(this.source,{type:"geojson",data:l}),this.map.addLayer({id:this.heightLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-opacity":.8,"fill-color":["step",["get","val"],"rgba(0,235,156,0)",2,"rgba(0,235,156,0.4)",3,"#ffed00",4,"#ff9800",5,"#f77800",6,"#e4711e",7,"#e06128",8,"#dc5132",9,"#d5453c",10,"#cd3a46",12,"#be2c50",14,"#b41a5a"]}},this.beforeLayer),this.map.addLayer({id:this.heightLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","symbol-spacing":100,"text-field":["format",["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":10},paint:{"text-color":["step",["get","val"],"rgba(0, 0, 0, 0.7)",9,"rgba(255,255,255,0.8)"]}},this.beforeLayer),i=new Date().valueOf()-(a+r),console.log("[sig-wave-height] add elapsed: ",i,", total: ",r+=i))}},handleClear(){this.map.getLayer(this.heightLayer)&&this.map.removeLayer(this.heightLayer),this.map.getLayer(this.heightLabelLayer)&&this.map.removeLayer(this.heightLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function qs(e,t,a,r,i,l){return null}const Qs=Q(Ks,[["render",qs]]),df="",ec={name:"IdmSwell",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[sig-wave] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgb(50, 158, 186)"],[10/255,"rgb(50, 158, 186)"],[20/255,"rgb(48, 128, 164)"],[30/255,"rgb(48, 99, 142)"],[40/255,"rgb(57, 61, 143)"],[50/255,"rgb(179, 86, 189)"],[60/255,"rgb(154, 45, 123)"],[80/255,"rgb(134, 48, 48)"],[120/255,"rgb(194, 77, 91)"],[150/255,"rgb(192, 118, 105)"],[180/255,"rgb(192, 163, 157)"],[1,"rgb(192, 163, 157)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},tc={key:0};function oc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",tc,[o.createElementVNode("div",{class:"legend-bars-gl4 swell",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"6",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const ac=Q(ec,[["render",oc],["__scopeId","data-v-3c94b068"]]),ic={name:"IdmPrmsl",props:{map:{type:Object},prmsl:{type:Object},beforeLayer:{type:String},showRampColor:{type:Boolean},activeWeatherLayers:{type:Array},theme:{type:String}},data(){return{right:10,toggle:!1,source:"prmsl-source",layer:"prmsl-layer",labelLayer:"prmsl-label-layer",pointLabelLayer:"prmsl-point-label-layer",empty:J.featureCollection([])}},watch:{"prmsl.version":{handler(){var e;(e=this.prmsl)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0}},methods:{handleMenuToggle(){this.toggle=!this.toggle},handleRender(){var e,t,a;if(this.prmsl){const r=new Date().valueOf();let i=0,l=0,n=this.empty;this.prmsl.active&&(n=this.prmsl.data),(e=this.map)!=null&&e.getSource(this.source)?((t=this.map)==null||t.getSource(this.source).setData(n),l=new Date().valueOf()-(r+i),console.log("[prmsl] update elapsed: ",l,", total: ",i+=l)):(this.map.addSource(this.source,{type:"geojson",data:n}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],paint:{"line-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"line-width":1,"line-opacity":this.theme==="light"?1:.3}},this.beforeLayer),(a=this.map)==null||a.addLayer({id:this.labelLayer,type:"symbol",source:this.source,minzoom:4,filter:["==","$type","LineString"],layout:{"symbol-placement":"line","text-rotation-alignment":"viewport","text-field":"{val}","text-size":10},paint:{"text-color":"black","text-halo-color":"rgba(255,255,255,1)","text-opacity":.7,"text-halo-width":1}},this.beforeLayer),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-allow-overlap":!0,"text-field":["format",["get","type"],{"font-scale":1.03},`
203
- `,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},paint:{"text-color":this.theme==="light"?["step",["get","val"],"rgba(0, 0, 0, 0.5)",920,"rgba(0, 0, 0, 0.5)",980,"rgba(0, 0, 0, 0.7)",1100,"rgba(0, 0, 0, 0.7)"]:"rgba(0,0,0,1)","text-halo-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-width":1}},this.beforeLayer),l=new Date().valueOf()-(r+i),console.log("[prmsl] add elapsed: ",l,", total: ",i+=l))}},handleClear(){this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function rc(e,t,a,r,i,l){return null}const lc=Q(ic,[["render",rc]]),hf="",nc={name:"IdmIceEdge",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[ice-edge] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(86, 169, 230, 0)"],[1/255,"rgba(86, 169, 230, 0)"],[25/255,"rgba(86, 169, 230, 1)"],[25/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 84, 39, 1)"],[250/255,"rgba(230, 84, 39, 1)"],[1,"rgba(230, 84, 39, 1)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},sc={key:0};function cc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",sc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-edge",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",{style:{color:"rgba(var(--v-theme-black), 0.7)"}},"%",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"70",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"90",-1),o.createElementVNode("span",null,null,-1)]),4)])):o.createCommentVNode("",!0)}const mc=Q(nc,[["render",cc]]),pf="",dc={name:"IdmCover",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[ice-cover] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(68, 1, 84, 0)"],[1/255,"rgba(63, 72, 137, 0)"],[50/255,"rgba(53, 125, 177, 1)"],[100/255,"rgba(33, 145, 140, 1)"],[150/255,"rgba(45, 178, 125, 1)"],[200/255,"rgba(112, 207, 87, 1)"],[250/255,"rgba(253, 231, 37, 0.8)"],[1,"rgba(253, 231, 37, 1)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},hc={key:0};function pc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",hc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-cover",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"%",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,"60",-1),o.createElementVNode("span",null,"80",-1),o.createElementVNode("span",null,"100",-1)]),4)])):o.createCommentVNode("",!0)}const gc=Q(dc,[["render",pc],["__scopeId","data-v-916b01eb"]]),gf="",uc={name:"IdmThickness",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[ice-thickness] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(4, 6, 19, 0)"],[1/255,"rgba(4, 6, 19, 0)"],[20/255,"rgba(51, 50, 102, 1)"],[40/255,"rgba(63, 82, 158, 1)"],[50/255,"rgba(66, 123, 183, 1)"],[60/255,"rgba(92, 161, 197, 1)"],[80/255,"rgba(134, 199, 212, 0.7)"],[100/255,"rgba(134, 199, 212, 1)"],[150/255,"rgba(234, 253, 2536, 0.8)"],[250/255,"rgba(234, 253, 2536, 0.9)"],[1,"rgba(234, 253, 2536, 1)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},fc={key:0};function yc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",fc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-thickness",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.6",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1)]),4)])):o.createCommentVNode("",!0)}const bc=Q(uc,[["render",yc]]),uf="",wc={name:"IdmPrecip3h",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},deeimmediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[precip3h] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(59, 126, 162, 0)"],[14/255,"rgba(84,170,230, 0)"],[15/255,"rgba(172, 210, 255, 0.8)"],[20/255,"rgba(51,202,248,0.8)"],[30/255,"rgba(3,248,103,0.8)"],[49/255,"rgba(14,201,3,0.8)"],[57/255,"rgba(190,226,2,0.8)"],[73/255,"rgba(248,1,1,0.8)"],[82/255,"rgba(197,5,58,0.8)"],[1,"rgba(197,5,58,0.8)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},xc={key:0};function kc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",xc,[o.createElementVNode("div",{class:"legend-bars-gl4 precip3h",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"mm",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"7",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1)]),4)])):o.createCommentVNode("",!0)}const _c=Q(wc,[["render",kc]]),ff="",vc={name:"IdmVisibility",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{right:10,program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[visibility] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(189,50,160,0.8)"],[8/255,"rgba(208,56,56,0.8)"],[27/255,"rgba(190,226,2,0.8)"],[60/255,"rgba(3,236,118,0.8)"],[160/255,"rgba(172, 210,255,0.8)"],[161/255,"rgba(172, 210,255,0)"],[1,"rgba(144,144,144,0)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},zc={key:0};function Lc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",zc,[o.createElementVNode("div",{class:"legend-bars-gl4 visibility",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"nm",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const Cc=Q(vc,[["render",Lc]]),yf="",Sc={name:"IdmWaterTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[water-temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(95, 143, 197)"],[46/255,"rgba(95, 143, 197)"],[69/255,"rgb(80, 140, 62)"],[92/255,"rgb(121, 146, 28)"],[115/255,"rgb(171, 161, 14)"],[138/255,"rgb(223, 177, 69)"],[161/255,"rgb(243, 150, 6)"],[184/255,"rgb(236, 95, 21)"],[207/255,"rgb(190, 65, 18)"],[230/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Nc={key:0};function Pc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Nc,[o.createElementVNode("div",{class:"legend-bars-gl4 water-temp",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Mc=Q(Sc,[["render",Pc]]),bf="",Tc={name:"IdmTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgb(149, 137, 211)"],[100/255,"rgb(149, 137, 211)"],[110/255,"rgb(150, 209, 216)"],[120/255,"rgb(129, 204, 197)"],[130/255,"rgb(103, 180, 186)"],[140/255,"rgb(95, 143, 197)"],[150/255,"rgb(80, 140, 62)"],[160/255,"rgb(121, 146, 28)"],[170/255,"rgb(171, 161, 14)"],[180/255,"rgb(223, 177, 6)"],[190/255,"rgb(243, 150, 6)"],[200/255,"rgb(236, 95, 21)"],[210/255,"rgb(190, 65, 18)"],[220/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Vc={key:0};function Ec(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Vc,[o.createElementVNode("div",{class:"legend-bars-gl4 temp",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"-20",-1),o.createElementVNode("span",null,"-10",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Rc=Q(Tc,[["render",Ec]]),wf="",Dc={name:"IdmGlLayer",components:{IdmWindBarb:Ds,IdmWindParticle:Fs,IdmCurrentDirection:Zs,IdmCurrentParticle:Hs,IdmWave:$s,IdmSigWaveHeight:Qs,IdmSwell:ac,IdmPrmsl:lc,IdmIceEdge:mc,IdmIceCover:gc,IdmIceThickness:bc,IdmPrecip3h:_c,IdmVisibility:Cc,IdmWaterTemp:Mc,IdmTemp:Rc},props:{simple:{type:Boolean,default:!1},isLogin:{type:Boolean,default:!1},theme:{type:String},map:{type:Object},mapFeather:{type:String},gateway:{type:String},assistGateway:{type:Array,default:[]},defaultMeteoToken:{type:String},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},realTime:{type:String},forecastModel:{type:String},beforeLayer:{type:String}},emits:["forecastModel","menuToggle","weatherCheckList","autoActive","weatherRendered"],data(){return{right:10,toggle:!1,autoActive:!0,weatherWeight:0,allLayers:[...je.LayerHelper.WEATHER_LAYERS],tagLayers:[...je.LayerHelper.WEATHER_LAYERS.filter(e=>!e.hide)],checkList:[],renderKey:"",iceToggleValue:void 0,waveToggleValue:void 0,weatherLayers:{},activeWeatherLayers:[],cache:{v:"0.0.1",versionKey:"weatherLayerCacheVersionGL4",autoActiveKey:"autoActiveCacheGL4",checkListKey:"weatherCheckListCacheGL4"},models:{},currentModel:localStorage.getItem("forecastModelCacheGL4")==="GFS"?"GFS":"ECMWF",zoom:6,viewport:void 0,particleFactor:void 0,showWindParticle:!0,showCurrentParticle:!0,legendToggle:!1,legend:{barbs:[2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,0],current:[{label:"0-0.5 kts",size:.3,color:"rgb(58, 164, 58)"},{label:"0.5-1 kts",size:.4,color:"#ffff00"},{label:"1-1.5 kts",size:.6,color:"#ff9500"},{label:"1.5-2 kts",size:.8,color:"#f44336"},{label:">= 2 kts",size:1,color:"#e4711e"}],sigWaveHeight:[{label:"< 2 m",color:"rgba(0,235,156,0)"},{label:"2-3 m",color:"rgba(0,235,156,0.4)"},{label:"3-4 m",color:"#ffed00"},{label:"4-5 m",color:"#ff9800"},{label:"5-6 m",color:"#f77800"},{label:"6-7 m",color:"#e4711e"},{label:"7-8 m",color:"#e06128"},{label:"8-9 m",color:"#dc5132"},{label:"9-10 m",color:"#d5453c"},{label:"10-12 m",color:"#cd3a46"},{label:"12-14 m",color:"#be2c50"},{label:"> 14 m",color:"#aa1a5a"}]}}},computed:{listStyle(){return this.simple?{top:this.top+"px",left:this.toggle?"0px":"-280px"}:{top:this.top+"px",right:this.toggle?"0px":"-280px"}},computeDateZ(){return function(e){var t;if(e){const a=C(e);return`${(t=a==null?void 0:a.utc())==null?void 0:t.format("MMM-DD/HHmm")}Z`}return"-"}},computeDateUpdate(){return function(e){return e?C(e).fromNow():"-"}},overlaysKeys(){return this.tagLayers.filter(e=>e.overlays).map(e=>e.key)},rendersKeys(){return this.allLayers.filter(e=>!e.overlays&&e.enabled).map(e=>e.key)},showTipMenu(){return this.checkList.includes("wind")||this.checkList.includes("current-direction")||this.checkList.includes("sig-wave-height")},barbsIconName(){var t,a,r;const e=[];for(let i=0;i<((a=(t=this.legend)==null?void 0:t.barbs)==null?void 0:a.length);i++){const l=((r=this.legend)==null?void 0:r.barbs[i])||0,n=l<10?`00${l}kts`:l<100?`0${l}kts`:`${l}kts`;e.push("icon-a-"+n)}return e}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.weatherLayers,this.$nextTick(()=>{var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)})}},currentModel:{handler(e,t){this.$emit("forecastModel",e),localStorage.setItem("forecastModelCacheGL4",e)},immediate:!0},forecastModel:{handler(e,t){e&&e!==t&&this.handleWeatherLayerChange({sourceChanged:!0})}},map:{handler(){this.map&&(this.fetchCache(),this.map.on("move",this.handleMove4Weather),this.viewport=new Eo(this.map),this.handleRampColorInitial())},immediate:!0},realTime:{handler(e,t){e&&t&&C(e).utc().format("yyyy-MM-DD HH")!==C(t).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.fetchWeatherLayers()})},immediate:!0},renderKey:{handler(e,t){e&&e!==t?e==="wave-group"?this.checkList=["wave-group",this.waveToggleValue||"sig-wave"]:e==="ice-forecast"?this.checkList=["ice-forecast",this.iceToggleValue||"ice-cover"]:this.checkList=[e]:!e&&t&&(this.checkList=this.checkList.filter(a=>a!==t))}},checkList:{handler(e,t){var a,r,i,l,n,c;this.handleCheckListChange(e,t),this.$emit("weatherCheckList",e),this.autoActive&&this.checkList.length?(i=(r=(a=this.$parent)==null?void 0:a.$refs)==null?void 0:r.idmBottomBar)==null||i.handleToggle("weather",!0):(c=(n=(l=this.$parent)==null?void 0:l.$refs)==null?void 0:n.idmBottomBar)==null||c.handleToggle("weather",!1)}},autoActive:{handler(e){var t,a,r,i,l,n;localStorage.setItem(this.cache.autoActiveKey,this.autoActive),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(c=>this.checkList.includes(c.key)):[],this.handleWeatherLayerChange(),this.autoActive&&this.checkList.length?(r=(a=(t=this.$parent)==null?void 0:t.$refs)==null?void 0:a.idmBottomBar)==null||r.handleToggle("weather",!0):(n=(l=(i=this.$parent)==null?void 0:i.$refs)==null?void 0:l.idmBottomBar)==null||n.handleToggle("weather",!1),this.$emit("autoActive",this.autoActive)}},iceToggleValue:{handler(e){e&&(this.checkList=["ice-forecast",this.iceToggleValue])}},waveToggleValue:{handler(e){e&&(this.checkList=["wave-group",this.waveToggleValue])}},showWindParticle:{handler(e){let t="wind-particle";this.weatherLayers[t].particle=e,this.weatherLayers[t].version=Math.random()+1}},showCurrentParticle:{handler(e){let t="current-particle";this.weatherLayers[t].particle=e,this.weatherLayers[t].version=Math.random()+1}},isLogin:{handler(e){e?this.fetchModels():this.models={}},immediate:!0}},mounted(){this.fetchModels()},methods:{arraysEqual(e,t){if((e==null?void 0:e.length)!==(t==null?void 0:t.length))return!1;for(let a=0;a<(e==null?void 0:e.length);a++)if((e==null?void 0:e[a])!==(t==null?void 0:t[a]))return!1;return!0},fetchCache(){var a,r;const e=localStorage.getItem(this.cache.versionKey);this.cache.v!==e&&(localStorage.removeItem(this.cache.autoActiveKey),localStorage.removeItem(this.cache.checkListKey),localStorage.setItem(this.cache.versionKey,this.cache.v));let t=localStorage.getItem(this.cache.autoActiveKey);this.autoActive=t!=="false",localStorage.setItem(this.cache.autoActiveKey,this.autoActive),t=localStorage.getItem(this.cache.checkListKey),this.waveToggleValue=(a=JSON.parse(t))!=null&&a.some(i=>i==="swell")?"swell":void 0,this.iceToggleValue=(r=JSON.parse(t))!=null&&r.some(i=>i==="ice-thickness")?"ice-thickness":void 0,this.checkList=JSON.parse(t||JSON.stringify(["wind","sig-wave-height"])),this.checkList.find(i=>this.rendersKeys.includes(i))&&(this.renderKey=this.checkList.find(i=>this.rendersKeys.includes(i))),localStorage.setItem(this.cache.checkListKey,JSON.stringify(this.checkList))},handleMenuToggle(){this.$emit("menuToggle","weatherLayers")},handleFastWeatherToggle(e){let t=[];this.checkList.includes(e)?t=this.checkList.filter(a=>a!==e):t=[...this.checkList,e],this.handleCheckListChange(t,this.checkList)},handleCheckListChange(e,t){if(this.arraysEqual(e,t))return!1;const a=[...new Set(e)],r=a==null?void 0:a.filter(l=>!(t!=null&&t.includes(l)))[0],i=t==null?void 0:t.filter(l=>!(a!=null&&a.includes(l)))[0];r&&(r==="ice-cover"||r==="ice-thickness"||r==="ice-forecast"?(this.checkList=["ice-forecast",this.iceToggleValue||"ice-cover"],this.iceToggleValue=this.iceToggleValue||"ice-cover"):r==="sig-wave"||r==="swell"||r==="wave-group"?(this.checkList=["wave-group",this.waveToggleValue||"sig-wave"],this.waveToggleValue=this.waveToggleValue||"sig-wave"):this.rendersKeys.includes(r)?this.checkList=[r]:(this.checkList=a.filter(l=>!this.rendersKeys.includes(l)),this.renderKey=void 0)),i&&(i==="ice-forecast"?(this.checkList=a.filter(l=>!["ice-cover","ice-thickness","ice-forecast"].includes(l)),this.iceToggleValue=void 0):i==="wave-group"?(this.checkList=a.filter(l=>!["wave-group","sig-wave","swell"].includes(l)),this.waveToggleValue=void 0):this.checkList=a),this.checkList.includes("wind-particle")&&(this.showWindParticle=!0),this.checkList.includes("current-particle")&&(this.showCurrentParticle=!0),localStorage.setItem(this.cache.checkListKey,JSON.stringify(a)),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(l=>a.includes(l.key)):[],this.handleWeatherLayerChange()},async fetchModels(){this.models={};const e=await ge.get(`${this.gateway}/api/arc/meteo2/models2`,{headers:{Authorization:this.defaultMeteoToken}});(e==null?void 0:e.data.code)===0&&(this.models=e==null?void 0:e.data.data)},async fetchWeatherLayers(e={}){var i,l,n,c,s,d,m,g,u;const t=new Date().valueOf();let a=0,r=0;if(this.map){const y=((i=this.map)==null?void 0:i.getZoom())+1,f=(l=this.map)==null?void 0:l.getBounds(),h=`${f._sw.lng},${f._sw.lat},${f._ne.lng},${f._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const p=je.LayerHelper.WEATHER_LAYERS.find(w=>{var x;return((x=w.peer)==null?void 0:x.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&p.weight?this.weatherWeight:this.weatherWeight+p.weight:this.weatherWeight=this.weatherWeight&p.weight?this.weatherWeight-p.weight:this.weatherWeight}if(this.weatherWeight>0){let p=this.weatherWeight;if(p>0){const w=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],x=await ge.get(`${w}/api/arc/weather/layers2/links?l=${p}&v=${this.forecastModel}&z=${y}&bbox=${h}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(r=new Date().valueOf()-(t+a),console.log("weather links elapsed: ",r,", total: ",a+=r),((c=x==null?void 0:x.data)==null?void 0:c.code)===0){const b=(s=x==null?void 0:x.data)==null?void 0:s.data,k=[];for(const _ in b)k.push(ge.get(b[_],{headers:{Authorization:this.defaultMeteoToken,key:_},responseType:/\.(jpg|png)$/.test(b[_])?"blob":"json"}).catch(z=>{console.log(`[${_}] fetch layer error: ${z}`)}));const L=await Promise.all(k);this.weatherLayers={},L.map(_=>{var M,T,E,I;const z=((M=_==null?void 0:_.data)==null?void 0:M.data)||(_==null?void 0:_.data);let S=(E=(T=_==null?void 0:_.config)==null?void 0:T.headers)==null?void 0:E.key;S&&z&&(this.weatherLayers[S]={raw:z,type:((I=_==null?void 0:_.config)==null?void 0:I.responseType)==="blob"?"image":"json",etime:x.data.etime})})}if(r=new Date().valueOf()-(t+a),console.log("weather layers elapsed: ",r,", total: ",a+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const b=(d=this.weatherLayers["swell-direction"])==null?void 0:d.raw,k=(m=this.weatherLayers["swell-height"])==null?void 0:m.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:b,height:{raw:k},etime:x.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const b=(g=this.weatherLayers["current-direction"])==null?void 0:g.raw,k=(u=this.weatherLayers["current-speed"])==null?void 0:u.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:b,speed:{raw:k},etime:x.data.etime}}}}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json(),this.$nextTick(()=>{var p,w,x,b,k;(k=(b=(x=(w=(p=this.$parent)==null?void 0:p.$refs)==null?void 0:w.idmBottomBar)==null?void 0:x.$refs)==null?void 0:b.capture)==null||k.captureCurrentFrame()})}},handleWeatherLayerToggle(){for(const e in this.weatherLayers)this.weatherLayers[e].active=!1,this.weatherLayers[e].version=Math.random()+1;for(const e of this.activeWeatherLayers){let t=e.key;t==="current-direction"&&(t="current"),this.weatherLayers[t]&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1,t==="wind-particle"&&(this.weatherLayers[t].particle=this.showWindParticle),t==="current-particle"&&(this.weatherLayers[t].particle=this.showCurrentParticle))}},handleWeatherLayerChange(e={sourceChanged:!1}){var a;const t=(a=this.activeWeatherLayers)==null?void 0:a.reduce((r,i)=>r+(r&(i==null?void 0:i.weight)?0:i==null?void 0:i.weight),0);e!=null&&e.sourceChanged||this.weatherWeight!==t?(this.weatherWeight=t,this.fetchWeatherLayers()):this.handleWeatherLayerToggle()},handleRampColorInitial(){var e,t,a,r,i,l,n,c,s,d,m,g;this.viewport.map.getSource((e=this.viewport)==null?void 0:e.rampColorSource)||this.viewport.map.addSource((t=this.viewport)==null?void 0:t.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(i=this.viewport)==null?void 0:i.rampColorLayer,source:(l=this.viewport)==null?void 0:l.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((c=this.viewport)==null?void 0:c.particleSource,{type:"canvas",canvas:(s=this.viewport)==null?void 0:s.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((d=this.viewport)==null?void 0:d.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(m=this.viewport)==null?void 0:m.particleLayer,source:(g=this.viewport)==null?void 0:g.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var l,n,c,s,d,m,g;const e=new Date().valueOf();let t=0,a=0;const r=(l=this.map)==null?void 0:l.getBounds(),i=(n=this.map)==null?void 0:n.getZoom();if(r&&i){const u=X.LngLatHelper.convertToStdLng(r._sw.lng),y=X.LngLatHelper.convertToStdLng(r._ne.lng),f=Math.floor(r._sw.lat),h=Math.ceil(r._ne.lat);for(const p in this.weatherLayers){let w=!1;if(this.weatherLayers[p].active&&this.weatherLayers[p].type==="json"){let x=[];if(p==="swell"){w=!0;const b=((c=this.weatherLayers[p])==null?void 0:c.direction)||{};for(const L in b)if(L>f&&L<h&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const _=b[L].lng;u>y?_.forEach((z,S)=>{var M,T,E,I,G,j;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if((z>=u&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}}):_.forEach((z,S)=>{var M,T,E,I,G,j;if(u<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if(z>=u&&z<=y&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}})}a=new Date().valueOf()-(e+t),console.log("swell direction elapsed: ",a,", total: ",t+=a);const k=this.weatherLayers[p].height;if(k){if(!k.data){const L=[];for(const _ in(s=k.raw)==null?void 0:s.LineString){const z=k.raw.LineString[_];for(const S of z)L.push(J.lineString(S,{val:Number(_)}));k.data=J.featureCollection(L)}}if(k.data){const L=this.handleBboxClip(k.data,r);x=x.concat(L)}a=new Date().valueOf()-(e+t),console.log("swell height elapsed: ",a,", total: ",t+=a)}}else if(p==="current"){w=!0;const b=((d=this.weatherLayers[p])==null?void 0:d.direction)||{};for(const L in b)if(L>f&&L<h&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const _=b[L].lng;u>y?_.forEach((z,S)=>{var M,T,E,I,G,j;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if((z>=u&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}}):_.forEach((z,S)=>{var M,T,E,I,G,j;if(u<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if(z>=u&&z<=y&&(!(i<=this.zoom)||z%(i<this.zoom/2?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}})}a=new Date().valueOf()-(e+t),console.log("current direction elapsed: ",a,", total: ",t+=a);const k=this.weatherLayers[p].speed;if(k){if(!k.data){const _=[];for(const z in(m=k.raw)==null?void 0:m.Polygon){const S=k.raw.Polygon[z];for(const M of S)_.push(J.polygon(M,{val:Number(z)}))}k.data=J.featureCollection(_)}const L=i<this.zoom?k.data.features.filter(_=>_.properties.val>.5):k.data.features;x=x.concat(L),a=new Date().valueOf()-(e+t),console.log("current speed elapsed: ",a,", total: ",t+=a)}}else if(p==="wind"){w=!0;const b=this.weatherLayers.wind.raw;for(const k in b)if(k>f&&k<h&&(!(i<=this.zoom)||k%(i<2?10:i<4?5:3)===0)){const L=b[k].lng;u>y?L.forEach((_,z)=>{var S,M,T,E;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const I=J.point([_,k],{dir:((S=b[k].val)==null?void 0:S[z])||((M=b[k].dir)==null?void 0:M[z]),spd:b[k].spd[z]});x.push(I)}}else if((_>=u&&_<=180||_>=-180&&_<=y)&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const I=J.point([_,k],{dir:((T=b[k].val)==null?void 0:T[z])||((E=b[k].dir)==null?void 0:E[z]),spd:b[k].spd[z]});x.push(I)}}):L.forEach((_,z)=>{var S,M,T,E;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const I=J.point([_,k],{dir:((S=b[k].val)==null?void 0:S[z])||((M=b[k].dir)==null?void 0:M[z]),spd:b[k].spd[z]});x.push(I)}}else if(_>=u&&_<=y&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const I=J.point([_,k],{dir:((T=b[k].val)==null?void 0:T[z])||((E=b[k].dir)==null?void 0:E[z]),spd:b[k].spd[z]});x.push(I)}})}a=new Date().valueOf()-(e+t),console.log("wind barb elapsed: ",a,", total: ",t+=a)}else if(p==="sig-wave-height"){if(this.weatherLayers[p].data)x=this.weatherLayers[p].data;else{w=!0;const b=this.weatherLayers[p].raw;if(b){const k=[];for(const L in b.Polygon){const _=b.Polygon[L];for(const z of _)k.push(J.polygon(z,{val:Number(L)}))}for(const L in b.MultiPolygon){const _=b.MultiPolygon[L];for(const z of _)k.push(J.multiPolygon(z,{val:Number(L)}))}for(const L in b.Point){const _=b.Point[L];for(let z=0;z<((g=_.lng)==null?void 0:g.length);z++)k.push(J.point([_.lng[z],L],{val:Number(_.val[z])}))}x=x.concat(k)}}a=new Date().valueOf()-(e+t),console.log("sig-wave-height elapsed: ",a,", total: ",t+=a)}else if(p==="prmsl"){if(this.weatherLayers[p].data)x=this.weatherLayers[p].data;else{w=!0;const b=this.weatherLayers[p].raw;if(b){const k=[];for(const L in b.LineString){const _=b.LineString[L];for(const z of _)k.push(J.lineString(z,{val:Number(L)}))}for(const L in b.Point)b.Point[L].lng.forEach((_,z)=>{_=X.LngLatHelper.convertToStdLng(_),k.push(J.point([_,L],{val:b.Point[L].val[z],type:b.Point[L].type[z]}))});x=x.concat(k)}}a=new Date().valueOf()-(e+t),console.log("prmsl elapsed: ",a,", total: ",t+=a)}x.length&&(this.weatherLayers[p].data=J.featureCollection(x)),w&&(this.weatherLayers[p].version=Math.random()+1)}}}},handleMove4Weather(){for(const e in this.weatherLayers)this.weatherLayers[e].active&&this.weatherLayers[e].type==="image"&&(this.weatherLayers[e].active=!0,this.weatherLayers[e].version=Math.random()+1);this.handleDrawWeather4Json()},handleBboxClip(e,t){const a=[],r=X.LngLatHelper.convertToStdLng(t._sw.lng),i=X.LngLatHelper.convertToStdLng(t._ne.lng);return e.features.forEach(l=>{if(l.geometry.type!=="Point")if(r>i){let n=[r,t._sw.lat,180,t._ne.lat],c=J.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c),n=[-180,t._sw.lat,i,t._ne.lat],c=J.bboxClip(l,n),c.geometry.coordinates.length&&a.push(c)}else{const n=[r,t._sw.lat,i,t._ne.lat],c=J.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c)}else a.push(l)}),a}}},Bc={class:"idm-gl4-meteo-layers"},Ic={key:0,class:"legend-tip-btn-gl4"},Ac={class:"d-flex flex-row justify-center align-center"},Fc={class:"text-caption"},Gc={class:"d-flex flex-row justify-center align-center"},Wc={key:0,style:{width:"24px",height:"12px",border:"1px solid rgba(var(--v-border-color), var(--v-border-opacity))"}},Zc={class:"text-caption px-2"},Oc={class:"d-flex flex-row justify-start align-center"},jc={class:"d-flex flex-row justify-center align-center",style:{width:"40px"}},Xc={class:"text-caption"},Hc={class:"d-flex justify-start align-center ga-3"},Yc={class:"text-h5 font-weight-medium"},Uc={key:0,class:"w-100 d-flex justify-space-between align-center ga-1 mb-2 px-3"},Jc={key:0,class:"d-flex justify-start align-center ga-4 pl-6"},$c={key:1,class:"d-flex justify-start align-center ga-4 pl-6"},Kc={class:"text-body-1 py-2"},qc={class:"text-body-1 font-weight-medium"},Qc={class:"text-body-2 text-label"},em={class:"text-body-2 text-label"},tm={class:"text-body-2 text-label mb-3"},om={class:"text-body-1 font-weight-medium"},am={class:"text-body-2 text-label"},im={class:"text-body-2 text-label"},rm={class:"text-body-2 text-label mb-3"},lm={class:"text-body-1 py-2"},nm={class:"text-body-1 font-weight-medium"},sm={class:"text-body-2 text-label"},cm={class:"text-body-2 text-label"},mm={class:"text-body-2 text-label mb-3"},dm={class:"text-body-1 font-weight-medium"},hm={class:"text-body-2 text-label"},pm={class:"text-body-2 text-label"},gm={class:"text-body-2 text-label mb-3"},um={class:"text-body-1 py-2"},fm={class:"text-body-1 font-weight-medium"},ym={class:"text-body-2 text-label"},bm={class:"text-body-2 text-label"},wm={class:"text-body-2 text-label mb-3"};function xm(e,t,a,r,i,l){var A,F,Y,D,R,Z,P,K,re,me,he,ee,le,de,we;const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip"),s=o.resolveComponent("VCol"),d=o.resolveComponent("VRow"),m=o.resolveComponent("VCardText"),g=o.resolveComponent("VDivider"),u=o.resolveComponent("VCard"),y=o.resolveComponent("VSwitch"),f=o.resolveComponent("VBtnToggle"),h=o.resolveComponent("VCardTitle"),p=o.resolveComponent("VCardItem"),w=o.resolveComponent("VCheckbox"),x=o.resolveComponent("VRadio"),b=o.resolveComponent("IdmWindBarb"),k=o.resolveComponent("IdmSigWaveHeight"),L=o.resolveComponent("IdmCurrentDirection"),_=o.resolveComponent("IdmPrmsl"),z=o.resolveComponent("IdmWindParticle"),S=o.resolveComponent("IdmCurrentParticle"),M=o.resolveComponent("IdmWave"),T=o.resolveComponent("IdmSwell"),E=o.resolveComponent("IdmIceEdge"),I=o.resolveComponent("IdmIceCover"),G=o.resolveComponent("IdmIceThickness"),j=o.resolveComponent("IdmPrecip3h"),H=o.resolveComponent("IdmVisibility"),ae=o.resolveComponent("IdmWaterTemp"),N=o.resolveComponent("IdmTemp");return o.openBlock(),o.createElementBlock("div",Bc,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+46+"px",right:i.right+"px"})},[o.createVNode(c,{text:e.$t("weather.weatherLayers"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:W})=>[o.createVNode(n,o.mergeProps(W,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>t[9]||(t[9]=[o.createElementVNode("i",{class:"iconfont icon-Weather text-h4"},null,-1)])),_:2,__:[9]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4),l.showTipMenu?(o.openBlock(),o.createElementBlock("div",Ic,[o.createElementVNode("div",{class:o.normalizeClass(["menu-bar-box pa-1 rounded",a.simple?"simple":""]),style:o.normalizeStyle({right:i.right+"px",top:a.simple?"354px":"450px"})},[o.createVNode(c,{text:e.$t("weather.legend"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:W})=>[o.createVNode(n,o.mergeProps(W,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.legendToggle?"bg-primary active-border":""],onClick:t[0]||(t[0]=te=>i.legendToggle=!i.legendToggle)}),{default:o.withCtx(()=>t[10]||(t[10]=[o.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[10]},1040,["class"])]),_:1},8,["text","open-on-focus","open-on-hover"])],6),i.legendToggle?(o.openBlock(),o.createBlock(u,{key:0,elevation:"16",class:"card-info d-flex justify-center align-start",style:o.normalizeStyle({position:"absolute",top:a.simple?"200px":"340px",right:i.right+50+"px"})},{default:o.withCtx(()=>[o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"110px"}},{default:o.withCtx(()=>[t[11]||(t[11]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wind Level",-1)),o.createVNode(d,{class:"ma-0 ml-n1 text-body-2"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.barbs,(W,te)=>(o.openBlock(),o.createBlock(s,{key:W,cols:"6",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Ac,[o.createElementVNode("i",{class:o.normalizeClass(["iconfont",l.barbsIconName[te]]),style:o.normalizeStyle({color:a.theme==="dark"?"#fff":"#000"})},null,6),o.createElementVNode("span",Fc,o.toDisplayString(Number(W)<10?`00${W}kts`:Number(W)<100?`0${W}kts`:`${W}kts`),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[11]}),o.createVNode(g,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"100px"}},{default:o.withCtx(()=>[t[12]||(t[12]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wave Height",-1)),o.createVNode(d,{class:"ma-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.sigWaveHeight,(W,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Gc,[te===0?(o.openBlock(),o.createElementBlock("div",Wc)):(o.openBlock(),o.createElementBlock("div",{key:1,style:o.normalizeStyle({width:"24px",height:"12px",background:W.color})},null,4)),o.createElementVNode("div",Zc,o.toDisplayString(W.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[12]}),o.createVNode(g,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"90px"}},{default:o.withCtx(()=>[t[13]||(t[13]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Current",-1)),o.createVNode(d,{class:"ma-0 ml-n4"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.current,(W,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-center align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Oc,[o.createElementVNode("div",jc,[o.createElementVNode("i",{class:"iconfont icon-a-direction-arrow text-label",style:o.normalizeStyle({fontSize:40*W.size+"px"})},null,4)]),o.createElementVNode("div",Xc,o.toDisplayString(W.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[13]})]),_:1},8,["style"])):o.createCommentVNode("",!0)])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["available-layers transition d-flex flex-column justify-start align-start",i.toggle?"right-bar":""]),style:o.normalizeStyle(l.listStyle)},[o.createElementVNode("div",{class:o.normalizeClass(["header-box w-100 d-flex justify-space-between align-center",a.simple?"px-3":"px-4"])},[o.createElementVNode("div",Hc,[o.createElementVNode("div",Yc,o.toDisplayString(e.$t("weather.weather")),1),o.createVNode(y,{modelValue:i.autoActive,"onUpdate:modelValue":t[1]||(t[1]=W=>i.autoActive=W),class:"small-switch",color:"primary","base-color":"disabled",inset:"","hide-details":""},null,8,["modelValue"])]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleMenuToggle},{default:o.withCtx(()=>t[14]||(t[14]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[14]},8,["onClick"])],2),a.simple?(o.openBlock(),o.createElementBlock("div",Uc,[o.createElementVNode("div",null,o.toDisplayString(e.$t("weather.forecastModel")),1),o.createVNode(f,{modelValue:i.currentModel,"onUpdate:modelValue":t[2]||(t[2]=W=>i.currentModel=W),rounded:"",height:"28",density:"compact",group:""},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"28",value:"GFS",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="GFS"?"primary":"","base-color":""},{default:o.withCtx(()=>t[15]||(t[15]=[o.createTextVNode("NOAA",-1)])),_:1,__:[15]},8,["color"]),o.createVNode(n,{density:"compact",height:"28",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="ECMWF"?"primary":"","base-color":"",value:"ECMWF"},{default:o.withCtx(()=>t[16]||(t[16]=[o.createTextVNode("ECMWF",-1)])),_:1,__:[16]},8,["color"])]),_:1},8,["modelValue"])])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["list-box w-100 scroll overflow-y-auto",[i.autoActive?"":"cursor-not-allowed",a.simple?"px-3":"pl-4 pr-2"]])},[o.createVNode(u,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(p,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.overlays")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(W=>W.overlays),W=>(o.openBlock(),o.createBlock(w,{key:W.key,modelValue:i.checkList,"onUpdate:modelValue":t[3]||(t[3]=te=>i.checkList=te),value:W.key,label:e.$t(`weather.${W.locale}`),disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"flex-1-0-100 text-body-2","hide-details":""},null,8,["modelValue","value","label","disabled"]))),128))]),_:1})]),_:1}),o.createVNode(u,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(p,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.renders")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(W=>!W.overlays),W=>(o.openBlock(),o.createElementBlock(o.Fragment,{key:W.key},[o.createVNode(x,{modelValue:i.renderKey,"onUpdate:modelValue":t[4]||(t[4]=te=>i.renderKey=te),label:e.$t(`weather.${W.locale}`),value:W.key,disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"text-body-2 py-1","hide-details":"",onClick:te=>i.renderKey=i.renderKey===W.key?"":W.key},null,8,["modelValue","label","value","disabled","onClick"]),i.renderKey==="wind-particle"&&W.key==="wind-particle"?(o.openBlock(),o.createElementBlock("div",Jc,[o.createElementVNode("span",null,o.toDisplayString(e.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showWindParticle,"onUpdate:modelValue":t[5]||(t[5]=te=>i.showWindParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",density:"compact",inset:"",style:{"font-size":"14px"},"hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="current-particle"&&W.key==="current-particle"?(o.openBlock(),o.createElementBlock("div",$c,[o.createElementVNode("span",null,o.toDisplayString(e.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showCurrentParticle,"onUpdate:modelValue":t[6]||(t[6]=te=>i.showCurrentParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",inset:"",density:"compact",height:"20","hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="wave-group"&&W.key==="wave-group"?(o.openBlock(),o.createBlock(f,{key:2,modelValue:i.waveToggleValue,"onUpdate:modelValue":t[7]||(t[7]=te=>i.waveToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"sig-wave",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="sig-wave"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.significant")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="swell"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"swell"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.swell")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0),i.renderKey==="ice-forecast"&&W.key==="ice-forecast"?(o.openBlock(),o.createBlock(f,{key:3,modelValue:i.iceToggleValue,"onUpdate:modelValue":t[8]||(t[8]=te=>i.iceToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"ice-cover",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-cover"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.coverage")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-thickness"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"ice-thickness"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.thickness")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0)],64))),128))]),_:1})]),_:1}),o.createVNode(u,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(p,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.forecastModel")),1)]),_:1})]),_:1}),o.createVNode(m,{class:""},{default:o.withCtx(()=>{var W,te,Te,Le,fe,xe,U,ye,ie,ne,Se,Ee,Ve,B,se,ke,Ne,Pe,O,Ce,q,We,Ze,Oe,ve,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,kt,_t,vt,zt,Lt,Ct,St,Nt,Pt,Mt,Tt,Vt,Et,Rt,Dt,Bt,It,At,Ft,Gt,Wt,Zt,Ot,jt,Xt,Ht,Yt,Ut,Jt,Kt,qt,Qt,eo,to,oo,ao,io,ro,lo,no,so,co,mo,ho,po,go,uo,fo,yo,bo,wo,xo,ko,_o,vo,zo,Lo,Co,So,No,Po,Mo;return[o.createElementVNode("div",Kc,o.toDisplayString(e.$t("weather.atmospheric")),1),o.createElementVNode("div",qc,o.toDisplayString((Te=(te=(W=i.models)==null?void 0:W.weather)==null?void 0:te.NOAA)==null?void 0:Te.source)+" "+o.toDisplayString((xe=(fe=(Le=i.models)==null?void 0:Le.weather)==null?void 0:fe.NOAA)==null?void 0:xe.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((ne=(ie=(ye=(U=i.models)==null?void 0:U.weather)==null?void 0:ye.NOAA)==null?void 0:ie.meta)==null?void 0:ne.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",Qc,o.toDisplayString(e.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",em,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((B=(Ve=(Ee=(Se=i.models)==null?void 0:Se.weather)==null?void 0:Ee.NOAA)==null?void 0:Ve.meta)==null?void 0:B.availabilityTime)),1),o.createElementVNode("div",tm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Pe=(Ne=(ke=(se=i.models)==null?void 0:se.weather)==null?void 0:ke.NOAA)==null?void 0:Ne.meta)==null?void 0:Pe.initialisationTime)),1),o.createElementVNode("div",om,o.toDisplayString((q=(Ce=(O=i.models)==null?void 0:O.weather)==null?void 0:Ce.ECMWF)==null?void 0:q.source)+" "+o.toDisplayString((Oe=(Ze=(We=i.models)==null?void 0:We.weather)==null?void 0:Ze.ECMWF)==null?void 0:Oe.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((rt=(it=(at=(ve=i.models)==null?void 0:ve.weather)==null?void 0:at.ECMWF)==null?void 0:it.meta)==null?void 0:rt.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",am,o.toDisplayString(e.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",im,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((ct=(st=(nt=(lt=i.models)==null?void 0:lt.weather)==null?void 0:nt.ECMWF)==null?void 0:st.meta)==null?void 0:ct.availabilityTime)),1),o.createElementVNode("div",rm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((pt=(ht=(dt=(mt=i.models)==null?void 0:mt.weather)==null?void 0:dt.ECMWF)==null?void 0:ht.meta)==null?void 0:pt.initialisationTime)),1),o.createVNode(g),o.createElementVNode("div",lm,o.toDisplayString(e.$t("weather.wave")),1),o.createElementVNode("div",nm,o.toDisplayString((yt=(ft=(ut=(gt=i.models)==null?void 0:gt.marine)==null?void 0:ut.wave)==null?void 0:ft.NOAA)==null?void 0:yt.source)+" "+o.toDisplayString((kt=(xt=(wt=(bt=i.models)==null?void 0:bt.marine)==null?void 0:wt.wave)==null?void 0:xt.NOAA)==null?void 0:kt.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((Ct=(Lt=(zt=(vt=(_t=i.models)==null?void 0:_t.marine)==null?void 0:vt.wave)==null?void 0:zt.NOAA)==null?void 0:Lt.meta)==null?void 0:Ct.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",sm,o.toDisplayString(e.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",cm,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((Tt=(Mt=(Pt=(Nt=(St=i.models)==null?void 0:St.marine)==null?void 0:Nt.wave)==null?void 0:Pt.NOAA)==null?void 0:Mt.meta)==null?void 0:Tt.availabilityTime)),1),o.createElementVNode("div",mm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Bt=(Dt=(Rt=(Et=(Vt=i.models)==null?void 0:Vt.marine)==null?void 0:Et.wave)==null?void 0:Rt.NOAA)==null?void 0:Dt.meta)==null?void 0:Bt.initialisationTime)),1),o.createElementVNode("div",dm,o.toDisplayString((Gt=(Ft=(At=(It=i.models)==null?void 0:It.marine)==null?void 0:At.wave)==null?void 0:Ft.ECMWF)==null?void 0:Gt.source)+" "+o.toDisplayString((jt=(Ot=(Zt=(Wt=i.models)==null?void 0:Wt.marine)==null?void 0:Zt.wave)==null?void 0:Ot.ECMWF)==null?void 0:jt.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((Jt=(Ut=(Yt=(Ht=(Xt=i.models)==null?void 0:Xt.marine)==null?void 0:Ht.wave)==null?void 0:Yt.ECMWF)==null?void 0:Ut.meta)==null?void 0:Jt.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",hm,o.toDisplayString(e.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",pm,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((to=(eo=(Qt=(qt=(Kt=i.models)==null?void 0:Kt.marine)==null?void 0:qt.wave)==null?void 0:Qt.ECMWF)==null?void 0:eo.meta)==null?void 0:to.availabilityTime)),1),o.createElementVNode("div",gm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((lo=(ro=(io=(ao=(oo=i.models)==null?void 0:oo.marine)==null?void 0:ao.wave)==null?void 0:io.ECMWF)==null?void 0:ro.meta)==null?void 0:lo.initialisationTime)),1),o.createVNode(g),o.createElementVNode("div",um,o.toDisplayString(e.$t("weather.currents")),1),o.createElementVNode("div",fm,o.toDisplayString((mo=(co=(so=(no=i.models)==null?void 0:no.marine)==null?void 0:so.current)==null?void 0:co.ECMWF)==null?void 0:mo.source)+" "+o.toDisplayString((uo=(go=(po=(ho=i.models)==null?void 0:ho.marine)==null?void 0:po.current)==null?void 0:go.ECMWF)==null?void 0:uo.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((xo=(wo=(bo=(yo=(fo=i.models)==null?void 0:fo.marine)==null?void 0:yo.current)==null?void 0:bo.ECMWF)==null?void 0:wo.meta)==null?void 0:xo.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",ym,o.toDisplayString(e.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",bm,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((Lo=(zo=(vo=(_o=(ko=i.models)==null?void 0:ko.marine)==null?void 0:_o.current)==null?void 0:vo.ECMWF)==null?void 0:zo.meta)==null?void 0:Lo.availabilityTime)),1),o.createElementVNode("div",wm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Mo=(Po=(No=(So=(Co=i.models)==null?void 0:Co.marine)==null?void 0:So.current)==null?void 0:No.ECMWF)==null?void 0:Po.meta)==null?void 0:Mo.initialisationTime)),1)]}),_:1})]),_:1})],2)],6),a.map?(o.openBlock(),o.createBlock(b,o.mergeProps({key:1,ref:"windBarb",map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-3",wind:(A=i.weatherLayers)==null?void 0:A.wind,"menu-toggle":a.menuToggle},e.$attrs),null,16,["map","map-feather","wind","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(k,o.mergeProps({key:2,map:a.map,"before-layer":"empty-layer-2","sig-wave-height":(F=i.weatherLayers)==null?void 0:F["sig-wave-height"],"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},e.$attrs),null,16,["map","sig-wave-height","menu-toggle","active-weather-layers"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(L,o.mergeProps({key:3,map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-2",current:(Y=i.weatherLayers)==null?void 0:Y.current,"menu-toggle":a.menuToggle},e.$attrs),null,16,["map","map-feather","current","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(_,o.mergeProps({key:4,map:a.map,"before-layer":"empty-layer-3",prmsl:(D=i.weatherLayers)==null?void 0:D.prmsl,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},e.$attrs,{theme:a.theme}),null,16,["map","prmsl","menu-toggle","active-weather-layers","theme"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(z,o.mergeProps({key:5,viewport:i.viewport,factor:(R=i.weatherLayers)==null?void 0:R["wind-particle"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(S,o.mergeProps({key:6,viewport:i.viewport,factor:(Z=i.weatherLayers)==null?void 0:Z["current-particle"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(M,o.mergeProps({key:7,viewport:i.viewport,factor:(P=i.weatherLayers)==null?void 0:P["sig-wave"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(T,o.mergeProps({key:8,map:a.map,viewport:i.viewport,factor:(K=i.weatherLayers)==null?void 0:K.swell,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers,simple:a.simple},e.$attrs),null,16,["map","viewport","factor","menu-toggle","active-weather-layers","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(E,o.mergeProps({key:9,viewport:i.viewport,factor:(re=i.weatherLayers)==null?void 0:re["ice-edge"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(I,o.mergeProps({key:10,viewport:i.viewport,factor:(me=i.weatherLayers)==null?void 0:me["ice-cover"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(G,o.mergeProps({key:11,viewport:i.viewport,factor:(he=i.weatherLayers)==null?void 0:he["ice-thickness"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(j,o.mergeProps({key:12,viewport:i.viewport,factor:(ee=i.weatherLayers)==null?void 0:ee.precip3h,"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(H,o.mergeProps({key:13,viewport:i.viewport,factor:(le=i.weatherLayers)==null?void 0:le.visibility,"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(ae,o.mergeProps({key:14,viewport:i.viewport,factor:(de=i.weatherLayers)==null?void 0:de["water-temp"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(N,o.mergeProps({key:15,viewport:i.viewport,factor:(we=i.weatherLayers)==null?void 0:we.temp,"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0)])}const km=Q(Dc,[["render",xm]]),$e=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"GFS",alias:"GFS",model:"gfs_seamless",provider:"NOAA",country:"United States",resolution:25,tips:"3-25km",length:16,frequency:1,models:["gfs_seamless"],categories:"ncep_gfs013,ncep_gfs025,ncep_gfs_graphcast025,ncep_hrrr_conus,ncep_nbm_conus",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:2,name:"ECMWF",alias:"ECMWF",model:"ecmwf_ifs025",provider:"ECMWF",country:"European Union",resolution:25,tips:"25km",length:15,frequency:6,models:["ecmwf_ifs025","ecmwf_aifs025_single"],categories:"ecmwf_ifs025,ecmwf_aifs025_single",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:3,disabled:!0,name:"ICON",alias:"ECMWF",model:"icon_seamless",provider:"Deutscher Wetterdienst (DWD)",country:"Germany",resolution:13,tips:"2-13km",length:7.5,frequency:3,models:["icon_seamless","icon_global","icon_eu","icon_d2"],categories:"dwd_icon,dwd_icon_eps,dwd_icon_d2,dwd_icon_d2_eps,dwd_icon_eu,dwd_icon_eu_eps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:4,name:"ARPEGE",disabled:!0,alias:"ECMWF",model:"arpege_seamless",provider:"Météo-France",country:"France",resolution:25,tips:"1-25km",length:4,frequency:1,models:["arpege_seamless","arpege_world","arpege_europe"],categories:"meteofrance_arpege_europe,meteofrance_arpege_europe_probabilities,meteofrance_arpege_world025",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:5,name:"UKMO",disabled:!0,alias:"ECMWF",model:"ukmo_seamless",provider:"UK Met Office",country:"United Kingdom",resolution:10,tips:"2-10km",length:7,frequency:1,models:["ukmo_seamless","ukmo_global_deterministic_10km","ukmo_uk_deterministic_2km"],categories:"ukmo_global_deterministic_10km,ukmo_uk_deterministic_2km",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:6,name:"JMA",disabled:!0,alias:"GFS",model:"jma_seamless",provider:"JMA",country:"Japan",resolution:55,tips:"5-55km",length:11,frequency:3,models:["jma_seamless","jma_msm","jma_gsm"],categories:"jma_gsm,jma_msm",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:7,name:"GEM",disabled:!0,alias:"GFS",model:"gem_seamless",provider:"Canadian Weather Service",country:"Canada",resolution:2.5,tips:"2.5km",length:10,frequency:6,models:["gem_seamless","gem_global","gem_regional"],categories:"cmc_gem_gdps,cmc_gem_hrdps,cmc_gem_rdps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:8,name:"GRAPES",disabled:!0,alias:"GFS",model:"cma_grapes_global",provider:"China Meteorological Administration (CMA)",country:"China",resolution:15,tips:"15km",length:10,frequency:6,models:["cma_grapes_global"],categories:"cma_grapes_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:9,name:"ACCESS-G",disabled:!0,alias:"GFS",model:"bom_access_global",provider:"Australian Bureau of Meteorology (BOM)",country:"Australia",resolution:15,tips:"15km",length:10,frequency:6,models:["bom_access_global"],categories:"bom_access_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"}],Ke=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"MFWAM",alias:"ECMWF",model:"meteofrance_wave",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:12,models:["meteofrance_wave"],categories:"meteofrance_wave",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:2,disabled:!0,name:"SMOC",alias:"ECMWF",model:"meteofrance_currents",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:24,models:["meteofrance_currents"],categories:"meteofrance_currents, meteofrance_sea_surface_temperature",variables:"ocean_u_current,ocean_v_current,invert_barometer_height,sea_level_height_msl,sea_surface_temperature"},{rank:3,disabled:!0,name:"EWAM",alias:"ECMWF",model:"ewam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:8,frequency:2,models:["ewam"],categories:"dwd_ewam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:4,disabled:!0,name:"GWAM",alias:"ECMWF",model:"gwam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:4,frequency:2,models:["gwam"],categories:"dwd_gwam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:5,disabled:!0,name:"ECWAM",alias:"ECMWF",model:"ecmwf_wam025",provider:"ECMWF",country:"Europe",resolution:25,tips:"25km",length:10,frequency:6,models:["ecmwf_wam025"],categories:"ecmwf_wam025",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:6,name:"GFSWave",alias:"GFS",model:"ncep_gfswave025",provider:"NCEP",country:"USA",resolution:25,tips:"25km",length:10,frequency:6,models:["ncep_gfswave025","ncep_gfswave016"],categories:"ncep_gfswave025,ncep_gfswave016",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:7,disabled:!0,name:"ERA5-Ocean",alias:"ECMWF",model:"era5_ocean",provider:"Copernicus",country:"Europe",resolution:50,tips:"50km",length:-5,frequency:1,models:["era5_ocean"],categories:"copernicus_era5_ocean",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"}];let ma=class{static standardWeatherModels(){return $e.filter(t=>!t.disabled&&t.alias)}static standardMarineModels(){return Ke.filter(t=>!t.disabled&&t.alias)}static autoPickLayerModel(t,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",t=t==null?void 0:t.toLowerCase(),t==="gfs"?"gfs":["ec","ecmwf"].includes(t)?"ecmwf":["copernicus","cmems"].includes(t)?"copernicus":a}static autoPickPeerModel(t,a,r="copernicus"){if(a=this.autoPickLayerModel(a,r),xr.LayerHelper.WEATHER_LAYERS.reduce((i,l)=>l.atmos?i+l.weight:i,0)&t.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(t="best_match"){var a,r;t=t==null?void 0:t.toLowerCase(),t=t==="ec"?"ecmwf":t;const i=t.toLowerCase().split(","),l=[],n=[];for(const c of i){let s=$e.find(m=>{var g,u,y;return((g=m.models)==null?void 0:g.includes(c))||((u=m.alias)==null?void 0:u.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c}),d=Ke.find(m=>{var g,u,y;return((g=m.models)==null?void 0:g.includes(c))||((u=m.alias)==null?void 0:u.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c});s=s||$e.find(m=>{var g,u;return((g=m.alias)==null?void 0:g.toLowerCase())===((u=d==null?void 0:d.alias)==null?void 0:u.toLowerCase())}),d=d||Ke.find(m=>{var g,u;return((g=m.alias)==null?void 0:g.toLowerCase())===((u=s==null?void 0:s.alias)==null?void 0:u.toLowerCase())}),s=s||$e[0],d=d||Ke[0],l.push((a=s.models)!=null&&a.includes(c)?c:s.model),n.push((r=d.models)!=null&&r.includes(c)?c:d.model)}return{weatherModels:l.join(","),marineModels:n.join(",")}}static autoPickSubCategories(t){t=t.toUpperCase();const a=$e.filter(l=>l.alias===t),r=Ke.filter(l=>l.alias===t),i=[];return a.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),r.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),i}static pickHourly(t,a){var r,i,l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z,S,M,T,E,I,G,j,H,ae,N,A,F,Y,D,R,Z,P,K,re,me,he,ee,le,de,we,W,te,Te,Le,fe,xe;const U=typeof a=="string"?C(a):a,ye=t==null?void 0:t.weather,ie=t==null?void 0:t.marine,ne=C((i=(r=ye==null?void 0:ye[0])==null?void 0:r.hourly)==null?void 0:i.date).utc(),Se=ne.clone().add((c=(n=(l=ye==null?void 0:ye[0])==null?void 0:l.hourly)==null?void 0:n.time)==null?void 0:c.at(0),"h"),Ee=ne.clone().add((m=(d=(s=ye==null?void 0:ye[0])==null?void 0:s.hourly)==null?void 0:d.time)==null?void 0:m.at(-1),"h"),Ve=[];if(U.isBetween(Se,Ee,"millisecond","[]")){const B=U.utc().diff(Se,"h",!1);let se,ke;if(ye){let Ne=0,Pe=0,O=0;for(const Ce of ye){const q=Ce==null?void 0:Ce.hourly;for(let ve=B-(B-1)%3;ve<=B;ve++)Ne+=(g=q==null?void 0:q.precipitation)==null?void 0:g.at(ve);for(let ve=B-(B-1)%6;ve<=B;ve++)Pe+=(u=q==null?void 0:q.precipitation)==null?void 0:u.at(ve);for(let ve=B-(B-1)%12;ve<=B;ve++)O+=(y=q==null?void 0:q.precipitation)==null?void 0:y.at(ve);se={temp:(f=q==null?void 0:q.temperature_2m)==null?void 0:f.at(B),apparentTemp:(h=q==null?void 0:q.apparent_temperature)==null?void 0:h.at(B),rh:(p=q==null?void 0:q.relative_humidity_2m)==null?void 0:p.at(B),dp:(w=q==null?void 0:q.dew_point_2m)==null?void 0:w.at(B),precip:{probability:(x=q==null?void 0:q.precipitation_probability)==null?void 0:x.at(B),sum:(b=q==null?void 0:q.precipitation)==null?void 0:b.at(B),sum1Hours:(k=q==null?void 0:q.precipitation)==null?void 0:k.at(B),sum3Hours:Math.round(Ne*100)/100,sum6Hours:Math.round(Pe*100)/100,sum12Hours:Math.round(O*100)/100},pmsl:(L=q==null?void 0:q.pressure_msl)==null?void 0:L.at(B),psurf:(_=q==null?void 0:q.surface_pressure)==null?void 0:_.at(B),code:(z=q==null?void 0:q.weather_code)==null?void 0:z.at(B),visibility:this.m2nm((S=q==null?void 0:q.visibility)==null?void 0:S.at(B)),wind:{speed:(M=q==null?void 0:q.wind_speed_10m)==null?void 0:M.at(B),kts:(T=q==null?void 0:q.wind_speed_10m)==null?void 0:T.at(B),degree:(E=q==null?void 0:q.wind_direction_10m)==null?void 0:E.at(B),bearing:((I=q==null?void 0:q.wind_direction_10m)==null?void 0:I.at(B))!==null?(((G=q==null?void 0:q.wind_direction_10m)==null?void 0:G.at(B))+180)%360:null,gusts:(j=q==null?void 0:q.wind_gusts_10m)==null?void 0:j.at(B)},isDay:(H=q==null?void 0:q.is_day)==null?void 0:H.at(B)};const{name:We,url:Ze,bg:Oe}=this.parseWeatherCode(se.code,se.isDay);se.name=We,se.url=Ze,se.bg=Oe,se.wind.scale=this.beaufort(this.kts2ms(se.wind.kts)),se.wind.direction=this.degree2Direction(se.wind.degree),Ve.push({utc:Se.add(B,"h").format(),model:Ce.model,weather:{...se}})}}if(ie){let Ne=0;for(const Pe of ie){const O=Pe==null?void 0:Pe.hourly;ke={wave:{sig:{height:(ae=O==null?void 0:O.wave_height)==null?void 0:ae.at(B),degree:(N=O==null?void 0:O.wave_direction)==null?void 0:N.at(B),bearing:((A=O==null?void 0:O.wave_direction)==null?void 0:A.at(B))!==null?(((F=O==null?void 0:O.wave_direction)==null?void 0:F.at(B))+180)%360:null,period:(Y=O==null?void 0:O.wave_period)==null?void 0:Y.at(B)},swell:{height:(D=O==null?void 0:O.swell_wave_height)==null?void 0:D.at(B),degree:(R=O==null?void 0:O.swell_wave_direction)==null?void 0:R.at(B),bearing:((Z=O==null?void 0:O.swell_wave_direction)==null?void 0:Z.at(B))!==null?(((P=O==null?void 0:O.swell_wave_direction)==null?void 0:P.at(B))+180)%360:null,period:(K=O==null?void 0:O.swell_wave_period)==null?void 0:K.at(B),peakPeriod:(re=O==null?void 0:O.swell_wave_peak_period)==null?void 0:re.at(B)},wd:{height:(me=O==null?void 0:O.wind_wave_height)==null?void 0:me.at(B),degree:(he=O==null?void 0:O.wind_wave_direction)==null?void 0:he.at(B),bearing:((ee=O==null?void 0:O.wind_wave_direction)==null?void 0:ee.at(B))!==null?(((le=O==null?void 0:O.wind_wave_direction)==null?void 0:le.at(B))+180)%360:null,period:(de=O==null?void 0:O.wind_wave_period)==null?void 0:de.at(B),peakPeriod:(we=O==null?void 0:O.wind_wave_peak_period)==null?void 0:we.at(B)}},current:{speed:(W=O==null?void 0:O.ocean_current_velocity)==null?void 0:W.at(B),kts:(te=O==null?void 0:O.ocean_current_velocity)==null?void 0:te.at(B),degree:(Te=O==null?void 0:O.ocean_current_direction)==null?void 0:Te.at(B),bearing:((Le=O==null?void 0:O.ocean_current_direction)==null?void 0:Le.at(B))??null},sst:(fe=O==null?void 0:O.sea_surface_temperature)==null?void 0:fe.at(B),height:(xe=O==null?void 0:O.sea_level_height_msl)==null?void 0:xe.at(B)},ke.wave=this.parseWave(ke.wave,se==null?void 0:se.wind),ke.current.direction=this.degree2Direction(ke.current.degree),Object.assign(Ve[Ne],ke),Ne++}}}return Ve}static toLegacy(t){var a,r,i,l,n,c,s,d,m,g;return{wind:(a=t==null?void 0:t.weather)==null?void 0:a.wind,visibility:(r=t==null?void 0:t.weather)==null?void 0:r.visibility,temp:(i=t==null?void 0:t.weather)==null?void 0:i.temp,prmsl:(l=t==null?void 0:t.weather)==null?void 0:l.pmsl,gusts:{kts:(c=(n=t==null?void 0:t.weather)==null?void 0:n.wind)==null?void 0:c.gusts},precip:(s=t==null?void 0:t.weather)==null?void 0:s.precip,code:(d=t==null?void 0:t.weather)==null?void 0:d.code,name:(m=t==null?void 0:t.weather)==null?void 0:m.name,url:(g=t==null?void 0:t.weather)==null?void 0:g.url,wave:t==null?void 0:t.wave,current:t==null?void 0:t.current,sst:t==null?void 0:t.sst,height:t==null?void 0:t.height,utc:t==null?void 0:t.utc,source:t==null?void 0:t.model}}static pickDaily(t,a){var r,i,l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z,S,M,T,E,I,G,j,H,ae,N,A,F,Y,D,R,Z,P,K,re,me,he,ee,le;const de=typeof a=="string"?C(a):a,we=t==null?void 0:t.weather,W=t==null?void 0:t.marine,te=C((l=(i=(r=we==null?void 0:we[0])==null?void 0:r.daily)==null?void 0:i.time)==null?void 0:l.at(0)),Te=C((s=(c=(n=we==null?void 0:we[0])==null?void 0:n.daily)==null?void 0:c.time)==null?void 0:s.at(-1)),Le=[];if(de.isBetween(te,Te,"millisecond","[]")){let fe,xe;const U=de.diff(te,"d",!1);if(we)for(const ye of we){const ie=ye.daily;fe={code:(d=ie.weather_code)==null?void 0:d.at(U),temp:{max:(m=ie.temperature_2m_max)==null?void 0:m.at(U),min:(g=ie.temperature_2m_min)==null?void 0:g.at(U),mean:(u=ie.temperature_2m_mean)==null?void 0:u.at(U)},apparentTemp:{max:(y=ie.apparent_temperature_max)==null?void 0:y.at(U),min:(f=ie.apparent_temperature_min)==null?void 0:f.at(U)},precip:{sum:(h=ie.precipitation_sum)==null?void 0:h.at(U),rainSum:(p=ie.rain_sum)==null?void 0:p.at(U),snowfallSum:(w=ie.snowfall_sum)==null?void 0:w.at(U),showersSum:(x=ie.showers_sum)==null?void 0:x.at(U),hours:(b=ie.precipitation_hours)==null?void 0:b.at(U),probability:(k=ie.precipitation_probability_max)==null?void 0:k.at(U)},rh:{max:(L=ie.relative_humidity_2m_max)==null?void 0:L.at(U),min:(_=ie.relative_humidity_2m_min)==null?void 0:_.at(U),mean:(z=ie.relative_humidity_2m_mean)==null?void 0:z.at(U)},wind:{speed:(S=ie.wind_speed_10m_max)==null?void 0:S.at(U),kts:(M=ie.wind_speed_10m_max)==null?void 0:M.at(U),degree:(T=ie.wind_direction_10m_dominant)==null?void 0:T.at(U),gusts:(E=ie.wind_gusts_10m_max)==null?void 0:E.at(U),bearing:((I=ie.wind_direction_10m_dominant)==null?void 0:I.at(U))!==null?(((G=ie.wind_direction_10m_dominant)==null?void 0:G.at(U))+180)%360:null}};const{name:ne,url:Se,bg:Ee}=this.parseWeatherCode(fe.code,!0);fe.name=ne,fe.url=Se,fe.bg=Ee,fe.wind.scale=this.beaufort(this.kts2ms(fe.wind.kts)),fe.wind.direction=this.degree2Direction(fe.wind.degree),Le.push({utc:te.add(U,"d").utc().format(),model:ye.model,weather:{...fe}})}if(W){let ye=0;for(const ie of W){const ne=ie.daily;xe={wave:{sig:{height:(j=ne.wave_height_max)==null?void 0:j.at(U),degree:(H=ne.wave_direction_dominant)==null?void 0:H.at(U),period:(ae=ne.wave_period_max)==null?void 0:ae.at(U),bearing:((N=ne.wave_direction_dominant)==null?void 0:N.at(U))!==null?(((A=ne.wave_direction_dominant)==null?void 0:A.at(U))+180)%360:null},swell:{height:(F=ne.swell_wave_height_max)==null?void 0:F.at(U),degree:(Y=ne.swell_wave_direction_dominant)==null?void 0:Y.at(U),period:(D=ne.swell_wave_period_max)==null?void 0:D.at(U),peakPeriod:(R=ne.swell_wave_peak_period_max)==null?void 0:R.at(U),bearing:((Z=ne.swell_wave_direction_dominant)==null?void 0:Z.at(U))!==null?((P=ne.swell_wave_direction_dominant)==null?void 0:P.at(U))%360:null},wd:{height:(K=ne.wind_wave_height_max)==null?void 0:K.at(U),degree:(re=ne.wind_wave_direction_dominant)==null?void 0:re.at(U),period:(me=ne.wind_wave_period_max)==null?void 0:me.at(U),peakPeriod:(he=ne.wind_wave_peak_period_max)==null?void 0:he.at(U),bearing:((ee=ne.wind_wave_direction_dominant)==null?void 0:ee.at(U))!==null?(((le=ne.wind_wave_direction_dominant)==null?void 0:le.at(U))+180)%360:null}}},xe.wave=this.parseWave(xe.wave,fe==null?void 0:fe.wind),Object.assign(Le[ye],xe),ye++}}}return Le}static parseWave(t,a){if(t.sig.direction=this.degree2Direction(t.sig.degree),t.swell.direction=this.degree2Direction(t.swell.degree),t.wd.direction=this.degree2Direction(t.wd.degree),t.sig.scale=this.douglas(t.sig.height),t.swell.scale=this.douglas(t.swell.height),t.wd.scale=this.douglas(t.wd.height),t.sig.height===0){const r=Math.sqrt(Math.pow(t.swell.height||0,2)+Math.pow(t.wd.height||0,2));t.sig.height=Math.round(r*100)/100}if(t.swell.height===0)if(t.sig.height>t.wd.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.wd.height||0,2)));t.swell.height=Math.round(r*100)/100}else{const r=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,i=r>1?r/10:r>.5?r/5:r>.3?r/2:r;t.swell.height=Math.round(i*100)/100}if(t.wd.height===0||t.wd.height>t.sig.height)if(t.sig.height>t.swell.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.swell.height||0,2))),i=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(Math.min(r,i)*100)/100}else{const r=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(r*100)/100}return t.swell.height>t.sig.height&&(t.swell.height=Math.round(t.sig.height*.76*100)/100),t.sig.period||(t.sig.period=Math.round(5*Math.sqrt(t.sig.height))),t.swell.period||(t.swell.period=Math.round(5*Math.sqrt(t.swell.height))),t.wd.period||(t.wd.period=Math.round(5*Math.sqrt(t.wd.height))),t}static parseWeatherCode(t,a){const r=this.weatherCode(t);return(a?r.day:r.night)||{}}static weatherCode(t){const a={code:t};switch(t){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(t){return isNaN(t)||t===null?t:Math.round(t*1852/3600*1e4)/1e4}static kts2kmh(t){return isNaN(t)||t===null?t:t*1.852}static m2nm(t){return isNaN(t)||t===null?t:Math.round(t/1e3/1.852*1e4)/1e4}static kmh2kts(t){return isNaN(t)||t===null?t:this.ms2kts(t*1e3/3600)}static ms2kts(t){return isNaN(t)||t===null?t:Math.round(t*3600/1852*1e4)/1e4}static degree2Radian(t){if(isNaN(t)||t===null)return t;let a=t%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(t){const a=this.degree2Radian(t);if(isNaN(a)||a===null)return null;let r="N/A";const i=Math.PI/16;return a<i?r="N":a>=i&&a<3*i?r="NNE":a>=3*i&&a<5*i?r="NE":a>=5*i&&a<7*i?r="ENE":a>=7*i&&a<9*i?r="E":a>=9*i&&a<11*i?r="ESE":a>=11*i&&a<13*i?r="SE":a>=13*i&&a<15*i?r="SSE":a>=15*i&&a<17*i?r="S":a>=17*i&&a<19*i?r="SSW":a>=19*i&&a<21*i?r="SW":a>=21*i&&a<23*i?r="WSW":a>=23*i&&a<25*i?r="W":a>=25*i&&a<27*i?r="WNW":a>=27*i&&a<29*i?r="NW":a>=29*i&&a<31*i?r="NNW":a>=31*i&&a<32*i&&(r="N"),r}static beaufort(t){let a=0;return isNaN(t)||(t=Math.round(t*10)/10,t<=.2?a=0:t<=1.5?a=1:t<=3.3?a=2:t<=5.4?a=3:t<=7.9?a=4:t<=10.7?a=5:t<=13.8?a=6:t<=17.1?a=7:t<=20.7?a=8:t<=22.4?a=9:t<=28.4?a=10:t<=32.6?a=11:t<=36.9?a=12:t<=41.4?a=13:t<=46.1?a=14:t<=50.9?a=15:t<=55.9?a=16:t<=61.2?a=17:t>61.2&&(a=18)),a}static douglas(t){let a="Calm";return isNaN(t)||t<=.1?a="Calm":t<=.5?a="Smooth":t<=1.25?a="Slight":t<=2.5?a="Moderate":t<=4?a="Rough":t<=6?a="VeryRough":t<=9?a="High":t<=14?a="VeryHigh":a="Precipitous",a}};const xf="",_m={name:"IdmTropicals",props:{simple:{type:Boolean,default:!1},permission:{type:Number},locale:{type:String},map:{type:Object},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},timeZone:{type:Number},token:{type:String},defaultMeteoToken:{type:String},gateway:{type:String,default:"aa"},assistGateway:{type:Array,default:[]},forecastModel:{type:String},realTime:{type:String},beforeLayer:{type:String}},emits:["tropical","tropicalCenterPoints","tropicalProbability","tropicalNotification"],setup(){return{Theme:be.useTheme()}},data(){return{right:10,toggle:!1,helper:je.CompanyHelper,tropicals:void 0,tropicalCacheKey:"tropicalCacheGL4",source:"tropicals-source",clusterSource:"tropicals-cluster-source",historyLayer:"tropicals-history-layer",forecastLayer:"tropicals-forecast-layer",forecastModelLayer:"tropicals-forecast-model-layer",forecastNameLayer:"tropicals-forecast-name-layer",pointCircleLayer:"tropicals-point-circle-layer",pointLabelLayer:"tropicals-point-label-layer",historyPointCircleLayer:"history-tropicals-point-circle-layer",historyPointLabelLayer:"history-tropicals-point-label-layer",interpolateData:[],interpolateMarkers:[],interpolateSource:"tropicals-interpolate-source",interpolateLineLayer:"tropicals-interpolate-line-layer",showTropicalsInfo:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:J.featureCollection([]),showLegend:!1,showHoverPoint:!1,hoverPoint:void 0,hoverMarker:void 0}},computed:{hoverLayers(){return[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.pointCircleLayer,this.pointCircleLayer+"-border",this.historyPointCircleLayer,this.historyPointCircleLayer+"-border",this.historyPointCircleLayer+"-inner"]},clickLayers(){return[this.forecastNameLayer,this.historyLayer]},computeTime(){return(e,t)=>{if(e){const a=C(e).utcOffset(t),r=t<0?t:"+"+t;return`${a==null?void 0:a.format("MMM-DD/HHmm")} (UTC${r}) ${a==null?void 0:a.fromNow()} `}return"-"}},computeTzTime(){return(e,t,a="MM-DD HH:mm")=>{var r,i;if(e){const l=t||0,n=(i=(r=C(e))==null?void 0:r.utcOffset(l))==null?void 0:i.format(a),c=`(UTC ${l>=0?"+":""}${l})`;return n+" "+c}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(e){const t=ma.kts2ms(e);return ma.beaufort(t)}},computeMovement(){return function(e){var t,a;return(a=(t=e==null?void 0:e.forecasts)==null?void 0:t.find(r=>!r.disabled))==null?void 0:a.movement}},computePosition(){return e=>!e||e.lng===null||e.lng===void 0||isNaN(e.lng)||e.lat===null||e.lat===void 0||isNaN(e.lat)?"-":X.LngLatHelper.lat2pretty(e==null?void 0:e.lat,2).pretty+" / "+X.LngLatHelper.lng2pretty(e==null?void 0:e.lng,2).pretty}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)})},immediate:!0},map:{handler(){this.map?(this.toggle=localStorage.getItem(this.tropicalCacheKey)==="true"||!1,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle&&this.fetchTropicals()):this.handleClear()}},showTropicalsInfo:{handler(){this.$emit("tropical",this.showTropicalsInfo),this.simple&&this.showTropicalsInfo?this.$nextTick(()=>{var e,t;this.$parent.playerBottom=((t=(e=this.$refs.tropicalsInfo)==null?void 0:e.$el)==null?void 0:t.clientHeight)+10}):this.simple&&(this.$parent.playerBottom=30)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(e,t){e!==t&&this.handleRefresh()}},realTime:{handler(e){this.map&&e&&this.toggle&&this.handleRender()}},locale:{handler(e){this.map&&this.toggle&&this.handleRefresh()}}},mounted(){},methods:{handleMenuToggle(){var e,t,a;this.toggle=!this.toggle,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle?this.fetchTropicals():(this.handleClear(),(a=(t=(e=this.$parent)==null?void 0:e.$refs)==null?void 0:t.idmBottomBar)==null||a.handleToggle("tropical",!1))},async fetchTropicals(){var i,l,n;const e=new Date().valueOf();let t=0,a=0,r=(i=je.LayerHelper.WEATHER_LAYERS.find(c=>c.key==="tropicals"))==null?void 0:i.weight;if(r>0){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],s=await ge.get(`${c}/api/arc/weather/layers2/links?l=${r}&v=${this.forecastModel}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(a=new Date().valueOf()-(e+t),console.log("weather links elapsed: ",a,", total: ",t+=a),((l=s==null?void 0:s.data)==null?void 0:l.code)===0){const d=(n=s==null?void 0:s.data)==null?void 0:n.data;await ge.get(d.tropicals,{headers:{Authorization:this.defaultMeteoToken,key:"tropicals"},responseType:/\.(jpg|png)$/.test(d.tropicals)?"blob":"json"}).then(m=>{var y,f,h;const g=X.TropicalHelper.convert2Geojson(((y=m==null?void 0:m.data)==null?void 0:y.data)||(m==null?void 0:m.data));((h=(f=m==null?void 0:m.config)==null?void 0:f.headers)==null?void 0:h.key)&&g&&(this.tropicals={data:g,active:!0,cached:!0,type:"json",etime:s.data.etime,version:Math.random()+1})}).catch(m=>{console.log(`tropicals fetch layer error: ${m}`)})}a=new Date().valueOf()-(e+t),console.log("tropicals elapsed: ",a,", total: ",t+=a)}},handleRefresh(){var t,a;(((a=(t=this.tropicals)==null?void 0:t.data)==null?void 0:a.features)||[]).forEach(r=>{var l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z;let i="";switch(!0){case(((l=r.properties.wind)==null?void 0:l.kts)<32||((n=r.properties)==null?void 0:n.kts)<32):i="td";break;case(((c=r.properties.wind)==null?void 0:c.kts)<47||((s=r.properties)==null?void 0:s.kts)<47):i="ts";break;case(((d=r.properties.wind)==null?void 0:d.kts)<63||((m=r.properties)==null?void 0:m.kts)<63):i="sts";break;case(((g=r.properties.wind)==null?void 0:g.kts)<79||((u=r.properties)==null?void 0:u.kts)<79):i="ty";break;case(((y=r.properties.wind)==null?void 0:y.kts)<94||((f=r.properties)==null?void 0:f.kts)<94):i="sty";break;case(((h=r.properties.wind)==null?void 0:h.kts)>=94||((p=r.properties)==null?void 0:p.kts)>=94):i="superTy";break;default:i="superTy";break}r.properties.levelI18n=i,((w=r.geometry)==null?void 0:w.type)==="Point"&&((x=r.properties)!=null&&x.important)&&(r.properties.format=(k=(b=C(r.properties.date))==null?void 0:b.utcOffset(this.timeZone))==null?void 0:k.format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`)),((L=r.geometry)==null?void 0:L.type)==="Point"&&(r.properties.Name=((z=(_=r.properties.name)==null?void 0:_.trim())==null?void 0:z.replace(/^./,S=>S.toUpperCase()))||r.properties.nameCn,r.properties.nameCn=r.properties.nameCn||r.properties.Name||"-")}),this.handleInit()},handleInit(){var e,t,a,r,i,l,n,c,s,d,m,g;this.handleClear(),this.tropicals&&this.map&&(this.handleRender(),(e=this.map)==null||e.on("click",this.clickLayers,this.handleClick),(t=this.map)==null||t.on("mousemove",this.hoverLayers,this.handleHover),(a=this.map)==null||a.on("mouseleave",this.hoverLayers,this.handleLeave)),((l=(i=(r=this.tropicals)==null?void 0:r.data)==null?void 0:i.features)==null?void 0:l.length)>0?(s=(c=(n=this.$parent)==null?void 0:n.$refs)==null?void 0:c.idmBottomBar)==null||s.handleToggle("tropical",!0):(g=(m=(d=this.$parent)==null?void 0:d.$refs)==null?void 0:m.idmBottomBar)==null||g.handleToggle("tropical",!1)},handleRender(){var e,t,a,r,i,l,n,c,s,d;if(this.tropicals&&this.map){const m=new Date().valueOf();let g=0,u=0;(e=this.map)!=null&&e.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((t=this.tropicals)!=null&&t.active?this.tropicals.data:this.empty),u=new Date().valueOf()-(m+g),console.log("[tropicals] update elapsed: ",u,", total: ",g+=u)):(this.map.addSource(this.source,{type:"geojson",data:(r=this.tropicals)!=null&&r.active?(i=this.tropicals)==null?void 0:i.data:this.empty}),this.map.addLayer({id:this.historyLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","history"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["on-surface"],"line-width":3,"line-opacity":.7}},this.beforeLayer),this.map.addLayer({id:this.forecastLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"line-width":2,"line-opacity":1,"line-dasharray":[1,2]}},this.beforeLayer),this.map.addLayer({id:this.forecastModelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"symbol-placement":"line","text-field":"{model}","text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":this.Theme.current.value.dark?"#333":"#fff","text-opacity":1,"text-halo-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"text-halo-width":4}},this.beforeLayer),u=new Date().valueOf()-(m+g),console.log("[tropical] add elapsed: ",u,", total: ",g+=u)),(l=this.map)!=null&&l.getSource(this.clusterSource)?((c=this.map)==null||c.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),u=new Date().valueOf()-(m+g),console.log("[tropical] update elapsed: ",u,", total: ",g+=u)):(this.map.addSource(this.clusterSource,{type:"geojson",data:(s=this.tropicals)!=null&&s.active?(d=this.tropicals)==null?void 0:d.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.pointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":4,"circle-color":["case",["boolean",["==",["get","kts",["get","wind"]],null]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],32]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],47]],this.Theme.current.value.colors["tropicals-ts"],["boolean",["<",["get","kts",["get","wind"]],63]],this.Theme.current.value.colors["tropicals-sts"],["boolean",["<",["get","kts",["get","wind"]],79]],this.Theme.current.value.colors["tropicals-ty"],["boolean",["<",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-sty"],["boolean",[">=",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-super-ty"],"#fff"]}},this.beforeLayer),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":6,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"rgba(0,0,0,0.7)"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-inner",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":3,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.forecastNameLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["==","important",!0]],layout:{"text-field":["get",this.locale==="en"?"Name":"nameCn"],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-offset":[0,2]},paint:{"text-color":this.Theme.current.value.colors["map-blue"],"text-halo-color":"#ffffff","text-halo-width":2}},this.beforeLayer),u=new Date().valueOf()-(m+g),console.log("[tropical] add elapsed: ",u,", total: ",g+=u));const y=X.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(y)),this.handleDateChange()}},handleClear(){var e,t,a,r;this.map&&(this.map.getLayer(this.historyLayer)&&this.map.removeLayer(this.historyLayer),this.map.getLayer(this.forecastLayer)&&this.map.removeLayer(this.forecastLayer),this.map.getLayer(this.forecastModelLayer)&&this.map.removeLayer(this.forecastModelLayer),this.map.getLayer(this.forecastNameLayer)&&this.map.removeLayer(this.forecastNameLayer),this.map.getLayer(this.pointCircleLayer)&&this.map.removeLayer(this.pointCircleLayer),this.map.getLayer(this.pointCircleLayer+"-border")&&this.map.removeLayer(this.pointCircleLayer+"-border"),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.historyPointCircleLayer)&&this.map.removeLayer(this.historyPointCircleLayer),this.map.getLayer(this.historyPointCircleLayer+"-border")&&this.map.removeLayer(this.historyPointCircleLayer+"-border"),this.map.getLayer(this.historyPointCircleLayer+"-inner")&&this.map.removeLayer(this.historyPointCircleLayer+"-inner"),this.map.getLayer(this.historyPointLabelLayer)&&this.map.removeLayer(this.historyPointLabelLayer),this.map.getLayer(this.interpolateLineLayer)&&this.map.removeLayer(this.interpolateLineLayer),(e=this.interpolateMarkers)==null||e.forEach(i=>i==null?void 0:i.remove()),this.map.getSource(this.source)&&this.map.removeSource(this.source),this.map.getSource(this.clusterSource)&&this.map.removeSource(this.clusterSource),this.map.getSource(this.interpolateSource)&&this.map.removeSource(this.interpolateSource)),(t=this.map)==null||t.off("click",this.clickLayers,this.handleClick),(a=this.map)==null||a.off("mousemove",this.hoverLayers,this.handleHover),(r=this.map)==null||r.off("mouseleave",this.hoverLayers,this.handleLeave),this.handleCloseInfoMarker()},handleDateChange(){var e,t,a,r,i,l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z,S,M,T,E,I,G,j,H,ae,N,A;if((e=this.interpolateMarkers)==null||e.forEach(F=>F==null?void 0:F.remove()),(t=this.interpolateData)!=null&&t.length&&this.tropicals.active){const F=C(this.realTime).utc().set({minute:0,second:0,millisecond:0}),Y=this.interpolateData.filter(P=>P.properties.date===(F==null?void 0:F.format())&&!P.properties.disabled),D=this.handleComputePolygons(Y),R=J.featureCollection([...Y]);D.forEach(P=>{R.features.push(P)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(r=this.map)==null||r.getSource(this.interpolateSource).setData(R):((i=this.map)==null||i.addSource(this.interpolateSource,{type:"geojson",data:R}),(l=this.map)==null||l.addLayer({id:this.interpolateLineLayer,type:"line",source:this.interpolateSource,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-opacity":1,"line-color":["match",["get","level"],7,this.Theme.current.value.colors["tropicals-r7"],10,this.Theme.current.value.colors["tropicals-r10"],this.Theme.current.value.colors["tropicals-r10"]],"line-width":1}},"empty-layer-3")),this.interpolateMarkers=[];const Z=[];for(const P of Y)if(!P.properties.disabled){if(!Z.some(ee=>{var le;return ee.properties.name===((le=P.properties)==null?void 0:le.name)})){const ee=((c=(n=this.tropicals.data.features.find(le=>{var de;return le.properties.name===((de=P.properties)==null?void 0:de.name)}))==null?void 0:n.properties)==null?void 0:c.nameCn)||((s=P.properties)==null?void 0:s.Name)||"-";P.properties.nameCn=ee,P.properties.Name=((m=(d=P.properties.name)==null?void 0:d.trim())==null?void 0:m.replace(/^./,le=>le.toUpperCase()))||P.properties.nameCn,Z.push(P)}let K=this.Theme.current.value.colors["tropicals-ty"];((u=(g=P.properties)==null?void 0:g.wind)==null?void 0:u.kts)<32||!((f=(y=P.properties)==null?void 0:y.wind)!=null&&f.kts)?K=this.Theme.current.value.colors["tropicals-td"]:((p=(h=P.properties)==null?void 0:h.wind)==null?void 0:p.kts)>=32&&((x=(w=P.properties)==null?void 0:w.wind)==null?void 0:x.kts)<47?K=this.Theme.current.value.colors["tropicals-ts"]:((k=(b=P.properties)==null?void 0:b.wind)==null?void 0:k.kts)>=47&&((_=(L=P.properties)==null?void 0:L.wind)==null?void 0:_.kts)<63?K=this.Theme.current.value.colors["tropicals-sts"]:((S=(z=P.properties)==null?void 0:z.wind)==null?void 0:S.kts)>=63&&((T=(M=P.properties)==null?void 0:M.wind)==null?void 0:T.kts)<79?K=this.Theme.current.value.colors["tropicals-ty"]:((I=(E=P.properties)==null?void 0:E.wind)==null?void 0:I.kts)>=79&&((j=(G=P.properties)==null?void 0:G.wind)==null?void 0:j.kts)<94?K=this.Theme.current.value.colors["tropicals-sty"]:((ae=(H=P.properties)==null?void 0:H.wind)==null?void 0:ae.kts)>=94?K=this.Theme.current.value.colors["tropicals-super-ty"]:K=this.Theme.current.value.colors["tropicals-ty"];const re=`<svg t="1719918955501"
203
+ `,["get","val"],{"font-scale":1}],"text-rotation-alignment":"map","text-line-height":1.3,"text-size":12,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"]},paint:{"text-color":this.theme==="light"?["step",["get","val"],"rgba(0, 0, 0, 0.5)",920,"rgba(0, 0, 0, 0.5)",980,"rgba(0, 0, 0, 0.7)",1100,"rgba(0, 0, 0, 0.7)"]:"rgba(0,0,0,1)","text-halo-color":["step",["get","val"],"rgba(162,13,2,1)",920,"rgba(255, 96, 98, 1)",980,"rgba(255, 246, 184, 1)",1100,"rgba(199,171,250,1)"],"text-halo-width":1}},this.beforeLayer),l=new Date().valueOf()-(r+i),console.log("[prmsl] add elapsed: ",l,", total: ",i+=l))}},handleClear(){this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.labelLayer)&&this.map.removeLayer(this.labelLayer),this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function rc(e,t,a,r,i,l){return null}const lc=Q(ic,[["render",rc]]),hf="",nc={name:"IdmIceEdge",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[ice-edge] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(86, 169, 230, 0)"],[1/255,"rgba(86, 169, 230, 0)"],[25/255,"rgba(86, 169, 230, 1)"],[25/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(47, 226, 155, 1)"],[100/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(213, 253, 37, 1)"],[175/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 176, 39, 1)"],[225/255,"rgba(230, 84, 39, 1)"],[250/255,"rgba(230, 84, 39, 1)"],[1,"rgba(230, 84, 39, 1)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},sc={key:0};function cc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",sc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-edge",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",{style:{color:"rgba(var(--v-theme-black), 0.7)"}},"%",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"70",-1),o.createElementVNode("span",null,null,-1),o.createElementVNode("span",null,"90",-1),o.createElementVNode("span",null,null,-1)]),4)])):o.createCommentVNode("",!0)}const mc=Q(nc,[["render",cc]]),pf="",dc={name:"IdmCover",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[ice-cover] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(68, 1, 84, 0)"],[1/255,"rgba(63, 72, 137, 0)"],[50/255,"rgba(53, 125, 177, 1)"],[100/255,"rgba(33, 145, 140, 1)"],[150/255,"rgba(45, 178, 125, 1)"],[200/255,"rgba(112, 207, 87, 1)"],[250/255,"rgba(253, 231, 37, 0.8)"],[1,"rgba(253, 231, 37, 1)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},hc={key:0};function pc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",hc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-cover",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"%",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"40",-1),o.createElementVNode("span",null,"60",-1),o.createElementVNode("span",null,"80",-1),o.createElementVNode("span",null,"100",-1)]),4)])):o.createCommentVNode("",!0)}const gc=Q(dc,[["render",pc],["__scopeId","data-v-916b01eb"]]),gf="",uc={name:"IdmThickness",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object},bottom:{type:String,default:"70px"}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[ice-thickness] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(4, 6, 19, 0)"],[1/255,"rgba(4, 6, 19, 0)"],[20/255,"rgba(51, 50, 102, 1)"],[40/255,"rgba(63, 82, 158, 1)"],[50/255,"rgba(66, 123, 183, 1)"],[60/255,"rgba(92, 161, 197, 1)"],[80/255,"rgba(134, 199, 212, 0.7)"],[100/255,"rgba(134, 199, 212, 1)"],[150/255,"rgba(234, 253, 2536, 0.8)"],[250/255,"rgba(234, 253, 2536, 0.9)"],[1,"rgba(234, 253, 2536, 1)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},fc={key:0};function yc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",fc,[o.createElementVNode("div",{class:"legend-bars-gl4 ice-thickness",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"m",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.6",-1),o.createElementVNode("span",null,"1",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1)]),4)])):o.createCommentVNode("",!0)}const bc=Q(uc,[["render",yc]]),uf="",wc={name:"IdmPrecip3h",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},deeimmediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[precip3h] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(59, 126, 162, 0)"],[14/255,"rgba(84,170,230, 0)"],[15/255,"rgba(172, 210, 255, 0.8)"],[20/255,"rgba(51,202,248,0.8)"],[30/255,"rgba(3,248,103,0.8)"],[49/255,"rgba(14,201,3,0.8)"],[57/255,"rgba(190,226,2,0.8)"],[73/255,"rgba(248,1,1,0.8)"],[82/255,"rgba(197,5,58,0.8)"],[1,"rgba(197,5,58,0.8)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},xc={key:0};function kc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",xc,[o.createElementVNode("div",{class:"legend-bars-gl4 precip3h",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"mm",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"2",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"7",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1)]),4)])):o.createCommentVNode("",!0)}const _c=Q(wc,[["render",kc]]),ff="",vc={name:"IdmVisibility",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{right:10,program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[visibility] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(189,50,160,0.8)"],[8/255,"rgba(208,56,56,0.8)"],[27/255,"rgba(190,226,2,0.8)"],[60/255,"rgba(3,236,118,0.8)"],[160/255,"rgba(172, 210,255,0.8)"],[161/255,"rgba(172, 210,255,0)"],[1,"rgba(144,144,144,0)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},zc={key:0};function Lc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",zc,[o.createElementVNode("div",{class:"legend-bars-gl4 visibility",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"nm",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"0.5",-1),o.createElementVNode("span",null,"1.5",-1),o.createElementVNode("span",null,"3",-1),o.createElementVNode("span",null,"9",-1)]),4)])):o.createCommentVNode("",!0)}const Cc=Q(vc,[["render",Lc]]),yf="",Sc={name:"IdmWaterTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[water-temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgba(95, 143, 197)"],[46/255,"rgba(95, 143, 197)"],[69/255,"rgb(80, 140, 62)"],[92/255,"rgb(121, 146, 28)"],[115/255,"rgb(171, 161, 14)"],[138/255,"rgb(223, 177, 69)"],[161/255,"rgb(243, 150, 6)"],[184/255,"rgb(236, 95, 21)"],[207/255,"rgb(190, 65, 18)"],[230/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Nc={key:0};function Pc(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Nc,[o.createElementVNode("div",{class:"legend-bars-gl4 water-temp",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Mc=Q(Sc,[["render",Pc]]),bf="",Tc={name:"IdmTemp",props:{simple:{type:Boolean,default:!1},factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},menuToggle:{type:Object}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Me,etime:void 0,right:10}},watch:{"factor.version":{handler(){var e;(e=this.factor)!=null&&e.active?this.handleRender():this.handleClear()},immediate:!0},"menuToggle.v":{handler(){var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)},immediate:!0}},methods:{handleRender(){if(this.factor){const e=new Date().valueOf();let t=0,a=0;this.handleDraw(),a=new Date().valueOf()-(e+t),console.log("[temp] add elapsed: ",a,", total: ",t+=a)}},handleClear(){this.context=void 0,this.etime=void 0,this.viewport.toggle(!1)},handleSetup(){if(!this.context){this.context=this.viewport.rampColorCanvas.getContext("webgl");const e=[[0,"rgb(149, 137, 211)"],[100/255,"rgb(149, 137, 211)"],[110/255,"rgb(150, 209, 216)"],[120/255,"rgb(129, 204, 197)"],[130/255,"rgb(103, 180, 186)"],[140/255,"rgb(95, 143, 197)"],[150/255,"rgb(80, 140, 62)"],[160/255,"rgb(121, 146, 28)"],[170/255,"rgb(171, 161, 14)"],[180/255,"rgb(223, 177, 6)"],[190/255,"rgb(243, 150, 6)"],[200/255,"rgb(236, 95, 21)"],[210/255,"rgb(190, 65, 18)"],[220/255,"rgb(138, 43, 10)"],[1,"rgb(138, 43, 10)"]];this.rampColor=this.webgl.setup(this.context,e);const{program:t,aPositionBuffer:a}=this.webgl.bind(this.context,pe.vertexSchema,pe.fragmentSchema);this.program=t,this.aPositionBuffer=a}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const e=await this.webgl.loadImg(this.factor.raw);this.texture=this.webgl.createTexture(this.context,this.context.NEAREST,this.context.LINEAR,this.context.CLAMP_TO_EDGE,e)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},Vc={key:0};function Ec(e,t,a,r,i,l){var n;return(n=a.factor)!=null&&n.active?(o.openBlock(),o.createElementBlock("div",Vc,[o.createElementVNode("div",{class:"legend-bars-gl4 temp",style:o.normalizeStyle({right:i.right+"px"})},t[0]||(t[0]=[o.createElementVNode("span",null,"°C",-1),o.createElementVNode("span",null,"-20",-1),o.createElementVNode("span",null,"-10",-1),o.createElementVNode("span",null,"0",-1),o.createElementVNode("span",null,"10",-1),o.createElementVNode("span",null,"20",-1),o.createElementVNode("span",null,"30",-1),o.createElementVNode("span",null,"40",-1)]),4)])):o.createCommentVNode("",!0)}const Rc=Q(Tc,[["render",Ec]]),wf="",Dc={name:"IdmGlLayer",components:{IdmWindBarb:Ds,IdmWindParticle:Fs,IdmCurrentDirection:Zs,IdmCurrentParticle:Hs,IdmWave:$s,IdmSigWaveHeight:Qs,IdmSwell:ac,IdmPrmsl:lc,IdmIceEdge:mc,IdmIceCover:gc,IdmIceThickness:bc,IdmPrecip3h:_c,IdmVisibility:Cc,IdmWaterTemp:Mc,IdmTemp:Rc},props:{simple:{type:Boolean,default:!1},isLogin:{type:Boolean,default:!1},theme:{type:String},map:{type:Object},mapFeather:{type:String},gateway:{type:String},assistGateway:{type:Array,default:[]},defaultMeteoToken:{type:String},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},realTime:{type:String},forecastModel:{type:String},beforeLayer:{type:String}},emits:["forecastModel","menuToggle","weatherCheckList","autoActive","weatherRendered"],data(){return{right:10,toggle:!1,autoActive:!0,weatherWeight:0,allLayers:[...je.LayerHelper.WEATHER_LAYERS],tagLayers:[...je.LayerHelper.WEATHER_LAYERS.filter(e=>!e.hide)],checkList:[],renderKey:"",iceToggleValue:void 0,waveToggleValue:void 0,weatherLayers:{},activeWeatherLayers:[],cache:{v:"0.0.1",versionKey:"weatherLayerCacheVersionGL4",autoActiveKey:"autoActiveCacheGL4",checkListKey:"weatherCheckListCacheGL4"},models:{},currentModel:localStorage.getItem("forecastModelCacheGL4")==="GFS"?"GFS":"ECMWF",zoom:6,viewport:void 0,particleFactor:void 0,showWindParticle:!0,showCurrentParticle:!0,legendToggle:!1,legend:{barbs:[2,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,0],current:[{label:"0-0.5 kts",size:.3,color:"rgb(58, 164, 58)"},{label:"0.5-1 kts",size:.4,color:"#ffff00"},{label:"1-1.5 kts",size:.6,color:"#ff9500"},{label:"1.5-2 kts",size:.8,color:"#f44336"},{label:">= 2 kts",size:1,color:"#e4711e"}],sigWaveHeight:[{label:"< 2 m",color:"rgba(0,235,156,0)"},{label:"2-3 m",color:"rgba(0,235,156,0.4)"},{label:"3-4 m",color:"#ffed00"},{label:"4-5 m",color:"#ff9800"},{label:"5-6 m",color:"#f77800"},{label:"6-7 m",color:"#e4711e"},{label:"7-8 m",color:"#e06128"},{label:"8-9 m",color:"#dc5132"},{label:"9-10 m",color:"#d5453c"},{label:"10-12 m",color:"#cd3a46"},{label:"12-14 m",color:"#be2c50"},{label:"> 14 m",color:"#aa1a5a"}]}}},computed:{listStyle(){return this.simple?{top:this.top+"px",left:this.toggle?"0px":"-280px"}:{top:this.top+"px",right:this.toggle?"0px":"-280px"}},computeDateZ(){return function(e){var t;if(e){const a=C(e);return`${(t=a==null?void 0:a.utc())==null?void 0:t.format("MMM-DD/HHmm")}Z`}return"-"}},computeDateUpdate(){return function(e){return e?C(e).fromNow():"-"}},overlaysKeys(){return this.tagLayers.filter(e=>e.overlays).map(e=>e.key)},rendersKeys(){return this.allLayers.filter(e=>!e.overlays&&e.enabled).map(e=>e.key)},showTipMenu(){return this.checkList.includes("wind")||this.checkList.includes("current-direction")||this.checkList.includes("sig-wave-height")},barbsIconName(){var t,a,r;const e=[];for(let i=0;i<((a=(t=this.legend)==null?void 0:t.barbs)==null?void 0:a.length);i++){const l=((r=this.legend)==null?void 0:r.barbs[i])||0,n=l<10?`00${l}kts`:l<100?`0${l}kts`:`${l}kts`;e.push("icon-a-"+n)}return e}},watch:{"menuToggle.v":{handler(){this.toggle=this.menuToggle.weatherLayers,this.$nextTick(()=>{var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)})}},currentModel:{handler(e,t){this.$emit("forecastModel",e),localStorage.setItem("forecastModelCacheGL4",e)},immediate:!0},forecastModel:{handler(e,t){e&&e!==t&&this.handleWeatherLayerChange({sourceChanged:!0})}},map:{handler(){this.map&&(this.fetchCache(),this.map.on("move",this.handleMove4Weather),this.viewport=new Eo(this.map),this.handleRampColorInitial())},immediate:!0},realTime:{handler(e,t){e&&t&&C(e).utc().format("yyyy-MM-DD HH")!==C(t).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.fetchWeatherLayers()})},immediate:!0},renderKey:{handler(e,t){if(e&&e!==t){const a=this.checkList.filter(r=>!this.rendersKeys.some(i=>i===r));e==="wave-group"?(this.waveToggleValue=this.waveToggleValue||"sig-wave",this.checkList=[...a,"wave-group",this.waveToggleValue]):e==="ice-forecast"?(this.iceToggleValue=this.iceToggleValue||"ice-cover",this.checkList=[...a,"ice-forecast",this.iceToggleValue||"ice-cover"]):this.checkList=[...a,e]}else!e&&t&&(this.checkList=this.checkList.filter(a=>a!==t))}},checkList:{handler(e,t){var a,r,i,l,n,c;this.handleCheckListChange(e,t),this.$emit("weatherCheckList",e),this.autoActive&&this.checkList.length?(i=(r=(a=this.$parent)==null?void 0:a.$refs)==null?void 0:r.idmBottomBar)==null||i.handleToggle("weather",!0):(c=(n=(l=this.$parent)==null?void 0:l.$refs)==null?void 0:n.idmBottomBar)==null||c.handleToggle("weather",!1)}},autoActive:{handler(e){var t,a,r,i,l,n;localStorage.setItem(this.cache.autoActiveKey,this.autoActive),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(c=>this.checkList.includes(c.key)):[],this.handleWeatherLayerChange(),this.autoActive&&this.checkList.length?(r=(a=(t=this.$parent)==null?void 0:t.$refs)==null?void 0:a.idmBottomBar)==null||r.handleToggle("weather",!0):(n=(l=(i=this.$parent)==null?void 0:i.$refs)==null?void 0:l.idmBottomBar)==null||n.handleToggle("weather",!1),this.$emit("autoActive",this.autoActive)}},iceToggleValue:{handler(e){if(e){const t=this.checkList.filter(a=>!this.rendersKeys.some(r=>r===a));this.checkList=[...t,"ice-forecast",this.iceToggleValue]}}},waveToggleValue:{handler(e){if(e){const t=this.checkList.filter(a=>!this.rendersKeys.some(r=>r===a));this.checkList=[...t,"wave-group",this.waveToggleValue]}}},showWindParticle:{handler(e){let t="wind-particle";this.weatherLayers[t].particle=e,this.weatherLayers[t].version=Math.random()+1}},showCurrentParticle:{handler(e){let t="current-particle";this.weatherLayers[t].particle=e,this.weatherLayers[t].version=Math.random()+1}},isLogin:{handler(e){e?this.fetchModels():this.models={}},immediate:!0}},mounted(){this.fetchModels()},methods:{arraysEqual(e,t){if((e==null?void 0:e.length)!==(t==null?void 0:t.length))return!1;for(let a=0;a<(e==null?void 0:e.length);a++)if((e==null?void 0:e[a])!==(t==null?void 0:t[a]))return!1;return!0},fetchCache(){var a,r;const e=localStorage.getItem(this.cache.versionKey);this.cache.v!==e&&(localStorage.removeItem(this.cache.autoActiveKey),localStorage.removeItem(this.cache.checkListKey),localStorage.setItem(this.cache.versionKey,this.cache.v));let t=localStorage.getItem(this.cache.autoActiveKey);this.autoActive=t!=="false",localStorage.setItem(this.cache.autoActiveKey,this.autoActive),t=localStorage.getItem(this.cache.checkListKey),this.waveToggleValue=(a=JSON.parse(t))!=null&&a.some(i=>i==="swell")?"swell":void 0,this.iceToggleValue=(r=JSON.parse(t))!=null&&r.some(i=>i==="ice-thickness")?"ice-thickness":void 0,this.checkList=JSON.parse(t||JSON.stringify(["wind","sig-wave-height"])),this.checkList.find(i=>this.rendersKeys.includes(i))&&(this.renderKey=this.checkList.find(i=>this.rendersKeys.includes(i))),localStorage.setItem(this.cache.checkListKey,JSON.stringify(this.checkList))},handleMenuToggle(){this.$emit("menuToggle","weatherLayers")},handleFastWeatherToggle(e){let t=[];this.checkList.includes(e)?t=this.checkList.filter(a=>a!==e):t=[...this.checkList,e],this.handleCheckListChange(t,this.checkList)},handleCheckListChange(e,t){if(this.arraysEqual(e,t))return!1;const a=[...new Set(e)],r=a==null?void 0:a.filter(n=>!(t!=null&&t.includes(n)))[0],i=t==null?void 0:t.filter(n=>!(a!=null&&a.includes(n)))[0],l=this.checkList.filter(n=>!this.rendersKeys.some(c=>c===n));r&&(r==="ice-cover"||r==="ice-thickness"||r==="ice-forecast"?(this.checkList=[...l,"ice-forecast",this.iceToggleValue||"ice-cover"],this.iceToggleValue=this.iceToggleValue||"ice-cover"):r==="sig-wave"||r==="swell"||r==="wave-group"?(this.checkList=[...l,"wave-group",this.waveToggleValue||"sig-wave"],this.waveToggleValue=this.waveToggleValue||"sig-wave"):this.rendersKeys.includes(r)&&(this.checkList=[...l,r])),i&&(i==="ice-forecast"?(this.checkList=a.filter(n=>!["ice-cover","ice-thickness","ice-forecast"].includes(n)),this.iceToggleValue=void 0):i==="wave-group"?(this.checkList=a.filter(n=>!["wave-group","sig-wave","swell"].includes(n)),this.waveToggleValue=void 0):this.checkList=a),this.checkList.includes("wind-particle")&&(this.showWindParticle=!0),this.checkList.includes("current-particle")&&(this.showCurrentParticle=!0),localStorage.setItem(this.cache.checkListKey,JSON.stringify(a)),this.activeWeatherLayers=this.autoActive?this.allLayers.filter(n=>a.includes(n.key)):[],this.handleWeatherLayerChange()},async fetchModels(){this.models={};const e=await ge.get(`${this.gateway}/api/arc/meteo2/models2`,{headers:{Authorization:this.defaultMeteoToken}});(e==null?void 0:e.data.code)===0&&(this.models=e==null?void 0:e.data.data)},async fetchWeatherLayers(e={}){var i,l,n,c,s,d,m,g,u;const t=new Date().valueOf();let a=0,r=0;if(this.map){const y=((i=this.map)==null?void 0:i.getZoom())+1,f=(l=this.map)==null?void 0:l.getBounds(),h=`${f._sw.lng},${f._sw.lat},${f._ne.lng},${f._ne.lat}`;if(this.particleFactor&&((n=this.$refs.layer)!=null&&n.autoActive)){const p=je.LayerHelper.WEATHER_LAYERS.find(w=>{var x;return((x=w.peer)==null?void 0:x.weight)===this.particleFactor.weight});this.particleFactor.particle&&(this.showWindParticle||this.showCurrentParticle)?this.weatherWeight=this.weatherWeight&p.weight?this.weatherWeight:this.weatherWeight+p.weight:this.weatherWeight=this.weatherWeight&p.weight?this.weatherWeight-p.weight:this.weatherWeight}if(this.weatherWeight>0){let p=this.weatherWeight;if(p>0){const w=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],x=await ge.get(`${w}/api/arc/weather/layers2/links?l=${p}&v=${this.forecastModel}&z=${y}&bbox=${h}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(r=new Date().valueOf()-(t+a),console.log("weather links elapsed: ",r,", total: ",a+=r),((c=x==null?void 0:x.data)==null?void 0:c.code)===0){const b=(s=x==null?void 0:x.data)==null?void 0:s.data,k=[];for(const _ in b)k.push(ge.get(b[_],{headers:{Authorization:this.defaultMeteoToken,key:_},responseType:/\.(jpg|png)$/.test(b[_])?"blob":"json"}).catch(z=>{console.log(`[${_}] fetch layer error: ${z}`)}));const L=await Promise.all(k);this.weatherLayers={},L.map(_=>{var M,T,E,I;const z=((M=_==null?void 0:_.data)==null?void 0:M.data)||(_==null?void 0:_.data);let S=(E=(T=_==null?void 0:_.config)==null?void 0:T.headers)==null?void 0:E.key;S&&z&&(this.weatherLayers[S]={raw:z,type:((I=_==null?void 0:_.config)==null?void 0:I.responseType)==="blob"?"image":"json",etime:x.data.etime})})}if(r=new Date().valueOf()-(t+a),console.log("weather layers elapsed: ",r,", total: ",a+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const b=(d=this.weatherLayers["swell-direction"])==null?void 0:d.raw,k=(m=this.weatherLayers["swell-height"])==null?void 0:m.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:b,height:{raw:k},etime:x.data.etime}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const b=(g=this.weatherLayers["current-direction"])==null?void 0:g.raw,k=(u=this.weatherLayers["current-speed"])==null?void 0:u.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:b,speed:{raw:k},etime:x.data.etime}}}}this.handleWeatherLayerToggle(),this.handleDrawWeather4Json(),this.$nextTick(()=>{var p,w,x,b,k;(k=(b=(x=(w=(p=this.$parent)==null?void 0:p.$refs)==null?void 0:w.idmBottomBar)==null?void 0:x.$refs)==null?void 0:b.capture)==null||k.captureCurrentFrame()})}},handleWeatherLayerToggle(){for(const e in this.weatherLayers)this.weatherLayers[e].active=!1,this.weatherLayers[e].version=Math.random()+1;for(const e of this.activeWeatherLayers){let t=e.key;t==="current-direction"&&(t="current"),this.weatherLayers[t]&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1,t==="wind-particle"&&(this.weatherLayers[t].particle=this.showWindParticle),t==="current-particle"&&(this.weatherLayers[t].particle=this.showCurrentParticle))}},handleWeatherLayerChange(e={sourceChanged:!1}){var a;const t=(a=this.activeWeatherLayers)==null?void 0:a.reduce((r,i)=>r+(r&(i==null?void 0:i.weight)?0:i==null?void 0:i.weight),0);e!=null&&e.sourceChanged||this.weatherWeight!==t?(this.weatherWeight=t,this.fetchWeatherLayers()):this.handleWeatherLayerToggle()},handleRampColorInitial(){var e,t,a,r,i,l,n,c,s,d,m,g;this.viewport.map.getSource((e=this.viewport)==null?void 0:e.rampColorSource)||this.viewport.map.addSource((t=this.viewport)==null?void 0:t.rampColorSource,{type:"canvas",canvas:(a=this.viewport)==null?void 0:a.rampColorCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((r=this.viewport)==null?void 0:r.rampColorLayer)||this.viewport.map.addLayer({type:"raster",id:(i=this.viewport)==null?void 0:i.rampColorLayer,source:(l=this.viewport)==null?void 0:l.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((c=this.viewport)==null?void 0:c.particleSource,{type:"canvas",canvas:(s=this.viewport)==null?void 0:s.particleCanvas,animate:!0,coordinates:this.viewport.getBoundLngLat()}),this.viewport.map.getLayer((d=this.viewport)==null?void 0:d.particleLayer)||this.viewport.map.addLayer({type:"raster",id:(m=this.viewport)==null?void 0:m.particleLayer,source:(g=this.viewport)==null?void 0:g.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDrawWeather4Json(){var l,n,c,s,d,m,g;const e=new Date().valueOf();let t=0,a=0;const r=(l=this.map)==null?void 0:l.getBounds(),i=(n=this.map)==null?void 0:n.getZoom();if(r&&i){const u=X.LngLatHelper.convertToStdLng(r._sw.lng),y=X.LngLatHelper.convertToStdLng(r._ne.lng),f=Math.floor(r._sw.lat),h=Math.ceil(r._ne.lat);for(const p in this.weatherLayers){let w=!1;if(this.weatherLayers[p].active&&this.weatherLayers[p].type==="json"){let x=[];if(p==="swell"){w=!0;const b=((c=this.weatherLayers[p])==null?void 0:c.direction)||{};for(const L in b)if(L>f&&L<h&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const _=b[L].lng;u>y?_.forEach((z,S)=>{var M,T,E,I,G,j;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if((z>=u&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}}):_.forEach((z,S)=>{var M,T,E,I,G,j;if(u<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if(z>=u&&z<=y&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}})}a=new Date().valueOf()-(e+t),console.log("swell direction elapsed: ",a,", total: ",t+=a);const k=this.weatherLayers[p].height;if(k){if(!k.data){const L=[];for(const _ in(s=k.raw)==null?void 0:s.LineString){const z=k.raw.LineString[_];for(const S of z)L.push(J.lineString(S,{val:Number(_)}));k.data=J.featureCollection(L)}}if(k.data){const L=this.handleBboxClip(k.data,r);x=x.concat(L)}a=new Date().valueOf()-(e+t),console.log("swell height elapsed: ",a,", total: ",t+=a)}}else if(p==="current"){w=!0;const b=((d=this.weatherLayers[p])==null?void 0:d.direction)||{};for(const L in b)if(L>f&&L<h&&(!(i<=this.zoom)||L%(i<2?10:i<4?5:3)===0)){const _=b[L].lng;u>y?_.forEach((z,S)=>{var M,T,E,I,G,j;if(i<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if((z>=u&&z<=180||z>=-180&&z<=y)&&(!(i<=this.zoom)||z%(i<2?10:i<4?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}}):_.forEach((z,S)=>{var M,T,E,I,G,j;if(u<2){if((z>=0&&z<=360||z>=-360&&z<=0)&&z%10===0){const H=J.point([z,L],{val:((M=b[L].val)==null?void 0:M[S])||((T=b[L].dir)==null?void 0:T[S]),spd:(E=b[L].spd)==null?void 0:E[S]});x.push(H)}}else if(z>=u&&z<=y&&(!(i<=this.zoom)||z%(i<this.zoom/2?5:3)===0)){const H=J.point([z,L],{val:((I=b[L].val)==null?void 0:I[S])||((G=b[L].dir)==null?void 0:G[S]),spd:(j=b[L].spd)==null?void 0:j[S]});x.push(H)}})}a=new Date().valueOf()-(e+t),console.log("current direction elapsed: ",a,", total: ",t+=a);const k=this.weatherLayers[p].speed;if(k){if(!k.data){const _=[];for(const z in(m=k.raw)==null?void 0:m.Polygon){const S=k.raw.Polygon[z];for(const M of S)_.push(J.polygon(M,{val:Number(z)}))}k.data=J.featureCollection(_)}const L=i<this.zoom?k.data.features.filter(_=>_.properties.val>.5):k.data.features;x=x.concat(L),a=new Date().valueOf()-(e+t),console.log("current speed elapsed: ",a,", total: ",t+=a)}}else if(p==="wind"){w=!0;const b=this.weatherLayers.wind.raw;for(const k in b)if(k>f&&k<h&&(!(i<=this.zoom)||k%(i<2?10:i<4?5:3)===0)){const L=b[k].lng;u>y?L.forEach((_,z)=>{var S,M,T,E;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const I=J.point([_,k],{dir:((S=b[k].val)==null?void 0:S[z])||((M=b[k].dir)==null?void 0:M[z]),spd:b[k].spd[z]});x.push(I)}}else if((_>=u&&_<=180||_>=-180&&_<=y)&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const I=J.point([_,k],{dir:((T=b[k].val)==null?void 0:T[z])||((E=b[k].dir)==null?void 0:E[z]),spd:b[k].spd[z]});x.push(I)}}):L.forEach((_,z)=>{var S,M,T,E;if(i<2){if((_>=0&&_<=360||_>=-360&&_<=0)&&_%10===0){const I=J.point([_,k],{dir:((S=b[k].val)==null?void 0:S[z])||((M=b[k].dir)==null?void 0:M[z]),spd:b[k].spd[z]});x.push(I)}}else if(_>=u&&_<=y&&(!(i<=this.zoom)||_%(i<2?10:i<4?5:3)===0)){const I=J.point([_,k],{dir:((T=b[k].val)==null?void 0:T[z])||((E=b[k].dir)==null?void 0:E[z]),spd:b[k].spd[z]});x.push(I)}})}a=new Date().valueOf()-(e+t),console.log("wind barb elapsed: ",a,", total: ",t+=a)}else if(p==="sig-wave-height"){if(this.weatherLayers[p].data)x=this.weatherLayers[p].data;else{w=!0;const b=this.weatherLayers[p].raw;if(b){const k=[];for(const L in b.Polygon){const _=b.Polygon[L];for(const z of _)k.push(J.polygon(z,{val:Number(L)}))}for(const L in b.MultiPolygon){const _=b.MultiPolygon[L];for(const z of _)k.push(J.multiPolygon(z,{val:Number(L)}))}for(const L in b.Point){const _=b.Point[L];for(let z=0;z<((g=_.lng)==null?void 0:g.length);z++)k.push(J.point([_.lng[z],L],{val:Number(_.val[z])}))}x=x.concat(k)}}a=new Date().valueOf()-(e+t),console.log("sig-wave-height elapsed: ",a,", total: ",t+=a)}else if(p==="prmsl"){if(this.weatherLayers[p].data)x=this.weatherLayers[p].data;else{w=!0;const b=this.weatherLayers[p].raw;if(b){const k=[];for(const L in b.LineString){const _=b.LineString[L];for(const z of _)k.push(J.lineString(z,{val:Number(L)}))}for(const L in b.Point)b.Point[L].lng.forEach((_,z)=>{_=X.LngLatHelper.convertToStdLng(_),k.push(J.point([_,L],{val:b.Point[L].val[z],type:b.Point[L].type[z]}))});x=x.concat(k)}}a=new Date().valueOf()-(e+t),console.log("prmsl elapsed: ",a,", total: ",t+=a)}x.length&&(this.weatherLayers[p].data=J.featureCollection(x)),w&&(this.weatherLayers[p].version=Math.random()+1)}}}},handleMove4Weather(){for(const e in this.weatherLayers)this.weatherLayers[e].active&&this.weatherLayers[e].type==="image"&&(this.weatherLayers[e].active=!0,this.weatherLayers[e].version=Math.random()+1);this.handleDrawWeather4Json()},handleBboxClip(e,t){const a=[],r=X.LngLatHelper.convertToStdLng(t._sw.lng),i=X.LngLatHelper.convertToStdLng(t._ne.lng);return e.features.forEach(l=>{if(l.geometry.type!=="Point")if(r>i){let n=[r,t._sw.lat,180,t._ne.lat],c=J.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c),n=[-180,t._sw.lat,i,t._ne.lat],c=J.bboxClip(l,n),c.geometry.coordinates.length&&a.push(c)}else{const n=[r,t._sw.lat,i,t._ne.lat],c=J.bboxClip(l,n);c.geometry.coordinates.length&&a.push(c)}else a.push(l)}),a}}},Bc={class:"idm-gl4-meteo-layers"},Ic={key:0,class:"legend-tip-btn-gl4"},Ac={class:"d-flex flex-row justify-center align-center"},Fc={class:"text-caption"},Gc={class:"d-flex flex-row justify-center align-center"},Wc={key:0,style:{width:"24px",height:"12px",border:"1px solid rgba(var(--v-border-color), var(--v-border-opacity))"}},Zc={class:"text-caption px-2"},Oc={class:"d-flex flex-row justify-start align-center"},jc={class:"d-flex flex-row justify-center align-center",style:{width:"40px"}},Xc={class:"text-caption"},Hc={class:"d-flex justify-start align-center ga-3"},Yc={class:"text-h5 font-weight-medium"},Uc={key:0,class:"w-100 d-flex justify-space-between align-center ga-1 mb-2 px-3"},Jc={key:0,class:"d-flex justify-start align-center ga-4 pl-6"},$c={key:1,class:"d-flex justify-start align-center ga-4 pl-6"},Kc={class:"text-body-1 py-2"},qc={class:"text-body-1 font-weight-medium"},Qc={class:"text-body-2 text-label"},em={class:"text-body-2 text-label"},tm={class:"text-body-2 text-label mb-3"},om={class:"text-body-1 font-weight-medium"},am={class:"text-body-2 text-label"},im={class:"text-body-2 text-label"},rm={class:"text-body-2 text-label mb-3"},lm={class:"text-body-1 py-2"},nm={class:"text-body-1 font-weight-medium"},sm={class:"text-body-2 text-label"},cm={class:"text-body-2 text-label"},mm={class:"text-body-2 text-label mb-3"},dm={class:"text-body-1 font-weight-medium"},hm={class:"text-body-2 text-label"},pm={class:"text-body-2 text-label"},gm={class:"text-body-2 text-label mb-3"},um={class:"text-body-1 py-2"},fm={class:"text-body-1 font-weight-medium"},ym={class:"text-body-2 text-label"},bm={class:"text-body-2 text-label"},wm={class:"text-body-2 text-label mb-3"};function xm(e,t,a,r,i,l){var A,F,Y,D,R,Z,P,K,re,me,he,ee,le,de,we;const n=o.resolveComponent("VBtn"),c=o.resolveComponent("VTooltip"),s=o.resolveComponent("VCol"),d=o.resolveComponent("VRow"),m=o.resolveComponent("VCardText"),g=o.resolveComponent("VDivider"),u=o.resolveComponent("VCard"),y=o.resolveComponent("VSwitch"),f=o.resolveComponent("VBtnToggle"),h=o.resolveComponent("VCardTitle"),p=o.resolveComponent("VCardItem"),w=o.resolveComponent("VCheckbox"),x=o.resolveComponent("VRadio"),b=o.resolveComponent("IdmWindBarb"),k=o.resolveComponent("IdmSigWaveHeight"),L=o.resolveComponent("IdmCurrentDirection"),_=o.resolveComponent("IdmPrmsl"),z=o.resolveComponent("IdmWindParticle"),S=o.resolveComponent("IdmCurrentParticle"),M=o.resolveComponent("IdmWave"),T=o.resolveComponent("IdmSwell"),E=o.resolveComponent("IdmIceEdge"),I=o.resolveComponent("IdmIceCover"),G=o.resolveComponent("IdmIceThickness"),j=o.resolveComponent("IdmPrecip3h"),H=o.resolveComponent("IdmVisibility"),ae=o.resolveComponent("IdmWaterTemp"),N=o.resolveComponent("IdmTemp");return o.openBlock(),o.createElementBlock("div",Bc,[o.createElementVNode("div",{class:"menu-bar-box transition pa-1",style:o.normalizeStyle({top:a.top+a.paddingTop+46+"px",right:i.right+"px"})},[o.createVNode(c,{text:e.$t("weather.weatherLayers"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:W})=>[o.createVNode(n,o.mergeProps(W,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.toggle?"bg-primary active-border":""],onClick:l.handleMenuToggle}),{default:o.withCtx(()=>t[9]||(t[9]=[o.createElementVNode("i",{class:"iconfont icon-Weather text-h4"},null,-1)])),_:2,__:[9]},1040,["class","onClick"])]),_:1},8,["text","open-on-focus","open-on-hover"])],4),l.showTipMenu?(o.openBlock(),o.createElementBlock("div",Ic,[o.createElementVNode("div",{class:o.normalizeClass(["menu-bar-box pa-1 rounded",a.simple?"simple":""]),style:o.normalizeStyle({right:i.right+"px",top:a.simple?"354px":"450px"})},[o.createVNode(c,{text:e.$t("weather.legend"),location:"left",interactive:!0,"open-on-click":!1,"open-on-focus":!a.simple,"open-on-hover":!a.simple},{activator:o.withCtx(({props:W})=>[o.createVNode(n,o.mergeProps(W,{"min-width":"32",width:"32",height:"32",class:["text-none pa-0",i.legendToggle?"bg-primary active-border":""],onClick:t[0]||(t[0]=te=>i.legendToggle=!i.legendToggle)}),{default:o.withCtx(()=>t[10]||(t[10]=[o.createElementVNode("i",{class:"iconfont icon-Legend text-h4"},null,-1)])),_:2,__:[10]},1040,["class"])]),_:1},8,["text","open-on-focus","open-on-hover"])],6),i.legendToggle?(o.openBlock(),o.createBlock(u,{key:0,elevation:"16",class:"card-info d-flex justify-center align-start",style:o.normalizeStyle({position:"absolute",top:a.simple?"200px":"340px",right:i.right+50+"px"})},{default:o.withCtx(()=>[o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"110px"}},{default:o.withCtx(()=>[t[11]||(t[11]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wind Level",-1)),o.createVNode(d,{class:"ma-0 ml-n1 text-body-2"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.barbs,(W,te)=>(o.openBlock(),o.createBlock(s,{key:W,cols:"6",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Ac,[o.createElementVNode("i",{class:o.normalizeClass(["iconfont",l.barbsIconName[te]]),style:o.normalizeStyle({color:a.theme==="dark"?"#fff":"#000"})},null,6),o.createElementVNode("span",Fc,o.toDisplayString(Number(W)<10?`00${W}kts`:Number(W)<100?`0${W}kts`:`${W}kts`),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[11]}),o.createVNode(g,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"100px"}},{default:o.withCtx(()=>[t[12]||(t[12]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Wave Height",-1)),o.createVNode(d,{class:"ma-0"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.sigWaveHeight,(W,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-start align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Gc,[te===0?(o.openBlock(),o.createElementBlock("div",Wc)):(o.openBlock(),o.createElementBlock("div",{key:1,style:o.normalizeStyle({width:"24px",height:"12px",background:W.color})},null,4)),o.createElementVNode("div",Zc,o.toDisplayString(W.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[12]}),o.createVNode(g,{vertical:""}),o.createVNode(m,{class:"d-flex flex-column justify-center align-start text-label px-2",style:{width:"90px"}},{default:o.withCtx(()=>[t[13]||(t[13]=o.createElementVNode("div",{class:"text-body-2 font-weight-600 mb-2"},"Current",-1)),o.createVNode(d,{class:"ma-0 ml-n4"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.legend.current,(W,te)=>(o.openBlock(),o.createBlock(s,{key:te,cols:"12",class:"d-flex flex-row justify-center align-center py-1 px-0 ma-0"},{default:o.withCtx(()=>[o.createElementVNode("div",Oc,[o.createElementVNode("div",jc,[o.createElementVNode("i",{class:"iconfont icon-a-direction-arrow text-label",style:o.normalizeStyle({fontSize:40*W.size+"px"})},null,4)]),o.createElementVNode("div",Xc,o.toDisplayString(W.label),1)])]),_:2},1024))),128))]),_:1})]),_:1,__:[13]})]),_:1},8,["style"])):o.createCommentVNode("",!0)])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["available-layers transition d-flex flex-column justify-start align-start",i.toggle?"right-bar":""]),style:o.normalizeStyle(l.listStyle)},[o.createElementVNode("div",{class:o.normalizeClass(["header-box w-100 d-flex justify-space-between align-center",a.simple?"px-3":"px-4"])},[o.createElementVNode("div",Hc,[o.createElementVNode("div",Yc,o.toDisplayString(e.$t("weather.weather")),1),o.createVNode(y,{modelValue:i.autoActive,"onUpdate:modelValue":t[1]||(t[1]=W=>i.autoActive=W),class:"small-switch",color:"primary","base-color":"disabled",inset:"","hide-details":""},null,8,["modelValue"])]),o.createVNode(n,{icon:"",density:"compact",variant:"plain",class:"mr-n2",onClick:l.handleMenuToggle},{default:o.withCtx(()=>t[14]||(t[14]=[o.createElementVNode("i",{class:"iconfont icon-close text-h4"},null,-1)])),_:1,__:[14]},8,["onClick"])],2),a.simple?(o.openBlock(),o.createElementBlock("div",Uc,[o.createElementVNode("div",null,o.toDisplayString(e.$t("weather.forecastModel")),1),o.createVNode(f,{modelValue:i.currentModel,"onUpdate:modelValue":t[2]||(t[2]=W=>i.currentModel=W),rounded:"",height:"28",density:"compact",group:""},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"28",value:"GFS",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="GFS"?"primary":"","base-color":""},{default:o.withCtx(()=>t[15]||(t[15]=[o.createTextVNode("NOAA",-1)])),_:1,__:[15]},8,["color"]),o.createVNode(n,{density:"compact",height:"28",class:"text-none btn-bg-2 px-1 text-body-1 mt-1",color:i.currentModel==="ECMWF"?"primary":"","base-color":"",value:"ECMWF"},{default:o.withCtx(()=>t[16]||(t[16]=[o.createTextVNode("ECMWF",-1)])),_:1,__:[16]},8,["color"])]),_:1},8,["modelValue"])])):o.createCommentVNode("",!0),o.createElementVNode("div",{class:o.normalizeClass(["list-box w-100 scroll overflow-y-auto",[i.autoActive?"":"cursor-not-allowed",a.simple?"px-3":"pl-4 pr-2"]])},[o.createVNode(u,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(p,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.overlays")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(W=>W.overlays),W=>(o.openBlock(),o.createBlock(w,{key:W.key,modelValue:i.checkList,"onUpdate:modelValue":t[3]||(t[3]=te=>i.checkList=te),value:W.key,label:e.$t(`weather.${W.locale}`),disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"flex-1-0-100 text-body-2","hide-details":""},null,8,["modelValue","value","label","disabled"]))),128))]),_:1})]),_:1}),o.createVNode(u,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(p,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.renders")),1)]),_:1})]),_:1}),o.createVNode(m,{class:"py-2 mx-n1"},{default:o.withCtx(()=>[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.tagLayers.filter(W=>!W.overlays),W=>(o.openBlock(),o.createElementBlock(o.Fragment,{key:W.key},[o.createVNode(x,{modelValue:i.renderKey,"onUpdate:modelValue":t[4]||(t[4]=te=>i.renderKey=te),label:e.$t(`weather.${W.locale}`),value:W.key,disabled:!i.autoActive,color:"primary",density:"compact",style:{height:"36px"},class:"text-body-2 py-1","hide-details":"",onClick:te=>i.renderKey=i.renderKey===W.key?"":W.key},null,8,["modelValue","label","value","disabled","onClick"]),i.renderKey==="wind-particle"&&W.key==="wind-particle"?(o.openBlock(),o.createElementBlock("div",Jc,[o.createElementVNode("span",null,o.toDisplayString(e.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showWindParticle,"onUpdate:modelValue":t[5]||(t[5]=te=>i.showWindParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",density:"compact",inset:"",style:{"font-size":"14px"},"hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="current-particle"&&W.key==="current-particle"?(o.openBlock(),o.createElementBlock("div",$c,[o.createElementVNode("span",null,o.toDisplayString(e.$t("weather.particleAnimatiom")),1),o.createVNode(y,{modelValue:i.showCurrentParticle,"onUpdate:modelValue":t[6]||(t[6]=te=>i.showCurrentParticle=te),label:"",class:"small-switch",color:"primary","base-color":"disabled",inset:"",density:"compact",height:"20","hide-details":""},null,8,["modelValue"])])):o.createCommentVNode("",!0),i.renderKey==="wave-group"&&W.key==="wave-group"?(o.openBlock(),o.createBlock(f,{key:2,modelValue:i.waveToggleValue,"onUpdate:modelValue":t[7]||(t[7]=te=>i.waveToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"sig-wave",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="sig-wave"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.significant")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.waveToggleValue==="swell"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"swell"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.swell")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0),i.renderKey==="ice-forecast"&&W.key==="ice-forecast"?(o.openBlock(),o.createBlock(f,{key:3,modelValue:i.iceToggleValue,"onUpdate:modelValue":t[8]||(t[8]=te=>i.iceToggleValue=te),class:"w-100 pl-7 rounded",rounded:"0",height:"30",density:"compact",group:"",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createVNode(n,{density:"compact",height:"30",value:"ice-cover",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-cover"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.coverage")),1)]),_:1},8,["color","disabled"]),o.createVNode(n,{density:"compact",height:"30",class:"w-50 text-none px-2 text-body-1",color:i.iceToggleValue==="ice-thickness"?"primary":"","base-color":"grey-lighten-1",disabled:!i.autoActive,value:"ice-thickness"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.thickness")),1)]),_:1},8,["color","disabled"])]),_:1},8,["modelValue","disabled"])):o.createCommentVNode("",!0)],64))),128))]),_:1})]),_:1}),o.createVNode(u,{class:"block-bg mx-auto mb-2",elevation:"0"},{default:o.withCtx(()=>[o.createVNode(p,{class:"border-b-thin"},{default:o.withCtx(()=>[o.createVNode(h,{class:"text-h6"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.$t("weather.forecastModel")),1)]),_:1})]),_:1}),o.createVNode(m,{class:""},{default:o.withCtx(()=>{var W,te,Te,Le,fe,xe,U,ye,ie,ne,Se,Ee,Ve,B,se,ke,Ne,Pe,O,Ce,q,We,Ze,Oe,ve,at,it,rt,lt,nt,st,ct,mt,dt,ht,pt,gt,ut,ft,yt,bt,wt,xt,kt,_t,vt,zt,Lt,Ct,St,Nt,Pt,Mt,Tt,Vt,Et,Rt,Dt,Bt,It,At,Ft,Gt,Wt,Zt,Ot,jt,Xt,Ht,Yt,Ut,Jt,Kt,qt,Qt,eo,to,oo,ao,io,ro,lo,no,so,co,mo,ho,po,go,uo,fo,yo,bo,wo,xo,ko,_o,vo,zo,Lo,Co,So,No,Po,Mo;return[o.createElementVNode("div",Kc,o.toDisplayString(e.$t("weather.atmospheric")),1),o.createElementVNode("div",qc,o.toDisplayString((Te=(te=(W=i.models)==null?void 0:W.weather)==null?void 0:te.NOAA)==null?void 0:Te.source)+" "+o.toDisplayString((xe=(fe=(Le=i.models)==null?void 0:Le.weather)==null?void 0:fe.NOAA)==null?void 0:xe.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((ne=(ie=(ye=(U=i.models)==null?void 0:U.weather)==null?void 0:ye.NOAA)==null?void 0:ie.meta)==null?void 0:ne.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",Qc,o.toDisplayString(e.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",em,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((B=(Ve=(Ee=(Se=i.models)==null?void 0:Se.weather)==null?void 0:Ee.NOAA)==null?void 0:Ve.meta)==null?void 0:B.availabilityTime)),1),o.createElementVNode("div",tm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Pe=(Ne=(ke=(se=i.models)==null?void 0:se.weather)==null?void 0:ke.NOAA)==null?void 0:Ne.meta)==null?void 0:Pe.initialisationTime)),1),o.createElementVNode("div",om,o.toDisplayString((q=(Ce=(O=i.models)==null?void 0:O.weather)==null?void 0:Ce.ECMWF)==null?void 0:q.source)+" "+o.toDisplayString((Oe=(Ze=(We=i.models)==null?void 0:We.weather)==null?void 0:Ze.ECMWF)==null?void 0:Oe.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((rt=(it=(at=(ve=i.models)==null?void 0:ve.weather)==null?void 0:at.ECMWF)==null?void 0:it.meta)==null?void 0:rt.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",am,o.toDisplayString(e.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",im,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((ct=(st=(nt=(lt=i.models)==null?void 0:lt.weather)==null?void 0:nt.ECMWF)==null?void 0:st.meta)==null?void 0:ct.availabilityTime)),1),o.createElementVNode("div",rm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((pt=(ht=(dt=(mt=i.models)==null?void 0:mt.weather)==null?void 0:dt.ECMWF)==null?void 0:ht.meta)==null?void 0:pt.initialisationTime)),1),o.createVNode(g),o.createElementVNode("div",lm,o.toDisplayString(e.$t("weather.wave")),1),o.createElementVNode("div",nm,o.toDisplayString((yt=(ft=(ut=(gt=i.models)==null?void 0:gt.marine)==null?void 0:ut.wave)==null?void 0:ft.NOAA)==null?void 0:yt.source)+" "+o.toDisplayString((kt=(xt=(wt=(bt=i.models)==null?void 0:bt.marine)==null?void 0:wt.wave)==null?void 0:xt.NOAA)==null?void 0:kt.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((Ct=(Lt=(zt=(vt=(_t=i.models)==null?void 0:_t.marine)==null?void 0:vt.wave)==null?void 0:zt.NOAA)==null?void 0:Lt.meta)==null?void 0:Ct.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",sm,o.toDisplayString(e.$t("weather.source"))+": NOAA",1),o.createElementVNode("div",cm,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((Tt=(Mt=(Pt=(Nt=(St=i.models)==null?void 0:St.marine)==null?void 0:Nt.wave)==null?void 0:Pt.NOAA)==null?void 0:Mt.meta)==null?void 0:Tt.availabilityTime)),1),o.createElementVNode("div",mm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Bt=(Dt=(Rt=(Et=(Vt=i.models)==null?void 0:Vt.marine)==null?void 0:Et.wave)==null?void 0:Rt.NOAA)==null?void 0:Dt.meta)==null?void 0:Bt.initialisationTime)),1),o.createElementVNode("div",dm,o.toDisplayString((Gt=(Ft=(At=(It=i.models)==null?void 0:It.marine)==null?void 0:At.wave)==null?void 0:Ft.ECMWF)==null?void 0:Gt.source)+" "+o.toDisplayString((jt=(Ot=(Zt=(Wt=i.models)==null?void 0:Wt.marine)==null?void 0:Zt.wave)==null?void 0:Ot.ECMWF)==null?void 0:jt.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((Jt=(Ut=(Yt=(Ht=(Xt=i.models)==null?void 0:Xt.marine)==null?void 0:Ht.wave)==null?void 0:Yt.ECMWF)==null?void 0:Ut.meta)==null?void 0:Jt.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",hm,o.toDisplayString(e.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",pm,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((to=(eo=(Qt=(qt=(Kt=i.models)==null?void 0:Kt.marine)==null?void 0:qt.wave)==null?void 0:Qt.ECMWF)==null?void 0:eo.meta)==null?void 0:to.availabilityTime)),1),o.createElementVNode("div",gm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((lo=(ro=(io=(ao=(oo=i.models)==null?void 0:oo.marine)==null?void 0:ao.wave)==null?void 0:io.ECMWF)==null?void 0:ro.meta)==null?void 0:lo.initialisationTime)),1),o.createVNode(g),o.createElementVNode("div",um,o.toDisplayString(e.$t("weather.currents")),1),o.createElementVNode("div",fm,o.toDisplayString((mo=(co=(so=(no=i.models)==null?void 0:no.marine)==null?void 0:so.current)==null?void 0:co.ECMWF)==null?void 0:mo.source)+" "+o.toDisplayString((uo=(go=(po=(ho=i.models)==null?void 0:ho.marine)==null?void 0:po.current)==null?void 0:go.ECMWF)==null?void 0:uo.spatialResolution)+o.toDisplayString(e.$t("units.km"))+" "+o.toDisplayString((xo=(wo=(bo=(yo=(fo=i.models)==null?void 0:fo.marine)==null?void 0:yo.current)==null?void 0:bo.ECMWF)==null?void 0:wo.meta)==null?void 0:xo.days)+o.toDisplayString(e.$t("units.days")),1),o.createElementVNode("div",ym,o.toDisplayString(e.$t("weather.source"))+": ECMWF",1),o.createElementVNode("div",bm,o.toDisplayString(e.$t("weather.lastUpdate"))+": "+o.toDisplayString(l.computeDateUpdate((Lo=(zo=(vo=(_o=(ko=i.models)==null?void 0:ko.marine)==null?void 0:_o.current)==null?void 0:vo.ECMWF)==null?void 0:zo.meta)==null?void 0:Lo.availabilityTime)),1),o.createElementVNode("div",wm,o.toDisplayString(e.$t("weather.referenceTime"))+": "+o.toDisplayString(l.computeDateZ((Mo=(Po=(No=(So=(Co=i.models)==null?void 0:Co.marine)==null?void 0:So.current)==null?void 0:No.ECMWF)==null?void 0:Po.meta)==null?void 0:Mo.initialisationTime)),1)]}),_:1})]),_:1})],2)],6),a.map?(o.openBlock(),o.createBlock(b,o.mergeProps({key:1,ref:"windBarb",map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-3",wind:(A=i.weatherLayers)==null?void 0:A.wind,"menu-toggle":a.menuToggle},e.$attrs),null,16,["map","map-feather","wind","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(k,o.mergeProps({key:2,map:a.map,"before-layer":"empty-layer-2","sig-wave-height":(F=i.weatherLayers)==null?void 0:F["sig-wave-height"],"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},e.$attrs),null,16,["map","sig-wave-height","menu-toggle","active-weather-layers"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(L,o.mergeProps({key:3,map:a.map,"map-feather":a.mapFeather,"before-layer":"empty-layer-2",current:(Y=i.weatherLayers)==null?void 0:Y.current,"menu-toggle":a.menuToggle},e.$attrs),null,16,["map","map-feather","current","menu-toggle"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(_,o.mergeProps({key:4,map:a.map,"before-layer":"empty-layer-3",prmsl:(D=i.weatherLayers)==null?void 0:D.prmsl,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers},e.$attrs,{theme:a.theme}),null,16,["map","prmsl","menu-toggle","active-weather-layers","theme"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(z,o.mergeProps({key:5,viewport:i.viewport,factor:(R=i.weatherLayers)==null?void 0:R["wind-particle"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(S,o.mergeProps({key:6,viewport:i.viewport,factor:(Z=i.weatherLayers)==null?void 0:Z["current-particle"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(M,o.mergeProps({key:7,viewport:i.viewport,factor:(P=i.weatherLayers)==null?void 0:P["sig-wave"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(T,o.mergeProps({key:8,map:a.map,viewport:i.viewport,factor:(K=i.weatherLayers)==null?void 0:K.swell,"menu-toggle":a.menuToggle,"active-weather-layers":i.activeWeatherLayers,simple:a.simple},e.$attrs),null,16,["map","viewport","factor","menu-toggle","active-weather-layers","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(E,o.mergeProps({key:9,viewport:i.viewport,factor:(re=i.weatherLayers)==null?void 0:re["ice-edge"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(I,o.mergeProps({key:10,viewport:i.viewport,factor:(me=i.weatherLayers)==null?void 0:me["ice-cover"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(G,o.mergeProps({key:11,viewport:i.viewport,factor:(he=i.weatherLayers)==null?void 0:he["ice-thickness"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(j,o.mergeProps({key:12,viewport:i.viewport,factor:(ee=i.weatherLayers)==null?void 0:ee.precip3h,"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(H,o.mergeProps({key:13,viewport:i.viewport,factor:(le=i.weatherLayers)==null?void 0:le.visibility,"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(ae,o.mergeProps({key:14,viewport:i.viewport,factor:(de=i.weatherLayers)==null?void 0:de["water-temp"],"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0),a.map?(o.openBlock(),o.createBlock(N,o.mergeProps({key:15,viewport:i.viewport,factor:(we=i.weatherLayers)==null?void 0:we.temp,"menu-toggle":a.menuToggle,simple:a.simple},e.$attrs),null,16,["viewport","factor","menu-toggle","simple"])):o.createCommentVNode("",!0)])}const km=Q(Dc,[["render",xm]]),$e=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"GFS",alias:"GFS",model:"gfs_seamless",provider:"NOAA",country:"United States",resolution:25,tips:"3-25km",length:16,frequency:1,models:["gfs_seamless"],categories:"ncep_gfs013,ncep_gfs025,ncep_gfs_graphcast025,ncep_hrrr_conus,ncep_nbm_conus",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:2,name:"ECMWF",alias:"ECMWF",model:"ecmwf_ifs025",provider:"ECMWF",country:"European Union",resolution:25,tips:"25km",length:15,frequency:6,models:["ecmwf_ifs025","ecmwf_aifs025_single"],categories:"ecmwf_ifs025,ecmwf_aifs025_single",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:3,disabled:!0,name:"ICON",alias:"ECMWF",model:"icon_seamless",provider:"Deutscher Wetterdienst (DWD)",country:"Germany",resolution:13,tips:"2-13km",length:7.5,frequency:3,models:["icon_seamless","icon_global","icon_eu","icon_d2"],categories:"dwd_icon,dwd_icon_eps,dwd_icon_d2,dwd_icon_d2_eps,dwd_icon_eu,dwd_icon_eu_eps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:4,name:"ARPEGE",disabled:!0,alias:"ECMWF",model:"arpege_seamless",provider:"Météo-France",country:"France",resolution:25,tips:"1-25km",length:4,frequency:1,models:["arpege_seamless","arpege_world","arpege_europe"],categories:"meteofrance_arpege_europe,meteofrance_arpege_europe_probabilities,meteofrance_arpege_world025",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:5,name:"UKMO",disabled:!0,alias:"ECMWF",model:"ukmo_seamless",provider:"UK Met Office",country:"United Kingdom",resolution:10,tips:"2-10km",length:7,frequency:1,models:["ukmo_seamless","ukmo_global_deterministic_10km","ukmo_uk_deterministic_2km"],categories:"ukmo_global_deterministic_10km,ukmo_uk_deterministic_2km",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:6,name:"JMA",disabled:!0,alias:"GFS",model:"jma_seamless",provider:"JMA",country:"Japan",resolution:55,tips:"5-55km",length:11,frequency:3,models:["jma_seamless","jma_msm","jma_gsm"],categories:"jma_gsm,jma_msm",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:7,name:"GEM",disabled:!0,alias:"GFS",model:"gem_seamless",provider:"Canadian Weather Service",country:"Canada",resolution:2.5,tips:"2.5km",length:10,frequency:6,models:["gem_seamless","gem_global","gem_regional"],categories:"cmc_gem_gdps,cmc_gem_hrdps,cmc_gem_rdps",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:8,name:"GRAPES",disabled:!0,alias:"GFS",model:"cma_grapes_global",provider:"China Meteorological Administration (CMA)",country:"China",resolution:15,tips:"15km",length:10,frequency:6,models:["cma_grapes_global"],categories:"cma_grapes_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"},{rank:9,name:"ACCESS-G",disabled:!0,alias:"GFS",model:"bom_access_global",provider:"Australian Bureau of Meteorology (BOM)",country:"Australia",resolution:15,tips:"15km",length:10,frequency:6,models:["bom_access_global"],categories:"bom_access_global",variables:"temperature_2m,relative_humidity_2m,dew_point_2m,apparent_temperature,precipitation_probability,precipitation,rain,showers,snowfall_water_equivalent,snowfall,frozen_precipitation_percent,pressure_msl,cloud_cover,visibility,wind_speed_10m,wind_u_component_10m,wind_v_component_10m,wind_direction_10m,wind_gusts_10m,cape,lifted_index,weather_code"}],Ke=[{rank:0,name:"Best Match",alias:"BEST MATCH",model:"best_match",models:["best_match"]},{rank:1,name:"MFWAM",alias:"ECMWF",model:"meteofrance_wave",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:12,models:["meteofrance_wave"],categories:"meteofrance_wave",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:2,disabled:!0,name:"SMOC",alias:"ECMWF",model:"meteofrance_currents",provider:"MeteoFrance",country:"France",resolution:8,tips:"8km",length:10,frequency:24,models:["meteofrance_currents"],categories:"meteofrance_currents, meteofrance_sea_surface_temperature",variables:"ocean_u_current,ocean_v_current,invert_barometer_height,sea_level_height_msl,sea_surface_temperature"},{rank:3,disabled:!0,name:"EWAM",alias:"ECMWF",model:"ewam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:8,frequency:2,models:["ewam"],categories:"dwd_ewam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:4,disabled:!0,name:"GWAM",alias:"ECMWF",model:"gwam",provider:"DWD",country:"Germany",resolution:5,tips:"5km",length:4,frequency:2,models:["gwam"],categories:"dwd_gwam",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:5,disabled:!0,name:"ECWAM",alias:"ECMWF",model:"ecmwf_wam025",provider:"ECMWF",country:"Europe",resolution:25,tips:"25km",length:10,frequency:6,models:["ecmwf_wam025"],categories:"ecmwf_wam025",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:6,name:"GFSWave",alias:"GFS",model:"ncep_gfswave025",provider:"NCEP",country:"USA",resolution:25,tips:"25km",length:10,frequency:6,models:["ncep_gfswave025","ncep_gfswave016"],categories:"ncep_gfswave025,ncep_gfswave016",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"},{rank:7,disabled:!0,name:"ERA5-Ocean",alias:"ECMWF",model:"era5_ocean",provider:"Copernicus",country:"Europe",resolution:50,tips:"50km",length:-5,frequency:1,models:["era5_ocean"],categories:"copernicus_era5_ocean",variables:"swell_wave_direction,swell_wave_height,swell_wave_period,swell_wave_peak_period,wave_direction,wave_height,wave_period,wind_wave_direction,wind_wave_height,wind_wave_period,wind_wave_peak_period"}];let ma=class{static standardWeatherModels(){return $e.filter(t=>!t.disabled&&t.alias)}static standardMarineModels(){return Ke.filter(t=>!t.disabled&&t.alias)}static autoPickLayerModel(t,a="copernicus"){return a=a||"copernicus",a=a==null?void 0:a.toLowerCase(),a=["gfs","ecmwf","copernicus"].includes(a)?a:"copernicus",t=t==null?void 0:t.toLowerCase(),t==="gfs"?"gfs":["ec","ecmwf"].includes(t)?"ecmwf":["copernicus","cmems"].includes(t)?"copernicus":a}static autoPickPeerModel(t,a,r="copernicus"){if(a=this.autoPickLayerModel(a,r),xr.LayerHelper.WEATHER_LAYERS.reduce((i,l)=>l.atmos?i+l.weight:i,0)&t.weight){if(a==="copernicus")return"ecmwf"}else if(a==="ecmwf")return"copernicus";return a}static autoPickMeteoModel(t="best_match"){var a,r;t=t==null?void 0:t.toLowerCase(),t=t==="ec"?"ecmwf":t;const i=t.toLowerCase().split(","),l=[],n=[];for(const c of i){let s=$e.find(m=>{var g,u,y;return((g=m.models)==null?void 0:g.includes(c))||((u=m.alias)==null?void 0:u.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c}),d=Ke.find(m=>{var g,u,y;return((g=m.models)==null?void 0:g.includes(c))||((u=m.alias)==null?void 0:u.toLowerCase())===c||((y=m.name)==null?void 0:y.toLowerCase())===c});s=s||$e.find(m=>{var g,u;return((g=m.alias)==null?void 0:g.toLowerCase())===((u=d==null?void 0:d.alias)==null?void 0:u.toLowerCase())}),d=d||Ke.find(m=>{var g,u;return((g=m.alias)==null?void 0:g.toLowerCase())===((u=s==null?void 0:s.alias)==null?void 0:u.toLowerCase())}),s=s||$e[0],d=d||Ke[0],l.push((a=s.models)!=null&&a.includes(c)?c:s.model),n.push((r=d.models)!=null&&r.includes(c)?c:d.model)}return{weatherModels:l.join(","),marineModels:n.join(",")}}static autoPickSubCategories(t){t=t.toUpperCase();const a=$e.filter(l=>l.alias===t),r=Ke.filter(l=>l.alias===t),i=[];return a.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),r.forEach(l=>{l.categories&&i.push(...l.categories.split(","))}),i}static pickHourly(t,a){var r,i,l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z,S,M,T,E,I,G,j,H,ae,N,A,F,Y,D,R,Z,P,K,re,me,he,ee,le,de,we,W,te,Te,Le,fe,xe;const U=typeof a=="string"?C(a):a,ye=t==null?void 0:t.weather,ie=t==null?void 0:t.marine,ne=C((i=(r=ye==null?void 0:ye[0])==null?void 0:r.hourly)==null?void 0:i.date).utc(),Se=ne.clone().add((c=(n=(l=ye==null?void 0:ye[0])==null?void 0:l.hourly)==null?void 0:n.time)==null?void 0:c.at(0),"h"),Ee=ne.clone().add((m=(d=(s=ye==null?void 0:ye[0])==null?void 0:s.hourly)==null?void 0:d.time)==null?void 0:m.at(-1),"h"),Ve=[];if(U.isBetween(Se,Ee,"millisecond","[]")){const B=U.utc().diff(Se,"h",!1);let se,ke;if(ye){let Ne=0,Pe=0,O=0;for(const Ce of ye){const q=Ce==null?void 0:Ce.hourly;for(let ve=B-(B-1)%3;ve<=B;ve++)Ne+=(g=q==null?void 0:q.precipitation)==null?void 0:g.at(ve);for(let ve=B-(B-1)%6;ve<=B;ve++)Pe+=(u=q==null?void 0:q.precipitation)==null?void 0:u.at(ve);for(let ve=B-(B-1)%12;ve<=B;ve++)O+=(y=q==null?void 0:q.precipitation)==null?void 0:y.at(ve);se={temp:(f=q==null?void 0:q.temperature_2m)==null?void 0:f.at(B),apparentTemp:(h=q==null?void 0:q.apparent_temperature)==null?void 0:h.at(B),rh:(p=q==null?void 0:q.relative_humidity_2m)==null?void 0:p.at(B),dp:(w=q==null?void 0:q.dew_point_2m)==null?void 0:w.at(B),precip:{probability:(x=q==null?void 0:q.precipitation_probability)==null?void 0:x.at(B),sum:(b=q==null?void 0:q.precipitation)==null?void 0:b.at(B),sum1Hours:(k=q==null?void 0:q.precipitation)==null?void 0:k.at(B),sum3Hours:Math.round(Ne*100)/100,sum6Hours:Math.round(Pe*100)/100,sum12Hours:Math.round(O*100)/100},pmsl:(L=q==null?void 0:q.pressure_msl)==null?void 0:L.at(B),psurf:(_=q==null?void 0:q.surface_pressure)==null?void 0:_.at(B),code:(z=q==null?void 0:q.weather_code)==null?void 0:z.at(B),visibility:this.m2nm((S=q==null?void 0:q.visibility)==null?void 0:S.at(B)),wind:{speed:(M=q==null?void 0:q.wind_speed_10m)==null?void 0:M.at(B),kts:(T=q==null?void 0:q.wind_speed_10m)==null?void 0:T.at(B),degree:(E=q==null?void 0:q.wind_direction_10m)==null?void 0:E.at(B),bearing:((I=q==null?void 0:q.wind_direction_10m)==null?void 0:I.at(B))!==null?(((G=q==null?void 0:q.wind_direction_10m)==null?void 0:G.at(B))+180)%360:null,gusts:(j=q==null?void 0:q.wind_gusts_10m)==null?void 0:j.at(B)},isDay:(H=q==null?void 0:q.is_day)==null?void 0:H.at(B)};const{name:We,url:Ze,bg:Oe}=this.parseWeatherCode(se.code,se.isDay);se.name=We,se.url=Ze,se.bg=Oe,se.wind.scale=this.beaufort(this.kts2ms(se.wind.kts)),se.wind.direction=this.degree2Direction(se.wind.degree),Ve.push({utc:Se.add(B,"h").format(),model:Ce.model,weather:{...se}})}}if(ie){let Ne=0;for(const Pe of ie){const O=Pe==null?void 0:Pe.hourly;ke={wave:{sig:{height:(ae=O==null?void 0:O.wave_height)==null?void 0:ae.at(B),degree:(N=O==null?void 0:O.wave_direction)==null?void 0:N.at(B),bearing:((A=O==null?void 0:O.wave_direction)==null?void 0:A.at(B))!==null?(((F=O==null?void 0:O.wave_direction)==null?void 0:F.at(B))+180)%360:null,period:(Y=O==null?void 0:O.wave_period)==null?void 0:Y.at(B)},swell:{height:(D=O==null?void 0:O.swell_wave_height)==null?void 0:D.at(B),degree:(R=O==null?void 0:O.swell_wave_direction)==null?void 0:R.at(B),bearing:((Z=O==null?void 0:O.swell_wave_direction)==null?void 0:Z.at(B))!==null?(((P=O==null?void 0:O.swell_wave_direction)==null?void 0:P.at(B))+180)%360:null,period:(K=O==null?void 0:O.swell_wave_period)==null?void 0:K.at(B),peakPeriod:(re=O==null?void 0:O.swell_wave_peak_period)==null?void 0:re.at(B)},wd:{height:(me=O==null?void 0:O.wind_wave_height)==null?void 0:me.at(B),degree:(he=O==null?void 0:O.wind_wave_direction)==null?void 0:he.at(B),bearing:((ee=O==null?void 0:O.wind_wave_direction)==null?void 0:ee.at(B))!==null?(((le=O==null?void 0:O.wind_wave_direction)==null?void 0:le.at(B))+180)%360:null,period:(de=O==null?void 0:O.wind_wave_period)==null?void 0:de.at(B),peakPeriod:(we=O==null?void 0:O.wind_wave_peak_period)==null?void 0:we.at(B)}},current:{speed:(W=O==null?void 0:O.ocean_current_velocity)==null?void 0:W.at(B),kts:(te=O==null?void 0:O.ocean_current_velocity)==null?void 0:te.at(B),degree:(Te=O==null?void 0:O.ocean_current_direction)==null?void 0:Te.at(B),bearing:((Le=O==null?void 0:O.ocean_current_direction)==null?void 0:Le.at(B))??null},sst:(fe=O==null?void 0:O.sea_surface_temperature)==null?void 0:fe.at(B),height:(xe=O==null?void 0:O.sea_level_height_msl)==null?void 0:xe.at(B)},ke.wave=this.parseWave(ke.wave,se==null?void 0:se.wind),ke.current.direction=this.degree2Direction(ke.current.degree),Object.assign(Ve[Ne],ke),Ne++}}}return Ve}static toLegacy(t){var a,r,i,l,n,c,s,d,m,g;return{wind:(a=t==null?void 0:t.weather)==null?void 0:a.wind,visibility:(r=t==null?void 0:t.weather)==null?void 0:r.visibility,temp:(i=t==null?void 0:t.weather)==null?void 0:i.temp,prmsl:(l=t==null?void 0:t.weather)==null?void 0:l.pmsl,gusts:{kts:(c=(n=t==null?void 0:t.weather)==null?void 0:n.wind)==null?void 0:c.gusts},precip:(s=t==null?void 0:t.weather)==null?void 0:s.precip,code:(d=t==null?void 0:t.weather)==null?void 0:d.code,name:(m=t==null?void 0:t.weather)==null?void 0:m.name,url:(g=t==null?void 0:t.weather)==null?void 0:g.url,wave:t==null?void 0:t.wave,current:t==null?void 0:t.current,sst:t==null?void 0:t.sst,height:t==null?void 0:t.height,utc:t==null?void 0:t.utc,source:t==null?void 0:t.model}}static pickDaily(t,a){var r,i,l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z,S,M,T,E,I,G,j,H,ae,N,A,F,Y,D,R,Z,P,K,re,me,he,ee,le;const de=typeof a=="string"?C(a):a,we=t==null?void 0:t.weather,W=t==null?void 0:t.marine,te=C((l=(i=(r=we==null?void 0:we[0])==null?void 0:r.daily)==null?void 0:i.time)==null?void 0:l.at(0)),Te=C((s=(c=(n=we==null?void 0:we[0])==null?void 0:n.daily)==null?void 0:c.time)==null?void 0:s.at(-1)),Le=[];if(de.isBetween(te,Te,"millisecond","[]")){let fe,xe;const U=de.diff(te,"d",!1);if(we)for(const ye of we){const ie=ye.daily;fe={code:(d=ie.weather_code)==null?void 0:d.at(U),temp:{max:(m=ie.temperature_2m_max)==null?void 0:m.at(U),min:(g=ie.temperature_2m_min)==null?void 0:g.at(U),mean:(u=ie.temperature_2m_mean)==null?void 0:u.at(U)},apparentTemp:{max:(y=ie.apparent_temperature_max)==null?void 0:y.at(U),min:(f=ie.apparent_temperature_min)==null?void 0:f.at(U)},precip:{sum:(h=ie.precipitation_sum)==null?void 0:h.at(U),rainSum:(p=ie.rain_sum)==null?void 0:p.at(U),snowfallSum:(w=ie.snowfall_sum)==null?void 0:w.at(U),showersSum:(x=ie.showers_sum)==null?void 0:x.at(U),hours:(b=ie.precipitation_hours)==null?void 0:b.at(U),probability:(k=ie.precipitation_probability_max)==null?void 0:k.at(U)},rh:{max:(L=ie.relative_humidity_2m_max)==null?void 0:L.at(U),min:(_=ie.relative_humidity_2m_min)==null?void 0:_.at(U),mean:(z=ie.relative_humidity_2m_mean)==null?void 0:z.at(U)},wind:{speed:(S=ie.wind_speed_10m_max)==null?void 0:S.at(U),kts:(M=ie.wind_speed_10m_max)==null?void 0:M.at(U),degree:(T=ie.wind_direction_10m_dominant)==null?void 0:T.at(U),gusts:(E=ie.wind_gusts_10m_max)==null?void 0:E.at(U),bearing:((I=ie.wind_direction_10m_dominant)==null?void 0:I.at(U))!==null?(((G=ie.wind_direction_10m_dominant)==null?void 0:G.at(U))+180)%360:null}};const{name:ne,url:Se,bg:Ee}=this.parseWeatherCode(fe.code,!0);fe.name=ne,fe.url=Se,fe.bg=Ee,fe.wind.scale=this.beaufort(this.kts2ms(fe.wind.kts)),fe.wind.direction=this.degree2Direction(fe.wind.degree),Le.push({utc:te.add(U,"d").utc().format(),model:ye.model,weather:{...fe}})}if(W){let ye=0;for(const ie of W){const ne=ie.daily;xe={wave:{sig:{height:(j=ne.wave_height_max)==null?void 0:j.at(U),degree:(H=ne.wave_direction_dominant)==null?void 0:H.at(U),period:(ae=ne.wave_period_max)==null?void 0:ae.at(U),bearing:((N=ne.wave_direction_dominant)==null?void 0:N.at(U))!==null?(((A=ne.wave_direction_dominant)==null?void 0:A.at(U))+180)%360:null},swell:{height:(F=ne.swell_wave_height_max)==null?void 0:F.at(U),degree:(Y=ne.swell_wave_direction_dominant)==null?void 0:Y.at(U),period:(D=ne.swell_wave_period_max)==null?void 0:D.at(U),peakPeriod:(R=ne.swell_wave_peak_period_max)==null?void 0:R.at(U),bearing:((Z=ne.swell_wave_direction_dominant)==null?void 0:Z.at(U))!==null?((P=ne.swell_wave_direction_dominant)==null?void 0:P.at(U))%360:null},wd:{height:(K=ne.wind_wave_height_max)==null?void 0:K.at(U),degree:(re=ne.wind_wave_direction_dominant)==null?void 0:re.at(U),period:(me=ne.wind_wave_period_max)==null?void 0:me.at(U),peakPeriod:(he=ne.wind_wave_peak_period_max)==null?void 0:he.at(U),bearing:((ee=ne.wind_wave_direction_dominant)==null?void 0:ee.at(U))!==null?(((le=ne.wind_wave_direction_dominant)==null?void 0:le.at(U))+180)%360:null}}},xe.wave=this.parseWave(xe.wave,fe==null?void 0:fe.wind),Object.assign(Le[ye],xe),ye++}}}return Le}static parseWave(t,a){if(t.sig.direction=this.degree2Direction(t.sig.degree),t.swell.direction=this.degree2Direction(t.swell.degree),t.wd.direction=this.degree2Direction(t.wd.degree),t.sig.scale=this.douglas(t.sig.height),t.swell.scale=this.douglas(t.swell.height),t.wd.scale=this.douglas(t.wd.height),t.sig.height===0){const r=Math.sqrt(Math.pow(t.swell.height||0,2)+Math.pow(t.wd.height||0,2));t.sig.height=Math.round(r*100)/100}if(t.swell.height===0)if(t.sig.height>t.wd.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.wd.height||0,2)));t.swell.height=Math.round(r*100)/100}else{const r=Math.round(.12*this.kts2ms((a==null?void 0:a.kts)||0)*100)/100,i=r>1?r/10:r>.5?r/5:r>.3?r/2:r;t.swell.height=Math.round(i*100)/100}if(t.wd.height===0||t.wd.height>t.sig.height)if(t.sig.height>t.swell.height){const r=Math.sqrt(Math.abs(Math.pow(t.sig.height||0,2)-Math.pow(t.swell.height||0,2))),i=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(Math.min(r,i)*100)/100}else{const r=.24*this.kts2ms((a==null?void 0:a.kts)||0);t.wd.height=Math.round(r*100)/100}return t.swell.height>t.sig.height&&(t.swell.height=Math.round(t.sig.height*.76*100)/100),t.sig.period||(t.sig.period=Math.round(5*Math.sqrt(t.sig.height))),t.swell.period||(t.swell.period=Math.round(5*Math.sqrt(t.swell.height))),t.wd.period||(t.wd.period=Math.round(5*Math.sqrt(t.wd.height))),t}static parseWeatherCode(t,a){const r=this.weatherCode(t);return(a?r.day:r.night)||{}}static weatherCode(t){const a={code:t};switch(t){case 0:a.day={name:"Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 1:a.day={name:"Mainly Sunny",url:"https://osshz.idmwx.com/asset/weather/01d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"},a.night={name:"Mainly Clear",url:"https://osshz.idmwx.com/asset/weather/01n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg1.png"};break;case 2:a.day={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"},a.night={name:"Partly Cloudy",url:"https://osshz.idmwx.com/asset/weather/02n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg2.png"};break;case 3:a.day={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"},a.night={name:"Overcast",url:"https://osshz.idmwx.com/asset/weather/04n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg3.png"};break;case 45:a.day={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Foggy",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 48:a.day={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"},a.night={name:"Rime Fog",url:"https://osshz.idmwx.com/asset/weather/50n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg4.png"};break;case 51:a.day={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 53:a.day={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 55:a.day={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Drizzle",url:"https://osshz.idmwx.com/asset/weather/15n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 56:a.day={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 57:a.day={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/14d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Drizzle",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 61:a.day={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 63:a.day={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 65:a.day={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 66:a.day={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 67:a.day={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/16d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Freezing Rain",url:"https://osshz.idmwx.com/asset/weather/10n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 71:a.day={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 73:a.day={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 75:a.day={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Heavy Snow",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 77:a.day={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/17d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Grains",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 80:a.day={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 81:a.day={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 82:a.day={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Heavy Showers",url:"https://osshz.idmwx.com/asset/weather/09n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 85:a.day={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Light Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 86:a.day={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"},a.night={name:"Snow Showers",url:"https://osshz.idmwx.com/asset/weather/13n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg6.png"};break;case 95:a.day={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorm",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 96:a.day={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Light Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break;case 99:a.day={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11d.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"},a.night={name:"Thunderstorms With Hail",url:"https://osshz.idmwx.com/asset/weather/11n.svg",bg:"https://osshz.idmwx.com/asset/weather/bg5.png"};break}return a}static kts2ms(t){return isNaN(t)||t===null?t:Math.round(t*1852/3600*1e4)/1e4}static kts2kmh(t){return isNaN(t)||t===null?t:t*1.852}static m2nm(t){return isNaN(t)||t===null?t:Math.round(t/1e3/1.852*1e4)/1e4}static kmh2kts(t){return isNaN(t)||t===null?t:this.ms2kts(t*1e3/3600)}static ms2kts(t){return isNaN(t)||t===null?t:Math.round(t*3600/1852*1e4)/1e4}static degree2Radian(t){if(isNaN(t)||t===null)return t;let a=t%360/360*2*Math.PI;return a=a<0?a+2*Math.PI:a,a}static degree2Direction(t){const a=this.degree2Radian(t);if(isNaN(a)||a===null)return null;let r="N/A";const i=Math.PI/16;return a<i?r="N":a>=i&&a<3*i?r="NNE":a>=3*i&&a<5*i?r="NE":a>=5*i&&a<7*i?r="ENE":a>=7*i&&a<9*i?r="E":a>=9*i&&a<11*i?r="ESE":a>=11*i&&a<13*i?r="SE":a>=13*i&&a<15*i?r="SSE":a>=15*i&&a<17*i?r="S":a>=17*i&&a<19*i?r="SSW":a>=19*i&&a<21*i?r="SW":a>=21*i&&a<23*i?r="WSW":a>=23*i&&a<25*i?r="W":a>=25*i&&a<27*i?r="WNW":a>=27*i&&a<29*i?r="NW":a>=29*i&&a<31*i?r="NNW":a>=31*i&&a<32*i&&(r="N"),r}static beaufort(t){let a=0;return isNaN(t)||(t=Math.round(t*10)/10,t<=.2?a=0:t<=1.5?a=1:t<=3.3?a=2:t<=5.4?a=3:t<=7.9?a=4:t<=10.7?a=5:t<=13.8?a=6:t<=17.1?a=7:t<=20.7?a=8:t<=22.4?a=9:t<=28.4?a=10:t<=32.6?a=11:t<=36.9?a=12:t<=41.4?a=13:t<=46.1?a=14:t<=50.9?a=15:t<=55.9?a=16:t<=61.2?a=17:t>61.2&&(a=18)),a}static douglas(t){let a="Calm";return isNaN(t)||t<=.1?a="Calm":t<=.5?a="Smooth":t<=1.25?a="Slight":t<=2.5?a="Moderate":t<=4?a="Rough":t<=6?a="VeryRough":t<=9?a="High":t<=14?a="VeryHigh":a="Precipitous",a}};const xf="",_m={name:"IdmTropicals",props:{simple:{type:Boolean,default:!1},permission:{type:Number},locale:{type:String},map:{type:Object},top:{type:Number,default:60},paddingTop:{type:Number,default:48},menuToggle:{type:Object,default:{}},timeZone:{type:Number},token:{type:String},defaultMeteoToken:{type:String},gateway:{type:String,default:"aa"},assistGateway:{type:Array,default:[]},forecastModel:{type:String},realTime:{type:String},beforeLayer:{type:String}},emits:["tropical","tropicalCenterPoints","tropicalProbability","tropicalNotification"],setup(){return{Theme:be.useTheme()}},data(){return{right:10,toggle:!1,helper:je.CompanyHelper,tropicals:void 0,tropicalCacheKey:"tropicalCacheGL4",source:"tropicals-source",clusterSource:"tropicals-cluster-source",historyLayer:"tropicals-history-layer",forecastLayer:"tropicals-forecast-layer",forecastModelLayer:"tropicals-forecast-model-layer",forecastNameLayer:"tropicals-forecast-name-layer",pointCircleLayer:"tropicals-point-circle-layer",pointLabelLayer:"tropicals-point-label-layer",historyPointCircleLayer:"history-tropicals-point-circle-layer",historyPointLabelLayer:"history-tropicals-point-label-layer",interpolateData:[],interpolateMarkers:[],interpolateSource:"tropicals-interpolate-source",interpolateLineLayer:"tropicals-interpolate-line-layer",showTropicalsInfo:!1,activeTropicals:void 0,activeTropicalsMarker:void 0,empty:J.featureCollection([]),showLegend:!1,showHoverPoint:!1,hoverPoint:void 0,hoverMarker:void 0}},computed:{hoverLayers(){return[this.forecastNameLayer,this.forecastLayer,this.historyLayer,this.pointCircleLayer,this.pointCircleLayer+"-border",this.historyPointCircleLayer,this.historyPointCircleLayer+"-border",this.historyPointCircleLayer+"-inner"]},clickLayers(){return[this.forecastNameLayer,this.historyLayer]},computeTime(){return(e,t)=>{if(e){const a=C(e).utcOffset(t),r=t<0?t:"+"+t;return`${a==null?void 0:a.format("MMM-DD/HHmm")} (UTC${r}) ${a==null?void 0:a.fromNow()} `}return"-"}},computeTzTime(){return(e,t,a="MM-DD HH:mm")=>{var r,i;if(e){const l=t||0,n=(i=(r=C(e))==null?void 0:r.utcOffset(l))==null?void 0:i.format(a),c=`(UTC ${l>=0?"+":""}${l})`;return n+" "+c}return"-"}},computeTimezone(){return this.timeZone<0?this.timeZone:"+"+this.timeZone},computeBF(){return function(e){const t=ma.kts2ms(e);return ma.beaufort(t)}},computeMovement(){return function(e){var t,a;return(a=(t=e==null?void 0:e.forecasts)==null?void 0:t.find(r=>!r.disabled))==null?void 0:a.movement}},computePosition(){return e=>!e||e.lng===null||e.lng===void 0||isNaN(e.lng)||e.lat===null||e.lat===void 0||isNaN(e.lat)?"-":X.LngLatHelper.lat2pretty(e==null?void 0:e.lat,2).pretty+" / "+X.LngLatHelper.lng2pretty(e==null?void 0:e.lng,2).pretty}},watch:{"menuToggle.v":{handler(){this.$nextTick(()=>{var e;this.simple||(this.right=(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+10)})},immediate:!0},map:{handler(){this.map?(this.toggle=localStorage.getItem(this.tropicalCacheKey)==="true"||!1,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle&&this.fetchTropicals()):this.handleClear()}},showTropicalsInfo:{handler(){this.$emit("tropical",this.showTropicalsInfo),this.simple&&this.showTropicalsInfo?this.$nextTick(()=>{var e,t;this.$parent.playerBottom=((t=(e=this.$refs.tropicalsInfo)==null?void 0:e.$el)==null?void 0:t.clientHeight)+10}):this.simple&&(this.$parent.playerBottom=30)},immediate:!0},"tropicals.version":{handler(){this.handleRefresh()}},timeZone:{handler(e,t){e!==t&&this.handleRefresh()}},realTime:{handler(e){this.map&&e&&this.toggle&&this.handleRender()}},locale:{handler(e){this.map&&this.toggle&&this.handleRefresh()}}},mounted(){},methods:{handleMenuToggle(){var e,t,a;this.toggle=!this.toggle,localStorage.setItem(this.tropicalCacheKey,this.toggle),this.toggle?this.fetchTropicals():(this.handleClear(),(a=(t=(e=this.$parent)==null?void 0:e.$refs)==null?void 0:t.idmBottomBar)==null||a.handleToggle("tropical",!1))},async fetchTropicals(){var i,l,n;const e=new Date().valueOf();let t=0,a=0,r=(i=je.LayerHelper.WEATHER_LAYERS.find(c=>c.key==="tropicals"))==null?void 0:i.weight;if(r>0){const c=this.assistGateway[Math.round(Math.random()*(this.assistGateway.length-1))],s=await ge.get(`${c}/api/arc/weather/layers2/links?l=${r}&v=${this.forecastModel}&t=${this.realTime}`,{headers:{Authorization:this.defaultMeteoToken}});if(a=new Date().valueOf()-(e+t),console.log("weather links elapsed: ",a,", total: ",t+=a),((l=s==null?void 0:s.data)==null?void 0:l.code)===0){const d=(n=s==null?void 0:s.data)==null?void 0:n.data;await ge.get(d.tropicals,{headers:{Authorization:this.defaultMeteoToken,key:"tropicals"},responseType:/\.(jpg|png)$/.test(d.tropicals)?"blob":"json"}).then(m=>{var y,f,h;const g=X.TropicalHelper.convert2Geojson(((y=m==null?void 0:m.data)==null?void 0:y.data)||(m==null?void 0:m.data));((h=(f=m==null?void 0:m.config)==null?void 0:f.headers)==null?void 0:h.key)&&g&&(this.tropicals={data:g,active:!0,cached:!0,type:"json",etime:s.data.etime,version:Math.random()+1})}).catch(m=>{console.log(`tropicals fetch layer error: ${m}`)})}a=new Date().valueOf()-(e+t),console.log("tropicals elapsed: ",a,", total: ",t+=a)}},handleRefresh(){var t,a;(((a=(t=this.tropicals)==null?void 0:t.data)==null?void 0:a.features)||[]).forEach(r=>{var l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z;let i="";switch(!0){case(((l=r.properties.wind)==null?void 0:l.kts)<32||((n=r.properties)==null?void 0:n.kts)<32):i="td";break;case(((c=r.properties.wind)==null?void 0:c.kts)<47||((s=r.properties)==null?void 0:s.kts)<47):i="ts";break;case(((d=r.properties.wind)==null?void 0:d.kts)<63||((m=r.properties)==null?void 0:m.kts)<63):i="sts";break;case(((g=r.properties.wind)==null?void 0:g.kts)<79||((u=r.properties)==null?void 0:u.kts)<79):i="ty";break;case(((y=r.properties.wind)==null?void 0:y.kts)<94||((f=r.properties)==null?void 0:f.kts)<94):i="sty";break;case(((h=r.properties.wind)==null?void 0:h.kts)>=94||((p=r.properties)==null?void 0:p.kts)>=94):i="superTy";break;default:i="superTy";break}r.properties.levelI18n=i,((w=r.geometry)==null?void 0:w.type)==="Point"&&((x=r.properties)!=null&&x.important)&&(r.properties.format=(k=(b=C(r.properties.date))==null?void 0:b.utcOffset(this.timeZone))==null?void 0:k.format(`MMM-DD/HHmm [(utc${this.computeTimezone})]`)),((L=r.geometry)==null?void 0:L.type)==="Point"&&(r.properties.Name=((z=(_=r.properties.name)==null?void 0:_.trim())==null?void 0:z.replace(/^./,S=>S.toUpperCase()))||r.properties.nameCn,r.properties.nameCn=r.properties.nameCn||r.properties.Name||"-")}),this.handleInit()},handleInit(){var e,t,a,r,i,l,n,c,s,d,m,g;this.handleClear(),this.tropicals&&this.map&&(this.handleRender(),(e=this.map)==null||e.on("click",this.clickLayers,this.handleClick),(t=this.map)==null||t.on("mousemove",this.hoverLayers,this.handleHover),(a=this.map)==null||a.on("mouseleave",this.hoverLayers,this.handleLeave)),((l=(i=(r=this.tropicals)==null?void 0:r.data)==null?void 0:i.features)==null?void 0:l.length)>0?(s=(c=(n=this.$parent)==null?void 0:n.$refs)==null?void 0:c.idmBottomBar)==null||s.handleToggle("tropical",!0):(g=(m=(d=this.$parent)==null?void 0:d.$refs)==null?void 0:m.idmBottomBar)==null||g.handleToggle("tropical",!1)},handleRender(){var e,t,a,r,i,l,n,c,s,d;if(this.tropicals&&this.map){const m=new Date().valueOf();let g=0,u=0;(e=this.map)!=null&&e.getSource(this.source)?((a=this.map)==null||a.getSource(this.source).setData((t=this.tropicals)!=null&&t.active?this.tropicals.data:this.empty),u=new Date().valueOf()-(m+g),console.log("[tropicals] update elapsed: ",u,", total: ",g+=u)):(this.map.addSource(this.source,{type:"geojson",data:(r=this.tropicals)!=null&&r.active?(i=this.tropicals)==null?void 0:i.data:this.empty}),this.map.addLayer({id:this.historyLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","history"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":this.Theme.current.value.colors["on-surface"],"line-width":3,"line-opacity":.7}},this.beforeLayer),this.map.addLayer({id:this.forecastLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"line-width":2,"line-opacity":1,"line-dasharray":[1,2]}},this.beforeLayer),this.map.addLayer({id:this.forecastModelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["==","type","forecast"],["!=","disabled",!0]],layout:{"symbol-placement":"line","text-field":"{model}","text-rotation-alignment":"viewport","text-size":12},paint:{"text-color":this.Theme.current.value.dark?"#333":"#fff","text-opacity":1,"text-halo-color":["match",["get","model"],"cma",this.Theme.current.value.colors["tropicals-cma"],"jma",this.Theme.current.value.colors["tropicals-jma"],"ecmwf",this.Theme.current.value.colors["tropicals-ecmwf"],"ukm",this.Theme.current.value.colors["tropicals-ukm"],"noaa-at",this.Theme.current.value.colors["tropicals-noaa-at"],"noaa-ep",this.Theme.current.value.colors["tropicals-noaa-ep"],this.Theme.current.value.colors["tropicals-noaa-other"]],"text-halo-width":4}},this.beforeLayer),u=new Date().valueOf()-(m+g),console.log("[tropical] add elapsed: ",u,", total: ",g+=u)),(l=this.map)!=null&&l.getSource(this.clusterSource)?((c=this.map)==null||c.getSource(this.clusterSource).setData((n=this.tropicals)!=null&&n.active?this.tropicals.data:this.empty),u=new Date().valueOf()-(m+g),console.log("[tropical] update elapsed: ",u,", total: ",g+=u)):(this.map.addSource(this.clusterSource,{type:"geojson",data:(s=this.tropicals)!=null&&s.active?(d=this.tropicals)==null?void 0:d.data:this.empty}),this.map.addLayer({id:this.pointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.pointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],paint:{"circle-radius":4,"circle-color":["case",["boolean",["==",["get","kts",["get","wind"]],null]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],32]],this.Theme.current.value.colors["tropicals-td"],["boolean",["<",["get","kts",["get","wind"]],47]],this.Theme.current.value.colors["tropicals-ts"],["boolean",["<",["get","kts",["get","wind"]],63]],this.Theme.current.value.colors["tropicals-sts"],["boolean",["<",["get","kts",["get","wind"]],79]],this.Theme.current.value.colors["tropicals-ty"],["boolean",["<",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-sty"],["boolean",[">=",["get","kts",["get","wind"]],94]],this.Theme.current.value.colors["tropicals-super-ty"],"#fff"]}},this.beforeLayer),this.map.addLayer({id:this.pointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","forecast"],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-border",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":6,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer,type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":5,"circle-color":"rgba(0,0,0,0.7)"}},this.beforeLayer),this.map.addLayer({id:this.historyPointCircleLayer+"-inner",type:"circle",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],paint:{"circle-radius":3,"circle-color":"#fff"}},this.beforeLayer),this.map.addLayer({id:this.historyPointLabelLayer,type:"symbol",source:this.clusterSource,minzoom:5,filter:["all",["==","$type","Point"],["==","type","history"],["==","important",!0],["!=","disabled",!0]],layout:{"text-field":["get","format"],"text-offset":[1,0],"text-anchor":"left","text-size":10},paint:{"text-color":this.Theme.current.value.colors["on-surface"]}},this.beforeLayer),this.map.addLayer({id:this.forecastNameLayer,type:"symbol",source:this.clusterSource,filter:["all",["==","$type","Point"],["==","type","forecast"],["==","important",!0]],layout:{"text-field":["get",this.locale==="en"?"Name":"nameCn"],"text-anchor":"bottom","text-size":16,"text-allow-overlap":!0,"text-ignore-placement":!0,"text-font":["DIN Pro Regular","Arial Unicode MS Regular"],"text-offset":[0,2]},paint:{"text-color":this.Theme.current.value.colors["map-blue"],"text-halo-color":"#ffffff","text-halo-width":2}},this.beforeLayer),u=new Date().valueOf()-(m+g),console.log("[tropical] add elapsed: ",u,", total: ",g+=u));const y=X.TropicalHelper.interpolate(this.tropicals,1);this.interpolateData=JSON.parse(JSON.stringify(y)),this.handleDateChange()}},handleClear(){var e,t,a,r;this.map&&(this.map.getLayer(this.historyLayer)&&this.map.removeLayer(this.historyLayer),this.map.getLayer(this.forecastLayer)&&this.map.removeLayer(this.forecastLayer),this.map.getLayer(this.forecastModelLayer)&&this.map.removeLayer(this.forecastModelLayer),this.map.getLayer(this.forecastNameLayer)&&this.map.removeLayer(this.forecastNameLayer),this.map.getLayer(this.pointCircleLayer)&&this.map.removeLayer(this.pointCircleLayer),this.map.getLayer(this.pointCircleLayer+"-border")&&this.map.removeLayer(this.pointCircleLayer+"-border"),this.map.getLayer(this.pointLabelLayer)&&this.map.removeLayer(this.pointLabelLayer),this.map.getLayer(this.historyPointCircleLayer)&&this.map.removeLayer(this.historyPointCircleLayer),this.map.getLayer(this.historyPointCircleLayer+"-border")&&this.map.removeLayer(this.historyPointCircleLayer+"-border"),this.map.getLayer(this.historyPointCircleLayer+"-inner")&&this.map.removeLayer(this.historyPointCircleLayer+"-inner"),this.map.getLayer(this.historyPointLabelLayer)&&this.map.removeLayer(this.historyPointLabelLayer),this.map.getLayer(this.interpolateLineLayer)&&this.map.removeLayer(this.interpolateLineLayer),(e=this.interpolateMarkers)==null||e.forEach(i=>i==null?void 0:i.remove()),this.map.getSource(this.source)&&this.map.removeSource(this.source),this.map.getSource(this.clusterSource)&&this.map.removeSource(this.clusterSource),this.map.getSource(this.interpolateSource)&&this.map.removeSource(this.interpolateSource)),(t=this.map)==null||t.off("click",this.clickLayers,this.handleClick),(a=this.map)==null||a.off("mousemove",this.hoverLayers,this.handleHover),(r=this.map)==null||r.off("mouseleave",this.hoverLayers,this.handleLeave),this.handleCloseInfoMarker()},handleDateChange(){var e,t,a,r,i,l,n,c,s,d,m,g,u,y,f,h,p,w,x,b,k,L,_,z,S,M,T,E,I,G,j,H,ae,N,A;if((e=this.interpolateMarkers)==null||e.forEach(F=>F==null?void 0:F.remove()),(t=this.interpolateData)!=null&&t.length&&this.tropicals.active){const F=C(this.realTime).utc().set({minute:0,second:0,millisecond:0}),Y=this.interpolateData.filter(P=>P.properties.date===(F==null?void 0:F.format())&&!P.properties.disabled),D=this.handleComputePolygons(Y),R=J.featureCollection([...Y]);D.forEach(P=>{R.features.push(P)}),(a=this.map)!=null&&a.getSource(this.interpolateSource)?(r=this.map)==null||r.getSource(this.interpolateSource).setData(R):((i=this.map)==null||i.addSource(this.interpolateSource,{type:"geojson",data:R}),(l=this.map)==null||l.addLayer({id:this.interpolateLineLayer,type:"line",source:this.interpolateSource,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-opacity":1,"line-color":["match",["get","level"],7,this.Theme.current.value.colors["tropicals-r7"],10,this.Theme.current.value.colors["tropicals-r10"],this.Theme.current.value.colors["tropicals-r10"]],"line-width":1}},"empty-layer-3")),this.interpolateMarkers=[];const Z=[];for(const P of Y)if(!P.properties.disabled){if(!Z.some(ee=>{var le;return ee.properties.name===((le=P.properties)==null?void 0:le.name)})){const ee=((c=(n=this.tropicals.data.features.find(le=>{var de;return le.properties.name===((de=P.properties)==null?void 0:de.name)}))==null?void 0:n.properties)==null?void 0:c.nameCn)||((s=P.properties)==null?void 0:s.Name)||"-";P.properties.nameCn=ee,P.properties.Name=((m=(d=P.properties.name)==null?void 0:d.trim())==null?void 0:m.replace(/^./,le=>le.toUpperCase()))||P.properties.nameCn,Z.push(P)}let K=this.Theme.current.value.colors["tropicals-ty"];((u=(g=P.properties)==null?void 0:g.wind)==null?void 0:u.kts)<32||!((f=(y=P.properties)==null?void 0:y.wind)!=null&&f.kts)?K=this.Theme.current.value.colors["tropicals-td"]:((p=(h=P.properties)==null?void 0:h.wind)==null?void 0:p.kts)>=32&&((x=(w=P.properties)==null?void 0:w.wind)==null?void 0:x.kts)<47?K=this.Theme.current.value.colors["tropicals-ts"]:((k=(b=P.properties)==null?void 0:b.wind)==null?void 0:k.kts)>=47&&((_=(L=P.properties)==null?void 0:L.wind)==null?void 0:_.kts)<63?K=this.Theme.current.value.colors["tropicals-sts"]:((S=(z=P.properties)==null?void 0:z.wind)==null?void 0:S.kts)>=63&&((T=(M=P.properties)==null?void 0:M.wind)==null?void 0:T.kts)<79?K=this.Theme.current.value.colors["tropicals-ty"]:((I=(E=P.properties)==null?void 0:E.wind)==null?void 0:I.kts)>=79&&((j=(G=P.properties)==null?void 0:G.wind)==null?void 0:j.kts)<94?K=this.Theme.current.value.colors["tropicals-sty"]:((ae=(H=P.properties)==null?void 0:H.wind)==null?void 0:ae.kts)>=94?K=this.Theme.current.value.colors["tropicals-super-ty"]:K=this.Theme.current.value.colors["tropicals-ty"];const re=`<svg t="1719918955501"
204
204
  class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" p-id="18382"
205
205
  xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
206
206
  <path
@@ -1,6 +1,6 @@
1
- import { d as j } from "./chunk-ANSXOGKI-052d4843.js";
2
- import "./chunk-3VYIPD3A-de747d6d.js";
3
- import "./index-1e2659ec.js";
1
+ import { d as j } from "./chunk-ANSXOGKI-f784e4f5.js";
2
+ import "./chunk-3VYIPD3A-e66f094c.js";
3
+ import "./index-e501d918.js";
4
4
  import "axios";
5
5
  import "vuetify";
6
6
  import "vue";
@@ -1,6 +1,6 @@
1
- import { m as h } from "./chunk-T4JIPPZO-0e79060d.js";
2
- import "./chunk-3VYIPD3A-de747d6d.js";
3
- import "./index-1e2659ec.js";
1
+ import { m as h } from "./chunk-T4JIPPZO-3355e75e.js";
2
+ import "./chunk-3VYIPD3A-e66f094c.js";
3
+ import "./index-e501d918.js";
4
4
  import "axios";
5
5
  import "vuetify";
6
6
  import "vue";
@@ -1,5 +1,5 @@
1
- import { W as c } from "./chunk-3VYIPD3A-de747d6d.js";
2
- import "./index-1e2659ec.js";
1
+ import { W as c } from "./chunk-3VYIPD3A-e66f094c.js";
2
+ import "./index-e501d918.js";
3
3
  import "axios";
4
4
  import "vuetify";
5
5
  import "vue";
@@ -1,6 +1,6 @@
1
- import { d as u } from "./chunk-ANSXOGKI-052d4843.js";
2
- import { l as g } from "./index-1e2659ec.js";
3
- import "./chunk-3VYIPD3A-de747d6d.js";
1
+ import { d as u } from "./chunk-ANSXOGKI-f784e4f5.js";
2
+ import { l as g } from "./index-e501d918.js";
3
+ import "./chunk-3VYIPD3A-e66f094c.js";
4
4
  import "axios";
5
5
  import "vuetify";
6
6
  import "vue";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idmwx/idmui-gl4",
3
3
  "private": false,
4
- "version": "2.9.0",
4
+ "version": "2.9.1",
5
5
  "description": "idm webgl4",
6
6
  "type": "module",
7
7
  "keywords": [