qwc2 2025.12.19 → 2025.12.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.
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 +1 -1
  67. package/utils/VectorLayerUtils.js +3 -3
  68. package/components/map3d/style/View3DSwitcher.css +0 -19
package/plugins/View3D.js CHANGED
@@ -27,7 +27,7 @@ import { connect, Provider } from 'react-redux';
27
27
  import isEmpty from 'lodash.isempty';
28
28
  import PropTypes from 'prop-types';
29
29
  import * as displayExports from '../actions/display';
30
- import { setView3dMode, View3DMode } from '../actions/display';
30
+ import { setViewMode, ViewMode } from '../actions/display';
31
31
  import * as layersExports from '../actions/layers';
32
32
  import { LayerRole, addLayerFeatures, removeLayer } from '../actions/layers';
33
33
  import { panTo, zoomToPoint } from '../actions/map';
@@ -36,7 +36,6 @@ import * as themeExports from '../actions/theme';
36
36
  import PluginsContainer from '../components/PluginsContainer';
37
37
  import ResizeableWindow from '../components/ResizeableWindow';
38
38
  import StandardApp from '../components/StandardApp';
39
- import View3DSwitcher from '../components/map3d/View3DSwitcher';
40
39
  import Spinner from '../components/widgets/Spinner';
41
40
  import ReducerIndex from '../reducers/index';
42
41
  import personIcon from '../resources/person.png';
@@ -57,83 +56,24 @@ var View3D = /*#__PURE__*/function (_React$Component) {
57
56
  var _this;
58
57
  _classCallCheck(this, View3D);
59
58
  _this = _callSuper(this, View3D, [props]);
59
+ _defineProperty(_this, "EnabledState", {
60
+ DISABLED: 0,
61
+ ENABLED: 1,
62
+ DISABLING: 2
63
+ });
60
64
  _defineProperty(_this, "state", {
61
65
  componentLoaded: false,
62
66
  windowDetached: false,
63
67
  viewsLocked: false,
64
- storedState: null
65
- });
66
- _defineProperty(_this, "render3DWindow", function () {
67
- if (_this.props.view3dMode > View3DMode.DISABLED) {
68
- var extraControls = [{
69
- icon: "sync",
70
- callback: _this.sync2DExtent,
71
- title: LocaleUtils.tr("common.sync2dview")
72
- }, {
73
- icon: "lock",
74
- callback: _this.setLockViews,
75
- title: LocaleUtils.tr("common.lock2dview"),
76
- active: _this.state.viewsLocked
77
- }];
78
- if (!_this.state.windowDetached) {
79
- extraControls.push({
80
- icon: "maximize",
81
- callback: function callback() {
82
- return _this.props.setView3dMode(View3DMode.FULLSCREEN);
83
- },
84
- title: LocaleUtils.tr("window.maximize")
85
- });
86
- }
87
- var Map3D = _this.map3dComponent;
88
- var device = ConfigUtils.isMobile() ? 'mobile' : 'desktop';
89
- var pluginsConfig = _this.props.view3dMode === View3DMode.FULLSCREEN ? _this.props.localConfig.plugins[device].filter(function (entry) {
90
- return entry.availableIn3D;
91
- }) : [];
92
- return /*#__PURE__*/React.createElement(ResizeableWindow, {
93
- extraControls: extraControls,
94
- fullscreen: _this.props.view3dMode === View3DMode.FULLSCREEN,
95
- icon: "map3d",
96
- initialHeight: _this.props.geometry.initialHeight,
97
- initialWidth: _this.props.geometry.initialWidth,
98
- initialX: _this.props.geometry.initialX,
99
- initialY: _this.props.geometry.initialY,
100
- initiallyDocked: _this.props.geometry.initiallyDocked,
101
- key: "View3DWindow",
102
- maximizeable: false,
103
- onClose: _this.onClose,
104
- onExternalWindowResized: _this.redrawScene,
105
- onFocusChanged: _this.windowFocusChanged,
106
- onGeometryChanged: _this.onGeometryChanged,
107
- splitScreenWhenDocked: true,
108
- splitTopAndBottomBar: true,
109
- title: LocaleUtils.tr("map3d.title")
110
- }, _this.state.componentLoaded ? /*#__PURE__*/React.createElement(Provider, {
111
- store: _this.store
112
- }, /*#__PURE__*/React.createElement(PluginsContainer, {
113
- pluginsConfig: pluginsConfig
114
- }, /*#__PURE__*/React.createElement(Map3D, {
115
- controlsPosition: _this.props.controlsPosition,
116
- defaultSceneQuality: _this.props.defaultSceneQuality,
117
- innerRef: _this.setRef,
118
- mouseButtons: _this.props.mouseButtons,
119
- onCameraChanged: _this.onCameraChanged,
120
- onMapInitialized: _this.setupMap,
121
- pluginOptions: _this.props.pluginOptions,
122
- plugins3d: _this.props.plugins3d,
123
- searchProviders: _this.props.searchProviders,
124
- theme: _this.props.theme
125
- }), _this.props.view3dMode === View3DMode.DISABLING ? /*#__PURE__*/React.createElement("div", {
126
- className: "view3d-busy-overlay"
127
- }, /*#__PURE__*/React.createElement(Spinner, null), /*#__PURE__*/React.createElement("span", null, LocaleUtils.tr("view3d.storingstate"))) : null)) : null);
128
- }
129
- return null;
68
+ storedState: null,
69
+ enabledState: _this.EnabledState.DISABLED
130
70
  });
131
71
  _defineProperty(_this, "onClose", function () {
132
- _this.props.setView3dMode(View3DMode.DISABLING);
72
+ _this.props.setViewMode(ViewMode._2D);
133
73
  });
134
74
  _defineProperty(_this, "onGeometryChanged", function (geometry) {
135
- if (geometry.maximized && _this.props.view3dMode !== View3DMode.FULLSCREEN) {
136
- _this.props.setView3dMode(View3DMode.FULLSCREEN);
75
+ if (geometry.maximized && _this.props.viewMode !== ViewMode._3DFullscreen) {
76
+ _this.props.setViewMode(ViewMode._3DFullscreen);
137
77
  }
138
78
  _this.setState({
139
79
  windowDetached: geometry.detached
@@ -230,7 +170,8 @@ var View3D = /*#__PURE__*/function (_React$Component) {
230
170
  _this.map3dComponent = null;
231
171
  _this.map3dComponentRef = null;
232
172
  _this.focusedMap = null;
233
- _this.firstPersonMarker = true;
173
+ _this.firstPersonMarker = false;
174
+ _this.pendingViewState = null;
234
175
  // Subset of 2d reducers
235
176
  var _ReducerIndex$reducer = ReducerIndex.reducers,
236
177
  processNotifications = _ReducerIndex$reducer.processNotifications,
@@ -303,9 +244,9 @@ var View3D = /*#__PURE__*/function (_React$Component) {
303
244
  key: "componentDidMount",
304
245
  value: function componentDidMount() {
305
246
  if (this.props.startupParams.v === "3d") {
306
- this.props.setView3dMode(View3DMode.FULLSCREEN);
247
+ this.props.setViewMode(ViewMode._3DFullscreen);
307
248
  } else if (this.props.startupParams.v === "3d2d") {
308
- this.props.setView3dMode(View3DMode.SPLITSCREEN);
249
+ this.props.setViewMode(ViewMode._3DSplitscreen);
309
250
  }
310
251
  window.addEventListener('focus', this.trackFocus, true);
311
252
  this.syncParentStore({});
@@ -318,9 +259,33 @@ var View3D = /*#__PURE__*/function (_React$Component) {
318
259
  }, {
319
260
  key: "componentDidUpdate",
320
261
  value: function componentDidUpdate(prevProps, prevState) {
321
- var _this2 = this,
322
- _this$props$theme$cur;
323
- if (this.props.view3dMode !== View3DMode.DISABLED && prevProps.view3dMode === View3DMode.DISABLED) {
262
+ var _this$props$theme$cur,
263
+ _this2 = this,
264
+ _this$props$theme$cur2;
265
+ var is3DViewMode = function is3DViewMode(viewMode) {
266
+ return [ViewMode._3DFullscreen, ViewMode._3DSplitscreen].includes(viewMode);
267
+ };
268
+
269
+ // Honour theme startupView on theme change unless first loaded theme and startupParams.v is set
270
+ if (this.props.theme.current !== prevProps.theme.current && (_this$props$theme$cur = this.props.theme.current) !== null && _this$props$theme$cur !== void 0 && _this$props$theme$cur.startupView && (prevProps.theme.current !== null || !this.props.startupParams.v)) {
271
+ if (this.props.theme.current.startupView === "3d2d") {
272
+ this.props.setViewMode(ViewMode._3DSplitscreen);
273
+ } else if (this.props.theme.current.startupView === "3d") {
274
+ this.props.setViewMode(ViewMode._3DFullscreen);
275
+ }
276
+ }
277
+ if (this.state.enabledState === this.EnabledState.DISABLING && this.props.viewMode !== prevProps.viewMode) {
278
+ this.pendingViewState = [ViewMode._3DFullscreen, ViewMode._3DSplitscreen].includes(this.props.viewMode) ? this.EnabledState.ENABLED : this.EnabledState.DISABLED;
279
+ } else if (is3DViewMode(this.props.viewMode) && !is3DViewMode(prevProps.viewMode)) {
280
+ this.setState({
281
+ enabledState: this.EnabledState.ENABLED
282
+ });
283
+ } else if (!is3DViewMode(this.props.viewMode) && is3DViewMode(prevProps.viewMode)) {
284
+ this.setState({
285
+ enabledState: this.EnabledState.DISABLING
286
+ });
287
+ }
288
+ if (this.state.enabledState !== this.EnabledState.DISABLED && prevState.enabledState === this.EnabledState.DISABLED) {
324
289
  import('../components/map3d/Map3D').then(function (component) {
325
290
  _this2.map3dComponent = component["default"];
326
291
  _this2.map3dComponentRef = null;
@@ -329,26 +294,30 @@ var View3D = /*#__PURE__*/function (_React$Component) {
329
294
  });
330
295
  });
331
296
  this.syncParentStore(this.props, true);
332
- } else if (this.props.view3dMode === View3DMode.DISABLING && prevProps.view3dMode !== View3DMode.DISABLING) {
297
+ } else if (this.state.enabledState === this.EnabledState.DISABLING && prevState.enabledState !== this.EnabledState.DISABLING) {
333
298
  if (this.map3dComponentRef) {
334
299
  this.map3dComponentRef.store3dState().then(function (storedState) {
335
300
  _this2.setState({
336
- storedState: storedState
301
+ storedState: storedState,
302
+ enabledState: _this2.EnabledState.DISABLED
303
+ }, function () {
304
+ if (_this2.pendingViewState !== null) {
305
+ _this2.setState({
306
+ enabledState: _this2.pendingViewState
307
+ });
308
+ }
337
309
  });
338
- UrlParams.updateParams({
339
- v3d: undefined,
340
- bl3d: undefined
341
- });
342
- _this2.props.setView3dMode(View3DMode.DISABLED);
343
310
  });
344
311
  } else {
345
- UrlParams.updateParams({
346
- v3d: undefined,
347
- bl3d: undefined
312
+ this.setState({
313
+ enabledState: this.EnabledState.DISABLED
348
314
  });
349
- this.props.setView3dMode(View3DMode.DISABLED);
350
315
  }
351
- } else if (this.props.view3dMode === View3DMode.DISABLED && prevProps.view3dMode !== View3DMode.DISABLED) {
316
+ } else if (this.state.enabledState === this.EnabledState.DISABLED && prevState.enabledState !== this.EnabledState.DISABLED) {
317
+ UrlParams.updateParams({
318
+ v3d: undefined,
319
+ bl3d: undefined
320
+ });
352
321
  this.map3dComponent = null;
353
322
  this.map3dComponentRef = null;
354
323
  this.setState({
@@ -361,28 +330,16 @@ var View3D = /*#__PURE__*/function (_React$Component) {
361
330
  }
362
331
  // Sync parts of parent store
363
332
  this.syncParentStore(prevProps);
364
- // Handle view mode change
365
- if (this.props.view3dMode !== prevProps.view3dMode) {
366
- if (this.props.view3dMode === View3DMode.FULLSCREEN) {
367
- UrlParams.updateParams({
368
- v: "3d"
369
- });
370
- this.setState({
371
- viewsLocked: false
372
- });
373
- } else if (this.props.view3dMode === View3DMode.SPLITSCREEN) {
374
- UrlParams.updateParams({
375
- v: "3d2d"
376
- });
377
- } else {
378
- UrlParams.updateParams({
379
- v: "2d"
380
- });
381
- }
333
+
334
+ // Unlock views when switching to fullscreen 3D mode
335
+ if (this.props.viewMode !== prevProps.viewMode && this.props.viewMode === ViewMode._3DFullscreen) {
336
+ this.setState({
337
+ viewsLocked: false
338
+ });
382
339
  }
383
340
  // Switch to 2D mode if new theme has no 3D configuration
384
- if (this.props.theme.current !== prevProps.theme.current && !((_this$props$theme$cur = this.props.theme.current) !== null && _this$props$theme$cur !== void 0 && _this$props$theme$cur.map3d) && this.props.view3dMode !== View3DMode.DISABLED) {
385
- this.props.setView3dMode(View3D.DISABLED);
341
+ if (this.props.theme.current !== prevProps.theme.current && !((_this$props$theme$cur2 = this.props.theme.current) !== null && _this$props$theme$cur2 !== void 0 && _this$props$theme$cur2.map3d) && this.props.viewMode !== ViewMode._2D) {
342
+ this.props.setViewMode(ViewMode._2D);
386
343
  }
387
344
  // Lock views
388
345
  if (this.state.viewsLocked && this.props.map.bbox !== prevProps.map.bbox && this.focusedMap === "map") {
@@ -399,7 +356,7 @@ var View3D = /*#__PURE__*/function (_React$Component) {
399
356
  key: "syncParentStore",
400
357
  value: function syncParentStore(prevProps) {
401
358
  var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
402
- if (this.props.view3dMode === View3DMode.DISABLED) {
359
+ if (this.state.enabledState !== this.EnabledState.ENABLED) {
403
360
  return;
404
361
  }
405
362
  if (this.props.display !== prevProps.display || force) {
@@ -436,19 +393,75 @@ var View3D = /*#__PURE__*/function (_React$Component) {
436
393
  }, {
437
394
  key: "render",
438
395
  value: function render() {
439
- var _this$props$theme$cur2;
440
- var button = (_this$props$theme$cur2 = this.props.theme.current) !== null && _this$props$theme$cur2 !== void 0 && _this$props$theme$cur2.map3d ? /*#__PURE__*/React.createElement(View3DSwitcher, {
441
- key: "View3DButton",
442
- position: this.props.buttonPosition
443
- }) : null;
444
- return [button, this.render3DWindow()];
396
+ var _this3 = this;
397
+ if (this.state.enabledState > this.EnabledState.DISABLED) {
398
+ var extraControls = [{
399
+ icon: "sync",
400
+ callback: this.sync2DExtent,
401
+ title: LocaleUtils.tr("common.sync2dview")
402
+ }, {
403
+ icon: "lock",
404
+ callback: this.setLockViews,
405
+ title: LocaleUtils.tr("common.lock2dview"),
406
+ active: this.state.viewsLocked
407
+ }];
408
+ if (!this.state.windowDetached) {
409
+ extraControls.push({
410
+ icon: "maximize",
411
+ callback: function callback() {
412
+ return _this3.props.setViewMode(ViewMode._3DFullscreen);
413
+ },
414
+ title: LocaleUtils.tr("window.maximize")
415
+ });
416
+ }
417
+ var Map3D = this.map3dComponent;
418
+ var device = ConfigUtils.isMobile() ? 'mobile' : 'desktop';
419
+ var pluginsConfig = this.props.viewMode === ViewMode._3DFullscreen ? this.props.localConfig.plugins[device].filter(function (entry) {
420
+ return entry.availableIn3D;
421
+ }) : [];
422
+ return /*#__PURE__*/React.createElement(ResizeableWindow, {
423
+ extraControls: extraControls,
424
+ fullscreen: this.props.viewMode === ViewMode._3DFullscreen,
425
+ icon: "map3d",
426
+ initialHeight: this.props.geometry.initialHeight,
427
+ initialWidth: this.props.geometry.initialWidth,
428
+ initialX: this.props.geometry.initialX,
429
+ initialY: this.props.geometry.initialY,
430
+ initiallyDocked: this.props.geometry.initiallyDocked,
431
+ key: "View3DWindow",
432
+ maximizeable: false,
433
+ onClose: this.onClose,
434
+ onExternalWindowResized: this.redrawScene,
435
+ onFocusChanged: this.windowFocusChanged,
436
+ onGeometryChanged: this.onGeometryChanged,
437
+ splitScreenWhenDocked: true,
438
+ splitTopAndBottomBar: true,
439
+ title: LocaleUtils.tr("map3d.title")
440
+ }, this.state.componentLoaded ? /*#__PURE__*/React.createElement(Provider, {
441
+ store: this.store
442
+ }, /*#__PURE__*/React.createElement(PluginsContainer, {
443
+ pluginsConfig: pluginsConfig
444
+ }, /*#__PURE__*/React.createElement(Map3D, {
445
+ controlsPosition: this.props.controlsPosition,
446
+ defaultSceneQuality: this.props.defaultSceneQuality,
447
+ innerRef: this.setRef,
448
+ mouseButtons: this.props.mouseButtons,
449
+ onCameraChanged: this.onCameraChanged,
450
+ onMapInitialized: this.setupMap,
451
+ pluginOptions: this.props.pluginOptions,
452
+ plugins3d: this.props.plugins3d,
453
+ searchProviders: this.props.searchProviders,
454
+ theme: this.props.theme
455
+ }), this.state.enabledState === this.EnabledState.DISABLING ? /*#__PURE__*/React.createElement("div", {
456
+ className: "view3d-busy-overlay"
457
+ }, /*#__PURE__*/React.createElement(Spinner, null), /*#__PURE__*/React.createElement("span", null, LocaleUtils.tr("view3d.storingstate"))) : null)) : null);
458
+ }
459
+ return null;
445
460
  }
446
461
  }]);
447
462
  }(React.Component);
448
463
  _defineProperty(View3D, "propTypes", {
449
464
  addLayerFeatures: PropTypes.func,
450
- /** The position slot index of the 3d switch map button, from the bottom (0: bottom slot). */
451
- buttonPosition: PropTypes.number,
452
465
  /** The position of the navigation controls. Either `top` or `bottom`. */
453
466
  controlsPosition: PropTypes.string,
454
467
  /** The default scene quality factor (`20`: min, `100`: max). */
@@ -478,15 +491,14 @@ _defineProperty(View3D, "propTypes", {
478
491
  plugins3d: PropTypes.object,
479
492
  removeLayer: PropTypes.func,
480
493
  searchProviders: PropTypes.object,
481
- setView3dMode: PropTypes.func,
494
+ setViewMode: PropTypes.func,
482
495
  startupParams: PropTypes.object,
483
496
  startupState: PropTypes.object,
484
497
  theme: PropTypes.object,
485
- view3dMode: PropTypes.number,
498
+ viewMode: PropTypes.number,
486
499
  zoomToPoint: PropTypes.func
487
500
  });
488
501
  _defineProperty(View3D, "defaultProps", {
489
- buttonPosition: 6,
490
502
  controlsPosition: 'top',
491
503
  defaultSceneQuality: 100,
492
504
  geometry: {
@@ -512,7 +524,7 @@ export default (function (plugins3d) {
512
524
  layers: state.layers,
513
525
  theme: state.theme,
514
526
  localConfig: state.localConfig,
515
- view3dMode: state.display.view3dMode,
527
+ viewMode: state.display.viewMode,
516
528
  startupParams: state.localConfig.startupParams,
517
529
  startupState: state.localConfig.startupState
518
530
  };
@@ -521,6 +533,6 @@ export default (function (plugins3d) {
521
533
  removeLayer: removeLayer,
522
534
  panTo: panTo,
523
535
  zoomToPoint: zoomToPoint,
524
- setView3dMode: setView3dMode
536
+ setViewMode: setViewMode
525
537
  })(View3D);
526
538
  });
@@ -40,8 +40,8 @@ import { LayerRole, addLayerFeatures, removeLayerFeatures } from '../../actions/
40
40
  import { changeRedliningState } from '../../actions/redlining';
41
41
  import FeatureAttributesWindow from '../../components/FeatureAttributesWindow';
42
42
  import LocationRecorder from '../../components/LocationRecorder';
43
- import NumericInputWindow from '../../components/NumericInputWindow';
44
43
  import { OlLayerAdded, OlLayerUpdated } from '../../components/map/OlLayer';
44
+ import NumericInputWindow from '../../components/NumericInputWindow';
45
45
  import FeatureStyles from '../../utils/FeatureStyles';
46
46
  import MapUtils from '../../utils/MapUtils';
47
47
  import MeasureUtils from '../../utils/MeasureUtils';
@@ -31,9 +31,9 @@ import PropTypes from 'prop-types';
31
31
  import { Group } from 'three';
32
32
  import { v4 as uuidv4 } from 'uuid';
33
33
  import Icon from '../../components/Icon';
34
- import TaskBar from '../../components/TaskBar';
35
34
  import CreateTool3D from '../../components/map3d/drawtool/CreateTool3D';
36
35
  import EditTool3D from '../../components/map3d/drawtool/EditTool3D';
36
+ import TaskBar from '../../components/TaskBar';
37
37
  import ButtonBar from '../../components/widgets/ButtonBar';
38
38
  import LocaleUtils from '../../utils/LocaleUtils';
39
39
 
@@ -208,9 +208,9 @@ var Draw3D = /*#__PURE__*/function (_React$Component) {
208
208
  },
209
209
  value: _this.state.drawGroupId
210
210
  }, drawGroups.map(function (_ref9) {
211
- var _ref10 = _slicedToArray(_ref9, 2),
212
- objectId = _ref10[0],
213
- options = _ref10[1];
211
+ var _ref0 = _slicedToArray(_ref9, 2),
212
+ objectId = _ref0[0],
213
+ options = _ref0[1];
214
214
  return /*#__PURE__*/React.createElement("option", {
215
215
  key: objectId,
216
216
  value: objectId
@@ -43,8 +43,8 @@ import PropTypes from 'prop-types';
43
43
  import { Box3, BufferGeometry, Float32BufferAttribute, Group, Matrix4, Mesh, MeshStandardMaterial, Quaternion, Scene, Vector3 } from 'three';
44
44
  import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
45
45
  import { setCurrentTask } from '../../actions/task';
46
- import SideBar from '../../components/SideBar';
47
46
  import { TileMeshHelper } from '../../components/map3d/utils/MiscUtils3D';
47
+ import SideBar from '../../components/SideBar';
48
48
  import Spinner from '../../components/widgets/Spinner';
49
49
  import LocaleUtils from '../../utils/LocaleUtils';
50
50
  import VectorLayerUtils from '../../utils/VectorLayerUtils';
@@ -36,8 +36,8 @@ import isEmpty from 'lodash.isempty';
36
36
  import PropTypes from 'prop-types';
37
37
  import { BufferAttribute, BufferGeometry, Float32BufferAttribute, Mesh, MeshStandardMaterial, Raycaster, Vector2 } from 'three';
38
38
  import Icon from '../../components/Icon';
39
- import SideBar from '../../components/SideBar';
40
39
  import { TileMeshHelper } from '../../components/map3d/utils/MiscUtils3D';
40
+ import SideBar from '../../components/SideBar';
41
41
  import LocaleUtils from '../../utils/LocaleUtils';
42
42
  import './style/HideObjects3D.css';
43
43
 
@@ -61,7 +61,7 @@ var HideObjects3D = /*#__PURE__*/function (_React$Component) {
61
61
  }, isEmpty(_this.state.hiddenObjects) ? /*#__PURE__*/React.createElement("i", null, LocaleUtils.tr("hideobjects3d.clickonmap")) : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
62
62
  className: "hideobjects3d-list"
63
63
  }, _this.state.hiddenObjects.map(function (entry) {
64
- var _ref;
64
+ var _entry$featureId;
65
65
  return /*#__PURE__*/React.createElement("div", {
66
66
  key: entry.object.uuid + entry.featureId,
67
67
  onMouseEnter: function onMouseEnter() {
@@ -70,7 +70,7 @@ var HideObjects3D = /*#__PURE__*/function (_React$Component) {
70
70
  onMouseLeave: function onMouseLeave() {
71
71
  return _this.hideHighlight(entry);
72
72
  }
73
- }, /*#__PURE__*/React.createElement("span", null, (_ref = LocaleUtils.tr("hideobjects3d.object") + " " + entry.featureId) !== null && _ref !== void 0 ? _ref : ""), /*#__PURE__*/React.createElement(Icon, {
73
+ }, /*#__PURE__*/React.createElement("span", null, LocaleUtils.tr("hideobjects3d.object") + " " + ((_entry$featureId = entry.featureId) !== null && _entry$featureId !== void 0 ? _entry$featureId : "")), /*#__PURE__*/React.createElement(Icon, {
74
74
  icon: "eye",
75
75
  onClick: function onClick() {
76
76
  return _this.restoreObject(entry);
@@ -118,11 +118,11 @@ var HideObjects3D = /*#__PURE__*/function (_React$Component) {
118
118
  var y = -((ev.clientY - rect.top) / rect.height) * 2 + 1;
119
119
  raycaster.setFromCamera(new Vector2(x, y), camera);
120
120
  var picks = [];
121
- Object.entries(_this.props.sceneContext.sceneObjects).forEach(function (_ref2) {
121
+ Object.entries(_this.props.sceneContext.sceneObjects).forEach(function (_ref) {
122
122
  var _object$tiles;
123
- var _ref3 = _slicedToArray(_ref2, 2),
124
- objId = _ref3[0],
125
- options = _ref3[1];
123
+ var _ref2 = _slicedToArray(_ref, 2),
124
+ objId = _ref2[0],
125
+ options = _ref2[1];
126
126
  if (!options.layertree || !options.visibility) {
127
127
  return;
128
128
  }
@@ -36,8 +36,8 @@ import axios from 'axios';
36
36
  import isEmpty from 'lodash.isempty';
37
37
  import PropTypes from 'prop-types';
38
38
  import { BufferGeometry, Float32BufferAttribute, Mesh, MeshStandardMaterial, Raycaster, Vector2 } from 'three';
39
- import ResizeableWindow from '../../components/ResizeableWindow';
40
39
  import { TileMeshHelper } from '../../components/map3d/utils/MiscUtils3D';
40
+ import ResizeableWindow from '../../components/ResizeableWindow';
41
41
  import LocaleUtils from '../../utils/LocaleUtils';
42
42
  import '../../components/style/IdentifyViewer.css';
43
43
 
@@ -37,8 +37,8 @@ import isEmpty from 'lodash.isempty';
37
37
  import PropTypes from 'prop-types';
38
38
  import { setCurrentTask } from '../../actions/task';
39
39
  import Icon from '../../components/Icon';
40
- import SideBar from '../../components/SideBar';
41
40
  import ImportObjects3D from '../../components/map3d/ImportObjects3D';
41
+ import SideBar from '../../components/SideBar';
42
42
  import NumberInput from '../../components/widgets/NumberInput';
43
43
  import LocaleUtils from '../../utils/LocaleUtils';
44
44
  import './style/LayerTree3D.css';
@@ -1,5 +1,6 @@
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 _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
2
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
3
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
3
4
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
4
5
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
5
6
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
@@ -487,10 +488,10 @@ var MapExport3D = /*#__PURE__*/function (_React$Component) {
487
488
  }, {
488
489
  key: "exportToPdf",
489
490
  value: function () {
490
- var _exportToPdf = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(form, imgBuffer) {
491
+ var _exportToPdf = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(form, imgBuffer) {
491
492
  var formData, data, config, response, _yield$import, PDFDocument, doc, page, pngImage, x, y, width, height, pdfData, blob;
492
- return _regeneratorRuntime().wrap(function _callee$(_context) {
493
- while (1) switch (_context.prev = _context.next) {
493
+ return _regenerator().w(function (_context) {
494
+ while (1) switch (_context.n) {
494
495
  case 0:
495
496
  formData = _objectSpread(_objectSpread({}, formDataEntries(new FormData(form))), Object.fromEntries((this.props.theme.extraPrintParameters || "").split("&").filter(Boolean).map(function (entry) {
496
497
  return entry.split("=");
@@ -506,28 +507,28 @@ var MapExport3D = /*#__PURE__*/function (_React$Component) {
506
507
  },
507
508
  responseType: "arraybuffer"
508
509
  };
509
- _context.next = 5;
510
+ _context.n = 1;
510
511
  return axios.post(this.props.theme.printUrl, data, config);
511
- case 5:
512
- response = _context.sent;
512
+ case 1:
513
+ response = _context.v;
513
514
  if (!response) {
514
- _context.next = 31;
515
+ _context.n = 6;
515
516
  break;
516
517
  }
517
- _context.next = 9;
518
+ _context.n = 2;
518
519
  return import('pdf-lib');
519
- case 9:
520
- _yield$import = _context.sent;
520
+ case 2:
521
+ _yield$import = _context.v;
521
522
  PDFDocument = _yield$import.PDFDocument;
522
- _context.next = 13;
523
+ _context.n = 3;
523
524
  return PDFDocument.load(response.data);
524
- case 13:
525
- doc = _context.sent;
525
+ case 3:
526
+ doc = _context.v;
526
527
  page = doc.getPages()[0];
527
- _context.next = 17;
528
+ _context.n = 4;
528
529
  return doc.embedPng(imgBuffer);
529
- case 17:
530
- pngImage = _context.sent;
530
+ case 4:
531
+ pngImage = _context.v;
531
532
  x = this.state.layout.map.x * 2.8346;
532
533
  y = this.state.layout.map.y * 2.8346;
533
534
  width = this.state.layout.map.width * 2.8346;
@@ -538,10 +539,10 @@ var MapExport3D = /*#__PURE__*/function (_React$Component) {
538
539
  width: width,
539
540
  height: height
540
541
  });
541
- _context.next = 25;
542
+ _context.n = 5;
542
543
  return doc.save();
543
- case 25:
544
- pdfData = _context.sent;
544
+ case 5:
545
+ pdfData = _context.v;
545
546
  blob = new Blob([pdfData], {
546
547
  type: 'application/pdf'
547
548
  });
@@ -549,17 +550,16 @@ var MapExport3D = /*#__PURE__*/function (_React$Component) {
549
550
  this.setState({
550
551
  exporting: false
551
552
  });
552
- _context.next = 33;
553
+ _context.n = 7;
553
554
  break;
554
- case 31:
555
+ case 6:
555
556
  /* eslint-disable-next-line */
556
557
  alert('Print failed');
557
558
  this.setState({
558
559
  exporting: false
559
560
  });
560
- case 33:
561
- case "end":
562
- return _context.stop();
561
+ case 7:
562
+ return _context.a(2);
563
563
  }
564
564
  }, _callee, this);
565
565
  }));