@windycom/plugin-devtools 3.0.1 → 3.0.3

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 (149) hide show
  1. package/README.md +1 -0
  2. package/package.json +1 -1
  3. package/types/client/Calendar.d.ts +104 -70
  4. package/types/client/Color.d.ts +25 -5
  5. package/types/client/DataTiler.d.ts +2 -2
  6. package/types/client/EcmwfProduct.d.ts +22 -0
  7. package/types/client/EventManager.d.ts +69 -0
  8. package/types/client/ExternalSveltePlugin.d.ts +4 -3
  9. package/types/client/GlBuffer.d.ts +45 -0
  10. package/types/client/GlMesh.d.ts +147 -0
  11. package/types/client/GlProgram.d.ts +41 -0
  12. package/types/client/GlRenderer.d.ts +95 -0
  13. package/types/client/GlTexture.d.ts +98 -0
  14. package/types/client/GlVertexArray.d.ts +38 -0
  15. package/types/client/IDB.d.ts +25 -4
  16. package/types/client/LabelsLayer.d.ts +69 -2
  17. package/types/client/Layer.d.ts +96 -26
  18. package/types/client/LayerClasses.d.ts +5 -0
  19. package/types/client/Metric.d.ts +31 -46
  20. package/types/client/MetricClasses.d.ts +1 -1
  21. package/types/client/Overlay.d.ts +5 -12
  22. package/types/client/OverlayClasses.d.ts +8 -0
  23. package/types/client/Particles.d.ts +1 -1
  24. package/types/client/Product.d.ts +38 -67
  25. package/types/client/ProductClasses.d.ts +51 -0
  26. package/types/client/RadarPlusProduct.d.ts +1 -1
  27. package/types/client/Renderer.d.ts +44 -19
  28. package/types/client/SatelliteProduct.d.ts +1 -1
  29. package/types/client/ShaderStorage.d.ts +25 -0
  30. package/types/client/StartupElementPlugin.d.ts +8 -0
  31. package/types/client/SveltePlugin.d.ts +5 -5
  32. package/types/client/SwitchableTileCache.d.ts +104 -0
  33. package/types/client/TileLayer.d.ts +12 -3
  34. package/types/client/TileLayerCustom.d.ts +51 -0
  35. package/types/client/TileLayerMulti.d.ts +53 -0
  36. package/types/client/TileLayerPreprocessorStandalone.d.ts +45 -0
  37. package/types/client/TileLayerRenderer.d.ts +24 -0
  38. package/types/client/TileLayerUtils.d.ts +43 -0
  39. package/types/client/TilePreprocessor.d.ts +27 -0
  40. package/types/client/TopoMap.d.ts +4 -4
  41. package/types/client/WindowPlugin.d.ts +7 -6
  42. package/types/client/appsFlyer.d.ts +2 -1
  43. package/types/client/baseMap.d.ts +12 -2
  44. package/types/client/broadcast.d.ts +1 -1
  45. package/types/client/cityLabels.d.ts +2 -3
  46. package/types/client/colorGradients.d.ts +4 -10
  47. package/types/client/colors.d.ts +1 -2
  48. package/types/client/css.test.d.ts +1 -0
  49. package/types/client/customProtocol.d.ts +11 -0
  50. package/types/client/d.ts.files/GlObj.d.ts +1 -5
  51. package/types/client/d.ts.files/Metric.d.ts +23 -2
  52. package/types/client/d.ts.files/alerts.d.ts +1 -0
  53. package/types/client/d.ts.files/broadcast.d.ts +31 -35
  54. package/types/client/d.ts.files/dataSpecifications.d.ts +82 -66
  55. package/types/client/d.ts.files/favs.d.ts +7 -18
  56. package/types/client/d.ts.files/glUtils.d.ts +71 -0
  57. package/types/client/d.ts.files/http.d.ts +4 -4
  58. package/types/client/d.ts.files/interpolatorTypes.d.ts +5 -5
  59. package/types/client/d.ts.files/lib.d.ts +1 -2
  60. package/types/client/d.ts.files/liveAlerts.d.ts +52 -0
  61. package/types/client/d.ts.files/mapUtils.d.ts +25 -0
  62. package/types/client/d.ts.files/outgoingMessages.d.ts +1 -1
  63. package/types/client/d.ts.files/plugin-params.d.ts +46 -24
  64. package/types/client/d.ts.files/plugins.d.ts +44 -31
  65. package/types/client/d.ts.files/rootScope.d.ts +2 -0
  66. package/types/client/d.ts.files/singleclick.d.ts +4 -2
  67. package/types/client/d.ts.files/startup.d.ts +7 -52
  68. package/types/client/d.ts.files/storage.d.ts +0 -11
  69. package/types/client/d.ts.files/user.d.ts +6 -1
  70. package/types/client/d.ts.files/webcams.d.ts +9 -2
  71. package/types/client/dataLoader.d.ts +2 -2
  72. package/types/client/detectDevice.d.ts +3 -0
  73. package/types/client/embed.d.ts +2 -7
  74. package/types/client/errorLogger.d.ts +20 -1
  75. package/types/client/externalPlugins.d.ts +5 -1
  76. package/types/client/fetch.d.ts +62 -5
  77. package/types/client/format.d.ts +12 -0
  78. package/types/client/glContextUtils.d.ts +9 -0
  79. package/types/client/glStatus.d.ts +7 -0
  80. package/types/client/glTileRender.d.ts +1 -7
  81. package/types/client/glUtils.d.ts +119 -0
  82. package/types/client/http.d.ts +0 -6
  83. package/types/client/idbConnection.d.ts +13 -0
  84. package/types/client/idbInstances.d.ts +118 -13
  85. package/types/client/landLayer.d.ts +3 -0
  86. package/types/client/layers.d.ts +5 -2
  87. package/types/client/legends.d.ts +1 -1
  88. package/types/client/lib.d.ts +11 -21
  89. package/types/client/liveAlerts.d.ts +2 -2
  90. package/types/client/location.d.ts +1 -1
  91. package/types/client/map.d.ts +94 -15
  92. package/types/client/mapUtils.d.ts +66 -0
  93. package/types/client/math.d.ts +14 -0
  94. package/types/client/mobile.d.ts +16 -41
  95. package/types/client/mobileUtils.d.ts +10 -0
  96. package/types/client/models.d.ts +2 -6
  97. package/types/client/overlays.d.ts +4 -3
  98. package/types/client/particleRenderers.d.ts +1 -1
  99. package/types/client/picker.d.ts +4 -8
  100. package/types/client/plugins.d.ts +0 -4
  101. package/types/client/products.d.ts +53 -2
  102. package/types/client/promo.d.ts +28 -5
  103. package/types/client/pushNotifications.d.ts +19 -1
  104. package/types/client/renderCtrl.d.ts +1 -1
  105. package/types/client/renderTile.d.ts +2 -2
  106. package/types/client/renderUtils.d.ts +21 -27
  107. package/types/client/renderers.d.ts +6 -9
  108. package/types/client/reverseName.d.ts +2 -1
  109. package/types/client/rhMessage.d.ts +1 -1
  110. package/types/client/rootScope.d.ts +17 -9
  111. package/types/client/router.d.ts +41 -9
  112. package/types/client/seoParser.d.ts +35 -0
  113. package/types/client/showableErrorsService.d.ts +10 -6
  114. package/types/client/singleclick.d.ts +1 -1
  115. package/types/client/startup.d.ts +48 -0
  116. package/types/client/startupUtils.d.ts +19 -0
  117. package/types/client/store.d.ts +20 -52
  118. package/types/client/subscription.d.ts +3 -26
  119. package/types/client/throttler.d.ts +32 -0
  120. package/types/client/tileHelpers.d.ts +35 -0
  121. package/types/client/tileInterpolator.d.ts +1 -1
  122. package/types/client/tileLayerInterpolator.d.ts +40 -0
  123. package/types/client/tileLayerSource.d.ts +98 -0
  124. package/types/client/timestampUtils.test.d.ts +1 -0
  125. package/types/client/topMessage.d.ts +22 -0
  126. package/types/client/user.d.ts +1 -0
  127. package/types/client/userAlerts.d.ts +0 -4
  128. package/types/client/userConsent.d.ts +0 -2
  129. package/types/client/userFavs.d.ts +17 -12
  130. package/types/client/utils.d.ts +78 -25
  131. package/types/client/utils.test.d.ts +1 -0
  132. package/types/iconfont.d.ts +2 -5
  133. package/types/interfaces.d.ts +290 -88
  134. package/types/lang-files.d.ts +578 -98
  135. package/types/leaflet-gl.d.ts +12773 -0
  136. package/types/types.d.ts +323 -11
  137. package/types/client/d.ts.files/Calendar.d.ts +0 -96
  138. package/types/client/d.ts.files/CanvasLayer.d.ts +0 -70
  139. package/types/client/d.ts.files/Color.d.ts +0 -94
  140. package/types/client/d.ts.files/DataTiler.d.ts +0 -45
  141. package/types/client/d.ts.files/LandMask.d.ts +0 -17
  142. package/types/client/d.ts.files/Layer.d.ts +0 -191
  143. package/types/client/d.ts.files/PoisOverlay.d.ts +0 -27
  144. package/types/client/d.ts.files/Renderer.d.ts +0 -44
  145. package/types/client/d.ts.files/TileLayerCanvas.d.ts +0 -78
  146. package/types/client/d.ts.files/TileLayerMultiPatch.d.ts +0 -13
  147. package/types/client/d.ts.files/products.d.ts +0 -60
  148. package/types/client/imaker.d.ts +0 -112
  149. package/types/offline.d.ts +0 -100
@@ -10,11 +10,68 @@
10
10
  *
11
11
  * @module map
12
12
  */
13
+ import { DivIcon } from '@leafletGl';
13
14
  import type { LatLon } from '@windy/interfaces.d';
14
15
  import type { Pixel } from '@windy/types';
15
- import type { MapLibreMap } from 'plugins/_shared/maplibre/mapLibreMap';
16
16
  /**
17
- * Already initialized instance of Leaflet L.Map
17
+ * Use this object to lookup proper order IDs for different layers.
18
+ * Higher order ID layers always draw on top of lower order ID layers.
19
+ */
20
+ export declare const layerOrder: {
21
+ /**
22
+ * Used for the colored land-sea layer. Bottom of the stack.
23
+ */
24
+ LANDSEA_MASK_COLORED: number;
25
+ /**
26
+ * Main bucket for weather layers. Draws above the colored land/sea mask, but below everything else.
27
+ */
28
+ MAIN: number;
29
+ /**
30
+ * Bucket for rendering satellite layer.
31
+ */
32
+ SATELLITE: number;
33
+ /**
34
+ * Bucket for rendering radar layer.
35
+ */
36
+ RADAR: number;
37
+ /**
38
+ * Particles overlay.
39
+ */
40
+ PARTICLES: number;
41
+ /**
42
+ * Land/sea mask, to mask out some parts of the main weather map.
43
+ */
44
+ LANDMASK_SEAMASK: number;
45
+ /**
46
+ * Used for the raster base map (the mostly transparent one with borders and outlines of water bodies).
47
+ * Draws above the weather layers and land/sea mask.
48
+ */
49
+ BASE_MAP: number;
50
+ /**
51
+ * Bucket where particles are moved if the map is zoomed in enough to show outdoor map instead of the grey base map.
52
+ */
53
+ PARTICLES_HIGH_ZOOM: number;
54
+ /**
55
+ * Airspaces map overlay.
56
+ */
57
+ AIRSPACES: number;
58
+ /**
59
+ * WebGL POIs overlay (e.g. fire-spots).
60
+ */
61
+ WEBGL_POIS: number;
62
+ /**
63
+ * Hurricane overlay.
64
+ */
65
+ HURRICANES: number;
66
+ /**
67
+ * Isolines overlay.
68
+ * Display on top of both hurricanes and airspaces, since neither contains any text (at least not in their canvases), but isolines do have text.
69
+ * Note that hurricane markers/popups will display above all MapLibre layers, including this one.
70
+ */
71
+ ISOLINES: number;
72
+ };
73
+ /**
74
+ * Already initialized instance of LeafletGL Map
18
75
  *
19
76
  * @example
20
77
  * ```js
@@ -25,7 +82,7 @@ import type { MapLibreMap } from 'plugins/_shared/maplibre/mapLibreMap';
25
82
  * });
26
83
  * ```
27
84
  */
28
- export declare const map: L.Map;
85
+ export declare const map: any;
29
86
  /**
30
87
  * Already initialized reusable set of minimalistic Leaflet markers
31
88
  *
@@ -39,12 +96,12 @@ export declare const map: L.Map;
39
96
  * ```js
40
97
  * import { map, markers } from '@windy/map';
41
98
  *
42
- * const myPulsatingMarker = L.marker([ 50, 14 ], {
99
+ * const myPulsatingMarker = marker([ 50, 14 ], {
43
100
  * icon: markers.pulsatingIcon
44
101
  * }).addTo( map );
45
102
  * ```
46
103
  */
47
- export declare const markers: Record<string, L.DivIcon>;
104
+ export declare const markers: Record<string, DivIcon>;
48
105
  /**
49
106
  * @ignore
50
107
  */
@@ -69,23 +126,45 @@ export declare function ensurePointVisibleY(lat: number, lon: number, offset: nu
69
126
  * @ignore
70
127
  */
71
128
  export declare function panToOffset(y: Pixel, lat: number, lon: number): void;
129
+ export declare let hasMask: boolean;
130
+ export declare function toggleLandMask(enableMask: boolean): void;
131
+ export declare function toggleSeaMask(enableMask: boolean): void;
132
+ export declare function toggleLandSeaMaskColored(enableMask: boolean): void;
72
133
  /**
73
134
  * Retrieves the map tiles from the mapTilesRecord.
74
135
  * @ignore
75
136
  * @returns The map tiles.
76
137
  */
77
138
  export declare const getMapTiles: (patchType?: string) => Record<import("@windy/baseMap").MapTilesKeys, string>;
78
- /**
79
- * Following object (singleton) contains all the stuff required for
80
- * integration of mapLibre Gl into the client.
81
- */
82
- export declare const mapLibre: {
83
- /**
84
- * Instance of our own mapLibre map wrapper Class
85
- */
86
- wrapper: MapLibreMap | null;
87
- };
88
139
  /**
89
140
  * Just handy shortcut to detect that globe is active
90
141
  */
91
142
  export declare const isGlobeActive: () => boolean;
143
+ type LoadCallback = (...args: unknown[]) => void;
144
+ export declare function whenMapInitialized(callback: LoadCallback): void;
145
+ /**
146
+ * Requests the presence of a large loader, or removes such request.
147
+ * Each loader request is tied to some `id` - any unique identifier of a component that requested it.
148
+ * A loader is displayed for as long as any component requests one.
149
+ *
150
+ * Calling the function with `setTileLayerLoader(id, true)` when the loader was already requested before has no effect,
151
+ * and calling it with `setTileLayerLoader(id, false)` when the loader was already removed also has no effect.
152
+ *
153
+ * Example: both "tileLayer" and "cityLabels" might be requesting the presence of a loader, but "cityLabels" are done loading
154
+ * before "tileLayer" and remove their request, but the loader is still visible until "tileLayer" also removes its loader request.
155
+ * @param id - The string identifier of the calling component.
156
+ * @param loaderActive - Whether a loader is requested or not.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * const loaderId = "tileLayer";
161
+ * // Start of loading - we request a loader:
162
+ * setTileLayerLoader(loaderId, true);
163
+ * // Actually load something
164
+ * await loadSomething();
165
+ * // Remove our loader request:
166
+ * setTileLayerLoader(loaderId, false);
167
+ * ```
168
+ */
169
+ export declare function setTileLayerLoader(id: string, loaderActive: boolean): void;
170
+ export {};
@@ -0,0 +1,66 @@
1
+ import { LngLatBounds } from '@leafletGl';
2
+ import type { LatLngBounds, LngLatBoundsLike } from '@leafletGl';
3
+ import type { BoxBounds2D } from './d.ts.files/math';
4
+ export declare const utils: {
5
+ isWebGl2: boolean;
6
+ /** WebGL context type key - used to access context-relevant shaders sources */
7
+ context: "WGL1" | "WGL2";
8
+ };
9
+ /**
10
+ * @summary Computes nearest integer zoom w.r.t the supplied zoom offset (in case of different tile size than 512px) and optional upper bound
11
+ * @param map
12
+ * @param zoomOffset
13
+ * @param upperBound
14
+ */
15
+ export declare function getSafeZoom(zoomOffset: number, upperBound?: number): number;
16
+ /**
17
+ * @summary Enumerates visible world copies for the current viewport state
18
+ * @param map MapLibre map used to query current viewport state
19
+ * @returns Array of integers representing each copy and its "position" in the repeated world coordinates (e.g. [-1, 0 = canonical, 1, 2])
20
+ */
21
+ export declare function getWorldVisibleRectOffsets(): number[];
22
+ /**
23
+ * @summary Coverts MapLibre LngLat bounds to mercator bounding box with coordinates in range <0.0,1.0>
24
+ * @param bounds
25
+ */
26
+ export declare function lngLatBoundsToMercator(bounds: LngLatBounds): BoxBounds2D;
27
+ /**
28
+ * Viewport tile padding, 1 = viewport is padded by one tile on each side
29
+ * - required mainly for data extrapolation since data outside of viewport have to be accessed
30
+ */
31
+ export declare const tilePaddingSize: number;
32
+ /**
33
+ * @summary Computes viewport tile bounds defined in tile coordinates for current map viewport and zoom
34
+ * - in case of padding is defined, returns tile bounds computed from the padded lat-lon bounds
35
+ * @param map
36
+ * @param zoom
37
+ */
38
+ export declare function getTileBounds(zoom: number, toCanonical?: boolean): BoxBounds2D;
39
+ /**
40
+ * @summary Converts tile bounds to Maplibre LngLatBounds
41
+ * @param tileBounds Tile bounds in tile coordinates
42
+ * @param zoom Integer (rounded) zoom w.r.t. the supplied tile bounds
43
+ */
44
+ export declare function tileBoundsToLatLonBounds(tileBounds: BoxBounds2D, zoom: number): LngLatBounds;
45
+ /**
46
+ * @summary Converts lat-lon bounds (defined either as MapLibre LngLatBounds or as BoxBounds2D) to bounds defined in tile coordinates
47
+ * @param latLonBounds
48
+ * @param zoom Integer (rounded) zoom for which to compute the tile bounds
49
+ */
50
+ export declare function latLonBounds2TileBounds(latLonBounds: LngLatBounds | BoxBounds2D, zoom: number): BoxBounds2D;
51
+ /**
52
+ * @summary Since maplibre tile zoom is based on default tile size 512px, other sizes lead to different zoom (e.g. 256px has zoom + 1...)
53
+ * - that means, that while map is having zoom 5, the tile with different tile size can have zoom 6
54
+ * @param tileSizeInPixels For which tile size to compute zoom offset
55
+ * @returns {number} Zoom offset delta to be added to the queried map zoom
56
+ */
57
+ export declare function tileSizeToZoomOffset(tileSizeInPixels: number): number;
58
+ /**
59
+ * Converts Leaflet geodesic bounds to maplibre bounds
60
+ * @param lineBounds Geodesic bounds
61
+ * @returns {LngLatBoundsLike}
62
+ */
63
+ export declare function geoBoundsToMaplibreBounds(lineBounds: LatLngBounds): LngLatBoundsLike;
64
+ export declare function createPlaceholderImageCanvas(noDataPattern: boolean, cssColor?: string): HTMLCanvasElement;
65
+ export declare function createPlaceholderImage(noDataPattern: boolean, cssColor?: string): Promise<HTMLImageElement>;
66
+ export declare function queryWebGlVersion(): void;
@@ -0,0 +1,14 @@
1
+ export declare class Vector2 {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export declare class Vector3 extends Vector2 {
6
+ z: number;
7
+ }
8
+ export declare class Vector4 extends Vector3 {
9
+ w: number;
10
+ }
11
+ export type BoxBounds2D = {
12
+ min: Vector2;
13
+ max: Vector2;
14
+ };
@@ -9,22 +9,6 @@
9
9
  * and modules consumed by plugins, MUST be listed here.
10
10
  */
11
11
  export * as errorLogger from './utils/errorLogger';
12
- /**
13
- const originalGetCurrentPosition = navigator.geolocation.getCurrentPosition;
14
- navigator.geolocation.getCurrentPosition = (...args) => {
15
- alert(`XXX getCurrentPosition ${new Error().stack}`);
16
- debugger;
17
- originalGetCurrentPosition.call(navigator.geolocation, ...args);
18
- };
19
- // Monkey-patch watchPosition
20
- const originalWatchPosition = navigator.geolocation.watchPosition;
21
- navigator.geolocation.watchPosition = (...args) => {
22
- alert('XXX watchPosition');
23
- debugger;
24
- return originalWatchPosition.call(navigator.geolocation, ...args);
25
- };
26
- */
27
- import './leafletExt/CanvasLayer';
28
12
  export * as Evented from './utils/Evented';
29
13
  export * as css from './utils/css';
30
14
  export * as fetch from './utils/fetch';
@@ -34,25 +18,24 @@ export * as http from './utils/http';
34
18
  export * as log from './utils/log';
35
19
  export { default as lruCache } from './utils/lruCache';
36
20
  export { default as storage } from './utils/storage';
21
+ export * as IDB from './utils/IDB';
22
+ export * as idbInstances from './utils/idbInstances';
37
23
  export * as subscription from './utils/subscription';
38
24
  export * as utils from './utils/utils';
25
+ export * as mapUtils from './utils/mapUtils';
26
+ export * as customProtocol from './utils/customProtocol';
27
+ export * as landLayer from './map/landLayer';
39
28
  export * as errors from './utils/errors';
40
- export * as IDB from './utils/IDB';
41
- export * as idbInstances from './utils/idbInstances';
29
+ export * as throttler from './utils/throttler';
30
+ export * as EventManager from './utils/EventManager';
42
31
  export * as Calendar from './weatherClasses/Calendar';
43
32
  export * as Color from './weatherClasses/Color';
44
- export * as EcmwfProduct from './weatherClasses/EcmwfProduct';
45
- export * as HrrrProducts from './weatherClasses/HrrrProducts';
46
- export * as IconProducts from './weatherClasses/IconProducts';
47
33
  export * as Layer from './weatherClasses/Layer';
48
34
  export * as Metric from './weatherClasses/Metric';
49
35
  export * as MetricClasses from './weatherClasses/MetricClasses';
50
- export * as NamProducts from './weatherClasses/NamProducts';
51
36
  export * as Overlay from './weatherClasses/Overlay';
52
37
  export * as OverlayClasses from './weatherClasses/OverlayClasses';
53
38
  export * as Product from './weatherClasses/Product';
54
- export * as SatelliteProduct from './weatherClasses/SatelliteProduct';
55
- export * as StaticProduct from './weatherClasses/StaticProduct';
56
39
  export { default as layers } from './weather/layers';
57
40
  export { default as legends } from './weather/legends';
58
41
  export { default as metrics } from './weather/metrics';
@@ -70,7 +53,6 @@ export * as deviceLogging from './services/deviceLogging';
70
53
  export * as geolocation from './services/geolocation';
71
54
  export * as liveAlerts from './services/liveAlerts';
72
55
  export * as notifications from './services/notifications';
73
- export * as ogTags from './services/ogTags';
74
56
  export * as params from './services/params';
75
57
  export * as pois from './services/pois';
76
58
  export * as reverseName from './services/reverseName';
@@ -92,12 +74,12 @@ export { default as plugins } from './pluginSystem/plugins';
92
74
  export * as pluginsCtrl from './pluginSystem/pluginsCtrl';
93
75
  export * as externalPlugins from './pluginSystem/externalPlugins';
94
76
  export * as BottomSlide from './uiClasses/BottomSlide';
95
- export * as ClickHandler from './uiClasses/ClickHandler';
96
77
  export * as Drag from './uiClasses/Drag';
97
78
  export * as Swipe from './uiClasses/Swipe';
98
79
  export * as Window from './uiClasses/Window';
99
80
  export * as components from './ui/components';
100
- export * as startupWeather from './ui/startupWeather';
81
+ export * as startup from './ui/startup';
82
+ export * as startupUtils from './ui/startupUtils';
101
83
  export * as keyboard from './ui/keyboard';
102
84
  export * as location from './ui/location';
103
85
  export * as permanentPromos from './ui/permanentPromos';
@@ -107,26 +89,20 @@ export * as rhMessage from './ui/rhMessage';
107
89
  export * as timeAnimation from './ui/timeAnimation';
108
90
  export * as visibility from './ui/visibility';
109
91
  export * as share from './ui/share';
110
- export * as loadArticlesOrWhatsNew from './ui/loadArticlesOrWhatsNew';
111
- export * as DataTiler from './renderClasses/DataTiler';
112
- export * as Particles from './renderClasses/Particles';
92
+ export * as topMessage from './ui/topMessage';
113
93
  export * as Renderer from './renderClasses/Renderer';
114
94
  export * as TileLayer from './renderClasses/TileLayer';
115
- export { default as TileLayerCanvas } from './renderClasses/TileLayerCanvas';
116
- export * as dataLoader from './render/dataLoader';
117
95
  export * as interpolator from './render/interpolator';
118
- export { default as particleRenderers } from './render/particleRenderers';
119
96
  export * as renderCtrl from './render/renderCtrl';
120
97
  export * as renderUtils from './render/renderUtils';
121
98
  export { default as renderers } from './render/renderers';
122
- export * as tileInterpolator from './render/tileInterpolator';
123
- export { default as glTileRender } from './render/glTileRender';
124
- export * as renderTile from './render/renderTile';
125
- export * as tileLayer from './render/tileLayerInstance';
126
- export { default as GlObj } from './wgUtils/GlObj';
99
+ export * as tileInterpolator from './render/tileLayerInterpolator';
100
+ export * as tileLayerSource from './tileCache/tileLayerSource';
101
+ export * as SwitchableTileCache from './tileCache/SwitchableTileCache';
102
+ export * as TilePreprocessor from './tileCache/TilePreprocessor';
103
+ export * as glUtils from './glUtils/glUtils';
104
+ export * as ShaderStorage from './shaders/ShaderStorage';
127
105
  export { default as LabelsLayer } from './mapClasses/LabelsLayer';
128
- export { default as LandMask } from './mapClasses/LandMask';
129
- export { default as TileLayerMultiPatch } from './mapClasses/TileLayerMultiPatch';
130
106
  export * as baseMap from './map/baseMap';
131
107
  export * as cityLabels from './map/cityLabels';
132
108
  export * as map from './map/map';
@@ -139,7 +115,6 @@ export * as nativeStorage from './capacitor/nativeStorage';
139
115
  export * as pushNotifications from './capacitor/pushNotifications';
140
116
  export * as appsFlyer from './capacitor/appsFlyer';
141
117
  export * as showableErrorsService from './capacitor/showableErrorsService';
142
- import './ui/patchAndPromoCtrl';
143
118
  import './ui/storeLastPosition';
144
119
  import './services/customColors';
145
120
  import './services/compatibilityCheck';
@@ -5,3 +5,13 @@
5
5
  * @param disableForcedReloading Disable reloads, if location is the same
6
6
  */
7
7
  export declare const reloadAppWithURL: (url: string, disableForcedReloading?: boolean) => void;
8
+ export declare const isFrequentUser: () => {
9
+ sessionsPerDay: number;
10
+ daysWithUs: number;
11
+ };
12
+ export declare const isAppReviewNecessaryConditionFulfilled: (daysWithUs: number) => boolean;
13
+ /**
14
+ * Handles the Android back button press event.
15
+ */
16
+ export declare const onAndroidBackButton: () => void;
17
+ export declare const handleAppsFlyer: () => Promise<void>;
@@ -1,4 +1,4 @@
1
- import type { Layers } from '@windy/Layer.d';
1
+ import type { Layers } from '@windy/Layer';
2
2
  import type { UsedOverlays } from '@windy/Overlay';
3
3
  import type { LatLon } from '@windy/interfaces.d';
4
4
  import type { Overlays, PointProducts, Products } from '@windy/rootScope.d';
@@ -15,10 +15,6 @@ export declare const layer2product: {
15
15
  export declare const overlay2product: {
16
16
  [P in LayerOrOverlay]?: Products[];
17
17
  };
18
- /**
19
- * From list of products deduplicates icon/iconEu, iconWaves/iconEuWaves
20
- */
21
- export declare const removeModelsFromSameGroup: (productsList: Products[]) => Products[];
22
18
  /**
23
19
  * Return particular icon related model based on rqrd and avbl models
24
20
  */
@@ -26,7 +22,7 @@ export declare const bestModelFromSameGroup: (rqrdProduct: Products, avProducts:
26
22
  /**
27
23
  * Return idents of visible local products available in the current map boundaries (or empty array undefined)
28
24
  */
29
- export declare const betterProducts: <T extends LatLon, PT extends boolean, R extends PT extends true ? "gfs" | "ecmwf" | "icon" | "namConus" | "namHawaii" | "namAlaska" | "iconEu" | "iconD2" | "arome" | "aromeAntilles" | "aromeFrance" | "aromeReunion" | "canHrdps" | "canRdwpsWaves" | "czeAladin" | "iconEuWaves" | "hrrrAlaska" | "hrrrConus" | "bomAccess" | "bomAccessAd" | "bomAccessBn" | "bomAccessDn" | "bomAccessNq" | "bomAccessPh" | "bomAccessSy" | "bomAccessVt" | "ukv" | "jmaMsm" | "jmaCwmWaves" | "mblue" : "drought" | "radar" | "satellite" | "radarPlus" | "capAlerts" | "topoMap" | "gfs" | "ecmwf" | "ecmwfAnalysis" | "ecmwfWaves" | "gfsWaves" | "icon" | "cams" | "efi" | "cmems" | "fireDanger" | "activeFires" | "nems" | "namConus" | "namHawaii" | "namAlaska" | "iconEu" | "iconD2" | "arome" | "aromeAntilles" | "aromeFrance" | "aromeReunion" | "canHrdps" | "canRdwpsWaves" | "camsEu" | "czeAladin" | "iconEuWaves" | "hrrrAlaska" | "hrrrConus" | "bomAccess" | "bomAccessAd" | "bomAccessBn" | "bomAccessDn" | "bomAccessNq" | "bomAccessPh" | "bomAccessSy" | "bomAccessVt" | "ukv" | "jmaMsm" | "jmaCwmWaves" | "mblue">(latLon: T, pointFcts?: PT) => R[];
25
+ export declare const betterProducts: <T extends LatLon, PT extends boolean, R extends PT extends true ? "icon" | "namConus" | "namHawaii" | "namAlaska" | "iconEu" | "iconD2" | "arome" | "aromeAntilles" | "aromeFrance" | "aromeReunion" | "canHrdps" | "canRdwpsWaves" | "camsEu" | "czeAladin" | "iconEuWaves" | "hrrrAlaska" | "hrrrConus" | "bomAccess" | "bomAccessAd" | "bomAccessBn" | "bomAccessDn" | "bomAccessNq" | "bomAccessPh" | "bomAccessSy" | "bomAccessVt" | "ukv" | "jmaMsm" | "jmaCwmWaves" | "gfs" | "ecmwf" | "mblue" : "icon" | "radar" | "satellite" | "capAlerts" | "topoMap" | "nems" | "namConus" | "namHawaii" | "namAlaska" | "iconEu" | "iconD2" | "arome" | "aromeAntilles" | "aromeFrance" | "aromeReunion" | "canHrdps" | "canRdwpsWaves" | "camsEu" | "czeAladin" | "iconEuWaves" | "hrrrAlaska" | "hrrrConus" | "bomAccess" | "bomAccessAd" | "bomAccessBn" | "bomAccessDn" | "bomAccessNq" | "bomAccessPh" | "bomAccessSy" | "bomAccessVt" | "ukv" | "jmaMsm" | "jmaCwmWaves" | "gfs" | "ecmwf" | "ecmwfAnalysis" | "ecmwfWaves" | "gfsWaves" | "cams" | "efi" | "cmems" | "drought" | "fireDanger" | "activeFires" | "mblue">(latLon: T, pointFcts?: PT) => R[];
30
26
  /**
31
27
  * Return product string on a basis of overlay & wanted forecast model
32
28
  */
@@ -1,10 +1,11 @@
1
1
  import { Overlay } from '@windy/Overlay';
2
- import { AwpOverlay, CloudsOverlay, CurrentOverlay, FwiOverlay, RainPtypeOverlay, WaveOverlay } from '@windy/OverlayClasses';
2
+ import { AqiOverlay, AwpOverlay, CloudsOverlay, CurrentOverlay, FwiOverlay, RainPtypeOverlay, WaveOverlay } from '@windy/OverlayClasses';
3
3
  declare const overlays: {
4
4
  wind: Overlay<"wind", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
5
5
  temp: Overlay<"temp", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
6
6
  wetbulbtemp: Overlay<"temp", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
7
7
  solarpower: Overlay<"solarpower", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
8
+ wavePower: Overlay<"wavePower", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
8
9
  uvindex: Overlay<"uvindex", import("../weatherClasses/MetricClasses").UVIndexMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").UVIndexMetric>>;
9
10
  dewpoint: Overlay<"dewpoint", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
10
11
  gust: Overlay<"gust", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
@@ -49,8 +50,6 @@ declare const overlays: {
49
50
  ccl: Overlay<"ccl", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
50
51
  radar: Overlay<"radar", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
51
52
  satellite: Overlay<"satellite", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
52
- radarPlus: Overlay<"radarPlus", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
53
- satelliteIRBT: Overlay<"satellite", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
54
53
  capAlerts: Overlay<"capAlerts", undefined, import("../weatherClasses/Layer").Layer<undefined>>;
55
54
  efiWind: Overlay<"efiWind", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
56
55
  efiTemp: Overlay<"efiTemp", import("../weatherClasses/MetricClasses").NumberedMetric, import("../weatherClasses/Layer").Layer<import("../weatherClasses/MetricClasses").NumberedMetric>>;
@@ -66,5 +65,7 @@ declare const overlays: {
66
65
  heatmaps: Overlay<"heatmaps", undefined, undefined>;
67
66
  topoMap: Overlay<"topoMap", undefined, import("../weatherClasses/Layer").Layer<undefined>>;
68
67
  hurricanes: Overlay<"hurricanes", undefined, undefined>;
68
+ aqi: AqiOverlay<"aqi">;
69
+ radarPlus: Overlay<"radarPlus", undefined, undefined>;
69
70
  };
70
71
  export default overlays;
@@ -1,4 +1,4 @@
1
1
  import { Particles } from '@windy/Particles';
2
- import type { ParticlesIdent } from '@windy/Layer.d';
2
+ import type { ParticlesIdent } from '@windy/types';
3
3
  declare const particleRenderes: Record<ParticlesIdent, Particles>;
4
4
  export default particleRenderes;
@@ -1,8 +1,8 @@
1
1
  import { Evented } from '@windy/Evented';
2
- import type { OnHoverPOIData } from '@plugins/poi-libs/poi-libs.d';
3
2
  import type { LatLon } from '@windy/interfaces.d';
4
3
  import type { PluginsOpenParams } from '@windy/plugin-params.d';
5
- import type { Pixel, PickerOpener } from '@windy/types';
4
+ import type { Pixel } from '@windy/types';
5
+ import type { LatLng } from '@leafletGl';
6
6
  interface Events {
7
7
  pickerOpened: [PluginsOpenParams['picker'] & {
8
8
  source?: 'picker';
@@ -10,10 +10,6 @@ interface Events {
10
10
  pickerMoved: [PluginsOpenParams['picker']];
11
11
  pickerClosed: [];
12
12
  dataChanged: [];
13
- getPOIsAtXY: [Pixel, Pixel];
14
- POIloaded: [OnHoverPOIData];
15
- POIclose: [];
16
- rqstOpenPOIdetail: [PickerOpener];
17
13
  }
18
14
  /**
19
15
  * Main emitter for purpose of picker actions, must be pard of core, so it is here.
@@ -46,9 +42,9 @@ export declare class PickerDot {
46
42
  /** Resets previously offset picker position */
47
43
  resetOffset(): void;
48
44
  /** Returns picker dot position as Leaflet coords */
49
- getLatLng(): L.LatLng;
45
+ getLatLng(): LatLng;
50
46
  /** Returns lat and lon of the actual picker dot position */
51
- getLatLon(): LatLon;
47
+ getLatLon(x?: Pixel, y?: Pixel): LatLon;
52
48
  /** Returns position of pickerDot on Leaflet map */
53
49
  getDotPosition(): {
54
50
  x: Pixel;
@@ -1,7 +1,3 @@
1
1
  import type { Plugins } from './d.ts.files/plugins.d';
2
2
  declare const plugins: Plugins;
3
- /**
4
- * Promise resolves once installed external plugins have loaded into default export
5
- */
6
- export declare const externalPluginsLoaded: Promise<void>;
7
3
  export default plugins;
@@ -1,3 +1,54 @@
1
- import type { products as Iproducts } from './d.ts.files/products.d';
2
- declare const products: Iproducts;
1
+ import { Product } from '@windy/Product';
2
+ import { AromeProduct, AccessProduct, AccessCProduct, EcmwfForecastProduct, EcmwfProduct, SatAndRadarPlusProduct } from '@windy/ProductClasses';
3
+ import type { Products } from '@windy/rootScope.d';
4
+ type AllExportedProducts = Implements<{
5
+ [P in Products]: Product;
6
+ }, {
7
+ bomAccess: AccessProduct;
8
+ bomAccessAd: AccessCProduct;
9
+ bomAccessBn: AccessCProduct;
10
+ bomAccessDn: AccessCProduct;
11
+ bomAccessNq: AccessCProduct;
12
+ bomAccessPh: AccessCProduct;
13
+ bomAccessSy: AccessCProduct;
14
+ bomAccessVt: AccessCProduct;
15
+ mblue: Product;
16
+ ecmwf: EcmwfForecastProduct;
17
+ ecmwfWaves: Product;
18
+ ecmwfAnalysis: EcmwfProduct;
19
+ canHrdps: Product;
20
+ canRdwpsWaves: Product;
21
+ cams: Product;
22
+ camsEu: Product;
23
+ cmems: Product;
24
+ czeAladin: Product;
25
+ gfs: Product;
26
+ gfsWaves: Product;
27
+ icon: Product;
28
+ iconD2: Product;
29
+ iconEu: Product;
30
+ iconEuWaves: Product;
31
+ arome: Product;
32
+ aromeAntilles: AromeProduct;
33
+ aromeFrance: AromeProduct;
34
+ aromeReunion: AromeProduct;
35
+ nems: Product;
36
+ namAlaska: Product;
37
+ namConus: Product;
38
+ namHawaii: Product;
39
+ capAlerts: Product;
40
+ efi: Product;
41
+ radar: Product;
42
+ satellite: SatAndRadarPlusProduct;
43
+ hrrrAlaska: Product;
44
+ hrrrConus: Product;
45
+ ukv: Product;
46
+ drought: Product;
47
+ fireDanger: Product;
48
+ activeFires: Product;
49
+ jmaMsm: Product;
50
+ jmaCwmWaves: Product;
51
+ topoMap: Product;
52
+ }>;
53
+ declare const products: AllExportedProducts;
3
54
  export default products;
@@ -1,21 +1,44 @@
1
- import type { Timestamp } from '@windy/types';
1
+ import type { ISODateString, Timestamp, TimeRangeMs } from '@windy/types';
2
+ type PromoUniqueId = string;
2
3
  export interface PromoInfoObject {
3
- id: string;
4
+ id: PromoUniqueId;
4
5
  displayed: number;
5
6
  ts: Timestamp;
6
7
  }
7
8
  /**
8
9
  * Get basic info about promo for given ident
9
10
  */
10
- export declare const getCounter: (id: string) => Promise<PromoInfoObject>;
11
+ export declare const getCounter: (id: PromoUniqueId) => Promise<PromoInfoObject>;
11
12
  /**
12
13
  * Increases 'seen' counter for particular promo
13
14
  */
14
- export declare const hitCounter: (id: string, logEvent?: boolean) => Promise<void>;
15
+ export declare const hitCounter: (id: PromoUniqueId, logEvent?: boolean) => Promise<void>;
15
16
  /**
16
17
  * Flag the promo to be never seen again (by setting
17
18
  * its number to 1000)
18
19
  *
19
20
  * @param ident Ident
20
21
  */
21
- export declare const neverSee: (ident: string) => void;
22
+ export declare const neverSee: (ident: PromoUniqueId) => void;
23
+ /**
24
+ * Determines if promo should be displayed or not
25
+ */
26
+ export declare const shouldDisplayPromo: ({ id, end, counter, delay, }: {
27
+ /**
28
+ * Main ID of the promo. This key is also used in `promo` object in localStorage
29
+ */
30
+ id: PromoUniqueId;
31
+ /**
32
+ * ISO date, when the promo expires
33
+ */
34
+ end?: ISODateString;
35
+ /**
36
+ * How many times display promo to the user (respective on one device)
37
+ */
38
+ counter: number;
39
+ /**
40
+ * How often to display promo on particular device (in ms)
41
+ */
42
+ delay?: TimeRangeMs;
43
+ }) => Promise<boolean>;
44
+ export {};
@@ -1 +1,19 @@
1
- export declare const registerDevice: () => Promise<null>;
1
+ import type { LatLon } from '@windy/interfaces.d';
2
+ export interface NotificationExtraPayload extends LatLon {
3
+ /** Identifier of the process in node-notif */
4
+ processId: string;
5
+ id: string | undefined;
6
+ hrTimestamps: string;
7
+ icao?: string;
8
+ category: 'alert' | 'metar' | 'location';
9
+ notificationId?: string;
10
+ locationEntityId?: string;
11
+ }
12
+ export type RegistrationHash = string;
13
+ /**
14
+ * Ask for notif permissions if missing
15
+ *
16
+ * @returns null | registration Hash
17
+ */
18
+ export declare function requestPermissions(): Promise<RegistrationHash | null>;
19
+ export declare function registerDevice(): Promise<RegistrationHash | null>;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Major render controller
3
3
  *
4
- * @module renderCtrls
4
+ * @module renderCtrl
5
5
  *
6
6
  * LIMITATION: The system is not ready for situation of ongoing tasks, when new UI event start new tasks
7
7
  */
@@ -1,6 +1,6 @@
1
1
  import type { DataTile } from '@windy/dataLoader';
2
- import type { TileParams } from '@windy/Renderer.d';
2
+ import type { TileParams } from '@windy/Renderer';
3
3
  import type { TileLayerCanvas } from '@windy/TileLayerCanvas.d';
4
4
  declare const renderNoDataTile: (canvas: HTMLCanvasElement, url?: string) => void;
5
- declare const renderTile: (this: TileLayerCanvas, step: 1 | 2, canvas: HTMLCanvasElement, rqrdSyncNum: number, tInfo: TileParams, dTile: DataTile) => void;
5
+ declare const renderTile: (this: TileLayerCanvas, _step: 1 | 2, canvas: HTMLCanvasElement, rqrdSyncNum: number, tInfo: TileParams, dTile: DataTile) => void;
6
6
  export { renderNoDataTile, renderTile };