@windycom/plugin-devtools 1.0.9 → 2.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 +1 -0
- package/package.json +1 -1
- package/types/client/Drag.d.ts +8 -1
- package/types/client/MobileCalendar.d.ts +4 -0
- package/types/client/Product.d.ts +14 -2
- package/types/client/ProductSwitch.d.ts +1 -1
- package/types/client/SveltePanePlugin.d.ts +4 -3
- package/types/client/Window.d.ts +0 -4
- package/types/client/WindowPlugin.d.ts +9 -8
- package/types/client/d.ts.files/broadcast.d.ts +7 -8
- package/types/client/d.ts.files/dataSpecifications.d.ts +16 -18
- package/types/client/d.ts.files/plugin-params.d.ts +12 -14
- package/types/client/d.ts.files/plugins.d.ts +11 -14
- package/types/client/d.ts.files/products.d.ts +5 -0
- package/types/client/d.ts.files/satellite.d.ts +1 -0
- package/types/client/device.d.ts +0 -1
- package/types/client/embed2.d.ts +2 -5
- package/types/client/fetch.d.ts +4 -10
- package/types/client/ga.d.ts +4 -0
- package/types/client/geolocation.d.ts +0 -1
- package/types/client/interpolator.d.ts +2 -1
- package/types/client/lib.d.ts +0 -4
- package/types/client/libHtml.d.ts +1 -1
- package/types/client/mobile.d.ts +5 -7
- package/types/client/models.d.ts +1 -1
- package/types/client/nativeStorage.d.ts +0 -14
- package/types/client/patchAndPromoCtrl.d.ts +13 -0
- package/types/client/permanentPromos.d.ts +0 -1
- package/types/client/promo.d.ts +25 -31
- package/types/client/rootScope.d.ts +17 -13
- package/types/client/router.d.ts +1 -1
- package/types/client/{hp.d.ts → startupWeather.d.ts} +10 -2
- package/types/client/user.d.ts +9 -4
- package/types/client/userFavs.d.ts +5 -12
- package/types/client/utils.d.ts +18 -4
- package/types/iconfont.d.ts +5 -4
- package/types/interfaces.d.ts +188 -202
- package/types/lang-files.d.ts +58 -18
- package/types/types.d.ts +61 -9
- package/types/client/BindedDropDown.d.ts +0 -14
- package/types/client/Detail1hCheckbox.d.ts +0 -4
- package/types/client/DropDown.d.ts +0 -37
- package/types/client/Webcams.d.ts +0 -66
- package/types/client/loadersUI.d.ts +0 -1
package/README.md
CHANGED
package/package.json
CHANGED
package/types/client/Drag.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Drag
|
|
2
|
+
* # @windy/Drag
|
|
3
|
+
*
|
|
4
|
+
* module contains Class that makes elements draggable
|
|
3
5
|
*
|
|
4
6
|
* @module Drag
|
|
5
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Makes elements in GUI draggable
|
|
10
|
+
*
|
|
11
|
+
* @class Drag
|
|
12
|
+
*/
|
|
6
13
|
export type DragInitParams = Pick<Drag, 'el'> & {
|
|
7
14
|
supportTouch?: boolean;
|
|
8
15
|
preventDefault?: boolean;
|
|
@@ -26,6 +26,10 @@ export declare class MobileCalendar extends Scrollable {
|
|
|
26
26
|
* Handle of a timeout that controls the `mobile-calendar-expanded` class
|
|
27
27
|
*/
|
|
28
28
|
private calExpandedTimeout;
|
|
29
|
+
/**
|
|
30
|
+
* Request to change timestamp was initiated by external element
|
|
31
|
+
*/
|
|
32
|
+
private doNotChangeTimestamp;
|
|
29
33
|
private bindedStore;
|
|
30
34
|
localeHours: TimeFormatFunction;
|
|
31
35
|
zuluMode: boolean;
|
|
@@ -6,7 +6,7 @@ import type { DataQuality, FileSuffix } from './d.ts.files/Product.d';
|
|
|
6
6
|
import type { LatLon } from './d.ts.files/interfaces';
|
|
7
7
|
import type { AcTimes, Isolines, Levels, Overlays, Products } from './d.ts.files/rootScope.d';
|
|
8
8
|
import type { ProductCategory, ProductIdent } from './d.ts.files/types';
|
|
9
|
-
export type ProductInitParams = Pick<Product, 'modelName' | 'provider' | 'interval'> & Partial<Pick<Product, 'provider' | 'ident' | 'maxTileZoom' | 'animationSpeed' | 'animationSpeed1h' | 'fileSuffix' | 'fileSuffixFallback' | 'JPGtransparency' | 'PNGtransparency' | 'dataQuality' | 'betterDataQuality' | 'animation' | 'labelsTemp' | 'overlays' | '
|
|
9
|
+
export type ProductInitParams = Pick<Product, 'modelName' | 'provider' | 'interval'> & Partial<Pick<Product, 'provider' | 'ident' | 'maxTileZoom' | 'animationSpeed' | 'animationSpeed1h' | 'fileSuffix' | 'fileSuffixFallback' | 'JPGtransparency' | 'PNGtransparency' | 'dataQuality' | 'betterDataQuality' | 'animation' | 'labelsTemp' | 'overlays' | 'preferredProduct' | 'pathGenerator' | 'isolines' | 'directory' | 'category' | 'modelIdent' | 'intervalPremium' | 'server' | 'modelResolution' | 'levels' | 'levelsOverride' | 'logo' | 'acTimes' | 'preferredWaveProduct' | 'preferredAirProduct'>> & {
|
|
10
10
|
requiresInfoJson?: boolean;
|
|
11
11
|
forecastSize?: number;
|
|
12
12
|
bounds?: [number, number][][];
|
|
@@ -140,6 +140,10 @@ export declare class Product {
|
|
|
140
140
|
* List of avail levels
|
|
141
141
|
*/
|
|
142
142
|
levels?: Levels[];
|
|
143
|
+
/**
|
|
144
|
+
* Override for when some has different levels from rest of model
|
|
145
|
+
*/
|
|
146
|
+
levelsOverride?: Partial<Record<Layers, Levels[]>>;
|
|
143
147
|
/**
|
|
144
148
|
* List of avail isolines
|
|
145
149
|
*/
|
|
@@ -148,7 +152,15 @@ export declare class Product {
|
|
|
148
152
|
/**
|
|
149
153
|
* If we drag out of bounds, which product we should use (must be global air product)
|
|
150
154
|
*/
|
|
151
|
-
|
|
155
|
+
preferredProduct: 'ecmwf' | 'gfs' | 'icon' | 'iconEu';
|
|
156
|
+
/**
|
|
157
|
+
* Preferred product when switching to wave layers
|
|
158
|
+
*/
|
|
159
|
+
preferredWaveProduct: Products;
|
|
160
|
+
/**
|
|
161
|
+
* Preferred product when switching to air layers
|
|
162
|
+
*/
|
|
163
|
+
preferredAirProduct: Products;
|
|
152
164
|
/**
|
|
153
165
|
* Holder of the latest minifest
|
|
154
166
|
*/
|
|
@@ -6,7 +6,7 @@ export type ProductSwitchInitParams = {
|
|
|
6
6
|
export declare class ProductSwitch extends BindedSwitch<'product'> {
|
|
7
7
|
showResolution: boolean;
|
|
8
8
|
constructor(params: ProductSwitchInitParams);
|
|
9
|
-
printHTML(prods?: ("icon" | "radar" | "
|
|
9
|
+
printHTML(prods?: ("icon" | "satellite" | "radar" | "drought" | "capAlerts" | "gfs" | "ecmwf" | "ecmwfAnalysis" | "ecmwfAifs" | "ecmwfWaves" | "gfsWaves" | "iconWaves" | "cams" | "efi" | "cmems" | "fireDanger" | "activeFires" | "nems" | "namConus" | "namHawaii" | "namAlaska" | "iconEu" | "iconD2" | "arome" | "aromeAntilles" | "aromeReunion" | "canHrdps" | "canRdwpsWaves" | "camsEu" | "iconEuWaves" | "hrrrAlaska" | "hrrrConus" | "bomAccess" | "ukv" | "jmaMsm" | "jmaCwmWaves" | "mblue")[]): void;
|
|
10
10
|
/**
|
|
11
11
|
* The menu is already in a DOM since we do not modify products so often
|
|
12
12
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SveltePlugin } from '@windy/SveltePlugin';
|
|
2
2
|
import type { WindowPluginInitParams } from '@windy/WindowPlugin';
|
|
3
3
|
import type { SveltePanePlugins } from '@windy/plugins.d';
|
|
4
|
-
export type SveltePanePluginInitParams<P extends keyof SveltePanePlugins> = Omit<WindowPluginInitParams<P>, 'ident'> & Pick<SveltePanePlugin<P>, 'ident'
|
|
4
|
+
export type SveltePanePluginInitParams<P extends keyof SveltePanePlugins> = Omit<WindowPluginInitParams<P>, 'ident'> & Pick<SveltePanePlugin<P>, 'ident'> & Partial<SveltePanePlugin<P>>;
|
|
5
5
|
/**
|
|
6
6
|
* Common pane plugin, that appear in LH Pane on desktop, RH pane in tablet
|
|
7
7
|
* and appears from bottom on mobile devices
|
|
@@ -11,8 +11,9 @@ export type SveltePanePluginInitParams<P extends keyof SveltePanePlugins> = Omit
|
|
|
11
11
|
export declare class SveltePanePlugin<P extends keyof SveltePanePlugins> extends SveltePlugin<P> {
|
|
12
12
|
ident: P;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* By default all SveltePanePlugins uses dark content
|
|
15
|
+
* Use this property fo enforce light content
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
usesLightContent?: boolean;
|
|
17
18
|
constructor(params: SveltePanePluginInitParams<P>);
|
|
18
19
|
}
|
package/types/client/Window.d.ts
CHANGED
|
@@ -31,10 +31,6 @@ export declare class Window {
|
|
|
31
31
|
* Should the item be closed on click somewhere else? True for any click, false ignores everything (default), 'outside' closes Window only when clicking outside the window
|
|
32
32
|
*/
|
|
33
33
|
closeOnClick: boolean | 'outside';
|
|
34
|
-
/**
|
|
35
|
-
* Uses el.style.display = block to hide/display el on page
|
|
36
|
-
*/
|
|
37
|
-
displayBlock: boolean;
|
|
38
34
|
/**
|
|
39
35
|
* How long should closing of the Window last?
|
|
40
36
|
*/
|
|
@@ -6,9 +6,9 @@ import type { PluginOpeningOptions, WindowClosingOptions } from '@windy/interfac
|
|
|
6
6
|
import type { InterpolatorFactory } from '@windy/interpolator';
|
|
7
7
|
import type { PluginsOpenParams, PluginsQsParams } from '@windy/plugin-params.d';
|
|
8
8
|
import type { BottomTagPlugins, SveltePanePlugins, SveltePlugins, TagPlugins } from '@windy/plugins.d';
|
|
9
|
-
import type { LoadedTranslations } from '@windy/trans.d';
|
|
10
9
|
import type { ParsedQueryString } from '@windy/queryString';
|
|
11
10
|
import type { ListeningPriority } from '@windy/singleclick.d';
|
|
11
|
+
import type { LoadedTranslations } from '@windy/trans.d';
|
|
12
12
|
export interface WindowPlugins extends TagPlugins, SveltePlugins, SveltePanePlugins, BottomTagPlugins {
|
|
13
13
|
}
|
|
14
14
|
/** Allowed params to WindowPlugin constructor (private and protected props are omited by default) */
|
|
@@ -88,10 +88,6 @@ export declare abstract class WindowPlugin<P extends keyof WindowPlugins> extend
|
|
|
88
88
|
* Should the item be closed on click somewhere else? True for any click, false ignores everything (default), 'outside' closes Window only when clicking outside the window
|
|
89
89
|
*/
|
|
90
90
|
closeOnClick: boolean | 'outside';
|
|
91
|
-
/**
|
|
92
|
-
* Uses el.style.display = block to hide/display el on page
|
|
93
|
-
*/
|
|
94
|
-
displayBlock: boolean;
|
|
95
91
|
/**
|
|
96
92
|
* Opening of this plugin logs analytical data to GA (if allowed by user)
|
|
97
93
|
* By default is set to true
|
|
@@ -116,6 +112,11 @@ export declare abstract class WindowPlugin<P extends keyof WindowPlugins> extend
|
|
|
116
112
|
* when opened and at which priority
|
|
117
113
|
*/
|
|
118
114
|
singleclickPriority: ListeningPriority | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Although is standard rhpane or fullscreen plugin, it does not have
|
|
117
|
+
* header with title (adds .no-header class to the plugin container)
|
|
118
|
+
*/
|
|
119
|
+
noHeader?: boolean;
|
|
119
120
|
constructor(params: WindowPluginInitParams<P>);
|
|
120
121
|
/**
|
|
121
122
|
* Check if plugin is loaded and decides if load or open. Params are passed to onopen fun
|
|
@@ -133,9 +134,9 @@ export declare abstract class WindowPlugin<P extends keyof WindowPlugins> extend
|
|
|
133
134
|
/**
|
|
134
135
|
* Ready to be overloaded: Will be called before unmounting
|
|
135
136
|
*/
|
|
136
|
-
ondestroy(
|
|
137
|
+
ondestroy(): void;
|
|
137
138
|
/**
|
|
138
|
-
* Ready to be overloaded: Will be called before plugin is loaded, sync action called
|
|
139
|
+
* Ready to be overloaded: Will be called before plugin is loaded, sync action called immediately after rqstOpen is fired
|
|
139
140
|
*/
|
|
140
141
|
beforeLoad(..._args: unknown[]): void;
|
|
141
142
|
/**
|
|
@@ -143,7 +144,7 @@ export declare abstract class WindowPlugin<P extends keyof WindowPlugins> extend
|
|
|
143
144
|
*/
|
|
144
145
|
onRouteMatch({ groups }: string[] & {
|
|
145
146
|
groups: PluginsOpenParams[P];
|
|
146
|
-
}, _qs?: ParsedQueryString): PluginsOpenParams[P] |
|
|
147
|
+
}, _qs?: ParsedQueryString): PluginsOpenParams[P] | undefined;
|
|
147
148
|
/**
|
|
148
149
|
* When called with params, it will create valid URL for plugin
|
|
149
150
|
* as defined in router property.
|
|
@@ -9,18 +9,18 @@
|
|
|
9
9
|
|
|
10
10
|
*/
|
|
11
11
|
import { DetailLocChangeParams } from '@plugins/detail/detail.d';
|
|
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';
|
|
12
15
|
import { ClientMessage, DownloadProgress, ServiceWorkerMessage } from '@plugins/offline/offline';
|
|
13
16
|
import { Evented } from '@windy/Evented';
|
|
14
17
|
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
18
|
import { PluginIdent } from '@windy/Plugin';
|
|
19
|
+
import { NotificationPreferences } from '@windy/dataSpecifications.d';
|
|
20
|
+
import { Fav, GeolocationInfo, LatLon, WeatherParameters } from '@windy/interfaces.d';
|
|
22
21
|
import { PluginSource, PluginsOpenParams, PluginsQsParams } from '@windy/plugin-params.d';
|
|
23
22
|
import { Plugins } from '@windy/plugins.d';
|
|
23
|
+
import { Pois } from '@windy/rootScope.d';
|
|
24
24
|
import type { ExternalPluginIdent } from '@windy/types';
|
|
25
25
|
|
|
26
26
|
type BcastTypesNonGeneric = {
|
|
@@ -66,7 +66,7 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
66
66
|
rqstOpen: [T | string, PluginsOpenParams[T] | undefined];
|
|
67
67
|
|
|
68
68
|
/** Request to close plugin (either internal or external) */
|
|
69
|
-
rqstClose: [T | string
|
|
69
|
+
rqstClose: [T | string];
|
|
70
70
|
|
|
71
71
|
/** Request to close all opened plugins (unless plugin has noClose property) */
|
|
72
72
|
closeAllPlugins: [PluginIdent] | [];
|
|
@@ -111,7 +111,6 @@ export interface BasicBcastTypes<T extends keyof Plugins> {
|
|
|
111
111
|
routerParsed: [PluginIdent | ExternalPluginIdent | void];
|
|
112
112
|
|
|
113
113
|
// prettier-ignore
|
|
114
|
-
/** @ignore */ airportLoaded: [Fav];
|
|
115
114
|
/** @ignore */ globeOpened: [];
|
|
116
115
|
/** @ignore */ globeClose: [];
|
|
117
116
|
/** @ignore */ globeFailed: [];
|
|
@@ -261,7 +261,7 @@ export interface DataSpecifications {
|
|
|
261
261
|
* model. Preferred model must have also second wave
|
|
262
262
|
* mode like 'ecmwf' 👉🏻 'ecmwfWaves'
|
|
263
263
|
*/
|
|
264
|
-
|
|
264
|
+
preferredProduct: DataSpecificationsObject<'ecmwf' | 'gfs' | 'icon' | 'iconEu'>;
|
|
265
265
|
|
|
266
266
|
/**
|
|
267
267
|
* If timeline animation is running
|
|
@@ -350,7 +350,7 @@ export interface DataSpecifications {
|
|
|
350
350
|
glParticlesOn: DataSpecificationsObject<boolean>;
|
|
351
351
|
|
|
352
352
|
/**
|
|
353
|
-
* Finally used language (the
|
|
353
|
+
* Finally used language (the one which is successfully loaded in trans module)
|
|
354
354
|
*/
|
|
355
355
|
usedLang: DataSpecificationsObject<SupportedLanguages>;
|
|
356
356
|
|
|
@@ -471,6 +471,11 @@ export interface DataSpecifications {
|
|
|
471
471
|
*/
|
|
472
472
|
detailTimestamp: DataSpecificationsObject<Timestamp>;
|
|
473
473
|
|
|
474
|
+
/**
|
|
475
|
+
* Detail keeps its 10+ days expanded forecast
|
|
476
|
+
*/
|
|
477
|
+
detailExtended: DataSpecificationsObject<boolean>;
|
|
478
|
+
|
|
474
479
|
/**
|
|
475
480
|
* display webcams on daylight
|
|
476
481
|
*/
|
|
@@ -491,9 +496,9 @@ export interface DataSpecifications {
|
|
|
491
496
|
capDisplay: DataSpecificationsObject<'all' | 'today' | 'tomm' | 'later'>;
|
|
492
497
|
|
|
493
498
|
/**
|
|
494
|
-
* Range
|
|
499
|
+
* Range of displayed radar history
|
|
495
500
|
*/
|
|
496
|
-
radarRange: DataSpecificationsObject<'
|
|
501
|
+
radarRange: DataSpecificationsObject<'archive' | 'long' | 'medium' | 'short'>;
|
|
497
502
|
|
|
498
503
|
/**
|
|
499
504
|
* Timestamp in ms
|
|
@@ -555,11 +560,6 @@ export interface DataSpecifications {
|
|
|
555
560
|
*/
|
|
556
561
|
satelliteSpeed: DataSpecificationsObject<'slow' | 'medium' | 'fast'>;
|
|
557
562
|
|
|
558
|
-
/**
|
|
559
|
-
* Interpolate images using vectors
|
|
560
|
-
*/
|
|
561
|
-
satelliteFlowOn: DataSpecificationsObject<boolean>;
|
|
562
|
-
|
|
563
563
|
/**
|
|
564
564
|
* Extrapolate satellite images to future
|
|
565
565
|
*/
|
|
@@ -586,10 +586,9 @@ export interface DataSpecifications {
|
|
|
586
586
|
archiveRange: DataSpecificationsObject<number>;
|
|
587
587
|
|
|
588
588
|
/**
|
|
589
|
-
* Information, if startup weather box
|
|
590
|
-
* is shown or not
|
|
589
|
+
* Information, if startup weather box is shown or not
|
|
591
590
|
*/
|
|
592
|
-
|
|
591
|
+
startupWeatherShown: DataSpecificationsObject<boolean>;
|
|
593
592
|
|
|
594
593
|
/**
|
|
595
594
|
* pois layer that user selected
|
|
@@ -770,12 +769,6 @@ export interface DataSpecifications {
|
|
|
770
769
|
*/
|
|
771
770
|
[key: `metric_${string}`]: DataSpecificationsObject<MetricItem | null>;
|
|
772
771
|
|
|
773
|
-
/**
|
|
774
|
-
* User is article publisher (dynamically created property in plugin article-publisher)
|
|
775
|
-
* @ignore
|
|
776
|
-
*/
|
|
777
|
-
userIsPublisher: DataSpecificationsObject<boolean>;
|
|
778
|
-
|
|
779
772
|
/** @ignore */
|
|
780
773
|
rplannerDir: DataSpecificationsObject<'horizontal' | 'vertical' | 'north'>;
|
|
781
774
|
|
|
@@ -922,6 +915,11 @@ export interface DataSpecifications {
|
|
|
922
915
|
* @ignore
|
|
923
916
|
*/
|
|
924
917
|
installedPlugins: DataSpecificationsObject<InstalledExternalPluginConfig[]>;
|
|
918
|
+
|
|
919
|
+
/*
|
|
920
|
+
* User has entered into arrange mode in RH menu
|
|
921
|
+
*/
|
|
922
|
+
rhMenuArrangeMode: DataSpecificationsObject<boolean>;
|
|
925
923
|
}
|
|
926
924
|
|
|
927
925
|
/**
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { OpenOptions } from '@capacitor/browser';
|
|
2
|
-
import { PublicationParams } from '@plugins/articles/articles.d';
|
|
3
|
-
import { FavEventTypes } from '@plugins/favs/favs.d';
|
|
4
2
|
import { ProviderConstructorParams } from '@plugins/_shared/subscription-services/subscription-services.d';
|
|
3
|
+
import { FavEventTypes } from '@plugins/favs/favs.d';
|
|
4
|
+
import { StartupArticleData, WhatsNewData } from '@plugins/startup/startup.d';
|
|
5
5
|
import { HiddenReasonType, ReasonTypes } from '@plugins/subscription/subscription';
|
|
6
6
|
import { FullRenderParameters } from '@windy/Layer.d';
|
|
7
|
-
import { WebcamCategoryType } from '@windy/Webcams.d';
|
|
8
7
|
import { HttpPayload } from '@windy/http.d';
|
|
9
8
|
import {
|
|
10
9
|
CapAlertHeadline,
|
|
@@ -25,6 +24,7 @@ import {
|
|
|
25
24
|
StationOrPoiType,
|
|
26
25
|
type ExternalPluginIdent,
|
|
27
26
|
} from '@windy/types.d';
|
|
27
|
+
import { WebcamCategoryType } from '@windy/webcams';
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Type of source event, that led to opening any plugin
|
|
@@ -39,6 +39,7 @@ export type PluginOpenEventSource =
|
|
|
39
39
|
| 'detail'
|
|
40
40
|
| 'singleclick'
|
|
41
41
|
| 'favs-page'
|
|
42
|
+
| 'favs-on-hp'
|
|
42
43
|
| 'picker'
|
|
43
44
|
| 'meta'
|
|
44
45
|
| 'fallback'
|
|
@@ -130,21 +131,15 @@ export type PluginsOpenParams = {
|
|
|
130
131
|
})
|
|
131
132
|
| undefined;
|
|
132
133
|
|
|
133
|
-
station: PluginSource & { id
|
|
134
|
+
station: PluginSource & { id: string };
|
|
134
135
|
multimodel: LatLon & PluginSource & { name?: string | null };
|
|
135
136
|
webcams: (PluginSource & { category: WebcamCategoryType }) | undefined;
|
|
136
137
|
'webcams-detail': PluginSource & WebcamDetailOpenParams;
|
|
137
138
|
'webcams-edit': PluginSource & WebcamDetailOpenParams;
|
|
138
|
-
'webcams-embed':
|
|
139
|
-
| PluginSource & {
|
|
140
|
-
id: string | number;
|
|
141
|
-
forcedPois?: boolean;
|
|
142
|
-
};
|
|
143
139
|
'webcams-remove': PluginSource & WebcamDetailOpenParams;
|
|
144
140
|
//settings: (PluginSource & { id: string }) | undefined;
|
|
145
|
-
settings:
|
|
146
|
-
articles: (PluginSource & { id: number
|
|
147
|
-
'article-publisher': (PluginSource & { pane?: '' | 'list' | 'detail' }) | null;
|
|
141
|
+
settings: PluginSource | undefined;
|
|
142
|
+
articles: (PluginSource & { id: number | string }) | undefined;
|
|
148
143
|
upload: PluginSource & { id: string };
|
|
149
144
|
uploader: PluginSource & { id?: string };
|
|
150
145
|
'cap-alert': PluginSource &
|
|
@@ -197,7 +192,10 @@ export type PluginsOpenParams = {
|
|
|
197
192
|
};
|
|
198
193
|
sounding: PluginSource & LatLon & { name?: string };
|
|
199
194
|
radiosonde: PluginSource & { id: string; lat?: number; lon?: number };
|
|
200
|
-
|
|
195
|
+
startup: PluginSource;
|
|
196
|
+
'startup-whats-new': PluginSource & { data: WhatsNewData };
|
|
197
|
+
'startup-articles': PluginSource & { data: StartupArticleData[] };
|
|
198
|
+
'startup-weather': PluginSource & {
|
|
201
199
|
coords: HomeLocation | GeolocationInfo;
|
|
202
200
|
promises: {
|
|
203
201
|
wx: Promise<HttpPayload<WeatherDataPayload<SummaryDataHash>>>;
|
|
@@ -221,7 +219,7 @@ export type PluginsOpenParams = {
|
|
|
221
219
|
offline: PluginSource;
|
|
222
220
|
'developer-mode': (PluginSource & { qs: Record<string, string> | undefined }) | undefined;
|
|
223
221
|
'windy-external-plugin': PluginSource & LatLon;
|
|
224
|
-
menu: PluginSource;
|
|
222
|
+
menu: PluginSource; // FIXME: This typing is not correct. Poi selector on HP is calling menu with string 'pois'
|
|
225
223
|
} & {
|
|
226
224
|
[external: ExternalPluginIdent]:
|
|
227
225
|
| (PluginSource & { query: Record<string, string> | undefined })
|
|
@@ -23,30 +23,27 @@ export interface SveltePanePlugins {
|
|
|
23
23
|
alerts: SveltePanePlugin<'alerts'>;
|
|
24
24
|
colors: SveltePanePlugin<'colors'>;
|
|
25
25
|
articles: SveltePanePlugin<'articles'>;
|
|
26
|
-
|
|
27
26
|
debug: SveltePanePlugin<'debug'>;
|
|
28
27
|
hurricanes: SveltePanePlugin<'hurricanes'>;
|
|
29
28
|
'cap-alert': SveltePanePlugin<'cap-alert'>;
|
|
30
|
-
login: SveltePanePlugin<'login'>;
|
|
31
29
|
'delete-info': SveltePanePlugin<'delete-info'>;
|
|
32
30
|
settings: SveltePanePlugin<'settings'>;
|
|
33
31
|
sounding: SveltePanePlugin<'sounding'>;
|
|
34
32
|
radiosonde: SveltePanePlugin<'radiosonde'>;
|
|
35
33
|
airport: SveltePanePlugin<'airport'>;
|
|
36
34
|
info: SveltePanePlugin<'info'>;
|
|
37
|
-
|
|
35
|
+
offline: SveltePlugin<'offline'>;
|
|
38
36
|
webcams: SveltePanePlugin<'webcams'>;
|
|
39
37
|
'webcams-detail': SveltePanePlugin<'webcams-detail'>;
|
|
40
38
|
'webcams-add': SveltePanePlugin<'webcams-add'>;
|
|
41
39
|
'webcams-edit': SveltePanePlugin<'webcams-edit'>;
|
|
42
40
|
'webcams-remove': SveltePanePlugin<'webcams-remove'>;
|
|
43
|
-
'webcams-embed': SveltePanePlugin<'webcams-embed'>;
|
|
44
|
-
|
|
45
41
|
uploader?: SveltePanePlugin<'uploader'>;
|
|
46
42
|
'external-plugins'?: SveltePanePlugin<'external-plugins'>;
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
export interface SveltePlugins {
|
|
46
|
+
login: SveltePlugin<'login'>;
|
|
50
47
|
'nearest-webcams': SveltePlugin<'nearest-webcams'>;
|
|
51
48
|
'nearest-webcams-mobile': SveltePlugin<'nearest-webcams-mobile'>;
|
|
52
49
|
'nearest-airq': SveltePlugin<'nearest-airq'>;
|
|
@@ -55,25 +52,27 @@ export interface SveltePlugins {
|
|
|
55
52
|
multimodel: SveltePlugin<'multimodel'>;
|
|
56
53
|
subscription: SveltePlugin<'subscription'>;
|
|
57
54
|
'pending-subscription': SveltePlugin<'pending-subscription'>;
|
|
58
|
-
'whats-new': SveltePlugin<'whats-new'>;
|
|
59
|
-
offline: SveltePlugin<'offline'>;
|
|
60
55
|
detail: SveltePlugin<'detail'>;
|
|
61
56
|
station: SveltePlugin<'station'>;
|
|
62
57
|
consent: SveltePlugin<'consent'>;
|
|
63
58
|
rplanner: SveltePlugin<'rplanner'>;
|
|
64
59
|
menu: SveltePlugin<'menu'>;
|
|
60
|
+
'fav-alert-menu': SveltePlugin<'fav-alert-menu'>;
|
|
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'>;
|
|
72
66
|
'fav-layers'?: SveltePlugin<'fav-layers'>;
|
|
73
67
|
'developer-mode'?: SveltePlugin<'developer-mode'>;
|
|
68
|
+
'pin-to-homepage'?: SveltePlugin<'pin-to-homepage'>;
|
|
69
|
+
'startup-whats-new'?: SveltePlugin<'startup-whats-new'>;
|
|
70
|
+
'rhpane-top': SveltePlugin<'rhpane-top'>;
|
|
71
|
+
|
|
72
|
+
'startup-weather'?: SveltePlugin<'startup-weather'>;
|
|
74
73
|
|
|
75
74
|
// Used as fake plugin for any other external plugin
|
|
76
|
-
// basically we are
|
|
75
|
+
// basically we are unable to type each individual external plugin
|
|
77
76
|
'windy-external-plugin'?: SveltePlugin<'windy-external-plugin'>;
|
|
78
77
|
}
|
|
79
78
|
|
|
@@ -81,28 +80,26 @@ export interface PlainPlugins {
|
|
|
81
80
|
'gl-particles': Plugin<'gl-particles'>;
|
|
82
81
|
'legacy-tile-render': Plugin<'legacy-tile-render'>;
|
|
83
82
|
particles: Plugin<'particles'>;
|
|
83
|
+
startup?: Plugin<'startup'>;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
export interface TagPlugins {
|
|
87
87
|
/**
|
|
88
88
|
* Libraries with possible CSS, that remains opened
|
|
89
89
|
*/
|
|
90
|
-
'rhpane-top': TagPlugin<'rhpane-top'>;
|
|
91
90
|
rhbottom: TagPlugin<'rhbottom'>;
|
|
92
|
-
patch: TagPlugin<'patch'>;
|
|
93
91
|
'poi-libs': TagPlugin<'poi-libs'>;
|
|
94
92
|
|
|
95
93
|
/**
|
|
96
94
|
* Tag Plugins
|
|
97
95
|
*/
|
|
98
|
-
'fav-alert-menu': TagPlugin<'fav-alert-menu'>;
|
|
99
96
|
upload: TagPlugin<'upload'>;
|
|
100
97
|
screenshot: TagPlugin<'screenshot'>;
|
|
101
98
|
isolines: TagPlugin<'isolines'>;
|
|
102
99
|
search: TagPlugin<'search'>;
|
|
103
100
|
|
|
104
101
|
// not embed plugins
|
|
105
|
-
'
|
|
102
|
+
'startup-articles'?: TagPlugin<'startup-articles'>;
|
|
106
103
|
|
|
107
104
|
// desktop only plugins
|
|
108
105
|
contextmenu?: TagPlugin<'contextmenu'>;
|
|
@@ -12,7 +12,10 @@ export type products = Implements<
|
|
|
12
12
|
mblue: Product;
|
|
13
13
|
ecmwf: EcmwfProduct;
|
|
14
14
|
ecmwfWaves: Product;
|
|
15
|
+
ecmwfAifs: Product;
|
|
15
16
|
ecmwfAnalysis: EcmwfAnalysisProduct;
|
|
17
|
+
canHrdps: Product;
|
|
18
|
+
canRdwpsWaves: Product;
|
|
16
19
|
cams: Product;
|
|
17
20
|
camsEu: Product;
|
|
18
21
|
cmems: Product;
|
|
@@ -40,5 +43,7 @@ export type products = Implements<
|
|
|
40
43
|
drought: Product;
|
|
41
44
|
fireDanger: Product;
|
|
42
45
|
activeFires: Product;
|
|
46
|
+
jmaMsm: Product;
|
|
47
|
+
jmaCwmWaves: Product;
|
|
43
48
|
}
|
|
44
49
|
>;
|
package/types/client/device.d.ts
CHANGED
package/types/client/embed2.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ import './pluginSystem/TagPlugin';
|
|
|
9
9
|
import './pluginSystem/WindowPlugin';
|
|
10
10
|
import './pluginSystem/pluginsCtrl';
|
|
11
11
|
import './ui/components';
|
|
12
|
-
import './ui/loadersUI';
|
|
13
12
|
import './ui/timeAnimation';
|
|
14
13
|
import './ui/visibility';
|
|
15
14
|
import './render/renderTile';
|
|
@@ -50,8 +49,8 @@ export * as pois from './services/pois';
|
|
|
50
49
|
export * as reverseName from './services/reverseName';
|
|
51
50
|
export * as showableErrorsService from './services/showableErrorsService';
|
|
52
51
|
export * as trans from './services/trans';
|
|
53
|
-
export * as
|
|
54
|
-
export
|
|
52
|
+
export * as startupWeather from './ui/startupWeather';
|
|
53
|
+
export * as promo from './ui/promo';
|
|
55
54
|
export * as query from './ui/query';
|
|
56
55
|
export * as rhMessage from './ui/rhMessage';
|
|
57
56
|
export * as user from './ui/user';
|
|
@@ -60,10 +59,8 @@ export * as BindedCheckbox from './uiClasses/BindedCheckbox';
|
|
|
60
59
|
export * as BindedSwitch from './uiClasses/BindedSwitch';
|
|
61
60
|
export * as BottomSlide from './uiClasses/BottomSlide';
|
|
62
61
|
export * as ClickHandler from './uiClasses/ClickHandler';
|
|
63
|
-
export * as Detail1hCheckbox from './uiClasses/Detail1hCheckbox';
|
|
64
62
|
export * as Drag from './uiClasses/Drag';
|
|
65
63
|
export * as DraggableDiv from './uiClasses/DraggableDiv';
|
|
66
|
-
export * as DropDown from './uiClasses/DropDown';
|
|
67
64
|
export * as GhostBox from './uiClasses/GhostBox';
|
|
68
65
|
export * as Legend from './uiClasses/Legend';
|
|
69
66
|
export * as LongTap from './uiClasses/LongTap';
|
package/types/client/fetch.d.ts
CHANGED
|
@@ -59,22 +59,16 @@ export declare const getWebcamMetricsUrl: (id: string | number) => string;
|
|
|
59
59
|
*
|
|
60
60
|
* @param model Forecast model
|
|
61
61
|
* @param params LalLon of the location and additional parameters
|
|
62
|
-
* @param
|
|
63
|
-
* @param
|
|
64
|
-
* @param options Additional HTTP options
|
|
62
|
+
* @param pointForecastOptions Additional options of point forecast API
|
|
63
|
+
* @param httpOptions Additional HTTP options
|
|
65
64
|
* @returns Promise with HTTP payload
|
|
66
65
|
*/
|
|
67
|
-
export declare const getPointForecastData: <T extends LatLonStep>(model: Products, { lat, lon, step, interpolate }: T,
|
|
66
|
+
export declare const getPointForecastData: <T extends LatLonStep>(model: Products, { lat, lon, step, interpolate }: T, pointForecastOptions?: Record<string, string>, httpOptions?: HttpOptions) => Promise<HttpPayload<WeatherDataPayload<DataHash>>>;
|
|
68
67
|
/**
|
|
69
68
|
* Gets enhanced point forecast meteogram data for given location
|
|
70
|
-
* @param model Forecast model
|
|
71
|
-
* @param params LalLon of the location and additional parameters
|
|
72
|
-
* @param source Who is the initiator of this request (name of you plugin)
|
|
73
|
-
* @param qs Additional query string
|
|
74
|
-
* @param options Additional HTTP options
|
|
75
69
|
* @returns Promise with HTTP payload
|
|
76
70
|
*/
|
|
77
|
-
export declare const getMeteogramForecastData: <T extends LatLonStep>(model: Products, { lat, lon, step }: T, options?: HttpOptions) => Promise<HttpPayload<MeteogramDataPayload>>;
|
|
71
|
+
export declare const getMeteogramForecastData: <T extends LatLonStep>(model: Products, { lat, lon, step }: T, pointForecastOptions?: Record<string, string>, options?: HttpOptions) => Promise<HttpPayload<MeteogramDataPayload>>;
|
|
78
72
|
/**
|
|
79
73
|
* Returns URL for getting archive forecast
|
|
80
74
|
* @ignore
|
package/types/client/ga.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { CoordsInterpolationFun, PixelInterpolationFun } from '@windy/interpolatorTypes';
|
|
1
|
+
import type { CoordsInterpolationFun, PixelInterpolationFun, RGBNumValues, InterpolatorPossibleReturns } from '@windy/interpolatorTypes';
|
|
2
|
+
export type { CoordsInterpolationFun, PixelInterpolationFun, RGBNumValues, InterpolatorPossibleReturns, };
|
|
2
3
|
export type InterpolatorFactory = {
|
|
3
4
|
createFun: (cb: <T>(...args: unknown[]) => T | void) => void;
|
|
4
5
|
};
|
package/types/client/lib.d.ts
CHANGED
|
@@ -57,13 +57,11 @@ export * as pluginsCtrl from '../pluginSystem/pluginsCtrl';
|
|
|
57
57
|
export * as Bar from '../uiClasses/Bar';
|
|
58
58
|
export * as BindedBar from '../uiClasses/BindedBar';
|
|
59
59
|
export * as BindedCheckbox from '../uiClasses/BindedCheckbox';
|
|
60
|
-
export * as BindedDropDown from '../uiClasses/BindedDropDown';
|
|
61
60
|
export * as BindedSwitch from '../uiClasses/BindedSwitch';
|
|
62
61
|
export * as BottomSlide from '../uiClasses/BottomSlide';
|
|
63
62
|
export * as ClickHandler from '../uiClasses/ClickHandler';
|
|
64
63
|
export * as Drag from '../uiClasses/Drag';
|
|
65
64
|
export * as DraggableDiv from '../uiClasses/DraggableDiv';
|
|
66
|
-
export * as DropDown from '../uiClasses/DropDown';
|
|
67
65
|
export * as GhostBox from '../uiClasses/GhostBox';
|
|
68
66
|
export * as LongTap from '../uiClasses/LongTap';
|
|
69
67
|
export * as MobileCalendar from '../uiClasses/MobileCalendar';
|
|
@@ -72,9 +70,7 @@ export * as Scrollable from '../uiClasses/Scrollable';
|
|
|
72
70
|
export * as Swipe from '../uiClasses/Swipe';
|
|
73
71
|
export * as Switch from '../uiClasses/Switch';
|
|
74
72
|
export * as TimestampBar from '../uiClasses/TimestampBar';
|
|
75
|
-
export * as Webcams from '../uiClasses/Webcams';
|
|
76
73
|
export * as Window from '../uiClasses/Window';
|
|
77
|
-
export * as loadersUI from '../ui/loadersUI';
|
|
78
74
|
export * as rhMessage from '../ui/rhMessage';
|
|
79
75
|
export * as timeAnimation from '../ui/timeAnimation';
|
|
80
76
|
export * as visibility from '../ui/visibility';
|