qwc2 2025.12.19 → 2025.12.25

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 (68) hide show
  1. package/actions/display.js +6 -6
  2. package/actions/theme.js +4 -19
  3. package/components/AppMenu.js +1 -1
  4. package/components/AttributeForm.js +7 -7
  5. package/components/AttributeTableWidget.js +2 -2
  6. package/components/AutoEditForm.js +6 -3
  7. package/components/EditComboField.js +1 -4
  8. package/components/IdentifyViewer.js +33 -34
  9. package/components/ImportLayer.js +78 -79
  10. package/components/PluginsContainer.js +2 -2
  11. package/components/ResizeableWindow.js +8 -1
  12. package/components/SearchBox.js +2 -2
  13. package/components/SideBar.js +1 -0
  14. package/components/StandardApp.js +1 -2
  15. package/components/ThemeLayersListWindow.js +10 -1
  16. package/components/{map3d/View3DSwitcher.js → ViewSwitcher.js} +74 -29
  17. package/components/map/OlMap.js +1 -1
  18. package/components/map3d/Map3D.js +50 -48
  19. package/components/map3d/MapControls3D.js +4 -1
  20. package/components/map3d/drawtool/EditTool3D.js +1 -1
  21. package/components/map3d/layers/WFSLayer3D.js +1 -1
  22. package/components/share/ShareQRCode.js +1 -1
  23. package/components/style/ViewSwitcher.css +36 -0
  24. package/components/widgets/ColorButton.js +2 -2
  25. package/components/widgets/CopyButton.js +1 -1
  26. package/components/widgets/LayerCatalogWidget.js +4 -4
  27. package/libs/openlayers.js +11 -11
  28. package/package.json +54 -55
  29. package/plugins/API.js +4 -4
  30. package/plugins/FeatureForm.js +2 -2
  31. package/plugins/FeatureSearch.js +12 -12
  32. package/plugins/GeometryDigitizer.js +2 -3
  33. package/plugins/Map.js +11 -4
  34. package/plugins/MapFilter.js +12 -12
  35. package/plugins/MapTip.js +1 -1
  36. package/plugins/ObliqueView.js +31 -12
  37. package/plugins/Print.js +79 -91
  38. package/plugins/Routing.js +1 -1
  39. package/plugins/Share.js +5 -5
  40. package/plugins/TimeManager.js +1 -2
  41. package/plugins/View3D.js +135 -123
  42. package/plugins/map/RedliningSupport.js +1 -1
  43. package/plugins/map3d/Draw3D.js +4 -4
  44. package/plugins/map3d/ExportObjects3D.js +1 -1
  45. package/plugins/map3d/HideObjects3D.js +7 -7
  46. package/plugins/map3d/Identify3D.js +1 -1
  47. package/plugins/map3d/LayerTree3D.js +1 -1
  48. package/plugins/map3d/MapExport3D.js +25 -25
  49. package/plugins/map3d/Measure3D.js +1 -1
  50. package/plugins/map3d/TopBar3D.js +7 -7
  51. package/plugins/style/ObliqueView.css +21 -9
  52. package/reducers/display.js +2 -2
  53. package/reducers/layers.js +11 -11
  54. package/scripts/gen-plugin-docs.js +11 -4
  55. package/scripts/makeIconkit.js +2 -2
  56. package/scripts/themesConfig.js +5 -5
  57. package/scripts/updateTranslations.js +2 -2
  58. package/utils/CoordinatesUtils.js +1 -1
  59. package/utils/EditingUtils.js +4 -4
  60. package/utils/FeatureStyles.js +1 -1
  61. package/utils/LayerUtils.js +73 -74
  62. package/utils/MiscUtils.js +10 -3
  63. package/utils/PermaLinkUtils.js +68 -71
  64. package/utils/SearchProviders.js +2 -2
  65. package/utils/ServiceLayerUtils.js +12 -12
  66. package/utils/ThemeUtils.js +2 -2
  67. package/utils/VectorLayerUtils.js +3 -3
  68. package/components/map3d/style/View3DSwitcher.css +0 -19
@@ -643,18 +643,18 @@ var LayerUtils = {
643
643
  // Reduced layer with one single sublayer per level, up to leaf
644
644
  var redLayer = _objectSpread({}, layer);
645
645
  var group = redLayer;
646
- var _iterator10 = _createForOfIteratorHelper(path),
647
- _step10;
646
+ var _iterator0 = _createForOfIteratorHelper(path),
647
+ _step0;
648
648
  try {
649
- for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
650
- var jdx = _step10.value;
649
+ for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
650
+ var jdx = _step0.value;
651
651
  group.sublayers = [_objectSpread({}, group.sublayers[jdx])];
652
652
  group = group.sublayers[0];
653
653
  }
654
654
  } catch (err) {
655
- _iterator10.e(err);
655
+ _iterator0.e(err);
656
656
  } finally {
657
- _iterator10.f();
657
+ _iterator0.f();
658
658
  }
659
659
  exploded.push({
660
660
  layer: redLayer,
@@ -669,11 +669,11 @@ var LayerUtils = {
669
669
  var usedIds = new Set();
670
670
 
671
671
  // Merge all possible items of an exploded layer array
672
- var _iterator11 = _createForOfIteratorHelper(exploded),
673
- _step11;
672
+ var _iterator1 = _createForOfIteratorHelper(exploded),
673
+ _step1;
674
674
  try {
675
- for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
676
- var entry = _step11.value;
675
+ for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
676
+ var entry = _step1.value;
677
677
  var _layer2 = entry.layer;
678
678
 
679
679
  // Attempt to merge with previous if possible
@@ -702,9 +702,9 @@ var LayerUtils = {
702
702
  }
703
703
  // Ensure mutually exclusive groups have exactly one visible layer
704
704
  } catch (err) {
705
- _iterator11.e(err);
705
+ _iterator1.e(err);
706
706
  } finally {
707
- _iterator11.f();
707
+ _iterator1.f();
708
708
  }
709
709
  for (var _i = 0, _newlayers = newlayers; _i < _newlayers.length; _i++) {
710
710
  var layer = _newlayers[_i];
@@ -744,30 +744,30 @@ var LayerUtils = {
744
744
  var visibleSublayer = tristateSublayer || group.sublayers.find(function (sublayer) {
745
745
  return sublayer.visibility === true;
746
746
  }) || group.sublayers[0];
747
- var _iterator12 = _createForOfIteratorHelper(group.sublayers),
748
- _step12;
747
+ var _iterator10 = _createForOfIteratorHelper(group.sublayers),
748
+ _step10;
749
749
  try {
750
- for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
751
- var sublayer = _step12.value;
750
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
751
+ var sublayer = _step10.value;
752
752
  sublayer.visibility = sublayer === visibleSublayer;
753
753
  }
754
754
  } catch (err) {
755
- _iterator12.e(err);
755
+ _iterator10.e(err);
756
756
  } finally {
757
- _iterator12.f();
757
+ _iterator10.f();
758
758
  }
759
759
  }
760
- var _iterator13 = _createForOfIteratorHelper(group.sublayers),
761
- _step13;
760
+ var _iterator11 = _createForOfIteratorHelper(group.sublayers),
761
+ _step11;
762
762
  try {
763
- for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
764
- var _sublayer = _step13.value;
763
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
764
+ var _sublayer = _step11.value;
765
765
  LayerUtils.ensureMutuallyExclusive(_sublayer);
766
766
  }
767
767
  } catch (err) {
768
- _iterator13.e(err);
768
+ _iterator11.e(err);
769
769
  } finally {
770
- _iterator13.f();
770
+ _iterator11.f();
771
771
  }
772
772
  }
773
773
  },
@@ -812,11 +812,11 @@ var LayerUtils = {
812
812
  var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
813
813
  if (layer.sublayers) {
814
814
  var idx = 0;
815
- var _iterator14 = _createForOfIteratorHelper(layer.sublayers),
816
- _step14;
815
+ var _iterator12 = _createForOfIteratorHelper(layer.sublayers),
816
+ _step12;
817
817
  try {
818
- for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
819
- var sublayer = _step14.value;
818
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
819
+ var sublayer = _step12.value;
820
820
  var match = sublayer[attr] === value ? sublayer : LayerUtils.searchSubLayer(sublayer, attr, value, path);
821
821
  if (match) {
822
822
  path.unshift(idx);
@@ -825,9 +825,9 @@ var LayerUtils = {
825
825
  idx += 1;
826
826
  }
827
827
  } catch (err) {
828
- _iterator14.e(err);
828
+ _iterator12.e(err);
829
829
  } finally {
830
- _iterator14.f();
830
+ _iterator12.f();
831
831
  }
832
832
  } else {
833
833
  if (layer[attr] === value) {
@@ -840,11 +840,11 @@ var LayerUtils = {
840
840
  var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
841
841
  if (layer.sublayers) {
842
842
  var idx = 0;
843
- var _iterator15 = _createForOfIteratorHelper(layer.sublayers),
844
- _step15;
843
+ var _iterator13 = _createForOfIteratorHelper(layer.sublayers),
844
+ _step13;
845
845
  try {
846
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
847
- var sublayer = _step15.value;
846
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
847
+ var sublayer = _step13.value;
848
848
  var match = func(sublayer) ? sublayer : LayerUtils.matchSubLayer(sublayer, func, path);
849
849
  if (match) {
850
850
  path.unshift(idx);
@@ -853,9 +853,9 @@ var LayerUtils = {
853
853
  idx += 1;
854
854
  }
855
855
  } catch (err) {
856
- _iterator15.e(err);
856
+ _iterator13.e(err);
857
857
  } finally {
858
- _iterator15.f();
858
+ _iterator13.f();
859
859
  }
860
860
  } else {
861
861
  if (func(layer)) {
@@ -884,11 +884,11 @@ var LayerUtils = {
884
884
  sublayerVisible: function sublayerVisible(layer, sublayerpath) {
885
885
  var visible = layer.visibility !== false;
886
886
  var sublayer = layer;
887
- var _iterator16 = _createForOfIteratorHelper(sublayerpath),
888
- _step16;
887
+ var _iterator14 = _createForOfIteratorHelper(sublayerpath),
888
+ _step14;
889
889
  try {
890
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
891
- var index = _step16.value;
890
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
891
+ var index = _step14.value;
892
892
  sublayer = sublayer.sublayers[index];
893
893
  visible &= sublayer.visibility !== false;
894
894
  if (!visible) {
@@ -896,9 +896,9 @@ var LayerUtils = {
896
896
  }
897
897
  }
898
898
  } catch (err) {
899
- _iterator16.e(err);
899
+ _iterator14.e(err);
900
900
  } finally {
901
- _iterator16.f();
901
+ _iterator14.f();
902
902
  }
903
903
  return true;
904
904
  },
@@ -932,8 +932,7 @@ var LayerUtils = {
932
932
  computeLayerQueryable: function computeLayerQueryable(layer) {
933
933
  var queryable = 0;
934
934
  layer.sublayers.map(function (sublayer) {
935
- var _sublayer$omitFromQue;
936
- var sublayerqueryable = (_sublayer$omitFromQue = !sublayer.omitFromQueryLayers) !== null && _sublayer$omitFromQue !== void 0 ? _sublayer$omitFromQue : true;
935
+ var sublayerqueryable = !sublayer.omitFromQueryLayers;
937
936
  if (sublayer.sublayers && sublayerqueryable) {
938
937
  queryable += LayerUtils.computeLayerQueryable(sublayer);
939
938
  } else {
@@ -962,30 +961,30 @@ var LayerUtils = {
962
961
  },
963
962
  collectGroupLayers: function collectGroupLayers(layer, parentGroups, groupLayers) {
964
963
  if (!isEmpty(layer.sublayers)) {
965
- var _iterator17 = _createForOfIteratorHelper(layer.sublayers),
966
- _step17;
964
+ var _iterator15 = _createForOfIteratorHelper(layer.sublayers),
965
+ _step15;
967
966
  try {
968
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
969
- var sublayer = _step17.value;
967
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
968
+ var sublayer = _step15.value;
970
969
  LayerUtils.collectGroupLayers(sublayer, parentGroups.concat(layer.name), groupLayers);
971
970
  }
972
971
  } catch (err) {
973
- _iterator17.e(err);
972
+ _iterator15.e(err);
974
973
  } finally {
975
- _iterator17.f();
974
+ _iterator15.f();
976
975
  }
977
976
  } else {
978
- var _iterator18 = _createForOfIteratorHelper(parentGroups),
979
- _step18;
977
+ var _iterator16 = _createForOfIteratorHelper(parentGroups),
978
+ _step16;
980
979
  try {
981
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
982
- var group = _step18.value;
980
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
981
+ var group = _step16.value;
983
982
  groupLayers[group] = (groupLayers[group] || []).concat(layer.name);
984
983
  }
985
984
  } catch (err) {
986
- _iterator18.e(err);
985
+ _iterator16.e(err);
987
986
  } finally {
988
- _iterator18.f();
987
+ _iterator16.f();
989
988
  }
990
989
  }
991
990
  },
@@ -993,11 +992,11 @@ var LayerUtils = {
993
992
  var groupLayers = {};
994
993
  LayerUtils.collectGroupLayers(layer, [], groupLayers);
995
994
  var newLayerConfigs = [];
996
- var _iterator19 = _createForOfIteratorHelper(layerConfigs),
997
- _step19;
995
+ var _iterator17 = _createForOfIteratorHelper(layerConfigs),
996
+ _step17;
998
997
  try {
999
998
  var _loop4 = function _loop4() {
1000
- var layerConfig = _step19.value;
999
+ var layerConfig = _step17.value;
1001
1000
  if (layerConfig.name in groupLayers) {
1002
1001
  newLayerConfigs.push.apply(newLayerConfigs, _toConsumableArray(groupLayers[layerConfig.name].map(function (name) {
1003
1002
  return _objectSpread(_objectSpread({}, layerConfig), {}, {
@@ -1008,13 +1007,13 @@ var LayerUtils = {
1008
1007
  newLayerConfigs.push(layerConfig);
1009
1008
  }
1010
1009
  };
1011
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
1010
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
1012
1011
  _loop4();
1013
1012
  }
1014
1013
  } catch (err) {
1015
- _iterator19.e(err);
1014
+ _iterator17.e(err);
1016
1015
  } finally {
1017
- _iterator19.f();
1016
+ _iterator17.f();
1018
1017
  }
1019
1018
  return newLayerConfigs;
1020
1019
  },
@@ -1218,11 +1217,11 @@ var LayerUtils = {
1218
1217
  FILTER_GEOM: ''
1219
1218
  };
1220
1219
  var counterRef = [0];
1221
- var _iterator20 = _createForOfIteratorHelper(layers),
1222
- _step20;
1220
+ var _iterator18 = _createForOfIteratorHelper(layers),
1221
+ _step18;
1223
1222
  try {
1224
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
1225
- var _layer3 = _step20.value;
1223
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
1224
+ var _layer3 = _step18.value;
1226
1225
  if (_layer3.role === LayerRole.THEME && _layer3.params.LAYERS) {
1227
1226
  var _layer3$params$FILTER, _layer3$params$FILTER2;
1228
1227
  params.LAYERS.push(_layer3.params.LAYERS);
@@ -1238,9 +1237,9 @@ var LayerUtils = {
1238
1237
  }
1239
1238
  }
1240
1239
  } catch (err) {
1241
- _iterator20.e(err);
1240
+ _iterator18.e(err);
1242
1241
  } finally {
1243
- _iterator20.f();
1242
+ _iterator18.f();
1244
1243
  }
1245
1244
  var backgroundLayer = layers.find(function (layer) {
1246
1245
  return layer.role === LayerRole.BACKGROUND && layer.visibility === true;
@@ -1433,17 +1432,17 @@ var LayerUtils = {
1433
1432
  var reports = {};
1434
1433
  var _collectLayerReports = function collectLayerReports(toplayer, layer) {
1435
1434
  if (layer.sublayers) {
1436
- var _iterator21 = _createForOfIteratorHelper(layer.sublayers),
1437
- _step21;
1435
+ var _iterator19 = _createForOfIteratorHelper(layer.sublayers),
1436
+ _step19;
1438
1437
  try {
1439
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
1440
- var sublayer = _step21.value;
1438
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
1439
+ var sublayer = _step19.value;
1441
1440
  reports = _objectSpread(_objectSpread({}, reports), _collectLayerReports(toplayer, sublayer));
1442
1441
  }
1443
1442
  } catch (err) {
1444
- _iterator21.e(err);
1443
+ _iterator19.e(err);
1445
1444
  } finally {
1446
- _iterator21.f();
1445
+ _iterator19.f();
1447
1446
  }
1448
1447
  } else if (layer.featureReport) {
1449
1448
  var key = toplayer.url + "#" + layer.name;
@@ -12,13 +12,13 @@ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Can
12
12
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
14
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15
16
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
17
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
19
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20
18
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
21
19
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
22
  /**
23
23
  * Copyright 2018-2024 Sourcepole AG
24
24
  * All rights reserved.
@@ -178,6 +178,13 @@ var MiscUtils = {
178
178
  }
179
179
  return [el];
180
180
  },
181
+ objectOmit: function objectOmit(obj, excludeKeys) {
182
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref) {
183
+ var _ref2 = _slicedToArray(_ref, 1),
184
+ key = _ref2[0];
185
+ return !excludeKeys.includes(key);
186
+ }));
187
+ },
181
188
  capitalizeFirst: function capitalizeFirst(text) {
182
189
  return text.slice(0, 1).toUpperCase() + text.slice(1);
183
190
  },