qwc2 2026.6.27 → 2026.7.7
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/components/EditComboField.js +1 -0
- package/components/ExportSelection.js +10 -2
- package/components/QtDesignerForm.js +1 -1
- package/components/map3d/utils/Tiles3DStyle.js +2 -2
- package/components/widgets/LayerCatalogWidget.js +78 -5
- package/package.json +1 -1
- package/plugins/FeatureSearch.js +1 -1
- package/plugins/Identify.js +9 -2
- package/plugins/LayerCatalog.js +20 -4
- package/plugins/ThemeBrowser.js +11 -11
- package/plugins/map3d/LayerTree3D.js +2 -0
- package/plugins/map3d/MapExport3D.js +8 -3
|
@@ -102,6 +102,7 @@ var EditComboField = /*#__PURE__*/function (_React$Component) {
|
|
|
102
102
|
return _this.props.updateField(_this.props.fieldId, value);
|
|
103
103
|
},
|
|
104
104
|
placeholder: _this.state.showPlaceholder ? (_this$props$placehold = _this.props.placeholder) !== null && _this$props$placehold !== void 0 ? _this$props$placehold : LocaleUtils.tr("common.select") : undefined,
|
|
105
|
+
readOnly: _this.props.readOnly,
|
|
105
106
|
required: _this.props.required,
|
|
106
107
|
style: _this.props.style,
|
|
107
108
|
value: String(_this.props.value)
|
|
@@ -47,10 +47,12 @@ var ExportSelection = /*#__PURE__*/function (_React$Component) {
|
|
|
47
47
|
}
|
|
48
48
|
var startStateX = _this.state.x;
|
|
49
49
|
var startStateY = _this.state.y;
|
|
50
|
+
var maxWidth = ev.target.parentElement.offsetWidth - _this.state.width;
|
|
51
|
+
var maxHeight = ev.target.parentElement.offsetHeight - _this.state.height;
|
|
50
52
|
var onMouseMove = function onMouseMove(event) {
|
|
51
53
|
_this.setState({
|
|
52
|
-
x: startStateX + event.clientX - ev.clientX,
|
|
53
|
-
y: startStateY + event.clientY - ev.clientY
|
|
54
|
+
x: Math.max(0, Math.min(maxWidth, startStateX + event.clientX - ev.clientX)),
|
|
55
|
+
y: Math.max(0, Math.min(maxHeight, startStateY + event.clientY - ev.clientY))
|
|
54
56
|
});
|
|
55
57
|
};
|
|
56
58
|
ev.view.addEventListener('pointermove', onMouseMove);
|
|
@@ -66,6 +68,8 @@ var ExportSelection = /*#__PURE__*/function (_React$Component) {
|
|
|
66
68
|
if (ev.ctrlKey) {
|
|
67
69
|
return;
|
|
68
70
|
}
|
|
71
|
+
var maxWidth = ev.target.parentElement.parentElement.offsetWidth;
|
|
72
|
+
var maxHeight = ev.target.parentElement.parentElement.offsetHeight;
|
|
69
73
|
var _this$state = _this.state,
|
|
70
74
|
x = _this$state.x,
|
|
71
75
|
y = _this$state.y,
|
|
@@ -92,6 +96,10 @@ var ExportSelection = /*#__PURE__*/function (_React$Component) {
|
|
|
92
96
|
if (sy === 0) {
|
|
93
97
|
newy += 0.5 * (height - newheight);
|
|
94
98
|
}
|
|
99
|
+
if (newx < 0 || newy < 0 || newx + newwidth > maxWidth || newy + newheight > maxHeight) {
|
|
100
|
+
// Don't set new size if it would overflow the container
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
95
103
|
_this.setState({
|
|
96
104
|
x: newx,
|
|
97
105
|
y: newy,
|
|
@@ -766,7 +766,7 @@ var QtDesignerForm = /*#__PURE__*/function (_React$Component) {
|
|
|
766
766
|
_defineProperty(_this, "renderNRelation", function (widget) {
|
|
767
767
|
var _widget$property2, _editConfig$fields, _this$props$feature$r;
|
|
768
768
|
var parts = widget.name.split("__");
|
|
769
|
-
if (parts.length < 3) {
|
|
769
|
+
if (parts.length < 3 || !widget.layout) {
|
|
770
770
|
return null;
|
|
771
771
|
}
|
|
772
772
|
var disabled = String((_widget$property2 = widget.property) === null || _widget$property2 === void 0 ? void 0 : _widget$property2.enabled) === "false";
|
|
@@ -31,10 +31,10 @@ styleExpressionParser.functions.color = function (name) {
|
|
|
31
31
|
})), [alpha]);
|
|
32
32
|
};
|
|
33
33
|
styleExpressionParser.functions.rgb = function (r, g, b) {
|
|
34
|
-
return [r / 255, g / 255,
|
|
34
|
+
return [r / 255, g / 255, b / 255, 1];
|
|
35
35
|
};
|
|
36
36
|
styleExpressionParser.functions.rgba = function (r, g, b, a) {
|
|
37
|
-
return [r / 255, g / 255,
|
|
37
|
+
return [r / 255, g / 255, b / 255, a];
|
|
38
38
|
};
|
|
39
39
|
styleExpressionParser.functions.hsl = function (h, s, l) {
|
|
40
40
|
return [].concat(_toConsumableArray(MiscUtils.hslToRgb(h, s, l)), [1]);
|
|
@@ -45,6 +45,22 @@ var LayerCatalogWidget = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
45
45
|
filteredCatalog: null,
|
|
46
46
|
filter: ""
|
|
47
47
|
});
|
|
48
|
+
_defineProperty(_this, "entryClicked", function (entry, path) {
|
|
49
|
+
if (entry.type || entry.resource) {
|
|
50
|
+
var _entry$resource;
|
|
51
|
+
if (entry.asGroup === true && ((_entry$resource = entry.resource) !== null && _entry$resource !== void 0 ? _entry$resource : entry.type).startsWith("wms")) {
|
|
52
|
+
if (!isEmpty(entry.sublayers) && entry.resource) {
|
|
53
|
+
_this.checkAddGroup(entry);
|
|
54
|
+
} else {
|
|
55
|
+
_this.checkAddServiceLayer(entry, true);
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
_this.checkAddServiceLayer(entry, false);
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
_this.toggleLayerListEntry(path);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
48
64
|
_defineProperty(_this, "toggleLayerListEntry", function (path) {
|
|
49
65
|
_this.setState(function (state) {
|
|
50
66
|
var catalogKey = _this.state.filteredCatalog ? "filteredCatalog" : "catalog";
|
|
@@ -135,8 +151,50 @@ var LayerCatalogWidget = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
135
151
|
_this.addServiceLayer(entry, resource, asGroup);
|
|
136
152
|
}
|
|
137
153
|
});
|
|
154
|
+
_defineProperty(_this, "checkAddGroup", function (group) {
|
|
155
|
+
// Collect sublayers
|
|
156
|
+
var sublayers = {};
|
|
157
|
+
var stripQuery = function stripQuery(url) {
|
|
158
|
+
return (url !== null && url !== void 0 ? url : "").split("?")[0];
|
|
159
|
+
};
|
|
160
|
+
var resource = LayerUtils.splitLayerUrlParam(group.resource);
|
|
161
|
+
var groupUrl = stripQuery(resource.url);
|
|
162
|
+
var _collectSublayers = function collectSublayers(entry) {
|
|
163
|
+
var _entry$resource2;
|
|
164
|
+
var entryParams = LayerUtils.splitLayerUrlParam((_entry$resource2 = entry.resource) !== null && _entry$resource2 !== void 0 ? _entry$resource2 : "");
|
|
165
|
+
if (stripQuery(entryParams.url) === groupUrl) {
|
|
166
|
+
sublayers[entryParams.name] = entryParams;
|
|
167
|
+
}
|
|
168
|
+
(entry.sublayers || []).forEach(_collectSublayers);
|
|
169
|
+
};
|
|
170
|
+
_collectSublayers(group);
|
|
171
|
+
// Check if one or more sublayers are already in the map
|
|
172
|
+
var existingSublayers = _this.props.layers.reduce(function (res, layer) {
|
|
173
|
+
if (layer.type === "wms" && stripQuery(layer.url) === stripQuery(groupUrl)) {
|
|
174
|
+
return [].concat(_toConsumableArray(res), _toConsumableArray(LayerUtils.getSublayerNames(layer)), [layer.name]);
|
|
175
|
+
}
|
|
176
|
+
return res;
|
|
177
|
+
}, []);
|
|
178
|
+
var overlappingSublayers = Object.keys(sublayers).filter(function (name) {
|
|
179
|
+
return existingSublayers.includes(name);
|
|
180
|
+
});
|
|
181
|
+
if (!isEmpty(overlappingSublayers)) {
|
|
182
|
+
var text = LocaleUtils.tr("themelayerslist.existinglayers") + ": " + overlappingSublayers.join(", ");
|
|
183
|
+
var actions = [{
|
|
184
|
+
name: LocaleUtils.tr("themelayerslist.addanyway"),
|
|
185
|
+
onClick: function onClick() {
|
|
186
|
+
_this.addServiceLayer(group, resource, true, sublayers);
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
}];
|
|
190
|
+
_this.props.showNotification("existinglayers", text, NotificationType.INFO, false, actions);
|
|
191
|
+
} else {
|
|
192
|
+
_this.addServiceLayer(group, resource, true, sublayers);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
138
195
|
_defineProperty(_this, "addServiceLayer", function (entry, resource) {
|
|
139
196
|
var asGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
197
|
+
var sublayerSubset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
140
198
|
_this.props.closeWindow("existinglayers");
|
|
141
199
|
if (resource) {
|
|
142
200
|
var _entry$title2;
|
|
@@ -151,8 +209,21 @@ var LayerCatalogWidget = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
151
209
|
});
|
|
152
210
|
ServiceLayerUtils.findLayers(resource.type, resource.url, [resource], _this.props.mapCrs, function (id, layer) {
|
|
153
211
|
if (layer) {
|
|
154
|
-
if (
|
|
212
|
+
if (!asGroup) {
|
|
155
213
|
layer.sublayers = null;
|
|
214
|
+
} else if (sublayerSubset) {
|
|
215
|
+
var _filterSublayers = function filterSublayers(sublayers) {
|
|
216
|
+
return sublayers.map(function (sublayer) {
|
|
217
|
+
if (sublayer.sublayers) {
|
|
218
|
+
return _filterSublayers(sublayer.sublayers);
|
|
219
|
+
} else if (sublayer.name in sublayerSubset) {
|
|
220
|
+
return _objectSpread(_objectSpread({}, sublayer), sublayerSubset);
|
|
221
|
+
} else {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
}).filter(Boolean);
|
|
225
|
+
};
|
|
226
|
+
layer.sublayers = _filterSublayers(layer.sublayers);
|
|
156
227
|
}
|
|
157
228
|
LayerUtils.propagateLayerProperty(layer, "opacity", resource.opacity);
|
|
158
229
|
_this.props.replacePlaceholderLayer(resource.id, layer);
|
|
@@ -202,7 +273,9 @@ var LayerCatalogWidget = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
202
273
|
}, {
|
|
203
274
|
key: "renderCatalogEntry",
|
|
204
275
|
value: function renderCatalogEntry(entry, path) {
|
|
205
|
-
var _this2 = this
|
|
276
|
+
var _this2 = this,
|
|
277
|
+
_ref2,
|
|
278
|
+
_entry$resource3;
|
|
206
279
|
var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
207
280
|
var idx = arguments.length > 3 ? arguments[3] : undefined;
|
|
208
281
|
var hasSublayers = !isEmpty(entry.sublayers);
|
|
@@ -229,16 +302,16 @@ var LayerCatalogWidget = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
229
302
|
}), /*#__PURE__*/React.createElement("span", {
|
|
230
303
|
className: "layer-catalog-widget-entry-contents",
|
|
231
304
|
onClick: function onClick() {
|
|
232
|
-
return
|
|
305
|
+
return _this2.entryClicked(entry, path);
|
|
233
306
|
},
|
|
234
307
|
onKeyDown: MiscUtils.checkKeyActivate,
|
|
235
308
|
tabIndex: 0
|
|
236
309
|
}, type ? /*#__PURE__*/React.createElement("span", {
|
|
237
310
|
className: "layer-catalog-widget-entry-service"
|
|
238
|
-
}, type) : null, entry.title), hasSublayers &&
|
|
311
|
+
}, type) : null, entry.title), (hasSublayers && !entry.asGroup || entry.asGroup === "option") && ((_ref2 = (_entry$resource3 = entry.resource) !== null && _entry$resource3 !== void 0 ? _entry$resource3 : entry.type) !== null && _ref2 !== void 0 ? _ref2 : "").startsWith("wms") ? /*#__PURE__*/React.createElement(Icon, {
|
|
239
312
|
icon: "group",
|
|
240
313
|
onClick: function onClick() {
|
|
241
|
-
return _this2.checkAddServiceLayer(entry, true);
|
|
314
|
+
return hasSublayers && entry.resource ? _this2.checkAddGroup(entry) : _this2.checkAddServiceLayer(entry, true);
|
|
242
315
|
},
|
|
243
316
|
title: LocaleUtils.tr("importlayer.asgroup")
|
|
244
317
|
}) : null, entry.link ? /*#__PURE__*/React.createElement(Icon, {
|
package/package.json
CHANGED
package/plugins/FeatureSearch.js
CHANGED
|
@@ -389,7 +389,7 @@ var FeatureSearch = /*#__PURE__*/function (_React$Component) {
|
|
|
389
389
|
var defaultProvider = '';
|
|
390
390
|
var providerGroups = {};
|
|
391
391
|
var searchProviders = (((_this$props$theme = this.props.theme) === null || _this$props$theme === void 0 ? void 0 : _this$props$theme.searchProviders) || []).reduce(function (res, entry) {
|
|
392
|
-
if (entry.provider === "qgis" && entry.params) {
|
|
392
|
+
if (entry.provider === "qgis" && entry.params && entry.params.featuresearch !== false) {
|
|
393
393
|
var providerDef = _objectSpread({}, entry);
|
|
394
394
|
if (!providerDef.params.fields) {
|
|
395
395
|
providerDef.params = _objectSpread({}, providerDef.params);
|
package/plugins/Identify.js
CHANGED
|
@@ -380,7 +380,10 @@ var Identify = /*#__PURE__*/function (_React$Component) {
|
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
if (this.props.enabled) {
|
|
383
|
-
if (this.
|
|
383
|
+
if (this.props.identifySearchResults && this.props.currentSearchResult && this.props.currentSearchResult !== prevProps.currentSearchResult) {
|
|
384
|
+
var res = this.props.currentSearchResult;
|
|
385
|
+
this.identifyPoint(CoordinatesUtils.reproject([res.x, res.y], res.crs, this.props.map.projection));
|
|
386
|
+
} else if (this.state.mode === "Point") {
|
|
384
387
|
var clickPoint = this.queryPoint(prevProps);
|
|
385
388
|
this.identifyPoint(clickPoint);
|
|
386
389
|
} else if (this.state.mode === "Region") {
|
|
@@ -496,6 +499,7 @@ _defineProperty(Identify, "propTypes", {
|
|
|
496
499
|
clearResultsOnClose: PropTypes.bool,
|
|
497
500
|
click: PropTypes.object,
|
|
498
501
|
currentIdentifyTool: PropTypes.string,
|
|
502
|
+
currentSearchResult: PropTypes.object,
|
|
499
503
|
currentTask: PropTypes.string,
|
|
500
504
|
/** Optional list of custom exporters to offer along with the built-in exporters. See js/IdentifyExtensions.js for details. This prop can be specified in the appConfig.js cfg section. */
|
|
501
505
|
customExporters: PropTypes.array,
|
|
@@ -519,8 +523,10 @@ _defineProperty(Identify, "propTypes", {
|
|
|
519
523
|
initiallyDocked: PropTypes.bool,
|
|
520
524
|
side: PropTypes.string
|
|
521
525
|
}),
|
|
522
|
-
/** Whether to highlight all results if no result is hovered */
|
|
526
|
+
/** Whether to highlight all results if no result is hovered. */
|
|
523
527
|
highlightAllResults: PropTypes.bool,
|
|
528
|
+
/** Whether to trigger an identify when selecting a search result. */
|
|
529
|
+
identifySearchResults: PropTypes.bool,
|
|
524
530
|
iframeDialogsInitiallyDocked: PropTypes.bool,
|
|
525
531
|
/** The initial radius units of the identify dialog in radius mode. One of 'm', 'ft', 'km', 'mi'. */
|
|
526
532
|
initialRadiusUnits: PropTypes.string,
|
|
@@ -584,6 +590,7 @@ export default connect(function (state) {
|
|
|
584
590
|
click: state.map.click || {
|
|
585
591
|
modifiers: {}
|
|
586
592
|
},
|
|
593
|
+
currentSearchResult: state.search.currentResult,
|
|
587
594
|
enabled: enabled,
|
|
588
595
|
layerFilterGeom: (_state$layers$filter = state.layers.filter) === null || _state$layers$filter === void 0 ? void 0 : _state$layers$filter.filterGeom,
|
|
589
596
|
layers: state.layers.flat,
|
package/plugins/LayerCatalog.js
CHANGED
|
@@ -38,8 +38,11 @@ import './style/LayerCatalog.css';
|
|
|
38
38
|
*
|
|
39
39
|
* Configured through a catalog JSON containing a tree of external layer identifiers.
|
|
40
40
|
*
|
|
41
|
-
* For `wms`
|
|
42
|
-
*
|
|
41
|
+
* For catalog entries containing a `wms` resource, you can specify `"asGroup": <true|false|"option">`, which behaves as follows:
|
|
42
|
+
*
|
|
43
|
+
* * `false`: imports the layer as a flat layer, without sublayer structure. This is the default behaviour for entries without sublayers if `asGroup` is not specified.
|
|
44
|
+
* * `true`: imports the layer as a group, with sublayer structure. If the catalog entry has sublayers, the sublayer structure will be filtered to only include these sublayers.
|
|
45
|
+
* * `"option"`: imports the layer as a flat layer when clicking on the catalog entry, but displays an icon to optionally import the layer as a group layer. This is the default behaviour for entries with sublayers if `asGroup` is not specified.
|
|
43
46
|
*
|
|
44
47
|
* Example:
|
|
45
48
|
* ```json
|
|
@@ -48,11 +51,11 @@ import './style/LayerCatalog.css';
|
|
|
48
51
|
* {
|
|
49
52
|
* "title": "Öffentlicher Verkehr swissTLMRegio",
|
|
50
53
|
* "resource": "wms:http://wms.geo.admin.ch#ch.swisstopo.vec200-transportation-oeffentliche-verkehr",
|
|
51
|
-
* "
|
|
54
|
+
* "asGroup": true
|
|
52
55
|
* },
|
|
53
56
|
* {
|
|
54
57
|
* "title": "Gewässerschutz",
|
|
55
|
-
*
|
|
58
|
+
* "resource": "wms:https://geo.so.ch/api/wms#ch.so.afu.gewaesserschutz[50]"
|
|
56
59
|
* },
|
|
57
60
|
* {
|
|
58
61
|
* "title": "Landeskarten",
|
|
@@ -66,6 +69,19 @@ import './style/LayerCatalog.css';
|
|
|
66
69
|
* "resource": "wms:http://wms.geo.admin.ch#ch.swisstopo.pixelkarte-farbe-pk100.noscale"
|
|
67
70
|
* }
|
|
68
71
|
* ]
|
|
72
|
+
* },
|
|
73
|
+
* {
|
|
74
|
+
* "title": "Edit Demo",
|
|
75
|
+
* "resource": "wms:https://demo.qwc.app/ows/qwc_demo#edit_demo",
|
|
76
|
+
* "sublayers": [{
|
|
77
|
+
* "title": "Edit Points",
|
|
78
|
+
* "resource": "wms:https://demo.qwc.app/ows/qwc_demo#edit_points"
|
|
79
|
+
* },
|
|
80
|
+
* {
|
|
81
|
+
* "title": "Edit Lines",
|
|
82
|
+
* "resource": "wms:https://demo.qwc.app/ows/qwc_demo#edit_lines"
|
|
83
|
+
* }],
|
|
84
|
+
* "asGroup": "option"
|
|
69
85
|
* }
|
|
70
86
|
* ]
|
|
71
87
|
* }
|
package/plugins/ThemeBrowser.js
CHANGED
|
@@ -407,6 +407,17 @@ var ThemeBrowser = /*#__PURE__*/function (_React$Component) {
|
|
|
407
407
|
});
|
|
408
408
|
this.props.setCurrentTask(null);
|
|
409
409
|
}
|
|
410
|
+
var width = this.maxLayerTitleLength + "px";
|
|
411
|
+
if (this.props.fillIfWiderThanPerc && this.maxLayerTitleLength > window.innerWidth * this.props.fillIfWiderThanPerc / 100) {
|
|
412
|
+
width = '100%';
|
|
413
|
+
}
|
|
414
|
+
this.measureCanvas = undefined;
|
|
415
|
+
this.measureContext = undefined;
|
|
416
|
+
if (width !== this.state.width) {
|
|
417
|
+
this.setState({
|
|
418
|
+
width: width
|
|
419
|
+
});
|
|
420
|
+
}
|
|
410
421
|
}
|
|
411
422
|
}, {
|
|
412
423
|
key: "render",
|
|
@@ -429,17 +440,6 @@ var ThemeBrowser = /*#__PURE__*/function (_React$Component) {
|
|
|
429
440
|
className: "themebrowser-body",
|
|
430
441
|
role: "body"
|
|
431
442
|
}, this.renderThemes(this.props.themes)));
|
|
432
|
-
var width = this.maxLayerTitleLength + "px";
|
|
433
|
-
if (this.props.fillIfWiderThanPerc && this.maxLayerTitleLength > window.innerWidth * this.props.fillIfWiderThanPerc / 100) {
|
|
434
|
-
width = '100%';
|
|
435
|
-
}
|
|
436
|
-
this.measureCanvas = undefined;
|
|
437
|
-
this.measureContext = undefined;
|
|
438
|
-
if (width !== this.state.width) {
|
|
439
|
-
this.setState({
|
|
440
|
-
width: width
|
|
441
|
-
});
|
|
442
|
-
}
|
|
443
443
|
return result;
|
|
444
444
|
}
|
|
445
445
|
}]);
|
|
@@ -96,6 +96,8 @@ var LayerTree3D = /*#__PURE__*/function (_React$Component) {
|
|
|
96
96
|
return entry.sublayers.map(function (sublayer, idx) {
|
|
97
97
|
return _this.renderLayerEntry(layerId, sublayer, entry, _this.updateColorLayer, false, true, [idx]);
|
|
98
98
|
});
|
|
99
|
+
} else if (entry.role === LayerRole.THEME && showRootEntry && isEmpty(entry.sublayers)) {
|
|
100
|
+
return null;
|
|
99
101
|
} else {
|
|
100
102
|
return _this.renderLayerEntry(layerId, entry, null, _this.updateColorLayer, false, true, [], layersHaveSublayers);
|
|
101
103
|
}
|
|
@@ -67,11 +67,12 @@ var MapExport3D = /*#__PURE__*/function (_React$Component) {
|
|
|
67
67
|
_defineProperty(_this, "onShow", function () {
|
|
68
68
|
var _this$props$theme;
|
|
69
69
|
var rect = _this.props.sceneContext.scene.domElement.getBoundingClientRect();
|
|
70
|
+
var rectHeight = rect.height - _this.props.topbarHeight - _this.props.bottombarHeight;
|
|
70
71
|
var frame = {
|
|
71
72
|
x: 0.125 * rect.width,
|
|
72
|
-
y: 0.125 *
|
|
73
|
+
y: 0.125 * rectHeight,
|
|
73
74
|
width: 0.75 * rect.width,
|
|
74
|
-
height: 0.75 *
|
|
75
|
+
height: 0.75 * rectHeight
|
|
75
76
|
};
|
|
76
77
|
if (!isEmpty((_this$props$theme = _this.props.theme) === null || _this$props$theme === void 0 ? void 0 : _this$props$theme.print)) {
|
|
77
78
|
var _ref, _this$props$theme$pri, _this$props$theme$pri2, _this$props$theme$pri3;
|
|
@@ -571,10 +572,12 @@ var MapExport3D = /*#__PURE__*/function (_React$Component) {
|
|
|
571
572
|
}]);
|
|
572
573
|
}(React.Component);
|
|
573
574
|
_defineProperty(MapExport3D, "propTypes", {
|
|
575
|
+
bottombarHeight: PropTypes.number,
|
|
574
576
|
hideAutopopulatedFields: PropTypes.bool,
|
|
575
577
|
sceneContext: PropTypes.object,
|
|
576
578
|
setCurrentTask: PropTypes.func,
|
|
577
|
-
theme: PropTypes.object
|
|
579
|
+
theme: PropTypes.object,
|
|
580
|
+
topbarHeight: PropTypes.number
|
|
578
581
|
});
|
|
579
582
|
_defineProperty(MapExport3D, "defaultState", {
|
|
580
583
|
minimized: false,
|
|
@@ -589,6 +592,8 @@ _defineProperty(MapExport3D, "defaultState", {
|
|
|
589
592
|
});
|
|
590
593
|
export default connect(function (state) {
|
|
591
594
|
return {
|
|
595
|
+
topbarHeight: state.windows.topbarHeight,
|
|
596
|
+
bottombarHeight: state.windows.bottombarHeight,
|
|
592
597
|
theme: state.theme.current
|
|
593
598
|
};
|
|
594
599
|
}, {
|