@idmwx/idmui-gl3 4.4.6 → 4.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  var at = Object.defineProperty;
2
2
  var it = (a, e, t) => e in a ? at(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
3
3
  var R = (a, e, t) => (it(a, typeof e != "symbol" ? e + "" : e, t), t);
4
- import { resolveComponent as z, openBlock as x, createElementBlock as C, createElementVNode as l, normalizeStyle as U, createVNode as k, withCtx as Y, normalizeClass as N, Fragment as Ae, renderList as $e, toDisplayString as S, createCommentVNode as j, createTextVNode as Fe, pushScopeId as H, popScopeId as G, withDirectives as je, vShow as Ne, createStaticVNode as rt, mergeProps as E } from "vue";
4
+ import { resolveComponent as z, openBlock as x, createElementBlock as C, createElementVNode as l, normalizeStyle as U, createVNode as k, withCtx as Y, normalizeClass as W, Fragment as Ae, renderList as $e, toDisplayString as S, createCommentVNode as j, createTextVNode as Fe, pushScopeId as H, popScopeId as G, withDirectives as je, vShow as We, createStaticVNode as rt, mergeProps as E } from "vue";
5
5
  import * as L from "@turf/turf";
6
6
  import ot from "@mapbox/sphericalmercator";
7
7
  import Z from "moment";
@@ -641,7 +641,7 @@ const T = (a, e) => {
641
641
  style: { "align-self": "flex-start", padding: "5px 5px 0 0" }
642
642
  }, ""),
643
643
  /* @__PURE__ */ l("div", null, "Bookmark your favorite layer to homepage(Max 6)")
644
- ], -1), Mt = { class: "other-layers card-bg" }, $t = /* @__PURE__ */ l("div", { class: "layers-title" }, "Other Layers", -1), jt = { class: "layers-body" }, Nt = ["onClick"], Bt = { class: "flex-start" }, Wt = /* @__PURE__ */ l("div", { class: "switch flex-center" }, [
644
+ ], -1), Mt = { class: "other-layers card-bg" }, $t = /* @__PURE__ */ l("div", { class: "layers-title" }, "Other Layers", -1), jt = { class: "layers-body" }, Wt = ["onClick"], Nt = { class: "flex-start" }, Bt = /* @__PURE__ */ l("div", { class: "switch flex-center" }, [
645
645
  /* @__PURE__ */ l("i", { class: "iconfont open" }, ""),
646
646
  /* @__PURE__ */ l("i", { class: "iconfont close" }, "")
647
647
  ], -1), Ot = { class: "source-layers card-bg" }, Ft = /* @__PURE__ */ l("span", { class: "layers-title" }, "Forecast Model", -1), Vt = { class: "layers-body" };
@@ -662,7 +662,7 @@ function Ut(a, e, t, r, i, o) {
662
662
  }, {
663
663
  default: Y(() => [
664
664
  l("div", {
665
- class: N(t.layerToggle ? "menu-icon active" : "menu-icon"),
665
+ class: W(t.layerToggle ? "menu-icon active" : "menu-icon"),
666
666
  onClick: e[0] || (e[0] = (...h) => o.handleMenuToggle && o.handleMenuToggle(...h))
667
667
  }, pt, 2)
668
668
  ]),
@@ -683,7 +683,7 @@ function Ut(a, e, t, r, i, o) {
683
683
  }, {
684
684
  default: Y(() => [
685
685
  l("div", {
686
- class: N(i.showMeasure ? "menu-icon active" : "menu-icon"),
686
+ class: W(i.showMeasure ? "menu-icon active" : "menu-icon"),
687
687
  onClick: e[1] || (e[1] = (...h) => o.handleMeasureToggle && o.handleMeasureToggle(...h))
688
688
  }, yt, 2)
689
689
  ]),
@@ -697,7 +697,7 @@ function Ut(a, e, t, r, i, o) {
697
697
  }, {
698
698
  default: Y(() => [
699
699
  l("div", {
700
- class: N(i.showPoint ? "menu-icon active" : "menu-icon"),
700
+ class: W(i.showPoint ? "menu-icon active" : "menu-icon"),
701
701
  onClick: e[2] || (e[2] = (...h) => o.handlePointToggle && o.handlePointToggle(...h))
702
702
  }, gt, 2)
703
703
  ]),
@@ -711,7 +711,7 @@ function Ut(a, e, t, r, i, o) {
711
711
  }, {
712
712
  default: Y(() => [
713
713
  l("div", {
714
- class: N(i.showCoord ? "menu-icon active" : "menu-icon"),
714
+ class: W(i.showCoord ? "menu-icon active" : "menu-icon"),
715
715
  onClick: e[3] || (e[3] = (...h) => o.handleCoordToggle && o.handleCoordToggle(...h))
716
716
  }, vt, 2)
717
717
  ]),
@@ -725,7 +725,7 @@ function Ut(a, e, t, r, i, o) {
725
725
  }, {
726
726
  default: Y(() => [
727
727
  l("div", {
728
- class: N(i.show3d ? "menu-icon active" : "menu-icon"),
728
+ class: W(i.show3d ? "menu-icon active" : "menu-icon"),
729
729
  onClick: e[4] || (e[4] = (...h) => o.handle3DToggle && o.handle3DToggle(...h))
730
730
  }, _t, 2)
731
731
  ]),
@@ -740,7 +740,7 @@ function Ut(a, e, t, r, i, o) {
740
740
  }, [
741
741
  (x(!0), C(Ae, null, $e(i.layers.weather.filter((h) => h.collected), (h) => (x(), C("div", {
742
742
  key: h.key,
743
- class: N(o.computeLayerClass(h, i.activeWeatherLayers)),
743
+ class: W(o.computeLayerClass(h, i.activeWeatherLayers)),
744
744
  onClick: (g) => o.handleActiveWeatherLayerPick(h)
745
745
  }, [
746
746
  xt,
@@ -752,7 +752,7 @@ function Ut(a, e, t, r, i, o) {
752
752
  style: U({ top: t.top + "px", right: t.layerToggle ? "0px" : "-240px" })
753
753
  }, [
754
754
  l("div", {
755
- class: N(["list-box", t.layerToggle ? "right-bar" : ""])
755
+ class: W(["list-box", t.layerToggle ? "right-bar" : ""])
756
756
  }, [
757
757
  l("div", Ct, [
758
758
  kt,
@@ -771,7 +771,7 @@ function Ut(a, e, t, r, i, o) {
771
771
  }, [
772
772
  h.hide ? j("", !0) : (x(), C("div", {
773
773
  key: 0,
774
- class: N(o.computeLayerClass(h, i.weatherLayers))
774
+ class: W(o.computeLayerClass(h, i.weatherLayers))
775
775
  }, [
776
776
  l("div", {
777
777
  class: "flex-start",
@@ -795,14 +795,14 @@ function Ut(a, e, t, r, i, o) {
795
795
  l("div", jt, [
796
796
  (x(!0), C(Ae, null, $e(i.layers.other, (h) => (x(), C("div", {
797
797
  key: h.key,
798
- class: N(o.computeLayerClass(h, i.otherLayers)),
798
+ class: W(o.computeLayerClass(h, i.otherLayers)),
799
799
  onClick: (g) => o.handleOtherLayerPick(h)
800
800
  }, [
801
- l("div", Bt, [
802
- Wt,
801
+ l("div", Nt, [
802
+ Bt,
803
803
  l("span", null, S(h.name), 1)
804
804
  ])
805
- ], 10, Nt))), 128))
805
+ ], 10, Wt))), 128))
806
806
  ])
807
807
  ]),
808
808
  l("div", Ot, [
@@ -997,11 +997,11 @@ function ea(a, e, t, r, i, o) {
997
997
  }, [
998
998
  t.mapProjection === "mercator" ? (x(), C("div", {
999
999
  key: 0,
1000
- class: N(["item-bar flex-start", t.showParticle ? "active" : "inactive"]),
1000
+ class: W(["item-bar flex-start", t.showParticle ? "active" : "inactive"]),
1001
1001
  onClick: e[0] || (e[0] = (...n) => o.handleParticle && o.handleParticle(...n))
1002
1002
  }, Yt, 2)) : j("", !0),
1003
1003
  l("div", {
1004
- class: N(["item-bar flex-start", i.showFeather ? "active" : "inactive"]),
1004
+ class: W(["item-bar flex-start", i.showFeather ? "active" : "inactive"]),
1005
1005
  onClick: e[1] || (e[1] = (n) => i.showFeather = !i.showFeather)
1006
1006
  }, Kt, 2)
1007
1007
  ], 4)
@@ -1281,10 +1281,10 @@ class Le {
1281
1281
  });
1282
1282
  }
1283
1283
  }
1284
- class B {
1284
+ class N {
1285
1285
  }
1286
1286
  // 顶点渲染
1287
- R(B, "vertexSchema", `
1287
+ R(N, "vertexSchema", `
1288
1288
  //canvas 坐标系上的坐标 (x, y)
1289
1289
  attribute vec2 a_position; //像素坐标
1290
1290
  attribute vec2 a_texCoord; //纹理坐标
@@ -1299,7 +1299,7 @@ R(B, "vertexSchema", `
1299
1299
  gl_Position = vec4(position * vec2(1, -1), 0.0, 1.0);
1300
1300
  v_texCoord = a_texCoord;
1301
1301
  }`), // 类如风、流等u v双变量片元渲染
1302
- R(B, "uvFragmentSchema", `
1302
+ R(N, "uvFragmentSchema", `
1303
1303
  precision mediump float;
1304
1304
  uniform sampler2D u_image;
1305
1305
  uniform vec2 u_range_u_v;
@@ -1318,7 +1318,7 @@ R(B, "uvFragmentSchema", `
1318
1318
 
1319
1319
  gl_FragColor = color;
1320
1320
  }`), // 类如浪、气压等单变量片元渲染
1321
- R(B, "fragmentSchema", `
1321
+ R(N, "fragmentSchema", `
1322
1322
  precision mediump float;
1323
1323
  uniform sampler2D u_image; // 灰度
1324
1324
  uniform sampler2D u_color; // 色值映射
@@ -3196,7 +3196,7 @@ const ia = {
3196
3196
  [1, "rgb(91, 136, 161)"]
3197
3197
  ];
3198
3198
  this.rampColor = this.webgl.setup(this.context, a);
3199
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.uvFragmentSchema);
3199
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.uvFragmentSchema);
3200
3200
  this.program = e, this.aPositionBuffer = t;
3201
3201
  }
3202
3202
  this.handleParticleSetup();
@@ -3430,11 +3430,11 @@ function Ca(a, e, t, r, i, o) {
3430
3430
  }, [
3431
3431
  t.mapProjection === "mercator" ? (x(), C("div", {
3432
3432
  key: 0,
3433
- class: N(["flex-start item-bar", t.showParticle ? "active" : "inactive"]),
3433
+ class: W(["flex-start item-bar", t.showParticle ? "active" : "inactive"]),
3434
3434
  onClick: e[0] || (e[0] = (n) => o.handleParticle(!t.showParticle))
3435
3435
  }, wa, 2)) : j("", !0),
3436
3436
  l("div", {
3437
- class: N(["flex-start item-bar", i.showJson ? "active" : "inactive"]),
3437
+ class: W(["flex-start item-bar", i.showJson ? "active" : "inactive"]),
3438
3438
  onClick: e[1] || (e[1] = (n) => i.showJson = !i.showJson)
3439
3439
  }, xa, 2)
3440
3440
  ], 4)
@@ -3546,7 +3546,7 @@ const Sa = {
3546
3546
  [1, "rgb(195,194,194)"]
3547
3547
  ];
3548
3548
  this.rampColor = this.webgl.setup(this.context, a);
3549
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.uvFragmentSchema);
3549
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.uvFragmentSchema);
3550
3550
  this.program = e, this.aPositionBuffer = t;
3551
3551
  }
3552
3552
  this.handleParticleSetup();
@@ -3616,7 +3616,7 @@ function $a(a, e, t, r, i, o) {
3616
3616
  }, Ma, 4)
3617
3617
  ])) : j("", !0);
3618
3618
  }
3619
- const ja = /* @__PURE__ */ T(Sa, [["render", $a], ["__scopeId", "data-v-6d4fd206"]]), Na = {
3619
+ const ja = /* @__PURE__ */ T(Sa, [["render", $a], ["__scopeId", "data-v-6d4fd206"]]), Wa = {
3620
3620
  name: "IdmSigWave",
3621
3621
  props: {
3622
3622
  map: {
@@ -3727,10 +3727,10 @@ const ja = /* @__PURE__ */ T(Sa, [["render", $a], ["__scopeId", "data-v-6d4fd206
3727
3727
  }
3728
3728
  }
3729
3729
  };
3730
- function Ba(a, e, t, r, i, o) {
3730
+ function Na(a, e, t, r, i, o) {
3731
3731
  return x(), C("div");
3732
3732
  }
3733
- const Wa = /* @__PURE__ */ T(Na, [["render", Ba]]), Oa = {
3733
+ const Ba = /* @__PURE__ */ T(Wa, [["render", Na]]), Oa = {
3734
3734
  name: "IdmSwell",
3735
3735
  props: {
3736
3736
  map: {
@@ -4441,7 +4441,7 @@ const Ya = {
4441
4441
  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), (a = this.interpolateMarkers) == null || a.forEach((e) => e == null ? void 0 : e.remove()), this.map.getSource(this.source) && this.map.removeSource(this.source), this.map.getSource(this.clusterSource) && this.map.removeSource(this.clusterSource), this.map.getSource(this.interpolateSource) && this.map.removeSource(this.interpolateSource), this.map.getLayer(this.circleLayer) && this.map.removeLayer(this.circleLayer), this.map.getSource(this.circleSource) && this.map.removeSource(this.circleSource));
4442
4442
  },
4443
4443
  handleDateChange() {
4444
- var a, e, t, r, i, o, s, n, c, d, p, h, g, u, y, f, m, v, b, _, P, w, A, M, $, W, O, J, de, pe, me, ue, ye, fe, ge, ie;
4444
+ var a, e, t, r, i, o, s, n, c, d, p, h, g, u, y, f, m, v, b, _, P, w, A, M, $, B, O, J, de, pe, me, ue, ye, fe, ge, ie;
4445
4445
  if ((a = this.interpolateMarkers) == null || a.forEach((X) => X == null ? void 0 : X.remove()), this.circleSourceData.features = [], (e = this.interpolateData) != null && e.length && this.tropicals.active) {
4446
4446
  const X = Z(this.date).utc().set({ minute: 0, second: 0, millisecond: 0 }), q = this.interpolateData.filter((I) => I.properties.date === X.format() && !I.properties.disabled), be = this.handleComputePolygons(q), Q = L.featureCollection([...q]);
4447
4447
  be.forEach((I) => {
@@ -4463,7 +4463,7 @@ const Ya = {
4463
4463
  for (const I of q)
4464
4464
  if (!I.properties.disabled) {
4465
4465
  let F = "#f44336";
4466
- ((n = (s = I.properties) == null ? void 0 : s.wind) == null ? void 0 : n.spd) < 17.2 || !((d = (c = I.properties) == null ? void 0 : c.wind) != null && d.spd) ? F = "#03f869" : ((h = (p = I.properties) == null ? void 0 : p.wind) == null ? void 0 : h.spd) >= 17.2 && ((u = (g = I.properties) == null ? void 0 : g.wind) == null ? void 0 : u.spd) < 24.5 ? F = "#f2f202" : ((f = (y = I.properties) == null ? void 0 : y.wind) == null ? void 0 : f.spd) >= 24.5 && ((v = (m = I.properties) == null ? void 0 : m.wind) == null ? void 0 : v.spd) < 32.7 ? F = "#ff9100" : ((_ = (b = I.properties) == null ? void 0 : b.wind) == null ? void 0 : _.spd) >= 32.7 && ((w = (P = I.properties) == null ? void 0 : P.wind) == null ? void 0 : w.spd) < 41.5 ? F = "#f44336" : ((M = (A = I.properties) == null ? void 0 : A.wind) == null ? void 0 : M.spd) >= 41.5 && ((W = ($ = I.properties) == null ? void 0 : $.wind) == null ? void 0 : W.spd) < 51 ? F = "#f903d0" : ((J = (O = I.properties) == null ? void 0 : O.wind) == null ? void 0 : J.spd) >= 51 ? F = "#8702f9" : F = "#f44336";
4466
+ ((n = (s = I.properties) == null ? void 0 : s.wind) == null ? void 0 : n.spd) < 17.2 || !((d = (c = I.properties) == null ? void 0 : c.wind) != null && d.spd) ? F = "#03f869" : ((h = (p = I.properties) == null ? void 0 : p.wind) == null ? void 0 : h.spd) >= 17.2 && ((u = (g = I.properties) == null ? void 0 : g.wind) == null ? void 0 : u.spd) < 24.5 ? F = "#f2f202" : ((f = (y = I.properties) == null ? void 0 : y.wind) == null ? void 0 : f.spd) >= 24.5 && ((v = (m = I.properties) == null ? void 0 : m.wind) == null ? void 0 : v.spd) < 32.7 ? F = "#ff9100" : ((_ = (b = I.properties) == null ? void 0 : b.wind) == null ? void 0 : _.spd) >= 32.7 && ((w = (P = I.properties) == null ? void 0 : P.wind) == null ? void 0 : w.spd) < 41.5 ? F = "#f44336" : ((M = (A = I.properties) == null ? void 0 : A.wind) == null ? void 0 : M.spd) >= 41.5 && ((B = ($ = I.properties) == null ? void 0 : $.wind) == null ? void 0 : B.spd) < 51 ? F = "#f903d0" : ((J = (O = I.properties) == null ? void 0 : O.wind) == null ? void 0 : J.spd) >= 51 ? F = "#8702f9" : F = "#f44336";
4467
4467
  const ve = `<svg t="1719918955501"
4468
4468
  class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" p-id="18382"
4469
4469
  xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
@@ -4653,18 +4653,18 @@ function fi(a, e, t, r, i, o) {
4653
4653
  di,
4654
4654
  l("div", pi, [
4655
4655
  (x(!0), C(Ae, null, $e((P = i.activeTropicals) == null ? void 0 : P.forecasts, (w, A) => {
4656
- var M, $, W, O;
4656
+ var M, $, B, O;
4657
4657
  return x(), C("div", {
4658
4658
  key: A,
4659
- class: N([
4659
+ class: W([
4660
4660
  "model",
4661
4661
  w.disabled ? "" : "active",
4662
- A > 0 && A < (($ = (M = i.activeTropicals) == null ? void 0 : M.forecasts) == null ? void 0 : $.length) - 1 && ((O = (W = i.activeTropicals) == null ? void 0 : W.forecasts) == null ? void 0 : O.length) > 2 ? "center-child" : ""
4662
+ A > 0 && A < (($ = (M = i.activeTropicals) == null ? void 0 : M.forecasts) == null ? void 0 : $.length) - 1 && ((O = (B = i.activeTropicals) == null ? void 0 : B.forecasts) == null ? void 0 : O.length) > 2 ? "center-child" : ""
4663
4663
  ]),
4664
4664
  onClick: (J) => o.handleForecastToggle(w)
4665
4665
  }, [
4666
4666
  l("span", {
4667
- class: N(w.model)
4667
+ class: W(w.model)
4668
4668
  }, S(w.model), 3)
4669
4669
  ], 10, mi);
4670
4670
  }), 128))
@@ -4681,7 +4681,7 @@ function fi(a, e, t, r, i, o) {
4681
4681
  ])
4682
4682
  ])
4683
4683
  ], 512)), [
4684
- [Ne, i.showTropicals && !a.$attrs.hideTropicalsLegend]
4684
+ [We, i.showTropicals && !a.$attrs.hideTropicalsLegend]
4685
4685
  ]);
4686
4686
  }
4687
4687
  const Ke = /* @__PURE__ */ T(Ya, [["render", fi], ["__scopeId", "data-v-f0e05b29"]]);
@@ -4773,7 +4773,7 @@ const gi = {
4773
4773
  [1, "rgba(197,5,58,0.8)"]
4774
4774
  ];
4775
4775
  this.rampColor = this.webgl.setup(this.context, a);
4776
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.fragmentSchema);
4776
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.fragmentSchema);
4777
4777
  this.program = e, this.aPositionBuffer = t;
4778
4778
  }
4779
4779
  },
@@ -4887,7 +4887,7 @@ const Ii = {
4887
4887
  [1, "rgba(144,144,144,0)"]
4888
4888
  ];
4889
4889
  this.rampColor = this.webgl.setup(this.context, a);
4890
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.fragmentSchema);
4890
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.fragmentSchema);
4891
4891
  this.program = e, this.aPositionBuffer = t;
4892
4892
  }
4893
4893
  },
@@ -4900,7 +4900,7 @@ const Ii = {
4900
4900
  this.webgl.draw(this.viewport, this.context, this.program, this.texture, this.rampColor.texture, this.aPositionBuffer), this.viewport.toggle(!0);
4901
4901
  }
4902
4902
  }
4903
- }, ke = (a) => (H("data-v-f7b2fb08"), a = a(), G(), a), Ei = { key: 0 }, Ri = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "nm", -1)), Ai = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "0", -1)), Di = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "0.5", -1)), Mi = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "1.5", -1)), $i = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "3", -1)), ji = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "9", -1)), Ni = [
4903
+ }, ke = (a) => (H("data-v-f7b2fb08"), a = a(), G(), a), Ei = { key: 0 }, Ri = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "nm", -1)), Ai = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "0", -1)), Di = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "0.5", -1)), Mi = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "1.5", -1)), $i = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "3", -1)), ji = /* @__PURE__ */ ke(() => /* @__PURE__ */ l("span", null, "9", -1)), Wi = [
4904
4904
  Ri,
4905
4905
  Ai,
4906
4906
  Di,
@@ -4908,16 +4908,16 @@ const Ii = {
4908
4908
  $i,
4909
4909
  ji
4910
4910
  ];
4911
- function Bi(a, e, t, r, i, o) {
4911
+ function Ni(a, e, t, r, i, o) {
4912
4912
  var s;
4913
4913
  return (s = t.factor) != null && s.active ? (x(), C("div", Ei, [
4914
4914
  l("div", {
4915
4915
  class: "legend-bars flex-center",
4916
4916
  style: U([{ position: "absolute" }, { right: a.right + "px", bottom: t.bottom }])
4917
- }, Ni, 4)
4917
+ }, Wi, 4)
4918
4918
  ])) : j("", !0);
4919
4919
  }
4920
- const Wi = /* @__PURE__ */ T(Ii, [["render", Bi], ["__scopeId", "data-v-f7b2fb08"]]);
4920
+ const Bi = /* @__PURE__ */ T(Ii, [["render", Ni], ["__scopeId", "data-v-f7b2fb08"]]);
4921
4921
  const Oi = {
4922
4922
  name: "IdmWaterTemp",
4923
4923
  props: {
@@ -5007,7 +5007,7 @@ const Oi = {
5007
5007
  //
5008
5008
  ];
5009
5009
  this.rampColor = this.webgl.setup(this.context, a);
5010
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.fragmentSchema);
5010
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.fragmentSchema);
5011
5011
  this.program = e, this.aPositionBuffer = t;
5012
5012
  }
5013
5013
  },
@@ -5130,7 +5130,7 @@ const Qi = {
5130
5130
  [1, "rgb(138, 43, 10)"]
5131
5131
  ];
5132
5132
  this.rampColor = this.webgl.setup(this.context, a);
5133
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.fragmentSchema);
5133
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.fragmentSchema);
5134
5134
  this.program = e, this.aPositionBuffer = t;
5135
5135
  }
5136
5136
  },
@@ -5246,7 +5246,7 @@ const dr = {
5246
5246
  // 2m
5247
5247
  ];
5248
5248
  this.rampColor = this.webgl.setup(this.context, a);
5249
- const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, B.vertexSchema, B.fragmentSchema);
5249
+ const { program: e, aPositionBuffer: t } = this.webgl.bind(this.context, N.vertexSchema, N.fragmentSchema);
5250
5250
  this.program = e, this.aPositionBuffer = t;
5251
5251
  }
5252
5252
  },
@@ -5367,15 +5367,15 @@ const Lr = {
5367
5367
  }, ae = (a) => (H("data-v-efcf572f"), a = a(), G(), a), xr = {
5368
5368
  id: "point-meteo",
5369
5369
  class: "point-meteo"
5370
- }, Cr = { class: "meteo-box" }, kr = { class: "header-box" }, Sr = { class: "main" }, zr = { class: "sub" }, Pr = { class: "main-box" }, Tr = { class: "flex-space" }, Ir = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Wind", -1)), Er = { class: "flex-space" }, Rr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Wind.Wave", -1)), Ar = { class: "flex-space" }, Dr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Swell", -1)), Mr = { class: "flex-space" }, $r = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Sig.Wave", -1)), jr = { class: "flex-space" }, Nr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Current", -1)), Br = { class: "flex-space" }, Wr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Precip", -1)), Or = { class: "flex-space" }, Fr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Visibility", -1)), Vr = { class: "flex-space" }, Ur = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Temp", -1)), Zr = { class: "flex-space" }, Hr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Water Temp", -1));
5370
+ }, Cr = { class: "meteo-box" }, kr = { class: "header-box" }, Sr = { class: "main" }, zr = { class: "sub" }, Pr = { class: "main-box" }, Tr = { class: "flex-space" }, Ir = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Wind", -1)), Er = { class: "flex-space" }, Rr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Wind.Wave", -1)), Ar = { class: "flex-space" }, Dr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Swell", -1)), Mr = { class: "flex-space" }, $r = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Sig.Wave", -1)), jr = { class: "flex-space" }, Wr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Current", -1)), Nr = { class: "flex-space" }, Br = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Precip", -1)), Or = { class: "flex-space" }, Fr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Visibility", -1)), Vr = { class: "flex-space" }, Ur = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Temp", -1)), Zr = { class: "flex-space" }, Hr = /* @__PURE__ */ ae(() => /* @__PURE__ */ l("label", null, "Water Temp", -1));
5371
5371
  function Gr(a, e, t, r, i, o) {
5372
- var s, n, c, d, p, h, g, u, y, f, m, v, b, _, P, w, A, M, $, W, O, J, de, pe, me, ue, ye, fe, ge, ie, X, q, be, Q, I, F, ve, K, we, re, oe, se, Pe, Te, Ie, Ee, Re;
5372
+ var s, n, c, d, p, h, g, u, y, f, m, v, b, _, P, w, A, M, $, B, O, J, de, pe, me, ue, ye, fe, ge, ie, X, q, be, Q, I, F, ve, K, we, re, oe, se, Pe, Te, Ie, Ee, Re;
5373
5373
  return je((x(), C("div", xr, [
5374
5374
  l("div", Cr, [
5375
5375
  l("div", kr, [
5376
5376
  l("div", {
5377
5377
  class: "iconfont close",
5378
- onClick: e[0] || (e[0] = (We) => i.showMeteo = !1)
5378
+ onClick: e[0] || (e[0] = (Be) => i.showMeteo = !1)
5379
5379
  }, ""),
5380
5380
  l("div", Sr, S(o.computeLat((s = t.meteo) == null ? void 0 : s.lat)) + "," + S(o.computeLng((n = t.meteo) == null ? void 0 : n.lng)), 1),
5381
5381
  l("div", zr, S(o.computeTime((c = t.meteo) == null ? void 0 : c.utc)), 1)
@@ -5387,7 +5387,7 @@ function Gr(a, e, t, r, i, o) {
5387
5387
  ]),
5388
5388
  l("div", Er, [
5389
5389
  Rr,
5390
- l("span", null, S(((_ = (b = (v = t.meteo) == null ? void 0 : v.wave) == null ? void 0 : b.wd) == null ? void 0 : _.direction) || "-") + "/" + S(o.roundPrecision((A = (w = (P = t.meteo) == null ? void 0 : P.wave) == null ? void 0 : w.wd) == null ? void 0 : A.height, 1)) + "[m]/" + S(o.roundPrecision((W = ($ = (M = t.meteo) == null ? void 0 : M.wave) == null ? void 0 : $.wd) == null ? void 0 : W.period, 1)) + "[s]", 1)
5390
+ l("span", null, S(((_ = (b = (v = t.meteo) == null ? void 0 : v.wave) == null ? void 0 : b.wd) == null ? void 0 : _.direction) || "-") + "/" + S(o.roundPrecision((A = (w = (P = t.meteo) == null ? void 0 : P.wave) == null ? void 0 : w.wd) == null ? void 0 : A.height, 1)) + "[m]/" + S(o.roundPrecision((B = ($ = (M = t.meteo) == null ? void 0 : M.wave) == null ? void 0 : $.wd) == null ? void 0 : B.period, 1)) + "[s]", 1)
5391
5391
  ]),
5392
5392
  l("div", Ar, [
5393
5393
  Dr,
@@ -5398,11 +5398,11 @@ function Gr(a, e, t, r, i, o) {
5398
5398
  l("span", null, S(((q = (X = (ie = t.meteo) == null ? void 0 : ie.wave) == null ? void 0 : X.sig) == null ? void 0 : q.direction) || "-") + "/" + S(o.roundPrecision((I = (Q = (be = t.meteo) == null ? void 0 : be.wave) == null ? void 0 : Q.sig) == null ? void 0 : I.height, 1)) + "[m]/" + S(o.roundPrecision((K = (ve = (F = t.meteo) == null ? void 0 : F.wave) == null ? void 0 : ve.sig) == null ? void 0 : K.period, 1)) + "[s]", 1)
5399
5399
  ]),
5400
5400
  l("div", jr, [
5401
- Nr,
5401
+ Wr,
5402
5402
  l("span", null, S(((re = (we = t.meteo) == null ? void 0 : we.current) == null ? void 0 : re.direction) || "-") + "/" + S(o.roundPrecision((se = (oe = t.meteo) == null ? void 0 : oe.current) == null ? void 0 : se.kts, 2)) + "[kts]", 1)
5403
5403
  ]),
5404
- l("div", Br, [
5405
- Wr,
5404
+ l("div", Nr, [
5405
+ Br,
5406
5406
  l("span", null, S(o.roundPrecision((Te = (Pe = t.meteo) == null ? void 0 : Pe.precip) == null ? void 0 : Te.inter6h, 2)) + "[mm]", 1)
5407
5407
  ]),
5408
5408
  l("div", Or, [
@@ -5421,7 +5421,7 @@ function Gr(a, e, t, r, i, o) {
5421
5421
  j("", !0)
5422
5422
  ])
5423
5423
  ], 512)), [
5424
- [Ne, i.showMeteo]
5424
+ [We, i.showMeteo]
5425
5425
  ]);
5426
5426
  }
5427
5427
  const Jr = /* @__PURE__ */ T(Lr, [["render", Gr], ["__scopeId", "data-v-efcf572f"]]), Xr = {
@@ -5875,7 +5875,7 @@ function no(a, e, t, r, i, o) {
5875
5875
  innerHTML: (s = i.form) == null ? void 0 : s.name
5876
5876
  }, null, 8, so)
5877
5877
  ], 512)), [
5878
- [Ne, i.showZone]
5878
+ [We, i.showZone]
5879
5879
  ]);
5880
5880
  }
5881
5881
  const lo = /* @__PURE__ */ T(ro, [["render", no]]);
@@ -5971,10 +5971,10 @@ const co = {
5971
5971
  this.showPort = !1, this.map.getLayer(this.layer) && this.map.removeLayer(this.layer), this.map.getSource(this.source) && this.map.removeSource(this.source);
5972
5972
  }
5973
5973
  }
5974
- }, Be = (a) => (H("data-v-c07e4c45"), a = a(), G(), a), ho = { id: "port-info" }, po = { class: "port-box" }, mo = { class: "flex-start" }, uo = /* @__PURE__ */ Be(() => /* @__PURE__ */ l("label", null, "Name : ", -1)), yo = { class: "flex-start" }, fo = /* @__PURE__ */ Be(() => /* @__PURE__ */ l("label", null, "Position : ", -1)), go = { class: "flex-start" }, bo = /* @__PURE__ */ Be(() => /* @__PURE__ */ l("label", null, "LoCode : ", -1)), vo = {
5974
+ }, Ne = (a) => (H("data-v-c07e4c45"), a = a(), G(), a), ho = { id: "port-info" }, po = { class: "port-box" }, mo = { class: "flex-start" }, uo = /* @__PURE__ */ Ne(() => /* @__PURE__ */ l("label", null, "Name : ", -1)), yo = { class: "flex-start" }, fo = /* @__PURE__ */ Ne(() => /* @__PURE__ */ l("label", null, "Position : ", -1)), go = { class: "flex-start" }, bo = /* @__PURE__ */ Ne(() => /* @__PURE__ */ l("label", null, "LoCode : ", -1)), vo = {
5975
5975
  class: "flex-start",
5976
5976
  style: { "align-items": "flex-start" }
5977
- }, wo = /* @__PURE__ */ Be(() => /* @__PURE__ */ l("label", null, "Region : ", -1));
5977
+ }, wo = /* @__PURE__ */ Ne(() => /* @__PURE__ */ l("label", null, "Region : ", -1));
5978
5978
  function _o(a, e, t, r, i, o) {
5979
5979
  return je((x(), C("div", ho, [
5980
5980
  l("div", {
@@ -6002,7 +6002,7 @@ function _o(a, e, t, r, i, o) {
6002
6002
  ])
6003
6003
  ])
6004
6004
  ], 512)), [
6005
- [Ne, i.showPort]
6005
+ [We, i.showPort]
6006
6006
  ]);
6007
6007
  }
6008
6008
  const Lo = /* @__PURE__ */ T(co, [["render", _o], ["__scopeId", "data-v-c07e4c45"]]), xo = {
@@ -6483,7 +6483,7 @@ function $o(a, e, t, r, i, o) {
6483
6483
  return x(), C("div");
6484
6484
  }
6485
6485
  const jo = /* @__PURE__ */ T(Mo, [["render", $o]]);
6486
- const No = {
6486
+ const Wo = {
6487
6487
  name: "IdmLatLng",
6488
6488
  props: {
6489
6489
  map: {
@@ -6638,7 +6638,7 @@ const No = {
6638
6638
  (a = this.map) != null && a.getLayer(this.layer) && ((e = this.map) == null || e.removeLayer(this.layer)), (t = this.map) != null && t.getLayer(this.labelLayer) && ((r = this.map) == null || r.removeLayer(this.labelLayer)), (i = this.map) != null && i.getSource(this.source) && ((o = this.map) == null || o.removeSource(this.source));
6639
6639
  }
6640
6640
  }
6641
- }, Bo = (a) => (H("data-v-73241fe7"), a = a(), G(), a), Wo = /* @__PURE__ */ Bo(() => /* @__PURE__ */ l("span", null, ", ", -1));
6641
+ }, No = (a) => (H("data-v-73241fe7"), a = a(), G(), a), Bo = /* @__PURE__ */ No(() => /* @__PURE__ */ l("span", null, ", ", -1));
6642
6642
  function Oo(a, e, t, r, i, o) {
6643
6643
  return i.lngLat ? (x(), C("div", {
6644
6644
  key: 0,
@@ -6646,11 +6646,11 @@ function Oo(a, e, t, r, i, o) {
6646
6646
  style: U({ right: i.right + "px", bottom: t.bottom })
6647
6647
  }, [
6648
6648
  l("span", null, S(i.lngLat.lat.pretty), 1),
6649
- Wo,
6649
+ Bo,
6650
6650
  l("span", null, S(i.lngLat.lng.pretty), 1)
6651
6651
  ], 4)) : j("", !0);
6652
6652
  }
6653
- const et = /* @__PURE__ */ T(No, [["render", Oo], ["__scopeId", "data-v-73241fe7"]]), Fo = {
6653
+ const et = /* @__PURE__ */ T(Wo, [["render", Oo], ["__scopeId", "data-v-73241fe7"]]), Fo = {
6654
6654
  name: "IdmMeasure",
6655
6655
  props: {
6656
6656
  map: {
@@ -7015,7 +7015,7 @@ function Qo(a, e, t, r, i, o) {
7015
7015
  }, {
7016
7016
  default: Y(() => [
7017
7017
  l("div", {
7018
- class: N(i.vendor === "hi" ? "menu-icon active" : "menu-icon"),
7018
+ class: W(i.vendor === "hi" ? "menu-icon active" : "menu-icon"),
7019
7019
  onClick: e[0] || (e[0] = (n) => i.vendor = "hi")
7020
7020
  }, Xo, 2)
7021
7021
  ]),
@@ -7029,7 +7029,7 @@ function Qo(a, e, t, r, i, o) {
7029
7029
  }, {
7030
7030
  default: Y(() => [
7031
7031
  l("div", {
7032
- class: N(i.vendor === "i4" ? "menu-icon active" : "menu-icon"),
7032
+ class: W(i.vendor === "i4" ? "menu-icon active" : "menu-icon"),
7033
7033
  onClick: e[1] || (e[1] = (n) => i.vendor = "i4")
7034
7034
  }, qo, 2)
7035
7035
  ]),
@@ -7048,14 +7048,14 @@ const es = {
7048
7048
  IdmWindParticle: ya,
7049
7049
  IdmCurrents: ka,
7050
7050
  IdmCurrentParticle: ja,
7051
- IdmSigWave: Wa,
7051
+ IdmSigWave: Ba,
7052
7052
  IdmSwell: Va,
7053
7053
  IdmPrmsl: Ha,
7054
7054
  // IdmIceEdge,
7055
7055
  IdmIceberg: Xa,
7056
7056
  IdmTropicals: Ke,
7057
7057
  IdmPrecip3h: Ti,
7058
- IdmVisibility: Wi,
7058
+ IdmVisibility: Bi,
7059
7059
  IdmWaterTemp: qi,
7060
7060
  IdmTemp: hr,
7061
7061
  IdmArctic: _r,
@@ -7093,7 +7093,7 @@ const es = {
7093
7093
  type: Number
7094
7094
  }
7095
7095
  },
7096
- emits: ["toggleVersion"],
7096
+ emits: ["toggleVersion", "activeWeatherLayers"],
7097
7097
  data() {
7098
7098
  return {
7099
7099
  weatherLayers: {},
@@ -7148,7 +7148,7 @@ const es = {
7148
7148
  var a, e, t, r, i, o, s, n, c, d, p, h, g, u, y, f, m, v;
7149
7149
  if (!this.map)
7150
7150
  return !1;
7151
- this.activeWeatherLayers.length > 0 ? ((e = (a = this.map) == null ? void 0 : a.getLayer(this.enc)) == null || e.setLayoutProperty("visibility", "none"), (r = (t = this.map) == null ? void 0 : t.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) == null || r.setLayoutProperty("visibility", "visible"), (o = this.map) != null && o.getLayer((i = this.viewport) == null ? void 0 : i.rampColorLayer) && ((s = this.map) != null && s.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) && this.mapProjection === "mercator" && ((c = this.map) == null || c.moveLayer((n = this.viewport) == null ? void 0 : n.rampColorLayer, this.helper.mapboxCustomer.layers.countryBoundary.id)), (p = this.map) != null && p.getLayer((d = this.viewport) == null ? void 0 : d.particleLayer) && ((h = this.map) != null && h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) && this.mapProjection === "mercator" && ((u = this.map) == null || u.moveLayer((g = this.viewport) == null ? void 0 : g.particleLayer, this.helper.mapboxCustomer.layers.countryBoundary.id))) : ((f = (y = this.map) == null ? void 0 : y.getLayer(this.enc)) == null || f.setLayoutProperty("visibility", "visible"), (v = (m = this.map) == null ? void 0 : m.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) == null || v.setLayoutProperty("visibility", "none"));
7151
+ this.activeWeatherLayers.length > 0 ? ((e = (a = this.map) == null ? void 0 : a.getLayer(this.enc)) == null || e.setLayoutProperty("visibility", "none"), (r = (t = this.map) == null ? void 0 : t.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) == null || r.setLayoutProperty("visibility", "visible"), (o = this.map) != null && o.getLayer((i = this.viewport) == null ? void 0 : i.rampColorLayer) && ((s = this.map) != null && s.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) && this.mapProjection === "mercator" && ((c = this.map) == null || c.moveLayer((n = this.viewport) == null ? void 0 : n.rampColorLayer, this.helper.mapboxCustomer.layers.countryBoundary.id)), (p = this.map) != null && p.getLayer((d = this.viewport) == null ? void 0 : d.particleLayer) && ((h = this.map) != null && h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) && this.mapProjection === "mercator" && ((u = this.map) == null || u.moveLayer((g = this.viewport) == null ? void 0 : g.particleLayer, this.helper.mapboxCustomer.layers.countryBoundary.id))) : ((f = (y = this.map) == null ? void 0 : y.getLayer(this.enc)) == null || f.setLayoutProperty("visibility", "visible"), (v = (m = this.map) == null ? void 0 : m.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id)) == null || v.setLayoutProperty("visibility", "none")), this.$emit("activeWeatherLayers", this.activeWeatherLayers);
7152
7152
  },
7153
7153
  immediate: !0
7154
7154
  }
@@ -7231,8 +7231,8 @@ const es = {
7231
7231
  );
7232
7232
  const P = await Promise.all(_);
7233
7233
  this.weatherLayers = {}, P.map((w) => {
7234
- var $, W, O, J;
7235
- const A = (($ = w == null ? void 0 : w.data) == null ? void 0 : $.data) || (w == null ? void 0 : w.data), M = (O = (W = w == null ? void 0 : w.config) == null ? void 0 : W.headers) == null ? void 0 : O.key;
7234
+ var $, B, O, J;
7235
+ const A = (($ = w == null ? void 0 : w.data) == null ? void 0 : $.data) || (w == null ? void 0 : w.data), M = (O = (B = w == null ? void 0 : w.config) == null ? void 0 : B.headers) == null ? void 0 : O.key;
7236
7236
  M && A && (this.weatherLayers[M] = {
7237
7237
  raw: A,
7238
7238
  type: ((J = w == null ? void 0 : w.config) == null ? void 0 : J.responseType) === "blob" ? "image" : "json",
@@ -7244,8 +7244,8 @@ const es = {
7244
7244
  key: "tropicals"
7245
7245
  }
7246
7246
  }).then((w) => {
7247
- var $, W, O;
7248
- const A = Qe.convert2Geojson((($ = w == null ? void 0 : w.data) == null ? void 0 : $.data) || (w == null ? void 0 : w.data)), M = (O = (W = w == null ? void 0 : w.config) == null ? void 0 : W.headers) == null ? void 0 : O.key;
7247
+ var $, B, O;
7248
+ const A = Qe.convert2Geojson((($ = w == null ? void 0 : w.data) == null ? void 0 : $.data) || (w == null ? void 0 : w.data)), M = (O = (B = w == null ? void 0 : w.config) == null ? void 0 : B.headers) == null ? void 0 : O.key;
7249
7249
  this.weatherLayers[M] = {
7250
7250
  data: A,
7251
7251
  active: !0,
@@ -7676,8 +7676,8 @@ const es = {
7676
7676
  className: "map-gl-home"
7677
7677
  };
7678
7678
  function as(a, e, t, r, i, o) {
7679
- var ie, X, q, be, Q, I, F, ve, K, we, re, oe, se, Pe, Te, Ie, Ee, Re, We, Ze, He, Ge, Je, Xe, Ye, qe;
7680
- const s = z("IdmGlLayer"), n = z("IdmENC"), c = z("IdmSigWave"), d = z("IdmSwell"), p = z("IdmPrmsl"), h = z("IdmIceberg"), g = z("IdmTropicals"), u = z("IdmCurrents"), y = z("IdmCurrentParticle"), f = z("IdmWindBarb"), m = z("IdmWindParticle"), v = z("IdmPrecip3h"), b = z("IdmVisibility"), _ = z("IdmWaterTemp"), P = z("IdmTemp"), w = z("IdmArctic"), A = z("IdmWarZone"), M = z("IdmGmdssArea"), $ = z("IdmEcaZone"), W = z("IdmAlertZone"), O = z("IdmPort"), J = z("IdmLoadLine"), de = z("IdmTimezone"), pe = z("IdmVRA"), me = z("IdmSpecialArea"), ue = z("IdmTerminator"), ye = z("IdmLatLng"), fe = z("IdmMeasure"), ge = z("IdmPoint");
7679
+ var ie, X, q, be, Q, I, F, ve, K, we, re, oe, se, Pe, Te, Ie, Ee, Re, Be, Ze, He, Ge, Je, Xe, Ye, qe;
7680
+ const s = z("IdmGlLayer"), n = z("IdmENC"), c = z("IdmSigWave"), d = z("IdmSwell"), p = z("IdmPrmsl"), h = z("IdmIceberg"), g = z("IdmTropicals"), u = z("IdmCurrents"), y = z("IdmCurrentParticle"), f = z("IdmWindBarb"), m = z("IdmWindParticle"), v = z("IdmPrecip3h"), b = z("IdmVisibility"), _ = z("IdmWaterTemp"), P = z("IdmTemp"), w = z("IdmArctic"), A = z("IdmWarZone"), M = z("IdmGmdssArea"), $ = z("IdmEcaZone"), B = z("IdmAlertZone"), O = z("IdmPort"), J = z("IdmLoadLine"), de = z("IdmTimezone"), pe = z("IdmVRA"), me = z("IdmSpecialArea"), ue = z("IdmTerminator"), ye = z("IdmLatLng"), fe = z("IdmMeasure"), ge = z("IdmPoint");
7681
7681
  return t.map ? (x(), C("div", ts, [
7682
7682
  k(s, E({
7683
7683
  ref: "layer",
@@ -7809,10 +7809,10 @@ function as(a, e, t, r, i, o) {
7809
7809
  }, a.$attrs), null, 16, ["map", "area", "before-layer"]),
7810
7810
  k($, E({
7811
7811
  map: t.map,
7812
- zone: (We = i.otherLayers) == null ? void 0 : We["eca-zones"],
7812
+ zone: (Be = i.otherLayers) == null ? void 0 : Be["eca-zones"],
7813
7813
  "before-layer": t.beforeLayer
7814
7814
  }, a.$attrs), null, 16, ["map", "zone", "before-layer"]),
7815
- k(W, E({
7815
+ k(B, E({
7816
7816
  map: t.map,
7817
7817
  zone: (Ze = i.otherLayers) == null ? void 0 : Ze["alert-zones"],
7818
7818
  "before-layer": t.beforeLayer
@@ -7876,5 +7876,5 @@ export {
7876
7876
  Ke as TropicalGL,
7877
7877
  Ve as Viewport,
7878
7878
  Le as WebGL,
7879
- B as WebGLSchema
7879
+ N as WebGLSchema
7880
7880
  };
@@ -201,4 +201,4 @@
201
201
  <path
202
202
  d="M420.66666667 959.17a16.08 16.08 0 0 1-15.91-13.49A15.89 15.89 0 0 1 415.50666667 928c1.49-0.55 38.88-14.76 72.79-65.52A354.55 354.55 0 0 1 162.66666667 509.17a450.14 450.14 0 0 1 450.5-450.5 16.07 16.07 0 0 1 15.91 13.48 15.88 15.88 0 0 1-10.75 17.66c-1.58 0.58-39.13 14.9-73.07 65.95A354.22 354.22 0 0 1 871.66666667 509.17a16 16 0 0 1-0.52 4.05A450.14 450.14 0 0 1 420.66666667 959.17zM554.80666667 94.72C351.57666667 123.2 194.66666667 298.21 194.66666667 509.17c0 177.08 144.06 321.74 321.13 322.48a16 16 0 0 1 14.07 23.49c-16.11 30.42-34.27 52.37-50.85 68C682.25666667 894.63 839.16666667 719.63 839.16666667 508.67a15.94 15.94 0 0 1 0.47-3.86C837.30666667 329.33 693.82666667 187 517.80666667 186.67A16 16 0 0 1 503.66666667 163.21c16.21-30.69 34.47-52.79 51.14-68.49z"
203
203
  fill="#ffffff" p-id="18386"></path>
204
- </svg>`,H=document.createElement("div");H.className="hurricane-hourly-marker",H.innerHTML=`<div class="${S.geometry.coordinates[1]>=0?"center north":"center south"}">${he}</div>`;const de=new j.Marker(H).setLngLat(S.geometry.coordinates).addTo(this.map);if(this.interpolateMarkers.push(de),(ae=S.properties)!=null&&ae.showCircle){const Y={radius:100,coordinates:S.geometry.coordinates},Q={radius:200,coordinates:S.geometry.coordinates},K={radius:500,coordinates:S.geometry.coordinates};(ie=this.circleSourceData)==null||ie.features.push(v.circle(Y.coordinates,Y.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(oe=this.circleSourceData)==null||oe.features.push(v.circle(Q.coordinates,Q.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(re=this.circleSourceData)==null||re.features.push(v.circle(K.coordinates,K.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}}))}(ne=(se=this.map)==null?void 0:se.getSource(this.circleSource))==null||ne.setData(this.circleSourceData)}}else(le=this.map)!=null&&le.getSource(this.interpolateSource)&&((q=this.map)==null||q.getSource(this.interpolateSource).setData(this.empty))},handleClick(a){var s,n,l,c,d,p,h,g;const e=a.features[0],t=(n=(s=this.tropicals)==null?void 0:s.data)==null?void 0:n.features.filter(y=>{var f;return y.geometry.type==="LineString"&&y.properties.type==="forecast"&&y.properties.name===((f=e==null?void 0:e.properties)==null?void 0:f.name)});t.sort((y,f)=>{var u,m,_,b;return((u=y.properties)==null?void 0:u.model)==="cma"?-1:((m=y.properties)==null?void 0:m.model)==="jma"?((_=f.properties)==null?void 0:_.model)==="cma"?1:-1:y.properties.model==="ecmwf"?["jma","cma"].includes((b=f.properties)==null?void 0:b.model)?1:-1:0});const r=(c=(l=this.tropicals)==null?void 0:l.data)==null?void 0:c.features.filter(y=>{var f;return y.geometry.type==="LineString"&&y.properties.type==="history"&&y.properties.name===((f=e==null?void 0:e.properties)==null?void 0:f.name)});this.activeTropicals={name:(d=e==null?void 0:e.properties)==null?void 0:d.name,forecasts:t.map(y=>y.properties),history:(p=r[0])==null?void 0:p.properties,showCircle:(g=(h=t[0])==null?void 0:h.properties)==null?void 0:g.showCircle},this.showTropicals=!0;const o=document.getElementById("active-tropical");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat([a.lngLat.lng,a.lngLat.lat]):this.activeTropicalsMarker=new j.Marker(o).setLngLat([a.lngLat.lng,a.lngLat.lat]).setOffset([220,0]).addTo(this.map)},handleForecastToggle(a){var r,o,s,n,l,c;a.disabled=!a.disabled;const e=`${a.name}-${a.model}`,t=(o=(r=this.map)==null?void 0:r.getSource(this.source)._data)==null?void 0:o.features;t.forEach(d=>{d.properties.category===e&&(d.properties.disabled=a.disabled)}),this.interpolateData.forEach(d=>{d.properties.category===e&&(d.properties.disabled=a.disabled)}),(n=(s=this.map)==null?void 0:s.getSource(this.source))==null||n.setData(v.featureCollection(t)),(c=(l=this.map)==null?void 0:l.getSource(this.clusterSource))==null||c.setData(v.featureCollection(t)),this.handleDateChange()},handleStrikeProbability(a){this.$emit("tropicalProbability",a)},handleToggleCircles(a){var e,t;a.showCircle=!a.showCircle,(t=(e=this.tropicals.data)==null?void 0:e.features)==null||t.forEach(r=>{r.properties.name===a.name&&(r.properties.showCircle=a.showCircle)}),this.handleRender()},handleDrawCircle(){var a,e;(a=this.map)!=null&&a.getSource(this.circleSource)?(e=this.map)==null||e.getSource(this.circleSource).setData(this.circleSourceData):(this.map.addSource(this.circleSource,{type:"geojson",data:this.circleSourceData}),this.map.addLayer({id:this.circleLayer,type:"line",source:this.circleSource,filter:["all",["==","$type","Polygon"],["==","type","tropicalCircle"]],paint:{"line-color":"#fff","line-width":2,"line-opacity":1,"line-dasharray":[1,1]}}))},handleComputePolygons(a){const e=[];for(const t of a){const r=t.properties.wind,o={ne:r.r7ne>=0?r.r7ne:void 0,se:r.r7se>=0?r.r7se:void 0,sw:r.r7sw>=0?r.r7sw:void 0,nw:r.r7nw>=0?r.r7nw:void 0},s=this.handleComputeArc(t.geometry.coordinates,o,{...t.properties,level:7});e.push(s);const n={ne:r.r10ne>=0?r.r10ne:void 0,se:r.r10se>=0?r.r10se:void 0,sw:r.r10sw>=0?r.r10sw:void 0,nw:r.r10nw>=0?r.r10nw:void 0},l=this.handleComputeArc(t.geometry.coordinates,n,{...t.properties,level:10});e.push(l)}return e},handleComputeArc(a,e,t){var s;const r=[];for(const n in e){const l=e[n]??0;let c;switch(n){case"ne":c=v.lineArc(a,l*1.852,0,90,{steps:l>0?64:1});break;case"se":c=v.lineArc(a,l*1.852,90,180,{steps:l>0?64:1});break;case"sw":c=v.lineArc(a,l*1.852,180,270,{steps:l>0?64:1});break;case"nw":c=v.lineArc(a,l*1.852,270,360,{steps:l>0?64:1});break}r.push(...(s=c==null?void 0:c.geometry)==null?void 0:s.coordinates)}const o=v.lineString(r);return v.lineToPolygon(o,{properties:t})}}},Ee=a=>(i.pushScopeId("data-v-f0e05b29"),a=a(),i.popScopeId(),a),ra={id:"active-tropical",class:"active-tropical"},sa={class:"header-box"},na={class:"main"},la={key:0},ca={class:"sub"},ha={id:"meteoBox",class:"main-box"},da={class:"content"},pa={class:"row"},ma={class:"col col-left",style:{"justify-content":"flex-start"}},ya=Ee(()=>i.createElementVNode("label",null,"Wind speed : ",-1)),fa={class:"col col-right",style:{"justify-content":"flex-start"}},ua=Ee(()=>i.createElementVNode("label",null,"Pressure : ",-1)),ga={class:"row"},ba={class:"col col-24",style:{"justify-content":"flex-start"}},_a=Ee(()=>i.createElementVNode("label",{style:{width:"max-content"}},"Forecast Models : ",-1)),wa={class:"forecast-models"},La=["onClick"],va=i.createStaticVNode('<div class="row" style="padding:0;height:1px;margin:10px 0;background:var(--idm-black-1);" data-v-f0e05b29></div><div class="row" style="padding:2px 10px;" data-v-f0e05b29><div class="legend" data-v-f0e05b29><div class="icon td" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>TD</div></div><div class="legend" data-v-f0e05b29><div class="icon ts" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>TS</div></div><div class="legend" data-v-f0e05b29><div class="icon sts" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>STS</div></div><div class="legend" data-v-f0e05b29><div class="icon ty" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>TY</div></div><div class="legend" data-v-f0e05b29><div class="icon sty" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>STY</div></div><div class="legend" data-v-f0e05b29><div class="icon supper-ty" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>Super TY</div></div></div><div class="row" style="padding:2px 10px;" data-v-f0e05b29><div class="legend" data-v-f0e05b29><div class="icon history" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>History</div></div><div class="legend" data-v-f0e05b29><div class="icon r7" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>35kts Radii</div></div><div class="legend" data-v-f0e05b29><div class="icon r10" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>50kts Radii</div></div></div>',3),xa={class:"more"};function Ca(a,e,t,r,o,s){var n,l,c,d,p,h,g,y,f,u,m,_,b,L,x;return i.withDirectives((i.openBlock(),i.createElementBlock("div",ra,[i.createElementVNode("div",sa,[i.createElementVNode("div",{class:"iconfont close-btn",onClick:e[0]||(e[0]=w=>o.showTropicals=!1)},""),i.createElementVNode("div",na,[(l=(n=o.activeTropicals)==null?void 0:n.history)!=null&&l.level?(i.openBlock(),i.createElementBlock("span",la,i.toDisplayString((d=(c=o.activeTropicals)==null?void 0:c.history)==null?void 0:d.level)+" , ",1)):i.createCommentVNode("",!0),i.createTextVNode(i.toDisplayString((p=o.activeTropicals)==null?void 0:p.name),1)]),i.createElementVNode("div",ca," Last update: "+i.toDisplayString(s.computeTime(((g=(h=o.activeTropicals)==null?void 0:h.history)==null?void 0:g.updated)||((u=(f=(y=o.activeTropicals)==null?void 0:y.forecasts)==null?void 0:f.filter(w=>!w.disabled)[0])==null?void 0:u.date))),1)]),i.createElementVNode("div",ha,[i.createElementVNode("div",da,[i.createElementVNode("div",pa,[i.createElementVNode("div",ma,[ya,i.createElementVNode("span",null,i.toDisplayString(((_=(m=o.activeTropicals)==null?void 0:m.history)==null?void 0:_.kts)||"-")+"[kts]",1)]),i.createElementVNode("div",fa,[ua,i.createElementVNode("span",null,i.toDisplayString(((L=(b=o.activeTropicals)==null?void 0:b.history)==null?void 0:L.pressure)||"-")+"[hPa]",1)])]),i.createElementVNode("div",ga,[i.createElementVNode("div",ba,[_a,i.createElementVNode("div",wa,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList((x=o.activeTropicals)==null?void 0:x.forecasts,(w,P)=>{var N,I,R,D;return i.openBlock(),i.createElementBlock("div",{key:P,class:i.normalizeClass(["model",w.disabled?"":"active",P>0&&P<((I=(N=o.activeTropicals)==null?void 0:N.forecasts)==null?void 0:I.length)-1&&((D=(R=o.activeTropicals)==null?void 0:R.forecasts)==null?void 0:D.length)>2?"center-child":""]),onClick:B=>s.handleForecastToggle(w)},[i.createElementVNode("span",{class:i.normalizeClass(w.model)},i.toDisplayString(w.model),3)],10,La)}),128))])])]),va]),i.createElementVNode("div",xa,[i.createElementVNode("div",{class:"button",onClick:e[1]||(e[1]=w=>s.handleStrikeProbability(o.activeTropicals))},"Strike Probability >>")])])],512)),[[i.vShow,o.showTropicals&&!a.$attrs.hideTropicalsLegend]])}const ze=k(oa,[["render",Ca],["__scopeId","data-v-f0e05b29"]]),pr="",ka={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[precip3h] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},J=a=>(i.pushScopeId("data-v-9708a7a3"),a=a(),i.popScopeId(),a),Sa={key:0},Ea=[J(()=>i.createElementVNode("span",null,"mm",-1)),J(()=>i.createElementVNode("span",null,"1.5",-1)),J(()=>i.createElementVNode("span",null,"2",-1)),J(()=>i.createElementVNode("span",null,"3",-1)),J(()=>i.createElementVNode("span",null,"7",-1)),J(()=>i.createElementVNode("span",null,"10",-1)),J(()=>i.createElementVNode("span",null,"20",-1)),J(()=>i.createElementVNode("span",null,"30",-1))];function za(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Sa,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Ea,4)])):i.createCommentVNode("",!0)}const Pa=k(ka,[["render",za],["__scopeId","data-v-9708a7a3"]]),Lr="",Na={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[visibility] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ye=a=>(i.pushScopeId("data-v-f7b2fb08"),a=a(),i.popScopeId(),a),Ta={key:0},Ia=[ye(()=>i.createElementVNode("span",null,"nm",-1)),ye(()=>i.createElementVNode("span",null,"0",-1)),ye(()=>i.createElementVNode("span",null,"0.5",-1)),ye(()=>i.createElementVNode("span",null,"1.5",-1)),ye(()=>i.createElementVNode("span",null,"3",-1)),ye(()=>i.createElementVNode("span",null,"9",-1))];function Va(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Ta,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:a.right+"px",bottom:t.bottom}])},Ia,4)])):i.createCommentVNode("",!0)}const Ra=k(Na,[["render",Va],["__scopeId","data-v-f7b2fb08"]]),zr="",Da={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[water-temp] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},fe=a=>(i.pushScopeId("data-v-7521f582"),a=a(),i.popScopeId(),a),$a={key:0},Aa=[fe(()=>i.createElementVNode("span",null,"°C",-1)),fe(()=>i.createElementVNode("span",null,"0",-1)),fe(()=>i.createElementVNode("span",null,"10",-1)),fe(()=>i.createElementVNode("span",null,"20",-1)),fe(()=>i.createElementVNode("span",null,"30",-1)),fe(()=>i.createElementVNode("span",null,"40",-1))];function Ba(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",$a,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Aa,4)])):i.createCommentVNode("",!0)}const Ma=k(Da,[["render",Ba],["__scopeId","data-v-7521f582"]]),Dr="",ja={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[water-temp] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},X=a=>(i.pushScopeId("data-v-25daaa82"),a=a(),i.popScopeId(),a),Oa={key:0},Wa=[X(()=>i.createElementVNode("span",null,"°C",-1)),X(()=>i.createElementVNode("span",null,"-20",-1)),X(()=>i.createElementVNode("span",null,"-10",-1)),X(()=>i.createElementVNode("span",null,"0",-1)),X(()=>i.createElementVNode("span",null,"10",-1)),X(()=>i.createElementVNode("span",null,"20",-1)),X(()=>i.createElementVNode("span",null,"30",-1)),X(()=>i.createElementVNode("span",null,"40",-1))];function Fa(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Oa,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Wa,4)])):i.createCommentVNode("",!0)}const Ha=k(ja,[["render",Fa],["__scopeId","data-v-25daaa82"]]),Hr="",Ua={name:"IdmArctic",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[water-temp] add elapsed: ",t,", total: ",e+=t)}},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 a=[[0,"rgba(76, 165, 228, 0)"],[50/255,"rgba(76, 165, 228, 0)"],[51/255,"rgb(76, 165, 228)"],[102/255,"rgb(129, 204, 197)"],[153/255,"rgb(150, 209, 216)"],[204/255,"rgb(180, 209, 216)"],[1,"rgb(180, 209, 216)"]];this.rampColor=this.webgl.setup(this.context,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ue=a=>(i.pushScopeId("data-v-5bb73794"),a=a(),i.popScopeId(),a),Za={key:0},Ga=[ue(()=>i.createElementVNode("span",null,"m",-1)),ue(()=>i.createElementVNode("span",null,"0",-1)),ue(()=>i.createElementVNode("span",null,"0.5",-1)),ue(()=>i.createElementVNode("span",null,"1",-1)),ue(()=>i.createElementVNode("span",null,"1.5",-1)),ue(()=>i.createElementVNode("span",null,"2",-1))];function Ja(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Za,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Ga,4)])):i.createCommentVNode("",!0)}const Xa=k(Ua,[["render",Ja],["__scopeId","data-v-5bb73794"]]),Yr="",qa={name:"IdmPoint",emits:["point","more"],props:{map:{type:Object},show:{type:Boolean},timeZone:{type:Number,default:0},meteo:{type:Object}},data(){return{showMeteo:!1,meteoMarker:void 0,helper:ge}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.show&&this.handleBind()}},meteo:{handler(){this.meteo?(this.showMeteo=!0,this.handleRender()):this.showMeteo=!1}}},computed:{computeTime(){return function(a){if(a){const e=A(a).utc().utcOffset(this.timeZone),t=this.timeZone<0?this.timeZone:"+"+this.timeZone;return`${e.format("MMM-DD,HHmm")} ( UTC ${t} )`}return"-"}},computeLat(){return function(a,e=4){return C.LngLatHelper.lat2pretty(a,e).pretty}},computeLng(){return function(a,e=4){return C.LngLatHelper.lng2pretty(a,e).pretty}},roundPrecision(){return function(a,e=4){return isNaN(a)?"-":C.LngLatHelper.roundPrecision(a,e)}}},methods:{handleBind(){var a,e;this.show?(a=this.map)==null||a.on("click",this.handleClick):((e=this.map)==null||e.off("click",this.handleClick),this.showMeteo=!1)},handleClick(a){a.originalEvent.stopPropagation();const e=a.originalEvent.target.className;e.indexOf("close")>-1?this.showMeteo=!1:e==="more"?this.$emit("more",this.meteo):this.$emit("point",a.lngLat)},handleRender(){var a;if(this.meteo){const e=document.getElementById("point-meteo");this.meteoMarker?(a=this.meteoMarker)==null||a.setLngLat([this.meteo.lng,this.meteo.lat]):this.meteoMarker=new j.Marker(e).setLngLat([this.meteo.lng,this.meteo.lat]).addTo(this.map)}}}},O=a=>(i.pushScopeId("data-v-efcf572f"),a=a(),i.popScopeId(),a),Ya={id:"point-meteo",class:"point-meteo"},Qa={class:"meteo-box"},Ka={class:"header-box"},ei={class:"main"},ti={class:"sub"},ai={class:"main-box"},ii={class:"flex-space"},oi=O(()=>i.createElementVNode("label",null,"Wind",-1)),ri={class:"flex-space"},si=O(()=>i.createElementVNode("label",null,"Wind.Wave",-1)),ni={class:"flex-space"},li=O(()=>i.createElementVNode("label",null,"Swell",-1)),ci={class:"flex-space"},hi=O(()=>i.createElementVNode("label",null,"Sig.Wave",-1)),di={class:"flex-space"},pi=O(()=>i.createElementVNode("label",null,"Current",-1)),mi={class:"flex-space"},yi=O(()=>i.createElementVNode("label",null,"Precip",-1)),fi={class:"flex-space"},ui=O(()=>i.createElementVNode("label",null,"Visibility",-1)),gi={class:"flex-space"},bi=O(()=>i.createElementVNode("label",null,"Temp",-1)),_i={class:"flex-space"},wi=O(()=>i.createElementVNode("label",null,"Water Temp",-1));function Li(a,e,t,r,o,s){var n,l,c,d,p,h,g,y,f,u,m,_,b,L,x,w,P,N,I,R,D,B,ae,ie,oe,re,se,ne,le,q,M,W,ce,F,S,$,he,H,de,Y,Q,K,_e,we,Le,ve,xe;return i.withDirectives((i.openBlock(),i.createElementBlock("div",Ya,[i.createElementVNode("div",Qa,[i.createElementVNode("div",Ka,[i.createElementVNode("div",{class:"iconfont close",onClick:e[0]||(e[0]=Ne=>o.showMeteo=!1)},""),i.createElementVNode("div",ei,i.toDisplayString(s.computeLat((n=t.meteo)==null?void 0:n.lat))+","+i.toDisplayString(s.computeLng((l=t.meteo)==null?void 0:l.lng)),1),i.createElementVNode("div",ti,i.toDisplayString(s.computeTime((c=t.meteo)==null?void 0:c.utc)),1)]),i.createElementVNode("div",ai,[i.createElementVNode("div",ii,[oi,i.createElementVNode("span",null,i.toDisplayString(((p=(d=t.meteo)==null?void 0:d.wind)==null?void 0:p.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((g=(h=t.meteo)==null?void 0:h.wind)==null?void 0:g.kts,1))+"[kts]/"+i.toDisplayString((f=(y=t.meteo)==null?void 0:y.wind)==null?void 0:f.scale)+"[BF]/"+i.toDisplayString(s.roundPrecision((m=(u=t.meteo)==null?void 0:u.gusts)==null?void 0:m.kts,1))+"[kts]",1)]),i.createElementVNode("div",ri,[si,i.createElementVNode("span",null,i.toDisplayString(((L=(b=(_=t.meteo)==null?void 0:_.wave)==null?void 0:b.wd)==null?void 0:L.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((P=(w=(x=t.meteo)==null?void 0:x.wave)==null?void 0:w.wd)==null?void 0:P.height,1))+"[m]/"+i.toDisplayString(s.roundPrecision((R=(I=(N=t.meteo)==null?void 0:N.wave)==null?void 0:I.wd)==null?void 0:R.period,1))+"[s]",1)]),i.createElementVNode("div",ni,[li,i.createElementVNode("span",null,i.toDisplayString(((ae=(B=(D=t.meteo)==null?void 0:D.wave)==null?void 0:B.swell)==null?void 0:ae.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((re=(oe=(ie=t.meteo)==null?void 0:ie.wave)==null?void 0:oe.swell)==null?void 0:re.height,1))+"[m]/"+i.toDisplayString(s.roundPrecision((le=(ne=(se=t.meteo)==null?void 0:se.wave)==null?void 0:ne.swell)==null?void 0:le.period,1))+"[s]",1)]),i.createElementVNode("div",ci,[hi,i.createElementVNode("span",null,i.toDisplayString(((W=(M=(q=t.meteo)==null?void 0:q.wave)==null?void 0:M.sig)==null?void 0:W.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((S=(F=(ce=t.meteo)==null?void 0:ce.wave)==null?void 0:F.sig)==null?void 0:S.height,1))+"[m]/"+i.toDisplayString(s.roundPrecision((H=(he=($=t.meteo)==null?void 0:$.wave)==null?void 0:he.sig)==null?void 0:H.period,1))+"[s]",1)]),i.createElementVNode("div",di,[pi,i.createElementVNode("span",null,i.toDisplayString(((Y=(de=t.meteo)==null?void 0:de.current)==null?void 0:Y.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((K=(Q=t.meteo)==null?void 0:Q.current)==null?void 0:K.kts,2))+"[kts]",1)]),i.createElementVNode("div",mi,[yi,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision((we=(_e=t.meteo)==null?void 0:_e.precip)==null?void 0:we.inter6h,2))+"[mm]",1)]),i.createElementVNode("div",fi,[ui,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision(((Le=t.meteo)==null?void 0:Le.visibility)/1852,0))+"[nm]",1)]),i.createElementVNode("div",gi,[bi,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision((ve=t.meteo)==null?void 0:ve.temp,0))+"[°C]",1)]),i.createElementVNode("div",_i,[wi,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision((xe=t.meteo)==null?void 0:xe.waterTemp,2))+"[°C]",1)])]),i.createCommentVNode("",!0)])],512)),[[i.vShow,o.showMeteo]])}const vi=k(qa,[["render",Li],["__scopeId","data-v-efcf572f"]]),xi={name:"IdmWarZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"war-zone-source",zoneLayer:"war-zone-layer",zoneLabelLayer:"war-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-color":"#f44336","fill-opacity":.4}},this.beforeLayer),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#f44336"}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-1]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ci(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const ki=k(xi,[["render",Ci]]),Si={name:"IdmGmdssArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"gmdss-area-source",areaLayer:"gmdss-area-layer",areaLabelLayer:"gmdss-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","val"],"AreaI","#EB8996","AreaII","#6F448B","AreaIII","#3E8BD3","AreaIV","#5EBCC4","AreaV","#00AAE7","AreaVI","#9CCE6D","AreaVII","#F4AE00","AreaVIII","#EF9A85","AreaIX","#00AAA7","AreaX","#7AC49F","AreaXI","#DFDFDF","AreaXII","#FFF974","AreaXIII","#EF9A85","AreaXIV","#86A2D1","AreaXV","#EC8972","AreaXVI","#EAC2DA","AreaXVII","#B9C8E7","AreaXVIII","#BBA1C8","AreaXIX","#FAE0BD","AreaXX","#DBECC8","AreaXXI","#D496AF","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-opacity":.8,"text-color":"#000"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ei(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const zi=k(Si,[["render",Ei]]),Pi={name:"IdmEcaZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"eca-zone-source",zoneLayer:"eca-zone-layer",zoneLabelLayer:"eca-zone-label-layer"}},watch:{zone:{handler(){this.zone?this.handleRender():this.handleClear()}}},methods:{handleRender(){var a;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(a=this.map)==null||a.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#05f324"}}),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-color":"#04c021","line-width":1,"line-opacity":1}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-max-width":16,"text-justify":"left","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ni(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const Ti=k(Pi,[["render",Ni]]),Qr="",Ii={name:"IdmAlertZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"alert-zone-source",polygonLayer:"alert-zone-polygon-layer",polygonLabelLayer:"alert-zone-polygon-label-layer",lineLayer:"alert-zone-line-layer",lineLabelLayer:"alert-zone-line-label-layer",pointLayer:"alert-zone-point-layer",showZone:!1,form:{}}},watch:{zone:{handler(){var a,e;this.zone?(this.handleRender(),(a=this.map)==null||a.on("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick))}}},methods:{handleClick(a){var r;const e=a.features[0],t=(r=this.zone)==null?void 0:r.features.filter(o=>{var s;return o.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(t){this.showZone=!0,this.form={...t.properties};const o=document.getElementById("idm-gl3-zone-info");this.marker?this.marker.setLngLat([a.lngLat.lng,a.lngLat.lat]):this.marker=new j.Marker(o).setLngLat([a.lngLat.lng,a.lngLat.lat]).setOffset([0,0]).addTo(this.map)}},handleRender(){var a;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(a=this.map)==null||a.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.polygonLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"#d57d02","fill-opacity":.4,"fill-color":"#d57d02"}}),this.map.addLayer({id:this.polygonLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-width":1,"line-color":"#d57d02"}}),this.map.addLayer({id:this.lineLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],paint:{"line-color":"#d57d02","line-width":2}}),this.map.addLayer({id:this.polygonLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],layout:{"symbol-placement":"line-center","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.pointLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08},paint:{"icon-opacity":.8}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.polygonLayer)&&this.map.removeLayer(this.polygonLayer),this.map.getLayer(this.polygonLayer+"-border")&&this.map.removeLayer(this.polygonLayer+"-border"),this.map.getLayer(this.polygonLabelLayer)&&this.map.removeLayer(this.polygonLabelLayer),this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getLayer(this.pointLayer)&&this.map.removeLayer(this.pointLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},Vi={id:"idm-gl3-zone-info"},Ri=["innerHTML"];function Di(a,e,t,r,o,s){var n;return i.withDirectives((i.openBlock(),i.createElementBlock("div",Vi,[i.createElementVNode("div",{class:"iconfont close",onClick:e[0]||(e[0]=l=>o.showZone=!1)},""),i.createElementVNode("div",{class:"rich-context",innerHTML:(n=o.form)==null?void 0:n.name},null,8,Ri)],512)),[[i.vShow,o.showZone]])}const $i=k(Ii,[["render",Di]]),Kr="",Ai={name:"IdmPort",props:{map:{type:Object},port:{type:Object},beforeLayer:{type:String}},emits:["port"],data(){return{source:"port-source",layer:"port-layer",showPort:!1,form:{},marker:void 0}},computed:{computeLat(){return function(a){return C.LngLatHelper.lat2pretty(a,4).pretty}},computeLng(){return function(a){return C.LngLatHelper.lng2pretty(a,4).pretty}}},watch:{port:{handler(){var a,e;this.port?(this.handleRender(),(a=this.map)==null||a.on("click",[this.layer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.layer],this.handleClick))}}},methods:{handleClick(a){var r;const e=a.features[0],t=(r=this.port)==null?void 0:r.features.filter(o=>{var s;return o.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(t){this.showPort=!0,this.form={...t.properties},this.form.lng=t.geometry.coordinates[0],this.form.lat=t.geometry.coordinates[1];const o=document.getElementById("port-info");this.marker?this.marker.setLngLat([a.lngLat.lng,a.lngLat.lat]):this.marker=new j.Marker(o).setLngLat([a.lngLat.lng,a.lngLat.lat]).setOffset([0,-85]).addTo(this.map)}},handleEmit(){this.$emit("port",this.form)},handleRender(){var a;this.map?this.port&&(this.map.getSource(this.source)?(a=this.map)==null||a.getSource(this.source).setData(this.port):(this.map.addSource(this.source,{type:"geojson",data:this.port}),this.map.addLayer({id:this.layer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"port","text-anchor":"left","text-field":"{name}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[1,0]},paint:{"text-color":"rgba(0, 0, 0, 0.8)","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.showPort=!1,this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},ke=a=>(i.pushScopeId("data-v-c07e4c45"),a=a(),i.popScopeId(),a),Bi={id:"port-info"},Mi={class:"port-box"},ji={class:"flex-start"},Oi=ke(()=>i.createElementVNode("label",null,"Name : ",-1)),Wi={class:"flex-start"},Fi=ke(()=>i.createElementVNode("label",null,"Position : ",-1)),Hi={class:"flex-start"},Ui=ke(()=>i.createElementVNode("label",null,"LoCode : ",-1)),Zi={class:"flex-start",style:{"align-items":"flex-start"}},Gi=ke(()=>i.createElementVNode("label",null,"Region : ",-1));function Ji(a,e,t,r,o,s){return i.withDirectives((i.openBlock(),i.createElementBlock("div",Bi,[i.createElementVNode("div",{class:"close iconfont",onClick:e[0]||(e[0]=n=>o.showPort=!1)},""),i.createElementVNode("div",Mi,[i.createElementVNode("div",ji,[Oi,i.createElementVNode("span",{onClick:e[1]||(e[1]=(...n)=>s.handleEmit&&s.handleEmit(...n))},i.toDisplayString(o.form.name),1)]),i.createElementVNode("div",Wi,[Fi,i.createElementVNode("span",null,i.toDisplayString(s.computeLat(o.form.lat))+", "+i.toDisplayString(s.computeLng(o.form.lng)),1)]),i.createElementVNode("div",Hi,[Ui,i.createElementVNode("span",null,i.toDisplayString(o.form.loCode||"-"),1)]),i.createElementVNode("div",Zi,[Gi,i.createElementVNode("span",null,i.toDisplayString(o.form.zoneName||"-"),1)])])],512)),[[i.vShow,o.showPort]])}const Xi=k(Ai,[["render",Ji],["__scopeId","data-v-c07e4c45"]]),qi={name:"IdmLoadLine",props:{map:{type:Object},line:{type:Object},beforeLayer:{type:String}},data(){return{source:"load-line-source",lineLayer:"load-line-layer",lineLabelLayer:"load-line-label-layer"}},watch:{line:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.line&&(this.map.addSource(this.source,{type:"geojson",data:this.line}),this.map.addLayer({id:this.lineLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.75,"fill-color":["match",["get","val"],"LLGreen","#A0C0C0","LLRed","#F5A39D","LLBlue","#6B94E4","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{lbl} (Length < {shipLength}, {start} - {end})","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Yi(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const Qi=k(qi,[["render",Yi]]),Ki={name:"IdmTimezone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"time-zone-source",zoneLayer:"time-zone-layer",zoneLabelLayer:"time-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","offSet"],"-11.5","rgba(255,0,0,0.4)","-11","rgba(0,255,0,0.3)","-10.5","rgba(0,255,0,0.3)","-10","rgba(0,0,255,0.3)","-9.5","rgba(0,0,255,0.3)","-9","rgba(255,0,0,0.4)","-8.5","rgba(255,0,0,0.4)","-8","rgba(0,255,0,0.3)","-7.5","rgba(0,255,0,0.3)","-7","rgba(0,0,255,0.3)","-6.5","rgba(0,0,255,0.3)","-6","rgba(255,0,0,0.4)","-5.5","rgba(255,0,0,0.4)","-5","rgba(0,255,0,0.3)","-4.5","rgba(0,255,0,0.3)","-4","rgba(0,0,255,0.3)","-3.5","rgba(0,0,255,0.3)","-3","rgba(255,0,0,0.4)","-2.5","rgba(255,0,0,0.4)","-2","rgba(0,255,0,0.3)","-1.5","rgba(0,255,0,0.3)","-1","rgba(0,0,255,0.3)","-0.5","rgba(0,0,255,0.3)","+0","rgba(255,0,0,0.4)","+0.5","rgba(255,0,0,0.4)","+1","rgba(0,255,0,0.3)","+1.5","rgba(0,255,0,0.3)","+2","rgba(0,0,255,0.3)","+2.5","rgba(0,0,255,0.3)","+3","rgba(255,0,0,0.4)","+3.5","rgba(255,0,0,0.4)","+4","rgba(0,255,0,0.3)","+4.5","rgba(0,255,0,0.3)","+5","rgba(0,0,255,0.3)","+5.5","rgba(0,0,255,0.3)","+6","rgba(255,0,0,0.4)","+6.5","rgba(255,0,0,0.4)","+7","rgba(0,255,0,0.3)","+7.5","rgba(0,255,0,0.3)","+8","rgba(0,0,255,0.3)","+8.5","rgba(0,0,255,0.3)","+9","rgba(255,0,0,0.4)","+9.5","rgba(255,0,0,0.4)","+10","rgba(0,255,0,0.3)","+10.5","rgba(0,255,0,0.3)","+11","rgba(0,0,255,0.3)","+11.5","rgba(0,0,255,0.3)","rgba(255,0,0,0.4)"]}}),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{offSet}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,1]},paint:{"text-opacity":.8,"text-color":"#fff"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function eo(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const to=k(Ki,[["render",eo]]),ao={name:"IdmVoluntaryReportingArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"vra-source",areaLayer:"vra-layer",areaLabelLayer:"vra-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function io(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const oo=k(ao,[["render",io]]),ro={name:"IdmSpecialArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"special-area-source",areaLayer:"special-area-layer",areaLabelLayer:"special-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.area.features.forEach(a=>{a.geometry.type==="Polygon"&&a.geometry.coordinates.forEach(e=>C.LngLatHelper.convertToMonotonicLng2(e))}),this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":["match",["get","val"],"DefaultStyle","rgb(0,0,0)","JWCriskArea","rgb(0,0,0)","rgb(0,0,0)"]}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":.4,"line-color":"rgb(0,0,0)"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function so(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const no=k(ro,[["render",so]]),lo={name:"IdmTerminator",props:{map:{type:Object},area:{type:Object}},data(){return{source:"terminator-source",layer:"terminator-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.layer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":"rgba(0, 0, 0, 0.4)"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function co(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const ho=k(lo,[["render",co]]),es="",po={name:"IdmLatLng",props:{map:{type:Object},show:{type:Boolean},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{lngLat:void 0,source:"idm-lat-lng-source",layer:"idm-lat-lng-layer",labelLayer:"idm-lat-lng-label-layer",right:10}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){var a;this.map&&((a=this.map)==null||a.on("mousemove",this.handleMouseMove))},immediate:!0},toggleVersion:{handler(){var a,e;this.right=(((a=document.getElementsByClassName("legend-bars")[0])==null?void 0:a.clientWidth)||-10)+(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+20},immediate:!0}},methods:{handleBind(){var a,e;this.show?((a=this.map)==null||a.on("zoomend",this.handleZoomEnd),this.handleRender()):(this.handleClear(),(e=this.map)==null||e.off("zoomend",this.handleZoomEnd))},handleMouseMove(a){const e=a.lngLat,t=C.LngLatHelper.lng2pretty(e.lng,2),r=C.LngLatHelper.lat2pretty(e.lat,2);this.lngLat={lng:t,lat:r}},handleComputeLatLngs(){var r;const a=(r=this.map)==null?void 0:r.getZoom();console.log(a);let e=30;a>4?e=10:a>3&&(e=15);const t=[];for(let o=-60;o<90;o+=e)t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[-180,o],[180,o]]}});for(let o=-180;o<180;o+=e)t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[o,-90],[o,90]]}});for(let o=180;o>-180;o-=e)for(let s=-60;s<90;s+=e)t.push({type:"Feature",geometry:{type:"Point",coordinates:[o,s]},properties:{val:`${s>0?s+" N":s===0?s:s*-1+" S"}, ${o>0?o+" E":o*-1+" W"}`}});return t},handleZoomEnd(){var e;const a=this.handleComputeLatLngs();(e=this.map)==null||e.getSource(this.source).setData(v.featureCollection(a))},handleRender(){if(this.map){const a=this.handleComputeLatLngs();this.map.addSource(this.source,{type:"geojson",data:{type:"FeatureCollection",features:a}}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"rgba(0, 0, 0, 0.3)","line-width":1}}),this.map.addLayer({id:this.labelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{val}","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}})}},handleClear(){var a,e,t,r,o,s;(a=this.map)!=null&&a.getLayer(this.layer)&&((e=this.map)==null||e.removeLayer(this.layer)),(t=this.map)!=null&&t.getLayer(this.labelLayer)&&((r=this.map)==null||r.removeLayer(this.labelLayer)),(o=this.map)!=null&&o.getSource(this.source)&&((s=this.map)==null||s.removeSource(this.source))}}},mo=(a=>(i.pushScopeId("data-v-73241fe7"),a=a(),i.popScopeId(),a))(()=>i.createElementVNode("span",null,", ",-1));function yo(a,e,t,r,o,s){return o.lngLat?(i.openBlock(),i.createElementBlock("div",{key:0,class:"lat-lng-tip",style:i.normalizeStyle({right:o.right+"px",bottom:t.bottom})},[i.createElementVNode("span",null,i.toDisplayString(o.lngLat.lat.pretty),1),mo,i.createElementVNode("span",null,i.toDisplayString(o.lngLat.lng.pretty),1)],4)):i.createCommentVNode("",!0)}const Pe=k(po,[["render",yo],["__scopeId","data-v-73241fe7"]]),fo={name:"IdmMeasure",props:{map:{type:Object},show:{type:Boolean}},data(){return{geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL"}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.handleBind()}}},methods:{handleBind(){var a,e,t,r,o,s,n,l,c,d;if(this.show)(a=this.map)==null||a.getCanvas().addEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.on("mousemove",this.handleMove),(t=this.map)==null||t.on("dblclick",this.handleDblClick),(r=this.map)==null||r.on("click",this.handleClick),(o=this.map)==null||o.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair");else{(s=this.map)==null||s.getCanvas().removeEventListener("keydown",this.handleKeydown),(n=this.map)==null||n.off("mousemove",this.handleMove),(l=this.map)==null||l.off("dblclick",this.handleDblClick),(c=this.map)==null||c.off("click",this.handleClick),(d=this.map)==null||d.off("contextmenu",this.handleContextmenu);for(const p of this.geojson)this.handleClear(p,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")}},handleKeydown(a){if(a.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const t=this.geojson.at(-1).features.filter(r=>r.geometry.type==="Point");t.length&&(t.at(-1).properties.mode=this.navigation)}},handleDrag(a){var t,r,o,s,n,l,c,d,p,h;const e=(r=(t=a.target)==null?void 0:t._element)==null?void 0:r.id;if((e==null?void 0:e.split("-").length)===2){const g=this.geojson.filter(m=>m.id===e.split("-")[0])[0];this.pointMarkers[g.id].filter(m=>{var _;return((_=m._element)==null?void 0:_.id)===e})[0].setLngLat([(s=(o=a.target)==null?void 0:o._lngLat)==null?void 0:s.lng,(l=(n=a.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);let f;g.features.forEach((m,_)=>{if(m.geometry.type==="Point"&&m.properties.id==e.split("-")[1]){f=_;return}});const u=g.features.filter(m=>m.geometry.type==="Point");this.handleTmpPointUpdate(g,u[f-1],{lng:(d=(c=a.target)==null?void 0:c._lngLat)==null?void 0:d.lng,lat:(h=(p=a.target)==null?void 0:p._lngLat)==null?void 0:h.lat,properties:u[f].properties},f===u.length-1?void 0:u[f+1])}},handleDragEnd(a){var t,r,o,s,n,l,c,d,p,h;const e=(r=(t=a.target)==null?void 0:t._element)==null?void 0:r.id;if((e==null?void 0:e.split("-").length)===2){const g=this.geojson.filter(u=>u.id===e.split("-")[0])[0];this.pointMarkers[g.id].filter(u=>{var m;return((m=u._element)==null?void 0:m.id)===e})[0].setLngLat([(s=(o=a.target)==null?void 0:o._lngLat)==null?void 0:s.lng,(l=(n=a.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);const f=g.features.filter(u=>u.geometry.type==="Point"&&u.properties.id==e.split("-")[1])[0];f.geometry.coordinates=[(d=(c=a.target)==null?void 0:c._lngLat)==null?void 0:d.lng,(h=(p=a.target)==null?void 0:p._lngLat)==null?void 0:h.lat],g.features=g.features.filter(u=>u.geometry.type==="Point"),this.handlePointUpdate(g)}},handleContextmenu(a){var t,r,o,s;a.preventDefault(),(t=this.contextmenu)==null||t.remove();const e=(s=(o=(r=a.originalEvent)==null?void 0:r.target)==null?void 0:o.parentElement)==null?void 0:s.id;if((e==null?void 0:e.split("-").length)===2){const l=this.geojson.filter(c=>c.id===e.split("-")[0])[0].features.filter(c=>c.geometry.type==="Point");if(l.length>2&&l.filter(d=>d.properties.id===(e==null?void 0:e.split("-")[1]))[0]){const d=document.createElement("div");d.className="point-contextmenu-marker",d.innerHTML=`<span id="del-${e}" class="del-point">Del</span>`,this.contextmenu=new j.Marker(d).setOffset([24,0]).setLngLat([a.lngLat.lng,a.lngLat.lat]).addTo(this.map)}}},handleClick(a){var t,r,o,s,n;(t=this.contextmenu)==null||t.remove();const e=a.originalEvent.target.className;if(e==="marker-close"){const l=(o=(r=a.originalEvent)==null?void 0:r.srcElement)==null?void 0:o.id,c=this.geojson.filter(d=>d.id===l)[0];c&&this.handleClear(c,!0),this.geojson=this.geojson.filter(d=>d.id!==l)}else if(e==="del-point"){const l=(n=(s=a.originalEvent.target.id)==null?void 0:s.replace("del-",""))==null?void 0:n.split("-"),c=this.geojson.filter(d=>d.id===l[0])[0];c.features=c.features.filter(d=>d.geometry.type==="Point"&&d.properties.id!==l[1]),this.handlePointUpdate(c)}else if(e!=="marker-label"){let l=this.geojson.at(-1);l||(l=v.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(l)),l.features=l.features.filter(d=>d.geometry.type==="Point");const c=v.feature({type:"Point",coordinates:[a.lngLat.lng,a.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation});l.features.push(c),this.handlePointUpdate(l)}},handlePointUpdate(a){const e=a.features;if(e.length>1){let t=0;const r=[];for(let o=1;o<e.length;o++){const s=e[o-1],n=e[o],l=s.properties,c={lng:s.geometry.coordinates[0],lat:s.geometry.coordinates[1]},d={lng:n.geometry.coordinates[0],lat:n.geometry.coordinates[1]},p=C.LaneHelper.calculateDistance(c,d,l.mode==="RL",2),h=C.LaneHelper.calculateBearing(c,d,l.mode==="RL",2);t=C.LngLatHelper.roundPrecision(t+p,2);let g;l.mode==="RL"?g=C.LngLatHelper.convertToMonotonicLng([c,d]):g=C.LngLatHelper.convertToMonotonicLng(C.LaneHelper.interpolateCoordinates(c,d,200));const y=v.lineString(g.map(f=>[f.lng,f.lat]));y.properties.dist=p,y.properties.bearing=h,y.properties.total=t,r.push(y)}e.push(...r),a.total=t}return this.handleRender(a),a},handleTmpPointUpdate(a,e,t,r){const o=v.featureCollection([]);let s,n;if(e){const c=e.properties,d={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},p={lng:t.lng,lat:t.lat};s=C.LaneHelper.calculateDistance(d,p,c.mode==="RL",2),n=C.LaneHelper.calculateBearing(d,p,c.mode==="RL",2);let h;c.mode==="RL"?h=C.LngLatHelper.convertToMonotonicLng([d,p]):h=C.LngLatHelper.convertToMonotonicLng(C.LaneHelper.interpolateCoordinates(d,p,200));const g=v.lineString(h.map(y=>[y.lng,y.lat]));g.properties.dist=s,g.properties.bearing=n,o.features.push(g)}if(r){const c=t.properties,d=t,p={lng:r.geometry.coordinates[0],lat:r.geometry.coordinates[1]};s=C.LaneHelper.calculateDistance(d,p,c.mode==="RL",2),n=C.LaneHelper.calculateBearing(d,p,c.mode==="RL",2);let h;c.mode==="RL"?h=C.LngLatHelper.convertToMonotonicLng([d,p]):h=C.LngLatHelper.convertToMonotonicLng(C.LaneHelper.interpolateCoordinates(d,p,200));const g=v.lineString(h.map(y=>[y.lng,y.lat]));g.properties.dist=s,g.properties.bearing=n,o.features.push(g)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(o):this.map.addSource(this.tmpSource,{type:"geojson",data:o}),this.map.getLayer(this.tmpLayer)||this.map.addLayer({id:this.tmpLayer,type:"line",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2,"line-opacity":1,"line-dasharray":[3,2]}}),this.map.getLayer(this.tmpLabelLayer)||this.map.addLayer({id:this.tmpLabelLayer,type:"symbol",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});let l;if(r?l='<div class="marker-label">Drag and drop</div>':l=`<div class="marker-label">Tol distance: <b>${C.LngLatHelper.roundPrecision((a.total??0)+s,2)}</b>nm, bearing: <b>${n}</b>°</div><div class="marker-label">${this.navigation==="RL"?"RL":"GC"} mode, using 'Shift' to switch</div><div class="marker-label">Double click to end</div>`,this.tipMarker)this.tipMarker._element.innerHTML=l,this.tipMarker.setLngLat([t.lng,t.lat]);else{const c=document.createElement("div");c.className="tip-marker",c.innerHTML=l,this.tipMarker=new j.Marker(c).setOffset([140,0]).setLngLat([t.lng,t.lat]).addTo(this.map)}},handleMove(a){this.map.getCanvas().style.cursor="crosshair";let e=this.geojson.at(-1);e||(e=v.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e));const t=e.features.filter(r=>r.geometry.type==="Point");t!=null&&t.length&&this.handleTmpPointUpdate(e,t.at(-1),{lng:a.lngLat.lng,lat:a.lngLat.lat})},handleDblClick(a){a.preventDefault();let e=this.geojson.at(-1);e.closed=!0,this.handleRender(e),e=v.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e)},handleRender(a){var e;if((e=a==null?void 0:a.features)!=null&&e.length){const t=`${a.id}-${this.source}`,r=`${a.id}-${this.layer}`,o=`${a.id}-${this.labelLayer}`;this.map.getSource(t)?this.map.getSource(t).setData(a):this.map.addSource(t,{type:"geojson",data:a}),this.handleClear(a,!1),this.map.addLayer({id:r,type:"line",source:t,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2}}),this.map.addLayer({id:o,type:"symbol",source:t,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist}nm,{bearing}°","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});const s=a.features.filter(n=>n.geometry.type==="Point");for(const n of s){const l=document.createElement("div");l.id=`${a.id}-${n.properties.id}`,l.className=`${a.closed?"point-marker closed":"point-marker"}`,l.innerHTML='<div class="marker-circle"></div>';const c=new j.Marker({element:l,draggable:!0,contextmenu:!0}).setLngLat(n.geometry.coordinates).addTo(this.map);c.on("drag",this.handleDrag),c.on("dragend",this.handleDragEnd),this.pointMarkers[a.id]?this.pointMarkers[a.id].push(c):this.pointMarkers[a.id]=[c]}if(a.closed){const n=s.at(-1),c=a.features.filter(p=>p.geometry.type==="LineString").at(-1),d=document.createElement("div");d.className="point-summary-marker",d.innerHTML=`<div id="${a.id}" class="marker-close">×</div><div class="marker-label">Tol: ${c.properties.total}nm</div>`,this.closeMarkers[a.id]=new j.Marker(d).setOffset([60,0]).setLngLat(n.geometry.coordinates).addTo(this.map)}}},handleClear(a,e=!0){var s,n,l,c,d,p,h,g,y;const t=`${a.id}-${this.source}`,r=`${a.id}-${this.layer}`,o=`${a.id}-${this.labelLayer}`;(s=this.map)!=null&&s.getLayer(r)&&this.map.removeLayer(r),(n=this.map)!=null&&n.getLayer(o)&&this.map.removeLayer(o),(l=this.map)!=null&&l.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(c=this.map)!=null&&c.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(d=this.closeMarkers[a.id])==null||d.remove(),this.closeMarkers[a.id]=void 0,(p=this.pointMarkers[a.id])==null||p.forEach(f=>{f==null||f.remove()}),this.pointMarkers[a.id]=[],(h=this.tipMarker)==null||h.remove(),this.tipMarker=void 0,e&&((g=this.map)!=null&&g.getSource(t))&&this.map.removeSource(t),e&&((y=this.map)!=null&&y.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}};function uo(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const go=k(fo,[["render",uo]]),as="",bo={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},beforeLayer:{type:String,default:"grayland"},bottom:{type:String,default:"260px"},token:{type:String,default:""},toggleVersion:{type:Number},permission:{type:Number}},emits:["enc"],data(){return{helper:ge,vendor:this.$attrs.permission&ge.LEVEL.Supper?"hi":"i4",right:10}},watch:{vendor:{handler(){this.$emit("enc",this.vendor)},immediate:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{}},Ie=a=>(i.pushScopeId("data-v-8928221f"),a=a(),i.popScopeId(),a),_o={key:0},wo={class:"bar-item"},Lo=[Ie(()=>i.createElementVNode("span",{class:"iconfont"},"HI",-1))],vo=[Ie(()=>i.createElementVNode("span",{class:"iconfont"},"I4",-1))];function xo(a,e,t,r,o,s){const n=i.resolveComponent("ElTooltip");return t.enabled&&t.permission&o.helper.LEVEL.Supper?(i.openBlock(),i.createElementBlock("div",_o,[i.createElementVNode("div",{class:"menu-bar-box",style:i.normalizeStyle({position:"absolute",right:o.right+"px",bottom:t.bottom})},[i.createElementVNode("div",wo,[i.createVNode(n,{placement:"left",effect:"light",content:"Hifleet","show-after":2e3},{default:i.withCtx(()=>[i.createElementVNode("div",{class:i.normalizeClass(o.vendor==="hi"?"menu-icon active":"menu-icon"),onClick:e[0]||(e[0]=l=>o.vendor="hi")},Lo,2)]),_:1}),i.createVNode(n,{placement:"left",effect:"light",content:"I4insight","show-after":2e3},{default:i.withCtx(()=>[i.createElementVNode("div",{class:i.normalizeClass(o.vendor==="i4"?"menu-icon active":"menu-icon"),onClick:e[1]||(e[1]=l=>o.vendor="i4")},vo,2)]),_:1})])],4)])):i.createCommentVNode("",!0)}const Co=k(bo,[["render",xo],["__scopeId","data-v-8928221f"]]),rs="",ko={name:"IdmGLV2",components:{IdmGlLayer:xt,IdmWindBarb:Pt,IdmWindParticle:Rt,IdmCurrents:jt,IdmCurrentParticle:Ut,IdmSigWave:Jt,IdmSwell:Yt,IdmPrmsl:ea,IdmIceberg:ia,IdmTropicals:ze,IdmPrecip3h:Pa,IdmVisibility:Ra,IdmWaterTemp:Ma,IdmTemp:Ha,IdmArctic:Xa,IdmWarZone:ki,IdmGmdssArea:zi,IdmEcaZone:Ti,IdmAlertZone:$i,IdmPort:Xi,IdmLoadLine:Qi,IdmTimezone:to,IdmVRA:oo,IdmSpecialArea:no,IdmTerminator:ho,IdmLatLng:Pe,IdmMeasure:go,IdmPoint:vi,IdmENC:Co},props:{map:{type:Object,default:void 0},token:{type:String},ts:{type:String},beforeLayer:{type:String,default:""},toggleVersion:{type:Number}},emits:["toggleVersion"],data(){return{weatherLayers:{},activeWeatherLayers:[],weatherWeight:0,otherLayers:{},otherWeight:0,showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,meteo:void 0,source:"",gateway:"https://cbe.idmwx.com",mapProjection:"mercator",zoom:6,viewport:void 0,particleFactor:void 0,showRampColor:!1,activeWindLayer:!1,showWindParticle:!1,showCurrentParticle:!1,enc:"",defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg",helper:new Te}},watch:{ts:{handler(a,e){a&&e&&A(a).utc().format("yyyy-MM-DD HH")!==A(e).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.handleDateChange({tropicals:!1})})},immediate:!0},map:{handler(){this.map&&(this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.viewport=new Ce(this.map),this.handleRampColorInitial())},immediate:!0},enc:{handler(a,e){var t,r,o,s,n,l,c,d;a?((r=(t=this.map)==null?void 0:t.getLayer(a))==null||r.setLayoutProperty("visibility","visible"),(s=(o=this.map)==null?void 0:o.getLayer(e))==null||s.setLayoutProperty("visibility","none")):((l=(n=this.map)==null?void 0:n.getLayer("i4"))==null||l.setLayoutProperty("visibility","none"),(d=(c=this.map)==null?void 0:c.getLayer("hi"))==null||d.setLayoutProperty("visibility","none"))}},activeWeatherLayers:{handler(){var a,e,t,r,o,s,n,l,c,d,p,h,g,y,f,u,m,_;if(!this.map)return!1;this.activeWeatherLayers.length>0?((e=(a=this.map)==null?void 0:a.getLayer(this.enc))==null||e.setLayoutProperty("visibility","none"),(r=(t=this.map)==null?void 0:t.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||r.setLayoutProperty("visibility","visible"),(s=this.map)!=null&&s.getLayer((o=this.viewport)==null?void 0:o.rampColorLayer)&&((n=this.map)!=null&&n.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((c=this.map)==null||c.moveLayer((l=this.viewport)==null?void 0:l.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(p=this.map)!=null&&p.getLayer((d=this.viewport)==null?void 0:d.particleLayer)&&((h=this.map)!=null&&h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((y=this.map)==null||y.moveLayer((g=this.viewport)==null?void 0:g.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id))):((u=(f=this.map)==null?void 0:f.getLayer(this.enc))==null||u.setLayoutProperty("visibility","visible"),(_=(m=this.map)==null?void 0:m.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||_.setLayoutProperty("visibility","none"))},immediate:!0}},methods:{async fetchWeatherLayers(a={tropicals:!1}){var o,s,n,l,c,d,p,h;const e=new Date().valueOf();let t=0,r=0;if(this.map){const g=((o=this.map)==null?void 0:o.getZoom())+1,y=(s=this.map)==null?void 0:s.getBounds(),f=`${y._sw.lng},${y._sw.lat},${y._ne.lng},${y._ne.lat}`;if(this.handleRampColorState(),this.particleFactor){const u=be.WEATHER_LAYERS.find(m=>{var _;return((_=m.peer)==null?void 0:_.weight)===this.particleFactor.weight});this.particleFactor.particle?this.weatherWeight=this.weatherWeight&u.weight?this.weatherWeight:this.weatherWeight+u.weight:this.weatherWeight=this.weatherWeight&u.weight?this.weatherWeight-u.weight:this.weatherWeight}if(this.weatherWeight>0){let u=this.weatherWeight,m;if(a.tropicals||this.weatherWeight&256&&(m=this.weatherLayers.tropicals,m&&(u-=256,m.version=Math.random()+1)),u>0){const _=await U.get(`${this.gateway}/api/arc/weather/layers/links?l=${u}&v=${this.source}&z=${g}&bbox=${f}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(r=new Date().valueOf()-(e+t),console.log("weather links elapsed: ",r,", total: ",t+=r),((n=_==null?void 0:_.data)==null?void 0:n.code)===0){const b=(l=_==null?void 0:_.data)==null?void 0:l.data,L=[];for(const w in b)w==="ice-edge"&&(b[w]="https://idm-hz.oss-cn-hangzhou.aliyuncs.com/test/sea_ice_contours.geojson"),w!=="tropicals"&&L.push(U.get(b[w],{headers:{Authorization:this.token||this.defaultMeteoToken,key:w},responseType:/\.(jpg|png)$/.test(b[w])?"blob":"json"}).catch(P=>{console.log(`[${w}] fetch layer error: ${P}`)}));const x=await Promise.all(L);this.weatherLayers={},x.map(w=>{var I,R,D,B;const P=((I=w==null?void 0:w.data)==null?void 0:I.data)||(w==null?void 0:w.data),N=(D=(R=w==null?void 0:w.config)==null?void 0:R.headers)==null?void 0:D.key;N&&P&&(this.weatherLayers[N]={raw:P,type:((B=w==null?void 0:w.config)==null?void 0:B.responseType)==="blob"?"image":"json",etime:this.ts})}),b.tropicals&&U.get(b.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"}}).then(w=>{var I,R,D;const P=C.TropicalHelper.convert2Geojson(((I=w==null?void 0:w.data)==null?void 0:I.data)||(w==null?void 0:w.data)),N=(D=(R=w==null?void 0:w.config)==null?void 0:R.headers)==null?void 0:D.key;this.weatherLayers[N]={data:P,active:!0,cached:!1,type:"json",etime:this.ts,version:Math.random()+1}})}if(r=new Date().valueOf()-(e+t),console.log("weather layers elapsed: ",r,", total: ",t+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const b=(c=this.weatherLayers["swell-direction"])==null?void 0:c.raw,L=(d=this.weatherLayers["swell-height"])==null?void 0:d.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:b,height:{raw:L},etime:this.ts}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const b=(p=this.weatherLayers["current-direction"])==null?void 0:p.raw,L=(h=this.weatherLayers["current-speed"])==null?void 0:h.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:b,speed:{raw:L},etime:this.ts}}}m&&(m.etime=this.ts,m.cached=!0,this.weatherLayers.tropicals=m)}this.handleWeatherLayerToggle(),this.handleDragEndWithZoom4Json()}this.$emit("toggleVersion",Math.random())},async fetchOtherLayers(a={all:!1,dayNight:!1,enc:!1}){var e,t,r,o;if(this.map){let s=this.otherWeight;if(s){let n=!1;if(this.otherWeight&2048&&(s=this.otherWeight-2048,n=!0),s){if(a.all){const l=await U.get(`${this.gateway}/api/arc/other/layers/links?l=${s}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((e=l==null?void 0:l.data)==null?void 0:e.code)===0){const c=(t=l==null?void 0:l.data)==null?void 0:t.data,d=[];for(const h in c)d.push(U.get(c[h],{headers:{Authorization:this.token||this.defaultMeteoToken,key:h}}));const p=await Promise.all(d);this.otherLayers={enc:n},p.map(h=>{var f,u,m;const g=((f=h==null?void 0:h.data)==null?void 0:f.data)||(h==null?void 0:h.data),y=(m=(u=h==null?void 0:h.config)==null?void 0:u.headers)==null?void 0:m.key;this.otherLayers[y]=g})}}else if(a.dayNight&&s&1024){const l=await U.get(`${this.gateway}/api/arc/other/layers/links?l=1024&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((r=l==null?void 0:l.data)==null?void 0:r.code)===0){const c=(o=l==null?void 0:l.data)==null?void 0:o.data,d=[];for(const h in c)d.push(U.get(c[h],{headers:{Authorization:this.token||this.defaultMeteoToken,key:h}}));(await Promise.all(d)).map(h=>{var f,u,m;const g=((f=h==null?void 0:h.data)==null?void 0:f.data)||(h==null?void 0:h.data),y=(m=(u=h==null?void 0:h.config)==null?void 0:u.headers)==null?void 0:m.key;this.otherLayers[y]=g})}}}else this.otherLayers={enc:n}}else this.otherLayers={};this.handleBeforeLayerToggle()}},handleRampColorState(){var a;if(this.showRampColor=!1,this.showWindParticle=!1,this.showCurrentParticle=!1,(a=this.particleFactor)!=null&&a.particle)this.showRampColor=!0,this.showWindParticle=this.particleFactor.key==="wind",this.showCurrentParticle=this.particleFactor.key==="current",this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json");else for(const e of this.activeWeatherLayers)["png","jpg"].includes(e.type)&&(this.showRampColor=!0);this.activeWindLayer=!!this.activeWeatherLayers.find(e=>e.key==="wind"),this.$refs.layer&&(this.$refs.layer.activeWeatherLayers=this.activeWeatherLayers)},handleRampColorInitial(){var a,e,t,r,o,s,n,l,c,d,p,h;this.viewport.map.getSource((a=this.viewport)==null?void 0:a.rampColorSource)||this.viewport.map.addSource((e=this.viewport)==null?void 0:e.rampColorSource,{type:"canvas",canvas:(t=this.viewport)==null?void 0:t.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:(o=this.viewport)==null?void 0:o.rampColorLayer,source:(s=this.viewport)==null?void 0:s.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((l=this.viewport)==null?void 0:l.particleSource,{type:"canvas",canvas:(c=this.viewport)==null?void 0:c.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:(p=this.viewport)==null?void 0:p.particleLayer,source:(h=this.viewport)==null?void 0:h.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDragEndWithZoom4Json(){var d,p,h,g;const a=new Date().valueOf();let e=0,t=0;const r=(d=this.map)==null?void 0:d.getBounds(),o=this.map.getZoom(),s=C.LngLatHelper.convertToStdLng(r._sw.lng),n=C.LngLatHelper.convertToStdLng(r._ne.lng),l=Math.floor(r._sw.lat),c=Math.ceil(r._ne.lat);for(const y in this.weatherLayers)if(this.weatherLayers[y].active&&this.weatherLayers[y].type==="json"){this.weatherLayers[y].active=!1,this.weatherLayers[y].version=Math.random()+1;let f=[];if(["swell","current"].includes(y)){const u=((p=this.weatherLayers[y])==null?void 0:p.direction)||{};for(const m in u)if(m>l&&m<c&&(!(o<=this.zoom)||m%(o<this.zoom/2?5:3)===0)){const _=u[m].lng;s>n?_.forEach((b,L)=>{var x;if((b>=s&&b<=180||b>=-180&&b<=n)&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const w=v.point([b,m],{val:u[m].val[L],spd:(x=u[m].spd)==null?void 0:x[L]});f.push(w)}}):_.forEach((b,L)=>{var x;if(b>=s&&b<=n&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const w=v.point([b,m],{val:u[m].val[L],spd:(x=u[m].spd)==null?void 0:x[L]});f.push(w)}})}if(t=new Date().valueOf()-(a+e),console.log("direction elapsed: ",t,", total: ",e+=t),y==="swell"){const m=this.weatherLayers[y].height;if(m){if(!m.data){const _=[];for(const b in(h=m.raw)==null?void 0:h.LineString){const L=m.raw.LineString[b];for(const x of L)_.push(v.lineString(x,{val:Number(b)}));m.data=v.featureCollection(_)}}if(m.data){const _=this.handleBboxClip(m.data,r);f=f.concat(_)}t=new Date().valueOf()-(a+e),console.log("height elapsed: ",t,", total: ",e+=t)}}if(y==="current"){const m=this.weatherLayers[y].speed;if(m){if(!m.data){const b=[];for(const L in(g=m.raw)==null?void 0:g.Polygon){const x=m.raw.Polygon[L];for(const w of x)b.push(v.polygon(w,{val:Number(L)}))}m.data=v.featureCollection(b)}const _=o<this.zoom?m.data.features.filter(b=>b.properties.val>.5):m.data.features;f=f.concat(_),t=new Date().valueOf()-(a+e),console.log("speed elapsed: ",t,", total: ",e+=t)}}}else if(y==="wind"){const u=this.weatherLayers.wind.raw;for(const m in u)if(m>l&&m<c&&(!(o<=this.zoom)||m%(o<this.zoom/2?5:3)===0)){const _=u[m].lng;s>n?_.forEach((b,L)=>{if((b>=s&&b<=180||b>=-180&&b<=n)&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const x=v.point([b,m],{val:u[m].val[L],spd:u[m].spd[L]});f.push(x)}}):_.forEach((b,L)=>{if(b>=s&&b<=n&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const x=v.point([b,m],{val:u[m].val[L],spd:u[m].spd[L]});f.push(x)}})}t=new Date().valueOf()-(a+e),console.log("wind barb elapsed: ",t,", total: ",e+=t)}else if(y==="sig-wave-height"){if(this.weatherLayers[y].data)f=this.weatherLayers[y].data;else{const u=this.weatherLayers[y].raw;if(u){const m=[];for(const _ in u.Polygon){const b=u.Polygon[_];for(const L of b)m.push(v.polygon(L,{val:Number(_)}))}for(const _ in u.Point){const b=u.Point[_];for(const L of b)m.push(...v.points(L,{val:Number(_)}).features)}f=f.concat(m)}}t=new Date().valueOf()-(a+e),console.log("sigWave elapsed: ",t,", total: ",e+=t)}else if(y==="prmsl"){if(this.weatherLayers[y].data)f=this.weatherLayers[y].data;else{const u=this.weatherLayers[y].raw;if(u){const m=[];for(const _ in u.LineString){const b=u.LineString[_];for(const L of b)m.push(v.lineString(L,{val:Number(_)}))}for(const _ in u.Point)u.Point[_].lng.forEach((b,L)=>{b=C.LngLatHelper.convertToStdLng(b),m.push(v.point([b,_],{val:u.Point[_].val[L],type:u.Point[_].type[L]}))});f=f.concat(m)}}t=new Date().valueOf()-(a+e),console.log("prmsl elapsed: ",t,", total: ",e+=t)}else if(y==="arctic"||y==="iceberg"){if(this.weatherLayers[y].data)f=this.weatherLayers[y].data;else{const u=this.weatherLayers[y].raw;if(u){const m=[];for(const _ in u.LineString){const b=u.LineString[_];for(const L of b)m.push(v.lineString(L,{val:Number(_)}))}f=f.concat(m)}}t=new Date().valueOf()-(a+e)}console.log(y," elapsed: ",t,", total: ",e+=t),f.length&&(this.weatherLayers[y].data=v.featureCollection(f)),this.weatherLayers[y].active=!0,this.weatherLayers[y].version=Math.random()+1}},handleDragEndWithZoom4Image(){for(const a in this.weatherLayers)this.weatherLayers[a].active&&this.weatherLayers[a].type==="image"&&(this.weatherLayers[a].active=!0,this.weatherLayers[a].version=Math.random()+1)},handleBboxClip(a,e){const t=[],r=C.LngLatHelper.convertToStdLng(e._sw.lng),o=C.LngLatHelper.convertToStdLng(e._ne.lng);return a.features.forEach(s=>{if(s.geometry.type!=="Point")if(r>o){let n=[r,e._sw.lat,180,e._ne.lat],l=v.bboxClip(s,n);l.geometry.coordinates.length&&t.push(l),n=[-180,e._sw.lat,o,e._ne.lat],l=v.bboxClip(s,n),l.geometry.coordinates.length&&t.push(l)}else{const n=[r,e._sw.lat,o,e._ne.lat],l=v.bboxClip(s,n);l.geometry.coordinates.length&&t.push(l)}else t.push(s)}),t},handleWeatherLayerToggle(){var a;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.indexOf("swell")>-1?t="swell":t.indexOf("current")>-1&&(t="current"),this.weatherLayers[t]&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1,((a=this.particleFactor)==null?void 0:a.key)===t&&this.weatherLayers[`${t}-particle`]&&(this.weatherLayers[`${t}-particle`].active=this.particleFactor.particle))}this.handleBeforeLayerToggle()},handleBeforeLayerToggle(){var a,e,t,r,o,s,n,l,c,d,p,h,g;(a=this.map)!=null&&a.getLayer(this.beforeLayer)&&((e=this.activeWeatherLayers)!=null&&e.length||(t=this.otherLayers)!=null&&t["war-zones"]||(r=this.otherLayers)!=null&&r["gmdss-areas"]||(o=this.otherLayers)!=null&&o["load-lines"]||(s=this.otherLayers)!=null&&s["high-risk-area"]||(n=this.otherLayers)!=null&&n["time-zones"]||(l=this.otherLayers)!=null&&l.pirates||(c=this.otherLayers)!=null&&c.ports||(d=this.otherLayers)!=null&&d.enc||(p=this.otherLayers)!=null&&p["voluntary-reporting-area"]||(h=this.otherLayers)!=null&&h["eca-zones"]||(g=this.otherLayers)!=null&&g["special-area"])&&this.map.setLayoutProperty(this.beforeLayer,"visibility","visible")},handleDateChange(a={tropicals:!1}){this.fetchWeatherLayers(a),this.fetchOtherLayers({dayNight:!0})},handleWeatherLayerChange(a,e,t){if(!this.map)setTimeout(()=>{this.handleWeatherLayerChange(a,e,t)},500);else{this.activeWeatherLayers=e;const r=this.activeWeatherLayers.some(n=>{var l;return["wind","current"].includes(n.key)&&(!((l=Object.keys(n))!=null&&l.some(c=>c==="particle"))||!!n.particle)}),o=this.activeWeatherLayers.some(n=>["png","jpg"].includes(n.type));r&&!o?(this.activeWeatherLayers.forEach(n=>{["wind","current"].includes(n.key)&&(this.particleFactor=n)}),this.particleFactor.particle=!0):o&&this.particleFactor&&(this.particleFactor.particle=!1);const s=e==null?void 0:e.reduce((n,l)=>n+(n&(l==null?void 0:l.weight)?0:l==null?void 0:l.weight),0);this.weatherWeight!==s||this.source!==t?(this.source=t,this.weatherWeight=s,this.fetchWeatherLayers({tropicals:!1})):this.handleWeatherLayerToggle()}},handleOtherLayerChange(a){if(!this.map)setTimeout(()=>{this.handleOtherLayerChange(a)},500);else{const e=a==null?void 0:a.reduce((t,r)=>t+(r==null?void 0:r.weight),0);a.find(t=>t.key==="enc")?this.enc="i4":this.enc="",this.otherWeight!=e&&(this.otherWeight=e,this.fetchOtherLayers({all:!0}))}},async handlePointChange(a){const e=this.ts?A(this.ts):A(),t={lat:a.lat,lng:a.lng,ts:e.utc().format(),wt:!0,src:this.source},r=await U.get(`${this.gateway}/api/arc/meteo/query`,{params:t,headers:{Authorization:this.token||this.defaultMeteoToken}});(r==null?void 0:r.status)===200&&(this.meteo={...r==null?void 0:r.data,...a})},handle3dToggle(a){var e,t,r,o,s,n,l,c,d,p,h,g,y,f,u,m,_,b,L,x;a?(this.map.setProjection("globe"),this.mapProjection="globe",(t=this.map)!=null&&t.getLayer((e=this.viewport)==null?void 0:e.rampColorLayer)&&((r=this.map)!=null&&r.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((s=this.map)==null||s.moveLayer((o=this.viewport)==null?void 0:o.rampColorLayer,this.helper.mapboxCustomer.layers.water.id)),(l=this.map)!=null&&l.getLayer((n=this.viewport)==null?void 0:n.particleLayer)&&((c=this.map)!=null&&c.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((p=this.map)==null||p.moveLayer((d=this.viewport)==null?void 0:d.particleLayer,this.helper.mapboxCustomer.layers.water.id)),this.map.off("zoomend",this.handleDragEndWithZoom4Json),this.map.off("dragend",this.handleDragEndWithZoom4Json),this.map.off("move",this.handleDragEndWithZoom4Image)):(this.map.setProjection("mercator"),this.mapProjection="mercator",this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.handleDragEndWithZoom4Image(),this.handleDragEndWithZoom4Json(),(g=this.map)!=null&&g.getLayer((h=this.viewport)==null?void 0:h.rampColorLayer)&&((y=this.map)!=null&&y.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((u=this.map)==null||u.moveLayer((f=this.viewport)==null?void 0:f.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(_=this.map)!=null&&_.getLayer((m=this.viewport)==null?void 0:m.particleLayer)&&((b=this.map)!=null&&b.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((x=this.map)==null||x.moveLayer((L=this.viewport)==null?void 0:L.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)))},handleParticle(a){this.particleFactor=a,this.weatherLayers[a.key]&&(this.weatherLayers[a.key].particle=a.particle),this.activeWeatherLayers.forEach(r=>{r.key===a.key&&(r.particle=a.particle)});let e=localStorage.getItem("weatherLayersCache");const t=JSON.parse(e)||[];t==null||t.forEach(r=>{r.key===a.key&&(r.particle=a.particle)}),localStorage.setItem("weatherLayersCache",JSON.stringify(t)),this.fetchWeatherLayers({tropicals:!1})},handleToggleVersion(){this.$emit("toggleVersion",Math.random())}}},So={key:0,className:"map-gl-home"};function Eo(a,e,t,r,o,s){var q,M,W,ce,F,S,$,he,H,de,Y,Q,K,_e,we,Le,ve,xe,Ne,Re,De,$e,Ae,Be,Me,je;const n=i.resolveComponent("IdmGlLayer"),l=i.resolveComponent("IdmENC"),c=i.resolveComponent("IdmSigWave"),d=i.resolveComponent("IdmSwell"),p=i.resolveComponent("IdmPrmsl"),h=i.resolveComponent("IdmIceberg"),g=i.resolveComponent("IdmTropicals"),y=i.resolveComponent("IdmCurrents"),f=i.resolveComponent("IdmCurrentParticle"),u=i.resolveComponent("IdmWindBarb"),m=i.resolveComponent("IdmWindParticle"),_=i.resolveComponent("IdmPrecip3h"),b=i.resolveComponent("IdmVisibility"),L=i.resolveComponent("IdmWaterTemp"),x=i.resolveComponent("IdmTemp"),w=i.resolveComponent("IdmArctic"),P=i.resolveComponent("IdmWarZone"),N=i.resolveComponent("IdmGmdssArea"),I=i.resolveComponent("IdmEcaZone"),R=i.resolveComponent("IdmAlertZone"),D=i.resolveComponent("IdmPort"),B=i.resolveComponent("IdmLoadLine"),ae=i.resolveComponent("IdmTimezone"),ie=i.resolveComponent("IdmVRA"),oe=i.resolveComponent("IdmSpecialArea"),re=i.resolveComponent("IdmTerminator"),se=i.resolveComponent("IdmLatLng"),ne=i.resolveComponent("IdmMeasure"),le=i.resolveComponent("IdmPoint");return t.map?(i.openBlock(),i.createElementBlock("div",So,[i.createVNode(n,i.mergeProps({ref:"layer",map:t.map,"toggle-version":t.toggleVersion,"map-projection":o.mapProjection},a.$attrs,{onWeather:s.handleWeatherLayerChange,onOther:s.handleOtherLayerChange,onCoordinate:e[0]||(e[0]=pe=>o.showCoord=pe),onMeasure:e[1]||(e[1]=pe=>o.showMeasure=pe),onPoint:e[2]||(e[2]=pe=>o.showPoint=pe),on3d:s.handle3dToggle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","toggle-version","map-projection","onWeather","onOther","on3d","onHandleToggleVersion"]),i.createVNode(l,i.mergeProps({map:t.map,token:t.token,enabled:(q=o.otherLayers)==null?void 0:q.enc,"toggle-version":t.toggleVersion},a.$attrs,{onEnc:e[3]||(e[3]=pe=>o.enc=pe)}),null,16,["map","token","enabled","toggle-version"]),i.createVNode(c,i.mergeProps({map:t.map,"sig-wave":(M=o.weatherLayers)==null?void 0:M["sig-wave-height"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","sig-wave","before-layer"]),i.createVNode(d,i.mergeProps({map:t.map,swell:(W=o.weatherLayers)==null?void 0:W.swell,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","swell","before-layer"]),i.createVNode(p,i.mergeProps({map:t.map,prmsl:(ce=o.weatherLayers)==null?void 0:ce.prmsl,"before-layer":t.beforeLayer,"active-weather-layers":o.activeWeatherLayers},a.$attrs),null,16,["map","prmsl","before-layer","active-weather-layers"]),i.createVNode(h,i.mergeProps({map:t.map,iceberg:(F=o.weatherLayers)==null?void 0:F.iceberg,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","iceberg","before-layer"]),i.createVNode(g,i.mergeProps({map:t.map,date:t.ts,tropicals:(S=o.weatherLayers)==null?void 0:S.tropicals,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","date","tropicals","before-layer"]),i.createVNode(y,i.mergeProps({map:t.map,"map-projection":o.mapProjection,current:($=o.weatherLayers)==null?void 0:$.current,"before-layer":t.beforeLayer,"show-particle":o.showCurrentParticle,"margin-bottom":o.activeWindLayer?o.showRampColor?"84px":"56px":o.showRampColor?"56px":"30px","toggle-version":t.toggleVersion,"weather-layers":o.weatherLayers},a.$attrs,{onParticle:s.handleParticle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","map-projection","current","before-layer","show-particle","margin-bottom","toggle-version","weather-layers","onParticle","onHandleToggleVersion"]),i.createVNode(f,i.mergeProps({viewport:o.viewport,factor:(he=o.weatherLayers)==null?void 0:he["current-particle"],"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(u,i.mergeProps({ref:"windBarb",map:t.map,"map-projection":o.mapProjection,wind:(H=o.weatherLayers)==null?void 0:H.wind,current:(de=o.weatherLayers)==null?void 0:de.current,"before-layer":t.beforeLayer,"margin-bottom":o.showRampColor?"56px":"30px","show-particle":o.showWindParticle},a.$attrs,{"toggle-version":t.toggleVersion,"weather-layers":o.weatherLayers,onParticle:s.handleParticle}),null,16,["map","map-projection","wind","current","before-layer","margin-bottom","show-particle","toggle-version","weather-layers","onParticle"]),i.createVNode(m,i.mergeProps({viewport:o.viewport,factor:(Y=o.weatherLayers)==null?void 0:Y["wind-particle"],"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(_,i.mergeProps({viewport:o.viewport,factor:(Q=o.weatherLayers)==null?void 0:Q.precip3h,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(b,i.mergeProps({viewport:o.viewport,factor:(K=o.weatherLayers)==null?void 0:K.visibility,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(L,i.mergeProps({viewport:o.viewport,factor:(_e=o.weatherLayers)==null?void 0:_e["water-temp"],"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(x,i.mergeProps({viewport:o.viewport,factor:(we=o.weatherLayers)==null?void 0:we.temp,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(w,i.mergeProps({viewport:o.viewport,factor:(Le=o.weatherLayers)==null?void 0:Le.arctic,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(P,i.mergeProps({map:t.map,zone:(ve=o.otherLayers)==null?void 0:ve["war-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(N,i.mergeProps({map:t.map,area:(xe=o.otherLayers)==null?void 0:xe["gmdss-areas"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","area","before-layer"]),i.createVNode(I,i.mergeProps({map:t.map,zone:(Ne=o.otherLayers)==null?void 0:Ne["eca-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(R,i.mergeProps({map:t.map,zone:(Re=o.otherLayers)==null?void 0:Re["alert-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(D,i.mergeProps({map:t.map,port:(De=o.otherLayers)==null?void 0:De.ports,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","port","before-layer"]),i.createVNode(B,i.mergeProps({map:t.map,line:($e=o.otherLayers)==null?void 0:$e["load-lines"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","line","before-layer"]),i.createVNode(ae,i.mergeProps({map:t.map,zone:(Ae=o.otherLayers)==null?void 0:Ae["time-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(ie,i.mergeProps({map:t.map,area:(Be=o.otherLayers)==null?void 0:Be["voluntary-reporting-area"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","area","before-layer"]),i.createVNode(oe,i.mergeProps({map:t.map,area:(Me=o.otherLayers)==null?void 0:Me["special-area"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","area","before-layer"]),i.createVNode(re,i.mergeProps({map:t.map,area:(je=o.otherLayers)==null?void 0:je["day-night"]},a.$attrs),null,16,["map","area"]),i.createVNode(se,i.mergeProps({map:t.map,show:o.showCoord,"toggle-version":t.toggleVersion},a.$attrs),null,16,["map","show","toggle-version"]),i.createVNode(ne,i.mergeProps({map:t.map,show:o.showMeasure},a.$attrs),null,16,["map","show"]),i.createVNode(le,i.mergeProps({map:t.map,show:o.showPoint,meteo:o.meteo},a.$attrs,{onPoint:s.handlePointChange}),null,16,["map","show","meteo","onPoint"])])):i.createCommentVNode("",!0)}const Ve=k(ko,[["render",Eo]]),zo={install(a){a.component("MapboxGL",Ve),a.component("TropicalGL",ze),a.component("LatLngGL",Pe)}};E.LatLngGL=Pe,E.MapboxGL=Ve,E.MapboxGLPlugin=zo,E.MapboxHelper=Te,E.ParticleSchema=V,E.TropicalGL=ze,E.Viewport=Ce,E.WebGL=Z,E.WebGLSchema=T,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})});
204
+ </svg>`,H=document.createElement("div");H.className="hurricane-hourly-marker",H.innerHTML=`<div class="${S.geometry.coordinates[1]>=0?"center north":"center south"}">${he}</div>`;const de=new j.Marker(H).setLngLat(S.geometry.coordinates).addTo(this.map);if(this.interpolateMarkers.push(de),(ae=S.properties)!=null&&ae.showCircle){const Y={radius:100,coordinates:S.geometry.coordinates},Q={radius:200,coordinates:S.geometry.coordinates},K={radius:500,coordinates:S.geometry.coordinates};(ie=this.circleSourceData)==null||ie.features.push(v.circle(Y.coordinates,Y.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(oe=this.circleSourceData)==null||oe.features.push(v.circle(Q.coordinates,Q.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}})),(re=this.circleSourceData)==null||re.features.push(v.circle(K.coordinates,K.radius,{steps:100,units:"kilometers",properties:{type:"tropicalCircle"}}))}(ne=(se=this.map)==null?void 0:se.getSource(this.circleSource))==null||ne.setData(this.circleSourceData)}}else(le=this.map)!=null&&le.getSource(this.interpolateSource)&&((q=this.map)==null||q.getSource(this.interpolateSource).setData(this.empty))},handleClick(a){var s,n,l,c,d,p,h,g;const e=a.features[0],t=(n=(s=this.tropicals)==null?void 0:s.data)==null?void 0:n.features.filter(y=>{var f;return y.geometry.type==="LineString"&&y.properties.type==="forecast"&&y.properties.name===((f=e==null?void 0:e.properties)==null?void 0:f.name)});t.sort((y,f)=>{var u,m,_,b;return((u=y.properties)==null?void 0:u.model)==="cma"?-1:((m=y.properties)==null?void 0:m.model)==="jma"?((_=f.properties)==null?void 0:_.model)==="cma"?1:-1:y.properties.model==="ecmwf"?["jma","cma"].includes((b=f.properties)==null?void 0:b.model)?1:-1:0});const r=(c=(l=this.tropicals)==null?void 0:l.data)==null?void 0:c.features.filter(y=>{var f;return y.geometry.type==="LineString"&&y.properties.type==="history"&&y.properties.name===((f=e==null?void 0:e.properties)==null?void 0:f.name)});this.activeTropicals={name:(d=e==null?void 0:e.properties)==null?void 0:d.name,forecasts:t.map(y=>y.properties),history:(p=r[0])==null?void 0:p.properties,showCircle:(g=(h=t[0])==null?void 0:h.properties)==null?void 0:g.showCircle},this.showTropicals=!0;const o=document.getElementById("active-tropical");this.activeTropicalsMarker?this.activeTropicalsMarker.setLngLat([a.lngLat.lng,a.lngLat.lat]):this.activeTropicalsMarker=new j.Marker(o).setLngLat([a.lngLat.lng,a.lngLat.lat]).setOffset([220,0]).addTo(this.map)},handleForecastToggle(a){var r,o,s,n,l,c;a.disabled=!a.disabled;const e=`${a.name}-${a.model}`,t=(o=(r=this.map)==null?void 0:r.getSource(this.source)._data)==null?void 0:o.features;t.forEach(d=>{d.properties.category===e&&(d.properties.disabled=a.disabled)}),this.interpolateData.forEach(d=>{d.properties.category===e&&(d.properties.disabled=a.disabled)}),(n=(s=this.map)==null?void 0:s.getSource(this.source))==null||n.setData(v.featureCollection(t)),(c=(l=this.map)==null?void 0:l.getSource(this.clusterSource))==null||c.setData(v.featureCollection(t)),this.handleDateChange()},handleStrikeProbability(a){this.$emit("tropicalProbability",a)},handleToggleCircles(a){var e,t;a.showCircle=!a.showCircle,(t=(e=this.tropicals.data)==null?void 0:e.features)==null||t.forEach(r=>{r.properties.name===a.name&&(r.properties.showCircle=a.showCircle)}),this.handleRender()},handleDrawCircle(){var a,e;(a=this.map)!=null&&a.getSource(this.circleSource)?(e=this.map)==null||e.getSource(this.circleSource).setData(this.circleSourceData):(this.map.addSource(this.circleSource,{type:"geojson",data:this.circleSourceData}),this.map.addLayer({id:this.circleLayer,type:"line",source:this.circleSource,filter:["all",["==","$type","Polygon"],["==","type","tropicalCircle"]],paint:{"line-color":"#fff","line-width":2,"line-opacity":1,"line-dasharray":[1,1]}}))},handleComputePolygons(a){const e=[];for(const t of a){const r=t.properties.wind,o={ne:r.r7ne>=0?r.r7ne:void 0,se:r.r7se>=0?r.r7se:void 0,sw:r.r7sw>=0?r.r7sw:void 0,nw:r.r7nw>=0?r.r7nw:void 0},s=this.handleComputeArc(t.geometry.coordinates,o,{...t.properties,level:7});e.push(s);const n={ne:r.r10ne>=0?r.r10ne:void 0,se:r.r10se>=0?r.r10se:void 0,sw:r.r10sw>=0?r.r10sw:void 0,nw:r.r10nw>=0?r.r10nw:void 0},l=this.handleComputeArc(t.geometry.coordinates,n,{...t.properties,level:10});e.push(l)}return e},handleComputeArc(a,e,t){var s;const r=[];for(const n in e){const l=e[n]??0;let c;switch(n){case"ne":c=v.lineArc(a,l*1.852,0,90,{steps:l>0?64:1});break;case"se":c=v.lineArc(a,l*1.852,90,180,{steps:l>0?64:1});break;case"sw":c=v.lineArc(a,l*1.852,180,270,{steps:l>0?64:1});break;case"nw":c=v.lineArc(a,l*1.852,270,360,{steps:l>0?64:1});break}r.push(...(s=c==null?void 0:c.geometry)==null?void 0:s.coordinates)}const o=v.lineString(r);return v.lineToPolygon(o,{properties:t})}}},Ee=a=>(i.pushScopeId("data-v-f0e05b29"),a=a(),i.popScopeId(),a),ra={id:"active-tropical",class:"active-tropical"},sa={class:"header-box"},na={class:"main"},la={key:0},ca={class:"sub"},ha={id:"meteoBox",class:"main-box"},da={class:"content"},pa={class:"row"},ma={class:"col col-left",style:{"justify-content":"flex-start"}},ya=Ee(()=>i.createElementVNode("label",null,"Wind speed : ",-1)),fa={class:"col col-right",style:{"justify-content":"flex-start"}},ua=Ee(()=>i.createElementVNode("label",null,"Pressure : ",-1)),ga={class:"row"},ba={class:"col col-24",style:{"justify-content":"flex-start"}},_a=Ee(()=>i.createElementVNode("label",{style:{width:"max-content"}},"Forecast Models : ",-1)),wa={class:"forecast-models"},La=["onClick"],va=i.createStaticVNode('<div class="row" style="padding:0;height:1px;margin:10px 0;background:var(--idm-black-1);" data-v-f0e05b29></div><div class="row" style="padding:2px 10px;" data-v-f0e05b29><div class="legend" data-v-f0e05b29><div class="icon td" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>TD</div></div><div class="legend" data-v-f0e05b29><div class="icon ts" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>TS</div></div><div class="legend" data-v-f0e05b29><div class="icon sts" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>STS</div></div><div class="legend" data-v-f0e05b29><div class="icon ty" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>TY</div></div><div class="legend" data-v-f0e05b29><div class="icon sty" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>STY</div></div><div class="legend" data-v-f0e05b29><div class="icon supper-ty" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>Super TY</div></div></div><div class="row" style="padding:2px 10px;" data-v-f0e05b29><div class="legend" data-v-f0e05b29><div class="icon history" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>History</div></div><div class="legend" data-v-f0e05b29><div class="icon r7" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>35kts Radii</div></div><div class="legend" data-v-f0e05b29><div class="icon r10" data-v-f0e05b29></div><div class="label" data-v-f0e05b29>50kts Radii</div></div></div>',3),xa={class:"more"};function Ca(a,e,t,r,o,s){var n,l,c,d,p,h,g,y,f,u,m,_,b,L,x;return i.withDirectives((i.openBlock(),i.createElementBlock("div",ra,[i.createElementVNode("div",sa,[i.createElementVNode("div",{class:"iconfont close-btn",onClick:e[0]||(e[0]=w=>o.showTropicals=!1)},""),i.createElementVNode("div",na,[(l=(n=o.activeTropicals)==null?void 0:n.history)!=null&&l.level?(i.openBlock(),i.createElementBlock("span",la,i.toDisplayString((d=(c=o.activeTropicals)==null?void 0:c.history)==null?void 0:d.level)+" , ",1)):i.createCommentVNode("",!0),i.createTextVNode(i.toDisplayString((p=o.activeTropicals)==null?void 0:p.name),1)]),i.createElementVNode("div",ca," Last update: "+i.toDisplayString(s.computeTime(((g=(h=o.activeTropicals)==null?void 0:h.history)==null?void 0:g.updated)||((u=(f=(y=o.activeTropicals)==null?void 0:y.forecasts)==null?void 0:f.filter(w=>!w.disabled)[0])==null?void 0:u.date))),1)]),i.createElementVNode("div",ha,[i.createElementVNode("div",da,[i.createElementVNode("div",pa,[i.createElementVNode("div",ma,[ya,i.createElementVNode("span",null,i.toDisplayString(((_=(m=o.activeTropicals)==null?void 0:m.history)==null?void 0:_.kts)||"-")+"[kts]",1)]),i.createElementVNode("div",fa,[ua,i.createElementVNode("span",null,i.toDisplayString(((L=(b=o.activeTropicals)==null?void 0:b.history)==null?void 0:L.pressure)||"-")+"[hPa]",1)])]),i.createElementVNode("div",ga,[i.createElementVNode("div",ba,[_a,i.createElementVNode("div",wa,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList((x=o.activeTropicals)==null?void 0:x.forecasts,(w,P)=>{var N,I,R,D;return i.openBlock(),i.createElementBlock("div",{key:P,class:i.normalizeClass(["model",w.disabled?"":"active",P>0&&P<((I=(N=o.activeTropicals)==null?void 0:N.forecasts)==null?void 0:I.length)-1&&((D=(R=o.activeTropicals)==null?void 0:R.forecasts)==null?void 0:D.length)>2?"center-child":""]),onClick:B=>s.handleForecastToggle(w)},[i.createElementVNode("span",{class:i.normalizeClass(w.model)},i.toDisplayString(w.model),3)],10,La)}),128))])])]),va]),i.createElementVNode("div",xa,[i.createElementVNode("div",{class:"button",onClick:e[1]||(e[1]=w=>s.handleStrikeProbability(o.activeTropicals))},"Strike Probability >>")])])],512)),[[i.vShow,o.showTropicals&&!a.$attrs.hideTropicalsLegend]])}const ze=k(oa,[["render",Ca],["__scopeId","data-v-f0e05b29"]]),pr="",ka={name:"IdmPrecip3h",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[precip3h] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},J=a=>(i.pushScopeId("data-v-9708a7a3"),a=a(),i.popScopeId(),a),Sa={key:0},Ea=[J(()=>i.createElementVNode("span",null,"mm",-1)),J(()=>i.createElementVNode("span",null,"1.5",-1)),J(()=>i.createElementVNode("span",null,"2",-1)),J(()=>i.createElementVNode("span",null,"3",-1)),J(()=>i.createElementVNode("span",null,"7",-1)),J(()=>i.createElementVNode("span",null,"10",-1)),J(()=>i.createElementVNode("span",null,"20",-1)),J(()=>i.createElementVNode("span",null,"30",-1))];function za(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Sa,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Ea,4)])):i.createCommentVNode("",!0)}const Pa=k(ka,[["render",za],["__scopeId","data-v-9708a7a3"]]),Lr="",Na={name:"IdmVisibility",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[visibility] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ye=a=>(i.pushScopeId("data-v-f7b2fb08"),a=a(),i.popScopeId(),a),Ta={key:0},Ia=[ye(()=>i.createElementVNode("span",null,"nm",-1)),ye(()=>i.createElementVNode("span",null,"0",-1)),ye(()=>i.createElementVNode("span",null,"0.5",-1)),ye(()=>i.createElementVNode("span",null,"1.5",-1)),ye(()=>i.createElementVNode("span",null,"3",-1)),ye(()=>i.createElementVNode("span",null,"9",-1))];function Va(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Ta,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:a.right+"px",bottom:t.bottom}])},Ia,4)])):i.createCommentVNode("",!0)}const Ra=k(Na,[["render",Va],["__scopeId","data-v-f7b2fb08"]]),zr="",Da={name:"IdmWaterTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[water-temp] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},fe=a=>(i.pushScopeId("data-v-7521f582"),a=a(),i.popScopeId(),a),$a={key:0},Aa=[fe(()=>i.createElementVNode("span",null,"°C",-1)),fe(()=>i.createElementVNode("span",null,"0",-1)),fe(()=>i.createElementVNode("span",null,"10",-1)),fe(()=>i.createElementVNode("span",null,"20",-1)),fe(()=>i.createElementVNode("span",null,"30",-1)),fe(()=>i.createElementVNode("span",null,"40",-1))];function Ba(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",$a,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Aa,4)])):i.createCommentVNode("",!0)}const Ma=k(Da,[["render",Ba],["__scopeId","data-v-7521f582"]]),Dr="",ja={name:"IdmTemp",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[water-temp] add elapsed: ",t,", total: ",e+=t)}},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 a=[[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,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},X=a=>(i.pushScopeId("data-v-25daaa82"),a=a(),i.popScopeId(),a),Oa={key:0},Wa=[X(()=>i.createElementVNode("span",null,"°C",-1)),X(()=>i.createElementVNode("span",null,"-20",-1)),X(()=>i.createElementVNode("span",null,"-10",-1)),X(()=>i.createElementVNode("span",null,"0",-1)),X(()=>i.createElementVNode("span",null,"10",-1)),X(()=>i.createElementVNode("span",null,"20",-1)),X(()=>i.createElementVNode("span",null,"30",-1)),X(()=>i.createElementVNode("span",null,"40",-1))];function Fa(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Oa,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Wa,4)])):i.createCommentVNode("",!0)}const Ha=k(ja,[["render",Fa],["__scopeId","data-v-25daaa82"]]),Hr="",Ua={name:"IdmArctic",props:{factor:{type:Object},viewport:{type:Object},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{program:void 0,context:void 0,texture:void 0,rampColor:void 0,aPositionBuffer:void 0,webgl:new Z,etime:void 0,right:10}},watch:{"factor.version":{handler(){var a;(a=this.factor)!=null&&a.active?this.handleRender():this.handleClear()},deep:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{handleRender(){if(!this.viewport)setTimeout(()=>{this.handleRender()},500);else if(this.factor){const a=new Date().valueOf();let e=0,t=0;this.handleDraw(),t=new Date().valueOf()-(a+e),console.log("[water-temp] add elapsed: ",t,", total: ",e+=t)}},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 a=[[0,"rgba(76, 165, 228, 0)"],[50/255,"rgba(76, 165, 228, 0)"],[51/255,"rgb(76, 165, 228)"],[102/255,"rgb(129, 204, 197)"],[153/255,"rgb(150, 209, 216)"],[204/255,"rgb(180, 209, 216)"],[1,"rgb(180, 209, 216)"]];this.rampColor=this.webgl.setup(this.context,a);const{program:e,aPositionBuffer:t}=this.webgl.bind(this.context,T.vertexSchema,T.fragmentSchema);this.program=e,this.aPositionBuffer=t}},async handleDraw(){if(this.handleSetup(),this.etime!==this.factor.etime){this.etime=this.factor.etime;const a=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,a)}this.webgl.draw(this.viewport,this.context,this.program,this.texture,this.rampColor.texture,this.aPositionBuffer),this.viewport.toggle(!0)}}},ue=a=>(i.pushScopeId("data-v-5bb73794"),a=a(),i.popScopeId(),a),Za={key:0},Ga=[ue(()=>i.createElementVNode("span",null,"m",-1)),ue(()=>i.createElementVNode("span",null,"0",-1)),ue(()=>i.createElementVNode("span",null,"0.5",-1)),ue(()=>i.createElementVNode("span",null,"1",-1)),ue(()=>i.createElementVNode("span",null,"1.5",-1)),ue(()=>i.createElementVNode("span",null,"2",-1))];function Ja(a,e,t,r,o,s){var n;return(n=t.factor)!=null&&n.active?(i.openBlock(),i.createElementBlock("div",Za,[i.createElementVNode("div",{class:"legend-bars flex-center",style:i.normalizeStyle([{position:"absolute"},{right:o.right+"px",bottom:t.bottom}])},Ga,4)])):i.createCommentVNode("",!0)}const Xa=k(Ua,[["render",Ja],["__scopeId","data-v-5bb73794"]]),Yr="",qa={name:"IdmPoint",emits:["point","more"],props:{map:{type:Object},show:{type:Boolean},timeZone:{type:Number,default:0},meteo:{type:Object}},data(){return{showMeteo:!1,meteoMarker:void 0,helper:ge}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.show&&this.handleBind()}},meteo:{handler(){this.meteo?(this.showMeteo=!0,this.handleRender()):this.showMeteo=!1}}},computed:{computeTime(){return function(a){if(a){const e=A(a).utc().utcOffset(this.timeZone),t=this.timeZone<0?this.timeZone:"+"+this.timeZone;return`${e.format("MMM-DD,HHmm")} ( UTC ${t} )`}return"-"}},computeLat(){return function(a,e=4){return C.LngLatHelper.lat2pretty(a,e).pretty}},computeLng(){return function(a,e=4){return C.LngLatHelper.lng2pretty(a,e).pretty}},roundPrecision(){return function(a,e=4){return isNaN(a)?"-":C.LngLatHelper.roundPrecision(a,e)}}},methods:{handleBind(){var a,e;this.show?(a=this.map)==null||a.on("click",this.handleClick):((e=this.map)==null||e.off("click",this.handleClick),this.showMeteo=!1)},handleClick(a){a.originalEvent.stopPropagation();const e=a.originalEvent.target.className;e.indexOf("close")>-1?this.showMeteo=!1:e==="more"?this.$emit("more",this.meteo):this.$emit("point",a.lngLat)},handleRender(){var a;if(this.meteo){const e=document.getElementById("point-meteo");this.meteoMarker?(a=this.meteoMarker)==null||a.setLngLat([this.meteo.lng,this.meteo.lat]):this.meteoMarker=new j.Marker(e).setLngLat([this.meteo.lng,this.meteo.lat]).addTo(this.map)}}}},O=a=>(i.pushScopeId("data-v-efcf572f"),a=a(),i.popScopeId(),a),Ya={id:"point-meteo",class:"point-meteo"},Qa={class:"meteo-box"},Ka={class:"header-box"},ei={class:"main"},ti={class:"sub"},ai={class:"main-box"},ii={class:"flex-space"},oi=O(()=>i.createElementVNode("label",null,"Wind",-1)),ri={class:"flex-space"},si=O(()=>i.createElementVNode("label",null,"Wind.Wave",-1)),ni={class:"flex-space"},li=O(()=>i.createElementVNode("label",null,"Swell",-1)),ci={class:"flex-space"},hi=O(()=>i.createElementVNode("label",null,"Sig.Wave",-1)),di={class:"flex-space"},pi=O(()=>i.createElementVNode("label",null,"Current",-1)),mi={class:"flex-space"},yi=O(()=>i.createElementVNode("label",null,"Precip",-1)),fi={class:"flex-space"},ui=O(()=>i.createElementVNode("label",null,"Visibility",-1)),gi={class:"flex-space"},bi=O(()=>i.createElementVNode("label",null,"Temp",-1)),_i={class:"flex-space"},wi=O(()=>i.createElementVNode("label",null,"Water Temp",-1));function Li(a,e,t,r,o,s){var n,l,c,d,p,h,g,y,f,u,m,_,b,L,x,w,P,N,I,R,D,B,ae,ie,oe,re,se,ne,le,q,M,W,ce,F,S,$,he,H,de,Y,Q,K,_e,we,Le,ve,xe;return i.withDirectives((i.openBlock(),i.createElementBlock("div",Ya,[i.createElementVNode("div",Qa,[i.createElementVNode("div",Ka,[i.createElementVNode("div",{class:"iconfont close",onClick:e[0]||(e[0]=Ne=>o.showMeteo=!1)},""),i.createElementVNode("div",ei,i.toDisplayString(s.computeLat((n=t.meteo)==null?void 0:n.lat))+","+i.toDisplayString(s.computeLng((l=t.meteo)==null?void 0:l.lng)),1),i.createElementVNode("div",ti,i.toDisplayString(s.computeTime((c=t.meteo)==null?void 0:c.utc)),1)]),i.createElementVNode("div",ai,[i.createElementVNode("div",ii,[oi,i.createElementVNode("span",null,i.toDisplayString(((p=(d=t.meteo)==null?void 0:d.wind)==null?void 0:p.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((g=(h=t.meteo)==null?void 0:h.wind)==null?void 0:g.kts,1))+"[kts]/"+i.toDisplayString((f=(y=t.meteo)==null?void 0:y.wind)==null?void 0:f.scale)+"[BF]/"+i.toDisplayString(s.roundPrecision((m=(u=t.meteo)==null?void 0:u.gusts)==null?void 0:m.kts,1))+"[kts]",1)]),i.createElementVNode("div",ri,[si,i.createElementVNode("span",null,i.toDisplayString(((L=(b=(_=t.meteo)==null?void 0:_.wave)==null?void 0:b.wd)==null?void 0:L.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((P=(w=(x=t.meteo)==null?void 0:x.wave)==null?void 0:w.wd)==null?void 0:P.height,1))+"[m]/"+i.toDisplayString(s.roundPrecision((R=(I=(N=t.meteo)==null?void 0:N.wave)==null?void 0:I.wd)==null?void 0:R.period,1))+"[s]",1)]),i.createElementVNode("div",ni,[li,i.createElementVNode("span",null,i.toDisplayString(((ae=(B=(D=t.meteo)==null?void 0:D.wave)==null?void 0:B.swell)==null?void 0:ae.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((re=(oe=(ie=t.meteo)==null?void 0:ie.wave)==null?void 0:oe.swell)==null?void 0:re.height,1))+"[m]/"+i.toDisplayString(s.roundPrecision((le=(ne=(se=t.meteo)==null?void 0:se.wave)==null?void 0:ne.swell)==null?void 0:le.period,1))+"[s]",1)]),i.createElementVNode("div",ci,[hi,i.createElementVNode("span",null,i.toDisplayString(((W=(M=(q=t.meteo)==null?void 0:q.wave)==null?void 0:M.sig)==null?void 0:W.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((S=(F=(ce=t.meteo)==null?void 0:ce.wave)==null?void 0:F.sig)==null?void 0:S.height,1))+"[m]/"+i.toDisplayString(s.roundPrecision((H=(he=($=t.meteo)==null?void 0:$.wave)==null?void 0:he.sig)==null?void 0:H.period,1))+"[s]",1)]),i.createElementVNode("div",di,[pi,i.createElementVNode("span",null,i.toDisplayString(((Y=(de=t.meteo)==null?void 0:de.current)==null?void 0:Y.direction)||"-")+"/"+i.toDisplayString(s.roundPrecision((K=(Q=t.meteo)==null?void 0:Q.current)==null?void 0:K.kts,2))+"[kts]",1)]),i.createElementVNode("div",mi,[yi,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision((we=(_e=t.meteo)==null?void 0:_e.precip)==null?void 0:we.inter6h,2))+"[mm]",1)]),i.createElementVNode("div",fi,[ui,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision(((Le=t.meteo)==null?void 0:Le.visibility)/1852,0))+"[nm]",1)]),i.createElementVNode("div",gi,[bi,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision((ve=t.meteo)==null?void 0:ve.temp,0))+"[°C]",1)]),i.createElementVNode("div",_i,[wi,i.createElementVNode("span",null,i.toDisplayString(s.roundPrecision((xe=t.meteo)==null?void 0:xe.waterTemp,2))+"[°C]",1)])]),i.createCommentVNode("",!0)])],512)),[[i.vShow,o.showMeteo]])}const vi=k(qa,[["render",Li],["__scopeId","data-v-efcf572f"]]),xi={name:"IdmWarZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"war-zone-source",zoneLayer:"war-zone-layer",zoneLabelLayer:"war-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-color":"#f44336","fill-opacity":.4}},this.beforeLayer),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#f44336"}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-1]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ci(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const ki=k(xi,[["render",Ci]]),Si={name:"IdmGmdssArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"gmdss-area-source",areaLayer:"gmdss-area-layer",areaLabelLayer:"gmdss-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","val"],"AreaI","#EB8996","AreaII","#6F448B","AreaIII","#3E8BD3","AreaIV","#5EBCC4","AreaV","#00AAE7","AreaVI","#9CCE6D","AreaVII","#F4AE00","AreaVIII","#EF9A85","AreaIX","#00AAA7","AreaX","#7AC49F","AreaXI","#DFDFDF","AreaXII","#FFF974","AreaXIII","#EF9A85","AreaXIV","#86A2D1","AreaXV","#EC8972","AreaXVI","#EAC2DA","AreaXVII","#B9C8E7","AreaXVIII","#BBA1C8","AreaXIX","#FAE0BD","AreaXX","#DBECC8","AreaXXI","#D496AF","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-opacity":.8,"text-color":"#000"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ei(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const zi=k(Si,[["render",Ei]]),Pi={name:"IdmEcaZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"eca-zone-source",zoneLayer:"eca-zone-layer",zoneLabelLayer:"eca-zone-label-layer"}},watch:{zone:{handler(){this.zone?this.handleRender():this.handleClear()}}},methods:{handleRender(){var a;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(a=this.map)==null||a.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#05f324"}}),this.map.addLayer({id:this.zoneLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-color":"#04c021","line-width":1,"line-opacity":1}},this.beforeLayer),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-max-width":16,"text-justify":"left","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLayer+"-border")&&this.map.removeLayer(this.zoneLayer+"-border"),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Ni(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const Ti=k(Pi,[["render",Ni]]),Qr="",Ii={name:"IdmAlertZone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"alert-zone-source",polygonLayer:"alert-zone-polygon-layer",polygonLabelLayer:"alert-zone-polygon-label-layer",lineLayer:"alert-zone-line-layer",lineLabelLayer:"alert-zone-line-label-layer",pointLayer:"alert-zone-point-layer",showZone:!1,form:{}}},watch:{zone:{handler(){var a,e;this.zone?(this.handleRender(),(a=this.map)==null||a.on("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.polygonLabelLayer,this.lineLabelLayer,this.pointLayer],this.handleClick))}}},methods:{handleClick(a){var r;const e=a.features[0],t=(r=this.zone)==null?void 0:r.features.filter(o=>{var s;return o.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(t){this.showZone=!0,this.form={...t.properties};const o=document.getElementById("idm-gl3-zone-info");this.marker?this.marker.setLngLat([a.lngLat.lng,a.lngLat.lat]):this.marker=new j.Marker(o).setLngLat([a.lngLat.lng,a.lngLat.lat]).setOffset([0,0]).addTo(this.map)}},handleRender(){var a;this.map?(this.handleClear(),this.zone&&(this.map.getSource(this.source)?(a=this.map)==null||a.getSource(this.source).setData(this.zone):(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.polygonLayer,type:"fill",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"fill-outline-color":"#d57d02","fill-opacity":.4,"fill-color":"#d57d02"}}),this.map.addLayer({id:this.polygonLayer+"-border",type:"line",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],paint:{"line-width":1,"line-color":"#d57d02"}}),this.map.addLayer({id:this.lineLayer,type:"line",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],paint:{"line-color":"#d57d02","line-width":2}}),this.map.addLayer({id:this.polygonLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Polygon"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["all",["==","$type","LineString"],["!=","disabled",!0]],layout:{"symbol-placement":"line-center","icon-image":"alert","icon-size":.08,"icon-allow-overlap":!0,"icon-rotation-alignment":"viewport"},paint:{"icon-opacity":.8}}),this.map.addLayer({id:this.pointLayer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-image":"alert","icon-size":.08},paint:{"icon-opacity":.8}})))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.polygonLayer)&&this.map.removeLayer(this.polygonLayer),this.map.getLayer(this.polygonLayer+"-border")&&this.map.removeLayer(this.polygonLayer+"-border"),this.map.getLayer(this.polygonLabelLayer)&&this.map.removeLayer(this.polygonLabelLayer),this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getLayer(this.pointLayer)&&this.map.removeLayer(this.pointLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},Vi={id:"idm-gl3-zone-info"},Ri=["innerHTML"];function Di(a,e,t,r,o,s){var n;return i.withDirectives((i.openBlock(),i.createElementBlock("div",Vi,[i.createElementVNode("div",{class:"iconfont close",onClick:e[0]||(e[0]=l=>o.showZone=!1)},""),i.createElementVNode("div",{class:"rich-context",innerHTML:(n=o.form)==null?void 0:n.name},null,8,Ri)],512)),[[i.vShow,o.showZone]])}const $i=k(Ii,[["render",Di]]),Kr="",Ai={name:"IdmPort",props:{map:{type:Object},port:{type:Object},beforeLayer:{type:String}},emits:["port"],data(){return{source:"port-source",layer:"port-layer",showPort:!1,form:{},marker:void 0}},computed:{computeLat(){return function(a){return C.LngLatHelper.lat2pretty(a,4).pretty}},computeLng(){return function(a){return C.LngLatHelper.lng2pretty(a,4).pretty}}},watch:{port:{handler(){var a,e;this.port?(this.handleRender(),(a=this.map)==null||a.on("click",[this.layer],this.handleClick)):(this.handleClear(),(e=this.map)==null||e.off("click",[this.layer],this.handleClick))}}},methods:{handleClick(a){var r;const e=a.features[0],t=(r=this.port)==null?void 0:r.features.filter(o=>{var s;return o.properties.id===((s=e==null?void 0:e.properties)==null?void 0:s.id)})[0];if(t){this.showPort=!0,this.form={...t.properties},this.form.lng=t.geometry.coordinates[0],this.form.lat=t.geometry.coordinates[1];const o=document.getElementById("port-info");this.marker?this.marker.setLngLat([a.lngLat.lng,a.lngLat.lat]):this.marker=new j.Marker(o).setLngLat([a.lngLat.lng,a.lngLat.lat]).setOffset([0,-85]).addTo(this.map)}},handleEmit(){this.$emit("port",this.form)},handleRender(){var a;this.map?this.port&&(this.map.getSource(this.source)?(a=this.map)==null||a.getSource(this.source).setData(this.port):(this.map.addSource(this.source,{type:"geojson",data:this.port}),this.map.addLayer({id:this.layer,type:"symbol",source:this.source,filter:["all",["==","$type","Point"],["!=","disabled",!0]],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"port","text-anchor":"left","text-field":"{name}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[1,0]},paint:{"text-color":"rgba(0, 0, 0, 0.8)","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.showPort=!1,this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}},ke=a=>(i.pushScopeId("data-v-c07e4c45"),a=a(),i.popScopeId(),a),Bi={id:"port-info"},Mi={class:"port-box"},ji={class:"flex-start"},Oi=ke(()=>i.createElementVNode("label",null,"Name : ",-1)),Wi={class:"flex-start"},Fi=ke(()=>i.createElementVNode("label",null,"Position : ",-1)),Hi={class:"flex-start"},Ui=ke(()=>i.createElementVNode("label",null,"LoCode : ",-1)),Zi={class:"flex-start",style:{"align-items":"flex-start"}},Gi=ke(()=>i.createElementVNode("label",null,"Region : ",-1));function Ji(a,e,t,r,o,s){return i.withDirectives((i.openBlock(),i.createElementBlock("div",Bi,[i.createElementVNode("div",{class:"close iconfont",onClick:e[0]||(e[0]=n=>o.showPort=!1)},""),i.createElementVNode("div",Mi,[i.createElementVNode("div",ji,[Oi,i.createElementVNode("span",{onClick:e[1]||(e[1]=(...n)=>s.handleEmit&&s.handleEmit(...n))},i.toDisplayString(o.form.name),1)]),i.createElementVNode("div",Wi,[Fi,i.createElementVNode("span",null,i.toDisplayString(s.computeLat(o.form.lat))+", "+i.toDisplayString(s.computeLng(o.form.lng)),1)]),i.createElementVNode("div",Hi,[Ui,i.createElementVNode("span",null,i.toDisplayString(o.form.loCode||"-"),1)]),i.createElementVNode("div",Zi,[Gi,i.createElementVNode("span",null,i.toDisplayString(o.form.zoneName||"-"),1)])])],512)),[[i.vShow,o.showPort]])}const Xi=k(Ai,[["render",Ji],["__scopeId","data-v-c07e4c45"]]),qi={name:"IdmLoadLine",props:{map:{type:Object},line:{type:Object},beforeLayer:{type:String}},data(){return{source:"load-line-source",lineLayer:"load-line-layer",lineLabelLayer:"load-line-label-layer"}},watch:{line:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.line&&(this.map.addSource(this.source,{type:"geojson",data:this.line}),this.map.addLayer({id:this.lineLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.75,"fill-color":["match",["get","val"],"LLGreen","#A0C0C0","LLRed","#F5A39D","LLBlue","#6B94E4","#ffffff"]}},this.beforeLayer),this.map.addLayer({id:this.lineLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{lbl} (Length < {shipLength}, {start} - {end})","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.lineLayer)&&this.map.removeLayer(this.lineLayer),this.map.getLayer(this.lineLabelLayer)&&this.map.removeLayer(this.lineLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function Yi(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const Qi=k(qi,[["render",Yi]]),Ki={name:"IdmTimezone",props:{map:{type:Object},zone:{type:Object},beforeLayer:{type:String}},data(){return{source:"time-zone-source",zoneLayer:"time-zone-layer",zoneLabelLayer:"time-zone-label-layer"}},watch:{zone:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.zone&&(this.map.addSource(this.source,{type:"geojson",data:this.zone}),this.map.addLayer({id:this.zoneLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":["match",["get","offSet"],"-11.5","rgba(255,0,0,0.4)","-11","rgba(0,255,0,0.3)","-10.5","rgba(0,255,0,0.3)","-10","rgba(0,0,255,0.3)","-9.5","rgba(0,0,255,0.3)","-9","rgba(255,0,0,0.4)","-8.5","rgba(255,0,0,0.4)","-8","rgba(0,255,0,0.3)","-7.5","rgba(0,255,0,0.3)","-7","rgba(0,0,255,0.3)","-6.5","rgba(0,0,255,0.3)","-6","rgba(255,0,0,0.4)","-5.5","rgba(255,0,0,0.4)","-5","rgba(0,255,0,0.3)","-4.5","rgba(0,255,0,0.3)","-4","rgba(0,0,255,0.3)","-3.5","rgba(0,0,255,0.3)","-3","rgba(255,0,0,0.4)","-2.5","rgba(255,0,0,0.4)","-2","rgba(0,255,0,0.3)","-1.5","rgba(0,255,0,0.3)","-1","rgba(0,0,255,0.3)","-0.5","rgba(0,0,255,0.3)","+0","rgba(255,0,0,0.4)","+0.5","rgba(255,0,0,0.4)","+1","rgba(0,255,0,0.3)","+1.5","rgba(0,255,0,0.3)","+2","rgba(0,0,255,0.3)","+2.5","rgba(0,0,255,0.3)","+3","rgba(255,0,0,0.4)","+3.5","rgba(255,0,0,0.4)","+4","rgba(0,255,0,0.3)","+4.5","rgba(0,255,0,0.3)","+5","rgba(0,0,255,0.3)","+5.5","rgba(0,0,255,0.3)","+6","rgba(255,0,0,0.4)","+6.5","rgba(255,0,0,0.4)","+7","rgba(0,255,0,0.3)","+7.5","rgba(0,255,0,0.3)","+8","rgba(0,0,255,0.3)","+8.5","rgba(0,0,255,0.3)","+9","rgba(255,0,0,0.4)","+9.5","rgba(255,0,0,0.4)","+10","rgba(0,255,0,0.3)","+10.5","rgba(0,255,0,0.3)","+11","rgba(0,0,255,0.3)","+11.5","rgba(0,0,255,0.3)","rgba(255,0,0,0.4)"]}}),this.map.addLayer({id:this.zoneLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{offSet}","text-rotation-alignment":"viewport","text-size":12,"text-offset":[0,1]},paint:{"text-opacity":.8,"text-color":"#fff"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.zoneLayer)&&this.map.removeLayer(this.zoneLayer),this.map.getLayer(this.zoneLabelLayer)&&this.map.removeLayer(this.zoneLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function eo(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const to=k(Ki,[["render",eo]]),ao={name:"IdmVoluntaryReportingArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"vra-source",areaLayer:"vra-layer",areaLabelLayer:"vra-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":1,"line-color":"#9f30f9"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function io(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const oo=k(ao,[["render",io]]),ro={name:"IdmSpecialArea",props:{map:{type:Object},area:{type:Object},beforeLayer:{type:String}},data(){return{source:"special-area-source",areaLayer:"special-area-layer",areaLabelLayer:"special-area-label-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.area.features.forEach(a=>{a.geometry.type==="Polygon"&&a.geometry.coordinates.forEach(e=>C.LngLatHelper.convertToMonotonicLng2(e))}),this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.areaLayer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.4,"fill-color":["match",["get","val"],"DefaultStyle","rgb(0,0,0)","JWCriskArea","rgb(0,0,0)","rgb(0,0,0)"]}},this.beforeLayer),this.map.addLayer({id:this.areaLayer+"-border",type:"line",source:this.source,filter:["==","$type","Polygon"],paint:{"line-width":1,"line-opacity":.4,"line-color":"rgb(0,0,0)"}},this.beforeLayer),this.map.addLayer({id:this.areaLabelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","icon-size":.1,"icon-image":"identify","text-anchor":"top","text-field":"{lbl}","text-rotation-alignment":"viewport","text-size":10,"text-offset":[0,-3.5]},paint:{"icon-opacity":.8,"text-color":"#000","text-halo-color":"#fff","text-halo-width":1}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.areaLayer)&&this.map.removeLayer(this.areaLayer),this.map.getLayer(this.areaLayer+"-border")&&this.map.removeLayer(this.areaLayer+"-border"),this.map.getLayer(this.areaLabelLayer)&&this.map.removeLayer(this.areaLabelLayer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function so(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const no=k(ro,[["render",so]]),lo={name:"IdmTerminator",props:{map:{type:Object},area:{type:Object}},data(){return{source:"terminator-source",layer:"terminator-layer"}},watch:{area:{handler(){this.handleRender()}}},methods:{handleRender(){this.map?(this.handleClear(),this.area&&(this.map.addSource(this.source,{type:"geojson",data:this.area}),this.map.addLayer({id:this.layer,type:"fill",source:this.source,filter:["==","$type","Polygon"],paint:{"fill-outline-color":"silver","fill-opacity":.5,"fill-color":"rgba(0, 0, 0, 0.4)"}}))):setTimeout(()=>{this.handleRender()},500)},handleClear(){this.map.getLayer(this.layer)&&this.map.removeLayer(this.layer),this.map.getSource(this.source)&&this.map.removeSource(this.source)}}};function co(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const ho=k(lo,[["render",co]]),es="",po={name:"IdmLatLng",props:{map:{type:Object},show:{type:Boolean},bottom:{type:String,default:"70px"},toggleVersion:{type:Number}},data(){return{lngLat:void 0,source:"idm-lat-lng-source",layer:"idm-lat-lng-layer",labelLayer:"idm-lat-lng-label-layer",right:10}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){var a;this.map&&((a=this.map)==null||a.on("mousemove",this.handleMouseMove))},immediate:!0},toggleVersion:{handler(){var a,e;this.right=(((a=document.getElementsByClassName("legend-bars")[0])==null?void 0:a.clientWidth)||-10)+(((e=document.getElementsByClassName("right-bar")[0])==null?void 0:e.clientWidth)||0)+20},immediate:!0}},methods:{handleBind(){var a,e;this.show?((a=this.map)==null||a.on("zoomend",this.handleZoomEnd),this.handleRender()):(this.handleClear(),(e=this.map)==null||e.off("zoomend",this.handleZoomEnd))},handleMouseMove(a){const e=a.lngLat,t=C.LngLatHelper.lng2pretty(e.lng,2),r=C.LngLatHelper.lat2pretty(e.lat,2);this.lngLat={lng:t,lat:r}},handleComputeLatLngs(){var r;const a=(r=this.map)==null?void 0:r.getZoom();console.log(a);let e=30;a>4?e=10:a>3&&(e=15);const t=[];for(let o=-60;o<90;o+=e)t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[-180,o],[180,o]]}});for(let o=-180;o<180;o+=e)t.push({type:"Feature",geometry:{type:"LineString",coordinates:[[o,-90],[o,90]]}});for(let o=180;o>-180;o-=e)for(let s=-60;s<90;s+=e)t.push({type:"Feature",geometry:{type:"Point",coordinates:[o,s]},properties:{val:`${s>0?s+" N":s===0?s:s*-1+" S"}, ${o>0?o+" E":o*-1+" W"}`}});return t},handleZoomEnd(){var e;const a=this.handleComputeLatLngs();(e=this.map)==null||e.getSource(this.source).setData(v.featureCollection(a))},handleRender(){if(this.map){const a=this.handleComputeLatLngs();this.map.addSource(this.source,{type:"geojson",data:{type:"FeatureCollection",features:a}}),this.map.addLayer({id:this.layer,type:"line",source:this.source,filter:["==","$type","LineString"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":"rgba(0, 0, 0, 0.3)","line-width":1}}),this.map.addLayer({id:this.labelLayer,type:"symbol",source:this.source,filter:["==","$type","Point"],layout:{"symbol-placement":"point","text-field":"{val}","text-rotation-alignment":"viewport","text-offset":[0,1],"text-size":10,"text-allow-overlap":!0},paint:{"text-opacity":.8}})}},handleClear(){var a,e,t,r,o,s;(a=this.map)!=null&&a.getLayer(this.layer)&&((e=this.map)==null||e.removeLayer(this.layer)),(t=this.map)!=null&&t.getLayer(this.labelLayer)&&((r=this.map)==null||r.removeLayer(this.labelLayer)),(o=this.map)!=null&&o.getSource(this.source)&&((s=this.map)==null||s.removeSource(this.source))}}},mo=(a=>(i.pushScopeId("data-v-73241fe7"),a=a(),i.popScopeId(),a))(()=>i.createElementVNode("span",null,", ",-1));function yo(a,e,t,r,o,s){return o.lngLat?(i.openBlock(),i.createElementBlock("div",{key:0,class:"lat-lng-tip",style:i.normalizeStyle({right:o.right+"px",bottom:t.bottom})},[i.createElementVNode("span",null,i.toDisplayString(o.lngLat.lat.pretty),1),mo,i.createElementVNode("span",null,i.toDisplayString(o.lngLat.lng.pretty),1)],4)):i.createCommentVNode("",!0)}const Pe=k(po,[["render",yo],["__scopeId","data-v-73241fe7"]]),fo={name:"IdmMeasure",props:{map:{type:Object},show:{type:Boolean}},data(){return{geojson:[],source:"measure-source",layer:"measure-layer",labelLayer:"measure-label-layer",tmpSource:"measure-tmp-source",tmpLayer:"measure-tmp-layer",tmpLabelLayer:"measure-tmp-label-layer",closeMarkers:{},pointMarkers:{},tipMarker:void 0,contextmenu:void 0,navigation:"RL"}},watch:{show:{handler(){this.handleBind()},immediate:!0},map:{handler(){this.map&&this.handleBind()}}},methods:{handleBind(){var a,e,t,r,o,s,n,l,c,d;if(this.show)(a=this.map)==null||a.getCanvas().addEventListener("keydown",this.handleKeydown),(e=this.map)==null||e.on("mousemove",this.handleMove),(t=this.map)==null||t.on("dblclick",this.handleDblClick),(r=this.map)==null||r.on("click",this.handleClick),(o=this.map)==null||o.on("contextmenu",this.handleContextmenu),this.map&&(this.map.getCanvas().style.cursor="crosshair");else{(s=this.map)==null||s.getCanvas().removeEventListener("keydown",this.handleKeydown),(n=this.map)==null||n.off("mousemove",this.handleMove),(l=this.map)==null||l.off("dblclick",this.handleDblClick),(c=this.map)==null||c.off("click",this.handleClick),(d=this.map)==null||d.off("contextmenu",this.handleContextmenu);for(const p of this.geojson)this.handleClear(p,!0);this.geojson=[],this.map&&(this.map.getCanvas().style.cursor="grab")}},handleKeydown(a){if(a.key==="Shift"){this.navigation=this.navigation==="RL"?"GC":"RL";const t=this.geojson.at(-1).features.filter(r=>r.geometry.type==="Point");t.length&&(t.at(-1).properties.mode=this.navigation)}},handleDrag(a){var t,r,o,s,n,l,c,d,p,h;const e=(r=(t=a.target)==null?void 0:t._element)==null?void 0:r.id;if((e==null?void 0:e.split("-").length)===2){const g=this.geojson.filter(m=>m.id===e.split("-")[0])[0];this.pointMarkers[g.id].filter(m=>{var _;return((_=m._element)==null?void 0:_.id)===e})[0].setLngLat([(s=(o=a.target)==null?void 0:o._lngLat)==null?void 0:s.lng,(l=(n=a.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);let f;g.features.forEach((m,_)=>{if(m.geometry.type==="Point"&&m.properties.id==e.split("-")[1]){f=_;return}});const u=g.features.filter(m=>m.geometry.type==="Point");this.handleTmpPointUpdate(g,u[f-1],{lng:(d=(c=a.target)==null?void 0:c._lngLat)==null?void 0:d.lng,lat:(h=(p=a.target)==null?void 0:p._lngLat)==null?void 0:h.lat,properties:u[f].properties},f===u.length-1?void 0:u[f+1])}},handleDragEnd(a){var t,r,o,s,n,l,c,d,p,h;const e=(r=(t=a.target)==null?void 0:t._element)==null?void 0:r.id;if((e==null?void 0:e.split("-").length)===2){const g=this.geojson.filter(u=>u.id===e.split("-")[0])[0];this.pointMarkers[g.id].filter(u=>{var m;return((m=u._element)==null?void 0:m.id)===e})[0].setLngLat([(s=(o=a.target)==null?void 0:o._lngLat)==null?void 0:s.lng,(l=(n=a.target)==null?void 0:n._lngLat)==null?void 0:l.lat]);const f=g.features.filter(u=>u.geometry.type==="Point"&&u.properties.id==e.split("-")[1])[0];f.geometry.coordinates=[(d=(c=a.target)==null?void 0:c._lngLat)==null?void 0:d.lng,(h=(p=a.target)==null?void 0:p._lngLat)==null?void 0:h.lat],g.features=g.features.filter(u=>u.geometry.type==="Point"),this.handlePointUpdate(g)}},handleContextmenu(a){var t,r,o,s;a.preventDefault(),(t=this.contextmenu)==null||t.remove();const e=(s=(o=(r=a.originalEvent)==null?void 0:r.target)==null?void 0:o.parentElement)==null?void 0:s.id;if((e==null?void 0:e.split("-").length)===2){const l=this.geojson.filter(c=>c.id===e.split("-")[0])[0].features.filter(c=>c.geometry.type==="Point");if(l.length>2&&l.filter(d=>d.properties.id===(e==null?void 0:e.split("-")[1]))[0]){const d=document.createElement("div");d.className="point-contextmenu-marker",d.innerHTML=`<span id="del-${e}" class="del-point">Del</span>`,this.contextmenu=new j.Marker(d).setOffset([24,0]).setLngLat([a.lngLat.lng,a.lngLat.lat]).addTo(this.map)}}},handleClick(a){var t,r,o,s,n;(t=this.contextmenu)==null||t.remove();const e=a.originalEvent.target.className;if(e==="marker-close"){const l=(o=(r=a.originalEvent)==null?void 0:r.srcElement)==null?void 0:o.id,c=this.geojson.filter(d=>d.id===l)[0];c&&this.handleClear(c,!0),this.geojson=this.geojson.filter(d=>d.id!==l)}else if(e==="del-point"){const l=(n=(s=a.originalEvent.target.id)==null?void 0:s.replace("del-",""))==null?void 0:n.split("-"),c=this.geojson.filter(d=>d.id===l[0])[0];c.features=c.features.filter(d=>d.geometry.type==="Point"&&d.properties.id!==l[1]),this.handlePointUpdate(c)}else if(e!=="marker-label"){let l=this.geojson.at(-1);l||(l=v.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(l)),l.features=l.features.filter(d=>d.geometry.type==="Point");const c=v.feature({type:"Point",coordinates:[a.lngLat.lng,a.lngLat.lat]},{id:new Date().getTime().toString(),mode:this.navigation});l.features.push(c),this.handlePointUpdate(l)}},handlePointUpdate(a){const e=a.features;if(e.length>1){let t=0;const r=[];for(let o=1;o<e.length;o++){const s=e[o-1],n=e[o],l=s.properties,c={lng:s.geometry.coordinates[0],lat:s.geometry.coordinates[1]},d={lng:n.geometry.coordinates[0],lat:n.geometry.coordinates[1]},p=C.LaneHelper.calculateDistance(c,d,l.mode==="RL",2),h=C.LaneHelper.calculateBearing(c,d,l.mode==="RL",2);t=C.LngLatHelper.roundPrecision(t+p,2);let g;l.mode==="RL"?g=C.LngLatHelper.convertToMonotonicLng([c,d]):g=C.LngLatHelper.convertToMonotonicLng(C.LaneHelper.interpolateCoordinates(c,d,200));const y=v.lineString(g.map(f=>[f.lng,f.lat]));y.properties.dist=p,y.properties.bearing=h,y.properties.total=t,r.push(y)}e.push(...r),a.total=t}return this.handleRender(a),a},handleTmpPointUpdate(a,e,t,r){const o=v.featureCollection([]);let s,n;if(e){const c=e.properties,d={lng:e.geometry.coordinates[0],lat:e.geometry.coordinates[1]},p={lng:t.lng,lat:t.lat};s=C.LaneHelper.calculateDistance(d,p,c.mode==="RL",2),n=C.LaneHelper.calculateBearing(d,p,c.mode==="RL",2);let h;c.mode==="RL"?h=C.LngLatHelper.convertToMonotonicLng([d,p]):h=C.LngLatHelper.convertToMonotonicLng(C.LaneHelper.interpolateCoordinates(d,p,200));const g=v.lineString(h.map(y=>[y.lng,y.lat]));g.properties.dist=s,g.properties.bearing=n,o.features.push(g)}if(r){const c=t.properties,d=t,p={lng:r.geometry.coordinates[0],lat:r.geometry.coordinates[1]};s=C.LaneHelper.calculateDistance(d,p,c.mode==="RL",2),n=C.LaneHelper.calculateBearing(d,p,c.mode==="RL",2);let h;c.mode==="RL"?h=C.LngLatHelper.convertToMonotonicLng([d,p]):h=C.LngLatHelper.convertToMonotonicLng(C.LaneHelper.interpolateCoordinates(d,p,200));const g=v.lineString(h.map(y=>[y.lng,y.lat]));g.properties.dist=s,g.properties.bearing=n,o.features.push(g)}this.map.getSource(this.tmpSource)?this.map.getSource(this.tmpSource).setData(o):this.map.addSource(this.tmpSource,{type:"geojson",data:o}),this.map.getLayer(this.tmpLayer)||this.map.addLayer({id:this.tmpLayer,type:"line",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2,"line-opacity":1,"line-dasharray":[3,2]}}),this.map.getLayer(this.tmpLabelLayer)||this.map.addLayer({id:this.tmpLabelLayer,type:"symbol",source:this.tmpSource,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist} nm","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});let l;if(r?l='<div class="marker-label">Drag and drop</div>':l=`<div class="marker-label">Tol distance: <b>${C.LngLatHelper.roundPrecision((a.total??0)+s,2)}</b>nm, bearing: <b>${n}</b>°</div><div class="marker-label">${this.navigation==="RL"?"RL":"GC"} mode, using 'Shift' to switch</div><div class="marker-label">Double click to end</div>`,this.tipMarker)this.tipMarker._element.innerHTML=l,this.tipMarker.setLngLat([t.lng,t.lat]);else{const c=document.createElement("div");c.className="tip-marker",c.innerHTML=l,this.tipMarker=new j.Marker(c).setOffset([140,0]).setLngLat([t.lng,t.lat]).addTo(this.map)}},handleMove(a){this.map.getCanvas().style.cursor="crosshair";let e=this.geojson.at(-1);e||(e=v.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e));const t=e.features.filter(r=>r.geometry.type==="Point");t!=null&&t.length&&this.handleTmpPointUpdate(e,t.at(-1),{lng:a.lngLat.lng,lat:a.lngLat.lat})},handleDblClick(a){a.preventDefault();let e=this.geojson.at(-1);e.closed=!0,this.handleRender(e),e=v.featureCollection([],{id:new Date().getTime().toString()}),this.geojson.push(e)},handleRender(a){var e;if((e=a==null?void 0:a.features)!=null&&e.length){const t=`${a.id}-${this.source}`,r=`${a.id}-${this.layer}`,o=`${a.id}-${this.labelLayer}`;this.map.getSource(t)?this.map.getSource(t).setData(a):this.map.addSource(t,{type:"geojson",data:a}),this.handleClear(a,!1),this.map.addLayer({id:r,type:"line",source:t,filter:["==","$type","LineString"],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#F44336","line-width":2}}),this.map.addLayer({id:o,type:"symbol",source:t,filter:["==","$type","LineString"],layout:{"symbol-placement":"line-center","text-field":"{dist}nm,{bearing}°","text-rotation-alignment":"map","text-size":12},paint:{"text-opacity":1,"text-color":"#fff","text-halo-color":"#F44336","text-halo-width":4,"text-halo-blur":0}});const s=a.features.filter(n=>n.geometry.type==="Point");for(const n of s){const l=document.createElement("div");l.id=`${a.id}-${n.properties.id}`,l.className=`${a.closed?"point-marker closed":"point-marker"}`,l.innerHTML='<div class="marker-circle"></div>';const c=new j.Marker({element:l,draggable:!0,contextmenu:!0}).setLngLat(n.geometry.coordinates).addTo(this.map);c.on("drag",this.handleDrag),c.on("dragend",this.handleDragEnd),this.pointMarkers[a.id]?this.pointMarkers[a.id].push(c):this.pointMarkers[a.id]=[c]}if(a.closed){const n=s.at(-1),c=a.features.filter(p=>p.geometry.type==="LineString").at(-1),d=document.createElement("div");d.className="point-summary-marker",d.innerHTML=`<div id="${a.id}" class="marker-close">×</div><div class="marker-label">Tol: ${c.properties.total}nm</div>`,this.closeMarkers[a.id]=new j.Marker(d).setOffset([60,0]).setLngLat(n.geometry.coordinates).addTo(this.map)}}},handleClear(a,e=!0){var s,n,l,c,d,p,h,g,y;const t=`${a.id}-${this.source}`,r=`${a.id}-${this.layer}`,o=`${a.id}-${this.labelLayer}`;(s=this.map)!=null&&s.getLayer(r)&&this.map.removeLayer(r),(n=this.map)!=null&&n.getLayer(o)&&this.map.removeLayer(o),(l=this.map)!=null&&l.getLayer(this.tmpLayer)&&this.map.removeLayer(this.tmpLayer),(c=this.map)!=null&&c.getLayer(this.tmpLabelLayer)&&this.map.removeLayer(this.tmpLabelLayer),(d=this.closeMarkers[a.id])==null||d.remove(),this.closeMarkers[a.id]=void 0,(p=this.pointMarkers[a.id])==null||p.forEach(f=>{f==null||f.remove()}),this.pointMarkers[a.id]=[],(h=this.tipMarker)==null||h.remove(),this.tipMarker=void 0,e&&((g=this.map)!=null&&g.getSource(t))&&this.map.removeSource(t),e&&((y=this.map)!=null&&y.getSource(this.tmpSource))&&this.map.removeSource(this.tmpSource)}}};function uo(a,e,t,r,o,s){return i.openBlock(),i.createElementBlock("div")}const go=k(fo,[["render",uo]]),as="",bo={name:"IdmENC",props:{map:{type:Object},enabled:{type:Boolean},beforeLayer:{type:String,default:"grayland"},bottom:{type:String,default:"260px"},token:{type:String,default:""},toggleVersion:{type:Number},permission:{type:Number}},emits:["enc"],data(){return{helper:ge,vendor:this.$attrs.permission&ge.LEVEL.Supper?"hi":"i4",right:10}},watch:{vendor:{handler(){this.$emit("enc",this.vendor)},immediate:!0},toggleVersion:{handler(){var a;this.right=(((a=document.getElementsByClassName("right-bar")[0])==null?void 0:a.clientWidth)||0)+10},immediate:!0}},methods:{}},Ie=a=>(i.pushScopeId("data-v-8928221f"),a=a(),i.popScopeId(),a),_o={key:0},wo={class:"bar-item"},Lo=[Ie(()=>i.createElementVNode("span",{class:"iconfont"},"HI",-1))],vo=[Ie(()=>i.createElementVNode("span",{class:"iconfont"},"I4",-1))];function xo(a,e,t,r,o,s){const n=i.resolveComponent("ElTooltip");return t.enabled&&t.permission&o.helper.LEVEL.Supper?(i.openBlock(),i.createElementBlock("div",_o,[i.createElementVNode("div",{class:"menu-bar-box",style:i.normalizeStyle({position:"absolute",right:o.right+"px",bottom:t.bottom})},[i.createElementVNode("div",wo,[i.createVNode(n,{placement:"left",effect:"light",content:"Hifleet","show-after":2e3},{default:i.withCtx(()=>[i.createElementVNode("div",{class:i.normalizeClass(o.vendor==="hi"?"menu-icon active":"menu-icon"),onClick:e[0]||(e[0]=l=>o.vendor="hi")},Lo,2)]),_:1}),i.createVNode(n,{placement:"left",effect:"light",content:"I4insight","show-after":2e3},{default:i.withCtx(()=>[i.createElementVNode("div",{class:i.normalizeClass(o.vendor==="i4"?"menu-icon active":"menu-icon"),onClick:e[1]||(e[1]=l=>o.vendor="i4")},vo,2)]),_:1})])],4)])):i.createCommentVNode("",!0)}const Co=k(bo,[["render",xo],["__scopeId","data-v-8928221f"]]),rs="",ko={name:"IdmGLV2",components:{IdmGlLayer:xt,IdmWindBarb:Pt,IdmWindParticle:Rt,IdmCurrents:jt,IdmCurrentParticle:Ut,IdmSigWave:Jt,IdmSwell:Yt,IdmPrmsl:ea,IdmIceberg:ia,IdmTropicals:ze,IdmPrecip3h:Pa,IdmVisibility:Ra,IdmWaterTemp:Ma,IdmTemp:Ha,IdmArctic:Xa,IdmWarZone:ki,IdmGmdssArea:zi,IdmEcaZone:Ti,IdmAlertZone:$i,IdmPort:Xi,IdmLoadLine:Qi,IdmTimezone:to,IdmVRA:oo,IdmSpecialArea:no,IdmTerminator:ho,IdmLatLng:Pe,IdmMeasure:go,IdmPoint:vi,IdmENC:Co},props:{map:{type:Object,default:void 0},token:{type:String},ts:{type:String},beforeLayer:{type:String,default:""},toggleVersion:{type:Number}},emits:["toggleVersion","activeWeatherLayers"],data(){return{weatherLayers:{},activeWeatherLayers:[],weatherWeight:0,otherLayers:{},otherWeight:0,showCoord:!1,showMeasure:!1,showPoint:!1,show3d:!1,meteo:void 0,source:"",gateway:"https://cbe.idmwx.com",mapProjection:"mercator",zoom:6,viewport:void 0,particleFactor:void 0,showRampColor:!1,activeWindLayer:!1,showWindParticle:!1,showCurrentParticle:!1,enc:"",defaultMeteoToken:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNseTVudHJzYzAwNWUwbHBsZHkyaDRqczMiLCJyb2xlIjoxLCJuYW1lIjoiZmFrZUBvcm13eC5jb20iLCJwbGF0SWQiOiJnZDBtdDFkIiwiY29tcGFueSI6eyJpZCI6bnVsbCwiY2hpbGRyZW4iOltdfSwiaWF0IjoxNzIzMDI0MDI0LCJleHAiOjM5MzA1NDQwMjR9.RrKcdcMnq-FxBLJQ-i6lx2FscDE46y8EvHIemPW4HTg",helper:new Te}},watch:{ts:{handler(a,e){a&&e&&A(a).utc().format("yyyy-MM-DD HH")!==A(e).utc().format("yyyy-MM-DD HH")&&this.$nextTick(()=>{this.handleDateChange({tropicals:!1})})},immediate:!0},map:{handler(){this.map&&(this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.viewport=new Ce(this.map),this.handleRampColorInitial())},immediate:!0},enc:{handler(a,e){var t,r,o,s,n,l,c,d;a?((r=(t=this.map)==null?void 0:t.getLayer(a))==null||r.setLayoutProperty("visibility","visible"),(s=(o=this.map)==null?void 0:o.getLayer(e))==null||s.setLayoutProperty("visibility","none")):((l=(n=this.map)==null?void 0:n.getLayer("i4"))==null||l.setLayoutProperty("visibility","none"),(d=(c=this.map)==null?void 0:c.getLayer("hi"))==null||d.setLayoutProperty("visibility","none"))}},activeWeatherLayers:{handler(){var a,e,t,r,o,s,n,l,c,d,p,h,g,y,f,u,m,_;if(!this.map)return!1;this.activeWeatherLayers.length>0?((e=(a=this.map)==null?void 0:a.getLayer(this.enc))==null||e.setLayoutProperty("visibility","none"),(r=(t=this.map)==null?void 0:t.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||r.setLayoutProperty("visibility","visible"),(s=this.map)!=null&&s.getLayer((o=this.viewport)==null?void 0:o.rampColorLayer)&&((n=this.map)!=null&&n.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((c=this.map)==null||c.moveLayer((l=this.viewport)==null?void 0:l.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(p=this.map)!=null&&p.getLayer((d=this.viewport)==null?void 0:d.particleLayer)&&((h=this.map)!=null&&h.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&this.mapProjection==="mercator"&&((y=this.map)==null||y.moveLayer((g=this.viewport)==null?void 0:g.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id))):((u=(f=this.map)==null?void 0:f.getLayer(this.enc))==null||u.setLayoutProperty("visibility","visible"),(_=(m=this.map)==null?void 0:m.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))==null||_.setLayoutProperty("visibility","none")),this.$emit("activeWeatherLayers",this.activeWeatherLayers)},immediate:!0}},methods:{async fetchWeatherLayers(a={tropicals:!1}){var o,s,n,l,c,d,p,h;const e=new Date().valueOf();let t=0,r=0;if(this.map){const g=((o=this.map)==null?void 0:o.getZoom())+1,y=(s=this.map)==null?void 0:s.getBounds(),f=`${y._sw.lng},${y._sw.lat},${y._ne.lng},${y._ne.lat}`;if(this.handleRampColorState(),this.particleFactor){const u=be.WEATHER_LAYERS.find(m=>{var _;return((_=m.peer)==null?void 0:_.weight)===this.particleFactor.weight});this.particleFactor.particle?this.weatherWeight=this.weatherWeight&u.weight?this.weatherWeight:this.weatherWeight+u.weight:this.weatherWeight=this.weatherWeight&u.weight?this.weatherWeight-u.weight:this.weatherWeight}if(this.weatherWeight>0){let u=this.weatherWeight,m;if(a.tropicals||this.weatherWeight&256&&(m=this.weatherLayers.tropicals,m&&(u-=256,m.version=Math.random()+1)),u>0){const _=await U.get(`${this.gateway}/api/arc/weather/layers/links?l=${u}&v=${this.source}&z=${g}&bbox=${f}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(r=new Date().valueOf()-(e+t),console.log("weather links elapsed: ",r,", total: ",t+=r),((n=_==null?void 0:_.data)==null?void 0:n.code)===0){const b=(l=_==null?void 0:_.data)==null?void 0:l.data,L=[];for(const w in b)w==="ice-edge"&&(b[w]="https://idm-hz.oss-cn-hangzhou.aliyuncs.com/test/sea_ice_contours.geojson"),w!=="tropicals"&&L.push(U.get(b[w],{headers:{Authorization:this.token||this.defaultMeteoToken,key:w},responseType:/\.(jpg|png)$/.test(b[w])?"blob":"json"}).catch(P=>{console.log(`[${w}] fetch layer error: ${P}`)}));const x=await Promise.all(L);this.weatherLayers={},x.map(w=>{var I,R,D,B;const P=((I=w==null?void 0:w.data)==null?void 0:I.data)||(w==null?void 0:w.data),N=(D=(R=w==null?void 0:w.config)==null?void 0:R.headers)==null?void 0:D.key;N&&P&&(this.weatherLayers[N]={raw:P,type:((B=w==null?void 0:w.config)==null?void 0:B.responseType)==="blob"?"image":"json",etime:this.ts})}),b.tropicals&&U.get(b.tropicals,{headers:{Authorization:this.token||this.defaultMeteoToken,key:"tropicals"}}).then(w=>{var I,R,D;const P=C.TropicalHelper.convert2Geojson(((I=w==null?void 0:w.data)==null?void 0:I.data)||(w==null?void 0:w.data)),N=(D=(R=w==null?void 0:w.config)==null?void 0:R.headers)==null?void 0:D.key;this.weatherLayers[N]={data:P,active:!0,cached:!1,type:"json",etime:this.ts,version:Math.random()+1}})}if(r=new Date().valueOf()-(e+t),console.log("weather layers elapsed: ",r,", total: ",t+=r),this.weatherLayers["swell-direction"]||this.weatherLayers["swell-height"]){const b=(c=this.weatherLayers["swell-direction"])==null?void 0:c.raw,L=(d=this.weatherLayers["swell-height"])==null?void 0:d.raw;delete this.weatherLayers["swell-direction"],delete this.weatherLayers["swell-height"],this.weatherLayers.swell={type:"json",direction:b,height:{raw:L},etime:this.ts}}if(this.weatherLayers["current-direction"]||this.weatherLayers["current-speed"]){const b=(p=this.weatherLayers["current-direction"])==null?void 0:p.raw,L=(h=this.weatherLayers["current-speed"])==null?void 0:h.raw;delete this.weatherLayers["current-direction"],delete this.weatherLayers["current-speed"],this.weatherLayers.current={type:"json",direction:b,speed:{raw:L},etime:this.ts}}}m&&(m.etime=this.ts,m.cached=!0,this.weatherLayers.tropicals=m)}this.handleWeatherLayerToggle(),this.handleDragEndWithZoom4Json()}this.$emit("toggleVersion",Math.random())},async fetchOtherLayers(a={all:!1,dayNight:!1,enc:!1}){var e,t,r,o;if(this.map){let s=this.otherWeight;if(s){let n=!1;if(this.otherWeight&2048&&(s=this.otherWeight-2048,n=!0),s){if(a.all){const l=await U.get(`${this.gateway}/api/arc/other/layers/links?l=${s}&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((e=l==null?void 0:l.data)==null?void 0:e.code)===0){const c=(t=l==null?void 0:l.data)==null?void 0:t.data,d=[];for(const h in c)d.push(U.get(c[h],{headers:{Authorization:this.token||this.defaultMeteoToken,key:h}}));const p=await Promise.all(d);this.otherLayers={enc:n},p.map(h=>{var f,u,m;const g=((f=h==null?void 0:h.data)==null?void 0:f.data)||(h==null?void 0:h.data),y=(m=(u=h==null?void 0:h.config)==null?void 0:u.headers)==null?void 0:m.key;this.otherLayers[y]=g})}}else if(a.dayNight&&s&1024){const l=await U.get(`${this.gateway}/api/arc/other/layers/links?l=1024&t=${this.ts}`,{headers:{Authorization:this.token||this.defaultMeteoToken}});if(((r=l==null?void 0:l.data)==null?void 0:r.code)===0){const c=(o=l==null?void 0:l.data)==null?void 0:o.data,d=[];for(const h in c)d.push(U.get(c[h],{headers:{Authorization:this.token||this.defaultMeteoToken,key:h}}));(await Promise.all(d)).map(h=>{var f,u,m;const g=((f=h==null?void 0:h.data)==null?void 0:f.data)||(h==null?void 0:h.data),y=(m=(u=h==null?void 0:h.config)==null?void 0:u.headers)==null?void 0:m.key;this.otherLayers[y]=g})}}}else this.otherLayers={enc:n}}else this.otherLayers={};this.handleBeforeLayerToggle()}},handleRampColorState(){var a;if(this.showRampColor=!1,this.showWindParticle=!1,this.showCurrentParticle=!1,(a=this.particleFactor)!=null&&a.particle)this.showRampColor=!0,this.showWindParticle=this.particleFactor.key==="wind",this.showCurrentParticle=this.particleFactor.key==="current",this.activeWeatherLayers=this.activeWeatherLayers.filter(e=>e.type==="json");else for(const e of this.activeWeatherLayers)["png","jpg"].includes(e.type)&&(this.showRampColor=!0);this.activeWindLayer=!!this.activeWeatherLayers.find(e=>e.key==="wind"),this.$refs.layer&&(this.$refs.layer.activeWeatherLayers=this.activeWeatherLayers)},handleRampColorInitial(){var a,e,t,r,o,s,n,l,c,d,p,h;this.viewport.map.getSource((a=this.viewport)==null?void 0:a.rampColorSource)||this.viewport.map.addSource((e=this.viewport)==null?void 0:e.rampColorSource,{type:"canvas",canvas:(t=this.viewport)==null?void 0:t.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:(o=this.viewport)==null?void 0:o.rampColorLayer,source:(s=this.viewport)==null?void 0:s.rampColorSource,layout:{visibility:"none"}},this.beforeLayer),this.viewport.map.getSource((n=this.viewport)==null?void 0:n.particleSource)||this.viewport.map.addSource((l=this.viewport)==null?void 0:l.particleSource,{type:"canvas",canvas:(c=this.viewport)==null?void 0:c.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:(p=this.viewport)==null?void 0:p.particleLayer,source:(h=this.viewport)==null?void 0:h.particleSource,layout:{visibility:"none"}},this.beforeLayer)},handleDragEndWithZoom4Json(){var d,p,h,g;const a=new Date().valueOf();let e=0,t=0;const r=(d=this.map)==null?void 0:d.getBounds(),o=this.map.getZoom(),s=C.LngLatHelper.convertToStdLng(r._sw.lng),n=C.LngLatHelper.convertToStdLng(r._ne.lng),l=Math.floor(r._sw.lat),c=Math.ceil(r._ne.lat);for(const y in this.weatherLayers)if(this.weatherLayers[y].active&&this.weatherLayers[y].type==="json"){this.weatherLayers[y].active=!1,this.weatherLayers[y].version=Math.random()+1;let f=[];if(["swell","current"].includes(y)){const u=((p=this.weatherLayers[y])==null?void 0:p.direction)||{};for(const m in u)if(m>l&&m<c&&(!(o<=this.zoom)||m%(o<this.zoom/2?5:3)===0)){const _=u[m].lng;s>n?_.forEach((b,L)=>{var x;if((b>=s&&b<=180||b>=-180&&b<=n)&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const w=v.point([b,m],{val:u[m].val[L],spd:(x=u[m].spd)==null?void 0:x[L]});f.push(w)}}):_.forEach((b,L)=>{var x;if(b>=s&&b<=n&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const w=v.point([b,m],{val:u[m].val[L],spd:(x=u[m].spd)==null?void 0:x[L]});f.push(w)}})}if(t=new Date().valueOf()-(a+e),console.log("direction elapsed: ",t,", total: ",e+=t),y==="swell"){const m=this.weatherLayers[y].height;if(m){if(!m.data){const _=[];for(const b in(h=m.raw)==null?void 0:h.LineString){const L=m.raw.LineString[b];for(const x of L)_.push(v.lineString(x,{val:Number(b)}));m.data=v.featureCollection(_)}}if(m.data){const _=this.handleBboxClip(m.data,r);f=f.concat(_)}t=new Date().valueOf()-(a+e),console.log("height elapsed: ",t,", total: ",e+=t)}}if(y==="current"){const m=this.weatherLayers[y].speed;if(m){if(!m.data){const b=[];for(const L in(g=m.raw)==null?void 0:g.Polygon){const x=m.raw.Polygon[L];for(const w of x)b.push(v.polygon(w,{val:Number(L)}))}m.data=v.featureCollection(b)}const _=o<this.zoom?m.data.features.filter(b=>b.properties.val>.5):m.data.features;f=f.concat(_),t=new Date().valueOf()-(a+e),console.log("speed elapsed: ",t,", total: ",e+=t)}}}else if(y==="wind"){const u=this.weatherLayers.wind.raw;for(const m in u)if(m>l&&m<c&&(!(o<=this.zoom)||m%(o<this.zoom/2?5:3)===0)){const _=u[m].lng;s>n?_.forEach((b,L)=>{if((b>=s&&b<=180||b>=-180&&b<=n)&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const x=v.point([b,m],{val:u[m].val[L],spd:u[m].spd[L]});f.push(x)}}):_.forEach((b,L)=>{if(b>=s&&b<=n&&(!(o<=this.zoom)||b%(o<this.zoom/2?5:3)===0)){const x=v.point([b,m],{val:u[m].val[L],spd:u[m].spd[L]});f.push(x)}})}t=new Date().valueOf()-(a+e),console.log("wind barb elapsed: ",t,", total: ",e+=t)}else if(y==="sig-wave-height"){if(this.weatherLayers[y].data)f=this.weatherLayers[y].data;else{const u=this.weatherLayers[y].raw;if(u){const m=[];for(const _ in u.Polygon){const b=u.Polygon[_];for(const L of b)m.push(v.polygon(L,{val:Number(_)}))}for(const _ in u.Point){const b=u.Point[_];for(const L of b)m.push(...v.points(L,{val:Number(_)}).features)}f=f.concat(m)}}t=new Date().valueOf()-(a+e),console.log("sigWave elapsed: ",t,", total: ",e+=t)}else if(y==="prmsl"){if(this.weatherLayers[y].data)f=this.weatherLayers[y].data;else{const u=this.weatherLayers[y].raw;if(u){const m=[];for(const _ in u.LineString){const b=u.LineString[_];for(const L of b)m.push(v.lineString(L,{val:Number(_)}))}for(const _ in u.Point)u.Point[_].lng.forEach((b,L)=>{b=C.LngLatHelper.convertToStdLng(b),m.push(v.point([b,_],{val:u.Point[_].val[L],type:u.Point[_].type[L]}))});f=f.concat(m)}}t=new Date().valueOf()-(a+e),console.log("prmsl elapsed: ",t,", total: ",e+=t)}else if(y==="arctic"||y==="iceberg"){if(this.weatherLayers[y].data)f=this.weatherLayers[y].data;else{const u=this.weatherLayers[y].raw;if(u){const m=[];for(const _ in u.LineString){const b=u.LineString[_];for(const L of b)m.push(v.lineString(L,{val:Number(_)}))}f=f.concat(m)}}t=new Date().valueOf()-(a+e)}console.log(y," elapsed: ",t,", total: ",e+=t),f.length&&(this.weatherLayers[y].data=v.featureCollection(f)),this.weatherLayers[y].active=!0,this.weatherLayers[y].version=Math.random()+1}},handleDragEndWithZoom4Image(){for(const a in this.weatherLayers)this.weatherLayers[a].active&&this.weatherLayers[a].type==="image"&&(this.weatherLayers[a].active=!0,this.weatherLayers[a].version=Math.random()+1)},handleBboxClip(a,e){const t=[],r=C.LngLatHelper.convertToStdLng(e._sw.lng),o=C.LngLatHelper.convertToStdLng(e._ne.lng);return a.features.forEach(s=>{if(s.geometry.type!=="Point")if(r>o){let n=[r,e._sw.lat,180,e._ne.lat],l=v.bboxClip(s,n);l.geometry.coordinates.length&&t.push(l),n=[-180,e._sw.lat,o,e._ne.lat],l=v.bboxClip(s,n),l.geometry.coordinates.length&&t.push(l)}else{const n=[r,e._sw.lat,o,e._ne.lat],l=v.bboxClip(s,n);l.geometry.coordinates.length&&t.push(l)}else t.push(s)}),t},handleWeatherLayerToggle(){var a;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.indexOf("swell")>-1?t="swell":t.indexOf("current")>-1&&(t="current"),this.weatherLayers[t]&&(this.weatherLayers[t].active=!0,this.weatherLayers[t].version=Math.random()+1,((a=this.particleFactor)==null?void 0:a.key)===t&&this.weatherLayers[`${t}-particle`]&&(this.weatherLayers[`${t}-particle`].active=this.particleFactor.particle))}this.handleBeforeLayerToggle()},handleBeforeLayerToggle(){var a,e,t,r,o,s,n,l,c,d,p,h,g;(a=this.map)!=null&&a.getLayer(this.beforeLayer)&&((e=this.activeWeatherLayers)!=null&&e.length||(t=this.otherLayers)!=null&&t["war-zones"]||(r=this.otherLayers)!=null&&r["gmdss-areas"]||(o=this.otherLayers)!=null&&o["load-lines"]||(s=this.otherLayers)!=null&&s["high-risk-area"]||(n=this.otherLayers)!=null&&n["time-zones"]||(l=this.otherLayers)!=null&&l.pirates||(c=this.otherLayers)!=null&&c.ports||(d=this.otherLayers)!=null&&d.enc||(p=this.otherLayers)!=null&&p["voluntary-reporting-area"]||(h=this.otherLayers)!=null&&h["eca-zones"]||(g=this.otherLayers)!=null&&g["special-area"])&&this.map.setLayoutProperty(this.beforeLayer,"visibility","visible")},handleDateChange(a={tropicals:!1}){this.fetchWeatherLayers(a),this.fetchOtherLayers({dayNight:!0})},handleWeatherLayerChange(a,e,t){if(!this.map)setTimeout(()=>{this.handleWeatherLayerChange(a,e,t)},500);else{this.activeWeatherLayers=e;const r=this.activeWeatherLayers.some(n=>{var l;return["wind","current"].includes(n.key)&&(!((l=Object.keys(n))!=null&&l.some(c=>c==="particle"))||!!n.particle)}),o=this.activeWeatherLayers.some(n=>["png","jpg"].includes(n.type));r&&!o?(this.activeWeatherLayers.forEach(n=>{["wind","current"].includes(n.key)&&(this.particleFactor=n)}),this.particleFactor.particle=!0):o&&this.particleFactor&&(this.particleFactor.particle=!1);const s=e==null?void 0:e.reduce((n,l)=>n+(n&(l==null?void 0:l.weight)?0:l==null?void 0:l.weight),0);this.weatherWeight!==s||this.source!==t?(this.source=t,this.weatherWeight=s,this.fetchWeatherLayers({tropicals:!1})):this.handleWeatherLayerToggle()}},handleOtherLayerChange(a){if(!this.map)setTimeout(()=>{this.handleOtherLayerChange(a)},500);else{const e=a==null?void 0:a.reduce((t,r)=>t+(r==null?void 0:r.weight),0);a.find(t=>t.key==="enc")?this.enc="i4":this.enc="",this.otherWeight!=e&&(this.otherWeight=e,this.fetchOtherLayers({all:!0}))}},async handlePointChange(a){const e=this.ts?A(this.ts):A(),t={lat:a.lat,lng:a.lng,ts:e.utc().format(),wt:!0,src:this.source},r=await U.get(`${this.gateway}/api/arc/meteo/query`,{params:t,headers:{Authorization:this.token||this.defaultMeteoToken}});(r==null?void 0:r.status)===200&&(this.meteo={...r==null?void 0:r.data,...a})},handle3dToggle(a){var e,t,r,o,s,n,l,c,d,p,h,g,y,f,u,m,_,b,L,x;a?(this.map.setProjection("globe"),this.mapProjection="globe",(t=this.map)!=null&&t.getLayer((e=this.viewport)==null?void 0:e.rampColorLayer)&&((r=this.map)!=null&&r.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((s=this.map)==null||s.moveLayer((o=this.viewport)==null?void 0:o.rampColorLayer,this.helper.mapboxCustomer.layers.water.id)),(l=this.map)!=null&&l.getLayer((n=this.viewport)==null?void 0:n.particleLayer)&&((c=this.map)!=null&&c.getLayer(this.helper.mapboxCustomer.layers.water.id))&&((p=this.map)==null||p.moveLayer((d=this.viewport)==null?void 0:d.particleLayer,this.helper.mapboxCustomer.layers.water.id)),this.map.off("zoomend",this.handleDragEndWithZoom4Json),this.map.off("dragend",this.handleDragEndWithZoom4Json),this.map.off("move",this.handleDragEndWithZoom4Image)):(this.map.setProjection("mercator"),this.mapProjection="mercator",this.map.on("zoomend",this.handleDragEndWithZoom4Json),this.map.on("dragend",this.handleDragEndWithZoom4Json),this.map.on("move",this.handleDragEndWithZoom4Image),this.handleDragEndWithZoom4Image(),this.handleDragEndWithZoom4Json(),(g=this.map)!=null&&g.getLayer((h=this.viewport)==null?void 0:h.rampColorLayer)&&((y=this.map)!=null&&y.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((u=this.map)==null||u.moveLayer((f=this.viewport)==null?void 0:f.rampColorLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)),(_=this.map)!=null&&_.getLayer((m=this.viewport)==null?void 0:m.particleLayer)&&((b=this.map)!=null&&b.getLayer(this.helper.mapboxCustomer.layers.countryBoundary.id))&&((x=this.map)==null||x.moveLayer((L=this.viewport)==null?void 0:L.particleLayer,this.helper.mapboxCustomer.layers.countryBoundary.id)))},handleParticle(a){this.particleFactor=a,this.weatherLayers[a.key]&&(this.weatherLayers[a.key].particle=a.particle),this.activeWeatherLayers.forEach(r=>{r.key===a.key&&(r.particle=a.particle)});let e=localStorage.getItem("weatherLayersCache");const t=JSON.parse(e)||[];t==null||t.forEach(r=>{r.key===a.key&&(r.particle=a.particle)}),localStorage.setItem("weatherLayersCache",JSON.stringify(t)),this.fetchWeatherLayers({tropicals:!1})},handleToggleVersion(){this.$emit("toggleVersion",Math.random())}}},So={key:0,className:"map-gl-home"};function Eo(a,e,t,r,o,s){var q,M,W,ce,F,S,$,he,H,de,Y,Q,K,_e,we,Le,ve,xe,Ne,Re,De,$e,Ae,Be,Me,je;const n=i.resolveComponent("IdmGlLayer"),l=i.resolveComponent("IdmENC"),c=i.resolveComponent("IdmSigWave"),d=i.resolveComponent("IdmSwell"),p=i.resolveComponent("IdmPrmsl"),h=i.resolveComponent("IdmIceberg"),g=i.resolveComponent("IdmTropicals"),y=i.resolveComponent("IdmCurrents"),f=i.resolveComponent("IdmCurrentParticle"),u=i.resolveComponent("IdmWindBarb"),m=i.resolveComponent("IdmWindParticle"),_=i.resolveComponent("IdmPrecip3h"),b=i.resolveComponent("IdmVisibility"),L=i.resolveComponent("IdmWaterTemp"),x=i.resolveComponent("IdmTemp"),w=i.resolveComponent("IdmArctic"),P=i.resolveComponent("IdmWarZone"),N=i.resolveComponent("IdmGmdssArea"),I=i.resolveComponent("IdmEcaZone"),R=i.resolveComponent("IdmAlertZone"),D=i.resolveComponent("IdmPort"),B=i.resolveComponent("IdmLoadLine"),ae=i.resolveComponent("IdmTimezone"),ie=i.resolveComponent("IdmVRA"),oe=i.resolveComponent("IdmSpecialArea"),re=i.resolveComponent("IdmTerminator"),se=i.resolveComponent("IdmLatLng"),ne=i.resolveComponent("IdmMeasure"),le=i.resolveComponent("IdmPoint");return t.map?(i.openBlock(),i.createElementBlock("div",So,[i.createVNode(n,i.mergeProps({ref:"layer",map:t.map,"toggle-version":t.toggleVersion,"map-projection":o.mapProjection},a.$attrs,{onWeather:s.handleWeatherLayerChange,onOther:s.handleOtherLayerChange,onCoordinate:e[0]||(e[0]=pe=>o.showCoord=pe),onMeasure:e[1]||(e[1]=pe=>o.showMeasure=pe),onPoint:e[2]||(e[2]=pe=>o.showPoint=pe),on3d:s.handle3dToggle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","toggle-version","map-projection","onWeather","onOther","on3d","onHandleToggleVersion"]),i.createVNode(l,i.mergeProps({map:t.map,token:t.token,enabled:(q=o.otherLayers)==null?void 0:q.enc,"toggle-version":t.toggleVersion},a.$attrs,{onEnc:e[3]||(e[3]=pe=>o.enc=pe)}),null,16,["map","token","enabled","toggle-version"]),i.createVNode(c,i.mergeProps({map:t.map,"sig-wave":(M=o.weatherLayers)==null?void 0:M["sig-wave-height"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","sig-wave","before-layer"]),i.createVNode(d,i.mergeProps({map:t.map,swell:(W=o.weatherLayers)==null?void 0:W.swell,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","swell","before-layer"]),i.createVNode(p,i.mergeProps({map:t.map,prmsl:(ce=o.weatherLayers)==null?void 0:ce.prmsl,"before-layer":t.beforeLayer,"active-weather-layers":o.activeWeatherLayers},a.$attrs),null,16,["map","prmsl","before-layer","active-weather-layers"]),i.createVNode(h,i.mergeProps({map:t.map,iceberg:(F=o.weatherLayers)==null?void 0:F.iceberg,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","iceberg","before-layer"]),i.createVNode(g,i.mergeProps({map:t.map,date:t.ts,tropicals:(S=o.weatherLayers)==null?void 0:S.tropicals,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","date","tropicals","before-layer"]),i.createVNode(y,i.mergeProps({map:t.map,"map-projection":o.mapProjection,current:($=o.weatherLayers)==null?void 0:$.current,"before-layer":t.beforeLayer,"show-particle":o.showCurrentParticle,"margin-bottom":o.activeWindLayer?o.showRampColor?"84px":"56px":o.showRampColor?"56px":"30px","toggle-version":t.toggleVersion,"weather-layers":o.weatherLayers},a.$attrs,{onParticle:s.handleParticle,onHandleToggleVersion:s.handleToggleVersion}),null,16,["map","map-projection","current","before-layer","show-particle","margin-bottom","toggle-version","weather-layers","onParticle","onHandleToggleVersion"]),i.createVNode(f,i.mergeProps({viewport:o.viewport,factor:(he=o.weatherLayers)==null?void 0:he["current-particle"],"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(u,i.mergeProps({ref:"windBarb",map:t.map,"map-projection":o.mapProjection,wind:(H=o.weatherLayers)==null?void 0:H.wind,current:(de=o.weatherLayers)==null?void 0:de.current,"before-layer":t.beforeLayer,"margin-bottom":o.showRampColor?"56px":"30px","show-particle":o.showWindParticle},a.$attrs,{"toggle-version":t.toggleVersion,"weather-layers":o.weatherLayers,onParticle:s.handleParticle}),null,16,["map","map-projection","wind","current","before-layer","margin-bottom","show-particle","toggle-version","weather-layers","onParticle"]),i.createVNode(m,i.mergeProps({viewport:o.viewport,factor:(Y=o.weatherLayers)==null?void 0:Y["wind-particle"],"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(_,i.mergeProps({viewport:o.viewport,factor:(Q=o.weatherLayers)==null?void 0:Q.precip3h,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(b,i.mergeProps({viewport:o.viewport,factor:(K=o.weatherLayers)==null?void 0:K.visibility,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(L,i.mergeProps({viewport:o.viewport,factor:(_e=o.weatherLayers)==null?void 0:_e["water-temp"],"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(x,i.mergeProps({viewport:o.viewport,factor:(we=o.weatherLayers)==null?void 0:we.temp,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(w,i.mergeProps({viewport:o.viewport,factor:(Le=o.weatherLayers)==null?void 0:Le.arctic,"before-layer":t.beforeLayer,"toggle-version":t.toggleVersion},a.$attrs),null,16,["viewport","factor","before-layer","toggle-version"]),i.createVNode(P,i.mergeProps({map:t.map,zone:(ve=o.otherLayers)==null?void 0:ve["war-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(N,i.mergeProps({map:t.map,area:(xe=o.otherLayers)==null?void 0:xe["gmdss-areas"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","area","before-layer"]),i.createVNode(I,i.mergeProps({map:t.map,zone:(Ne=o.otherLayers)==null?void 0:Ne["eca-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(R,i.mergeProps({map:t.map,zone:(Re=o.otherLayers)==null?void 0:Re["alert-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(D,i.mergeProps({map:t.map,port:(De=o.otherLayers)==null?void 0:De.ports,"before-layer":t.beforeLayer},a.$attrs),null,16,["map","port","before-layer"]),i.createVNode(B,i.mergeProps({map:t.map,line:($e=o.otherLayers)==null?void 0:$e["load-lines"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","line","before-layer"]),i.createVNode(ae,i.mergeProps({map:t.map,zone:(Ae=o.otherLayers)==null?void 0:Ae["time-zones"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","zone","before-layer"]),i.createVNode(ie,i.mergeProps({map:t.map,area:(Be=o.otherLayers)==null?void 0:Be["voluntary-reporting-area"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","area","before-layer"]),i.createVNode(oe,i.mergeProps({map:t.map,area:(Me=o.otherLayers)==null?void 0:Me["special-area"],"before-layer":t.beforeLayer},a.$attrs),null,16,["map","area","before-layer"]),i.createVNode(re,i.mergeProps({map:t.map,area:(je=o.otherLayers)==null?void 0:je["day-night"]},a.$attrs),null,16,["map","area"]),i.createVNode(se,i.mergeProps({map:t.map,show:o.showCoord,"toggle-version":t.toggleVersion},a.$attrs),null,16,["map","show","toggle-version"]),i.createVNode(ne,i.mergeProps({map:t.map,show:o.showMeasure},a.$attrs),null,16,["map","show"]),i.createVNode(le,i.mergeProps({map:t.map,show:o.showPoint,meteo:o.meteo},a.$attrs,{onPoint:s.handlePointChange}),null,16,["map","show","meteo","onPoint"])])):i.createCommentVNode("",!0)}const Ve=k(ko,[["render",Eo]]),zo={install(a){a.component("MapboxGL",Ve),a.component("TropicalGL",ze),a.component("LatLngGL",Pe)}};E.LatLngGL=Pe,E.MapboxGL=Ve,E.MapboxGLPlugin=zo,E.MapboxHelper=Te,E.ParticleSchema=V,E.TropicalGL=ze,E.Viewport=Ce,E.WebGL=Z,E.WebGLSchema=T,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idmwx/idmui-gl3",
3
3
  "private": false,
4
- "version": "4.4.6",
4
+ "version": "4.4.7",
5
5
  "description": "idm webgl3",
6
6
  "type": "module",
7
7
  "keywords": [