qwc2 2025.10.9 → 2025.10.14

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 (241) hide show
  1. package/actions/display.js +30 -1
  2. package/actions/editing.js +22 -1
  3. package/actions/layerinfo.js +13 -1
  4. package/actions/layers.js +213 -3
  5. package/actions/localConfig.js +58 -1
  6. package/actions/locale.js +21 -1
  7. package/actions/locate.js +26 -1
  8. package/actions/logging.js +10 -1
  9. package/actions/map.js +105 -2
  10. package/actions/measurement.js +12 -1
  11. package/actions/processNotifications.js +37 -1
  12. package/actions/redlining.js +18 -1
  13. package/actions/redliningPick.js +12 -1
  14. package/actions/search.js +12 -1
  15. package/actions/serviceinfo.js +12 -1
  16. package/actions/task.js +55 -3
  17. package/actions/theme.js +339 -19
  18. package/actions/windows.js +164 -5
  19. package/components/AppMenu.js +435 -3
  20. package/components/AttributeForm.js +928 -32
  21. package/components/AttributeTableWidget.js +1105 -13
  22. package/components/AutoEditForm.js +189 -3
  23. package/components/CoordinateDisplayer.js +78 -2
  24. package/components/EditComboField.js +190 -6
  25. package/components/EditUploadField.js +315 -3
  26. package/components/ExportSelection.js +203 -2
  27. package/components/FullscreenSwitcher.js +90 -3
  28. package/components/Icon.js +81 -2
  29. package/components/IdentifyViewer.js +1161 -6
  30. package/components/ImportLayer.js +718 -20
  31. package/components/LayerInfoWindow.js +145 -2
  32. package/components/LinkFeatureForm.js +246 -5
  33. package/components/MapButton.js +88 -2
  34. package/components/MapSelection.js +287 -8
  35. package/components/MessageBar.js +68 -2
  36. package/components/NumericInputWindow.js +359 -2
  37. package/components/PickFeature.js +266 -2
  38. package/components/PluginsContainer.js +227 -8
  39. package/components/PrintSelection.js +620 -49
  40. package/components/ProcessNotifications.js +104 -2
  41. package/components/QtDesignerForm.js +1137 -18
  42. package/components/ResizeableWindow.js +591 -8
  43. package/components/SearchBox.js +1307 -20
  44. package/components/ServiceInfoWindow.js +107 -2
  45. package/components/SideBar.js +204 -4
  46. package/components/StandardApp.js +381 -20
  47. package/components/Swipeable.js +15 -1
  48. package/components/TaskBar.js +85 -2
  49. package/components/ThemeLayersListWindow.js +216 -4
  50. package/components/ThemeList.js +381 -7
  51. package/components/Toolbar.js +106 -2
  52. package/components/WindowManager.js +178 -2
  53. package/components/map/OlLayer.js +257 -6
  54. package/components/map/OlMap.js +405 -5
  55. package/components/map/layers/BingLayer.js +31 -2
  56. package/components/map/layers/GoogleLayer.js +222 -19
  57. package/components/map/layers/GraticuleLayer.js +21 -1
  58. package/components/map/layers/ImageLayer.js +15 -1
  59. package/components/map/layers/MVTLayer.js +52 -2
  60. package/components/map/layers/OSMLayer.js +24 -2
  61. package/components/map/layers/OverlayLayer.js +55 -3
  62. package/components/map/layers/VectorLayer.js +173 -8
  63. package/components/map/layers/WFSLayer.js +220 -6
  64. package/components/map/layers/WMSLayer.js +180 -6
  65. package/components/map/layers/WMTSLayer.js +67 -3
  66. package/components/map/layers/XYZLayer.js +24 -2
  67. package/components/map/layers/index.js +28 -1
  68. package/components/map3d/EditDataset3D.js +190 -3
  69. package/components/map3d/HeightProfile3D.js +402 -3
  70. package/components/map3d/ImportObjects3D.js +162 -2
  71. package/components/map3d/Map3D.js +1304 -38
  72. package/components/map3d/MapControls3D.js +392 -7
  73. package/components/map3d/SearchField3D.js +183 -11
  74. package/components/map3d/View3DSwitcher.js +98 -2
  75. package/components/map3d/drawtool/CreateTool3D.js +174 -4
  76. package/components/map3d/drawtool/EditTool3D.js +590 -6
  77. package/components/map3d/drawtool/NumericInput3D.js +336 -4
  78. package/components/map3d/layers/GeoTIFFLayer3D.js +15 -1
  79. package/components/map3d/layers/VectorLayer3D.js +53 -2
  80. package/components/map3d/layers/WFSLayer3D.js +109 -3
  81. package/components/map3d/layers/WMSLayer3D.js +70 -2
  82. package/components/map3d/layers/WMTSLayer3D.js +27 -3
  83. package/components/map3d/layers/index.js +14 -1
  84. package/components/map3d/utils/FirstPersonControls3D.js +423 -16
  85. package/components/map3d/utils/MiscUtils3D.js +221 -13
  86. package/components/map3d/utils/OrbitControls3D.js +176 -5
  87. package/components/map3d/utils/Tiles3DStyle.js +238 -9
  88. package/components/share/ShareLink.js +54 -2
  89. package/components/share/ShareQRCode.js +62 -2
  90. package/components/share/ShareSocials.js +125 -3
  91. package/components/timeline/FixedTimeline.js +236 -5
  92. package/components/timeline/InfiniteTimeline.js +347 -8
  93. package/components/timeline/TimelineFeaturesSlider.js +439 -5
  94. package/components/widgets/AccordeonWidget.js +96 -2
  95. package/components/widgets/ButtonBar.js +124 -2
  96. package/components/widgets/ColorButton.js +201 -3
  97. package/components/widgets/ComboBox.js +166 -2
  98. package/components/widgets/CopyButton.js +110 -2
  99. package/components/widgets/DateTimeInput.js +100 -3
  100. package/components/widgets/EditableSelect.js +230 -3
  101. package/components/widgets/FileSelector.js +128 -4
  102. package/components/widgets/Input.js +124 -2
  103. package/components/widgets/InputContainer.js +96 -2
  104. package/components/widgets/LayerCatalogWidget.js +219 -3
  105. package/components/widgets/MenuButton.js +157 -1
  106. package/components/widgets/ModalDialog.js +64 -2
  107. package/components/widgets/NavBar.js +119 -2
  108. package/components/widgets/NumberInput.js +226 -4
  109. package/components/widgets/PopupMenu.js +72 -1
  110. package/components/widgets/Primitives.js +6 -1
  111. package/components/widgets/ReCaptchaWidget.js +55 -1
  112. package/components/widgets/SearchWidget.js +255 -2
  113. package/components/widgets/Spinner.js +44 -2
  114. package/components/widgets/SuggestionInput.js +77 -2
  115. package/components/widgets/TextInput.js +308 -2
  116. package/components/widgets/ToggleSwitch.js +85 -2
  117. package/components/widgets/VectorLayerPicker.js +85 -3
  118. package/libs/openlayers.js +225 -5
  119. package/package.json +1 -1
  120. package/plugins/API.js +358 -15
  121. package/plugins/AttributeTable.js +109 -3
  122. package/plugins/Authentication.js +130 -5
  123. package/plugins/BackgroundSwitcher.js +218 -4
  124. package/plugins/Bookmark.js +289 -3
  125. package/plugins/BottomBar.js +298 -4
  126. package/plugins/CookiePopup.js +67 -3
  127. package/plugins/Cyclomedia.js +442 -5
  128. package/plugins/Editing.js +497 -9
  129. package/plugins/FeatureForm.js +366 -4
  130. package/plugins/FeatureSearch.js +458 -3
  131. package/plugins/GeometryDigitizer.js +664 -7
  132. package/plugins/HeightProfile.js +763 -15
  133. package/plugins/Help.js +102 -3
  134. package/plugins/HomeButton.js +80 -3
  135. package/plugins/Identify.js +543 -5
  136. package/plugins/LayerCatalog.js +215 -4
  137. package/plugins/LayerTree.js +1194 -6
  138. package/plugins/LocateButton.js +94 -3
  139. package/plugins/Map.js +320 -16
  140. package/plugins/MapCompare.js +94 -3
  141. package/plugins/MapCopyright.js +127 -5
  142. package/plugins/MapExport.js +613 -20
  143. package/plugins/MapFilter.js +868 -12
  144. package/plugins/MapInfoTooltip.js +277 -3
  145. package/plugins/MapLegend.js +253 -4
  146. package/plugins/MapTip.js +290 -4
  147. package/plugins/Measure.js +220 -4
  148. package/plugins/NewsPopup.js +137 -3
  149. package/plugins/OverviewMap.js +167 -7
  150. package/plugins/Panoramax.js +340 -2
  151. package/plugins/Portal.js +199 -4
  152. package/plugins/Print.js +1231 -15
  153. package/plugins/Redlining.js +750 -6
  154. package/plugins/Reports.js +332 -3
  155. package/plugins/Routing.js +1278 -15
  156. package/plugins/ScratchDrawing.js +173 -5
  157. package/plugins/Settings.js +241 -4
  158. package/plugins/Share.js +198 -3
  159. package/plugins/StartupMarker.js +84 -4
  160. package/plugins/TaskButton.js +88 -3
  161. package/plugins/ThemeSwitcher.js +164 -4
  162. package/plugins/TimeManager.js +971 -10
  163. package/plugins/TopBar.js +300 -7
  164. package/plugins/TourGuide.js +213 -2
  165. package/plugins/ValueTool.js +419 -4
  166. package/plugins/View3D.js +519 -14
  167. package/plugins/ZoomButtons.js +165 -3
  168. package/plugins/map/EditingSupport.js +199 -7
  169. package/plugins/map/LocateSupport.js +260 -4
  170. package/plugins/map/MeasurementSupport.js +216 -8
  171. package/plugins/map/RedliningPickSupport.js +201 -7
  172. package/plugins/map/RedliningSupport.js +726 -17
  173. package/plugins/map/SnapInteraction.js +101 -1
  174. package/plugins/map/SnapSupport.js +210 -2
  175. package/plugins/map/SnappingSupport.js +356 -17
  176. package/plugins/map3d/BackgroundSwitcher3D.js +44 -3
  177. package/plugins/map3d/BottomBar3D.js +118 -3
  178. package/plugins/map3d/Compare3D.js +422 -8
  179. package/plugins/map3d/Draw3D.js +353 -6
  180. package/plugins/map3d/ExportObjects3D.js +393 -18
  181. package/plugins/map3d/HideObjects3D.js +313 -12
  182. package/plugins/map3d/Identify3D.js +283 -12
  183. package/plugins/map3d/LayerTree3D.js +323 -3
  184. package/plugins/map3d/MapCopyright3D.js +128 -5
  185. package/plugins/map3d/MapExport3D.js +590 -10
  186. package/plugins/map3d/MapLight3D.js +553 -6
  187. package/plugins/map3d/Measure3D.js +571 -20
  188. package/plugins/map3d/OverviewMap3D.js +169 -3
  189. package/plugins/map3d/Settings3D.js +73 -3
  190. package/plugins/map3d/TopBar3D.js +207 -9
  191. package/plugins/redlining/RedliningBufferSupport.js +206 -3
  192. package/reducers/display.js +34 -2
  193. package/reducers/editing.js +68 -3
  194. package/reducers/index.js +9 -1
  195. package/reducers/layerinfo.js +26 -2
  196. package/reducers/layers.js +456 -9
  197. package/reducers/localConfig.js +122 -2
  198. package/reducers/locale.js +38 -2
  199. package/reducers/locate.js +40 -2
  200. package/reducers/map.js +176 -5
  201. package/reducers/measurement.js +42 -2
  202. package/reducers/processNotifications.js +49 -2
  203. package/reducers/redlining.js +50 -2
  204. package/reducers/redliningPick.js +27 -2
  205. package/reducers/search.js +20 -1
  206. package/reducers/serviceinfo.js +25 -2
  207. package/reducers/task.js +45 -2
  208. package/reducers/theme.js +51 -2
  209. package/reducers/windows.js +203 -2
  210. package/scripts/dist.sh +1 -1
  211. package/scripts/gen-plugin-docs.js +152 -2
  212. package/scripts/makeIconkit.js +85 -6
  213. package/scripts/themesConfig.js +742 -40
  214. package/scripts/updateTranslations.js +251 -10
  215. package/selectors/searchproviders.js +44 -2
  216. package/stores/StandardStore.js +42 -2
  217. package/utils/ConfigUtils.js +84 -3
  218. package/utils/CoordinatesUtils.js +234 -23
  219. package/utils/DxfUtils.js +237 -11
  220. package/utils/EditingInterface.js +421 -87
  221. package/utils/EditingUtils.js +357 -13
  222. package/utils/ElevationInterface.js +83 -22
  223. package/utils/FeatureStyles.js +429 -5
  224. package/utils/IdentifyUtils.js +443 -7
  225. package/utils/ImageEditor.js +79 -9
  226. package/utils/LayerUtils.js +1516 -50
  227. package/utils/LocaleUtils.js +117 -7
  228. package/utils/MapUtils.js +241 -59
  229. package/utils/MeasureUtils.js +323 -2
  230. package/utils/MiscUtils.js +189 -11
  231. package/utils/PermaLinkUtils.js +429 -6
  232. package/utils/PluginStore.js +27 -1
  233. package/utils/ResourceRegistry.js +15 -1
  234. package/utils/RoutingInterface.js +307 -7
  235. package/utils/SearchProviders.js +722 -19
  236. package/utils/ServiceLayerUtils.js +669 -14
  237. package/utils/Signal.js +32 -2
  238. package/utils/ThemeUtils.js +341 -7
  239. package/utils/VectorLayerUtils.js +589 -15
  240. package/utils/expr_grammar/grammar.js +2239 -2
  241. package/utils/expr_grammar/test.js +65 -3
package/plugins/Share.js CHANGED
@@ -1,11 +1,206 @@
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)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}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)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}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)}/**
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
+ 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
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
5
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
6
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
7
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
8
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
10
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
11
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
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
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
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
+ /**
2
16
  * Copyright 2016-2024 Sourcepole AG
3
17
  * All rights reserved.
4
18
  *
5
19
  * This source code is licensed under the BSD-style license found in the
6
20
  * LICENSE file in the root directory of this source tree.
7
- */import React from"react";import{connect}from"react-redux";import isEmpty from"lodash.isempty";import PropTypes from"prop-types";import url from"url";import{View3DMode}from"../actions/display";import{addMarker,removeMarker}from"../actions/layers";import SideBar from"../components/SideBar";import ShareLink from"../components/share/ShareLink";import ShareQRCode from"../components/share/ShareQRCode";import ShareSocials from"../components/share/ShareSocials";import ToggleSwitch from"../components/widgets/ToggleSwitch";import ConfigUtils from"../utils/ConfigUtils";import CoordinatesUtils from"../utils/CoordinatesUtils";import LocaleUtils from"../utils/LocaleUtils";import{generatePermaLink}from"../utils/PermaLinkUtils";import"./style/Share.css";/**
21
+ */
22
+
23
+ import React from 'react';
24
+ import { connect } from 'react-redux';
25
+ import isEmpty from 'lodash.isempty';
26
+ import PropTypes from 'prop-types';
27
+ import url from 'url';
28
+ import { View3DMode } from '../actions/display';
29
+ import { addMarker, removeMarker } from '../actions/layers';
30
+ import SideBar from '../components/SideBar';
31
+ import ShareLink from '../components/share/ShareLink';
32
+ import ShareQRCode from '../components/share/ShareQRCode';
33
+ import ShareSocials from '../components/share/ShareSocials';
34
+ import ToggleSwitch from '../components/widgets/ToggleSwitch';
35
+ import ConfigUtils from '../utils/ConfigUtils';
36
+ import CoordinatesUtils from '../utils/CoordinatesUtils';
37
+ import LocaleUtils from '../utils/LocaleUtils';
38
+ import { generatePermaLink } from '../utils/PermaLinkUtils';
39
+ import './style/Share.css';
40
+
41
+ /**
8
42
  * Share the current map as a URL/permalink.
9
43
  *
10
44
  * Compact permalinks will be generated if `permalinkServiceUrl` in `config.json` points to a `qwc-permalink-service`.
11
- */var Share=/*#__PURE__*/function(_React$Component){function Share(){var _this;_classCallCheck(this,Share);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,Share,[].concat(args));_defineProperty(_this,"state",{location:"",expires:null,pin:false,permittedGroup:""});_defineProperty(_this,"renderBody",function(){var shareUrl=_this.state.location||"about:blank";if(_this.state.pin&&_this.state.location){var urlParts=url.parse(shareUrl,true);urlParts.query.hc=1;if(!urlParts.query.c){var posCrs=urlParts.query.crs||_this.props.map.projection;var prec=CoordinatesUtils.getPrecision(posCrs);urlParts.query.c=_this.props.map.center.map(function(x){return x.toFixed(prec)}).join(",")}delete urlParts.search;shareUrl=url.format(urlParts)}var shareSocials=_this.props.showSocials!==false?/*#__PURE__*/React.createElement(ShareSocials,{shareTitle:LocaleUtils.tr("share.shareTitle"),shareUrl:shareUrl,showSocials:_this.props.showSocials}):null;var shareLink=_this.props.showLink?/*#__PURE__*/React.createElement(ShareLink,{shareUrl:shareUrl}):null;var shareQRCode=_this.props.showQRCode?/*#__PURE__*/React.createElement(ShareQRCode,{shareUrl:shareUrl}):null;var username=ConfigUtils.getConfigProp("username");return/*#__PURE__*/React.createElement("div",null,_this.props.view3dMode!==View3DMode.FULLSCREEN&&ConfigUtils.havePlugin("StartupMarker")?/*#__PURE__*/React.createElement("div",{className:"share-option-pin"},/*#__PURE__*/React.createElement("span",null,LocaleUtils.tr("share.showpin")),/*#__PURE__*/React.createElement(ToggleSwitch,{active:_this.state.pin,onChange:function onChange(active){return _this.setState({pin:active})}})):null,!_this.state.location?/*#__PURE__*/React.createElement("div",{className:"share-reload-overlay"},/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("button",{className:"button",onClick:_this.refreshPermalink},LocaleUtils.tr("share.refresh"))),username&&!isEmpty(_this.props.restrictableGroups)?/*#__PURE__*/React.createElement("div",{className:"share-group-restriction"},/*#__PURE__*/React.createElement("span",null,LocaleUtils.tr("share.restricttogroup"),": "),/*#__PURE__*/React.createElement("select",{onChange:function onChange(ev){return _this.setState({permittedGroup:ev.target.value})},value:_this.state.permittedGroup},/*#__PURE__*/React.createElement("option",{value:""},LocaleUtils.tr("share.norestriction")),_this.props.restrictableGroups.map(function(entry){return/*#__PURE__*/React.createElement("option",{key:entry,value:entry},entry)}))):null):/*#__PURE__*/React.createElement("div",{className:"share-body"},shareSocials,shareLink,shareQRCode,_this.state.expires?/*#__PURE__*/React.createElement("div",{className:"share-validity"},LocaleUtils.tr("share.expires",_this.state.expires)):null))});_defineProperty(_this,"refreshPermalink",function(){generatePermaLink(function(permalink,expires){_this.setState({location:permalink,expires:expires,permittedGroup:""})},false,_this.state.permittedGroup)});return _this}_inherits(Share,_React$Component);return _createClass(Share,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps,prevState){var isVisible=this.props.currentTask==="Share";var wasVisible=prevProps.currentTask==="Share";if(this.props.map&&isVisible!==wasVisible||this.state.pin!==prevState.pin||this.props.map.center!==prevProps.map.center){if(isVisible&&this.state.pin){this.props.addMarker("sharecenter",this.props.map.center,"",this.props.map.projection)}else if(wasVisible){this.props.removeMarker("sharecenter")}}if(isVisible!==wasVisible||this.props.map.center!==prevProps.map.center){this.setState({location:"",expires:null})}}},{key:"render",value:function render(){var _this2=this;return/*#__PURE__*/React.createElement(SideBar,{icon:"share",id:"Share",onShow:this.onShow,side:this.props.side,title:LocaleUtils.tr("appmenu.items.Share"),width:"20em"},function(){return{body:_this2.renderBody()}})}}])}(React.Component);_defineProperty(Share,"availableIn3D",true);_defineProperty(Share,"propTypes",{addMarker:PropTypes.func,currentTask:PropTypes.string,map:PropTypes.object,removeMarker:PropTypes.func,/** List of groups for which a permalink may optionally be restricted (only displayed for a logged-in user). */restrictableGroups:PropTypes.array,/** Show the map URL. */showLink:PropTypes.bool,/** Show the QR code of the map URL. */showQRCode:PropTypes.bool,/** Show the social buttons. Either `true` or `false`to enable/disable all, or an array of specific buttons to display (possible choices: `email`, `facebook`, `twitter`, `linkedin`, `whatsapp`). */showSocials:PropTypes.oneOfType([PropTypes.bool,PropTypes.arrayOf(PropTypes.string)]),/** The side of the application on which to display the sidebar. */side:PropTypes.string,view3dMode:PropTypes.number});_defineProperty(Share,"defaultProps",{showSocials:true,showLink:true,showQRCode:true,side:"right"});export default connect(function(state){return{currentTask:state.task.id,map:state.map,view3dMode:state.display.view3dMode}},{addMarker:addMarker,removeMarker:removeMarker})(Share);
45
+ */
46
+ var Share = /*#__PURE__*/function (_React$Component) {
47
+ function Share() {
48
+ var _this;
49
+ _classCallCheck(this, Share);
50
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
51
+ args[_key] = arguments[_key];
52
+ }
53
+ _this = _callSuper(this, Share, [].concat(args));
54
+ _defineProperty(_this, "state", {
55
+ location: "",
56
+ expires: null,
57
+ pin: false,
58
+ permittedGroup: ""
59
+ });
60
+ _defineProperty(_this, "renderBody", function () {
61
+ var shareUrl = _this.state.location || 'about:blank';
62
+ if (_this.state.pin && _this.state.location) {
63
+ var urlParts = url.parse(shareUrl, true);
64
+ urlParts.query.hc = 1;
65
+ if (!urlParts.query.c) {
66
+ var posCrs = urlParts.query.crs || _this.props.map.projection;
67
+ var prec = CoordinatesUtils.getPrecision(posCrs);
68
+ urlParts.query.c = _this.props.map.center.map(function (x) {
69
+ return x.toFixed(prec);
70
+ }).join(",");
71
+ }
72
+ delete urlParts.search;
73
+ shareUrl = url.format(urlParts);
74
+ }
75
+ var shareSocials = _this.props.showSocials !== false ? /*#__PURE__*/React.createElement(ShareSocials, {
76
+ shareTitle: LocaleUtils.tr("share.shareTitle"),
77
+ shareUrl: shareUrl,
78
+ showSocials: _this.props.showSocials
79
+ }) : null;
80
+ var shareLink = _this.props.showLink ? /*#__PURE__*/React.createElement(ShareLink, {
81
+ shareUrl: shareUrl
82
+ }) : null;
83
+ var shareQRCode = _this.props.showQRCode ? /*#__PURE__*/React.createElement(ShareQRCode, {
84
+ shareUrl: shareUrl
85
+ }) : null;
86
+ var username = ConfigUtils.getConfigProp("username");
87
+ return /*#__PURE__*/React.createElement("div", null, _this.props.view3dMode !== View3DMode.FULLSCREEN && ConfigUtils.havePlugin("StartupMarker") ? /*#__PURE__*/React.createElement("div", {
88
+ className: "share-option-pin"
89
+ }, /*#__PURE__*/React.createElement("span", null, LocaleUtils.tr("share.showpin")), /*#__PURE__*/React.createElement(ToggleSwitch, {
90
+ active: _this.state.pin,
91
+ onChange: function onChange(active) {
92
+ return _this.setState({
93
+ pin: active
94
+ });
95
+ }
96
+ })) : null, !_this.state.location ? /*#__PURE__*/React.createElement("div", {
97
+ className: "share-reload-overlay"
98
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
99
+ className: "button",
100
+ onClick: _this.refreshPermalink
101
+ }, LocaleUtils.tr("share.refresh"))), username && !isEmpty(_this.props.restrictableGroups) ? /*#__PURE__*/React.createElement("div", {
102
+ className: "share-group-restriction"
103
+ }, /*#__PURE__*/React.createElement("span", null, LocaleUtils.tr("share.restricttogroup"), ": "), /*#__PURE__*/React.createElement("select", {
104
+ onChange: function onChange(ev) {
105
+ return _this.setState({
106
+ permittedGroup: ev.target.value
107
+ });
108
+ },
109
+ value: _this.state.permittedGroup
110
+ }, /*#__PURE__*/React.createElement("option", {
111
+ value: ""
112
+ }, LocaleUtils.tr("share.norestriction")), _this.props.restrictableGroups.map(function (entry) {
113
+ return /*#__PURE__*/React.createElement("option", {
114
+ key: entry,
115
+ value: entry
116
+ }, entry);
117
+ }))) : null) : /*#__PURE__*/React.createElement("div", {
118
+ className: "share-body"
119
+ }, shareSocials, shareLink, shareQRCode, _this.state.expires ? /*#__PURE__*/React.createElement("div", {
120
+ className: "share-validity"
121
+ }, LocaleUtils.tr("share.expires", _this.state.expires)) : null));
122
+ });
123
+ _defineProperty(_this, "refreshPermalink", function () {
124
+ generatePermaLink(function (permalink, expires) {
125
+ _this.setState({
126
+ location: permalink,
127
+ expires: expires,
128
+ permittedGroup: ""
129
+ });
130
+ }, false, _this.state.permittedGroup);
131
+ });
132
+ return _this;
133
+ }
134
+ _inherits(Share, _React$Component);
135
+ return _createClass(Share, [{
136
+ key: "componentDidUpdate",
137
+ value: function componentDidUpdate(prevProps, prevState) {
138
+ var isVisible = this.props.currentTask === "Share";
139
+ var wasVisible = prevProps.currentTask === "Share";
140
+ if (this.props.map && isVisible !== wasVisible || this.state.pin !== prevState.pin || this.props.map.center !== prevProps.map.center) {
141
+ if (isVisible && this.state.pin) {
142
+ this.props.addMarker('sharecenter', this.props.map.center, '', this.props.map.projection);
143
+ } else if (wasVisible) {
144
+ this.props.removeMarker('sharecenter');
145
+ }
146
+ }
147
+ if (isVisible !== wasVisible || this.props.map.center !== prevProps.map.center) {
148
+ this.setState({
149
+ location: "",
150
+ expires: null
151
+ });
152
+ }
153
+ }
154
+ }, {
155
+ key: "render",
156
+ value: function render() {
157
+ var _this2 = this;
158
+ return /*#__PURE__*/React.createElement(SideBar, {
159
+ icon: "share",
160
+ id: "Share",
161
+ onShow: this.onShow,
162
+ side: this.props.side,
163
+ title: LocaleUtils.tr("appmenu.items.Share"),
164
+ width: "20em"
165
+ }, function () {
166
+ return {
167
+ body: _this2.renderBody()
168
+ };
169
+ });
170
+ }
171
+ }]);
172
+ }(React.Component);
173
+ _defineProperty(Share, "availableIn3D", true);
174
+ _defineProperty(Share, "propTypes", {
175
+ addMarker: PropTypes.func,
176
+ currentTask: PropTypes.string,
177
+ map: PropTypes.object,
178
+ removeMarker: PropTypes.func,
179
+ /** List of groups for which a permalink may optionally be restricted (only displayed for a logged-in user). */
180
+ restrictableGroups: PropTypes.array,
181
+ /** Show the map URL. */
182
+ showLink: PropTypes.bool,
183
+ /** Show the QR code of the map URL. */
184
+ showQRCode: PropTypes.bool,
185
+ /** Show the social buttons. Either `true` or `false`to enable/disable all, or an array of specific buttons to display (possible choices: `email`, `facebook`, `twitter`, `linkedin`, `whatsapp`). */
186
+ showSocials: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.string)]),
187
+ /** The side of the application on which to display the sidebar. */
188
+ side: PropTypes.string,
189
+ view3dMode: PropTypes.number
190
+ });
191
+ _defineProperty(Share, "defaultProps", {
192
+ showSocials: true,
193
+ showLink: true,
194
+ showQRCode: true,
195
+ side: 'right'
196
+ });
197
+ export default connect(function (state) {
198
+ return {
199
+ currentTask: state.task.id,
200
+ map: state.map,
201
+ view3dMode: state.display.view3dMode
202
+ };
203
+ }, {
204
+ addMarker: addMarker,
205
+ removeMarker: removeMarker
206
+ })(Share);
@@ -1,12 +1,92 @@
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)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}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)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}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)}/**
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
+ 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
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
5
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
6
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
7
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
8
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
10
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
11
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
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
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
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
+ /**
2
16
  * Copyright 2020-2024 Sourcepole AG
3
17
  * All rights reserved.
4
18
  *
5
19
  * This source code is licensed under the BSD-style license found in the
6
20
  * LICENSE file in the root directory of this source tree.
7
- */import React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{addMarker,removeMarker}from"../actions/layers";/**
21
+ */
22
+
23
+ import React from 'react';
24
+ import { connect } from 'react-redux';
25
+ import PropTypes from 'prop-types';
26
+ import { addMarker, removeMarker } from '../actions/layers';
27
+
28
+ /**
8
29
  * Displays a marker when starting up the viewer.
9
30
  *
10
31
  * The marked is displayed in the center of the map if `c=<x>,<y>&hc=1` is set in the URL.
11
- */var StartupMarker=/*#__PURE__*/function(_React$Component){function StartupMarker(props){var _this;_classCallCheck(this,StartupMarker);_this=_callSuper(this,StartupMarker,[props]);_this.markerSet=false;return _this}_inherits(StartupMarker,_React$Component);return _createClass(StartupMarker,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var highlight=["true","1"].includes(""+(this.props.startupParams&&this.props.startupParams.hc||"").toLowerCase());if(highlight&&this.props.theme&&!prevProps.theme&&this.props.startupParams.c){var point=this.props.startupParams.c.split(/[;,]/g).map(function(x){return parseFloat(x)});prevProps.addMarker("startupposmarker",point,"",this.props.startupParams.crs||this.props.map.projection);this.markerSet=true}else if(this.markerSet){if(this.props.removeMode==="onpan"&&this.props.map.center!==prevProps.map.center&&this.props.map.zoom===prevProps.map.zoom||this.props.removeMode==="onzoom"&&this.props.map.zoom!==prevProps.map.zoom||this.props.removeMode==="onclickonmarker"&&this.props.click&&(this.props.click.features||[]).find(function(feature){return feature.id==="startupposmarker"})){prevProps.removeMarker("startupposmarker");this.markerSet=false}}}},{key:"render",value:function render(){return null}}])}(React.Component);_defineProperty(StartupMarker,"propTypes",{addMarker:PropTypes.func,click:PropTypes.object,map:PropTypes.object,removeMarker:PropTypes.func,/** When to remove the marker. Possible choices: onpan, onzoom, onclickonmarker. */removeMode:PropTypes.string,// onpan, onzoom, onclickonmarker
12
- startupParams:PropTypes.object,theme:PropTypes.object});_defineProperty(StartupMarker,"defaultProps",{removeMode:"onpan"});export default connect(function(state){return{startupParams:state.localConfig.startupParams,click:state.map.click||{},map:state.map,theme:state.theme.current}},{addMarker:addMarker,removeMarker:removeMarker})(StartupMarker);
32
+ */
33
+ var StartupMarker = /*#__PURE__*/function (_React$Component) {
34
+ function StartupMarker(props) {
35
+ var _this;
36
+ _classCallCheck(this, StartupMarker);
37
+ _this = _callSuper(this, StartupMarker, [props]);
38
+ _this.markerSet = false;
39
+ return _this;
40
+ }
41
+ _inherits(StartupMarker, _React$Component);
42
+ return _createClass(StartupMarker, [{
43
+ key: "componentDidUpdate",
44
+ value: function componentDidUpdate(prevProps) {
45
+ var highlight = ["true", "1"].includes("" + (this.props.startupParams && this.props.startupParams.hc || "").toLowerCase());
46
+ if (highlight && this.props.theme && !prevProps.theme && this.props.startupParams.c) {
47
+ var point = this.props.startupParams.c.split(/[;,]/g).map(function (x) {
48
+ return parseFloat(x);
49
+ });
50
+ prevProps.addMarker('startupposmarker', point, '', this.props.startupParams.crs || this.props.map.projection);
51
+ this.markerSet = true;
52
+ } else if (this.markerSet) {
53
+ if (this.props.removeMode === 'onpan' && this.props.map.center !== prevProps.map.center && this.props.map.zoom === prevProps.map.zoom || this.props.removeMode === 'onzoom' && this.props.map.zoom !== prevProps.map.zoom || this.props.removeMode === 'onclickonmarker' && this.props.click && (this.props.click.features || []).find(function (feature) {
54
+ return feature.id === 'startupposmarker';
55
+ })) {
56
+ prevProps.removeMarker('startupposmarker');
57
+ this.markerSet = false;
58
+ }
59
+ }
60
+ }
61
+ }, {
62
+ key: "render",
63
+ value: function render() {
64
+ return null;
65
+ }
66
+ }]);
67
+ }(React.Component);
68
+ _defineProperty(StartupMarker, "propTypes", {
69
+ addMarker: PropTypes.func,
70
+ click: PropTypes.object,
71
+ map: PropTypes.object,
72
+ removeMarker: PropTypes.func,
73
+ /** When to remove the marker. Possible choices: onpan, onzoom, onclickonmarker. */
74
+ removeMode: PropTypes.string,
75
+ // onpan, onzoom, onclickonmarker
76
+ startupParams: PropTypes.object,
77
+ theme: PropTypes.object
78
+ });
79
+ _defineProperty(StartupMarker, "defaultProps", {
80
+ removeMode: 'onpan'
81
+ });
82
+ export default connect(function (state) {
83
+ return {
84
+ startupParams: state.localConfig.startupParams,
85
+ click: state.map.click || {},
86
+ map: state.map,
87
+ theme: state.theme.current
88
+ };
89
+ }, {
90
+ addMarker: addMarker,
91
+ removeMarker: removeMarker
92
+ })(StartupMarker);
@@ -1,9 +1,94 @@
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)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}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)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}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)}/**
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
+ 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
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
5
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
6
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
7
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
8
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
10
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
11
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
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
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
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
+ /**
2
16
  * Copyright 2017-2024 Sourcepole AG
3
17
  * All rights reserved.
4
18
  *
5
19
  * This source code is licensed under the BSD-style license found in the
6
20
  * LICENSE file in the root directory of this source tree.
7
- */import React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{setCurrentTask}from"../actions/task";import MapButton from"../components/MapButton";import ConfigUtils from"../utils/ConfigUtils";import LocaleUtils from"../utils/LocaleUtils";import ThemeUtils from"../utils/ThemeUtils";/**
21
+ */
22
+
23
+ import React from 'react';
24
+ import { connect } from 'react-redux';
25
+ import PropTypes from 'prop-types';
26
+ import { setCurrentTask } from '../actions/task';
27
+ import MapButton from '../components/MapButton';
28
+ import ConfigUtils from '../utils/ConfigUtils';
29
+ import LocaleUtils from "../utils/LocaleUtils";
30
+ import ThemeUtils from '../utils/ThemeUtils';
31
+
32
+ /**
8
33
  * Generic map button to launch a task.
9
- */var TaskButton=/*#__PURE__*/function(_React$Component){function TaskButton(){var _this;_classCallCheck(this,TaskButton);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,TaskButton,[].concat(args));_defineProperty(_this,"buttonClicked",function(){var mapClickAction=ConfigUtils.getPluginConfig(_this.props.task).mapClickAction;_this.props.setCurrentTask(_this.props.currentTask===_this.props.task?null:_this.props.task,_this.props.mode,mapClickAction)});return _this}_inherits(TaskButton,_React$Component);return _createClass(TaskButton,[{key:"render",value:function render(){if(!ThemeUtils.themeFlagsAllowed(this.props.theme,this.props.themeFlagWhitelist,this.props.themeFlagBlacklist)){return null}var title=LocaleUtils.tr("appmenu.items."+this.props.task+(this.props.mode||""));return/*#__PURE__*/React.createElement(MapButton,{icon:this.props.icon,onClick:this.buttonClicked,position:this.props.position,tooltip:title})}}])}(React.Component);_defineProperty(TaskButton,"propTypes",{currentTask:PropTypes.string,/** The icon name. */icon:PropTypes.string,/** The task mode. */mode:PropTypes.string,/** The position slot index of the map button, from the bottom (0: bottom slot). */position:PropTypes.number,setCurrentTask:PropTypes.func,/** The task name. */task:PropTypes.string,theme:PropTypes.object,/** Omit the button in themes matching one of these flags. */themeFlagBlacklist:PropTypes.arrayOf(PropTypes.string),/** Only show the button in themes matching one of these flags. */themeFlagWhitelist:PropTypes.arrayOf(PropTypes.string)});_defineProperty(TaskButton,"defaultProps",{position:1});var selector=function selector(state){return{currentTask:state.task.id,theme:state.theme.current}};export default connect(selector,{setCurrentTask:setCurrentTask})(TaskButton);
34
+ */
35
+ var TaskButton = /*#__PURE__*/function (_React$Component) {
36
+ function TaskButton() {
37
+ var _this;
38
+ _classCallCheck(this, TaskButton);
39
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
40
+ args[_key] = arguments[_key];
41
+ }
42
+ _this = _callSuper(this, TaskButton, [].concat(args));
43
+ _defineProperty(_this, "buttonClicked", function () {
44
+ var mapClickAction = ConfigUtils.getPluginConfig(_this.props.task).mapClickAction;
45
+ _this.props.setCurrentTask(_this.props.currentTask === _this.props.task ? null : _this.props.task, _this.props.mode, mapClickAction);
46
+ });
47
+ return _this;
48
+ }
49
+ _inherits(TaskButton, _React$Component);
50
+ return _createClass(TaskButton, [{
51
+ key: "render",
52
+ value: function render() {
53
+ if (!ThemeUtils.themeFlagsAllowed(this.props.theme, this.props.themeFlagWhitelist, this.props.themeFlagBlacklist)) {
54
+ return null;
55
+ }
56
+ var title = LocaleUtils.tr("appmenu.items." + this.props.task + (this.props.mode || ""));
57
+ return /*#__PURE__*/React.createElement(MapButton, {
58
+ icon: this.props.icon,
59
+ onClick: this.buttonClicked,
60
+ position: this.props.position,
61
+ tooltip: title
62
+ });
63
+ }
64
+ }]);
65
+ }(React.Component);
66
+ _defineProperty(TaskButton, "propTypes", {
67
+ currentTask: PropTypes.string,
68
+ /** The icon name. */
69
+ icon: PropTypes.string,
70
+ /** The task mode. */
71
+ mode: PropTypes.string,
72
+ /** The position slot index of the map button, from the bottom (0: bottom slot). */
73
+ position: PropTypes.number,
74
+ setCurrentTask: PropTypes.func,
75
+ /** The task name. */
76
+ task: PropTypes.string,
77
+ theme: PropTypes.object,
78
+ /** Omit the button in themes matching one of these flags. */
79
+ themeFlagBlacklist: PropTypes.arrayOf(PropTypes.string),
80
+ /** Only show the button in themes matching one of these flags. */
81
+ themeFlagWhitelist: PropTypes.arrayOf(PropTypes.string)
82
+ });
83
+ _defineProperty(TaskButton, "defaultProps", {
84
+ position: 1
85
+ });
86
+ var selector = function selector(state) {
87
+ return {
88
+ currentTask: state.task.id,
89
+ theme: state.theme.current
90
+ };
91
+ };
92
+ export default connect(selector, {
93
+ setCurrentTask: setCurrentTask
94
+ })(TaskButton);