@windycom/plugin-devtools 1.0.8 → 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.
Files changed (52) hide show
  1. package/README.md +2 -0
  2. package/package.json +1 -1
  3. package/types/client/Drag.d.ts +8 -1
  4. package/types/client/MobileCalendar.d.ts +4 -0
  5. package/types/client/Overlay.d.ts +1 -1
  6. package/types/client/OverlayClasses.d.ts +1 -1
  7. package/types/client/Plugin.d.ts +4 -4
  8. package/types/client/Product.d.ts +14 -2
  9. package/types/client/ProductSwitch.d.ts +1 -1
  10. package/types/client/SveltePanePlugin.d.ts +4 -3
  11. package/types/client/Window.d.ts +0 -4
  12. package/types/client/WindowPlugin.d.ts +9 -8
  13. package/types/client/d.ts.files/broadcast.d.ts +7 -8
  14. package/types/client/d.ts.files/dataSpecifications.d.ts +24 -21
  15. package/types/client/d.ts.files/plugin-params.d.ts +12 -13
  16. package/types/client/d.ts.files/plugins.d.ts +11 -14
  17. package/types/client/d.ts.files/products.d.ts +5 -0
  18. package/types/client/d.ts.files/satellite.d.ts +1 -0
  19. package/types/client/device.d.ts +0 -1
  20. package/types/client/embed2.d.ts +3 -5
  21. package/types/client/fetch.d.ts +4 -10
  22. package/types/client/ga.d.ts +4 -0
  23. package/types/client/geolocation.d.ts +0 -1
  24. package/types/client/interpolator.d.ts +1 -1
  25. package/types/client/lib.d.ts +0 -4
  26. package/types/client/libHtml.d.ts +1 -1
  27. package/types/client/mobile.d.ts +5 -7
  28. package/types/client/models.d.ts +1 -1
  29. package/types/client/patchAndPromoCtrl.d.ts +13 -0
  30. package/types/client/permanentPromos.d.ts +0 -1
  31. package/types/client/pluginsCtrl.d.ts +12 -3
  32. package/types/client/promo.d.ts +25 -31
  33. package/types/client/renderTile.d.ts +1 -1
  34. package/types/client/renderers.d.ts +1 -1
  35. package/types/client/rootScope.d.ts +22 -14
  36. package/types/client/router.d.ts +1 -1
  37. package/types/client/{hp.d.ts → startupWeather.d.ts} +10 -2
  38. package/types/client/tileInterpolator.d.ts +3 -3
  39. package/types/client/user.d.ts +9 -4
  40. package/types/client/userFavs.d.ts +5 -12
  41. package/types/client/utils.d.ts +20 -6
  42. package/types/iconfont.d.ts +5 -4
  43. package/types/interfaces.d.ts +198 -202
  44. package/types/lang-files.d.ts +58 -18
  45. package/types/types.d.ts +64 -10
  46. package/publishExamples.sh +0 -19
  47. package/types/client/BindedDropDown.d.ts +0 -14
  48. package/types/client/Detail1hCheckbox.d.ts +0 -4
  49. package/types/client/DropDown.d.ts +0 -37
  50. package/types/client/Webcams.d.ts +0 -66
  51. package/types/client/loadersUI.d.ts +0 -1
  52. /package/types/client/d.ts.files/{tileInterpolator.d.ts → interpolatorTypes.d.ts} +0 -0
package/README.md CHANGED
@@ -4,6 +4,8 @@ Check out https://docs.windy-plugins.com for more information.
4
4
 
5
5
  # CHANGELOG
6
6
 
7
+ - 2.0.0 - TS declarations for client v42.2.0
8
+ - 1.0.9 - Updated client TS declarations
7
9
  - 1.0.6 - Fix plugin version validation
8
10
  - 1.0.5 - Fixing .d.ts declarations
9
11
  - 1.0.0 - TS declarations for client v42
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windycom/plugin-devtools",
3
- "version": "1.0.8",
3
+ "version": "2.0.0",
4
4
  "description": "Developer tools and TS declarations for developers of Windy Plugins.",
5
5
  "main": "index.mjs",
6
6
  "module": "index.mjs",
@@ -1,8 +1,15 @@
1
1
  /**
2
- * Drag: Basic draggable Class
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;
@@ -4,7 +4,7 @@ import type { Metric } from '@windy/Metric';
4
4
  import type { DirectionFunction } from '@windy/format.d';
5
5
  import type { Iconfont } from '@windy/iconfont.d';
6
6
  import type { Overlays } from '@windy/rootScope.d';
7
- import type { RGBNumValues } from '@windy/tileInterpolator.d';
7
+ import type { RGBNumValues } from '@windy/interpolatorTypes';
8
8
  import type { LoadedTranslations } from '@windy/trans.d';
9
9
  import type { HTMLString } from '@windy/types';
10
10
  export type UsedOverlays = Overlays | 'gh' | 'swell' | 'satelliteIRBT';
@@ -1,7 +1,7 @@
1
1
  import { Overlay } from '@windy/Overlay';
2
2
  import type { DirectionFunction } from '@windy/format.d';
3
3
  import type { Overlays } from '@windy/rootScope.d';
4
- import type { RGBNumValues } from '@windy/tileInterpolator.d';
4
+ import type { RGBNumValues } from '@windy/interpolatorTypes';
5
5
  import type { LoadedTranslations } from '@windy/trans.d';
6
6
  export declare class CurrentOverlay<I extends Overlays | 'gh' = Overlays | 'gh'> extends Overlay<I> {
7
7
  createPickerHTML(values: RGBNumValues, formatDir: DirectionFunction): string;
@@ -55,8 +55,8 @@ export declare class Plugin<P extends PluginIdent> {
55
55
  * and should prevent opening several overlapping plugins at the same location
56
56
  * especially on desktop or tablet devices.
57
57
  *
58
- * On mobile phones, most of the plugins (expecially LH, RH pane) become
59
- * fullsctreen plugins.
58
+ * On mobile phones, most of the plugins (especially LH, RH pane) become
59
+ * fullscreen plugins.
60
60
  */
61
61
  pane?: PluginPane;
62
62
  /**
@@ -83,8 +83,8 @@ export declare class Plugin<P extends PluginIdent> {
83
83
  plugin?: WPluginModules[`@plugins/${P}`] & AdditionalPluginAssets;
84
84
  /**
85
85
  * Whenever set, this plugin (when opened) disables opening
86
- * of mobile picker on map interaction. Shoul be used with
87
- * bottm, top pane plugins and plugins, that can be opened
86
+ * of mobile picker on map interaction. Should be used with
87
+ * bottom, top pane plugins and plugins, that can be opened
88
88
  * in half
89
89
  */
90
90
  disableMobilePicker?: 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' | 'prefferedProduct' | 'pathGenerator' | 'isolines' | 'directory' | 'category' | 'modelIdent' | 'intervalPremium' | 'server' | 'modelResolution' | 'levels' | 'logo' | 'acTimes'>> & {
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
- prefferedProduct: 'ecmwf' | 'gfs' | 'icon' | 'iconEu';
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" | "satellite" | "capAlerts" | "gfs" | "ecmwf" | "ecmwfAnalysis" | "ecmwfWaves" | "gfsWaves" | "iconWaves" | "cams" | "efi" | "cmems" | "drought" | "fireDanger" | "activeFires" | "nems" | "namConus" | "namHawaii" | "namAlaska" | "iconEu" | "iconD2" | "arome" | "aromeAntilles" | "aromeReunion" | "camsEu" | "iconEuWaves" | "hrrrAlaska" | "hrrrConus" | "bomAccess" | "ukv" | "mblue")[]): void;
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' | 'additionalClassName'> & Partial<SveltePanePlugin<P>>;
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
- * Additional class name to add to custom Pane Plugin
14
+ * By default all SveltePanePlugins uses dark content
15
+ * Use this property fo enforce light content
15
16
  */
16
- additionalClassName?: string;
17
+ usesLightContent?: boolean;
17
18
  constructor(params: SveltePanePluginInitParams<P>);
18
19
  }
@@ -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(opts?: WindowClosingOptions): void;
137
+ ondestroy(): void;
137
138
  /**
138
- * Ready to be overloaded: Will be called before plugin is loaded, sync action called immediatelly after rqstOpen is fired
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] | null;
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, MouseEvent | TouchEvent | KeyboardEvent | undefined];
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: [];
@@ -15,8 +15,8 @@ import {
15
15
  Consent,
16
16
  GeolocationInfo,
17
17
  HomeLocation,
18
- LatLon,
19
18
  InstalledExternalPluginConfig,
19
+ LatLon,
20
20
  } from '@windy/interfaces.d';
21
21
 
22
22
  import {
@@ -33,10 +33,10 @@ import { ColorGradient } from '@windy/Color.d';
33
33
 
34
34
  import { MetricItem } from '@windy/Metric.d';
35
35
 
36
+ import type { SubscriptionInfo } from '@plugins/_shared/subscription-services/subscription-services.d';
36
37
  import type { DownloadedInfo, OfflineConfiguration } from '@plugins/offline/offline.d';
37
- import type RadarCalendar from '@plugins/_radar/calendar/RadarCalendar';
38
+ import type RadarCalendar from '@plugins/radar/calendar/RadarCalendar';
38
39
  import type SatelliteCalendar from '@plugins/satellite/calendar/SatelliteCalendar';
39
- import type { SubscriptionInfo } from '@plugins/_shared/subscription-services/subscription-services.d';
40
40
 
41
41
  /**
42
42
  * Custom animation particles settings
@@ -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
- prefferedProduct: DataSpecificationsObject<'ecmwf' | 'gfs' | 'icon' | 'iconEu'>;
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 onw which is succesfully loaded in trans module)
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 in hours
499
+ * Range of displayed radar history
495
500
  */
496
- radarRange: DataSpecificationsObject<'-12' | '-6' | '-1' | '0'>;
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 (call ad hp, homepage)
590
- * is shown or not
589
+ * Information, if startup weather box is shown or not
591
590
  */
592
- hpShown: DataSpecificationsObject<boolean>;
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
 
@@ -912,11 +905,21 @@ export interface DataSpecifications {
912
905
  */
913
906
  twitterConsent: DataSpecificationsObject<Omit<Consent, 'analytics'> | null>;
914
907
 
908
+ /**
909
+ * Counter to synchronize Client and native backup data
910
+ */
911
+ appLocalStorageCounter: DataSpecificationsObject<number | null>;
912
+
915
913
  /**
916
914
  * List of installed external plugins
917
915
  * @ignore
918
916
  */
919
917
  installedPlugins: DataSpecificationsObject<InstalledExternalPluginConfig[]>;
918
+
919
+ /*
920
+ * User has entered into arrange mode in RH menu
921
+ */
922
+ rhMenuArrangeMode: DataSpecificationsObject<boolean>;
920
923
  }
921
924
 
922
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?: string; stationId?: string };
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: (PluginSource & { section?: 'notificationPreferences' }) | undefined;
146
- articles: (PluginSource & { id: number }) | (PluginSource & PublicationParams) | undefined;
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
- 'hp-weather': PluginSource & {
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,6 +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;
222
+ menu: PluginSource; // FIXME: This typing is not correct. Poi selector on HP is calling menu with string 'pois'
224
223
  } & {
225
224
  [external: ExternalPluginIdent]:
226
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 unalble to type each individual external plugin
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
- 'hp-weather'?: TagPlugin<'hp-weather'>;
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
  >;
@@ -42,6 +42,7 @@ export interface SatelliteInfoJson {
42
42
 
43
43
  // content added during processing:
44
44
  hash: number;
45
+ // time interval for archive
45
46
  minDateTs: number;
46
47
  maxDateTs: number;
47
48
 
@@ -10,7 +10,6 @@ export declare const getDeviceID: () => string;
10
10
  *
11
11
  * @returns Generated random id (stored in localstorage, so it is semi-persistent)
12
12
  */
13
- export declare const getVirtualDeviceID: () => string;
14
13
  /**
15
14
  * Returns device info if any exist
16
15
  *
@@ -1,3 +1,4 @@
1
+ /// <reference types="@windy/declarations/windy-modules" />
1
2
  import './utils/errorLogger';
2
3
  import './leafletExt/CanvasLayer';
3
4
  import './services/params';
@@ -8,7 +9,6 @@ import './pluginSystem/TagPlugin';
8
9
  import './pluginSystem/WindowPlugin';
9
10
  import './pluginSystem/pluginsCtrl';
10
11
  import './ui/components';
11
- import './ui/loadersUI';
12
12
  import './ui/timeAnimation';
13
13
  import './ui/visibility';
14
14
  import './render/renderTile';
@@ -49,8 +49,8 @@ export * as pois from './services/pois';
49
49
  export * as reverseName from './services/reverseName';
50
50
  export * as showableErrorsService from './services/showableErrorsService';
51
51
  export * as trans from './services/trans';
52
- export * as hp from './ui/hp';
53
- export { default as promo } from './ui/promo';
52
+ export * as startupWeather from './ui/startupWeather';
53
+ export * as promo from './ui/promo';
54
54
  export * as query from './ui/query';
55
55
  export * as rhMessage from './ui/rhMessage';
56
56
  export * as user from './ui/user';
@@ -59,10 +59,8 @@ export * as BindedCheckbox from './uiClasses/BindedCheckbox';
59
59
  export * as BindedSwitch from './uiClasses/BindedSwitch';
60
60
  export * as BottomSlide from './uiClasses/BottomSlide';
61
61
  export * as ClickHandler from './uiClasses/ClickHandler';
62
- export * as Detail1hCheckbox from './uiClasses/Detail1hCheckbox';
63
62
  export * as Drag from './uiClasses/Drag';
64
63
  export * as DraggableDiv from './uiClasses/DraggableDiv';
65
- export * as DropDown from './uiClasses/DropDown';
66
64
  export * as GhostBox from './uiClasses/GhostBox';
67
65
  export * as Legend from './uiClasses/Legend';
68
66
  export * as LongTap from './uiClasses/LongTap';