@idmui/spot 0.3.4 → 0.3.6
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 +789 -745
- package/dist/index.umd.cjs +20 -18
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import we from "moment";
|
|
2
|
-
import
|
|
2
|
+
import ie from "moment-timezone";
|
|
3
3
|
import { ArrowRight as He, Search as ke } from "@element-plus/icons-vue";
|
|
4
4
|
import { LngLatHelper as Ee } from "@idm-plugin/geo";
|
|
5
5
|
import * as pe from "echarts";
|
|
6
|
-
import { markRaw as Pe, resolveComponent as Ce, openBlock as o, createElementBlock as n, createElementVNode as t, createVNode as ve, withCtx as Ie, Fragment as
|
|
6
|
+
import { markRaw as Pe, resolveComponent as Ce, openBlock as o, createElementBlock as n, createElementVNode as t, createVNode as ve, withCtx as Ie, Fragment as oe, renderList as ne, createBlock as Ne, normalizeClass as Ae, toDisplayString as g, createCommentVNode as Be, createTextVNode as $, normalizeStyle as fe, withDirectives as Te, vShow as Ge } from "vue";
|
|
7
7
|
import Qe from "axios";
|
|
8
8
|
class ye {
|
|
9
|
-
static pickHourly(e,
|
|
10
|
-
var
|
|
11
|
-
const le = typeof
|
|
9
|
+
static pickHourly(e, s) {
|
|
10
|
+
var h, a, B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E, A, ae, d, de, ge, ce, y, re, u, ee, te, w, se;
|
|
11
|
+
const le = typeof s == "string" ? we(s) : s, he = e == null ? void 0 : e.weather, i = e == null ? void 0 : e.marine, m = we((a = (h = he == null ? void 0 : he[0]) == null ? void 0 : h.hourly) == null ? void 0 : a.date).utc(), f = m.clone().add((q = (S = (B = he == null ? void 0 : he[0]) == null ? void 0 : B.hourly) == null ? void 0 : S.time) == null ? void 0 : q.at(0), "h"), ue = m.clone().add((F = (k = (H = he == null ? void 0 : he[0]) == null ? void 0 : H.hourly) == null ? void 0 : k.time) == null ? void 0 : F.at(-1), "h"), x = [];
|
|
12
12
|
if (le.isBetween(f, ue, "millisecond", "[]")) {
|
|
13
13
|
const I = le.utc().diff(f, "h", !1);
|
|
14
|
-
let me,
|
|
14
|
+
let me, De;
|
|
15
15
|
if (he)
|
|
16
16
|
for (const be of he) {
|
|
17
17
|
const Q = be.hourly;
|
|
18
18
|
me = {
|
|
19
|
-
temp: (
|
|
19
|
+
temp: (N = Q.temperature_2m) == null ? void 0 : N.at(I),
|
|
20
20
|
apparentTemp: (_ = Q.apparent_temperature) == null ? void 0 : _.at(I),
|
|
21
21
|
rh: (M = Q.relative_humidity_2m) == null ? void 0 : M.at(I),
|
|
22
|
-
dp: (
|
|
22
|
+
dp: (O = Q.dew_point_2m) == null ? void 0 : O.at(I),
|
|
23
23
|
precip: {
|
|
24
24
|
probability: (V = Q.precipitation_probability) == null ? void 0 : V.at(I),
|
|
25
25
|
sum: (Z = Q.precipitation) == null ? void 0 : Z.at(I)
|
|
26
26
|
},
|
|
27
|
-
pmsl: (
|
|
28
|
-
psurf: (
|
|
29
|
-
code: (
|
|
30
|
-
visibility: this.m2nm((
|
|
27
|
+
pmsl: (v = Q.pressure_msl) == null ? void 0 : v.at(I),
|
|
28
|
+
psurf: (T = Q.surface_pressure) == null ? void 0 : T.at(I),
|
|
29
|
+
code: (Y = Q.weather_code) == null ? void 0 : Y.at(I),
|
|
30
|
+
visibility: this.m2nm((j = Q.visibility) == null ? void 0 : j.at(I)),
|
|
31
31
|
wind: {
|
|
32
|
-
speed: (
|
|
33
|
-
kts: (
|
|
34
|
-
degree: (
|
|
35
|
-
bearing: ((
|
|
36
|
-
gusts: (
|
|
32
|
+
speed: (K = Q.wind_speed_10m) == null ? void 0 : K.at(I),
|
|
33
|
+
kts: (U = Q.wind_speed_10m) == null ? void 0 : U.at(I),
|
|
34
|
+
degree: (X = Q.wind_direction_10m) == null ? void 0 : X.at(I),
|
|
35
|
+
bearing: ((W = Q.wind_direction_10m) == null ? void 0 : W.at(I)) !== null ? (((R = Q.wind_direction_10m) == null ? void 0 : R.at(I)) + 180) % 360 : null,
|
|
36
|
+
gusts: (J = Q.wind_gusts_10m) == null ? void 0 : J.at(I)
|
|
37
37
|
},
|
|
38
|
-
isDay: (
|
|
38
|
+
isDay: (c = Q.is_day) == null ? void 0 : c.at(I)
|
|
39
39
|
};
|
|
40
40
|
const { name: Me, url: Le, bg: ze } = this.parseWeatherCode(me.code, me.isDay);
|
|
41
41
|
me.name = Me, me.url = Le, me.bg = ze, me.wind.scale = this.beaufort(this.kts2ms(me.wind.kts)), me.wind.direction = this.degree2Direction(me.wind.degree);
|
|
@@ -43,23 +43,23 @@ class ye {
|
|
|
43
43
|
if (i)
|
|
44
44
|
for (const be of i) {
|
|
45
45
|
const Q = be.hourly;
|
|
46
|
-
|
|
46
|
+
De = {
|
|
47
47
|
wave: {
|
|
48
48
|
sig: {
|
|
49
|
-
height: (
|
|
50
|
-
degree: (
|
|
51
|
-
bearing: ((
|
|
52
|
-
period: (
|
|
49
|
+
height: (G = Q.wave_height) == null ? void 0 : G.at(I),
|
|
50
|
+
degree: (z = Q.wave_direction) == null ? void 0 : z.at(I),
|
|
51
|
+
bearing: ((P = Q.wave_direction) == null ? void 0 : P.at(I)) !== null ? (((L = Q.wave_direction) == null ? void 0 : L.at(I)) + 180) % 360 : null,
|
|
52
|
+
period: (p = Q.wave_period) == null ? void 0 : p.at(I)
|
|
53
53
|
},
|
|
54
54
|
swell: {
|
|
55
|
-
height: (
|
|
56
|
-
degree: (
|
|
57
|
-
bearing: ((
|
|
58
|
-
period: (
|
|
59
|
-
peakPeriod: (
|
|
55
|
+
height: (b = Q.swell_wave_height) == null ? void 0 : b.at(I),
|
|
56
|
+
degree: (D = Q.swell_wave_direction) == null ? void 0 : D.at(I),
|
|
57
|
+
bearing: ((C = Q.swell_wave_direction) == null ? void 0 : C.at(I)) !== null ? (((l = Q.swell_wave_direction) == null ? void 0 : l.at(I)) + 180) % 360 : null,
|
|
58
|
+
period: (E = Q.swell_wave_period) == null ? void 0 : E.at(I),
|
|
59
|
+
peakPeriod: (A = Q.swell_wave_peak_period) == null ? void 0 : A.at(I)
|
|
60
60
|
},
|
|
61
61
|
wd: {
|
|
62
|
-
height: (
|
|
62
|
+
height: (ae = Q.wind_wave_height) == null ? void 0 : ae.at(I),
|
|
63
63
|
degree: (d = Q.wind_wave_direction) == null ? void 0 : d.at(I),
|
|
64
64
|
bearing: ((de = Q.wind_wave_direction) == null ? void 0 : de.at(I)) !== null ? (((ge = Q.wind_wave_direction) == null ? void 0 : ge.at(I)) + 180) % 360 : null,
|
|
65
65
|
period: (ce = Q.wind_wave_period) == null ? void 0 : ce.at(I),
|
|
@@ -68,36 +68,36 @@ class ye {
|
|
|
68
68
|
},
|
|
69
69
|
current: {
|
|
70
70
|
speed: (re = Q.ocean_current_velocity) == null ? void 0 : re.at(I),
|
|
71
|
-
kts: (
|
|
72
|
-
degree: (
|
|
73
|
-
bearing: ((
|
|
71
|
+
kts: (u = Q.ocean_current_velocity) == null ? void 0 : u.at(I),
|
|
72
|
+
degree: (ee = Q.ocean_current_direction) == null ? void 0 : ee.at(I),
|
|
73
|
+
bearing: ((te = Q.ocean_current_direction) == null ? void 0 : te.at(I)) ?? null
|
|
74
74
|
},
|
|
75
75
|
sst: (w = Q.sea_surface_temperature) == null ? void 0 : w.at(I),
|
|
76
|
-
height: (
|
|
77
|
-
},
|
|
76
|
+
height: (se = Q.sea_level_height_msl) == null ? void 0 : se.at(I)
|
|
77
|
+
}, De.wave = this.parseWave(De.wave), De.current.direction = this.degree2Direction(De.current.degree);
|
|
78
78
|
}
|
|
79
79
|
x.push({
|
|
80
80
|
utc: f.add(I, "h").format(),
|
|
81
81
|
weather: { ...me },
|
|
82
|
-
...
|
|
82
|
+
...De
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
return x;
|
|
86
86
|
}
|
|
87
87
|
static toLegacy(e) {
|
|
88
|
-
var
|
|
88
|
+
var s, h, a, B, S, q, H, k, F, N;
|
|
89
89
|
return {
|
|
90
|
-
wind: (
|
|
91
|
-
visibility: (
|
|
92
|
-
temp: (
|
|
93
|
-
prmsl: (
|
|
90
|
+
wind: (s = e == null ? void 0 : e.weather) == null ? void 0 : s.wind,
|
|
91
|
+
visibility: (h = e == null ? void 0 : e.weather) == null ? void 0 : h.visibility,
|
|
92
|
+
temp: (a = e == null ? void 0 : e.weather) == null ? void 0 : a.temp,
|
|
93
|
+
prmsl: (B = e == null ? void 0 : e.weather) == null ? void 0 : B.pmsl,
|
|
94
94
|
gusts: {
|
|
95
|
-
kts: (q = (
|
|
95
|
+
kts: (q = (S = e == null ? void 0 : e.weather) == null ? void 0 : S.wind) == null ? void 0 : q.gusts
|
|
96
96
|
},
|
|
97
97
|
precip: (H = e == null ? void 0 : e.weather) == null ? void 0 : H.precip,
|
|
98
98
|
code: (k = e == null ? void 0 : e.weather) == null ? void 0 : k.code,
|
|
99
|
-
name: (
|
|
100
|
-
url: (
|
|
99
|
+
name: (F = e == null ? void 0 : e.weather) == null ? void 0 : F.name,
|
|
100
|
+
url: (N = e == null ? void 0 : e.weather) == null ? void 0 : N.url,
|
|
101
101
|
wave: e == null ? void 0 : e.wave,
|
|
102
102
|
current: e == null ? void 0 : e.current,
|
|
103
103
|
sst: e == null ? void 0 : e.sst,
|
|
@@ -105,82 +105,82 @@ class ye {
|
|
|
105
105
|
utc: e == null ? void 0 : e.utc
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
|
-
static pickDaily(e,
|
|
109
|
-
var
|
|
110
|
-
const
|
|
111
|
-
if (
|
|
112
|
-
let i,
|
|
113
|
-
const f =
|
|
114
|
-
if (
|
|
115
|
-
for (const ue of
|
|
108
|
+
static pickDaily(e, s) {
|
|
109
|
+
var h, a, B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E, A, ae, d, de, ge, ce, y, re, u;
|
|
110
|
+
const ee = typeof s == "string" ? we(s) : s, te = e == null ? void 0 : e.weather, w = e == null ? void 0 : e.marine, se = we((B = (a = (h = te == null ? void 0 : te[0]) == null ? void 0 : h.daily) == null ? void 0 : a.time) == null ? void 0 : B.at(0)), le = we((H = (q = (S = te == null ? void 0 : te[0]) == null ? void 0 : S.daily) == null ? void 0 : q.time) == null ? void 0 : H.at(-1)), he = [];
|
|
111
|
+
if (ee.isBetween(se, le, "millisecond", "[]")) {
|
|
112
|
+
let i, m;
|
|
113
|
+
const f = ee.diff(se, "d", !1);
|
|
114
|
+
if (te)
|
|
115
|
+
for (const ue of te) {
|
|
116
116
|
const x = ue.daily;
|
|
117
117
|
i = {
|
|
118
118
|
code: (k = x.weather_code) == null ? void 0 : k.at(f),
|
|
119
119
|
temp: {
|
|
120
|
-
max: (
|
|
121
|
-
min: (
|
|
120
|
+
max: (F = x.temperature_2m_max) == null ? void 0 : F.at(f),
|
|
121
|
+
min: (N = x.temperature_2m_min) == null ? void 0 : N.at(f),
|
|
122
122
|
mean: (_ = x.temperature_2m_mean) == null ? void 0 : _.at(f)
|
|
123
123
|
},
|
|
124
124
|
apparentTemp: {
|
|
125
125
|
max: (M = x.apparent_temperature_max) == null ? void 0 : M.at(f),
|
|
126
|
-
min: (
|
|
126
|
+
min: (O = x.apparent_temperature_min) == null ? void 0 : O.at(f)
|
|
127
127
|
},
|
|
128
128
|
precip: {
|
|
129
129
|
sum: (V = x.precipitation_sum) == null ? void 0 : V.at(f),
|
|
130
130
|
rainSum: (Z = x.rain_sum) == null ? void 0 : Z.at(f),
|
|
131
|
-
snowfallSum: (
|
|
132
|
-
showersSum: (
|
|
133
|
-
hours: (
|
|
134
|
-
probability: (
|
|
131
|
+
snowfallSum: (v = x.snowfall_sum) == null ? void 0 : v.at(f),
|
|
132
|
+
showersSum: (T = x.showers_sum) == null ? void 0 : T.at(f),
|
|
133
|
+
hours: (Y = x.precipitation_hours) == null ? void 0 : Y.at(f),
|
|
134
|
+
probability: (j = x.precipitation_probability_max) == null ? void 0 : j.at(f)
|
|
135
135
|
},
|
|
136
136
|
rh: {
|
|
137
|
-
max: (
|
|
138
|
-
min: (
|
|
139
|
-
mean: (
|
|
137
|
+
max: (K = x.relative_humidity_2m_max) == null ? void 0 : K.at(f),
|
|
138
|
+
min: (U = x.relative_humidity_2m_min) == null ? void 0 : U.at(f),
|
|
139
|
+
mean: (X = x.relative_humidity_2m_mean) == null ? void 0 : X.at(f)
|
|
140
140
|
},
|
|
141
141
|
wind: {
|
|
142
|
-
speed: (
|
|
143
|
-
kts: (
|
|
144
|
-
degree: (
|
|
145
|
-
gusts: (
|
|
146
|
-
bearing: ((
|
|
142
|
+
speed: (W = x.wind_speed_10m_max) == null ? void 0 : W.at(f),
|
|
143
|
+
kts: (R = x.wind_speed_10m_max) == null ? void 0 : R.at(f),
|
|
144
|
+
degree: (J = x.wind_direction_10m_dominant) == null ? void 0 : J.at(f),
|
|
145
|
+
gusts: (c = x.wind_gusts_10m_max) == null ? void 0 : c.at(f),
|
|
146
|
+
bearing: ((G = x.wind_direction_10m_dominant) == null ? void 0 : G.at(f)) !== null ? (((z = x.wind_direction_10m_dominant) == null ? void 0 : z.at(f)) + 180) % 360 : null
|
|
147
147
|
}
|
|
148
148
|
};
|
|
149
|
-
const { name: I, url: me, bg:
|
|
150
|
-
i.name = I, i.url = me, i.bg =
|
|
149
|
+
const { name: I, url: me, bg: De } = this.parseWeatherCode(i.code, !0);
|
|
150
|
+
i.name = I, i.url = me, i.bg = De, i.wind.scale = this.beaufort(this.kts2ms(i.wind.kts)), i.wind.direction = this.degree2Direction(i.wind.degree);
|
|
151
151
|
}
|
|
152
152
|
if (w)
|
|
153
153
|
for (const ue of w) {
|
|
154
154
|
const x = ue.daily;
|
|
155
|
-
|
|
155
|
+
m = {
|
|
156
156
|
wave: {
|
|
157
157
|
sig: {
|
|
158
|
-
height: (
|
|
159
|
-
degree: (
|
|
160
|
-
period: (
|
|
161
|
-
bearing: ((
|
|
158
|
+
height: (P = x.wave_height_max) == null ? void 0 : P.at(f),
|
|
159
|
+
degree: (L = x.wave_direction_dominant) == null ? void 0 : L.at(f),
|
|
160
|
+
period: (p = x.wave_period_max) == null ? void 0 : p.at(f),
|
|
161
|
+
bearing: ((b = x.wave_direction_dominant) == null ? void 0 : b.at(f)) !== null ? (((D = x.wave_direction_dominant) == null ? void 0 : D.at(f)) + 180) % 360 : null
|
|
162
162
|
},
|
|
163
163
|
swell: {
|
|
164
|
-
height: (
|
|
165
|
-
degree: (
|
|
166
|
-
period: (
|
|
167
|
-
peakPeriod: (
|
|
168
|
-
bearing: ((
|
|
164
|
+
height: (C = x.swell_wave_height_max) == null ? void 0 : C.at(f),
|
|
165
|
+
degree: (l = x.swell_wave_direction_dominant) == null ? void 0 : l.at(f),
|
|
166
|
+
period: (E = x.swell_wave_period_max) == null ? void 0 : E.at(f),
|
|
167
|
+
peakPeriod: (A = x.swell_wave_peak_period_max) == null ? void 0 : A.at(f),
|
|
168
|
+
bearing: ((ae = x.swell_wave_direction_dominant) == null ? void 0 : ae.at(f)) !== null ? (((d = x.swell_wave_direction_dominant) == null ? void 0 : d.at(f)) + 180) % 360 : null
|
|
169
169
|
},
|
|
170
170
|
wd: {
|
|
171
171
|
height: (de = x.wind_wave_height_max) == null ? void 0 : de.at(f),
|
|
172
172
|
degree: (ge = x.wind_wave_direction_dominant) == null ? void 0 : ge.at(f),
|
|
173
173
|
period: (ce = x.wind_wave_period_max) == null ? void 0 : ce.at(f),
|
|
174
174
|
peakPeriod: (y = x.wind_wave_peak_period_max) == null ? void 0 : y.at(f),
|
|
175
|
-
bearing: ((re = x.wind_wave_direction_dominant) == null ? void 0 : re.at(f)) !== null ? (((
|
|
175
|
+
bearing: ((re = x.wind_wave_direction_dominant) == null ? void 0 : re.at(f)) !== null ? (((u = x.wind_wave_direction_dominant) == null ? void 0 : u.at(f)) + 180) % 360 : null
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
},
|
|
178
|
+
}, m.wave = this.parseWave(m.wave);
|
|
179
179
|
}
|
|
180
180
|
he.push({
|
|
181
|
-
utc:
|
|
181
|
+
utc: se.add(f, "d").utc().format(),
|
|
182
182
|
weather: { ...i },
|
|
183
|
-
...
|
|
183
|
+
...m
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
return he;
|
|
@@ -188,325 +188,325 @@ class ye {
|
|
|
188
188
|
static parseWave(e) {
|
|
189
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;
|
|
190
190
|
}
|
|
191
|
-
static parseWeatherCode(e,
|
|
192
|
-
const
|
|
193
|
-
return (
|
|
191
|
+
static parseWeatherCode(e, s) {
|
|
192
|
+
const h = this.weatherCode(e);
|
|
193
|
+
return (s ? h.day : h.night) || {};
|
|
194
194
|
}
|
|
195
195
|
static weatherCode(e) {
|
|
196
|
-
const
|
|
196
|
+
const s = {
|
|
197
197
|
code: e
|
|
198
198
|
};
|
|
199
199
|
switch (e) {
|
|
200
200
|
case 0:
|
|
201
|
-
|
|
201
|
+
s.day = {
|
|
202
202
|
name: "Sunny",
|
|
203
203
|
url: "https://osshz.idmwx.com/asset/weather/01d.svg",
|
|
204
204
|
bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
|
|
205
|
-
},
|
|
205
|
+
}, s.night = {
|
|
206
206
|
name: "Clear",
|
|
207
207
|
url: "https://osshz.idmwx.com/asset/weather/01n.svg",
|
|
208
208
|
bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
|
|
209
209
|
};
|
|
210
210
|
break;
|
|
211
211
|
case 1:
|
|
212
|
-
|
|
212
|
+
s.day = {
|
|
213
213
|
name: "Mainly Sunny",
|
|
214
214
|
url: "https://osshz.idmwx.com/asset/weather/01d.svg",
|
|
215
215
|
bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
|
|
216
|
-
},
|
|
216
|
+
}, s.night = {
|
|
217
217
|
name: "Mainly Clear",
|
|
218
218
|
url: "https://osshz.idmwx.com/asset/weather/01n.svg",
|
|
219
219
|
bg: "https://osshz.idmwx.com/asset/weather/bg1.png"
|
|
220
220
|
};
|
|
221
221
|
break;
|
|
222
222
|
case 2:
|
|
223
|
-
|
|
223
|
+
s.day = {
|
|
224
224
|
name: "Partly Cloudy",
|
|
225
225
|
url: "https://osshz.idmwx.com/asset/weather/02d.svg",
|
|
226
226
|
bg: "https://osshz.idmwx.com/asset/weather/bg2.png"
|
|
227
|
-
},
|
|
227
|
+
}, s.night = {
|
|
228
228
|
name: "Partly Cloudy",
|
|
229
229
|
url: "https://osshz.idmwx.com/asset/weather/02n.svg",
|
|
230
230
|
bg: "https://osshz.idmwx.com/asset/weather/bg2.png"
|
|
231
231
|
};
|
|
232
232
|
break;
|
|
233
233
|
case 3:
|
|
234
|
-
|
|
234
|
+
s.day = {
|
|
235
235
|
name: "Overcast",
|
|
236
236
|
url: "https://osshz.idmwx.com/asset/weather/04d.svg",
|
|
237
237
|
bg: "https://osshz.idmwx.com/asset/weather/bg3.png"
|
|
238
|
-
},
|
|
238
|
+
}, s.night = {
|
|
239
239
|
name: "Overcast",
|
|
240
240
|
url: "https://osshz.idmwx.com/asset/weather/04n.svg",
|
|
241
241
|
bg: "https://osshz.idmwx.com/asset/weather/bg3.png"
|
|
242
242
|
};
|
|
243
243
|
break;
|
|
244
244
|
case 45:
|
|
245
|
-
|
|
245
|
+
s.day = {
|
|
246
246
|
name: "Foggy",
|
|
247
247
|
url: "https://osshz.idmwx.com/asset/weather/50d.svg",
|
|
248
248
|
bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
|
|
249
|
-
},
|
|
249
|
+
}, s.night = {
|
|
250
250
|
name: "Foggy",
|
|
251
251
|
url: "https://osshz.idmwx.com/asset/weather/50n.svg",
|
|
252
252
|
bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
|
|
253
253
|
};
|
|
254
254
|
break;
|
|
255
255
|
case 48:
|
|
256
|
-
|
|
256
|
+
s.day = {
|
|
257
257
|
name: "Rime Fog",
|
|
258
258
|
url: "https://osshz.idmwx.com/asset/weather/50d.svg",
|
|
259
259
|
bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
|
|
260
|
-
},
|
|
260
|
+
}, s.night = {
|
|
261
261
|
name: "Rime Fog",
|
|
262
262
|
url: "https://osshz.idmwx.com/asset/weather/50n.svg",
|
|
263
263
|
bg: "https://osshz.idmwx.com/asset/weather/bg4.png"
|
|
264
264
|
};
|
|
265
265
|
break;
|
|
266
266
|
case 51:
|
|
267
|
-
|
|
267
|
+
s.day = {
|
|
268
268
|
name: "Light Drizzle",
|
|
269
269
|
url: "https://osshz.idmwx.com/asset/weather/14d.svg",
|
|
270
270
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
271
|
-
},
|
|
271
|
+
}, s.night = {
|
|
272
272
|
name: "Light Drizzle",
|
|
273
273
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
274
274
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
275
275
|
};
|
|
276
276
|
break;
|
|
277
277
|
case 53:
|
|
278
|
-
|
|
278
|
+
s.day = {
|
|
279
279
|
name: "Drizzle",
|
|
280
280
|
url: "https://osshz.idmwx.com/asset/weather/14d.svg",
|
|
281
281
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
282
|
-
},
|
|
282
|
+
}, s.night = {
|
|
283
283
|
name: "Drizzle",
|
|
284
284
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
285
285
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
286
286
|
};
|
|
287
287
|
break;
|
|
288
288
|
case 55:
|
|
289
|
-
|
|
289
|
+
s.day = {
|
|
290
290
|
name: "Heavy Drizzle",
|
|
291
291
|
url: "https://osshz.idmwx.com/asset/weather/15d.svg",
|
|
292
292
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
293
|
-
},
|
|
293
|
+
}, s.night = {
|
|
294
294
|
name: "Heavy Drizzle",
|
|
295
295
|
url: "https://osshz.idmwx.com/asset/weather/15n.svg",
|
|
296
296
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
297
297
|
};
|
|
298
298
|
break;
|
|
299
299
|
case 56:
|
|
300
|
-
|
|
300
|
+
s.day = {
|
|
301
301
|
name: "Light Freezing Drizzle",
|
|
302
302
|
url: "https://osshz.idmwx.com/asset/weather/14d.svg",
|
|
303
303
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
304
|
-
},
|
|
304
|
+
}, s.night = {
|
|
305
305
|
name: "Light Freezing Drizzle",
|
|
306
306
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
307
307
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
308
308
|
};
|
|
309
309
|
break;
|
|
310
310
|
case 57:
|
|
311
|
-
|
|
311
|
+
s.day = {
|
|
312
312
|
name: "Freezing Drizzle",
|
|
313
313
|
url: "https://osshz.idmwx.com/asset/weather/14d.svg",
|
|
314
314
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
315
|
-
},
|
|
315
|
+
}, s.night = {
|
|
316
316
|
name: "Freezing Drizzle",
|
|
317
317
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
318
318
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
319
319
|
};
|
|
320
320
|
break;
|
|
321
321
|
case 61:
|
|
322
|
-
|
|
322
|
+
s.day = {
|
|
323
323
|
name: "Light Rain",
|
|
324
324
|
url: "https://osshz.idmwx.com/asset/weather/16d.svg",
|
|
325
325
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
326
|
-
},
|
|
326
|
+
}, s.night = {
|
|
327
327
|
name: "Light Rain",
|
|
328
328
|
url: "https://osshz.idmwx.com/asset/weather/10n.svg",
|
|
329
329
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
330
330
|
};
|
|
331
331
|
break;
|
|
332
332
|
case 63:
|
|
333
|
-
|
|
333
|
+
s.day = {
|
|
334
334
|
name: "Rain",
|
|
335
335
|
url: "https://osshz.idmwx.com/asset/weather/16d.svg",
|
|
336
336
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
337
|
-
},
|
|
337
|
+
}, s.night = {
|
|
338
338
|
name: "Rain",
|
|
339
339
|
url: "https://osshz.idmwx.com/asset/weather/10n.svg",
|
|
340
340
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
341
341
|
};
|
|
342
342
|
break;
|
|
343
343
|
case 65:
|
|
344
|
-
|
|
344
|
+
s.day = {
|
|
345
345
|
name: "Heavy Rain",
|
|
346
346
|
url: "https://osshz.idmwx.com/asset/weather/16d.svg",
|
|
347
347
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
348
|
-
},
|
|
348
|
+
}, s.night = {
|
|
349
349
|
name: "Heavy Rain",
|
|
350
350
|
url: "https://osshz.idmwx.com/asset/weather/10n.svg",
|
|
351
351
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
352
352
|
};
|
|
353
353
|
break;
|
|
354
354
|
case 66:
|
|
355
|
-
|
|
355
|
+
s.day = {
|
|
356
356
|
name: "Light Freezing Rain",
|
|
357
357
|
url: "https://osshz.idmwx.com/asset/weather/16d.svg",
|
|
358
358
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
359
|
-
},
|
|
359
|
+
}, s.night = {
|
|
360
360
|
name: "Light Freezing Rain",
|
|
361
361
|
url: "https://osshz.idmwx.com/asset/weather/10n.svg",
|
|
362
362
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
363
363
|
};
|
|
364
364
|
break;
|
|
365
365
|
case 67:
|
|
366
|
-
|
|
366
|
+
s.day = {
|
|
367
367
|
name: "Freezing Rain",
|
|
368
368
|
url: "https://osshz.idmwx.com/asset/weather/16d.svg",
|
|
369
369
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
370
|
-
},
|
|
370
|
+
}, s.night = {
|
|
371
371
|
name: "Freezing Rain",
|
|
372
372
|
url: "https://osshz.idmwx.com/asset/weather/10n.svg",
|
|
373
373
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
374
374
|
};
|
|
375
375
|
break;
|
|
376
376
|
case 71:
|
|
377
|
-
|
|
377
|
+
s.day = {
|
|
378
378
|
name: "Light Snow",
|
|
379
379
|
url: "https://osshz.idmwx.com/asset/weather/17d.svg",
|
|
380
380
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
381
|
-
},
|
|
381
|
+
}, s.night = {
|
|
382
382
|
name: "Light Snow",
|
|
383
383
|
url: "https://osshz.idmwx.com/asset/weather/13n.svg",
|
|
384
384
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
385
385
|
};
|
|
386
386
|
break;
|
|
387
387
|
case 73:
|
|
388
|
-
|
|
388
|
+
s.day = {
|
|
389
389
|
name: "Snow",
|
|
390
390
|
url: "https://osshz.idmwx.com/asset/weather/17d.svg",
|
|
391
391
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
392
|
-
},
|
|
392
|
+
}, s.night = {
|
|
393
393
|
name: "Snow",
|
|
394
394
|
url: "https://osshz.idmwx.com/asset/weather/13n.svg",
|
|
395
395
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
396
396
|
};
|
|
397
397
|
break;
|
|
398
398
|
case 75:
|
|
399
|
-
|
|
399
|
+
s.day = {
|
|
400
400
|
name: "Heavy Snow",
|
|
401
401
|
url: "https://osshz.idmwx.com/asset/weather/17d.svg",
|
|
402
402
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
403
|
-
},
|
|
403
|
+
}, s.night = {
|
|
404
404
|
name: "Heavy Snow",
|
|
405
405
|
url: "https://osshz.idmwx.com/asset/weather/13n.svg",
|
|
406
406
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
407
407
|
};
|
|
408
408
|
break;
|
|
409
409
|
case 77:
|
|
410
|
-
|
|
410
|
+
s.day = {
|
|
411
411
|
name: "Snow Grains",
|
|
412
412
|
url: "https://osshz.idmwx.com/asset/weather/17d.svg",
|
|
413
413
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
414
|
-
},
|
|
414
|
+
}, s.night = {
|
|
415
415
|
name: "Snow Grains",
|
|
416
416
|
url: "https://osshz.idmwx.com/asset/weather/13n.svg",
|
|
417
417
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
418
418
|
};
|
|
419
419
|
break;
|
|
420
420
|
case 80:
|
|
421
|
-
|
|
421
|
+
s.day = {
|
|
422
422
|
name: "Light Showers",
|
|
423
423
|
url: "https://osshz.idmwx.com/asset/weather/09d.svg",
|
|
424
424
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
425
|
-
},
|
|
425
|
+
}, s.night = {
|
|
426
426
|
name: "Light Showers",
|
|
427
427
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
428
428
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
429
429
|
};
|
|
430
430
|
break;
|
|
431
431
|
case 81:
|
|
432
|
-
|
|
432
|
+
s.day = {
|
|
433
433
|
name: "Showers",
|
|
434
434
|
url: "https://osshz.idmwx.com/asset/weather/09d.svg",
|
|
435
435
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
436
|
-
},
|
|
436
|
+
}, s.night = {
|
|
437
437
|
name: "Showers",
|
|
438
438
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
439
439
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
440
440
|
};
|
|
441
441
|
break;
|
|
442
442
|
case 82:
|
|
443
|
-
|
|
443
|
+
s.day = {
|
|
444
444
|
name: "Heavy Showers",
|
|
445
445
|
url: "https://osshz.idmwx.com/asset/weather/09d.svg",
|
|
446
446
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
447
|
-
},
|
|
447
|
+
}, s.night = {
|
|
448
448
|
name: "Heavy Showers",
|
|
449
449
|
url: "https://osshz.idmwx.com/asset/weather/09n.svg",
|
|
450
450
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
451
451
|
};
|
|
452
452
|
break;
|
|
453
453
|
case 85:
|
|
454
|
-
|
|
454
|
+
s.day = {
|
|
455
455
|
name: "Light Snow Showers",
|
|
456
456
|
url: "https://osshz.idmwx.com/asset/weather/13d.svg",
|
|
457
457
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
458
|
-
},
|
|
458
|
+
}, s.night = {
|
|
459
459
|
name: "Light Snow Showers",
|
|
460
460
|
url: "https://osshz.idmwx.com/asset/weather/13n.svg",
|
|
461
461
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
462
462
|
};
|
|
463
463
|
break;
|
|
464
464
|
case 86:
|
|
465
|
-
|
|
465
|
+
s.day = {
|
|
466
466
|
name: "Snow Showers",
|
|
467
467
|
url: "https://osshz.idmwx.com/asset/weather/13d.svg",
|
|
468
468
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
469
|
-
},
|
|
469
|
+
}, s.night = {
|
|
470
470
|
name: "Snow Showers",
|
|
471
471
|
url: "https://osshz.idmwx.com/asset/weather/13n.svg",
|
|
472
472
|
bg: "https://osshz.idmwx.com/asset/weather/bg6.png"
|
|
473
473
|
};
|
|
474
474
|
break;
|
|
475
475
|
case 95:
|
|
476
|
-
|
|
476
|
+
s.day = {
|
|
477
477
|
name: "Thunderstorm",
|
|
478
478
|
url: "https://osshz.idmwx.com/asset/weather/11d.svg",
|
|
479
479
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
480
|
-
},
|
|
480
|
+
}, s.night = {
|
|
481
481
|
name: "Thunderstorm",
|
|
482
482
|
url: "https://osshz.idmwx.com/asset/weather/11n.svg",
|
|
483
483
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
484
484
|
};
|
|
485
485
|
break;
|
|
486
486
|
case 96:
|
|
487
|
-
|
|
487
|
+
s.day = {
|
|
488
488
|
name: "Light Thunderstorms With Hail",
|
|
489
489
|
url: "https://osshz.idmwx.com/asset/weather/11d.svg",
|
|
490
490
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
491
|
-
},
|
|
491
|
+
}, s.night = {
|
|
492
492
|
name: "Light Thunderstorms With Hail",
|
|
493
493
|
url: "https://osshz.idmwx.com/asset/weather/11n.svg",
|
|
494
494
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
495
495
|
};
|
|
496
496
|
break;
|
|
497
497
|
case 99:
|
|
498
|
-
|
|
498
|
+
s.day = {
|
|
499
499
|
name: "Thunderstorms With Hail",
|
|
500
500
|
url: "https://osshz.idmwx.com/asset/weather/11d.svg",
|
|
501
501
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
502
|
-
},
|
|
502
|
+
}, s.night = {
|
|
503
503
|
name: "Thunderstorms With Hail",
|
|
504
504
|
url: "https://osshz.idmwx.com/asset/weather/11n.svg",
|
|
505
505
|
bg: "https://osshz.idmwx.com/asset/weather/bg5.png"
|
|
506
506
|
};
|
|
507
507
|
break;
|
|
508
508
|
}
|
|
509
|
-
return
|
|
509
|
+
return s;
|
|
510
510
|
}
|
|
511
511
|
static kts2ms(e) {
|
|
512
512
|
return isNaN(e) || e === null ? e : Math.round(e * 1852 / 3600 * 1e4) / 1e4;
|
|
@@ -530,8 +530,8 @@ class ye {
|
|
|
530
530
|
static degree2Radian(e) {
|
|
531
531
|
if (isNaN(e) || e === null)
|
|
532
532
|
return e;
|
|
533
|
-
let
|
|
534
|
-
return
|
|
533
|
+
let s = e % 360 / 360 * 2 * Math.PI;
|
|
534
|
+
return s = s < 0 ? s + 2 * Math.PI : s, s;
|
|
535
535
|
}
|
|
536
536
|
/**
|
|
537
537
|
* 将方位角转换为方向
|
|
@@ -539,12 +539,12 @@ class ye {
|
|
|
539
539
|
* @return {string}
|
|
540
540
|
*/
|
|
541
541
|
static degree2Direction(e) {
|
|
542
|
-
const
|
|
543
|
-
if (isNaN(
|
|
542
|
+
const s = this.degree2Radian(e);
|
|
543
|
+
if (isNaN(s) || s === null)
|
|
544
544
|
return null;
|
|
545
|
-
let
|
|
546
|
-
const
|
|
547
|
-
return
|
|
545
|
+
let h = "N/A";
|
|
546
|
+
const a = Math.PI / 16;
|
|
547
|
+
return s < a ? h = "N" : s >= a && s < 3 * a ? h = "NNE" : s >= 3 * a && s < 5 * a ? h = "NE" : s >= 5 * a && s < 7 * a ? h = "ENE" : s >= 7 * a && s < 9 * a ? h = "E" : s >= 9 * a && s < 11 * a ? h = "ESE" : s >= 11 * a && s < 13 * a ? h = "SE" : s >= 13 * a && s < 15 * a ? h = "SSE" : s >= 15 * a && s < 17 * a ? h = "S" : s >= 17 * a && s < 19 * a ? h = "SSW" : s >= 19 * a && s < 21 * a ? h = "SW" : s >= 21 * a && s < 23 * a ? h = "WSW" : s >= 23 * a && s < 25 * a ? h = "W" : s >= 25 * a && s < 27 * a ? h = "WNW" : s >= 27 * a && s < 29 * a ? h = "NW" : s >= 29 * a && s < 31 * a ? h = "NNW" : s >= 31 * a && s < 32 * a && (h = "N"), h;
|
|
548
548
|
}
|
|
549
549
|
/**
|
|
550
550
|
* 计算风力蒲福等级
|
|
@@ -552,24 +552,24 @@ class ye {
|
|
|
552
552
|
* @returns {number}
|
|
553
553
|
*/
|
|
554
554
|
static beaufort(e) {
|
|
555
|
-
let
|
|
556
|
-
return isNaN(e) || (e = Math.round(e * 10) / 10, e <= 0.2 ?
|
|
555
|
+
let s = 0;
|
|
556
|
+
return isNaN(e) || (e = Math.round(e * 10) / 10, e <= 0.2 ? s = 0 : e <= 1.5 ? s = 1 : e <= 3.3 ? s = 2 : e <= 5.4 ? s = 3 : e <= 7.9 ? s = 4 : e <= 10.7 ? s = 5 : e <= 13.8 ? s = 6 : e <= 17.1 ? s = 7 : e <= 20.7 ? s = 8 : e <= 22.4 ? s = 9 : e <= 28.4 ? s = 10 : e <= 32.6 ? s = 11 : e > 32.6 && (s = 12)), s;
|
|
557
557
|
}
|
|
558
558
|
/**
|
|
559
559
|
* 计算海浪等级
|
|
560
560
|
* @param height 高度 m
|
|
561
561
|
*/
|
|
562
562
|
static douglas(e) {
|
|
563
|
-
let
|
|
564
|
-
return isNaN(e) || e <= 0.1 ?
|
|
563
|
+
let s = "Calm";
|
|
564
|
+
return isNaN(e) || e <= 0.1 ? s = "Calm" : e <= 0.5 ? s = "Smooth" : e <= 1.25 ? s = "Slight" : e <= 2.5 ? s = "Moderate" : e <= 4 ? s = "Rough" : e <= 6 ? s = "VeryRough" : e <= 9 ? s = "High" : e <= 14 ? s = "VeryHigh" : s = "Precipitous", s;
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
567
|
const xe = "data:image/gif;base64,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";
|
|
568
|
-
const Se = (
|
|
569
|
-
const
|
|
570
|
-
for (const [
|
|
571
|
-
|
|
572
|
-
return
|
|
568
|
+
const Se = (r, e) => {
|
|
569
|
+
const s = r.__vccOpts || r;
|
|
570
|
+
for (const [h, a] of e)
|
|
571
|
+
s[h] = a;
|
|
572
|
+
return s;
|
|
573
573
|
}, Fe = {
|
|
574
574
|
name: "SpotReport",
|
|
575
575
|
components: { ArrowRight: He },
|
|
@@ -629,82 +629,83 @@ const Se = (A, e) => {
|
|
|
629
629
|
},
|
|
630
630
|
computed: {
|
|
631
631
|
computeHourLT() {
|
|
632
|
-
return function(
|
|
633
|
-
if (
|
|
634
|
-
const e =
|
|
632
|
+
return function(r) {
|
|
633
|
+
if (r) {
|
|
634
|
+
const e = ie(r).tz(this.positionGmt);
|
|
635
635
|
return `${e == null ? void 0 : e.format("HH")}`;
|
|
636
636
|
}
|
|
637
637
|
return "-";
|
|
638
638
|
};
|
|
639
639
|
},
|
|
640
640
|
computeHourZ() {
|
|
641
|
-
return function(
|
|
642
|
-
if (
|
|
643
|
-
const e = we(
|
|
641
|
+
return function(r) {
|
|
642
|
+
if (r) {
|
|
643
|
+
const e = we(r).utc();
|
|
644
644
|
return `${e == null ? void 0 : e.format("HH")}Z`;
|
|
645
645
|
}
|
|
646
646
|
return "-";
|
|
647
647
|
};
|
|
648
648
|
},
|
|
649
649
|
computeWeekLT() {
|
|
650
|
-
return function(
|
|
651
|
-
if (
|
|
652
|
-
const e =
|
|
650
|
+
return function(r) {
|
|
651
|
+
if (r) {
|
|
652
|
+
const e = ie(r).tz(this.positionGmt);
|
|
653
653
|
return `${e == null ? void 0 : e.format("dddd")}`;
|
|
654
654
|
}
|
|
655
655
|
return "-";
|
|
656
656
|
};
|
|
657
657
|
},
|
|
658
658
|
computeDDLT() {
|
|
659
|
-
return function(
|
|
660
|
-
if (
|
|
661
|
-
const e =
|
|
659
|
+
return function(r) {
|
|
660
|
+
if (r) {
|
|
661
|
+
const e = ie(r).tz(this.positionGmt);
|
|
662
662
|
return `${e == null ? void 0 : e.format("DD")}`;
|
|
663
663
|
}
|
|
664
664
|
return "-";
|
|
665
665
|
};
|
|
666
666
|
},
|
|
667
667
|
computeMMMDDLT() {
|
|
668
|
-
return function(
|
|
669
|
-
if (
|
|
670
|
-
const e =
|
|
668
|
+
return function(r) {
|
|
669
|
+
if (r) {
|
|
670
|
+
const e = ie(r).tz(this.positionGmt);
|
|
671
671
|
return `${e == null ? void 0 : e.format("MMM-DD")}`;
|
|
672
672
|
}
|
|
673
673
|
return "-";
|
|
674
674
|
};
|
|
675
675
|
},
|
|
676
676
|
computeMMMDDHHmmLT() {
|
|
677
|
-
return function(
|
|
678
|
-
if (
|
|
679
|
-
const e =
|
|
677
|
+
return function(r) {
|
|
678
|
+
if (r) {
|
|
679
|
+
const e = ie(r).tz(this.positionGmt);
|
|
680
680
|
return `${e == null ? void 0 : e.format("MMM-DD HHmm")}`;
|
|
681
681
|
}
|
|
682
682
|
return "-";
|
|
683
683
|
};
|
|
684
684
|
},
|
|
685
685
|
computeLat() {
|
|
686
|
-
return function(
|
|
687
|
-
return Ee.lat2pretty(
|
|
686
|
+
return function(r, e = 4) {
|
|
687
|
+
return Ee.lat2pretty(r, e).pretty;
|
|
688
688
|
};
|
|
689
689
|
},
|
|
690
690
|
computeLng() {
|
|
691
|
-
return function(
|
|
692
|
-
return Ee.lng2pretty(
|
|
691
|
+
return function(r, e = 4) {
|
|
692
|
+
return Ee.lng2pretty(r, e).pretty;
|
|
693
693
|
};
|
|
694
694
|
},
|
|
695
695
|
roundPrecision() {
|
|
696
|
-
return function(
|
|
697
|
-
return isNaN(
|
|
696
|
+
return function(r, e = 4) {
|
|
697
|
+
return isNaN(r) ? "-" : Ee.roundPrecision(r, e);
|
|
698
698
|
};
|
|
699
699
|
}
|
|
700
700
|
},
|
|
701
701
|
watch: {
|
|
702
702
|
point: {
|
|
703
703
|
handler() {
|
|
704
|
-
var
|
|
704
|
+
var r, e, s;
|
|
705
705
|
this.point && (this.position = {
|
|
706
|
-
|
|
707
|
-
|
|
706
|
+
portId: (r = this.point) == null ? void 0 : r.portId,
|
|
707
|
+
lat: (e = this.point) == null ? void 0 : e.lat,
|
|
708
|
+
lng: (s = this.point) == null ? void 0 : s.lng,
|
|
708
709
|
name: this.computeLat(this.point.lat) + "," + this.computeLng(this.point.lng)
|
|
709
710
|
}, this.handleFetchMeteo());
|
|
710
711
|
},
|
|
@@ -726,39 +727,39 @@ const Se = (A, e) => {
|
|
|
726
727
|
},
|
|
727
728
|
mounted() {
|
|
728
729
|
this.$nextTick(() => {
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
730
|
+
document.addEventListener("click", (r) => {
|
|
731
|
+
const e = document.getElementById("seasonal-title");
|
|
732
|
+
!(e != null && e.contains(r.target)) && this.seasonalData && (this.seasonalData.showMonths = !1);
|
|
732
733
|
});
|
|
733
734
|
});
|
|
734
735
|
},
|
|
735
736
|
methods: {
|
|
736
|
-
async fetchSuggestPosition(
|
|
737
|
-
var
|
|
738
|
-
const e =
|
|
737
|
+
async fetchSuggestPosition(r) {
|
|
738
|
+
var h;
|
|
739
|
+
const e = r.replaceAll(",", ",");
|
|
739
740
|
if (!e)
|
|
740
741
|
return this.positionList = this.collectList, !1;
|
|
741
|
-
const
|
|
742
|
+
const s = await Qe.get(`https://cbe.idmwx.com/api/arc/ports/suggest?n=${e}`, {
|
|
742
743
|
headers: {
|
|
743
744
|
Authorization: this.token
|
|
744
745
|
}
|
|
745
746
|
});
|
|
746
|
-
(
|
|
747
|
+
(s == null ? void 0 : s.data.code) === 0 && (this.positionList = (h = s == null ? void 0 : s.data.data) == null ? void 0 : h.map((a) => (a.name = a.id ? a.name : this.computeLat(a.lat) + ", " + this.computeLng(a.lng), a)));
|
|
747
748
|
},
|
|
748
749
|
handleSearch() {
|
|
749
|
-
var
|
|
750
|
+
var r, e, s;
|
|
750
751
|
this.searchName && (this.handleClearHoursTable(), this.position = {
|
|
751
|
-
portId: (
|
|
752
|
-
lat: (e = this.positionList.find((
|
|
753
|
-
lng: (
|
|
752
|
+
portId: (r = this.positionList.find((h) => h.name === this.searchName)) == null ? void 0 : r.id,
|
|
753
|
+
lat: (e = this.positionList.find((h) => h.name === this.searchName)) == null ? void 0 : e.lat,
|
|
754
|
+
lng: (s = this.positionList.find((h) => h.name === this.searchName)) == null ? void 0 : s.lng,
|
|
754
755
|
name: this.searchName
|
|
755
756
|
}, this.$emit("url", this.position), this.handleFetchMeteo());
|
|
756
757
|
},
|
|
757
758
|
handleCollect() {
|
|
758
|
-
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((
|
|
759
|
+
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((r) => r.name !== this.position.name), localStorage.setItem("idmCollectList", JSON.stringify(this.collectList));
|
|
759
760
|
},
|
|
760
761
|
async handleFetchMeteo() {
|
|
761
|
-
var
|
|
762
|
+
var s;
|
|
762
763
|
if (!this.token)
|
|
763
764
|
return !1;
|
|
764
765
|
this.loading = {
|
|
@@ -769,32 +770,32 @@ const Se = (A, e) => {
|
|
|
769
770
|
hourlyTable: !0,
|
|
770
771
|
seasonalEchart: !0
|
|
771
772
|
};
|
|
772
|
-
const
|
|
773
|
+
const r = {
|
|
773
774
|
lat: this.position.lat,
|
|
774
775
|
lng: this.position.lng,
|
|
775
776
|
forecastDays: 15,
|
|
776
777
|
selfHosted: !1
|
|
777
|
-
}, e = await Qe.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast",
|
|
778
|
+
}, e = await Qe.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast", r, {
|
|
778
779
|
headers: {
|
|
779
780
|
Authorization: this.token
|
|
780
781
|
}
|
|
781
782
|
});
|
|
782
783
|
(e == null ? void 0 : e.data.code) === 0 && (this.meteoData = {
|
|
783
784
|
...e == null ? void 0 : e.data.data
|
|
784
|
-
}, this.etime = (
|
|
785
|
+
}, this.etime = (s = e == null ? void 0 : e.data) == null ? void 0 : s.etime), this.handleRender();
|
|
785
786
|
},
|
|
786
787
|
handleRender() {
|
|
787
788
|
this.initInfo(), this.menuIndex === 1 ? (this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData()) : this.menuIndex === 2 ? (this.handleMeteogramData14(), this.initDaysTableData(), this.initHourlyTableData()) : this.handleFetchSeasonalData();
|
|
788
789
|
},
|
|
789
790
|
initInfo() {
|
|
790
|
-
var
|
|
791
|
-
this.positionGmt = (e = (
|
|
792
|
-
var
|
|
793
|
-
return
|
|
791
|
+
var r, e, s, h;
|
|
792
|
+
this.positionGmt = (e = (r = this.meteoData.weather) == null ? void 0 : r[0]) == null ? void 0 : e.timezone, this.positionOffset = (h = (s = this.meteoData.weather) == null ? void 0 : s[0]) == null ? void 0 : h.offset, this.issuedDate = we(this.etime).utc().format("MMM-DD/HHmm[Z], YYYY"), this.activeIndex = ie(this.etime).tz(this.positionGmt).hour(), this.pickedDate = ie(this.etime).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((a) => {
|
|
793
|
+
var B;
|
|
794
|
+
return a.name === ((B = this.position) == null ? void 0 : B.name);
|
|
794
795
|
});
|
|
795
796
|
},
|
|
796
797
|
initWeatherEchart() {
|
|
797
|
-
const
|
|
798
|
+
const r = [], e = [], s = [], h = [], a = [], B = [], S = [], q = [], H = [], k = [], F = {}, N = "data:image/svg+xml;base64," + window.btoa(
|
|
798
799
|
unescape(
|
|
799
800
|
encodeURIComponent(
|
|
800
801
|
'<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>'
|
|
@@ -808,28 +809,28 @@ const Se = (A, e) => {
|
|
|
808
809
|
)
|
|
809
810
|
), M = new Image(64, 64);
|
|
810
811
|
M.src = _, M.onload = () => {
|
|
811
|
-
var
|
|
812
|
+
var Y, j, K, U, X, W, R, J, c, G, z, P, L;
|
|
812
813
|
this.loading.weatherEchart = !1;
|
|
813
|
-
for (let
|
|
814
|
-
const
|
|
815
|
-
|
|
816
|
-
const
|
|
817
|
-
|
|
818
|
-
const
|
|
819
|
-
|
|
820
|
-
const
|
|
821
|
-
|
|
822
|
-
const
|
|
823
|
-
|
|
814
|
+
for (let p = 0; p < 7; p++) {
|
|
815
|
+
const b = we(this.pickedDate).clone().add(p, "d");
|
|
816
|
+
r.push(ie(b).tz(this.positionGmt).format("yyyy-MM-DD")), e.push(this.computeMMMDDLT(b)), s.push(p === 0 ? "Today" : this.computeWeekLT(b));
|
|
817
|
+
const D = ((Y = ye.pickDaily(this.meteoData, b)) == null ? void 0 : Y[0]) || {};
|
|
818
|
+
h.push(this.roundPrecision((K = (j = D.weather) == null ? void 0 : j.temp) == null ? void 0 : K.min, 0)), a.push(this.roundPrecision((X = (U = D.weather) == null ? void 0 : U.temp) == null ? void 0 : X.max, 0)), q.push(this.roundPrecision((R = (W = D.weather) == null ? void 0 : W.wind) == null ? void 0 : R.kts, 1) ?? "- kts"), k.push(this.roundPrecision((c = (J = D.weather) == null ? void 0 : J.precip) == null ? void 0 : c.sum, 0) ?? "- mm"), B.push({ symbol: "image://" + ((G = D.weather) == null ? void 0 : G.url) }), S.push((z = D.weather) == null ? void 0 : z.name), H.push((L = (P = D.weather) == null ? void 0 : P.wind) == null ? void 0 : L.bearing);
|
|
819
|
+
const C = document.createElement("canvas"), l = C.getContext("2d");
|
|
820
|
+
C.width = M.width, C.height = M.height;
|
|
821
|
+
const A = H[p] * (Math.PI / 180);
|
|
822
|
+
l.translate(C.width / 2, C.height / 2), l.rotate(A), l.translate(-M.width / 2, -M.height / 2), l.drawImage(M, 0, 0, 64, 64);
|
|
823
|
+
const ae = C.toDataURL();
|
|
824
|
+
F[`WindIcon${p}`] = {
|
|
824
825
|
height: 12,
|
|
825
826
|
width: 12,
|
|
826
827
|
align: "left",
|
|
827
828
|
backgroundColor: {
|
|
828
|
-
image:
|
|
829
|
+
image: ae
|
|
829
830
|
}
|
|
830
831
|
};
|
|
831
832
|
}
|
|
832
|
-
const
|
|
833
|
+
const O = Math.max(...a.filter((p) => typeof p == "number" && !isNaN(p))) - Math.min(...h.filter((p) => typeof p == "number" && !isNaN(p))), V = Math.min(...h.filter((p) => typeof p == "number" && !isNaN(p))) - 1.5 * O, Z = Math.max(...a.filter((p) => typeof p == "number" && !isNaN(p))) + 2 * O, v = 4 + 0.5 / r.length * 92 + "%", T = {
|
|
833
834
|
grid: {
|
|
834
835
|
bottom: 0,
|
|
835
836
|
top: 0,
|
|
@@ -840,8 +841,8 @@ const Se = (A, e) => {
|
|
|
840
841
|
trigger: "item",
|
|
841
842
|
show: !0,
|
|
842
843
|
position: "right",
|
|
843
|
-
formatter: function(
|
|
844
|
-
return
|
|
844
|
+
formatter: function(p) {
|
|
845
|
+
return p.seriesName === "Weather Icon" ? S[p.dataIndex] : !1;
|
|
845
846
|
}
|
|
846
847
|
},
|
|
847
848
|
legend: {
|
|
@@ -853,13 +854,13 @@ const Se = (A, e) => {
|
|
|
853
854
|
top: "50%",
|
|
854
855
|
height: "50%",
|
|
855
856
|
type: "category",
|
|
856
|
-
data:
|
|
857
|
+
data: r,
|
|
857
858
|
show: !1
|
|
858
859
|
},
|
|
859
860
|
singleAxis: [
|
|
860
861
|
{
|
|
861
|
-
left:
|
|
862
|
-
right:
|
|
862
|
+
left: v,
|
|
863
|
+
right: v,
|
|
863
864
|
type: "category",
|
|
864
865
|
show: !1,
|
|
865
866
|
axisLine: {
|
|
@@ -879,13 +880,13 @@ const Se = (A, e) => {
|
|
|
879
880
|
// 隐藏分割线
|
|
880
881
|
},
|
|
881
882
|
boundaryGap: !1,
|
|
882
|
-
data:
|
|
883
|
+
data: r,
|
|
883
884
|
top: "7%",
|
|
884
885
|
height: "2%"
|
|
885
886
|
},
|
|
886
887
|
{
|
|
887
|
-
left:
|
|
888
|
-
right:
|
|
888
|
+
left: v,
|
|
889
|
+
right: v,
|
|
889
890
|
type: "category",
|
|
890
891
|
show: !1,
|
|
891
892
|
axisLine: {
|
|
@@ -905,13 +906,13 @@ const Se = (A, e) => {
|
|
|
905
906
|
// 隐藏分割线
|
|
906
907
|
},
|
|
907
908
|
boundaryGap: !1,
|
|
908
|
-
data:
|
|
909
|
+
data: r,
|
|
909
910
|
top: "16%",
|
|
910
911
|
height: "2%"
|
|
911
912
|
},
|
|
912
913
|
{
|
|
913
|
-
left:
|
|
914
|
-
right:
|
|
914
|
+
left: v,
|
|
915
|
+
right: v,
|
|
915
916
|
type: "category",
|
|
916
917
|
show: !1,
|
|
917
918
|
axisLine: {
|
|
@@ -931,13 +932,13 @@ const Se = (A, e) => {
|
|
|
931
932
|
// 隐藏分割线
|
|
932
933
|
},
|
|
933
934
|
boundaryGap: !1,
|
|
934
|
-
data:
|
|
935
|
+
data: r,
|
|
935
936
|
top: "27%",
|
|
936
937
|
height: "2%"
|
|
937
938
|
},
|
|
938
939
|
{
|
|
939
|
-
left:
|
|
940
|
-
right:
|
|
940
|
+
left: v,
|
|
941
|
+
right: v,
|
|
941
942
|
type: "category",
|
|
942
943
|
show: !1,
|
|
943
944
|
axisLine: {
|
|
@@ -957,13 +958,13 @@ const Se = (A, e) => {
|
|
|
957
958
|
// 隐藏分割线
|
|
958
959
|
},
|
|
959
960
|
boundaryGap: !1,
|
|
960
|
-
data:
|
|
961
|
+
data: r,
|
|
961
962
|
top: "84%",
|
|
962
963
|
height: "2%"
|
|
963
964
|
},
|
|
964
965
|
{
|
|
965
|
-
left:
|
|
966
|
-
right:
|
|
966
|
+
left: v,
|
|
967
|
+
right: v,
|
|
967
968
|
type: "category",
|
|
968
969
|
show: !1,
|
|
969
970
|
axisLine: {
|
|
@@ -983,7 +984,7 @@ const Se = (A, e) => {
|
|
|
983
984
|
// 隐藏分割线
|
|
984
985
|
},
|
|
985
986
|
boundaryGap: !1,
|
|
986
|
-
data:
|
|
987
|
+
data: r,
|
|
987
988
|
top: "93%",
|
|
988
989
|
height: "2%"
|
|
989
990
|
}
|
|
@@ -1003,7 +1004,7 @@ const Se = (A, e) => {
|
|
|
1003
1004
|
singleAxisIndex: 0,
|
|
1004
1005
|
coordinateSystem: "singleAxis",
|
|
1005
1006
|
type: "scatter",
|
|
1006
|
-
data:
|
|
1007
|
+
data: s,
|
|
1007
1008
|
label: {
|
|
1008
1009
|
show: !0,
|
|
1009
1010
|
color: "rgba(0,0,0,0.7)",
|
|
@@ -1029,13 +1030,13 @@ const Se = (A, e) => {
|
|
|
1029
1030
|
singleAxisIndex: 2,
|
|
1030
1031
|
coordinateSystem: "singleAxis",
|
|
1031
1032
|
type: "scatter",
|
|
1032
|
-
data:
|
|
1033
|
+
data: B,
|
|
1033
1034
|
symbolSize: 44
|
|
1034
1035
|
},
|
|
1035
1036
|
{
|
|
1036
1037
|
name: "温度(℃)",
|
|
1037
1038
|
type: "line",
|
|
1038
|
-
data:
|
|
1039
|
+
data: h,
|
|
1039
1040
|
smooth: !0,
|
|
1040
1041
|
itemStyle: {
|
|
1041
1042
|
color: "#FF9500"
|
|
@@ -1057,7 +1058,7 @@ const Se = (A, e) => {
|
|
|
1057
1058
|
x: "4%"
|
|
1058
1059
|
},
|
|
1059
1060
|
{
|
|
1060
|
-
x: 4 + 1 /
|
|
1061
|
+
x: 4 + 1 / r.length * 92 + "%"
|
|
1061
1062
|
}
|
|
1062
1063
|
]
|
|
1063
1064
|
]
|
|
@@ -1066,7 +1067,7 @@ const Se = (A, e) => {
|
|
|
1066
1067
|
{
|
|
1067
1068
|
name: "温度(℃)",
|
|
1068
1069
|
type: "line",
|
|
1069
|
-
data:
|
|
1070
|
+
data: a,
|
|
1070
1071
|
smooth: !0,
|
|
1071
1072
|
itemStyle: {
|
|
1072
1073
|
color: "#d88102"
|
|
@@ -1089,14 +1090,14 @@ const Se = (A, e) => {
|
|
|
1089
1090
|
color: "rgba(0,0,0,0.7)",
|
|
1090
1091
|
// formatter: '{c}'
|
|
1091
1092
|
rich: {
|
|
1092
|
-
...
|
|
1093
|
+
...F,
|
|
1093
1094
|
title: {
|
|
1094
1095
|
align: "center",
|
|
1095
1096
|
vertical: "center"
|
|
1096
1097
|
}
|
|
1097
1098
|
},
|
|
1098
|
-
formatter: function(
|
|
1099
|
-
return `{WindIcon${
|
|
1099
|
+
formatter: function(p) {
|
|
1100
|
+
return `{WindIcon${p.dataIndex}|}{title|${p.value}} kts`;
|
|
1100
1101
|
}
|
|
1101
1102
|
},
|
|
1102
1103
|
symbolSize: 0
|
|
@@ -1116,7 +1117,7 @@ const Se = (A, e) => {
|
|
|
1116
1117
|
width: 16,
|
|
1117
1118
|
align: "left",
|
|
1118
1119
|
backgroundColor: {
|
|
1119
|
-
image:
|
|
1120
|
+
image: N
|
|
1120
1121
|
}
|
|
1121
1122
|
},
|
|
1122
1123
|
title: {
|
|
@@ -1124,8 +1125,8 @@ const Se = (A, e) => {
|
|
|
1124
1125
|
vertical: "center"
|
|
1125
1126
|
}
|
|
1126
1127
|
},
|
|
1127
|
-
formatter: function(
|
|
1128
|
-
return `{dIcon|}{title|${
|
|
1128
|
+
formatter: function(p) {
|
|
1129
|
+
return `{dIcon|}{title|${p.value}} mm`;
|
|
1129
1130
|
}
|
|
1130
1131
|
},
|
|
1131
1132
|
symbolSize: 0
|
|
@@ -1133,24 +1134,24 @@ const Se = (A, e) => {
|
|
|
1133
1134
|
]
|
|
1134
1135
|
};
|
|
1135
1136
|
this.$nextTick(() => {
|
|
1136
|
-
const
|
|
1137
|
-
|
|
1138
|
-
const
|
|
1139
|
-
this.pickedDate =
|
|
1137
|
+
const p = pe.init(document.getElementById("weather-chart"));
|
|
1138
|
+
p.setOption(T), p.on("click", (b) => {
|
|
1139
|
+
const D = b.dataIndex, C = r[D].split("-");
|
|
1140
|
+
this.pickedDate = ie().tz(this.positionGmt).set({ year: C[0], month: Number(C[1] - 1), date: Number(C[2]), hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.pickedWeek = D === 0 ? "Today" : this.computeWeekLT(this.pickedDate), this.activeIndex = D === 0 ? ie(this.etime).tz(this.positionGmt).hour() : void 0, this.initHoursTableData(), T.series[3].markArea = {
|
|
1140
1141
|
itemStyle: {
|
|
1141
1142
|
color: "rgba(64,159,255,0.25)"
|
|
1142
1143
|
},
|
|
1143
1144
|
data: [
|
|
1144
1145
|
[
|
|
1145
1146
|
{
|
|
1146
|
-
x: 4 +
|
|
1147
|
+
x: 4 + D / r.length * 92 + "%"
|
|
1147
1148
|
},
|
|
1148
1149
|
{
|
|
1149
|
-
x: 4 + (
|
|
1150
|
+
x: 4 + (D + 1) / r.length * 92 + "%"
|
|
1150
1151
|
}
|
|
1151
1152
|
]
|
|
1152
1153
|
]
|
|
1153
|
-
},
|
|
1154
|
+
}, p.setOption(T);
|
|
1154
1155
|
});
|
|
1155
1156
|
});
|
|
1156
1157
|
};
|
|
@@ -1174,31 +1175,31 @@ const Se = (A, e) => {
|
|
|
1174
1175
|
offset: void 0
|
|
1175
1176
|
};
|
|
1176
1177
|
let e = { start: void 0, end: void 0 };
|
|
1177
|
-
const
|
|
1178
|
+
const s = "data:image/svg+xml;base64," + window.btoa(
|
|
1178
1179
|
unescape(
|
|
1179
1180
|
encodeURIComponent(
|
|
1180
1181
|
'<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="#60c43e" p-id="10798"></path></svg>'
|
|
1181
1182
|
)
|
|
1182
1183
|
)
|
|
1183
|
-
),
|
|
1184
|
-
|
|
1185
|
-
var
|
|
1184
|
+
), h = new Image(64, 64);
|
|
1185
|
+
h.src = s, h.onload = () => {
|
|
1186
|
+
var B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E, A, ae, d, de, ge, ce;
|
|
1186
1187
|
this.loading.meteogramEchart = !1;
|
|
1187
|
-
const
|
|
1188
|
+
const a = ie(this.etime).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
1188
1189
|
for (let y = 0; y < 7 * 24; y++) {
|
|
1189
|
-
const re = we(
|
|
1190
|
-
(
|
|
1191
|
-
const
|
|
1192
|
-
if (y % 12 === 0 && y % 24 !== 0 ? (q = this.meteogramData) == null || q.xDates.push(
|
|
1193
|
-
const
|
|
1194
|
-
|
|
1195
|
-
const
|
|
1196
|
-
|
|
1197
|
-
const le =
|
|
1190
|
+
const re = we(a).clone().add(y, "h");
|
|
1191
|
+
(B = this.meteogramData) == null || B.dates.push(re);
|
|
1192
|
+
const u = ((S = ye.pickHourly(this.meteoData, re)) == null ? void 0 : S[0]) || {};
|
|
1193
|
+
if (y % 12 === 0 && y % 24 !== 0 ? (q = this.meteogramData) == null || q.xDates.push(ie(re).tz(this.positionGmt).format("MMM-DD")) : (H = this.meteogramData) == null || H.xDates.push(""), y % 3 === 0 ? (k = this.meteogramData) == null || k.hours.push(this.computeHourLT(re)) : (F = this.meteogramData) == null || F.hours.push(""), (_ = this.meteogramData) == null || _.temperatures.push(this.roundPrecision((N = u == null ? void 0 : u.weather) == null ? void 0 : N.temp, 0)), (V = this.meteogramData) == null || V.precip.push(this.roundPrecision((O = (M = u == null ? void 0 : u.weather) == null ? void 0 : M.precip) == null ? void 0 : O.sum, 0)), (T = this.meteogramData) == null || T.windspeed.push(this.roundPrecision((v = (Z = u.weather) == null ? void 0 : Z.wind) == null ? void 0 : v.kts, 1)), (K = this.meteogramData) == null || K.windGusts.push(this.roundPrecision((j = (Y = u == null ? void 0 : u.weather) == null ? void 0 : Y.wind) == null ? void 0 : j.gusts, 1)), (W = this.meteogramData) == null || W.sigWaveHeight.push(this.roundPrecision((X = (U = u == null ? void 0 : u.wave) == null ? void 0 : U.sig) == null ? void 0 : X.height)), (c = this.meteogramData) == null || c.swellHeight.push(this.roundPrecision((J = (R = u == null ? void 0 : u.wave) == null ? void 0 : R.swell) == null ? void 0 : J.height)), y % 6 === 0 ? ((z = this.meteogramData) == null || z.weatherIcons.push({ symbol: "image://" + ((G = u.weather) == null ? void 0 : G.url), symbolSize: 30 }), (L = this.meteogramData) == null || L.weatherNames.push((P = u.weather) == null ? void 0 : P.name)) : ((b = this.meteogramData) == null || b.weatherIcons.push({ symbol: "image://" + ((p = u.weather) == null ? void 0 : p.url), symbolSize: 0 }), (D = this.meteogramData) == null || D.weatherNames.push("")), y % 3 === 0 ? (E = this.meteogramData) == null || E.windDir.push((l = (C = u.weather) == null ? void 0 : C.wind) == null ? void 0 : l.bearing) : (A = this.meteogramData) == null || A.windDir.push(void 0), y % 3 === 0) {
|
|
1194
|
+
const ee = document.createElement("canvas"), te = ee.getContext("2d");
|
|
1195
|
+
ee.width = h.width, ee.height = h.height;
|
|
1196
|
+
const se = ((ae = this.meteogramData) == null ? void 0 : ae.windDir[y]) * (Math.PI / 180);
|
|
1197
|
+
te.translate(ee.width / 2, ee.height / 2), te.rotate(se), te.translate(-h.width / 2, -h.height / 2), te.drawImage(h, 0, 0, 64, 64);
|
|
1198
|
+
const le = ee.toDataURL();
|
|
1198
1199
|
this.meteogramData.windDirIcons[y] = le;
|
|
1199
1200
|
} else
|
|
1200
1201
|
this.meteogramData.windDirIcons[y] = void 0;
|
|
1201
|
-
(d =
|
|
1202
|
+
(d = u == null ? void 0 : u.weather) != null && d.isDay ? e.end === void 0 && e.start >= 0 && (e.end = y) : e.start === void 0 && (e.start = y), (e.start >= 0 && e.end >= 0 || e.start >= 0 && y === 7 * 24 - 1) && ((de = this.meteogramData) == null || de.markarea.push(
|
|
1202
1203
|
[
|
|
1203
1204
|
{
|
|
1204
1205
|
x: 4 + e.start / (7 * 24) * 92 + "%"
|
|
@@ -1233,31 +1234,31 @@ const Se = (A, e) => {
|
|
|
1233
1234
|
offset: void 0
|
|
1234
1235
|
};
|
|
1235
1236
|
let e = { start: void 0, end: void 0 };
|
|
1236
|
-
const
|
|
1237
|
+
const s = "data:image/svg+xml;base64," + window.btoa(
|
|
1237
1238
|
unescape(
|
|
1238
1239
|
encodeURIComponent(
|
|
1239
1240
|
'<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="#60c43e" p-id="10798"></path></svg>'
|
|
1240
1241
|
)
|
|
1241
1242
|
)
|
|
1242
|
-
),
|
|
1243
|
-
|
|
1244
|
-
var
|
|
1243
|
+
), h = new Image(64, 64);
|
|
1244
|
+
h.src = s, h.onload = () => {
|
|
1245
|
+
var B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E, A, ae, d, de, ge, ce;
|
|
1245
1246
|
this.loading.meteogramEchart = !1;
|
|
1246
|
-
const
|
|
1247
|
+
const a = ie(this.etime).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
1247
1248
|
for (let y = 0; y < 14 * 24; y++) {
|
|
1248
|
-
const re = we(
|
|
1249
|
-
(
|
|
1250
|
-
const
|
|
1251
|
-
if ((H = this.meteogramData) == null || H.temperatures.push(this.roundPrecision((q =
|
|
1252
|
-
const
|
|
1253
|
-
|
|
1254
|
-
const
|
|
1255
|
-
|
|
1256
|
-
const le =
|
|
1249
|
+
const re = we(a).clone().add(y, "h");
|
|
1250
|
+
(B = this.meteogramData) == null || B.dates.push(re);
|
|
1251
|
+
const u = ((S = ye.pickHourly(this.meteoData, re)) == null ? void 0 : S[0]) || {};
|
|
1252
|
+
if ((H = this.meteogramData) == null || H.temperatures.push(this.roundPrecision((q = u == null ? void 0 : u.weather) == null ? void 0 : q.temp, 0)), (N = this.meteogramData) == null || N.precip.push(this.roundPrecision((F = (k = u == null ? void 0 : u.weather) == null ? void 0 : k.precip) == null ? void 0 : F.sum, 0)), (O = this.meteogramData) == null || O.windspeed.push(this.roundPrecision((M = (_ = u.weather) == null ? void 0 : _.wind) == null ? void 0 : M.kts, 1)), (v = this.meteogramData) == null || v.windGusts.push(this.roundPrecision((Z = (V = u == null ? void 0 : u.weather) == null ? void 0 : V.wind) == null ? void 0 : Z.gusts, 1)), (j = this.meteogramData) == null || j.sigWaveHeight.push(this.roundPrecision((Y = (T = u == null ? void 0 : u.wave) == null ? void 0 : T.sig) == null ? void 0 : Y.height)), (X = this.meteogramData) == null || X.swellHeight.push(this.roundPrecision((U = (K = u == null ? void 0 : u.wave) == null ? void 0 : K.swell) == null ? void 0 : U.height)), y % 12 === 0 && y % 24 !== 0 ? (W = this.meteogramData) == null || W.xDates.push(ie(re).tz(this.positionGmt).format("MMM-DD")) : (R = this.meteogramData) == null || R.xDates.push(""), y % 6 === 0 ? (J = this.meteogramData) == null || J.hours.push(this.computeHourLT(re)) : (c = this.meteogramData) == null || c.hours.push(""), y % 12 === 0 ? ((z = this.meteogramData) == null || z.weatherIcons.push({ symbol: "image://" + ((G = u.weather) == null ? void 0 : G.url), symbolSize: 30 }), (L = this.meteogramData) == null || L.weatherNames.push((P = u.weather) == null ? void 0 : P.name)) : ((b = this.meteogramData) == null || b.weatherIcons.push({ symbol: "image://" + ((p = u.weather) == null ? void 0 : p.url), symbolSize: 0 }), (D = this.meteogramData) == null || D.weatherNames.push("")), y % 6 === 0 ? (E = this.meteogramData) == null || E.windDir.push((l = (C = u.weather) == null ? void 0 : C.wind) == null ? void 0 : l.bearing) : (A = this.meteogramData) == null || A.windDir.push(void 0), y % 6 === 0) {
|
|
1253
|
+
const ee = document.createElement("canvas"), te = ee.getContext("2d");
|
|
1254
|
+
ee.width = h.width, ee.height = h.height;
|
|
1255
|
+
const se = ((ae = this.meteogramData) == null ? void 0 : ae.windDir[y]) * (Math.PI / 180);
|
|
1256
|
+
te.translate(ee.width / 2, ee.height / 2), te.rotate(se), te.translate(-h.width / 2, -h.height / 2), te.drawImage(h, 0, 0, 64, 64);
|
|
1257
|
+
const le = ee.toDataURL();
|
|
1257
1258
|
this.meteogramData.windDirIcons[y] = le;
|
|
1258
1259
|
} else
|
|
1259
1260
|
this.meteogramData.windDirIcons[y] = void 0;
|
|
1260
|
-
(d =
|
|
1261
|
+
(d = u == null ? void 0 : u.weather) != null && d.isDay ? e.end === void 0 && e.start >= 0 && (e.end = y) : e.start === void 0 && (e.start = y), (e.start >= 0 && e.end >= 0 || e.start >= 0 && y === 14 * 24 - 1) && ((de = this.meteogramData) == null || de.markarea.push(
|
|
1261
1262
|
[
|
|
1262
1263
|
{
|
|
1263
1264
|
x: 4 + e.start / (14 * 24) * 92 + "%"
|
|
@@ -1274,8 +1275,8 @@ const Se = (A, e) => {
|
|
|
1274
1275
|
};
|
|
1275
1276
|
},
|
|
1276
1277
|
initMeteogramEchart() {
|
|
1277
|
-
var
|
|
1278
|
-
const
|
|
1278
|
+
var N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E, A, ae, d, de, ge, ce, y, re, u, ee, te;
|
|
1279
|
+
const r = pe.init(document.getElementById("weather-icons")), e = {
|
|
1279
1280
|
grid: {
|
|
1280
1281
|
show: !0,
|
|
1281
1282
|
bottom: "0%",
|
|
@@ -1292,8 +1293,8 @@ const Se = (A, e) => {
|
|
|
1292
1293
|
show: !0,
|
|
1293
1294
|
position: "right",
|
|
1294
1295
|
formatter: (w) => {
|
|
1295
|
-
const
|
|
1296
|
-
return w.seriesName === "Weather Icons" ? `<strong>${this.meteogramData.weatherNames[
|
|
1296
|
+
const se = w == null ? void 0 : w.dataIndex;
|
|
1297
|
+
return w.seriesName === "Weather Icons" ? `<strong>${this.meteogramData.weatherNames[se]}</strong>` : !1;
|
|
1297
1298
|
}
|
|
1298
1299
|
},
|
|
1299
1300
|
legend: {
|
|
@@ -1306,7 +1307,7 @@ const Se = (A, e) => {
|
|
|
1306
1307
|
top: "50%",
|
|
1307
1308
|
height: "50%",
|
|
1308
1309
|
type: "category",
|
|
1309
|
-
data: (
|
|
1310
|
+
data: (N = this.meteogramData) == null ? void 0 : N.dates,
|
|
1310
1311
|
show: !1
|
|
1311
1312
|
},
|
|
1312
1313
|
singleAxis: [
|
|
@@ -1332,7 +1333,7 @@ const Se = (A, e) => {
|
|
|
1332
1333
|
// 隐藏分割线
|
|
1333
1334
|
},
|
|
1334
1335
|
boundaryGap: !1,
|
|
1335
|
-
data: (
|
|
1336
|
+
data: (O = this.meteogramData) == null ? void 0 : O.dates,
|
|
1336
1337
|
top: "50%",
|
|
1337
1338
|
height: "2%"
|
|
1338
1339
|
}
|
|
@@ -1348,8 +1349,8 @@ const Se = (A, e) => {
|
|
|
1348
1349
|
}
|
|
1349
1350
|
]
|
|
1350
1351
|
};
|
|
1351
|
-
|
|
1352
|
-
let
|
|
1352
|
+
r.setOption(e);
|
|
1353
|
+
let s = Math.max(...this.meteogramData.temperatures.filter((w) => typeof w == "number" && !isNaN(w))), a = Math.min(...this.meteogramData.temperatures.filter((w) => typeof w == "number" && !isNaN(w))) > 0 ? 0 : Math.min(...this.meteogramData.temperatures.filter((w) => typeof w == "number" && !isNaN(w))), B = Math.ceil(s / 5) * 5, S = Math.ceil((B - a) / 5);
|
|
1353
1354
|
const q = pe.init(document.getElementById("weather-condition")), H = {
|
|
1354
1355
|
title: {
|
|
1355
1356
|
text: "Weather conditions",
|
|
@@ -1376,11 +1377,11 @@ const Se = (A, e) => {
|
|
|
1376
1377
|
show: !0,
|
|
1377
1378
|
position: "right",
|
|
1378
1379
|
formatter: (w) => {
|
|
1379
|
-
var le, he, i,
|
|
1380
|
-
const
|
|
1381
|
-
return w.find((x) => x.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${
|
|
1382
|
-
<div style="display: ${(i = this.meteogramData) != null && i.weatherNames[
|
|
1383
|
-
<span>Weather : </span><strong>${(
|
|
1380
|
+
var le, he, i, m, f, ue;
|
|
1381
|
+
const se = (le = w == null ? void 0 : w[0]) == null ? void 0 : le.dataIndex;
|
|
1382
|
+
return w.find((x) => x.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${ie((he = this.meteogramData) == null ? void 0 : he.dates[se]).tz(this.positionGmt).format("MMM-DD/HHmm[LT]")}</strong></div>
|
|
1383
|
+
<div style="display: ${(i = this.meteogramData) != null && i.weatherNames[se] ? "block" : "none"}; font-size: 13px;">
|
|
1384
|
+
<span>Weather : </span><strong>${(m = this.meteogramData) == null ? void 0 : m.weatherNames[se]}</strong>
|
|
1384
1385
|
</div>
|
|
1385
1386
|
<div style="font-size: 13px;">
|
|
1386
1387
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #FF9500;}"></span>
|
|
@@ -1425,8 +1426,8 @@ const Se = (A, e) => {
|
|
|
1425
1426
|
},
|
|
1426
1427
|
singleAxis: [
|
|
1427
1428
|
{
|
|
1428
|
-
left: (
|
|
1429
|
-
right: (
|
|
1429
|
+
left: (v = this.meteogramData) == null ? void 0 : v.offset,
|
|
1430
|
+
right: (T = this.meteogramData) == null ? void 0 : T.offset,
|
|
1430
1431
|
type: "category",
|
|
1431
1432
|
show: !1,
|
|
1432
1433
|
axisLine: {
|
|
@@ -1446,13 +1447,13 @@ const Se = (A, e) => {
|
|
|
1446
1447
|
// 隐藏分割线
|
|
1447
1448
|
},
|
|
1448
1449
|
boundaryGap: !1,
|
|
1449
|
-
data: (
|
|
1450
|
+
data: (Y = this.meteogramData) == null ? void 0 : Y.dates,
|
|
1450
1451
|
top: "17%",
|
|
1451
1452
|
height: "2%"
|
|
1452
1453
|
},
|
|
1453
1454
|
{
|
|
1454
|
-
left: (
|
|
1455
|
-
right: (
|
|
1455
|
+
left: (j = this.meteogramData) == null ? void 0 : j.offset,
|
|
1456
|
+
right: (K = this.meteogramData) == null ? void 0 : K.offset,
|
|
1456
1457
|
type: "category",
|
|
1457
1458
|
show: !1,
|
|
1458
1459
|
axisLine: {
|
|
@@ -1472,13 +1473,13 @@ const Se = (A, e) => {
|
|
|
1472
1473
|
// 隐藏分割线
|
|
1473
1474
|
},
|
|
1474
1475
|
boundaryGap: !1,
|
|
1475
|
-
data: (
|
|
1476
|
+
data: (U = this.meteogramData) == null ? void 0 : U.dates,
|
|
1476
1477
|
top: "27%",
|
|
1477
1478
|
height: "2%"
|
|
1478
1479
|
},
|
|
1479
1480
|
{
|
|
1480
|
-
left: (
|
|
1481
|
-
right: (
|
|
1481
|
+
left: (X = this.meteogramData) == null ? void 0 : X.offset,
|
|
1482
|
+
right: (W = this.meteogramData) == null ? void 0 : W.offset,
|
|
1482
1483
|
type: "category",
|
|
1483
1484
|
show: !1,
|
|
1484
1485
|
axisLine: {
|
|
@@ -1498,13 +1499,13 @@ const Se = (A, e) => {
|
|
|
1498
1499
|
// 隐藏分割线
|
|
1499
1500
|
},
|
|
1500
1501
|
boundaryGap: !1,
|
|
1501
|
-
data: (
|
|
1502
|
+
data: (R = this.meteogramData) == null ? void 0 : R.dates,
|
|
1502
1503
|
top: "84%",
|
|
1503
1504
|
height: "2%"
|
|
1504
1505
|
},
|
|
1505
1506
|
{
|
|
1506
|
-
left: (
|
|
1507
|
-
right: (
|
|
1507
|
+
left: (J = this.meteogramData) == null ? void 0 : J.offset,
|
|
1508
|
+
right: (c = this.meteogramData) == null ? void 0 : c.offset,
|
|
1508
1509
|
type: "category",
|
|
1509
1510
|
show: !1,
|
|
1510
1511
|
axisLine: {
|
|
@@ -1524,7 +1525,7 @@ const Se = (A, e) => {
|
|
|
1524
1525
|
// 隐藏分割线
|
|
1525
1526
|
},
|
|
1526
1527
|
boundaryGap: !1,
|
|
1527
|
-
data: (
|
|
1528
|
+
data: (G = this.meteogramData) == null ? void 0 : G.dates,
|
|
1528
1529
|
top: "92%",
|
|
1529
1530
|
height: "2%"
|
|
1530
1531
|
}
|
|
@@ -1534,9 +1535,9 @@ const Se = (A, e) => {
|
|
|
1534
1535
|
type: "value",
|
|
1535
1536
|
name: "Temperature ( ℃ ) ",
|
|
1536
1537
|
show: !0,
|
|
1537
|
-
min:
|
|
1538
|
-
max:
|
|
1539
|
-
interval:
|
|
1538
|
+
min: a,
|
|
1539
|
+
max: B,
|
|
1540
|
+
interval: S,
|
|
1540
1541
|
splitNumber: 5,
|
|
1541
1542
|
nameRotate: 90,
|
|
1542
1543
|
nameLocation: "middle",
|
|
@@ -1571,7 +1572,7 @@ const Se = (A, e) => {
|
|
|
1571
1572
|
name: "Temperature",
|
|
1572
1573
|
type: "line",
|
|
1573
1574
|
yAxisIndex: 0,
|
|
1574
|
-
data: (
|
|
1575
|
+
data: (z = this.meteogramData) == null ? void 0 : z.temperatures,
|
|
1575
1576
|
symbol: "none",
|
|
1576
1577
|
smooth: !1,
|
|
1577
1578
|
itemStyle: {
|
|
@@ -1586,7 +1587,7 @@ const Se = (A, e) => {
|
|
|
1586
1587
|
itemStyle: {
|
|
1587
1588
|
color: "rgba(239,239,239,0.6)"
|
|
1588
1589
|
},
|
|
1589
|
-
data: (
|
|
1590
|
+
data: (P = this.meteogramData) == null ? void 0 : P.markarea,
|
|
1590
1591
|
emphasis: {
|
|
1591
1592
|
disabled: !0
|
|
1592
1593
|
}
|
|
@@ -1596,7 +1597,7 @@ const Se = (A, e) => {
|
|
|
1596
1597
|
name: "Precipitation",
|
|
1597
1598
|
type: "bar",
|
|
1598
1599
|
yAxisIndex: 1,
|
|
1599
|
-
data: (
|
|
1600
|
+
data: (L = this.meteogramData) == null ? void 0 : L.precip,
|
|
1600
1601
|
itemStyle: {
|
|
1601
1602
|
color: "#0c73a8"
|
|
1602
1603
|
},
|
|
@@ -1608,7 +1609,7 @@ const Se = (A, e) => {
|
|
|
1608
1609
|
singleAxisIndex: 2,
|
|
1609
1610
|
coordinateSystem: "singleAxis",
|
|
1610
1611
|
type: "scatter",
|
|
1611
|
-
data: (
|
|
1612
|
+
data: (p = this.meteogramData) == null ? void 0 : p.hours,
|
|
1612
1613
|
label: {
|
|
1613
1614
|
show: !0,
|
|
1614
1615
|
fontSize: 11,
|
|
@@ -1623,7 +1624,7 @@ const Se = (A, e) => {
|
|
|
1623
1624
|
singleAxisIndex: 3,
|
|
1624
1625
|
coordinateSystem: "singleAxis",
|
|
1625
1626
|
type: "scatter",
|
|
1626
|
-
data: (
|
|
1627
|
+
data: (b = this.meteogramData) == null ? void 0 : b.xDates,
|
|
1627
1628
|
label: {
|
|
1628
1629
|
show: !0,
|
|
1629
1630
|
fontSize: 13,
|
|
@@ -1637,7 +1638,7 @@ const Se = (A, e) => {
|
|
|
1637
1638
|
]
|
|
1638
1639
|
};
|
|
1639
1640
|
q.setOption(H);
|
|
1640
|
-
const k = pe.init(document.getElementById("wave-swell")),
|
|
1641
|
+
const k = pe.init(document.getElementById("wave-swell")), F = {
|
|
1641
1642
|
title: {
|
|
1642
1643
|
text: "Wave & Swell",
|
|
1643
1644
|
top: "10px",
|
|
@@ -1664,16 +1665,16 @@ const Se = (A, e) => {
|
|
|
1664
1665
|
show: !0,
|
|
1665
1666
|
position: "right",
|
|
1666
1667
|
formatter: (w) => {
|
|
1667
|
-
var le, he, i,
|
|
1668
|
-
const
|
|
1669
|
-
return w.find((x) => x.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${
|
|
1668
|
+
var le, he, i, m, f, ue;
|
|
1669
|
+
const se = (le = w == null ? void 0 : w[0]) == null ? void 0 : le.dataIndex;
|
|
1670
|
+
return w.find((x) => x.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${ie((he = this.meteogramData) == null ? void 0 : he.dates[se]).tz(this.positionGmt).format("MMM-DD/HHmm[LT]")}</strong></div>
|
|
1670
1671
|
<div style="font-size: 13px;">
|
|
1671
1672
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #60c43e;}"></span>
|
|
1672
1673
|
<span>Wind Speed : </span><strong>${(i = w[0]) == null ? void 0 : i.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
1673
1674
|
</div>
|
|
1674
1675
|
<div style="font-size: 13px;">
|
|
1675
1676
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #4ba229;}"></span>
|
|
1676
|
-
<span>Wind Gusts : </span><strong>${(
|
|
1677
|
+
<span>Wind Gusts : </span><strong>${(m = w[2]) == null ? void 0 : m.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
1677
1678
|
</div>
|
|
1678
1679
|
<div style="font-size: 13px;">
|
|
1679
1680
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #21baa3;"></span>
|
|
@@ -1713,7 +1714,7 @@ const Se = (A, e) => {
|
|
|
1713
1714
|
top: "50%",
|
|
1714
1715
|
height: "50%",
|
|
1715
1716
|
type: "category",
|
|
1716
|
-
data: (
|
|
1717
|
+
data: (D = this.meteogramData) == null ? void 0 : D.dates,
|
|
1717
1718
|
axisLabel: {
|
|
1718
1719
|
show: !1
|
|
1719
1720
|
},
|
|
@@ -1732,8 +1733,8 @@ const Se = (A, e) => {
|
|
|
1732
1733
|
},
|
|
1733
1734
|
singleAxis: [
|
|
1734
1735
|
{
|
|
1735
|
-
left: (
|
|
1736
|
-
right: (
|
|
1736
|
+
left: (C = this.meteogramData) == null ? void 0 : C.offset,
|
|
1737
|
+
right: (l = this.meteogramData) == null ? void 0 : l.offset,
|
|
1737
1738
|
type: "category",
|
|
1738
1739
|
show: !1,
|
|
1739
1740
|
axisLine: {
|
|
@@ -1753,13 +1754,13 @@ const Se = (A, e) => {
|
|
|
1753
1754
|
// 隐藏分割线
|
|
1754
1755
|
},
|
|
1755
1756
|
boundaryGap: !1,
|
|
1756
|
-
data: (
|
|
1757
|
+
data: (E = this.meteogramData) == null ? void 0 : E.dates,
|
|
1757
1758
|
top: "84%",
|
|
1758
1759
|
height: "2%"
|
|
1759
1760
|
},
|
|
1760
1761
|
{
|
|
1761
|
-
left: (
|
|
1762
|
-
right: (
|
|
1762
|
+
left: (A = this.meteogramData) == null ? void 0 : A.offset,
|
|
1763
|
+
right: (ae = this.meteogramData) == null ? void 0 : ae.offset,
|
|
1763
1764
|
type: "category",
|
|
1764
1765
|
show: !1,
|
|
1765
1766
|
axisLine: {
|
|
@@ -1875,10 +1876,10 @@ const Se = (A, e) => {
|
|
|
1875
1876
|
name: "Wind Direction",
|
|
1876
1877
|
type: "custom",
|
|
1877
1878
|
yAxisIndex: 0,
|
|
1878
|
-
renderItem: (w,
|
|
1879
|
-
var i,
|
|
1880
|
-
const le = w.dataIndex, he =
|
|
1881
|
-
return ((
|
|
1879
|
+
renderItem: (w, se) => {
|
|
1880
|
+
var i, m;
|
|
1881
|
+
const le = w.dataIndex, he = se.coord([se.value(0), se.value(1)]);
|
|
1882
|
+
return ((m = (i = this.meteogramData) == null ? void 0 : i.windDir) == null ? void 0 : m[le]) >= 0 ? {
|
|
1882
1883
|
type: "image",
|
|
1883
1884
|
position: he,
|
|
1884
1885
|
style: {
|
|
@@ -1929,7 +1930,7 @@ const Se = (A, e) => {
|
|
|
1929
1930
|
name: "Sig.Wave Height",
|
|
1930
1931
|
type: "line",
|
|
1931
1932
|
yAxisIndex: 1,
|
|
1932
|
-
data: (
|
|
1933
|
+
data: (u = this.meteogramData) == null ? void 0 : u.sigWaveHeight,
|
|
1933
1934
|
symbol: "none",
|
|
1934
1935
|
smooth: !1,
|
|
1935
1936
|
itemStyle: {
|
|
@@ -1944,7 +1945,7 @@ const Se = (A, e) => {
|
|
|
1944
1945
|
singleAxisIndex: 0,
|
|
1945
1946
|
coordinateSystem: "singleAxis",
|
|
1946
1947
|
type: "scatter",
|
|
1947
|
-
data: (
|
|
1948
|
+
data: (ee = this.meteogramData) == null ? void 0 : ee.hours,
|
|
1948
1949
|
itemStyle: {
|
|
1949
1950
|
color: "#fff"
|
|
1950
1951
|
},
|
|
@@ -1960,7 +1961,7 @@ const Se = (A, e) => {
|
|
|
1960
1961
|
singleAxisIndex: 1,
|
|
1961
1962
|
coordinateSystem: "singleAxis",
|
|
1962
1963
|
type: "scatter",
|
|
1963
|
-
data: (
|
|
1964
|
+
data: (te = this.meteogramData) == null ? void 0 : te.xDates,
|
|
1964
1965
|
itemStyle: {
|
|
1965
1966
|
color: "#fff"
|
|
1966
1967
|
},
|
|
@@ -1973,23 +1974,23 @@ const Se = (A, e) => {
|
|
|
1973
1974
|
}
|
|
1974
1975
|
]
|
|
1975
1976
|
};
|
|
1976
|
-
k.setOption(
|
|
1977
|
+
k.setOption(F), k.on("legendselectchanged", (w) => {
|
|
1977
1978
|
w.name === "Wind Speed" && (w.selected["Wind Direction"] = w.selected["Wind Speed"]);
|
|
1978
1979
|
});
|
|
1979
1980
|
},
|
|
1980
1981
|
async handleFetchSeasonalData() {
|
|
1981
|
-
var
|
|
1982
|
+
var a, B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z;
|
|
1982
1983
|
if (!this.token)
|
|
1983
1984
|
return !1;
|
|
1984
1985
|
this.loading.seasonalEchart = !0;
|
|
1985
|
-
const
|
|
1986
|
+
const r = we((a = this.currentMonth) == null ? void 0 : a.date);
|
|
1986
1987
|
let e = {
|
|
1987
1988
|
lat: this.position.lat,
|
|
1988
1989
|
lng: this.position.lng,
|
|
1989
|
-
startDate:
|
|
1990
|
-
endDate:
|
|
1990
|
+
startDate: ie().tz(this.positionGmt).set({ year: r.year(), month: r.month(), date: 1, hour: 0, minute: 0, second: 0 }).format(),
|
|
1991
|
+
endDate: ie().tz(this.positionGmt).set({ year: r.year(), month: r.month() + 1, date: 1, hour: 0, minute: 0, second: 0 }).format(),
|
|
1991
1992
|
pastYear: 1
|
|
1992
|
-
},
|
|
1993
|
+
}, s = await Qe.post("https://cbe.idmwx.com/api/arc/meteo2/spot/seasonal", e, {
|
|
1993
1994
|
headers: {
|
|
1994
1995
|
Authorization: this.token
|
|
1995
1996
|
}
|
|
@@ -2006,57 +2007,59 @@ const Se = (A, e) => {
|
|
|
2006
2007
|
lastYearWindSpeed: [],
|
|
2007
2008
|
precip: [],
|
|
2008
2009
|
lastYearPrecip: []
|
|
2009
|
-
}
|
|
2010
|
-
const
|
|
2011
|
-
if ((
|
|
2012
|
-
this.etime = (
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2010
|
+
};
|
|
2011
|
+
const h = we(e.endDate).diff(we(e.startDate), "day", !0);
|
|
2012
|
+
if ((s == null ? void 0 : s.data.code) === 0) {
|
|
2013
|
+
if (this.etime = (B = s == null ? void 0 : s.data) == null ? void 0 : B.etime, !this.currentMonth) {
|
|
2014
|
+
this.monthsOptions = [];
|
|
2015
|
+
for (let l = 0; l < 6; l++)
|
|
2016
|
+
this.monthsOptions.push({
|
|
2017
|
+
date: ie(this.etime).tz(this.positionGmt).set({ year: r.year(), month: r.month() + l, date: 1, hour: 0, minute: 0, second: 0 }).format(),
|
|
2018
|
+
month: ie(this.etime).tz(this.positionGmt).set({ year: r.year(), month: r.month() + l }).format("MMMM yyyy")
|
|
2019
|
+
});
|
|
2020
|
+
}
|
|
2018
2021
|
this.currentMonth = this.currentMonth ?? this.monthsOptions[0];
|
|
2019
|
-
let
|
|
2020
|
-
for (let
|
|
2021
|
-
const
|
|
2022
|
-
(H = this.seasonalData) == null || H.dates.push(
|
|
2022
|
+
let P = (S = s == null ? void 0 : s.data.data) == null ? void 0 : S.seasonal, L = ie(this.etime).tz(this.positionGmt).set({ year: r.year(), month: r.month(), date: 1, hour: 0, minute: 0, second: 0 }).format();
|
|
2023
|
+
for (let l = 0; l < h; l++) {
|
|
2024
|
+
const E = we(L).clone().add(l, "d"), A = ((q = ye.pickDaily(P, E)) == null ? void 0 : q[0]) || {};
|
|
2025
|
+
(H = this.seasonalData) == null || H.dates.push(ie(E).tz(this.positionGmt).format("MMM-DD")), (k = this.seasonalData) == null || k.xDates.push(ie(E).tz(this.positionGmt).format("DD")), (_ = this.seasonalData) == null || _.highTemp.push(this.roundPrecision((N = (F = A == null ? void 0 : A.weather) == null ? void 0 : F.temp) == null ? void 0 : N.max, 0)), (V = this.seasonalData) == null || V.lowTemp.push(this.roundPrecision((O = (M = A == null ? void 0 : A.weather) == null ? void 0 : M.temp) == null ? void 0 : O.min, 0)), (T = this.seasonalData) == null || T.windSpeed.push(this.roundPrecision((v = (Z = A.weather) == null ? void 0 : Z.wind) == null ? void 0 : v.kts, 1)), (K = this.seasonalData) == null || K.windDirection.push((j = (Y = A.weather) == null ? void 0 : Y.wind) == null ? void 0 : j.direction), (W = this.seasonalData) == null || W.precip.push(this.roundPrecision((X = (U = A == null ? void 0 : A.weather) == null ? void 0 : U.precip) == null ? void 0 : X.sum, 0));
|
|
2023
2026
|
}
|
|
2024
|
-
(((
|
|
2025
|
-
var
|
|
2026
|
-
|
|
2027
|
-
for (let le = 0; le <
|
|
2028
|
-
const he = we(
|
|
2029
|
-
(de = this.seasonalData) == null || de.lastYearHighTemp.push(this.roundPrecision((d = (
|
|
2027
|
+
(((J = (R = s == null ? void 0 : s.data.data) == null ? void 0 : R.past) == null ? void 0 : J.reverse()) || []).forEach((l, E) => {
|
|
2028
|
+
var A, ae, d, de, ge, ce, y, re, u, ee, te, w, se;
|
|
2029
|
+
L = ie(this.etime).tz(this.positionGmt).set({ year: r.year() - (E + 1), month: r.month(), date: 1, hour: 0, minute: 0, second: 0 }).format();
|
|
2030
|
+
for (let le = 0; le < h; le++) {
|
|
2031
|
+
const he = we(L).clone().add(le, "d"), i = ((A = ye.pickDaily(l, he)) == null ? void 0 : A[0]) || {};
|
|
2032
|
+
(de = this.seasonalData) == null || de.lastYearHighTemp.push(this.roundPrecision((d = (ae = i == null ? void 0 : i.weather) == null ? void 0 : ae.temp) == null ? void 0 : d.max, 0)), (y = this.seasonalData) == null || y.lastYearLowTemp.push(this.roundPrecision((ce = (ge = i == null ? void 0 : i.weather) == null ? void 0 : ge.temp) == null ? void 0 : ce.min, 0)), (ee = this.seasonalData) == null || ee.lastYearWindSpeed.push(this.roundPrecision((u = (re = i.weather) == null ? void 0 : re.wind) == null ? void 0 : u.kts, 1)), (se = this.seasonalData) == null || se.lastYearPrecip.push(this.roundPrecision((w = (te = i == null ? void 0 : i.weather) == null ? void 0 : te.precip) == null ? void 0 : w.sum, 0));
|
|
2030
2033
|
}
|
|
2031
|
-
}), this.seasonalData.offset = 4 + 0.5 / ((
|
|
2032
|
-
let
|
|
2033
|
-
this.seasonalData.highTemp.forEach((
|
|
2034
|
-
|
|
2035
|
-
}), this.seasonalData.hottestDay = this.seasonalData.dates[
|
|
2036
|
-
let
|
|
2037
|
-
this.seasonalData.lowTemp.forEach((
|
|
2038
|
-
|
|
2039
|
-
}), this.seasonalData.coldestDay = this.seasonalData.dates[
|
|
2040
|
-
let
|
|
2041
|
-
this.seasonalData.windSpeed.forEach((
|
|
2042
|
-
|
|
2043
|
-
}), this.seasonalData.windiestDay = this.seasonalData.dates[
|
|
2034
|
+
}), this.seasonalData.offset = 4 + 0.5 / ((G = (c = this.seasonalData) == null ? void 0 : c.dates) == null ? void 0 : G.length) * 92 + "%", this.seasonalData.minHighTemp = Math.min(...this.seasonalData.highTemp.filter((l) => typeof l == "number" && !isNaN(l))), this.seasonalData.maxHighTemp = Math.max(...this.seasonalData.highTemp.filter((l) => typeof l == "number" && !isNaN(l))), this.seasonalData.minLowTemp = Math.min(...this.seasonalData.lowTemp.filter((l) => typeof l == "number" && !isNaN(l))), this.seasonalData.maxLowTemp = Math.max(...this.seasonalData.lowTemp.filter((l) => typeof l == "number" && !isNaN(l)));
|
|
2035
|
+
let b = 0;
|
|
2036
|
+
this.seasonalData.highTemp.forEach((l, E) => {
|
|
2037
|
+
l === this.seasonalData.maxHighTemp && (b = E);
|
|
2038
|
+
}), this.seasonalData.hottestDay = this.seasonalData.dates[b];
|
|
2039
|
+
let D = 0;
|
|
2040
|
+
this.seasonalData.lowTemp.forEach((l, E) => {
|
|
2041
|
+
l === this.seasonalData.minLowTemp && (D = E);
|
|
2042
|
+
}), this.seasonalData.coldestDay = this.seasonalData.dates[D], this.seasonalData.meanWind = this.seasonalData.windSpeed.reduce((l, E) => l + E, 0) / ((z = this.seasonalData.windSpeed) == null ? void 0 : z.length), this.seasonalData.maxWindSpeed = Math.max(...this.seasonalData.windSpeed.filter((l) => typeof l == "number" && !isNaN(l)));
|
|
2043
|
+
let C = 0;
|
|
2044
|
+
this.seasonalData.windSpeed.forEach((l, E) => {
|
|
2045
|
+
l === this.seasonalData.maxWindSpeed && (C = E);
|
|
2046
|
+
}), this.seasonalData.windiestDay = this.seasonalData.dates[C], this.seasonalData.dominantWind = this.findMostFrequent(this.seasonalData.windDirection);
|
|
2044
2047
|
}
|
|
2045
2048
|
this.initSeasonalEchart();
|
|
2046
2049
|
},
|
|
2047
|
-
findMostFrequent(
|
|
2050
|
+
findMostFrequent(r) {
|
|
2048
2051
|
const e = {};
|
|
2049
|
-
let
|
|
2050
|
-
for (const
|
|
2051
|
-
e[
|
|
2052
|
-
for (const
|
|
2053
|
-
e[
|
|
2054
|
-
return
|
|
2052
|
+
let s = 0, h;
|
|
2053
|
+
for (const a of r)
|
|
2054
|
+
e[a] ? e[a]++ : e[a] = 1;
|
|
2055
|
+
for (const a in e)
|
|
2056
|
+
e[a] > s && (s = e[a], h = a);
|
|
2057
|
+
return h;
|
|
2055
2058
|
},
|
|
2056
2059
|
initSeasonalEchart() {
|
|
2057
|
-
var
|
|
2058
|
-
let
|
|
2059
|
-
const
|
|
2060
|
+
var v, T, Y, j, K, U, X, W, R, J;
|
|
2061
|
+
let r = Math.max(...[...this.seasonalData.highTemp, ...this.seasonalData.lastYearHighTemp].filter((c) => typeof c == "number" && !isNaN(c))), e = Math.min(...[...this.seasonalData.lowTemp, ...this.seasonalData.lastYearLowTemp].filter((c) => typeof c == "number" && !isNaN(c))), s = Math.ceil((r + 1) / 5) * 5, h = Math.floor((e - 1) / 5) * 5, a = Math.ceil((s - h) / 5);
|
|
2062
|
+
const B = {
|
|
2060
2063
|
title: {
|
|
2061
2064
|
text: "Temperature",
|
|
2062
2065
|
top: "10px",
|
|
@@ -2081,26 +2084,27 @@ const Se = (A, e) => {
|
|
|
2081
2084
|
trigger: "axis",
|
|
2082
2085
|
show: !0,
|
|
2083
2086
|
position: "right",
|
|
2084
|
-
formatter: (
|
|
2085
|
-
var
|
|
2086
|
-
const
|
|
2087
|
-
return
|
|
2087
|
+
formatter: (c) => {
|
|
2088
|
+
var z, P, L, p, b, D;
|
|
2089
|
+
const G = (z = c == null ? void 0 : c[0]) == null ? void 0 : z.dataIndex;
|
|
2090
|
+
return c.find((C) => C.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${(P = this.seasonalData) == null ? void 0 : P.dates[G]}</strong></div>
|
|
2088
2091
|
<div style="font-size: 13px;">
|
|
2089
2092
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #FF9500;}"></span>
|
|
2090
|
-
<span>High : </span><strong>${(
|
|
2093
|
+
<span>High : </span><strong>${(L = c[0]) == null ? void 0 : L.value}</strong><span style="padding-left: 3px;">℃</span>
|
|
2091
2094
|
</div>
|
|
2092
2095
|
<div style="font-size: 13px;">
|
|
2093
2096
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #f7c587;}"></span>
|
|
2094
|
-
<span>High, last year : </span><strong>${(
|
|
2097
|
+
<span>High, last year : </span><strong>${(p = c[1]) == null ? void 0 : p.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2095
2098
|
</div>
|
|
2096
2099
|
<div style="font-size: 13px;">
|
|
2097
2100
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #2164bf;}"></span>
|
|
2098
|
-
<span>Low : </span><strong>${(
|
|
2101
|
+
<span>Low : </span><strong>${(b = c[2]) == null ? void 0 : b.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2099
2102
|
</div>
|
|
2100
2103
|
<div style="font-size: 13px;">
|
|
2101
2104
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #7baef7;}"></span>
|
|
2102
|
-
<span>Low, last year : </span><strong>${(
|
|
2103
|
-
</div
|
|
2105
|
+
<span>Low, last year : </span><strong>${(D = c[3]) == null ? void 0 : D.value}</strong><span style="padding-left: 3px;">℃</span>
|
|
2106
|
+
</div>
|
|
2107
|
+
`;
|
|
2104
2108
|
}
|
|
2105
2109
|
},
|
|
2106
2110
|
legend: {
|
|
@@ -2118,12 +2122,13 @@ const Se = (A, e) => {
|
|
|
2118
2122
|
height: "50%",
|
|
2119
2123
|
type: "category",
|
|
2120
2124
|
boundaryGap: !0,
|
|
2121
|
-
data: (
|
|
2125
|
+
data: (v = this.seasonalData) == null ? void 0 : v.xDates,
|
|
2122
2126
|
axisLabel: {
|
|
2123
2127
|
show: !0
|
|
2124
2128
|
},
|
|
2125
2129
|
axisLine: {
|
|
2126
|
-
show: !0
|
|
2130
|
+
show: !0,
|
|
2131
|
+
onZero: !1
|
|
2127
2132
|
},
|
|
2128
2133
|
axisTick: {
|
|
2129
2134
|
show: !0,
|
|
@@ -2140,9 +2145,9 @@ const Se = (A, e) => {
|
|
|
2140
2145
|
type: "value",
|
|
2141
2146
|
name: "Temperature ( ℃ ) ",
|
|
2142
2147
|
show: !0,
|
|
2143
|
-
min:
|
|
2144
|
-
max:
|
|
2145
|
-
interval:
|
|
2148
|
+
min: h,
|
|
2149
|
+
max: s,
|
|
2150
|
+
interval: a,
|
|
2146
2151
|
splitNumber: 5,
|
|
2147
2152
|
nameRotate: 90,
|
|
2148
2153
|
nameLocation: "middle",
|
|
@@ -2155,11 +2160,24 @@ const Se = (A, e) => {
|
|
|
2155
2160
|
}
|
|
2156
2161
|
],
|
|
2157
2162
|
series: [
|
|
2163
|
+
{
|
|
2164
|
+
name: "High",
|
|
2165
|
+
type: "line",
|
|
2166
|
+
data: (T = this.seasonalData) == null ? void 0 : T.highTemp,
|
|
2167
|
+
symbol: "none",
|
|
2168
|
+
smooth: !1,
|
|
2169
|
+
itemStyle: {
|
|
2170
|
+
color: "#FF9500"
|
|
2171
|
+
},
|
|
2172
|
+
label: {
|
|
2173
|
+
show: !1
|
|
2174
|
+
}
|
|
2175
|
+
},
|
|
2158
2176
|
{
|
|
2159
2177
|
name: "High, last year",
|
|
2160
2178
|
type: "line",
|
|
2161
2179
|
symbol: "none",
|
|
2162
|
-
data: (
|
|
2180
|
+
data: (Y = this.seasonalData) == null ? void 0 : Y.lastYearHighTemp,
|
|
2163
2181
|
itemStyle: {
|
|
2164
2182
|
color: "#f7c587"
|
|
2165
2183
|
},
|
|
@@ -2172,13 +2190,13 @@ const Se = (A, e) => {
|
|
|
2172
2190
|
}
|
|
2173
2191
|
},
|
|
2174
2192
|
{
|
|
2175
|
-
name: "
|
|
2193
|
+
name: "Low",
|
|
2176
2194
|
type: "line",
|
|
2177
|
-
data: (
|
|
2195
|
+
data: (j = this.seasonalData) == null ? void 0 : j.lowTemp,
|
|
2178
2196
|
symbol: "none",
|
|
2179
2197
|
smooth: !1,
|
|
2180
2198
|
itemStyle: {
|
|
2181
|
-
color: "#
|
|
2199
|
+
color: "#2164bf"
|
|
2182
2200
|
},
|
|
2183
2201
|
label: {
|
|
2184
2202
|
show: !1
|
|
@@ -2188,7 +2206,7 @@ const Se = (A, e) => {
|
|
|
2188
2206
|
name: "Low, last year",
|
|
2189
2207
|
type: "line",
|
|
2190
2208
|
symbol: "none",
|
|
2191
|
-
data: (
|
|
2209
|
+
data: (K = this.seasonalData) == null ? void 0 : K.lastYearLowTemp,
|
|
2192
2210
|
itemStyle: {
|
|
2193
2211
|
color: "#7baef7"
|
|
2194
2212
|
},
|
|
@@ -2199,26 +2217,13 @@ const Se = (A, e) => {
|
|
|
2199
2217
|
label: {
|
|
2200
2218
|
show: !1
|
|
2201
2219
|
}
|
|
2202
|
-
},
|
|
2203
|
-
{
|
|
2204
|
-
name: "Low",
|
|
2205
|
-
type: "line",
|
|
2206
|
-
data: (j = this.seasonalData) == null ? void 0 : j.lowTemp,
|
|
2207
|
-
symbol: "none",
|
|
2208
|
-
smooth: !1,
|
|
2209
|
-
itemStyle: {
|
|
2210
|
-
color: "#2164bf"
|
|
2211
|
-
},
|
|
2212
|
-
label: {
|
|
2213
|
-
show: !1
|
|
2214
|
-
}
|
|
2215
2220
|
}
|
|
2216
2221
|
]
|
|
2217
2222
|
};
|
|
2218
2223
|
this.loading.seasonalEchart = !1, this.$nextTick(() => {
|
|
2219
|
-
pe.init(document.getElementById("temperature-echart")).setOption(
|
|
2224
|
+
pe.init(document.getElementById("temperature-echart")).setOption(B);
|
|
2220
2225
|
});
|
|
2221
|
-
let
|
|
2226
|
+
let S = Math.max(...[...this.seasonalData.windSpeed, ...this.seasonalData.lastYearWindSpeed].filter((c) => typeof c == "number" && !isNaN(c))), H = Math.min(...[...this.seasonalData.windSpeed, ...this.seasonalData.lastYearWindSpeed].filter((c) => typeof c == "number" && !isNaN(c))) > 0 ? 0 : Math.min(...[...this.seasonalData.windSpeed, ...this.seasonalData.lastYearWindSpeed].filter((c) => typeof c == "number" && !isNaN(c))), k = Math.ceil((S + 1) / 5) * 5, F = Math.ceil((k - H) / 5), N = Math.max(...[...this.seasonalData.precip, ...this.seasonalData.lastYearPrecip].filter((c) => typeof c == "number" && !isNaN(c))), M = 0, O = Math.ceil(N * 2 / 5) * 5, V = Math.ceil((O - M) / 5);
|
|
2222
2227
|
const Z = {
|
|
2223
2228
|
title: {
|
|
2224
2229
|
text: "Wind & Preciption",
|
|
@@ -2244,26 +2249,27 @@ const Se = (A, e) => {
|
|
|
2244
2249
|
trigger: "axis",
|
|
2245
2250
|
show: !0,
|
|
2246
2251
|
position: "right",
|
|
2247
|
-
formatter: (
|
|
2248
|
-
var
|
|
2249
|
-
const
|
|
2250
|
-
return
|
|
2252
|
+
formatter: (c) => {
|
|
2253
|
+
var z, P, L, p, b, D;
|
|
2254
|
+
const G = (z = c == null ? void 0 : c[0]) == null ? void 0 : z.dataIndex;
|
|
2255
|
+
return c.find((C) => C.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${(P = this.seasonalData) == null ? void 0 : P.dates[G]}</strong></div>
|
|
2251
2256
|
<div style="font-size: 13px;">
|
|
2252
2257
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #60c43e;}"></span>
|
|
2253
|
-
<span>
|
|
2258
|
+
<span>Wind : </span><strong>${(L = c[0]) == null ? void 0 : L.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
2254
2259
|
</div>
|
|
2255
2260
|
<div style="font-size: 13px;">
|
|
2256
2261
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #9af77b;}"></span>
|
|
2257
|
-
<span>
|
|
2262
|
+
<span>Wind, last year : </span><strong>${(p = c[1]) == null ? void 0 : p.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
2258
2263
|
</div>
|
|
2259
2264
|
<div style="font-size: 13px;">
|
|
2260
2265
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0c73a8;}"></span>
|
|
2261
|
-
<span>Precip : </span><strong>${(
|
|
2266
|
+
<span>Precip : </span><strong>${(b = c[2]) == null ? void 0 : b.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2262
2267
|
</div>
|
|
2263
2268
|
<div style="font-size: 13px;">
|
|
2264
|
-
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color:
|
|
2265
|
-
<span>Precip, last year : </span><strong>${(
|
|
2266
|
-
</div
|
|
2269
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: rgba(12,116,168,0.5);}"></span>
|
|
2270
|
+
<span>Precip, last year : </span><strong>${(D = c[3]) == null ? void 0 : D.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2271
|
+
</div>
|
|
2272
|
+
`;
|
|
2267
2273
|
}
|
|
2268
2274
|
},
|
|
2269
2275
|
legend: {
|
|
@@ -2281,7 +2287,7 @@ const Se = (A, e) => {
|
|
|
2281
2287
|
height: "50%",
|
|
2282
2288
|
type: "category",
|
|
2283
2289
|
boundaryGap: !0,
|
|
2284
|
-
data: (
|
|
2290
|
+
data: (U = this.seasonalData) == null ? void 0 : U.xDates,
|
|
2285
2291
|
axisLabel: {
|
|
2286
2292
|
show: !0
|
|
2287
2293
|
},
|
|
@@ -2305,7 +2311,7 @@ const Se = (A, e) => {
|
|
|
2305
2311
|
show: !0,
|
|
2306
2312
|
min: H,
|
|
2307
2313
|
max: k,
|
|
2308
|
-
interval:
|
|
2314
|
+
interval: F,
|
|
2309
2315
|
splitNumber: 5,
|
|
2310
2316
|
nameRotate: 90,
|
|
2311
2317
|
nameLocation: "middle",
|
|
@@ -2321,7 +2327,7 @@ const Se = (A, e) => {
|
|
|
2321
2327
|
name: "Precipitation ( mm ) ",
|
|
2322
2328
|
show: !0,
|
|
2323
2329
|
min: M,
|
|
2324
|
-
max:
|
|
2330
|
+
max: O,
|
|
2325
2331
|
interval: V,
|
|
2326
2332
|
splitNumber: 5,
|
|
2327
2333
|
nameRotate: 90,
|
|
@@ -2336,53 +2342,55 @@ const Se = (A, e) => {
|
|
|
2336
2342
|
],
|
|
2337
2343
|
series: [
|
|
2338
2344
|
{
|
|
2339
|
-
name: "
|
|
2345
|
+
name: "Wind",
|
|
2340
2346
|
type: "line",
|
|
2347
|
+
data: (X = this.seasonalData) == null ? void 0 : X.windSpeed,
|
|
2341
2348
|
symbol: "none",
|
|
2342
|
-
|
|
2349
|
+
smooth: !1,
|
|
2343
2350
|
itemStyle: {
|
|
2344
|
-
color: "#
|
|
2345
|
-
},
|
|
2346
|
-
lineStyle: {
|
|
2347
|
-
color: "#9af77b"
|
|
2348
|
-
// type: 'dashed',
|
|
2351
|
+
color: "#60c43e"
|
|
2349
2352
|
},
|
|
2350
2353
|
label: {
|
|
2351
2354
|
show: !1
|
|
2352
2355
|
}
|
|
2353
2356
|
},
|
|
2354
2357
|
{
|
|
2355
|
-
name: "
|
|
2358
|
+
name: "Wind, last year",
|
|
2356
2359
|
type: "line",
|
|
2357
|
-
data: (X = this.seasonalData) == null ? void 0 : X.windSpeed,
|
|
2358
2360
|
symbol: "none",
|
|
2359
|
-
|
|
2361
|
+
data: (W = this.seasonalData) == null ? void 0 : W.lastYearWindSpeed,
|
|
2360
2362
|
itemStyle: {
|
|
2361
|
-
color: "#
|
|
2363
|
+
color: "#9af77b"
|
|
2364
|
+
},
|
|
2365
|
+
lineStyle: {
|
|
2366
|
+
color: "#9af77b"
|
|
2367
|
+
// type: 'dashed',
|
|
2362
2368
|
},
|
|
2363
2369
|
label: {
|
|
2364
2370
|
show: !1
|
|
2365
2371
|
}
|
|
2366
2372
|
},
|
|
2367
2373
|
{
|
|
2368
|
-
name: "Precip
|
|
2374
|
+
name: "Precip",
|
|
2369
2375
|
type: "bar",
|
|
2370
|
-
|
|
2376
|
+
yAxisIndex: 1,
|
|
2377
|
+
data: (R = this.seasonalData) == null ? void 0 : R.precip,
|
|
2378
|
+
symbol: "none",
|
|
2379
|
+
smooth: !1,
|
|
2371
2380
|
itemStyle: {
|
|
2372
|
-
color: "
|
|
2381
|
+
color: "#0c73a8"
|
|
2373
2382
|
},
|
|
2374
2383
|
label: {
|
|
2375
2384
|
show: !1
|
|
2376
2385
|
}
|
|
2377
2386
|
},
|
|
2378
2387
|
{
|
|
2379
|
-
name: "Precip",
|
|
2388
|
+
name: "Precip, last year",
|
|
2380
2389
|
type: "bar",
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
smooth: !1,
|
|
2390
|
+
yAxisIndex: 1,
|
|
2391
|
+
data: (J = this.seasonalData) == null ? void 0 : J.lastYearPrecip,
|
|
2384
2392
|
itemStyle: {
|
|
2385
|
-
color: "
|
|
2393
|
+
color: "rgba(12,116,168,0.5)"
|
|
2386
2394
|
},
|
|
2387
2395
|
label: {
|
|
2388
2396
|
show: !1
|
|
@@ -2398,7 +2406,7 @@ const Se = (A, e) => {
|
|
|
2398
2406
|
document.getElementById("weather-chart") && pe.dispose(document.getElementById("weather-chart")), document.getElementById("weather-icons") && pe.dispose(document.getElementById("weather-icons")), document.getElementById("weather-condition") && pe.dispose(document.getElementById("weather-condition")), document.getElementById("wave-swell") && pe.dispose(document.getElementById("wave-swell")), document.getElementById("temperature-echart") && pe.dispose(document.getElementById("temperature-echart")), document.getElementById("wind-precip-echart") && pe.dispose(document.getElementById("wind-precip-echart"));
|
|
2399
2407
|
},
|
|
2400
2408
|
initHoursTableData() {
|
|
2401
|
-
var
|
|
2409
|
+
var r, e, s, h, a, B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b;
|
|
2402
2410
|
this.hoursTableData = {
|
|
2403
2411
|
hours: [],
|
|
2404
2412
|
utcHours: [],
|
|
@@ -2425,11 +2433,11 @@ const Se = (A, e) => {
|
|
|
2425
2433
|
seaLevel: [],
|
|
2426
2434
|
seaTemp: []
|
|
2427
2435
|
};
|
|
2428
|
-
for (let
|
|
2429
|
-
const
|
|
2430
|
-
this.hoursTableData.hours.push(
|
|
2431
|
-
const
|
|
2432
|
-
this.hoursTableData.weatherUrls.push((e =
|
|
2436
|
+
for (let D = 0; D < 24; D++) {
|
|
2437
|
+
const C = we(this.pickedDate).clone().add(D, "h").format();
|
|
2438
|
+
this.hoursTableData.hours.push(C);
|
|
2439
|
+
const l = ((r = ye.pickHourly(this.meteoData, C)) == null ? void 0 : r[0]) || {};
|
|
2440
|
+
this.hoursTableData.weatherUrls.push((e = l.weather) == null ? void 0 : e.url), this.hoursTableData.weatherNames.push(((s = l.weather) == null ? void 0 : s.name) ?? "-"), this.hoursTableData.temp.push(this.roundPrecision((h = l.weather) == null ? void 0 : h.temp, 0) ?? "-"), this.hoursTableData.precipProbability.push(this.roundPrecision((B = (a = l.weather) == null ? void 0 : a.precip) == null ? void 0 : B.probability, 0) ?? "-"), this.hoursTableData.precip1h.push(this.roundPrecision((q = (S = l.weather) == null ? void 0 : S.precip) == null ? void 0 : q.sum, 0) ?? "-"), this.hoursTableData.visibility.push(this.roundPrecision((H = l.weather) == null ? void 0 : H.visibility, 0) ?? "-"), this.hoursTableData.humidity.push(this.roundPrecision((k = l.weather) == null ? void 0 : k.rh, 0) ?? "-"), this.hoursTableData.windSpeed.push(this.roundPrecision((N = (F = l.weather) == null ? void 0 : F.wind) == null ? void 0 : N.kts, 1)), this.hoursTableData.windDir.push((M = (_ = l.weather) == null ? void 0 : _.wind) == null ? void 0 : M.bearing), this.hoursTableData.windGust.push(this.roundPrecision((V = (O = l.weather) == null ? void 0 : O.wind) == null ? void 0 : V.gusts, 1) ?? "-"), this.hoursTableData.sigwaveHeight.push(this.roundPrecision((v = (Z = l.wave) == null ? void 0 : Z.sig) == null ? void 0 : v.height, 1) ?? "-"), this.hoursTableData.sigwaveDir.push((Y = (T = l.wave) == null ? void 0 : T.sig) == null ? void 0 : Y.bearing), this.hoursTableData.windwaveHeight.push(this.roundPrecision((K = (j = l.wave) == null ? void 0 : j.wd) == null ? void 0 : K.height, 1) ?? "-"), this.hoursTableData.windwaveDir.push((X = (U = l.wave) == null ? void 0 : U.wd) == null ? void 0 : X.bearing), this.hoursTableData.windwavePeriod.push(this.roundPrecision((R = (W = l.wave) == null ? void 0 : W.wd) == null ? void 0 : R.period, 1) ?? "-"), this.hoursTableData.swellHeight.push(this.roundPrecision((c = (J = l.wave) == null ? void 0 : J.swell) == null ? void 0 : c.height, 1) ?? "-"), this.hoursTableData.swellDir.push((z = (G = l.wave) == null ? void 0 : G.swell) == null ? void 0 : z.bearing), this.hoursTableData.swellPeriod.push(this.roundPrecision((L = (P = l.wave) == null ? void 0 : P.swell) == null ? void 0 : L.period, 1) ?? "-"), this.hoursTableData.currentSpeed.push(this.roundPrecision((p = l.current) == null ? void 0 : p.speed, 1) ?? "-"), this.hoursTableData.currentDir.push((b = l.current) == null ? void 0 : b.bearing), this.hoursTableData.seaLevel.push(this.roundPrecision(l.height, 1) ?? "-"), this.hoursTableData.seaTemp.push(this.roundPrecision(l.sst, 0) ?? "-");
|
|
2433
2441
|
}
|
|
2434
2442
|
this.loading.hoursTable = !1;
|
|
2435
2443
|
},
|
|
@@ -2437,75 +2445,79 @@ const Se = (A, e) => {
|
|
|
2437
2445
|
this.position = {}, this.meteoData = {}, this.isCollected = !1, pe && document.getElementById("weather-chart") && pe.dispose(document.getElementById("weather-chart"));
|
|
2438
2446
|
},
|
|
2439
2447
|
initDaysTableData() {
|
|
2440
|
-
var e,
|
|
2448
|
+
var e, s, h, a, B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E;
|
|
2441
2449
|
this.daysTableData = [];
|
|
2442
|
-
const
|
|
2443
|
-
for (let
|
|
2444
|
-
const
|
|
2450
|
+
const r = ie(this.etime).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
2451
|
+
for (let A = 0; A < 14; A++) {
|
|
2452
|
+
const ae = we(r).clone().add(A, "d").format(), d = ((e = ye.pickDaily(this.meteoData, ae)) == null ? void 0 : e[0]) || {};
|
|
2445
2453
|
this.daysTableData.push(
|
|
2446
2454
|
{
|
|
2447
|
-
localWeek: this.computeWeekLT(
|
|
2448
|
-
localDate: this.computeMMMDDLT(
|
|
2449
|
-
weatherUrl: (
|
|
2450
|
-
minTemp: this.roundPrecision((
|
|
2451
|
-
maxTemp: this.roundPrecision((
|
|
2455
|
+
localWeek: this.computeWeekLT(ae),
|
|
2456
|
+
localDate: this.computeMMMDDLT(ae),
|
|
2457
|
+
weatherUrl: (s = d == null ? void 0 : d.weather) == null ? void 0 : s.url,
|
|
2458
|
+
minTemp: this.roundPrecision((a = (h = d == null ? void 0 : d.weather) == null ? void 0 : h.temp) == null ? void 0 : a.min, 0) ?? "-",
|
|
2459
|
+
maxTemp: this.roundPrecision((S = (B = d == null ? void 0 : d.weather) == null ? void 0 : B.temp) == null ? void 0 : S.max, 0) ?? "-",
|
|
2452
2460
|
weatherName: (q = d == null ? void 0 : d.weather) == null ? void 0 : q.name,
|
|
2453
2461
|
precipSum: this.roundPrecision((k = (H = d == null ? void 0 : d.weather) == null ? void 0 : H.precip) == null ? void 0 : k.sum, 0) ?? "-",
|
|
2454
|
-
precipRainSum: this.roundPrecision((
|
|
2462
|
+
precipRainSum: this.roundPrecision((N = (F = d == null ? void 0 : d.weather) == null ? void 0 : F.precip) == null ? void 0 : N.rainSum, 0) ?? "-",
|
|
2455
2463
|
precipSnowfallSum: this.roundPrecision((M = (_ = d == null ? void 0 : d.weather) == null ? void 0 : _.precip) == null ? void 0 : M.snowfallSum, 0) ?? "-",
|
|
2456
|
-
windSpeedMax: this.roundPrecision((V = (
|
|
2457
|
-
windSpeedDir: (
|
|
2458
|
-
gustSpeedMax: this.roundPrecision((
|
|
2459
|
-
windWaveHeight: this.roundPrecision((
|
|
2460
|
-
windWavePeriod: this.roundPrecision((
|
|
2461
|
-
windWaveDir: (
|
|
2462
|
-
swellWaveHeight: this.roundPrecision((
|
|
2463
|
-
swellWavePeriod: this.roundPrecision((
|
|
2464
|
-
swellWaveDir: (
|
|
2465
|
-
sigWaveHeight: this.roundPrecision((
|
|
2466
|
-
sigWavePeriod: this.roundPrecision((
|
|
2467
|
-
sigWaveDir: (
|
|
2464
|
+
windSpeedMax: this.roundPrecision((V = (O = d == null ? void 0 : d.weather) == null ? void 0 : O.wind) == null ? void 0 : V.kts, 1) ?? "-",
|
|
2465
|
+
windSpeedDir: (v = (Z = d == null ? void 0 : d.weather) == null ? void 0 : Z.wind) == null ? void 0 : v.bearing,
|
|
2466
|
+
gustSpeedMax: this.roundPrecision((Y = (T = d == null ? void 0 : d.weather) == null ? void 0 : T.wind) == null ? void 0 : Y.gusts, 1) ?? "-",
|
|
2467
|
+
windWaveHeight: this.roundPrecision((K = (j = d == null ? void 0 : d.wave) == null ? void 0 : j.wd) == null ? void 0 : K.height, 1) ?? "-",
|
|
2468
|
+
windWavePeriod: this.roundPrecision((X = (U = d == null ? void 0 : d.wave) == null ? void 0 : U.wd) == null ? void 0 : X.period, 1) ?? "-",
|
|
2469
|
+
windWaveDir: (R = (W = d == null ? void 0 : d.wave) == null ? void 0 : W.wd) == null ? void 0 : R.bearing,
|
|
2470
|
+
swellWaveHeight: this.roundPrecision((c = (J = d == null ? void 0 : d.wave) == null ? void 0 : J.swell) == null ? void 0 : c.height, 1) ?? "-",
|
|
2471
|
+
swellWavePeriod: this.roundPrecision((z = (G = d == null ? void 0 : d.wave) == null ? void 0 : G.swell) == null ? void 0 : z.period, 1) ?? "-",
|
|
2472
|
+
swellWaveDir: (L = (P = d == null ? void 0 : d.wave) == null ? void 0 : P.swell) == null ? void 0 : L.bearing,
|
|
2473
|
+
sigWaveHeight: this.roundPrecision((b = (p = d == null ? void 0 : d.wave) == null ? void 0 : p.sig) == null ? void 0 : b.height, 1) ?? "-",
|
|
2474
|
+
sigWavePeriod: this.roundPrecision((C = (D = d == null ? void 0 : d.wave) == null ? void 0 : D.sig) == null ? void 0 : C.period, 1) ?? "-",
|
|
2475
|
+
sigWaveDir: (E = (l = d == null ? void 0 : d.wave) == null ? void 0 : l.sig) == null ? void 0 : E.bearing
|
|
2468
2476
|
}
|
|
2469
2477
|
);
|
|
2470
2478
|
}
|
|
2471
2479
|
this.loading.daysTable = !1;
|
|
2472
2480
|
},
|
|
2473
2481
|
initHourlyTableData() {
|
|
2474
|
-
var e,
|
|
2482
|
+
var e, s, h, a, B, S, q, H, k, F, N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C;
|
|
2475
2483
|
this.hourlyTableData = [];
|
|
2476
|
-
const
|
|
2477
|
-
for (let
|
|
2478
|
-
let
|
|
2479
|
-
if (
|
|
2480
|
-
const
|
|
2484
|
+
const r = ie(this.etime).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
2485
|
+
for (let l = 0; l < 14 * 24; l++) {
|
|
2486
|
+
let E;
|
|
2487
|
+
if (l < 3 * 24 ? E = we(r).clone().add(l, "h").format() : l < 7 * 24 ? l % 3 === 0 && (E = we(r).clone().add(l, "h").format()) : l % 6 === 0 && (E = we(r).clone().add(l, "h").format()), E) {
|
|
2488
|
+
const A = ((e = ye.pickHourly(this.meteoData, E)) == null ? void 0 : e[0]) || {};
|
|
2481
2489
|
this.hourlyTableData.push(
|
|
2482
2490
|
{
|
|
2483
|
-
localDate: this.computeMMMDDHHmmLT(
|
|
2484
|
-
temp: this.roundPrecision((
|
|
2485
|
-
precipSum: this.roundPrecision((
|
|
2486
|
-
visibility: this.roundPrecision((
|
|
2487
|
-
windSpeed: this.roundPrecision((q = (
|
|
2488
|
-
windDir: (k = (H =
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2491
|
+
localDate: this.computeMMMDDHHmmLT(E),
|
|
2492
|
+
temp: this.roundPrecision((s = A == null ? void 0 : A.weather) == null ? void 0 : s.temp, 0) ?? "-",
|
|
2493
|
+
precipSum: this.roundPrecision((a = (h = A == null ? void 0 : A.weather) == null ? void 0 : h.precip) == null ? void 0 : a.sum, 0) ?? "-",
|
|
2494
|
+
visibility: this.roundPrecision((B = A == null ? void 0 : A.weather) == null ? void 0 : B.visibility, 0) ?? "-",
|
|
2495
|
+
windSpeed: this.roundPrecision((q = (S = A == null ? void 0 : A.weather) == null ? void 0 : S.wind) == null ? void 0 : q.kts, 1) ?? "-",
|
|
2496
|
+
windDir: (k = (H = A == null ? void 0 : A.weather) == null ? void 0 : H.wind) == null ? void 0 : k.direction,
|
|
2497
|
+
windBearing: (N = (F = A == null ? void 0 : A.weather) == null ? void 0 : F.wind) == null ? void 0 : N.bearing,
|
|
2498
|
+
windBF: ((M = (_ = A == null ? void 0 : A.weather) == null ? void 0 : _.wind) == null ? void 0 : M.scale) ?? "-",
|
|
2499
|
+
windGusts: this.roundPrecision((V = (O = A == null ? void 0 : A.weather) == null ? void 0 : O.wind) == null ? void 0 : V.gusts, 1) ?? "-",
|
|
2500
|
+
windWaveHeight: this.roundPrecision((v = (Z = A == null ? void 0 : A.wave) == null ? void 0 : Z.wd) == null ? void 0 : v.height, 1) ?? "-",
|
|
2501
|
+
windWavePeriod: this.roundPrecision((Y = (T = A == null ? void 0 : A.wave) == null ? void 0 : T.wd) == null ? void 0 : Y.period, 1) ?? "-",
|
|
2502
|
+
windWaveDir: (K = (j = A == null ? void 0 : A.wave) == null ? void 0 : j.wd) == null ? void 0 : K.direction,
|
|
2503
|
+
windWaveBearing: (X = (U = A == null ? void 0 : A.wave) == null ? void 0 : U.wd) == null ? void 0 : X.bearing,
|
|
2504
|
+
sigWaveHeight: this.roundPrecision((R = (W = A == null ? void 0 : A.wave) == null ? void 0 : W.sig) == null ? void 0 : R.height, 1) ?? "-",
|
|
2505
|
+
sigWavePeriod: this.roundPrecision((c = (J = A == null ? void 0 : A.wave) == null ? void 0 : J.sig) == null ? void 0 : c.period, 1) ?? "-",
|
|
2506
|
+
sigWaveDir: (z = (G = A == null ? void 0 : A.wave) == null ? void 0 : G.sig) == null ? void 0 : z.direction,
|
|
2507
|
+
sigWaveBearing: (L = (P = A == null ? void 0 : A.wave) == null ? void 0 : P.wd) == null ? void 0 : L.bearing,
|
|
2508
|
+
currentDir: (p = A == null ? void 0 : A.current) == null ? void 0 : p.direction,
|
|
2509
|
+
currentSpd: this.roundPrecision((b = A == null ? void 0 : A.current) == null ? void 0 : b.kts, 1) ?? "-",
|
|
2510
|
+
currentBearing: (C = (D = A == null ? void 0 : A.wave) == null ? void 0 : D.wd) == null ? void 0 : C.bearing,
|
|
2511
|
+
seaLevel: this.roundPrecision(A == null ? void 0 : A.height, 1) ?? "-",
|
|
2512
|
+
seaSurfaceTemp: this.roundPrecision(A == null ? void 0 : A.sst, 0) ?? "-"
|
|
2501
2513
|
}
|
|
2502
2514
|
);
|
|
2503
2515
|
}
|
|
2504
2516
|
}
|
|
2505
2517
|
this.loading.hourlyTable = !1;
|
|
2506
2518
|
},
|
|
2507
|
-
handleSelectMonth(
|
|
2508
|
-
this.currentMonth =
|
|
2519
|
+
handleSelectMonth(r) {
|
|
2520
|
+
this.currentMonth = r, this.handleFetchSeasonalData();
|
|
2509
2521
|
}
|
|
2510
2522
|
}
|
|
2511
2523
|
}, Oe = { class: "spot-report" }, Ye = { class: "search-header-box" }, je = { class: "search-header-box-inner flex-between" }, Ke = { class: "search-box flex-start" }, Ue = { class: "menu-box flex-end" }, Xe = { class: "content-box" }, We = { class: "title-section flex-between" }, Re = { class: "main-title" }, Je = { class: "sub-title" }, qe = { class: "flex-end" }, Ve = {
|
|
@@ -2631,12 +2643,9 @@ const Se = (A, e) => {
|
|
|
2631
2643
|
}, ws = {
|
|
2632
2644
|
rowspan: "1",
|
|
2633
2645
|
colspan: "1",
|
|
2634
|
-
class: "border"
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
colspan: "1",
|
|
2638
|
-
class: "border"
|
|
2639
|
-
}, ms = {
|
|
2646
|
+
class: "border",
|
|
2647
|
+
style: { "font-size": "11px", "text-align": "right", "padding-right": "3px" }
|
|
2648
|
+
}, ps = { key: 1 }, ms = {
|
|
2640
2649
|
rowspan: "1",
|
|
2641
2650
|
colspan: "1",
|
|
2642
2651
|
class: "border"
|
|
@@ -2651,12 +2660,9 @@ const Se = (A, e) => {
|
|
|
2651
2660
|
}, Ds = {
|
|
2652
2661
|
rowspan: "1",
|
|
2653
2662
|
colspan: "1",
|
|
2654
|
-
class: "border"
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
colspan: "1",
|
|
2658
|
-
class: "border"
|
|
2659
|
-
}, ys = {
|
|
2663
|
+
class: "border",
|
|
2664
|
+
style: { "font-size": "11px", "text-align": "right", "padding-right": "3px" }
|
|
2665
|
+
}, Bs = { key: 1 }, ys = {
|
|
2660
2666
|
rowspan: "1",
|
|
2661
2667
|
colspan: "1",
|
|
2662
2668
|
class: "border"
|
|
@@ -2665,74 +2671,84 @@ const Se = (A, e) => {
|
|
|
2665
2671
|
colspan: "1",
|
|
2666
2672
|
class: "border"
|
|
2667
2673
|
}, Cs = {
|
|
2674
|
+
rowspan: "1",
|
|
2675
|
+
colspan: "1",
|
|
2676
|
+
class: "border",
|
|
2677
|
+
style: { "font-size": "11px", "text-align": "right", "padding-right": "3px" }
|
|
2678
|
+
}, vs = { key: 1 }, Is = {
|
|
2668
2679
|
rowspan: "1",
|
|
2669
2680
|
colspan: "1",
|
|
2670
2681
|
class: "border"
|
|
2671
|
-
},
|
|
2682
|
+
}, bs = {
|
|
2672
2683
|
rowspan: "1",
|
|
2673
2684
|
colspan: "1",
|
|
2674
2685
|
class: "border"
|
|
2675
|
-
},
|
|
2686
|
+
}, Es = {
|
|
2687
|
+
rowspan: "1",
|
|
2688
|
+
colspan: "1",
|
|
2689
|
+
class: "border",
|
|
2690
|
+
style: { "font-size": "11px", "text-align": "right", "padding-right": "3px" }
|
|
2691
|
+
}, Qs = { key: 1 }, Ms = {
|
|
2676
2692
|
rowspan: "1",
|
|
2677
2693
|
colspan: "1",
|
|
2678
2694
|
class: "border"
|
|
2679
|
-
},
|
|
2695
|
+
}, Ls = {
|
|
2680
2696
|
rowspan: "1",
|
|
2681
2697
|
colspan: "1",
|
|
2682
2698
|
class: "border"
|
|
2683
|
-
},
|
|
2699
|
+
}, zs = {
|
|
2684
2700
|
rowspan: "1",
|
|
2685
2701
|
colspan: "1",
|
|
2686
2702
|
class: "border"
|
|
2687
|
-
},
|
|
2703
|
+
}, Hs = {
|
|
2688
2704
|
key: 1,
|
|
2689
2705
|
class: "card card-loading flex-center"
|
|
2690
|
-
},
|
|
2706
|
+
}, ks = {
|
|
2691
2707
|
key: 2,
|
|
2692
2708
|
class: "card flex-center"
|
|
2693
|
-
},
|
|
2709
|
+
}, Ps = {
|
|
2694
2710
|
key: 5,
|
|
2695
2711
|
class: "seasonal-weather-section"
|
|
2696
|
-
},
|
|
2712
|
+
}, Ns = {
|
|
2697
2713
|
key: 0,
|
|
2698
2714
|
class: "card flex-space"
|
|
2699
|
-
},
|
|
2715
|
+
}, Ts = {
|
|
2700
2716
|
class: "echart-box",
|
|
2701
2717
|
style: {}
|
|
2702
|
-
},
|
|
2718
|
+
}, Gs = { style: { cursor: "pointer" } }, Ss = { style: { padding: "3px 0 0 5px", cursor: "pointer" } }, Fs = { class: "months-select-box" }, Os = { class: "bg-select" }, Ys = ["onClick"], js = { class: "flex-col-start-start right-bar" }, Ks = {
|
|
2703
2719
|
class: "",
|
|
2704
2720
|
style: { "font-size": "16px", "font-weight": "bold", "margin-bottom": "20px" }
|
|
2705
|
-
},
|
|
2721
|
+
}, Us = { class: "text" }, Xs = { class: "text" }, Ws = { class: "text" }, Rs = { class: "text" }, Js = { class: "text" }, qs = { class: "text" }, Vs = { class: "text" }, Zs = { class: "text" }, _s = { class: "text" }, $s = { class: "text" }, ea = { class: "text" }, ta = { class: "text" }, sa = {
|
|
2706
2722
|
key: 1,
|
|
2707
2723
|
class: "card flex-center"
|
|
2708
|
-
},
|
|
2724
|
+
}, aa = {
|
|
2709
2725
|
key: 2,
|
|
2710
2726
|
class: "card flex-center"
|
|
2711
2727
|
};
|
|
2712
|
-
function
|
|
2713
|
-
var
|
|
2714
|
-
const
|
|
2728
|
+
function ia(r, e, s, h, a, B) {
|
|
2729
|
+
var N, _, M, O, V, Z, v, T, Y, j, K, U, X, W, R, J, c, G, z, P, L, p, b, D, C, l, E, A, ae, d, de, ge, ce, y, re, u, ee, te, w, se, le, he;
|
|
2730
|
+
const S = Ce("ElOption"), q = Ce("ElSelect"), H = Ce("ElTooltip"), k = Ce("ArrowRight"), F = Ce("el-icon");
|
|
2715
2731
|
return o(), n("div", Oe, [
|
|
2716
2732
|
t("div", Ye, [
|
|
2717
2733
|
t("div", je, [
|
|
2718
2734
|
t("div", Ke, [
|
|
2719
2735
|
ve(q, {
|
|
2720
|
-
modelValue:
|
|
2721
|
-
"onUpdate:modelValue": e[0] || (e[0] = (i) =>
|
|
2736
|
+
modelValue: a.searchName,
|
|
2737
|
+
"onUpdate:modelValue": e[0] || (e[0] = (i) => a.searchName = i),
|
|
2722
2738
|
filterable: "",
|
|
2723
2739
|
class: "input",
|
|
2724
2740
|
clearable: "",
|
|
2725
2741
|
remote: "",
|
|
2726
|
-
placeholder:
|
|
2742
|
+
placeholder: a.placeholder,
|
|
2727
2743
|
autocomplete: "",
|
|
2728
2744
|
"remote-show-suffix": "",
|
|
2729
|
-
onFocus: e[1] || (e[1] = (i) =>
|
|
2730
|
-
onBlur: e[2] || (e[2] = (i) =>
|
|
2731
|
-
"remote-method":
|
|
2732
|
-
onChange:
|
|
2745
|
+
onFocus: e[1] || (e[1] = (i) => a.placeholder = ""),
|
|
2746
|
+
onBlur: e[2] || (e[2] = (i) => a.placeholder = "search for port name or coordinates"),
|
|
2747
|
+
"remote-method": B.fetchSuggestPosition,
|
|
2748
|
+
onChange: B.handleSearch
|
|
2733
2749
|
}, {
|
|
2734
2750
|
default: Ie(() => [
|
|
2735
|
-
(o(!0), n(
|
|
2751
|
+
(o(!0), n(oe, null, ne(a.positionList, (i) => (o(), Ne(S, {
|
|
2736
2752
|
key: i.name,
|
|
2737
2753
|
label: i.name,
|
|
2738
2754
|
value: i.name
|
|
@@ -2743,16 +2759,16 @@ function ea(A, e, a, l, s, D) {
|
|
|
2743
2759
|
]),
|
|
2744
2760
|
t("div", Ue, [
|
|
2745
2761
|
t("div", {
|
|
2746
|
-
class:
|
|
2747
|
-
onClick: e[3] || (e[3] = (i) =>
|
|
2762
|
+
class: Ae(["item flex-center", a.menuIndex === 1 ? "active" : ""]),
|
|
2763
|
+
onClick: e[3] || (e[3] = (i) => a.menuIndex = 1)
|
|
2748
2764
|
}, "7-Day Forecast", 2),
|
|
2749
2765
|
t("div", {
|
|
2750
|
-
class:
|
|
2751
|
-
onClick: e[4] || (e[4] = (i) =>
|
|
2766
|
+
class: Ae(["item flex-center", a.menuIndex === 2 ? "active" : ""]),
|
|
2767
|
+
onClick: e[4] || (e[4] = (i) => a.menuIndex = 2)
|
|
2752
2768
|
}, "14-Day Forecast", 2),
|
|
2753
2769
|
t("div", {
|
|
2754
|
-
class:
|
|
2755
|
-
onClick: e[5] || (e[5] = (i) =>
|
|
2770
|
+
class: Ae(["item flex-center", a.menuIndex === 3 ? "active" : ""]),
|
|
2771
|
+
onClick: e[5] || (e[5] = (i) => a.menuIndex = 3)
|
|
2756
2772
|
}, "Seasonal Forecast", 2)
|
|
2757
2773
|
])
|
|
2758
2774
|
])
|
|
@@ -2760,55 +2776,55 @@ function ea(A, e, a, l, s, D) {
|
|
|
2760
2776
|
t("div", Xe, [
|
|
2761
2777
|
t("div", We, [
|
|
2762
2778
|
t("div", null, [
|
|
2763
|
-
t("div", Re,
|
|
2764
|
-
t("div", Je, "At " +
|
|
2779
|
+
t("div", Re, g(a.menuIndex === 3 ? "Seasonal" : "") + " Weather forecast for " + g(((N = a.position) == null ? void 0 : N.name) || "-") + " ( UTC" + g(a.positionOffset) + " )", 1),
|
|
2780
|
+
t("div", Je, "At " + g((_ = a.position) != null && _.portId ? "port" : "coordinates") + ", issued " + g(a.issuedDate), 1)
|
|
2765
2781
|
]),
|
|
2766
2782
|
t("div", qe, [
|
|
2767
2783
|
ve(H, {
|
|
2768
2784
|
placement: "left",
|
|
2769
2785
|
effect: "light",
|
|
2770
|
-
content:
|
|
2786
|
+
content: a.isCollected ? "remove the port/coordinate from the search list" : "add the port/coordinate to the search list",
|
|
2771
2787
|
"show-after": 1e3
|
|
2772
2788
|
}, {
|
|
2773
2789
|
default: Ie(() => [
|
|
2774
|
-
|
|
2790
|
+
a.isCollected ? (o(), n("span", {
|
|
2775
2791
|
key: 0,
|
|
2776
2792
|
class: "iconfont icon active",
|
|
2777
|
-
onClick: e[6] || (e[6] = (...i) =>
|
|
2793
|
+
onClick: e[6] || (e[6] = (...i) => B.handleCollect && B.handleCollect(...i))
|
|
2778
2794
|
}, "")) : (o(), n("span", {
|
|
2779
2795
|
key: 1,
|
|
2780
2796
|
class: "iconfont icon",
|
|
2781
|
-
onClick: e[7] || (e[7] = (...i) =>
|
|
2797
|
+
onClick: e[7] || (e[7] = (...i) => B.handleCollect && B.handleCollect(...i))
|
|
2782
2798
|
}, ""))
|
|
2783
2799
|
]),
|
|
2784
2800
|
_: 1
|
|
2785
2801
|
}, 8, ["content"])
|
|
2786
2802
|
])
|
|
2787
2803
|
]),
|
|
2788
|
-
|
|
2789
|
-
(M =
|
|
2804
|
+
a.menuIndex === 1 || a.menuIndex === 2 ? (o(), n("div", Ve, [
|
|
2805
|
+
(M = a.position) != null && M.name && s.token && !((O = a.loading) != null && O.meteogramEchart) ? (o(), n("div", Ze, e[9] || (e[9] = [
|
|
2790
2806
|
t("div", { class: "title" }, "Meteogram", -1),
|
|
2791
2807
|
t("div", { id: "weather-icons" }, null, -1),
|
|
2792
2808
|
t("div", { id: "weather-condition" }, null, -1),
|
|
2793
2809
|
t("div", { id: "wave-swell" }, null, -1)
|
|
2794
|
-
]))) : (V =
|
|
2810
|
+
]))) : (V = a.loading) != null && V.meteogramEchart ? (o(), n("div", _e, e[10] || (e[10] = [
|
|
2795
2811
|
t("img", {
|
|
2796
2812
|
style: { height: "200px" },
|
|
2797
2813
|
src: xe
|
|
2798
2814
|
}, null, -1)
|
|
2799
2815
|
]))) : (o(), n("div", $e, "No Data"))
|
|
2800
|
-
])) :
|
|
2801
|
-
|
|
2802
|
-
(Z =
|
|
2816
|
+
])) : Be("", !0),
|
|
2817
|
+
a.menuIndex === 1 ? (o(), n("div", et, [
|
|
2818
|
+
(Z = a.position) != null && Z.name && s.token && !((v = a.loading) != null && v.weatherEchart) ? (o(), n("div", tt)) : (T = a.loading) != null && T.weatherEchart ? (o(), n("div", st, e[11] || (e[11] = [
|
|
2803
2819
|
t("img", {
|
|
2804
2820
|
style: { height: "200px" },
|
|
2805
2821
|
src: xe
|
|
2806
2822
|
}, null, -1)
|
|
2807
2823
|
]))) : (o(), n("div", at, "No Data"))
|
|
2808
|
-
])) :
|
|
2809
|
-
|
|
2810
|
-
(
|
|
2811
|
-
t("div", nt,
|
|
2824
|
+
])) : Be("", !0),
|
|
2825
|
+
a.menuIndex === 1 ? (o(), n("div", it, [
|
|
2826
|
+
(Y = a.position) != null && Y.name && s.token && !((j = a.loading) != null && j.hoursTable) ? (o(), n("div", ot, [
|
|
2827
|
+
t("div", nt, g(a.pickedWeek) + " " + g(B.computeMMMDDLT(a.pickedDate)), 1),
|
|
2812
2828
|
t("table", At, [
|
|
2813
2829
|
t("tr", rt, [
|
|
2814
2830
|
e[12] || (e[12] = t("th", {
|
|
@@ -2816,15 +2832,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2816
2832
|
colspan: "1",
|
|
2817
2833
|
class: "td-title"
|
|
2818
2834
|
}, [
|
|
2819
|
-
|
|
2835
|
+
$("Local time"),
|
|
2820
2836
|
t("span", { class: "unit" }, "(LT)")
|
|
2821
2837
|
], -1)),
|
|
2822
|
-
(o(!0), n(
|
|
2838
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.hours, (i, m) => (o(), n("th", {
|
|
2823
2839
|
rowspan: "1",
|
|
2824
2840
|
colspan: "1",
|
|
2825
|
-
class:
|
|
2841
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2826
2842
|
key: Math.random() + "local"
|
|
2827
|
-
},
|
|
2843
|
+
}, g(B.computeHourLT(i)), 3))), 128))
|
|
2828
2844
|
]),
|
|
2829
2845
|
t("tr", lt, [
|
|
2830
2846
|
e[13] || (e[13] = t("th", {
|
|
@@ -2832,15 +2848,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2832
2848
|
colspan: "1",
|
|
2833
2849
|
class: "td-title"
|
|
2834
2850
|
}, [
|
|
2835
|
-
|
|
2851
|
+
$("UTC"),
|
|
2836
2852
|
t("span", { class: "unit" })
|
|
2837
2853
|
], -1)),
|
|
2838
|
-
(o(!0), n(
|
|
2854
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.hours, (i, m) => (o(), n("th", {
|
|
2839
2855
|
rowspan: "1",
|
|
2840
2856
|
colspan: "1",
|
|
2841
|
-
class:
|
|
2857
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2842
2858
|
key: Math.random() + "z"
|
|
2843
|
-
},
|
|
2859
|
+
}, g(B.computeHourZ(i)), 3))), 128))
|
|
2844
2860
|
]),
|
|
2845
2861
|
t("tr", ht, [
|
|
2846
2862
|
e[14] || (e[14] = t("td", {
|
|
@@ -2848,19 +2864,19 @@ function ea(A, e, a, l, s, D) {
|
|
|
2848
2864
|
colspan: "1",
|
|
2849
2865
|
class: "td-title"
|
|
2850
2866
|
}, [
|
|
2851
|
-
|
|
2867
|
+
$("Weather"),
|
|
2852
2868
|
t("span", { class: "unit" })
|
|
2853
2869
|
], -1)),
|
|
2854
|
-
(o(!0), n(
|
|
2870
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.weatherUrls, (i, m) => (o(), n("td", {
|
|
2855
2871
|
rowspan: "1",
|
|
2856
2872
|
colspan: "1",
|
|
2857
|
-
class:
|
|
2873
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2858
2874
|
key: Math.random() + "url"
|
|
2859
2875
|
}, [
|
|
2860
2876
|
ve(H, {
|
|
2861
2877
|
placement: "top",
|
|
2862
2878
|
effect: "light",
|
|
2863
|
-
content:
|
|
2879
|
+
content: a.hoursTableData.weatherNames[m],
|
|
2864
2880
|
"show-after": 500
|
|
2865
2881
|
}, {
|
|
2866
2882
|
default: Ie(() => [
|
|
@@ -2868,7 +2884,7 @@ function ea(A, e, a, l, s, D) {
|
|
|
2868
2884
|
key: 0,
|
|
2869
2885
|
class: "iconfont weather-icon",
|
|
2870
2886
|
src: i
|
|
2871
|
-
}, null, 8, dt)) :
|
|
2887
|
+
}, null, 8, dt)) : Be("", !0)
|
|
2872
2888
|
]),
|
|
2873
2889
|
_: 2
|
|
2874
2890
|
}, 1032, ["content"])
|
|
@@ -2880,15 +2896,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2880
2896
|
colspan: "1",
|
|
2881
2897
|
class: "td-title"
|
|
2882
2898
|
}, [
|
|
2883
|
-
|
|
2899
|
+
$("Temperature"),
|
|
2884
2900
|
t("span", { class: "unit" }, "°C")
|
|
2885
2901
|
], -1)),
|
|
2886
|
-
(o(!0), n(
|
|
2902
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.temp, (i, m) => (o(), n("td", {
|
|
2887
2903
|
rowspan: "1",
|
|
2888
2904
|
colspan: "1",
|
|
2889
|
-
class:
|
|
2905
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2890
2906
|
key: Math.random() + i
|
|
2891
|
-
},
|
|
2907
|
+
}, g(i), 3))), 128))
|
|
2892
2908
|
]),
|
|
2893
2909
|
t("tr", ct, [
|
|
2894
2910
|
e[16] || (e[16] = t("td", {
|
|
@@ -2896,15 +2912,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2896
2912
|
colspan: "1",
|
|
2897
2913
|
class: "td-title"
|
|
2898
2914
|
}, [
|
|
2899
|
-
|
|
2915
|
+
$("Precipitation Probability"),
|
|
2900
2916
|
t("span", { class: "unit" }, "%")
|
|
2901
2917
|
], -1)),
|
|
2902
|
-
(o(!0), n(
|
|
2918
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.precipProbability, (i, m) => (o(), n("td", {
|
|
2903
2919
|
rowspan: "1",
|
|
2904
2920
|
colspan: "1",
|
|
2905
|
-
class:
|
|
2921
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2906
2922
|
key: Math.random() + i
|
|
2907
|
-
},
|
|
2923
|
+
}, g(i), 3))), 128))
|
|
2908
2924
|
]),
|
|
2909
2925
|
t("tr", wt, [
|
|
2910
2926
|
e[17] || (e[17] = t("td", {
|
|
@@ -2912,15 +2928,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2912
2928
|
colspan: "1",
|
|
2913
2929
|
class: "td-title"
|
|
2914
2930
|
}, [
|
|
2915
|
-
|
|
2931
|
+
$("Precipitation 1h"),
|
|
2916
2932
|
t("span", { class: "unit" }, "mm")
|
|
2917
2933
|
], -1)),
|
|
2918
|
-
(o(!0), n(
|
|
2934
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.precip1h, (i, m) => (o(), n("td", {
|
|
2919
2935
|
rowspan: "1",
|
|
2920
2936
|
colspan: "1",
|
|
2921
|
-
class:
|
|
2937
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2922
2938
|
key: Math.random() + i
|
|
2923
|
-
},
|
|
2939
|
+
}, g(i), 3))), 128))
|
|
2924
2940
|
]),
|
|
2925
2941
|
t("tr", pt, [
|
|
2926
2942
|
e[18] || (e[18] = t("td", {
|
|
@@ -2928,15 +2944,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2928
2944
|
colspan: "1",
|
|
2929
2945
|
class: "td-title"
|
|
2930
2946
|
}, [
|
|
2931
|
-
|
|
2947
|
+
$("Visibility"),
|
|
2932
2948
|
t("span", { class: "unit" }, "nm")
|
|
2933
2949
|
], -1)),
|
|
2934
|
-
(o(!0), n(
|
|
2950
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.visibility, (i, m) => (o(), n("td", {
|
|
2935
2951
|
rowspan: "1",
|
|
2936
2952
|
colspan: "1",
|
|
2937
|
-
class:
|
|
2953
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2938
2954
|
key: Math.random() + i
|
|
2939
|
-
},
|
|
2955
|
+
}, g(i), 3))), 128))
|
|
2940
2956
|
]),
|
|
2941
2957
|
t("tr", mt, [
|
|
2942
2958
|
e[19] || (e[19] = t("td", {
|
|
@@ -2944,15 +2960,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2944
2960
|
colspan: "1",
|
|
2945
2961
|
class: "td-title"
|
|
2946
2962
|
}, [
|
|
2947
|
-
|
|
2963
|
+
$("Relative Humidity"),
|
|
2948
2964
|
t("span", { class: "unit" }, "%")
|
|
2949
2965
|
], -1)),
|
|
2950
|
-
(o(!0), n(
|
|
2966
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.humidity, (i, m) => (o(), n("td", {
|
|
2951
2967
|
rowspan: "1",
|
|
2952
2968
|
colspan: "1",
|
|
2953
|
-
class:
|
|
2969
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2954
2970
|
key: Math.random() + i
|
|
2955
|
-
},
|
|
2971
|
+
}, g(i), 3))), 128))
|
|
2956
2972
|
]),
|
|
2957
2973
|
t("tr", ut, [
|
|
2958
2974
|
e[20] || (e[20] = t("td", {
|
|
@@ -2960,19 +2976,19 @@ function ea(A, e, a, l, s, D) {
|
|
|
2960
2976
|
colspan: "1",
|
|
2961
2977
|
class: "td-title"
|
|
2962
2978
|
}, [
|
|
2963
|
-
|
|
2979
|
+
$("Wind direction"),
|
|
2964
2980
|
t("span", { class: "unit" })
|
|
2965
2981
|
], -1)),
|
|
2966
|
-
(o(!0), n(
|
|
2982
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windDir, (i, m) => (o(), n("td", {
|
|
2967
2983
|
rowspan: "1",
|
|
2968
2984
|
colspan: "1",
|
|
2969
|
-
class:
|
|
2985
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2970
2986
|
key: Math.random() + i
|
|
2971
2987
|
}, [
|
|
2972
2988
|
isNaN(i) ? (o(), n("span", ft, "-")) : (o(), n("span", {
|
|
2973
2989
|
key: 0,
|
|
2974
2990
|
class: "iconfont icon",
|
|
2975
|
-
style:
|
|
2991
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
2976
2992
|
}, "", 4))
|
|
2977
2993
|
], 2))), 128))
|
|
2978
2994
|
]),
|
|
@@ -2982,15 +2998,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2982
2998
|
colspan: "1",
|
|
2983
2999
|
class: "td-title"
|
|
2984
3000
|
}, [
|
|
2985
|
-
|
|
3001
|
+
$("Wind speed"),
|
|
2986
3002
|
t("span", { class: "unit" }, "kts")
|
|
2987
3003
|
], -1)),
|
|
2988
|
-
(o(!0), n(
|
|
3004
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windSpeed, (i, m) => (o(), n("td", {
|
|
2989
3005
|
rowspan: "1",
|
|
2990
3006
|
colspan: "1",
|
|
2991
|
-
class:
|
|
3007
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2992
3008
|
key: Math.random() + i
|
|
2993
|
-
},
|
|
3009
|
+
}, g(i), 3))), 128))
|
|
2994
3010
|
]),
|
|
2995
3011
|
t("tr", Bt, [
|
|
2996
3012
|
e[22] || (e[22] = t("td", {
|
|
@@ -2998,15 +3014,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
2998
3014
|
colspan: "1",
|
|
2999
3015
|
class: "td-title"
|
|
3000
3016
|
}, [
|
|
3001
|
-
|
|
3017
|
+
$("Wind gust"),
|
|
3002
3018
|
t("span", { class: "unit" }, "kts")
|
|
3003
3019
|
], -1)),
|
|
3004
|
-
(o(!0), n(
|
|
3020
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windGust, (i, m) => (o(), n("td", {
|
|
3005
3021
|
rowspan: "1",
|
|
3006
3022
|
colspan: "1",
|
|
3007
|
-
class:
|
|
3023
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3008
3024
|
key: Math.random() + i
|
|
3009
|
-
},
|
|
3025
|
+
}, g(i), 3))), 128))
|
|
3010
3026
|
])
|
|
3011
3027
|
]),
|
|
3012
3028
|
e[34] || (e[34] = t("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
|
|
@@ -3017,15 +3033,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3017
3033
|
colspan: "1",
|
|
3018
3034
|
class: "td-title"
|
|
3019
3035
|
}, [
|
|
3020
|
-
|
|
3036
|
+
$("Wind wave height"),
|
|
3021
3037
|
t("span", { class: "unit" }, "m")
|
|
3022
3038
|
], -1)),
|
|
3023
|
-
(o(!0), n(
|
|
3039
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windwaveHeight, (i, m) => (o(), n("td", {
|
|
3024
3040
|
rowspan: "1",
|
|
3025
3041
|
colspan: "1",
|
|
3026
|
-
class:
|
|
3042
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3027
3043
|
key: Math.random() + i
|
|
3028
|
-
},
|
|
3044
|
+
}, g(i), 3))), 128))
|
|
3029
3045
|
]),
|
|
3030
3046
|
t("tr", Ct, [
|
|
3031
3047
|
e[24] || (e[24] = t("td", {
|
|
@@ -3033,19 +3049,19 @@ function ea(A, e, a, l, s, D) {
|
|
|
3033
3049
|
colspan: "1",
|
|
3034
3050
|
class: "td-title"
|
|
3035
3051
|
}, [
|
|
3036
|
-
|
|
3052
|
+
$("Wind wave direction"),
|
|
3037
3053
|
t("span", { class: "unit" })
|
|
3038
3054
|
], -1)),
|
|
3039
|
-
(o(!0), n(
|
|
3055
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windwaveDir, (i, m) => (o(), n("td", {
|
|
3040
3056
|
rowspan: "1",
|
|
3041
3057
|
colspan: "1",
|
|
3042
|
-
class:
|
|
3058
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3043
3059
|
key: Math.random() + i
|
|
3044
3060
|
}, [
|
|
3045
3061
|
isNaN(i) ? (o(), n("span", vt, "-")) : (o(), n("span", {
|
|
3046
3062
|
key: 0,
|
|
3047
3063
|
class: "iconfont icon",
|
|
3048
|
-
style:
|
|
3064
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
3049
3065
|
}, "", 4))
|
|
3050
3066
|
], 2))), 128))
|
|
3051
3067
|
]),
|
|
@@ -3055,15 +3071,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3055
3071
|
colspan: "1",
|
|
3056
3072
|
class: "td-title"
|
|
3057
3073
|
}, [
|
|
3058
|
-
|
|
3074
|
+
$("Wind wave period"),
|
|
3059
3075
|
t("span", { class: "unit" }, "s")
|
|
3060
3076
|
], -1)),
|
|
3061
|
-
(o(!0), n(
|
|
3077
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windwavePeriod, (i, m) => (o(), n("td", {
|
|
3062
3078
|
rowspan: "1",
|
|
3063
3079
|
colspan: "1",
|
|
3064
|
-
class:
|
|
3080
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3065
3081
|
key: Math.random() + i
|
|
3066
|
-
},
|
|
3082
|
+
}, g(i), 3))), 128))
|
|
3067
3083
|
]),
|
|
3068
3084
|
t("tr", bt, [
|
|
3069
3085
|
e[26] || (e[26] = t("td", {
|
|
@@ -3071,15 +3087,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3071
3087
|
colspan: "1",
|
|
3072
3088
|
class: "td-title"
|
|
3073
3089
|
}, [
|
|
3074
|
-
|
|
3090
|
+
$("Swell height"),
|
|
3075
3091
|
t("span", { class: "unit" }, "m")
|
|
3076
3092
|
], -1)),
|
|
3077
|
-
(o(!0), n(
|
|
3093
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.swellHeight, (i, m) => (o(), n("td", {
|
|
3078
3094
|
rowspan: "1",
|
|
3079
3095
|
colspan: "1",
|
|
3080
|
-
class:
|
|
3096
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3081
3097
|
key: Math.random() + i
|
|
3082
|
-
},
|
|
3098
|
+
}, g(i), 3))), 128))
|
|
3083
3099
|
]),
|
|
3084
3100
|
t("tr", Et, [
|
|
3085
3101
|
e[27] || (e[27] = t("td", {
|
|
@@ -3087,19 +3103,19 @@ function ea(A, e, a, l, s, D) {
|
|
|
3087
3103
|
colspan: "1",
|
|
3088
3104
|
class: "td-title"
|
|
3089
3105
|
}, [
|
|
3090
|
-
|
|
3106
|
+
$("Swell direction"),
|
|
3091
3107
|
t("span", { class: "unit" })
|
|
3092
3108
|
], -1)),
|
|
3093
|
-
(o(!0), n(
|
|
3109
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.swellDir, (i, m) => (o(), n("td", {
|
|
3094
3110
|
rowspan: "1",
|
|
3095
3111
|
colspan: "1",
|
|
3096
|
-
class:
|
|
3112
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3097
3113
|
key: Math.random() + i
|
|
3098
3114
|
}, [
|
|
3099
3115
|
isNaN(i) ? (o(), n("span", Qt, "-")) : (o(), n("span", {
|
|
3100
3116
|
key: 0,
|
|
3101
3117
|
class: "iconfont icon",
|
|
3102
|
-
style:
|
|
3118
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
3103
3119
|
}, "", 4))
|
|
3104
3120
|
], 2))), 128))
|
|
3105
3121
|
]),
|
|
@@ -3109,15 +3125,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3109
3125
|
colspan: "1",
|
|
3110
3126
|
class: "td-title"
|
|
3111
3127
|
}, [
|
|
3112
|
-
|
|
3128
|
+
$("Swell period"),
|
|
3113
3129
|
t("span", { class: "unit" }, "s")
|
|
3114
3130
|
], -1)),
|
|
3115
|
-
(o(!0), n(
|
|
3131
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.swellPeriod, (i, m) => (o(), n("td", {
|
|
3116
3132
|
rowspan: "1",
|
|
3117
3133
|
colspan: "1",
|
|
3118
|
-
class:
|
|
3134
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3119
3135
|
key: Math.random() + i
|
|
3120
|
-
},
|
|
3136
|
+
}, g(i), 3))), 128))
|
|
3121
3137
|
]),
|
|
3122
3138
|
t("tr", Lt, [
|
|
3123
3139
|
e[29] || (e[29] = t("td", {
|
|
@@ -3125,15 +3141,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3125
3141
|
colspan: "1",
|
|
3126
3142
|
class: "td-title"
|
|
3127
3143
|
}, [
|
|
3128
|
-
|
|
3144
|
+
$("Sig wave height"),
|
|
3129
3145
|
t("span", { class: "unit" }, "m")
|
|
3130
3146
|
], -1)),
|
|
3131
|
-
(o(!0), n(
|
|
3147
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.sigwaveHeight, (i, m) => (o(), n("td", {
|
|
3132
3148
|
rowspan: "1",
|
|
3133
3149
|
colspan: "1",
|
|
3134
|
-
class:
|
|
3150
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3135
3151
|
key: Math.random() + i
|
|
3136
|
-
},
|
|
3152
|
+
}, g(i), 3))), 128))
|
|
3137
3153
|
]),
|
|
3138
3154
|
t("tr", zt, [
|
|
3139
3155
|
e[30] || (e[30] = t("td", {
|
|
@@ -3141,19 +3157,19 @@ function ea(A, e, a, l, s, D) {
|
|
|
3141
3157
|
colspan: "1",
|
|
3142
3158
|
class: "td-title"
|
|
3143
3159
|
}, [
|
|
3144
|
-
|
|
3160
|
+
$("Current direction"),
|
|
3145
3161
|
t("span", { class: "unit" })
|
|
3146
3162
|
], -1)),
|
|
3147
|
-
(o(!0), n(
|
|
3163
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.currentDir, (i, m) => (o(), n("td", {
|
|
3148
3164
|
rowspan: "1",
|
|
3149
3165
|
colspan: "1",
|
|
3150
|
-
class:
|
|
3166
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3151
3167
|
key: Math.random() + i
|
|
3152
3168
|
}, [
|
|
3153
3169
|
isNaN(i) ? (o(), n("span", Ht, "-")) : (o(), n("span", {
|
|
3154
3170
|
key: 0,
|
|
3155
3171
|
class: "iconfont icon",
|
|
3156
|
-
style:
|
|
3172
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
3157
3173
|
}, "", 4))
|
|
3158
3174
|
], 2))), 128))
|
|
3159
3175
|
]),
|
|
@@ -3163,15 +3179,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3163
3179
|
colspan: "1",
|
|
3164
3180
|
class: "td-title"
|
|
3165
3181
|
}, [
|
|
3166
|
-
|
|
3182
|
+
$("Current speed"),
|
|
3167
3183
|
t("span", { class: "unit" }, "kts")
|
|
3168
3184
|
], -1)),
|
|
3169
|
-
(o(!0), n(
|
|
3185
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.currentSpeed, (i, m) => (o(), n("td", {
|
|
3170
3186
|
rowspan: "1",
|
|
3171
3187
|
colspan: "1",
|
|
3172
|
-
class:
|
|
3188
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3173
3189
|
key: Math.random() + i
|
|
3174
|
-
},
|
|
3190
|
+
}, g(i), 3))), 128))
|
|
3175
3191
|
])
|
|
3176
3192
|
]),
|
|
3177
3193
|
e[35] || (e[35] = t("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
|
|
@@ -3182,15 +3198,15 @@ function ea(A, e, a, l, s, D) {
|
|
|
3182
3198
|
colspan: "1",
|
|
3183
3199
|
class: "td-title"
|
|
3184
3200
|
}, [
|
|
3185
|
-
|
|
3201
|
+
$("Sea level height"),
|
|
3186
3202
|
t("span", { class: "unit" }, "m")
|
|
3187
3203
|
], -1)),
|
|
3188
|
-
(o(!0), n(
|
|
3204
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.seaLevel, (i, m) => (o(), n("td", {
|
|
3189
3205
|
rowspan: "1",
|
|
3190
3206
|
colspan: "1",
|
|
3191
|
-
class:
|
|
3207
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3192
3208
|
key: Math.random() + i
|
|
3193
|
-
},
|
|
3209
|
+
}, g(i), 3))), 128))
|
|
3194
3210
|
]),
|
|
3195
3211
|
t("tr", Tt, [
|
|
3196
3212
|
e[33] || (e[33] = t("td", {
|
|
@@ -3198,26 +3214,26 @@ function ea(A, e, a, l, s, D) {
|
|
|
3198
3214
|
colspan: "1",
|
|
3199
3215
|
class: "td-title"
|
|
3200
3216
|
}, [
|
|
3201
|
-
|
|
3217
|
+
$("Sea surface temperature"),
|
|
3202
3218
|
t("span", { class: "unit" }, "°C")
|
|
3203
3219
|
], -1)),
|
|
3204
|
-
(o(!0), n(
|
|
3220
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.seaTemp, (i, m) => (o(), n("td", {
|
|
3205
3221
|
rowspan: "1",
|
|
3206
3222
|
colspan: "1",
|
|
3207
|
-
class:
|
|
3223
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3208
3224
|
key: Math.random() + i
|
|
3209
|
-
},
|
|
3225
|
+
}, g(i), 3))), 128))
|
|
3210
3226
|
])
|
|
3211
3227
|
])
|
|
3212
|
-
])) : (
|
|
3228
|
+
])) : (K = a.loading) != null && K.hoursTable ? (o(), n("div", Gt, e[36] || (e[36] = [
|
|
3213
3229
|
t("img", {
|
|
3214
3230
|
style: { height: "200px" },
|
|
3215
3231
|
src: xe
|
|
3216
3232
|
}, null, -1)
|
|
3217
3233
|
]))) : (o(), n("div", St, "No Data"))
|
|
3218
|
-
])) :
|
|
3219
|
-
|
|
3220
|
-
(
|
|
3234
|
+
])) : Be("", !0),
|
|
3235
|
+
a.menuIndex === 2 ? (o(), n("div", Ft, [
|
|
3236
|
+
(U = a.position) != null && U.name && s.token && !((X = a.loading) != null && X.daysTable) ? (o(), n("div", Ot, [
|
|
3221
3237
|
e[48] || (e[48] = t("div", { class: "date" }, "Daily Forecast", -1)),
|
|
3222
3238
|
t("table", Yt, [
|
|
3223
3239
|
e[46] || (e[46] = t("tr", { class: "day tr-title" }, [
|
|
@@ -3314,13 +3330,13 @@ function ea(A, e, a, l, s, D) {
|
|
|
3314
3330
|
style: { width: "75px" }
|
|
3315
3331
|
}, "Sig.wave_max")
|
|
3316
3332
|
], -1)),
|
|
3317
|
-
(o(!0), n(
|
|
3333
|
+
(o(!0), n(oe, null, ne(a.daysTableData, (i, m) => (o(), n("tr", {
|
|
3318
3334
|
class: "text border-bottom",
|
|
3319
3335
|
key: Math.random() + i.localDate
|
|
3320
3336
|
}, [
|
|
3321
3337
|
t("td", jt, [
|
|
3322
|
-
t("div", null,
|
|
3323
|
-
t("div", null,
|
|
3338
|
+
t("div", null, g(i.localWeek), 1),
|
|
3339
|
+
t("div", null, g(i.localDate), 1)
|
|
3324
3340
|
]),
|
|
3325
3341
|
t("td", Kt, [
|
|
3326
3342
|
i.weatherUrl ? (o(), n("img", {
|
|
@@ -3328,76 +3344,76 @@ function ea(A, e, a, l, s, D) {
|
|
|
3328
3344
|
class: "iconfont weather-icon",
|
|
3329
3345
|
style: { width: "34px", height: "34px" },
|
|
3330
3346
|
src: i.weatherUrl
|
|
3331
|
-
}, null, 8, Ut)) :
|
|
3347
|
+
}, null, 8, Ut)) : Be("", !0)
|
|
3332
3348
|
]),
|
|
3333
|
-
t("td", Xt,
|
|
3349
|
+
t("td", Xt, g(i.weatherName), 1),
|
|
3334
3350
|
t("td", Wt, [
|
|
3335
|
-
|
|
3351
|
+
$(g(i.minTemp) + " / " + g(i.maxTemp), 1),
|
|
3336
3352
|
e[37] || (e[37] = t("span", { class: "unit" }, "°C", -1))
|
|
3337
3353
|
]),
|
|
3338
3354
|
t("td", Rt, [
|
|
3339
|
-
|
|
3355
|
+
$(g(i.precipSum), 1),
|
|
3340
3356
|
e[38] || (e[38] = t("span", { class: "unit" }, "mm", -1))
|
|
3341
3357
|
]),
|
|
3342
3358
|
t("td", Jt, [
|
|
3343
|
-
|
|
3359
|
+
$(g(i.precipRainSum), 1),
|
|
3344
3360
|
e[39] || (e[39] = t("span", { class: "unit" }, "mm", -1))
|
|
3345
3361
|
]),
|
|
3346
3362
|
t("td", qt, [
|
|
3347
|
-
|
|
3363
|
+
$(g(i.precipSnowfallSum), 1),
|
|
3348
3364
|
e[40] || (e[40] = t("span", { class: "unit" }, "mm", -1))
|
|
3349
3365
|
]),
|
|
3350
3366
|
t("td", Vt, [
|
|
3351
|
-
t("span", null,
|
|
3367
|
+
t("span", null, g(i.windSpeedMax), 1),
|
|
3352
3368
|
e[41] || (e[41] = t("span", { class: "unit" }, "kts", -1)),
|
|
3353
|
-
isNaN(i.windSpeedDir)
|
|
3369
|
+
!isNaN(i.windSpeedDir) && !isNaN(i.windSpeedMax) ? (o(), n("span", {
|
|
3354
3370
|
key: 0,
|
|
3355
3371
|
class: "iconfont icon",
|
|
3356
|
-
style:
|
|
3357
|
-
}, "", 4))
|
|
3372
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.windSpeedDir}deg)` })
|
|
3373
|
+
}, "", 4)) : (o(), n("span", Zt, "-"))
|
|
3358
3374
|
]),
|
|
3359
3375
|
t("td", _t, [
|
|
3360
|
-
t("span", null,
|
|
3376
|
+
t("span", null, g(i.gustSpeedMax), 1),
|
|
3361
3377
|
e[42] || (e[42] = t("span", { class: "unit" }, "kts", -1))
|
|
3362
3378
|
]),
|
|
3363
3379
|
t("td", $t, [
|
|
3364
|
-
t("span", null,
|
|
3380
|
+
t("span", null, g(i.windWaveHeight), 1),
|
|
3365
3381
|
e[43] || (e[43] = t("span", { class: "unit" }, "m", -1)),
|
|
3366
|
-
isNaN(i.windWaveDir)
|
|
3382
|
+
!isNaN(i.windWaveDir) && !isNaN(i.windWaveHeight) ? (o(), n("span", {
|
|
3367
3383
|
key: 0,
|
|
3368
3384
|
class: "iconfont icon",
|
|
3369
|
-
style:
|
|
3370
|
-
}, "", 4))
|
|
3385
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.windWaveDir}deg)` })
|
|
3386
|
+
}, "", 4)) : (o(), n("span", es, "-"))
|
|
3371
3387
|
]),
|
|
3372
3388
|
t("td", ts, [
|
|
3373
|
-
t("span", null,
|
|
3389
|
+
t("span", null, g(i.swellWaveHeight), 1),
|
|
3374
3390
|
e[44] || (e[44] = t("span", { class: "unit" }, "m", -1)),
|
|
3375
|
-
isNaN(i.swellWaveDir)
|
|
3391
|
+
!isNaN(i.swellWaveDir) && !isNaN(i.swellWaveHeight) ? (o(), n("span", {
|
|
3376
3392
|
key: 0,
|
|
3377
3393
|
class: "iconfont icon",
|
|
3378
|
-
style:
|
|
3379
|
-
}, "", 4))
|
|
3394
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.swellWaveDir}deg)` })
|
|
3395
|
+
}, "", 4)) : (o(), n("span", ss, "-"))
|
|
3380
3396
|
]),
|
|
3381
3397
|
t("td", as, [
|
|
3382
|
-
t("span", null,
|
|
3398
|
+
t("span", null, g(i.sigWaveHeight), 1),
|
|
3383
3399
|
e[45] || (e[45] = t("span", { class: "unit" }, "m", -1)),
|
|
3384
|
-
isNaN(i.sigWaveDir)
|
|
3400
|
+
!isNaN(i.sigWaveDir) && !isNaN(i.sigWaveHeight) ? (o(), n("span", {
|
|
3385
3401
|
key: 0,
|
|
3386
3402
|
class: "iconfont icon",
|
|
3387
|
-
style:
|
|
3388
|
-
}, "", 4))
|
|
3403
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.sigWaveDir}deg)` })
|
|
3404
|
+
}, "", 4)) : (o(), n("span", is, "-"))
|
|
3389
3405
|
])
|
|
3390
3406
|
]))), 128))
|
|
3391
3407
|
])
|
|
3392
|
-
])) : (
|
|
3408
|
+
])) : (W = a.loading) != null && W.daysTable ? (o(), n("div", os, e[49] || (e[49] = [
|
|
3393
3409
|
t("img", {
|
|
3394
3410
|
style: { height: "200px" },
|
|
3395
3411
|
src: xe
|
|
3396
3412
|
}, null, -1)
|
|
3397
3413
|
]))) : (o(), n("div", ns, "No Data"))
|
|
3398
|
-
])) :
|
|
3399
|
-
|
|
3400
|
-
(
|
|
3414
|
+
])) : Be("", !0),
|
|
3415
|
+
a.menuIndex === 2 ? (o(), n("div", As, [
|
|
3416
|
+
(R = a.position) != null && R.name && s.token && !((J = a.loading) != null && J.hourlyTable) ? (o(), n("div", rs, [
|
|
3401
3417
|
e[52] || (e[52] = t("div", { class: "date" }, "Hourly Forecast", -1)),
|
|
3402
3418
|
t("table", ls, [
|
|
3403
3419
|
e[50] || (e[50] = t("tr", { class: "day tr-title" }, [
|
|
@@ -3541,110 +3557,138 @@ function ea(A, e, a, l, s, D) {
|
|
|
3541
3557
|
class: "border"
|
|
3542
3558
|
}, "Temp(°C)")
|
|
3543
3559
|
], -1)),
|
|
3544
|
-
(o(!0), n(
|
|
3560
|
+
(o(!0), n(oe, null, ne(a.hourlyTableData, (i, m) => (o(), n("tr", {
|
|
3545
3561
|
class: "text border-bottom",
|
|
3546
3562
|
key: Math.random() + i.localDate
|
|
3547
3563
|
}, [
|
|
3548
3564
|
t("td", hs, [
|
|
3549
|
-
t("div", null,
|
|
3565
|
+
t("div", null, g(i.localDate), 1)
|
|
3550
3566
|
]),
|
|
3551
3567
|
t("td", ds, [
|
|
3552
|
-
t("div", null,
|
|
3568
|
+
t("div", null, g(i.temp), 1)
|
|
3569
|
+
]),
|
|
3570
|
+
t("td", gs, g(i.precipSum), 1),
|
|
3571
|
+
t("td", cs, g(i.visibility), 1),
|
|
3572
|
+
t("td", ws, [
|
|
3573
|
+
$(g(i.windDir) + " ", 1),
|
|
3574
|
+
!isNaN(i.windBearing) && i.windDir ? (o(), n("span", {
|
|
3575
|
+
key: 0,
|
|
3576
|
+
class: "iconfont icon",
|
|
3577
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.windBearing}deg)` })
|
|
3578
|
+
}, "", 4)) : (o(), n("span", ps, "-"))
|
|
3579
|
+
]),
|
|
3580
|
+
t("td", ms, g(i.windSpeed), 1),
|
|
3581
|
+
t("td", us, g(i.windBF), 1),
|
|
3582
|
+
t("td", fs, g(i.windGusts), 1),
|
|
3583
|
+
t("td", Ds, [
|
|
3584
|
+
$(g(i.windWaveDir) + " ", 1),
|
|
3585
|
+
!isNaN(i.windWaveBearing) && i.windWaveDir ? (o(), n("span", {
|
|
3586
|
+
key: 0,
|
|
3587
|
+
class: "iconfont icon",
|
|
3588
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.windWaveBearing}deg)` })
|
|
3589
|
+
}, "", 4)) : (o(), n("span", Bs, "-"))
|
|
3590
|
+
]),
|
|
3591
|
+
t("td", ys, g(i.windWaveHeight), 1),
|
|
3592
|
+
t("td", xs, g(i.windWavePeriod), 1),
|
|
3593
|
+
t("td", Cs, [
|
|
3594
|
+
$(g(i.sigWaveDir) + " ", 1),
|
|
3595
|
+
!isNaN(i.sigWaveBearing) && i.sigWaveDir ? (o(), n("span", {
|
|
3596
|
+
key: 0,
|
|
3597
|
+
class: "iconfont icon",
|
|
3598
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.sigWaveBearing}deg)` })
|
|
3599
|
+
}, "", 4)) : (o(), n("span", vs, "-"))
|
|
3600
|
+
]),
|
|
3601
|
+
t("td", Is, g(i.sigWaveHeight), 1),
|
|
3602
|
+
t("td", bs, g(i.sigWavePeriod), 1),
|
|
3603
|
+
t("td", Es, [
|
|
3604
|
+
$(g(i.currentDir) + " ", 1),
|
|
3605
|
+
!isNaN(i.currentBearing) && i.currentDir ? (o(), n("span", {
|
|
3606
|
+
key: 0,
|
|
3607
|
+
class: "iconfont icon",
|
|
3608
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.currentBearing}deg)` })
|
|
3609
|
+
}, "", 4)) : (o(), n("span", Qs, "-"))
|
|
3553
3610
|
]),
|
|
3554
|
-
t("td",
|
|
3555
|
-
t("td",
|
|
3556
|
-
t("td",
|
|
3557
|
-
t("td", ps, c(i.windSpeed), 1),
|
|
3558
|
-
t("td", ms, c(i.windBF), 1),
|
|
3559
|
-
t("td", us, c(i.windGusts), 1),
|
|
3560
|
-
t("td", fs, c(i.windWaveDir), 1),
|
|
3561
|
-
t("td", Ds, c(i.windWaveHeight), 1),
|
|
3562
|
-
t("td", Bs, c(i.windWavePeriod), 1),
|
|
3563
|
-
t("td", ys, c(i.sigWaveDir), 1),
|
|
3564
|
-
t("td", xs, c(i.sigWaveHeight), 1),
|
|
3565
|
-
t("td", Cs, c(i.sigWavePeriod), 1),
|
|
3566
|
-
t("td", vs, c(i.currentDir), 1),
|
|
3567
|
-
t("td", Is, c(i.currentSpd), 1),
|
|
3568
|
-
t("td", bs, c(i.seaLevel), 1),
|
|
3569
|
-
t("td", Es, c(i.seaSurfaceTemp), 1)
|
|
3611
|
+
t("td", Ms, g(i.currentSpd), 1),
|
|
3612
|
+
t("td", Ls, g(i.seaLevel), 1),
|
|
3613
|
+
t("td", zs, g(i.seaSurfaceTemp), 1)
|
|
3570
3614
|
]))), 128))
|
|
3571
3615
|
])
|
|
3572
|
-
])) : (
|
|
3616
|
+
])) : (c = a.loading) != null && c.hourlyTable ? (o(), n("div", Hs, e[53] || (e[53] = [
|
|
3573
3617
|
t("img", {
|
|
3574
3618
|
style: { height: "200px" },
|
|
3575
3619
|
src: xe
|
|
3576
3620
|
}, null, -1)
|
|
3577
|
-
]))) : (o(), n("div",
|
|
3578
|
-
])) :
|
|
3579
|
-
|
|
3580
|
-
(
|
|
3581
|
-
t("div",
|
|
3621
|
+
]))) : (o(), n("div", ks, "No Data"))
|
|
3622
|
+
])) : Be("", !0),
|
|
3623
|
+
a.menuIndex === 3 ? (o(), n("div", Ps, [
|
|
3624
|
+
(G = a.position) != null && G.name && s.token && !((z = a.loading) != null && z.seasonalEchart) ? (o(), n("div", Ns, [
|
|
3625
|
+
t("div", Ts, [
|
|
3582
3626
|
t("div", {
|
|
3583
3627
|
class: "title flex-start",
|
|
3584
3628
|
id: "seasonal-title",
|
|
3585
|
-
onClick: e[8] || (e[8] = (i) =>
|
|
3629
|
+
onClick: e[8] || (e[8] = (i) => a.seasonalData.showMonths = !a.seasonalData.showMonths)
|
|
3586
3630
|
}, [
|
|
3587
|
-
t("div",
|
|
3588
|
-
t("div",
|
|
3589
|
-
ve(
|
|
3631
|
+
t("div", Gs, g((p = (L = (P = a.currentMonth) == null ? void 0 : P.month) == null ? void 0 : L.split("-")) == null ? void 0 : p[0]) + " " + g((C = (D = (b = a.currentMonth) == null ? void 0 : b.month) == null ? void 0 : D.split("-")) == null ? void 0 : C[1]), 1),
|
|
3632
|
+
t("div", Ss, [
|
|
3633
|
+
ve(F, null, {
|
|
3590
3634
|
default: Ie(() => [
|
|
3591
3635
|
ve(k)
|
|
3592
3636
|
]),
|
|
3593
3637
|
_: 1
|
|
3594
3638
|
})
|
|
3595
3639
|
]),
|
|
3596
|
-
Te(t("div",
|
|
3597
|
-
t("div",
|
|
3598
|
-
(o(!0), n(
|
|
3640
|
+
Te(t("div", Fs, [
|
|
3641
|
+
t("div", Os, [
|
|
3642
|
+
(o(!0), n(oe, null, ne(a.monthsOptions, (i, m) => {
|
|
3599
3643
|
var f;
|
|
3600
3644
|
return o(), n("div", {
|
|
3601
3645
|
key: i,
|
|
3602
|
-
class:
|
|
3603
|
-
onClick: (ue) =>
|
|
3604
|
-
},
|
|
3646
|
+
class: Ae(["month-option", ((f = a.currentMonth) == null ? void 0 : f.month) === i.month ? "active" : ""]),
|
|
3647
|
+
onClick: (ue) => B.handleSelectMonth(i)
|
|
3648
|
+
}, g(i.month), 11, Ys);
|
|
3605
3649
|
}), 128))
|
|
3606
3650
|
])
|
|
3607
3651
|
], 512), [
|
|
3608
|
-
[Ge,
|
|
3652
|
+
[Ge, a.seasonalData.showMonths]
|
|
3609
3653
|
])
|
|
3610
3654
|
]),
|
|
3611
3655
|
e[54] || (e[54] = t("div", { id: "temperature-echart" }, null, -1)),
|
|
3612
3656
|
e[55] || (e[55] = t("div", { id: "wind-precip-echart" }, null, -1))
|
|
3613
3657
|
]),
|
|
3614
|
-
t("div",
|
|
3615
|
-
t("div",
|
|
3658
|
+
t("div", js, [
|
|
3659
|
+
t("div", Ks, g((l = a.currentMonth) == null ? void 0 : l.month) + " Summary", 1),
|
|
3616
3660
|
e[56] || (e[56] = t("div", { class: "label" }, "Temperature", -1)),
|
|
3617
|
-
t("div",
|
|
3618
|
-
t("div",
|
|
3619
|
-
t("div",
|
|
3620
|
-
t("div",
|
|
3661
|
+
t("div", Us, "Avg High Temp: " + g(a.seasonalData.minHighTemp) + " to " + g(a.seasonalData.maxHighTemp) + " °C", 1),
|
|
3662
|
+
t("div", Xs, "Avg Low Temp: " + g(a.seasonalData.minLowTemp) + " to " + g(a.seasonalData.maxLowTemp) + " °C", 1),
|
|
3663
|
+
t("div", Ws, "Hottest Day: " + g(a.seasonalData.hottestDay), 1),
|
|
3664
|
+
t("div", Rs, "Coldest Day: " + g(a.seasonalData.coldestDay), 1),
|
|
3621
3665
|
e[57] || (e[57] = t("div", { class: "label" }, "Precipitation", -1)),
|
|
3622
|
-
t("div",
|
|
3623
|
-
t("div",
|
|
3624
|
-
t("div",
|
|
3625
|
-
t("div",
|
|
3626
|
-
t("div",
|
|
3666
|
+
t("div", Js, "Light (<10mm): " + g((ae = (A = (E = a.seasonalData) == null ? void 0 : E.precip) == null ? void 0 : A.filter((i) => i < 10)) == null ? void 0 : ae.length) + " days", 1),
|
|
3667
|
+
t("div", qs, "Moderate (<24.9mm): " + g((ge = (de = (d = a.seasonalData) == null ? void 0 : d.precip) == null ? void 0 : de.filter((i) => i >= 10 && i < 24.9)) == null ? void 0 : ge.length) + " days", 1),
|
|
3668
|
+
t("div", Vs, "Heavy (<49.9mm): " + g((re = (y = (ce = a.seasonalData) == null ? void 0 : ce.precip) == null ? void 0 : y.filter((i) => i >= 24.9 && i < 49.9)) == null ? void 0 : re.length) + " days", 1),
|
|
3669
|
+
t("div", Zs, "Rainstorm (<99.9mm): " + g((te = (ee = (u = a.seasonalData) == null ? void 0 : u.precip) == null ? void 0 : ee.filter((i) => i >= 49.9 && i < 99.9)) == null ? void 0 : te.length) + " days", 1),
|
|
3670
|
+
t("div", _s, "Heavy Rainstorm (>=100mm): " + g((le = (se = (w = a.seasonalData) == null ? void 0 : w.precip) == null ? void 0 : se.filter((i) => i >= 100)) == null ? void 0 : le.length) + " days", 1),
|
|
3627
3671
|
e[58] || (e[58] = t("div", { class: "label" }, "Wind", -1)),
|
|
3628
|
-
t("div",
|
|
3629
|
-
t("div",
|
|
3630
|
-
t("div",
|
|
3672
|
+
t("div", $s, "Mean Wind: " + g(B.roundPrecision(a.seasonalData.meanWind, 1)) + " kts", 1),
|
|
3673
|
+
t("div", ea, "Windiest Day: " + g(a.seasonalData.windiestDay) + " ( " + g(a.seasonalData.maxWindSpeed) + "kts )", 1),
|
|
3674
|
+
t("div", ta, "Dominant Wind Dir: " + g(a.seasonalData.dominantWind), 1)
|
|
3631
3675
|
])
|
|
3632
|
-
])) : (he =
|
|
3676
|
+
])) : (he = a.loading) != null && he.seasonalEchart ? (o(), n("div", sa, e[59] || (e[59] = [
|
|
3633
3677
|
t("img", {
|
|
3634
3678
|
style: { height: "200px" },
|
|
3635
3679
|
src: xe
|
|
3636
3680
|
}, null, -1)
|
|
3637
|
-
]))) : (o(), n("div",
|
|
3638
|
-
])) :
|
|
3681
|
+
]))) : (o(), n("div", aa, "No Data"))
|
|
3682
|
+
])) : Be("", !0)
|
|
3639
3683
|
])
|
|
3640
3684
|
]);
|
|
3641
3685
|
}
|
|
3642
|
-
const
|
|
3643
|
-
install(
|
|
3644
|
-
|
|
3686
|
+
const oa = /* @__PURE__ */ Se(Fe, [["render", ia], ["__scopeId", "data-v-a24e6164"]]), ga = {
|
|
3687
|
+
install(r) {
|
|
3688
|
+
r.component("SpotReport", oa);
|
|
3645
3689
|
}
|
|
3646
3690
|
};
|
|
3647
3691
|
export {
|
|
3648
|
-
|
|
3649
|
-
|
|
3692
|
+
oa as SpotReport,
|
|
3693
|
+
ga as SpotReportPlugin
|
|
3650
3694
|
};
|