@idmui/spot 0.2.4 → 0.2.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/index.js +269 -237
- package/dist/index.umd.cjs +3 -3
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import ce from "moment";
|
|
2
2
|
import de from "moment-timezone";
|
|
3
|
-
import { Search as
|
|
3
|
+
import { Search as He } from "@element-plus/icons-vue";
|
|
4
4
|
import { LngLatHelper as ve } from "@idm-plugin/geo";
|
|
5
5
|
import * as Be from "echarts";
|
|
6
|
-
import { markRaw as Pe, resolveComponent as ye, openBlock as i, createElementBlock as o, createElementVNode as A, createVNode as Qe, withCtx as Ee, Fragment as K, renderList as U, createBlock as ke, normalizeClass as X, toDisplayString as D, createCommentVNode as De, createTextVNode as S, normalizeStyle as
|
|
6
|
+
import { markRaw as Pe, resolveComponent as ye, openBlock as i, createElementBlock as o, createElementVNode as A, createVNode as Qe, withCtx as Ee, Fragment as K, renderList as U, createBlock as ke, normalizeClass as X, toDisplayString as D, createCommentVNode as De, createTextVNode as S, normalizeStyle as Ce } from "vue";
|
|
7
7
|
import be from "axios";
|
|
8
8
|
class Ie {
|
|
9
9
|
static pickHourly(e, t) {
|
|
10
|
-
var n, s,
|
|
11
|
-
const me = typeof t == "string" ? ce(t) : t, he = e == null ? void 0 : e.weather,
|
|
10
|
+
var n, s, f, L, z, Q, E, b, M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P, I, y, p, ae, te, se, r, ne, re, le, C, ie, d, $, ee, pe, we;
|
|
11
|
+
const me = typeof t == "string" ? ce(t) : t, he = e == null ? void 0 : e.weather, h = e == null ? void 0 : e.marine, oe = ce((s = (n = he == null ? void 0 : he[0]) == null ? void 0 : n.hourly) == null ? void 0 : s.date).utc(), c = oe.clone().add((z = (L = (f = he == null ? void 0 : he[0]) == null ? void 0 : f.hourly) == null ? void 0 : L.time) == null ? void 0 : z.at(0), "h"), ue = oe.clone().add((b = (E = (Q = he == null ? void 0 : he[0]) == null ? void 0 : Q.hourly) == null ? void 0 : E.time) == null ? void 0 : b.at(-1), "h"), u = [];
|
|
12
12
|
if (me.isBetween(c, ue, "millisecond", "[]")) {
|
|
13
13
|
const m = me.utc().diff(c, "h", !1);
|
|
14
14
|
let Ae, ge;
|
|
15
15
|
if (he)
|
|
16
|
-
for (const
|
|
17
|
-
const B =
|
|
16
|
+
for (const fe of he) {
|
|
17
|
+
const B = fe.hourly;
|
|
18
18
|
Ae = {
|
|
19
19
|
temp: (M = B.temperature_2m) == null ? void 0 : M.at(m),
|
|
20
20
|
apparentTemp: (O = B.apparent_temperature) == null ? void 0 : O.at(m),
|
|
@@ -25,7 +25,7 @@ class Ie {
|
|
|
25
25
|
sum: (Y = B.precipitation) == null ? void 0 : Y.at(m)
|
|
26
26
|
},
|
|
27
27
|
pmsl: (x = B.pressure_msl) == null ? void 0 : x.at(m),
|
|
28
|
-
psurf: (
|
|
28
|
+
psurf: (H = B.surface_pressure) == null ? void 0 : H.at(m),
|
|
29
29
|
code: (N = B.weather_code) == null ? void 0 : N.at(m),
|
|
30
30
|
visibility: this.m2nm((G = B.visibility) == null ? void 0 : G.at(m)),
|
|
31
31
|
wind: {
|
|
@@ -37,12 +37,12 @@ class Ie {
|
|
|
37
37
|
},
|
|
38
38
|
isDay: (W = B.is_day) == null ? void 0 : W.at(m)
|
|
39
39
|
};
|
|
40
|
-
const { name: Me, url: Le, bg:
|
|
41
|
-
Ae.name = Me, Ae.url = Le, Ae.bg =
|
|
40
|
+
const { name: Me, url: Le, bg: ze } = this.parseWeatherCode(Ae.code, Ae.isDay);
|
|
41
|
+
Ae.name = Me, Ae.url = Le, Ae.bg = ze, Ae.wind.scale = this.beaufort(this.kts2ms(Ae.wind.kts)), Ae.wind.direction = this.degree2Direction(Ae.wind.degree);
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
44
|
-
for (const
|
|
45
|
-
const B =
|
|
43
|
+
if (h)
|
|
44
|
+
for (const fe of h) {
|
|
45
|
+
const B = fe.hourly;
|
|
46
46
|
ge = {
|
|
47
47
|
wave: {
|
|
48
48
|
sig: {
|
|
@@ -63,7 +63,7 @@ class Ie {
|
|
|
63
63
|
degree: (r = B.wind_wave_direction) == null ? void 0 : r.at(m),
|
|
64
64
|
bearing: ((ne = B.wind_wave_direction) == null ? void 0 : ne.at(m)) !== null ? (((re = B.wind_wave_direction) == null ? void 0 : re.at(m)) + 180) % 360 : null,
|
|
65
65
|
period: (le = B.wind_wave_period) == null ? void 0 : le.at(m),
|
|
66
|
-
peakPeriod: (
|
|
66
|
+
peakPeriod: (C = B.wind_wave_peak_period) == null ? void 0 : C.at(m)
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
current: {
|
|
@@ -85,14 +85,14 @@ class Ie {
|
|
|
85
85
|
return u;
|
|
86
86
|
}
|
|
87
87
|
static toLegacy(e) {
|
|
88
|
-
var t, n, s,
|
|
88
|
+
var t, n, s, f, L, z, Q, E, b, M;
|
|
89
89
|
return {
|
|
90
90
|
wind: (t = e == null ? void 0 : e.weather) == null ? void 0 : t.wind,
|
|
91
91
|
visibility: (n = e == null ? void 0 : e.weather) == null ? void 0 : n.visibility,
|
|
92
92
|
temp: (s = e == null ? void 0 : e.weather) == null ? void 0 : s.temp,
|
|
93
|
-
prmsl: (
|
|
93
|
+
prmsl: (f = e == null ? void 0 : e.weather) == null ? void 0 : f.pmsl,
|
|
94
94
|
gusts: {
|
|
95
|
-
kts: (
|
|
95
|
+
kts: (z = (L = e == null ? void 0 : e.weather) == null ? void 0 : L.wind) == null ? void 0 : z.gusts
|
|
96
96
|
},
|
|
97
97
|
precip: (Q = e == null ? void 0 : e.weather) == null ? void 0 : Q.precip,
|
|
98
98
|
code: (E = e == null ? void 0 : e.weather) == null ? void 0 : E.code,
|
|
@@ -106,15 +106,15 @@ class Ie {
|
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
static pickDaily(e, t) {
|
|
109
|
-
var n, s,
|
|
110
|
-
const $ = typeof t == "string" ? ce(t) : t, ee = e == null ? void 0 : e.weather, pe = e == null ? void 0 : e.marine, we = ce((
|
|
109
|
+
var n, s, f, L, z, Q, E, b, M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P, I, y, p, ae, te, se, r, ne, re, le, C, ie, d;
|
|
110
|
+
const $ = typeof t == "string" ? ce(t) : t, ee = e == null ? void 0 : e.weather, pe = e == null ? void 0 : e.marine, we = ce((f = (s = (n = ee == null ? void 0 : ee[0]) == null ? void 0 : n.daily) == null ? void 0 : s.time) == null ? void 0 : f.at(0)), me = ce((Q = (z = (L = ee == null ? void 0 : ee[0]) == null ? void 0 : L.daily) == null ? void 0 : z.time) == null ? void 0 : Q.at(-1)), he = [];
|
|
111
111
|
if ($.isBetween(we, me, "millisecond", "[]")) {
|
|
112
|
-
let
|
|
112
|
+
let h, oe;
|
|
113
113
|
const c = $.diff(we, "d", !1);
|
|
114
114
|
if (ee)
|
|
115
115
|
for (const ue of ee) {
|
|
116
116
|
const u = ue.daily;
|
|
117
|
-
|
|
117
|
+
h = {
|
|
118
118
|
code: (E = u.weather_code) == null ? void 0 : E.at(c),
|
|
119
119
|
temp: {
|
|
120
120
|
max: (b = u.temperature_2m_max) == null ? void 0 : b.at(c),
|
|
@@ -129,7 +129,7 @@ class Ie {
|
|
|
129
129
|
sum: (j = u.precipitation_sum) == null ? void 0 : j.at(c),
|
|
130
130
|
rainSum: (Y = u.rain_sum) == null ? void 0 : Y.at(c),
|
|
131
131
|
snowfallSum: (x = u.snowfall_sum) == null ? void 0 : x.at(c),
|
|
132
|
-
showersSum: (
|
|
132
|
+
showersSum: (H = u.showers_sum) == null ? void 0 : H.at(c),
|
|
133
133
|
hours: (N = u.precipitation_hours) == null ? void 0 : N.at(c),
|
|
134
134
|
probability: (G = u.precipitation_probability_max) == null ? void 0 : G.at(c)
|
|
135
135
|
},
|
|
@@ -146,8 +146,8 @@ class Ie {
|
|
|
146
146
|
bearing: ((q = u.wind_direction_10m_dominant) == null ? void 0 : q.at(c)) !== null ? (((V = u.wind_direction_10m_dominant) == null ? void 0 : V.at(c)) + 180) % 360 : null
|
|
147
147
|
}
|
|
148
148
|
};
|
|
149
|
-
const { name: m, url: Ae, bg: ge } = this.parseWeatherCode(
|
|
150
|
-
|
|
149
|
+
const { name: m, url: Ae, bg: ge } = this.parseWeatherCode(h.code, !0);
|
|
150
|
+
h.name = m, h.url = Ae, h.bg = ge, h.wind.scale = this.beaufort(this.kts2ms(h.wind.kts)), h.wind.direction = this.degree2Direction(h.wind.degree);
|
|
151
151
|
}
|
|
152
152
|
if (pe)
|
|
153
153
|
for (const ue of pe) {
|
|
@@ -171,7 +171,7 @@ class Ie {
|
|
|
171
171
|
height: (ne = u.wind_wave_height_max) == null ? void 0 : ne.at(c),
|
|
172
172
|
degree: (re = u.wind_wave_direction_dominant) == null ? void 0 : re.at(c),
|
|
173
173
|
period: (le = u.wind_wave_period_max) == null ? void 0 : le.at(c),
|
|
174
|
-
peakPeriod: (
|
|
174
|
+
peakPeriod: (C = u.wind_wave_peak_period_max) == null ? void 0 : C.at(c),
|
|
175
175
|
bearing: ((ie = u.wind_wave_direction_dominant) == null ? void 0 : ie.at(c)) !== null ? (((d = u.wind_wave_direction_dominant) == null ? void 0 : d.at(c)) + 180) % 360 : null
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -179,7 +179,7 @@ class Ie {
|
|
|
179
179
|
}
|
|
180
180
|
he.push({
|
|
181
181
|
utc: we.add(c, "d").utc().format(),
|
|
182
|
-
weather: { ...
|
|
182
|
+
weather: { ...h },
|
|
183
183
|
...oe
|
|
184
184
|
});
|
|
185
185
|
}
|
|
@@ -565,8 +565,8 @@ class Ie {
|
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
567
|
const xe = "data:image/gif;base64,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";
|
|
568
|
-
const Ne = (
|
|
569
|
-
const t =
|
|
568
|
+
const Ne = (g, e) => {
|
|
569
|
+
const t = g.__vccOpts || g;
|
|
570
570
|
for (const [n, s] of e)
|
|
571
571
|
t[n] = s;
|
|
572
572
|
return t;
|
|
@@ -595,7 +595,7 @@ const Ne = (h, e) => {
|
|
|
595
595
|
return {
|
|
596
596
|
placeholder: "search for port name or coordinates",
|
|
597
597
|
searchName: void 0,
|
|
598
|
-
rawSearchIcon: Pe(
|
|
598
|
+
rawSearchIcon: Pe(He),
|
|
599
599
|
positionOffset: void 0,
|
|
600
600
|
positionGmt: void 0,
|
|
601
601
|
issuedDate: void 0,
|
|
@@ -621,63 +621,63 @@ const Ne = (h, e) => {
|
|
|
621
621
|
},
|
|
622
622
|
computed: {
|
|
623
623
|
computeHourLT() {
|
|
624
|
-
return function(
|
|
625
|
-
if (
|
|
626
|
-
const e = de(
|
|
624
|
+
return function(g) {
|
|
625
|
+
if (g) {
|
|
626
|
+
const e = de(g).tz(this.positionGmt);
|
|
627
627
|
return `${e == null ? void 0 : e.format("HH")}`;
|
|
628
628
|
}
|
|
629
629
|
return "-";
|
|
630
630
|
};
|
|
631
631
|
},
|
|
632
632
|
computeHourZ() {
|
|
633
|
-
return function(
|
|
634
|
-
if (
|
|
635
|
-
const e = ce(
|
|
633
|
+
return function(g) {
|
|
634
|
+
if (g) {
|
|
635
|
+
const e = ce(g).utc();
|
|
636
636
|
return `${e == null ? void 0 : e.format("HH")}Z`;
|
|
637
637
|
}
|
|
638
638
|
return "-";
|
|
639
639
|
};
|
|
640
640
|
},
|
|
641
641
|
computeWeekLT() {
|
|
642
|
-
return function(
|
|
643
|
-
if (
|
|
644
|
-
const e = de(
|
|
642
|
+
return function(g) {
|
|
643
|
+
if (g) {
|
|
644
|
+
const e = de(g).tz(this.positionGmt);
|
|
645
645
|
return `${e == null ? void 0 : e.format("dddd")}`;
|
|
646
646
|
}
|
|
647
647
|
return "-";
|
|
648
648
|
};
|
|
649
649
|
},
|
|
650
650
|
computeMMMDDLT() {
|
|
651
|
-
return function(
|
|
652
|
-
if (
|
|
653
|
-
const e = de(
|
|
651
|
+
return function(g) {
|
|
652
|
+
if (g) {
|
|
653
|
+
const e = de(g).tz(this.positionGmt);
|
|
654
654
|
return `${e == null ? void 0 : e.format("MMM-DD")}`;
|
|
655
655
|
}
|
|
656
656
|
return "-";
|
|
657
657
|
};
|
|
658
658
|
},
|
|
659
659
|
computeLat() {
|
|
660
|
-
return function(
|
|
661
|
-
return ve.lat2pretty(
|
|
660
|
+
return function(g, e = 4) {
|
|
661
|
+
return ve.lat2pretty(g, e).pretty;
|
|
662
662
|
};
|
|
663
663
|
},
|
|
664
664
|
computeLng() {
|
|
665
|
-
return function(
|
|
666
|
-
return ve.lng2pretty(
|
|
665
|
+
return function(g, e = 4) {
|
|
666
|
+
return ve.lng2pretty(g, e).pretty;
|
|
667
667
|
};
|
|
668
668
|
},
|
|
669
669
|
roundPrecision() {
|
|
670
|
-
return function(
|
|
671
|
-
return isNaN(
|
|
670
|
+
return function(g, e = 4) {
|
|
671
|
+
return isNaN(g) ? "-" : ve.roundPrecision(g, e);
|
|
672
672
|
};
|
|
673
673
|
}
|
|
674
674
|
},
|
|
675
675
|
watch: {
|
|
676
676
|
point: {
|
|
677
677
|
handler() {
|
|
678
|
-
var
|
|
678
|
+
var g, e;
|
|
679
679
|
this.point && (this.position = {
|
|
680
|
-
lat: (
|
|
680
|
+
lat: (g = this.point) == null ? void 0 : g.lat,
|
|
681
681
|
lng: (e = this.point) == null ? void 0 : e.lng,
|
|
682
682
|
name: this.computeLat(this.point.lat) + "," + this.computeLng(this.point.lng)
|
|
683
683
|
}, this.handleFetchMeteo());
|
|
@@ -692,14 +692,14 @@ const Ne = (h, e) => {
|
|
|
692
692
|
meteogramEchart: !0,
|
|
693
693
|
hoursTable: !0,
|
|
694
694
|
daysTable: !0
|
|
695
|
-
}, this.
|
|
695
|
+
}, this.handleRender();
|
|
696
696
|
}
|
|
697
697
|
}
|
|
698
698
|
},
|
|
699
699
|
methods: {
|
|
700
|
-
async fetchSuggestPosition(
|
|
700
|
+
async fetchSuggestPosition(g) {
|
|
701
701
|
var n;
|
|
702
|
-
const e =
|
|
702
|
+
const e = g.replaceAll(",", ",");
|
|
703
703
|
if (!e)
|
|
704
704
|
return this.positionList = this.collectList, !1;
|
|
705
705
|
const t = await be.get(`https://cbe.idmwx.com/api/arc/ports/suggest?n=${e}`, {
|
|
@@ -710,16 +710,16 @@ const Ne = (h, e) => {
|
|
|
710
710
|
(t == null ? void 0 : t.data.code) === 0 && (this.positionList = (n = t == null ? void 0 : t.data.data) == null ? void 0 : n.map((s) => (s.name = s.id ? s.name : this.computeLat(s.lat) + ", " + this.computeLng(s.lng), s)));
|
|
711
711
|
},
|
|
712
712
|
handleSearch() {
|
|
713
|
-
var
|
|
713
|
+
var g, e, t;
|
|
714
714
|
this.searchName && (this.handleClearHoursTable(), this.position = {
|
|
715
|
-
portId: (
|
|
715
|
+
portId: (g = this.positionList.find((n) => n.name === this.searchName)) == null ? void 0 : g.id,
|
|
716
716
|
lat: (e = this.positionList.find((n) => n.name === this.searchName)) == null ? void 0 : e.lat,
|
|
717
717
|
lng: (t = this.positionList.find((n) => n.name === this.searchName)) == null ? void 0 : t.lng,
|
|
718
718
|
name: this.searchName
|
|
719
719
|
}, this.$emit("url", this.position), this.handleFetchMeteo());
|
|
720
720
|
},
|
|
721
721
|
handleCollect() {
|
|
722
|
-
this.isCollected = !this.isCollected, this.isCollected ? this.collectList.push({ name: this.position.name, lat: this.position.lat, lng: this.position.lng }) : this.collectList = this.collectList.filter((
|
|
722
|
+
this.isCollected = !this.isCollected, this.isCollected ? this.collectList.push({ name: this.position.name, lat: this.position.lat, lng: this.position.lng }) : this.collectList = this.collectList.filter((g) => g.name !== this.position.name), localStorage.setItem("idmCollectList", JSON.stringify(this.collectList));
|
|
723
723
|
},
|
|
724
724
|
async handleFetchMeteo() {
|
|
725
725
|
if (!this.token)
|
|
@@ -730,12 +730,12 @@ const Ne = (h, e) => {
|
|
|
730
730
|
hoursTable: !0,
|
|
731
731
|
daysTable: !0
|
|
732
732
|
};
|
|
733
|
-
const
|
|
733
|
+
const g = {
|
|
734
734
|
lat: this.position.lat,
|
|
735
735
|
lng: this.position.lng,
|
|
736
736
|
forecastDays: 15,
|
|
737
737
|
selfHosted: !1
|
|
738
|
-
}, e = await be.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast",
|
|
738
|
+
}, e = await be.post("https://cbe.idmwx.com/api/arc/meteo2/spot/forecast", g, {
|
|
739
739
|
headers: {
|
|
740
740
|
Authorization: this.token
|
|
741
741
|
}
|
|
@@ -745,17 +745,17 @@ const Ne = (h, e) => {
|
|
|
745
745
|
}), this.handleRender();
|
|
746
746
|
},
|
|
747
747
|
handleRender() {
|
|
748
|
-
this.initInfo(), this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData();
|
|
748
|
+
this.initInfo(), this.menuIndex === 1 ? (this.initWeatherEchart(), this.handleMeteogramData7(), this.initHoursTableData()) : this.menuIndex === 2 && (this.handleMeteogramData14(), this.initDaysTableData());
|
|
749
749
|
},
|
|
750
750
|
initInfo() {
|
|
751
|
-
var
|
|
752
|
-
this.positionGmt = (e = (
|
|
753
|
-
var
|
|
754
|
-
return s.name === ((
|
|
751
|
+
var g, e, t, n;
|
|
752
|
+
this.positionGmt = (e = (g = this.meteoData.weather) == null ? void 0 : g[0]) == null ? void 0 : e.timezone, this.positionOffset = (n = (t = this.meteoData.weather) == null ? void 0 : t[0]) == null ? void 0 : n.offset, this.issuedDate = ce(this.ts).utc().format("MMM-DD/HHmm[Z], YYYY"), this.activeIndex = de(this.ts).tz(this.positionGmt).hour(), this.pickedDate = de(this.ts).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.collectList = JSON.parse(localStorage.getItem("idmCollectList") || "[]"), this.positionList = JSON.parse(JSON.stringify(this.collectList)), this.isCollected = this.collectList.some((s) => {
|
|
753
|
+
var f;
|
|
754
|
+
return s.name === ((f = this.position) == null ? void 0 : f.name);
|
|
755
755
|
});
|
|
756
756
|
},
|
|
757
757
|
initWeatherEchart() {
|
|
758
|
-
const
|
|
758
|
+
const g = [], e = [], t = [], n = [], s = [], f = [], L = [], z = [], Q = [], E = [], b = {}, M = "data:image/svg+xml;base64," + window.btoa(
|
|
759
759
|
unescape(
|
|
760
760
|
encodeURIComponent(
|
|
761
761
|
'<svg t="1740385441519" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10951" width="200" height="200"><path d="M512 804.83593751A276.87183211 276.87183211 0 0 1 235.12816789 527.9641054Q235.12816789 375.21005376 512 13.82031251q276.87183211 361.30792288 276.87183211 514.14379289a276.87183211 276.87183211 0 0 1-276.87183211 276.87183211zM294.4461577 527.9641054a217.47202472 217.47202472 0 0 0 217.5538423 217.55384231 19.79993605 19.79993605 0 1 0 0-39.51805453 177.9539702 177.9539702 0 0 1-177.9539702-178.03578778 19.79993605 19.79993605 0 0 0-39.5998721 0z" fill="#0c73a8" p-id="10952"></path></svg>'
|
|
@@ -773,9 +773,9 @@ const Ne = (h, e) => {
|
|
|
773
773
|
this.loading.weatherEchart = !1;
|
|
774
774
|
for (let w = 0; w < 7; w++) {
|
|
775
775
|
const P = ce(this.pickedDate).clone().add(w, "d");
|
|
776
|
-
|
|
776
|
+
g.push(de(P).tz(this.positionGmt).format("yyyy-MM-DD")), e.push(this.computeMMMDDLT(P)), t.push(w === 0 ? "Today" : this.computeWeekLT(P));
|
|
777
777
|
const I = ((N = Ie.pickDaily(this.meteoData, P)) == null ? void 0 : N[0]) || {};
|
|
778
|
-
n.push(this.roundPrecision((T = (G = I.weather) == null ? void 0 : G.temp) == null ? void 0 : T.min, 0)), s.push(this.roundPrecision((a = (F = I.weather) == null ? void 0 : F.temp) == null ? void 0 : a.max, 0)),
|
|
778
|
+
n.push(this.roundPrecision((T = (G = I.weather) == null ? void 0 : G.temp) == null ? void 0 : T.min, 0)), s.push(this.roundPrecision((a = (F = I.weather) == null ? void 0 : F.temp) == null ? void 0 : a.max, 0)), z.push(this.roundPrecision((J = (l = I.weather) == null ? void 0 : l.wind) == null ? void 0 : J.kts, 1) ?? "- kts"), E.push(this.roundPrecision((W = (R = I.weather) == null ? void 0 : R.precip) == null ? void 0 : W.sum, 0) ?? "- mm"), f.push({ symbol: "image://" + ((q = I.weather) == null ? void 0 : q.url) }), L.push((V = I.weather) == null ? void 0 : V.name), Q.push((_ = (Z = I.weather) == null ? void 0 : Z.wind) == null ? void 0 : _.degree);
|
|
779
779
|
const y = document.createElement("canvas"), p = y.getContext("2d");
|
|
780
780
|
y.width = v.width, y.height = v.height;
|
|
781
781
|
const te = Q[w] * (Math.PI / 180);
|
|
@@ -790,7 +790,7 @@ const Ne = (h, e) => {
|
|
|
790
790
|
}
|
|
791
791
|
};
|
|
792
792
|
}
|
|
793
|
-
const k = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) - Math.min(...n.filter((w) => typeof w == "number" && !isNaN(w))), j = Math.min(...n.filter((w) => typeof w == "number" && !isNaN(w))) - 1.5 * k, Y = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) + 2 * k, x = 4 + 0.5 /
|
|
793
|
+
const k = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) - Math.min(...n.filter((w) => typeof w == "number" && !isNaN(w))), j = Math.min(...n.filter((w) => typeof w == "number" && !isNaN(w))) - 1.5 * k, Y = Math.max(...s.filter((w) => typeof w == "number" && !isNaN(w))) + 2 * k, x = 4 + 0.5 / g.length * 92 + "%", H = {
|
|
794
794
|
grid: {
|
|
795
795
|
bottom: 0,
|
|
796
796
|
top: 0,
|
|
@@ -814,7 +814,7 @@ const Ne = (h, e) => {
|
|
|
814
814
|
top: "50%",
|
|
815
815
|
height: "50%",
|
|
816
816
|
type: "category",
|
|
817
|
-
data:
|
|
817
|
+
data: g,
|
|
818
818
|
show: !1
|
|
819
819
|
},
|
|
820
820
|
singleAxis: [
|
|
@@ -840,7 +840,7 @@ const Ne = (h, e) => {
|
|
|
840
840
|
// 隐藏分割线
|
|
841
841
|
},
|
|
842
842
|
boundaryGap: !1,
|
|
843
|
-
data:
|
|
843
|
+
data: g,
|
|
844
844
|
top: "7%",
|
|
845
845
|
height: "2%"
|
|
846
846
|
},
|
|
@@ -866,7 +866,7 @@ const Ne = (h, e) => {
|
|
|
866
866
|
// 隐藏分割线
|
|
867
867
|
},
|
|
868
868
|
boundaryGap: !1,
|
|
869
|
-
data:
|
|
869
|
+
data: g,
|
|
870
870
|
top: "16%",
|
|
871
871
|
height: "2%"
|
|
872
872
|
},
|
|
@@ -892,7 +892,7 @@ const Ne = (h, e) => {
|
|
|
892
892
|
// 隐藏分割线
|
|
893
893
|
},
|
|
894
894
|
boundaryGap: !1,
|
|
895
|
-
data:
|
|
895
|
+
data: g,
|
|
896
896
|
top: "27%",
|
|
897
897
|
height: "2%"
|
|
898
898
|
},
|
|
@@ -918,7 +918,7 @@ const Ne = (h, e) => {
|
|
|
918
918
|
// 隐藏分割线
|
|
919
919
|
},
|
|
920
920
|
boundaryGap: !1,
|
|
921
|
-
data:
|
|
921
|
+
data: g,
|
|
922
922
|
top: "84%",
|
|
923
923
|
height: "2%"
|
|
924
924
|
},
|
|
@@ -944,7 +944,7 @@ const Ne = (h, e) => {
|
|
|
944
944
|
// 隐藏分割线
|
|
945
945
|
},
|
|
946
946
|
boundaryGap: !1,
|
|
947
|
-
data:
|
|
947
|
+
data: g,
|
|
948
948
|
top: "93%",
|
|
949
949
|
height: "2%"
|
|
950
950
|
}
|
|
@@ -967,7 +967,7 @@ const Ne = (h, e) => {
|
|
|
967
967
|
data: t,
|
|
968
968
|
label: {
|
|
969
969
|
show: !0,
|
|
970
|
-
color: "
|
|
970
|
+
color: "rgba(0,0,0,0.7)",
|
|
971
971
|
fontSize: 14,
|
|
972
972
|
formatter: "{c}"
|
|
973
973
|
},
|
|
@@ -980,7 +980,7 @@ const Ne = (h, e) => {
|
|
|
980
980
|
data: e,
|
|
981
981
|
label: {
|
|
982
982
|
show: !0,
|
|
983
|
-
color: "
|
|
983
|
+
color: "rgba(0,0,0,0.7)",
|
|
984
984
|
formatter: "{c}"
|
|
985
985
|
},
|
|
986
986
|
symbolSize: 0
|
|
@@ -990,8 +990,8 @@ const Ne = (h, e) => {
|
|
|
990
990
|
singleAxisIndex: 2,
|
|
991
991
|
coordinateSystem: "singleAxis",
|
|
992
992
|
type: "scatter",
|
|
993
|
-
data:
|
|
994
|
-
symbolSize:
|
|
993
|
+
data: f,
|
|
994
|
+
symbolSize: 44
|
|
995
995
|
},
|
|
996
996
|
{
|
|
997
997
|
name: "温度(℃)",
|
|
@@ -999,18 +999,18 @@ const Ne = (h, e) => {
|
|
|
999
999
|
data: n,
|
|
1000
1000
|
smooth: !0,
|
|
1001
1001
|
itemStyle: {
|
|
1002
|
-
color: "
|
|
1002
|
+
color: "rgb(202,135,13)"
|
|
1003
1003
|
},
|
|
1004
1004
|
label: {
|
|
1005
1005
|
show: !0,
|
|
1006
|
-
color: "rgba(
|
|
1006
|
+
color: "rgba(0,0,0,0.7)",
|
|
1007
1007
|
position: [-10, 12],
|
|
1008
1008
|
formatter: "{c} °C",
|
|
1009
1009
|
fontSize: 12
|
|
1010
1010
|
},
|
|
1011
1011
|
markArea: {
|
|
1012
1012
|
itemStyle: {
|
|
1013
|
-
color: "rgb(
|
|
1013
|
+
color: "rgb(184,219,252)"
|
|
1014
1014
|
},
|
|
1015
1015
|
data: [
|
|
1016
1016
|
[
|
|
@@ -1018,7 +1018,7 @@ const Ne = (h, e) => {
|
|
|
1018
1018
|
x: "4%"
|
|
1019
1019
|
},
|
|
1020
1020
|
{
|
|
1021
|
-
x: 4 + 1 /
|
|
1021
|
+
x: 4 + 1 / g.length * 92 + "%"
|
|
1022
1022
|
}
|
|
1023
1023
|
]
|
|
1024
1024
|
]
|
|
@@ -1030,11 +1030,11 @@ const Ne = (h, e) => {
|
|
|
1030
1030
|
data: s,
|
|
1031
1031
|
smooth: !0,
|
|
1032
1032
|
itemStyle: {
|
|
1033
|
-
color: "
|
|
1033
|
+
color: "rgb(242,167,28)"
|
|
1034
1034
|
},
|
|
1035
1035
|
label: {
|
|
1036
1036
|
show: !0,
|
|
1037
|
-
color: "rgba(
|
|
1037
|
+
color: "rgba(0,0,0,0.7)",
|
|
1038
1038
|
position: [-10, -12],
|
|
1039
1039
|
formatter: "{c} °C",
|
|
1040
1040
|
fontSize: 12
|
|
@@ -1044,10 +1044,10 @@ const Ne = (h, e) => {
|
|
|
1044
1044
|
singleAxisIndex: 3,
|
|
1045
1045
|
coordinateSystem: "singleAxis",
|
|
1046
1046
|
type: "scatter",
|
|
1047
|
-
data:
|
|
1047
|
+
data: z,
|
|
1048
1048
|
label: {
|
|
1049
1049
|
show: !0,
|
|
1050
|
-
color: "
|
|
1050
|
+
color: "rgba(0,0,0,0.7)",
|
|
1051
1051
|
// formatter: '{c}'
|
|
1052
1052
|
rich: {
|
|
1053
1053
|
...b,
|
|
@@ -1069,7 +1069,7 @@ const Ne = (h, e) => {
|
|
|
1069
1069
|
data: E,
|
|
1070
1070
|
label: {
|
|
1071
1071
|
show: !0,
|
|
1072
|
-
color: "
|
|
1072
|
+
color: "rgba(0,0,0,0.7)",
|
|
1073
1073
|
// formatter: '{c}',
|
|
1074
1074
|
rich: {
|
|
1075
1075
|
dIcon: {
|
|
@@ -1095,23 +1095,23 @@ const Ne = (h, e) => {
|
|
|
1095
1095
|
};
|
|
1096
1096
|
this.$nextTick(() => {
|
|
1097
1097
|
const w = Be.init(document.getElementById("weather-chart"));
|
|
1098
|
-
w.setOption(
|
|
1099
|
-
const I = P.dataIndex, y =
|
|
1100
|
-
this.pickedDate = de().tz(this.positionGmt).set({ year: y[0], month: Number(y[1] - 1), date: Number(y[2]), hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.pickedWeek = I === 0 ? "Today" : this.computeWeekLT(this.pickedDate), this.activeIndex = I === 0 ? de(this.ts).tz(this.positionGmt).hour() : void 0, this.initHoursTableData(),
|
|
1098
|
+
w.setOption(H), w.on("click", (P) => {
|
|
1099
|
+
const I = P.dataIndex, y = g[I].split("-");
|
|
1100
|
+
this.pickedDate = de().tz(this.positionGmt).set({ year: y[0], month: Number(y[1] - 1), date: Number(y[2]), hour: 0, minute: 0, second: 0, millisecond: 0 }).format(), this.pickedWeek = I === 0 ? "Today" : this.computeWeekLT(this.pickedDate), this.activeIndex = I === 0 ? de(this.ts).tz(this.positionGmt).hour() : void 0, this.initHoursTableData(), H.series[3].markArea = {
|
|
1101
1101
|
itemStyle: {
|
|
1102
|
-
color: "rgb(
|
|
1102
|
+
color: "rgb(184,219,252)"
|
|
1103
1103
|
},
|
|
1104
1104
|
data: [
|
|
1105
1105
|
[
|
|
1106
1106
|
{
|
|
1107
|
-
x: 4 + I /
|
|
1107
|
+
x: 4 + I / g.length * 92 + "%"
|
|
1108
1108
|
},
|
|
1109
1109
|
{
|
|
1110
|
-
x: 4 + (I + 1) /
|
|
1110
|
+
x: 4 + (I + 1) / g.length * 92 + "%"
|
|
1111
1111
|
}
|
|
1112
1112
|
]
|
|
1113
1113
|
]
|
|
1114
|
-
}, w.setOption(
|
|
1114
|
+
}, w.setOption(H);
|
|
1115
1115
|
});
|
|
1116
1116
|
});
|
|
1117
1117
|
};
|
|
@@ -1143,20 +1143,20 @@ const Ne = (h, e) => {
|
|
|
1143
1143
|
)
|
|
1144
1144
|
), n = new Image(64, 64);
|
|
1145
1145
|
n.src = t, n.onload = () => {
|
|
1146
|
-
var
|
|
1146
|
+
var f, L, z, Q, E, b, M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P, I, y, p, ae, te, se, r, ne, re, le;
|
|
1147
1147
|
this.loading.meteogramEchart = !1;
|
|
1148
1148
|
const s = de(this.ts).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
1149
|
-
for (let
|
|
1150
|
-
const ie = ce(s).clone().add(
|
|
1151
|
-
(
|
|
1149
|
+
for (let C = 0; C < 7 * 24; C++) {
|
|
1150
|
+
const ie = ce(s).clone().add(C, "h");
|
|
1151
|
+
(f = this.meteogramData) == null || f.dates.push(ie);
|
|
1152
1152
|
const d = ((L = Ie.pickHourly(this.meteoData, ie)) == null ? void 0 : L[0]) || {};
|
|
1153
|
-
if (
|
|
1153
|
+
if (C % 12 === 0 && C % 24 !== 0 ? (z = this.meteogramData) == null || z.xDates.push(de(ie).tz(this.positionGmt).format("MMM-DD")) : (Q = this.meteogramData) == null || Q.xDates.push(""), C % 3 === 0 ? (E = this.meteogramData) == null || E.hours.push(this.computeHourLT(ie)) : (b = this.meteogramData) == null || b.hours.push(""), (O = this.meteogramData) == null || O.temperatures.push(this.roundPrecision((M = d == null ? void 0 : d.weather) == null ? void 0 : M.temp, 0)), (j = this.meteogramData) == null || j.precip.push(this.roundPrecision((k = (v = d == null ? void 0 : d.weather) == null ? void 0 : v.precip) == null ? void 0 : k.sum, 0)), (H = this.meteogramData) == null || H.windspeed.push(this.roundPrecision((x = (Y = d.weather) == null ? void 0 : Y.wind) == null ? void 0 : x.kts, 1)), (T = this.meteogramData) == null || T.windGusts.push(this.roundPrecision((G = (N = d == null ? void 0 : d.weather) == null ? void 0 : N.wind) == null ? void 0 : G.gusts, 1)), (l = this.meteogramData) == null || l.sigWaveHeight.push(this.roundPrecision((a = (F = d == null ? void 0 : d.wave) == null ? void 0 : F.sig) == null ? void 0 : a.height)), (W = this.meteogramData) == null || W.swellHeight.push(this.roundPrecision((R = (J = d == null ? void 0 : d.wave) == null ? void 0 : J.swell) == null ? void 0 : R.height)), C % 6 === 0 ? ((V = this.meteogramData) == null || V.weatherIcons.push({ symbol: "image://" + ((q = d.weather) == null ? void 0 : q.url), symbolSize: 30 }), (_ = this.meteogramData) == null || _.weatherNames.push((Z = d.weather) == null ? void 0 : Z.name)) : ((P = this.meteogramData) == null || P.weatherIcons.push({ symbol: "image://" + ((w = d.weather) == null ? void 0 : w.url), symbolSize: 0 }), (I = this.meteogramData) == null || I.weatherNames.push("")), C % 3 === 0 ? (ae = this.meteogramData) == null || ae.windDir.push((p = (y = d.weather) == null ? void 0 : y.wind) == null ? void 0 : p.degree) : (te = this.meteogramData) == null || te.windDir.push(""), C % 3 === 0) {
|
|
1154
1154
|
const $ = document.createElement("canvas"), ee = $.getContext("2d");
|
|
1155
1155
|
$.width = n.width, $.height = n.height;
|
|
1156
|
-
const we = ((se = this.meteogramData) == null ? void 0 : se.windDir[
|
|
1156
|
+
const we = ((se = this.meteogramData) == null ? void 0 : se.windDir[C]) * (Math.PI / 180);
|
|
1157
1157
|
ee.translate($.width / 2, $.height / 2), ee.rotate(we), ee.translate(-n.width / 2, -n.height / 2), ee.drawImage(n, 0, 0, 64, 64);
|
|
1158
1158
|
const me = $.toDataURL();
|
|
1159
|
-
this.meteogramData.windDirIcons[`WindIcon${
|
|
1159
|
+
this.meteogramData.windDirIcons[`WindIcon${C}`] = {
|
|
1160
1160
|
height: 12,
|
|
1161
1161
|
width: 12,
|
|
1162
1162
|
align: "left",
|
|
@@ -1165,13 +1165,13 @@ const Ne = (h, e) => {
|
|
|
1165
1165
|
}
|
|
1166
1166
|
};
|
|
1167
1167
|
} else
|
|
1168
|
-
this.meteogramData.windDirIcons[`WindIcon${
|
|
1168
|
+
this.meteogramData.windDirIcons[`WindIcon${C}`] = {
|
|
1169
1169
|
height: 0,
|
|
1170
1170
|
width: 0,
|
|
1171
1171
|
align: "left",
|
|
1172
1172
|
backgroundColor: "none"
|
|
1173
1173
|
};
|
|
1174
|
-
(r = d == null ? void 0 : d.weather) != null && r.isDay ? e.end === void 0 && e.start >= 0 && (e.end =
|
|
1174
|
+
(r = d == null ? void 0 : d.weather) != null && r.isDay ? e.end === void 0 && e.start >= 0 && (e.end = C) : e.start === void 0 && (e.start = C), (e.start >= 0 && e.end >= 0 || e.start >= 0 && C === 7 * 24 - 1) && ((ne = this.meteogramData) == null || ne.markarea.push(
|
|
1175
1175
|
[
|
|
1176
1176
|
{
|
|
1177
1177
|
x: 4 + e.start / (7 * 24) * 92 + "%"
|
|
@@ -1214,20 +1214,20 @@ const Ne = (h, e) => {
|
|
|
1214
1214
|
)
|
|
1215
1215
|
), n = new Image(64, 64);
|
|
1216
1216
|
n.src = t, n.onload = () => {
|
|
1217
|
-
var
|
|
1217
|
+
var f, L, z, Q, E, b, M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P, I, y, p, ae, te, se, r, ne, re, le;
|
|
1218
1218
|
this.loading.meteogramEchart = !1;
|
|
1219
1219
|
const s = de(this.ts).tz(this.positionGmt).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).format();
|
|
1220
|
-
for (let
|
|
1221
|
-
const ie = ce(s).clone().add(
|
|
1222
|
-
(
|
|
1220
|
+
for (let C = 0; C < 14 * 24; C++) {
|
|
1221
|
+
const ie = ce(s).clone().add(C, "h");
|
|
1222
|
+
(f = this.meteogramData) == null || f.dates.push(ie);
|
|
1223
1223
|
const d = ((L = Ie.pickHourly(this.meteoData, ie)) == null ? void 0 : L[0]) || {};
|
|
1224
|
-
if ((Q = this.meteogramData) == null || Q.temperatures.push(this.roundPrecision((
|
|
1224
|
+
if ((Q = this.meteogramData) == null || Q.temperatures.push(this.roundPrecision((z = d == null ? void 0 : d.weather) == null ? void 0 : z.temp, 0)), (M = this.meteogramData) == null || M.precip.push(this.roundPrecision((b = (E = d == null ? void 0 : d.weather) == null ? void 0 : E.precip) == null ? void 0 : b.sum, 0)), (k = this.meteogramData) == null || k.windspeed.push(this.roundPrecision((v = (O = d.weather) == null ? void 0 : O.wind) == null ? void 0 : v.kts, 1)), (x = this.meteogramData) == null || x.windGusts.push(this.roundPrecision((Y = (j = d == null ? void 0 : d.weather) == null ? void 0 : j.wind) == null ? void 0 : Y.gusts, 1)), (G = this.meteogramData) == null || G.sigWaveHeight.push(this.roundPrecision((N = (H = d == null ? void 0 : d.wave) == null ? void 0 : H.sig) == null ? void 0 : N.height)), (a = this.meteogramData) == null || a.swellHeight.push(this.roundPrecision((F = (T = d == null ? void 0 : d.wave) == null ? void 0 : T.swell) == null ? void 0 : F.height)), C % 12 === 0 && C % 24 !== 0 ? (l = this.meteogramData) == null || l.xDates.push(de(ie).tz(this.positionGmt).format("MMM-DD")) : (J = this.meteogramData) == null || J.xDates.push(""), C % 6 === 0 ? (R = this.meteogramData) == null || R.hours.push(this.computeHourLT(ie)) : (W = this.meteogramData) == null || W.hours.push(""), C % 12 === 0 ? ((V = this.meteogramData) == null || V.weatherIcons.push({ symbol: "image://" + ((q = d.weather) == null ? void 0 : q.url), symbolSize: 30 }), (_ = this.meteogramData) == null || _.weatherNames.push((Z = d.weather) == null ? void 0 : Z.name)) : ((P = this.meteogramData) == null || P.weatherIcons.push({ symbol: "image://" + ((w = d.weather) == null ? void 0 : w.url), symbolSize: 0 }), (I = this.meteogramData) == null || I.weatherNames.push("")), C % 6 === 0 ? (ae = this.meteogramData) == null || ae.windDir.push((p = (y = d.weather) == null ? void 0 : y.wind) == null ? void 0 : p.degree) : (te = this.meteogramData) == null || te.windDir.push(""), C % 6 === 0) {
|
|
1225
1225
|
const $ = document.createElement("canvas"), ee = $.getContext("2d");
|
|
1226
1226
|
$.width = n.width, $.height = n.height;
|
|
1227
|
-
const we = ((se = this.meteogramData) == null ? void 0 : se.windDir[
|
|
1227
|
+
const we = ((se = this.meteogramData) == null ? void 0 : se.windDir[C]) * (Math.PI / 180);
|
|
1228
1228
|
ee.translate($.width / 2, $.height / 2), ee.rotate(we), ee.translate(-n.width / 2, -n.height / 2), ee.drawImage(n, 0, 0, 64, 64);
|
|
1229
1229
|
const me = $.toDataURL();
|
|
1230
|
-
this.meteogramData.windDirIcons[`WindIcon${
|
|
1230
|
+
this.meteogramData.windDirIcons[`WindIcon${C}`] = {
|
|
1231
1231
|
height: 12,
|
|
1232
1232
|
width: 12,
|
|
1233
1233
|
align: "left",
|
|
@@ -1236,13 +1236,13 @@ const Ne = (h, e) => {
|
|
|
1236
1236
|
}
|
|
1237
1237
|
};
|
|
1238
1238
|
} else
|
|
1239
|
-
this.meteogramData.windDirIcons[`WindIcon${
|
|
1239
|
+
this.meteogramData.windDirIcons[`WindIcon${C}`] = {
|
|
1240
1240
|
height: 0,
|
|
1241
1241
|
width: 0,
|
|
1242
1242
|
align: "left",
|
|
1243
1243
|
backgroundColor: "none"
|
|
1244
1244
|
};
|
|
1245
|
-
(r = d == null ? void 0 : d.weather) != null && r.isDay ? e.end === void 0 && e.start >= 0 && (e.end =
|
|
1245
|
+
(r = d == null ? void 0 : d.weather) != null && r.isDay ? e.end === void 0 && e.start >= 0 && (e.end = C) : e.start === void 0 && (e.start = C), (e.start >= 0 && e.end >= 0 || e.start >= 0 && C === 14 * 24 - 1) && ((ne = this.meteogramData) == null || ne.markarea.push(
|
|
1246
1246
|
[
|
|
1247
1247
|
{
|
|
1248
1248
|
x: 4 + e.start / (14 * 24) * 92 + "%"
|
|
@@ -1259,8 +1259,8 @@ const Ne = (h, e) => {
|
|
|
1259
1259
|
};
|
|
1260
1260
|
},
|
|
1261
1261
|
initMeteogramEchart() {
|
|
1262
|
-
var M, O, v, k, j, Y, x,
|
|
1263
|
-
const
|
|
1262
|
+
var M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P, I, y, p, ae, te, se, r, ne, re, le, C, ie, d, $, ee, pe, we, me, he;
|
|
1263
|
+
const g = Be.init(document.getElementById("weather-icons")), e = {
|
|
1264
1264
|
grid: {
|
|
1265
1265
|
show: !0,
|
|
1266
1266
|
bottom: "0%",
|
|
@@ -1268,15 +1268,17 @@ const Ne = (h, e) => {
|
|
|
1268
1268
|
left: "4%",
|
|
1269
1269
|
right: "4%",
|
|
1270
1270
|
borderColor: "#666",
|
|
1271
|
-
borderWidth: 1
|
|
1271
|
+
borderWidth: 1,
|
|
1272
|
+
z: 1,
|
|
1273
|
+
zlevel: 1
|
|
1272
1274
|
},
|
|
1273
1275
|
tooltip: {
|
|
1274
1276
|
trigger: "item",
|
|
1275
1277
|
show: !0,
|
|
1276
1278
|
position: "right",
|
|
1277
|
-
formatter: (
|
|
1278
|
-
const oe =
|
|
1279
|
-
return
|
|
1279
|
+
formatter: (h) => {
|
|
1280
|
+
const oe = h == null ? void 0 : h.dataIndex;
|
|
1281
|
+
return h.seriesName === "Weather Icons" ? `<strong>${this.meteogramData.weatherNames[oe]}</strong>` : !1;
|
|
1280
1282
|
}
|
|
1281
1283
|
},
|
|
1282
1284
|
legend: {
|
|
@@ -1292,9 +1294,6 @@ const Ne = (h, e) => {
|
|
|
1292
1294
|
data: (M = this.meteogramData) == null ? void 0 : M.dates,
|
|
1293
1295
|
show: !1
|
|
1294
1296
|
},
|
|
1295
|
-
axisLine: {
|
|
1296
|
-
show: !1
|
|
1297
|
-
},
|
|
1298
1297
|
singleAxis: [
|
|
1299
1298
|
{
|
|
1300
1299
|
left: (O = this.meteogramData) == null ? void 0 : O.offset,
|
|
@@ -1349,14 +1348,13 @@ const Ne = (h, e) => {
|
|
|
1349
1348
|
height: "2%"
|
|
1350
1349
|
}
|
|
1351
1350
|
],
|
|
1352
|
-
yAxis: [],
|
|
1353
1351
|
series: [
|
|
1354
1352
|
{
|
|
1355
1353
|
name: "Weather Icons",
|
|
1356
1354
|
type: "scatter",
|
|
1357
1355
|
singleAxisIndex: 0,
|
|
1358
1356
|
coordinateSystem: "singleAxis",
|
|
1359
|
-
data: (
|
|
1357
|
+
data: (H = this.meteogramData) == null ? void 0 : H.weatherIcons,
|
|
1360
1358
|
symbolSize: 20
|
|
1361
1359
|
},
|
|
1362
1360
|
{
|
|
@@ -1373,17 +1371,17 @@ const Ne = (h, e) => {
|
|
|
1373
1371
|
vertical: "center"
|
|
1374
1372
|
}
|
|
1375
1373
|
},
|
|
1376
|
-
formatter: function(
|
|
1377
|
-
return `{WindIcon${
|
|
1374
|
+
formatter: function(h) {
|
|
1375
|
+
return `{WindIcon${h.dataIndex}|}`;
|
|
1378
1376
|
}
|
|
1379
1377
|
},
|
|
1380
1378
|
symbolSize: 0
|
|
1381
1379
|
}
|
|
1382
1380
|
]
|
|
1383
1381
|
};
|
|
1384
|
-
|
|
1385
|
-
let t = Math.max(...this.meteogramData.temperatures.filter((
|
|
1386
|
-
const
|
|
1382
|
+
g.setOption(e);
|
|
1383
|
+
let t = Math.max(...this.meteogramData.temperatures.filter((h) => typeof h == "number" && !isNaN(h))), s = Math.min(...this.meteogramData.temperatures.filter((h) => typeof h == "number" && !isNaN(h))) > 0 ? 0 : Math.min(...this.meteogramData.temperatures.filter((h) => typeof h == "number" && !isNaN(h))), f = Math.ceil(t / 5) * 5, L = Math.ceil((f - s) / 5);
|
|
1384
|
+
const z = Be.init(document.getElementById("weather-condition")), Q = {
|
|
1387
1385
|
title: {
|
|
1388
1386
|
text: "Weather conditions",
|
|
1389
1387
|
top: "10px",
|
|
@@ -1400,26 +1398,28 @@ const Ne = (h, e) => {
|
|
|
1400
1398
|
left: "4%",
|
|
1401
1399
|
right: "4%",
|
|
1402
1400
|
borderColor: "#666",
|
|
1403
|
-
borderWidth: 1
|
|
1401
|
+
borderWidth: 1,
|
|
1402
|
+
z: 1,
|
|
1403
|
+
zlevel: 1
|
|
1404
1404
|
},
|
|
1405
1405
|
tooltip: {
|
|
1406
1406
|
trigger: "axis",
|
|
1407
1407
|
show: !0,
|
|
1408
1408
|
position: "right",
|
|
1409
|
-
formatter: (
|
|
1409
|
+
formatter: (h) => {
|
|
1410
1410
|
var c, ue, u, m, Ae, ge;
|
|
1411
|
-
const oe = (c =
|
|
1412
|
-
return
|
|
1411
|
+
const oe = (c = h == null ? void 0 : h[0]) == null ? void 0 : c.dataIndex;
|
|
1412
|
+
return h.find((fe) => fe.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${de((ue = this.meteogramData) == null ? void 0 : ue.dates[oe]).tz(this.positionGmt).format("MMM-DD/HHmm[LT]")}</strong></div>
|
|
1413
1413
|
<div style="display: ${(u = this.meteogramData) != null && u.weatherNames[oe] ? "block" : "none"}; font-size: 13px;">
|
|
1414
1414
|
<span>Weather : </span><strong>${(m = this.meteogramData) == null ? void 0 : m.weatherNames[oe]}</strong>
|
|
1415
1415
|
</div>
|
|
1416
1416
|
<div style="font-size: 13px;">
|
|
1417
1417
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #f2a71c;}"></span>
|
|
1418
|
-
<span>Temperature : </span><strong>${(Ae =
|
|
1418
|
+
<span>Temperature : </span><strong>${(Ae = h[0]) == null ? void 0 : Ae.value}</strong><span style="padding-left: 3px;">℃</span>
|
|
1419
1419
|
</div>
|
|
1420
1420
|
<div style="font-size: 13px;">
|
|
1421
1421
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0c73a8;}"></span>
|
|
1422
|
-
<span>Precipitation : </span><strong>${(ge =
|
|
1422
|
+
<span>Precipitation : </span><strong>${(ge = h[1]) == null ? void 0 : ge.value}</strong><span style="padding-left: 3px;">mm</span>
|
|
1423
1423
|
</div>`;
|
|
1424
1424
|
}
|
|
1425
1425
|
},
|
|
@@ -1431,16 +1431,28 @@ const Ne = (h, e) => {
|
|
|
1431
1431
|
itemWidth: 40
|
|
1432
1432
|
},
|
|
1433
1433
|
xAxis: {
|
|
1434
|
+
show: !0,
|
|
1434
1435
|
left: 0,
|
|
1435
1436
|
right: 0,
|
|
1436
1437
|
top: "50%",
|
|
1437
1438
|
height: "50%",
|
|
1438
1439
|
type: "category",
|
|
1439
1440
|
data: (T = this.meteogramData) == null ? void 0 : T.dates,
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1441
|
+
axisLabel: {
|
|
1442
|
+
show: !1
|
|
1443
|
+
},
|
|
1444
|
+
axisLine: {
|
|
1445
|
+
show: !1
|
|
1446
|
+
},
|
|
1447
|
+
axisTick: {
|
|
1448
|
+
show: !0,
|
|
1449
|
+
inside: !0,
|
|
1450
|
+
lineStyle: {
|
|
1451
|
+
color: "rgba(0,0,0,0.7)"
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1454
|
+
z: 0,
|
|
1455
|
+
zlevel: 0
|
|
1444
1456
|
},
|
|
1445
1457
|
singleAxis: [
|
|
1446
1458
|
{
|
|
@@ -1554,41 +1566,35 @@ const Ne = (h, e) => {
|
|
|
1554
1566
|
name: "Temperature ( ℃ ) ",
|
|
1555
1567
|
show: !0,
|
|
1556
1568
|
min: s,
|
|
1557
|
-
max:
|
|
1569
|
+
max: f,
|
|
1558
1570
|
interval: L,
|
|
1559
1571
|
splitNumber: 5,
|
|
1560
1572
|
nameRotate: 90,
|
|
1561
1573
|
nameLocation: "middle",
|
|
1562
1574
|
nameGap: 25,
|
|
1563
1575
|
splitLine: {
|
|
1564
|
-
show: !0
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
z: 0,
|
|
1569
|
-
zlevel: 0
|
|
1570
|
-
}
|
|
1576
|
+
show: !0
|
|
1577
|
+
},
|
|
1578
|
+
z: 0,
|
|
1579
|
+
zlevel: 0
|
|
1571
1580
|
},
|
|
1572
1581
|
{
|
|
1573
1582
|
position: "right",
|
|
1574
1583
|
type: "value",
|
|
1575
1584
|
name: "Precipitation ( mm ) ",
|
|
1576
1585
|
min: 0,
|
|
1577
|
-
max: Math.ceil(Math.max(...this.meteogramData.precip.filter((
|
|
1578
|
-
interval: Math.ceil(
|
|
1586
|
+
max: Math.ceil(Math.max(...this.meteogramData.precip.filter((h) => typeof h == "number" && !isNaN(h))) / 5) * 5,
|
|
1587
|
+
interval: Math.ceil(Math.max(...this.meteogramData.precip.filter((h) => typeof h == "number" && !isNaN(h))) / 5),
|
|
1579
1588
|
splitNumber: 5,
|
|
1580
1589
|
show: !0,
|
|
1581
1590
|
nameRotate: 90,
|
|
1582
1591
|
nameLocation: "middle",
|
|
1583
|
-
nameGap:
|
|
1592
|
+
nameGap: 25,
|
|
1584
1593
|
splitLine: {
|
|
1585
|
-
show: !0
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
z: 0,
|
|
1590
|
-
zlevel: 0
|
|
1591
|
-
}
|
|
1594
|
+
show: !0
|
|
1595
|
+
},
|
|
1596
|
+
z: 0,
|
|
1597
|
+
zlevel: 0
|
|
1592
1598
|
}
|
|
1593
1599
|
],
|
|
1594
1600
|
series: [
|
|
@@ -1661,10 +1667,10 @@ const Ne = (h, e) => {
|
|
|
1661
1667
|
}
|
|
1662
1668
|
]
|
|
1663
1669
|
};
|
|
1664
|
-
|
|
1670
|
+
z.setOption(Q);
|
|
1665
1671
|
const E = Be.init(document.getElementById("wave-swell")), b = {
|
|
1666
1672
|
title: {
|
|
1667
|
-
text: "
|
|
1673
|
+
text: "Wave & Swell",
|
|
1668
1674
|
top: "10px",
|
|
1669
1675
|
left: "5px",
|
|
1670
1676
|
textStyle: {
|
|
@@ -1679,32 +1685,34 @@ const Ne = (h, e) => {
|
|
|
1679
1685
|
left: "4%",
|
|
1680
1686
|
right: "4%",
|
|
1681
1687
|
borderColor: "#666",
|
|
1682
|
-
borderWidth: 1
|
|
1688
|
+
borderWidth: 1,
|
|
1689
|
+
z: 1,
|
|
1690
|
+
zlevel: 1
|
|
1683
1691
|
},
|
|
1684
1692
|
tooltip: {
|
|
1685
1693
|
trigger: "axis",
|
|
1686
1694
|
triggerOn: "mousemove",
|
|
1687
1695
|
show: !0,
|
|
1688
1696
|
position: "right",
|
|
1689
|
-
formatter: (
|
|
1697
|
+
formatter: (h) => {
|
|
1690
1698
|
var c, ue, u, m, Ae, ge;
|
|
1691
|
-
const oe = (c =
|
|
1692
|
-
return
|
|
1699
|
+
const oe = (c = h == null ? void 0 : h[0]) == null ? void 0 : c.dataIndex;
|
|
1700
|
+
return h.find((fe) => fe.seriesType === "scatter") ? !1 : `<div style="font-size: 13px;"><strong>${de((ue = this.meteogramData) == null ? void 0 : ue.dates[oe]).tz(this.positionGmt).format("MMM-DD/HHmm[LT]")}</strong></div>
|
|
1693
1701
|
<div style="font-size: 13px;">
|
|
1694
1702
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #0ddd9f;}"></span>
|
|
1695
|
-
<span>Wind Speed : </span><strong>${(u =
|
|
1703
|
+
<span>Wind Speed : </span><strong>${(u = h[0]) == null ? void 0 : u.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
1696
1704
|
</div>
|
|
1697
1705
|
<div style="font-size: 13px;">
|
|
1698
1706
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #06a074;}"></span>
|
|
1699
|
-
<span>Wind Gusts : </span><strong>${(m =
|
|
1707
|
+
<span>Wind Gusts : </span><strong>${(m = h[1]) == null ? void 0 : m.value}</strong><span style="padding-left: 3px;">kts</span>
|
|
1700
1708
|
</div>
|
|
1701
1709
|
<div style="font-size: 13px;">
|
|
1702
1710
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #2a57b7;}"></span>
|
|
1703
|
-
<span>Sig.Wave Height : </span><strong>${(Ae =
|
|
1711
|
+
<span>Sig.Wave Height : </span><strong>${(Ae = h[2]) == null ? void 0 : Ae.value}</strong><span style="padding-left: 3px;">m</span>
|
|
1704
1712
|
</div>
|
|
1705
1713
|
<div style="font-size: 13px;">
|
|
1706
1714
|
<span style="display:inline-block; height: 10px;width: 10px;border-radius: 50%;background-color: #673AB7;"></span>
|
|
1707
|
-
<span>Swell Height : </span><strong>${(ge =
|
|
1715
|
+
<span>Swell Height : </span><strong>${(ge = h[3]) == null ? void 0 : ge.value}</strong><span style="padding-left: 3px;">m</span>
|
|
1708
1716
|
</div>`;
|
|
1709
1717
|
}
|
|
1710
1718
|
},
|
|
@@ -1716,16 +1724,28 @@ const Ne = (h, e) => {
|
|
|
1716
1724
|
data: ["Wind Speed", "Wind Gusts", "Sig.Wave Height", "Swell Height"]
|
|
1717
1725
|
},
|
|
1718
1726
|
xAxis: {
|
|
1727
|
+
show: !0,
|
|
1719
1728
|
left: 0,
|
|
1720
1729
|
right: 0,
|
|
1721
1730
|
top: "50%",
|
|
1722
1731
|
height: "50%",
|
|
1723
1732
|
type: "category",
|
|
1724
1733
|
data: (se = this.meteogramData) == null ? void 0 : se.dates,
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1734
|
+
axisLabel: {
|
|
1735
|
+
show: !1
|
|
1736
|
+
},
|
|
1737
|
+
axisLine: {
|
|
1738
|
+
show: !1
|
|
1739
|
+
},
|
|
1740
|
+
axisTick: {
|
|
1741
|
+
show: !0,
|
|
1742
|
+
inside: !0,
|
|
1743
|
+
lineStyle: {
|
|
1744
|
+
color: "rgba(0,0,0,0.7)"
|
|
1745
|
+
}
|
|
1746
|
+
},
|
|
1747
|
+
z: 0,
|
|
1748
|
+
zlevel: 0
|
|
1729
1749
|
},
|
|
1730
1750
|
singleAxis: [
|
|
1731
1751
|
{
|
|
@@ -1756,7 +1776,7 @@ const Ne = (h, e) => {
|
|
|
1756
1776
|
},
|
|
1757
1777
|
{
|
|
1758
1778
|
left: (le = this.meteogramData) == null ? void 0 : le.offset,
|
|
1759
|
-
right: (
|
|
1779
|
+
right: (C = this.meteogramData) == null ? void 0 : C.offset,
|
|
1760
1780
|
type: "category",
|
|
1761
1781
|
show: !1,
|
|
1762
1782
|
axisLine: {
|
|
@@ -1787,25 +1807,35 @@ const Ne = (h, e) => {
|
|
|
1787
1807
|
name: "Wind Speed ( kts )",
|
|
1788
1808
|
show: !0,
|
|
1789
1809
|
min: 0,
|
|
1790
|
-
max: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((
|
|
1791
|
-
interval: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((
|
|
1810
|
+
max: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((h) => typeof h == "number" && !isNaN(h))) / 5) * 5,
|
|
1811
|
+
interval: Math.ceil(Math.max(...[...this.meteogramData.windGusts, ...this.meteogramData.windspeed].filter((h) => typeof h == "number" && !isNaN(h))) / 5),
|
|
1792
1812
|
splitNumber: 5,
|
|
1793
1813
|
nameRotate: 90,
|
|
1794
1814
|
nameLocation: "middle",
|
|
1795
|
-
nameGap: 25
|
|
1815
|
+
nameGap: 25,
|
|
1816
|
+
splitLine: {
|
|
1817
|
+
show: !0
|
|
1818
|
+
},
|
|
1819
|
+
z: 0,
|
|
1820
|
+
zlevel: 0
|
|
1796
1821
|
},
|
|
1797
1822
|
{
|
|
1798
1823
|
position: "right",
|
|
1799
1824
|
type: "value",
|
|
1800
1825
|
name: "Sig.Wave & Swell ( m )",
|
|
1801
1826
|
min: 0,
|
|
1802
|
-
max: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((
|
|
1803
|
-
interval: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((
|
|
1827
|
+
max: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((h) => typeof h == "number" && !isNaN(h))) / 5) * 5,
|
|
1828
|
+
interval: Math.ceil(Math.max(...[...this.meteogramData.sigWaveHeight, ...this.meteogramData.swellHeight].filter((h) => typeof h == "number" && !isNaN(h))) / 5),
|
|
1804
1829
|
splitNumber: 5,
|
|
1805
1830
|
show: !0,
|
|
1806
1831
|
nameRotate: 90,
|
|
1807
1832
|
nameLocation: "middle",
|
|
1808
|
-
nameGap:
|
|
1833
|
+
nameGap: 25,
|
|
1834
|
+
splitLine: {
|
|
1835
|
+
show: !0
|
|
1836
|
+
},
|
|
1837
|
+
z: 0,
|
|
1838
|
+
zlevel: 0
|
|
1809
1839
|
}
|
|
1810
1840
|
],
|
|
1811
1841
|
series: [
|
|
@@ -1829,7 +1859,9 @@ const Ne = (h, e) => {
|
|
|
1829
1859
|
data: ($ = this.meteogramData) == null ? void 0 : $.markarea,
|
|
1830
1860
|
emphasis: {
|
|
1831
1861
|
disabled: !0
|
|
1832
|
-
}
|
|
1862
|
+
},
|
|
1863
|
+
z: -1,
|
|
1864
|
+
zlevel: -1
|
|
1833
1865
|
}
|
|
1834
1866
|
},
|
|
1835
1867
|
{
|
|
@@ -1918,7 +1950,7 @@ const Ne = (h, e) => {
|
|
|
1918
1950
|
document.getElementById("weather-chart") && Be.dispose(document.getElementById("weather-chart")), document.getElementById("weather-icons") && Be.dispose(document.getElementById("weather-icons")), document.getElementById("weather-condition") && Be.dispose(document.getElementById("weather-condition")), document.getElementById("wave-swell") && Be.dispose(document.getElementById("wave-swell"));
|
|
1919
1951
|
},
|
|
1920
1952
|
initHoursTableData() {
|
|
1921
|
-
var
|
|
1953
|
+
var g, e, t, n, s, f, L, z, Q, E, b, M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P;
|
|
1922
1954
|
this.hoursTableData = {
|
|
1923
1955
|
hours: [],
|
|
1924
1956
|
utcHours: [],
|
|
@@ -1948,8 +1980,8 @@ const Ne = (h, e) => {
|
|
|
1948
1980
|
for (let I = 0; I < 24; I++) {
|
|
1949
1981
|
const y = ce(this.pickedDate).clone().add(I, "h").format();
|
|
1950
1982
|
this.hoursTableData.hours.push(y);
|
|
1951
|
-
const p = ((
|
|
1952
|
-
this.hoursTableData.weatherUrls.push((e = p.weather) == null ? void 0 : e.url), this.hoursTableData.weatherNames.push(((t = p.weather) == null ? void 0 : t.name) ?? "-"), this.hoursTableData.temp.push(this.roundPrecision((n = p.weather) == null ? void 0 : n.temp, 0) ?? "-"), this.hoursTableData.precipProbability.push(this.roundPrecision((
|
|
1983
|
+
const p = ((g = Ie.pickHourly(this.meteoData, y)) == null ? void 0 : g[0]) || {};
|
|
1984
|
+
this.hoursTableData.weatherUrls.push((e = p.weather) == null ? void 0 : e.url), this.hoursTableData.weatherNames.push(((t = p.weather) == null ? void 0 : t.name) ?? "-"), this.hoursTableData.temp.push(this.roundPrecision((n = p.weather) == null ? void 0 : n.temp, 0) ?? "-"), this.hoursTableData.precipProbability.push(this.roundPrecision((f = (s = p.weather) == null ? void 0 : s.precip) == null ? void 0 : f.probability, 0) ?? "-"), this.hoursTableData.precip1h.push(this.roundPrecision((z = (L = p.weather) == null ? void 0 : L.precip) == null ? void 0 : z.sum, 0) ?? "-"), this.hoursTableData.visibility.push(this.roundPrecision((Q = p.weather) == null ? void 0 : Q.visibility, 0) ?? "-"), this.hoursTableData.humidity.push(this.roundPrecision((E = p.weather) == null ? void 0 : E.rh, 0) ?? "-"), this.hoursTableData.windSpeed.push(this.roundPrecision((M = (b = p.weather) == null ? void 0 : b.wind) == null ? void 0 : M.kts, 1)), this.hoursTableData.windDir.push((v = (O = p.weather) == null ? void 0 : O.wind) == null ? void 0 : v.bearing), this.hoursTableData.windGust.push(this.roundPrecision((j = (k = p.weather) == null ? void 0 : k.wind) == null ? void 0 : j.gusts, 1) ?? "-"), this.hoursTableData.sigwaveHeight.push(this.roundPrecision((x = (Y = p.wave) == null ? void 0 : Y.sig) == null ? void 0 : x.height, 1) ?? "-"), this.hoursTableData.sigwaveDir.push((N = (H = p.wave) == null ? void 0 : H.sig) == null ? void 0 : N.bearing), this.hoursTableData.windwaveHeight.push(this.roundPrecision((T = (G = p.wave) == null ? void 0 : G.wd) == null ? void 0 : T.height, 1) ?? "-"), this.hoursTableData.windwaveDir.push((a = (F = p.wave) == null ? void 0 : F.wd) == null ? void 0 : a.bearing), this.hoursTableData.windwavePeriod.push(this.roundPrecision((J = (l = p.wave) == null ? void 0 : l.wd) == null ? void 0 : J.period, 1) ?? "-"), this.hoursTableData.swellHeight.push(this.roundPrecision((W = (R = p.wave) == null ? void 0 : R.swell) == null ? void 0 : W.height, 1) ?? "-"), this.hoursTableData.swellDir.push((V = (q = p.wave) == null ? void 0 : q.swell) == null ? void 0 : V.bearing), this.hoursTableData.swellPeriod.push(this.roundPrecision((_ = (Z = p.wave) == null ? void 0 : Z.swell) == null ? void 0 : _.period, 1) ?? "-"), this.hoursTableData.currentSpeed.push(this.roundPrecision((w = p.current) == null ? void 0 : w.speed, 1) ?? "-"), this.hoursTableData.currentDir.push((P = p.current) == null ? void 0 : P.bearing), this.hoursTableData.seaLevel.push(this.roundPrecision(p.height, 1) ?? "-"), this.hoursTableData.seaTemp.push(this.roundPrecision(p.sst, 0) ?? "-");
|
|
1953
1985
|
}
|
|
1954
1986
|
this.loading.hoursTable = !1;
|
|
1955
1987
|
},
|
|
@@ -1957,25 +1989,25 @@ const Ne = (h, e) => {
|
|
|
1957
1989
|
this.position = {}, this.meteoData = {}, this.isCollected = !1, Be && document.getElementById("weather-chart") && Be.dispose(document.getElementById("weather-chart"));
|
|
1958
1990
|
},
|
|
1959
1991
|
initDaysTableData() {
|
|
1960
|
-
var e, t, n, s,
|
|
1992
|
+
var e, t, n, s, f, L, z, Q, E, b, M, O, v, k, j, Y, x, H, N, G, T, F, a, l, J, R, W, q, V, Z, _, w, P, I, y, p, ae;
|
|
1961
1993
|
this.daysTableData = [];
|
|
1962
|
-
const
|
|
1994
|
+
const g = ce().startOf("day");
|
|
1963
1995
|
for (let te = 0; te < 14; te++) {
|
|
1964
|
-
const se =
|
|
1996
|
+
const se = g.clone().add(te, "d").format(), r = ((e = Ie.pickDaily(this.meteoData, se)) == null ? void 0 : e[0]) || {};
|
|
1965
1997
|
console.log(r), this.daysTableData.push(
|
|
1966
1998
|
{
|
|
1967
1999
|
localWeek: this.computeWeekLT(se),
|
|
1968
2000
|
localDate: this.computeMMMDDLT(se),
|
|
1969
2001
|
weatherUrl: (t = r == null ? void 0 : r.weather) == null ? void 0 : t.url,
|
|
1970
2002
|
minTemp: this.roundPrecision((s = (n = r == null ? void 0 : r.weather) == null ? void 0 : n.temp) == null ? void 0 : s.min, 0) ?? "-",
|
|
1971
|
-
maxTemp: this.roundPrecision((L = (
|
|
1972
|
-
weatherName: (
|
|
2003
|
+
maxTemp: this.roundPrecision((L = (f = r == null ? void 0 : r.weather) == null ? void 0 : f.temp) == null ? void 0 : L.max, 0) ?? "-",
|
|
2004
|
+
weatherName: (z = r == null ? void 0 : r.weather) == null ? void 0 : z.name,
|
|
1973
2005
|
precipSum: this.roundPrecision((E = (Q = r == null ? void 0 : r.weather) == null ? void 0 : Q.precip) == null ? void 0 : E.sum, 0) ?? "-",
|
|
1974
2006
|
precipRainSum: this.roundPrecision((M = (b = r == null ? void 0 : r.weather) == null ? void 0 : b.precip) == null ? void 0 : M.rainSum, 0) ?? "-",
|
|
1975
2007
|
precipSnowfallSum: this.roundPrecision((v = (O = r == null ? void 0 : r.weather) == null ? void 0 : O.precip) == null ? void 0 : v.snowfallSum, 0) ?? "-",
|
|
1976
2008
|
windSpeedMax: this.roundPrecision((j = (k = r == null ? void 0 : r.weather) == null ? void 0 : k.wind) == null ? void 0 : j.kts, 1) ?? "-",
|
|
1977
2009
|
windSpeedDir: (x = (Y = r == null ? void 0 : r.weather) == null ? void 0 : Y.wind) == null ? void 0 : x.bearing,
|
|
1978
|
-
gustSpeedMax: this.roundPrecision((N = (
|
|
2010
|
+
gustSpeedMax: this.roundPrecision((N = (H = r == null ? void 0 : r.weather) == null ? void 0 : H.wind) == null ? void 0 : N.gusts, 1) ?? "-",
|
|
1979
2011
|
windWaveHeight: this.roundPrecision((T = (G = r == null ? void 0 : r.wave) == null ? void 0 : G.wd) == null ? void 0 : T.height, 1) ?? "-",
|
|
1980
2012
|
windWavePeriod: this.roundPrecision((a = (F = r == null ? void 0 : r.wave) == null ? void 0 : F.wd) == null ? void 0 : a.period, 1) ?? "-",
|
|
1981
2013
|
windWaveDir: (J = (l = r == null ? void 0 : r.wave) == null ? void 0 : l.wd) == null ? void 0 : J.bearing,
|
|
@@ -1991,37 +2023,37 @@ const Ne = (h, e) => {
|
|
|
1991
2023
|
this.loading.daysTable = !1;
|
|
1992
2024
|
}
|
|
1993
2025
|
}
|
|
1994
|
-
}, Te = { class: "spot-report" }, Fe = { class: "search-header-box" }, Se = { class: "search-header-box-inner flex-between" }, Oe = { class: "search-box flex-start" }, je = { class: "menu-box flex-end" }, Ye = { class: "content-box" }, Ke = { class: "title-section flex-between" }, Ue = { class: "main-title" }, Xe = { class: "sub-title" }, Je = { class: "flex-end" }, Re = {
|
|
2026
|
+
}, Te = { class: "spot-report" }, Fe = { class: "search-header-box" }, Se = { class: "search-header-box-inner flex-between" }, Oe = { class: "search-box flex-start" }, je = { class: "menu-box flex-end" }, Ye = { class: "content-box" }, Ke = { class: "title-section flex-between" }, Ue = { class: "main-title" }, Xe = { class: "sub-title" }, Je = { class: "flex-end" }, Re = { class: "meteogram-section" }, We = {
|
|
1995
2027
|
key: 0,
|
|
1996
|
-
class: "
|
|
1997
|
-
}, We = {
|
|
1998
|
-
key: 0,
|
|
1999
|
-
id: "weather-chart",
|
|
2000
|
-
class: "weather-chart"
|
|
2028
|
+
class: "card"
|
|
2001
2029
|
}, qe = {
|
|
2002
2030
|
key: 1,
|
|
2003
|
-
class: "
|
|
2031
|
+
class: "card flex-center"
|
|
2004
2032
|
}, Ve = {
|
|
2005
2033
|
key: 2,
|
|
2006
|
-
class: "
|
|
2007
|
-
}, Ze = {
|
|
2034
|
+
class: "card flex-center"
|
|
2035
|
+
}, Ze = {
|
|
2008
2036
|
key: 0,
|
|
2009
|
-
class: "
|
|
2037
|
+
class: "weather-echart-section"
|
|
2038
|
+
}, _e = {
|
|
2039
|
+
key: 0,
|
|
2040
|
+
id: "weather-chart",
|
|
2041
|
+
class: "weather-chart"
|
|
2010
2042
|
}, $e = {
|
|
2011
2043
|
key: 1,
|
|
2012
|
-
class: "
|
|
2044
|
+
class: "weather-chart weather-chart-loading flex-center"
|
|
2013
2045
|
}, et = {
|
|
2014
2046
|
key: 2,
|
|
2015
|
-
class: "
|
|
2047
|
+
class: "weather-chart flex-center"
|
|
2016
2048
|
}, tt = {
|
|
2017
2049
|
key: 1,
|
|
2018
2050
|
class: "hours-table-section"
|
|
2019
2051
|
}, st = {
|
|
2020
2052
|
key: 0,
|
|
2021
2053
|
class: "card"
|
|
2022
|
-
}, At = { class: "date" }, at = { class: "basic-table" }, it = { class: "day" }, ot = { class: "hour" }, nt = { class: "icon" }, rt = ["src"], lt = { class: "text" }, ht = { class: "text" }, gt = { class: "text" }, dt = { class: "text" }, wt = { class: "text" }, ct = { class: "text" }, mt = { key: 1 }, ut = { class: "text" }, pt = { class: "text" }, Bt = { class: "wave-current-table" },
|
|
2054
|
+
}, At = { class: "date" }, at = { class: "basic-table" }, it = { class: "day" }, ot = { class: "hour" }, nt = { class: "icon" }, rt = ["src"], lt = { class: "text" }, ht = { class: "text" }, gt = { class: "text" }, dt = { class: "text" }, wt = { class: "text" }, ct = { class: "text" }, mt = { key: 1 }, ut = { class: "text" }, pt = { class: "text" }, Bt = { class: "wave-current-table" }, Ct = { class: "text" }, ft = { class: "text" }, Dt = { key: 1 }, It = { class: "text" }, xt = { class: "text" }, vt = { class: "text" }, yt = { key: 1 }, Qt = { class: "text" }, Et = { class: "text" }, bt = { class: "text" }, Mt = { key: 1 }, Lt = { class: "text" }, zt = { class: "sea-table" }, Ht = { class: "text" }, Pt = { class: "text" }, kt = {
|
|
2023
2055
|
key: 1,
|
|
2024
|
-
class: "card flex-center"
|
|
2056
|
+
class: "card card-loading flex-center"
|
|
2025
2057
|
}, Nt = {
|
|
2026
2058
|
key: 2,
|
|
2027
2059
|
class: "card flex-center"
|
|
@@ -2084,19 +2116,19 @@ const Ne = (h, e) => {
|
|
|
2084
2116
|
class: "text-align-left"
|
|
2085
2117
|
}, ts = { key: 1 }, ss = {
|
|
2086
2118
|
key: 1,
|
|
2087
|
-
class: "card flex-center"
|
|
2119
|
+
class: "card card-loading flex-center"
|
|
2088
2120
|
}, As = {
|
|
2089
2121
|
key: 2,
|
|
2090
2122
|
class: "card flex-center"
|
|
2091
2123
|
};
|
|
2092
|
-
function as(
|
|
2093
|
-
var E, b, M, O, v, k, j, Y, x,
|
|
2094
|
-
const L = ye("ElOption"),
|
|
2124
|
+
function as(g, e, t, n, s, f) {
|
|
2125
|
+
var E, b, M, O, v, k, j, Y, x, H, N, G, T, F;
|
|
2126
|
+
const L = ye("ElOption"), z = ye("ElSelect"), Q = ye("ElTooltip");
|
|
2095
2127
|
return i(), o("div", Te, [
|
|
2096
2128
|
A("div", Fe, [
|
|
2097
2129
|
A("div", Se, [
|
|
2098
2130
|
A("div", Oe, [
|
|
2099
|
-
Qe(
|
|
2131
|
+
Qe(z, {
|
|
2100
2132
|
modelValue: s.searchName,
|
|
2101
2133
|
"onUpdate:modelValue": e[0] || (e[0] = (a) => s.searchName = a),
|
|
2102
2134
|
filterable: "",
|
|
@@ -2108,8 +2140,8 @@ function as(h, e, t, n, s, C) {
|
|
|
2108
2140
|
"remote-show-suffix": "",
|
|
2109
2141
|
onFocus: e[1] || (e[1] = (a) => s.placeholder = ""),
|
|
2110
2142
|
onBlur: e[2] || (e[2] = (a) => s.placeholder = "search for port name or coordinates"),
|
|
2111
|
-
"remote-method":
|
|
2112
|
-
onChange:
|
|
2143
|
+
"remote-method": f.fetchSuggestPosition,
|
|
2144
|
+
onChange: f.handleSearch
|
|
2113
2145
|
}, {
|
|
2114
2146
|
default: Ee(() => [
|
|
2115
2147
|
(i(!0), o(K, null, U(s.positionList, (a) => (i(), ke(L, {
|
|
@@ -2150,41 +2182,41 @@ function as(h, e, t, n, s, C) {
|
|
|
2150
2182
|
s.isCollected ? (i(), o("span", {
|
|
2151
2183
|
key: 0,
|
|
2152
2184
|
class: "iconfont icon active",
|
|
2153
|
-
onClick: e[5] || (e[5] = (...a) =>
|
|
2185
|
+
onClick: e[5] || (e[5] = (...a) => f.handleCollect && f.handleCollect(...a))
|
|
2154
2186
|
}, "")) : (i(), o("span", {
|
|
2155
2187
|
key: 1,
|
|
2156
2188
|
class: "iconfont icon",
|
|
2157
|
-
onClick: e[6] || (e[6] = (...a) =>
|
|
2189
|
+
onClick: e[6] || (e[6] = (...a) => f.handleCollect && f.handleCollect(...a))
|
|
2158
2190
|
}, ""))
|
|
2159
2191
|
]),
|
|
2160
2192
|
_: 1
|
|
2161
2193
|
}, 8, ["content"])
|
|
2162
2194
|
])
|
|
2163
2195
|
]),
|
|
2164
|
-
|
|
2165
|
-
(M = s.position) != null && M.name && t.token && !((O = s.loading) != null && O.
|
|
2196
|
+
A("div", Re, [
|
|
2197
|
+
(M = s.position) != null && M.name && t.token && !((O = s.loading) != null && O.meteogramEchart) ? (i(), o("div", We, e[7] || (e[7] = [
|
|
2198
|
+
A("div", { class: "title" }, "Meteogram", -1),
|
|
2199
|
+
A("div", { id: "weather-icons" }, null, -1),
|
|
2200
|
+
A("div", { id: "weather-condition" }, null, -1),
|
|
2201
|
+
A("div", { id: "wave-swell" }, null, -1)
|
|
2202
|
+
]))) : (v = s.loading) != null && v.meteogramEchart ? (i(), o("div", qe, e[8] || (e[8] = [
|
|
2166
2203
|
A("img", {
|
|
2167
2204
|
style: { height: "200px" },
|
|
2168
2205
|
src: xe
|
|
2169
2206
|
}, null, -1)
|
|
2170
2207
|
]))) : (i(), o("div", Ve, "No Data"))
|
|
2171
|
-
])
|
|
2172
|
-
|
|
2173
|
-
(k = s.position) != null && k.name && t.token && !((j = s.loading) != null && j.
|
|
2174
|
-
A("div", { class: "title" }, "Meteogram", -1),
|
|
2175
|
-
A("div", { id: "weather-icons" }, null, -1),
|
|
2176
|
-
A("div", { id: "weather-condition" }, null, -1),
|
|
2177
|
-
A("div", { id: "wave-swell" }, null, -1)
|
|
2178
|
-
]))) : (Y = s.loading) != null && Y.meteogramEchart ? (i(), o("div", $e, e[9] || (e[9] = [
|
|
2208
|
+
]),
|
|
2209
|
+
s.menuIndex === 1 ? (i(), o("div", Ze, [
|
|
2210
|
+
(k = s.position) != null && k.name && t.token && !((j = s.loading) != null && j.weatherEchart) ? (i(), o("div", _e)) : (Y = s.loading) != null && Y.weatherEchart ? (i(), o("div", $e, e[9] || (e[9] = [
|
|
2179
2211
|
A("img", {
|
|
2180
2212
|
style: { height: "200px" },
|
|
2181
2213
|
src: xe
|
|
2182
2214
|
}, null, -1)
|
|
2183
2215
|
]))) : (i(), o("div", et, "No Data"))
|
|
2184
|
-
]),
|
|
2216
|
+
])) : De("", !0),
|
|
2185
2217
|
s.menuIndex === 1 ? (i(), o("div", tt, [
|
|
2186
|
-
(x = s.position) != null && x.name && t.token && !((
|
|
2187
|
-
A("div", At, D(s.pickedWeek) + " " + D(
|
|
2218
|
+
(x = s.position) != null && x.name && t.token && !((H = s.loading) != null && H.hoursTable) ? (i(), o("div", st, [
|
|
2219
|
+
A("div", At, D(s.pickedWeek) + " " + D(f.computeMMMDDLT(s.pickedDate)), 1),
|
|
2188
2220
|
A("table", at, [
|
|
2189
2221
|
A("tr", it, [
|
|
2190
2222
|
e[10] || (e[10] = A("th", {
|
|
@@ -2200,7 +2232,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2200
2232
|
colspan: "1",
|
|
2201
2233
|
class: X(s.activeIndex === l ? "active" : ""),
|
|
2202
2234
|
key: Math.random() + "local"
|
|
2203
|
-
}, D(
|
|
2235
|
+
}, D(f.computeHourLT(a)), 3))), 128))
|
|
2204
2236
|
]),
|
|
2205
2237
|
A("tr", ot, [
|
|
2206
2238
|
e[11] || (e[11] = A("th", {
|
|
@@ -2216,7 +2248,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2216
2248
|
colspan: "1",
|
|
2217
2249
|
class: X(s.activeIndex === l ? "active" : ""),
|
|
2218
2250
|
key: Math.random() + "z"
|
|
2219
|
-
}, D(
|
|
2251
|
+
}, D(f.computeHourZ(a)), 3))), 128))
|
|
2220
2252
|
]),
|
|
2221
2253
|
A("tr", nt, [
|
|
2222
2254
|
e[12] || (e[12] = A("td", {
|
|
@@ -2348,7 +2380,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2348
2380
|
isNaN(a) ? (i(), o("span", mt, "-")) : (i(), o("span", {
|
|
2349
2381
|
key: 0,
|
|
2350
2382
|
class: "iconfont icon",
|
|
2351
|
-
style:
|
|
2383
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
|
|
2352
2384
|
}, "", 4))
|
|
2353
2385
|
], 2))), 128))
|
|
2354
2386
|
]),
|
|
@@ -2387,7 +2419,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2387
2419
|
]),
|
|
2388
2420
|
e[32] || (e[32] = A("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
|
|
2389
2421
|
A("table", Bt, [
|
|
2390
|
-
A("tr",
|
|
2422
|
+
A("tr", Ct, [
|
|
2391
2423
|
e[21] || (e[21] = A("td", {
|
|
2392
2424
|
rowspan: "1",
|
|
2393
2425
|
colspan: "1",
|
|
@@ -2403,7 +2435,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2403
2435
|
key: Math.random() + a
|
|
2404
2436
|
}, D(a), 3))), 128))
|
|
2405
2437
|
]),
|
|
2406
|
-
A("tr",
|
|
2438
|
+
A("tr", ft, [
|
|
2407
2439
|
e[22] || (e[22] = A("td", {
|
|
2408
2440
|
rowspan: "1",
|
|
2409
2441
|
colspan: "1",
|
|
@@ -2421,7 +2453,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2421
2453
|
isNaN(a) ? (i(), o("span", Dt, "-")) : (i(), o("span", {
|
|
2422
2454
|
key: 0,
|
|
2423
2455
|
class: "iconfont icon",
|
|
2424
|
-
style:
|
|
2456
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
|
|
2425
2457
|
}, "", 4))
|
|
2426
2458
|
], 2))), 128))
|
|
2427
2459
|
]),
|
|
@@ -2475,7 +2507,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2475
2507
|
isNaN(a) ? (i(), o("span", yt, "-")) : (i(), o("span", {
|
|
2476
2508
|
key: 0,
|
|
2477
2509
|
class: "iconfont icon",
|
|
2478
|
-
style:
|
|
2510
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
|
|
2479
2511
|
}, "", 4))
|
|
2480
2512
|
], 2))), 128))
|
|
2481
2513
|
]),
|
|
@@ -2529,7 +2561,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2529
2561
|
isNaN(a) ? (i(), o("span", Mt, "-")) : (i(), o("span", {
|
|
2530
2562
|
key: 0,
|
|
2531
2563
|
class: "iconfont icon",
|
|
2532
|
-
style:
|
|
2564
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a}deg)` })
|
|
2533
2565
|
}, "", 4))
|
|
2534
2566
|
], 2))), 128))
|
|
2535
2567
|
]),
|
|
@@ -2551,8 +2583,8 @@ function as(h, e, t, n, s, C) {
|
|
|
2551
2583
|
])
|
|
2552
2584
|
]),
|
|
2553
2585
|
e[33] || (e[33] = A("div", { style: { "text-align": "center", padding: "3px" } }, null, -1)),
|
|
2554
|
-
A("table",
|
|
2555
|
-
A("tr",
|
|
2586
|
+
A("table", zt, [
|
|
2587
|
+
A("tr", Ht, [
|
|
2556
2588
|
e[30] || (e[30] = A("td", {
|
|
2557
2589
|
rowspan: "1",
|
|
2558
2590
|
colspan: "1",
|
|
@@ -2728,7 +2760,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2728
2760
|
isNaN(a.windSpeedDir) ? (i(), o("span", Wt, "-")) : (i(), o("span", {
|
|
2729
2761
|
key: 0,
|
|
2730
2762
|
class: "iconfont icon",
|
|
2731
|
-
style:
|
|
2763
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a.windSpeedDir}deg)` })
|
|
2732
2764
|
}, "", 4))
|
|
2733
2765
|
]),
|
|
2734
2766
|
A("td", qt, [
|
|
@@ -2741,7 +2773,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2741
2773
|
isNaN(a.windWaveDir) ? (i(), o("span", Zt, "-")) : (i(), o("span", {
|
|
2742
2774
|
key: 0,
|
|
2743
2775
|
class: "iconfont icon",
|
|
2744
|
-
style:
|
|
2776
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a.windWaveDir}deg)` })
|
|
2745
2777
|
}, "", 4))
|
|
2746
2778
|
]),
|
|
2747
2779
|
A("td", _t, [
|
|
@@ -2750,7 +2782,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2750
2782
|
isNaN(a.swellWaveDir) ? (i(), o("span", $t, "-")) : (i(), o("span", {
|
|
2751
2783
|
key: 0,
|
|
2752
2784
|
class: "iconfont icon",
|
|
2753
|
-
style:
|
|
2785
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a.swellWaveDir}deg)` })
|
|
2754
2786
|
}, "", 4))
|
|
2755
2787
|
]),
|
|
2756
2788
|
A("td", es, [
|
|
@@ -2759,7 +2791,7 @@ function as(h, e, t, n, s, C) {
|
|
|
2759
2791
|
isNaN(a.sigWaveDir) ? (i(), o("span", ts, "-")) : (i(), o("span", {
|
|
2760
2792
|
key: 0,
|
|
2761
2793
|
class: "iconfont icon",
|
|
2762
|
-
style:
|
|
2794
|
+
style: Ce({ display: "inline-block", transform: `rotate(${a.sigWaveDir}deg)` })
|
|
2763
2795
|
}, "", 4))
|
|
2764
2796
|
])
|
|
2765
2797
|
]))), 128))
|
|
@@ -2774,9 +2806,9 @@ function as(h, e, t, n, s, C) {
|
|
|
2774
2806
|
])
|
|
2775
2807
|
]);
|
|
2776
2808
|
}
|
|
2777
|
-
const is = /* @__PURE__ */ Ne(Ge, [["render", as], ["__scopeId", "data-v-
|
|
2778
|
-
install(
|
|
2779
|
-
|
|
2809
|
+
const is = /* @__PURE__ */ Ne(Ge, [["render", as], ["__scopeId", "data-v-e2741e30"]]), ds = {
|
|
2810
|
+
install(g) {
|
|
2811
|
+
g.component("SpotReport", is);
|
|
2780
2812
|
}
|
|
2781
2813
|
};
|
|
2782
2814
|
export {
|