qwc2 2025.10.13 → 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,9 +1,329 @@
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 _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}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 _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 _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
5
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
6
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
7
+ 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."); }
8
+ 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; } }
9
+ 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; }
10
+ 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; } }
11
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
12
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
13
+ 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); } }
14
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
15
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
16
+ 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); }
17
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
18
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
19
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
20
+ 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); }
21
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
22
+ 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; }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
24
+ 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); }
25
+ /**
2
26
  * Copyright 2024 Sourcepole AG
3
27
  * All rights reserved.
4
28
  *
5
29
  * This source code is licensed under the BSD-style license found in the
6
30
  * LICENSE file in the root directory of this source tree.
7
- */import React from"react";import{connect}from"react-redux";import classNames from"classnames";import isEmpty from"lodash.isempty";import PropTypes from"prop-types";import{setCurrentTask}from"../../actions/task";import Icon from"../../components/Icon";import SideBar from"../../components/SideBar";import ImportObjects3D from"../../components/map3d/ImportObjects3D";import NumberInput from"../../components/widgets/NumberInput";import LocaleUtils from"../../utils/LocaleUtils";import"./style/LayerTree3D.css";/**
31
+ */
32
+
33
+ import React from 'react';
34
+ import { connect } from 'react-redux';
35
+ import classNames from 'classnames';
36
+ import isEmpty from 'lodash.isempty';
37
+ import PropTypes from 'prop-types';
38
+ import { setCurrentTask } from '../../actions/task';
39
+ import Icon from '../../components/Icon';
40
+ import SideBar from '../../components/SideBar';
41
+ import ImportObjects3D from '../../components/map3d/ImportObjects3D';
42
+ import NumberInput from '../../components/widgets/NumberInput';
43
+ import LocaleUtils from '../../utils/LocaleUtils';
44
+ import './style/LayerTree3D.css';
45
+
46
+ /**
8
47
  * Layer and object tree for the 3D map
9
- */var LayerTree3D=/*#__PURE__*/function(_React$Component){function LayerTree3D(){var _this;_classCallCheck(this,LayerTree3D);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,LayerTree3D,[].concat(args));_defineProperty(_this,"state",{activestylemenu:null,activemenu:null,importvisible:false});_defineProperty(_this,"renderBody",function(){var sceneContext=_this.props.sceneContext;return/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("div",{className:"layertree3d-layers"},/*#__PURE__*/React.createElement("div",{className:"layertree3d-section"},LocaleUtils.tr("layertree3d.objects")),Object.entries(sceneContext.sceneObjects).map(function(_ref){var _ref2=_slicedToArray(_ref,2),objectId=_ref2[0],entry=_ref2[1];return _this.renderLayerEntry(objectId,entry,sceneContext.updateSceneObject,true)}),/*#__PURE__*/React.createElement("div",{className:"layertree3d-section"},LocaleUtils.tr("layertree3d.layers")),Object.entries(sceneContext.colorLayers).map(function(_ref3){var _ref4=_slicedToArray(_ref3,2),layerId=_ref4[0],entry=_ref4[1];return _this.renderLayerEntry(layerId,entry,sceneContext.updateColorLayer,false)}),/*#__PURE__*/React.createElement("div",{className:"layertree3d-option",onClick:function onClick(){return _this.setState(function(state){return{importvisible:!state.importvisible}})}},/*#__PURE__*/React.createElement(Icon,{icon:_this.state.importvisible?"collapse":"expand"})," ",LocaleUtils.tr("layertree3d.importobjects"))),_this.state.importvisible?/*#__PURE__*/React.createElement(ImportObjects3D,{importedTilesBaseUrl:_this.props.importedTilesBaseUrl,sceneContext:_this.props.sceneContext}):null)});_defineProperty(_this,"renderLayerEntry",function(entryId,entry,updateCallback,isObject){var _entry$title,_entry$title2;if(entry.layertree===false){return null}var classes=classNames({"layertree3d-item":true,"layertree3d-item-disabled":!entry.visibility});var styleMenuClasses=classNames({"layertree3d-item-menubutton":true,"layertree3d-item-menubutton-active":_this.state.activestylemenu===entryId});var optMenuClasses=classNames({"layertree3d-item-menubutton":true,"layertree3d-item-menubutton-active":_this.state.activemenu===entryId});return/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-container",key:entryId},/*#__PURE__*/React.createElement("div",{className:classes},/*#__PURE__*/React.createElement(Icon,{className:"layertree3d-item-checkbox",icon:entry.visibility?"checked":"unchecked",onClick:function onClick(){return updateCallback(entryId,{visibility:!entry.visibility})}}),/*#__PURE__*/React.createElement("span",{className:"layertree3d-item-title",title:(_entry$title=entry.title)!==null&&_entry$title!==void 0?_entry$title:entryId},(_entry$title2=entry.title)!==null&&_entry$title2!==void 0?_entry$title2:entryId),Object.keys(entry.styles||{}).length>1?/*#__PURE__*/React.createElement(Icon,{className:styleMenuClasses,icon:"paint",onClick:function onClick(){return _this.layerStyleMenuToggled(entryId)}}):null,entry.drawGroup||entry.imported?/*#__PURE__*/React.createElement(Icon,{className:"layertree3d-item-remove",icon:"trash",onClick:function onClick(){return _this.props.sceneContext.removeSceneObject(entryId)}}):null,/*#__PURE__*/React.createElement(Icon,{className:optMenuClasses,icon:"cog",onClick:function onClick(){return _this.layerMenuToggled(entryId)}})),_this.state.activemenu===entryId?/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-optionsmenu"},/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-optionsmenu-row"},isObject?/*#__PURE__*/React.createElement(Icon,{icon:"zoom",onClick:function onClick(){return _this.props.sceneContext.zoomToObject(entryId)},title:LocaleUtils.tr("layertree3d.zoomtoobject")}):null,entry.imported?/*#__PURE__*/React.createElement(Icon,{icon:"draw",onClick:function onClick(){return _this.editObject(entryId)}}):null,/*#__PURE__*/React.createElement(Icon,{icon:"transparency"}),/*#__PURE__*/React.createElement("input",{className:"layertree3d-item-transparency-slider",max:"255",min:"0",onChange:function onChange(ev){return updateCallback(entryId,{opacity:parseInt(ev.target.value,10)})},step:"1",type:"range",value:entry.opacity})),entry.extrusionHeight!==undefined?/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-optionsmenu-row"},/*#__PURE__*/React.createElement("span",null,"Extrude:"),/*#__PURE__*/React.createElement(React.Fragment,null,"\xA0"),/*#__PURE__*/React.createElement("select",{onChange:function onChange(ev){return updateCallback(entryId,{extrusionHeight:ev.target.value==="__value"?0:ev.target.value})},value:typeof entry.extrusionHeight==="string"?entry.extrusionHeight:"__value"},/*#__PURE__*/React.createElement("option",{value:"__value"},LocaleUtils.tr("layertree3d.customheight")),(entry.fields||[]).map(function(field){return/*#__PURE__*/React.createElement("option",{key:field,value:field},field)})),typeof entry.extrusionHeight!=="string"?/*#__PURE__*/React.createElement(NumberInput,{max:500,min:0,onChange:function onChange(h){return updateCallback(entryId,{extrusionHeight:h})},value:entry.extrusionHeight}):null):null):null,_this.state.activestylemenu===entryId?/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-stylemenu"},Object.keys(entry.styles).map(function(name){return/*#__PURE__*/React.createElement("div",{key:name,onClick:function onClick(){return updateCallback(entryId,{style:name})}},/*#__PURE__*/React.createElement(Icon,{icon:entry.style===name?"radio_checked":"radio_unchecked"}),/*#__PURE__*/React.createElement("div",null,name))})):null,!isEmpty(entry.sublayers)?/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-sublayers"},entry.sublayers.map(function(sublayer,idx){return _this.renderSublayer(sublayer,entryId,updateCallback,[idx],entry.visibility)})):null)});_defineProperty(_this,"renderSublayer",function(sublayer,entryId,updateCallback,path,parentVisible){var key=entryId+":"+path.join(":");var classes=classNames({"layertree3d-item":true,"layertree3d-item-disabled":!parentVisible||!sublayer.visibility});var optMenuClasses=classNames({"layertree3d-item-menubutton":true,"layertree3d-item-menubutton-active":_this.state.activemenu===key});return/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-container",key:key},/*#__PURE__*/React.createElement("div",{className:classes},/*#__PURE__*/React.createElement(Icon,{className:"layertree3d-item-checkbox",icon:sublayer.visibility?"checked":"unchecked",onClick:function onClick(){return updateCallback(entryId,{visibility:!sublayer.visibility},path)},sublayer:"layertree3d-item-checkbox"}),/*#__PURE__*/React.createElement("span",{className:"layertree3d-item-title",title:sublayer.title},sublayer.title),/*#__PURE__*/React.createElement(Icon,{className:optMenuClasses,icon:"cog",onClick:function onClick(){return _this.layerMenuToggled(key)}})),_this.state.activemenu===key?/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-optionsmenu"},/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-optionsmenu-row"},/*#__PURE__*/React.createElement(Icon,{icon:"transparency"}),/*#__PURE__*/React.createElement("input",{className:"layertree3d-item-transparency-slider",max:"255",min:"0",onChange:function onChange(ev){return updateCallback(entryId,{opacity:parseInt(ev.target.value,10)},path)},step:"1",type:"range",value:sublayer.opacity}))):null,!isEmpty(sublayer.sublayers)?/*#__PURE__*/React.createElement("div",{className:"layertree3d-item-sublayers"},sublayer.sublayers.map(function(child,idx){return _this.renderSublayer(child,entryId,updateCallback,[].concat(_toConsumableArray(path),[idx]),parentVisible&&sublayer.visibility)})):null)});_defineProperty(_this,"layerStyleMenuToggled",function(entryId){_this.setState(function(state){return{activestylemenu:state.activestylemenu===entryId?null:entryId}})});_defineProperty(_this,"layerMenuToggled",function(entryId){_this.setState(function(state){return{activemenu:state.activemenu===entryId?null:entryId}})});_defineProperty(_this,"editObject",function(objectId){_this.props.setCurrentTask("EditDataset3D",null,null,{objectId:objectId})});return _this}_inherits(LayerTree3D,_React$Component);return _createClass(LayerTree3D,[{key:"render",value:function render(){var _this2=this;return/*#__PURE__*/React.createElement(SideBar,{icon:"layers",id:"LayerTree3D",title:LocaleUtils.tr("appmenu.items.LayerTree3D"),width:"20em"},function(){return{body:_this2.renderBody()}})}}])}(React.Component);_defineProperty(LayerTree3D,"propTypes",{/** Base URL of imported tile sets. */importedTilesBaseUrl:PropTypes.string,sceneContext:PropTypes.object,setCurrentTask:PropTypes.func});_defineProperty(LayerTree3D,"defaultProps",{importedTilesBaseUrl:":/"});export default connect(function(state){return{}},{setCurrentTask:setCurrentTask})(LayerTree3D);
48
+ */
49
+ var LayerTree3D = /*#__PURE__*/function (_React$Component) {
50
+ function LayerTree3D() {
51
+ var _this;
52
+ _classCallCheck(this, LayerTree3D);
53
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54
+ args[_key] = arguments[_key];
55
+ }
56
+ _this = _callSuper(this, LayerTree3D, [].concat(args));
57
+ _defineProperty(_this, "state", {
58
+ activestylemenu: null,
59
+ activemenu: null,
60
+ importvisible: false
61
+ });
62
+ _defineProperty(_this, "renderBody", function () {
63
+ var sceneContext = _this.props.sceneContext;
64
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
65
+ className: "layertree3d-layers"
66
+ }, /*#__PURE__*/React.createElement("div", {
67
+ className: "layertree3d-section"
68
+ }, LocaleUtils.tr("layertree3d.objects")), Object.entries(sceneContext.sceneObjects).map(function (_ref) {
69
+ var _ref2 = _slicedToArray(_ref, 2),
70
+ objectId = _ref2[0],
71
+ entry = _ref2[1];
72
+ return _this.renderLayerEntry(objectId, entry, sceneContext.updateSceneObject, true);
73
+ }), /*#__PURE__*/React.createElement("div", {
74
+ className: "layertree3d-section"
75
+ }, LocaleUtils.tr("layertree3d.layers")), Object.entries(sceneContext.colorLayers).map(function (_ref3) {
76
+ var _ref4 = _slicedToArray(_ref3, 2),
77
+ layerId = _ref4[0],
78
+ entry = _ref4[1];
79
+ return _this.renderLayerEntry(layerId, entry, sceneContext.updateColorLayer, false);
80
+ }), /*#__PURE__*/React.createElement("div", {
81
+ className: "layertree3d-option",
82
+ onClick: function onClick() {
83
+ return _this.setState(function (state) {
84
+ return {
85
+ importvisible: !state.importvisible
86
+ };
87
+ });
88
+ }
89
+ }, /*#__PURE__*/React.createElement(Icon, {
90
+ icon: _this.state.importvisible ? 'collapse' : 'expand'
91
+ }), " ", LocaleUtils.tr("layertree3d.importobjects"))), _this.state.importvisible ? /*#__PURE__*/React.createElement(ImportObjects3D, {
92
+ importedTilesBaseUrl: _this.props.importedTilesBaseUrl,
93
+ sceneContext: _this.props.sceneContext
94
+ }) : null);
95
+ });
96
+ _defineProperty(_this, "renderLayerEntry", function (entryId, entry, updateCallback, isObject) {
97
+ var _entry$title, _entry$title2;
98
+ if (entry.layertree === false) {
99
+ return null;
100
+ }
101
+ var classes = classNames({
102
+ "layertree3d-item": true,
103
+ "layertree3d-item-disabled": !entry.visibility
104
+ });
105
+ var styleMenuClasses = classNames({
106
+ "layertree3d-item-menubutton": true,
107
+ "layertree3d-item-menubutton-active": _this.state.activestylemenu === entryId
108
+ });
109
+ var optMenuClasses = classNames({
110
+ "layertree3d-item-menubutton": true,
111
+ "layertree3d-item-menubutton-active": _this.state.activemenu === entryId
112
+ });
113
+ return /*#__PURE__*/React.createElement("div", {
114
+ className: "layertree3d-item-container",
115
+ key: entryId
116
+ }, /*#__PURE__*/React.createElement("div", {
117
+ className: classes
118
+ }, /*#__PURE__*/React.createElement(Icon, {
119
+ className: "layertree3d-item-checkbox",
120
+ icon: entry.visibility ? "checked" : "unchecked",
121
+ onClick: function onClick() {
122
+ return updateCallback(entryId, {
123
+ visibility: !entry.visibility
124
+ });
125
+ }
126
+ }), /*#__PURE__*/React.createElement("span", {
127
+ className: "layertree3d-item-title",
128
+ title: (_entry$title = entry.title) !== null && _entry$title !== void 0 ? _entry$title : entryId
129
+ }, (_entry$title2 = entry.title) !== null && _entry$title2 !== void 0 ? _entry$title2 : entryId), Object.keys(entry.styles || {}).length > 1 ? /*#__PURE__*/React.createElement(Icon, {
130
+ className: styleMenuClasses,
131
+ icon: "paint",
132
+ onClick: function onClick() {
133
+ return _this.layerStyleMenuToggled(entryId);
134
+ }
135
+ }) : null, entry.drawGroup || entry.imported ? /*#__PURE__*/React.createElement(Icon, {
136
+ className: "layertree3d-item-remove",
137
+ icon: "trash",
138
+ onClick: function onClick() {
139
+ return _this.props.sceneContext.removeSceneObject(entryId);
140
+ }
141
+ }) : null, /*#__PURE__*/React.createElement(Icon, {
142
+ className: optMenuClasses,
143
+ icon: "cog",
144
+ onClick: function onClick() {
145
+ return _this.layerMenuToggled(entryId);
146
+ }
147
+ })), _this.state.activemenu === entryId ? /*#__PURE__*/React.createElement("div", {
148
+ className: "layertree3d-item-optionsmenu"
149
+ }, /*#__PURE__*/React.createElement("div", {
150
+ className: "layertree3d-item-optionsmenu-row"
151
+ }, isObject ? /*#__PURE__*/React.createElement(Icon, {
152
+ icon: "zoom",
153
+ onClick: function onClick() {
154
+ return _this.props.sceneContext.zoomToObject(entryId);
155
+ },
156
+ title: LocaleUtils.tr("layertree3d.zoomtoobject")
157
+ }) : null, entry.imported ? /*#__PURE__*/React.createElement(Icon, {
158
+ icon: "draw",
159
+ onClick: function onClick() {
160
+ return _this.editObject(entryId);
161
+ }
162
+ }) : null, /*#__PURE__*/React.createElement(Icon, {
163
+ icon: "transparency"
164
+ }), /*#__PURE__*/React.createElement("input", {
165
+ className: "layertree3d-item-transparency-slider",
166
+ max: "255",
167
+ min: "0",
168
+ onChange: function onChange(ev) {
169
+ return updateCallback(entryId, {
170
+ opacity: parseInt(ev.target.value, 10)
171
+ });
172
+ },
173
+ step: "1",
174
+ type: "range",
175
+ value: entry.opacity
176
+ })), entry.extrusionHeight !== undefined ? /*#__PURE__*/React.createElement("div", {
177
+ className: "layertree3d-item-optionsmenu-row"
178
+ }, /*#__PURE__*/React.createElement("span", null, "Extrude:"), /*#__PURE__*/React.createElement(React.Fragment, null, "\xA0"), /*#__PURE__*/React.createElement("select", {
179
+ onChange: function onChange(ev) {
180
+ return updateCallback(entryId, {
181
+ extrusionHeight: ev.target.value === "__value" ? 0 : ev.target.value
182
+ });
183
+ },
184
+ value: typeof entry.extrusionHeight === "string" ? entry.extrusionHeight : "__value"
185
+ }, /*#__PURE__*/React.createElement("option", {
186
+ value: "__value"
187
+ }, LocaleUtils.tr("layertree3d.customheight")), (entry.fields || []).map(function (field) {
188
+ return /*#__PURE__*/React.createElement("option", {
189
+ key: field,
190
+ value: field
191
+ }, field);
192
+ })), typeof entry.extrusionHeight !== "string" ? /*#__PURE__*/React.createElement(NumberInput, {
193
+ max: 500,
194
+ min: 0,
195
+ onChange: function onChange(h) {
196
+ return updateCallback(entryId, {
197
+ extrusionHeight: h
198
+ });
199
+ },
200
+ value: entry.extrusionHeight
201
+ }) : null) : null) : null, _this.state.activestylemenu === entryId ? /*#__PURE__*/React.createElement("div", {
202
+ className: "layertree3d-item-stylemenu"
203
+ }, Object.keys(entry.styles).map(function (name) {
204
+ return /*#__PURE__*/React.createElement("div", {
205
+ key: name,
206
+ onClick: function onClick() {
207
+ return updateCallback(entryId, {
208
+ style: name
209
+ });
210
+ }
211
+ }, /*#__PURE__*/React.createElement(Icon, {
212
+ icon: entry.style === name ? "radio_checked" : "radio_unchecked"
213
+ }), /*#__PURE__*/React.createElement("div", null, name));
214
+ })) : null, !isEmpty(entry.sublayers) ? /*#__PURE__*/React.createElement("div", {
215
+ className: "layertree3d-item-sublayers"
216
+ }, entry.sublayers.map(function (sublayer, idx) {
217
+ return _this.renderSublayer(sublayer, entryId, updateCallback, [idx], entry.visibility);
218
+ })) : null);
219
+ });
220
+ _defineProperty(_this, "renderSublayer", function (sublayer, entryId, updateCallback, path, parentVisible) {
221
+ var key = entryId + ":" + path.join(":");
222
+ var classes = classNames({
223
+ "layertree3d-item": true,
224
+ "layertree3d-item-disabled": !parentVisible || !sublayer.visibility
225
+ });
226
+ var optMenuClasses = classNames({
227
+ "layertree3d-item-menubutton": true,
228
+ "layertree3d-item-menubutton-active": _this.state.activemenu === key
229
+ });
230
+ return /*#__PURE__*/React.createElement("div", {
231
+ className: "layertree3d-item-container",
232
+ key: key
233
+ }, /*#__PURE__*/React.createElement("div", {
234
+ className: classes
235
+ }, /*#__PURE__*/React.createElement(Icon, {
236
+ className: "layertree3d-item-checkbox",
237
+ icon: sublayer.visibility ? "checked" : "unchecked",
238
+ onClick: function onClick() {
239
+ return updateCallback(entryId, {
240
+ visibility: !sublayer.visibility
241
+ }, path);
242
+ },
243
+ sublayer: "layertree3d-item-checkbox"
244
+ }), /*#__PURE__*/React.createElement("span", {
245
+ className: "layertree3d-item-title",
246
+ title: sublayer.title
247
+ }, sublayer.title), /*#__PURE__*/React.createElement(Icon, {
248
+ className: optMenuClasses,
249
+ icon: "cog",
250
+ onClick: function onClick() {
251
+ return _this.layerMenuToggled(key);
252
+ }
253
+ })), _this.state.activemenu === key ? /*#__PURE__*/React.createElement("div", {
254
+ className: "layertree3d-item-optionsmenu"
255
+ }, /*#__PURE__*/React.createElement("div", {
256
+ className: "layertree3d-item-optionsmenu-row"
257
+ }, /*#__PURE__*/React.createElement(Icon, {
258
+ icon: "transparency"
259
+ }), /*#__PURE__*/React.createElement("input", {
260
+ className: "layertree3d-item-transparency-slider",
261
+ max: "255",
262
+ min: "0",
263
+ onChange: function onChange(ev) {
264
+ return updateCallback(entryId, {
265
+ opacity: parseInt(ev.target.value, 10)
266
+ }, path);
267
+ },
268
+ step: "1",
269
+ type: "range",
270
+ value: sublayer.opacity
271
+ }))) : null, !isEmpty(sublayer.sublayers) ? /*#__PURE__*/React.createElement("div", {
272
+ className: "layertree3d-item-sublayers"
273
+ }, sublayer.sublayers.map(function (child, idx) {
274
+ return _this.renderSublayer(child, entryId, updateCallback, [].concat(_toConsumableArray(path), [idx]), parentVisible && sublayer.visibility);
275
+ })) : null);
276
+ });
277
+ _defineProperty(_this, "layerStyleMenuToggled", function (entryId) {
278
+ _this.setState(function (state) {
279
+ return {
280
+ activestylemenu: state.activestylemenu === entryId ? null : entryId
281
+ };
282
+ });
283
+ });
284
+ _defineProperty(_this, "layerMenuToggled", function (entryId) {
285
+ _this.setState(function (state) {
286
+ return {
287
+ activemenu: state.activemenu === entryId ? null : entryId
288
+ };
289
+ });
290
+ });
291
+ _defineProperty(_this, "editObject", function (objectId) {
292
+ _this.props.setCurrentTask("EditDataset3D", null, null, {
293
+ objectId: objectId
294
+ });
295
+ });
296
+ return _this;
297
+ }
298
+ _inherits(LayerTree3D, _React$Component);
299
+ return _createClass(LayerTree3D, [{
300
+ key: "render",
301
+ value: function render() {
302
+ var _this2 = this;
303
+ return /*#__PURE__*/React.createElement(SideBar, {
304
+ icon: "layers",
305
+ id: "LayerTree3D",
306
+ title: LocaleUtils.tr("appmenu.items.LayerTree3D"),
307
+ width: "20em"
308
+ }, function () {
309
+ return {
310
+ body: _this2.renderBody()
311
+ };
312
+ });
313
+ }
314
+ }]);
315
+ }(React.Component);
316
+ _defineProperty(LayerTree3D, "propTypes", {
317
+ /** Base URL of imported tile sets. */
318
+ importedTilesBaseUrl: PropTypes.string,
319
+ sceneContext: PropTypes.object,
320
+ setCurrentTask: PropTypes.func
321
+ });
322
+ _defineProperty(LayerTree3D, "defaultProps", {
323
+ importedTilesBaseUrl: ':/'
324
+ });
325
+ export default connect(function (state) {
326
+ return {};
327
+ }, {
328
+ setCurrentTask: setCurrentTask
329
+ })(LayerTree3D);
@@ -1,11 +1,134 @@
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 _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 _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}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 _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}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 _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 _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; } }
5
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
6
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
7
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+ 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; } }
9
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
10
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
11
+ 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; }
12
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
13
+ 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); } }
14
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
15
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
16
+ 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); }
17
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
18
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
19
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
20
+ 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); }
21
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
22
+ 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; }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
24
+ 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); }
25
+ /**
2
26
  * Copyright 2016-2024 Sourcepole AG
3
27
  * All rights reserved.
4
28
  *
5
29
  * This source code is licensed under the BSD-style license found in the
6
30
  * LICENSE file in the root directory of this source tree.
7
- */import React from"react";import ReactDOM from"react-dom";import DOMPurify from"dompurify";import isEmpty from"lodash.isempty";import PropTypes from"prop-types";import{MapContainerPortalContext}from"../../components/PluginsContainer";import LocaleUtils from"../../utils/LocaleUtils";import"../style/MapCopyright.css";/**
31
+ */
32
+
33
+ import React from 'react';
34
+ import ReactDOM from 'react-dom';
35
+ import DOMPurify from 'dompurify';
36
+ import isEmpty from 'lodash.isempty';
37
+ import PropTypes from 'prop-types';
38
+ import { MapContainerPortalContext } from '../../components/PluginsContainer';
39
+ import LocaleUtils from '../../utils/LocaleUtils';
40
+ import '../style/MapCopyright.css';
41
+
42
+ /**
8
43
  * Displays layer attributions in the bottom right corner of the 3D map.
9
- */var MapCopyright3D=/*#__PURE__*/function(_React$Component){function MapCopyright3D(){var _this;_classCallCheck(this,MapCopyright3D);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,MapCopyright3D,[].concat(args));_defineProperty(_this,"state",{currentCopyrights:{}});_defineProperty(_this,"layerNames",function(layers){if(!_this.props.prefixCopyrightsWithLayerNames){return""}else{return layers.map(function(layer){return layer.titleMsgId?LocaleUtils.tr(layer.titleMsgId):layer.title}).join(", ")+": "}});return _this}_inherits(MapCopyright3D,_React$Component);return _createClass(MapCopyright3D,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(this.props.sceneContext.baseLayers!==prevProps.sceneContext.baseLayers||this.props.sceneContext.colorLayers!==prevProps.sceneContext.colorLayers){var layers=this.props.sceneContext.baseLayers.concat(this.props.sceneContext.colorLayers);var copyrights=layers.reduce(function(res,layer){if(layer.attribution&&layer.attribution.Title){var _res$key;var key=layer.attribution.OnlineResource||layer.attribution.Title;res[key]={title:layer.attribution.OnlineResource?layer.attribution.Title:null,layers:[].concat(_toConsumableArray(((_res$key=res[key])===null||_res$key===void 0?void 0:_res$key.layers)||[]),[layer])}}return res},{});this.setState({currentCopyrights:copyrights})}}},{key:"render",value:function render(){var _this2=this;// If attribution has both url and label, "key" is the url and "value.title" the label.
10
- // If it only has a label, "key" is the label and "value" is null.
11
- var copyrights=Object.entries(this.state.currentCopyrights).map(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];if(value.title){return/*#__PURE__*/React.createElement("span",{key:key},/*#__PURE__*/React.createElement("a",{href:key,rel:"noreferrer",target:"_blank"},_this2.layerNames(value.layers)+value.title))}else{return/*#__PURE__*/React.createElement("span",{key:key},_this2.layerNames(value.layers),/*#__PURE__*/React.createElement("span",{dangerouslySetInnerHTML:{__html:DOMPurify.sanitize(key)}}))}});if(isEmpty(copyrights)){return null}return/*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/React.createElement("div",{className:"MapCopyright MapCopyright3D"},copyrights),this.context)}}])}(React.Component);_defineProperty(MapCopyright3D,"contextType",MapContainerPortalContext);_defineProperty(MapCopyright3D,"propTypes",{/** Whether to prepend the layer name to the attribution string. */prefixCopyrightsWithLayerNames:PropTypes.bool,sceneContext:PropTypes.object,/** Whether to only display the attribution of the theme, omitting external layers. */showThemeCopyrightOnly:PropTypes.bool});export{MapCopyright3D as default};
44
+ */
45
+ var MapCopyright3D = /*#__PURE__*/function (_React$Component) {
46
+ function MapCopyright3D() {
47
+ var _this;
48
+ _classCallCheck(this, MapCopyright3D);
49
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
50
+ args[_key] = arguments[_key];
51
+ }
52
+ _this = _callSuper(this, MapCopyright3D, [].concat(args));
53
+ _defineProperty(_this, "state", {
54
+ currentCopyrights: {}
55
+ });
56
+ _defineProperty(_this, "layerNames", function (layers) {
57
+ if (!_this.props.prefixCopyrightsWithLayerNames) {
58
+ return "";
59
+ } else {
60
+ return layers.map(function (layer) {
61
+ return layer.titleMsgId ? LocaleUtils.tr(layer.titleMsgId) : layer.title;
62
+ }).join(", ") + ": ";
63
+ }
64
+ });
65
+ return _this;
66
+ }
67
+ _inherits(MapCopyright3D, _React$Component);
68
+ return _createClass(MapCopyright3D, [{
69
+ key: "componentDidUpdate",
70
+ value: function componentDidUpdate(prevProps) {
71
+ if (this.props.sceneContext.baseLayers !== prevProps.sceneContext.baseLayers || this.props.sceneContext.colorLayers !== prevProps.sceneContext.colorLayers) {
72
+ var layers = this.props.sceneContext.baseLayers.concat(this.props.sceneContext.colorLayers);
73
+ var copyrights = layers.reduce(function (res, layer) {
74
+ if (layer.attribution && layer.attribution.Title) {
75
+ var _res$key;
76
+ var key = layer.attribution.OnlineResource || layer.attribution.Title;
77
+ res[key] = {
78
+ title: layer.attribution.OnlineResource ? layer.attribution.Title : null,
79
+ layers: [].concat(_toConsumableArray(((_res$key = res[key]) === null || _res$key === void 0 ? void 0 : _res$key.layers) || []), [layer])
80
+ };
81
+ }
82
+ return res;
83
+ }, {});
84
+ this.setState({
85
+ currentCopyrights: copyrights
86
+ });
87
+ }
88
+ }
89
+ }, {
90
+ key: "render",
91
+ value: function render() {
92
+ var _this2 = this;
93
+ // If attribution has both url and label, "key" is the url and "value.title" the label.
94
+ // If it only has a label, "key" is the label and "value" is null.
95
+ var copyrights = Object.entries(this.state.currentCopyrights).map(function (_ref) {
96
+ var _ref2 = _slicedToArray(_ref, 2),
97
+ key = _ref2[0],
98
+ value = _ref2[1];
99
+ if (value.title) {
100
+ return /*#__PURE__*/React.createElement("span", {
101
+ key: key
102
+ }, /*#__PURE__*/React.createElement("a", {
103
+ href: key,
104
+ rel: "noreferrer",
105
+ target: "_blank"
106
+ }, _this2.layerNames(value.layers) + value.title));
107
+ } else {
108
+ return /*#__PURE__*/React.createElement("span", {
109
+ key: key
110
+ }, _this2.layerNames(value.layers), /*#__PURE__*/React.createElement("span", {
111
+ dangerouslySetInnerHTML: {
112
+ __html: DOMPurify.sanitize(key)
113
+ }
114
+ }));
115
+ }
116
+ });
117
+ if (isEmpty(copyrights)) {
118
+ return null;
119
+ }
120
+ return /*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/React.createElement("div", {
121
+ className: "MapCopyright MapCopyright3D"
122
+ }, copyrights), this.context);
123
+ }
124
+ }]);
125
+ }(React.Component);
126
+ _defineProperty(MapCopyright3D, "contextType", MapContainerPortalContext);
127
+ _defineProperty(MapCopyright3D, "propTypes", {
128
+ /** Whether to prepend the layer name to the attribution string. */
129
+ prefixCopyrightsWithLayerNames: PropTypes.bool,
130
+ sceneContext: PropTypes.object,
131
+ /** Whether to only display the attribution of the theme, omitting external layers. */
132
+ showThemeCopyrightOnly: PropTypes.bool
133
+ });
134
+ export { MapCopyright3D as default };