@opengeoweb/webmap 9.25.3 → 9.27.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/index.esm.js CHANGED
@@ -1,7 +1,44 @@
1
1
  import { compact, range, isEqual } from 'lodash';
2
- import { dateUtils, defaultDelay as defaultDelay$1 } from '@opengeoweb/shared';
2
+ import { PROJECTION, dateUtils, defaultDelay as defaultDelay$1 } from '@opengeoweb/shared';
3
3
  import { debounce, throttle } from 'throttle-debounce';
4
4
  import proj4 from 'proj4';
5
+ import i18n from 'i18next';
6
+
7
+ var en = {
8
+ "map-projection": "Map projection",
9
+ "hold-shift-to-zoom": "Hold SHIFT to zoom",
10
+ "layer-failed-to-load": "Layer failed to load.",
11
+ "layer-failed-to-load-message": "Layer with title \"{{title}}\" failed to load{{message}}",
12
+ "time-too-early": "Time too early",
13
+ "time-too-late": "Time too late",
14
+ "time-outside-range": "Time outside range"
15
+ };
16
+ var fi = {
17
+ "map-projection": "Karttaprojektio",
18
+ "hold-shift-to-zoom": "Zoomaa SHIFT painettuna",
19
+ "layer-failed-to-load": "Tason lataus epäonnistui",
20
+ "layer-failed-to-load-message": "Tason \"{{title}}\" lataus epäonnistui{{message}}",
21
+ "time-too-early": "Liian varhainen aika",
22
+ "time-too-late": "Liian myöhäinen aika",
23
+ "time-outside-range": "Aika valintavälin ulkopuolella"
24
+ };
25
+ var no = {
26
+ "map-projection": "Kartprojeksjon",
27
+ "hold-shift-to-zoom": "Hold SHIFT for å zoome",
28
+ "layer-failed-to-load": "Kartlaget kunne ikke lastes.",
29
+ "layer-failed-to-load-message": "Kartlaget med tittelen \"{{title}}\" kunne ikke lastes{{message}}",
30
+ "time-too-early": "Tid for tidlig",
31
+ "time-too-late": "Tid for sent",
32
+ "time-outside-range": "Tid utenfor spekteret"
33
+ };
34
+ var nl = {
35
+ };
36
+ var webmapTranslations = {
37
+ en: en,
38
+ fi: fi,
39
+ no: no,
40
+ nl: nl
41
+ };
5
42
 
6
43
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
7
44
 
@@ -5150,28 +5187,13 @@ const WMSVersion = {
5150
5187
  version111: '1.1.1',
5151
5188
  version130: '1.3.0'
5152
5189
  };
5153
- const WMProj4Defs = [['EPSG:4326', '+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees'], ['EPSG:4269', '+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees'], ['EPSG:3575', '+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'], ['EPSG:3785', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], ['EPSG:3857', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], ['EPSG:3411', '+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs'], ['EPSG:3412', '+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs'], ['EPSG:28992', '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs <>'], ['EPSG:32661', '+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'], ['EPSG:102100', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], ['EPSG:3067', '+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs']];
5154
- const epsgDescriptionLookup = {
5155
- 'EPSG:3411': 'NSIDC Sea Ice Polar Stereographic North',
5156
- 'EPSG:3412': 'NSIDC Sea Ice Polar Stereographic South',
5157
- 'EPSG:3575': 'Lambert azimuthal equal-area projection Europe',
5158
- 'EPSG:3785': 'Mercator (deprecated)',
5159
- 'EPSG:3857': 'Mercator',
5160
- 'EPSG:4258': 'ETRS89',
5161
- 'EPSG:4326': 'World Lat lon WGS84',
5162
- 'CRS:84': 'World Lat lon WGS84',
5163
- 'EPSG:25831': 'ETRS89 / UTM zone 31N',
5164
- 'EPSG:25832': 'ETRS89 / UTM zone 32N',
5165
- 'EPSG:28992': 'Dutch Amersfoort / RD New',
5166
- 'EPSG:32661': 'Polar Stereographic WGS 84 / UPS North',
5167
- 'EPSG:3067': 'ETRS89 / TM35FIN(E,N) -- Finland'
5168
- };
5190
+ const WMProj4Defs = [[PROJECTION.EPSG_4326.value, '+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees'], [PROJECTION.EPSG_4269.value, '+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees'], [PROJECTION.EPSG_3575.value, '+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'], [PROJECTION.EPSG_3785.value, '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], [PROJECTION.EPSG_3857.value, '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], [PROJECTION.EPSG_3411.value, '+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs'], [PROJECTION.EPSG_3412.value, '+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs'], [PROJECTION.EPSG_28992.value, '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs <>'], [PROJECTION.EPSG_32661.value, '+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'], [PROJECTION.EPSG_102100.value, '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], [PROJECTION.EPSG_3067.value, '+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs']];
5169
5191
  const mapImageStoreLength = 1000;
5170
5192
  const bgImageStoreLength = 360;
5171
5193
  const legendImageStoreLength = 500;
5172
5194
  const EVENT_GETCAPABILITIES_START = 'onstartgetcapabilities';
5173
5195
  const EVENT_GETCAPABILITIES_READY = 'onreadygetcapabilities';
5174
- const WMJSMAP_LONLAT_EPSGCODE = 'EPSG:4326';
5196
+ const WMJSMAP_LONLAT_EPSGCODE = PROJECTION.EPSG_4326.value;
5175
5197
 
5176
5198
  /* debug helper */
5177
5199
  const enableConsoleDebugging = false;
@@ -5529,6 +5551,7 @@ const flattenLayerTree = layerTree => {
5529
5551
  * @returns
5530
5552
  */
5531
5553
  const makeNodeLayerFromWMSGetCapabilityLayer = (layer, path = [], isleaf = false, nestedLayerPath = []) => {
5554
+ var _a, _b;
5532
5555
  const geographicBoundingBox = nestedLayerPath.reverse().reduce((p, c) => {
5533
5556
  return p || c.geographicBoundingBox;
5534
5557
  }, addBoundingBoxForLayer(layer));
@@ -5567,7 +5590,7 @@ const makeNodeLayerFromWMSGetCapabilityLayer = (layer, path = [], isleaf = false
5567
5590
  title: layerTitle || 'Layer',
5568
5591
  leaf: isleaf,
5569
5592
  path,
5570
- keywords: toArray(layer.KeywordList && layer.KeywordList.Keyword).map(keywords => keywords.value),
5593
+ keywords: toArray((_b = (_a = layer.KeywordList) === null || _a === void 0 ? void 0 : _a.Keyword) !== null && _b !== void 0 ? _b : []).map(keyword => keyword.value).filter(Boolean),
5571
5594
  abstract: layer.Abstract ? layer.Abstract.value : undefined,
5572
5595
  styles,
5573
5596
  dimensions,
@@ -6620,395 +6643,20 @@ $$b({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_RE
6620
6643
  * See the License for the specific language governing permissions and
6621
6644
  * limitations under the License.
6622
6645
  *
6623
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
6624
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
6646
+ * Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
6647
+ * Copyright 2024 - Finnish Meteorological Institute (FMI)
6625
6648
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
6626
6649
  * */
6627
- var I18n = {
6628
- delete: {
6629
- text: 'Delete'
6630
- },
6631
- delete_selected_flag_tooltip: {
6632
- tooltip: 'Delete selected flag'
6633
- },
6634
- add_flag_tooltip: {
6635
- tooltip: 'Add a flag with current latitude, longitude and name'
6636
- },
6637
- are_you_sure: {
6638
- text: 'Are you sure about deleting this flag?'
6639
- },
6640
- delete_title_confirm: {
6641
- text: 'Delete flag'
6642
- },
6643
- default_selected_flag: {
6644
- text: 'None'
6645
- },
6646
- selected_flag: {
6647
- text: 'Nearest flag:'
6648
- },
6649
- add_point_interest_abstract: {
6650
- text: 'Add or update your point of interest here with a latitude, a longitude and a name of choice.'
6651
- },
6652
- insert_name: {
6653
- text: 'Name:'
6654
- },
6655
- add_point_interest: {
6656
- text: 'Add point of interest'
6657
- },
6658
- add: {
6659
- text: 'Add'
6660
- },
6661
- place_search_term: {
6662
- text: 'Search for location&hellip;'
6663
- },
6664
- debug_searching_location: {
6665
- text: 'Searching for location in SQLite DB:'
6666
- },
6667
- debug_searching_sqlite_location: {
6668
- text: 'Searching for location with GeoNames API:'
6669
- },
6670
- geonames_api_call_failed: {
6671
- text: 'GeoNames API request failed'
6672
- },
6673
- geonames_sqlite_call_failed: {
6674
- text: 'GeoNames SQLite request failed.'
6675
- },
6676
- no_results_search: {
6677
- text: 'No results for search'
6678
- },
6679
- unable_to_connect_server: {
6680
- text: 'Unable to connect to the service.'
6681
- },
6682
- unable_to_search: {
6683
- text: 'Unable to perform a search'
6684
- },
6685
- no_urls_in_config: {
6686
- text: 'No GeoNames URLs defined in config file'
6687
- },
6688
- only_alpha_num_allowed: {
6689
- text: 'Search may only contain alpha numeric characters'
6690
- },
6691
- no_search_definition: {
6692
- text: 'Search term is empty'
6693
- },
6694
- service_has_error: {
6695
- text: '--- service has an error ---'
6696
- },
6697
- no_time_dimension_in_layer: {
6698
- text: 'No time dimension found in this layer'
6699
- },
6700
- no_service_defined: {
6701
- text: 'No service defined'
6702
- },
6703
- service_url_empty: {
6704
- text: 'Service URL is empty'
6705
- },
6706
- wms_service_exception_code: {
6707
- text: 'WMS Service exception with code '
6708
- },
6709
- unnamed_service: {
6710
- text: 'Unnamed service'
6711
- },
6712
- add_layers: {
6713
- text: 'Add layers&hellip;',
6714
- tooltip: 'Add new datasets, layers and services'
6715
- },
6716
- add_custom_service: {
6717
- text: 'Add a custom version 1.1.1 Web Map Service (WMS)'
6718
- },
6719
- properties_for: {
6720
- text: 'Properties for'
6721
- },
6722
- color_range: {
6723
- text: 'Color range'
6724
- },
6725
- reset: {
6726
- text: 'Reset'
6727
- },
6728
- apply: {
6729
- text: 'Apply'
6730
- },
6731
- min_value: {
6732
- text: 'Min value'
6733
- },
6734
- max_value: {
6735
- text: 'Max value'
6736
- },
6737
- wms_version: {
6738
- text: 'WMS version'
6739
- },
6740
- wms_comp_mode: {
6741
- text: 'WMS 1.3.0 BBOX compatibility mode'
6742
- },
6743
- projections: {
6744
- text: 'Projections'
6745
- },
6746
- projection: {
6747
- text: 'Projection'
6748
- },
6749
- epsg_code: {
6750
- text: 'EPSG Code'
6751
- },
6752
- bounding_box: {
6753
- text: 'Bounding Box'
6754
- },
6755
- file_metadata: {
6756
- text: 'File metadata'
6757
- },
6758
- show_file_metadata: {
6759
- text: 'Show file metadata'
6760
- },
6761
- download_data_wcs: {
6762
- text: 'Download data via WCS'
6763
- },
6764
- coordinate_reference_system: {
6765
- text: 'Coordinate reference system'
6766
- },
6767
- area_bounding_box: {
6768
- text: 'Area / Bounding box'
6769
- },
6770
- dimensions: {
6771
- text: 'Dimensions'
6772
- },
6773
- dimension: {
6774
- text: 'Dimension'
6775
- },
6776
- formats: {
6777
- text: 'Formats'
6778
- },
6779
- north: {
6780
- text: 'North'
6781
- },
6782
- west: {
6783
- text: 'West'
6784
- },
6785
- east: {
6786
- text: 'East'
6787
- },
6788
- south: {
6789
- text: 'South'
6790
- },
6791
- cell_size: {
6792
- text: 'Cell size'
6793
- },
6794
- x_resolution: {
6795
- text: 'X Resolution'
6796
- },
6797
- y_resolution: {
6798
- text: 'Y Resolution'
6799
- },
6800
- raster_size: {
6801
- text: 'Raster size'
6802
- },
6803
- raster_width: {
6804
- text: 'Raster width'
6805
- },
6806
- raster_height: {
6807
- text: 'Raster height'
6808
- },
6809
- format: {
6810
- text: 'Format'
6811
- },
6812
- show: {
6813
- text: 'Show'
6814
- },
6815
- create_permanent_links: {
6816
- text: 'Create permanent links'
6817
- },
6818
- please_select_product: {
6819
- text: 'Please select a product'
6820
- },
6821
- no_capability_element_found: {
6822
- text: 'No Capability element found in service'
6823
- },
6824
- no_wms_capability_element_found: {
6825
- text: 'No WMS Capability element found'
6826
- },
6827
- no_wms_layer_element_found: {
6828
- text: 'No WMS Layer element found'
6829
- },
6830
- settings_and_options: {
6831
- tooltip: 'Settings and options'
6832
- },
6833
- show_time_selection_window: {
6834
- text: 'Show time selection window&hellip;'
6835
- },
6836
- create_animation: {
6837
- text: 'Create animation&hellip;'
6838
- },
6839
- create_link: {
6840
- text: 'Create link&hellip;'
6841
- },
6842
- show_debug_information: {
6843
- text: 'Show debug information&hellip;'
6844
- },
6845
- add_custom_wms_service: {
6846
- text: 'Add custom WMS service&hellip;'
6847
- },
6848
- undo_zoom_pan_action: {
6849
- text: 'Undo zoom/pan action'
6850
- },
6851
- redo_zoom_pan_action: {
6852
- text: 'Redo zoom/pan action'
6853
- },
6854
- abort_loading: {
6855
- text: 'Abort loading'
6856
- },
6857
- about_the_adaguc_viewer: {
6858
- text: 'About the ADAGUC viewer',
6859
- tooptip: 'Display info about the ADAGUC viewer'
6860
- },
6861
- about_adaguc: {
6862
- text: 'About ADAGUC'
6863
- },
6864
- about_adaguc_more_information: {
6865
- text: '<br/><br/>Please visit <a target="_blank" href="http://adaguc.knmi.nl/">http://adaguc.knmi.nl/</a> for more information.<div>'
6866
- },
6867
- layers: {
6868
- text: 'Layers',
6869
- tooltip: 'Layers'
6870
- },
6871
- predefined_areas: {
6872
- tooltip: 'Select predefined areas'
6873
- },
6874
- basemaps_overlays: {
6875
- tooltip: 'Select basemaps and overlays'
6876
- },
6877
- add_layers_and_services: {
6878
- text: 'Add Layers and Services'
6879
- },
6880
- add_new_layer: {
6881
- tooltip: 'Add new layer'
6882
- },
6883
- clone_this_layer: {
6884
- tooltip: 'Clone this layer and place it on top of the layerlist'
6885
- },
6886
- remove_this_layer: {
6887
- tooltip: 'Remove this layer'
6888
- },
6889
- move_layer_up: {
6890
- tooltip: 'Move this layer up in the list and the map view'
6891
- },
6892
- move_layer_down: {
6893
- tooltip: 'Move this layer down in the list and the map view'
6894
- },
6895
- title: {
6896
- text: 'Title'
6897
- },
6898
- layer: {
6899
- text: 'Layer'
6900
- },
6901
- type: {
6902
- text: 'Type'
6903
- },
6904
- name: {
6905
- text: 'Name'
6906
- },
6907
- abstract: {
6908
- text: 'Abstract'
6909
- },
6910
- service: {
6911
- text: 'Service'
6912
- },
6913
- description: {
6914
- text: 'Description'
6915
- },
6916
- no_dimensions_available: {
6917
- text: 'No layers with a time dimension available.'
6918
- },
6919
- load_all: {
6920
- text: 'Load all'
6921
- },
6922
- play_animation: {
6923
- text: 'Play animation'
6924
- },
6925
- stop: {
6926
- text: 'Stop'
6927
- },
6928
- start: {
6929
- text: 'Start'
6930
- },
6931
- opacity: {
6932
- text: 'Opacity:'
6933
- },
6934
- zoom_to_this_layer: {
6935
- tooltip: 'Zoom to this layer'
6936
- },
6937
- start_or_stop_animation: {
6938
- tooltip: 'Start or stop animation'
6939
- },
6940
- reload_this_layer: {
6941
- tooltip: 'Reload this layer'
6942
- },
6943
- layer_properties: {
6944
- tooltip: 'Layer properties'
6945
- },
6946
- hide_or_display_layer: {
6947
- tooltip: 'Hide or display this layer'
6948
- },
6949
- select_layer_product_from_service: {
6950
- tooltip: 'Select a layer or product from the service'
6951
- },
6952
- change_style_layer: {
6953
- tooltip: 'Change the style of this layer'
6954
- },
6955
- available_styles: {
6956
- text: 'Available styles'
6957
- },
6958
- no_styles_available: {
6959
- text: 'No styles available'
6960
- },
6961
- default: {
6962
- text: 'Default'
6963
- },
6964
- embed: {
6965
- text: 'Embed'
6966
- },
6967
- time_selection: {
6968
- text: 'Time selection'
6969
- },
6970
- local_time: {
6971
- text: 'Local time'
6972
- },
6973
- year: {
6974
- text: 'Year'
6975
- },
6976
- month: {
6977
- text: 'Month'
6978
- },
6979
- day: {
6980
- text: 'Day'
6981
- },
6982
- hour: {
6983
- text: 'Hour'
6984
- },
6985
- min: {
6986
- text: 'Min'
6987
- },
6988
- select_layer: {
6989
- text: 'Select layer'
6990
- },
6991
- select_dimension: {
6992
- text: 'Select dimension'
6993
- },
6994
- start_at: {
6995
- text: 'Start at'
6996
- },
6997
- number_of_steps: {
6998
- text: 'Number of steps'
6999
- },
7000
- delay_ms: {
7001
- text: 'Delay (ms)'
7002
- },
7003
- enter_wms_version_url: {
7004
- text: 'Enter WMS version 1.1.1 URL here...'
7005
- },
7006
- enter_search_term: {
7007
- text: 'Enter your location here&hellip;'
7008
- },
7009
- not_available_message: {
7010
- text: 'Not available'
7011
- }
6650
+ const consoleErrorMessages = {
6651
+ noCapabilityElementFound: 'No Capability element found in service',
6652
+ noServiceDefined: 'No service defined',
6653
+ noWmsCapabilityElementFound: 'No WMS Capability element found',
6654
+ noWmsLayerElementFound: 'No WMS Layer element found',
6655
+ notAvailableMessage: 'Not available',
6656
+ serviceHasError: '--- service has an error ---',
6657
+ serviceUrlEmpty: 'Service URL is empty',
6658
+ unableToConnectServer: 'Unable to connect to the service.',
6659
+ wmsServiceExceptionCode: 'WMS Service exception with code'
7012
6660
  };
7013
6661
 
7014
6662
  class WMListener {
@@ -7347,12 +6995,12 @@ const WMJSGetCapabilities = (service, succes, fail, options, disableCache = fals
7347
6995
  headers = options.headers;
7348
6996
  }
7349
6997
  if (!isDefined(service)) {
7350
- fail(I18n.no_service_defined.text);
6998
+ fail(consoleErrorMessages.noServiceDefined);
7351
6999
  return;
7352
7000
  }
7353
7001
  if (service.length === 0) {
7354
7002
  debugLogger(DebugType.Error);
7355
- fail(I18n.service_url_empty.text);
7003
+ fail(consoleErrorMessages.serviceUrlEmpty);
7356
7004
  return;
7357
7005
  }
7358
7006
  /* Allow relative URL's */
@@ -7364,7 +7012,7 @@ const WMJSGetCapabilities = (service, succes, fail, options, disableCache = fals
7364
7012
  }
7365
7013
  if (!service.startsWith('http://') && !service.startsWith('https:') && !service.startsWith('//')) {
7366
7014
  debugLogger(DebugType.Error);
7367
- fail(I18n.service_url_empty.text);
7015
+ fail(consoleErrorMessages.serviceUrlEmpty);
7368
7016
  return;
7369
7017
  }
7370
7018
  if (service.indexOf('?') === -1) {
@@ -7439,10 +7087,10 @@ class WMJSService {
7439
7087
  throw new Error(message);
7440
7088
  }
7441
7089
  if (!jsonData.WMT_MS_Capabilities.Capability) {
7442
- throw new Error(I18n.no_wms_capability_element_found.text);
7090
+ throw new Error(consoleErrorMessages.noWmsCapabilityElementFound);
7443
7091
  }
7444
7092
  if (!jsonData.WMT_MS_Capabilities.Capability.Layer) {
7445
- throw new Error(I18n.no_wms_layer_element_found.text);
7093
+ throw new Error(consoleErrorMessages.noWmsLayerElementFound);
7446
7094
  }
7447
7095
  }
7448
7096
  }
@@ -7458,10 +7106,10 @@ class WMJSService {
7458
7106
  throw new Error(message);
7459
7107
  }
7460
7108
  if (!jsonData.WMS_Capabilities.Capability) {
7461
- throw new Error(I18n.no_wms_capability_element_found.text);
7109
+ throw new Error(consoleErrorMessages.noWmsCapabilityElementFound);
7462
7110
  }
7463
7111
  if (!jsonData.WMS_Capabilities.Capability.Layer) {
7464
- throw new Error(I18n.no_wms_layer_element_found.text);
7112
+ throw new Error(consoleErrorMessages.noWmsLayerElementFound);
7465
7113
  }
7466
7114
  }
7467
7115
  }
@@ -7474,7 +7122,7 @@ class WMJSService {
7474
7122
  try {
7475
7123
  capabilityObject = jsonData.WMS_Capabilities.Capability;
7476
7124
  } catch (_a) {
7477
- throw new Error(I18n.no_capability_element_found.text);
7125
+ throw new Error(consoleErrorMessages.noCapabilityElementFound);
7478
7126
  }
7479
7127
  }
7480
7128
  return capabilityObject;
@@ -7578,13 +7226,13 @@ class WMJSService {
7578
7226
  try {
7579
7227
  this.abstract = WMSCapabilities.Service.Abstract.value;
7580
7228
  } catch (e) {
7581
- this.abstract = I18n.not_available_message.text;
7229
+ this.abstract = consoleErrorMessages.notAvailableMessage;
7582
7230
  }
7583
7231
  // Get Title
7584
7232
  try {
7585
7233
  this.title = WMSCapabilities.Service.Title.value;
7586
7234
  } catch (e) {
7587
- this.title = I18n.not_available_message.text;
7235
+ this.title = consoleErrorMessages.notAvailableMessage;
7588
7236
  }
7589
7237
  // Get OnlineResource
7590
7238
  try {
@@ -7596,7 +7244,7 @@ class WMJSService {
7596
7244
  WMSCapabilities.Service.OnlineResource.attr['xlink:href'];
7597
7245
  }
7598
7246
  } catch (e) {
7599
- this.onlineresource = I18n.not_available_message.text;
7247
+ this.onlineresource = consoleErrorMessages.notAvailableMessage;
7600
7248
  }
7601
7249
  // Fill in flatlayer object
7602
7250
  this.getLayerObjectsFlat(() => null, () => null, false, options);
@@ -7631,7 +7279,7 @@ class WMJSService {
7631
7279
  return `Exception: ${code}.\n${value}`;
7632
7280
  }
7633
7281
  }
7634
- return I18n.wms_service_exception_code.text + code;
7282
+ return `${consoleErrorMessages.wmsServiceExceptionCode} ${code}`;
7635
7283
  }
7636
7284
  } catch (e) {
7637
7285
  // do nothing
@@ -11716,6 +11364,33 @@ class WMCanvasBuffer {
11716
11364
  }
11717
11365
  }
11718
11366
 
11367
+ const WEBMAP_NAMESPACE = 'webmap';
11368
+ // do not use `initReactI18next` as this is not a react library
11369
+ i18n.init({
11370
+ lng: 'en',
11371
+ ns: WEBMAP_NAMESPACE,
11372
+ interpolation: {
11373
+ escapeValue: false
11374
+ },
11375
+ resources: {
11376
+ en: {
11377
+ [WEBMAP_NAMESPACE]: webmapTranslations.en
11378
+ },
11379
+ fi: {
11380
+ [WEBMAP_NAMESPACE]: webmapTranslations.fi
11381
+ },
11382
+ no: {
11383
+ [WEBMAP_NAMESPACE]: webmapTranslations.no
11384
+ },
11385
+ nl: {
11386
+ [WEBMAP_NAMESPACE]: webmapTranslations.nl
11387
+ }
11388
+ }
11389
+ });
11390
+ const translateKeyOutsideComponents = (key, params = undefined) => i18n.t(key, Object.assign({
11391
+ ns: WEBMAP_NAMESPACE
11392
+ }, params));
11393
+
11719
11394
  const getBBOXandProjString = (layer, projection) => {
11720
11395
  let request = '';
11721
11396
  const {
@@ -11728,7 +11403,7 @@ const getBBOXandProjString = (layer, projection) => {
11728
11403
  }
11729
11404
  if (layer.version === WMSVersion.version130) {
11730
11405
  request += `CRS=${URLEncode(srs)}&`;
11731
- if (srs === 'EPSG:4326' && layer.wms130bboxcompatibilitymode === false) {
11406
+ if (srs === PROJECTION.EPSG_4326.value && layer.wms130bboxcompatibilitymode === false) {
11732
11407
  request += `BBOX=${bbox.bottom},${bbox.left},${bbox.top},${bbox.right}&`;
11733
11408
  } else {
11734
11409
  request += `BBOX=${bbox.left},${bbox.bottom},${bbox.right},${bbox.top}&`;
@@ -12019,10 +11694,13 @@ const getErrorsToDisplay = (canvasErrors, getLayerByServiceAndName) => {
12019
11694
  // Only show if layer is present and enabled
12020
11695
  if (layer && layer.enabled) {
12021
11696
  const message = error.linkedInfo.message ? `, ${error.linkedInfo.message}` : '';
12022
- return list.concat(`Layer with title ${error.linkedInfo.layer.title} failed to load${message}`);
11697
+ return list.concat(translateKeyOutsideComponents('layer-failed-to-load-message', {
11698
+ title: error.linkedInfo.layer.title || '',
11699
+ message
11700
+ }));
12023
11701
  }
12024
11702
  } else {
12025
- return list.concat('Layer failed to load.');
11703
+ return list.concat(translateKeyOutsideComponents('layer-failed-to-load'));
12026
11704
  }
12027
11705
  return list;
12028
11706
  }, []);
@@ -12531,7 +12209,7 @@ class WMTileRenderer {
12531
12209
  }
12532
12210
  }
12533
12211
  };
12534
- if (srs === 'EPSG:4326' || srs === 'EPSG:4258') {
12212
+ if (srs === PROJECTION.EPSG_4326.value || srs === PROJECTION.EPSG_4258.value) {
12535
12213
  numTilesAtLevelX *= 2;
12536
12214
  }
12537
12215
  if (tilenbottom < 1) {
@@ -13325,23 +13003,6 @@ class MapPin {
13325
13003
  }
13326
13004
  }
13327
13005
 
13328
- /* *
13329
- * Licensed under the Apache License, Version 2.0 (the "License");
13330
- * you may not use this file except in compliance with the License.
13331
- * You may obtain a copy of the License at
13332
- *
13333
- * http://www.apache.org/licenses/LICENSE-2.0
13334
- *
13335
- * Unless required by applicable law or agreed to in writing, software
13336
- * distributed under the License is distributed on an "AS IS" BASIS,
13337
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13338
- * See the License for the specific language governing permissions and
13339
- * limitations under the License.
13340
- *
13341
- * Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
13342
- * Copyright 2024 - Finnish Meteorological Institute (FMI)
13343
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
13344
- * */
13345
13006
  /* eslint-disable no-param-reassign */
13346
13007
  const drawTextBG = (ctx, txt, x, y, fontSize) => {
13347
13008
  ctx.textBaseline = 'top';
@@ -13451,34 +13112,34 @@ const drawScaleBar = (scaleBarProps, ctx) => {
13451
13112
  ctx.moveTo(offsetX + scaleBarProps.width * 2 + 1, scaleBarHeight - 2 + offsetY);
13452
13113
  ctx.lineTo(offsetX + scaleBarProps.width * 2 + 1, scaleBarHeight - 2 - 7 + offsetY);
13453
13114
  let units = '';
13454
- if (srs === 'EPSG:3411') {
13455
- units = 'meter';
13115
+ if (srs === PROJECTION.EPSG_3411.value) {
13116
+ units = 'm';
13456
13117
  }
13457
- if (srs === 'EPSG:3412') {
13458
- units = 'meter';
13118
+ if (srs === PROJECTION.EPSG_3412.value) {
13119
+ units = 'm';
13459
13120
  }
13460
- if (srs === 'EPSG:3575') {
13461
- units = 'meter';
13121
+ if (srs === PROJECTION.EPSG_3575.value) {
13122
+ units = 'm';
13462
13123
  }
13463
- if (srs === 'EPSG:4326') {
13464
- units = 'degrees';
13124
+ if (srs === PROJECTION.EPSG_4326.value) {
13125
+ units = 'deg';
13465
13126
  }
13466
- if (srs === 'EPSG:28992') {
13467
- units = 'meter';
13127
+ if (srs === PROJECTION.EPSG_28992.value) {
13128
+ units = 'm';
13468
13129
  }
13469
- if (srs === 'EPSG:32661') {
13470
- units = 'meter';
13130
+ if (srs === PROJECTION.EPSG_32661.value) {
13131
+ units = 'm';
13471
13132
  }
13472
- if (srs === 'EPSG:3857') {
13473
- units = 'meter';
13133
+ if (srs === PROJECTION.EPSG_3857.value) {
13134
+ units = 'm';
13474
13135
  }
13475
- if (srs === 'EPSG:900913') {
13476
- units = 'meter';
13136
+ if (srs === PROJECTION.EPSG_900913.value) {
13137
+ units = 'm';
13477
13138
  }
13478
- if (srs === 'EPSG:102100') {
13479
- units = 'meter';
13139
+ if (srs === PROJECTION.EPSG_102100.value) {
13140
+ units = 'm';
13480
13141
  }
13481
- if (units === 'meter') {
13142
+ if (units === 'm') {
13482
13143
  if (scaleBarProps.mapunits > 1000) {
13483
13144
  scaleBarProps.mapunits /= 1000;
13484
13145
  units = 'km';
@@ -13691,21 +13352,21 @@ class WMJSMap {
13691
13352
  this.canvasErrors.push({
13692
13353
  linkedInfo: {
13693
13354
  layer,
13694
- message: 'Time outside range'
13355
+ message: translateKeyOutsideComponents('time-outside-range')
13695
13356
  }
13696
13357
  });
13697
13358
  } else if (dimension.currentValue === WMDateTooEarlyString) {
13698
13359
  this.canvasErrors.push({
13699
13360
  linkedInfo: {
13700
13361
  layer,
13701
- message: 'Time too early'
13362
+ message: translateKeyOutsideComponents('time-too-early')
13702
13363
  }
13703
13364
  });
13704
13365
  } else if (dimension.currentValue === WMDateTooLateString) {
13705
13366
  this.canvasErrors.push({
13706
13367
  linkedInfo: {
13707
13368
  layer,
13708
- message: 'Time too late'
13369
+ message: translateKeyOutsideComponents('time-too-late')
13709
13370
  }
13710
13371
  });
13711
13372
  }
@@ -13762,8 +13423,8 @@ class WMJSMap {
13762
13423
  const xText = Math.round(this.mouseGeoCoordXY.x * roundingFactor) / roundingFactor;
13763
13424
  const yText = Math.round(this.mouseGeoCoordXY.y * roundingFactor) / roundingFactor;
13764
13425
  let units = '';
13765
- if (this._srs === 'EPSG:3857') {
13766
- units = 'meter';
13426
+ if (this._srs === PROJECTION.EPSG_3857.value) {
13427
+ units = 'm';
13767
13428
  }
13768
13429
  ctx.fillText(`CoordYX: (${yText}, ${xText}) ${units}`, 5, this._height - 50);
13769
13430
  }
@@ -13775,11 +13436,11 @@ class WMJSMap {
13775
13436
  ctx.fillStyle = '#000000';
13776
13437
  const xText = Math.round(llCoord.x * roundingFactor) / roundingFactor;
13777
13438
  const yText = Math.round(llCoord.y * roundingFactor) / roundingFactor;
13778
- ctx.fillText(`Lat/Lon: (${yText.toFixed(2)}, ${xText.toFixed(2)}) degrees`, 5, this._height - 38);
13439
+ ctx.fillText(`Lat/Lon: (${yText.toFixed(2)}, ${xText.toFixed(2)}) deg`, 5, this._height - 38);
13779
13440
  }
13780
13441
  }
13781
13442
  ctx.fillStyle = '#000000';
13782
- ctx.fillText(`Map projection: ${this._srs}`, 5, this._height - 26);
13443
+ ctx.fillText(`${translateKeyOutsideComponents('map-projection')}: ${this._srs}`, 5, this._height - 26);
13783
13444
  }
13784
13445
  /* Show layer metadata */
13785
13446
  if (this.showLayerInfo === true) {
@@ -13892,7 +13553,7 @@ class WMJSMap {
13892
13553
  this._bbox.bottom = -90;
13893
13554
  this._bbox.right = 180;
13894
13555
  this._bbox.top = 90;
13895
- this._srs = 'EPSG:4326';
13556
+ this._srs = PROJECTION.EPSG_4326.value;
13896
13557
  // IMAGE buffer
13897
13558
  this.canvasLayerBuffer = new WMCanvasBuffer(this, this._width, this._height, {
13898
13559
  beforecanvasstartdraw: this._adagucBeforeDraw,
@@ -13996,7 +13657,7 @@ class WMJSMap {
13996
13657
  }
13997
13658
  if (!projinfo.srs || !projinfo.bbox) {
13998
13659
  debugLogger(DebugType.Error);
13999
- projinfo.srs = 'EPSG:4326';
13660
+ projinfo.srs = PROJECTION.EPSG_4326.value;
14000
13661
  projinfo.bbox.left = -180;
14001
13662
  projinfo.bbox.bottom = -90;
14002
13663
  projinfo.bbox.right = 180;
@@ -14589,7 +14250,7 @@ class WMJSMap {
14589
14250
  }
14590
14251
  _mouseWheelEvent(event) {
14591
14252
  if (this.holdShiftToScroll && !event.shiftKey) {
14592
- this.setMessageValue = 'Hold SHIFT to zoom';
14253
+ this.setMessageValue = translateKeyOutsideComponents('hold-shift-to-zoom');
14593
14254
  this.draw();
14594
14255
  // Clear text after 500ms
14595
14256
  setTimeout(() => {
@@ -14986,14 +14647,14 @@ class WMJSMap {
14986
14647
  */
14987
14648
  setProjection(_srs, _bbox) {
14988
14649
  if (!_srs) {
14989
- _srs = 'EPSG:4326';
14650
+ _srs = PROJECTION.EPSG_4326.value;
14990
14651
  }
14991
14652
  if (typeof _srs === 'object') {
14992
14653
  _bbox = new WMBBOX(_srs.bbox);
14993
14654
  _srs = _srs.srs;
14994
14655
  }
14995
14656
  if (!_srs) {
14996
- _srs = 'EPSG:4326';
14657
+ _srs = PROJECTION.EPSG_4326.value;
14997
14658
  }
14998
14659
  if (this._srs !== _srs) {
14999
14660
  this._defaultBBOX.setBBOX(_bbox);
@@ -15682,7 +15343,7 @@ class WMJSMap {
15682
15343
  class WMProjection {
15683
15344
  constructor() {
15684
15345
  this.bbox = new WMBBOX();
15685
- this.srs = 'EPSG:4326';
15346
+ this.srs = PROJECTION.EPSG_4326.value;
15686
15347
  }
15687
15348
  }
15688
15349
 
@@ -15927,7 +15588,7 @@ class WMLayer {
15927
15588
  if (options.title) {
15928
15589
  this.title = options.title;
15929
15590
  }
15930
- this.abstract = I18n.not_available_message.text;
15591
+ this.abstract = consoleErrorMessages.notAvailableMessage;
15931
15592
  if (options.enabled === false) {
15932
15593
  this.enabled = false;
15933
15594
  }
@@ -16041,9 +15702,9 @@ class WMLayer {
16041
15702
  }
16042
15703
  __parseGetCapForLayer(getcapabilitiesjson, layerDoneCallback, fail) {
16043
15704
  if (!getcapabilitiesjson) {
16044
- this.title = I18n.service_has_error.text;
16045
- this.abstract = I18n.not_available_message.text;
16046
- fail(this, I18n.unable_to_connect_server.text);
15705
+ this.title = consoleErrorMessages.serviceHasError;
15706
+ this.abstract = consoleErrorMessages.notAvailableMessage;
15707
+ fail(this, consoleErrorMessages.unableToConnectServer);
16047
15708
  return;
16048
15709
  }
16049
15710
  const wmjsService = WMGetServiceFromStore(this.service);
@@ -16084,7 +15745,7 @@ class WMLayer {
16084
15745
  }
16085
15746
  if (this.name === undefined || this.name.length < 1) {
16086
15747
  this.title = WMEmptyLayerTitle;
16087
- this.abstract = I18n.not_available_message.text;
15748
+ this.abstract = consoleErrorMessages.notAvailableMessage;
16088
15749
  layerDoneCallback(this);
16089
15750
  return;
16090
15751
  }
@@ -16130,7 +15791,7 @@ class WMLayer {
16130
15791
  // Function will be called when the layer with the right name is found in the getcap doc
16131
15792
  const populateLayerFromTreeElement = jsonlayer => {
16132
15793
  this.title = jsonlayer.title || jsonlayer.name || '';
16133
- this.abstract = jsonlayer.abstract || I18n.not_available_message.text;
15794
+ this.abstract = jsonlayer.abstract || consoleErrorMessages.notAvailableMessage;
16134
15795
  this.path = jsonlayer.path.join('/');
16135
15796
  /** ***************** Go through styles **************** */
16136
15797
  configureStyles(jsonlayer, this);
@@ -16144,7 +15805,7 @@ class WMLayer {
16144
15805
  const wmProjection = new WMProjection();
16145
15806
  wmProjection.srs = p.name || '';
16146
15807
  if (p.bbox) {
16147
- const swapBBOX = this.version === WMSVersion.version130 && wmProjection.srs === 'EPSG:4326' && this.wms130bboxcompatibilitymode === false;
15808
+ const swapBBOX = this.version === WMSVersion.version130 && wmProjection.srs === PROJECTION.EPSG_4326.value && this.wms130bboxcompatibilitymode === false;
16148
15809
  if (swapBBOX) {
16149
15810
  wmProjection.bbox.setBBOX(p.bbox.bottom, p.bbox.left, p.bbox.top, p.bbox.right);
16150
15811
  } else {
@@ -16181,7 +15842,7 @@ class WMLayer {
16181
15842
  message = `Unable to find layer '${this.title}' in service '${this.service}'`;
16182
15843
  }
16183
15844
  this.title = '--- layer not found in service ---';
16184
- this.abstract = I18n.not_available_message.text;
15845
+ this.abstract = consoleErrorMessages.notAvailableMessage;
16185
15846
  fail(this, message);
16186
15847
  return;
16187
15848
  }
@@ -16214,7 +15875,7 @@ class WMLayer {
16214
15875
  const fail = (_layer, message) => {
16215
15876
  this.hasError = true;
16216
15877
  this.lastError = message;
16217
- this.title = I18n.service_has_error.text;
15878
+ this.title = consoleErrorMessages.serviceHasError;
16218
15879
  layerDoneCallback(_layer);
16219
15880
  if (isDefined(this._options.failure)) {
16220
15881
  this._options.failure(_layer, message);
@@ -16224,7 +15885,7 @@ class WMLayer {
16224
15885
  this.__parseGetCapForLayer(data, layerDoneCallback, fail);
16225
15886
  };
16226
15887
  const requestfail = () => {
16227
- fail(this, I18n.no_capability_element_found.text);
15888
+ fail(this, consoleErrorMessages.noCapabilityElementFound);
16228
15889
  };
16229
15890
  const options = {
16230
15891
  headers: {}
@@ -16438,13 +16099,13 @@ const defaultTimeSpan = 24 * 3600;
16438
16099
  const speedFactors = [0.1, 0.2, 0.5, 1, 2, 4, 8, 16]; // Declares available animation speed multipliers for default delay
16439
16100
 
16440
16101
  var mapConstants = /*#__PURE__*/Object.freeze({
16441
- __proto__: null,
16442
- defaultAnimationDelayAtStart: defaultAnimationDelayAtStart,
16443
- defaultDelay: defaultDelay,
16444
- defaultSecondsPerPx: defaultSecondsPerPx,
16445
- defaultTimeSpan: defaultTimeSpan,
16446
- defaultTimeStep: defaultTimeStep,
16447
- speedFactors: speedFactors
16102
+ __proto__: null,
16103
+ defaultAnimationDelayAtStart: defaultAnimationDelayAtStart,
16104
+ defaultDelay: defaultDelay,
16105
+ defaultSecondsPerPx: defaultSecondsPerPx,
16106
+ defaultTimeSpan: defaultTimeSpan,
16107
+ defaultTimeStep: defaultTimeStep,
16108
+ speedFactors: speedFactors
16448
16109
  });
16449
16110
 
16450
16111
  /* *
@@ -16622,23 +16283,23 @@ const getSpeedDelay = speedFactor => {
16622
16283
  };
16623
16284
 
16624
16285
  var utils = /*#__PURE__*/Object.freeze({
16625
- __proto__: null,
16626
- clearImageCacheForAllMaps: clearImageCacheForAllMaps,
16627
- generateLayerId: generateLayerId,
16628
- generateMapId: generateMapId,
16629
- generateTimesliderId: generateTimesliderId,
16630
- getSpeedDelay: getSpeedDelay,
16631
- getWMJSDimensionForLayerAndDimension: getWMJSDimensionForLayerAndDimension,
16632
- getWMJSMapById: getWMJSMapById,
16633
- getWMJSMapIds: getWMJSMapIds,
16634
- getWMJSTimeDimensionForLayerId: getWMJSTimeDimensionForLayerId,
16635
- getWMLayerById: getWMLayerById,
16636
- registerWMJSMap: registerWMJSMap,
16637
- registerWMLayer: registerWMLayer,
16638
- roundWithTimeStep: roundWithTimeStep,
16639
- unRegisterAllWMJSLayersAndMaps: unRegisterAllWMJSLayersAndMaps,
16640
- unRegisterWMJSLayer: unRegisterWMJSLayer,
16641
- unRegisterWMJSMap: unRegisterWMJSMap
16286
+ __proto__: null,
16287
+ clearImageCacheForAllMaps: clearImageCacheForAllMaps,
16288
+ generateLayerId: generateLayerId,
16289
+ generateMapId: generateMapId,
16290
+ generateTimesliderId: generateTimesliderId,
16291
+ getSpeedDelay: getSpeedDelay,
16292
+ getWMJSDimensionForLayerAndDimension: getWMJSDimensionForLayerAndDimension,
16293
+ getWMJSMapById: getWMJSMapById,
16294
+ getWMJSMapIds: getWMJSMapIds,
16295
+ getWMJSTimeDimensionForLayerId: getWMJSTimeDimensionForLayerId,
16296
+ getWMLayerById: getWMLayerById,
16297
+ registerWMJSMap: registerWMJSMap,
16298
+ registerWMLayer: registerWMLayer,
16299
+ roundWithTimeStep: roundWithTimeStep,
16300
+ unRegisterAllWMJSLayersAndMaps: unRegisterAllWMJSLayersAndMaps,
16301
+ unRegisterWMJSLayer: unRegisterWMJSLayer,
16302
+ unRegisterWMJSMap: unRegisterWMJSMap
16642
16303
  });
16643
16304
 
16644
16305
  /* *
@@ -17017,18 +16678,18 @@ const multiDimensionLayer3 = {
17017
16678
  };
17018
16679
 
17019
16680
  var testSettings = /*#__PURE__*/Object.freeze({
17020
- __proto__: null,
17021
- WmLayerWithoutTimeDimension: WmLayerWithoutTimeDimension,
17022
- WmMultiDimensionLayer: WmMultiDimensionLayer,
17023
- WmdefaultReduxLayerRadarKNMI: WmdefaultReduxLayerRadarKNMI,
17024
- crsListForRADNL25PCPCMLayer: crsListForRADNL25PCPCMLayer,
17025
- defaultReduxLayerRadarColor: defaultReduxLayerRadarColor,
17026
- defaultReduxLayerRadarKNMI: defaultReduxLayerRadarKNMI$1,
17027
- layerWithoutTimeDimension: layerWithoutTimeDimension,
17028
- makeGeoservicesRadarLayer: makeGeoservicesRadarLayer,
17029
- multiDimensionLayer: multiDimensionLayer$1,
17030
- multiDimensionLayer3: multiDimensionLayer3,
17031
- styleListForRADNL25PCPCMLayer: styleListForRADNL25PCPCMLayer
16681
+ __proto__: null,
16682
+ WmLayerWithoutTimeDimension: WmLayerWithoutTimeDimension,
16683
+ WmMultiDimensionLayer: WmMultiDimensionLayer,
16684
+ WmdefaultReduxLayerRadarKNMI: WmdefaultReduxLayerRadarKNMI,
16685
+ crsListForRADNL25PCPCMLayer: crsListForRADNL25PCPCMLayer,
16686
+ defaultReduxLayerRadarColor: defaultReduxLayerRadarColor,
16687
+ defaultReduxLayerRadarKNMI: defaultReduxLayerRadarKNMI$1,
16688
+ layerWithoutTimeDimension: layerWithoutTimeDimension,
16689
+ makeGeoservicesRadarLayer: makeGeoservicesRadarLayer,
16690
+ multiDimensionLayer: multiDimensionLayer$1,
16691
+ multiDimensionLayer3: multiDimensionLayer3,
16692
+ styleListForRADNL25PCPCMLayer: styleListForRADNL25PCPCMLayer
17032
16693
  });
17033
16694
 
17034
16695
  /* *
@@ -17048,20 +16709,6 @@ var testSettings = /*#__PURE__*/Object.freeze({
17048
16709
  * Copyright 2020 - Finnish Meteorological Institute (FMI)
17049
16710
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
17050
16711
  * */
17051
- var EPSGCode;
17052
- (function (EPSGCode) {
17053
- EPSGCode["EPSG3857"] = "EPSG:3857";
17054
- EPSGCode["EPSG28992"] = "EPSG:28992";
17055
- EPSGCode["TODO_EPSG4326"] = "TODO__EPSG:4326";
17056
- EPSGCode["EPSG3411"] = "EPSG:3411";
17057
- EPSGCode["EPSG32661"] = "EPSG:32661";
17058
- EPSGCode["EPSG54030"] = "EPSG:54030";
17059
- EPSGCode["EPSG4326"] = "EPSG:4326";
17060
- EPSGCode["EPSG4258"] = "EPSG:4258";
17061
- EPSGCode["EPSG3412"] = "EPSG:3412";
17062
- EPSGCode["EPSG3575"] = "EPSG:3575";
17063
- EPSGCode["EPSG3067"] = "EPSG:3067";
17064
- })(EPSGCode || (EPSGCode = {}));
17065
16712
  const tilesettings = {
17066
16713
  WorldMap_Light_Grey_Canvas: {
17067
16714
  'EPSG:3857': {
@@ -17157,16 +16804,17 @@ const tilesettings = {
17157
16804
  tileServerType: 'osm',
17158
16805
  copyRight: 'Natural Earth II | Ingmapping'
17159
16806
  },
17160
- 'TODO__EPSG:4326': {
17161
- home: 'https://geoweb-maps-assets.pmc.knmi.cloud/WorldMap/EPSG4326/',
17162
- minLevel: 0,
17163
- maxLevel: 9,
17164
- origX: -180,
17165
- origY: 90,
17166
- resolution: 1.422222,
17167
- tileServerType: 'osm',
17168
- copyRight: 'Natural Earth II | Ingmapping'
17169
- },
16807
+ /* TODO
16808
+ 'EPSG:4326': {
16809
+ home: 'https://geoweb-maps-assets.pmc.knmi.cloud/WorldMap/EPSG4326/',
16810
+ minLevel: 0,
16811
+ maxLevel: 9,
16812
+ origX: -180,
16813
+ origY: 90,
16814
+ resolution: 1.422222,
16815
+ tileServerType: 'osm',
16816
+ copyRight: 'Natural Earth II | Ingmapping',
16817
+ }, */
17170
16818
  'EPSG:3411': {
17171
16819
  home: 'https://geoweb-maps-assets.pmc.knmi.cloud/WorldMap/EPSG3411/',
17172
16820
  minLevel: 3,
@@ -17864,27 +17512,27 @@ const mockGetLayersFlattenedFromService = url => __awaiter(void 0, void 0, void
17864
17512
  });
17865
17513
 
17866
17514
  var getCapabilities$1 = /*#__PURE__*/Object.freeze({
17867
- __proto__: null,
17868
- MOCK_URL_DEFAULT: MOCK_URL_DEFAULT,
17869
- MOCK_URL_DEFAULT2: MOCK_URL_DEFAULT2,
17870
- MOCK_URL_HTTP: MOCK_URL_HTTP,
17871
- MOCK_URL_INVALID: MOCK_URL_INVALID,
17872
- MOCK_URL_NO_CHILDREN: MOCK_URL_NO_CHILDREN,
17873
- MOCK_URL_SLOW: MOCK_URL_SLOW,
17874
- MOCK_URL_SLOW_FAILS: MOCK_URL_SLOW_FAILS,
17875
- MOCK_URL_WITH_CHILDREN: MOCK_URL_WITH_CHILDREN,
17876
- MOCK_URL_WITH_NO_TITLE: MOCK_URL_WITH_NO_TITLE,
17877
- MOCK_URL_WITH_NO_TITLE_OR_NAME: MOCK_URL_WITH_NO_TITLE_OR_NAME,
17878
- MOCK_URL_WITH_SUBCATEGORY: MOCK_URL_WITH_SUBCATEGORY,
17879
- mockGetLayersFlattenedFromService: mockGetLayersFlattenedFromService,
17880
- mockGetLayersFromService: mockGetLayersFromService,
17881
- mockLayersDefault: mockLayersDefault,
17882
- mockLayersDefault2: mockLayersDefault2,
17883
- mockLayersNoChildren: mockLayersNoChildren,
17884
- mockLayersWithChildren: mockLayersWithChildren,
17885
- mockLayersWithNoTitle: mockLayersWithNoTitle,
17886
- mockLayersWithNoTitleOrName: mockLayersWithNoTitleOrName,
17887
- mockLayersWithSubcategory: mockLayersWithSubcategory
17515
+ __proto__: null,
17516
+ MOCK_URL_DEFAULT: MOCK_URL_DEFAULT,
17517
+ MOCK_URL_DEFAULT2: MOCK_URL_DEFAULT2,
17518
+ MOCK_URL_HTTP: MOCK_URL_HTTP,
17519
+ MOCK_URL_INVALID: MOCK_URL_INVALID,
17520
+ MOCK_URL_NO_CHILDREN: MOCK_URL_NO_CHILDREN,
17521
+ MOCK_URL_SLOW: MOCK_URL_SLOW,
17522
+ MOCK_URL_SLOW_FAILS: MOCK_URL_SLOW_FAILS,
17523
+ MOCK_URL_WITH_CHILDREN: MOCK_URL_WITH_CHILDREN,
17524
+ MOCK_URL_WITH_NO_TITLE: MOCK_URL_WITH_NO_TITLE,
17525
+ MOCK_URL_WITH_NO_TITLE_OR_NAME: MOCK_URL_WITH_NO_TITLE_OR_NAME,
17526
+ MOCK_URL_WITH_SUBCATEGORY: MOCK_URL_WITH_SUBCATEGORY,
17527
+ mockGetLayersFlattenedFromService: mockGetLayersFlattenedFromService,
17528
+ mockGetLayersFromService: mockGetLayersFromService,
17529
+ mockLayersDefault: mockLayersDefault,
17530
+ mockLayersDefault2: mockLayersDefault2,
17531
+ mockLayersNoChildren: mockLayersNoChildren,
17532
+ mockLayersWithChildren: mockLayersWithChildren,
17533
+ mockLayersWithNoTitle: mockLayersWithNoTitle,
17534
+ mockLayersWithNoTitleOrName: mockLayersWithNoTitleOrName,
17535
+ mockLayersWithSubcategory: mockLayersWithSubcategory
17888
17536
  });
17889
17537
 
17890
17538
  const mockGetCapabilities = Object.assign(Object.assign({}, getCapabilities$1), {
@@ -17949,10 +17597,10 @@ const getLayersFlattenedFromService = (serviceUrl, forceReload = false) => {
17949
17597
  };
17950
17598
 
17951
17599
  var getCapabilities = /*#__PURE__*/Object.freeze({
17952
- __proto__: null,
17953
- getLayersFlattenedFromService: getLayersFlattenedFromService,
17954
- getLayersFromService: getLayersFromService,
17955
- recurseNodes: recurseNodes
17600
+ __proto__: null,
17601
+ getLayersFlattenedFromService: getLayersFlattenedFromService,
17602
+ getLayersFromService: getLayersFromService,
17603
+ recurseNodes: recurseNodes
17956
17604
  });
17957
17605
 
17958
- export { DateInterval, DebugType, EPSGCode, EVENT_GETCAPABILITIES_READY, EVENT_GETCAPABILITIES_START, I18n, LayerType, ParseISOTimeRangeDuration, URLDecode, URLEncode, WMBBOX, WMDateOutSideRange, WMDateTooEarlyString, WMDateTooLateString, WMEmptyLayerName, WMEmptyLayerTitle, WMGetServiceFromStore, WMImage, WMImageEventType, WMJSDimension, WMJSMAP_LONLAT_EPSGCODE, WMJSMap, WMJSService, WMJScheckURL, WMLayer, WMListener, WMProj4Defs, WMProjection, WMSJSMAP_MINIMUM_MAP_HEIGHT, WMSJSMAP_MINIMUM_MAP_WIDTH, WMSVersion, bgImageStoreLength, buildMapLayerDims, buildWMSGetMapRequest, clearImageCacheForAllMaps, debugLogger, defaultReduxLayerRadarKNMI, detectLeftButton, detectRightButton, drawScaleBar, drawTextBG, epsgDescriptionLookup, generateLayerId, generateMapId, generateTimesliderId, getBBOXandProjString, getCapabilities, getErrorsToDisplay, getGeoCoordFromLatLong, getGeoCoordFromPixelCoord, getLatLongFromPixelCoord, getLayerIndex, getLegendGraphicURLForLayer, getPixelCoordFromGeoCoord, getPixelCoordFromLatLong, getScaleBarProperties, getSpeedDelay, getUriWithParam, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSMapIds, getWMJSTimeDimensionForLayerId, getWMLayerById, getWMSGetFeatureInfoRequestURL, getWMSRequests, handleDateUtilsISOString, isDefined, isProjectionSupported, legendImageStore, legendImageStoreLength, mapConstants, mapImageStoreLength, mockGetCapabilities, multiDimensionLayer, parseISO8601DateToDate, parseISO8601IntervalToDateInterval, registerWMJSMap, registerWMLayer, roundWithTimeStep, speedFactors, tilesettings, toArray, unRegisterAllWMJSLayersAndMaps, unRegisterWMJSLayer, unRegisterWMJSMap, testSettings as webmapTestSettings, utils as webmapUtils, wmServiceListener };
17606
+ export { DateInterval, DebugType, EVENT_GETCAPABILITIES_READY, EVENT_GETCAPABILITIES_START, LayerType, ParseISOTimeRangeDuration, URLDecode, URLEncode, WEBMAP_NAMESPACE, WMBBOX, WMDateOutSideRange, WMDateTooEarlyString, WMDateTooLateString, WMEmptyLayerName, WMEmptyLayerTitle, WMGetServiceFromStore, WMImage, WMImageEventType, WMJSDimension, WMJSMAP_LONLAT_EPSGCODE, WMJSMap, WMJSService, WMJScheckURL, WMLayer, WMListener, WMProj4Defs, WMProjection, WMSJSMAP_MINIMUM_MAP_HEIGHT, WMSJSMAP_MINIMUM_MAP_WIDTH, WMSVersion, bgImageStoreLength, buildMapLayerDims, buildWMSGetMapRequest, clearImageCacheForAllMaps, debugLogger, defaultReduxLayerRadarKNMI, detectLeftButton, detectRightButton, drawScaleBar, drawTextBG, generateLayerId, generateMapId, generateTimesliderId, getBBOXandProjString, getCapabilities, getErrorsToDisplay, getGeoCoordFromLatLong, getGeoCoordFromPixelCoord, getLatLongFromPixelCoord, getLayerIndex, getLegendGraphicURLForLayer, getPixelCoordFromGeoCoord, getPixelCoordFromLatLong, getScaleBarProperties, getSpeedDelay, getUriWithParam, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSMapIds, getWMJSTimeDimensionForLayerId, getWMLayerById, getWMSGetFeatureInfoRequestURL, getWMSRequests, handleDateUtilsISOString, isDefined, isProjectionSupported, legendImageStore, legendImageStoreLength, mapConstants, mapImageStoreLength, mockGetCapabilities, multiDimensionLayer, parseISO8601DateToDate, parseISO8601IntervalToDateInterval, registerWMJSMap, registerWMLayer, roundWithTimeStep, speedFactors, tilesettings, toArray, unRegisterAllWMJSLayersAndMaps, unRegisterWMJSLayer, unRegisterWMJSMap, testSettings as webmapTestSettings, webmapTranslations, utils as webmapUtils, wmServiceListener };