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
@@ -1,15 +1,183 @@
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 ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
5
+ 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); } }
6
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
7
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
+ 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); }
9
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
10
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
12
+ 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); }
13
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
14
+ 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; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
+ 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); }
17
+ /**
2
18
  * Copyright 2020-2024 Sourcepole AG
3
19
  * All rights reserved.
4
20
  *
5
21
  * This source code is licensed under the BSD-style license found in the
6
22
  * 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{v4 as uuidv4}from"uuid";import{LayerRole,addLayerFeatures,removeLayer,clearLayer}from"../actions/layers";import{setSnappingConfig}from"../actions/map";import{changeRedliningState,resetRedliningState}from"../actions/redlining";import{setCurrentTask}from"../actions/task";import TaskBar from"../components/TaskBar";import LocaleUtils from"../utils/LocaleUtils";import"./style/Redlining.css";import"./style/ScratchDrawing.css";/**
23
+ */
24
+
25
+ import React from 'react';
26
+ import { connect } from 'react-redux';
27
+ import PropTypes from 'prop-types';
28
+ import { v4 as uuidv4 } from 'uuid';
29
+ import { LayerRole, addLayerFeatures, removeLayer, clearLayer } from '../actions/layers';
30
+ import { setSnappingConfig } from '../actions/map';
31
+ import { changeRedliningState, resetRedliningState } from '../actions/redlining';
32
+ import { setCurrentTask } from '../actions/task';
33
+ import TaskBar from '../components/TaskBar';
34
+ import LocaleUtils from '../utils/LocaleUtils';
35
+ import './style/Redlining.css';
36
+ import './style/ScratchDrawing.css';
37
+
38
+ /**
8
39
  * Task which which can be invoked by other tools to draw a geometry and pass it to a callback.
9
40
  *
10
41
  * Only useful for third-party code, i.e. over the JavaScript API.
11
42
  *
12
43
  * Invoke as `setCurrentTask("ScratchDrawing", null, null, {callback: <function(features, crs)>});`
13
- */var ScratchDrawing=/*#__PURE__*/function(_React$Component){function ScratchDrawing(props){var _this;_classCallCheck(this,ScratchDrawing);_this=_callSuper(this,ScratchDrawing,[props]);_defineProperty(_this,"createDrawLayer",function(data){var layerId=uuidv4();var features=(data.initialFeatures||[]).map(function(feature){return _objectSpread(_objectSpread({},feature),{},{id:uuidv4(),shape:feature.geometry.type,styleName:"default",styleOptions:_this.styleOptions(_this.drawingStyle(data.style))})});var layer={id:layerId,role:LayerRole.USERLAYER,type:"vector"};_this.props.addLayerFeatures(layer,features,true);return layerId});_defineProperty(_this,"drawingStyle",function(style){return _objectSpread({borderColor:[255,0,0,1],size:2,fillColor:[255,255,255,0.5],text:""},style)});_defineProperty(_this,"styleOptions",function(styleProps){return{strokeColor:styleProps.borderColor,strokeWidth:1+0.5*styleProps.size,fillColor:styleProps.fillColor,circleRadius:5+styleProps.size,strokeDash:[],headmarker:styleProps.headmarker,tailmarker:styleProps.tailmarker}});_defineProperty(_this,"submitGeometry",function(){var _this$props$layers$fi;var features=((_this$props$layers$fi=_this.props.layers.find(function(l){return l.id===_this.props.redlining.layer}))===null||_this$props$layers$fi===void 0?void 0:_this$props$layers$fi.features)||[];_this.submitted=true;_this.props.task.data.callback(features,_this.props.projection);_this.props.setCurrentTask(null)});_this.submitted=false;return _this}_inherits(ScratchDrawing,_React$Component);return _createClass(ScratchDrawing,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){// Clear when task changes
14
- if(this.props.task.id!=="ScratchDrawing"&&prevProps.task.id==="ScratchDrawing"){if(!this.submitted){prevProps.task.data.callback(null,null);this.submitted=true}this.props.removeLayer(prevProps.redlining.layer);this.props.resetRedliningState()}// Setup redlining state
15
- if(this.props.task!==prevProps.task&&this.props.task.id==="ScratchDrawing"){if(prevProps.task.id==="ScratchDrawing"){this.props.removeLayer(prevProps.redlining.layer);if(!this.submitted){prevProps.task.data.callback(null,null);this.submitted=true}}this.submitted=false;var data=this.props.task.data;var layerId=this.createDrawLayer(data);this.props.setSnappingConfig(data.snapping,data.snappingActive);this.props.changeRedliningState({action:"PickDraw",geomType:data.geomType,layer:layerId,layerTitle:null,drawMultiple:data.drawMultiple,style:this.drawingStyle(data.style)})}}},{key:"render",value:function render(){var _this$props$task$data,_this2=this;return/*#__PURE__*/React.createElement(TaskBar,{task:"ScratchDrawing"},/*#__PURE__*/React.createElement("div",{className:"scratch-drawing-taskbar-body",role:"body"},/*#__PURE__*/React.createElement("span",null,(_this$props$task$data=this.props.task.data)===null||_this$props$task$data===void 0?void 0:_this$props$task$data.message),/*#__PURE__*/React.createElement("button",{className:"button",onClick:function onClick(){return _this2.submitGeometry()}},LocaleUtils.tr("scratchdrawing.finish"))))}}])}(React.Component);_defineProperty(ScratchDrawing,"propTypes",{addLayerFeatures:PropTypes.func,changeRedliningState:PropTypes.func,clearLayer:PropTypes.func,layers:PropTypes.array,projection:PropTypes.string,redlining:PropTypes.object,removeLayer:PropTypes.func,resetRedliningState:PropTypes.func,setCurrentTask:PropTypes.func,setSnappingConfig:PropTypes.func,task:PropTypes.object});export default connect(function(state){return{task:state.task,layers:state.layers.flat,redlining:state.redlining,projection:state.map.projection,theme:state.theme.current}},{changeRedliningState:changeRedliningState,addLayerFeatures:addLayerFeatures,clearLayer:clearLayer,removeLayer:removeLayer,resetRedliningState:resetRedliningState,setCurrentTask:setCurrentTask,setSnappingConfig:setSnappingConfig})(ScratchDrawing);
44
+ */
45
+ var ScratchDrawing = /*#__PURE__*/function (_React$Component) {
46
+ function ScratchDrawing(props) {
47
+ var _this;
48
+ _classCallCheck(this, ScratchDrawing);
49
+ _this = _callSuper(this, ScratchDrawing, [props]);
50
+ _defineProperty(_this, "createDrawLayer", function (data) {
51
+ var layerId = uuidv4();
52
+ var features = (data.initialFeatures || []).map(function (feature) {
53
+ return _objectSpread(_objectSpread({}, feature), {}, {
54
+ id: uuidv4(),
55
+ shape: feature.geometry.type,
56
+ styleName: 'default',
57
+ styleOptions: _this.styleOptions(_this.drawingStyle(data.style))
58
+ });
59
+ });
60
+ var layer = {
61
+ id: layerId,
62
+ role: LayerRole.USERLAYER,
63
+ type: 'vector'
64
+ };
65
+ _this.props.addLayerFeatures(layer, features, true);
66
+ return layerId;
67
+ });
68
+ _defineProperty(_this, "drawingStyle", function (style) {
69
+ return _objectSpread({
70
+ borderColor: [255, 0, 0, 1],
71
+ size: 2,
72
+ fillColor: [255, 255, 255, 0.5],
73
+ text: ""
74
+ }, style);
75
+ });
76
+ _defineProperty(_this, "styleOptions", function (styleProps) {
77
+ return {
78
+ strokeColor: styleProps.borderColor,
79
+ strokeWidth: 1 + 0.5 * styleProps.size,
80
+ fillColor: styleProps.fillColor,
81
+ circleRadius: 5 + styleProps.size,
82
+ strokeDash: [],
83
+ headmarker: styleProps.headmarker,
84
+ tailmarker: styleProps.tailmarker
85
+ };
86
+ });
87
+ _defineProperty(_this, "submitGeometry", function () {
88
+ var _this$props$layers$fi;
89
+ var features = ((_this$props$layers$fi = _this.props.layers.find(function (l) {
90
+ return l.id === _this.props.redlining.layer;
91
+ })) === null || _this$props$layers$fi === void 0 ? void 0 : _this$props$layers$fi.features) || [];
92
+ _this.submitted = true;
93
+ _this.props.task.data.callback(features, _this.props.projection);
94
+ _this.props.setCurrentTask(null);
95
+ });
96
+ _this.submitted = false;
97
+ return _this;
98
+ }
99
+ _inherits(ScratchDrawing, _React$Component);
100
+ return _createClass(ScratchDrawing, [{
101
+ key: "componentDidUpdate",
102
+ value: function componentDidUpdate(prevProps) {
103
+ // Clear when task changes
104
+ if (this.props.task.id !== "ScratchDrawing" && prevProps.task.id === "ScratchDrawing") {
105
+ if (!this.submitted) {
106
+ prevProps.task.data.callback(null, null);
107
+ this.submitted = true;
108
+ }
109
+ this.props.removeLayer(prevProps.redlining.layer);
110
+ this.props.resetRedliningState();
111
+ }
112
+ // Setup redlining state
113
+ if (this.props.task !== prevProps.task && this.props.task.id === "ScratchDrawing") {
114
+ if (prevProps.task.id === "ScratchDrawing") {
115
+ this.props.removeLayer(prevProps.redlining.layer);
116
+ if (!this.submitted) {
117
+ prevProps.task.data.callback(null, null);
118
+ this.submitted = true;
119
+ }
120
+ }
121
+ this.submitted = false;
122
+ var data = this.props.task.data;
123
+ var layerId = this.createDrawLayer(data);
124
+ this.props.setSnappingConfig(data.snapping, data.snappingActive);
125
+ this.props.changeRedliningState({
126
+ action: 'PickDraw',
127
+ geomType: data.geomType,
128
+ layer: layerId,
129
+ layerTitle: null,
130
+ drawMultiple: data.drawMultiple,
131
+ style: this.drawingStyle(data.style)
132
+ });
133
+ }
134
+ }
135
+ }, {
136
+ key: "render",
137
+ value: function render() {
138
+ var _this$props$task$data,
139
+ _this2 = this;
140
+ return /*#__PURE__*/React.createElement(TaskBar, {
141
+ task: "ScratchDrawing"
142
+ }, /*#__PURE__*/React.createElement("div", {
143
+ className: "scratch-drawing-taskbar-body",
144
+ role: "body"
145
+ }, /*#__PURE__*/React.createElement("span", null, (_this$props$task$data = this.props.task.data) === null || _this$props$task$data === void 0 ? void 0 : _this$props$task$data.message), /*#__PURE__*/React.createElement("button", {
146
+ className: "button",
147
+ onClick: function onClick() {
148
+ return _this2.submitGeometry();
149
+ }
150
+ }, LocaleUtils.tr("scratchdrawing.finish"))));
151
+ }
152
+ }]);
153
+ }(React.Component);
154
+ _defineProperty(ScratchDrawing, "propTypes", {
155
+ addLayerFeatures: PropTypes.func,
156
+ changeRedliningState: PropTypes.func,
157
+ clearLayer: PropTypes.func,
158
+ layers: PropTypes.array,
159
+ projection: PropTypes.string,
160
+ redlining: PropTypes.object,
161
+ removeLayer: PropTypes.func,
162
+ resetRedliningState: PropTypes.func,
163
+ setCurrentTask: PropTypes.func,
164
+ setSnappingConfig: PropTypes.func,
165
+ task: PropTypes.object
166
+ });
167
+ export default connect(function (state) {
168
+ return {
169
+ task: state.task,
170
+ layers: state.layers.flat,
171
+ redlining: state.redlining,
172
+ projection: state.map.projection,
173
+ theme: state.theme.current
174
+ };
175
+ }, {
176
+ changeRedliningState: changeRedliningState,
177
+ addLayerFeatures: addLayerFeatures,
178
+ clearLayer: clearLayer,
179
+ removeLayer: removeLayer,
180
+ resetRedliningState: resetRedliningState,
181
+ setCurrentTask: setCurrentTask,
182
+ setSnappingConfig: setSnappingConfig
183
+ })(ScratchDrawing);
@@ -1,12 +1,249 @@
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 _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}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 _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
6
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
11
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
12
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
13
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
14
+ 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); }
15
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
16
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
18
+ 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); }
19
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
20
+ 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; }
21
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
22
+ 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); }
23
+ /**
2
24
  * Copyright 2024 Sourcepole AG
3
25
  * All rights reserved.
4
26
  *
5
27
  * This source code is licensed under the BSD-style license found in the
6
28
  * LICENSE file in the root directory of this source tree.
7
- */import React from"react";import{connect}from"react-redux";import axios from"axios";import isEmpty from"lodash.isempty";import PropTypes from"prop-types";import url from"url";import{setColorScheme,setUserInfoFields}from"../actions/localConfig";import SideBar from"../components/SideBar";import ConfigUtils from"../utils/ConfigUtils";import LocaleUtils from"../utils/LocaleUtils";import{getUserBookmarks}from"../utils/PermaLinkUtils";import ThemeUtils from"../utils/ThemeUtils";import"./style/Settings.css";/**
29
+ */
30
+
31
+ import React from 'react';
32
+ import { connect } from 'react-redux';
33
+ import axios from 'axios';
34
+ import isEmpty from 'lodash.isempty';
35
+ import PropTypes from 'prop-types';
36
+ import url from 'url';
37
+ import { setColorScheme, setUserInfoFields } from '../actions/localConfig';
38
+ import SideBar from '../components/SideBar';
39
+ import ConfigUtils from '../utils/ConfigUtils';
40
+ import LocaleUtils from '../utils/LocaleUtils';
41
+ import { getUserBookmarks } from '../utils/PermaLinkUtils';
42
+ import ThemeUtils from '../utils/ThemeUtils';
43
+ import './style/Settings.css';
44
+
45
+ /**
8
46
  * Settings panel.
9
47
  *
10
48
  * Allows configuring language and color scheme.
11
- */var Settings=/*#__PURE__*/function(_React$Component){function Settings(){var _this;_classCallCheck(this,Settings);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,Settings,[].concat(args));_defineProperty(_this,"state",{bookmarks:{}});_defineProperty(_this,"onShow",function(){var username=ConfigUtils.getConfigProp("username");if(_this.props.showDefaultThemeSelector&&username){getUserBookmarks(username,function(bookmarks){var bookmarkKeys=bookmarks.reduce(function(res,entry){return _objectSpread(_objectSpread({},res),{},_defineProperty({},entry.key,entry.description))},{});_this.setState({bookmarks:bookmarkKeys})})}});_defineProperty(_this,"renderBody",function(){return/*#__PURE__*/React.createElement("div",{className:"settings-body"},/*#__PURE__*/React.createElement("table",{className:"settings-table"},/*#__PURE__*/React.createElement("tbody",null,_this.renderLanguageSelector(),_this.renderColorSchemeSelector(),_this.renderDefaultThemeSelector())))});_defineProperty(_this,"renderLanguageSelector",function(){if(isEmpty(_this.props.languages)){return null}var lang=LocaleUtils.lang();return/*#__PURE__*/React.createElement("tr",null,/*#__PURE__*/React.createElement("td",null,LocaleUtils.tr("settings.language"),"\xA0"),/*#__PURE__*/React.createElement("td",null,/*#__PURE__*/React.createElement("select",{onChange:_this.changeLocale,value:lang},/*#__PURE__*/React.createElement("option",{key:"syslang",value:""},LocaleUtils.tr("settings.systemlang")),_this.props.languages.map(function(entry){var _entry$title;return/*#__PURE__*/React.createElement("option",{key:entry.value,value:entry.value},(_entry$title=entry.title)!==null&&_entry$title!==void 0?_entry$title:LocaleUtils.tr(entry.titleMsgId))}))))});_defineProperty(_this,"renderColorSchemeSelector",function(){if(isEmpty(_this.props.colorSchemes)){return null}return/*#__PURE__*/React.createElement("tr",null,/*#__PURE__*/React.createElement("td",null,LocaleUtils.tr("settings.colorscheme")),/*#__PURE__*/React.createElement("td",null,/*#__PURE__*/React.createElement("select",{onChange:_this.changeColorScheme,value:_this.props.colorScheme},_this.props.colorSchemes.map(function(entry){var _entry$title2;return/*#__PURE__*/React.createElement("option",{key:entry.value,value:entry.value},(_entry$title2=entry.title)!==null&&_entry$title2!==void 0?_entry$title2:LocaleUtils.tr(entry.titleMsgId))}))))});_defineProperty(_this,"renderDefaultThemeSelector",function(){if(!_this.props.showDefaultThemeSelector||!ConfigUtils.getConfigProp("username")){return null}var themeNames=ThemeUtils.getThemeNames(_this.props.themes);return/*#__PURE__*/React.createElement("tr",null,/*#__PURE__*/React.createElement("td",null,LocaleUtils.tr("settings.defaulttheme")),/*#__PURE__*/React.createElement("td",null,/*#__PURE__*/React.createElement("select",{onChange:_this.changeDefaultUrlParams,value:_this.props.defaultUrlParams},/*#__PURE__*/React.createElement("option",{value:""},LocaleUtils.tr("settings.default")),/*#__PURE__*/React.createElement("option",{disabled:true},LocaleUtils.tr("settings.themes")),Object.entries(themeNames).map(function(_ref){var _ref2=_slicedToArray(_ref,2),id=_ref2[0],name=_ref2[1];return/*#__PURE__*/React.createElement("option",{key:id,value:"t="+id},name)}),/*#__PURE__*/React.createElement("option",{disabled:true},LocaleUtils.tr("settings.bookmarks")),Object.entries(_this.state.bookmarks).map(function(_ref3){var _ref4=_slicedToArray(_ref3,2),key=_ref4[0],name=_ref4[1];return/*#__PURE__*/React.createElement("option",{key:key,value:"bk="+key},name)}))))});_defineProperty(_this,"changeDefaultUrlParams",function(ev){var params={default_url_params:ev.target.value};var baseurl=location.href.split("?")[0].replace(/\/$/,"");axios.get(baseurl+"/setuserinfo",{params:params}).then(function(response){if(!response.data.success){/* eslint-disable-next-line */alert(LocaleUtils.tr("settings.defaultthemefailed",response.data.error));ev.target.value=_this.props.defaultUrlParams}else{_this.props.setUserInfoFields(response.data.fields)}})["catch"](function(e){/* eslint-disable-next-line */alert(LocaleUtils.tr("settings.defaultthemefailed",String(e)));ev.target.value=_this.props.defaultUrlParams})});_defineProperty(_this,"changeLocale",function(ev){// eslint-disable-next-line
12
- if(confirm(LocaleUtils.tr("settings.confirmlang"))){var lang=ev.target.value;var urlParts=url.parse(location.href,true);if(!lang){delete urlParts.query.lang}else{urlParts.query=_objectSpread(_objectSpread({},urlParts.query),{},{lang:lang})}delete urlParts.search;location=url.format(urlParts)}});_defineProperty(_this,"changeColorScheme",function(ev){_this.props.setColorScheme(ev.target.value,true)});return _this}_inherits(Settings,_React$Component);return _createClass(Settings,[{key:"render",value:function render(){var _this2=this;return/*#__PURE__*/React.createElement(SideBar,{icon:"cog",id:"Settings",onShow:this.onShow,side:this.props.side,title:LocaleUtils.tr("appmenu.items.Settings"),width:"25em"},function(){return{body:_this2.renderBody()}})}}])}(React.Component);_defineProperty(Settings,"availableIn3D",true);_defineProperty(Settings,"propTypes",{colorScheme:PropTypes.string,/** List of available color schemes. Value is the css class name, title/titleMsgId the display name. */colorSchemes:PropTypes.arrayOf(PropTypes.shape({title:PropTypes.string,titleMsgId:PropTypes.string,value:PropTypes.string})),defaultUrlParams:PropTypes.string,/** List of available languages. Value is the lang code, title/titleMsgId the display name. */languages:PropTypes.arrayOf(PropTypes.shape({title:PropTypes.string,titleMsgId:PropTypes.string,value:PropTypes.string})),setColorScheme:PropTypes.func,setUserInfoFields:PropTypes.func,/** Whether to show a selector to set the default theme/bookmark (of a logged in user). */showDefaultThemeSelector:PropTypes.bool,/** The side of the application on which to display the sidebar. */side:PropTypes.string,themes:PropTypes.object});_defineProperty(Settings,"defaultProps",{colorSchemes:[],languages:[],side:"right",showDefaultThemeSelector:true});export default connect(function(state){var _state$localConfig$us;return{colorScheme:state.localConfig.colorScheme,defaultUrlParams:((_state$localConfig$us=state.localConfig.user_infos)===null||_state$localConfig$us===void 0?void 0:_state$localConfig$us.default_url_params)||"",themes:state.theme.themes}},{setColorScheme:setColorScheme,setUserInfoFields:setUserInfoFields})(Settings);
49
+ */
50
+ var Settings = /*#__PURE__*/function (_React$Component) {
51
+ function Settings() {
52
+ var _this;
53
+ _classCallCheck(this, Settings);
54
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
55
+ args[_key] = arguments[_key];
56
+ }
57
+ _this = _callSuper(this, Settings, [].concat(args));
58
+ _defineProperty(_this, "state", {
59
+ bookmarks: {}
60
+ });
61
+ _defineProperty(_this, "onShow", function () {
62
+ var username = ConfigUtils.getConfigProp("username");
63
+ if (_this.props.showDefaultThemeSelector && username) {
64
+ getUserBookmarks(username, function (bookmarks) {
65
+ var bookmarkKeys = bookmarks.reduce(function (res, entry) {
66
+ return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry.key, entry.description));
67
+ }, {});
68
+ _this.setState({
69
+ bookmarks: bookmarkKeys
70
+ });
71
+ });
72
+ }
73
+ });
74
+ _defineProperty(_this, "renderBody", function () {
75
+ return /*#__PURE__*/React.createElement("div", {
76
+ className: "settings-body"
77
+ }, /*#__PURE__*/React.createElement("table", {
78
+ className: "settings-table"
79
+ }, /*#__PURE__*/React.createElement("tbody", null, _this.renderLanguageSelector(), _this.renderColorSchemeSelector(), _this.renderDefaultThemeSelector())));
80
+ });
81
+ _defineProperty(_this, "renderLanguageSelector", function () {
82
+ if (isEmpty(_this.props.languages)) {
83
+ return null;
84
+ }
85
+ var lang = LocaleUtils.lang();
86
+ return /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, LocaleUtils.tr("settings.language"), "\xA0"), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("select", {
87
+ onChange: _this.changeLocale,
88
+ value: lang
89
+ }, /*#__PURE__*/React.createElement("option", {
90
+ key: "syslang",
91
+ value: ""
92
+ }, LocaleUtils.tr("settings.systemlang")), _this.props.languages.map(function (entry) {
93
+ var _entry$title;
94
+ return /*#__PURE__*/React.createElement("option", {
95
+ key: entry.value,
96
+ value: entry.value
97
+ }, (_entry$title = entry.title) !== null && _entry$title !== void 0 ? _entry$title : LocaleUtils.tr(entry.titleMsgId));
98
+ }))));
99
+ });
100
+ _defineProperty(_this, "renderColorSchemeSelector", function () {
101
+ if (isEmpty(_this.props.colorSchemes)) {
102
+ return null;
103
+ }
104
+ return /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, LocaleUtils.tr("settings.colorscheme")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("select", {
105
+ onChange: _this.changeColorScheme,
106
+ value: _this.props.colorScheme
107
+ }, _this.props.colorSchemes.map(function (entry) {
108
+ var _entry$title2;
109
+ return /*#__PURE__*/React.createElement("option", {
110
+ key: entry.value,
111
+ value: entry.value
112
+ }, (_entry$title2 = entry.title) !== null && _entry$title2 !== void 0 ? _entry$title2 : LocaleUtils.tr(entry.titleMsgId));
113
+ }))));
114
+ });
115
+ _defineProperty(_this, "renderDefaultThemeSelector", function () {
116
+ if (!_this.props.showDefaultThemeSelector || !ConfigUtils.getConfigProp("username")) {
117
+ return null;
118
+ }
119
+ var themeNames = ThemeUtils.getThemeNames(_this.props.themes);
120
+ return /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, LocaleUtils.tr("settings.defaulttheme")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("select", {
121
+ onChange: _this.changeDefaultUrlParams,
122
+ value: _this.props.defaultUrlParams
123
+ }, /*#__PURE__*/React.createElement("option", {
124
+ value: ""
125
+ }, LocaleUtils.tr("settings.default")), /*#__PURE__*/React.createElement("option", {
126
+ disabled: true
127
+ }, LocaleUtils.tr("settings.themes")), Object.entries(themeNames).map(function (_ref) {
128
+ var _ref2 = _slicedToArray(_ref, 2),
129
+ id = _ref2[0],
130
+ name = _ref2[1];
131
+ return /*#__PURE__*/React.createElement("option", {
132
+ key: id,
133
+ value: 't=' + id
134
+ }, name);
135
+ }), /*#__PURE__*/React.createElement("option", {
136
+ disabled: true
137
+ }, LocaleUtils.tr("settings.bookmarks")), Object.entries(_this.state.bookmarks).map(function (_ref3) {
138
+ var _ref4 = _slicedToArray(_ref3, 2),
139
+ key = _ref4[0],
140
+ name = _ref4[1];
141
+ return /*#__PURE__*/React.createElement("option", {
142
+ key: key,
143
+ value: 'bk=' + key
144
+ }, name);
145
+ }))));
146
+ });
147
+ _defineProperty(_this, "changeDefaultUrlParams", function (ev) {
148
+ var params = {
149
+ default_url_params: ev.target.value
150
+ };
151
+ var baseurl = location.href.split("?")[0].replace(/\/$/, '');
152
+ axios.get(baseurl + "/setuserinfo", {
153
+ params: params
154
+ }).then(function (response) {
155
+ if (!response.data.success) {
156
+ /* eslint-disable-next-line */
157
+ alert(LocaleUtils.tr("settings.defaultthemefailed", response.data.error));
158
+ ev.target.value = _this.props.defaultUrlParams;
159
+ } else {
160
+ _this.props.setUserInfoFields(response.data.fields);
161
+ }
162
+ })["catch"](function (e) {
163
+ /* eslint-disable-next-line */
164
+ alert(LocaleUtils.tr("settings.defaultthemefailed", String(e)));
165
+ ev.target.value = _this.props.defaultUrlParams;
166
+ });
167
+ });
168
+ _defineProperty(_this, "changeLocale", function (ev) {
169
+ // eslint-disable-next-line
170
+ if (confirm(LocaleUtils.tr("settings.confirmlang"))) {
171
+ var lang = ev.target.value;
172
+ var urlParts = url.parse(location.href, true);
173
+ if (!lang) {
174
+ delete urlParts.query.lang;
175
+ } else {
176
+ urlParts.query = _objectSpread(_objectSpread({}, urlParts.query), {}, {
177
+ lang: lang
178
+ });
179
+ }
180
+ delete urlParts.search;
181
+ location = url.format(urlParts);
182
+ }
183
+ });
184
+ _defineProperty(_this, "changeColorScheme", function (ev) {
185
+ _this.props.setColorScheme(ev.target.value, true);
186
+ });
187
+ return _this;
188
+ }
189
+ _inherits(Settings, _React$Component);
190
+ return _createClass(Settings, [{
191
+ key: "render",
192
+ value: function render() {
193
+ var _this2 = this;
194
+ return /*#__PURE__*/React.createElement(SideBar, {
195
+ icon: "cog",
196
+ id: "Settings",
197
+ onShow: this.onShow,
198
+ side: this.props.side,
199
+ title: LocaleUtils.tr("appmenu.items.Settings"),
200
+ width: "25em"
201
+ }, function () {
202
+ return {
203
+ body: _this2.renderBody()
204
+ };
205
+ });
206
+ }
207
+ }]);
208
+ }(React.Component);
209
+ _defineProperty(Settings, "availableIn3D", true);
210
+ _defineProperty(Settings, "propTypes", {
211
+ colorScheme: PropTypes.string,
212
+ /** List of available color schemes. Value is the css class name, title/titleMsgId the display name. */
213
+ colorSchemes: PropTypes.arrayOf(PropTypes.shape({
214
+ title: PropTypes.string,
215
+ titleMsgId: PropTypes.string,
216
+ value: PropTypes.string
217
+ })),
218
+ defaultUrlParams: PropTypes.string,
219
+ /** List of available languages. Value is the lang code, title/titleMsgId the display name. */
220
+ languages: PropTypes.arrayOf(PropTypes.shape({
221
+ title: PropTypes.string,
222
+ titleMsgId: PropTypes.string,
223
+ value: PropTypes.string
224
+ })),
225
+ setColorScheme: PropTypes.func,
226
+ setUserInfoFields: PropTypes.func,
227
+ /** Whether to show a selector to set the default theme/bookmark (of a logged in user). */
228
+ showDefaultThemeSelector: PropTypes.bool,
229
+ /** The side of the application on which to display the sidebar. */
230
+ side: PropTypes.string,
231
+ themes: PropTypes.object
232
+ });
233
+ _defineProperty(Settings, "defaultProps", {
234
+ colorSchemes: [],
235
+ languages: [],
236
+ side: 'right',
237
+ showDefaultThemeSelector: true
238
+ });
239
+ export default connect(function (state) {
240
+ var _state$localConfig$us;
241
+ return {
242
+ colorScheme: state.localConfig.colorScheme,
243
+ defaultUrlParams: ((_state$localConfig$us = state.localConfig.user_infos) === null || _state$localConfig$us === void 0 ? void 0 : _state$localConfig$us.default_url_params) || "",
244
+ themes: state.theme.themes
245
+ };
246
+ }, {
247
+ setColorScheme: setColorScheme,
248
+ setUserInfoFields: setUserInfoFields
249
+ })(Settings);