qwc2 2026.6.23 → 2026.6.24

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/actions/theme.js CHANGED
@@ -125,11 +125,9 @@ export function finishThemeSetup(dispatch, theme, themes, layerConfigs, preserve
125
125
  } finally {
126
126
  _iterator.f();
127
127
  }
128
- if (!actuallyVisibleBgLayer) {
129
- UrlParams.updateParams({
130
- bl: ""
131
- });
132
- }
128
+ UrlParams.updateParams({
129
+ bl: actuallyVisibleBgLayer !== null && actuallyVisibleBgLayer !== void 0 ? actuallyVisibleBgLayer : ""
130
+ });
133
131
  var _iterator2 = _createForOfIteratorHelper(layers.reverse()),
134
132
  _step2;
135
133
  try {
@@ -168,9 +168,7 @@ var AttributeForm = /*#__PURE__*/function (_React$Component) {
168
168
  action: "",
169
169
  className: "attrib-form-parent-form",
170
170
  onSubmit: _this.onSubmit,
171
- ref: function ref(el) {
172
- _this.form = el;
173
- }
171
+ ref: _this.setRef
174
172
  }, editConfig.form ? /*#__PURE__*/React.createElement(QtDesignerForm, {
175
173
  addRelationRecord: _this.addRelationRecord,
176
174
  editConfig: editConfig,
@@ -199,6 +197,9 @@ var AttributeForm = /*#__PURE__*/function (_React$Component) {
199
197
  values: _this.props.editContext.feature.properties
200
198
  }), captchaButton, commitBar), deleteBar, busyDiv, childAttributeForm);
201
199
  });
200
+ _defineProperty(_this, "setRef", function (el) {
201
+ _this.form = el;
202
+ });
202
203
  _defineProperty(_this, "setFormBusy", function (busy) {
203
204
  _this.setState({
204
205
  busy: busy
@@ -93,7 +93,7 @@ var LayerInfoWindow = /*#__PURE__*/function (_React$Component) {
93
93
  }
94
94
  var legend = null;
95
95
  var scale = MapUtils.computeForZoom(this.props.map.scales, this.props.map.zoom);
96
- var legendUrl = LayerUtils.getLegendUrl(this.props.layer, this.props.sublayer, scale, this.props.map, this.props.bboxDependentLegend, this.props.scaleDependentLegend);
96
+ var legendUrl = LayerUtils.getLegendUrl(this.props.layer, this.props.sublayer, scale, this.props.map, this.props.bboxDependentLegend, this.props.scaleDependentLegend, this.props.extraLegendParameters);
97
97
  if (legendUrl) {
98
98
  legend = /*#__PURE__*/React.createElement(Image, {
99
99
  className: "layer-info-window-legend",
@@ -130,6 +130,7 @@ var LayerInfoWindow = /*#__PURE__*/function (_React$Component) {
130
130
  }(React.Component);
131
131
  _defineProperty(LayerInfoWindow, "propTypes", {
132
132
  bboxDependentLegend: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
133
+ extraLegendParameters: PropTypes.string,
133
134
  layer: PropTypes.object,
134
135
  layerInfoGeometry: PropTypes.object,
135
136
  map: PropTypes.object,
@@ -55,8 +55,7 @@ var GroupSelect = /*#__PURE__*/function (_Component) {
55
55
  value: this.props.value
56
56
  }, this.props.placeholder !== null ? /*#__PURE__*/React.createElement("option", {
57
57
  disabled: true,
58
- hidden: true,
59
- selected: true
58
+ value: ""
60
59
  }, this.props.placeholder) : null, this.props.defaultOption !== null ? /*#__PURE__*/React.createElement("option", {
61
60
  key: this.props.defaultOption[0],
62
61
  value: this.props.defaultOption[0]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qwc2",
3
- "version": "2026.06.23",
3
+ "version": "2026.06.24",
4
4
  "description": "QGIS Web Client",
5
5
  "author": "Sourcepole AG",
6
6
  "license": "BSD-2-Clause",
@@ -152,7 +152,7 @@ var FeatureForm = /*#__PURE__*/function (_React$Component) {
152
152
  _defineProperty(_this, "onWindowClose", function () {
153
153
  if (!_this.props.editContext.changed) {
154
154
  _this.clearResults();
155
- if (_this.props.exitTaskOnResultsClose) {
155
+ if (_this.props.exitTaskOnResultsClose && _this.props.currentTask === "FeatureForm") {
156
156
  _this.props.setCurrentTask(null);
157
157
  }
158
158
  }
@@ -314,6 +314,7 @@ _defineProperty(FeatureForm, "propTypes", {
314
314
  clearEditContext: PropTypes.func,
315
315
  click: PropTypes.object,
316
316
  currentEditContext: PropTypes.string,
317
+ currentTask: PropTypes.string,
317
318
  editConfigs: PropTypes.object,
318
319
  editContext: PropTypes.object,
319
320
  enabled: PropTypes.bool,
@@ -356,8 +357,9 @@ _defineProperty(FeatureForm, "defaultState", {
356
357
  export default (function () {
357
358
  var iface = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EditingInterface;
358
359
  return connect(function (state) {
359
- var enabled = state.task.id === "FeatureForm" || state.task.identifyEnabled && ConfigUtils.getConfigProp("identifyTool", state.theme.current, "Identify") === "FeatureForm";
360
+ var enabled = state.task.id === "FeatureForm" || (!state.task.id || state.task.identifyEnabled) && ConfigUtils.getConfigProp("identifyTool", state.theme.current, "Identify") === "FeatureForm";
360
361
  return {
362
+ currentTask: state.task.id,
361
363
  click: state.map.click || {
362
364
  modifiers: {}
363
365
  },
@@ -579,7 +579,7 @@ _defineProperty(Identify, "defaultProps", {
579
579
  });
580
580
  export default connect(function (state) {
581
581
  var _state$layers$filter;
582
- var enabled = state.task.id === "Identify" || state.task.identifyEnabled && ConfigUtils.getConfigProp("identifyTool", state.theme.current, "Identify") === "Identify";
582
+ var enabled = state.task.id === "Identify" || (!state.task.id || state.task.identifyEnabled) && ConfigUtils.getConfigProp("identifyTool", state.theme.current, "Identify") === "Identify";
583
583
  return {
584
584
  click: state.map.click || {
585
585
  modifiers: {}
@@ -1139,6 +1139,7 @@ var LayerTree = /*#__PURE__*/function (_React$Component) {
1139
1139
  };
1140
1140
  }), legendTooltip, this.renderLegendPrintWindow(), /*#__PURE__*/React.createElement(LayerInfoWindow, {
1141
1141
  bboxDependentLegend: this.props.bboxDependentLegend,
1142
+ extraLegendParameters: this.props.extraLegendParameters,
1142
1143
  layerInfoGeometry: this.props.layerInfoGeometry,
1143
1144
  scaleDependentLegend: this.props.scaleDependentLegend
1144
1145
  }), /*#__PURE__*/React.createElement(ServiceInfoWindow, {
@@ -1,4 +1,12 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ 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; } }
5
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
6
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
7
+ 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; }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2
10
  function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
11
  function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
4
12
  function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
@@ -37,8 +45,11 @@ var BackgroundSwitcher3D = /*#__PURE__*/function (_React$Component) {
37
45
  return _createClass(BackgroundSwitcher3D, [{
38
46
  key: "render",
39
47
  value: function render() {
48
+ var backgroundLayers = Object.values(this.props.sceneContext.baseLayers.reduce(function (res, l) {
49
+ return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, "_" + (l.group || l.name), l.group ? [].concat(_toConsumableArray(res["_" + l.group] || []), [l]) : l));
50
+ }, {}));
40
51
  return /*#__PURE__*/React.createElement(BackgroundSwitcher, {
41
- backgroundLayers: this.props.sceneContext.baseLayers,
52
+ backgroundLayers: backgroundLayers,
42
53
  buttonClickAction: this.props.buttonClickAction,
43
54
  buttonDisplayMode: this.props.buttonDisplayMode,
44
55
  changeLayerVisibility: this.props.sceneContext.setBaseLayer,