@windycom/plugin-devtools 1.0.9 → 3.0.0
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/README.md +4 -0
- package/index.mjs +2 -2
- package/package.json +2 -3
- package/types/client/AccessProducts.d.ts +8 -0
- package/types/client/BottomSveltePlugins.d.ts +8 -0
- package/types/client/Calendar.d.ts +9 -17
- package/types/client/Color.d.ts +43 -90
- package/types/client/Drag.d.ts +8 -1
- package/types/client/Evented.d.ts +4 -0
- package/types/client/ExternalSveltePlugin.d.ts +2 -1
- package/types/client/IDB.d.ts +63 -0
- package/types/client/IconProducts.d.ts +2 -0
- package/types/client/Layer.d.ts +1 -2
- package/types/client/Metric.d.ts +8 -8
- package/types/client/MetricClasses.d.ts +4 -3
- package/types/client/Overlay.d.ts +30 -15
- package/types/client/OverlayClasses.d.ts +11 -7
- package/types/client/Plugin.d.ts +2 -2
- package/types/client/Product.d.ts +53 -30
- package/types/client/RadarPlusProduct.d.ts +19 -0
- package/types/client/Renderer.d.ts +2 -10
- package/types/client/SveltePanePlugin.d.ts +4 -3
- package/types/client/SveltePlugin.d.ts +9 -5
- package/types/client/TileLayer.d.ts +1 -2
- package/types/client/TopoMap.d.ts +10 -0
- package/types/client/Window.d.ts +0 -4
- package/types/client/WindowPlugin.d.ts +15 -10
- package/types/client/appsFlyer.d.ts +3 -0
- package/types/client/baseMap.d.ts +8 -5
- package/types/client/cityLabels.d.ts +10 -2
- package/types/client/cloudSync.d.ts +3 -1
- package/types/client/colorGradients.d.ts +13 -0
- package/types/client/d.ts.files/Calendar.d.ts +11 -2
- package/types/client/d.ts.files/Color.d.ts +16 -5
- package/types/client/d.ts.files/LabelsLayer.d.ts +1 -18
- package/types/client/d.ts.files/Layer.d.ts +8 -1
- package/types/client/d.ts.files/Metric.d.ts +1 -0
- package/types/client/d.ts.files/Renderer.d.ts +22 -1
- package/types/client/d.ts.files/alerts.d.ts +120 -0
- package/types/client/d.ts.files/broadcast.d.ts +44 -17
- package/types/client/d.ts.files/dataSpecifications.d.ts +94 -137
- package/types/client/d.ts.files/favs.d.ts +69 -0
- package/types/client/d.ts.files/incomingMessages.d.ts +0 -4
- package/types/client/d.ts.files/notifications.d.ts +2 -2
- package/types/client/d.ts.files/plugin-params.d.ts +44 -58
- package/types/client/d.ts.files/plugins.d.ts +37 -52
- package/types/client/d.ts.files/pois.d.ts +1 -1
- package/types/client/d.ts.files/products.d.ts +19 -2
- package/types/client/d.ts.files/rootScope.d.ts +3 -21
- package/types/client/d.ts.files/satellite.d.ts +1 -0
- package/types/client/d.ts.files/startup.d.ts +59 -0
- package/types/client/d.ts.files/storage.d.ts +12 -35
- package/types/client/d.ts.files/user.d.ts +79 -24
- package/types/client/device.d.ts +0 -1
- package/types/client/deviceLogging.d.ts +2 -1
- package/types/client/embed2.d.ts +15 -35
- package/types/client/fetch.d.ts +31 -24
- package/types/client/ga.d.ts +4 -0
- package/types/client/geolocation.d.ts +14 -7
- package/types/client/globals.d.ts +1 -0
- package/types/client/http.d.ts +17 -0
- package/types/client/idbInstances.d.ts +45 -0
- package/types/client/interpolator.d.ts +2 -1
- package/types/client/langFiles.d.ts +2 -0
- package/types/client/layers.d.ts +2 -0
- package/types/client/lib.d.ts +7 -25
- package/types/client/libHtml.d.ts +1 -1
- package/types/client/loadArticlesOrWhatsNew.d.ts +1 -0
- package/types/client/log.d.ts +1 -0
- package/types/client/lruCache.d.ts +6 -0
- package/types/client/map.d.ts +17 -6
- package/types/client/mobile.d.ts +33 -27
- package/types/client/models.d.ts +1 -1
- package/types/client/nativeStorage.d.ts +0 -14
- package/types/client/notifications.d.ts +32 -67
- package/types/client/overlays.d.ts +4 -1
- package/types/client/params.d.ts +0 -1
- package/types/client/patchAndPromoCtrl.d.ts +13 -0
- package/types/client/permanentPromos.d.ts +1 -2
- package/types/client/persistentStorage.d.ts +8 -0
- package/types/client/picker.d.ts +1 -1
- package/types/client/pois.d.ts +1 -2
- package/types/client/promo.d.ts +16 -32
- package/types/client/pushNotifications.d.ts +13 -1
- package/types/client/queryString.d.ts +1 -1
- package/types/client/renderUtils.d.ts +1 -1
- package/types/client/renderers.d.ts +7 -3
- package/types/client/rootScope.d.ts +22 -27
- package/types/client/router.d.ts +10 -6
- package/types/client/seoParser.d.ts +21 -0
- package/types/client/serviceWorkerCtrl.d.ts +8 -0
- package/types/client/startupWeather.d.ts +27 -0
- package/types/client/store.d.ts +2 -2
- package/types/client/storeLastPosition.d.ts +1 -0
- package/types/client/subscription.d.ts +1 -0
- package/types/client/swDownloader.d.ts +7 -7
- package/types/client/swProxy.d.ts +1 -1
- package/types/client/swUtils.d.ts +3 -3
- package/types/client/trans.d.ts +26 -37
- package/types/client/user.d.ts +11 -14
- package/types/client/userAlerts.d.ts +68 -0
- package/types/client/userConsent.d.ts +6 -0
- package/types/client/userFavs.d.ts +46 -128
- package/types/client/utils.d.ts +46 -10
- package/types/iconfont.d.ts +6 -4
- package/types/interfaces.d.ts +199 -348
- package/types/lang-files.d.ts +736 -128
- package/types/offline.d.ts +100 -0
- package/types/types.d.ts +116 -29
- package/types/client/Bar.d.ts +0 -114
- package/types/client/BindedBar.d.ts +0 -51
- package/types/client/BindedCheckbox.d.ts +0 -30
- package/types/client/BindedDropDown.d.ts +0 -14
- package/types/client/BindedSwitch.d.ts +0 -35
- package/types/client/BottomTagPlugin.d.ts +0 -8
- package/types/client/Detail1hCheckbox.d.ts +0 -4
- package/types/client/DraggableDiv.d.ts +0 -21
- package/types/client/DropDown.d.ts +0 -37
- package/types/client/GhostBox.d.ts +0 -17
- package/types/client/Legend.d.ts +0 -6
- package/types/client/LongTap.d.ts +0 -21
- package/types/client/MobileCalendar.d.ts +0 -47
- package/types/client/OfflineMessagesClasses.d.ts +0 -30
- package/types/client/ProductSwitch.d.ts +0 -14
- package/types/client/Scrollable.d.ts +0 -14
- package/types/client/Switch.d.ts +0 -24
- package/types/client/TimestampBar.d.ts +0 -8
- package/types/client/Webcams.d.ts +0 -66
- package/types/client/d.ts.files/Product.d.ts +0 -37
- package/types/client/d.ts.files/trans.d.ts +0 -55
- package/types/client/favs.d.ts +0 -83
- package/types/client/hp.d.ts +0 -15
- package/types/client/offlineController.d.ts +0 -20
- /package/types/client/{loadersUI.d.ts → customColors.d.ts} +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AlertConditionType,
|
|
3
|
+
CloudCoverage,
|
|
4
|
+
AlertStatus,
|
|
5
|
+
Direction,
|
|
6
|
+
Weekday,
|
|
7
|
+
} from '@windy/userAlerts';
|
|
8
|
+
import type { Timestamp, UserInterest } from '@windy/types';
|
|
9
|
+
import type { Products } from '@windy/rootScope.d';
|
|
10
|
+
import type { LatLon } from '@windy/interfaces';
|
|
11
|
+
|
|
12
|
+
export interface AlertRequest {
|
|
13
|
+
conditions: AlertCondition[];
|
|
14
|
+
description: string;
|
|
15
|
+
favToDeleteId?: string;
|
|
16
|
+
lat: number;
|
|
17
|
+
locationName: string;
|
|
18
|
+
lon: number;
|
|
19
|
+
model: GlobalProductWithWaves | null;
|
|
20
|
+
priority?: number;
|
|
21
|
+
suspended: boolean;
|
|
22
|
+
userInterest: UserInterest;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type Extends<T, U extends T> = U;
|
|
26
|
+
|
|
27
|
+
export type GlobalProductWithWaves = Extends<Products, 'ecmwf' | 'gfs' | 'icon' | 'mblue'>;
|
|
28
|
+
|
|
29
|
+
export interface AlertCheckResponse {
|
|
30
|
+
/**
|
|
31
|
+
* Array of timestamps when the trigger is triggered
|
|
32
|
+
*/
|
|
33
|
+
timestamps: Timestamp[];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface NumberRange {
|
|
37
|
+
from: number;
|
|
38
|
+
to: number;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface AlertConditionBase {
|
|
42
|
+
type: AlertConditionType;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface CloudinessAlertCondition extends AlertConditionBase {
|
|
46
|
+
type: AlertConditionType.Cloudiness;
|
|
47
|
+
cloudCoverage: CloudCoverage[];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface FreshSnowAlertCondition extends AlertConditionBase {
|
|
51
|
+
rangeCentimeters: NumberRange;
|
|
52
|
+
type: AlertConditionType.FreshSnow;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface RainfallAlertCondition extends AlertConditionBase {
|
|
56
|
+
hours: number;
|
|
57
|
+
rangeMilliliters: NumberRange;
|
|
58
|
+
type: AlertConditionType.Rainfall;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface SwellAlertCondition extends AlertConditionBase {
|
|
62
|
+
directions: Direction[];
|
|
63
|
+
rangeSwellMeters: NumberRange;
|
|
64
|
+
type: AlertConditionType.Swell;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface TemperatureAlertCondition extends AlertConditionBase {
|
|
68
|
+
rangeKelvin: NumberRange;
|
|
69
|
+
type: AlertConditionType.Temperature;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface TimeAlertCondition extends AlertConditionBase {
|
|
73
|
+
/** Days of the week in which the conditions must be met */
|
|
74
|
+
days: Weekday[];
|
|
75
|
+
/** Hours of the day in which the conditions must be met */
|
|
76
|
+
hours?: NumberRange[];
|
|
77
|
+
/** Minimum duration of meeting the conditions to send the notification */
|
|
78
|
+
minDurationHours: number;
|
|
79
|
+
/** Range of days which will be checked for conditions */
|
|
80
|
+
rangeDays?: NumberRange;
|
|
81
|
+
type: AlertConditionType.Time;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface WindAlertCondition extends AlertConditionBase {
|
|
85
|
+
directions: Direction[];
|
|
86
|
+
rangeWindMetersPerSecond: NumberRange;
|
|
87
|
+
type: AlertConditionType.Wind;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export type AlertCondition =
|
|
91
|
+
| CloudinessAlertCondition
|
|
92
|
+
| FreshSnowAlertCondition
|
|
93
|
+
| RainfallAlertCondition
|
|
94
|
+
| SwellAlertCondition
|
|
95
|
+
| TemperatureAlertCondition
|
|
96
|
+
| TimeAlertCondition
|
|
97
|
+
| WindAlertCondition;
|
|
98
|
+
|
|
99
|
+
/** MongoDb id of the alert */
|
|
100
|
+
export type AlertId = string;
|
|
101
|
+
|
|
102
|
+
export interface AlertResponse extends AlertRequest {
|
|
103
|
+
created: Timestamp;
|
|
104
|
+
updated: Timestamp;
|
|
105
|
+
id: AlertId;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Group with multiple alerts in it */
|
|
109
|
+
export interface AlertGroupObject extends LatLon {
|
|
110
|
+
key: string;
|
|
111
|
+
locationName: string;
|
|
112
|
+
priority: number;
|
|
113
|
+
alerts: AlertResponse[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** Enhanced Alert */
|
|
117
|
+
export interface EnhancedAlert extends AlertResponse {
|
|
118
|
+
status: AlertStatus;
|
|
119
|
+
timestamps: Timestamp[];
|
|
120
|
+
}
|
|
@@ -9,19 +9,22 @@
|
|
|
9
9
|
|
|
10
10
|
*/
|
|
11
11
|
import { DetailLocChangeParams } from '@plugins/detail/detail.d';
|
|
12
|
-
import {
|
|
12
|
+
import { ParsLocation as GlobeParsLocation } from '@plugins/globe/main/receiver.d';
|
|
13
|
+
import { Params as GlobeParams, Poi as GlobePoi } from '@plugins/globe/types.d';
|
|
14
|
+
import { ExtendedDataAndParams } from '@plugins/isolines/IsolinesCanvas2D.d';
|
|
13
15
|
import { Evented } from '@windy/Evented';
|
|
14
16
|
import { MetricIdent, MetricItem } from '@windy/Metric.d';
|
|
15
|
-
import { Fav, GeolocationInfo, LatLon, WeatherParameters } from '@windy/interfaces.d';
|
|
16
|
-
import { Pois } from '@windy/rootScope.d';
|
|
17
|
-
import { ExtendedDataAndParams } from '@plugins/isolines/IsolinesCanvas2D.d';
|
|
18
|
-
import { Poi as GlobePoi, Params as GlobeParams } from '@plugins/globe/types.d';
|
|
19
|
-
import { ParsLocation as GlobeParsLocation } from '@plugins/globe/main/receiver.d';
|
|
20
|
-
import { NotificationPreferences } from '@windy/dataSpecifications.d';
|
|
21
17
|
import { PluginIdent } from '@windy/Plugin';
|
|
18
|
+
import { NotificationPreferences } from '@windy/dataSpecifications.d';
|
|
19
|
+
import { GeolocationInfo, LatLon, WeatherParameters } from '@windy/interfaces.d';
|
|
22
20
|
import { PluginSource, PluginsOpenParams, PluginsQsParams } from '@windy/plugin-params.d';
|
|
23
21
|
import { Plugins } from '@windy/plugins.d';
|
|
22
|
+
import { Pois } from '@windy/rootScope.d';
|
|
24
23
|
import type { ExternalPluginIdent } from '@windy/types';
|
|
24
|
+
import type { CenterOptions } from '@windy/map';
|
|
25
|
+
import type { AnimationOptions, FitBoundsOptions, LngLatBoundsLike } from '@windycom/maplibre-gl';
|
|
26
|
+
import type { ViewportBounds } from '@plugins/_shared/maplibre/utils/maplibreUtils';
|
|
27
|
+
import type { RadarPlusLayer } from '@plugins/radar-plus/types';
|
|
25
28
|
|
|
26
29
|
type BcastTypesNonGeneric = {
|
|
27
30
|
/**
|
|
@@ -66,7 +69,7 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
66
69
|
rqstOpen: [T | string, PluginsOpenParams[T] | undefined];
|
|
67
70
|
|
|
68
71
|
/** Request to close plugin (either internal or external) */
|
|
69
|
-
rqstClose: [T | string
|
|
72
|
+
rqstClose: [T | string];
|
|
70
73
|
|
|
71
74
|
/** Request to close all opened plugins (unless plugin has noClose property) */
|
|
72
75
|
closeAllPlugins: [PluginIdent] | [];
|
|
@@ -74,9 +77,12 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
74
77
|
/** Plugin was successfully loaded and closed */
|
|
75
78
|
pluginClosed: [PluginIdent | string];
|
|
76
79
|
|
|
77
|
-
/** Plugin was
|
|
80
|
+
/** Plugin was successfully closed */
|
|
78
81
|
pluginOpened: [PluginIdent | string];
|
|
79
82
|
|
|
83
|
+
/** Svelte plugin was successfully mounted */
|
|
84
|
+
pluginMounted: [PluginIdent | string];
|
|
85
|
+
|
|
80
86
|
/**
|
|
81
87
|
* Triggered when Windy has successfully loaded and rendered requested data.
|
|
82
88
|
* Use this for triggering your own tasks.
|
|
@@ -101,9 +107,12 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
101
107
|
*/
|
|
102
108
|
metricChanged: [MetricIdent | undefined, MetricItem | undefined];
|
|
103
109
|
|
|
104
|
-
/** Indicates that user added, remover or rename his fav
|
|
110
|
+
/** Indicates that user added, remover or rename his fav */
|
|
105
111
|
favChanged: [];
|
|
106
112
|
|
|
113
|
+
/** Indicates that user added, remover or rename his alert */
|
|
114
|
+
alertChanged: [];
|
|
115
|
+
|
|
107
116
|
/**
|
|
108
117
|
* Indicates, that router has parsed URL and launched plugin
|
|
109
118
|
* that was requested in URL
|
|
@@ -111,19 +120,40 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
111
120
|
routerParsed: [PluginIdent | ExternalPluginIdent | void];
|
|
112
121
|
|
|
113
122
|
// prettier-ignore
|
|
114
|
-
/** @ignore */ airportLoaded: [Fav];
|
|
115
123
|
/** @ignore */ globeOpened: [];
|
|
116
124
|
/** @ignore */ globeClose: [];
|
|
117
125
|
/** @ignore */ globeFailed: [];
|
|
126
|
+
|
|
118
127
|
/** @ignore */ 'globe-detail': [DetailLocChangeParams | (LatLon & PluginSource)];
|
|
119
128
|
/** @ignore */ 'globe-isolines': [ExtendedDataAndParams | null];
|
|
120
129
|
/** @ignore */ 'globe-poi': [GlobeParsLocation & { type?: string; id?: string }];
|
|
121
130
|
/** @ignore */ 'globe-zoomIn': [[number, number] | null] | [];
|
|
122
131
|
/** @ignore */ 'globe-zoomOut': [[number, number] | null] | [];
|
|
123
132
|
/** @ignore */ 'globe-paramsChanged': [GlobeParams];
|
|
124
|
-
|
|
125
|
-
/** @ignore */ '
|
|
126
|
-
/** @ignore */ '
|
|
133
|
+
|
|
134
|
+
/** @ignore */ 'leaflet-zoomIn': [number | undefined, L.ZoomOptions | undefined];
|
|
135
|
+
/** @ignore */ 'leaflet-zoomOut': [number | undefined, L.ZoomOptions | undefined];
|
|
136
|
+
/** @ignore */ 'leaflet-paramsChanged': [
|
|
137
|
+
WeatherParameters,
|
|
138
|
+
keyof WeatherParameters | undefined,
|
|
139
|
+
];
|
|
140
|
+
|
|
141
|
+
/** @ignore */ 'maplibre-zoomIn': [AnimationOptions | undefined, unknown | undefined];
|
|
142
|
+
/** @ignore */ 'maplibre-zoomOut': [AnimationOptions | undefined, unknown | undefined];
|
|
143
|
+
/** @ignore */ 'maplibre-setZoom': [number, unknown | undefined];
|
|
144
|
+
/** @ignore */ 'maplibre-centerMap': [CenterOptions];
|
|
145
|
+
/** @ignore */ 'maplibre-triggerDragging': [boolean];
|
|
146
|
+
/** @ignore */ 'maplibre-fitBounds': [LngLatBoundsLike, FitBoundsOptions | undefined];
|
|
147
|
+
/** @ignore */ 'maplibre-panToOffset': [number, number, number];
|
|
148
|
+
/** @ignore */ 'maplibre-ensurePointVisibleY': [number, number, number];
|
|
149
|
+
/** @ignore */ 'maplibre-moveEnd': [];
|
|
150
|
+
/** @ignore */ 'maplibre-zoomChange': [number];
|
|
151
|
+
/** @ignore */ 'maplibre-boundsChange': [ViewportBounds];
|
|
152
|
+
/** @ignore */ 'maplibre-paramsChanged': [
|
|
153
|
+
WeatherParameters,
|
|
154
|
+
keyof WeatherParameters | undefined,
|
|
155
|
+
];
|
|
156
|
+
/** @ignore */ 'radarPlus-open-layer': [RadarPlusLayer, boolean | undefined]; // Layer to open, whether to open layer for color editing
|
|
127
157
|
/** @ignore */ detailClose: [];
|
|
128
158
|
/** @ignore */ detailRendered: []; // used only in embed2
|
|
129
159
|
/** @ignore */ reloadFavs: [];
|
|
@@ -133,7 +163,6 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
133
163
|
/** @ignore */ screenshotReady: [];
|
|
134
164
|
/** @ignore */ screenshotError: [Error];
|
|
135
165
|
/** @ignore */ onResume: [];
|
|
136
|
-
/** @ignore */ cloudSync: ['error', { data: Fav | string; action: string; type: 'fav' }];
|
|
137
166
|
/** @ignore */ back2home: [];
|
|
138
167
|
/** @ignore */ reloadMobileApp: [];
|
|
139
168
|
/** @ignore */ newLocation: [GeolocationInfo];
|
|
@@ -146,8 +175,6 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
146
175
|
/** @ignore */ openCapAlerts: [PluginsOpenParams['picker']];
|
|
147
176
|
/** @ignore */ openapp: [];
|
|
148
177
|
/** @ignore */ openSearch: [];
|
|
149
|
-
/** @ignore */ offlineNativeMessage: [ClientMessage];
|
|
150
|
-
/** @ignore */ offlineClientMessage: [ServiceWorkerMessage | { data: DownloadProgress }];
|
|
151
178
|
}
|
|
152
179
|
|
|
153
180
|
interface BcastTypes<T extends keyof Plugins> extends BcastTypesNonGeneric, BasicBcastTypes<T> {}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AcTimes,
|
|
3
2
|
GlobalPointProducts,
|
|
4
3
|
Isolines,
|
|
5
4
|
Levels,
|
|
@@ -26,17 +25,20 @@ import {
|
|
|
26
25
|
ShowableError,
|
|
27
26
|
SubTier,
|
|
28
27
|
Timestamp,
|
|
28
|
+
type Hours,
|
|
29
29
|
type RouteMotionSpeed,
|
|
30
|
+
type UsedMapLibrary,
|
|
31
|
+
type UserInterest,
|
|
30
32
|
} from '@windy/types.d';
|
|
31
33
|
|
|
32
|
-
import { ColorGradient } from '@windy/Color.d';
|
|
33
|
-
|
|
34
34
|
import { MetricItem } from '@windy/Metric.d';
|
|
35
35
|
|
|
36
|
+
import type { User, LoginAndFinishAction } from '@windy/user.d';
|
|
37
|
+
|
|
36
38
|
import type { SubscriptionInfo } from '@plugins/_shared/subscription-services/subscription-services.d';
|
|
37
|
-
import type { DownloadedInfo, OfflineConfiguration } from '@plugins/offline/offline.d';
|
|
38
39
|
import type RadarCalendar from '@plugins/radar/calendar/RadarCalendar';
|
|
39
40
|
import type SatelliteCalendar from '@plugins/satellite/calendar/SatelliteCalendar';
|
|
41
|
+
import type { NumberRange } from './alerts';
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
* Custom animation particles settings
|
|
@@ -54,6 +56,9 @@ export interface CustomParticles {
|
|
|
54
56
|
*/
|
|
55
57
|
export interface NotificationPreferences {
|
|
56
58
|
email?: string;
|
|
59
|
+
preferredNotificationTime?: NumberRange[];
|
|
60
|
+
frequencyDays?: number;
|
|
61
|
+
usedTimezoneName?: string;
|
|
57
62
|
sendToEmail: boolean;
|
|
58
63
|
sendToMobile: boolean;
|
|
59
64
|
}
|
|
@@ -77,21 +82,6 @@ export interface Donation {
|
|
|
77
82
|
sub: string;
|
|
78
83
|
}
|
|
79
84
|
|
|
80
|
-
export interface User {
|
|
81
|
-
avatar?: string;
|
|
82
|
-
email?: string;
|
|
83
|
-
fullname?: string;
|
|
84
|
-
id: number;
|
|
85
|
-
username: string;
|
|
86
|
-
userslug: string;
|
|
87
|
-
verifiedEmail?: string;
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Based on user location, cookie consent can be shown to the user if needed
|
|
91
|
-
*/
|
|
92
|
-
requiresCookieConsent?: boolean;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
85
|
export interface MapCoordinates extends LatLon {
|
|
96
86
|
source: 'maps' | 'globe';
|
|
97
87
|
zoom: number;
|
|
@@ -150,12 +140,6 @@ export interface DataSpecificationsObject<T> {
|
|
|
150
140
|
*/
|
|
151
141
|
update?: Timestamp;
|
|
152
142
|
|
|
153
|
-
/**
|
|
154
|
-
* Allow overwrite start-up URL
|
|
155
|
-
* TODO: Refactor. Used only once in router.ts
|
|
156
|
-
*/
|
|
157
|
-
allowUrlRewrite?: boolean;
|
|
158
|
-
|
|
159
143
|
/**
|
|
160
144
|
* Setter function (will be run before value is set)
|
|
161
145
|
*/
|
|
@@ -176,7 +160,6 @@ export interface DataSpecificationsObject<T> {
|
|
|
176
160
|
* `overlay`,
|
|
177
161
|
* `level`,
|
|
178
162
|
* `availLevels`,
|
|
179
|
-
* `acTime`,
|
|
180
163
|
* `timestamp`,
|
|
181
164
|
* `isolines`,
|
|
182
165
|
* `product`,
|
|
@@ -206,9 +189,9 @@ export interface DataSpecifications {
|
|
|
206
189
|
level: DataSpecificationsObject<Levels>;
|
|
207
190
|
|
|
208
191
|
/**
|
|
209
|
-
* Rain/snow
|
|
192
|
+
* Rain/snow/wind accumulations time range in hours
|
|
210
193
|
*/
|
|
211
|
-
|
|
194
|
+
acRange: DataSpecificationsObject<Hours>;
|
|
212
195
|
|
|
213
196
|
/**
|
|
214
197
|
* Timestamp of actual weather moment. Use freely and without hesitation. Must be valid timestamp in ms, that is
|
|
@@ -229,9 +212,14 @@ export interface DataSpecifications {
|
|
|
229
212
|
path: DataSpecificationsObject<Path>;
|
|
230
213
|
|
|
231
214
|
/**
|
|
232
|
-
*
|
|
215
|
+
* Which type of isolines to render
|
|
216
|
+
*/
|
|
217
|
+
isolinesType: DataSpecificationsObject<Isolines>;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Whether to render isolines
|
|
233
221
|
*/
|
|
234
|
-
|
|
222
|
+
isolinesOn: DataSpecificationsObject<boolean>;
|
|
235
223
|
|
|
236
224
|
/**
|
|
237
225
|
* Product is set of weather data, that have same resolution, boundaries, time range and so on.
|
|
@@ -250,18 +238,13 @@ export interface DataSpecifications {
|
|
|
250
238
|
*/
|
|
251
239
|
visibleProducts: DataSpecificationsObject<Products[]>;
|
|
252
240
|
|
|
253
|
-
/**
|
|
254
|
-
* Available accumulation times for give overlay and product combination
|
|
255
|
-
*/
|
|
256
|
-
availAcTimes: DataSpecificationsObject<AcTimes[]>;
|
|
257
|
-
|
|
258
241
|
/**
|
|
259
242
|
* Global fallback product that handles situation
|
|
260
243
|
* when user pans the map out of bounds of local
|
|
261
244
|
* model. Preferred model must have also second wave
|
|
262
245
|
* mode like 'ecmwf' 👉🏻 'ecmwfWaves'
|
|
263
246
|
*/
|
|
264
|
-
|
|
247
|
+
preferredProduct: DataSpecificationsObject<'ecmwf' | 'gfs' | 'icon' | 'iconEu'>;
|
|
265
248
|
|
|
266
249
|
/**
|
|
267
250
|
* If timeline animation is running
|
|
@@ -330,15 +313,22 @@ export interface DataSpecifications {
|
|
|
330
313
|
isImperial: DataSpecificationsObject<boolean>;
|
|
331
314
|
|
|
332
315
|
/**
|
|
333
|
-
* Type of map shown in detail
|
|
316
|
+
* Type of map tiles map shown in detail
|
|
334
317
|
*/
|
|
335
318
|
map: DataSpecificationsObject<'sznmap' | 'sat' | 'winter'>;
|
|
336
319
|
|
|
320
|
+
/**
|
|
321
|
+
* Which type of map library is used
|
|
322
|
+
*/
|
|
323
|
+
mapLibrary: DataSpecificationsObject<UsedMapLibrary>;
|
|
324
|
+
|
|
337
325
|
/**
|
|
338
326
|
* Show 7 days weather on startup
|
|
339
327
|
*/
|
|
340
328
|
showWeather: DataSpecificationsObject<boolean>;
|
|
341
329
|
|
|
330
|
+
stormSettingsLightning: DataSpecificationsObject<boolean>;
|
|
331
|
+
|
|
342
332
|
/**
|
|
343
333
|
* Is WebGL disabled?
|
|
344
334
|
*/
|
|
@@ -350,10 +340,15 @@ export interface DataSpecifications {
|
|
|
350
340
|
glParticlesOn: DataSpecificationsObject<boolean>;
|
|
351
341
|
|
|
352
342
|
/**
|
|
353
|
-
* Finally used language (the
|
|
343
|
+
* Finally used language (the one which is successfully loaded in trans module)
|
|
354
344
|
*/
|
|
355
345
|
usedLang: DataSpecificationsObject<SupportedLanguages>;
|
|
356
346
|
|
|
347
|
+
/**
|
|
348
|
+
* The difference in minutes between UTC and the local time on the device.
|
|
349
|
+
*/
|
|
350
|
+
lastTimezoneOffset: DataSpecificationsObject<number>;
|
|
351
|
+
|
|
357
352
|
/**
|
|
358
353
|
* Particles animation settings
|
|
359
354
|
*/
|
|
@@ -411,11 +406,6 @@ export interface DataSpecifications {
|
|
|
411
406
|
*/
|
|
412
407
|
startupReverseName: DataSpecificationsObject<ReverseResult | null>;
|
|
413
408
|
|
|
414
|
-
/**
|
|
415
|
-
* NOTAMs marked as read
|
|
416
|
-
*/
|
|
417
|
-
notams: DataSpecificationsObject<Record<string, number> | null>;
|
|
418
|
-
|
|
419
409
|
/**
|
|
420
410
|
* Users email
|
|
421
411
|
*/
|
|
@@ -431,6 +421,11 @@ export interface DataSpecifications {
|
|
|
431
421
|
*/
|
|
432
422
|
displayHeliports: DataSpecificationsObject<boolean>;
|
|
433
423
|
|
|
424
|
+
/**
|
|
425
|
+
* Display Airspaces map layer in the METARs POI layer
|
|
426
|
+
*/
|
|
427
|
+
displayAirspaces: DataSpecificationsObject<boolean>;
|
|
428
|
+
|
|
434
429
|
/**
|
|
435
430
|
* User statistics
|
|
436
431
|
* @ignore
|
|
@@ -449,17 +444,11 @@ export interface DataSpecifications {
|
|
|
449
444
|
*/
|
|
450
445
|
seenRadarInfo: DataSpecificationsObject<boolean>;
|
|
451
446
|
|
|
452
|
-
/**
|
|
453
|
-
* Wheather picker was dragged or not (not settings but info)
|
|
454
|
-
* @ignore
|
|
455
|
-
*/
|
|
456
|
-
wasDragged: DataSpecificationsObject<boolean>;
|
|
457
|
-
|
|
458
447
|
/**
|
|
459
448
|
* Detail's location - TODO: get rid of async name property
|
|
460
449
|
* @ignore
|
|
461
450
|
*/
|
|
462
|
-
detailLocation: DataSpecificationsObject<(LatLon & { name?: string }) | null>;
|
|
451
|
+
detailLocation: DataSpecificationsObject<(LatLon & { name?: string; id?: string }) | null>;
|
|
463
452
|
|
|
464
453
|
/**
|
|
465
454
|
* 1h step of forecast
|
|
@@ -471,6 +460,11 @@ export interface DataSpecifications {
|
|
|
471
460
|
*/
|
|
472
461
|
detailTimestamp: DataSpecificationsObject<Timestamp>;
|
|
473
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Detail keeps its 10+ days expanded forecast
|
|
465
|
+
*/
|
|
466
|
+
detailExtended: DataSpecificationsObject<boolean>;
|
|
467
|
+
|
|
474
468
|
/**
|
|
475
469
|
* display webcams on daylight
|
|
476
470
|
*/
|
|
@@ -490,31 +484,16 @@ export interface DataSpecifications {
|
|
|
490
484
|
*/
|
|
491
485
|
capDisplay: DataSpecificationsObject<'all' | 'today' | 'tomm' | 'later'>;
|
|
492
486
|
|
|
493
|
-
/**
|
|
494
|
-
* Range in hours
|
|
495
|
-
*/
|
|
496
|
-
radarRange: DataSpecificationsObject<'-12' | '-6' | '-1' | '0'>;
|
|
497
|
-
|
|
498
487
|
/**
|
|
499
488
|
* Timestamp in ms
|
|
500
489
|
*/
|
|
501
490
|
radarTimestamp: DataSpecificationsObject<Timestamp>;
|
|
502
491
|
|
|
503
|
-
/**
|
|
504
|
-
* Animation speed
|
|
505
|
-
*/
|
|
506
|
-
radarSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
|
|
507
|
-
|
|
508
492
|
/**
|
|
509
493
|
* Radar calendar
|
|
510
494
|
*/
|
|
511
495
|
radarCalendar: DataSpecificationsObject<RadarCalendar | null>;
|
|
512
496
|
|
|
513
|
-
/**
|
|
514
|
-
* Animation is running
|
|
515
|
-
*/
|
|
516
|
-
radarAnimation: DataSpecificationsObject<boolean>;
|
|
517
|
-
|
|
518
497
|
/**
|
|
519
498
|
* Visible lightning data on radar
|
|
520
499
|
*/
|
|
@@ -525,11 +504,6 @@ export interface DataSpecifications {
|
|
|
525
504
|
*/
|
|
526
505
|
blitzSoundOn: DataSpecificationsObject<boolean>;
|
|
527
506
|
|
|
528
|
-
/**
|
|
529
|
-
* Range of displayed satellite history
|
|
530
|
-
*/
|
|
531
|
-
satelliteRange: DataSpecificationsObject<'archive' | 'long' | 'medium' | 'short'>;
|
|
532
|
-
|
|
533
507
|
/**
|
|
534
508
|
* Timestamp in ms
|
|
535
509
|
*/
|
|
@@ -540,25 +514,10 @@ export interface DataSpecifications {
|
|
|
540
514
|
*/
|
|
541
515
|
satelliteCalendar: DataSpecificationsObject<SatelliteCalendar | null>;
|
|
542
516
|
|
|
543
|
-
/**
|
|
544
|
-
* Satellite animation is running
|
|
545
|
-
*/
|
|
546
|
-
satelliteAnimation: DataSpecificationsObject<boolean>;
|
|
547
|
-
|
|
548
|
-
/**
|
|
549
|
-
* Satellite visualization modes
|
|
550
|
-
*/
|
|
551
|
-
satelliteMode: DataSpecificationsObject<'BLUE' | 'VISIR' | 'IRBT' | 'DBG'>; // 'IR',
|
|
552
|
-
|
|
553
|
-
/**
|
|
554
|
-
* Animation speed
|
|
555
|
-
*/
|
|
556
|
-
satelliteSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
|
|
557
|
-
|
|
558
517
|
/**
|
|
559
518
|
* Interpolate images using vectors
|
|
560
519
|
*/
|
|
561
|
-
|
|
520
|
+
radSatFlowOn: DataSpecificationsObject<boolean>;
|
|
562
521
|
|
|
563
522
|
/**
|
|
564
523
|
* Extrapolate satellite images to future
|
|
@@ -586,10 +545,9 @@ export interface DataSpecifications {
|
|
|
586
545
|
archiveRange: DataSpecificationsObject<number>;
|
|
587
546
|
|
|
588
547
|
/**
|
|
589
|
-
* Information, if startup weather box
|
|
590
|
-
* is shown or not
|
|
548
|
+
* Information, if startup weather box is shown or not
|
|
591
549
|
*/
|
|
592
|
-
|
|
550
|
+
startupWeatherShown: DataSpecificationsObject<boolean>;
|
|
593
551
|
|
|
594
552
|
/**
|
|
595
553
|
* pois layer that user selected
|
|
@@ -688,14 +646,6 @@ export interface DataSpecifications {
|
|
|
688
646
|
*/
|
|
689
647
|
notifications: DataSpecificationsObject<NotificationPreferences | null>;
|
|
690
648
|
|
|
691
|
-
/**
|
|
692
|
-
* User likes to receive ad hoc pushNotification
|
|
693
|
-
* For instance METAR update.
|
|
694
|
-
* Once set, it always stays on on this device
|
|
695
|
-
* @ignore
|
|
696
|
-
*/
|
|
697
|
-
adHocNotification: DataSpecificationsObject<boolean>;
|
|
698
|
-
|
|
699
649
|
/**
|
|
700
650
|
* Number of unread notifications
|
|
701
651
|
* @ignore
|
|
@@ -730,11 +680,6 @@ export interface DataSpecifications {
|
|
|
730
680
|
*/
|
|
731
681
|
authHash: DataSpecificationsObject<string | null>;
|
|
732
682
|
|
|
733
|
-
/**
|
|
734
|
-
* Globe plugin is active (used for disabling isolines in overlays plugin)
|
|
735
|
-
*/
|
|
736
|
-
globeActive: DataSpecificationsObject<boolean>;
|
|
737
|
-
|
|
738
683
|
/**
|
|
739
684
|
* Webcam or station last location (used for globe picker initial location)
|
|
740
685
|
* @ignore
|
|
@@ -758,24 +703,12 @@ export interface DataSpecifications {
|
|
|
758
703
|
*/
|
|
759
704
|
launchedBy: DataSpecificationsObject<'radar-widget' | null>;
|
|
760
705
|
|
|
761
|
-
/**
|
|
762
|
-
* Any stored color
|
|
763
|
-
* @ignore
|
|
764
|
-
*/
|
|
765
|
-
[key: `color2_${string}`]: DataSpecificationsObject<ColorGradient | null>;
|
|
766
|
-
|
|
767
706
|
/**
|
|
768
707
|
* Any stored metric
|
|
769
708
|
* @ignore
|
|
770
709
|
*/
|
|
771
710
|
[key: `metric_${string}`]: DataSpecificationsObject<MetricItem | null>;
|
|
772
711
|
|
|
773
|
-
/**
|
|
774
|
-
* User is article publisher (dynamically created property in plugin article-publisher)
|
|
775
|
-
* @ignore
|
|
776
|
-
*/
|
|
777
|
-
userIsPublisher: DataSpecificationsObject<boolean>;
|
|
778
|
-
|
|
779
712
|
/** @ignore */
|
|
780
713
|
rplannerDir: DataSpecificationsObject<'horizontal' | 'vertical' | 'north'>;
|
|
781
714
|
|
|
@@ -843,35 +776,15 @@ export interface DataSpecifications {
|
|
|
843
776
|
*/
|
|
844
777
|
pickerMobileTimeout: DataSpecificationsObject<PickerMobileTimeout>;
|
|
845
778
|
|
|
846
|
-
/**
|
|
847
|
-
* Selected area and layers for offline mode
|
|
848
|
-
* @ignore
|
|
849
|
-
*/
|
|
850
|
-
offlineSetting: DataSpecificationsObject<OfflineConfiguration | null>;
|
|
851
|
-
|
|
852
779
|
/**
|
|
853
780
|
* Endable/dissable change of detail location, when map is dragged
|
|
854
781
|
*/
|
|
855
782
|
changeDetailOnMapDrag: DataSpecificationsObject<boolean>;
|
|
856
783
|
|
|
857
784
|
/**
|
|
858
|
-
*
|
|
859
|
-
* @ignore
|
|
860
|
-
*/
|
|
861
|
-
offlineMode: DataSpecificationsObject<boolean>;
|
|
862
|
-
|
|
863
|
-
/**
|
|
864
|
-
* Imfo about offline data residing in serviceWorker
|
|
865
|
-
* @ignore
|
|
866
|
-
*/
|
|
867
|
-
offlineDataInfo: DataSpecificationsObject<DownloadedInfo | null>;
|
|
868
|
-
|
|
869
|
-
/**
|
|
870
|
-
* Enables/disables offline mode at all. If false, offline mode is not available
|
|
871
|
-
* and serviceWorker is not installed at all
|
|
872
|
-
* @ignore
|
|
785
|
+
* Timestamp in ms
|
|
873
786
|
*/
|
|
874
|
-
|
|
787
|
+
radsatTimestamp: DataSpecificationsObject<Timestamp>;
|
|
875
788
|
|
|
876
789
|
/**
|
|
877
790
|
* Display this type of WX stations on POI map
|
|
@@ -895,11 +808,17 @@ export interface DataSpecifications {
|
|
|
895
808
|
stationCompareHiddenProducts: DataSpecificationsObject<PointProducts[]>;
|
|
896
809
|
|
|
897
810
|
/**
|
|
898
|
-
* Main
|
|
811
|
+
* Main GDPR, privacy or cookie consent object
|
|
899
812
|
* @ignore
|
|
900
813
|
*/
|
|
901
814
|
consent: DataSpecificationsObject<Consent | null>;
|
|
902
815
|
|
|
816
|
+
/**
|
|
817
|
+
* Is analytics consent required
|
|
818
|
+
* @ignore
|
|
819
|
+
*/
|
|
820
|
+
analyticsConsentRequired: DataSpecificationsObject<boolean | null>;
|
|
821
|
+
|
|
903
822
|
/**
|
|
904
823
|
* Youtube cookie consent object
|
|
905
824
|
* @ignore
|
|
@@ -922,6 +841,44 @@ export interface DataSpecifications {
|
|
|
922
841
|
* @ignore
|
|
923
842
|
*/
|
|
924
843
|
installedPlugins: DataSpecificationsObject<InstalledExternalPluginConfig[]>;
|
|
844
|
+
|
|
845
|
+
/*
|
|
846
|
+
* User has entered into arrange mode in RH menu
|
|
847
|
+
*/
|
|
848
|
+
rhMenuArrangeMode: DataSpecificationsObject<boolean>;
|
|
849
|
+
|
|
850
|
+
/*
|
|
851
|
+
* If startup widgets should persist
|
|
852
|
+
*/
|
|
853
|
+
persistentWidgets: DataSpecificationsObject<boolean>;
|
|
854
|
+
|
|
855
|
+
/**
|
|
856
|
+
* List of interests user has, based on onboarding picker
|
|
857
|
+
*/
|
|
858
|
+
userInterests: DataSpecificationsObject<UserInterest[]>;
|
|
859
|
+
|
|
860
|
+
onboardingFinished: DataSpecificationsObject<boolean>;
|
|
861
|
+
|
|
862
|
+
locationPermissionsGranted: DataSpecificationsObject<boolean>;
|
|
863
|
+
|
|
864
|
+
doNotShowLocationPermissionsPopup: DataSpecificationsObject<boolean>;
|
|
865
|
+
|
|
866
|
+
locationPermissionsPopupShown: DataSpecificationsObject<number | null>;
|
|
867
|
+
|
|
868
|
+
loginAndFinishAction: DataSpecificationsObject<
|
|
869
|
+
(LoginAndFinishAction & { updated: Timestamp }) | null
|
|
870
|
+
>;
|
|
871
|
+
|
|
872
|
+
/**
|
|
873
|
+
* If user wants to display just some type of favs in favs plugin
|
|
874
|
+
*/
|
|
875
|
+
favsFilter: DataSpecificationsObject<FavTypeNew[]>;
|
|
876
|
+
|
|
877
|
+
/**
|
|
878
|
+
* Contains information, that registration hash for pushNotifications has been
|
|
879
|
+
* successfully sent to the backend
|
|
880
|
+
*/
|
|
881
|
+
pushNotificationsReady: DataSpecificationsObject<boolean>;
|
|
925
882
|
}
|
|
926
883
|
|
|
927
884
|
/**
|