qwc2 2025.11.18 → 2025.11.26

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 (94) hide show
  1. package/actions/windows.js +3 -1
  2. package/components/AppMenu.js +141 -204
  3. package/components/AttributeTableWidget.js +5 -1
  4. package/components/FeatureAttributesWindow.js +1 -2
  5. package/components/FullscreenSwitcher.js +3 -0
  6. package/components/Icon.js +6 -0
  7. package/components/ImportLayer.js +3 -9
  8. package/components/LayerInfoWindow.js +1 -2
  9. package/components/MapButton.js +2 -0
  10. package/components/NumericInputWindow.js +1 -2
  11. package/components/PickFeature.js +1 -1
  12. package/components/PluginsContainer.js +48 -6
  13. package/components/ResizeableWindow.js +18 -9
  14. package/components/SearchBox.js +117 -124
  15. package/components/ServiceInfoWindow.js +1 -2
  16. package/components/ThemeLayersListWindow.js +22 -11
  17. package/components/ThemeList.js +7 -2
  18. package/components/WindowManager.js +14 -2
  19. package/components/map/layers/VectorLayer.js +4 -2
  20. package/components/map3d/HeightProfile3D.js +0 -1
  21. package/components/map3d/Map3D.js +36 -35
  22. package/components/map3d/View3DSwitcher.js +2 -1
  23. package/components/map3d/drawtool/NumericInput3D.js +1 -2
  24. package/components/map3d/layers/GeoTIFFLayer3D.js +2 -1
  25. package/components/map3d/layers/VectorLayer3D.js +12 -2
  26. package/components/map3d/layers/WFSLayer3D.js +17 -1
  27. package/components/style/App.css +4 -0
  28. package/components/style/AppMenu.css +33 -48
  29. package/components/style/DefaultColorScheme.css +1 -0
  30. package/components/style/PickFeature.css +0 -6
  31. package/components/style/ResizeableWindow.css +0 -4
  32. package/components/style/SearchBox.css +0 -21
  33. package/components/style/WindowManager.css +6 -0
  34. package/components/widgets/ColorButton.js +7 -2
  35. package/components/widgets/ComboBox.js +18 -16
  36. package/components/widgets/EditableSelect.js +5 -10
  37. package/components/widgets/LayerCatalogWidget.js +66 -16
  38. package/components/widgets/MenuButton.js +16 -15
  39. package/components/widgets/PopupMenu.js +153 -13
  40. package/components/widgets/ToggleSwitch.js +5 -2
  41. package/components/widgets/style/ComboBox.css +7 -20
  42. package/components/widgets/style/EditableSelect.css +0 -2
  43. package/components/widgets/style/MenuButton.css +1 -17
  44. package/components/widgets/style/PopupMenu.css +20 -0
  45. package/package.json +2 -2
  46. package/plugins/AttributeTable.js +0 -1
  47. package/plugins/BackgroundSwitcher.js +104 -8
  48. package/plugins/Cyclomedia.js +1 -2
  49. package/plugins/FeatureForm.js +3 -6
  50. package/plugins/GeometryDigitizer.js +1 -2
  51. package/plugins/HeightProfile.js +2 -5
  52. package/plugins/Identify.js +2 -5
  53. package/plugins/LayerCatalog.js +2 -13
  54. package/plugins/LayerTree.js +22 -13
  55. package/plugins/MapLegend.js +1 -2
  56. package/plugins/ObjectList.js +0 -1
  57. package/plugins/Panoramax.js +1 -2
  58. package/plugins/Print.js +1 -2
  59. package/plugins/Routing.js +1 -2
  60. package/plugins/TimeManager.js +2 -5
  61. package/plugins/ValueTool.js +1 -2
  62. package/plugins/View3D.js +0 -1
  63. package/plugins/map/MeasurementSupport.js +2 -2
  64. package/plugins/map3d/Identify3D.js +1 -2
  65. package/plugins/map3d/Measure3D.js +21 -12
  66. package/plugins/style/BackgroundSwitcher.css +2 -1
  67. package/plugins/style/LayerTree.css +3 -18
  68. package/reducers/windows.js +2 -1
  69. package/static/translations/bg-BG.json +1 -0
  70. package/static/translations/ca-ES.json +29 -28
  71. package/static/translations/cs-CZ.json +1 -0
  72. package/static/translations/de-CH.json +1 -0
  73. package/static/translations/de-DE.json +1 -0
  74. package/static/translations/en-US.json +1 -0
  75. package/static/translations/es-ES.json +34 -33
  76. package/static/translations/fi-FI.json +1 -0
  77. package/static/translations/fr-FR.json +2 -1
  78. package/static/translations/hu-HU.json +1 -0
  79. package/static/translations/it-IT.json +1 -0
  80. package/static/translations/ja-JP.json +1 -0
  81. package/static/translations/nl-NL.json +1 -0
  82. package/static/translations/no-NO.json +1 -0
  83. package/static/translations/pl-PL.json +1 -0
  84. package/static/translations/pt-BR.json +1 -0
  85. package/static/translations/pt-PT.json +1 -0
  86. package/static/translations/ro-RO.json +1 -0
  87. package/static/translations/ru-RU.json +1 -0
  88. package/static/translations/sv-SE.json +1 -0
  89. package/static/translations/tr-TR.json +1 -0
  90. package/static/translations/tsconfig.json +1 -0
  91. package/static/translations/uk-UA.json +1 -0
  92. package/utils/MapUtils.js +6 -0
  93. package/utils/MiscUtils.js +12 -0
  94. package/utils/ThemeUtils.js +2 -1
@@ -650,6 +650,7 @@
650
650
  "vertex": "頂点にスナップ"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "レイヤを追加",
654
655
  "addlayerstotheme": "現在の地図にレイヤを追加",
655
656
  "addselectedlayers": "選択されたレイヤを追加",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Naar hoekpunten snappen"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Laag toevoegen",
654
655
  "addlayerstotheme": "Lagen toevoegen aan huidige kaart",
655
656
  "addselectedlayers": "Geselecteerde la(a)g(en) toevoegen",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "",
654
655
  "addlayerstotheme": "",
655
656
  "addselectedlayers": "",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "",
654
655
  "addlayerstotheme": "",
655
656
  "addselectedlayers": "",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Adicionar camada",
654
655
  "addlayerstotheme": "Adicionar camadas ao mapa atual",
655
656
  "addselectedlayers": "Adicionar camadas selecionadas",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Vértice"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Adicionar Camada",
654
655
  "addlayerstotheme": "Adicionar Camadas ao Mapa Atual",
655
656
  "addselectedlayers": "Adicionar Camadas Selecionadas",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Adaugă strat",
654
655
  "addlayerstotheme": "Adaugă strat la hartă",
655
656
  "addselectedlayers": "Adaugă straturile selectate",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "",
654
655
  "addlayerstotheme": "",
655
656
  "addselectedlayers": "",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "",
654
655
  "addlayerstotheme": "",
655
656
  "addselectedlayers": "",
@@ -650,6 +650,7 @@
650
650
  "vertex": "Kırık noktalarını yakala"
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "Katman ekle",
654
655
  "addlayerstotheme": "Geçerli haritaya katman ekle",
655
656
  "addselectedlayers": "Seçili katmanları ekle",
@@ -559,6 +559,7 @@
559
559
  "snapping.loading",
560
560
  "snapping.snappingenabled",
561
561
  "snapping.vertex",
562
+ "themelayerslist.addanyway",
562
563
  "themelayerslist.addlayer",
563
564
  "themelayerslist.addlayerstotheme",
564
565
  "themelayerslist.addselectedlayers",
@@ -650,6 +650,7 @@
650
650
  "vertex": ""
651
651
  },
652
652
  "themelayerslist": {
653
+ "addanyway": "",
653
654
  "addlayer": "",
654
655
  "addlayerstotheme": "",
655
656
  "addselectedlayers": "",
package/utils/MapUtils.js CHANGED
@@ -209,6 +209,12 @@ var MapUtils = {
209
209
  var positionFormat = ConfigUtils.getConfigProp("urlPositionFormat");
210
210
  var positionCrs = ConfigUtils.getConfigProp("urlPositionCrs") || state.projection;
211
211
  var prec = CoordinatesUtils.getPrecision(positionCrs);
212
+ // Don't set params for empty map
213
+ if (state.bbox.bounds.every(function (x) {
214
+ return x === 0;
215
+ })) {
216
+ return;
217
+ }
212
218
  if (positionFormat === "centerAndZoom") {
213
219
  var center = CoordinatesUtils.reproject(state.center, state.projection, positionCrs);
214
220
  var scale = Math.round(MapUtils.computeForZoom(state.scales, state.zoom));
@@ -85,10 +85,22 @@ var MiscUtils = {
85
85
  },
86
86
  killEvent: function killEvent(ev) {
87
87
  if (ev.cancelable) {
88
+ var _ev$nativeEvent, _ev$nativeEvent$stopI;
88
89
  ev.stopPropagation();
90
+ (_ev$nativeEvent = ev.nativeEvent) === null || _ev$nativeEvent === void 0 || (_ev$nativeEvent$stopI = _ev$nativeEvent.stopImmediatePropagation) === null || _ev$nativeEvent$stopI === void 0 || _ev$nativeEvent$stopI.call(_ev$nativeEvent);
89
91
  ev.preventDefault();
90
92
  }
91
93
  },
94
+ checkKeyActivate: function checkKeyActivate(ev) {
95
+ var onEsc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
96
+ if (ev.code === "Space" || ev.code === "Enter") {
97
+ MiscUtils.killEvent(ev);
98
+ ev.currentTarget.click();
99
+ } else if (ev.code === "Escape" && onEsc) {
100
+ MiscUtils.killEvent(ev);
101
+ onEsc();
102
+ }
103
+ },
92
104
  blendColors: function blendColors(color1, color2, ratio) {
93
105
  color1 = [parseInt(color1[1] + color1[2], 16), parseInt(color1[3] + color1[4], 16), parseInt(color1[5] + color1[6], 16)];
94
106
  color2 = [parseInt(color2[1] + color2[2], 16), parseInt(color2[3] + color2[4], 16), parseInt(color2[5] + color2[6], 16)];
@@ -137,6 +137,7 @@ var ThemeUtils = {
137
137
  var sublayerNames = LayerUtils.getSublayerNames({
138
138
  sublayers: subLayers !== null && subLayers !== void 0 ? subLayers : theme.sublayers
139
139
  });
140
+ var commonTranslations = StandardApp.store.getState().locale.messagesTree.maptranslations || {};
140
141
  var baseParams = urlParts.query;
141
142
  var layer = {
142
143
  type: "wms",
@@ -175,7 +176,7 @@ var ThemeUtils = {
175
176
  LayerUtils.completeExternalLayer(res[cur.internalLayer], LayerUtils.searchSubLayer(theme, 'name', cur.internalLayer));
176
177
  return res;
177
178
  }, {})),
178
- translations: theme.translations,
179
+ translations: deepmerge(commonTranslations, theme.translations),
179
180
  editConfig: theme.editConfig,
180
181
  wms_name: theme.wms_name
181
182
  };