@idmui/spot 0.2.0 → 0.2.2

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,567 +1,576 @@
1
- import X from "moment";
2
- import tt from "moment-timezone";
3
- import { Search as Mt } from "@element-plus/icons-vue";
4
- import { LngLatHelper as ut } from "@idm-plugin/geo";
5
- import * as wt from "echarts";
6
- import { markRaw as Ct, resolveComponent as gt, openBlock as o, createElementBlock as r, createElementVNode as i, createVNode as vt, withCtx as bt, Fragment as b, renderList as x, createBlock as Pt, toDisplayString as f, createTextVNode as _, normalizeClass as z, createCommentVNode as Ht, normalizeStyle as ct } from "vue";
7
- import kt from "axios";
8
- class Dt {
9
- static pickHourly(t, e) {
10
- var h, s, v, C, P, L, N, I, M, H, a, n, Q, K, S, T, R, E, A, G, F, O, B, V, U, Z, J, Y, w, k, p, y, D, g, j, et, at, rt, ot, W, st, m, it, u, lt, ht, dt, xt;
11
- const ft = typeof e == "string" ? X(e) : e, $ = t == null ? void 0 : t.weather, yt = t == null ? void 0 : t.marine, _t = X((s = (h = $ == null ? void 0 : $[0]) == null ? void 0 : h.hourly) == null ? void 0 : s.date).utc(), pt = _t.clone().add((P = (C = (v = $ == null ? void 0 : $[0]) == null ? void 0 : v.hourly) == null ? void 0 : C.time) == null ? void 0 : P.at(0), "h"), St = _t.clone().add((I = (N = (L = $ == null ? void 0 : $[0]) == null ? void 0 : L.hourly) == null ? void 0 : N.time) == null ? void 0 : I.at(-1), "h"), zt = [];
12
- if (ft.isBetween(pt, St, "millisecond", "[]")) {
13
- const d = ft.utc().diff(pt, "h", !1);
14
- let q, nt;
15
- if ($)
16
- for (const mt of $) {
17
- const c = mt.hourly;
18
- q = {
19
- temp: (M = c.temperature_2m) == null ? void 0 : M.at(d),
20
- apparentTemp: (H = c.apparent_temperature) == null ? void 0 : H.at(d),
21
- rh: (a = c.relative_humidity_2m) == null ? void 0 : a.at(d),
22
- dp: (n = c.dew_point_2m) == null ? void 0 : n.at(d),
1
+ import de from "moment";
2
+ import ce from "moment-timezone";
3
+ import { Search as Pe } from "@element-plus/icons-vue";
4
+ import { LngLatHelper as be } from "@idm-plugin/geo";
5
+ import * as ue from "echarts";
6
+ import { markRaw as ke, resolveComponent as Me, openBlock as o, createElementBlock as n, createElementVNode as A, createVNode as Le, withCtx as He, Fragment as Y, renderList as K, createBlock as Ne, normalizeClass as U, toDisplayString as f, createCommentVNode as ve, createTextVNode as F, normalizeStyle as Ce } from "vue";
7
+ import ze from "axios";
8
+ class ye {
9
+ static pickHourly(e, t) {
10
+ var r, s, B, b, M, Q, E, L, v, H, y, S, j, O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P, D, x, u, se, ee, te, l, oe, ne, C, Ae, d, _, ae, re, we, ge;
11
+ const fe = typeof t == "string" ? de(t) : t, le = e == null ? void 0 : e.weather, ie = e == null ? void 0 : e.marine, me = de((s = (r = le == null ? void 0 : le[0]) == null ? void 0 : r.hourly) == null ? void 0 : s.date).utc(), m = me.clone().add((M = (b = (B = le == null ? void 0 : le[0]) == null ? void 0 : B.hourly) == null ? void 0 : b.time) == null ? void 0 : M.at(0), "h"), Be = me.clone().add((L = (E = (Q = le == null ? void 0 : le[0]) == null ? void 0 : Q.hourly) == null ? void 0 : E.time) == null ? void 0 : L.at(-1), "h"), p = [];
12
+ if (fe.isBetween(m, Be, "millisecond", "[]")) {
13
+ const i = fe.utc().diff(m, "h", !1);
14
+ let $, he;
15
+ if (le)
16
+ for (const pe of le) {
17
+ const c = pe.hourly;
18
+ $ = {
19
+ temp: (v = c.temperature_2m) == null ? void 0 : v.at(i),
20
+ apparentTemp: (H = c.apparent_temperature) == null ? void 0 : H.at(i),
21
+ rh: (y = c.relative_humidity_2m) == null ? void 0 : y.at(i),
22
+ dp: (S = c.dew_point_2m) == null ? void 0 : S.at(i),
23
23
  precip: {
24
- probability: (Q = c.precipitation_probability) == null ? void 0 : Q.at(d),
25
- sum: (K = c.precipitation) == null ? void 0 : K.at(d)
24
+ probability: (j = c.precipitation_probability) == null ? void 0 : j.at(i),
25
+ sum: (O = c.precipitation) == null ? void 0 : O.at(i)
26
26
  },
27
- pmsl: (S = c.pressure_msl) == null ? void 0 : S.at(d),
28
- psurf: (T = c.surface_pressure) == null ? void 0 : T.at(d),
29
- code: (R = c.weather_code) == null ? void 0 : R.at(d),
30
- visibility: this.m2nm((E = c.visibility) == null ? void 0 : E.at(d)),
27
+ pmsl: (I = c.pressure_msl) == null ? void 0 : I.at(i),
28
+ psurf: (z = c.surface_pressure) == null ? void 0 : z.at(i),
29
+ code: (k = c.weather_code) == null ? void 0 : k.at(i),
30
+ visibility: this.m2nm((N = c.visibility) == null ? void 0 : N.at(i)),
31
31
  wind: {
32
- speed: (A = c.wind_speed_10m) == null ? void 0 : A.at(d),
33
- kts: (G = c.wind_speed_10m) == null ? void 0 : G.at(d),
34
- degree: (F = c.wind_direction_10m) == null ? void 0 : F.at(d),
35
- bearing: ((O = c.wind_direction_10m) == null ? void 0 : O.at(d)) !== null ? (((B = c.wind_direction_10m) == null ? void 0 : B.at(d)) + 180) % 360 : null,
36
- gusts: (V = c.wind_gusts_10m) == null ? void 0 : V.at(d)
32
+ speed: (G = c.wind_speed_10m) == null ? void 0 : G.at(i),
33
+ kts: (T = c.wind_speed_10m) == null ? void 0 : T.at(i),
34
+ degree: (a = c.wind_direction_10m) == null ? void 0 : a.at(i),
35
+ bearing: ((h = c.wind_direction_10m) == null ? void 0 : h.at(i)) !== null ? (((X = c.wind_direction_10m) == null ? void 0 : X.at(i)) + 180) % 360 : null,
36
+ gusts: (J = c.wind_gusts_10m) == null ? void 0 : J.at(i)
37
37
  },
38
- isDay: (U = c.is_day) == null ? void 0 : U.at(d)
38
+ isDay: (R = c.is_day) == null ? void 0 : R.at(i)
39
39
  };
40
- const { name: Lt, url: Nt, bg: It } = this.parseWeatherCode(q.code, q.isDay);
41
- q.name = Lt, q.url = Nt, q.bg = It, q.wind.scale = this.beaufort(this.kts2ms(q.wind.kts)), q.wind.direction = this.degree2Direction(q.wind.degree);
40
+ const { name: De, url: Ie, bg: xe } = this.parseWeatherCode($.code, $.isDay);
41
+ $.name = De, $.url = Ie, $.bg = xe, $.wind.scale = this.beaufort(this.kts2ms($.wind.kts)), $.wind.direction = this.degree2Direction($.wind.degree);
42
42
  }
43
- if (yt)
44
- for (const mt of yt) {
45
- const c = mt.hourly;
46
- nt = {
43
+ if (ie)
44
+ for (const pe of ie) {
45
+ const c = pe.hourly;
46
+ he = {
47
47
  wave: {
48
48
  sig: {
49
- height: (Z = c.wave_height) == null ? void 0 : Z.at(d),
50
- degree: (J = c.wave_direction) == null ? void 0 : J.at(d),
51
- bearing: ((Y = c.wave_direction) == null ? void 0 : Y.at(d)) !== null ? (((w = c.wave_direction) == null ? void 0 : w.at(d)) + 180) % 360 : null,
52
- period: (k = c.wave_period) == null ? void 0 : k.at(d)
49
+ height: (W = c.wave_height) == null ? void 0 : W.at(i),
50
+ degree: (q = c.wave_direction) == null ? void 0 : q.at(i),
51
+ bearing: ((V = c.wave_direction) == null ? void 0 : V.at(i)) !== null ? (((Z = c.wave_direction) == null ? void 0 : Z.at(i)) + 180) % 360 : null,
52
+ period: (w = c.wave_period) == null ? void 0 : w.at(i)
53
53
  },
54
54
  swell: {
55
- height: (p = c.swell_wave_height) == null ? void 0 : p.at(d),
56
- degree: (y = c.swell_wave_direction) == null ? void 0 : y.at(d),
57
- bearing: ((D = c.swell_wave_direction) == null ? void 0 : D.at(d)) !== null ? (((g = c.swell_wave_direction) == null ? void 0 : g.at(d)) + 180) % 360 : null,
58
- period: (j = c.swell_wave_period) == null ? void 0 : j.at(d),
59
- peakPeriod: (et = c.swell_wave_peak_period) == null ? void 0 : et.at(d)
55
+ height: (P = c.swell_wave_height) == null ? void 0 : P.at(i),
56
+ degree: (D = c.swell_wave_direction) == null ? void 0 : D.at(i),
57
+ bearing: ((x = c.swell_wave_direction) == null ? void 0 : x.at(i)) !== null ? (((u = c.swell_wave_direction) == null ? void 0 : u.at(i)) + 180) % 360 : null,
58
+ period: (se = c.swell_wave_period) == null ? void 0 : se.at(i),
59
+ peakPeriod: (ee = c.swell_wave_peak_period) == null ? void 0 : ee.at(i)
60
60
  },
61
61
  wd: {
62
- height: (at = c.wind_wave_height) == null ? void 0 : at.at(d),
63
- degree: (rt = c.wind_wave_direction) == null ? void 0 : rt.at(d),
64
- bearing: ((ot = c.wind_wave_direction) == null ? void 0 : ot.at(d)) !== null ? (((W = c.wind_wave_direction) == null ? void 0 : W.at(d)) + 180) % 360 : null,
65
- period: (st = c.wind_wave_period) == null ? void 0 : st.at(d),
66
- peakPeriod: (m = c.wind_wave_peak_period) == null ? void 0 : m.at(d)
62
+ height: (te = c.wind_wave_height) == null ? void 0 : te.at(i),
63
+ degree: (l = c.wind_wave_direction) == null ? void 0 : l.at(i),
64
+ bearing: ((oe = c.wind_wave_direction) == null ? void 0 : oe.at(i)) !== null ? (((ne = c.wind_wave_direction) == null ? void 0 : ne.at(i)) + 180) % 360 : null,
65
+ period: (C = c.wind_wave_period) == null ? void 0 : C.at(i),
66
+ peakPeriod: (Ae = c.wind_wave_peak_period) == null ? void 0 : Ae.at(i)
67
67
  }
68
68
  },
69
69
  current: {
70
- speed: (it = c.ocean_current_velocity) == null ? void 0 : it.at(d),
71
- kts: (u = c.ocean_current_velocity) == null ? void 0 : u.at(d),
72
- degree: (lt = c.ocean_current_direction) == null ? void 0 : lt.at(d),
73
- bearing: ((ht = c.ocean_current_direction) == null ? void 0 : ht.at(d)) ?? null
74
- },
75
- sst: (dt = c.sea_surface_temperature) == null ? void 0 : dt.at(d),
76
- height: (xt = c.sea_level_height_msl) == null ? void 0 : xt.at(d)
77
- }, nt.wave = this.parseWave(nt.wave), nt.current.direction = this.degree2Direction(nt.current.degree);
70
+ speed: (d = c.ocean_current_velocity) == null ? void 0 : d.at(i),
71
+ kts: (_ = c.ocean_current_velocity) == null ? void 0 : _.at(i),
72
+ degree: (ae = c.ocean_current_direction) == null ? void 0 : ae.at(i),
73
+ bearing: ((re = c.ocean_current_direction) == null ? void 0 : re.at(i)) ?? null
74
+ },
75
+ sst: (we = c.sea_surface_temperature) == null ? void 0 : we.at(i),
76
+ height: (ge = c.sea_level_height_msl) == null ? void 0 : ge.at(i)
77
+ }, he.wave = this.parseWave(he.wave), he.current.direction = this.degree2Direction(he.current.degree);
78
78
  }
79
- zt.push({
80
- utc: pt.add(d, "h").format(),
81
- weather: { ...q },
82
- ...nt
79
+ p.push({
80
+ utc: m.add(i, "h").format(),
81
+ weather: { ...$ },
82
+ ...he
83
83
  });
84
84
  }
85
- return zt;
85
+ return p;
86
86
  }
87
- static toLegacy(t) {
87
+ static toLegacy(e) {
88
+ var t, r, s, B, b, M, Q, E, L, v;
88
89
  return {
89
- wind: t.weather.wind,
90
- visibility: t.weather.visibility,
91
- temp: t.weather.temp,
92
- prmsl: t.weather.pmsl,
90
+ wind: (t = e == null ? void 0 : e.weather) == null ? void 0 : t.wind,
91
+ visibility: (r = e == null ? void 0 : e.weather) == null ? void 0 : r.visibility,
92
+ temp: (s = e == null ? void 0 : e.weather) == null ? void 0 : s.temp,
93
+ prmsl: (B = e == null ? void 0 : e.weather) == null ? void 0 : B.pmsl,
93
94
  gusts: {
94
- kts: t.weather.wind.gusts
95
+ kts: (M = (b = e == null ? void 0 : e.weather) == null ? void 0 : b.wind) == null ? void 0 : M.gusts
95
96
  },
96
- precip: t.weather.precip,
97
- code: t.weather.code,
98
- name: t.weather.name,
99
- url: t.weather.url,
100
- wave: t.wave,
101
- current: t.current,
102
- sst: t.sst,
103
- height: t.height,
104
- utc: t.utc
97
+ precip: (Q = e == null ? void 0 : e.weather) == null ? void 0 : Q.precip,
98
+ code: (E = e == null ? void 0 : e.weather) == null ? void 0 : E.code,
99
+ name: (L = e == null ? void 0 : e.weather) == null ? void 0 : L.name,
100
+ url: (v = e == null ? void 0 : e.weather) == null ? void 0 : v.url,
101
+ wave: e == null ? void 0 : e.wave,
102
+ current: e == null ? void 0 : e.current,
103
+ sst: e == null ? void 0 : e.sst,
104
+ height: e == null ? void 0 : e.height,
105
+ utc: e == null ? void 0 : e.utc
105
106
  };
106
107
  }
107
- static pickDaily(t, e) {
108
- var h, s, v, C, P, L, N, I, M, H, a, n, Q, K, S, T, R, E, A, G, F, O, B, V, U, Z, J, Y, w, k, p, y, D;
109
- const g = typeof e == "string" ? X(e) : e, j = t == null ? void 0 : t.weather, et = t == null ? void 0 : t.marine, at = X((v = (s = (h = j == null ? void 0 : j[0]) == null ? void 0 : h.daily) == null ? void 0 : s.time) == null ? void 0 : v.at(0)), rt = X((L = (P = (C = j == null ? void 0 : j[0]) == null ? void 0 : C.daily) == null ? void 0 : P.time) == null ? void 0 : L.at(-1)), ot = [];
110
- if (g.isBetween(at, rt, "millisecond", "[]")) {
111
- let W, st;
112
- const m = g.diff(at, "d", !1);
113
- if (j)
114
- for (const it of j) {
115
- const u = it.daily;
116
- W = {
117
- code: (N = u.weather_code) == null ? void 0 : N.at(m),
108
+ static pickDaily(e, t) {
109
+ var r, s, B, b, M, Q, E, L, v, H, y, S, j, O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P, D, x, u, se, ee, te, l, oe, ne, C, Ae, d, _;
110
+ const ae = typeof t == "string" ? de(t) : t, re = e == null ? void 0 : e.weather, we = e == null ? void 0 : e.marine, ge = de((B = (s = (r = re == null ? void 0 : re[0]) == null ? void 0 : r.daily) == null ? void 0 : s.time) == null ? void 0 : B.at(0)), fe = de((Q = (M = (b = re == null ? void 0 : re[0]) == null ? void 0 : b.daily) == null ? void 0 : M.time) == null ? void 0 : Q.at(-1)), le = [];
111
+ if (ae.isBetween(ge, fe, "millisecond", "[]")) {
112
+ let ie, me;
113
+ const m = ae.diff(ge, "d", !1);
114
+ if (re)
115
+ for (const Be of re) {
116
+ const p = Be.daily;
117
+ ie = {
118
+ code: (E = p.weather_code) == null ? void 0 : E.at(m),
118
119
  temp: {
119
- max: (I = u.temperature_2m_max) == null ? void 0 : I.at(m),
120
- min: (M = u.temperature_2m_min) == null ? void 0 : M.at(m),
121
- mean: (H = u.temperature_2m_mean) == null ? void 0 : H.at(m)
120
+ max: (L = p.temperature_2m_max) == null ? void 0 : L.at(m),
121
+ min: (v = p.temperature_2m_min) == null ? void 0 : v.at(m),
122
+ mean: (H = p.temperature_2m_mean) == null ? void 0 : H.at(m)
122
123
  },
123
124
  apparentTemp: {
124
- max: (a = u.apparent_temperature_max) == null ? void 0 : a.at(m),
125
- min: (n = u.apparent_temperature_min) == null ? void 0 : n.at(m)
125
+ max: (y = p.apparent_temperature_max) == null ? void 0 : y.at(m),
126
+ min: (S = p.apparent_temperature_min) == null ? void 0 : S.at(m)
126
127
  },
127
128
  precip: {
128
- sum: (Q = u.precipitation_sum) == null ? void 0 : Q.at(m),
129
- hours: (K = u.precipitation_hours) == null ? void 0 : K.at(m),
130
- probability: (S = u.precipitation_probability_max) == null ? void 0 : S.at(m)
129
+ sum: (j = p.precipitation_sum) == null ? void 0 : j.at(m),
130
+ rainSum: (O = p.rain_sum) == null ? void 0 : O.at(m),
131
+ snowfallSum: (I = p.snowfall_sum) == null ? void 0 : I.at(m),
132
+ showersSum: (z = p.showers_sum) == null ? void 0 : z.at(m),
133
+ hours: (k = p.precipitation_hours) == null ? void 0 : k.at(m),
134
+ probability: (N = p.precipitation_probability_max) == null ? void 0 : N.at(m)
131
135
  },
132
136
  rh: {
133
- max: (T = u.relative_humidity_2m_max) == null ? void 0 : T.at(m),
134
- min: (R = u.relative_humidity_2m_min) == null ? void 0 : R.at(m),
135
- mean: (E = u.relative_humidity_2m_mean) == null ? void 0 : E.at(m)
137
+ max: (G = p.relative_humidity_2m_max) == null ? void 0 : G.at(m),
138
+ min: (T = p.relative_humidity_2m_min) == null ? void 0 : T.at(m),
139
+ mean: (a = p.relative_humidity_2m_mean) == null ? void 0 : a.at(m)
136
140
  },
137
141
  wind: {
138
- speed: (A = u.wind_speed_10m_max) == null ? void 0 : A.at(m),
139
- kts: (G = u.wind_speed_10m_max) == null ? void 0 : G.at(m),
140
- degree: (F = u.wind_direction_10m_dominant) == null ? void 0 : F.at(m),
141
- gusts: (O = u.wind_gusts_10m_max) == null ? void 0 : O.at(m)
142
+ speed: (h = p.wind_speed_10m_max) == null ? void 0 : h.at(m),
143
+ kts: (X = p.wind_speed_10m_max) == null ? void 0 : X.at(m),
144
+ degree: (J = p.wind_direction_10m_dominant) == null ? void 0 : J.at(m),
145
+ gusts: (R = p.wind_gusts_10m_max) == null ? void 0 : R.at(m),
146
+ bearing: ((W = p.wind_direction_10m_dominant) == null ? void 0 : W.at(m)) !== null ? (((q = p.wind_direction_10m_dominant) == null ? void 0 : q.at(m)) + 180) % 360 : null
142
147
  }
143
148
  };
144
- const { name: lt, url: ht, bg: dt } = this.parseWeatherCode(W.code, !0);
145
- W.name = lt, W.url = ht, W.bg = dt, W.wind.scale = this.beaufort(this.kts2ms(W.wind.kts)), W.wind.direction = this.degree2Direction(W.wind.degree);
149
+ const { name: i, url: $, bg: he } = this.parseWeatherCode(ie.code, !0);
150
+ ie.name = i, ie.url = $, ie.bg = he, ie.wind.scale = this.beaufort(this.kts2ms(ie.wind.kts)), ie.wind.direction = this.degree2Direction(ie.wind.degree);
146
151
  }
147
- if (et)
148
- for (const it of et) {
149
- const u = it.daily;
150
- st = {
152
+ if (we)
153
+ for (const Be of we) {
154
+ const p = Be.daily;
155
+ me = {
151
156
  wave: {
152
157
  sig: {
153
- height: (B = u.wave_height_max) == null ? void 0 : B.at(m),
154
- degree: (V = u.wave_direction_dominant) == null ? void 0 : V.at(m),
155
- period: (U = u.wave_period_max) == null ? void 0 : U.at(m)
158
+ height: (V = p.wave_height_max) == null ? void 0 : V.at(m),
159
+ degree: (Z = p.wave_direction_dominant) == null ? void 0 : Z.at(m),
160
+ period: (w = p.wave_period_max) == null ? void 0 : w.at(m),
161
+ bearing: ((P = p.wave_direction_dominant) == null ? void 0 : P.at(m)) !== null ? (((D = p.wave_direction_dominant) == null ? void 0 : D.at(m)) + 180) % 360 : null
156
162
  },
157
163
  swell: {
158
- height: (Z = u.swell_wave_height_max) == null ? void 0 : Z.at(m),
159
- degree: (J = u.wave_direction_dominant) == null ? void 0 : J.at(m),
160
- period: (Y = u.swell_wave_period_max) == null ? void 0 : Y.at(m),
161
- peakPeriod: (w = u.swell_wave_peak_period_max) == null ? void 0 : w.at(m)
164
+ height: (x = p.swell_wave_height_max) == null ? void 0 : x.at(m),
165
+ degree: (u = p.swell_wave_direction_dominant) == null ? void 0 : u.at(m),
166
+ period: (se = p.swell_wave_period_max) == null ? void 0 : se.at(m),
167
+ peakPeriod: (ee = p.swell_wave_peak_period_max) == null ? void 0 : ee.at(m),
168
+ bearing: ((te = p.swell_wave_direction_dominant) == null ? void 0 : te.at(m)) !== null ? (((l = p.swell_wave_direction_dominant) == null ? void 0 : l.at(m)) + 180) % 360 : null
162
169
  },
163
170
  wd: {
164
- height: (k = u.wind_wave_height_max) == null ? void 0 : k.at(m),
165
- degree: (p = u.wind_wave_direction_dominant) == null ? void 0 : p.at(m),
166
- period: (y = u.wind_wave_period_max) == null ? void 0 : y.at(m),
167
- peakPeriod: (D = u.wind_wave_peak_period_max) == null ? void 0 : D.at(m)
171
+ height: (oe = p.wind_wave_height_max) == null ? void 0 : oe.at(m),
172
+ degree: (ne = p.wind_wave_direction_dominant) == null ? void 0 : ne.at(m),
173
+ period: (C = p.wind_wave_period_max) == null ? void 0 : C.at(m),
174
+ peakPeriod: (Ae = p.wind_wave_peak_period_max) == null ? void 0 : Ae.at(m),
175
+ bearing: ((d = p.wind_wave_direction_dominant) == null ? void 0 : d.at(m)) !== null ? (((_ = p.wind_wave_direction_dominant) == null ? void 0 : _.at(m)) + 180) % 360 : null
168
176
  }
169
177
  }
170
- }, st.wave = this.parseWave(st.wave);
178
+ }, me.wave = this.parseWave(me.wave);
171
179
  }
172
- ot.push({
173
- utc: at.add(m, "d").utc().format(),
174
- weather: { ...W },
175
- ...st
180
+ le.push({
181
+ utc: ge.add(m, "d").utc().format(),
182
+ weather: { ...ie },
183
+ ...me
176
184
  });
177
185
  }
178
- return ot;
186
+ return le;
179
187
  }
180
- static parseWave(t) {
181
- return t.sig.direction = this.degree2Direction(t.sig.degree), t.swell.direction = this.degree2Direction(t.swell.degree), t.wd.direction = this.degree2Direction(t.wd.degree), t.sig.scale = this.douglas(t.sig.height), t.swell.scale = this.douglas(t.swell.height), t.wd.scale = this.douglas(t.wd.height), t;
188
+ static parseWave(e) {
189
+ return e.sig.direction = this.degree2Direction(e.sig.degree), e.swell.direction = this.degree2Direction(e.swell.degree), e.wd.direction = this.degree2Direction(e.wd.degree), e.sig.scale = this.douglas(e.sig.height), e.swell.scale = this.douglas(e.swell.height), e.wd.scale = this.douglas(e.wd.height), e;
182
190
  }
183
- static parseWeatherCode(t, e) {
184
- const h = this.weatherCode(t);
185
- return (e ? h.day : h.night) || {};
191
+ static parseWeatherCode(e, t) {
192
+ const r = this.weatherCode(e);
193
+ return (t ? r.day : r.night) || {};
186
194
  }
187
- static weatherCode(t) {
188
- const e = {
189
- code: t
195
+ static weatherCode(e) {
196
+ const t = {
197
+ code: e
190
198
  };
191
- switch (t) {
199
+ switch (e) {
192
200
  case 0:
193
- e.day = {
201
+ t.day = {
194
202
  name: "Sunny",
195
203
  url: "https://osshz.idmwx.com/asset/weather/01d.svg",
196
204
  bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
197
- }, e.night = {
205
+ }, t.night = {
198
206
  name: "Clear",
199
207
  url: "https://osshz.idmwx.com/asset/weather/01n.svg",
200
208
  bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
201
209
  };
202
210
  break;
203
211
  case 1:
204
- e.day = {
212
+ t.day = {
205
213
  name: "Mainly Sunny",
206
214
  url: "https://osshz.idmwx.com/asset/weather/01d.svg",
207
215
  bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
208
- }, e.night = {
216
+ }, t.night = {
209
217
  name: "Mainly Clear",
210
218
  url: "https://osshz.idmwx.com/asset/weather/01n.svg",
211
219
  bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
212
220
  };
213
221
  break;
214
222
  case 2:
215
- e.day = {
223
+ t.day = {
216
224
  name: "Partly Cloudy",
217
225
  url: "https://osshz.idmwx.com/asset/weather/02d.svg",
218
226
  bg: "https://osshz.idmwx.com/asset/weather/bg2.png"
219
- }, e.night = {
227
+ }, t.night = {
220
228
  name: "Partly Cloudy",
221
229
  url: "https://osshz.idmwx.com/asset/weather/02n.svg",
222
230
  bg: "https://osshz.idmwx.com/asset/weather/bg2.png"
223
231
  };
224
232
  break;
225
233
  case 3:
226
- e.day = {
234
+ t.day = {
227
235
  name: "Overcast",
228
236
  url: "https://osshz.idmwx.com/asset/weather/04d.svg",
229
237
  bg: "https://osshz.idmwx.com/asset/weather/bg3.png"
230
- }, e.night = {
238
+ }, t.night = {
231
239
  name: "Overcast",
232
240
  url: "https://osshz.idmwx.com/asset/weather/04n.svg",
233
241
  bg: "https://osshz.idmwx.com/asset/weather/bg3.png"
234
242
  };
235
243
  break;
236
244
  case 45:
237
- e.day = {
245
+ t.day = {
238
246
  name: "Foggy",
239
247
  url: "https://osshz.idmwx.com/asset/weather/50d.svg",
240
248
  bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
241
- }, e.night = {
249
+ }, t.night = {
242
250
  name: "Foggy",
243
251
  url: "https://osshz.idmwx.com/asset/weather/50n.svg",
244
252
  bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
245
253
  };
246
254
  break;
247
255
  case 48:
248
- e.day = {
256
+ t.day = {
249
257
  name: "Rime Fog",
250
258
  url: "https://osshz.idmwx.com/asset/weather/50d.svg",
251
259
  bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
252
- }, e.night = {
260
+ }, t.night = {
253
261
  name: "Rime Fog",
254
262
  url: "https://osshz.idmwx.com/asset/weather/50n.svg",
255
263
  bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
256
264
  };
257
265
  break;
258
266
  case 51:
259
- e.day = {
267
+ t.day = {
260
268
  name: "Light Drizzle",
261
269
  url: "https://osshz.idmwx.com/asset/weather/14d.svg",
262
270
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
263
- }, e.night = {
271
+ }, t.night = {
264
272
  name: "Light Drizzle",
265
273
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
266
274
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
267
275
  };
268
276
  break;
269
277
  case 53:
270
- e.day = {
278
+ t.day = {
271
279
  name: "Drizzle",
272
280
  url: "https://osshz.idmwx.com/asset/weather/14d.svg",
273
281
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
274
- }, e.night = {
282
+ }, t.night = {
275
283
  name: "Drizzle",
276
284
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
277
285
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
278
286
  };
279
287
  break;
280
288
  case 55:
281
- e.day = {
289
+ t.day = {
282
290
  name: "Heavy Drizzle",
283
291
  url: "https://osshz.idmwx.com/asset/weather/15d.svg",
284
292
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
285
- }, e.night = {
293
+ }, t.night = {
286
294
  name: "Heavy Drizzle",
287
295
  url: "https://osshz.idmwx.com/asset/weather/15n.svg",
288
296
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
289
297
  };
290
298
  break;
291
299
  case 56:
292
- e.day = {
300
+ t.day = {
293
301
  name: "Light Freezing Drizzle",
294
302
  url: "https://osshz.idmwx.com/asset/weather/14d.svg",
295
303
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
296
- }, e.night = {
304
+ }, t.night = {
297
305
  name: "Light Freezing Drizzle",
298
306
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
299
307
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
300
308
  };
301
309
  break;
302
310
  case 57:
303
- e.day = {
311
+ t.day = {
304
312
  name: "Freezing Drizzle",
305
313
  url: "https://osshz.idmwx.com/asset/weather/14d.svg",
306
314
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
307
- }, e.night = {
315
+ }, t.night = {
308
316
  name: "Freezing Drizzle",
309
317
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
310
318
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
311
319
  };
312
320
  break;
313
321
  case 61:
314
- e.day = {
322
+ t.day = {
315
323
  name: "Light Rain",
316
324
  url: "https://osshz.idmwx.com/asset/weather/16d.svg",
317
325
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
318
- }, e.night = {
326
+ }, t.night = {
319
327
  name: "Light Rain",
320
328
  url: "https://osshz.idmwx.com/asset/weather/10n.svg",
321
329
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
322
330
  };
323
331
  break;
324
332
  case 63:
325
- e.day = {
333
+ t.day = {
326
334
  name: "Rain",
327
335
  url: "https://osshz.idmwx.com/asset/weather/16d.svg",
328
336
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
329
- }, e.night = {
337
+ }, t.night = {
330
338
  name: "Rain",
331
339
  url: "https://osshz.idmwx.com/asset/weather/10n.svg",
332
340
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
333
341
  };
334
342
  break;
335
343
  case 65:
336
- e.day = {
344
+ t.day = {
337
345
  name: "Heavy Rain",
338
346
  url: "https://osshz.idmwx.com/asset/weather/16d.svg",
339
347
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
340
- }, e.night = {
348
+ }, t.night = {
341
349
  name: "Heavy Rain",
342
350
  url: "https://osshz.idmwx.com/asset/weather/10n.svg",
343
351
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
344
352
  };
345
353
  break;
346
354
  case 66:
347
- e.day = {
355
+ t.day = {
348
356
  name: "Light Freezing Rain",
349
357
  url: "https://osshz.idmwx.com/asset/weather/16d.svg",
350
358
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
351
- }, e.night = {
359
+ }, t.night = {
352
360
  name: "Light Freezing Rain",
353
361
  url: "https://osshz.idmwx.com/asset/weather/10n.svg",
354
362
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
355
363
  };
356
364
  break;
357
365
  case 67:
358
- e.day = {
366
+ t.day = {
359
367
  name: "Freezing Rain",
360
368
  url: "https://osshz.idmwx.com/asset/weather/16d.svg",
361
369
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
362
- }, e.night = {
370
+ }, t.night = {
363
371
  name: "Freezing Rain",
364
372
  url: "https://osshz.idmwx.com/asset/weather/10n.svg",
365
373
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
366
374
  };
367
375
  break;
368
376
  case 71:
369
- e.day = {
377
+ t.day = {
370
378
  name: "Light Snow",
371
379
  url: "https://osshz.idmwx.com/asset/weather/17d.svg",
372
380
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
373
- }, e.night = {
381
+ }, t.night = {
374
382
  name: "Light Snow",
375
383
  url: "https://osshz.idmwx.com/asset/weather/13n.svg",
376
384
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
377
385
  };
378
386
  break;
379
387
  case 73:
380
- e.day = {
388
+ t.day = {
381
389
  name: "Snow",
382
390
  url: "https://osshz.idmwx.com/asset/weather/17d.svg",
383
391
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
384
- }, e.night = {
392
+ }, t.night = {
385
393
  name: "Snow",
386
394
  url: "https://osshz.idmwx.com/asset/weather/13n.svg",
387
395
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
388
396
  };
389
397
  break;
390
398
  case 75:
391
- e.day = {
399
+ t.day = {
392
400
  name: "Heavy Snow",
393
401
  url: "https://osshz.idmwx.com/asset/weather/17d.svg",
394
402
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
395
- }, e.night = {
403
+ }, t.night = {
396
404
  name: "Heavy Snow",
397
405
  url: "https://osshz.idmwx.com/asset/weather/13n.svg",
398
406
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
399
407
  };
400
408
  break;
401
409
  case 77:
402
- e.day = {
410
+ t.day = {
403
411
  name: "Snow Grains",
404
412
  url: "https://osshz.idmwx.com/asset/weather/17d.svg",
405
413
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
406
- }, e.night = {
414
+ }, t.night = {
407
415
  name: "Snow Grains",
408
416
  url: "https://osshz.idmwx.com/asset/weather/13n.svg",
409
417
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
410
418
  };
411
419
  break;
412
420
  case 80:
413
- e.day = {
421
+ t.day = {
414
422
  name: "Light Showers",
415
423
  url: "https://osshz.idmwx.com/asset/weather/09d.svg",
416
424
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
417
- }, e.night = {
425
+ }, t.night = {
418
426
  name: "Light Showers",
419
427
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
420
428
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
421
429
  };
422
430
  break;
423
431
  case 81:
424
- e.day = {
432
+ t.day = {
425
433
  name: "Showers",
426
434
  url: "https://osshz.idmwx.com/asset/weather/09d.svg",
427
435
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
428
- }, e.night = {
436
+ }, t.night = {
429
437
  name: "Showers",
430
438
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
431
439
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
432
440
  };
433
441
  break;
434
442
  case 82:
435
- e.day = {
443
+ t.day = {
436
444
  name: "Heavy Showers",
437
445
  url: "https://osshz.idmwx.com/asset/weather/09d.svg",
438
446
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
439
- }, e.night = {
447
+ }, t.night = {
440
448
  name: "Heavy Showers",
441
449
  url: "https://osshz.idmwx.com/asset/weather/09n.svg",
442
450
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
443
451
  };
444
452
  break;
445
453
  case 85:
446
- e.day = {
454
+ t.day = {
447
455
  name: "Light Snow Showers",
448
456
  url: "https://osshz.idmwx.com/asset/weather/13d.svg",
449
457
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
450
- }, e.night = {
458
+ }, t.night = {
451
459
  name: "Light Snow Showers",
452
460
  url: "https://osshz.idmwx.com/asset/weather/13n.svg",
453
461
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
454
462
  };
455
463
  break;
456
464
  case 86:
457
- e.day = {
465
+ t.day = {
458
466
  name: "Snow Showers",
459
467
  url: "https://osshz.idmwx.com/asset/weather/13d.svg",
460
468
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
461
- }, e.night = {
469
+ }, t.night = {
462
470
  name: "Snow Showers",
463
471
  url: "https://osshz.idmwx.com/asset/weather/13n.svg",
464
472
  bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
465
473
  };
466
474
  break;
467
475
  case 95:
468
- e.day = {
476
+ t.day = {
469
477
  name: "Thunderstorm",
470
478
  url: "https://osshz.idmwx.com/asset/weather/11d.svg",
471
479
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
472
- }, e.night = {
480
+ }, t.night = {
473
481
  name: "Thunderstorm",
474
482
  url: "https://osshz.idmwx.com/asset/weather/11n.svg",
475
483
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
476
484
  };
477
485
  break;
478
486
  case 96:
479
- e.day = {
487
+ t.day = {
480
488
  name: "Light Thunderstorms With Hail",
481
489
  url: "https://osshz.idmwx.com/asset/weather/11d.svg",
482
490
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
483
- }, e.night = {
491
+ }, t.night = {
484
492
  name: "Light Thunderstorms With Hail",
485
493
  url: "https://osshz.idmwx.com/asset/weather/11n.svg",
486
494
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
487
495
  };
488
496
  break;
489
497
  case 99:
490
- e.day = {
498
+ t.day = {
491
499
  name: "Thunderstorms With Hail",
492
500
  url: "https://osshz.idmwx.com/asset/weather/11d.svg",
493
501
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
494
- }, e.night = {
502
+ }, t.night = {
495
503
  name: "Thunderstorms With Hail",
496
504
  url: "https://osshz.idmwx.com/asset/weather/11n.svg",
497
505
  bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
498
506
  };
499
507
  break;
500
508
  }
501
- return e;
509
+ return t;
502
510
  }
503
- static kts2ms(t) {
504
- return isNaN(t) || t === null ? t : Math.round(t * 1852 / 3600 * 1e4) / 1e4;
511
+ static kts2ms(e) {
512
+ return isNaN(e) || e === null ? e : Math.round(e * 1852 / 3600 * 1e4) / 1e4;
505
513
  }
506
- static kts2kmh(t) {
507
- return isNaN(t) || t === null ? t : t * 1.852;
514
+ static kts2kmh(e) {
515
+ return isNaN(e) || e === null ? e : e * 1.852;
508
516
  }
509
- static m2nm(t) {
510
- return isNaN(t) || t === null ? t : Math.round(t / 1e3 / 1.852 * 1e4) / 1e4;
517
+ static m2nm(e) {
518
+ return isNaN(e) || e === null ? e : Math.round(e / 1e3 / 1.852 * 1e4) / 1e4;
511
519
  }
512
- static kmh2kts(t) {
513
- return isNaN(t) || t === null ? t : this.ms2kts(t * 1e3 / 3600);
520
+ static kmh2kts(e) {
521
+ return isNaN(e) || e === null ? e : this.ms2kts(e * 1e3 / 3600);
514
522
  }
515
- static ms2kts(t) {
516
- return isNaN(t) || t === null ? t : Math.round(t * 3600 / 1852 * 1e4) / 1e4;
523
+ static ms2kts(e) {
524
+ return isNaN(e) || e === null ? e : Math.round(e * 3600 / 1852 * 1e4) / 1e4;
517
525
  }
518
526
  /**
519
527
  * 角度转为弧度
520
528
  * @param degree
521
529
  */
522
- static degree2Radian(t) {
523
- if (isNaN(t) || t === null)
524
- return t;
525
- let e = t % 360 / 360 * 2 * Math.PI;
526
- return e = e < 0 ? e + 2 * Math.PI : e, e;
530
+ static degree2Radian(e) {
531
+ if (isNaN(e) || e === null)
532
+ return e;
533
+ let t = e % 360 / 360 * 2 * Math.PI;
534
+ return t = t < 0 ? t + 2 * Math.PI : t, t;
527
535
  }
528
536
  /**
529
537
  * 将方位角转换为方向
530
538
  * @param degree 角度[-360,360]
531
539
  * @return {string}
532
540
  */
533
- static degree2Direction(t) {
534
- const e = this.degree2Radian(t);
535
- if (isNaN(e) || e === null)
541
+ static degree2Direction(e) {
542
+ const t = this.degree2Radian(e);
543
+ if (isNaN(t) || t === null)
536
544
  return null;
537
- let h = "N/A";
545
+ let r = "N/A";
538
546
  const s = Math.PI / 16;
539
- return e < s ? h = "N" : e >= s && e < 3 * s ? h = "NNE" : e >= 3 * s && e < 5 * s ? h = "NE" : e >= 5 * s && e < 7 * s ? h = "ENE" : e >= 7 * s && e < 9 * s ? h = "E" : e >= 9 * s && e < 11 * s ? h = "ESE" : e >= 11 * s && e < 13 * s ? h = "SE" : e >= 13 * s && e < 15 * s ? h = "SSE" : e >= 15 * s && e < 17 * s ? h = "S" : e >= 17 * s && e < 19 * s ? h = "SSW" : e >= 19 * s && e < 21 * s ? h = "SW" : e >= 21 * s && e < 23 * s ? h = "WSW" : e >= 23 * s && e < 25 * s ? h = "W" : e >= 25 * s && e < 27 * s ? h = "WNW" : e >= 27 * s && e < 29 * s ? h = "NW" : e >= 29 * s && e < 31 * s ? h = "NNW" : e >= 31 * s && e < 32 * s && (h = "N"), h;
547
+ return t < s ? r = "N" : t >= s && t < 3 * s ? r = "NNE" : t >= 3 * s && t < 5 * s ? r = "NE" : t >= 5 * s && t < 7 * s ? r = "ENE" : t >= 7 * s && t < 9 * s ? r = "E" : t >= 9 * s && t < 11 * s ? r = "ESE" : t >= 11 * s && t < 13 * s ? r = "SE" : t >= 13 * s && t < 15 * s ? r = "SSE" : t >= 15 * s && t < 17 * s ? r = "S" : t >= 17 * s && t < 19 * s ? r = "SSW" : t >= 19 * s && t < 21 * s ? r = "SW" : t >= 21 * s && t < 23 * s ? r = "WSW" : t >= 23 * s && t < 25 * s ? r = "W" : t >= 25 * s && t < 27 * s ? r = "WNW" : t >= 27 * s && t < 29 * s ? r = "NW" : t >= 29 * s && t < 31 * s ? r = "NNW" : t >= 31 * s && t < 32 * s && (r = "N"), r;
540
548
  }
541
549
  /**
542
550
  * 计算风力蒲福等级
543
551
  * @param speed m/s
544
552
  * @returns {number}
545
553
  */
546
- static beaufort(t) {
547
- let e = 0;
548
- return isNaN(t) || (t = Math.round(t * 10) / 10, t <= 0.2 ? e = 0 : t <= 1.5 ? e = 1 : t <= 3.3 ? e = 2 : t <= 5.4 ? e = 3 : t <= 7.9 ? e = 4 : t <= 10.7 ? e = 5 : t <= 13.8 ? e = 6 : t <= 17.1 ? e = 7 : t <= 20.7 ? e = 8 : t <= 22.4 ? e = 9 : t <= 28.4 ? e = 10 : t <= 32.6 ? e = 11 : t > 32.6 && (e = 12)), e;
554
+ static beaufort(e) {
555
+ let t = 0;
556
+ return isNaN(e) || (e = Math.round(e * 10) / 10, e <= 0.2 ? t = 0 : e <= 1.5 ? t = 1 : e <= 3.3 ? t = 2 : e <= 5.4 ? t = 3 : e <= 7.9 ? t = 4 : e <= 10.7 ? t = 5 : e <= 13.8 ? t = 6 : e <= 17.1 ? t = 7 : e <= 20.7 ? t = 8 : e <= 22.4 ? t = 9 : e <= 28.4 ? t = 10 : e <= 32.6 ? t = 11 : e > 32.6 && (t = 12)), t;
549
557
  }
550
558
  /**
551
559
  * 计算海浪等级
552
560
  * @param height 高度 m
553
561
  */
554
- static douglas(t) {
555
- let e = "Calm";
556
- return isNaN(t) || t <= 0.1 ? e = "Calm" : t <= 0.5 ? e = "Smooth" : t <= 1.25 ? e = "Slight" : t <= 2.5 ? e = "Moderate" : t <= 4 ? e = "Rough" : t <= 6 ? e = "VeryRough" : t <= 9 ? e = "High" : t <= 14 ? e = "VeryHigh" : e = "Precipitous", e;
562
+ static douglas(e) {
563
+ let t = "Calm";
564
+ return isNaN(e) || e <= 0.1 ? t = "Calm" : e <= 0.5 ? t = "Smooth" : e <= 1.25 ? t = "Slight" : e <= 2.5 ? t = "Moderate" : e <= 4 ? t = "Rough" : e <= 6 ? t = "VeryRough" : e <= 9 ? t = "High" : e <= 14 ? t = "VeryHigh" : t = "Precipitous", t;
557
565
  }
558
566
  }
559
- const Wt = (l, t) => {
560
- const e = l.__vccOpts || l;
561
- for (const [h, s] of t)
562
- e[h] = s;
563
- return e;
564
- }, Tt = {
567
+ const Qe = "data:image/gif;base64,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";
568
+ const Ge = (g, e) => {
569
+ const t = g.__vccOpts || g;
570
+ for (const [r, s] of e)
571
+ t[r] = s;
572
+ return t;
573
+ }, Te = {
565
574
  name: "SpotReport",
566
575
  props: {
567
576
  token: {
@@ -570,7 +579,7 @@ const Wt = (l, t) => {
570
579
  },
571
580
  ts: {
572
581
  type: String,
573
- default: X().utc().format()
582
+ default: de().utc().format()
574
583
  },
575
584
  timeZone: {
576
585
  type: Number,
@@ -586,161 +595,202 @@ const Wt = (l, t) => {
586
595
  return {
587
596
  placeholder: "search for port name or coordinates",
588
597
  searchName: void 0,
589
- rawSearchIcon: Ct(Mt),
598
+ rawSearchIcon: ke(Pe),
590
599
  positionOffset: void 0,
591
600
  positionGmt: void 0,
592
601
  issuedDate: void 0,
593
602
  meteoData: {},
594
603
  positionList: [],
595
604
  position: void 0,
596
- loading: !1,
597
605
  activeIndex: void 0,
598
- tableData: {},
606
+ hoursTableData: {},
599
607
  pickedDate: void 0,
600
608
  pickedWeek: "Today",
601
609
  collectList: [],
602
- isCollected: !1
610
+ isCollected: !1,
611
+ loading: {
612
+ weatherEchart: !1,
613
+ meteogramEchart: !1,
614
+ hoursTable: !1,
615
+ daysTable: !1
616
+ },
617
+ menuIndex: 1,
618
+ meteogramData: void 0,
619
+ daysTableData: []
603
620
  };
604
621
  },
605
622
  computed: {
606
- computeHourL() {
607
- return function(l) {
608
- return l ? `${tt(l).tz(this.positionGmt).format("HH")}` : "-";
623
+ computeHourLT() {
624
+ return function(g) {
625
+ if (g) {
626
+ const e = ce(g).tz(this.positionGmt);
627
+ return `${e == null ? void 0 : e.format("HH")}`;
628
+ }
629
+ return "-";
609
630
  };
610
631
  },
611
632
  computeHourZ() {
612
- return function(l) {
613
- return l ? `${X(l).utc().format("HH")}Z` : "-";
633
+ return function(g) {
634
+ if (g) {
635
+ const e = de(g).utc();
636
+ return `${e == null ? void 0 : e.format("HH")}Z`;
637
+ }
638
+ return "-";
614
639
  };
615
640
  },
616
- computeWeek() {
617
- return function(l) {
618
- return l ? `${tt(l).tz(this.positionGmt).format("dddd")}` : "-";
641
+ computeWeekLT() {
642
+ return function(g) {
643
+ if (g) {
644
+ const e = ce(g).tz(this.positionGmt);
645
+ return `${e == null ? void 0 : e.format("dddd")}`;
646
+ }
647
+ return "-";
619
648
  };
620
649
  },
621
- computeMMMDD() {
622
- return function(l) {
623
- return l ? `${tt(l).tz(this.positionGmt).format("MMM-DD")}` : "-";
650
+ computeMMMDDLT() {
651
+ return function(g) {
652
+ if (g) {
653
+ const e = ce(g).tz(this.positionGmt);
654
+ return `${e == null ? void 0 : e.format("MMM-DD")}`;
655
+ }
656
+ return "-";
624
657
  };
625
658
  },
626
659
  computeLat() {
627
- return function(l, t = 4) {
628
- return ut.lat2pretty(l, t).pretty;
660
+ return function(g, e = 4) {
661
+ return be.lat2pretty(g, e).pretty;
629
662
  };
630
663
  },
631
664
  computeLng() {
632
- return function(l, t = 4) {
633
- return ut.lng2pretty(l, t).pretty;
665
+ return function(g, e = 4) {
666
+ return be.lng2pretty(g, e).pretty;
634
667
  };
635
668
  },
636
669
  roundPrecision() {
637
- return function(l, t = 4) {
638
- return isNaN(l) ? "-" : ut.roundPrecision(l, t);
670
+ return function(g, e = 4) {
671
+ return isNaN(g) ? "-" : be.roundPrecision(g, e);
639
672
  };
640
673
  }
641
674
  },
642
675
  watch: {
643
676
  point: {
644
677
  handler() {
645
- var l, t;
678
+ var g, e;
646
679
  this.point && (this.position = {
647
- // id: this.report.portId,
648
- lat: (l = this.point) == null ? void 0 : l.lat,
649
- lng: (t = this.point) == null ? void 0 : t.lng,
680
+ lat: (g = this.point) == null ? void 0 : g.lat,
681
+ lng: (e = this.point) == null ? void 0 : e.lng,
650
682
  name: this.computeLat(this.point.lat) + "," + this.computeLng(this.point.lng)
651
683
  }, this.handleFetchMeteo());
652
684
  },
653
685
  deep: !0,
654
686
  immediate: !0
687
+ },
688
+ menuIndex: {
689
+ handler() {
690
+ this.disposeEcharts(), this.loading = {
691
+ weatherEchart: !0,
692
+ meteogramEchart: !0,
693
+ hoursTable: !0,
694
+ daysTable: !0
695
+ }, this.menuIndex === 1 ? (this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData()) : this.menuIndex === 2 && (this.handleMeteogramData14(), this.initDaysTableData());
696
+ }
655
697
  }
656
698
  },
657
699
  methods: {
658
- handleRender() {
659
- this.initInfo(), this.initTableData(), this.$nextTick(() => {
660
- this.initEchart();
700
+ async fetchSuggestPosition(g) {
701
+ var r;
702
+ const e = g.replaceAll(",", ",");
703
+ if (!e)
704
+ return this.positionList = this.collectList, !1;
705
+ const t = await ze.get(`https://cbe.idmwx.com/api/arc/ports/suggest?n=${e}`, {
706
+ headers: {
707
+ Authorization: this.token
708
+ }
661
709
  });
710
+ (t == null ? void 0 : t.data.code) === 0 && (this.positionList = (r = t == null ? void 0 : t.data.data) == null ? void 0 : r.map((s) => (s.name = s.id ? s.name : this.computeLat(s.lat) + ", " + this.computeLng(s.lng), s)));
662
711
  },
663
- initInfo() {
664
- var l, t, e, h;
665
- this.loading = !1, this.positionGmt = (t = (l = this.meteoData.weather) == null ? void 0 : l[0]) == null ? void 0 : t.timezone, this.positionOffset = (h = (e = this.meteoData.weather) == null ? void 0 : e[0]) == null ? void 0 : h.offset, this.issuedDate = X(this.ts).utc().format("MMM-DD/HHmm[Z], YYYY"), this.activeIndex = tt(this.ts).tz(this.positionGmt).hour(), this.pickedDate = tt(this.ts).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.collectList = JSON.parse(localStorage.getItem("idmCollectList") || "[]"), this.positionList = JSON.parse(JSON.stringify(this.collectList)), this.isCollected = this.collectList.some((s) => {
666
- var v;
667
- return s.name === ((v = this.position) == null ? void 0 : v.name);
668
- });
712
+ handleSearch() {
713
+ var g, e, t;
714
+ this.searchName && (this.handleClearHoursTable(), this.position = {
715
+ portId: (g = this.positionList.find((r) => r.name === this.searchName)) == null ? void 0 : g.id,
716
+ lat: (e = this.positionList.find((r) => r.name === this.searchName)) == null ? void 0 : e.lat,
717
+ lng: (t = this.positionList.find((r) => r.name === this.searchName)) == null ? void 0 : t.lng,
718
+ name: this.searchName
719
+ }, this.$emit("url", this.position), this.handleFetchMeteo());
669
720
  },
670
- initTableData() {
671
- var l, t, e, h, s, v, C, P, L, N, I, M, H, a, n, Q, K, S, T, R, E, A, G, F, O, B, V, U, Z, J, Y, w, k, p;
672
- this.tableData = {
673
- hours: [],
674
- utcHours: [],
675
- weatherUrls: [],
676
- weatherNames: [],
677
- temp: [],
678
- precipProbability: [],
679
- precip1h: [],
680
- visibility: [],
681
- humidity: [],
682
- windSpeed: [],
683
- windDir: [],
684
- windGust: [],
685
- sigwaveHeight: [],
686
- sigwaveDir: [],
687
- windwaveHeight: [],
688
- windwaveDir: [],
689
- windwavePeriod: [],
690
- swellHeight: [],
691
- swellDir: [],
692
- swellPeriod: [],
693
- currentSpeed: [],
694
- currentDir: [],
695
- seaLevel: [],
696
- seaTemp: []
721
+ handleCollect() {
722
+ this.isCollected = !this.isCollected, this.isCollected ? this.collectList.push({ name: this.position.name, lat: this.position.lat, lng: this.position.lng }) : this.collectList = this.collectList.filter((g) => g.name !== this.position.name), localStorage.setItem("idmCollectList", JSON.stringify(this.collectList));
723
+ },
724
+ async handleFetchMeteo() {
725
+ if (!this.token)
726
+ return !1;
727
+ this.loading = {
728
+ weatherEchart: !0,
729
+ meteogramEchart: !0,
730
+ hoursTable: !0,
731
+ daysTable: !0
697
732
  };
698
- for (let y = 0; y < 24; y++) {
699
- const D = X(this.pickedDate).clone().add(y, "h").format();
700
- this.tableData.hours.push(D);
701
- const g = ((l = Dt.pickHourly(this.meteoData, D)) == null ? void 0 : l[0]) || {};
702
- this.tableData.weatherUrls.push((t = g.weather) == null ? void 0 : t.url), this.tableData.weatherNames.push(((e = g.weather) == null ? void 0 : e.name) ?? "-"), this.tableData.temp.push(this.roundPrecision((h = g.weather) == null ? void 0 : h.temp, 0) ?? "-"), this.tableData.precipProbability.push(this.roundPrecision((v = (s = g.weather) == null ? void 0 : s.precip) == null ? void 0 : v.probability, 0) ?? "-"), this.tableData.precip1h.push(this.roundPrecision((P = (C = g.weather) == null ? void 0 : C.precip) == null ? void 0 : P.sum, 0) ?? "-"), this.tableData.visibility.push(this.roundPrecision((L = g.weather) == null ? void 0 : L.visibility, 0) ?? "-"), this.tableData.humidity.push(this.roundPrecision((N = g.weather) == null ? void 0 : N.rh, 0) ?? "-"), this.tableData.windSpeed.push(this.roundPrecision((M = (I = g.weather) == null ? void 0 : I.wind) == null ? void 0 : M.kts, 1)), this.tableData.windDir.push((a = (H = g.weather) == null ? void 0 : H.wind) == null ? void 0 : a.bearing), this.tableData.windGust.push(this.roundPrecision((Q = (n = g.weather) == null ? void 0 : n.wind) == null ? void 0 : Q.gusts, 1) ?? "-"), this.tableData.sigwaveHeight.push(this.roundPrecision((S = (K = g.wave) == null ? void 0 : K.sig) == null ? void 0 : S.height, 1) ?? "-"), this.tableData.sigwaveDir.push((R = (T = g.wave) == null ? void 0 : T.sig) == null ? void 0 : R.bearing), this.tableData.windwaveHeight.push(this.roundPrecision((A = (E = g.wave) == null ? void 0 : E.wd) == null ? void 0 : A.height, 1) ?? "-"), this.tableData.windwaveDir.push((F = (G = g.wave) == null ? void 0 : G.wd) == null ? void 0 : F.bearing), this.tableData.windwavePeriod.push(this.roundPrecision((B = (O = g.wave) == null ? void 0 : O.wd) == null ? void 0 : B.period, 1) ?? "-"), this.tableData.swellHeight.push(this.roundPrecision((U = (V = g.wave) == null ? void 0 : V.swell) == null ? void 0 : U.height, 1) ?? "-"), this.tableData.swellDir.push((J = (Z = g.wave) == null ? void 0 : Z.swell) == null ? void 0 : J.bearing), this.tableData.swellPeriod.push(this.roundPrecision((w = (Y = g.wave) == null ? void 0 : Y.swell) == null ? void 0 : w.period, 1) ?? "-"), this.tableData.currentSpeed.push(this.roundPrecision((k = g.current) == null ? void 0 : k.speed, 1) ?? "-"), this.tableData.currentDir.push((p = g.current) == null ? void 0 : p.bearing), this.tableData.seaLevel.push(this.roundPrecision(g.height, 1) ?? "-"), this.tableData.seaTemp.push(this.roundPrecision(g.sst, 0) ?? "-");
703
- }
733
+ const g = {
734
+ lat: this.position.lat,
735
+ lng: this.position.lng,
736
+ forecastDays: 15,
737
+ selfHosted: !1
738
+ }, e = await ze.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast", g, {
739
+ headers: {
740
+ Authorization: this.token
741
+ }
742
+ });
743
+ (e == null ? void 0 : e.data.code) === 0 && (this.meteoData = {
744
+ ...e == null ? void 0 : e.data.data
745
+ }), this.handleRender();
704
746
  },
705
- initEchart() {
706
- var T, R, E, A, G, F, O, B, V, U, Z, J, Y;
707
- const l = [], t = [], e = [], h = [], s = [], v = [], C = [], P = [], L = [], N = [], I = {};
708
- for (let w = 0; w < 7; w++) {
709
- const k = X(this.pickedDate).clone().add(w, "d");
710
- l.push(tt(k).tz(this.positionGmt).format("yyyy-MM-DD")), t.push(this.computeMMMDD(k)), e.push(w === 0 ? "Today" : this.computeWeek(k));
711
- const p = ((T = Dt.pickDaily(this.meteoData, k)) == null ? void 0 : T[0]) || {};
712
- h.push(this.roundPrecision((E = (R = p.weather) == null ? void 0 : R.temp) == null ? void 0 : E.min, 0)), s.push(this.roundPrecision((G = (A = p.weather) == null ? void 0 : A.temp) == null ? void 0 : G.max, 0)), P.push(this.roundPrecision((O = (F = p.weather) == null ? void 0 : F.wind) == null ? void 0 : O.kts, 1) ?? "- kts"), N.push(this.roundPrecision((V = (B = p.weather) == null ? void 0 : B.precip) == null ? void 0 : V.sum, 0) ?? "- mm"), v.push({ symbol: "image://" + ((U = p.weather) == null ? void 0 : U.url) }), C.push((Z = p.weather) == null ? void 0 : Z.name), L.push((Y = (J = p.weather) == null ? void 0 : J.wind) == null ? void 0 : Y.degree);
713
- }
714
- const M = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) - Math.min(...h.filter((w) => typeof w == "number" && !isNaN(w))), H = Math.min(...h.filter((w) => typeof w == "number" && !isNaN(w))) - 1.5 * M, a = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) + 2 * M, n = 4 + 0.5 / l.length * 92 + "%", Q = "data:image/svg+xml;base64," + window.btoa(
747
+ handleRender() {
748
+ this.initInfo(), this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData();
749
+ },
750
+ initInfo() {
751
+ var g, e, t, r;
752
+ this.positionGmt = (e = (g = this.meteoData.weather) == null ? void 0 : g[0]) == null ? void 0 : e.timezone, this.positionOffset = (r = (t = this.meteoData.weather) == null ? void 0 : t[0]) == null ? void 0 : r.offset, this.issuedDate = de(this.ts).utc().format("MMM-DD/HHmm[Z], YYYY"), this.activeIndex = ce(this.ts).tz(this.positionGmt).hour(), this.pickedDate = ce(this.ts).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.collectList = JSON.parse(localStorage.getItem("idmCollectList") || "[]"), this.positionList = JSON.parse(JSON.stringify(this.collectList)), this.isCollected = this.collectList.some((s) => {
753
+ var B;
754
+ return s.name === ((B = this.position) == null ? void 0 : B.name);
755
+ });
756
+ },
757
+ initWeatherEchart() {
758
+ const g = [], e = [], t = [], r = [], s = [], B = [], b = [], M = [], Q = [], E = [], L = {}, v = "data:image/svg+xml;base64," + window.btoa(
715
759
  unescape(
716
760
  encodeURIComponent(
717
761
  '<svg t="1740385441519" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10951" width="200" height="200"><path d="M512 804.83593751A276.87183211 276.87183211 0 0 1 235.12816789 527.9641054Q235.12816789 375.21005376 512 13.82031251q276.87183211 361.30792288 276.87183211 514.14379289a276.87183211 276.87183211 0 0 1-276.87183211 276.87183211zM294.4461577 527.9641054a217.47202472 217.47202472 0 0 0 217.5538423 217.55384231 19.79993605 19.79993605 0 1 0 0-39.51805453 177.9539702 177.9539702 0 0 1-177.9539702-178.03578778 19.79993605 19.79993605 0 0 0-39.5998721 0z" fill="#0c73a8" p-id="10952"></path></svg>'
718
762
  )
719
763
  )
720
- ), K = "data:image/svg+xml;base64," + window.btoa(
764
+ ), H = "data:image/svg+xml;base64," + window.btoa(
721
765
  unescape(
722
766
  encodeURIComponent(
723
767
  '<svg t="1740383449285" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10797" width="200" height="200"><path d="M133.8 579l-44.4-44.4c-18.8-18.8-18.8-49.2 0-67.8L478 78c18.8-18.8 49.2-18.8 67.8 0l388.6 388.6c18.8 18.8 18.8 49.2 0 67.8L890 578.8c-19 19-50 18.6-68.6-0.8L592 337.2V912c0 26.6-21.4 48-48 48h-64c-26.6 0-48-21.4-48-48V337.2L202.4 578.2c-18.6 19.6-49.6 20-68.6 0.8z" fill="#ffffff" p-id="10798"></path></svg>'
724
768
  )
725
769
  )
726
- ), S = new Image(64, 64);
727
- S.src = K, S.onload = () => {
728
- for (let p = 0; p < 7; p++) {
729
- const y = document.createElement("canvas"), D = y.getContext("2d");
730
- y.width = S.width, y.height = S.height;
731
- const j = L[p] * (Math.PI / 180);
732
- D.translate(y.width / 2, y.height / 2), D.rotate(j), D.translate(-S.width / 2, -S.height / 2), D.drawImage(S, 0, 0, 64, 64);
733
- const et = y.toDataURL();
734
- I[`WindIcon${p}`] = {
770
+ ), y = new Image(64, 64);
771
+ y.src = H, y.onload = () => {
772
+ var k, N, G, T, a, h, X, J, R, W, q, V, Z;
773
+ this.loading.weatherEchart = !1;
774
+ for (let w = 0; w < 7; w++) {
775
+ const P = de(this.pickedDate).clone().add(w, "d");
776
+ g.push(ce(P).tz(this.positionGmt).format("yyyy-MM-DD")), e.push(this.computeMMMDDLT(P)), t.push(w === 0 ? "Today" : this.computeWeekLT(P));
777
+ const D = ((k = ye.pickDaily(this.meteoData, P)) == null ? void 0 : k[0]) || {};
778
+ r.push(this.roundPrecision((G = (N = D.weather) == null ? void 0 : N.temp) == null ? void 0 : G.min, 0)), s.push(this.roundPrecision((a = (T = D.weather) == null ? void 0 : T.temp) == null ? void 0 : a.max, 0)), M.push(this.roundPrecision((X = (h = D.weather) == null ? void 0 : h.wind) == null ? void 0 : X.kts, 1) ?? "- kts"), E.push(this.roundPrecision((R = (J = D.weather) == null ? void 0 : J.precip) == null ? void 0 : R.sum, 0) ?? "- mm"), B.push({ symbol: "image://" + ((W = D.weather) == null ? void 0 : W.url) }), b.push((q = D.weather) == null ? void 0 : q.name), Q.push((Z = (V = D.weather) == null ? void 0 : V.wind) == null ? void 0 : Z.degree);
779
+ const x = document.createElement("canvas"), u = x.getContext("2d");
780
+ x.width = y.width, x.height = y.height;
781
+ const ee = Q[w] * (Math.PI / 180);
782
+ u.translate(x.width / 2, x.height / 2), u.rotate(ee), u.translate(-y.width / 2, -y.height / 2), u.drawImage(y, 0, 0, 64, 64);
783
+ const te = x.toDataURL();
784
+ L[`WindIcon${w}`] = {
735
785
  height: 12,
736
786
  width: 12,
737
787
  align: "left",
738
788
  backgroundColor: {
739
- image: et
789
+ image: te
740
790
  }
741
791
  };
742
792
  }
743
- const w = wt.init(document.getElementById("weather-chart")), k = {
793
+ const S = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) - Math.min(...r.filter((w) => typeof w == "number" && !isNaN(w))), j = Math.min(...r.filter((w) => typeof w == "number" && !isNaN(w))) - 1.5 * S, O = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) + 2 * S, I = 4 + 0.5 / g.length * 92 + "%", z = {
744
794
  grid: {
745
795
  bottom: 0,
746
796
  top: 0,
@@ -751,8 +801,8 @@ const Wt = (l, t) => {
751
801
  trigger: "item",
752
802
  show: !0,
753
803
  position: "right",
754
- formatter: function(p) {
755
- return p.seriesName === "Weather Icon" ? C[p.dataIndex] : !1;
804
+ formatter: function(w) {
805
+ return w.seriesName === "Weather Icon" ? b[w.dataIndex] : !1;
756
806
  }
757
807
  },
758
808
  legend: {
@@ -764,13 +814,13 @@ const Wt = (l, t) => {
764
814
  top: "50%",
765
815
  height: "50%",
766
816
  type: "category",
767
- data: l,
817
+ data: g,
768
818
  show: !1
769
819
  },
770
820
  singleAxis: [
771
821
  {
772
- left: n,
773
- right: n,
822
+ left: I,
823
+ right: I,
774
824
  type: "category",
775
825
  show: !1,
776
826
  axisLine: {
@@ -790,13 +840,13 @@ const Wt = (l, t) => {
790
840
  // 隐藏分割线
791
841
  },
792
842
  boundaryGap: !1,
793
- data: l,
843
+ data: g,
794
844
  top: "7%",
795
845
  height: "2%"
796
846
  },
797
847
  {
798
- left: n,
799
- right: n,
848
+ left: I,
849
+ right: I,
800
850
  type: "category",
801
851
  show: !1,
802
852
  axisLine: {
@@ -816,13 +866,13 @@ const Wt = (l, t) => {
816
866
  // 隐藏分割线
817
867
  },
818
868
  boundaryGap: !1,
819
- data: l,
869
+ data: g,
820
870
  top: "16%",
821
871
  height: "2%"
822
872
  },
823
873
  {
824
- left: n,
825
- right: n,
874
+ left: I,
875
+ right: I,
826
876
  type: "category",
827
877
  show: !1,
828
878
  axisLine: {
@@ -842,13 +892,13 @@ const Wt = (l, t) => {
842
892
  // 隐藏分割线
843
893
  },
844
894
  boundaryGap: !1,
845
- data: l,
895
+ data: g,
846
896
  top: "27%",
847
897
  height: "2%"
848
898
  },
849
899
  {
850
- left: n,
851
- right: n,
900
+ left: I,
901
+ right: I,
852
902
  type: "category",
853
903
  show: !1,
854
904
  axisLine: {
@@ -868,13 +918,13 @@ const Wt = (l, t) => {
868
918
  // 隐藏分割线
869
919
  },
870
920
  boundaryGap: !1,
871
- data: l,
921
+ data: g,
872
922
  top: "84%",
873
923
  height: "2%"
874
924
  },
875
925
  {
876
- left: n,
877
- right: n,
926
+ left: I,
927
+ right: I,
878
928
  type: "category",
879
929
  show: !1,
880
930
  axisLine: {
@@ -894,7 +944,7 @@ const Wt = (l, t) => {
894
944
  // 隐藏分割线
895
945
  },
896
946
  boundaryGap: !1,
897
- data: l,
947
+ data: g,
898
948
  top: "93%",
899
949
  height: "2%"
900
950
  }
@@ -903,8 +953,8 @@ const Wt = (l, t) => {
903
953
  type: "value",
904
954
  name: "温度(℃)",
905
955
  show: !1,
906
- min: H,
907
- max: a,
956
+ min: j,
957
+ max: O,
908
958
  axisLabel: {
909
959
  formatter: "{value} °C"
910
960
  }
@@ -914,7 +964,7 @@ const Wt = (l, t) => {
914
964
  singleAxisIndex: 0,
915
965
  coordinateSystem: "singleAxis",
916
966
  type: "scatter",
917
- data: e,
967
+ data: t,
918
968
  label: {
919
969
  show: !0,
920
970
  color: "#fff",
@@ -927,7 +977,7 @@ const Wt = (l, t) => {
927
977
  singleAxisIndex: 1,
928
978
  coordinateSystem: "singleAxis",
929
979
  type: "scatter",
930
- data: t,
980
+ data: e,
931
981
  label: {
932
982
  show: !0,
933
983
  color: "#fff",
@@ -940,13 +990,13 @@ const Wt = (l, t) => {
940
990
  singleAxisIndex: 2,
941
991
  coordinateSystem: "singleAxis",
942
992
  type: "scatter",
943
- data: v,
993
+ data: B,
944
994
  symbolSize: 36
945
995
  },
946
996
  {
947
997
  name: "温度(℃)",
948
998
  type: "line",
949
- data: h,
999
+ data: r,
950
1000
  smooth: !0,
951
1001
  itemStyle: {
952
1002
  color: "rgba(255,255,255,0.7)"
@@ -968,7 +1018,7 @@ const Wt = (l, t) => {
968
1018
  x: "4%"
969
1019
  },
970
1020
  {
971
- x: 4 + 1 / l.length * 92 + "%"
1021
+ x: 4 + 1 / g.length * 92 + "%"
972
1022
  }
973
1023
  ]
974
1024
  ]
@@ -994,20 +1044,20 @@ const Wt = (l, t) => {
994
1044
  singleAxisIndex: 3,
995
1045
  coordinateSystem: "singleAxis",
996
1046
  type: "scatter",
997
- data: P,
1047
+ data: M,
998
1048
  label: {
999
1049
  show: !0,
1000
1050
  color: "#fff",
1001
1051
  // formatter: '{c}'
1002
1052
  rich: {
1003
- ...I,
1053
+ ...L,
1004
1054
  title: {
1005
1055
  align: "center",
1006
1056
  vertical: "center"
1007
1057
  }
1008
1058
  },
1009
- formatter: function(p) {
1010
- return `{WindIcon${p.dataIndex}|}{title|${p.value}} kts`;
1059
+ formatter: function(w) {
1060
+ return `{WindIcon${w.dataIndex}|}{title|${w.value}} kts`;
1011
1061
  }
1012
1062
  },
1013
1063
  symbolSize: 0
@@ -1016,7 +1066,7 @@ const Wt = (l, t) => {
1016
1066
  singleAxisIndex: 4,
1017
1067
  coordinateSystem: "singleAxis",
1018
1068
  type: "scatter",
1019
- data: N,
1069
+ data: E,
1020
1070
  label: {
1021
1071
  show: !0,
1022
1072
  color: "#fff",
@@ -1027,7 +1077,7 @@ const Wt = (l, t) => {
1027
1077
  width: 16,
1028
1078
  align: "left",
1029
1079
  backgroundColor: {
1030
- image: Q
1080
+ image: v
1031
1081
  }
1032
1082
  },
1033
1083
  title: {
@@ -1035,109 +1085,1040 @@ const Wt = (l, t) => {
1035
1085
  vertical: "center"
1036
1086
  }
1037
1087
  },
1038
- formatter: function(p) {
1039
- return `{dIcon|}{title|${p.value}} mm`;
1088
+ formatter: function(w) {
1089
+ return `{dIcon|}{title|${w.value}} mm`;
1040
1090
  }
1041
1091
  },
1042
1092
  symbolSize: 0
1043
1093
  }
1044
1094
  ]
1045
1095
  };
1046
- w.setOption(k), w.on("click", (p) => {
1047
- const y = p.dataIndex, D = l[y].split("-");
1048
- this.pickedDate = tt().tz(this.positionGmt).set({ year: D[0], month: Number(D[1] - 1), date: Number(D[2]), hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.pickedWeek = y === 0 ? "Today" : this.computeWeek(this.pickedDate), this.activeIndex = y === 0 ? tt(this.ts).tz(this.positionGmt).hour() : void 0, this.initTableData(), k.series[3].markArea = {
1049
- itemStyle: {
1050
- color: "rgb(71,143,206)"
1051
- },
1052
- data: [
1053
- [
1054
- {
1055
- x: 4 + y / l.length * 92 + "%"
1056
- },
1057
- {
1058
- x: 4 + (y + 1) / l.length * 92 + "%"
1059
- }
1096
+ this.$nextTick(() => {
1097
+ const w = ue.init(document.getElementById("weather-chart"));
1098
+ w.setOption(z), w.on("click", (P) => {
1099
+ const D = P.dataIndex, x = g[D].split("-");
1100
+ this.pickedDate = ce().tz(this.positionGmt).set({ year: x[0], month: Number(x[1] - 1), date: Number(x[2]), hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.pickedWeek = D === 0 ? "Today" : this.computeWeekLT(this.pickedDate), this.activeIndex = D === 0 ? ce(this.ts).tz(this.positionGmt).hour() : void 0, this.initHoursTableData(), z.series[3].markArea = {
1101
+ itemStyle: {
1102
+ color: "rgb(71,143,206)"
1103
+ },
1104
+ data: [
1105
+ [
1106
+ {
1107
+ x: 4 + D / g.length * 92 + "%"
1108
+ },
1109
+ {
1110
+ x: 4 + (D + 1) / g.length * 92 + "%"
1111
+ }
1112
+ ]
1060
1113
  ]
1061
- ]
1062
- }, w.setOption(k);
1114
+ }, w.setOption(z);
1115
+ });
1063
1116
  });
1064
1117
  };
1065
1118
  },
1066
- handleCollect() {
1067
- this.isCollected = !this.isCollected, this.isCollected ? this.collectList.push({ name: this.position.name, lat: this.position.lat, lng: this.position.lng }) : this.collectList = this.collectList.filter((l) => l.name !== this.position.name), localStorage.setItem("idmCollectList", JSON.stringify(this.collectList));
1119
+ handleMeteogramData7() {
1120
+ this.meteogramData = {
1121
+ xDates: [],
1122
+ dates: [],
1123
+ hours: [],
1124
+ temperatures: [],
1125
+ weatherIcons: [],
1126
+ weatherNames: [],
1127
+ windspeed: [],
1128
+ windGusts: [],
1129
+ windDir: [],
1130
+ windDirIcons: {},
1131
+ precip: [],
1132
+ sigWaveHeight: [],
1133
+ swellHeight: [],
1134
+ markarea: [],
1135
+ offset: void 0
1136
+ };
1137
+ let e = { start: void 0, end: void 0 };
1138
+ const t = "data:image/svg+xml;base64," + window.btoa(
1139
+ unescape(
1140
+ encodeURIComponent(
1141
+ '<svg t="1740383449285" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10797" width="200" height="200"><path d="M133.8 579l-44.4-44.4c-18.8-18.8-18.8-49.2 0-67.8L478 78c18.8-18.8 49.2-18.8 67.8 0l388.6 388.6c18.8 18.8 18.8 49.2 0 67.8L890 578.8c-19 19-50 18.6-68.6-0.8L592 337.2V912c0 26.6-21.4 48-48 48h-64c-26.6 0-48-21.4-48-48V337.2L202.4 578.2c-18.6 19.6-49.6 20-68.6 0.8z" fill="#333" p-id="10798"></path></svg>'
1142
+ )
1143
+ )
1144
+ ), r = new Image(64, 64);
1145
+ r.src = t, r.onload = () => {
1146
+ var s, B, b, M, Q, E, L, v, H, y, S, j, O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P, D, x, u, se, ee, te, l, oe, ne;
1147
+ this.loading.meteogramEchart = !1;
1148
+ for (let C = 0; C < 7 * 24; C++) {
1149
+ const Ae = de(this.pickedDate).clone().add(C, "h");
1150
+ (s = this.meteogramData) == null || s.dates.push(Ae);
1151
+ const d = ((B = ye.pickHourly(this.meteoData, Ae)) == null ? void 0 : B[0]) || {};
1152
+ if (C % 12 === 0 && C % 24 !== 0 ? (b = this.meteogramData) == null || b.xDates.push(ce(Ae).tz(this.positionGmt).format("MMM-DD")) : (M = this.meteogramData) == null || M.xDates.push(""), C % 3 === 0 ? (Q = this.meteogramData) == null || Q.hours.push(this.computeHourLT(Ae)) : (E = this.meteogramData) == null || E.hours.push(""), (v = this.meteogramData) == null || v.temperatures.push(this.roundPrecision((L = d == null ? void 0 : d.weather) == null ? void 0 : L.temp, 0)), (S = this.meteogramData) == null || S.precip.push(this.roundPrecision((y = (H = d == null ? void 0 : d.weather) == null ? void 0 : H.precip) == null ? void 0 : y.sum, 0)), (I = this.meteogramData) == null || I.windspeed.push(this.roundPrecision((O = (j = d.weather) == null ? void 0 : j.wind) == null ? void 0 : O.kts, 1)), (N = this.meteogramData) == null || N.windGusts.push(this.roundPrecision((k = (z = d == null ? void 0 : d.weather) == null ? void 0 : z.wind) == null ? void 0 : k.gusts, 1)), (a = this.meteogramData) == null || a.sigWaveHeight.push(this.roundPrecision((T = (G = d == null ? void 0 : d.wave) == null ? void 0 : G.sig) == null ? void 0 : T.height)), (J = this.meteogramData) == null || J.swellHeight.push(this.roundPrecision((X = (h = d == null ? void 0 : d.wave) == null ? void 0 : h.swell) == null ? void 0 : X.height)), C % 6 === 0 ? ((W = this.meteogramData) == null || W.weatherIcons.push({ symbol: "image://" + ((R = d.weather) == null ? void 0 : R.url), symbolSize: 24 }), (V = this.meteogramData) == null || V.weatherNames.push((q = d.weather) == null ? void 0 : q.name)) : ((w = this.meteogramData) == null || w.weatherIcons.push({ symbol: "image://" + ((Z = d.weather) == null ? void 0 : Z.url), symbolSize: 0 }), (P = this.meteogramData) == null || P.weatherNames.push("")), C % 2 === 0 ? (u = this.meteogramData) == null || u.windDir.push((x = (D = d.weather) == null ? void 0 : D.wind) == null ? void 0 : x.degree) : (se = this.meteogramData) == null || se.windDir.push(""), C % 2 === 0) {
1153
+ const _ = document.createElement("canvas"), ae = _.getContext("2d");
1154
+ _.width = r.width, _.height = r.height;
1155
+ const we = ((ee = this.meteogramData) == null ? void 0 : ee.windDir[C]) * (Math.PI / 180);
1156
+ ae.translate(_.width / 2, _.height / 2), ae.rotate(we), ae.translate(-r.width / 2, -r.height / 2), ae.drawImage(r, 0, 0, 64, 64);
1157
+ const ge = _.toDataURL();
1158
+ this.meteogramData.windDirIcons[`WindIcon${C}`] = {
1159
+ height: 12,
1160
+ width: 12,
1161
+ align: "left",
1162
+ backgroundColor: {
1163
+ image: ge
1164
+ }
1165
+ };
1166
+ } else
1167
+ this.meteogramData.windDirIcons[`WindIcon${C}`] = {
1168
+ height: 0,
1169
+ width: 0,
1170
+ align: "left",
1171
+ backgroundColor: "none"
1172
+ };
1173
+ (te = d == null ? void 0 : d.weather) != null && te.isDay ? e.end === void 0 && e.start >= 0 && (e.end = C) : e.start === void 0 && (e.start = C), (e.start >= 0 && e.end >= 0 || e.start >= 0 && C === 7 * 24 - 1) && ((l = this.meteogramData) == null || l.markarea.push(
1174
+ [
1175
+ {
1176
+ x: 4 + e.start / (7 * 24) * 92 + "%"
1177
+ },
1178
+ {
1179
+ x: 4 + (e.end + 1) / (7 * 24) * 92 + "%"
1180
+ }
1181
+ ]
1182
+ ), e = { start: void 0, end: void 0 });
1183
+ }
1184
+ this.meteogramData.offset = 4 + 0.5 / ((ne = (oe = this.meteogramData) == null ? void 0 : oe.dates) == null ? void 0 : ne.length) * 92 + "%", this.$nextTick(() => {
1185
+ this.initMeteogramEchart();
1186
+ });
1187
+ };
1068
1188
  },
1069
- async fetchSuggestPosition(l) {
1070
- var h;
1071
- const t = l.replaceAll(",", ",");
1072
- if (!t)
1073
- return this.positionList = this.collectList, !1;
1074
- const e = await kt.get(`https://cbe.idmwx.com/api/arc/ports/suggest?n=${t}`, {
1075
- headers: {
1076
- Authorization: this.token
1189
+ handleMeteogramData14() {
1190
+ this.meteogramData = {
1191
+ xDates: [],
1192
+ dates: [],
1193
+ hours: [],
1194
+ temperatures: [],
1195
+ weatherIcons: [],
1196
+ weatherNames: [],
1197
+ windspeed: [],
1198
+ windGusts: [],
1199
+ windDir: [],
1200
+ windDirIcons: {},
1201
+ precip: [],
1202
+ sigWaveHeight: [],
1203
+ swellHeight: [],
1204
+ markarea: [],
1205
+ offset: void 0
1206
+ };
1207
+ let e = { start: void 0, end: void 0 };
1208
+ const t = "data:image/svg+xml;base64," + window.btoa(
1209
+ unescape(
1210
+ encodeURIComponent(
1211
+ '<svg t="1740383449285" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10797" width="200" height="200"><path d="M133.8 579l-44.4-44.4c-18.8-18.8-18.8-49.2 0-67.8L478 78c18.8-18.8 49.2-18.8 67.8 0l388.6 388.6c18.8 18.8 18.8 49.2 0 67.8L890 578.8c-19 19-50 18.6-68.6-0.8L592 337.2V912c0 26.6-21.4 48-48 48h-64c-26.6 0-48-21.4-48-48V337.2L202.4 578.2c-18.6 19.6-49.6 20-68.6 0.8z" fill="#333" p-id="10798"></path></svg>'
1212
+ )
1213
+ )
1214
+ ), r = new Image(64, 64);
1215
+ r.src = t, r.onload = () => {
1216
+ var s, B, b, M, Q, E, L, v, H, y, S, j, O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P, D, x, u, se, ee, te, l, oe, ne;
1217
+ this.loading.meteogramEchart = !1;
1218
+ for (let C = 0; C < 14 * 24; C++) {
1219
+ const Ae = de(this.pickedDate).clone().add(C, "h");
1220
+ (s = this.meteogramData) == null || s.dates.push(Ae);
1221
+ const d = ((B = ye.pickHourly(this.meteoData, Ae)) == null ? void 0 : B[0]) || {};
1222
+ if ((M = this.meteogramData) == null || M.temperatures.push(this.roundPrecision((b = d == null ? void 0 : d.weather) == null ? void 0 : b.temp, 0)), (L = this.meteogramData) == null || L.precip.push(this.roundPrecision((E = (Q = d == null ? void 0 : d.weather) == null ? void 0 : Q.precip) == null ? void 0 : E.sum, 0)), (y = this.meteogramData) == null || y.windspeed.push(this.roundPrecision((H = (v = d.weather) == null ? void 0 : v.wind) == null ? void 0 : H.kts, 1)), (O = this.meteogramData) == null || O.windGusts.push(this.roundPrecision((j = (S = d == null ? void 0 : d.weather) == null ? void 0 : S.wind) == null ? void 0 : j.gusts, 1)), (k = this.meteogramData) == null || k.sigWaveHeight.push(this.roundPrecision((z = (I = d == null ? void 0 : d.wave) == null ? void 0 : I.sig) == null ? void 0 : z.height)), (T = this.meteogramData) == null || T.swellHeight.push(this.roundPrecision((G = (N = d == null ? void 0 : d.wave) == null ? void 0 : N.swell) == null ? void 0 : G.height)), C % 12 === 0 && C % 24 !== 0 ? (a = this.meteogramData) == null || a.xDates.push(ce(Ae).tz(this.positionGmt).format("MMM-DD")) : (h = this.meteogramData) == null || h.xDates.push(""), C % 6 === 0 ? (X = this.meteogramData) == null || X.hours.push(this.computeHourLT(Ae)) : (J = this.meteogramData) == null || J.hours.push(""), C % 9 === 0 ? ((W = this.meteogramData) == null || W.weatherIcons.push({ symbol: "image://" + ((R = d.weather) == null ? void 0 : R.url), symbolSize: 24 }), (V = this.meteogramData) == null || V.weatherNames.push((q = d.weather) == null ? void 0 : q.name)) : ((w = this.meteogramData) == null || w.weatherIcons.push({ symbol: "image://" + ((Z = d.weather) == null ? void 0 : Z.url), symbolSize: 0 }), (P = this.meteogramData) == null || P.weatherNames.push("")), C % 6 === 0 ? (u = this.meteogramData) == null || u.windDir.push((x = (D = d.weather) == null ? void 0 : D.wind) == null ? void 0 : x.degree) : (se = this.meteogramData) == null || se.windDir.push(""), C % 6 === 0) {
1223
+ const _ = document.createElement("canvas"), ae = _.getContext("2d");
1224
+ _.width = r.width, _.height = r.height;
1225
+ const we = ((ee = this.meteogramData) == null ? void 0 : ee.windDir[C]) * (Math.PI / 180);
1226
+ ae.translate(_.width / 2, _.height / 2), ae.rotate(we), ae.translate(-r.width / 2, -r.height / 2), ae.drawImage(r, 0, 0, 64, 64);
1227
+ const ge = _.toDataURL();
1228
+ this.meteogramData.windDirIcons[`WindIcon${C}`] = {
1229
+ height: 12,
1230
+ width: 12,
1231
+ align: "left",
1232
+ backgroundColor: {
1233
+ image: ge
1234
+ }
1235
+ };
1236
+ } else
1237
+ this.meteogramData.windDirIcons[`WindIcon${C}`] = {
1238
+ height: 0,
1239
+ width: 0,
1240
+ align: "left",
1241
+ backgroundColor: "none"
1242
+ };
1243
+ (te = d == null ? void 0 : d.weather) != null && te.isDay ? e.end === void 0 && e.start >= 0 && (e.end = C) : e.start === void 0 && (e.start = C), (e.start >= 0 && e.end >= 0 || e.start >= 0 && C === 14 * 24 - 1) && ((l = this.meteogramData) == null || l.markarea.push(
1244
+ [
1245
+ {
1246
+ x: 4 + e.start / (14 * 24) * 92 + "%"
1247
+ },
1248
+ {
1249
+ x: 4 + (e.end + 1) / (14 * 24) * 92 + "%"
1250
+ }
1251
+ ]
1252
+ ), e = { start: void 0, end: void 0 });
1077
1253
  }
1078
- });
1079
- (e == null ? void 0 : e.data.code) === 0 && (this.positionList = (h = e == null ? void 0 : e.data.data) == null ? void 0 : h.map((s) => (s.name = s.id ? s.name : this.computeLat(s.lat) + ", " + this.computeLng(s.lng), s)));
1254
+ this.meteogramData.offset = 4 + 0.5 / ((ne = (oe = this.meteogramData) == null ? void 0 : oe.dates) == null ? void 0 : ne.length) * 92 + "%", this.$nextTick(() => {
1255
+ this.initMeteogramEchart();
1256
+ });
1257
+ };
1080
1258
  },
1081
- handleSearch() {
1082
- var l, t, e;
1083
- this.searchName && (this.handleClear(), this.position = {
1084
- portId: (l = this.positionList.find((h) => h.name === this.searchName)) == null ? void 0 : l.id,
1085
- lat: (t = this.positionList.find((h) => h.name === this.searchName)) == null ? void 0 : t.lat,
1086
- lng: (e = this.positionList.find((h) => h.name === this.searchName)) == null ? void 0 : e.lng,
1087
- name: this.searchName
1088
- }, this.$emit("url", this.position), this.handleFetchMeteo());
1259
+ initMeteogramEchart() {
1260
+ var O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P, D, x, u, se, ee, te, l, oe, ne, C, Ae, d, _, ae, re, we, ge, fe, le, ie, me, m, Be, p;
1261
+ const g = ue.init(document.getElementById("weather-icons")), e = {
1262
+ grid: {
1263
+ show: !0,
1264
+ bottom: "0%",
1265
+ top: "0%",
1266
+ left: "4%",
1267
+ right: "4%",
1268
+ borderColor: "#666",
1269
+ borderWidth: 1
1270
+ },
1271
+ tooltip: {
1272
+ trigger: "item",
1273
+ show: !0,
1274
+ position: "right",
1275
+ formatter: (i) => {
1276
+ const $ = i == null ? void 0 : i.dataIndex;
1277
+ return i.seriesName === "Weather Icons" ? `<strong>${this.meteogramData.weatherNames[$]}</strong>` : !1;
1278
+ }
1279
+ },
1280
+ legend: {
1281
+ show: !1,
1282
+ right: "4%"
1283
+ },
1284
+ xAxis: {
1285
+ left: 0,
1286
+ right: 0,
1287
+ top: "50%",
1288
+ height: "50%",
1289
+ type: "category",
1290
+ data: (O = this.meteogramData) == null ? void 0 : O.dates,
1291
+ show: !1
1292
+ },
1293
+ axisLine: {
1294
+ show: !1
1295
+ },
1296
+ singleAxis: [
1297
+ {
1298
+ left: (I = this.meteogramData) == null ? void 0 : I.offset,
1299
+ right: (z = this.meteogramData) == null ? void 0 : z.offset,
1300
+ type: "category",
1301
+ show: !1,
1302
+ axisLine: {
1303
+ show: !1
1304
+ // 隐藏轴线
1305
+ },
1306
+ axisTick: {
1307
+ show: !1
1308
+ // 隐藏刻度
1309
+ },
1310
+ axisLabel: {
1311
+ show: !1
1312
+ // 隐藏刻度标签
1313
+ },
1314
+ splitLine: {
1315
+ show: !1
1316
+ // 隐藏分割线
1317
+ },
1318
+ boundaryGap: !1,
1319
+ data: (k = this.meteogramData) == null ? void 0 : k.dates,
1320
+ top: "25%",
1321
+ height: "2%"
1322
+ },
1323
+ {
1324
+ left: (N = this.meteogramData) == null ? void 0 : N.offset,
1325
+ right: (G = this.meteogramData) == null ? void 0 : G.offset,
1326
+ type: "category",
1327
+ show: !1,
1328
+ axisLine: {
1329
+ show: !1
1330
+ // 隐藏轴线
1331
+ },
1332
+ axisTick: {
1333
+ show: !1
1334
+ // 隐藏刻度
1335
+ },
1336
+ axisLabel: {
1337
+ show: !1
1338
+ // 隐藏刻度标签
1339
+ },
1340
+ splitLine: {
1341
+ show: !1
1342
+ // 隐藏分割线
1343
+ },
1344
+ boundaryGap: !1,
1345
+ data: (T = this.meteogramData) == null ? void 0 : T.dates,
1346
+ top: "70%",
1347
+ height: "2%"
1348
+ }
1349
+ ],
1350
+ yAxis: [],
1351
+ series: [
1352
+ {
1353
+ name: "Weather Icons",
1354
+ type: "scatter",
1355
+ singleAxisIndex: 0,
1356
+ coordinateSystem: "singleAxis",
1357
+ data: (a = this.meteogramData) == null ? void 0 : a.weatherIcons,
1358
+ symbolSize: 20
1359
+ },
1360
+ {
1361
+ singleAxisIndex: 1,
1362
+ coordinateSystem: "singleAxis",
1363
+ type: "scatter",
1364
+ data: (h = this.meteogramData) == null ? void 0 : h.windDir,
1365
+ label: {
1366
+ show: !0,
1367
+ rich: {
1368
+ ...(X = this.meteogramData) == null ? void 0 : X.windDirIcons,
1369
+ title: {
1370
+ align: "center",
1371
+ vertical: "center"
1372
+ }
1373
+ },
1374
+ formatter: function(i) {
1375
+ return `{WindIcon${i.dataIndex}|}`;
1376
+ }
1377
+ },
1378
+ symbolSize: 0
1379
+ }
1380
+ ]
1381
+ };
1382
+ g.setOption(e);
1383
+ let t = Math.max(...this.meteogramData.temperatures.filter((i) => typeof i == "number" && !isNaN(i))), s = Math.min(...this.meteogramData.temperatures.filter((i) => typeof i == "number" && !isNaN(i))) > 0 ? 0 : Math.min(...this.meteogramData.temperatures.filter((i) => typeof i == "number" && !isNaN(i))), B = Math.ceil(t / 5) * 5, b = Math.ceil((B - s) / 5);
1384
+ const M = ue.init(document.getElementById("weather-condition")), Q = {
1385
+ title: {
1386
+ text: "Weather conditions",
1387
+ top: "10px",
1388
+ left: "5px",
1389
+ textStyle: {
1390
+ fontWeight: "normal",
1391
+ fontSize: 14
1392
+ }
1393
+ },
1394
+ grid: {
1395
+ show: !0,
1396
+ bottom: "20%",
1397
+ top: "90px",
1398
+ left: "4%",
1399
+ right: "4%",
1400
+ borderColor: "#666",
1401
+ borderWidth: 1
1402
+ },
1403
+ tooltip: {
1404
+ trigger: "axis",
1405
+ show: !0,
1406
+ position: "right",
1407
+ formatter: (i) => {
1408
+ var he, pe, c, De, Ie, xe;
1409
+ const $ = (he = i == null ? void 0 : i[0]) == null ? void 0 : he.dataIndex;
1410
+ return i.find((Ee) => Ee.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${ce((pe = this.meteogramData) == null ? void 0 : pe.dates[$]).tz(this.positionGmt).format("MMM-DD/HHmm[LT]")}</strong></div>
1411
+ <div style="display: ${(c = this.meteogramData) != null && c.weatherNames[$] ? "block" : "none"}; font-size: 13px;">
1412
+ <span>Weather : </span><strong>${(De = this.meteogramData) == null ? void 0 : De.weatherNames[$]}</strong>
1413
+ </div>
1414
+ <div style="font-size: 13px;">
1415
+ <span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #f2a71c;}"></span>
1416
+ <span>Temperature : </span><strong>${(Ie = i[0]) == null ? void 0 : Ie.value}</strong><span style="padding-left: 3px;">℃</span>
1417
+ </div>
1418
+ <div style="font-size: 13px;">
1419
+ <span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0c73a8;}"></span>
1420
+ <span>Precipitation : </span><strong>${(xe = i[1]) == null ? void 0 : xe.value}</strong><span style="padding-left: 3px;">mm</span>
1421
+ </div>`;
1422
+ }
1423
+ },
1424
+ legend: {
1425
+ show: !0,
1426
+ top: "10px",
1427
+ right: "4%",
1428
+ data: ["Temperature", "Precipitation"],
1429
+ itemWidth: 40
1430
+ },
1431
+ xAxis: {
1432
+ left: 0,
1433
+ right: 0,
1434
+ top: "50%",
1435
+ height: "50%",
1436
+ type: "category",
1437
+ data: (J = this.meteogramData) == null ? void 0 : J.dates,
1438
+ show: !1
1439
+ },
1440
+ axisLine: {
1441
+ show: !0
1442
+ },
1443
+ singleAxis: [
1444
+ {
1445
+ left: (R = this.meteogramData) == null ? void 0 : R.offset,
1446
+ right: (W = this.meteogramData) == null ? void 0 : W.offset,
1447
+ type: "category",
1448
+ show: !1,
1449
+ axisLine: {
1450
+ show: !1
1451
+ // 隐藏轴线
1452
+ },
1453
+ axisTick: {
1454
+ show: !1
1455
+ // 隐藏刻度
1456
+ },
1457
+ axisLabel: {
1458
+ show: !1
1459
+ // 隐藏刻度标签
1460
+ },
1461
+ splitLine: {
1462
+ show: !1
1463
+ // 隐藏分割线
1464
+ },
1465
+ boundaryGap: !1,
1466
+ data: (q = this.meteogramData) == null ? void 0 : q.dates,
1467
+ top: "17%",
1468
+ height: "2%"
1469
+ },
1470
+ {
1471
+ left: (V = this.meteogramData) == null ? void 0 : V.offset,
1472
+ right: (Z = this.meteogramData) == null ? void 0 : Z.offset,
1473
+ type: "category",
1474
+ show: !1,
1475
+ axisLine: {
1476
+ show: !1
1477
+ // 隐藏轴线
1478
+ },
1479
+ axisTick: {
1480
+ show: !1
1481
+ // 隐藏刻度
1482
+ },
1483
+ axisLabel: {
1484
+ show: !1
1485
+ // 隐藏刻度标签
1486
+ },
1487
+ splitLine: {
1488
+ show: !1
1489
+ // 隐藏分割线
1490
+ },
1491
+ boundaryGap: !1,
1492
+ data: (w = this.meteogramData) == null ? void 0 : w.dates,
1493
+ top: "27%",
1494
+ height: "2%"
1495
+ },
1496
+ {
1497
+ left: (P = this.meteogramData) == null ? void 0 : P.offset,
1498
+ right: (D = this.meteogramData) == null ? void 0 : D.offset,
1499
+ type: "category",
1500
+ show: !1,
1501
+ axisLine: {
1502
+ show: !1
1503
+ // 隐藏轴线
1504
+ },
1505
+ axisTick: {
1506
+ show: !1
1507
+ // 隐藏刻度
1508
+ },
1509
+ axisLabel: {
1510
+ show: !1
1511
+ // 隐藏刻度标签
1512
+ },
1513
+ splitLine: {
1514
+ show: !1
1515
+ // 隐藏分割线
1516
+ },
1517
+ boundaryGap: !1,
1518
+ data: (x = this.meteogramData) == null ? void 0 : x.dates,
1519
+ top: "84%",
1520
+ height: "2%"
1521
+ },
1522
+ {
1523
+ left: (u = this.meteogramData) == null ? void 0 : u.offset,
1524
+ right: (se = this.meteogramData) == null ? void 0 : se.offset,
1525
+ type: "category",
1526
+ show: !1,
1527
+ axisLine: {
1528
+ show: !1
1529
+ // 隐藏轴线
1530
+ },
1531
+ axisTick: {
1532
+ show: !1
1533
+ // 隐藏刻度
1534
+ },
1535
+ axisLabel: {
1536
+ show: !1
1537
+ // 隐藏刻度标签
1538
+ },
1539
+ splitLine: {
1540
+ show: !1
1541
+ // 隐藏分割线
1542
+ },
1543
+ boundaryGap: !1,
1544
+ data: (ee = this.meteogramData) == null ? void 0 : ee.dates,
1545
+ top: "92%",
1546
+ height: "2%"
1547
+ }
1548
+ ],
1549
+ yAxis: [
1550
+ {
1551
+ type: "value",
1552
+ name: "Temperature ( ℃ ) ",
1553
+ show: !0,
1554
+ min: s,
1555
+ max: B,
1556
+ interval: b,
1557
+ splitNumber: 5,
1558
+ nameRotate: 90,
1559
+ nameLocation: "middle",
1560
+ nameGap: 25,
1561
+ splitLine: {
1562
+ show: !0,
1563
+ // lineStyle: {
1564
+ // color: '#999',
1565
+ // },
1566
+ z: 0,
1567
+ zlevel: 0
1568
+ }
1569
+ },
1570
+ {
1571
+ position: "right",
1572
+ type: "value",
1573
+ name: "Precipitation ( mm ) ",
1574
+ min: 0,
1575
+ max: 5,
1576
+ splitNumber: 5,
1577
+ show: !0,
1578
+ nameRotate: 90,
1579
+ nameLocation: "middle",
1580
+ nameGap: 20,
1581
+ splitLine: {
1582
+ show: !0,
1583
+ // lineStyle: {
1584
+ // color: '#999',
1585
+ // },
1586
+ z: 0,
1587
+ zlevel: 0
1588
+ }
1589
+ }
1590
+ ],
1591
+ series: [
1592
+ {
1593
+ name: "Temperature",
1594
+ type: "line",
1595
+ yAxisIndex: 0,
1596
+ data: (te = this.meteogramData) == null ? void 0 : te.temperatures,
1597
+ min: s,
1598
+ max: B,
1599
+ symbol: "none",
1600
+ smooth: !1,
1601
+ itemStyle: {
1602
+ color: "rgb(242,167,28)"
1603
+ },
1604
+ label: {
1605
+ show: !1
1606
+ },
1607
+ markArea: {
1608
+ z: -1,
1609
+ zlevel: -1,
1610
+ itemStyle: {
1611
+ color: "rgba(239,239,239,0.6)"
1612
+ },
1613
+ data: (l = this.meteogramData) == null ? void 0 : l.markarea,
1614
+ emphasis: {
1615
+ disabled: !0
1616
+ }
1617
+ }
1618
+ },
1619
+ {
1620
+ name: "Precipitation",
1621
+ type: "bar",
1622
+ yAxisIndex: 1,
1623
+ data: (oe = this.meteogramData) == null ? void 0 : oe.precip,
1624
+ itemStyle: {
1625
+ color: "#0c73a8"
1626
+ },
1627
+ label: {
1628
+ show: !1
1629
+ }
1630
+ },
1631
+ {
1632
+ singleAxisIndex: 2,
1633
+ coordinateSystem: "singleAxis",
1634
+ type: "scatter",
1635
+ data: (ne = this.meteogramData) == null ? void 0 : ne.hours,
1636
+ label: {
1637
+ show: !0,
1638
+ fontSize: 11,
1639
+ formatter: "{c}"
1640
+ },
1641
+ itemStyle: {
1642
+ color: "#fff"
1643
+ },
1644
+ symbolSize: 0
1645
+ },
1646
+ {
1647
+ singleAxisIndex: 3,
1648
+ coordinateSystem: "singleAxis",
1649
+ type: "scatter",
1650
+ data: (C = this.meteogramData) == null ? void 0 : C.xDates,
1651
+ label: {
1652
+ show: !0,
1653
+ fontSize: 13,
1654
+ formatter: "{c}"
1655
+ },
1656
+ itemStyle: {
1657
+ color: "#fff"
1658
+ },
1659
+ symbolSize: 0
1660
+ }
1661
+ ]
1662
+ };
1663
+ M.setOption(Q);
1664
+ const E = Math.max(...this.meteogramData.windGusts.filter((i) => typeof i == "number" && !isNaN(i))), v = Math.min(...this.meteogramData.windspeed.filter((i) => typeof i == "number" && !isNaN(i))) > 0 ? 0 : Math.min(...this.meteogramData.windspeed.filter((i) => typeof i == "number" && !isNaN(i))), H = Math.ceil(E / 5) * 5, y = Math.ceil((H - v) / 5), S = ue.init(document.getElementById("wave-swell")), j = {
1665
+ title: {
1666
+ text: "Weather conditions",
1667
+ top: "10px",
1668
+ left: "5px",
1669
+ textStyle: {
1670
+ fontWeight: "normal",
1671
+ fontSize: 14
1672
+ }
1673
+ },
1674
+ grid: {
1675
+ show: !0,
1676
+ bottom: "20%",
1677
+ top: "40px",
1678
+ left: "4%",
1679
+ right: "4%",
1680
+ borderColor: "#666",
1681
+ borderWidth: 1
1682
+ },
1683
+ tooltip: {
1684
+ trigger: "axis",
1685
+ triggerOn: "mousemove",
1686
+ show: !0,
1687
+ position: "right",
1688
+ formatter: (i) => {
1689
+ var he, pe, c, De, Ie, xe;
1690
+ const $ = (he = i == null ? void 0 : i[0]) == null ? void 0 : he.dataIndex;
1691
+ return i.find((Ee) => Ee.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${ce((pe = this.meteogramData) == null ? void 0 : pe.dates[$]).tz(this.positionGmt).format("MMM-DD/HHmm[LT]")}</strong></div>
1692
+ <div style="font-size: 13px;">
1693
+ <span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0ddd9f;}"></span>
1694
+ <span>Wind Speed : </span><strong>${(c = i[0]) == null ? void 0 : c.value}</strong><span style="padding-left: 3px;">kts</span>
1695
+ </div>
1696
+ <div style="font-size: 13px;">
1697
+ <span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #06a074;}"></span>
1698
+ <span>Wind Gusts : </span><strong>${(De = i[1]) == null ? void 0 : De.value}</strong><span style="padding-left: 3px;">kts</span>
1699
+ </div>
1700
+ <div style="font-size: 13px;">
1701
+ <span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #2a57b7;}"></span>
1702
+ <span>Sig.Wave Height : </span><strong>${(Ie = i[2]) == null ? void 0 : Ie.value}</strong><span style="padding-left: 3px;">m</span>
1703
+ </div>
1704
+ <div style="font-size: 13px;">
1705
+ <span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #673AB7;"></span>
1706
+ <span>Swell Height : </span><strong>${(xe = i[3]) == null ? void 0 : xe.value}</strong><span style="padding-left: 3px;">m</span>
1707
+ </div>`;
1708
+ }
1709
+ },
1710
+ legend: {
1711
+ // show: false,
1712
+ right: "4%",
1713
+ top: "5%",
1714
+ itemWidth: 40,
1715
+ data: ["Wind Speed", "Wind Gusts", "Sig.Wave Height", "Swell Height"]
1716
+ },
1717
+ xAxis: {
1718
+ left: 0,
1719
+ right: 0,
1720
+ top: "50%",
1721
+ height: "50%",
1722
+ type: "category",
1723
+ data: (Ae = this.meteogramData) == null ? void 0 : Ae.dates,
1724
+ show: !1
1725
+ },
1726
+ axisLine: {
1727
+ show: !0
1728
+ },
1729
+ singleAxis: [
1730
+ {
1731
+ left: (d = this.meteogramData) == null ? void 0 : d.offset,
1732
+ right: (_ = this.meteogramData) == null ? void 0 : _.offset,
1733
+ type: "category",
1734
+ show: !1,
1735
+ axisLine: {
1736
+ show: !1
1737
+ // 隐藏轴线
1738
+ },
1739
+ axisTick: {
1740
+ show: !1
1741
+ // 隐藏刻度
1742
+ },
1743
+ axisLabel: {
1744
+ show: !1
1745
+ // 隐藏刻度标签
1746
+ },
1747
+ splitLine: {
1748
+ show: !1
1749
+ // 隐藏分割线
1750
+ },
1751
+ boundaryGap: !1,
1752
+ data: (ae = this.meteogramData) == null ? void 0 : ae.dates,
1753
+ top: "84%",
1754
+ height: "2%"
1755
+ },
1756
+ {
1757
+ left: (re = this.meteogramData) == null ? void 0 : re.offset,
1758
+ right: (we = this.meteogramData) == null ? void 0 : we.offset,
1759
+ type: "category",
1760
+ show: !1,
1761
+ axisLine: {
1762
+ show: !1
1763
+ // 隐藏轴线
1764
+ },
1765
+ axisTick: {
1766
+ show: !1
1767
+ // 隐藏刻度
1768
+ },
1769
+ axisLabel: {
1770
+ show: !1
1771
+ // 隐藏刻度标签
1772
+ },
1773
+ splitLine: {
1774
+ show: !1
1775
+ // 隐藏分割线
1776
+ },
1777
+ boundaryGap: !1,
1778
+ data: (ge = this.meteogramData) == null ? void 0 : ge.dates,
1779
+ top: "92%",
1780
+ height: "2%"
1781
+ }
1782
+ ],
1783
+ yAxis: [
1784
+ {
1785
+ type: "value",
1786
+ name: "Wind Speed ( kts )",
1787
+ show: !0,
1788
+ min: v,
1789
+ max: H,
1790
+ interval: y,
1791
+ splitNumber: 5,
1792
+ nameRotate: 90,
1793
+ nameLocation: "middle",
1794
+ nameGap: 25
1795
+ },
1796
+ {
1797
+ position: "right",
1798
+ type: "value",
1799
+ name: "Sig.Wave & Swell ( m )",
1800
+ min: 0,
1801
+ max: 5,
1802
+ splitNumber: 5,
1803
+ show: !0,
1804
+ nameRotate: 90,
1805
+ nameLocation: "middle",
1806
+ nameGap: 20
1807
+ }
1808
+ ],
1809
+ series: [
1810
+ {
1811
+ name: "Wind Speed",
1812
+ type: "line",
1813
+ yAxisIndex: 0,
1814
+ data: (fe = this.meteogramData) == null ? void 0 : fe.windspeed,
1815
+ min: v,
1816
+ max: H,
1817
+ symbol: "none",
1818
+ smooth: !1,
1819
+ itemStyle: {
1820
+ color: "#21baa3"
1821
+ },
1822
+ label: {
1823
+ // show: false,
1824
+ },
1825
+ markArea: {
1826
+ itemStyle: {
1827
+ color: "rgba(239,239,239,0.6)"
1828
+ },
1829
+ data: (le = this.meteogramData) == null ? void 0 : le.markarea,
1830
+ emphasis: {
1831
+ disabled: !0
1832
+ }
1833
+ }
1834
+ },
1835
+ {
1836
+ name: "Wind Gusts",
1837
+ type: "line",
1838
+ yAxisIndex: 0,
1839
+ data: (ie = this.meteogramData) == null ? void 0 : ie.windGusts,
1840
+ min: v,
1841
+ max: H,
1842
+ symbol: "none",
1843
+ smooth: !1,
1844
+ itemStyle: {
1845
+ color: "#038a64"
1846
+ },
1847
+ lineStyle: {
1848
+ color: "#038a64",
1849
+ type: "dashed"
1850
+ },
1851
+ label: {
1852
+ show: !1
1853
+ }
1854
+ // markArea: {
1855
+ // itemStyle: {
1856
+ // color: 'rgb(239,239,239)',
1857
+ // },
1858
+ // data: markarea,
1859
+ // }
1860
+ },
1861
+ {
1862
+ name: "Sig.Wave Height",
1863
+ type: "line",
1864
+ yAxisIndex: 1,
1865
+ data: (me = this.meteogramData) == null ? void 0 : me.sigWaveHeight,
1866
+ symbol: "none",
1867
+ smooth: !1,
1868
+ itemStyle: {
1869
+ color: "#2a57b7"
1870
+ },
1871
+ label: {
1872
+ show: !1
1873
+ }
1874
+ // markArea: {
1875
+ // itemStyle: {
1876
+ // color: 'rgb(239,239,239)',
1877
+ // },
1878
+ // data: markarea,
1879
+ // }
1880
+ },
1881
+ {
1882
+ name: "Swell Height",
1883
+ type: "line",
1884
+ yAxisIndex: 1,
1885
+ data: (m = this.meteogramData) == null ? void 0 : m.swellHeight,
1886
+ symbol: "none",
1887
+ smooth: !1,
1888
+ itemStyle: {
1889
+ color: "#673AB7"
1890
+ },
1891
+ label: {
1892
+ show: !1
1893
+ }
1894
+ // markArea: {
1895
+ // itemStyle: {
1896
+ // color: 'rgb(239,239,239)',
1897
+ // },
1898
+ // data: markarea,
1899
+ // }
1900
+ },
1901
+ {
1902
+ name: "Hours",
1903
+ singleAxisIndex: 0,
1904
+ coordinateSystem: "singleAxis",
1905
+ type: "scatter",
1906
+ data: (Be = this.meteogramData) == null ? void 0 : Be.hours,
1907
+ itemStyle: {
1908
+ color: "#fff"
1909
+ },
1910
+ label: {
1911
+ show: !0,
1912
+ fontSize: 10,
1913
+ formatter: "{c}"
1914
+ },
1915
+ symbolSize: 0
1916
+ },
1917
+ {
1918
+ name: "Dates",
1919
+ singleAxisIndex: 1,
1920
+ coordinateSystem: "singleAxis",
1921
+ type: "scatter",
1922
+ data: (p = this.meteogramData) == null ? void 0 : p.xDates,
1923
+ itemStyle: {
1924
+ color: "#fff"
1925
+ },
1926
+ label: {
1927
+ show: !0,
1928
+ fontSize: 13,
1929
+ formatter: "{c}"
1930
+ },
1931
+ symbolSize: 0
1932
+ }
1933
+ ]
1934
+ };
1935
+ S.setOption(j);
1089
1936
  },
1090
- async handleFetchMeteo() {
1091
- if (!this.token)
1092
- return !1;
1093
- this.loading = !0;
1094
- const l = {
1095
- lat: this.position.lat,
1096
- lng: this.position.lng,
1097
- forecastDays: 8,
1098
- selfHosted: !1
1099
- }, t = await kt.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast", l, {
1100
- headers: {
1101
- Authorization: this.token
1102
- }
1103
- });
1104
- (t == null ? void 0 : t.data.code) === 0 && (this.meteoData = {
1105
- ...t == null ? void 0 : t.data.data
1106
- }), this.loading = !1, this.handleRender();
1937
+ disposeEcharts() {
1938
+ document.getElementById("weather-chart") && ue.dispose(document.getElementById("weather-chart")), document.getElementById("weather-icons") && ue.dispose(document.getElementById("weather-icons")), document.getElementById("weather-condition") && ue.dispose(document.getElementById("weather-condition")), document.getElementById("wave-swell") && ue.dispose(document.getElementById("wave-swell"));
1939
+ },
1940
+ initHoursTableData() {
1941
+ var g, e, t, r, s, B, b, M, Q, E, L, v, H, y, S, j, O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P;
1942
+ this.hoursTableData = {
1943
+ hours: [],
1944
+ utcHours: [],
1945
+ weatherUrls: [],
1946
+ weatherNames: [],
1947
+ temp: [],
1948
+ precipProbability: [],
1949
+ precip1h: [],
1950
+ visibility: [],
1951
+ humidity: [],
1952
+ windSpeed: [],
1953
+ windDir: [],
1954
+ windGust: [],
1955
+ sigwaveHeight: [],
1956
+ sigwaveDir: [],
1957
+ windwaveHeight: [],
1958
+ windwaveDir: [],
1959
+ windwavePeriod: [],
1960
+ swellHeight: [],
1961
+ swellDir: [],
1962
+ swellPeriod: [],
1963
+ currentSpeed: [],
1964
+ currentDir: [],
1965
+ seaLevel: [],
1966
+ seaTemp: []
1967
+ };
1968
+ for (let D = 0; D < 24; D++) {
1969
+ const x = de(this.pickedDate).clone().add(D, "h").format();
1970
+ this.hoursTableData.hours.push(x);
1971
+ const u = ((g = ye.pickHourly(this.meteoData, x)) == null ? void 0 : g[0]) || {};
1972
+ this.hoursTableData.weatherUrls.push((e = u.weather) == null ? void 0 : e.url), this.hoursTableData.weatherNames.push(((t = u.weather) == null ? void 0 : t.name) ?? "-"), this.hoursTableData.temp.push(this.roundPrecision((r = u.weather) == null ? void 0 : r.temp, 0) ?? "-"), this.hoursTableData.precipProbability.push(this.roundPrecision((B = (s = u.weather) == null ? void 0 : s.precip) == null ? void 0 : B.probability, 0) ?? "-"), this.hoursTableData.precip1h.push(this.roundPrecision((M = (b = u.weather) == null ? void 0 : b.precip) == null ? void 0 : M.sum, 0) ?? "-"), this.hoursTableData.visibility.push(this.roundPrecision((Q = u.weather) == null ? void 0 : Q.visibility, 0) ?? "-"), this.hoursTableData.humidity.push(this.roundPrecision((E = u.weather) == null ? void 0 : E.rh, 0) ?? "-"), this.hoursTableData.windSpeed.push(this.roundPrecision((v = (L = u.weather) == null ? void 0 : L.wind) == null ? void 0 : v.kts, 1)), this.hoursTableData.windDir.push((y = (H = u.weather) == null ? void 0 : H.wind) == null ? void 0 : y.bearing), this.hoursTableData.windGust.push(this.roundPrecision((j = (S = u.weather) == null ? void 0 : S.wind) == null ? void 0 : j.gusts, 1) ?? "-"), this.hoursTableData.sigwaveHeight.push(this.roundPrecision((I = (O = u.wave) == null ? void 0 : O.sig) == null ? void 0 : I.height, 1) ?? "-"), this.hoursTableData.sigwaveDir.push((k = (z = u.wave) == null ? void 0 : z.sig) == null ? void 0 : k.bearing), this.hoursTableData.windwaveHeight.push(this.roundPrecision((G = (N = u.wave) == null ? void 0 : N.wd) == null ? void 0 : G.height, 1) ?? "-"), this.hoursTableData.windwaveDir.push((a = (T = u.wave) == null ? void 0 : T.wd) == null ? void 0 : a.bearing), this.hoursTableData.windwavePeriod.push(this.roundPrecision((X = (h = u.wave) == null ? void 0 : h.wd) == null ? void 0 : X.period, 1) ?? "-"), this.hoursTableData.swellHeight.push(this.roundPrecision((R = (J = u.wave) == null ? void 0 : J.swell) == null ? void 0 : R.height, 1) ?? "-"), this.hoursTableData.swellDir.push((q = (W = u.wave) == null ? void 0 : W.swell) == null ? void 0 : q.bearing), this.hoursTableData.swellPeriod.push(this.roundPrecision((Z = (V = u.wave) == null ? void 0 : V.swell) == null ? void 0 : Z.period, 1) ?? "-"), this.hoursTableData.currentSpeed.push(this.roundPrecision((w = u.current) == null ? void 0 : w.speed, 1) ?? "-"), this.hoursTableData.currentDir.push((P = u.current) == null ? void 0 : P.bearing), this.hoursTableData.seaLevel.push(this.roundPrecision(u.height, 1) ?? "-"), this.hoursTableData.seaTemp.push(this.roundPrecision(u.sst, 0) ?? "-");
1973
+ }
1974
+ this.loading.hoursTable = !1;
1975
+ },
1976
+ handleClearHoursTable() {
1977
+ this.position = {}, this.meteoData = {}, this.isCollected = !1, ue && document.getElementById("weather-chart") && ue.dispose(document.getElementById("weather-chart"));
1107
1978
  },
1108
- handleClear() {
1109
- this.position = {}, this.meteoData = {}, this.isCollected = !1, wt && document.getElementById("weather-chart") && wt.dispose(document.getElementById("weather-chart"));
1979
+ initDaysTableData() {
1980
+ var e, t, r, s, B, b, M, Q, E, L, v, H, y, S, j, O, I, z, k, N, G, T, a, h, X, J, R, W, q, V, Z, w, P, D, x, u, se;
1981
+ this.daysTableData = [];
1982
+ const g = de().startOf("day");
1983
+ for (let ee = 0; ee < 14; ee++) {
1984
+ const te = g.clone().add(ee, "d").format(), l = ((e = ye.pickDaily(this.meteoData, te)) == null ? void 0 : e[0]) || {};
1985
+ console.log(l), this.daysTableData.push(
1986
+ {
1987
+ localWeek: this.computeWeekLT(te),
1988
+ localDate: this.computeMMMDDLT(te),
1989
+ weatherUrl: (t = l == null ? void 0 : l.weather) == null ? void 0 : t.url,
1990
+ minTemp: this.roundPrecision((s = (r = l == null ? void 0 : l.weather) == null ? void 0 : r.temp) == null ? void 0 : s.min, 0) ?? "-",
1991
+ maxTemp: this.roundPrecision((b = (B = l == null ? void 0 : l.weather) == null ? void 0 : B.temp) == null ? void 0 : b.max, 0) ?? "-",
1992
+ weatherName: (M = l == null ? void 0 : l.weather) == null ? void 0 : M.name,
1993
+ precipSum: this.roundPrecision((E = (Q = l == null ? void 0 : l.weather) == null ? void 0 : Q.precip) == null ? void 0 : E.sum, 0) ?? "-",
1994
+ precipRainSum: this.roundPrecision((v = (L = l == null ? void 0 : l.weather) == null ? void 0 : L.precip) == null ? void 0 : v.rainSum, 0) ?? "-",
1995
+ precipSnowfallSum: this.roundPrecision((y = (H = l == null ? void 0 : l.weather) == null ? void 0 : H.precip) == null ? void 0 : y.snowfallSum, 0) ?? "-",
1996
+ windSpeedMax: this.roundPrecision((j = (S = l == null ? void 0 : l.weather) == null ? void 0 : S.wind) == null ? void 0 : j.kts, 1) ?? "-",
1997
+ windSpeedDir: (I = (O = l == null ? void 0 : l.weather) == null ? void 0 : O.wind) == null ? void 0 : I.bearing,
1998
+ gustSpeedMax: this.roundPrecision((k = (z = l == null ? void 0 : l.weather) == null ? void 0 : z.wind) == null ? void 0 : k.gusts, 1) ?? "-",
1999
+ windWaveHeight: this.roundPrecision((G = (N = l == null ? void 0 : l.wave) == null ? void 0 : N.wd) == null ? void 0 : G.height, 1) ?? "-",
2000
+ windWavePeriod: this.roundPrecision((a = (T = l == null ? void 0 : l.wave) == null ? void 0 : T.wd) == null ? void 0 : a.period, 1) ?? "-",
2001
+ windWaveDir: (X = (h = l == null ? void 0 : l.wave) == null ? void 0 : h.wd) == null ? void 0 : X.bearing,
2002
+ swellWaveHeight: this.roundPrecision((R = (J = l == null ? void 0 : l.wave) == null ? void 0 : J.swell) == null ? void 0 : R.height, 1) ?? "-",
2003
+ swellWavePeriod: this.roundPrecision((q = (W = l == null ? void 0 : l.wave) == null ? void 0 : W.swell) == null ? void 0 : q.period, 1) ?? "-",
2004
+ swellWaveDir: (Z = (V = l == null ? void 0 : l.wave) == null ? void 0 : V.swell) == null ? void 0 : Z.bearing,
2005
+ sigWaveHeight: this.roundPrecision((P = (w = l == null ? void 0 : l.wave) == null ? void 0 : w.sig) == null ? void 0 : P.height, 1) ?? "-",
2006
+ sigWavePeriod: this.roundPrecision((x = (D = l == null ? void 0 : l.wave) == null ? void 0 : D.sig) == null ? void 0 : x.period, 1) ?? "-",
2007
+ sigWaveDir: (se = (u = l == null ? void 0 : l.wave) == null ? void 0 : u.sig) == null ? void 0 : se.bearing
2008
+ }
2009
+ );
2010
+ }
2011
+ this.loading.daysTable = !1;
1110
2012
  }
1111
2013
  }
1112
- }, Rt = { class: "spot-report" }, Et = { class: "header-box flex-between" }, At = { class: "bg" }, Gt = { class: "search-box flex-start" }, Ft = { class: "content-box" }, Ot = { class: "title-box flex-between" }, Bt = { class: "main-title" }, Vt = { class: "sub-title" }, Ut = { class: "flex-end" }, Zt = {
2014
+ }, Fe = { class: "spot-report" }, Se = { class: "search-header-box" }, Oe = { class: "search-header-box-inner flex-between" }, je = { class: "search-box flex-start" }, Ye = { class: "menu-box flex-end" }, Ke = { class: "content-box" }, Ue = { class: "title-section flex-between" }, Xe = { class: "main-title" }, Je = { class: "sub-title" }, Re = { class: "flex-end" }, We = {
1113
2015
  key: 0,
1114
- id: "weather-chart"
1115
- }, Jt = {
2016
+ class: "weather-echart-section"
2017
+ }, qe = {
2018
+ key: 0,
2019
+ id: "weather-chart",
2020
+ class: "weather-chart"
2021
+ }, Ve = {
1116
2022
  key: 1,
1117
- class: "weather-chart flex-center"
1118
- }, Yt = {
2023
+ class: "weather-chart weather-chart-loading flex-center"
2024
+ }, Ze = {
1119
2025
  key: 2,
1120
2026
  class: "weather-chart flex-center"
2027
+ }, _e = { class: "meteogram-section" }, $e = {
2028
+ key: 0,
2029
+ class: "card"
2030
+ }, et = {
2031
+ key: 1,
2032
+ class: "card flex-center"
2033
+ }, tt = {
2034
+ key: 2,
2035
+ class: "card flex-center"
2036
+ }, st = {
2037
+ key: 1,
2038
+ class: "hours-table-section"
2039
+ }, At = {
2040
+ key: 0,
2041
+ class: "card"
2042
+ }, at = { class: "date" }, it = { class: "basic-table" }, ot = { class: "day" }, nt = { class: "hour" }, rt = { class: "icon" }, lt = ["src"], ht = { class: "text" }, gt = { class: "text" }, dt = { class: "text" }, wt = { class: "text" }, ct = { class: "text" }, mt = { class: "text" }, ut = { key: 1 }, pt = { class: "text" }, Bt = { class: "text" }, Ct = { class: "wave-current-table" }, ft = { class: "text" }, Dt = { class: "text" }, It = { key: 1 }, xt = { class: "text" }, vt = { class: "text" }, yt = { class: "text" }, Qt = { key: 1 }, Et = { class: "text" }, bt = { class: "text" }, Mt = { class: "text" }, Lt = { key: 1 }, Ht = { class: "text" }, zt = { class: "sea-table" }, Pt = { class: "text" }, kt = { class: "text" }, Nt = {
2043
+ key: 1,
2044
+ class: "card flex-center"
2045
+ }, Gt = {
2046
+ key: 2,
2047
+ class: "card flex-center"
2048
+ }, Tt = {
2049
+ key: 2,
2050
+ class: "days-table-section"
2051
+ }, Ft = {
2052
+ key: 0,
2053
+ class: "card"
2054
+ }, St = {
2055
+ class: "conditions-table",
2056
+ style: { border: "1px solid var(--idm-black-1)" }
2057
+ }, Ot = {
2058
+ rowspan: "1",
2059
+ colspan: "1",
2060
+ class: "tr-title font-gray",
2061
+ style: { "text-align": "right", "padding-right": "5px", "box-sizing": "border-box" }
1121
2062
  }, jt = {
1122
- key: 3,
1123
- class: "card-box"
1124
- }, qt = { class: "date" }, Qt = { class: "basic-table" }, Kt = { class: "day" }, Xt = { class: "hour" }, $t = { class: "icon" }, te = ["src"], ee = { class: "text" }, se = { class: "text" }, ae = { class: "text" }, ie = { class: "text" }, ne = { class: "text" }, oe = { class: "text" }, re = { key: 1 }, le = { class: "text" }, he = { class: "text" }, de = { class: "wave-current-table" }, ce = { class: "text" }, pe = { class: "text" }, me = { key: 1 }, ue = { class: "text" }, we = { class: "text" }, ge = { class: "text" }, ve = { key: 1 }, be = { class: "text" }, xe = { class: "text" }, fe = { class: "text" }, ye = { key: 1 }, _e = { class: "text" }, ze = { class: "sea-table" }, ke = { class: "text" }, De = { class: "text" }, Se = {
1125
- key: 4,
1126
- class: "card-box flex-center"
1127
- }, Le = {
1128
- key: 5,
1129
- class: "card-box flex-center"
2063
+ rowspan: "1",
2064
+ colspan: "1"
2065
+ }, Yt = ["src"], Kt = {
2066
+ rowspan: "1",
2067
+ colspan: "1",
2068
+ class: "text-align-left"
2069
+ }, Ut = {
2070
+ rowspan: "1",
2071
+ colspan: "1",
2072
+ class: "text-align-left"
2073
+ }, Xt = {
2074
+ rowspan: "1",
2075
+ colspan: "1",
2076
+ class: "text-align-left"
2077
+ }, Jt = {
2078
+ rowspan: "1",
2079
+ colspan: "1",
2080
+ class: "text-align-left"
2081
+ }, Rt = {
2082
+ rowspan: "1",
2083
+ colspan: "1",
2084
+ class: "text-align-left"
2085
+ }, Wt = {
2086
+ rowspan: "1",
2087
+ colspan: "1",
2088
+ class: "text-align-left"
2089
+ }, qt = { key: 1 }, Vt = {
2090
+ rowspan: "1",
2091
+ colspan: "1",
2092
+ class: "text-align-left"
2093
+ }, Zt = {
2094
+ rowspan: "1",
2095
+ colspan: "1",
2096
+ class: "text-align-left"
2097
+ }, _t = { key: 1 }, $t = {
2098
+ rowspan: "1",
2099
+ colspan: "1",
2100
+ class: "text-align-left"
2101
+ }, es = { key: 1 }, ts = {
2102
+ rowspan: "1",
2103
+ colspan: "1",
2104
+ class: "text-align-left"
2105
+ }, ss = { key: 1 }, As = {
2106
+ key: 1,
2107
+ class: "card flex-center"
2108
+ }, as = {
2109
+ key: 2,
2110
+ class: "card flex-center"
1130
2111
  };
1131
- function Ne(l, t, e, h, s, v) {
1132
- var N, I, M, H;
1133
- const C = gt("ElOption"), P = gt("ElSelect"), L = gt("ElTooltip");
1134
- return o(), r("div", Rt, [
1135
- i("div", Et, [
1136
- i("div", At, [
1137
- i("div", Gt, [
1138
- vt(P, {
2112
+ function is(g, e, t, r, s, B) {
2113
+ var E, L, v, H, y, S, j, O, I, z, k, N, G, T;
2114
+ const b = Me("ElOption"), M = Me("ElSelect"), Q = Me("ElTooltip");
2115
+ return o(), n("div", Fe, [
2116
+ A("div", Se, [
2117
+ A("div", Oe, [
2118
+ A("div", je, [
2119
+ Le(M, {
1139
2120
  modelValue: s.searchName,
1140
- "onUpdate:modelValue": t[0] || (t[0] = (a) => s.searchName = a),
2121
+ "onUpdate:modelValue": e[0] || (e[0] = (a) => s.searchName = a),
1141
2122
  filterable: "",
1142
2123
  class: "input",
1143
2124
  clearable: "",
@@ -1145,13 +2126,13 @@ function Ne(l, t, e, h, s, v) {
1145
2126
  placeholder: s.placeholder,
1146
2127
  autocomplete: "",
1147
2128
  "remote-show-suffix": "",
1148
- onFocus: t[1] || (t[1] = (a) => s.placeholder = ""),
1149
- onBlur: t[2] || (t[2] = (a) => s.placeholder = "search for port name or coordinates"),
1150
- "remote-method": v.fetchSuggestPosition,
1151
- onChange: v.handleSearch
2129
+ onFocus: e[1] || (e[1] = (a) => s.placeholder = ""),
2130
+ onBlur: e[2] || (e[2] = (a) => s.placeholder = "search for port name or coordinates"),
2131
+ "remote-method": B.fetchSuggestPosition,
2132
+ onChange: B.handleSearch
1152
2133
  }, {
1153
- default: bt(() => [
1154
- (o(!0), r(b, null, x(s.positionList, (a) => (o(), Pt(C, {
2134
+ default: He(() => [
2135
+ (o(!0), n(Y, null, K(s.positionList, (a) => (o(), Ne(b, {
1155
2136
  key: a.name,
1156
2137
  label: a.name,
1157
2138
  value: a.name
@@ -1159,450 +2140,666 @@ function Ne(l, t, e, h, s, v) {
1159
2140
  ]),
1160
2141
  _: 1
1161
2142
  }, 8, ["modelValue", "placeholder", "remote-method", "onChange"])
2143
+ ]),
2144
+ A("div", Ye, [
2145
+ A("div", {
2146
+ class: U(["item flex-center", s.menuIndex === 1 ? "active" : ""]),
2147
+ onClick: e[3] || (e[3] = (a) => s.menuIndex = 1)
2148
+ }, "7-Day Forecast", 2),
2149
+ A("div", {
2150
+ class: U(["item flex-center", s.menuIndex === 2 ? "active" : ""]),
2151
+ onClick: e[4] || (e[4] = (a) => s.menuIndex = 2)
2152
+ }, "14-Day Forecast", 2)
1162
2153
  ])
1163
2154
  ])
1164
2155
  ]),
1165
- i("div", Ft, [
1166
- i("div", Ot, [
1167
- i("div", null, [
1168
- i("div", Bt, "Weather forecast for " + f(((N = s.position) == null ? void 0 : N.name) || "-") + " ( " + f(s.positionOffset) + " )", 1),
1169
- i("div", Vt, "At " + f((I = s.position) != null && I.portId ? "port" : "coordinates") + ", issued " + f(s.issuedDate), 1)
2156
+ A("div", Ke, [
2157
+ A("div", Ue, [
2158
+ A("div", null, [
2159
+ A("div", Xe, "Weather forecast for " + f(((E = s.position) == null ? void 0 : E.name) || "-") + " ( " + f(s.positionOffset) + " )", 1),
2160
+ A("div", Je, "At " + f((L = s.position) != null && L.portId ? "port" : "coordinates") + ", issued " + f(s.issuedDate), 1)
1170
2161
  ]),
1171
- i("div", Ut, [
1172
- vt(L, {
2162
+ A("div", Re, [
2163
+ Le(Q, {
1173
2164
  placement: "left",
1174
2165
  effect: "light",
1175
2166
  content: s.isCollected ? "remove the port/coordinate from the search list" : "add the port/coordinate to the search list",
1176
2167
  "show-after": 1e3
1177
2168
  }, {
1178
- default: bt(() => [
1179
- s.isCollected ? (o(), r("span", {
2169
+ default: He(() => [
2170
+ s.isCollected ? (o(), n("span", {
1180
2171
  key: 0,
1181
2172
  class: "iconfont icon active",
1182
- onClick: t[3] || (t[3] = (...a) => v.handleCollect && v.handleCollect(...a))
1183
- }, "")) : (o(), r("span", {
2173
+ onClick: e[5] || (e[5] = (...a) => B.handleCollect && B.handleCollect(...a))
2174
+ }, "")) : (o(), n("span", {
1184
2175
  key: 1,
1185
2176
  class: "iconfont icon",
1186
- onClick: t[4] || (t[4] = (...a) => v.handleCollect && v.handleCollect(...a))
2177
+ onClick: e[6] || (e[6] = (...a) => B.handleCollect && B.handleCollect(...a))
1187
2178
  }, ""))
1188
2179
  ]),
1189
2180
  _: 1
1190
2181
  }, 8, ["content"])
1191
2182
  ])
1192
2183
  ]),
1193
- (M = s.position) != null && M.name && e.token && !s.loading ? (o(), r("div", Zt)) : s.loading ? (o(), r("div", Jt, "Loading....")) : (o(), r("div", Yt, "No Data")),
1194
- (H = s.position) != null && H.name && e.token && !s.loading ? (o(), r("div", jt, [
1195
- i("div", qt, f(s.pickedWeek) + " " + f(v.computeMMMDD(s.pickedDate)), 1),
1196
- i("table", Qt, [
1197
- i("tr", Kt, [
1198
- t[5] || (t[5] = i("th", {
1199
- rowspan: "1",
1200
- colspan: "1",
1201
- class: "tr-title"
1202
- }, [
1203
- _("Local time"),
1204
- i("span", { class: "unit" }, "(LT)")
1205
- ], -1)),
1206
- (o(!0), r(b, null, x(s.tableData.hours, (a, n) => (o(), r("th", {
1207
- rowspan: "1",
1208
- colspan: "1",
1209
- class: z(s.activeIndex === n ? "active" : ""),
1210
- key: Math.random() + "local"
1211
- }, f(v.computeHourL(a)), 3))), 128))
1212
- ]),
1213
- i("tr", Xt, [
1214
- t[6] || (t[6] = i("th", {
1215
- rowspan: "1",
1216
- colspan: "1",
1217
- class: "tr-title"
1218
- }, [
1219
- _("UTC"),
1220
- i("span", { class: "unit" })
1221
- ], -1)),
1222
- (o(!0), r(b, null, x(s.tableData.hours, (a, n) => (o(), r("th", {
1223
- rowspan: "1",
1224
- colspan: "1",
1225
- class: z(s.activeIndex === n ? "active" : ""),
1226
- key: Math.random() + "z"
1227
- }, f(v.computeHourZ(a)), 3))), 128))
1228
- ]),
1229
- i("tr", $t, [
1230
- t[7] || (t[7] = i("td", {
1231
- rowspan: "1",
1232
- colspan: "1",
1233
- class: "tr-title"
1234
- }, [
1235
- _("Weather"),
1236
- i("span", { class: "unit" })
1237
- ], -1)),
1238
- (o(!0), r(b, null, x(s.tableData.weatherUrls, (a, n) => (o(), r("td", {
1239
- rowspan: "1",
1240
- colspan: "1",
1241
- class: z(s.activeIndex === n ? "active" : ""),
1242
- key: Math.random() + "url"
1243
- }, [
1244
- vt(L, {
1245
- placement: "top",
1246
- effect: "light",
1247
- content: s.tableData.weatherNames[n],
1248
- "show-after": 500
1249
- }, {
1250
- default: bt(() => [
1251
- a ? (o(), r("img", {
1252
- key: 0,
1253
- class: "iconfont weather-icon",
1254
- src: a
1255
- }, null, 8, te)) : Ht("", !0)
1256
- ]),
1257
- _: 2
1258
- }, 1032, ["content"])
1259
- ], 2))), 128))
1260
- ]),
1261
- i("tr", ee, [
1262
- t[8] || (t[8] = i("td", {
1263
- rowspan: "1",
1264
- colspan: "1",
1265
- class: "tr-title"
1266
- }, [
1267
- _("Temperature"),
1268
- i("span", { class: "unit" }, "°C")
1269
- ], -1)),
1270
- (o(!0), r(b, null, x(s.tableData.temp, (a, n) => (o(), r("td", {
1271
- rowspan: "1",
1272
- colspan: "1",
1273
- class: z(s.activeIndex === n ? "active" : ""),
1274
- key: Math.random() + a
1275
- }, f(a), 3))), 128))
1276
- ]),
1277
- i("tr", se, [
1278
- t[9] || (t[9] = i("td", {
1279
- rowspan: "1",
1280
- colspan: "1",
1281
- class: "tr-title"
1282
- }, [
1283
- _("Precipitation Probability"),
1284
- i("span", { class: "unit" }, "%")
1285
- ], -1)),
1286
- (o(!0), r(b, null, x(s.tableData.precipProbability, (a, n) => (o(), r("td", {
1287
- rowspan: "1",
1288
- colspan: "1",
1289
- class: z(s.activeIndex === n ? "active" : ""),
1290
- key: Math.random() + a
1291
- }, f(a), 3))), 128))
1292
- ]),
1293
- i("tr", ae, [
1294
- t[10] || (t[10] = i("td", {
1295
- rowspan: "1",
1296
- colspan: "1",
1297
- class: "tr-title"
1298
- }, [
1299
- _("Precipitation 1h"),
1300
- i("span", { class: "unit" }, "mm")
1301
- ], -1)),
1302
- (o(!0), r(b, null, x(s.tableData.precip1h, (a, n) => (o(), r("td", {
1303
- rowspan: "1",
1304
- colspan: "1",
1305
- class: z(s.activeIndex === n ? "active" : ""),
1306
- key: Math.random() + a
1307
- }, f(a), 3))), 128))
1308
- ]),
1309
- i("tr", ie, [
1310
- t[11] || (t[11] = i("td", {
1311
- rowspan: "1",
1312
- colspan: "1",
1313
- class: "tr-title"
1314
- }, [
1315
- _("Visibility"),
1316
- i("span", { class: "unit" }, "nm")
1317
- ], -1)),
1318
- (o(!0), r(b, null, x(s.tableData.visibility, (a, n) => (o(), r("td", {
1319
- rowspan: "1",
1320
- colspan: "1",
1321
- class: z(s.activeIndex === n ? "active" : ""),
1322
- key: Math.random() + a
1323
- }, f(a), 3))), 128))
1324
- ]),
1325
- i("tr", ne, [
1326
- t[12] || (t[12] = i("td", {
1327
- rowspan: "1",
1328
- colspan: "1",
1329
- class: "tr-title"
1330
- }, [
1331
- _("Relative Humidity"),
1332
- i("span", { class: "unit" }, "%")
1333
- ], -1)),
1334
- (o(!0), r(b, null, x(s.tableData.humidity, (a, n) => (o(), r("td", {
1335
- rowspan: "1",
1336
- colspan: "1",
1337
- class: z(s.activeIndex === n ? "active" : ""),
1338
- key: Math.random() + a
1339
- }, f(a), 3))), 128))
1340
- ]),
1341
- i("tr", oe, [
1342
- t[13] || (t[13] = i("td", {
1343
- rowspan: "1",
1344
- colspan: "1",
1345
- class: "tr-title"
1346
- }, [
1347
- _("Wind direction"),
1348
- i("span", { class: "unit" })
1349
- ], -1)),
1350
- (o(!0), r(b, null, x(s.tableData.windDir, (a, n) => (o(), r("td", {
1351
- rowspan: "1",
1352
- colspan: "1",
1353
- class: z(s.activeIndex === n ? "active" : ""),
1354
- key: Math.random() + a
1355
- }, [
1356
- isNaN(a) ? (o(), r("span", re, "-")) : (o(), r("span", {
1357
- key: 0,
1358
- class: "iconfont icon",
1359
- style: ct({ display: "inline-block", transform: `rotate(${a}deg)` })
1360
- }, "", 4))
1361
- ], 2))), 128))
2184
+ s.menuIndex === 1 ? (o(), n("div", We, [
2185
+ (v = s.position) != null && v.name && t.token && !((H = s.loading) != null && H.weatherEchart) ? (o(), n("div", qe)) : (y = s.loading) != null && y.weatherEchart ? (o(), n("div", Ve, e[7] || (e[7] = [
2186
+ A("img", {
2187
+ style: { height: "200px" },
2188
+ src: Qe
2189
+ }, null, -1)
2190
+ ]))) : (o(), n("div", Ze, "No Data"))
2191
+ ])) : ve("", !0),
2192
+ A("div", _e, [
2193
+ (S = s.position) != null && S.name && t.token && !((j = s.loading) != null && j.meteogramEchart) ? (o(), n("div", $e, e[8] || (e[8] = [
2194
+ A("div", { class: "title" }, "Meteogram", -1),
2195
+ A("div", { id: "weather-icons" }, null, -1),
2196
+ A("div", { id: "weather-condition" }, null, -1),
2197
+ A("div", { id: "wave-swell" }, null, -1)
2198
+ ]))) : (O = s.loading) != null && O.meteogramEchart ? (o(), n("div", et, e[9] || (e[9] = [
2199
+ A("img", {
2200
+ style: { height: "200px" },
2201
+ src: Qe
2202
+ }, null, -1)
2203
+ ]))) : (o(), n("div", tt, "No Data"))
2204
+ ]),
2205
+ s.menuIndex === 1 ? (o(), n("div", st, [
2206
+ (I = s.position) != null && I.name && t.token && !((z = s.loading) != null && z.hoursTable) ? (o(), n("div", At, [
2207
+ A("div", at, f(s.pickedWeek) + " " + f(B.computeMMMDDLT(s.pickedDate)), 1),
2208
+ A("table", it, [
2209
+ A("tr", ot, [
2210
+ e[10] || (e[10] = A("th", {
2211
+ rowspan: "1",
2212
+ colspan: "1",
2213
+ class: "td-title"
2214
+ }, [
2215
+ F("Local time"),
2216
+ A("span", { class: "unit" }, "(LT)")
2217
+ ], -1)),
2218
+ (o(!0), n(Y, null, K(s.hoursTableData.hours, (a, h) => (o(), n("th", {
2219
+ rowspan: "1",
2220
+ colspan: "1",
2221
+ class: U(s.activeIndex === h ? "active" : ""),
2222
+ key: Math.random() + "local"
2223
+ }, f(B.computeHourLT(a)), 3))), 128))
2224
+ ]),
2225
+ A("tr", nt, [
2226
+ e[11] || (e[11] = A("th", {
2227
+ rowspan: "1",
2228
+ colspan: "1",
2229
+ class: "td-title"
2230
+ }, [
2231
+ F("UTC"),
2232
+ A("span", { class: "unit" })
2233
+ ], -1)),
2234
+ (o(!0), n(Y, null, K(s.hoursTableData.hours, (a, h) => (o(), n("th", {
2235
+ rowspan: "1",
2236
+ colspan: "1",
2237
+ class: U(s.activeIndex === h ? "active" : ""),
2238
+ key: Math.random() + "z"
2239
+ }, f(B.computeHourZ(a)), 3))), 128))
2240
+ ]),
2241
+ A("tr", rt, [
2242
+ e[12] || (e[12] = A("td", {
2243
+ rowspan: "1",
2244
+ colspan: "1",
2245
+ class: "td-title"
2246
+ }, [
2247
+ F("Weather"),
2248
+ A("span", { class: "unit" })
2249
+ ], -1)),
2250
+ (o(!0), n(Y, null, K(s.hoursTableData.weatherUrls, (a, h) => (o(), n("td", {
2251
+ rowspan: "1",
2252
+ colspan: "1",
2253
+ class: U(s.activeIndex === h ? "active" : ""),
2254
+ key: Math.random() + "url"
2255
+ }, [
2256
+ Le(Q, {
2257
+ placement: "top",
2258
+ effect: "light",
2259
+ content: s.hoursTableData.weatherNames[h],
2260
+ "show-after": 500
2261
+ }, {
2262
+ default: He(() => [
2263
+ a ? (o(), n("img", {
2264
+ key: 0,
2265
+ class: "iconfont weather-icon",
2266
+ src: a
2267
+ }, null, 8, lt)) : ve("", !0)
2268
+ ]),
2269
+ _: 2
2270
+ }, 1032, ["content"])
2271
+ ], 2))), 128))
2272
+ ]),
2273
+ A("tr", ht, [
2274
+ e[13] || (e[13] = A("td", {
2275
+ rowspan: "1",
2276
+ colspan: "1",
2277
+ class: "td-title"
2278
+ }, [
2279
+ F("Temperature"),
2280
+ A("span", { class: "unit" }, "°C")
2281
+ ], -1)),
2282
+ (o(!0), n(Y, null, K(s.hoursTableData.temp, (a, h) => (o(), n("td", {
2283
+ rowspan: "1",
2284
+ colspan: "1",
2285
+ class: U(s.activeIndex === h ? "active" : ""),
2286
+ key: Math.random() + a
2287
+ }, f(a), 3))), 128))
2288
+ ]),
2289
+ A("tr", gt, [
2290
+ e[14] || (e[14] = A("td", {
2291
+ rowspan: "1",
2292
+ colspan: "1",
2293
+ class: "td-title"
2294
+ }, [
2295
+ F("Precipitation Probability"),
2296
+ A("span", { class: "unit" }, "%")
2297
+ ], -1)),
2298
+ (o(!0), n(Y, null, K(s.hoursTableData.precipProbability, (a, h) => (o(), n("td", {
2299
+ rowspan: "1",
2300
+ colspan: "1",
2301
+ class: U(s.activeIndex === h ? "active" : ""),
2302
+ key: Math.random() + a
2303
+ }, f(a), 3))), 128))
2304
+ ]),
2305
+ A("tr", dt, [
2306
+ e[15] || (e[15] = A("td", {
2307
+ rowspan: "1",
2308
+ colspan: "1",
2309
+ class: "td-title"
2310
+ }, [
2311
+ F("Precipitation 1h"),
2312
+ A("span", { class: "unit" }, "mm")
2313
+ ], -1)),
2314
+ (o(!0), n(Y, null, K(s.hoursTableData.precip1h, (a, h) => (o(), n("td", {
2315
+ rowspan: "1",
2316
+ colspan: "1",
2317
+ class: U(s.activeIndex === h ? "active" : ""),
2318
+ key: Math.random() + a
2319
+ }, f(a), 3))), 128))
2320
+ ]),
2321
+ A("tr", wt, [
2322
+ e[16] || (e[16] = A("td", {
2323
+ rowspan: "1",
2324
+ colspan: "1",
2325
+ class: "td-title"
2326
+ }, [
2327
+ F("Visibility"),
2328
+ A("span", { class: "unit" }, "nm")
2329
+ ], -1)),
2330
+ (o(!0), n(Y, null, K(s.hoursTableData.visibility, (a, h) => (o(), n("td", {
2331
+ rowspan: "1",
2332
+ colspan: "1",
2333
+ class: U(s.activeIndex === h ? "active" : ""),
2334
+ key: Math.random() + a
2335
+ }, f(a), 3))), 128))
2336
+ ]),
2337
+ A("tr", ct, [
2338
+ e[17] || (e[17] = A("td", {
2339
+ rowspan: "1",
2340
+ colspan: "1",
2341
+ class: "td-title"
2342
+ }, [
2343
+ F("Relative Humidity"),
2344
+ A("span", { class: "unit" }, "%")
2345
+ ], -1)),
2346
+ (o(!0), n(Y, null, K(s.hoursTableData.humidity, (a, h) => (o(), n("td", {
2347
+ rowspan: "1",
2348
+ colspan: "1",
2349
+ class: U(s.activeIndex === h ? "active" : ""),
2350
+ key: Math.random() + a
2351
+ }, f(a), 3))), 128))
2352
+ ]),
2353
+ A("tr", mt, [
2354
+ e[18] || (e[18] = A("td", {
2355
+ rowspan: "1",
2356
+ colspan: "1",
2357
+ class: "td-title"
2358
+ }, [
2359
+ F("Wind direction"),
2360
+ A("span", { class: "unit" })
2361
+ ], -1)),
2362
+ (o(!0), n(Y, null, K(s.hoursTableData.windDir, (a, h) => (o(), n("td", {
2363
+ rowspan: "1",
2364
+ colspan: "1",
2365
+ class: U(s.activeIndex === h ? "active" : ""),
2366
+ key: Math.random() + a
2367
+ }, [
2368
+ isNaN(a) ? (o(), n("span", ut, "-")) : (o(), n("span", {
2369
+ key: 0,
2370
+ class: "iconfont icon",
2371
+ style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
2372
+ }, "", 4))
2373
+ ], 2))), 128))
2374
+ ]),
2375
+ A("tr", pt, [
2376
+ e[19] || (e[19] = A("td", {
2377
+ rowspan: "1",
2378
+ colspan: "1",
2379
+ class: "td-title"
2380
+ }, [
2381
+ F("Wind speed"),
2382
+ A("span", { class: "unit" }, "kts")
2383
+ ], -1)),
2384
+ (o(!0), n(Y, null, K(s.hoursTableData.windSpeed, (a, h) => (o(), n("td", {
2385
+ rowspan: "1",
2386
+ colspan: "1",
2387
+ class: U(s.activeIndex === h ? "active" : ""),
2388
+ key: Math.random() + a
2389
+ }, f(a), 3))), 128))
2390
+ ]),
2391
+ A("tr", Bt, [
2392
+ e[20] || (e[20] = A("td", {
2393
+ rowspan: "1",
2394
+ colspan: "1",
2395
+ class: "td-title"
2396
+ }, [
2397
+ F("Wind gust"),
2398
+ A("span", { class: "unit" }, "kts")
2399
+ ], -1)),
2400
+ (o(!0), n(Y, null, K(s.hoursTableData.windGust, (a, h) => (o(), n("td", {
2401
+ rowspan: "1",
2402
+ colspan: "1",
2403
+ class: U(s.activeIndex === h ? "active" : ""),
2404
+ key: Math.random() + a
2405
+ }, f(a), 3))), 128))
2406
+ ])
1362
2407
  ]),
1363
- i("tr", le, [
1364
- t[14] || (t[14] = i("td", {
1365
- rowspan: "1",
1366
- colspan: "1",
1367
- class: "tr-title"
1368
- }, [
1369
- _("Wind speed"),
1370
- i("span", { class: "unit" }, "kts")
1371
- ], -1)),
1372
- (o(!0), r(b, null, x(s.tableData.windSpeed, (a, n) => (o(), r("td", {
1373
- rowspan: "1",
1374
- colspan: "1",
1375
- class: z(s.activeIndex === n ? "active" : ""),
1376
- key: Math.random() + a
1377
- }, f(a), 3))), 128))
2408
+ e[32] || (e[32] = A("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
2409
+ A("table", Ct, [
2410
+ A("tr", ft, [
2411
+ e[21] || (e[21] = A("td", {
2412
+ rowspan: "1",
2413
+ colspan: "1",
2414
+ class: "td-title"
2415
+ }, [
2416
+ F("Wind wave height"),
2417
+ A("span", { class: "unit" }, "m")
2418
+ ], -1)),
2419
+ (o(!0), n(Y, null, K(s.hoursTableData.windwaveHeight, (a, h) => (o(), n("td", {
2420
+ rowspan: "1",
2421
+ colspan: "1",
2422
+ class: U(s.activeIndex === h ? "active" : ""),
2423
+ key: Math.random() + a
2424
+ }, f(a), 3))), 128))
2425
+ ]),
2426
+ A("tr", Dt, [
2427
+ e[22] || (e[22] = A("td", {
2428
+ rowspan: "1",
2429
+ colspan: "1",
2430
+ class: "td-title"
2431
+ }, [
2432
+ F("Wind wave direction"),
2433
+ A("span", { class: "unit" })
2434
+ ], -1)),
2435
+ (o(!0), n(Y, null, K(s.hoursTableData.windwaveDir, (a, h) => (o(), n("td", {
2436
+ rowspan: "1",
2437
+ colspan: "1",
2438
+ class: U(s.activeIndex === h ? "active" : ""),
2439
+ key: Math.random() + a
2440
+ }, [
2441
+ isNaN(a) ? (o(), n("span", It, "-")) : (o(), n("span", {
2442
+ key: 0,
2443
+ class: "iconfont icon",
2444
+ style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
2445
+ }, "", 4))
2446
+ ], 2))), 128))
2447
+ ]),
2448
+ A("tr", xt, [
2449
+ e[23] || (e[23] = A("td", {
2450
+ rowspan: "1",
2451
+ colspan: "1",
2452
+ class: "td-title"
2453
+ }, [
2454
+ F("Wind wave period"),
2455
+ A("span", { class: "unit" }, "s")
2456
+ ], -1)),
2457
+ (o(!0), n(Y, null, K(s.hoursTableData.windwavePeriod, (a, h) => (o(), n("td", {
2458
+ rowspan: "1",
2459
+ colspan: "1",
2460
+ class: U(s.activeIndex === h ? "active" : ""),
2461
+ key: Math.random() + a
2462
+ }, f(a), 3))), 128))
2463
+ ]),
2464
+ A("tr", vt, [
2465
+ e[24] || (e[24] = A("td", {
2466
+ rowspan: "1",
2467
+ colspan: "1",
2468
+ class: "td-title"
2469
+ }, [
2470
+ F("Swell height"),
2471
+ A("span", { class: "unit" }, "m")
2472
+ ], -1)),
2473
+ (o(!0), n(Y, null, K(s.hoursTableData.swellHeight, (a, h) => (o(), n("td", {
2474
+ rowspan: "1",
2475
+ colspan: "1",
2476
+ class: U(s.activeIndex === h ? "active" : ""),
2477
+ key: Math.random() + a
2478
+ }, f(a), 3))), 128))
2479
+ ]),
2480
+ A("tr", yt, [
2481
+ e[25] || (e[25] = A("td", {
2482
+ rowspan: "1",
2483
+ colspan: "1",
2484
+ class: "td-title"
2485
+ }, [
2486
+ F("Swell direction"),
2487
+ A("span", { class: "unit" })
2488
+ ], -1)),
2489
+ (o(!0), n(Y, null, K(s.hoursTableData.swellDir, (a, h) => (o(), n("td", {
2490
+ rowspan: "1",
2491
+ colspan: "1",
2492
+ class: U(s.activeIndex === h ? "active" : ""),
2493
+ key: Math.random() + a
2494
+ }, [
2495
+ isNaN(a) ? (o(), n("span", Qt, "-")) : (o(), n("span", {
2496
+ key: 0,
2497
+ class: "iconfont icon",
2498
+ style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
2499
+ }, "", 4))
2500
+ ], 2))), 128))
2501
+ ]),
2502
+ A("tr", Et, [
2503
+ e[26] || (e[26] = A("td", {
2504
+ rowspan: "1",
2505
+ colspan: "1",
2506
+ class: "td-title"
2507
+ }, [
2508
+ F("Swell period"),
2509
+ A("span", { class: "unit" }, "s")
2510
+ ], -1)),
2511
+ (o(!0), n(Y, null, K(s.hoursTableData.swellPeriod, (a, h) => (o(), n("td", {
2512
+ rowspan: "1",
2513
+ colspan: "1",
2514
+ class: U(s.activeIndex === h ? "active" : ""),
2515
+ key: Math.random() + a
2516
+ }, f(a), 3))), 128))
2517
+ ]),
2518
+ A("tr", bt, [
2519
+ e[27] || (e[27] = A("td", {
2520
+ rowspan: "1",
2521
+ colspan: "1",
2522
+ class: "td-title"
2523
+ }, [
2524
+ F("Sig wave height"),
2525
+ A("span", { class: "unit" }, "m")
2526
+ ], -1)),
2527
+ (o(!0), n(Y, null, K(s.hoursTableData.sigwaveHeight, (a, h) => (o(), n("td", {
2528
+ rowspan: "1",
2529
+ colspan: "1",
2530
+ class: U(s.activeIndex === h ? "active" : ""),
2531
+ key: Math.random() + a
2532
+ }, f(a), 3))), 128))
2533
+ ]),
2534
+ A("tr", Mt, [
2535
+ e[28] || (e[28] = A("td", {
2536
+ rowspan: "1",
2537
+ colspan: "1",
2538
+ class: "td-title"
2539
+ }, [
2540
+ F("Current direction"),
2541
+ A("span", { class: "unit" })
2542
+ ], -1)),
2543
+ (o(!0), n(Y, null, K(s.hoursTableData.currentDir, (a, h) => (o(), n("td", {
2544
+ rowspan: "1",
2545
+ colspan: "1",
2546
+ class: U(s.activeIndex === h ? "active" : ""),
2547
+ key: Math.random() + a
2548
+ }, [
2549
+ isNaN(a) ? (o(), n("span", Lt, "-")) : (o(), n("span", {
2550
+ key: 0,
2551
+ class: "iconfont icon",
2552
+ style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
2553
+ }, "", 4))
2554
+ ], 2))), 128))
2555
+ ]),
2556
+ A("tr", Ht, [
2557
+ e[29] || (e[29] = A("td", {
2558
+ rowspan: "1",
2559
+ colspan: "1",
2560
+ class: "td-title"
2561
+ }, [
2562
+ F("Current speed"),
2563
+ A("span", { class: "unit" }, "kts")
2564
+ ], -1)),
2565
+ (o(!0), n(Y, null, K(s.hoursTableData.currentSpeed, (a, h) => (o(), n("td", {
2566
+ rowspan: "1",
2567
+ colspan: "1",
2568
+ class: U(s.activeIndex === h ? "active" : ""),
2569
+ key: Math.random() + a
2570
+ }, f(a), 3))), 128))
2571
+ ])
1378
2572
  ]),
1379
- i("tr", he, [
1380
- t[15] || (t[15] = i("td", {
1381
- rowspan: "1",
1382
- colspan: "1",
1383
- class: "tr-title"
1384
- }, [
1385
- _("Wind gust"),
1386
- i("span", { class: "unit" }, "kts")
1387
- ], -1)),
1388
- (o(!0), r(b, null, x(s.tableData.windGust, (a, n) => (o(), r("td", {
1389
- rowspan: "1",
1390
- colspan: "1",
1391
- class: z(s.activeIndex === n ? "active" : ""),
1392
- key: Math.random() + a
1393
- }, f(a), 3))), 128))
2573
+ e[33] || (e[33] = A("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
2574
+ A("table", zt, [
2575
+ A("tr", Pt, [
2576
+ e[30] || (e[30] = A("td", {
2577
+ rowspan: "1",
2578
+ colspan: "1",
2579
+ class: "td-title"
2580
+ }, [
2581
+ F("Sea level height"),
2582
+ A("span", { class: "unit" }, "m")
2583
+ ], -1)),
2584
+ (o(!0), n(Y, null, K(s.hoursTableData.seaLevel, (a, h) => (o(), n("td", {
2585
+ rowspan: "1",
2586
+ colspan: "1",
2587
+ class: U(s.activeIndex === h ? "active" : ""),
2588
+ key: Math.random() + a
2589
+ }, f(a), 3))), 128))
2590
+ ]),
2591
+ A("tr", kt, [
2592
+ e[31] || (e[31] = A("td", {
2593
+ rowspan: "1",
2594
+ colspan: "1",
2595
+ class: "td-title"
2596
+ }, [
2597
+ F("Sea surface temperature"),
2598
+ A("span", { class: "unit" }, "°C")
2599
+ ], -1)),
2600
+ (o(!0), n(Y, null, K(s.hoursTableData.seaTemp, (a, h) => (o(), n("td", {
2601
+ rowspan: "1",
2602
+ colspan: "1",
2603
+ class: U(s.activeIndex === h ? "active" : ""),
2604
+ key: Math.random() + a
2605
+ }, f(a), 3))), 128))
2606
+ ])
1394
2607
  ])
1395
- ]),
1396
- t[27] || (t[27] = i("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
1397
- i("table", de, [
1398
- i("tr", ce, [
1399
- t[16] || (t[16] = i("td", {
1400
- rowspan: "1",
1401
- colspan: "1",
1402
- class: "tr-title"
1403
- }, [
1404
- _("Wind wave height"),
1405
- i("span", { class: "unit" }, "m")
1406
- ], -1)),
1407
- (o(!0), r(b, null, x(s.tableData.windwaveHeight, (a, n) => (o(), r("td", {
1408
- rowspan: "1",
1409
- colspan: "1",
1410
- class: z(s.activeIndex === n ? "active" : ""),
1411
- key: Math.random() + a
1412
- }, f(a), 3))), 128))
1413
- ]),
1414
- i("tr", pe, [
1415
- t[17] || (t[17] = i("td", {
1416
- rowspan: "1",
1417
- colspan: "1",
1418
- class: "tr-title"
1419
- }, [
1420
- _("Wind wave direction"),
1421
- i("span", { class: "unit" })
1422
- ], -1)),
1423
- (o(!0), r(b, null, x(s.tableData.windwaveDir, (a, n) => (o(), r("td", {
1424
- rowspan: "1",
1425
- colspan: "1",
1426
- class: z(s.activeIndex === n ? "active" : ""),
1427
- key: Math.random() + a
1428
- }, [
1429
- isNaN(a) ? (o(), r("span", me, "-")) : (o(), r("span", {
1430
- key: 0,
1431
- class: "iconfont icon",
1432
- style: ct({ display: "inline-block", transform: `rotate(${a}deg)` })
1433
- }, "", 4))
1434
- ], 2))), 128))
1435
- ]),
1436
- i("tr", ue, [
1437
- t[18] || (t[18] = i("td", {
1438
- rowspan: "1",
1439
- colspan: "1",
1440
- class: "tr-title"
1441
- }, [
1442
- _("Wind wave period"),
1443
- i("span", { class: "unit" }, "s")
1444
- ], -1)),
1445
- (o(!0), r(b, null, x(s.tableData.windwavePeriod, (a, n) => (o(), r("td", {
1446
- rowspan: "1",
1447
- colspan: "1",
1448
- class: z(s.activeIndex === n ? "active" : ""),
1449
- key: Math.random() + a
1450
- }, f(a), 3))), 128))
1451
- ]),
1452
- i("tr", we, [
1453
- t[19] || (t[19] = i("td", {
1454
- rowspan: "1",
1455
- colspan: "1",
1456
- class: "tr-title"
1457
- }, [
1458
- _("Swell height"),
1459
- i("span", { class: "unit" }, "m")
1460
- ], -1)),
1461
- (o(!0), r(b, null, x(s.tableData.swellHeight, (a, n) => (o(), r("td", {
1462
- rowspan: "1",
1463
- colspan: "1",
1464
- class: z(s.activeIndex === n ? "active" : ""),
1465
- key: Math.random() + a
1466
- }, f(a), 3))), 128))
1467
- ]),
1468
- i("tr", ge, [
1469
- t[20] || (t[20] = i("td", {
1470
- rowspan: "1",
1471
- colspan: "1",
1472
- class: "tr-title"
1473
- }, [
1474
- _("Swell direction"),
1475
- i("span", { class: "unit" })
2608
+ ])) : (k = s.loading) != null && k.hoursTable ? (o(), n("div", Nt, e[34] || (e[34] = [
2609
+ A("img", {
2610
+ style: { height: "200px" },
2611
+ src: Qe
2612
+ }, null, -1)
2613
+ ]))) : (o(), n("div", Gt, "No Data"))
2614
+ ])) : ve("", !0),
2615
+ s.menuIndex === 2 ? (o(), n("div", Tt, [
2616
+ (N = s.position) != null && N.name && t.token && !((G = s.loading) != null && G.daysTable) ? (o(), n("div", Ft, [
2617
+ A("table", St, [
2618
+ e[44] || (e[44] = A("tr", { class: "day tr-title" }, [
2619
+ A("th", {
2620
+ rowspan: "1",
2621
+ colspan: "1"
2622
+ }),
2623
+ A("th", {
2624
+ rowspan: "1",
2625
+ colspan: "3",
2626
+ class: "text-align-left"
2627
+ }, "Conditions"),
2628
+ A("th", {
2629
+ rowspan: "1",
2630
+ colspan: "3",
2631
+ class: "text-align-left"
2632
+ }, "Precipitation"),
2633
+ A("th", {
2634
+ rowspan: "1",
2635
+ colspan: "2",
2636
+ class: "text-align-left"
2637
+ }, "Wind"),
2638
+ A("th", {
2639
+ rowspan: "1",
2640
+ colspan: "4",
2641
+ class: "text-align-left"
2642
+ }, "Wave")
1476
2643
  ], -1)),
1477
- (o(!0), r(b, null, x(s.tableData.swellDir, (a, n) => (o(), r("td", {
1478
- rowspan: "1",
1479
- colspan: "1",
1480
- class: z(s.activeIndex === n ? "active" : ""),
1481
- key: Math.random() + a
1482
- }, [
1483
- isNaN(a) ? (o(), r("span", ve, "-")) : (o(), r("span", {
1484
- key: 0,
1485
- class: "iconfont icon",
1486
- style: ct({ display: "inline-block", transform: `rotate(${a}deg)` })
1487
- }, "", 4))
1488
- ], 2))), 128))
1489
- ]),
1490
- i("tr", be, [
1491
- t[21] || (t[21] = i("td", {
1492
- rowspan: "1",
1493
- colspan: "1",
1494
- class: "tr-title"
1495
- }, [
1496
- _("Swell period"),
1497
- i("span", { class: "unit" }, "s")
2644
+ e[45] || (e[45] = A("tr", { class: "hour tr-title border-bottom" }, [
2645
+ A("th", {
2646
+ rowspan: "1",
2647
+ colspan: "1",
2648
+ class: "font-black",
2649
+ style: { "text-align": "right", "padding-right": "5px", "box-sizing": "border-box" }
2650
+ }, "Date"),
2651
+ A("th", {
2652
+ rowspan: "1",
2653
+ colspan: "1",
2654
+ class: "font-black",
2655
+ style: { width: "40px" }
2656
+ }, "Weather"),
2657
+ A("th", {
2658
+ rowspan: "1",
2659
+ colspan: "1",
2660
+ class: "font-black text-align-left",
2661
+ style: { width: "70px" }
2662
+ }),
2663
+ A("th", {
2664
+ rowspan: "1",
2665
+ colspan: "1",
2666
+ class: "font-black text-align-left"
2667
+ }, "Temperature"),
2668
+ A("th", {
2669
+ rowspan: "1",
2670
+ colspan: "1",
2671
+ class: "font-black text-align-left"
2672
+ }, "Sum"),
2673
+ A("th", {
2674
+ rowspan: "1",
2675
+ colspan: "1",
2676
+ class: "font-black text-align-left"
2677
+ }, "Rain"),
2678
+ A("th", {
2679
+ rowspan: "1",
2680
+ colspan: "1",
2681
+ class: "font-black text-align-left"
2682
+ }, "Snowfall"),
2683
+ A("th", {
2684
+ rowspan: "1",
2685
+ colspan: "1",
2686
+ class: "font-black text-align-left"
2687
+ }, "Speed_max"),
2688
+ A("th", {
2689
+ rowspan: "1",
2690
+ colspan: "1",
2691
+ class: "font-black text-align-left"
2692
+ }, "Gust_max"),
2693
+ A("th", {
2694
+ rowspan: "1",
2695
+ colspan: "1",
2696
+ class: "font-black text-align-left",
2697
+ style: { width: "75px" }
2698
+ }, "Wind wave_max"),
2699
+ A("th", {
2700
+ rowspan: "1",
2701
+ colspan: "1",
2702
+ class: "font-black text-align-left",
2703
+ style: { width: "75px" }
2704
+ }, "Swell wave_max"),
2705
+ A("th", {
2706
+ rowspan: "1",
2707
+ colspan: "1",
2708
+ class: "font-black text-align-left",
2709
+ style: { width: "75px" }
2710
+ }, "Sig.wave_max")
1498
2711
  ], -1)),
1499
- (o(!0), r(b, null, x(s.tableData.swellPeriod, (a, n) => (o(), r("td", {
1500
- rowspan: "1",
1501
- colspan: "1",
1502
- class: z(s.activeIndex === n ? "active" : ""),
1503
- key: Math.random() + a
1504
- }, f(a), 3))), 128))
1505
- ]),
1506
- i("tr", xe, [
1507
- t[22] || (t[22] = i("td", {
1508
- rowspan: "1",
1509
- colspan: "1",
1510
- class: "tr-title"
2712
+ (o(!0), n(Y, null, K(s.daysTableData, (a, h) => (o(), n("tr", {
2713
+ class: "text border-bottom",
2714
+ key: Math.random() + a.localDate
1511
2715
  }, [
1512
- _("Sig wave height"),
1513
- i("span", { class: "unit" }, "m")
1514
- ], -1)),
1515
- (o(!0), r(b, null, x(s.tableData.sigwaveHeight, (a, n) => (o(), r("td", {
1516
- rowspan: "1",
1517
- colspan: "1",
1518
- class: z(s.activeIndex === n ? "active" : ""),
1519
- key: Math.random() + a
1520
- }, f(a), 3))), 128))
1521
- ]),
1522
- i("tr", fe, [
1523
- t[23] || (t[23] = i("td", {
1524
- rowspan: "1",
1525
- colspan: "1",
1526
- class: "tr-title"
1527
- }, [
1528
- _("Current direction"),
1529
- i("span", { class: "unit" })
1530
- ], -1)),
1531
- (o(!0), r(b, null, x(s.tableData.currentDir, (a, n) => (o(), r("td", {
1532
- rowspan: "1",
1533
- colspan: "1",
1534
- class: z(s.activeIndex === n ? "active" : ""),
1535
- key: Math.random() + a
1536
- }, [
1537
- isNaN(a) ? (o(), r("span", ye, "-")) : (o(), r("span", {
1538
- key: 0,
1539
- class: "iconfont icon",
1540
- style: ct({ display: "inline-block", transform: `rotate(${a}deg)` })
1541
- }, "", 4))
1542
- ], 2))), 128))
1543
- ]),
1544
- i("tr", _e, [
1545
- t[24] || (t[24] = i("td", {
1546
- rowspan: "1",
1547
- colspan: "1",
1548
- class: "tr-title"
1549
- }, [
1550
- _("Current speed"),
1551
- i("span", { class: "unit" }, "kts")
1552
- ], -1)),
1553
- (o(!0), r(b, null, x(s.tableData.currentSpeed, (a, n) => (o(), r("td", {
1554
- rowspan: "1",
1555
- colspan: "1",
1556
- class: z(s.activeIndex === n ? "active" : ""),
1557
- key: Math.random() + a
1558
- }, f(a), 3))), 128))
1559
- ])
1560
- ]),
1561
- t[28] || (t[28] = i("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
1562
- i("table", ze, [
1563
- i("tr", ke, [
1564
- t[25] || (t[25] = i("td", {
1565
- rowspan: "1",
1566
- colspan: "1",
1567
- class: "tr-title"
1568
- }, [
1569
- _("Sea level height"),
1570
- i("span", { class: "unit" }, "m")
1571
- ], -1)),
1572
- (o(!0), r(b, null, x(s.tableData.seaLevel, (a, n) => (o(), r("td", {
1573
- rowspan: "1",
1574
- colspan: "1",
1575
- class: z(s.activeIndex === n ? "active" : ""),
1576
- key: Math.random() + a
1577
- }, f(a), 3))), 128))
1578
- ]),
1579
- i("tr", De, [
1580
- t[26] || (t[26] = i("td", {
1581
- rowspan: "1",
1582
- colspan: "1",
1583
- class: "tr-title"
1584
- }, [
1585
- _("Sea surface temperature"),
1586
- i("span", { class: "unit" }, "°C")
1587
- ], -1)),
1588
- (o(!0), r(b, null, x(s.tableData.seaTemp, (a, n) => (o(), r("td", {
1589
- rowspan: "1",
1590
- colspan: "1",
1591
- class: z(s.activeIndex === n ? "active" : ""),
1592
- key: Math.random() + a
1593
- }, f(a), 3))), 128))
2716
+ A("td", Ot, [
2717
+ A("div", null, f(a.localWeek), 1),
2718
+ A("div", null, f(a.localDate), 1)
2719
+ ]),
2720
+ A("td", jt, [
2721
+ a.weatherUrl ? (o(), n("img", {
2722
+ key: 0,
2723
+ class: "iconfont weather-icon",
2724
+ style: { width: "34px", height: "34px" },
2725
+ src: a.weatherUrl
2726
+ }, null, 8, Yt)) : ve("", !0)
2727
+ ]),
2728
+ A("td", Kt, f(a.weatherName), 1),
2729
+ A("td", Ut, [
2730
+ F(f(a.minTemp) + " / " + f(a.maxTemp), 1),
2731
+ e[35] || (e[35] = A("span", { class: "unit" }, "°C", -1))
2732
+ ]),
2733
+ A("td", Xt, [
2734
+ F(f(a.precipSum), 1),
2735
+ e[36] || (e[36] = A("span", { class: "unit" }, "mm", -1))
2736
+ ]),
2737
+ A("td", Jt, [
2738
+ F(f(a.precipRainSum), 1),
2739
+ e[37] || (e[37] = A("span", { class: "unit" }, "mm", -1))
2740
+ ]),
2741
+ A("td", Rt, [
2742
+ F(f(a.precipSnowfallSum), 1),
2743
+ e[38] || (e[38] = A("span", { class: "unit" }, "mm", -1))
2744
+ ]),
2745
+ A("td", Wt, [
2746
+ A("span", null, f(a.windSpeedMax), 1),
2747
+ e[39] || (e[39] = A("span", { class: "unit" }, "kts", -1)),
2748
+ isNaN(a.windSpeedDir) ? (o(), n("span", qt, "-")) : (o(), n("span", {
2749
+ key: 0,
2750
+ class: "iconfont icon",
2751
+ style: Ce({ display: "inline-block", transform: `rotate(${a.windSpeedDir}deg)` })
2752
+ }, "", 4))
2753
+ ]),
2754
+ A("td", Vt, [
2755
+ A("span", null, f(a.gustSpeedMax), 1),
2756
+ e[40] || (e[40] = A("span", { class: "unit" }, "kts", -1))
2757
+ ]),
2758
+ A("td", Zt, [
2759
+ A("span", null, f(a.windWaveHeight), 1),
2760
+ e[41] || (e[41] = A("span", { class: "unit" }, "m", -1)),
2761
+ isNaN(a.windWaveDir) ? (o(), n("span", _t, "-")) : (o(), n("span", {
2762
+ key: 0,
2763
+ class: "iconfont icon",
2764
+ style: Ce({ display: "inline-block", transform: `rotate(${a.windWaveDir}deg)` })
2765
+ }, "", 4))
2766
+ ]),
2767
+ A("td", $t, [
2768
+ A("span", null, f(a.swellWaveHeight), 1),
2769
+ e[42] || (e[42] = A("span", { class: "unit" }, "m", -1)),
2770
+ isNaN(a.swellWaveDir) ? (o(), n("span", es, "-")) : (o(), n("span", {
2771
+ key: 0,
2772
+ class: "iconfont icon",
2773
+ style: Ce({ display: "inline-block", transform: `rotate(${a.swellWaveDir}deg)` })
2774
+ }, "", 4))
2775
+ ]),
2776
+ A("td", ts, [
2777
+ A("span", null, f(a.sigWaveHeight), 1),
2778
+ e[43] || (e[43] = A("span", { class: "unit" }, "m", -1)),
2779
+ isNaN(a.sigWaveDir) ? (o(), n("span", ss, "-")) : (o(), n("span", {
2780
+ key: 0,
2781
+ class: "iconfont icon",
2782
+ style: Ce({ display: "inline-block", transform: `rotate(${a.sigWaveDir}deg)` })
2783
+ }, "", 4))
2784
+ ])
2785
+ ]))), 128))
1594
2786
  ])
1595
- ])
1596
- ])) : s.loading ? (o(), r("div", Se, "Loading....")) : (o(), r("div", Le, "No Data"))
2787
+ ])) : (T = s.loading) != null && T.daysTable ? (o(), n("div", As, e[46] || (e[46] = [
2788
+ A("img", {
2789
+ style: { height: "200px" },
2790
+ src: Qe
2791
+ }, null, -1)
2792
+ ]))) : (o(), n("div", as, "No Data"))
2793
+ ])) : ve("", !0)
1597
2794
  ])
1598
2795
  ]);
1599
2796
  }
1600
- const Ie = /* @__PURE__ */ Wt(Tt, [["render", Ne], ["__scopeId", "data-v-969b448f"]]), Re = {
1601
- install(l) {
1602
- l.component("SpotReport", Ie);
2797
+ const os = /* @__PURE__ */ Ge(Te, [["render", is], ["__scopeId", "data-v-54c0ed8a"]]), ws = {
2798
+ install(g) {
2799
+ g.component("SpotReport", os);
1603
2800
  }
1604
2801
  };
1605
2802
  export {
1606
- Ie as SpotReport,
1607
- Re as SpotReportPlugin
2803
+ os as SpotReport,
2804
+ ws as SpotReportPlugin
1608
2805
  };