@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,69 @@
|
|
|
1
|
+
import type { RouteType, StationId, Timestamp } from '@windy/types';
|
|
2
|
+
import type { LatLon, Alert, AlertProps } from '@windy/interfaces';
|
|
3
|
+
|
|
4
|
+
export type FavId = string;
|
|
5
|
+
|
|
6
|
+
/** New fav type not including alerts */
|
|
7
|
+
export type FavTypeNew = 'fav' | 'airport' | 'station' | 'webcam' | 'route';
|
|
8
|
+
|
|
9
|
+
/** @deprecated Old fav type including alert that will be abandoned soon */
|
|
10
|
+
export type FavType = FavTypeNew | 'alert';
|
|
11
|
+
|
|
12
|
+
export type RouteAsString = `${RouteType}/${string}`;
|
|
13
|
+
|
|
14
|
+
export type FavFragment =
|
|
15
|
+
| (LatLon & {
|
|
16
|
+
/** Title of the fav */
|
|
17
|
+
title: string;
|
|
18
|
+
}) &
|
|
19
|
+
(
|
|
20
|
+
| { type: 'fav' }
|
|
21
|
+
|
|
22
|
+
/** @deprecated use till migration of alerts is in process */
|
|
23
|
+
| {
|
|
24
|
+
type: 'alert';
|
|
25
|
+
alert: Alert;
|
|
26
|
+
alertProps: AlertProps;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Airport ICAO code in case of airport */
|
|
30
|
+
| { type: 'airport'; icao: string }
|
|
31
|
+
|
|
32
|
+
/** Weather station ID (if WX station) */
|
|
33
|
+
| { type: 'station'; stationId: StationId }
|
|
34
|
+
| { type: 'webcam'; webcamId: number }
|
|
35
|
+
| { type: 'route'; route: RouteAsString }
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export type Fav = FavFragment & {
|
|
39
|
+
/** Unique mongoDb ID of item */
|
|
40
|
+
id: FavId;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* If user wants to pin to top this fav, this timestamp enable us to sort all the favs
|
|
44
|
+
* so the last pinned is on top
|
|
45
|
+
*/
|
|
46
|
+
pin2top?: Timestamp | null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* If user wants to pin to homepage this fav, this timestamp enable us to sort all the favs
|
|
50
|
+
* so the last pinned is first in line
|
|
51
|
+
*/
|
|
52
|
+
pin2homepage?: Timestamp | null;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Timestamp when the item has been updated for the last time. It is used for updating items on all devices (the most up-to-date wins)
|
|
56
|
+
*/
|
|
57
|
+
updated: Timestamp;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export type ObsoleteFav = FavFragment & {
|
|
61
|
+
key: string;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export type FavQuery =
|
|
65
|
+
| { webcamsId: number }
|
|
66
|
+
| { stationId: StationId }
|
|
67
|
+
| { icao: string }
|
|
68
|
+
| { type: FavType }
|
|
69
|
+
| { title: string };
|
|
@@ -53,10 +53,6 @@ export interface QueryStringEmbedParams {
|
|
|
53
53
|
product?: Products;
|
|
54
54
|
showDetail: boolean;
|
|
55
55
|
showMarker: boolean;
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated Only used for query string of type=alert
|
|
58
|
-
*/
|
|
59
|
-
timestamps?: string;
|
|
60
56
|
type: 'map' | 'alert' | 'forecast';
|
|
61
57
|
zoom: number;
|
|
62
58
|
}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { FavEventTypes } from '@plugins/favs/favs.d';
|
|
4
|
-
import { ProviderConstructorParams } from '@plugins/_shared/subscription-services/subscription-services.d';
|
|
1
|
+
import { Fav, FavId } from '@windy/favs.d';
|
|
2
|
+
import { StartupArticleData, WhatsNewData } from '@windy/startup.d';
|
|
5
3
|
import { HiddenReasonType, ReasonTypes } from '@plugins/subscription/subscription';
|
|
6
4
|
import { FullRenderParameters } from '@windy/Layer.d';
|
|
7
|
-
import { WebcamCategoryType } from '@windy/Webcams.d';
|
|
8
5
|
import { HttpPayload } from '@windy/http.d';
|
|
9
6
|
import {
|
|
10
7
|
CapAlertHeadline,
|
|
@@ -12,8 +9,6 @@ import {
|
|
|
12
9
|
HomeLocation,
|
|
13
10
|
LatLon,
|
|
14
11
|
PickerCoords,
|
|
15
|
-
SavedAlertFav,
|
|
16
|
-
SavedFav,
|
|
17
12
|
SummaryDataHash,
|
|
18
13
|
WeatherDataPayload,
|
|
19
14
|
} from '@windy/interfaces.d';
|
|
@@ -23,8 +18,10 @@ import {
|
|
|
23
18
|
DetailDisplayType,
|
|
24
19
|
RouteType,
|
|
25
20
|
StationOrPoiType,
|
|
26
|
-
|
|
21
|
+
ExternalPluginIdent,
|
|
22
|
+
type Timestamp,
|
|
27
23
|
} from '@windy/types.d';
|
|
24
|
+
import { WebcamCategoryType } from '@windy/webcams';
|
|
28
25
|
|
|
29
26
|
/**
|
|
30
27
|
* Type of source event, that led to opening any plugin
|
|
@@ -33,12 +30,12 @@ export type PluginOpenEventSource =
|
|
|
33
30
|
| 'contextmenu'
|
|
34
31
|
| 'hp'
|
|
35
32
|
| 'url'
|
|
36
|
-
| 'sigleclick'
|
|
37
33
|
| 'poi-icon'
|
|
38
34
|
| 'search'
|
|
39
35
|
| 'detail'
|
|
40
36
|
| 'singleclick'
|
|
41
37
|
| 'favs-page'
|
|
38
|
+
| 'favs-on-hp'
|
|
42
39
|
| 'picker'
|
|
43
40
|
| 'meta'
|
|
44
41
|
| 'fallback'
|
|
@@ -48,6 +45,7 @@ export type PluginOpenEventSource =
|
|
|
48
45
|
| 'api'
|
|
49
46
|
| 'last'
|
|
50
47
|
| 'back-button'
|
|
48
|
+
| 'other'
|
|
51
49
|
| 'label';
|
|
52
50
|
|
|
53
51
|
export interface PluginSource {
|
|
@@ -55,7 +53,7 @@ export interface PluginSource {
|
|
|
55
53
|
poiType?: StationOrPoiType | Pois | 'stations';
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
interface DetailOpenParams extends PluginSource, LatLon {
|
|
56
|
+
export interface DetailOpenParams extends PluginSource, LatLon {
|
|
59
57
|
/**
|
|
60
58
|
* How to display detail
|
|
61
59
|
*/
|
|
@@ -82,16 +80,15 @@ interface DetailOpenParams extends PluginSource, LatLon {
|
|
|
82
80
|
sourceEl?: HTMLElement;
|
|
83
81
|
|
|
84
82
|
/**
|
|
85
|
-
* Detail was opened by clicking on Alert
|
|
83
|
+
* Detail was opened by clicking on Alert notification so detail table should be scrolled to
|
|
86
84
|
* particular timestamp
|
|
87
85
|
*/
|
|
88
86
|
moveToTimestamp?: boolean;
|
|
89
87
|
|
|
90
88
|
/**
|
|
91
|
-
* Array of
|
|
92
|
-
* where numbers are timestamps / tsHour
|
|
89
|
+
* Array of timestamp, when Alert was triggered
|
|
93
90
|
*/
|
|
94
|
-
|
|
91
|
+
timestamps?: Timestamp[] | null;
|
|
95
92
|
}
|
|
96
93
|
|
|
97
94
|
type WebcamDetailOpenParams =
|
|
@@ -101,8 +98,9 @@ type WebcamDetailOpenParams =
|
|
|
101
98
|
| undefined;
|
|
102
99
|
|
|
103
100
|
type RplannerDistanceParams =
|
|
101
|
+
| { view: RouteType; coords: string; id: FavId; isFav: true } // Opening from favourites
|
|
104
102
|
| { view?: RouteType; coords: string; id?: string } // Opening from URL
|
|
105
|
-
|
|
|
103
|
+
| Fav
|
|
106
104
|
// | RplannerOpeningAsFavs // Clicking on route stored as fav
|
|
107
105
|
| LatLon[] // User puts two airports is search bar
|
|
108
106
|
| (LatLon & {
|
|
@@ -124,27 +122,16 @@ export type PluginsOpenParams = {
|
|
|
124
122
|
detail: DetailOpenParams;
|
|
125
123
|
picker: PickerOpenParams;
|
|
126
124
|
'picker-mobile': PickerOpenParams;
|
|
127
|
-
favs:
|
|
128
|
-
|
|
129
|
-
msg?: FavEventTypes;
|
|
130
|
-
})
|
|
131
|
-
| undefined;
|
|
132
|
-
|
|
133
|
-
station: PluginSource & { id?: string; stationId?: string };
|
|
125
|
+
favs: PluginSource & { importObsoleteFavs?: boolean };
|
|
126
|
+
station: PluginSource & { id: string };
|
|
134
127
|
multimodel: LatLon & PluginSource & { name?: string | null };
|
|
135
128
|
webcams: (PluginSource & { category: WebcamCategoryType }) | undefined;
|
|
136
129
|
'webcams-detail': PluginSource & WebcamDetailOpenParams;
|
|
137
130
|
'webcams-edit': PluginSource & WebcamDetailOpenParams;
|
|
138
|
-
'webcams-embed':
|
|
139
|
-
| PluginSource & {
|
|
140
|
-
id: string | number;
|
|
141
|
-
forcedPois?: boolean;
|
|
142
|
-
};
|
|
143
131
|
'webcams-remove': PluginSource & WebcamDetailOpenParams;
|
|
144
132
|
//settings: (PluginSource & { id: string }) | undefined;
|
|
145
|
-
settings:
|
|
146
|
-
articles: (PluginSource & { id: number
|
|
147
|
-
'article-publisher': (PluginSource & { pane?: '' | 'list' | 'detail' }) | null;
|
|
133
|
+
settings: PluginSource | undefined;
|
|
134
|
+
articles: (PluginSource & { id: number | string }) | undefined;
|
|
148
135
|
upload: PluginSource & { id: string };
|
|
149
136
|
uploader: PluginSource & { id?: string };
|
|
150
137
|
'cap-alert': PluginSource &
|
|
@@ -157,32 +144,27 @@ export type PluginsOpenParams = {
|
|
|
157
144
|
contextmenu: PluginSource & LatLon & { containerPoint?: L.Point };
|
|
158
145
|
subscription:
|
|
159
146
|
| (PluginSource & {
|
|
160
|
-
fscNext?: string;
|
|
161
147
|
promote?: ReasonTypes | HiddenReasonType;
|
|
162
148
|
pendingError?: Error & { responseText: string };
|
|
163
149
|
})
|
|
164
150
|
| undefined;
|
|
165
|
-
alerts:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
151
|
+
'alerts-edit': PluginSource &
|
|
152
|
+
(
|
|
153
|
+
| { action: 'edit'; id: string }
|
|
154
|
+
| { action: 'migration'; favId: string }
|
|
155
|
+
| {
|
|
156
|
+
action: 'new';
|
|
157
|
+
lat: number;
|
|
158
|
+
lon: number;
|
|
159
|
+
locationName?: string;
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
alerts: PluginSource & {
|
|
163
|
+
message?: string;
|
|
164
|
+
};
|
|
175
165
|
distance: PluginSource & RplannerDistanceParams;
|
|
176
166
|
rplanner: PluginSource & RplannerDistanceParams;
|
|
177
|
-
airport: PluginSource & {
|
|
178
|
-
// Airport plugin can receive ICAO code as id || icao property
|
|
179
|
-
icao?: string;
|
|
180
|
-
id?: string;
|
|
181
|
-
};
|
|
182
|
-
'save-password': PluginSource & {
|
|
183
|
-
username: string;
|
|
184
|
-
password: string;
|
|
185
|
-
};
|
|
167
|
+
airport: PluginSource & { id: string };
|
|
186
168
|
share: undefined;
|
|
187
169
|
'nearest-stations': PluginSource & LatLon & { compactVersion?: boolean; includeAirq?: boolean };
|
|
188
170
|
'nearest-airq': PluginSource & LatLon;
|
|
@@ -191,13 +173,12 @@ export type PluginsOpenParams = {
|
|
|
191
173
|
'external-plugins':
|
|
192
174
|
| (PluginSource & { id?: string; qs?: PluginsQsParams['external-plugins'] })
|
|
193
175
|
| undefined;
|
|
194
|
-
browser: PluginSource & {
|
|
195
|
-
options: OpenOptions;
|
|
196
|
-
onFinished?: () => void;
|
|
197
|
-
};
|
|
198
176
|
sounding: PluginSource & LatLon & { name?: string };
|
|
199
177
|
radiosonde: PluginSource & { id: string; lat?: number; lon?: number };
|
|
200
|
-
|
|
178
|
+
startup: PluginSource;
|
|
179
|
+
'startup-whats-new': PluginSource & { data: WhatsNewData };
|
|
180
|
+
'startup-articles': PluginSource & { data: StartupArticleData[] };
|
|
181
|
+
'startup-weather': PluginSource & {
|
|
201
182
|
coords: HomeLocation | GeolocationInfo;
|
|
202
183
|
promises: {
|
|
203
184
|
wx: Promise<HttpPayload<WeatherDataPayload<SummaryDataHash>>>;
|
|
@@ -218,10 +199,16 @@ export type PluginsOpenParams = {
|
|
|
218
199
|
showSystemDialog?: boolean;
|
|
219
200
|
})
|
|
220
201
|
| undefined;
|
|
221
|
-
|
|
202
|
+
'location-permission':
|
|
203
|
+
| (PluginSource & {
|
|
204
|
+
resolve?: (value: boolean | PromiseLike<boolean>) => void;
|
|
205
|
+
})
|
|
206
|
+
| undefined;
|
|
222
207
|
'developer-mode': (PluginSource & { qs: Record<string, string> | undefined }) | undefined;
|
|
223
208
|
'windy-external-plugin': PluginSource & LatLon;
|
|
224
|
-
menu: PluginSource;
|
|
209
|
+
menu: PluginSource & { scrollTo?: 'pois' };
|
|
210
|
+
onboarding: (PluginSource & { getUserInterests?: boolean }) | undefined;
|
|
211
|
+
'heatmaps-redirect': PluginSource & { id?: string };
|
|
225
212
|
} & {
|
|
226
213
|
[external: ExternalPluginIdent]:
|
|
227
214
|
| (PluginSource & { query: Record<string, string> | undefined })
|
|
@@ -230,7 +217,6 @@ export type PluginsOpenParams = {
|
|
|
230
217
|
} & { [others: string]: undefined };
|
|
231
218
|
|
|
232
219
|
export type PluginsQsParams = {
|
|
233
|
-
subscription: ProviderConstructorParams | undefined;
|
|
234
220
|
'external-plugins': Record<string, string> | undefined;
|
|
235
221
|
'developer-mode': Record<string, string> | undefined;
|
|
236
222
|
detail: { hrTimestamps?: string; name?: string; moveToTimestamp?: string };
|
|
@@ -1,52 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BottomSveltePlugin } from '@windy/BottomSveltePlugins';
|
|
2
2
|
import { Plugin } from '@windy/Plugin';
|
|
3
3
|
import { SveltePanePlugin } from '@windy/SveltePanePlugin';
|
|
4
4
|
import { SveltePlugin } from '@windy/SveltePlugin';
|
|
5
5
|
import { TagPlugin } from '@windy/TagPlugin';
|
|
6
6
|
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
satellite: BottomTagPlugin<'satellite'>;
|
|
11
|
-
'cap-alerts': BottomTagPlugin<'cap-alerts'>;
|
|
12
|
-
'day-switcher': BottomTagPlugin<'day-switcher'>;
|
|
7
|
+
export interface BottomSveltePlugins {
|
|
8
|
+
'mobile-calendar'?: BottomSveltePlugin<'mobile-calendar'>;
|
|
9
|
+
'progress-bar'?: BottomSveltePlugin<'progress-bar'>;
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
'
|
|
16
|
-
|
|
17
|
-
// embed or desktop only
|
|
18
|
-
'progress-bar'?: BottomTagPlugin<'progress-bar'>;
|
|
11
|
+
'day-switcher': BottomSveltePlugin<'day-switcher'>;
|
|
12
|
+
'cap-alerts': BottomSveltePlugin<'cap-alerts'>;
|
|
13
|
+
accumulations: BottomSveltePlugin<'accumulations'>;
|
|
19
14
|
}
|
|
20
15
|
|
|
21
16
|
export interface SveltePanePlugins {
|
|
22
17
|
favs: SveltePanePlugin<'favs'>;
|
|
18
|
+
'alerts-edit': SveltePanePlugin<'alerts-edit'>;
|
|
23
19
|
alerts: SveltePanePlugin<'alerts'>;
|
|
24
20
|
colors: SveltePanePlugin<'colors'>;
|
|
25
21
|
articles: SveltePanePlugin<'articles'>;
|
|
26
|
-
|
|
27
22
|
debug: SveltePanePlugin<'debug'>;
|
|
28
23
|
hurricanes: SveltePanePlugin<'hurricanes'>;
|
|
29
24
|
'cap-alert': SveltePanePlugin<'cap-alert'>;
|
|
30
|
-
login: SveltePanePlugin<'login'>;
|
|
31
25
|
'delete-info': SveltePanePlugin<'delete-info'>;
|
|
32
26
|
settings: SveltePanePlugin<'settings'>;
|
|
33
27
|
sounding: SveltePanePlugin<'sounding'>;
|
|
34
28
|
radiosonde: SveltePanePlugin<'radiosonde'>;
|
|
35
29
|
airport: SveltePanePlugin<'airport'>;
|
|
36
30
|
info: SveltePanePlugin<'info'>;
|
|
37
|
-
|
|
38
31
|
webcams: SveltePanePlugin<'webcams'>;
|
|
39
32
|
'webcams-detail': SveltePanePlugin<'webcams-detail'>;
|
|
40
33
|
'webcams-add': SveltePanePlugin<'webcams-add'>;
|
|
41
34
|
'webcams-edit': SveltePanePlugin<'webcams-edit'>;
|
|
42
35
|
'webcams-remove': SveltePanePlugin<'webcams-remove'>;
|
|
43
|
-
'webcams-embed': SveltePanePlugin<'webcams-embed'>;
|
|
44
36
|
|
|
45
37
|
uploader?: SveltePanePlugin<'uploader'>;
|
|
46
38
|
'external-plugins'?: SveltePanePlugin<'external-plugins'>;
|
|
47
39
|
}
|
|
48
40
|
|
|
49
41
|
export interface SveltePlugins {
|
|
42
|
+
login: SveltePlugin<'login'>;
|
|
50
43
|
'nearest-webcams': SveltePlugin<'nearest-webcams'>;
|
|
51
44
|
'nearest-webcams-mobile': SveltePlugin<'nearest-webcams-mobile'>;
|
|
52
45
|
'nearest-airq': SveltePlugin<'nearest-airq'>;
|
|
@@ -55,25 +48,43 @@ export interface SveltePlugins {
|
|
|
55
48
|
multimodel: SveltePlugin<'multimodel'>;
|
|
56
49
|
subscription: SveltePlugin<'subscription'>;
|
|
57
50
|
'pending-subscription': SveltePlugin<'pending-subscription'>;
|
|
58
|
-
'whats-new': SveltePlugin<'whats-new'>;
|
|
59
|
-
offline: SveltePlugin<'offline'>;
|
|
60
51
|
detail: SveltePlugin<'detail'>;
|
|
61
52
|
station: SveltePlugin<'station'>;
|
|
62
53
|
consent: SveltePlugin<'consent'>;
|
|
63
54
|
rplanner: SveltePlugin<'rplanner'>;
|
|
64
55
|
menu: SveltePlugin<'menu'>;
|
|
56
|
+
'fav-alert-menu': SveltePlugin<'fav-alert-menu'>;
|
|
57
|
+
radar: SveltePlugin<'radar'>;
|
|
58
|
+
satellite: SveltePlugin<'satellite'>;
|
|
59
|
+
'radar-plus': SveltePlugin<'radar-plus'>;
|
|
60
|
+
'map-selector': SveltePlugin<'map-selector'>;
|
|
65
61
|
|
|
66
62
|
// Mobile/desktop only plugins
|
|
67
63
|
distance?: SveltePlugin<'distance'>;
|
|
68
|
-
'article-publisher'?: SveltePlugin<'article-publisher'>;
|
|
69
|
-
'beta-test'?: SveltePlugin<'beta-test'>;
|
|
70
64
|
'watch-faces'?: SveltePlugin<'watch-faces'>;
|
|
71
65
|
'app-review-dialog'?: SveltePlugin<'app-review-dialog'>;
|
|
66
|
+
widgets?: SveltePlugin<'widgets'>;
|
|
72
67
|
'fav-layers'?: SveltePlugin<'fav-layers'>;
|
|
68
|
+
onboarding?: SveltePlugin<'onboarding'>;
|
|
73
69
|
'developer-mode'?: SveltePlugin<'developer-mode'>;
|
|
70
|
+
'pin-to-homepage'?: SveltePlugin<'pin-to-homepage'>;
|
|
71
|
+
'startup-whats-new'?: SveltePlugin<'startup-whats-new'>;
|
|
72
|
+
'rhpane-top': SveltePlugin<'rhpane-top'>;
|
|
73
|
+
rhbottom?: SveltePlugin<'rhbottom'>;
|
|
74
|
+
'location-permission'?: SveltePlugin<'location-permission'>;
|
|
75
|
+
|
|
76
|
+
'startup-weather'?: SveltePlugin<'startup-weather'>;
|
|
77
|
+
'mobile-ui'?: SveltePlugin<'mobile-ui'>;
|
|
78
|
+
'embed-ui'?: SveltePlugin<'embed-ui'>;
|
|
79
|
+
contextmenu?: SveltePlugin<'contextmenu'>;
|
|
80
|
+
upload: SveltePlugin<'upload'>;
|
|
81
|
+
screenshot: SveltePlugin<'screenshot'>;
|
|
82
|
+
search: SveltePlugin<'search'>;
|
|
83
|
+
'startup-articles'?: SveltePlugin<'startup-articles'>;
|
|
84
|
+
'picker-mobile'?: SveltePlugin<'picker-mobile'>; // to Svelte plugin
|
|
74
85
|
|
|
75
86
|
// Used as fake plugin for any other external plugin
|
|
76
|
-
// basically we are
|
|
87
|
+
// basically we are unable to type each individual external plugin
|
|
77
88
|
'windy-external-plugin'?: SveltePlugin<'windy-external-plugin'>;
|
|
78
89
|
}
|
|
79
90
|
|
|
@@ -81,41 +92,15 @@ export interface PlainPlugins {
|
|
|
81
92
|
'gl-particles': Plugin<'gl-particles'>;
|
|
82
93
|
'legacy-tile-render': Plugin<'legacy-tile-render'>;
|
|
83
94
|
particles: Plugin<'particles'>;
|
|
95
|
+
isolines: Plugin<'isolines'>;
|
|
84
96
|
}
|
|
85
97
|
|
|
86
98
|
export interface TagPlugins {
|
|
87
|
-
|
|
88
|
-
* Libraries with possible CSS, that remains opened
|
|
89
|
-
*/
|
|
90
|
-
'rhpane-top': TagPlugin<'rhpane-top'>;
|
|
91
|
-
rhbottom: TagPlugin<'rhbottom'>;
|
|
92
|
-
patch: TagPlugin<'patch'>;
|
|
99
|
+
// These plugins have css only (no html)
|
|
93
100
|
'poi-libs': TagPlugin<'poi-libs'>;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Tag Plugins
|
|
97
|
-
*/
|
|
98
|
-
'fav-alert-menu': TagPlugin<'fav-alert-menu'>;
|
|
99
|
-
upload: TagPlugin<'upload'>;
|
|
100
|
-
screenshot: TagPlugin<'screenshot'>;
|
|
101
|
-
isolines: TagPlugin<'isolines'>;
|
|
102
|
-
search: TagPlugin<'search'>;
|
|
103
|
-
|
|
104
|
-
// not embed plugins
|
|
105
|
-
'hp-weather'?: TagPlugin<'hp-weather'>;
|
|
106
|
-
|
|
107
|
-
// desktop only plugins
|
|
108
|
-
contextmenu?: TagPlugin<'contextmenu'>;
|
|
109
101
|
picker?: TagPlugin<'picker'>;
|
|
110
102
|
globe?: TagPlugin<'globe'>;
|
|
111
|
-
|
|
112
|
-
// mobile only plugins
|
|
113
|
-
'picker-mobile'?: TagPlugin<'picker-mobile'>;
|
|
114
|
-
'promo-mobile-intro'?: TagPlugin<'promo-mobile-intro'>;
|
|
115
|
-
profile?: TagPlugin<'profile'>;
|
|
116
|
-
'save-password'?: TagPlugin<'save-password'>;
|
|
117
|
-
browser?: TagPlugin<'browser'>;
|
|
118
|
-
'map-selector'?: TagPlugin<'map-selector'>;
|
|
103
|
+
'heatmaps-redirect': TagPlugin<'heatmaps-redirect'>;
|
|
119
104
|
}
|
|
120
105
|
|
|
121
106
|
export interface Plugins
|
|
@@ -123,10 +108,10 @@ export interface Plugins
|
|
|
123
108
|
SveltePlugins,
|
|
124
109
|
SveltePanePlugins,
|
|
125
110
|
PlainPlugins,
|
|
126
|
-
|
|
111
|
+
BottomSveltePlugins {}
|
|
127
112
|
|
|
128
113
|
export interface WindowPlugins
|
|
129
114
|
extends TagPlugins,
|
|
130
115
|
SveltePlugins,
|
|
131
116
|
SveltePanePlugins,
|
|
132
|
-
|
|
117
|
+
BottomSveltePlugins {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DataSpecifications } from '@windy/dataSpecifications.d';
|
|
2
2
|
import type { Pois } from '@windy/rootScope.d';
|
|
3
|
-
import type { LoadedTranslations } from '@windy/
|
|
3
|
+
import type { LoadedTranslations } from '@windy/types';
|
|
4
4
|
|
|
5
5
|
export type PoisCheckboxeDef = {
|
|
6
6
|
checkboxTranslation?: keyof LoadedTranslations;
|
|
@@ -1,30 +1,43 @@
|
|
|
1
|
+
import { AccessProduct, AccessCProduct } from '@windy/AccessProducts';
|
|
1
2
|
import { AromeProduct } from '@windy/AromeProduct';
|
|
2
3
|
import { EcmwfAnalysisProduct } from '@windy/EcmwfAnalysisProduct';
|
|
3
4
|
import { EcmwfProduct } from '@windy/EcmwfProduct';
|
|
4
5
|
import { Product } from '@windy/Product';
|
|
6
|
+
import { RadarPlusProduct } from '@windy/RadarPlusProduct';
|
|
5
7
|
import { SatelliteProduct } from '@windy/SatelliteProduct';
|
|
8
|
+
|
|
6
9
|
import { Products } from '@windy/rootScope.d';
|
|
7
10
|
|
|
8
11
|
export type products = Implements<
|
|
9
12
|
{ [P in Products]: Product },
|
|
10
13
|
{
|
|
11
|
-
bomAccess:
|
|
14
|
+
bomAccess: AccessProduct;
|
|
15
|
+
bomAccessAd: AccessCProduct;
|
|
16
|
+
bomAccessBn: AccessCProduct;
|
|
17
|
+
bomAccessDn: AccessCProduct;
|
|
18
|
+
bomAccessNq: AccessCProduct;
|
|
19
|
+
bomAccessPh: AccessCProduct;
|
|
20
|
+
bomAccessSy: AccessCProduct;
|
|
21
|
+
bomAccessVt: AccessCProduct;
|
|
12
22
|
mblue: Product;
|
|
13
23
|
ecmwf: EcmwfProduct;
|
|
14
24
|
ecmwfWaves: Product;
|
|
15
25
|
ecmwfAnalysis: EcmwfAnalysisProduct;
|
|
26
|
+
canHrdps: Product;
|
|
27
|
+
canRdwpsWaves: Product;
|
|
16
28
|
cams: Product;
|
|
17
29
|
camsEu: Product;
|
|
18
30
|
cmems: Product;
|
|
31
|
+
czeAladin: Product;
|
|
19
32
|
gfs: Product;
|
|
20
33
|
gfsWaves: Product;
|
|
21
34
|
icon: Product;
|
|
22
35
|
iconD2: Product;
|
|
23
36
|
iconEu: Product;
|
|
24
37
|
iconEuWaves: Product;
|
|
25
|
-
iconWaves: Product;
|
|
26
38
|
arome: Product;
|
|
27
39
|
aromeAntilles: AromeProduct;
|
|
40
|
+
aromeFrance: AromeProduct;
|
|
28
41
|
aromeReunion: AromeProduct;
|
|
29
42
|
nems: Product;
|
|
30
43
|
namAlaska: Product;
|
|
@@ -34,11 +47,15 @@ export type products = Implements<
|
|
|
34
47
|
efi: Product;
|
|
35
48
|
radar: Product;
|
|
36
49
|
satellite: SatelliteProduct;
|
|
50
|
+
radarPlus: RadarPlusProduct;
|
|
37
51
|
hrrrAlaska: Product;
|
|
38
52
|
hrrrConus: Product;
|
|
39
53
|
ukv: Product;
|
|
40
54
|
drought: Product;
|
|
41
55
|
fireDanger: Product;
|
|
42
56
|
activeFires: Product;
|
|
57
|
+
jmaMsm: Product;
|
|
58
|
+
jmaCwmWaves: Product;
|
|
59
|
+
topoMap: Product;
|
|
43
60
|
}
|
|
44
61
|
>;
|
|
@@ -2,8 +2,6 @@ export type Levels = typeof import('./rootScope').levels[number];
|
|
|
2
2
|
|
|
3
3
|
export type Overlays = typeof import('./rootScope').overlays[number];
|
|
4
4
|
|
|
5
|
-
export type AcTimes = typeof import('./rootScope').acTimes[number];
|
|
6
|
-
|
|
7
5
|
export type LocalProducts = typeof import('./rootScope').localProducts[number];
|
|
8
6
|
|
|
9
7
|
export type GlobalProducts = typeof import('./rootScope').globalProducts[number];
|
|
@@ -22,22 +20,6 @@ export type Products = typeof import('./rootScope').products[number];
|
|
|
22
20
|
|
|
23
21
|
export type SupportedLanguages = typeof import('./rootScope').supportedLanguages[number];
|
|
24
22
|
|
|
25
|
-
export type Pois =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
| 'wind'
|
|
29
|
-
| 'temp'
|
|
30
|
-
| 'precip'
|
|
31
|
-
| 'metars'
|
|
32
|
-
| 'radiosonde'
|
|
33
|
-
| 'cams'
|
|
34
|
-
| 'pgspots'
|
|
35
|
-
| 'kitespots'
|
|
36
|
-
| 'surfspots'
|
|
37
|
-
| 'tide'
|
|
38
|
-
| 'radiation'
|
|
39
|
-
| 'firespots'
|
|
40
|
-
| 'airq'
|
|
41
|
-
| 'empty';
|
|
42
|
-
|
|
43
|
-
export type Isolines = 'off' | 'pressure' | 'gh' | 'temp' | 'deg0';
|
|
23
|
+
export type Pois = keyof typeof import('./rootScope').pois;
|
|
24
|
+
|
|
25
|
+
export type Isolines = typeof import('./rootScope').isolinesType[number];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { RelatedHomepageArticlesResponseDto } from '@plugins/articles/articles.d';
|
|
2
|
+
import type { Timestamp } from '@windy/types';
|
|
3
|
+
|
|
4
|
+
export type StartupNewsType = 'hp-article' | 'whats-new';
|
|
5
|
+
|
|
6
|
+
export interface StartupItem {
|
|
7
|
+
type: StartupNewsType;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface StartupResponse {
|
|
11
|
+
'hp-articles'?: StartupArticleData[];
|
|
12
|
+
'whats-new'?: WhatsNewData;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface StartupArticleData extends RelatedHomepageArticlesResponseDto, StartupItem {
|
|
16
|
+
type: 'hp-article';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface WhatsNewData extends StartupItem {
|
|
20
|
+
type: 'whats-new';
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
contributors: {
|
|
24
|
+
name: string;
|
|
25
|
+
avatarUrl: string;
|
|
26
|
+
}[];
|
|
27
|
+
content: {
|
|
28
|
+
new?: string;
|
|
29
|
+
improved?: string;
|
|
30
|
+
fixed?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface EnhancedStartupArticle extends StartupArticleData {
|
|
35
|
+
key: string;
|
|
36
|
+
count: number;
|
|
37
|
+
lastDisplayed: number;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Info about articles, user has already seen
|
|
42
|
+
*/
|
|
43
|
+
export interface SeenArticle {
|
|
44
|
+
/**
|
|
45
|
+
* Last time, the article has been displayed to the user
|
|
46
|
+
*/
|
|
47
|
+
lastDisplayed: Timestamp;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* How many times the article has been seen
|
|
51
|
+
* (one count is added only if the article has been seen after 12 hours from the last seen time)
|
|
52
|
+
*/
|
|
53
|
+
count: number;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Marks beginning of 12h interval
|
|
57
|
+
*/
|
|
58
|
+
seen: Timestamp;
|
|
59
|
+
}
|