@idmui/spot 0.3.3 → 0.3.5
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/Spot/src/index.vue.d.ts +22 -12
- package/dist/index.js +1719 -832
- package/dist/index.umd.cjs +45 -11
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { LngLatHelper as
|
|
1
|
+
import we from "moment";
|
|
2
|
+
import ie from "moment-timezone";
|
|
3
|
+
import { ArrowRight as He, Search as ke } from "@element-plus/icons-vue";
|
|
4
|
+
import { LngLatHelper as Ee } from "@idm-plugin/geo";
|
|
5
5
|
import * as pe from "echarts";
|
|
6
|
-
import { markRaw as Pe, resolveComponent as
|
|
7
|
-
import
|
|
8
|
-
class
|
|
9
|
-
static pickHourly(e,
|
|
10
|
-
var
|
|
11
|
-
const
|
|
12
|
-
if (
|
|
13
|
-
const
|
|
14
|
-
let
|
|
15
|
-
if (
|
|
16
|
-
for (const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
temp: (
|
|
20
|
-
apparentTemp: (
|
|
21
|
-
rh: (
|
|
22
|
-
dp: (
|
|
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
|
+
import Qe from "axios";
|
|
8
|
+
class ye {
|
|
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
|
+
if (le.isBetween(f, ue, "millisecond", "[]")) {
|
|
13
|
+
const I = le.utc().diff(f, "h", !1);
|
|
14
|
+
let me, De;
|
|
15
|
+
if (he)
|
|
16
|
+
for (const be of he) {
|
|
17
|
+
const Q = be.hourly;
|
|
18
|
+
me = {
|
|
19
|
+
temp: (N = Q.temperature_2m) == null ? void 0 : N.at(I),
|
|
20
|
+
apparentTemp: (_ = Q.apparent_temperature) == null ? void 0 : _.at(I),
|
|
21
|
+
rh: (M = Q.relative_humidity_2m) == null ? void 0 : M.at(I),
|
|
22
|
+
dp: (O = Q.dew_point_2m) == null ? void 0 : O.at(I),
|
|
23
23
|
precip: {
|
|
24
|
-
probability: (
|
|
25
|
-
sum: (
|
|
24
|
+
probability: (V = Q.precipitation_probability) == null ? void 0 : V.at(I),
|
|
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
|
-
const { name: Me, url: Le, bg: ze } = this.parseWeatherCode(
|
|
41
|
-
|
|
40
|
+
const { name: Me, url: Le, bg: ze } = this.parseWeatherCode(me.code, me.isDay);
|
|
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);
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
44
|
-
for (const
|
|
45
|
-
const
|
|
46
|
-
|
|
43
|
+
if (i)
|
|
44
|
+
for (const be of i) {
|
|
45
|
+
const Q = be.hourly;
|
|
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: (ae =
|
|
63
|
-
degree: (
|
|
64
|
-
bearing: ((
|
|
65
|
-
period: (
|
|
66
|
-
peakPeriod: (
|
|
62
|
+
height: (ae = Q.wind_wave_height) == null ? void 0 : ae.at(I),
|
|
63
|
+
degree: (d = Q.wind_wave_direction) == null ? void 0 : d.at(I),
|
|
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
|
+
period: (ce = Q.wind_wave_period) == null ? void 0 : ce.at(I),
|
|
66
|
+
peakPeriod: (y = Q.wind_wave_peak_period) == null ? void 0 : y.at(I)
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
current: {
|
|
70
|
-
speed: (
|
|
71
|
-
kts: (
|
|
72
|
-
degree: (
|
|
73
|
-
bearing: ((
|
|
74
|
-
},
|
|
75
|
-
sst: (
|
|
76
|
-
height: (
|
|
77
|
-
},
|
|
70
|
+
speed: (re = Q.ocean_current_velocity) == null ? void 0 : re.at(I),
|
|
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
|
+
},
|
|
75
|
+
sst: (w = Q.sea_surface_temperature) == null ? void 0 : w.at(I),
|
|
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
|
-
|
|
80
|
-
utc:
|
|
81
|
-
weather: { ...
|
|
82
|
-
...
|
|
79
|
+
x.push({
|
|
80
|
+
utc: f.add(I, "h").format(),
|
|
81
|
+
weather: { ...me },
|
|
82
|
+
...De
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
|
-
return
|
|
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: (
|
|
95
|
+
kts: (q = (S = e == null ? void 0 : e.weather) == null ? void 0 : S.wind) == null ? void 0 : q.gusts
|
|
96
96
|
},
|
|
97
|
-
precip: (
|
|
98
|
-
code: (
|
|
99
|
-
name: (
|
|
100
|
-
url: (
|
|
97
|
+
precip: (H = e == null ? void 0 : e.weather) == null ? void 0 : H.precip,
|
|
98
|
+
code: (k = e == null ? void 0 : e.weather) == null ? void 0 : k.code,
|
|
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,408 +105,408 @@ class De {
|
|
|
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
|
|
113
|
-
const
|
|
114
|
-
if (
|
|
115
|
-
for (const ue of
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
code: (
|
|
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
|
+
const x = ue.daily;
|
|
117
|
+
i = {
|
|
118
|
+
code: (k = x.weather_code) == null ? void 0 : k.at(f),
|
|
119
119
|
temp: {
|
|
120
|
-
max: (
|
|
121
|
-
min: (
|
|
122
|
-
mean: (
|
|
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
|
+
mean: (_ = x.temperature_2m_mean) == null ? void 0 : _.at(f)
|
|
123
123
|
},
|
|
124
124
|
apparentTemp: {
|
|
125
|
-
max: (
|
|
126
|
-
min: (
|
|
125
|
+
max: (M = x.apparent_temperature_max) == null ? void 0 : M.at(f),
|
|
126
|
+
min: (O = x.apparent_temperature_min) == null ? void 0 : O.at(f)
|
|
127
127
|
},
|
|
128
128
|
precip: {
|
|
129
|
-
sum: (
|
|
130
|
-
rainSum: (
|
|
131
|
-
snowfallSum: (
|
|
132
|
-
showersSum: (
|
|
133
|
-
hours: (
|
|
134
|
-
probability: (
|
|
129
|
+
sum: (V = x.precipitation_sum) == null ? void 0 : V.at(f),
|
|
130
|
+
rainSum: (Z = x.rain_sum) == null ? void 0 : Z.at(f),
|
|
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:
|
|
150
|
-
|
|
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
|
-
if (
|
|
153
|
-
for (const ue of
|
|
154
|
-
const
|
|
155
|
-
|
|
152
|
+
if (w)
|
|
153
|
+
for (const ue of w) {
|
|
154
|
+
const x = ue.daily;
|
|
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: ((ae =
|
|
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
|
-
height: (
|
|
172
|
-
degree: (
|
|
173
|
-
period: (
|
|
174
|
-
peakPeriod: (
|
|
175
|
-
bearing: ((
|
|
171
|
+
height: (de = x.wind_wave_height_max) == null ? void 0 : de.at(f),
|
|
172
|
+
degree: (ge = x.wind_wave_direction_dominant) == null ? void 0 : ge.at(f),
|
|
173
|
+
period: (ce = x.wind_wave_period_max) == null ? void 0 : ce.at(f),
|
|
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 ? (((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
|
-
|
|
181
|
-
utc:
|
|
182
|
-
weather: { ...
|
|
183
|
-
...
|
|
180
|
+
he.push({
|
|
181
|
+
utc: se.add(f, "d").utc().format(),
|
|
182
|
+
weather: { ...i },
|
|
183
|
+
...m
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
|
-
return
|
|
186
|
+
return he;
|
|
187
187
|
}
|
|
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 De {
|
|
|
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 De {
|
|
|
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,35 +552,36 @@ class De {
|
|
|
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
|
-
const Ie = "data:image/gif;base64,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";
|
|
568
|
-
const
|
|
569
|
-
const
|
|
570
|
-
for (const [
|
|
571
|
-
|
|
572
|
-
return
|
|
573
|
-
},
|
|
567
|
+
const xe = "data:image/gif;base64,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";
|
|
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
|
+
}, Fe = {
|
|
574
574
|
name: "SpotReport",
|
|
575
|
+
components: { ArrowRight: He },
|
|
575
576
|
props: {
|
|
576
577
|
token: {
|
|
577
578
|
type: String,
|
|
578
579
|
default: ""
|
|
579
580
|
},
|
|
580
|
-
ts: {
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
},
|
|
581
|
+
// ts: {
|
|
582
|
+
// type: String,
|
|
583
|
+
// default: moment().utc().format(),
|
|
584
|
+
// },
|
|
584
585
|
timeZone: {
|
|
585
586
|
type: Number,
|
|
586
587
|
default: 8
|
|
@@ -595,7 +596,8 @@ const Ne = (h, e) => {
|
|
|
595
596
|
return {
|
|
596
597
|
placeholder: "search for port name or coordinates",
|
|
597
598
|
searchName: void 0,
|
|
598
|
-
rawSearchIcon: Pe(
|
|
599
|
+
rawSearchIcon: Pe(ke),
|
|
600
|
+
etime: void 0,
|
|
599
601
|
positionOffset: void 0,
|
|
600
602
|
positionGmt: void 0,
|
|
601
603
|
issuedDate: void 0,
|
|
@@ -612,73 +614,98 @@ const Ne = (h, e) => {
|
|
|
612
614
|
weatherEchart: !1,
|
|
613
615
|
meteogramEchart: !1,
|
|
614
616
|
hoursTable: !1,
|
|
615
|
-
daysTable: !1
|
|
617
|
+
daysTable: !1,
|
|
618
|
+
hourlyTable: !1,
|
|
619
|
+
seasonalEchart: !1
|
|
616
620
|
},
|
|
617
621
|
menuIndex: 1,
|
|
618
622
|
meteogramData: void 0,
|
|
619
|
-
daysTableData: []
|
|
623
|
+
daysTableData: [],
|
|
624
|
+
hourlyTableData: [],
|
|
625
|
+
currentMonth: void 0,
|
|
626
|
+
seasonalData: void 0,
|
|
627
|
+
monthsOptions: []
|
|
620
628
|
};
|
|
621
629
|
},
|
|
622
630
|
computed: {
|
|
623
631
|
computeHourLT() {
|
|
624
|
-
return function(
|
|
625
|
-
if (
|
|
626
|
-
const e =
|
|
632
|
+
return function(r) {
|
|
633
|
+
if (r) {
|
|
634
|
+
const e = ie(r).tz(this.positionGmt);
|
|
627
635
|
return `${e == null ? void 0 : e.format("HH")}`;
|
|
628
636
|
}
|
|
629
637
|
return "-";
|
|
630
638
|
};
|
|
631
639
|
},
|
|
632
640
|
computeHourZ() {
|
|
633
|
-
return function(
|
|
634
|
-
if (
|
|
635
|
-
const e =
|
|
641
|
+
return function(r) {
|
|
642
|
+
if (r) {
|
|
643
|
+
const e = we(r).utc();
|
|
636
644
|
return `${e == null ? void 0 : e.format("HH")}Z`;
|
|
637
645
|
}
|
|
638
646
|
return "-";
|
|
639
647
|
};
|
|
640
648
|
},
|
|
641
649
|
computeWeekLT() {
|
|
642
|
-
return function(
|
|
643
|
-
if (
|
|
644
|
-
const e =
|
|
650
|
+
return function(r) {
|
|
651
|
+
if (r) {
|
|
652
|
+
const e = ie(r).tz(this.positionGmt);
|
|
645
653
|
return `${e == null ? void 0 : e.format("dddd")}`;
|
|
646
654
|
}
|
|
647
655
|
return "-";
|
|
648
656
|
};
|
|
649
657
|
},
|
|
658
|
+
computeDDLT() {
|
|
659
|
+
return function(r) {
|
|
660
|
+
if (r) {
|
|
661
|
+
const e = ie(r).tz(this.positionGmt);
|
|
662
|
+
return `${e == null ? void 0 : e.format("DD")}`;
|
|
663
|
+
}
|
|
664
|
+
return "-";
|
|
665
|
+
};
|
|
666
|
+
},
|
|
650
667
|
computeMMMDDLT() {
|
|
651
|
-
return function(
|
|
652
|
-
if (
|
|
653
|
-
const e =
|
|
668
|
+
return function(r) {
|
|
669
|
+
if (r) {
|
|
670
|
+
const e = ie(r).tz(this.positionGmt);
|
|
654
671
|
return `${e == null ? void 0 : e.format("MMM-DD")}`;
|
|
655
672
|
}
|
|
656
673
|
return "-";
|
|
657
674
|
};
|
|
658
675
|
},
|
|
676
|
+
computeMMMDDHHmmLT() {
|
|
677
|
+
return function(r) {
|
|
678
|
+
if (r) {
|
|
679
|
+
const e = ie(r).tz(this.positionGmt);
|
|
680
|
+
return `${e == null ? void 0 : e.format("MMM-DD HHmm")}`;
|
|
681
|
+
}
|
|
682
|
+
return "-";
|
|
683
|
+
};
|
|
684
|
+
},
|
|
659
685
|
computeLat() {
|
|
660
|
-
return function(
|
|
661
|
-
return
|
|
686
|
+
return function(r, e = 4) {
|
|
687
|
+
return Ee.lat2pretty(r, e).pretty;
|
|
662
688
|
};
|
|
663
689
|
},
|
|
664
690
|
computeLng() {
|
|
665
|
-
return function(
|
|
666
|
-
return
|
|
691
|
+
return function(r, e = 4) {
|
|
692
|
+
return Ee.lng2pretty(r, e).pretty;
|
|
667
693
|
};
|
|
668
694
|
},
|
|
669
695
|
roundPrecision() {
|
|
670
|
-
return function(
|
|
671
|
-
return isNaN(
|
|
696
|
+
return function(r, e = 4) {
|
|
697
|
+
return isNaN(r) ? "-" : Ee.roundPrecision(r, e);
|
|
672
698
|
};
|
|
673
699
|
}
|
|
674
700
|
},
|
|
675
701
|
watch: {
|
|
676
702
|
point: {
|
|
677
703
|
handler() {
|
|
678
|
-
var
|
|
704
|
+
var r, e, s;
|
|
679
705
|
this.point && (this.position = {
|
|
680
|
-
|
|
681
|
-
|
|
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,
|
|
682
709
|
name: this.computeLat(this.point.lat) + "," + this.computeLng(this.point.lng)
|
|
683
710
|
}, this.handleFetchMeteo());
|
|
684
711
|
},
|
|
@@ -691,97 +718,110 @@ const Ne = (h, e) => {
|
|
|
691
718
|
weatherEchart: !0,
|
|
692
719
|
meteogramEchart: !0,
|
|
693
720
|
hoursTable: !0,
|
|
694
|
-
daysTable: !0
|
|
721
|
+
daysTable: !0,
|
|
722
|
+
hourlyTable: !0,
|
|
723
|
+
seasonalEchart: !0
|
|
695
724
|
}, this.handleRender();
|
|
696
725
|
}
|
|
697
726
|
}
|
|
698
727
|
},
|
|
728
|
+
mounted() {
|
|
729
|
+
this.$nextTick(() => {
|
|
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);
|
|
733
|
+
});
|
|
734
|
+
});
|
|
735
|
+
},
|
|
699
736
|
methods: {
|
|
700
|
-
async fetchSuggestPosition(
|
|
701
|
-
var
|
|
702
|
-
const e =
|
|
737
|
+
async fetchSuggestPosition(r) {
|
|
738
|
+
var h;
|
|
739
|
+
const e = r.replaceAll(",", ",");
|
|
703
740
|
if (!e)
|
|
704
741
|
return this.positionList = this.collectList, !1;
|
|
705
|
-
const
|
|
742
|
+
const s = await Qe.get(`https://cbe.idmwx.com/api/arc/ports/suggest?n=${e}`, {
|
|
706
743
|
headers: {
|
|
707
744
|
Authorization: this.token
|
|
708
745
|
}
|
|
709
746
|
});
|
|
710
|
-
(
|
|
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)));
|
|
711
748
|
},
|
|
712
749
|
handleSearch() {
|
|
713
|
-
var
|
|
750
|
+
var r, e, s;
|
|
714
751
|
this.searchName && (this.handleClearHoursTable(), this.position = {
|
|
715
|
-
portId: (
|
|
716
|
-
lat: (e = this.positionList.find((
|
|
717
|
-
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,
|
|
718
755
|
name: this.searchName
|
|
719
756
|
}, this.$emit("url", this.position), this.handleFetchMeteo());
|
|
720
757
|
},
|
|
721
758
|
handleCollect() {
|
|
722
|
-
this.isCollected = !this.isCollected, this.isCollected ? this.collectList.push({ name: this.position.name, lat: this.position.lat, lng: this.position.lng }) : this.collectList = this.collectList.filter((
|
|
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));
|
|
723
760
|
},
|
|
724
761
|
async handleFetchMeteo() {
|
|
762
|
+
var s;
|
|
725
763
|
if (!this.token)
|
|
726
764
|
return !1;
|
|
727
765
|
this.loading = {
|
|
728
766
|
weatherEchart: !0,
|
|
729
767
|
meteogramEchart: !0,
|
|
730
768
|
hoursTable: !0,
|
|
731
|
-
daysTable: !0
|
|
769
|
+
daysTable: !0,
|
|
770
|
+
hourlyTable: !0,
|
|
771
|
+
seasonalEchart: !0
|
|
732
772
|
};
|
|
733
|
-
const
|
|
773
|
+
const r = {
|
|
734
774
|
lat: this.position.lat,
|
|
735
775
|
lng: this.position.lng,
|
|
736
776
|
forecastDays: 15,
|
|
737
777
|
selfHosted: !1
|
|
738
|
-
}, e = await
|
|
778
|
+
}, e = await Qe.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast", r, {
|
|
739
779
|
headers: {
|
|
740
780
|
Authorization: this.token
|
|
741
781
|
}
|
|
742
782
|
});
|
|
743
783
|
(e == null ? void 0 : e.data.code) === 0 && (this.meteoData = {
|
|
744
784
|
...e == null ? void 0 : e.data.data
|
|
745
|
-
}), this.handleRender();
|
|
785
|
+
}, this.etime = (s = e == null ? void 0 : e.data) == null ? void 0 : s.etime), this.handleRender();
|
|
746
786
|
},
|
|
747
787
|
handleRender() {
|
|
748
|
-
this.initInfo(), this.menuIndex === 1 ? (this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData()) : this.menuIndex === 2
|
|
788
|
+
this.initInfo(), this.menuIndex === 1 ? (this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData()) : this.menuIndex === 2 ? (this.handleMeteogramData14(), this.initDaysTableData(), this.initHourlyTableData()) : this.handleFetchSeasonalData();
|
|
749
789
|
},
|
|
750
790
|
initInfo() {
|
|
751
|
-
var
|
|
752
|
-
this.positionGmt = (e = (
|
|
753
|
-
var
|
|
754
|
-
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);
|
|
755
795
|
});
|
|
756
796
|
},
|
|
757
797
|
initWeatherEchart() {
|
|
758
|
-
const
|
|
798
|
+
const r = [], e = [], s = [], h = [], a = [], B = [], S = [], q = [], H = [], k = [], F = {}, N = "data:image/svg+xml;base64," + window.btoa(
|
|
759
799
|
unescape(
|
|
760
800
|
encodeURIComponent(
|
|
761
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>'
|
|
762
802
|
)
|
|
763
803
|
)
|
|
764
|
-
),
|
|
804
|
+
), _ = "data:image/svg+xml;base64," + window.btoa(
|
|
765
805
|
unescape(
|
|
766
806
|
encodeURIComponent(
|
|
767
807
|
'<svg t="1740383449285" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10797" width="200" height="200"><path d="M133.8 579l-44.4-44.4c-18.8-18.8-18.8-49.2 0-67.8L478 78c18.8-18.8 49.2-18.8 67.8 0l388.6 388.6c18.8 18.8 18.8 49.2 0 67.8L890 578.8c-19 19-50 18.6-68.6-0.8L592 337.2V912c0 26.6-21.4 48-48 48h-64c-26.6 0-48-21.4-48-48V337.2L202.4 578.2c-18.6 19.6-49.6 20-68.6 0.8z" fill="#333" p-id="10798"></path></svg>'
|
|
768
808
|
)
|
|
769
809
|
)
|
|
770
|
-
),
|
|
771
|
-
|
|
772
|
-
var
|
|
810
|
+
), M = new Image(64, 64);
|
|
811
|
+
M.src = _, M.onload = () => {
|
|
812
|
+
var Y, j, K, U, X, W, R, J, c, G, z, P, L;
|
|
773
813
|
this.loading.weatherEchart = !1;
|
|
774
|
-
for (let
|
|
775
|
-
const
|
|
776
|
-
|
|
777
|
-
const
|
|
778
|
-
|
|
779
|
-
const
|
|
780
|
-
|
|
781
|
-
const
|
|
782
|
-
|
|
783
|
-
const ae =
|
|
784
|
-
|
|
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}`] = {
|
|
785
825
|
height: 12,
|
|
786
826
|
width: 12,
|
|
787
827
|
align: "left",
|
|
@@ -790,7 +830,7 @@ const Ne = (h, e) => {
|
|
|
790
830
|
}
|
|
791
831
|
};
|
|
792
832
|
}
|
|
793
|
-
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 = {
|
|
794
834
|
grid: {
|
|
795
835
|
bottom: 0,
|
|
796
836
|
top: 0,
|
|
@@ -801,8 +841,8 @@ const Ne = (h, e) => {
|
|
|
801
841
|
trigger: "item",
|
|
802
842
|
show: !0,
|
|
803
843
|
position: "right",
|
|
804
|
-
formatter: function(
|
|
805
|
-
return
|
|
844
|
+
formatter: function(p) {
|
|
845
|
+
return p.seriesName === "Weather Icon" ? S[p.dataIndex] : !1;
|
|
806
846
|
}
|
|
807
847
|
},
|
|
808
848
|
legend: {
|
|
@@ -814,13 +854,13 @@ const Ne = (h, e) => {
|
|
|
814
854
|
top: "50%",
|
|
815
855
|
height: "50%",
|
|
816
856
|
type: "category",
|
|
817
|
-
data:
|
|
857
|
+
data: r,
|
|
818
858
|
show: !1
|
|
819
859
|
},
|
|
820
860
|
singleAxis: [
|
|
821
861
|
{
|
|
822
|
-
left:
|
|
823
|
-
right:
|
|
862
|
+
left: v,
|
|
863
|
+
right: v,
|
|
824
864
|
type: "category",
|
|
825
865
|
show: !1,
|
|
826
866
|
axisLine: {
|
|
@@ -840,13 +880,13 @@ const Ne = (h, e) => {
|
|
|
840
880
|
// 隐藏分割线
|
|
841
881
|
},
|
|
842
882
|
boundaryGap: !1,
|
|
843
|
-
data:
|
|
883
|
+
data: r,
|
|
844
884
|
top: "7%",
|
|
845
885
|
height: "2%"
|
|
846
886
|
},
|
|
847
887
|
{
|
|
848
|
-
left:
|
|
849
|
-
right:
|
|
888
|
+
left: v,
|
|
889
|
+
right: v,
|
|
850
890
|
type: "category",
|
|
851
891
|
show: !1,
|
|
852
892
|
axisLine: {
|
|
@@ -866,13 +906,13 @@ const Ne = (h, e) => {
|
|
|
866
906
|
// 隐藏分割线
|
|
867
907
|
},
|
|
868
908
|
boundaryGap: !1,
|
|
869
|
-
data:
|
|
909
|
+
data: r,
|
|
870
910
|
top: "16%",
|
|
871
911
|
height: "2%"
|
|
872
912
|
},
|
|
873
913
|
{
|
|
874
|
-
left:
|
|
875
|
-
right:
|
|
914
|
+
left: v,
|
|
915
|
+
right: v,
|
|
876
916
|
type: "category",
|
|
877
917
|
show: !1,
|
|
878
918
|
axisLine: {
|
|
@@ -892,13 +932,13 @@ const Ne = (h, e) => {
|
|
|
892
932
|
// 隐藏分割线
|
|
893
933
|
},
|
|
894
934
|
boundaryGap: !1,
|
|
895
|
-
data:
|
|
935
|
+
data: r,
|
|
896
936
|
top: "27%",
|
|
897
937
|
height: "2%"
|
|
898
938
|
},
|
|
899
939
|
{
|
|
900
|
-
left:
|
|
901
|
-
right:
|
|
940
|
+
left: v,
|
|
941
|
+
right: v,
|
|
902
942
|
type: "category",
|
|
903
943
|
show: !1,
|
|
904
944
|
axisLine: {
|
|
@@ -918,13 +958,13 @@ const Ne = (h, e) => {
|
|
|
918
958
|
// 隐藏分割线
|
|
919
959
|
},
|
|
920
960
|
boundaryGap: !1,
|
|
921
|
-
data:
|
|
961
|
+
data: r,
|
|
922
962
|
top: "84%",
|
|
923
963
|
height: "2%"
|
|
924
964
|
},
|
|
925
965
|
{
|
|
926
|
-
left:
|
|
927
|
-
right:
|
|
966
|
+
left: v,
|
|
967
|
+
right: v,
|
|
928
968
|
type: "category",
|
|
929
969
|
show: !1,
|
|
930
970
|
axisLine: {
|
|
@@ -944,7 +984,7 @@ const Ne = (h, e) => {
|
|
|
944
984
|
// 隐藏分割线
|
|
945
985
|
},
|
|
946
986
|
boundaryGap: !1,
|
|
947
|
-
data:
|
|
987
|
+
data: r,
|
|
948
988
|
top: "93%",
|
|
949
989
|
height: "2%"
|
|
950
990
|
}
|
|
@@ -953,8 +993,8 @@ const Ne = (h, e) => {
|
|
|
953
993
|
type: "value",
|
|
954
994
|
name: "温度(℃)",
|
|
955
995
|
show: !1,
|
|
956
|
-
min:
|
|
957
|
-
max:
|
|
996
|
+
min: V,
|
|
997
|
+
max: Z,
|
|
958
998
|
axisLabel: {
|
|
959
999
|
formatter: "{value} °C"
|
|
960
1000
|
}
|
|
@@ -964,7 +1004,7 @@ const Ne = (h, e) => {
|
|
|
964
1004
|
singleAxisIndex: 0,
|
|
965
1005
|
coordinateSystem: "singleAxis",
|
|
966
1006
|
type: "scatter",
|
|
967
|
-
data:
|
|
1007
|
+
data: s,
|
|
968
1008
|
label: {
|
|
969
1009
|
show: !0,
|
|
970
1010
|
color: "rgba(0,0,0,0.7)",
|
|
@@ -990,16 +1030,16 @@ const Ne = (h, e) => {
|
|
|
990
1030
|
singleAxisIndex: 2,
|
|
991
1031
|
coordinateSystem: "singleAxis",
|
|
992
1032
|
type: "scatter",
|
|
993
|
-
data:
|
|
1033
|
+
data: B,
|
|
994
1034
|
symbolSize: 44
|
|
995
1035
|
},
|
|
996
1036
|
{
|
|
997
1037
|
name: "温度(℃)",
|
|
998
1038
|
type: "line",
|
|
999
|
-
data:
|
|
1039
|
+
data: h,
|
|
1000
1040
|
smooth: !0,
|
|
1001
1041
|
itemStyle: {
|
|
1002
|
-
color: "#
|
|
1042
|
+
color: "#FF9500"
|
|
1003
1043
|
},
|
|
1004
1044
|
label: {
|
|
1005
1045
|
show: !0,
|
|
@@ -1018,7 +1058,7 @@ const Ne = (h, e) => {
|
|
|
1018
1058
|
x: "4%"
|
|
1019
1059
|
},
|
|
1020
1060
|
{
|
|
1021
|
-
x: 4 + 1 /
|
|
1061
|
+
x: 4 + 1 / r.length * 92 + "%"
|
|
1022
1062
|
}
|
|
1023
1063
|
]
|
|
1024
1064
|
]
|
|
@@ -1027,10 +1067,10 @@ const Ne = (h, e) => {
|
|
|
1027
1067
|
{
|
|
1028
1068
|
name: "温度(℃)",
|
|
1029
1069
|
type: "line",
|
|
1030
|
-
data:
|
|
1070
|
+
data: a,
|
|
1031
1071
|
smooth: !0,
|
|
1032
1072
|
itemStyle: {
|
|
1033
|
-
color: "#
|
|
1073
|
+
color: "#d88102"
|
|
1034
1074
|
},
|
|
1035
1075
|
label: {
|
|
1036
1076
|
show: !0,
|
|
@@ -1044,20 +1084,20 @@ const Ne = (h, e) => {
|
|
|
1044
1084
|
singleAxisIndex: 3,
|
|
1045
1085
|
coordinateSystem: "singleAxis",
|
|
1046
1086
|
type: "scatter",
|
|
1047
|
-
data:
|
|
1087
|
+
data: q,
|
|
1048
1088
|
label: {
|
|
1049
1089
|
show: !0,
|
|
1050
1090
|
color: "rgba(0,0,0,0.7)",
|
|
1051
1091
|
// formatter: '{c}'
|
|
1052
1092
|
rich: {
|
|
1053
|
-
...
|
|
1093
|
+
...F,
|
|
1054
1094
|
title: {
|
|
1055
1095
|
align: "center",
|
|
1056
1096
|
vertical: "center"
|
|
1057
1097
|
}
|
|
1058
1098
|
},
|
|
1059
|
-
formatter: function(
|
|
1060
|
-
return `{WindIcon${
|
|
1099
|
+
formatter: function(p) {
|
|
1100
|
+
return `{WindIcon${p.dataIndex}|}{title|${p.value}} kts`;
|
|
1061
1101
|
}
|
|
1062
1102
|
},
|
|
1063
1103
|
symbolSize: 0
|
|
@@ -1066,7 +1106,7 @@ const Ne = (h, e) => {
|
|
|
1066
1106
|
singleAxisIndex: 4,
|
|
1067
1107
|
coordinateSystem: "singleAxis",
|
|
1068
1108
|
type: "scatter",
|
|
1069
|
-
data:
|
|
1109
|
+
data: k,
|
|
1070
1110
|
label: {
|
|
1071
1111
|
show: !0,
|
|
1072
1112
|
color: "rgba(0,0,0,0.7)",
|
|
@@ -1077,7 +1117,7 @@ const Ne = (h, e) => {
|
|
|
1077
1117
|
width: 16,
|
|
1078
1118
|
align: "left",
|
|
1079
1119
|
backgroundColor: {
|
|
1080
|
-
image:
|
|
1120
|
+
image: N
|
|
1081
1121
|
}
|
|
1082
1122
|
},
|
|
1083
1123
|
title: {
|
|
@@ -1085,8 +1125,8 @@ const Ne = (h, e) => {
|
|
|
1085
1125
|
vertical: "center"
|
|
1086
1126
|
}
|
|
1087
1127
|
},
|
|
1088
|
-
formatter: function(
|
|
1089
|
-
return `{dIcon|}{title|${
|
|
1128
|
+
formatter: function(p) {
|
|
1129
|
+
return `{dIcon|}{title|${p.value}} mm`;
|
|
1090
1130
|
}
|
|
1091
1131
|
},
|
|
1092
1132
|
symbolSize: 0
|
|
@@ -1094,24 +1134,24 @@ const Ne = (h, e) => {
|
|
|
1094
1134
|
]
|
|
1095
1135
|
};
|
|
1096
1136
|
this.$nextTick(() => {
|
|
1097
|
-
const
|
|
1098
|
-
|
|
1099
|
-
const
|
|
1100
|
-
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 = {
|
|
1101
1141
|
itemStyle: {
|
|
1102
1142
|
color: "rgba(64,159,255,0.25)"
|
|
1103
1143
|
},
|
|
1104
1144
|
data: [
|
|
1105
1145
|
[
|
|
1106
1146
|
{
|
|
1107
|
-
x: 4 +
|
|
1147
|
+
x: 4 + D / r.length * 92 + "%"
|
|
1108
1148
|
},
|
|
1109
1149
|
{
|
|
1110
|
-
x: 4 + (
|
|
1150
|
+
x: 4 + (D + 1) / r.length * 92 + "%"
|
|
1111
1151
|
}
|
|
1112
1152
|
]
|
|
1113
1153
|
]
|
|
1114
|
-
},
|
|
1154
|
+
}, p.setOption(T);
|
|
1115
1155
|
});
|
|
1116
1156
|
});
|
|
1117
1157
|
};
|
|
@@ -1135,31 +1175,31 @@ const Ne = (h, e) => {
|
|
|
1135
1175
|
offset: void 0
|
|
1136
1176
|
};
|
|
1137
1177
|
let e = { start: void 0, end: void 0 };
|
|
1138
|
-
const
|
|
1178
|
+
const s = "data:image/svg+xml;base64," + window.btoa(
|
|
1139
1179
|
unescape(
|
|
1140
1180
|
encodeURIComponent(
|
|
1141
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>'
|
|
1142
1182
|
)
|
|
1143
1183
|
)
|
|
1144
|
-
),
|
|
1145
|
-
|
|
1146
|
-
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;
|
|
1147
1187
|
this.loading.meteogramEchart = !1;
|
|
1148
|
-
const
|
|
1149
|
-
for (let
|
|
1150
|
-
const
|
|
1151
|
-
(
|
|
1152
|
-
const
|
|
1153
|
-
if (
|
|
1154
|
-
const
|
|
1155
|
-
|
|
1156
|
-
const
|
|
1157
|
-
|
|
1158
|
-
const
|
|
1159
|
-
this.meteogramData.windDirIcons[
|
|
1188
|
+
const a = ie(this.etime).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
1189
|
+
for (let y = 0; y < 7 * 24; y++) {
|
|
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();
|
|
1199
|
+
this.meteogramData.windDirIcons[y] = le;
|
|
1160
1200
|
} else
|
|
1161
|
-
this.meteogramData.windDirIcons[
|
|
1162
|
-
(
|
|
1201
|
+
this.meteogramData.windDirIcons[y] = void 0;
|
|
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(
|
|
1163
1203
|
[
|
|
1164
1204
|
{
|
|
1165
1205
|
x: 4 + e.start / (7 * 24) * 92 + "%"
|
|
@@ -1170,7 +1210,7 @@ const Ne = (h, e) => {
|
|
|
1170
1210
|
]
|
|
1171
1211
|
), e = { start: void 0, end: void 0 });
|
|
1172
1212
|
}
|
|
1173
|
-
this.meteogramData.offset = 4 + 0.5 / ((
|
|
1213
|
+
this.meteogramData.offset = 4 + 0.5 / ((ce = (ge = this.meteogramData) == null ? void 0 : ge.dates) == null ? void 0 : ce.length) * 92 + "%", this.$nextTick(() => {
|
|
1174
1214
|
this.initMeteogramEchart();
|
|
1175
1215
|
});
|
|
1176
1216
|
};
|
|
@@ -1194,31 +1234,31 @@ const Ne = (h, e) => {
|
|
|
1194
1234
|
offset: void 0
|
|
1195
1235
|
};
|
|
1196
1236
|
let e = { start: void 0, end: void 0 };
|
|
1197
|
-
const
|
|
1237
|
+
const s = "data:image/svg+xml;base64," + window.btoa(
|
|
1198
1238
|
unescape(
|
|
1199
1239
|
encodeURIComponent(
|
|
1200
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>'
|
|
1201
1241
|
)
|
|
1202
1242
|
)
|
|
1203
|
-
),
|
|
1204
|
-
|
|
1205
|
-
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;
|
|
1206
1246
|
this.loading.meteogramEchart = !1;
|
|
1207
|
-
const
|
|
1208
|
-
for (let
|
|
1209
|
-
const
|
|
1210
|
-
(
|
|
1211
|
-
const
|
|
1212
|
-
if ((
|
|
1213
|
-
const
|
|
1214
|
-
|
|
1215
|
-
const
|
|
1216
|
-
|
|
1217
|
-
const
|
|
1218
|
-
this.meteogramData.windDirIcons[
|
|
1247
|
+
const a = ie(this.etime).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
1248
|
+
for (let y = 0; y < 14 * 24; y++) {
|
|
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();
|
|
1258
|
+
this.meteogramData.windDirIcons[y] = le;
|
|
1219
1259
|
} else
|
|
1220
|
-
this.meteogramData.windDirIcons[
|
|
1221
|
-
(
|
|
1260
|
+
this.meteogramData.windDirIcons[y] = void 0;
|
|
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(
|
|
1222
1262
|
[
|
|
1223
1263
|
{
|
|
1224
1264
|
x: 4 + e.start / (14 * 24) * 92 + "%"
|
|
@@ -1229,14 +1269,14 @@ const Ne = (h, e) => {
|
|
|
1229
1269
|
]
|
|
1230
1270
|
), e = { start: void 0, end: void 0 });
|
|
1231
1271
|
}
|
|
1232
|
-
this.meteogramData.offset = 4 + 0.5 / ((
|
|
1272
|
+
this.meteogramData.offset = 4 + 0.5 / ((ce = (ge = this.meteogramData) == null ? void 0 : ge.dates) == null ? void 0 : ce.length) * 92 + "%", this.$nextTick(() => {
|
|
1233
1273
|
this.initMeteogramEchart();
|
|
1234
1274
|
});
|
|
1235
1275
|
};
|
|
1236
1276
|
},
|
|
1237
1277
|
initMeteogramEchart() {
|
|
1238
|
-
var
|
|
1239
|
-
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 = {
|
|
1240
1280
|
grid: {
|
|
1241
1281
|
show: !0,
|
|
1242
1282
|
bottom: "0%",
|
|
@@ -1252,9 +1292,9 @@ const Ne = (h, e) => {
|
|
|
1252
1292
|
trigger: "item",
|
|
1253
1293
|
show: !0,
|
|
1254
1294
|
position: "right",
|
|
1255
|
-
formatter: (
|
|
1256
|
-
const
|
|
1257
|
-
return
|
|
1295
|
+
formatter: (w) => {
|
|
1296
|
+
const se = w == null ? void 0 : w.dataIndex;
|
|
1297
|
+
return w.seriesName === "Weather Icons" ? `<strong>${this.meteogramData.weatherNames[se]}</strong>` : !1;
|
|
1258
1298
|
}
|
|
1259
1299
|
},
|
|
1260
1300
|
legend: {
|
|
@@ -1267,13 +1307,13 @@ const Ne = (h, e) => {
|
|
|
1267
1307
|
top: "50%",
|
|
1268
1308
|
height: "50%",
|
|
1269
1309
|
type: "category",
|
|
1270
|
-
data: (
|
|
1310
|
+
data: (N = this.meteogramData) == null ? void 0 : N.dates,
|
|
1271
1311
|
show: !1
|
|
1272
1312
|
},
|
|
1273
1313
|
singleAxis: [
|
|
1274
1314
|
{
|
|
1275
|
-
left: (
|
|
1276
|
-
right: (
|
|
1315
|
+
left: (_ = this.meteogramData) == null ? void 0 : _.offset,
|
|
1316
|
+
right: (M = this.meteogramData) == null ? void 0 : M.offset,
|
|
1277
1317
|
type: "category",
|
|
1278
1318
|
show: !1,
|
|
1279
1319
|
axisLine: {
|
|
@@ -1293,7 +1333,7 @@ const Ne = (h, e) => {
|
|
|
1293
1333
|
// 隐藏分割线
|
|
1294
1334
|
},
|
|
1295
1335
|
boundaryGap: !1,
|
|
1296
|
-
data: (
|
|
1336
|
+
data: (O = this.meteogramData) == null ? void 0 : O.dates,
|
|
1297
1337
|
top: "50%",
|
|
1298
1338
|
height: "2%"
|
|
1299
1339
|
}
|
|
@@ -1304,14 +1344,14 @@ const Ne = (h, e) => {
|
|
|
1304
1344
|
type: "scatter",
|
|
1305
1345
|
singleAxisIndex: 0,
|
|
1306
1346
|
coordinateSystem: "singleAxis",
|
|
1307
|
-
data: (
|
|
1347
|
+
data: (V = this.meteogramData) == null ? void 0 : V.weatherIcons,
|
|
1308
1348
|
symbolSize: 24
|
|
1309
1349
|
}
|
|
1310
1350
|
]
|
|
1311
1351
|
};
|
|
1312
|
-
|
|
1313
|
-
let
|
|
1314
|
-
const
|
|
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);
|
|
1354
|
+
const q = pe.init(document.getElementById("weather-condition")), H = {
|
|
1315
1355
|
title: {
|
|
1316
1356
|
text: "Weather conditions",
|
|
1317
1357
|
top: "10px",
|
|
@@ -1336,20 +1376,20 @@ const Ne = (h, e) => {
|
|
|
1336
1376
|
trigger: "axis",
|
|
1337
1377
|
show: !0,
|
|
1338
1378
|
position: "right",
|
|
1339
|
-
formatter: (
|
|
1340
|
-
var
|
|
1341
|
-
const
|
|
1342
|
-
return
|
|
1343
|
-
<div style="display: ${(
|
|
1344
|
-
<span>Weather : </span><strong>${(
|
|
1379
|
+
formatter: (w) => {
|
|
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>
|
|
1345
1385
|
</div>
|
|
1346
1386
|
<div style="font-size: 13px;">
|
|
1347
1387
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #FF9500;}"></span>
|
|
1348
|
-
<span>Temperature : </span><strong>${(
|
|
1388
|
+
<span>Temperature : </span><strong>${(f = w[0]) == null ? void 0 : f.value}</strong><span style="padding-left: 3px;">℃</span>
|
|
1349
1389
|
</div>
|
|
1350
1390
|
<div style="font-size: 13px;">
|
|
1351
1391
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0c73a8;}"></span>
|
|
1352
|
-
<span>Precipitation : </span><strong>${(ue =
|
|
1392
|
+
<span>Precipitation : </span><strong>${(ue = w[1]) == null ? void 0 : ue.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
1353
1393
|
</div>`;
|
|
1354
1394
|
}
|
|
1355
1395
|
},
|
|
@@ -1367,7 +1407,7 @@ const Ne = (h, e) => {
|
|
|
1367
1407
|
top: "50%",
|
|
1368
1408
|
height: "50%",
|
|
1369
1409
|
type: "category",
|
|
1370
|
-
data: (
|
|
1410
|
+
data: (Z = this.meteogramData) == null ? void 0 : Z.dates,
|
|
1371
1411
|
axisLabel: {
|
|
1372
1412
|
show: !1
|
|
1373
1413
|
},
|
|
@@ -1386,8 +1426,8 @@ const Ne = (h, e) => {
|
|
|
1386
1426
|
},
|
|
1387
1427
|
singleAxis: [
|
|
1388
1428
|
{
|
|
1389
|
-
left: (
|
|
1390
|
-
right: (
|
|
1429
|
+
left: (v = this.meteogramData) == null ? void 0 : v.offset,
|
|
1430
|
+
right: (T = this.meteogramData) == null ? void 0 : T.offset,
|
|
1391
1431
|
type: "category",
|
|
1392
1432
|
show: !1,
|
|
1393
1433
|
axisLine: {
|
|
@@ -1407,13 +1447,13 @@ const Ne = (h, e) => {
|
|
|
1407
1447
|
// 隐藏分割线
|
|
1408
1448
|
},
|
|
1409
1449
|
boundaryGap: !1,
|
|
1410
|
-
data: (
|
|
1450
|
+
data: (Y = this.meteogramData) == null ? void 0 : Y.dates,
|
|
1411
1451
|
top: "17%",
|
|
1412
1452
|
height: "2%"
|
|
1413
1453
|
},
|
|
1414
1454
|
{
|
|
1415
|
-
left: (
|
|
1416
|
-
right: (
|
|
1455
|
+
left: (j = this.meteogramData) == null ? void 0 : j.offset,
|
|
1456
|
+
right: (K = this.meteogramData) == null ? void 0 : K.offset,
|
|
1417
1457
|
type: "category",
|
|
1418
1458
|
show: !1,
|
|
1419
1459
|
axisLine: {
|
|
@@ -1433,13 +1473,13 @@ const Ne = (h, e) => {
|
|
|
1433
1473
|
// 隐藏分割线
|
|
1434
1474
|
},
|
|
1435
1475
|
boundaryGap: !1,
|
|
1436
|
-
data: (
|
|
1476
|
+
data: (U = this.meteogramData) == null ? void 0 : U.dates,
|
|
1437
1477
|
top: "27%",
|
|
1438
1478
|
height: "2%"
|
|
1439
1479
|
},
|
|
1440
1480
|
{
|
|
1441
|
-
left: (
|
|
1442
|
-
right: (
|
|
1481
|
+
left: (X = this.meteogramData) == null ? void 0 : X.offset,
|
|
1482
|
+
right: (W = this.meteogramData) == null ? void 0 : W.offset,
|
|
1443
1483
|
type: "category",
|
|
1444
1484
|
show: !1,
|
|
1445
1485
|
axisLine: {
|
|
@@ -1459,13 +1499,13 @@ const Ne = (h, e) => {
|
|
|
1459
1499
|
// 隐藏分割线
|
|
1460
1500
|
},
|
|
1461
1501
|
boundaryGap: !1,
|
|
1462
|
-
data: (
|
|
1502
|
+
data: (R = this.meteogramData) == null ? void 0 : R.dates,
|
|
1463
1503
|
top: "84%",
|
|
1464
1504
|
height: "2%"
|
|
1465
1505
|
},
|
|
1466
1506
|
{
|
|
1467
|
-
left: (
|
|
1468
|
-
right: (
|
|
1507
|
+
left: (J = this.meteogramData) == null ? void 0 : J.offset,
|
|
1508
|
+
right: (c = this.meteogramData) == null ? void 0 : c.offset,
|
|
1469
1509
|
type: "category",
|
|
1470
1510
|
show: !1,
|
|
1471
1511
|
axisLine: {
|
|
@@ -1485,7 +1525,7 @@ const Ne = (h, e) => {
|
|
|
1485
1525
|
// 隐藏分割线
|
|
1486
1526
|
},
|
|
1487
1527
|
boundaryGap: !1,
|
|
1488
|
-
data: (
|
|
1528
|
+
data: (G = this.meteogramData) == null ? void 0 : G.dates,
|
|
1489
1529
|
top: "92%",
|
|
1490
1530
|
height: "2%"
|
|
1491
1531
|
}
|
|
@@ -1495,9 +1535,9 @@ const Ne = (h, e) => {
|
|
|
1495
1535
|
type: "value",
|
|
1496
1536
|
name: "Temperature ( ℃ ) ",
|
|
1497
1537
|
show: !0,
|
|
1498
|
-
min:
|
|
1499
|
-
max:
|
|
1500
|
-
interval:
|
|
1538
|
+
min: a,
|
|
1539
|
+
max: B,
|
|
1540
|
+
interval: S,
|
|
1501
1541
|
splitNumber: 5,
|
|
1502
1542
|
nameRotate: 90,
|
|
1503
1543
|
nameLocation: "middle",
|
|
@@ -1513,8 +1553,8 @@ const Ne = (h, e) => {
|
|
|
1513
1553
|
type: "value",
|
|
1514
1554
|
name: "Precipitation ( mm ) ",
|
|
1515
1555
|
min: 0,
|
|
1516
|
-
max: Math.ceil(Math.max(...this.meteogramData.precip.filter((
|
|
1517
|
-
interval: Math.ceil(Math.max(...this.meteogramData.precip.filter((
|
|
1556
|
+
max: Math.ceil(Math.max(...this.meteogramData.precip.filter((w) => typeof w == "number" && !isNaN(w))) / 5) * 5,
|
|
1557
|
+
interval: Math.ceil(Math.max(...this.meteogramData.precip.filter((w) => typeof w == "number" && !isNaN(w))) / 5),
|
|
1518
1558
|
splitNumber: 5,
|
|
1519
1559
|
show: !0,
|
|
1520
1560
|
nameRotate: 90,
|
|
@@ -1532,7 +1572,7 @@ const Ne = (h, e) => {
|
|
|
1532
1572
|
name: "Temperature",
|
|
1533
1573
|
type: "line",
|
|
1534
1574
|
yAxisIndex: 0,
|
|
1535
|
-
data: (
|
|
1575
|
+
data: (z = this.meteogramData) == null ? void 0 : z.temperatures,
|
|
1536
1576
|
symbol: "none",
|
|
1537
1577
|
smooth: !1,
|
|
1538
1578
|
itemStyle: {
|
|
@@ -1547,7 +1587,7 @@ const Ne = (h, e) => {
|
|
|
1547
1587
|
itemStyle: {
|
|
1548
1588
|
color: "rgba(239,239,239,0.6)"
|
|
1549
1589
|
},
|
|
1550
|
-
data: (
|
|
1590
|
+
data: (P = this.meteogramData) == null ? void 0 : P.markarea,
|
|
1551
1591
|
emphasis: {
|
|
1552
1592
|
disabled: !0
|
|
1553
1593
|
}
|
|
@@ -1557,7 +1597,7 @@ const Ne = (h, e) => {
|
|
|
1557
1597
|
name: "Precipitation",
|
|
1558
1598
|
type: "bar",
|
|
1559
1599
|
yAxisIndex: 1,
|
|
1560
|
-
data: (
|
|
1600
|
+
data: (L = this.meteogramData) == null ? void 0 : L.precip,
|
|
1561
1601
|
itemStyle: {
|
|
1562
1602
|
color: "#0c73a8"
|
|
1563
1603
|
},
|
|
@@ -1569,7 +1609,7 @@ const Ne = (h, e) => {
|
|
|
1569
1609
|
singleAxisIndex: 2,
|
|
1570
1610
|
coordinateSystem: "singleAxis",
|
|
1571
1611
|
type: "scatter",
|
|
1572
|
-
data: (
|
|
1612
|
+
data: (p = this.meteogramData) == null ? void 0 : p.hours,
|
|
1573
1613
|
label: {
|
|
1574
1614
|
show: !0,
|
|
1575
1615
|
fontSize: 11,
|
|
@@ -1584,7 +1624,7 @@ const Ne = (h, e) => {
|
|
|
1584
1624
|
singleAxisIndex: 3,
|
|
1585
1625
|
coordinateSystem: "singleAxis",
|
|
1586
1626
|
type: "scatter",
|
|
1587
|
-
data: (
|
|
1627
|
+
data: (b = this.meteogramData) == null ? void 0 : b.xDates,
|
|
1588
1628
|
label: {
|
|
1589
1629
|
show: !0,
|
|
1590
1630
|
fontSize: 13,
|
|
@@ -1597,8 +1637,8 @@ const Ne = (h, e) => {
|
|
|
1597
1637
|
}
|
|
1598
1638
|
]
|
|
1599
1639
|
};
|
|
1600
|
-
|
|
1601
|
-
const
|
|
1640
|
+
q.setOption(H);
|
|
1641
|
+
const k = pe.init(document.getElementById("wave-swell")), F = {
|
|
1602
1642
|
title: {
|
|
1603
1643
|
text: "Wave & Swell",
|
|
1604
1644
|
top: "10px",
|
|
@@ -1624,25 +1664,25 @@ const Ne = (h, e) => {
|
|
|
1624
1664
|
triggerOn: "mousemove",
|
|
1625
1665
|
show: !0,
|
|
1626
1666
|
position: "right",
|
|
1627
|
-
formatter: (
|
|
1628
|
-
var
|
|
1629
|
-
const
|
|
1630
|
-
return
|
|
1667
|
+
formatter: (w) => {
|
|
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>
|
|
1631
1671
|
<div style="font-size: 13px;">
|
|
1632
1672
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #60c43e;}"></span>
|
|
1633
|
-
<span>Wind Speed : </span><strong>${(
|
|
1673
|
+
<span>Wind Speed : </span><strong>${(i = w[0]) == null ? void 0 : i.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
1634
1674
|
</div>
|
|
1635
1675
|
<div style="font-size: 13px;">
|
|
1636
1676
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #4ba229;}"></span>
|
|
1637
|
-
<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>
|
|
1638
1678
|
</div>
|
|
1639
1679
|
<div style="font-size: 13px;">
|
|
1640
1680
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #21baa3;"></span>
|
|
1641
|
-
<span>Swell Height : </span><strong>${(
|
|
1681
|
+
<span>Swell Height : </span><strong>${(f = w[3]) == null ? void 0 : f.value}</strong><span style="padding-left: 3px;">m</span>
|
|
1642
1682
|
</div>
|
|
1643
1683
|
<div style="font-size: 13px;">
|
|
1644
1684
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #049f9c;}"></span>
|
|
1645
|
-
<span>Sig.Wave Height : </span><strong>${(ue =
|
|
1685
|
+
<span>Sig.Wave Height : </span><strong>${(ue = w[4]) == null ? void 0 : ue.value}</strong><span style="padding-left: 3px;">m</span>
|
|
1646
1686
|
</div>
|
|
1647
1687
|
`;
|
|
1648
1688
|
}
|
|
@@ -1674,7 +1714,7 @@ const Ne = (h, e) => {
|
|
|
1674
1714
|
top: "50%",
|
|
1675
1715
|
height: "50%",
|
|
1676
1716
|
type: "category",
|
|
1677
|
-
data: (
|
|
1717
|
+
data: (D = this.meteogramData) == null ? void 0 : D.dates,
|
|
1678
1718
|
axisLabel: {
|
|
1679
1719
|
show: !1
|
|
1680
1720
|
},
|
|
@@ -1693,8 +1733,8 @@ const Ne = (h, e) => {
|
|
|
1693
1733
|
},
|
|
1694
1734
|
singleAxis: [
|
|
1695
1735
|
{
|
|
1696
|
-
left: (
|
|
1697
|
-
right: (
|
|
1736
|
+
left: (C = this.meteogramData) == null ? void 0 : C.offset,
|
|
1737
|
+
right: (l = this.meteogramData) == null ? void 0 : l.offset,
|
|
1698
1738
|
type: "category",
|
|
1699
1739
|
show: !1,
|
|
1700
1740
|
axisLine: {
|
|
@@ -1714,12 +1754,12 @@ const Ne = (h, e) => {
|
|
|
1714
1754
|
// 隐藏分割线
|
|
1715
1755
|
},
|
|
1716
1756
|
boundaryGap: !1,
|
|
1717
|
-
data: (
|
|
1757
|
+
data: (E = this.meteogramData) == null ? void 0 : E.dates,
|
|
1718
1758
|
top: "84%",
|
|
1719
1759
|
height: "2%"
|
|
1720
1760
|
},
|
|
1721
1761
|
{
|
|
1722
|
-
left: (
|
|
1762
|
+
left: (A = this.meteogramData) == null ? void 0 : A.offset,
|
|
1723
1763
|
right: (ae = this.meteogramData) == null ? void 0 : ae.offset,
|
|
1724
1764
|
type: "category",
|
|
1725
1765
|
show: !1,
|
|
@@ -1740,7 +1780,7 @@ const Ne = (h, e) => {
|
|
|
1740
1780
|
// 隐藏分割线
|
|
1741
1781
|
},
|
|
1742
1782
|
boundaryGap: !1,
|
|
1743
|
-
data: (
|
|
1783
|
+
data: (d = this.meteogramData) == null ? void 0 : d.dates,
|
|
1744
1784
|
top: "92%",
|
|
1745
1785
|
height: "2%"
|
|
1746
1786
|
}
|
|
@@ -1751,8 +1791,8 @@ const Ne = (h, e) => {
|
|
|
1751
1791
|
name: "Wind Speed ( kts )",
|
|
1752
1792
|
show: !0,
|
|
1753
1793
|
min: 0,
|
|
1754
|
-
max: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((
|
|
1755
|
-
interval: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((
|
|
1794
|
+
max: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((w) => typeof w == "number" && !isNaN(w))) / 5) * 5,
|
|
1795
|
+
interval: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((w) => typeof w == "number" && !isNaN(w))) / 5),
|
|
1756
1796
|
splitNumber: 5,
|
|
1757
1797
|
nameRotate: 90,
|
|
1758
1798
|
nameLocation: "middle",
|
|
@@ -1768,8 +1808,8 @@ const Ne = (h, e) => {
|
|
|
1768
1808
|
type: "value",
|
|
1769
1809
|
name: "Sig.Wave & Swell ( m )",
|
|
1770
1810
|
min: 0,
|
|
1771
|
-
max: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((
|
|
1772
|
-
interval: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((
|
|
1811
|
+
max: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((w) => typeof w == "number" && !isNaN(w))) / 5) * 5,
|
|
1812
|
+
interval: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((w) => typeof w == "number" && !isNaN(w))) / 5),
|
|
1773
1813
|
splitNumber: 5,
|
|
1774
1814
|
show: !0,
|
|
1775
1815
|
nameRotate: 90,
|
|
@@ -1814,7 +1854,7 @@ const Ne = (h, e) => {
|
|
|
1814
1854
|
name: "Wind Speed",
|
|
1815
1855
|
type: "line",
|
|
1816
1856
|
yAxisIndex: 0,
|
|
1817
|
-
data: (
|
|
1857
|
+
data: (de = this.meteogramData) == null ? void 0 : de.windspeed,
|
|
1818
1858
|
symbol: "none",
|
|
1819
1859
|
smooth: !1,
|
|
1820
1860
|
itemStyle: {
|
|
@@ -1824,7 +1864,7 @@ const Ne = (h, e) => {
|
|
|
1824
1864
|
itemStyle: {
|
|
1825
1865
|
color: "rgba(239,239,239,0.6)"
|
|
1826
1866
|
},
|
|
1827
|
-
data: (
|
|
1867
|
+
data: (ge = this.meteogramData) == null ? void 0 : ge.markarea,
|
|
1828
1868
|
emphasis: {
|
|
1829
1869
|
disabled: !0
|
|
1830
1870
|
},
|
|
@@ -1836,14 +1876,14 @@ const Ne = (h, e) => {
|
|
|
1836
1876
|
name: "Wind Direction",
|
|
1837
1877
|
type: "custom",
|
|
1838
1878
|
yAxisIndex: 0,
|
|
1839
|
-
renderItem: (
|
|
1840
|
-
var
|
|
1841
|
-
const
|
|
1842
|
-
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 ? {
|
|
1843
1883
|
type: "image",
|
|
1844
|
-
position:
|
|
1884
|
+
position: he,
|
|
1845
1885
|
style: {
|
|
1846
|
-
image: this.meteogramData.windDirIcons[
|
|
1886
|
+
image: this.meteogramData.windDirIcons[le],
|
|
1847
1887
|
x: -12 / 2,
|
|
1848
1888
|
y: 6,
|
|
1849
1889
|
width: 12,
|
|
@@ -1851,14 +1891,14 @@ const Ne = (h, e) => {
|
|
|
1851
1891
|
}
|
|
1852
1892
|
} : !1;
|
|
1853
1893
|
},
|
|
1854
|
-
data: (
|
|
1894
|
+
data: (ce = this.meteogramData) == null ? void 0 : ce.windspeed,
|
|
1855
1895
|
z: 10
|
|
1856
1896
|
},
|
|
1857
1897
|
{
|
|
1858
1898
|
name: "Wind Gusts",
|
|
1859
1899
|
type: "line",
|
|
1860
1900
|
yAxisIndex: 0,
|
|
1861
|
-
data: (
|
|
1901
|
+
data: (y = this.meteogramData) == null ? void 0 : y.windGusts,
|
|
1862
1902
|
symbol: "none",
|
|
1863
1903
|
smooth: !1,
|
|
1864
1904
|
itemStyle: {
|
|
@@ -1876,7 +1916,7 @@ const Ne = (h, e) => {
|
|
|
1876
1916
|
name: "Swell Height",
|
|
1877
1917
|
type: "line",
|
|
1878
1918
|
yAxisIndex: 1,
|
|
1879
|
-
data: (
|
|
1919
|
+
data: (re = this.meteogramData) == null ? void 0 : re.swellHeight,
|
|
1880
1920
|
symbol: "none",
|
|
1881
1921
|
smooth: !1,
|
|
1882
1922
|
itemStyle: {
|
|
@@ -1890,7 +1930,7 @@ const Ne = (h, e) => {
|
|
|
1890
1930
|
name: "Sig.Wave Height",
|
|
1891
1931
|
type: "line",
|
|
1892
1932
|
yAxisIndex: 1,
|
|
1893
|
-
data: (
|
|
1933
|
+
data: (u = this.meteogramData) == null ? void 0 : u.sigWaveHeight,
|
|
1894
1934
|
symbol: "none",
|
|
1895
1935
|
smooth: !1,
|
|
1896
1936
|
itemStyle: {
|
|
@@ -1905,7 +1945,7 @@ const Ne = (h, e) => {
|
|
|
1905
1945
|
singleAxisIndex: 0,
|
|
1906
1946
|
coordinateSystem: "singleAxis",
|
|
1907
1947
|
type: "scatter",
|
|
1908
|
-
data: (
|
|
1948
|
+
data: (ee = this.meteogramData) == null ? void 0 : ee.hours,
|
|
1909
1949
|
itemStyle: {
|
|
1910
1950
|
color: "#fff"
|
|
1911
1951
|
},
|
|
@@ -1921,7 +1961,7 @@ const Ne = (h, e) => {
|
|
|
1921
1961
|
singleAxisIndex: 1,
|
|
1922
1962
|
coordinateSystem: "singleAxis",
|
|
1923
1963
|
type: "scatter",
|
|
1924
|
-
data: (
|
|
1964
|
+
data: (te = this.meteogramData) == null ? void 0 : te.xDates,
|
|
1925
1965
|
itemStyle: {
|
|
1926
1966
|
color: "#fff"
|
|
1927
1967
|
},
|
|
@@ -1934,15 +1974,439 @@ const Ne = (h, e) => {
|
|
|
1934
1974
|
}
|
|
1935
1975
|
]
|
|
1936
1976
|
};
|
|
1937
|
-
|
|
1938
|
-
|
|
1977
|
+
k.setOption(F), k.on("legendselectchanged", (w) => {
|
|
1978
|
+
w.name === "Wind Speed" && (w.selected["Wind Direction"] = w.selected["Wind Speed"]);
|
|
1979
|
+
});
|
|
1980
|
+
},
|
|
1981
|
+
async handleFetchSeasonalData() {
|
|
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;
|
|
1983
|
+
if (!this.token)
|
|
1984
|
+
return !1;
|
|
1985
|
+
this.loading.seasonalEchart = !0;
|
|
1986
|
+
const r = we((a = this.currentMonth) == null ? void 0 : a.date);
|
|
1987
|
+
let e = {
|
|
1988
|
+
lat: this.position.lat,
|
|
1989
|
+
lng: this.position.lng,
|
|
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(),
|
|
1992
|
+
pastYear: 1
|
|
1993
|
+
}, s = await Qe.post("https://cbe.idmwx.com/api/arc/meteo2/spot/seasonal", e, {
|
|
1994
|
+
headers: {
|
|
1995
|
+
Authorization: this.token
|
|
1996
|
+
}
|
|
1997
|
+
});
|
|
1998
|
+
this.seasonalData = {
|
|
1999
|
+
dates: [],
|
|
2000
|
+
xDates: [],
|
|
2001
|
+
highTemp: [],
|
|
2002
|
+
lastYearHighTemp: [],
|
|
2003
|
+
lowTemp: [],
|
|
2004
|
+
lastYearLowTemp: [],
|
|
2005
|
+
windSpeed: [],
|
|
2006
|
+
windDirection: [],
|
|
2007
|
+
lastYearWindSpeed: [],
|
|
2008
|
+
precip: [],
|
|
2009
|
+
lastYearPrecip: []
|
|
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
|
+
}
|
|
2021
|
+
this.currentMonth = this.currentMonth ?? this.monthsOptions[0];
|
|
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));
|
|
2026
|
+
}
|
|
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));
|
|
2033
|
+
}
|
|
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);
|
|
2047
|
+
}
|
|
2048
|
+
this.initSeasonalEchart();
|
|
2049
|
+
},
|
|
2050
|
+
findMostFrequent(r) {
|
|
2051
|
+
const e = {};
|
|
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;
|
|
2058
|
+
},
|
|
2059
|
+
initSeasonalEchart() {
|
|
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 = {
|
|
2063
|
+
title: {
|
|
2064
|
+
text: "Temperature",
|
|
2065
|
+
top: "10px",
|
|
2066
|
+
left: "5px",
|
|
2067
|
+
textStyle: {
|
|
2068
|
+
fontWeight: "normal",
|
|
2069
|
+
fontSize: 14
|
|
2070
|
+
}
|
|
2071
|
+
},
|
|
2072
|
+
grid: {
|
|
2073
|
+
show: !0,
|
|
2074
|
+
bottom: "20%",
|
|
2075
|
+
top: "45px",
|
|
2076
|
+
left: "8%",
|
|
2077
|
+
right: "8%",
|
|
2078
|
+
borderColor: "#666",
|
|
2079
|
+
borderWidth: 1,
|
|
2080
|
+
z: 1,
|
|
2081
|
+
zlevel: 1
|
|
2082
|
+
},
|
|
2083
|
+
tooltip: {
|
|
2084
|
+
trigger: "axis",
|
|
2085
|
+
show: !0,
|
|
2086
|
+
position: "right",
|
|
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>
|
|
2091
|
+
<div style="font-size: 13px;">
|
|
2092
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #FF9500;}"></span>
|
|
2093
|
+
<span>High : </span><strong>${(L = c[0]) == null ? void 0 : L.value}</strong><span style="padding-left: 3px;">℃</span>
|
|
2094
|
+
</div>
|
|
2095
|
+
<div style="font-size: 13px;">
|
|
2096
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #f7c587;}"></span>
|
|
2097
|
+
<span>High, last year : </span><strong>${(p = c[1]) == null ? void 0 : p.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2098
|
+
</div>
|
|
2099
|
+
<div style="font-size: 13px;">
|
|
2100
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #2164bf;}"></span>
|
|
2101
|
+
<span>Low : </span><strong>${(b = c[2]) == null ? void 0 : b.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2102
|
+
</div>
|
|
2103
|
+
<div style="font-size: 13px;">
|
|
2104
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #7baef7;}"></span>
|
|
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
|
+
`;
|
|
2108
|
+
}
|
|
2109
|
+
},
|
|
2110
|
+
legend: {
|
|
2111
|
+
show: !0,
|
|
2112
|
+
top: "15px",
|
|
2113
|
+
right: "8%",
|
|
2114
|
+
// data: ['Temperature', 'Precipitation'],
|
|
2115
|
+
itemWidth: 40
|
|
2116
|
+
},
|
|
2117
|
+
xAxis: {
|
|
2118
|
+
show: !0,
|
|
2119
|
+
left: 0,
|
|
2120
|
+
right: 0,
|
|
2121
|
+
top: "50%",
|
|
2122
|
+
height: "50%",
|
|
2123
|
+
type: "category",
|
|
2124
|
+
boundaryGap: !0,
|
|
2125
|
+
data: (v = this.seasonalData) == null ? void 0 : v.xDates,
|
|
2126
|
+
axisLabel: {
|
|
2127
|
+
show: !0
|
|
2128
|
+
},
|
|
2129
|
+
axisLine: {
|
|
2130
|
+
show: !0,
|
|
2131
|
+
onZero: !1
|
|
2132
|
+
},
|
|
2133
|
+
axisTick: {
|
|
2134
|
+
show: !0,
|
|
2135
|
+
inside: !0,
|
|
2136
|
+
lineStyle: {
|
|
2137
|
+
color: "rgba(0,0,0,0.7)"
|
|
2138
|
+
}
|
|
2139
|
+
},
|
|
2140
|
+
z: 0,
|
|
2141
|
+
zlevel: 0
|
|
2142
|
+
},
|
|
2143
|
+
yAxis: [
|
|
2144
|
+
{
|
|
2145
|
+
type: "value",
|
|
2146
|
+
name: "Temperature ( ℃ ) ",
|
|
2147
|
+
show: !0,
|
|
2148
|
+
min: h,
|
|
2149
|
+
max: s,
|
|
2150
|
+
interval: a,
|
|
2151
|
+
splitNumber: 5,
|
|
2152
|
+
nameRotate: 90,
|
|
2153
|
+
nameLocation: "middle",
|
|
2154
|
+
nameGap: 25,
|
|
2155
|
+
splitLine: {
|
|
2156
|
+
show: !0
|
|
2157
|
+
},
|
|
2158
|
+
z: 0,
|
|
2159
|
+
zlevel: 0
|
|
2160
|
+
}
|
|
2161
|
+
],
|
|
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
|
+
},
|
|
2176
|
+
{
|
|
2177
|
+
name: "High, last year",
|
|
2178
|
+
type: "line",
|
|
2179
|
+
symbol: "none",
|
|
2180
|
+
data: (Y = this.seasonalData) == null ? void 0 : Y.lastYearHighTemp,
|
|
2181
|
+
itemStyle: {
|
|
2182
|
+
color: "#f7c587"
|
|
2183
|
+
},
|
|
2184
|
+
lineStyle: {
|
|
2185
|
+
color: "#f7c587"
|
|
2186
|
+
// type: 'dashed',
|
|
2187
|
+
},
|
|
2188
|
+
label: {
|
|
2189
|
+
show: !1
|
|
2190
|
+
}
|
|
2191
|
+
},
|
|
2192
|
+
{
|
|
2193
|
+
name: "Low",
|
|
2194
|
+
type: "line",
|
|
2195
|
+
data: (j = this.seasonalData) == null ? void 0 : j.lowTemp,
|
|
2196
|
+
symbol: "none",
|
|
2197
|
+
smooth: !1,
|
|
2198
|
+
itemStyle: {
|
|
2199
|
+
color: "#2164bf"
|
|
2200
|
+
},
|
|
2201
|
+
label: {
|
|
2202
|
+
show: !1
|
|
2203
|
+
}
|
|
2204
|
+
},
|
|
2205
|
+
{
|
|
2206
|
+
name: "Low, last year",
|
|
2207
|
+
type: "line",
|
|
2208
|
+
symbol: "none",
|
|
2209
|
+
data: (K = this.seasonalData) == null ? void 0 : K.lastYearLowTemp,
|
|
2210
|
+
itemStyle: {
|
|
2211
|
+
color: "#7baef7"
|
|
2212
|
+
},
|
|
2213
|
+
lineStyle: {
|
|
2214
|
+
color: "#7baef7"
|
|
2215
|
+
// type: 'dashed',
|
|
2216
|
+
},
|
|
2217
|
+
label: {
|
|
2218
|
+
show: !1
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
]
|
|
2222
|
+
};
|
|
2223
|
+
this.loading.seasonalEchart = !1, this.$nextTick(() => {
|
|
2224
|
+
pe.init(document.getElementById("temperature-echart")).setOption(B);
|
|
2225
|
+
});
|
|
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);
|
|
2227
|
+
const Z = {
|
|
2228
|
+
title: {
|
|
2229
|
+
text: "Wind & Preciption",
|
|
2230
|
+
top: "10px",
|
|
2231
|
+
left: "5px",
|
|
2232
|
+
textStyle: {
|
|
2233
|
+
fontWeight: "normal",
|
|
2234
|
+
fontSize: 14
|
|
2235
|
+
}
|
|
2236
|
+
},
|
|
2237
|
+
grid: {
|
|
2238
|
+
show: !0,
|
|
2239
|
+
bottom: "20%",
|
|
2240
|
+
top: "45px",
|
|
2241
|
+
left: "8%",
|
|
2242
|
+
right: "8%",
|
|
2243
|
+
borderColor: "#666",
|
|
2244
|
+
borderWidth: 1,
|
|
2245
|
+
z: 1,
|
|
2246
|
+
zlevel: 1
|
|
2247
|
+
},
|
|
2248
|
+
tooltip: {
|
|
2249
|
+
trigger: "axis",
|
|
2250
|
+
show: !0,
|
|
2251
|
+
position: "right",
|
|
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>
|
|
2256
|
+
<div style="font-size: 13px;">
|
|
2257
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #60c43e;}"></span>
|
|
2258
|
+
<span>High : </span><strong>${(L = c[0]) == null ? void 0 : L.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
2259
|
+
</div>
|
|
2260
|
+
<div style="font-size: 13px;">
|
|
2261
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #9af77b;}"></span>
|
|
2262
|
+
<span>High, last year : </span><strong>${(p = c[1]) == null ? void 0 : p.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
2263
|
+
</div>
|
|
2264
|
+
<div style="font-size: 13px;">
|
|
2265
|
+
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0c73a8;}"></span>
|
|
2266
|
+
<span>Precip : </span><strong>${(b = c[2]) == null ? void 0 : b.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
2267
|
+
</div>
|
|
2268
|
+
<div style="font-size: 13px;">
|
|
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
|
+
`;
|
|
2273
|
+
}
|
|
2274
|
+
},
|
|
2275
|
+
legend: {
|
|
2276
|
+
show: !0,
|
|
2277
|
+
top: "15px",
|
|
2278
|
+
right: "8%",
|
|
2279
|
+
// data: ['Temperature', 'Precipitation'],
|
|
2280
|
+
itemWidth: 40
|
|
2281
|
+
},
|
|
2282
|
+
xAxis: {
|
|
2283
|
+
show: !0,
|
|
2284
|
+
left: 0,
|
|
2285
|
+
right: 0,
|
|
2286
|
+
top: "50%",
|
|
2287
|
+
height: "50%",
|
|
2288
|
+
type: "category",
|
|
2289
|
+
boundaryGap: !0,
|
|
2290
|
+
data: (U = this.seasonalData) == null ? void 0 : U.xDates,
|
|
2291
|
+
axisLabel: {
|
|
2292
|
+
show: !0
|
|
2293
|
+
},
|
|
2294
|
+
axisLine: {
|
|
2295
|
+
show: !0
|
|
2296
|
+
},
|
|
2297
|
+
axisTick: {
|
|
2298
|
+
show: !0,
|
|
2299
|
+
inside: !0,
|
|
2300
|
+
lineStyle: {
|
|
2301
|
+
color: "rgba(0,0,0,0.7)"
|
|
2302
|
+
}
|
|
2303
|
+
},
|
|
2304
|
+
z: 0,
|
|
2305
|
+
zlevel: 0
|
|
2306
|
+
},
|
|
2307
|
+
yAxis: [
|
|
2308
|
+
{
|
|
2309
|
+
type: "value",
|
|
2310
|
+
name: "Wind speed max ( kts ) ",
|
|
2311
|
+
show: !0,
|
|
2312
|
+
min: H,
|
|
2313
|
+
max: k,
|
|
2314
|
+
interval: F,
|
|
2315
|
+
splitNumber: 5,
|
|
2316
|
+
nameRotate: 90,
|
|
2317
|
+
nameLocation: "middle",
|
|
2318
|
+
nameGap: 25,
|
|
2319
|
+
splitLine: {
|
|
2320
|
+
show: !0
|
|
2321
|
+
},
|
|
2322
|
+
z: 0,
|
|
2323
|
+
zlevel: 0
|
|
2324
|
+
},
|
|
2325
|
+
{
|
|
2326
|
+
type: "value",
|
|
2327
|
+
name: "Precipitation ( mm ) ",
|
|
2328
|
+
show: !0,
|
|
2329
|
+
min: M,
|
|
2330
|
+
max: O,
|
|
2331
|
+
interval: V,
|
|
2332
|
+
splitNumber: 5,
|
|
2333
|
+
nameRotate: 90,
|
|
2334
|
+
nameLocation: "middle",
|
|
2335
|
+
nameGap: 25,
|
|
2336
|
+
splitLine: {
|
|
2337
|
+
show: !0
|
|
2338
|
+
},
|
|
2339
|
+
z: 0,
|
|
2340
|
+
zlevel: 0
|
|
2341
|
+
}
|
|
2342
|
+
],
|
|
2343
|
+
series: [
|
|
2344
|
+
{
|
|
2345
|
+
name: "Wind",
|
|
2346
|
+
type: "line",
|
|
2347
|
+
data: (X = this.seasonalData) == null ? void 0 : X.windSpeed,
|
|
2348
|
+
symbol: "none",
|
|
2349
|
+
smooth: !1,
|
|
2350
|
+
itemStyle: {
|
|
2351
|
+
color: "#60c43e"
|
|
2352
|
+
},
|
|
2353
|
+
label: {
|
|
2354
|
+
show: !1
|
|
2355
|
+
}
|
|
2356
|
+
},
|
|
2357
|
+
{
|
|
2358
|
+
name: "Wind, last year",
|
|
2359
|
+
type: "line",
|
|
2360
|
+
symbol: "none",
|
|
2361
|
+
data: (W = this.seasonalData) == null ? void 0 : W.lastYearWindSpeed,
|
|
2362
|
+
itemStyle: {
|
|
2363
|
+
color: "#9af77b"
|
|
2364
|
+
},
|
|
2365
|
+
lineStyle: {
|
|
2366
|
+
color: "#9af77b"
|
|
2367
|
+
// type: 'dashed',
|
|
2368
|
+
},
|
|
2369
|
+
label: {
|
|
2370
|
+
show: !1
|
|
2371
|
+
}
|
|
2372
|
+
},
|
|
2373
|
+
{
|
|
2374
|
+
name: "Precip",
|
|
2375
|
+
type: "bar",
|
|
2376
|
+
yAxisIndex: 1,
|
|
2377
|
+
data: (R = this.seasonalData) == null ? void 0 : R.precip,
|
|
2378
|
+
symbol: "none",
|
|
2379
|
+
smooth: !1,
|
|
2380
|
+
itemStyle: {
|
|
2381
|
+
color: "#0c73a8"
|
|
2382
|
+
},
|
|
2383
|
+
label: {
|
|
2384
|
+
show: !1
|
|
2385
|
+
}
|
|
2386
|
+
},
|
|
2387
|
+
{
|
|
2388
|
+
name: "Precip, last year",
|
|
2389
|
+
type: "bar",
|
|
2390
|
+
yAxisIndex: 1,
|
|
2391
|
+
data: (J = this.seasonalData) == null ? void 0 : J.lastYearPrecip,
|
|
2392
|
+
itemStyle: {
|
|
2393
|
+
color: "rgba(12,116,168,0.5)"
|
|
2394
|
+
},
|
|
2395
|
+
label: {
|
|
2396
|
+
show: !1
|
|
2397
|
+
}
|
|
2398
|
+
}
|
|
2399
|
+
]
|
|
2400
|
+
};
|
|
2401
|
+
this.$nextTick(() => {
|
|
2402
|
+
pe.init(document.getElementById("wind-precip-echart")).setOption(Z);
|
|
1939
2403
|
});
|
|
1940
2404
|
},
|
|
1941
2405
|
disposeEcharts() {
|
|
1942
|
-
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"));
|
|
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"));
|
|
1943
2407
|
},
|
|
1944
2408
|
initHoursTableData() {
|
|
1945
|
-
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;
|
|
1946
2410
|
this.hoursTableData = {
|
|
1947
2411
|
hours: [],
|
|
1948
2412
|
utcHours: [],
|
|
@@ -1969,11 +2433,11 @@ const Ne = (h, e) => {
|
|
|
1969
2433
|
seaLevel: [],
|
|
1970
2434
|
seaTemp: []
|
|
1971
2435
|
};
|
|
1972
|
-
for (let
|
|
1973
|
-
const
|
|
1974
|
-
this.hoursTableData.hours.push(
|
|
1975
|
-
const
|
|
1976
|
-
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) ?? "-");
|
|
1977
2441
|
}
|
|
1978
2442
|
this.loading.hoursTable = !1;
|
|
1979
2443
|
},
|
|
@@ -1981,827 +2445,1250 @@ const Ne = (h, e) => {
|
|
|
1981
2445
|
this.position = {}, this.meteoData = {}, this.isCollected = !1, pe && document.getElementById("weather-chart") && pe.dispose(document.getElementById("weather-chart"));
|
|
1982
2446
|
},
|
|
1983
2447
|
initDaysTableData() {
|
|
1984
|
-
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;
|
|
1985
2449
|
this.daysTableData = [];
|
|
1986
|
-
const
|
|
1987
|
-
for (let
|
|
1988
|
-
const ae =
|
|
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]) || {};
|
|
1989
2453
|
this.daysTableData.push(
|
|
1990
2454
|
{
|
|
1991
2455
|
localWeek: this.computeWeekLT(ae),
|
|
1992
2456
|
localDate: this.computeMMMDDLT(ae),
|
|
1993
|
-
weatherUrl: (
|
|
1994
|
-
minTemp: this.roundPrecision((
|
|
1995
|
-
maxTemp: this.roundPrecision((
|
|
1996
|
-
weatherName: (
|
|
1997
|
-
precipSum: this.roundPrecision((
|
|
1998
|
-
precipRainSum: this.roundPrecision((
|
|
1999
|
-
precipSnowfallSum: this.roundPrecision((
|
|
2000
|
-
windSpeedMax: this.roundPrecision((
|
|
2001
|
-
windSpeedDir: (
|
|
2002
|
-
gustSpeedMax: this.roundPrecision((
|
|
2003
|
-
windWaveHeight: this.roundPrecision((
|
|
2004
|
-
windWavePeriod: this.roundPrecision((
|
|
2005
|
-
windWaveDir: (
|
|
2006
|
-
swellWaveHeight: this.roundPrecision((
|
|
2007
|
-
swellWavePeriod: this.roundPrecision((
|
|
2008
|
-
swellWaveDir: (
|
|
2009
|
-
sigWaveHeight: this.roundPrecision((
|
|
2010
|
-
sigWavePeriod: this.roundPrecision((
|
|
2011
|
-
sigWaveDir: (
|
|
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) ?? "-",
|
|
2460
|
+
weatherName: (q = d == null ? void 0 : d.weather) == null ? void 0 : q.name,
|
|
2461
|
+
precipSum: this.roundPrecision((k = (H = d == null ? void 0 : d.weather) == null ? void 0 : H.precip) == null ? void 0 : k.sum, 0) ?? "-",
|
|
2462
|
+
precipRainSum: this.roundPrecision((N = (F = d == null ? void 0 : d.weather) == null ? void 0 : F.precip) == null ? void 0 : N.rainSum, 0) ?? "-",
|
|
2463
|
+
precipSnowfallSum: this.roundPrecision((M = (_ = d == null ? void 0 : d.weather) == null ? void 0 : _.precip) == null ? void 0 : M.snowfallSum, 0) ?? "-",
|
|
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
|
|
2012
2476
|
}
|
|
2013
2477
|
);
|
|
2014
2478
|
}
|
|
2015
2479
|
this.loading.daysTable = !1;
|
|
2480
|
+
},
|
|
2481
|
+
initHourlyTableData() {
|
|
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;
|
|
2483
|
+
this.hourlyTableData = [];
|
|
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]) || {};
|
|
2489
|
+
this.hourlyTableData.push(
|
|
2490
|
+
{
|
|
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) ?? "-"
|
|
2513
|
+
}
|
|
2514
|
+
);
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2517
|
+
this.loading.hourlyTable = !1;
|
|
2518
|
+
},
|
|
2519
|
+
handleSelectMonth(r) {
|
|
2520
|
+
this.currentMonth = r, this.handleFetchSeasonalData();
|
|
2016
2521
|
}
|
|
2017
2522
|
}
|
|
2018
|
-
},
|
|
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 = {
|
|
2524
|
+
key: 0,
|
|
2525
|
+
class: "meteogram-echart-section"
|
|
2526
|
+
}, Ze = {
|
|
2019
2527
|
key: 0,
|
|
2020
2528
|
class: "card"
|
|
2021
|
-
},
|
|
2529
|
+
}, _e = {
|
|
2022
2530
|
key: 1,
|
|
2023
2531
|
class: "card flex-center"
|
|
2024
|
-
},
|
|
2532
|
+
}, $e = {
|
|
2025
2533
|
key: 2,
|
|
2026
2534
|
class: "card flex-center"
|
|
2027
|
-
},
|
|
2028
|
-
key:
|
|
2535
|
+
}, et = {
|
|
2536
|
+
key: 1,
|
|
2029
2537
|
class: "weather-echart-section"
|
|
2030
|
-
},
|
|
2538
|
+
}, tt = {
|
|
2031
2539
|
key: 0,
|
|
2032
2540
|
id: "weather-chart",
|
|
2033
2541
|
class: "weather-chart"
|
|
2034
|
-
},
|
|
2542
|
+
}, st = {
|
|
2035
2543
|
key: 1,
|
|
2036
2544
|
class: "weather-chart weather-chart-loading flex-center"
|
|
2037
|
-
},
|
|
2545
|
+
}, at = {
|
|
2038
2546
|
key: 2,
|
|
2039
2547
|
class: "weather-chart flex-center"
|
|
2040
|
-
},
|
|
2041
|
-
key:
|
|
2548
|
+
}, it = {
|
|
2549
|
+
key: 2,
|
|
2042
2550
|
class: "hours-table-section",
|
|
2043
2551
|
style: { border: "1px solid var(--idm-gray-light)" }
|
|
2044
|
-
},
|
|
2552
|
+
}, ot = {
|
|
2045
2553
|
key: 0,
|
|
2046
2554
|
class: "card"
|
|
2047
|
-
},
|
|
2555
|
+
}, nt = { class: "date" }, At = { class: "basic-table" }, rt = { class: "day" }, lt = { class: "hour" }, ht = { class: "icon" }, dt = ["src"], gt = { class: "text" }, ct = { class: "text" }, wt = { class: "text" }, pt = { class: "text" }, mt = { class: "text" }, ut = { class: "text" }, ft = { key: 1 }, Dt = { class: "text" }, Bt = { class: "text" }, yt = { class: "wave-current-table" }, xt = { class: "text" }, Ct = { class: "text" }, vt = { key: 1 }, It = { class: "text" }, bt = { class: "text" }, Et = { class: "text" }, Qt = { key: 1 }, Mt = { class: "text" }, Lt = { class: "text" }, zt = { class: "text" }, Ht = { key: 1 }, kt = { class: "text" }, Pt = { class: "sea-table" }, Nt = { class: "text" }, Tt = { class: "text" }, Gt = {
|
|
2048
2556
|
key: 1,
|
|
2049
2557
|
class: "card card-loading flex-center"
|
|
2050
|
-
},
|
|
2558
|
+
}, St = {
|
|
2051
2559
|
key: 2,
|
|
2052
2560
|
class: "card flex-center"
|
|
2053
|
-
},
|
|
2054
|
-
key:
|
|
2561
|
+
}, Ft = {
|
|
2562
|
+
key: 3,
|
|
2055
2563
|
class: "days-table-section"
|
|
2056
|
-
},
|
|
2564
|
+
}, Ot = {
|
|
2057
2565
|
key: 0,
|
|
2058
2566
|
class: "card"
|
|
2059
|
-
},
|
|
2567
|
+
}, Yt = { class: "conditions-table" }, jt = {
|
|
2060
2568
|
rowspan: "1",
|
|
2061
2569
|
colspan: "1",
|
|
2062
2570
|
class: "tr-title font-gray",
|
|
2063
|
-
style: { "text-align": "right", "padding-right": "
|
|
2064
|
-
},
|
|
2571
|
+
style: { "text-align": "right", "padding-right": "10px", "box-sizing": "border-box" }
|
|
2572
|
+
}, Kt = {
|
|
2065
2573
|
rowspan: "1",
|
|
2066
2574
|
colspan: "1"
|
|
2067
|
-
},
|
|
2575
|
+
}, Ut = ["src"], Xt = {
|
|
2068
2576
|
rowspan: "1",
|
|
2069
2577
|
colspan: "1",
|
|
2070
2578
|
class: "text-align-left"
|
|
2071
|
-
},
|
|
2579
|
+
}, Wt = {
|
|
2072
2580
|
rowspan: "1",
|
|
2073
2581
|
colspan: "1",
|
|
2074
2582
|
class: "text-align-left"
|
|
2075
|
-
},
|
|
2583
|
+
}, Rt = {
|
|
2076
2584
|
rowspan: "1",
|
|
2077
2585
|
colspan: "1",
|
|
2078
2586
|
class: "text-align-left"
|
|
2079
|
-
},
|
|
2587
|
+
}, Jt = {
|
|
2080
2588
|
rowspan: "1",
|
|
2081
2589
|
colspan: "1",
|
|
2082
2590
|
class: "text-align-left"
|
|
2083
|
-
},
|
|
2591
|
+
}, qt = {
|
|
2084
2592
|
rowspan: "1",
|
|
2085
2593
|
colspan: "1",
|
|
2086
2594
|
class: "text-align-left"
|
|
2087
|
-
},
|
|
2595
|
+
}, Vt = {
|
|
2088
2596
|
rowspan: "1",
|
|
2089
2597
|
colspan: "1",
|
|
2090
2598
|
class: "text-align-left"
|
|
2091
|
-
},
|
|
2599
|
+
}, Zt = { key: 1 }, _t = {
|
|
2092
2600
|
rowspan: "1",
|
|
2093
2601
|
colspan: "1",
|
|
2094
2602
|
class: "text-align-left"
|
|
2095
|
-
},
|
|
2603
|
+
}, $t = {
|
|
2096
2604
|
rowspan: "1",
|
|
2097
2605
|
colspan: "1",
|
|
2098
2606
|
class: "text-align-left"
|
|
2099
|
-
},
|
|
2607
|
+
}, es = { key: 1 }, ts = {
|
|
2100
2608
|
rowspan: "1",
|
|
2101
2609
|
colspan: "1",
|
|
2102
2610
|
class: "text-align-left"
|
|
2103
|
-
},
|
|
2611
|
+
}, ss = { key: 1 }, as = {
|
|
2104
2612
|
rowspan: "1",
|
|
2105
2613
|
colspan: "1",
|
|
2106
2614
|
class: "text-align-left"
|
|
2107
|
-
},
|
|
2615
|
+
}, is = { key: 1 }, os = {
|
|
2108
2616
|
key: 1,
|
|
2109
2617
|
class: "card card-loading flex-center"
|
|
2618
|
+
}, ns = {
|
|
2619
|
+
key: 2,
|
|
2620
|
+
class: "card flex-center"
|
|
2110
2621
|
}, As = {
|
|
2622
|
+
key: 4,
|
|
2623
|
+
class: "hourly-table-section"
|
|
2624
|
+
}, rs = {
|
|
2625
|
+
key: 0,
|
|
2626
|
+
class: "card"
|
|
2627
|
+
}, ls = { class: "conditions-table" }, hs = {
|
|
2628
|
+
rowspan: "1",
|
|
2629
|
+
colspan: "1",
|
|
2630
|
+
class: "border"
|
|
2631
|
+
}, ds = {
|
|
2632
|
+
rowspan: "1",
|
|
2633
|
+
colspan: "1",
|
|
2634
|
+
class: "border"
|
|
2635
|
+
}, gs = {
|
|
2636
|
+
rowspan: "1",
|
|
2637
|
+
colspan: "1",
|
|
2638
|
+
class: "border"
|
|
2639
|
+
}, cs = {
|
|
2640
|
+
rowspan: "1",
|
|
2641
|
+
colspan: "1",
|
|
2642
|
+
class: "border"
|
|
2643
|
+
}, ws = {
|
|
2644
|
+
rowspan: "1",
|
|
2645
|
+
colspan: "1",
|
|
2646
|
+
class: "border",
|
|
2647
|
+
style: { "font-size": "11px", "text-align": "right", "padding-right": "3px" }
|
|
2648
|
+
}, ps = { key: 1 }, ms = {
|
|
2649
|
+
rowspan: "1",
|
|
2650
|
+
colspan: "1",
|
|
2651
|
+
class: "border"
|
|
2652
|
+
}, us = {
|
|
2653
|
+
rowspan: "1",
|
|
2654
|
+
colspan: "1",
|
|
2655
|
+
class: "border"
|
|
2656
|
+
}, fs = {
|
|
2657
|
+
rowspan: "1",
|
|
2658
|
+
colspan: "1",
|
|
2659
|
+
class: "border"
|
|
2660
|
+
}, Ds = {
|
|
2661
|
+
rowspan: "1",
|
|
2662
|
+
colspan: "1",
|
|
2663
|
+
class: "border",
|
|
2664
|
+
style: { "font-size": "11px", "text-align": "right", "padding-right": "3px" }
|
|
2665
|
+
}, Bs = { key: 1 }, ys = {
|
|
2666
|
+
rowspan: "1",
|
|
2667
|
+
colspan: "1",
|
|
2668
|
+
class: "border"
|
|
2669
|
+
}, xs = {
|
|
2670
|
+
rowspan: "1",
|
|
2671
|
+
colspan: "1",
|
|
2672
|
+
class: "border"
|
|
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 = {
|
|
2679
|
+
rowspan: "1",
|
|
2680
|
+
colspan: "1",
|
|
2681
|
+
class: "border"
|
|
2682
|
+
}, bs = {
|
|
2683
|
+
rowspan: "1",
|
|
2684
|
+
colspan: "1",
|
|
2685
|
+
class: "border"
|
|
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 = {
|
|
2692
|
+
rowspan: "1",
|
|
2693
|
+
colspan: "1",
|
|
2694
|
+
class: "border"
|
|
2695
|
+
}, Ls = {
|
|
2696
|
+
rowspan: "1",
|
|
2697
|
+
colspan: "1",
|
|
2698
|
+
class: "border"
|
|
2699
|
+
}, zs = {
|
|
2700
|
+
rowspan: "1",
|
|
2701
|
+
colspan: "1",
|
|
2702
|
+
class: "border"
|
|
2703
|
+
}, Hs = {
|
|
2704
|
+
key: 1,
|
|
2705
|
+
class: "card card-loading flex-center"
|
|
2706
|
+
}, ks = {
|
|
2707
|
+
key: 2,
|
|
2708
|
+
class: "card flex-center"
|
|
2709
|
+
}, Ps = {
|
|
2710
|
+
key: 5,
|
|
2711
|
+
class: "seasonal-weather-section"
|
|
2712
|
+
}, Ns = {
|
|
2713
|
+
key: 0,
|
|
2714
|
+
class: "card flex-space"
|
|
2715
|
+
}, Ts = {
|
|
2716
|
+
class: "echart-box",
|
|
2717
|
+
style: {}
|
|
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 = {
|
|
2719
|
+
class: "",
|
|
2720
|
+
style: { "font-size": "16px", "font-weight": "bold", "margin-bottom": "20px" }
|
|
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 = {
|
|
2722
|
+
key: 1,
|
|
2723
|
+
class: "card flex-center"
|
|
2724
|
+
}, aa = {
|
|
2111
2725
|
key: 2,
|
|
2112
2726
|
class: "card flex-center"
|
|
2113
2727
|
};
|
|
2114
|
-
function
|
|
2115
|
-
var
|
|
2116
|
-
const
|
|
2117
|
-
return
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
modelValue:
|
|
2123
|
-
"onUpdate:modelValue": e[0] || (e[0] = (
|
|
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");
|
|
2731
|
+
return o(), n("div", Oe, [
|
|
2732
|
+
t("div", Ye, [
|
|
2733
|
+
t("div", je, [
|
|
2734
|
+
t("div", Ke, [
|
|
2735
|
+
ve(q, {
|
|
2736
|
+
modelValue: a.searchName,
|
|
2737
|
+
"onUpdate:modelValue": e[0] || (e[0] = (i) => a.searchName = i),
|
|
2124
2738
|
filterable: "",
|
|
2125
2739
|
class: "input",
|
|
2126
2740
|
clearable: "",
|
|
2127
2741
|
remote: "",
|
|
2128
|
-
placeholder:
|
|
2742
|
+
placeholder: a.placeholder,
|
|
2129
2743
|
autocomplete: "",
|
|
2130
2744
|
"remote-show-suffix": "",
|
|
2131
|
-
onFocus: e[1] || (e[1] = (
|
|
2132
|
-
onBlur: e[2] || (e[2] = (
|
|
2133
|
-
"remote-method":
|
|
2134
|
-
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
|
|
2135
2749
|
}, {
|
|
2136
|
-
default:
|
|
2137
|
-
(
|
|
2138
|
-
key:
|
|
2139
|
-
label:
|
|
2140
|
-
value:
|
|
2750
|
+
default: Ie(() => [
|
|
2751
|
+
(o(!0), n(oe, null, ne(a.positionList, (i) => (o(), Ne(S, {
|
|
2752
|
+
key: i.name,
|
|
2753
|
+
label: i.name,
|
|
2754
|
+
value: i.name
|
|
2141
2755
|
}, null, 8, ["label", "value"]))), 128))
|
|
2142
2756
|
]),
|
|
2143
2757
|
_: 1
|
|
2144
2758
|
}, 8, ["modelValue", "placeholder", "remote-method", "onChange"])
|
|
2145
2759
|
]),
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
class:
|
|
2149
|
-
onClick: e[3] || (e[3] = (
|
|
2760
|
+
t("div", Ue, [
|
|
2761
|
+
t("div", {
|
|
2762
|
+
class: Ae(["item flex-center", a.menuIndex === 1 ? "active" : ""]),
|
|
2763
|
+
onClick: e[3] || (e[3] = (i) => a.menuIndex = 1)
|
|
2150
2764
|
}, "7-Day Forecast", 2),
|
|
2151
|
-
|
|
2152
|
-
class:
|
|
2153
|
-
onClick: e[4] || (e[4] = (
|
|
2154
|
-
}, "14-Day Forecast", 2)
|
|
2765
|
+
t("div", {
|
|
2766
|
+
class: Ae(["item flex-center", a.menuIndex === 2 ? "active" : ""]),
|
|
2767
|
+
onClick: e[4] || (e[4] = (i) => a.menuIndex = 2)
|
|
2768
|
+
}, "14-Day Forecast", 2),
|
|
2769
|
+
t("div", {
|
|
2770
|
+
class: Ae(["item flex-center", a.menuIndex === 3 ? "active" : ""]),
|
|
2771
|
+
onClick: e[5] || (e[5] = (i) => a.menuIndex = 3)
|
|
2772
|
+
}, "Seasonal Forecast", 2)
|
|
2155
2773
|
])
|
|
2156
2774
|
])
|
|
2157
2775
|
]),
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2776
|
+
t("div", Xe, [
|
|
2777
|
+
t("div", We, [
|
|
2778
|
+
t("div", null, [
|
|
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)
|
|
2163
2781
|
]),
|
|
2164
|
-
|
|
2165
|
-
|
|
2782
|
+
t("div", qe, [
|
|
2783
|
+
ve(H, {
|
|
2166
2784
|
placement: "left",
|
|
2167
2785
|
effect: "light",
|
|
2168
|
-
content:
|
|
2786
|
+
content: a.isCollected ? "remove the port/coordinate from the search list" : "add the port/coordinate to the search list",
|
|
2169
2787
|
"show-after": 1e3
|
|
2170
2788
|
}, {
|
|
2171
|
-
default:
|
|
2172
|
-
|
|
2789
|
+
default: Ie(() => [
|
|
2790
|
+
a.isCollected ? (o(), n("span", {
|
|
2173
2791
|
key: 0,
|
|
2174
2792
|
class: "iconfont icon active",
|
|
2175
|
-
onClick: e[
|
|
2176
|
-
}, "")) : (
|
|
2793
|
+
onClick: e[6] || (e[6] = (...i) => B.handleCollect && B.handleCollect(...i))
|
|
2794
|
+
}, "")) : (o(), n("span", {
|
|
2177
2795
|
key: 1,
|
|
2178
2796
|
class: "iconfont icon",
|
|
2179
|
-
onClick: e[
|
|
2797
|
+
onClick: e[7] || (e[7] = (...i) => B.handleCollect && B.handleCollect(...i))
|
|
2180
2798
|
}, ""))
|
|
2181
2799
|
]),
|
|
2182
2800
|
_: 1
|
|
2183
2801
|
}, 8, ["content"])
|
|
2184
2802
|
])
|
|
2185
2803
|
]),
|
|
2186
|
-
|
|
2187
|
-
(M =
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
]))) : (
|
|
2193
|
-
|
|
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] = [
|
|
2806
|
+
t("div", { class: "title" }, "Meteogram", -1),
|
|
2807
|
+
t("div", { id: "weather-icons" }, null, -1),
|
|
2808
|
+
t("div", { id: "weather-condition" }, null, -1),
|
|
2809
|
+
t("div", { id: "wave-swell" }, null, -1)
|
|
2810
|
+
]))) : (V = a.loading) != null && V.meteogramEchart ? (o(), n("div", _e, e[10] || (e[10] = [
|
|
2811
|
+
t("img", {
|
|
2194
2812
|
style: { height: "200px" },
|
|
2195
|
-
src:
|
|
2813
|
+
src: xe
|
|
2196
2814
|
}, null, -1)
|
|
2197
|
-
]))) : (
|
|
2198
|
-
]),
|
|
2199
|
-
|
|
2200
|
-
(
|
|
2201
|
-
|
|
2815
|
+
]))) : (o(), n("div", $e, "No Data"))
|
|
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] = [
|
|
2819
|
+
t("img", {
|
|
2202
2820
|
style: { height: "200px" },
|
|
2203
|
-
src:
|
|
2821
|
+
src: xe
|
|
2204
2822
|
}, null, -1)
|
|
2205
|
-
]))) : (
|
|
2206
|
-
])) :
|
|
2207
|
-
|
|
2208
|
-
(
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
e[
|
|
2823
|
+
]))) : (o(), n("div", at, "No Data"))
|
|
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),
|
|
2828
|
+
t("table", At, [
|
|
2829
|
+
t("tr", rt, [
|
|
2830
|
+
e[12] || (e[12] = t("th", {
|
|
2213
2831
|
rowspan: "1",
|
|
2214
2832
|
colspan: "1",
|
|
2215
2833
|
class: "td-title"
|
|
2216
2834
|
}, [
|
|
2217
|
-
|
|
2218
|
-
|
|
2835
|
+
$("Local time"),
|
|
2836
|
+
t("span", { class: "unit" }, "(LT)")
|
|
2219
2837
|
], -1)),
|
|
2220
|
-
(
|
|
2838
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.hours, (i, m) => (o(), n("th", {
|
|
2221
2839
|
rowspan: "1",
|
|
2222
2840
|
colspan: "1",
|
|
2223
|
-
class:
|
|
2841
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2224
2842
|
key: Math.random() + "local"
|
|
2225
|
-
},
|
|
2843
|
+
}, g(B.computeHourLT(i)), 3))), 128))
|
|
2226
2844
|
]),
|
|
2227
|
-
|
|
2228
|
-
e[
|
|
2845
|
+
t("tr", lt, [
|
|
2846
|
+
e[13] || (e[13] = t("th", {
|
|
2229
2847
|
rowspan: "1",
|
|
2230
2848
|
colspan: "1",
|
|
2231
2849
|
class: "td-title"
|
|
2232
2850
|
}, [
|
|
2233
|
-
|
|
2234
|
-
|
|
2851
|
+
$("UTC"),
|
|
2852
|
+
t("span", { class: "unit" })
|
|
2235
2853
|
], -1)),
|
|
2236
|
-
(
|
|
2854
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.hours, (i, m) => (o(), n("th", {
|
|
2237
2855
|
rowspan: "1",
|
|
2238
2856
|
colspan: "1",
|
|
2239
|
-
class:
|
|
2857
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2240
2858
|
key: Math.random() + "z"
|
|
2241
|
-
},
|
|
2859
|
+
}, g(B.computeHourZ(i)), 3))), 128))
|
|
2242
2860
|
]),
|
|
2243
|
-
|
|
2244
|
-
e[
|
|
2861
|
+
t("tr", ht, [
|
|
2862
|
+
e[14] || (e[14] = t("td", {
|
|
2245
2863
|
rowspan: "1",
|
|
2246
2864
|
colspan: "1",
|
|
2247
2865
|
class: "td-title"
|
|
2248
2866
|
}, [
|
|
2249
|
-
|
|
2250
|
-
|
|
2867
|
+
$("Weather"),
|
|
2868
|
+
t("span", { class: "unit" })
|
|
2251
2869
|
], -1)),
|
|
2252
|
-
(
|
|
2870
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.weatherUrls, (i, m) => (o(), n("td", {
|
|
2253
2871
|
rowspan: "1",
|
|
2254
2872
|
colspan: "1",
|
|
2255
|
-
class:
|
|
2873
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2256
2874
|
key: Math.random() + "url"
|
|
2257
2875
|
}, [
|
|
2258
|
-
|
|
2876
|
+
ve(H, {
|
|
2259
2877
|
placement: "top",
|
|
2260
2878
|
effect: "light",
|
|
2261
|
-
content:
|
|
2879
|
+
content: a.hoursTableData.weatherNames[m],
|
|
2262
2880
|
"show-after": 500
|
|
2263
2881
|
}, {
|
|
2264
|
-
default:
|
|
2265
|
-
|
|
2882
|
+
default: Ie(() => [
|
|
2883
|
+
i ? (o(), n("img", {
|
|
2266
2884
|
key: 0,
|
|
2267
2885
|
class: "iconfont weather-icon",
|
|
2268
|
-
src:
|
|
2269
|
-
}, null, 8,
|
|
2886
|
+
src: i
|
|
2887
|
+
}, null, 8, dt)) : Be("", !0)
|
|
2270
2888
|
]),
|
|
2271
2889
|
_: 2
|
|
2272
2890
|
}, 1032, ["content"])
|
|
2273
2891
|
], 2))), 128))
|
|
2274
2892
|
]),
|
|
2275
|
-
|
|
2276
|
-
e[
|
|
2893
|
+
t("tr", gt, [
|
|
2894
|
+
e[15] || (e[15] = t("td", {
|
|
2277
2895
|
rowspan: "1",
|
|
2278
2896
|
colspan: "1",
|
|
2279
2897
|
class: "td-title"
|
|
2280
2898
|
}, [
|
|
2281
|
-
|
|
2282
|
-
|
|
2899
|
+
$("Temperature"),
|
|
2900
|
+
t("span", { class: "unit" }, "°C")
|
|
2283
2901
|
], -1)),
|
|
2284
|
-
(
|
|
2902
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.temp, (i, m) => (o(), n("td", {
|
|
2285
2903
|
rowspan: "1",
|
|
2286
2904
|
colspan: "1",
|
|
2287
|
-
class:
|
|
2288
|
-
key: Math.random() +
|
|
2289
|
-
},
|
|
2905
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2906
|
+
key: Math.random() + i
|
|
2907
|
+
}, g(i), 3))), 128))
|
|
2290
2908
|
]),
|
|
2291
|
-
|
|
2292
|
-
e[
|
|
2909
|
+
t("tr", ct, [
|
|
2910
|
+
e[16] || (e[16] = t("td", {
|
|
2293
2911
|
rowspan: "1",
|
|
2294
2912
|
colspan: "1",
|
|
2295
2913
|
class: "td-title"
|
|
2296
2914
|
}, [
|
|
2297
|
-
|
|
2298
|
-
|
|
2915
|
+
$("Precipitation Probability"),
|
|
2916
|
+
t("span", { class: "unit" }, "%")
|
|
2299
2917
|
], -1)),
|
|
2300
|
-
(
|
|
2918
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.precipProbability, (i, m) => (o(), n("td", {
|
|
2301
2919
|
rowspan: "1",
|
|
2302
2920
|
colspan: "1",
|
|
2303
|
-
class:
|
|
2304
|
-
key: Math.random() +
|
|
2305
|
-
},
|
|
2921
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2922
|
+
key: Math.random() + i
|
|
2923
|
+
}, g(i), 3))), 128))
|
|
2306
2924
|
]),
|
|
2307
|
-
|
|
2308
|
-
e[
|
|
2925
|
+
t("tr", wt, [
|
|
2926
|
+
e[17] || (e[17] = t("td", {
|
|
2309
2927
|
rowspan: "1",
|
|
2310
2928
|
colspan: "1",
|
|
2311
2929
|
class: "td-title"
|
|
2312
2930
|
}, [
|
|
2313
|
-
|
|
2314
|
-
|
|
2931
|
+
$("Precipitation 1h"),
|
|
2932
|
+
t("span", { class: "unit" }, "mm")
|
|
2315
2933
|
], -1)),
|
|
2316
|
-
(
|
|
2934
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.precip1h, (i, m) => (o(), n("td", {
|
|
2317
2935
|
rowspan: "1",
|
|
2318
2936
|
colspan: "1",
|
|
2319
|
-
class:
|
|
2320
|
-
key: Math.random() +
|
|
2321
|
-
},
|
|
2937
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2938
|
+
key: Math.random() + i
|
|
2939
|
+
}, g(i), 3))), 128))
|
|
2322
2940
|
]),
|
|
2323
|
-
|
|
2324
|
-
e[
|
|
2941
|
+
t("tr", pt, [
|
|
2942
|
+
e[18] || (e[18] = t("td", {
|
|
2325
2943
|
rowspan: "1",
|
|
2326
2944
|
colspan: "1",
|
|
2327
2945
|
class: "td-title"
|
|
2328
2946
|
}, [
|
|
2329
|
-
|
|
2330
|
-
|
|
2947
|
+
$("Visibility"),
|
|
2948
|
+
t("span", { class: "unit" }, "nm")
|
|
2331
2949
|
], -1)),
|
|
2332
|
-
(
|
|
2950
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.visibility, (i, m) => (o(), n("td", {
|
|
2333
2951
|
rowspan: "1",
|
|
2334
2952
|
colspan: "1",
|
|
2335
|
-
class:
|
|
2336
|
-
key: Math.random() +
|
|
2337
|
-
},
|
|
2953
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2954
|
+
key: Math.random() + i
|
|
2955
|
+
}, g(i), 3))), 128))
|
|
2338
2956
|
]),
|
|
2339
|
-
|
|
2340
|
-
e[
|
|
2957
|
+
t("tr", mt, [
|
|
2958
|
+
e[19] || (e[19] = t("td", {
|
|
2341
2959
|
rowspan: "1",
|
|
2342
2960
|
colspan: "1",
|
|
2343
2961
|
class: "td-title"
|
|
2344
2962
|
}, [
|
|
2345
|
-
|
|
2346
|
-
|
|
2963
|
+
$("Relative Humidity"),
|
|
2964
|
+
t("span", { class: "unit" }, "%")
|
|
2347
2965
|
], -1)),
|
|
2348
|
-
(
|
|
2966
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.humidity, (i, m) => (o(), n("td", {
|
|
2349
2967
|
rowspan: "1",
|
|
2350
2968
|
colspan: "1",
|
|
2351
|
-
class:
|
|
2352
|
-
key: Math.random() +
|
|
2353
|
-
},
|
|
2969
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2970
|
+
key: Math.random() + i
|
|
2971
|
+
}, g(i), 3))), 128))
|
|
2354
2972
|
]),
|
|
2355
|
-
|
|
2356
|
-
e[
|
|
2973
|
+
t("tr", ut, [
|
|
2974
|
+
e[20] || (e[20] = t("td", {
|
|
2357
2975
|
rowspan: "1",
|
|
2358
2976
|
colspan: "1",
|
|
2359
2977
|
class: "td-title"
|
|
2360
2978
|
}, [
|
|
2361
|
-
|
|
2362
|
-
|
|
2979
|
+
$("Wind direction"),
|
|
2980
|
+
t("span", { class: "unit" })
|
|
2363
2981
|
], -1)),
|
|
2364
|
-
(
|
|
2982
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windDir, (i, m) => (o(), n("td", {
|
|
2365
2983
|
rowspan: "1",
|
|
2366
2984
|
colspan: "1",
|
|
2367
|
-
class:
|
|
2368
|
-
key: Math.random() +
|
|
2985
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
2986
|
+
key: Math.random() + i
|
|
2369
2987
|
}, [
|
|
2370
|
-
isNaN(
|
|
2988
|
+
isNaN(i) ? (o(), n("span", ft, "-")) : (o(), n("span", {
|
|
2371
2989
|
key: 0,
|
|
2372
2990
|
class: "iconfont icon",
|
|
2373
|
-
style:
|
|
2991
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
2374
2992
|
}, "", 4))
|
|
2375
2993
|
], 2))), 128))
|
|
2376
2994
|
]),
|
|
2377
|
-
|
|
2378
|
-
e[
|
|
2995
|
+
t("tr", Dt, [
|
|
2996
|
+
e[21] || (e[21] = t("td", {
|
|
2379
2997
|
rowspan: "1",
|
|
2380
2998
|
colspan: "1",
|
|
2381
2999
|
class: "td-title"
|
|
2382
3000
|
}, [
|
|
2383
|
-
|
|
2384
|
-
|
|
3001
|
+
$("Wind speed"),
|
|
3002
|
+
t("span", { class: "unit" }, "kts")
|
|
2385
3003
|
], -1)),
|
|
2386
|
-
(
|
|
3004
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windSpeed, (i, m) => (o(), n("td", {
|
|
2387
3005
|
rowspan: "1",
|
|
2388
3006
|
colspan: "1",
|
|
2389
|
-
class:
|
|
2390
|
-
key: Math.random() +
|
|
2391
|
-
},
|
|
3007
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3008
|
+
key: Math.random() + i
|
|
3009
|
+
}, g(i), 3))), 128))
|
|
2392
3010
|
]),
|
|
2393
|
-
|
|
2394
|
-
e[
|
|
3011
|
+
t("tr", Bt, [
|
|
3012
|
+
e[22] || (e[22] = t("td", {
|
|
2395
3013
|
rowspan: "1",
|
|
2396
3014
|
colspan: "1",
|
|
2397
3015
|
class: "td-title"
|
|
2398
3016
|
}, [
|
|
2399
|
-
|
|
2400
|
-
|
|
3017
|
+
$("Wind gust"),
|
|
3018
|
+
t("span", { class: "unit" }, "kts")
|
|
2401
3019
|
], -1)),
|
|
2402
|
-
(
|
|
3020
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windGust, (i, m) => (o(), n("td", {
|
|
2403
3021
|
rowspan: "1",
|
|
2404
3022
|
colspan: "1",
|
|
2405
|
-
class:
|
|
2406
|
-
key: Math.random() +
|
|
2407
|
-
},
|
|
3023
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3024
|
+
key: Math.random() + i
|
|
3025
|
+
}, g(i), 3))), 128))
|
|
2408
3026
|
])
|
|
2409
3027
|
]),
|
|
2410
|
-
e[
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
e[
|
|
3028
|
+
e[34] || (e[34] = t("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
|
|
3029
|
+
t("table", yt, [
|
|
3030
|
+
t("tr", xt, [
|
|
3031
|
+
e[23] || (e[23] = t("td", {
|
|
2414
3032
|
rowspan: "1",
|
|
2415
3033
|
colspan: "1",
|
|
2416
3034
|
class: "td-title"
|
|
2417
3035
|
}, [
|
|
2418
|
-
|
|
2419
|
-
|
|
3036
|
+
$("Wind wave height"),
|
|
3037
|
+
t("span", { class: "unit" }, "m")
|
|
2420
3038
|
], -1)),
|
|
2421
|
-
(
|
|
3039
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windwaveHeight, (i, m) => (o(), n("td", {
|
|
2422
3040
|
rowspan: "1",
|
|
2423
3041
|
colspan: "1",
|
|
2424
|
-
class:
|
|
2425
|
-
key: Math.random() +
|
|
2426
|
-
},
|
|
3042
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3043
|
+
key: Math.random() + i
|
|
3044
|
+
}, g(i), 3))), 128))
|
|
2427
3045
|
]),
|
|
2428
|
-
|
|
2429
|
-
e[
|
|
3046
|
+
t("tr", Ct, [
|
|
3047
|
+
e[24] || (e[24] = t("td", {
|
|
2430
3048
|
rowspan: "1",
|
|
2431
3049
|
colspan: "1",
|
|
2432
3050
|
class: "td-title"
|
|
2433
3051
|
}, [
|
|
2434
|
-
|
|
2435
|
-
|
|
3052
|
+
$("Wind wave direction"),
|
|
3053
|
+
t("span", { class: "unit" })
|
|
2436
3054
|
], -1)),
|
|
2437
|
-
(
|
|
3055
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windwaveDir, (i, m) => (o(), n("td", {
|
|
2438
3056
|
rowspan: "1",
|
|
2439
3057
|
colspan: "1",
|
|
2440
|
-
class:
|
|
2441
|
-
key: Math.random() +
|
|
3058
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3059
|
+
key: Math.random() + i
|
|
2442
3060
|
}, [
|
|
2443
|
-
isNaN(
|
|
3061
|
+
isNaN(i) ? (o(), n("span", vt, "-")) : (o(), n("span", {
|
|
2444
3062
|
key: 0,
|
|
2445
3063
|
class: "iconfont icon",
|
|
2446
|
-
style:
|
|
3064
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
2447
3065
|
}, "", 4))
|
|
2448
3066
|
], 2))), 128))
|
|
2449
3067
|
]),
|
|
2450
|
-
|
|
2451
|
-
e[
|
|
3068
|
+
t("tr", It, [
|
|
3069
|
+
e[25] || (e[25] = t("td", {
|
|
2452
3070
|
rowspan: "1",
|
|
2453
3071
|
colspan: "1",
|
|
2454
3072
|
class: "td-title"
|
|
2455
3073
|
}, [
|
|
2456
|
-
|
|
2457
|
-
|
|
3074
|
+
$("Wind wave period"),
|
|
3075
|
+
t("span", { class: "unit" }, "s")
|
|
2458
3076
|
], -1)),
|
|
2459
|
-
(
|
|
3077
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.windwavePeriod, (i, m) => (o(), n("td", {
|
|
2460
3078
|
rowspan: "1",
|
|
2461
3079
|
colspan: "1",
|
|
2462
|
-
class:
|
|
2463
|
-
key: Math.random() +
|
|
2464
|
-
},
|
|
3080
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3081
|
+
key: Math.random() + i
|
|
3082
|
+
}, g(i), 3))), 128))
|
|
2465
3083
|
]),
|
|
2466
|
-
|
|
2467
|
-
e[
|
|
3084
|
+
t("tr", bt, [
|
|
3085
|
+
e[26] || (e[26] = t("td", {
|
|
2468
3086
|
rowspan: "1",
|
|
2469
3087
|
colspan: "1",
|
|
2470
3088
|
class: "td-title"
|
|
2471
3089
|
}, [
|
|
2472
|
-
|
|
2473
|
-
|
|
3090
|
+
$("Swell height"),
|
|
3091
|
+
t("span", { class: "unit" }, "m")
|
|
2474
3092
|
], -1)),
|
|
2475
|
-
(
|
|
3093
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.swellHeight, (i, m) => (o(), n("td", {
|
|
2476
3094
|
rowspan: "1",
|
|
2477
3095
|
colspan: "1",
|
|
2478
|
-
class:
|
|
2479
|
-
key: Math.random() +
|
|
2480
|
-
},
|
|
3096
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3097
|
+
key: Math.random() + i
|
|
3098
|
+
}, g(i), 3))), 128))
|
|
2481
3099
|
]),
|
|
2482
|
-
|
|
2483
|
-
e[
|
|
3100
|
+
t("tr", Et, [
|
|
3101
|
+
e[27] || (e[27] = t("td", {
|
|
2484
3102
|
rowspan: "1",
|
|
2485
3103
|
colspan: "1",
|
|
2486
3104
|
class: "td-title"
|
|
2487
3105
|
}, [
|
|
2488
|
-
|
|
2489
|
-
|
|
3106
|
+
$("Swell direction"),
|
|
3107
|
+
t("span", { class: "unit" })
|
|
2490
3108
|
], -1)),
|
|
2491
|
-
(
|
|
3109
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.swellDir, (i, m) => (o(), n("td", {
|
|
2492
3110
|
rowspan: "1",
|
|
2493
3111
|
colspan: "1",
|
|
2494
|
-
class:
|
|
2495
|
-
key: Math.random() +
|
|
3112
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3113
|
+
key: Math.random() + i
|
|
2496
3114
|
}, [
|
|
2497
|
-
isNaN(
|
|
3115
|
+
isNaN(i) ? (o(), n("span", Qt, "-")) : (o(), n("span", {
|
|
2498
3116
|
key: 0,
|
|
2499
3117
|
class: "iconfont icon",
|
|
2500
|
-
style:
|
|
3118
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
2501
3119
|
}, "", 4))
|
|
2502
3120
|
], 2))), 128))
|
|
2503
3121
|
]),
|
|
2504
|
-
|
|
2505
|
-
e[
|
|
3122
|
+
t("tr", Mt, [
|
|
3123
|
+
e[28] || (e[28] = t("td", {
|
|
2506
3124
|
rowspan: "1",
|
|
2507
3125
|
colspan: "1",
|
|
2508
3126
|
class: "td-title"
|
|
2509
3127
|
}, [
|
|
2510
|
-
|
|
2511
|
-
|
|
3128
|
+
$("Swell period"),
|
|
3129
|
+
t("span", { class: "unit" }, "s")
|
|
2512
3130
|
], -1)),
|
|
2513
|
-
(
|
|
3131
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.swellPeriod, (i, m) => (o(), n("td", {
|
|
2514
3132
|
rowspan: "1",
|
|
2515
3133
|
colspan: "1",
|
|
2516
|
-
class:
|
|
2517
|
-
key: Math.random() +
|
|
2518
|
-
},
|
|
3134
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3135
|
+
key: Math.random() + i
|
|
3136
|
+
}, g(i), 3))), 128))
|
|
2519
3137
|
]),
|
|
2520
|
-
|
|
2521
|
-
e[
|
|
3138
|
+
t("tr", Lt, [
|
|
3139
|
+
e[29] || (e[29] = t("td", {
|
|
2522
3140
|
rowspan: "1",
|
|
2523
3141
|
colspan: "1",
|
|
2524
3142
|
class: "td-title"
|
|
2525
3143
|
}, [
|
|
2526
|
-
|
|
2527
|
-
|
|
3144
|
+
$("Sig wave height"),
|
|
3145
|
+
t("span", { class: "unit" }, "m")
|
|
2528
3146
|
], -1)),
|
|
2529
|
-
(
|
|
3147
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.sigwaveHeight, (i, m) => (o(), n("td", {
|
|
2530
3148
|
rowspan: "1",
|
|
2531
3149
|
colspan: "1",
|
|
2532
|
-
class:
|
|
2533
|
-
key: Math.random() +
|
|
2534
|
-
},
|
|
3150
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3151
|
+
key: Math.random() + i
|
|
3152
|
+
}, g(i), 3))), 128))
|
|
2535
3153
|
]),
|
|
2536
|
-
|
|
2537
|
-
e[
|
|
3154
|
+
t("tr", zt, [
|
|
3155
|
+
e[30] || (e[30] = t("td", {
|
|
2538
3156
|
rowspan: "1",
|
|
2539
3157
|
colspan: "1",
|
|
2540
3158
|
class: "td-title"
|
|
2541
3159
|
}, [
|
|
2542
|
-
|
|
2543
|
-
|
|
3160
|
+
$("Current direction"),
|
|
3161
|
+
t("span", { class: "unit" })
|
|
2544
3162
|
], -1)),
|
|
2545
|
-
(
|
|
3163
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.currentDir, (i, m) => (o(), n("td", {
|
|
2546
3164
|
rowspan: "1",
|
|
2547
3165
|
colspan: "1",
|
|
2548
|
-
class:
|
|
2549
|
-
key: Math.random() +
|
|
3166
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3167
|
+
key: Math.random() + i
|
|
2550
3168
|
}, [
|
|
2551
|
-
isNaN(
|
|
3169
|
+
isNaN(i) ? (o(), n("span", Ht, "-")) : (o(), n("span", {
|
|
2552
3170
|
key: 0,
|
|
2553
3171
|
class: "iconfont icon",
|
|
2554
|
-
style:
|
|
3172
|
+
style: fe({ display: "inline-block", transform: `rotate(${i}deg)` })
|
|
2555
3173
|
}, "", 4))
|
|
2556
3174
|
], 2))), 128))
|
|
2557
3175
|
]),
|
|
2558
|
-
|
|
2559
|
-
e[
|
|
3176
|
+
t("tr", kt, [
|
|
3177
|
+
e[31] || (e[31] = t("td", {
|
|
2560
3178
|
rowspan: "1",
|
|
2561
3179
|
colspan: "1",
|
|
2562
3180
|
class: "td-title"
|
|
2563
3181
|
}, [
|
|
2564
|
-
|
|
2565
|
-
|
|
3182
|
+
$("Current speed"),
|
|
3183
|
+
t("span", { class: "unit" }, "kts")
|
|
2566
3184
|
], -1)),
|
|
2567
|
-
(
|
|
3185
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.currentSpeed, (i, m) => (o(), n("td", {
|
|
2568
3186
|
rowspan: "1",
|
|
2569
3187
|
colspan: "1",
|
|
2570
|
-
class:
|
|
2571
|
-
key: Math.random() +
|
|
2572
|
-
},
|
|
3188
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3189
|
+
key: Math.random() + i
|
|
3190
|
+
}, g(i), 3))), 128))
|
|
2573
3191
|
])
|
|
2574
3192
|
]),
|
|
2575
|
-
e[
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
e[
|
|
3193
|
+
e[35] || (e[35] = t("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
|
|
3194
|
+
t("table", Pt, [
|
|
3195
|
+
t("tr", Nt, [
|
|
3196
|
+
e[32] || (e[32] = t("td", {
|
|
2579
3197
|
rowspan: "1",
|
|
2580
3198
|
colspan: "1",
|
|
2581
3199
|
class: "td-title"
|
|
2582
3200
|
}, [
|
|
2583
|
-
|
|
2584
|
-
|
|
3201
|
+
$("Sea level height"),
|
|
3202
|
+
t("span", { class: "unit" }, "m")
|
|
2585
3203
|
], -1)),
|
|
2586
|
-
(
|
|
3204
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.seaLevel, (i, m) => (o(), n("td", {
|
|
2587
3205
|
rowspan: "1",
|
|
2588
3206
|
colspan: "1",
|
|
2589
|
-
class:
|
|
2590
|
-
key: Math.random() +
|
|
2591
|
-
},
|
|
3207
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3208
|
+
key: Math.random() + i
|
|
3209
|
+
}, g(i), 3))), 128))
|
|
2592
3210
|
]),
|
|
2593
|
-
|
|
2594
|
-
e[
|
|
3211
|
+
t("tr", Tt, [
|
|
3212
|
+
e[33] || (e[33] = t("td", {
|
|
2595
3213
|
rowspan: "1",
|
|
2596
3214
|
colspan: "1",
|
|
2597
3215
|
class: "td-title"
|
|
2598
3216
|
}, [
|
|
2599
|
-
|
|
2600
|
-
|
|
3217
|
+
$("Sea surface temperature"),
|
|
3218
|
+
t("span", { class: "unit" }, "°C")
|
|
2601
3219
|
], -1)),
|
|
2602
|
-
(
|
|
3220
|
+
(o(!0), n(oe, null, ne(a.hoursTableData.seaTemp, (i, m) => (o(), n("td", {
|
|
2603
3221
|
rowspan: "1",
|
|
2604
3222
|
colspan: "1",
|
|
2605
|
-
class:
|
|
2606
|
-
key: Math.random() +
|
|
2607
|
-
},
|
|
3223
|
+
class: Ae(a.activeIndex === m ? "active" : ""),
|
|
3224
|
+
key: Math.random() + i
|
|
3225
|
+
}, g(i), 3))), 128))
|
|
2608
3226
|
])
|
|
2609
3227
|
])
|
|
2610
|
-
])) : (
|
|
2611
|
-
|
|
3228
|
+
])) : (K = a.loading) != null && K.hoursTable ? (o(), n("div", Gt, e[36] || (e[36] = [
|
|
3229
|
+
t("img", {
|
|
2612
3230
|
style: { height: "200px" },
|
|
2613
|
-
src:
|
|
3231
|
+
src: xe
|
|
2614
3232
|
}, null, -1)
|
|
2615
|
-
]))) : (
|
|
2616
|
-
])) :
|
|
2617
|
-
|
|
2618
|
-
(
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
3233
|
+
]))) : (o(), n("div", St, "No Data"))
|
|
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, [
|
|
3237
|
+
e[48] || (e[48] = t("div", { class: "date" }, "Daily Forecast", -1)),
|
|
3238
|
+
t("table", Yt, [
|
|
3239
|
+
e[46] || (e[46] = t("tr", { class: "day tr-title" }, [
|
|
3240
|
+
t("th", {
|
|
2622
3241
|
rowspan: "1",
|
|
2623
3242
|
colspan: "1"
|
|
2624
3243
|
}),
|
|
2625
|
-
|
|
3244
|
+
t("th", {
|
|
2626
3245
|
rowspan: "1",
|
|
2627
3246
|
colspan: "3",
|
|
2628
3247
|
class: "text-align-left"
|
|
2629
3248
|
}, "Conditions"),
|
|
2630
|
-
|
|
3249
|
+
t("th", {
|
|
2631
3250
|
rowspan: "1",
|
|
2632
3251
|
colspan: "3",
|
|
2633
3252
|
class: "text-align-left"
|
|
2634
3253
|
}, "Precipitation"),
|
|
2635
|
-
|
|
3254
|
+
t("th", {
|
|
2636
3255
|
rowspan: "1",
|
|
2637
3256
|
colspan: "2",
|
|
2638
3257
|
class: "text-align-left"
|
|
2639
3258
|
}, "Wind"),
|
|
2640
|
-
|
|
3259
|
+
t("th", {
|
|
2641
3260
|
rowspan: "1",
|
|
2642
3261
|
colspan: "4",
|
|
2643
3262
|
class: "text-align-left"
|
|
2644
3263
|
}, "Wave")
|
|
2645
3264
|
], -1)),
|
|
2646
|
-
e[
|
|
2647
|
-
|
|
3265
|
+
e[47] || (e[47] = t("tr", { class: "hour tr-title border-bottom" }, [
|
|
3266
|
+
t("th", {
|
|
2648
3267
|
rowspan: "1",
|
|
2649
3268
|
colspan: "1",
|
|
2650
3269
|
class: "font-black",
|
|
2651
|
-
style: { "text-align": "right", "padding-right": "
|
|
3270
|
+
style: { "text-align": "right", "padding-right": "10px", "box-sizing": "border-box" }
|
|
2652
3271
|
}, "Date"),
|
|
2653
|
-
|
|
3272
|
+
t("th", {
|
|
2654
3273
|
rowspan: "1",
|
|
2655
3274
|
colspan: "1",
|
|
2656
|
-
class: "font-black",
|
|
3275
|
+
class: "font-black text-align-left",
|
|
2657
3276
|
style: { width: "40px" }
|
|
2658
3277
|
}, "Weather"),
|
|
2659
|
-
|
|
3278
|
+
t("th", {
|
|
2660
3279
|
rowspan: "1",
|
|
2661
3280
|
colspan: "1",
|
|
2662
3281
|
class: "font-black text-align-left",
|
|
2663
3282
|
style: { width: "70px" }
|
|
2664
3283
|
}),
|
|
2665
|
-
|
|
3284
|
+
t("th", {
|
|
2666
3285
|
rowspan: "1",
|
|
2667
3286
|
colspan: "1",
|
|
2668
3287
|
class: "font-black text-align-left"
|
|
2669
3288
|
}, "Temperature"),
|
|
2670
|
-
|
|
3289
|
+
t("th", {
|
|
2671
3290
|
rowspan: "1",
|
|
2672
3291
|
colspan: "1",
|
|
2673
3292
|
class: "font-black text-align-left"
|
|
2674
3293
|
}, "Sum"),
|
|
2675
|
-
|
|
3294
|
+
t("th", {
|
|
2676
3295
|
rowspan: "1",
|
|
2677
3296
|
colspan: "1",
|
|
2678
3297
|
class: "font-black text-align-left"
|
|
2679
3298
|
}, "Rain"),
|
|
2680
|
-
|
|
3299
|
+
t("th", {
|
|
2681
3300
|
rowspan: "1",
|
|
2682
3301
|
colspan: "1",
|
|
2683
3302
|
class: "font-black text-align-left"
|
|
2684
3303
|
}, "Snowfall"),
|
|
2685
|
-
|
|
3304
|
+
t("th", {
|
|
2686
3305
|
rowspan: "1",
|
|
2687
3306
|
colspan: "1",
|
|
2688
3307
|
class: "font-black text-align-left"
|
|
2689
3308
|
}, "Speed_max"),
|
|
2690
|
-
|
|
3309
|
+
t("th", {
|
|
2691
3310
|
rowspan: "1",
|
|
2692
3311
|
colspan: "1",
|
|
2693
3312
|
class: "font-black text-align-left"
|
|
2694
3313
|
}, "Gust_max"),
|
|
2695
|
-
|
|
3314
|
+
t("th", {
|
|
2696
3315
|
rowspan: "1",
|
|
2697
3316
|
colspan: "1",
|
|
2698
3317
|
class: "font-black text-align-left",
|
|
2699
3318
|
style: { width: "75px" }
|
|
2700
3319
|
}, "Wind wave_max"),
|
|
2701
|
-
|
|
3320
|
+
t("th", {
|
|
2702
3321
|
rowspan: "1",
|
|
2703
3322
|
colspan: "1",
|
|
2704
3323
|
class: "font-black text-align-left",
|
|
2705
3324
|
style: { width: "75px" }
|
|
2706
3325
|
}, "Swell wave_max"),
|
|
2707
|
-
|
|
3326
|
+
t("th", {
|
|
2708
3327
|
rowspan: "1",
|
|
2709
3328
|
colspan: "1",
|
|
2710
3329
|
class: "font-black text-align-left",
|
|
2711
3330
|
style: { width: "75px" }
|
|
2712
3331
|
}, "Sig.wave_max")
|
|
2713
3332
|
], -1)),
|
|
2714
|
-
(
|
|
3333
|
+
(o(!0), n(oe, null, ne(a.daysTableData, (i, m) => (o(), n("tr", {
|
|
2715
3334
|
class: "text border-bottom",
|
|
2716
|
-
key: Math.random() +
|
|
3335
|
+
key: Math.random() + i.localDate
|
|
2717
3336
|
}, [
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
3337
|
+
t("td", jt, [
|
|
3338
|
+
t("div", null, g(i.localWeek), 1),
|
|
3339
|
+
t("div", null, g(i.localDate), 1)
|
|
2721
3340
|
]),
|
|
2722
|
-
|
|
2723
|
-
|
|
3341
|
+
t("td", Kt, [
|
|
3342
|
+
i.weatherUrl ? (o(), n("img", {
|
|
2724
3343
|
key: 0,
|
|
2725
3344
|
class: "iconfont weather-icon",
|
|
2726
3345
|
style: { width: "34px", height: "34px" },
|
|
2727
|
-
src:
|
|
2728
|
-
}, null, 8,
|
|
3346
|
+
src: i.weatherUrl
|
|
3347
|
+
}, null, 8, Ut)) : Be("", !0)
|
|
2729
3348
|
]),
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
e[
|
|
3349
|
+
t("td", Xt, g(i.weatherName), 1),
|
|
3350
|
+
t("td", Wt, [
|
|
3351
|
+
$(g(i.minTemp) + " / " + g(i.maxTemp), 1),
|
|
3352
|
+
e[37] || (e[37] = t("span", { class: "unit" }, "°C", -1))
|
|
2734
3353
|
]),
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
e[
|
|
3354
|
+
t("td", Rt, [
|
|
3355
|
+
$(g(i.precipSum), 1),
|
|
3356
|
+
e[38] || (e[38] = t("span", { class: "unit" }, "mm", -1))
|
|
2738
3357
|
]),
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
e[
|
|
3358
|
+
t("td", Jt, [
|
|
3359
|
+
$(g(i.precipRainSum), 1),
|
|
3360
|
+
e[39] || (e[39] = t("span", { class: "unit" }, "mm", -1))
|
|
2742
3361
|
]),
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
e[
|
|
3362
|
+
t("td", qt, [
|
|
3363
|
+
$(g(i.precipSnowfallSum), 1),
|
|
3364
|
+
e[40] || (e[40] = t("span", { class: "unit" }, "mm", -1))
|
|
2746
3365
|
]),
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
e[
|
|
2750
|
-
isNaN(
|
|
3366
|
+
t("td", Vt, [
|
|
3367
|
+
t("span", null, g(i.windSpeedMax), 1),
|
|
3368
|
+
e[41] || (e[41] = t("span", { class: "unit" }, "kts", -1)),
|
|
3369
|
+
!isNaN(i.windSpeedDir) && !isNaN(i.windSpeedMax) ? (o(), n("span", {
|
|
2751
3370
|
key: 0,
|
|
2752
3371
|
class: "iconfont icon",
|
|
2753
|
-
style:
|
|
2754
|
-
}, "", 4))
|
|
3372
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.windSpeedDir}deg)` })
|
|
3373
|
+
}, "", 4)) : (o(), n("span", Zt, "-"))
|
|
2755
3374
|
]),
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
e[
|
|
3375
|
+
t("td", _t, [
|
|
3376
|
+
t("span", null, g(i.gustSpeedMax), 1),
|
|
3377
|
+
e[42] || (e[42] = t("span", { class: "unit" }, "kts", -1))
|
|
2759
3378
|
]),
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
e[
|
|
2763
|
-
isNaN(
|
|
3379
|
+
t("td", $t, [
|
|
3380
|
+
t("span", null, g(i.windWaveHeight), 1),
|
|
3381
|
+
e[43] || (e[43] = t("span", { class: "unit" }, "m", -1)),
|
|
3382
|
+
!isNaN(i.windWaveDir) && !isNaN(i.windWaveHeight) ? (o(), n("span", {
|
|
2764
3383
|
key: 0,
|
|
2765
3384
|
class: "iconfont icon",
|
|
2766
|
-
style:
|
|
2767
|
-
}, "", 4))
|
|
3385
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.windWaveDir}deg)` })
|
|
3386
|
+
}, "", 4)) : (o(), n("span", es, "-"))
|
|
2768
3387
|
]),
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
e[
|
|
2772
|
-
isNaN(
|
|
3388
|
+
t("td", ts, [
|
|
3389
|
+
t("span", null, g(i.swellWaveHeight), 1),
|
|
3390
|
+
e[44] || (e[44] = t("span", { class: "unit" }, "m", -1)),
|
|
3391
|
+
!isNaN(i.swellWaveDir) && !isNaN(i.swellWaveHeight) ? (o(), n("span", {
|
|
2773
3392
|
key: 0,
|
|
2774
3393
|
class: "iconfont icon",
|
|
2775
|
-
style:
|
|
2776
|
-
}, "", 4))
|
|
3394
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.swellWaveDir}deg)` })
|
|
3395
|
+
}, "", 4)) : (o(), n("span", ss, "-"))
|
|
2777
3396
|
]),
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
e[
|
|
2781
|
-
isNaN(
|
|
3397
|
+
t("td", as, [
|
|
3398
|
+
t("span", null, g(i.sigWaveHeight), 1),
|
|
3399
|
+
e[45] || (e[45] = t("span", { class: "unit" }, "m", -1)),
|
|
3400
|
+
!isNaN(i.sigWaveDir) && !isNaN(i.sigWaveHeight) ? (o(), n("span", {
|
|
2782
3401
|
key: 0,
|
|
2783
3402
|
class: "iconfont icon",
|
|
2784
|
-
style:
|
|
2785
|
-
}, "", 4))
|
|
3403
|
+
style: fe({ display: "inline-block", transform: `rotate(${i.sigWaveDir}deg)` })
|
|
3404
|
+
}, "", 4)) : (o(), n("span", is, "-"))
|
|
2786
3405
|
])
|
|
2787
3406
|
]))), 128))
|
|
2788
3407
|
])
|
|
2789
|
-
])) : (
|
|
2790
|
-
|
|
3408
|
+
])) : (W = a.loading) != null && W.daysTable ? (o(), n("div", os, e[49] || (e[49] = [
|
|
3409
|
+
t("img", {
|
|
3410
|
+
style: { height: "200px" },
|
|
3411
|
+
src: xe
|
|
3412
|
+
}, null, -1)
|
|
3413
|
+
]))) : (o(), n("div", ns, "No Data"))
|
|
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, [
|
|
3417
|
+
e[52] || (e[52] = t("div", { class: "date" }, "Hourly Forecast", -1)),
|
|
3418
|
+
t("table", ls, [
|
|
3419
|
+
e[50] || (e[50] = t("tr", { class: "day tr-title" }, [
|
|
3420
|
+
t("th", {
|
|
3421
|
+
rowspan: "2",
|
|
3422
|
+
colspan: "1",
|
|
3423
|
+
class: "border",
|
|
3424
|
+
style: { width: "70px" }
|
|
3425
|
+
}, "DateTime"),
|
|
3426
|
+
t("th", {
|
|
3427
|
+
rowspan: "1",
|
|
3428
|
+
colspan: "1",
|
|
3429
|
+
class: "border"
|
|
3430
|
+
}, "Temp"),
|
|
3431
|
+
t("th", {
|
|
3432
|
+
rowspan: "1",
|
|
3433
|
+
colspan: "1",
|
|
3434
|
+
class: "border"
|
|
3435
|
+
}, "Precip"),
|
|
3436
|
+
t("th", {
|
|
3437
|
+
rowspan: "1",
|
|
3438
|
+
colspan: "1",
|
|
3439
|
+
class: "border"
|
|
3440
|
+
}, "Visibility"),
|
|
3441
|
+
t("th", {
|
|
3442
|
+
rowspan: "1",
|
|
3443
|
+
colspan: "4",
|
|
3444
|
+
class: "border"
|
|
3445
|
+
}, "Wind"),
|
|
3446
|
+
t("th", {
|
|
3447
|
+
rowspan: "1",
|
|
3448
|
+
colspan: "3",
|
|
3449
|
+
class: "border"
|
|
3450
|
+
}, "Wind wave"),
|
|
3451
|
+
t("th", {
|
|
3452
|
+
rowspan: "1",
|
|
3453
|
+
colspan: "3",
|
|
3454
|
+
class: "border"
|
|
3455
|
+
}, "Sig.wave"),
|
|
3456
|
+
t("th", {
|
|
3457
|
+
rowspan: "1",
|
|
3458
|
+
colspan: "2",
|
|
3459
|
+
class: "border"
|
|
3460
|
+
}, "Current"),
|
|
3461
|
+
t("th", {
|
|
3462
|
+
rowspan: "1",
|
|
3463
|
+
colspan: "1",
|
|
3464
|
+
class: "border"
|
|
3465
|
+
}, "Sea Level"),
|
|
3466
|
+
t("th", {
|
|
3467
|
+
rowspan: "1",
|
|
3468
|
+
colspan: "1",
|
|
3469
|
+
class: "border"
|
|
3470
|
+
}, "Sea Surface")
|
|
3471
|
+
], -1)),
|
|
3472
|
+
e[51] || (e[51] = t("tr", { class: "hour tr-title" }, [
|
|
3473
|
+
t("th", {
|
|
3474
|
+
rowspan: "1",
|
|
3475
|
+
colspan: "1",
|
|
3476
|
+
class: "border"
|
|
3477
|
+
}, "°C"),
|
|
3478
|
+
t("th", {
|
|
3479
|
+
rowspan: "1",
|
|
3480
|
+
colspan: "1",
|
|
3481
|
+
class: "border",
|
|
3482
|
+
style: { width: "60px" }
|
|
3483
|
+
}, "Acc (mm)"),
|
|
3484
|
+
t("th", {
|
|
3485
|
+
rowspan: "1",
|
|
3486
|
+
colspan: "1",
|
|
3487
|
+
class: "border"
|
|
3488
|
+
}, "Dist (nm)"),
|
|
3489
|
+
t("th", {
|
|
3490
|
+
rowspan: "1",
|
|
3491
|
+
colspan: "1",
|
|
3492
|
+
class: "border"
|
|
3493
|
+
}, "Dir"),
|
|
3494
|
+
t("th", {
|
|
3495
|
+
rowspan: "1",
|
|
3496
|
+
colspan: "1",
|
|
3497
|
+
class: "border"
|
|
3498
|
+
}, "Spd(kts)"),
|
|
3499
|
+
t("th", {
|
|
3500
|
+
rowspan: "1",
|
|
3501
|
+
colspan: "1",
|
|
3502
|
+
class: "border"
|
|
3503
|
+
}, "BF"),
|
|
3504
|
+
t("th", {
|
|
3505
|
+
rowspan: "1",
|
|
3506
|
+
colspan: "1",
|
|
3507
|
+
class: "border"
|
|
3508
|
+
}, "Gusts(kts)"),
|
|
3509
|
+
t("th", {
|
|
3510
|
+
rowspan: "1",
|
|
3511
|
+
colspan: "1",
|
|
3512
|
+
class: "border"
|
|
3513
|
+
}, "Dir"),
|
|
3514
|
+
t("th", {
|
|
3515
|
+
rowspan: "1",
|
|
3516
|
+
colspan: "1",
|
|
3517
|
+
class: "border"
|
|
3518
|
+
}, "Hgt(m)"),
|
|
3519
|
+
t("th", {
|
|
3520
|
+
rowspan: "1",
|
|
3521
|
+
colspan: "1",
|
|
3522
|
+
class: "border"
|
|
3523
|
+
}, "Prd(s)"),
|
|
3524
|
+
t("th", {
|
|
3525
|
+
rowspan: "1",
|
|
3526
|
+
colspan: "1",
|
|
3527
|
+
class: "border"
|
|
3528
|
+
}, "Dir"),
|
|
3529
|
+
t("th", {
|
|
3530
|
+
rowspan: "1",
|
|
3531
|
+
colspan: "1",
|
|
3532
|
+
class: "border"
|
|
3533
|
+
}, "Hgt(m)"),
|
|
3534
|
+
t("th", {
|
|
3535
|
+
rowspan: "1",
|
|
3536
|
+
colspan: "1",
|
|
3537
|
+
class: "border"
|
|
3538
|
+
}, "Prd(s)"),
|
|
3539
|
+
t("th", {
|
|
3540
|
+
rowspan: "1",
|
|
3541
|
+
colspan: "1",
|
|
3542
|
+
class: "border"
|
|
3543
|
+
}, "Dir"),
|
|
3544
|
+
t("th", {
|
|
3545
|
+
rowspan: "1",
|
|
3546
|
+
colspan: "1",
|
|
3547
|
+
class: "border"
|
|
3548
|
+
}, "Spd(kts)"),
|
|
3549
|
+
t("th", {
|
|
3550
|
+
rowspan: "1",
|
|
3551
|
+
colspan: "1",
|
|
3552
|
+
class: "border"
|
|
3553
|
+
}, "Hgt(m)"),
|
|
3554
|
+
t("th", {
|
|
3555
|
+
rowspan: "1",
|
|
3556
|
+
colspan: "1",
|
|
3557
|
+
class: "border"
|
|
3558
|
+
}, "Temp(°C)")
|
|
3559
|
+
], -1)),
|
|
3560
|
+
(o(!0), n(oe, null, ne(a.hourlyTableData, (i, m) => (o(), n("tr", {
|
|
3561
|
+
class: "text border-bottom",
|
|
3562
|
+
key: Math.random() + i.localDate
|
|
3563
|
+
}, [
|
|
3564
|
+
t("td", hs, [
|
|
3565
|
+
t("div", null, g(i.localDate), 1)
|
|
3566
|
+
]),
|
|
3567
|
+
t("td", ds, [
|
|
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, "-"))
|
|
3610
|
+
]),
|
|
3611
|
+
t("td", Ms, g(i.currentSpd), 1),
|
|
3612
|
+
t("td", Ls, g(i.seaLevel), 1),
|
|
3613
|
+
t("td", zs, g(i.seaSurfaceTemp), 1)
|
|
3614
|
+
]))), 128))
|
|
3615
|
+
])
|
|
3616
|
+
])) : (c = a.loading) != null && c.hourlyTable ? (o(), n("div", Hs, e[53] || (e[53] = [
|
|
3617
|
+
t("img", {
|
|
3618
|
+
style: { height: "200px" },
|
|
3619
|
+
src: xe
|
|
3620
|
+
}, null, -1)
|
|
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, [
|
|
3626
|
+
t("div", {
|
|
3627
|
+
class: "title flex-start",
|
|
3628
|
+
id: "seasonal-title",
|
|
3629
|
+
onClick: e[8] || (e[8] = (i) => a.seasonalData.showMonths = !a.seasonalData.showMonths)
|
|
3630
|
+
}, [
|
|
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, {
|
|
3634
|
+
default: Ie(() => [
|
|
3635
|
+
ve(k)
|
|
3636
|
+
]),
|
|
3637
|
+
_: 1
|
|
3638
|
+
})
|
|
3639
|
+
]),
|
|
3640
|
+
Te(t("div", Fs, [
|
|
3641
|
+
t("div", Os, [
|
|
3642
|
+
(o(!0), n(oe, null, ne(a.monthsOptions, (i, m) => {
|
|
3643
|
+
var f;
|
|
3644
|
+
return o(), n("div", {
|
|
3645
|
+
key: i,
|
|
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);
|
|
3649
|
+
}), 128))
|
|
3650
|
+
])
|
|
3651
|
+
], 512), [
|
|
3652
|
+
[Ge, a.seasonalData.showMonths]
|
|
3653
|
+
])
|
|
3654
|
+
]),
|
|
3655
|
+
e[54] || (e[54] = t("div", { id: "temperature-echart" }, null, -1)),
|
|
3656
|
+
e[55] || (e[55] = t("div", { id: "wind-precip-echart" }, null, -1))
|
|
3657
|
+
]),
|
|
3658
|
+
t("div", js, [
|
|
3659
|
+
t("div", Ks, g((l = a.currentMonth) == null ? void 0 : l.month) + " Summary", 1),
|
|
3660
|
+
e[56] || (e[56] = t("div", { class: "label" }, "Temperature", -1)),
|
|
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),
|
|
3665
|
+
e[57] || (e[57] = t("div", { class: "label" }, "Precipitation", -1)),
|
|
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),
|
|
3671
|
+
e[58] || (e[58] = t("div", { class: "label" }, "Wind", -1)),
|
|
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)
|
|
3675
|
+
])
|
|
3676
|
+
])) : (he = a.loading) != null && he.seasonalEchart ? (o(), n("div", sa, e[59] || (e[59] = [
|
|
3677
|
+
t("img", {
|
|
2791
3678
|
style: { height: "200px" },
|
|
2792
|
-
src:
|
|
3679
|
+
src: xe
|
|
2793
3680
|
}, null, -1)
|
|
2794
|
-
]))) : (
|
|
2795
|
-
])) :
|
|
3681
|
+
]))) : (o(), n("div", aa, "No Data"))
|
|
3682
|
+
])) : Be("", !0)
|
|
2796
3683
|
])
|
|
2797
3684
|
]);
|
|
2798
3685
|
}
|
|
2799
|
-
const
|
|
2800
|
-
install(
|
|
2801
|
-
|
|
3686
|
+
const oa = /* @__PURE__ */ Se(Fe, [["render", ia], ["__scopeId", "data-v-f38a4276"]]), ga = {
|
|
3687
|
+
install(r) {
|
|
3688
|
+
r.component("SpotReport", oa);
|
|
2802
3689
|
}
|
|
2803
3690
|
};
|
|
2804
3691
|
export {
|
|
2805
|
-
|
|
2806
|
-
|
|
3692
|
+
oa as SpotReport,
|
|
3693
|
+
ga as SpotReportPlugin
|
|
2807
3694
|
};
|