qwc2 2025.3.31

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 (528) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +68 -0
  3. package/actions/display.js +7 -0
  4. package/actions/editing.js +7 -0
  5. package/actions/layerinfo.js +7 -0
  6. package/actions/layers.js +8 -0
  7. package/actions/localConfig.js +7 -0
  8. package/actions/locale.js +10 -0
  9. package/actions/locate.js +8 -0
  10. package/actions/logging.js +7 -0
  11. package/actions/map.js +15 -0
  12. package/actions/measurement.js +8 -0
  13. package/actions/processNotifications.js +7 -0
  14. package/actions/redlining.js +7 -0
  15. package/actions/redliningPick.js +7 -0
  16. package/actions/serviceinfo.js +7 -0
  17. package/actions/task.js +9 -0
  18. package/actions/theme.js +24 -0
  19. package/actions/windows.js +10 -0
  20. package/components/AppMenu.js +8 -0
  21. package/components/AttributeForm.js +34 -0
  22. package/components/AutoEditForm.js +8 -0
  23. package/components/CoordinateDisplayer.js +7 -0
  24. package/components/EditComboField.js +10 -0
  25. package/components/EditUploadField.js +8 -0
  26. package/components/FullscreenSwitcher.js +8 -0
  27. package/components/Icon.js +7 -0
  28. package/components/IdentifyViewer.js +16 -0
  29. package/components/ImportLayer.js +25 -0
  30. package/components/LayerInfoWindow.js +7 -0
  31. package/components/LinkFeatureForm.js +10 -0
  32. package/components/MapSelection.js +13 -0
  33. package/components/NumericInputWindow.js +7 -0
  34. package/components/PickFeature.js +7 -0
  35. package/components/PluginsContainer.js +8 -0
  36. package/components/PrintSelection.js +54 -0
  37. package/components/QtDesignerForm.js +30 -0
  38. package/components/ResizeableWindow.js +12 -0
  39. package/components/SearchBox.js +26 -0
  40. package/components/ServiceInfoWindow.js +7 -0
  41. package/components/SideBar.js +9 -0
  42. package/components/StandardApp.js +35 -0
  43. package/components/Swipeable.js +1 -0
  44. package/components/TaskBar.js +7 -0
  45. package/components/ThemeLayersListWindow.js +9 -0
  46. package/components/ThemeList.js +12 -0
  47. package/components/Toolbar.js +7 -0
  48. package/components/WindowManager.js +7 -0
  49. package/components/map/OlLayer.js +12 -0
  50. package/components/map/OlLocate.css +56 -0
  51. package/components/map/OlLocate.js +17 -0
  52. package/components/map/OlMap.js +11 -0
  53. package/components/map/layers/BingLayer.js +8 -0
  54. package/components/map/layers/GoogleLayer.js +27 -0
  55. package/components/map/layers/GraticuleLayer.js +8 -0
  56. package/components/map/layers/ImageLayer.js +8 -0
  57. package/components/map/layers/MVTLayer.js +7 -0
  58. package/components/map/layers/OSMLayer.js +8 -0
  59. package/components/map/layers/OverlayLayer.js +10 -0
  60. package/components/map/layers/VectorLayer.js +14 -0
  61. package/components/map/layers/WFSLayer.js +11 -0
  62. package/components/map/layers/WMSLayer.js +11 -0
  63. package/components/map/layers/WMTSLayer.js +9 -0
  64. package/components/map/layers/XYZLayer.js +7 -0
  65. package/components/map/layers/index.js +8 -0
  66. package/components/map3d/BottomBar3D.js +7 -0
  67. package/components/map3d/Compare3D.js +12 -0
  68. package/components/map3d/Draw3D.js +10 -0
  69. package/components/map3d/ExportObjects3D.js +17 -0
  70. package/components/map3d/HeightProfile3D.js +8 -0
  71. package/components/map3d/HideObjects3D.js +12 -0
  72. package/components/map3d/Identify3D.js +13 -0
  73. package/components/map3d/LayerTree3D.js +8 -0
  74. package/components/map3d/Map3D.js +29 -0
  75. package/components/map3d/Map3DLight.js +10 -0
  76. package/components/map3d/MapControls3D.js +20 -0
  77. package/components/map3d/MapExport3D.js +11 -0
  78. package/components/map3d/Measure3D.js +23 -0
  79. package/components/map3d/OverviewMap3D.js +9 -0
  80. package/components/map3d/SearchField3D.js +16 -0
  81. package/components/map3d/TopBar3D.js +7 -0
  82. package/components/map3d/View3DSwitcher.js +7 -0
  83. package/components/map3d/drawtool/CreateTool3D.js +9 -0
  84. package/components/map3d/drawtool/EditTool3D.js +9 -0
  85. package/components/map3d/drawtool/NumericInput3D.js +7 -0
  86. package/components/map3d/img/viewcone.svg +124 -0
  87. package/components/map3d/layers/VectorLayer3D.js +7 -0
  88. package/components/map3d/layers/WFSLayer3D.js +8 -0
  89. package/components/map3d/layers/WMSLayer3D.js +7 -0
  90. package/components/map3d/layers/WMTSLayer3D.js +9 -0
  91. package/components/map3d/layers/index.js +8 -0
  92. package/components/map3d/models/arrow.glb +0 -0
  93. package/components/map3d/models/pin.glb +0 -0
  94. package/components/map3d/slices/map3d.js +1 -0
  95. package/components/map3d/style/BottomBar3D.css +67 -0
  96. package/components/map3d/style/Compare3D.css +57 -0
  97. package/components/map3d/style/Draw3D.css +7 -0
  98. package/components/map3d/style/HideObjects3D.css +29 -0
  99. package/components/map3d/style/LayerTree3D.css +126 -0
  100. package/components/map3d/style/Map3D.css +42 -0
  101. package/components/map3d/style/Map3DLight.css +72 -0
  102. package/components/map3d/style/MapControls3D.css +56 -0
  103. package/components/map3d/style/MapExport3D.css +25 -0
  104. package/components/map3d/style/OverviewMap3D.css +37 -0
  105. package/components/map3d/style/SearchField3D.css +7 -0
  106. package/components/map3d/style/View3DSwitcher.css +27 -0
  107. package/components/map3d/utils/Tiles3DStyle.js +1 -0
  108. package/components/share/ShareLink.js +7 -0
  109. package/components/share/ShareQRCode.js +8 -0
  110. package/components/share/ShareSocials.js +9 -0
  111. package/components/share/style/ShareLink.css +13 -0
  112. package/components/share/style/ShareSocials.css +9 -0
  113. package/components/style/App.css +229 -0
  114. package/components/style/AppMenu.css +162 -0
  115. package/components/style/AttributeForm.css +57 -0
  116. package/components/style/AutoEditForm.css +64 -0
  117. package/components/style/DefaultColorScheme.css +60 -0
  118. package/components/style/EditUploadField.css +103 -0
  119. package/components/style/FullscreenSwitcher.css +25 -0
  120. package/components/style/Icon.css +26 -0
  121. package/components/style/IdentifyViewer.css +249 -0
  122. package/components/style/ImportLayer.css +28 -0
  123. package/components/style/LayerInfoWindow.css +46 -0
  124. package/components/style/LinkFeatureForm.css +48 -0
  125. package/components/style/NumericInputWindow.css +11 -0
  126. package/components/style/PickFeature.css +25 -0
  127. package/components/style/PluginsContainer.css +4 -0
  128. package/components/style/QtDesignerForm.css +225 -0
  129. package/components/style/ResizeableWindow.css +178 -0
  130. package/components/style/SearchBox.css +159 -0
  131. package/components/style/ServiceInfoWindow.css +34 -0
  132. package/components/style/SideBar.css +100 -0
  133. package/components/style/TaskBar.css +35 -0
  134. package/components/style/ThemeLayersListWindow.css +47 -0
  135. package/components/style/ThemeList.css +200 -0
  136. package/components/style/Toolbar.css +20 -0
  137. package/components/style/WindowManager.css +50 -0
  138. package/components/timeline/FixedTimeline.js +10 -0
  139. package/components/timeline/InfiniteTimeline.js +13 -0
  140. package/components/timeline/TimelineFeaturesSlider.js +10 -0
  141. package/components/timeline/style/FixedTimeline.css +76 -0
  142. package/components/timeline/style/InfiniteTimeline.css +94 -0
  143. package/components/timeline/style/TimelineFeaturesSlider.css +131 -0
  144. package/components/widgets/AccordeonWidget.js +7 -0
  145. package/components/widgets/ButtonBar.js +7 -0
  146. package/components/widgets/ColorButton.js +8 -0
  147. package/components/widgets/ComboBox.js +7 -0
  148. package/components/widgets/CopyButton.js +7 -0
  149. package/components/widgets/DateTimeInput.js +8 -0
  150. package/components/widgets/EditableSelect.js +8 -0
  151. package/components/widgets/FileSelector.js +9 -0
  152. package/components/widgets/Input.js +7 -0
  153. package/components/widgets/InputContainer.js +7 -0
  154. package/components/widgets/LayerCatalogWidget.js +3 -0
  155. package/components/widgets/MenuButton.js +1 -0
  156. package/components/widgets/ModalDialog.js +7 -0
  157. package/components/widgets/NavBar.js +7 -0
  158. package/components/widgets/NumberInput.js +9 -0
  159. package/components/widgets/PopupMenu.js +1 -0
  160. package/components/widgets/Primitives.js +7 -0
  161. package/components/widgets/ReCaptchaWidget.js +1 -0
  162. package/components/widgets/SearchWidget.js +7 -0
  163. package/components/widgets/Spinner.js +6 -0
  164. package/components/widgets/SuggestionInput.js +7 -0
  165. package/components/widgets/TextInput.js +7 -0
  166. package/components/widgets/ToggleSwitch.js +7 -0
  167. package/components/widgets/VectorLayerPicker.js +8 -0
  168. package/components/widgets/style/AccordeonWidget.css +22 -0
  169. package/components/widgets/style/ButtonBar.css +88 -0
  170. package/components/widgets/style/ColorButton.css +88 -0
  171. package/components/widgets/style/ComboBox.css +83 -0
  172. package/components/widgets/style/CopyButton.css +21 -0
  173. package/components/widgets/style/EditableSelect.css +47 -0
  174. package/components/widgets/style/FileSelector.css +14 -0
  175. package/components/widgets/style/InputContainer.css +34 -0
  176. package/components/widgets/style/LayerCatalogWidget.css +59 -0
  177. package/components/widgets/style/MenuButton.css +122 -0
  178. package/components/widgets/style/ModalDialog.css +50 -0
  179. package/components/widgets/style/NavBar.css +12 -0
  180. package/components/widgets/style/NumberInput.css +76 -0
  181. package/components/widgets/style/SearchWidget.css +43 -0
  182. package/components/widgets/style/Spinner.css +32 -0
  183. package/components/widgets/style/SuggestionInput.css +8 -0
  184. package/components/widgets/style/TextInput.css +94 -0
  185. package/components/widgets/style/ToggleSwitch.css +61 -0
  186. package/components/widgets/style/VectorLayerPicker.css +3 -0
  187. package/icons/2d.svg +70 -0
  188. package/icons/3d.svg +70 -0
  189. package/icons/3d2d.svg +92 -0
  190. package/icons/after.svg +76 -0
  191. package/icons/arrow-down.svg +60 -0
  192. package/icons/arrow-up.svg +60 -0
  193. package/icons/before.svg +76 -0
  194. package/icons/bglayer.svg +71 -0
  195. package/icons/bookmark.svg +170 -0
  196. package/icons/box.svg +63 -0
  197. package/icons/buffer.svg +67 -0
  198. package/icons/camera.svg +118 -0
  199. package/icons/catalog.svg +62 -0
  200. package/icons/checked.svg +80 -0
  201. package/icons/chevron-down.svg +60 -0
  202. package/icons/chevron-left.svg +59 -0
  203. package/icons/chevron-right.svg +60 -0
  204. package/icons/chevron-up.svg +60 -0
  205. package/icons/circle.svg +70 -0
  206. package/icons/clear.svg +62 -0
  207. package/icons/clock.svg +71 -0
  208. package/icons/cog.svg +60 -0
  209. package/icons/collapse.svg +73 -0
  210. package/icons/compare.svg +72 -0
  211. package/icons/cone.svg +58 -0
  212. package/icons/confirm.svg +62 -0
  213. package/icons/copy.svg +60 -0
  214. package/icons/cuboid.svg +58 -0
  215. package/icons/cyclomedia.svg +47 -0
  216. package/icons/cylinder.svg +58 -0
  217. package/icons/dataimport.svg +116 -0
  218. package/icons/detach.svg +79 -0
  219. package/icons/dock.svg +82 -0
  220. package/icons/dock_bottom.svg +82 -0
  221. package/icons/dock_left.svg +84 -0
  222. package/icons/dock_right.svg +84 -0
  223. package/icons/dock_top.svg +84 -0
  224. package/icons/draw.svg +78 -0
  225. package/icons/editdraw.svg +84 -0
  226. package/icons/edited.svg +78 -0
  227. package/icons/editing.svg +118 -0
  228. package/icons/ellipse.svg +72 -0
  229. package/icons/embed.svg +88 -0
  230. package/icons/expand.svg +73 -0
  231. package/icons/export.svg +126 -0
  232. package/icons/eye.svg +127 -0
  233. package/icons/featureform.svg +115 -0
  234. package/icons/fill.svg +62 -0
  235. package/icons/filter.svg +69 -0
  236. package/icons/folder-open.svg +60 -0
  237. package/icons/freehand.svg +82 -0
  238. package/icons/group.svg +76 -0
  239. package/icons/home.svg +60 -0
  240. package/icons/identify_radius.svg +71 -0
  241. package/icons/identify_region.svg +71 -0
  242. package/icons/import.svg +62 -0
  243. package/icons/info-sign.svg +60 -0
  244. package/icons/info.svg +80 -0
  245. package/icons/layers.svg +71 -0
  246. package/icons/light.svg +77 -0
  247. package/icons/line.svg +61 -0
  248. package/icons/line_buffer.svg +65 -0
  249. package/icons/link.svg +75 -0
  250. package/icons/list-alt.svg +111 -0
  251. package/icons/lock.svg +54 -0
  252. package/icons/login.svg +56 -0
  253. package/icons/logout.svg +56 -0
  254. package/icons/map3d.svg +51 -0
  255. package/icons/maximize.svg +84 -0
  256. package/icons/measure.svg +82 -0
  257. package/icons/measure_line.svg +87 -0
  258. package/icons/measure_polygon.svg +88 -0
  259. package/icons/menu-hamburger.svg +60 -0
  260. package/icons/minimize.svg +76 -0
  261. package/icons/minus-sign.svg +60 -0
  262. package/icons/minus.svg +61 -0
  263. package/icons/nav-end.svg +74 -0
  264. package/icons/nav-left.svg +74 -0
  265. package/icons/nav-right.svg +74 -0
  266. package/icons/nav-start.svg +73 -0
  267. package/icons/new.svg +84 -0
  268. package/icons/nodetool.svg +68 -0
  269. package/icons/numericinput.svg +86 -0
  270. package/icons/ok.svg +60 -0
  271. package/icons/open.svg +79 -0
  272. package/icons/open_link.svg +74 -0
  273. package/icons/paint.svg +75 -0
  274. package/icons/pen.svg +41 -0
  275. package/icons/person.svg +44 -0
  276. package/icons/pick.svg +67 -0
  277. package/icons/pick_point.svg +74 -0
  278. package/icons/pick_region.svg +71 -0
  279. package/icons/plus.svg +60 -0
  280. package/icons/point.svg +67 -0
  281. package/icons/point_buffer.svg +74 -0
  282. package/icons/polygon.svg +61 -0
  283. package/icons/print.svg +60 -0
  284. package/icons/pyramid.svg +58 -0
  285. package/icons/radio_checked.svg +78 -0
  286. package/icons/radio_tristate.svg +75 -0
  287. package/icons/radio_unchecked.svg +72 -0
  288. package/icons/rasterexport.svg +124 -0
  289. package/icons/rect.svg +63 -0
  290. package/icons/refresh.svg +44 -0
  291. package/icons/remove.svg +60 -0
  292. package/icons/report.svg +84 -0
  293. package/icons/routing-bicycle.svg +40 -0
  294. package/icons/routing-bus.svg +40 -0
  295. package/icons/routing-cablecar.svg +40 -0
  296. package/icons/routing-car.svg +40 -0
  297. package/icons/routing-ship.svg +40 -0
  298. package/icons/routing-train.svg +40 -0
  299. package/icons/routing-tram.svg +40 -0
  300. package/icons/routing-truck.svg +40 -0
  301. package/icons/routing-walking.svg +40 -0
  302. package/icons/routing.svg +68 -0
  303. package/icons/save.svg +190 -0
  304. package/icons/scale.svg +62 -0
  305. package/icons/screenshot.svg +60 -0
  306. package/icons/search.svg +60 -0
  307. package/icons/selectbox.svg +79 -0
  308. package/icons/share.svg +64 -0
  309. package/icons/snap_edge.svg +79 -0
  310. package/icons/snap_vertex.svg +79 -0
  311. package/icons/sphere.svg +58 -0
  312. package/icons/square.svg +68 -0
  313. package/icons/sync.svg +72 -0
  314. package/icons/text.svg +68 -0
  315. package/icons/themes.svg +81 -0
  316. package/icons/tilt-down.svg +67 -0
  317. package/icons/tilt-left.svg +48 -0
  318. package/icons/tilt-right.svg +48 -0
  319. package/icons/tilt-up.svg +67 -0
  320. package/icons/today.svg +45 -0
  321. package/icons/tools.svg +77 -0
  322. package/icons/transformtool.svg +74 -0
  323. package/icons/transparency.svg +132 -0
  324. package/icons/trash.svg +60 -0
  325. package/icons/tree_minus.svg +81 -0
  326. package/icons/tree_plus.svg +81 -0
  327. package/icons/triangle-down.svg +59 -0
  328. package/icons/triangle-left.svg +60 -0
  329. package/icons/triangle-right.svg +60 -0
  330. package/icons/triangle-up.svg +59 -0
  331. package/icons/tristate.svg +79 -0
  332. package/icons/unchecked.svg +74 -0
  333. package/icons/undock.svg +82 -0
  334. package/icons/undock_bottom.svg +82 -0
  335. package/icons/undock_left.svg +82 -0
  336. package/icons/undock_right.svg +84 -0
  337. package/icons/undock_top.svg +84 -0
  338. package/icons/unmaximize.svg +84 -0
  339. package/icons/unminimize.svg +76 -0
  340. package/icons/up-down-arrow.svg +66 -0
  341. package/icons/warning.svg +72 -0
  342. package/icons/wedge.svg +58 -0
  343. package/icons/zoom.svg +60 -0
  344. package/icons/zoomin.svg +71 -0
  345. package/icons/zoomout.svg +80 -0
  346. package/libs/openlayers.js +11 -0
  347. package/package.json +135 -0
  348. package/plugins/API.js +114 -0
  349. package/plugins/AttributeTable.js +25 -0
  350. package/plugins/Authentication.js +13 -0
  351. package/plugins/BackgroundSwitcher.js +10 -0
  352. package/plugins/Bookmark.js +13 -0
  353. package/plugins/BottomBar.js +10 -0
  354. package/plugins/CookiePopup.js +9 -0
  355. package/plugins/Cyclomedia.js +11 -0
  356. package/plugins/Editing.js +21 -0
  357. package/plugins/FeatureForm.js +21 -0
  358. package/plugins/FeatureSearch.js +11 -0
  359. package/plugins/GeometryDigitizer.js +43 -0
  360. package/plugins/HeightProfile.js +26 -0
  361. package/plugins/Help.js +11 -0
  362. package/plugins/HomeButton.js +9 -0
  363. package/plugins/Identify.js +18 -0
  364. package/plugins/LayerCatalog.js +45 -0
  365. package/plugins/LayerTree.js +15 -0
  366. package/plugins/LocateButton.js +10 -0
  367. package/plugins/Map.js +22 -0
  368. package/plugins/MapCompare.js +11 -0
  369. package/plugins/MapCopyright.js +11 -0
  370. package/plugins/MapExport.js +23 -0
  371. package/plugins/MapFilter.js +20 -0
  372. package/plugins/MapInfoTooltip.js +32 -0
  373. package/plugins/MapLegend.js +14 -0
  374. package/plugins/MapTip.js +15 -0
  375. package/plugins/Measure.js +10 -0
  376. package/plugins/NewsPopup.js +12 -0
  377. package/plugins/Panoramax.js +10 -0
  378. package/plugins/Portal.js +10 -0
  379. package/plugins/Print.js +22 -0
  380. package/plugins/ProcessNotifications.js +11 -0
  381. package/plugins/Redlining.js +12 -0
  382. package/plugins/Reports.js +15 -0
  383. package/plugins/Routing.js +23 -0
  384. package/plugins/ScratchDrawing.js +15 -0
  385. package/plugins/Settings.js +12 -0
  386. package/plugins/Share.js +11 -0
  387. package/plugins/StartupMarker.js +12 -0
  388. package/plugins/TaskButton.js +9 -0
  389. package/plugins/ThemeSwitcher.js +10 -0
  390. package/plugins/TimeManager.js +21 -0
  391. package/plugins/TopBar.js +13 -0
  392. package/plugins/ValueTool.js +11 -0
  393. package/plugins/View3D.js +34 -0
  394. package/plugins/ZoomButtons.js +11 -0
  395. package/plugins/map/EditingSupport.js +13 -0
  396. package/plugins/map/LocateSupport.js +14 -0
  397. package/plugins/map/MeasurementSupport.js +15 -0
  398. package/plugins/map/OverviewSupport.js +14 -0
  399. package/plugins/map/RedliningPickSupport.js +12 -0
  400. package/plugins/map/RedliningSupport.js +28 -0
  401. package/plugins/map/ScaleBarSupport.js +10 -0
  402. package/plugins/map/SnapInteraction.js +1 -0
  403. package/plugins/map/SnapSupport.js +7 -0
  404. package/plugins/map/SnappingSupport.js +23 -0
  405. package/plugins/map/style/OverviewSupport.css +42 -0
  406. package/plugins/map/style/ScaleBarSupport.css +18 -0
  407. package/plugins/map/style/SnappingSupport.css +33 -0
  408. package/plugins/redlining/RedliningBufferSupport.js +8 -0
  409. package/plugins/style/AttributeTable.css +220 -0
  410. package/plugins/style/Authentication.css +16 -0
  411. package/plugins/style/BackgroundSwitcher.css +99 -0
  412. package/plugins/style/Bookmark.css +62 -0
  413. package/plugins/style/BottomBar.css +53 -0
  414. package/plugins/style/Buttons.css +68 -0
  415. package/plugins/style/CookiePopup.css +24 -0
  416. package/plugins/style/Cyclomedia.css +66 -0
  417. package/plugins/style/Editing.css +40 -0
  418. package/plugins/style/FeatureForm.css +21 -0
  419. package/plugins/style/FeatureSearch.css +71 -0
  420. package/plugins/style/GeometryDigitizer.css +28 -0
  421. package/plugins/style/HeightProfile.css +26 -0
  422. package/plugins/style/Identify.css +4 -0
  423. package/plugins/style/LayerCatalog.css +8 -0
  424. package/plugins/style/LayerTree.css +316 -0
  425. package/plugins/style/Map.css +43 -0
  426. package/plugins/style/MapCompare.css +27 -0
  427. package/plugins/style/MapCopyright.css +17 -0
  428. package/plugins/style/MapExport.css +55 -0
  429. package/plugins/style/MapFilter.css +101 -0
  430. package/plugins/style/MapInfoTooltip.css +78 -0
  431. package/plugins/style/MapLegend.css +36 -0
  432. package/plugins/style/MapTip.css +22 -0
  433. package/plugins/style/Measure.css +23 -0
  434. package/plugins/style/NewsPopup.css +87 -0
  435. package/plugins/style/Panoramax.css +15 -0
  436. package/plugins/style/Portal.css +115 -0
  437. package/plugins/style/Print.css +116 -0
  438. package/plugins/style/ProcessNotifications.css +55 -0
  439. package/plugins/style/Redlining.css +101 -0
  440. package/plugins/style/Reports.css +11 -0
  441. package/plugins/style/Routing.css +243 -0
  442. package/plugins/style/ScratchDrawing.css +8 -0
  443. package/plugins/style/Settings.css +11 -0
  444. package/plugins/style/Share.css +59 -0
  445. package/plugins/style/ThemeSwitcher.css +7 -0
  446. package/plugins/style/TimeManager.css +91 -0
  447. package/plugins/style/TopBar.css +50 -0
  448. package/plugins/style/ValueTool.css +60 -0
  449. package/reducers/display.js +7 -0
  450. package/reducers/editing.js +8 -0
  451. package/reducers/index.js +7 -0
  452. package/reducers/layerinfo.js +7 -0
  453. package/reducers/layers.js +14 -0
  454. package/reducers/localConfig.js +8 -0
  455. package/reducers/locale.js +8 -0
  456. package/reducers/locate.js +8 -0
  457. package/reducers/map.js +11 -0
  458. package/reducers/measurement.js +8 -0
  459. package/reducers/processNotifications.js +7 -0
  460. package/reducers/redlining.js +7 -0
  461. package/reducers/redliningPick.js +7 -0
  462. package/reducers/serviceinfo.js +7 -0
  463. package/reducers/task.js +7 -0
  464. package/reducers/theme.js +7 -0
  465. package/reducers/windows.js +7 -0
  466. package/scripts/dist.sh +16 -0
  467. package/scripts/gen-plugin-docs.js +9 -0
  468. package/scripts/makeIconkit.js +7 -0
  469. package/scripts/package-commands.bat +8 -0
  470. package/scripts/package-commands.sh +22 -0
  471. package/scripts/themesConfig.js +48 -0
  472. package/scripts/themesConfig.py +659 -0
  473. package/scripts/translateui.sh +51 -0
  474. package/scripts/updateTranslations.js +17 -0
  475. package/scripts/wmts_config_generator.py +169 -0
  476. package/selectors/searchproviders.js +12 -0
  477. package/static/translations/bg-BG.json +709 -0
  478. package/static/translations/ca-ES.json +709 -0
  479. package/static/translations/cs-CZ.json +709 -0
  480. package/static/translations/de-CH.json +709 -0
  481. package/static/translations/de-DE.json +709 -0
  482. package/static/translations/en-US.json +709 -0
  483. package/static/translations/es-ES.json +709 -0
  484. package/static/translations/fi-FI.json +709 -0
  485. package/static/translations/fr-FR.json +709 -0
  486. package/static/translations/hu-HU.json +709 -0
  487. package/static/translations/it-IT.json +709 -0
  488. package/static/translations/ja-JP.json +709 -0
  489. package/static/translations/nl-NL.json +709 -0
  490. package/static/translations/no-NO.json +709 -0
  491. package/static/translations/pl-PL.json +709 -0
  492. package/static/translations/pt-BR.json +709 -0
  493. package/static/translations/pt-PT.json +709 -0
  494. package/static/translations/ro-RO.json +709 -0
  495. package/static/translations/ru-RU.json +709 -0
  496. package/static/translations/sv-SE.json +709 -0
  497. package/static/translations/tr-TR.json +709 -0
  498. package/static/translations/tsconfig.json +606 -0
  499. package/stores/StandardStore.js +8 -0
  500. package/utils/ConfigUtils.js +9 -0
  501. package/utils/CoordinatesUtils.js +29 -0
  502. package/utils/DxfUtils.js +10 -0
  503. package/utils/EditingInterface.js +67 -0
  504. package/utils/EditingUtils.js +11 -0
  505. package/utils/FeatureStyles.js +10 -0
  506. package/utils/IdentifyUtils.js +12 -0
  507. package/utils/ImageEditor.js +15 -0
  508. package/utils/LayerUtils.js +57 -0
  509. package/utils/LocaleUtils.js +9 -0
  510. package/utils/MapUtils.js +66 -0
  511. package/utils/MeasureUtils.js +9 -0
  512. package/utils/MiscUtils.js +15 -0
  513. package/utils/PermaLinkUtils.js +11 -0
  514. package/utils/ResourceRegistry.js +7 -0
  515. package/utils/RoutingInterface.js +12 -0
  516. package/utils/SearchProviders.js +19 -0
  517. package/utils/ServiceLayerUtils.js +20 -0
  518. package/utils/Signal.js +2 -0
  519. package/utils/ThemeUtils.js +12 -0
  520. package/utils/VectorLayerUtils.js +20 -0
  521. package/utils/expr_grammar/README.md +3 -0
  522. package/utils/expr_grammar/grammar.js +3 -0
  523. package/utils/expr_grammar/grammar.ne +118 -0
  524. package/utils/expr_grammar/test.js +13 -0
  525. package/utils/img/README.markers +1 -0
  526. package/utils/img/arrowhead.svg +4 -0
  527. package/utils/img/marker-icon.png +0 -0
  528. package/utils/img/measurehead.svg +4 -0
@@ -0,0 +1,14 @@
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 _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}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 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 _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)}/**
2
+ * Copyright 2015 GeoSolutions Sas
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */import isEmpty from"lodash.isempty";import{v4 as uuidv4}from"uuid";import{LayerRole,SET_LAYER_LOADING,ADD_LAYER,ADD_LAYER_SEPARATOR,REMOVE_LAYER,REORDER_LAYER,CHANGE_LAYER_PROPERTY,SET_LAYER_DIMENSIONS,ADD_LAYER_FEATURES,REMOVE_LAYER_FEATURES,CLEAR_LAYER,ADD_THEME_SUBLAYER,REFRESH_LAYER,REMOVE_ALL_LAYERS,REPLACE_PLACEHOLDER_LAYER,SET_SWIPE,SET_LAYERS,SET_FILTER}from"../actions/layers";import LayerUtils from"../utils/LayerUtils";import{UrlParams}from"../utils/PermaLinkUtils";import VectorLayerUtils from"../utils/VectorLayerUtils";var defaultState={flat:[],loading:[],swipe:null,filter:{filterParams:null,filterGeom:null,timeRange:null}};export default function layers(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case SET_LAYER_LOADING:{var loading=state.loading.filter(function(layerId){return layerId!==action.layerId});if(action.loading){loading.push(action.layerId)}return _objectSpread(_objectSpread({},state),{},{loading:loading})}case CHANGE_LAYER_PROPERTY:{var targetLayer=state.flat.find(function(layer){return layer.uuid===action.layerUuid});if(!targetLayer){return state}var backgroundVisibilityChanged=targetLayer.role===LayerRole.BACKGROUND&&action.property==="visibility";var parent=targetLayer;var parentPath=action.sublayerpath.slice(0,action.sublayerpath.length-1);parentPath.forEach(function(idx){parent=parent.sublayers[idx]});var mutexVisibilityChanged=parent.mutuallyExclusive&&action.property==="visibility";if(mutexVisibilityChanged&&action.newvalue===false){// Don't allow explicitly hiding item in mutex group - need to toggle other item
9
+ return state}var newLayers=(state.flat||[]).map(function(layer){if(layer.uuid===action.layerUuid){var _LayerUtils$cloneLaye=LayerUtils.cloneLayer(layer,action.sublayerpath||[]),newlayer=_LayerUtils$cloneLaye.newlayer,newsublayer=_LayerUtils$cloneLaye.newsublayer;newsublayer[action.property]=action.newvalue;var recurseDirection=action.recurseDirection;// Handle mutually exclusive groups
10
+ if(mutexVisibilityChanged){var newParent=newlayer;parentPath.forEach(function(index){newParent=newParent.sublayers[index]});var targetIdx=action.sublayerpath[action.sublayerpath.length-1];newParent.sublayers=newParent.sublayers.map(function(l,idx){return _objectSpread(_objectSpread({},l),{},{visibility:idx===targetIdx})})}if(["children","both"].includes(recurseDirection)){// recurse to children (except visibility to children in mutex case)
11
+ LayerUtils.propagateLayerProperty(newsublayer,action.property,action.newvalue)}if(["parents","both"].includes(recurseDirection)){// recurse to parents
12
+ LayerUtils.propagateLayerProperty(newlayer,action.property,action.newvalue,action.sublayerpath)}if(newlayer.type==="wms"){Object.assign(newlayer,LayerUtils.buildWMSLayerParams(newlayer,state.filter))}if(newlayer.role===LayerRole.BACKGROUND){UrlParams.updateParams({bl:newlayer.visibility?newlayer.name:""})}return newlayer}else if(layer.role===LayerRole.BACKGROUND&&backgroundVisibilityChanged){return _objectSpread(_objectSpread({},layer),{},{visibility:false})}return layer});UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(newLayers)});return _objectSpread(_objectSpread({},state),{},{flat:newLayers})}case SET_LAYER_DIMENSIONS:{var _newLayers=(state.flat||[]).map(function(layer){if(layer.id===action.layerId){var newLayer=_objectSpread(_objectSpread({},layer),{},{dimensionValues:action.dimensions});Object.assign(newLayer,LayerUtils.buildWMSLayerParams(newLayer,state.filter));return newLayer}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers})}case ADD_LAYER:{var _action$layer$visibil,_action$layer$opacity;var _newLayers2=(state.flat||[]).concat();var layerId=action.layer.id||uuidv4();var newLayer=_objectSpread(_objectSpread({},action.layer),{},{id:layerId,name:action.layer.name||layerId,role:action.layer.role||LayerRole.USERLAYER,queryable:action.layer.queryable||false,visibility:(_action$layer$visibil=action.layer.visibility)!==null&&_action$layer$visibil!==void 0?_action$layer$visibil:true,opacity:(_action$layer$opacity=action.layer.opacity)!==null&&_action$layer$opacity!==void 0?_action$layer$opacity:255,layertreehidden:action.layer.layertreehidden||action.layer.role>LayerRole.USERLAYER});LayerUtils.addUUIDs(newLayer);if(action.beforename){_newLayers2=LayerUtils.insertLayer(_newLayers2,newLayer,"name",action.beforename)}else{var inspos=0;if(action.pos===null){for(;inspos<_newLayers2.length&&newLayer.role<_newLayers2[inspos].role;++inspos);}else{inspos=action.pos}_newLayers2.splice(inspos,0,newLayer);// Compress layers if possible
13
+ _newLayers2=LayerUtils.implodeLayers(LayerUtils.explodeLayers(_newLayers2))}var _iterator=_createForOfIteratorHelper(_newLayers2),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var lyr=_step.value;if(lyr.type==="wms"){Object.assign(lyr,LayerUtils.buildWMSLayerParams(lyr,state.filter))}}}catch(err){_iterator.e(err)}finally{_iterator.f()}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers2)});if(newLayer.role===LayerRole.BACKGROUND&&newLayer.visibility){UrlParams.updateParams({bl:newLayer.name})}return _objectSpread(_objectSpread({},state),{},{flat:_newLayers2})}case ADD_LAYER_SEPARATOR:{var _newLayers3=LayerUtils.insertSeparator(state.flat,action.title,action.afterLayerId,action.afterSublayerPath);var _iterator2=_createForOfIteratorHelper(_newLayers3),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var layer=_step2.value;if(layer.type==="wms"){Object.assign(layer,LayerUtils.buildWMSLayerParams(layer,state.filter))}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers3)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers3})}case REMOVE_LAYER:{var _layer=state.flat.find(function(l){return l.id===action.layerId});if(!_layer){return state}var _newLayers4=state.flat;if(_layer.role===LayerRole.BACKGROUND||isEmpty(action.sublayerpath)){var position=state.flat.findIndex(function(l){return l.id===action.layerId});_newLayers4=_toConsumableArray(_newLayers4);_newLayers4.splice(position,1);if(position>0&&position<_newLayers4.length&&_newLayers4[position-1].id===_newLayers4[position].id){// Compress layers
14
+ _newLayers4=LayerUtils.implodeLayers(LayerUtils.explodeLayers(_newLayers4))}}else{_newLayers4=LayerUtils.removeLayer(state.flat,_layer,action.sublayerpath).map(function(l){if(l.type==="wms"){return _objectSpread(_objectSpread({},l),LayerUtils.buildWMSLayerParams(l,state.filter))}else{return l}})}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers4)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers4})}case ADD_LAYER_FEATURES:{var _layerId=action.layer.id||uuidv4();var _newLayers5=(state.flat||[]).concat();var idx=_newLayers5.findIndex(function(layer){return layer.id===_layerId});if(idx===-1){var newFeatures=action.features.map(function(f){return _objectSpread(_objectSpread({},f),{},{id:f.id||(f.properties||{}).id||uuidv4()})});var _newLayer=_objectSpread(_objectSpread({},action.layer),{},{id:_layerId,type:"vector",name:action.layer.name||_layerId,uuid:uuidv4(),features:newFeatures,role:action.layer.role||LayerRole.USERLAYER,queryable:action.layer.queryable||false,visibility:action.layer.visibility||true,opacity:action.layer.opacity||255,layertreehidden:action.layer.layertreehidden||action.layer.role>LayerRole.USERLAYER,bbox:VectorLayerUtils.computeFeaturesBBox(action.features)});var _inspos=0;for(;_inspos<_newLayers5.length&&_newLayer.role<_newLayers5[_inspos].role;++_inspos);_newLayers5.splice(_inspos,0,_newLayer)}else{var addFeatures=action.features.map(function(f){return _objectSpread(_objectSpread({},f),{},{id:f.id||(f.properties||{}).id||uuidv4()})});var _newFeatures=action.clear?addFeatures:[].concat(_toConsumableArray((_newLayers5[idx].features||[]).filter(function(f){return!addFeatures.find(function(g){return g.id===f.id})})),_toConsumableArray(addFeatures));_newLayers5[idx]=_objectSpread(_objectSpread({},_newLayers5[idx]),{},{features:_newFeatures,bbox:VectorLayerUtils.computeFeaturesBBox(_newFeatures),rev:action.layer.rev})}return _objectSpread(_objectSpread({},state),{},{flat:_newLayers5})}case REMOVE_LAYER_FEATURES:{var changed=false;var _newLayers6=(state.flat||[]).reduce(function(result,layer){if(layer.id===action.layerId){var _newFeatures2=(layer.features||[]).filter(function(f){return action.featureIds.includes(f.id)===false});if(!isEmpty(_newFeatures2)||action.keepEmptyLayer){result.push(_objectSpread(_objectSpread({},layer),{},{features:_newFeatures2,bbox:VectorLayerUtils.computeFeaturesBBox(_newFeatures2)}))}changed=true}else{result.push(layer)}return result},[]);if(changed){return _objectSpread(_objectSpread({},state),{},{flat:_newLayers6})}else{return state}}case CLEAR_LAYER:{var _newLayers7=(state.flat||[]).map(function(layer){if(layer.id===action.layerId){return _objectSpread(_objectSpread({},layer),{},{features:[],bbox:null})}else{return layer}});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers7})}case ADD_THEME_SUBLAYER:{var themeLayerIdx=state.flat.findIndex(function(layer){return layer.role===LayerRole.THEME});if(themeLayerIdx>=0){var _newLayers8=state.flat.slice(0);_newLayers8[themeLayerIdx]=LayerUtils.mergeSubLayers(state.flat[themeLayerIdx],action.layer);_newLayers8[themeLayerIdx].visibility=true;var _iterator3=_createForOfIteratorHelper(_newLayers8),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var _lyr=_step3.value;if(_lyr.type==="wms"){Object.assign(_lyr,LayerUtils.buildWMSLayerParams(_lyr,state.filter))}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers8)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers8})}return state}case REFRESH_LAYER:{var _newLayers9=(state.flat||[]).map(function(layer){if(action.filter(layer)){return _objectSpread(_objectSpread({},layer),{},{rev:+new Date})}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers9})}case REMOVE_ALL_LAYERS:{return _objectSpread(_objectSpread({},state),{},{flat:[],swipe:null})}case REORDER_LAYER:{var _newLayers10=LayerUtils.reorderLayer(state.flat,action.layer,action.sublayerpath,action.direction,action.preventSplittingGroups).map(function(layer){if(layer.type==="wms"){return _objectSpread(_objectSpread({},layer),LayerUtils.buildWMSLayerParams(layer,state.filter))}else{return layer}});UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers10)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers10})}case REPLACE_PLACEHOLDER_LAYER:{var _newLayers11=state.flat||[];if(action.layer){_newLayers11=_newLayers11.map(function(layer){if(layer.type==="placeholder"&&layer.id===action.id){var _newLayer2=_objectSpread(_objectSpread(_objectSpread({},layer),action.layer),{},{role:layer.role,id:layer.id,uuid:layer.uuid});delete _newLayer2.loading;LayerUtils.addUUIDs(_newLayer2);if(_newLayer2.type==="wms"){Object.assign(_newLayer2,LayerUtils.buildWMSLayerParams(_newLayer2,state.filter))}return _newLayer2}else{return layer}})}else{_newLayers11=_newLayers11.filter(function(layer){return!(layer.type==="placeholder"&&layer.id===action.id)})}UrlParams.updateParams({l:LayerUtils.buildWMSLayerUrlParam(_newLayers11)});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers11})}case SET_SWIPE:{return _objectSpread(_objectSpread({},state),{},{swipe:action.swipe})}case SET_LAYERS:{return _objectSpread(_objectSpread({},state),{},{flat:action.layers})}case SET_FILTER:{var filter={filterParams:action.filter,filterGeom:action.filterGeom,timeRange:action.timeRange};var _newLayers12=state.flat.map(function(layer){if(layer.type==="wms"){return _objectSpread(_objectSpread({},layer),LayerUtils.buildWMSLayerParams(layer,filter))}return layer});return _objectSpread(_objectSpread({},state),{},{flat:_newLayers12,filter:filter})}default:return state}}
@@ -0,0 +1,8 @@
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 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 _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)}/**
2
+ * Copyright 2016 GeoSolutions Sas
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */import{LOCAL_CONFIG_LOADED,SET_STARTUP_PARAMETERS,SET_COLOR_SCHEME,SET_USER_INFO_FIELDS,SET_PERMALINK_PARAMETERS,REGISTER_CUSTOM_PLUGIN,UNREGISTER_CUSTOM_PLUGIN}from"../actions/localConfig";import ConfigUtils from"../utils/ConfigUtils";import{UrlParams}from"../utils/PermaLinkUtils";var defaultState=_objectSpread(_objectSpread({},ConfigUtils.getDefaults()),{},{customPlugins:[],startupParams:{},startupState:{},permalinkParams:{},colorScheme:"default"});export default function localConfig(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case LOCAL_CONFIG_LOADED:{return _objectSpread(_objectSpread({},state),action.config)}case SET_STARTUP_PARAMETERS:{return _objectSpread(_objectSpread({},state),{},{startupParams:action.params,startupState:action.state})}case SET_COLOR_SCHEME:{var root=document.querySelector(":root");if(state.colorScheme){root.classList.remove(state.colorScheme)}var newColorScheme=action.colorScheme||state.defaultColorScheme||"default";if(newColorScheme){root.classList.add(newColorScheme)}if(UrlParams.getParam("style")){UrlParams.updateParams({style:newColorScheme})}if(action.storeInLocalStorage){localStorage.setItem("qwc2-color-scheme",newColorScheme)}return _objectSpread(_objectSpread({},state),{},{colorScheme:newColorScheme})}case SET_USER_INFO_FIELDS:{return _objectSpread(_objectSpread({},state),{},{user_infos:_objectSpread(_objectSpread({},state.user_infos),action.fields)})}case SET_PERMALINK_PARAMETERS:{return _objectSpread(_objectSpread({},state),{},{permalinkParams:Object.entries(_objectSpread(_objectSpread({},state.permalinkParams),action.params)).reduce(function(res,_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];if(value!==undefined){res[key]=value}return res},{})})}case REGISTER_CUSTOM_PLUGIN:{return _objectSpread(_objectSpread({},state),{},{customPlugins:[].concat(_toConsumableArray(state.customPlugins),_toConsumableArray(action.name))})}case UNREGISTER_CUSTOM_PLUGIN:{return _objectSpread(_objectSpread({},state),{},{customPlugins:state.customPlugins.filter(function(el){return el!==action.name})})}default:return state}}
@@ -0,0 +1,8 @@
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 _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)}/**
2
+ * Copyright 2015 GeoSolutions Sas
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */import{flatten}from"flat";import{CHANGE_LOCALE,ADD_TRANSLATIONS}from"../actions/locale";var defaultState={messages:{},fallbackMessages:{},current:null};export default function locale(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case CHANGE_LOCALE:{return{messages:flatten(action.messages),fallbackMessages:flatten(action.fallbackMessages),current:action.locale}}case ADD_TRANSLATIONS:{return _objectSpread(_objectSpread({},state),{},{messages:_objectSpread(_objectSpread({},state.messages),flatten(action.translations[state.current]||{}))})}default:return state}}
@@ -0,0 +1,8 @@
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 _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)}/**
2
+ * Copyright 2015 GeoSolutions Sas
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */import{CHANGE_LOCATE_STATE,CHANGE_LOCATE_POSITION,LOCATE_ERROR}from"../actions/locate";var defaultState={state:"DISABLED",position:null};export default function locate(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case CHANGE_LOCATE_STATE:{return _objectSpread(_objectSpread({},state),{},{state:action.state})}case CHANGE_LOCATE_POSITION:{return _objectSpread(_objectSpread({},state),{},{position:action.position})}case LOCATE_ERROR:{return _objectSpread(_objectSpread({},state),{},{error:action.error})}default:return state}}
@@ -0,0 +1,11 @@
1
+ var _excluded=["type"];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 _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n]}return t}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 _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)}/**
2
+ * Copyright 2015 GeoSolutions Sas
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */import isEmpty from"lodash.isempty";import{CHANGE_MAP_VIEW,CONFIGURE_MAP,CHANGE_ZOOM_LVL,ZOOM_TO_EXTENT,ZOOM_TO_POINT,PAN_TO,CHANGE_ROTATION,CLICK_ON_MAP,TOGGLE_MAPTIPS,SET_DISPLAY_CRS,SET_SNAPPING_CONFIG}from"../actions/map";import ConfigUtils from"../utils/ConfigUtils";import CoordinatesUtils from"../utils/CoordinatesUtils";import MapUtils from"../utils/MapUtils";import{UrlParams}from"../utils/PermaLinkUtils";var defaultState={bbox:{bounds:[0,0,0,0],rotation:0},center:[0,0],dpi:MapUtils.DEFAULT_SCREEN_DPI,projection:"EPSG:3857",displayCrs:"EPSG:3857",zoom:0,scales:[0],resolutions:[0],click:null,size:null,snapping:{enabled:false,active:false}};export default function map(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;// Always reset mapStateSource, CHANGE_MAP_VIEW will set it if necessary
9
+ if(state.mapStateSource){state=_objectSpread(_objectSpread({},state),{},{mapStateSource:null})}switch(action.type){case CHANGE_MAP_VIEW:{// eslint-disable-next-line
10
+ var type=action.type,params=_objectWithoutProperties(action,_excluded);var newState=_objectSpread(_objectSpread({},state),params);var newParams={};var positionFormat=ConfigUtils.getConfigProp("urlPositionFormat");var positionCrs=ConfigUtils.getConfigProp("urlPositionCrs")||newState.projection;var prec=CoordinatesUtils.getPrecision(positionCrs);if(positionFormat==="centerAndZoom"){var center=CoordinatesUtils.reproject(newState.center,newState.projection,positionCrs);var scale=Math.round(MapUtils.computeForZoom(newState.scales,newState.zoom));Object.assign(newParams,{c:center.map(function(x){return x.toFixed(prec)}).join(","),s:scale})}else{var bounds=CoordinatesUtils.reprojectBbox(newState.bbox.bounds,newState.projection,positionCrs);Object.assign(newParams,{e:bounds.map(function(x){return x.toFixed(prec)}).join(",")})}if(positionCrs!==newState.projection){Object.assign(newParams,{crs:positionCrs})}if(!isEmpty(newParams)){UrlParams.updateParams(newParams)}return newState}case CONFIGURE_MAP:{var resolutions=MapUtils.getResolutionsForScales(action.scales,action.crs,state.dpi);var _bounds;var _center;var zoom;if(action.view.center){_center=CoordinatesUtils.reproject(action.view.center,action.view.crs||action.crs,action.crs);zoom=action.view.zoom;_bounds=MapUtils.getExtentForCenterAndZoom(_center,zoom,resolutions,state.size)}else{_bounds=CoordinatesUtils.reprojectBbox(action.view.bounds,action.view.crs||state.projection,action.crs);_center=[0.5*(_bounds[0]+_bounds[2]),0.5*(_bounds[1]+_bounds[3])];zoom=MapUtils.getZoomForExtent(_bounds,resolutions,state.size,0,action.scales.length-1)}return _objectSpread(_objectSpread({},state),{},{bbox:_objectSpread(_objectSpread({},state.bbox),{},{bounds:_bounds}),center:_center,zoom:zoom,projection:action.crs,displayCrs:action.crs,scales:action.scales,resolutions:resolutions})}case CHANGE_ZOOM_LVL:{return _objectSpread(_objectSpread({},state),{},{zoom:action.zoom})}case ZOOM_TO_EXTENT:{// Ugh...
11
+ var topbarHeight=parseFloat(document.querySelector(":root").style.getPropertyValue("--topbar-height").replace(/px$/,""));var bottombarHeight=parseFloat(document.querySelector(":root").style.getPropertyValue("--bottombar-height").replace(/px$/,""));var _bounds2=CoordinatesUtils.reprojectBbox(action.extent,action.crs||state.projection,state.projection);var padding=(topbarHeight+bottombarHeight)/state.size.height;var width=_bounds2[2]-_bounds2[0];var height=_bounds2[3]-_bounds2[1];_bounds2[0]-=padding*width;_bounds2[2]+=padding*width;_bounds2[1]-=padding*height;_bounds2[3]+=padding*height;return _objectSpread(_objectSpread({},state),{},{center:[0.5*(_bounds2[0]+_bounds2[2]),0.5*(_bounds2[1]+_bounds2[3])],zoom:MapUtils.getZoomForExtent(_bounds2,state.resolutions,state.size,0,state.scales.length-1)+action.zoomOffset,bbox:_objectSpread(_objectSpread({},state.bbox),{},{bounds:_bounds2})})}case ZOOM_TO_POINT:{return _objectSpread(_objectSpread({},state),{},{center:CoordinatesUtils.reproject(action.pos,action.crs||state.projection,state.projection),zoom:action.zoom})}case PAN_TO:{return _objectSpread(_objectSpread({},state),{},{center:CoordinatesUtils.reproject(action.pos,action.crs||state.projection,state.projection)})}case CHANGE_ROTATION:{return _objectSpread(_objectSpread({},state),{},{bbox:_objectSpread(_objectSpread({},state.bbox),{},{rotation:action.rotation})})}case CLICK_ON_MAP:{return _objectSpread(_objectSpread({},state),{},{click:action.click})}case TOGGLE_MAPTIPS:{return _objectSpread(_objectSpread({},state),{},{maptips:action.active})}case SET_SNAPPING_CONFIG:{return _objectSpread(_objectSpread({},state),{},{snapping:{enabled:action.enabled,active:action.active}})}case SET_DISPLAY_CRS:{return _objectSpread(_objectSpread({},state),{},{displayCrs:action.displayCrs})}default:return state}}
@@ -0,0 +1,8 @@
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 _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)}/**
2
+ * Copyright 2015 GeoSolutions Sas
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */import{CHANGE_MEASUREMENT_STATE}from"../actions/measurement";var defaultState={geomType:null,coordinates:null,length:null,area:0,bearing:0,lenUnit:"metric",areaUnit:"metric"};export default function measurement(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case CHANGE_MEASUREMENT_STATE:{return _objectSpread({lenUnit:state.lenUnit,areaUnit:state.areaUnit},action.data)}default:return state}}
@@ -0,0 +1,7 @@
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 _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)}/**
2
+ * Copyright 2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{PROCESS_STARTED,PROCESS_FINISHED,CLEAR_PROCESS,ProcessStatus}from"../actions/processNotifications";var defaultState={processes:{}};export default function processNotifications(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case PROCESS_STARTED:{return _objectSpread(_objectSpread({},state),{},{processes:_objectSpread(_objectSpread({},state.processes),{},_defineProperty({},action.id,{id:action.id,name:action.name,status:ProcessStatus.BUSY}))})}case PROCESS_FINISHED:{return _objectSpread(_objectSpread({},state),{},{processes:_objectSpread(_objectSpread({},state.processes),{},_defineProperty({},action.id,_objectSpread(_objectSpread({},state.processes[action.id]),{},{status:action.success?ProcessStatus.SUCCESS:ProcessStatus.FAILURE,message:action.message,timeout:action.timeout})))})}case CLEAR_PROCESS:{var newState=_objectSpread(_objectSpread({},state),{},{processes:_objectSpread({},state.processes)});delete newState.processes[action.id];return newState}default:return state}}
@@ -0,0 +1,7 @@
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 _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)}/**
2
+ * Copyright 2017-2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{CHANGE_REDLINING_STATE,RESET_REDLINING_STATE}from"../actions/redlining";var defaultState={action:null,geomType:null,style:{borderColor:[255,0,0,1],fillColor:[255,255,255,1],size:2,text:"",textOutlineColor:[255,255,255,1],textFillColor:[0,0,0,1]},layer:null,layerTitle:null,selectedFeature:null,drawMultiple:true,freehand:false,measurements:false,numericInput:false,lenUnit:"metric",areaUnit:"metric"};export default function redlining(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case CHANGE_REDLINING_STATE:{return _objectSpread(_objectSpread(_objectSpread({},state),action.data),{},{style:_objectSpread(_objectSpread({},state.style),action.data.style)})}case RESET_REDLINING_STATE:{return defaultState}default:return state}}
@@ -0,0 +1,7 @@
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 _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)}/**
2
+ * Copyright 2018-2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{CHANGE_REDLINING_PICK_STATE}from"../actions/redliningPick";var defaultState={active:false,selectedFeatures:[],layer:"redlining"};export default function redliningPick(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case CHANGE_REDLINING_PICK_STATE:{return _objectSpread(_objectSpread({},state),action.data)}default:return state}}
@@ -0,0 +1,7 @@
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 _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)}/**
2
+ * Copyright 2020-2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{SET_ACTIVE_SERVICEINFO}from"../actions/serviceinfo";var defaultState={};export default function serviceInfo(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case SET_ACTIVE_SERVICEINFO:{return _objectSpread(_objectSpread({},state),{},{service:action.service})}default:return state}}
@@ -0,0 +1,7 @@
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 _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)}/**
2
+ * Copyright 2016-2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{SET_CURRENT_TASK,SET_CURRENT_TASK_BLOCKED}from"../actions/task";var defaultState={id:null,mode:null,data:null,blocked:false,unsetOnMapClick:false,identifyEnabled:true};export default function task(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case SET_CURRENT_TASK:{if(state.blocked){return state}return _objectSpread(_objectSpread({},state),{},{id:action.id,mode:action.mode,data:action.data,unsetOnMapClick:action.unsetOnMapClick,identifyEnabled:action.identifyEnabled})}case SET_CURRENT_TASK_BLOCKED:{return _objectSpread(_objectSpread({},state),{},{blocked:action.blocked})}default:return state}}
@@ -0,0 +1,7 @@
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 _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)}/**
2
+ * Copyright 2016-2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{THEMES_LOADED,SET_THEME_LAYERS_LIST,SET_CURRENT_THEME,SWITCHING_THEME}from"../actions/theme";import{UrlParams}from"../utils/PermaLinkUtils";var defaultState={current:null,themelist:null,switching:false};export default function theme(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case SWITCHING_THEME:{return _objectSpread(_objectSpread({},state),{},{switching:action.switching})}case THEMES_LOADED:{return _objectSpread(_objectSpread({},state),{},{themes:action.themes})}case SET_THEME_LAYERS_LIST:{return _objectSpread(_objectSpread({},state),{},{themelist:action.themelist})}case SET_CURRENT_THEME:{UrlParams.updateParams({t:action.theme.id});return _objectSpread(_objectSpread({},state),{},{current:action.theme})}default:return state}}
@@ -0,0 +1,7 @@
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 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 _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)}/**
2
+ * Copyright 2020-2024 Sourcepole AG
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under the BSD-style license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */import{SHOW_IFRAME_DIALOG,SHOW_NOTIFICATION,CLOSE_WINDOW,CLOSE_ALL_WINDOWS,REGISTER_WINDOW,UNREGISTER_WINDOW,RAISE_WINDOW,SET_SPLIT_SCREEN,SET_MENU_MARGIN,SET_TOPBAR_HEIGHT,SET_BOTTOMBAR_HEIGHT}from"../actions/windows";var defaultState={stacking:[],splitScreen:{},mapMargins:{left:0,top:0,right:0,bottom:0},windowMargins:{left:0,top:0,right:0,bottom:0},menuMargins:{left:0,right:0},topbarHeight:0,bottombarHeight:0,entries:{}};function computeMapMargins(windowMargins,menuMargins){return{left:windowMargins.left+menuMargins.left,top:windowMargins.top,right:windowMargins.right+menuMargins.right,bottom:windowMargins.bottom,splitTopAndBottomBar:windowMargins.splitTopAndBottomBar}}export default function windows(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case SHOW_IFRAME_DIALOG:{return _objectSpread(_objectSpread({},state),{},{entries:_objectSpread(_objectSpread({},state.entries),{},_defineProperty({},action.name,{type:"iframedialog",url:action.url,options:action.options||{}}))})}case SHOW_NOTIFICATION:{return _objectSpread(_objectSpread({},state),{},{entries:_objectSpread(_objectSpread({},state.entries),{},_defineProperty({},action.name,{type:"notification",text:action.text,notificationType:action.notificationType,sticky:action.sticky}))})}case CLOSE_WINDOW:{var newState=_objectSpread(_objectSpread({},state),{},{entries:_objectSpread({},state.entries)});delete newState.entries[action.name];return newState}case CLOSE_ALL_WINDOWS:{return _objectSpread(_objectSpread({},state),{},{entries:Object.entries(state.entries).reduce(function(res,_ref){var _ref2=_slicedToArray(_ref,2),name=_ref2[0],entry=_ref2[1];if(entry.sticky){res[name]=entry}return res},{})})}case REGISTER_WINDOW:{return _objectSpread(_objectSpread({},state),{},{stacking:[].concat(_toConsumableArray(state.stacking),[action.id])})}case UNREGISTER_WINDOW:{return _objectSpread(_objectSpread({},state),{},{stacking:state.stacking.filter(function(x){return x!==action.id})})}case RAISE_WINDOW:{return _objectSpread(_objectSpread({},state),{},{stacking:[].concat(_toConsumableArray(state.stacking.filter(function(x){return x!==action.id})),[action.id])})}case SET_SPLIT_SCREEN:{var newSplitScreen=_objectSpread({},state.splitScreen);if(action.side===null){delete newSplitScreen[action.windowId]}else{newSplitScreen[action.windowId]={side:action.side,size:action.size,splitTopAndBottomBar:action.splitTopAndBottomBar}}var splitWindows=Object.values(newSplitScreen);var windowMargins={right:splitWindows.filter(function(entry){return entry.side==="right"}).reduce(function(res,e){return Math.max(e.size,res)},0),bottom:splitWindows.filter(function(entry){return entry.side==="bottom"}).reduce(function(res,e){return Math.max(e.size,res)},0),left:splitWindows.filter(function(entry){return entry.side==="left"}).reduce(function(res,e){return Math.max(e.size,res)},0),top:splitWindows.filter(function(entry){return entry.side==="top"}).reduce(function(res,e){return Math.max(e.size,res)},0),splitTopAndBottomBar:splitWindows.find(function(x){return x.splitTopAndBottomBar===true})};return _objectSpread(_objectSpread({},state),{},{splitScreen:newSplitScreen,windowMargins:windowMargins,mapMargins:computeMapMargins(windowMargins,state.menuMargins)})}case SET_MENU_MARGIN:{var menuMargins={right:action.right,left:action.left};return _objectSpread(_objectSpread({},state),{},{menuMargins:menuMargins,mapMargins:computeMapMargins(state.windowMargins,menuMargins)})}case SET_TOPBAR_HEIGHT:{return _objectSpread(_objectSpread({},state),{},{topbarHeight:action.height})}case SET_BOTTOMBAR_HEIGHT:{return _objectSpread(_objectSpread({},state),{},{bottombarHeight:action.height})}default:return state}}
@@ -0,0 +1,16 @@
1
+ #/bin/bash
2
+
3
+ rm -rf dist
4
+ for dir in actions components libs plugins reducers scripts selectors stores utils;
5
+ do
6
+ mkdir -p dist/$dir
7
+ npx babel $dir --copy-files --out-dir dist/$dir --extensions ".js,.jsx" --minified
8
+ done
9
+ mkdir -p dist/static/translations
10
+ mkdir -p dist/icons
11
+ cp -a icons/*.svg dist/icons/
12
+ cp -a static/translations/*.json dist/static/translations/
13
+ cp -a {package.json,LICENSE,README.md} dist/
14
+
15
+ echo "Ready to publish!"
16
+ echo "Run publish in the dist folder to publish the package."
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Copyright 2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */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}var fs=require("fs");var path=require("path");var reactDocs=require("react-docgen");var qwcPluginDir=__dirname+"/../plugins";var pluginData=[];fs.readdirSync(qwcPluginDir).forEach(function(entry){if(entry.endsWith(".jsx")){var file=path.resolve(qwcPluginDir,entry);var contents=fs.readFileSync(file);pluginData.push(reactDocs.parse(contents,reactDocs.resolver.findAllComponentDefinitions))}});fs.readdirSync(qwcPluginDir+"/map").forEach(function(entry){if(entry.endsWith(".jsx")){var file=path.resolve(qwcPluginDir,"map",entry);var contents=fs.readFileSync(file);pluginData.push(reactDocs.parse(contents,reactDocs.resolver.findAllComponentDefinitions))}});pluginData=pluginData.flat();function parsePropType(type){if(type.name==="shape"){return"{\n"+Object.entries(type.value).map(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];return" "+key+": "+parsePropType(value)+",\n"}).join("")+"}"}else if(type.name==="arrayOf"){return"["+parsePropType(type.value)+"]"}else if(type.name==="union"){return"{"+type.value.map(function(entry){return parsePropType(entry)}).join(", ")+"}"}else{return type.name}}// Write markdown output
9
+ var output="";output+="Plugin reference\n";output+="================\n";output+="\n";pluginData.forEach(function(plugin){if(!plugin.description){return}output+="* [".concat(plugin.displayName,"](#").concat(plugin.displayName.toLowerCase(),")\n")});output+="\n";output+="---\n";pluginData.forEach(function(plugin){if(!plugin.description){return}output+="".concat(plugin.displayName,"<a name=\"").concat(plugin.displayName.toLowerCase(),"\"></a>\n");output+="----------------------------------------------------------------\n";output+=plugin.description+"\n\n";var props=Object.entries(plugin.props||{}).filter(function(entry){return entry[1].description});if(props.length>0){output+="| Property | Type | Description | Default value |\n";output+="|----------|------|-------------|---------------|\n";props.forEach(function(_ref3){var _ref4=_slicedToArray(_ref3,2),name=_ref4[0],prop=_ref4[1];if(!prop.description){return}var defaultValue=prop.defaultValue?prop.defaultValue.value.split("\n").map(function(x){return"`"+x.replace(" ","\xA0")+"`"}).join("<br />"):"`undefined`";var type="`"+parsePropType(prop.type).replaceAll(" ","\xA0").replaceAll("\n","`<br />`")+"`";output+="| ".concat(name," | ").concat(type," | ").concat(prop.description.replaceAll("\n","<br />")," | ").concat(defaultValue," |\n")});output+="\n"}plugin.methods.forEach(function(method){if(method.docblock){var params=method.params.map(function(param){return param.name}).join(",");output+="**".concat(method.name,"(").concat(params,")**\n\n");output+=(method.docblock||"")+"\n";output+="\n"}})});fs.writeFileSync(__dirname+"/../doc/plugins.md",output);/* eslint-disable-next-line */console.log("Plugin documentation written to doc/src/plugins.md!");
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ var _packageJson$dependen;function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}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}var webfontsGenerator=require("@furkot/webfonts-generator");var glob=require("glob");var mkdirp=require("mkdirp");var fs=require("fs");var path=require("path");var readJSON=function readJSON(filename){try{return JSON.parse(fs.readFileSync(process.cwd()+filename,"utf8"))}catch(e){return{}}};// Determine workspaces / dependencies
3
+ var packageJson=readJSON("/package.json");var workspaces=packageJson.workspaces||[];var qwcDeps=Object.keys((_packageJson$dependen=packageJson.dependencies)!==null&&_packageJson$dependen!==void 0?_packageJson$dependen:{"qwc2":"0"}).filter(function(dep){return dep.startsWith("qwc")});var icons=[];var _iterator=_createForOfIteratorHelper(workspaces),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var workspace=_step.value;icons=icons.concat(glob.sync(workspace+"/icons/*.svg"))}}catch(err){_iterator.e(err)}finally{_iterator.f()}var _iterator2=_createForOfIteratorHelper(qwcDeps),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var qwcDep=_step2.value;icons=icons.concat(glob.sync("node_modules/"+qwcDep+"/icons/*.svg"))}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}icons=icons.concat(glob.sync("icons/*.svg"));// Filter duplicate icons (user icons can override submodule icons, hence reverse)
4
+ icons.reverse();var uniqueIcons=new Set;icons=icons.filter(function(icon){var iconName=path.basename(icon);if(uniqueIcons.has(iconName)){// eslint-disable-next-line
5
+ console.log("* "+icon+" was overriden");return false}uniqueIcons.add(iconName);return true});mkdirp.sync("icons/build");webfontsGenerator({files:icons,dest:"icons/build",fontName:"qwc2-icons",templateOptions:{classPrefix:"icon-",baseSelector:".icon"},types:["woff"],fontHeight:1000},function(error){if(error){// eslint-disable-next-line
6
+ console.log("Fail!",error)}else{// eslint-disable-next-line
7
+ console.log("Done!")}});
@@ -0,0 +1,8 @@
1
+ @echo off
2
+
3
+ IF "%1"=="release" (
4
+ echo "This command is not available on Windows"
5
+ Exit /B 0
6
+ )
7
+ echo "Missing or unrecognized command"
8
+ Exit /B 1
@@ -0,0 +1,22 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ if [ "$1" == "release" ]; then
5
+ name=$(grep -oP '"name":\s*"\K(.*)(?=")' package.json)
6
+ version=$(grep -oP '"version":\s*"\K(.*)(?=")' package.json)
7
+ rm -f ${name}-${version}_appbundle.zip ${name}-${version}_source.zip
8
+
9
+ npm run prod
10
+ ln -s prod ${name}-${version}_appbundle
11
+ zip -r ${name}-${version}_appbundle.zip ${name}-${version}_appbundle
12
+ rm ${name}-${version}_appbundle
13
+
14
+ (
15
+ git ls-files
16
+ git submodule foreach --recursive --quiet 'git ls-files --with-tree="$sha1" | sed "s|^|$toplevel/$path/|"' | sed "s|^$PWD/||g"
17
+ ) | grep -v '.gitignore' | grep -v '.gitmodules' | zip -@ ${name}-${version}_source.zip
18
+
19
+ exit 0
20
+ fi
21
+ echo "Missing or unrecognized command"
22
+ exit 1
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Copyright 2016-2024 Sourcepole AG
4
+ * All rights reserved.
5
+ *
6
+ * This source code is licensed under the BSD-style license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */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 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 _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)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}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 _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)}var urlUtil=require("url");var axios=require("axios");var XMLParser=require("fast-xml-parser").XMLParser;var fs=require("fs");var path=require("path");var objectPath=require("object-path");var isEmpty=require("lodash.isempty");var uuidv1=require("uuid").v1;var os=require("os");var dns=require("dns");var _dns$promises=dns.promises,lookup=_dns$promises.lookup,lookupService=_dns$promises.lookupService;var hostFqdn="";var themesConfigPath=process.env.QWC2_THEMES_CONFIG||"static/themesConfig.json";var usedThemeIds=[];var autogenExternalLayers=[];function uniqueThemeId(themeName){if(!themeName){return uuidv1()}if(usedThemeIds.includes(themeName)){var i=1;for(;usedThemeIds.includes(themeName+i);++i);usedThemeIds.push(themeName+i);return themeName+i}else{usedThemeIds.push(themeName);return themeName}}// load thumbnail from file or GetMap
9
+ function getThumbnail(configItem,resultItem,layers,crs,extent,resolve,proxy){if(configItem.thumbnail!==undefined){// check if thumbnail can be read
10
+ if(fs.existsSync("./static/assets/img/mapthumbs/"+configItem.thumbnail)){resultItem.thumbnail="img/mapthumbs/"+configItem.thumbnail;// finish task
11
+ resolve(true);return}}/* eslint-disable-next-line */console.error("Using WMS GetMap to generate thumbnail for "+configItem.url);// WMS GetMap request
12
+ var parsedUrl=urlUtil.parse(urlUtil.resolve(hostFqdn,configItem.url),true);parsedUrl.search="";parsedUrl.query.SERVICE="WMS";parsedUrl.query.VERSION="1.3.0";parsedUrl.query.REQUEST="GetMap";parsedUrl.query.FORMAT="image/png";parsedUrl.query.TRANSPARENT="TRUE";parsedUrl.query.STYLES="";parsedUrl.query.WIDTH=200;parsedUrl.query.HEIGHT=100;parsedUrl.query.CRS=crs;var bboxw=extent[2]-extent[0];var bboxh=extent[3]-extent[1];var bboxcx=0.5*(extent[0]+extent[2]);var bboxcy=0.5*(extent[1]+extent[3]);var imgratio=200/100;if(bboxw>bboxh){var bboxratio=bboxw/bboxh;if(bboxratio>imgratio){bboxh=bboxw/imgratio}else{bboxw=bboxh*imgratio}}else{bboxw=bboxh*imgratio}var adjustedExtent=[bboxcx-0.5*bboxw,bboxcy-0.5*bboxh,bboxcx+0.5*bboxw,bboxcy+0.5*bboxh];parsedUrl.query.BBOX=adjustedExtent.join(",");parsedUrl.query.LAYERS=layers.join(",");var getMapUrl=urlUtil.format(parsedUrl);axios.get(getMapUrl,{proxy:proxy,responseType:"arraybuffer",auth:configItem.wmsBasicAuth}).then(function(response){var basename=configItem.url.replace(/.*\//,"").replace(/\?.*$/,"")+".png";try{fs.mkdirSync("./static/assets/img/genmapthumbs/")}catch(err){if(err.code!=="EEXIST")throw err}fs.writeFileSync("./static/assets/img/genmapthumbs/"+basename,response.data);resultItem.thumbnail="img/genmapthumbs/"+basename;// finish task
13
+ resolve(true)})["catch"](function(error){/* eslint-disable-next-line */console.error("ERROR generating thumbnail for WMS "+configItem.url+":\n",error);resultItem.thumbnail="img/mapthumbs/default.jpg";// finish task
14
+ resolve(false)})}function getEditConfig(editConfig){if(isEmpty(editConfig)){return null}else if(_typeof(editConfig)==="object"){return editConfig}else if(path.isAbsolute(editConfig)&&fs.existsSync(editConfig)){return JSON.parse(fs.readFileSync(path,"utf8"))}else if(fs.existsSync(process.cwd()+"/"+editConfig)){return JSON.parse(fs.readFileSync(process.cwd()+"/"+editConfig,"utf8"))}return null}// convert non-array object to array containing the object
15
+ // used to restore arrays lost by xml -> json conversion
16
+ function toArray(obj){if(obj!==undefined){return Array.isArray(obj)?obj:[obj]}return[]}// recursively get layer tree
17
+ function getLayerTree(layer,resultLayers,visibleLayers,printLayers,level,collapseBelowLevel,titleNameMap,featureReports,externalLayers){// skip print layers
18
+ var _iterator=_createForOfIteratorHelper(printLayers),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var printLayer=_step.value;if(Array.isArray(printLayer)){if(printLayer.find(function(entry){return entry.name===layer.Name})){return}}else if(printLayer===layer.Name){return}}}catch(err){_iterator.e(err)}finally{_iterator.f()}var layerEntry={name:layer.Name,title:layer.Title};if(layer.Layer===undefined){if(layer.$_geometryType==="WKBNoGeometry"||layer.$_geometryType==="NoGeometry"){// skip layers without geometry
19
+ return}// layer
20
+ layerEntry.geometryType=layer.$_geometryType;if(layer.$_visibilityChecked!==undefined){layerEntry.visibility=layer.$_visibilityChecked==="1"}else{layerEntry.visibility=layer.$_visible==="1"}if(layerEntry.visibility){// collect visible layers
21
+ visibleLayers.push(layer.Name)}layerEntry.queryable=layer.$_queryable==="1";if(layerEntry.queryable){layerEntry.displayField=layer.$_displayField}if(layer.Attribution){layerEntry.attribution={Title:layer.Attribution.Title,OnlineResource:layer.Attribution.OnlineResource?layer.Attribution.OnlineResource.$_href:""}}if(layer.Abstract){layerEntry["abstract"]=layer.Abstract}if(layer.DataURL&&layer.DataURL.OnlineResource){layerEntry.dataUrl=layer.DataURL.OnlineResource.$_href;if(layerEntry.dataUrl.startsWith("wms:")){externalLayers.push({internalLayer:layer.Name,name:layerEntry.dataUrl});layerEntry.dataUrl=""}}if(layer.MetadataURL&&layer.MetadataURL.OnlineResource){layerEntry.metadataUrl=layer.MetadataURL.OnlineResource.$_href}if(layer.$_transparency){layerEntry.opacity=255-Math.floor(parseFloat(layer.$_transparency)*255)}else if(layer.$_opacity){layerEntry.opacity=Math.round(parseFloat(layer.$_opacity)*255)}else{layerEntry.opacity=255}if(layer.KeywordList){var keywords=[];toArray(layer.KeywordList.Keyword).map(function(entry){keywords.push(_typeof(entry)==="object"?entry._:entry)});layerEntry.keywords=keywords.join(", ")}if(layer.Style){var _Object$keys$;layerEntry.styles=toArray(layer.Style).reduce(function(res,entry){return _objectSpread(_objectSpread({},res),{},_defineProperty({},entry.Name,entry.Title))},{});layerEntry.style=layerEntry.styles["default"]?"default":(_Object$keys$=Object.keys(layerEntry.styles)[0])!==null&&_Object$keys$!==void 0?_Object$keys$:""}if(layer.MinScaleDenominator!==undefined){layerEntry.minScale=Math.round(parseFloat(layer.MinScaleDenominator));layerEntry.maxScale=Math.round(parseFloat(layer.MaxScaleDenominator))}// use geographic bounding box, as default CRS may have inverted axis order with WMS 1.3.0
22
+ if(layer.EX_GeographicBoundingBox){layerEntry.bbox={crs:"EPSG:4326",bounds:[parseFloat(layer.EX_GeographicBoundingBox.westBoundLongitude),parseFloat(layer.EX_GeographicBoundingBox.southBoundLatitude),parseFloat(layer.EX_GeographicBoundingBox.eastBoundLongitude),parseFloat(layer.EX_GeographicBoundingBox.northBoundLatitude)]}}if(featureReports[layer.Name]){layerEntry.featureReport=featureReports[layer.Name]}layerEntry.dimensions=[];toArray(layer.Dimension).forEach(function(dim){layerEntry.dimensions.push({units:dim.$_units,name:dim.$_name,multiple:dim.$_multipleValues==="1",value:dim._,fieldName:dim.$_fieldName,endFieldName:dim.$_endFieldName})})}else{// group
23
+ layerEntry.mutuallyExclusive=layer.$_mutuallyExclusive==="1";if(layer.$_visibilityChecked!==undefined){layerEntry.visibility=layer.$_visibilityChecked==="1"}else{layerEntry.visibility=layer.$_visible==="1"}layerEntry.sublayers=[];if(layer.$_expanded==="0"||collapseBelowLevel>=0&&level>=collapseBelowLevel){layerEntry.expanded=false}else{layerEntry.expanded=true}var _iterator2=_createForOfIteratorHelper(toArray(layer.Layer)),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var subLayer=_step2.value;getLayerTree(subLayer,layerEntry.sublayers,visibleLayers,printLayers,level+1,collapseBelowLevel,titleNameMap,featureReports,externalLayers)}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}if(layerEntry.sublayers.length===0){// skip empty groups
24
+ return}}resultLayers.push(layerEntry);titleNameMap[layer.TreeName]=layer.Name}function flatLayers(layer){var result=[layer];(layer.Layer||[]).forEach(function(sublayer){return result.push(sublayer)});return result}// parse GetCapabilities for theme
25
+ function getTheme(config,configItem,result,resultItem,proxy){var parsedUrl=urlUtil.parse(urlUtil.resolve(hostFqdn,configItem.url),true);parsedUrl.search="";parsedUrl.query.SERVICE="WMS";parsedUrl.query.VERSION="1.3.0";parsedUrl.query.REQUEST="GetProjectSettings";var getCapabilitiesUrl=urlUtil.format(parsedUrl);return new Promise(function(resolve,reject){axios.get(getCapabilitiesUrl,{proxy:proxy,auth:configItem.wmsBasicAuth}).then(function(response){var _XMLParser$parse;// parse capabilities
26
+ var parseOptions={removeNSPrefix:true,isArray:function isArray(){return false},ignoreAttributes:false,attributeNamePrefix:"$_",textNodeName:"_"};var capabilities=(_XMLParser$parse=new XMLParser(parseOptions).parse(response.data))===null||_XMLParser$parse===void 0?void 0:_XMLParser$parse.WMS_Capabilities;if(capabilities===undefined){// show response data on parse error
27
+ throw new Error(response.data)}/* eslint-disable-next-line */console.log("Parsing WMS GetProjectSettings of "+configItem.url);var topLayer=capabilities.Capability.Layer;var wmsName=configItem.url.replace(/.*\//,"").replace(/\?^/,"");// use name from config or fallback to WMS title
28
+ var wmsTitle=configItem.title||capabilities.Service.Title||topLayer.Title||wmsName;// keywords
29
+ var keywords=[];if(capabilities.Service.KeywordList){toArray(capabilities.Service.KeywordList.Keyword).map(function(entry){var value=_typeof(entry)==="object"?entry._:entry;if(value!=="infoMapAccessService"){keywords.push(value)}})}// use first CRS for thumbnail request
30
+ var crs=toArray(topLayer.CRS).filter(function(item){return item!=="CRS:84"})[0];var extent=[];var _iterator3=_createForOfIteratorHelper(toArray(topLayer.BoundingBox)),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var bbox=_step3.value;if(bbox.$_CRS===crs){extent=[parseFloat(bbox.$_minx),parseFloat(bbox.$_miny),parseFloat(bbox.$_maxx),parseFloat(bbox.$_maxy)];break}}// collect WMS layers for printing
31
+ }catch(err){_iterator3.e(err)}finally{_iterator3.f()}var printLayers=configItem.extraPrintLayers||[];if(configItem.backgroundLayers!==undefined){printLayers=configItem.backgroundLayers.reduce(function(printLyrs,entry){if(entry.printLayer){printLyrs.push(entry.printLayer)}return printLyrs},[])}// layer tree and visible layers
32
+ var collapseLayerGroupsBelowLevel=configItem.collapseLayerGroupsBelowLevel||-1;var layerTree=[];var visibleLayers=[];var titleNameMap={};var externalLayers=[];getLayerTree(topLayer,layerTree,visibleLayers,printLayers,1,collapseLayerGroupsBelowLevel,titleNameMap,configItem.featureReport||{},externalLayers);autogenExternalLayers.push.apply(autogenExternalLayers,_toConsumableArray(externalLayers.map(function(entry){return entry.name})));externalLayers.push.apply(externalLayers,_toConsumableArray(configItem.externalLayers||[]));visibleLayers.reverse();// print templates
33
+ var printTemplates=[];if(capabilities.Capability.ComposerTemplates!==undefined){var templates=capabilities.Capability.ComposerTemplates.ComposerTemplate;if(!templates.length){templates=[templates]}var composerTemplateMap={};var _iterator4=_createForOfIteratorHelper(templates),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var composerTemplate=_step4.value;if(composerTemplate.ComposerMap!==undefined){composerTemplateMap[composerTemplate.$_name]=composerTemplate}}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}Object.values(composerTemplateMap).forEach(function(composerTemplate){var templateName=composerTemplate.$_name;if(templateName.endsWith("_legend")&&templateName.slice(0,-7)in composerTemplateMap){return}// use first map from GetProjectSettings
34
+ var composerMap=toArray(composerTemplate.ComposerMap)[0];var printTemplate={name:templateName,map:{name:composerMap.$_name,width:parseFloat(composerMap.$_width),height:parseFloat(composerMap.$_height)}};if(printTemplate.name+"_legend"in composerTemplateMap){printTemplate.legendLayout=printTemplate.name+"_legend"}if(composerTemplate.ComposerLabel!==undefined){printTemplate.labels=toArray(composerTemplate.ComposerLabel).map(function(entry){return entry.$_name}).filter(function(label){return!(configItem.printLabelBlacklist||[]).includes(label)})}printTemplate["default"]=configItem.defaultPrintLayout===printTemplate.name;if(composerTemplate.$_atlasEnabled==="1"){var atlasLayer=composerTemplate.$_atlasCoverageLayer;try{var layers=flatLayers(capabilities.Capability.Layer);var pk=layers.find(function(l){return l.Name===atlasLayer}).PrimaryKey.PrimaryKeyAttribute;printTemplate.atlasCoverageLayer=atlasLayer;printTemplate.atlas_pk=pk}catch(e){/* eslint-disable-next-line */console.warn("Failed to determine primary key for atlas layer "+atlasLayer)}}printTemplates.push(printTemplate)})}// drawing order
35
+ var drawingOrder=(capabilities.Capability.LayerDrawingOrder||"").split(",").map(function(title){return title in titleNameMap?titleNameMap[title]:title});// update theme config
36
+ resultItem.url=configItem.url;resultItem.id=uniqueThemeId(wmsName);resultItem.name=topLayer.Name;resultItem.title=wmsTitle;resultItem.description=configItem.description||"";resultItem.attribution={Title:configItem.attribution||"",OnlineResource:configItem.attributionUrl||""};// service info
37
+ resultItem["abstract"]=capabilities.Service.Abstract||"";resultItem.keywords=keywords.join(", ");resultItem.onlineResource=capabilities.Service.OnlineResource.$_href;resultItem.contact={person:objectPath.get(capabilities,"Service.ContactInformation.ContactPersonPrimary.ContactPerson",""),organization:objectPath.get(capabilities,"Service.ContactInformation.ContactPersonPrimary.ContactOrganization",""),position:objectPath.get(capabilities,"Service.ContactInformation.ContactPosition",""),phone:objectPath.get(capabilities,"Service.ContactInformation.ContactVoiceTelephone",""),email:objectPath.get(capabilities,"Service.ContactInformation.ContactElectronicMailAddress","")};resultItem.format=configItem.format;resultItem.availableFormats=capabilities.Capability.Request.GetMap.Format;resultItem.tiled=configItem.tiled;resultItem.tileSize=configItem.tileSize;resultItem.version=configItem.version?configItem.version:config.defaultWMSVersion;resultItem.infoFormats=capabilities.Capability.Request.GetFeatureInfo.Format;// use geographic bounding box for theme, as default CRS may have inverted axis order with WMS 1.3.0
38
+ var bounds=[parseFloat(topLayer.EX_GeographicBoundingBox.westBoundLongitude),parseFloat(topLayer.EX_GeographicBoundingBox.southBoundLatitude),parseFloat(topLayer.EX_GeographicBoundingBox.eastBoundLongitude),parseFloat(topLayer.EX_GeographicBoundingBox.northBoundLatitude)];resultItem.bbox={crs:"EPSG:4326",bounds:bounds};if(configItem.extent){resultItem.initialBbox={crs:configItem.mapCrs||result.themes.defaultMapCrs,bounds:configItem.extent}}else{resultItem.initialBbox=resultItem.bbox}resultItem.scales=configItem.scales;resultItem.printScales=configItem.printScales;resultItem.printResolutions=configItem.printResolutions;resultItem.printGrid=configItem.printGrid;// NOTE: skip root WMS layer
39
+ resultItem.sublayers=isEmpty(layerTree)?[]:layerTree[0].sublayers;resultItem.expanded=true;resultItem.externalLayers=externalLayers;resultItem.backgroundLayers=configItem.backgroundLayers;resultItem.searchProviders=configItem.searchProviders;resultItem.additionalMouseCrs=configItem.additionalMouseCrs;resultItem.mapCrs=configItem.mapCrs||result.themes.defaultMapCrs;if(printTemplates.length>0){resultItem.print=printTemplates}resultItem.drawingOrder=drawingOrder;if(configItem.extraDxfParameters){resultItem.extraDxfParameters=configItem.extraDxfParameters}if(configItem.extraPrintParameters){resultItem.extraPrintParameters=configItem.extraPrintParameters}if(configItem.legendUrl){resultItem.legendUrl=configItem.legendUrl}else{resultItem.legendUrl=capabilities.Capability.Request.GetLegendGraphic.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"+(configItem.extraLegendParameters?configItem.extraLegendParameters:"")}if(configItem.featureInfoUrl){resultItem.featureInfoUrl=configItem.featureInfoUrl}else{resultItem.featureInfoUrl=capabilities.Capability.Request.GetFeatureInfo.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"}if(configItem.printUrl){resultItem.printUrl=configItem.printUrl}else{resultItem.printUrl=capabilities.Capability.Request.GetPrint.DCPType.HTTP.Get.OnlineResource.$_href.replace(/\?$/,"")+"?"}if(configItem.printLabelForSearchResult){resultItem.printLabelForSearchResult=configItem.printLabelForSearchResult}if(configItem.printLabelForAttribution){resultItem.printLabelForAttribution=configItem.printLabelForAttribution}if(configItem.printLabelConfig){resultItem.printLabelConfig=configItem.printLabelConfig}if(configItem.watermark){resultItem.watermark=configItem.watermark}if(configItem.pluginData){resultItem.pluginData=configItem.pluginData}if(configItem.predefinedFilters){resultItem.predefinedFilters=configItem.predefinedFilters}if(configItem.snapping){resultItem.snapping=configItem.snapping}if(configItem.minSearchScaleDenom){resultItem.minSearchScaleDenom=configItem.minSearchScaleDenom}else if(configItem.minSearchScale){// Legacy name
40
+ resultItem.minSearchScaleDenom=configItem.minSearchScale}if(configItem.themeInfoLinks){resultItem.themeInfoLinks=configItem.themeInfoLinks}if(configItem.layerTreeHiddenSublayers){resultItem.layerTreeHiddenSublayers=configItem.layerTreeHiddenSublayers}resultItem.skipEmptyFeatureAttributes=configItem.skipEmptyFeatureAttributes;resultItem.config=configItem.config;resultItem.flags=configItem.flags;resultItem.mapTips=configItem.mapTips;resultItem.userMap=configItem.userMap;resultItem.map3d=configItem.map3d;resultItem.editConfig=getEditConfig(configItem.editConfig);// set default theme
41
+ if(configItem["default"]||!result.themes.defaultTheme){result.themes.defaultTheme=resultItem.id}// get thumbnail asynchronously
42
+ getThumbnail(configItem,resultItem,visibleLayers,crs,extent,resolve,proxy)})["catch"](function(error){/* eslint-disable-next-line */console.error("ERROR reading WMS GetProjectSettings of "+configItem.url+":\n",error);resultItem.error="Could not read GetProjectSettings";resultItem.title="Error";// finish task
43
+ reject(resultItem.error)})})}// asynchronous tasks
44
+ var tasks=[];// recursively get themes for groups
45
+ function getGroupThemes(config,configGroup,result,resultGroup,proxy,groupCounter){var _iterator5=_createForOfIteratorHelper(configGroup.items),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var item=_step5.value;var itemEntry={};tasks.push(getTheme(config,item,result,itemEntry,proxy));resultGroup.items.push(itemEntry)}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}if(configGroup.groups!==undefined){var _iterator6=_createForOfIteratorHelper(configGroup.groups),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var group=_step6.value;var groupEntry={id:"g"+ ++groupCounter,title:group.title,items:[],subdirs:[]};getGroupThemes(config,group,result,groupEntry,proxy,groupCounter);resultGroup.subdirs.push(groupEntry)}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}}}function genThemes(themesConfig){// load themesConfig.json
46
+ var config=JSON.parse(fs.readFileSync(process.cwd()+"/"+themesConfig,"utf8"));var result={themes:{title:"root",subdirs:[],items:[],defaultTheme:config.defaultTheme,defaultMapCrs:config.defaultMapCrs||"EPSG:3857",defaultScales:config.defaultScales,defaultPrintScales:config.defaultPrintScales,defaultPrintResolutions:config.defaultPrintResolutions,defaultPrintGrid:config.defaultPrintGrid,defaultSearchProviders:config.defaultSearchProviders,defaultBackgroundLayers:config.defaultBackgroundLayers||[],externalLayers:config.themes.externalLayers||[],pluginData:config.themes.pluginData,themeInfoLinks:config.themes.themeInfoLinks,backgroundLayers:config.themes.backgroundLayers.map(function(bglayer){bglayer.attribution={Title:bglayer.attribution,OnlineResource:bglayer.attributionUrl};delete bglayer.attributionUrl;return bglayer}),defaultWMSVersion:config.defaultWMSVersion}};var proxy=config.proxy||null;var groupCounter=0;getGroupThemes(config,config.themes,result,result.themes,proxy,groupCounter);Promise.all(tasks).then(function(){for(var _i=0,_autogenExternalLayer=autogenExternalLayers;_i<_autogenExternalLayer.length;_i++){var entry=_autogenExternalLayer[_i];var cpos=entry.indexOf(":");var hpos=entry.lastIndexOf("#");var type=entry.slice(0,cpos);var url=entry.slice(cpos+1,hpos);var layername=entry.slice(hpos+1);result.themes.externalLayers.push({name:entry,type:type,url:url,params:{LAYERS:layername},infoFormats:["text/plain"]})}if(result.themes.backgroundLayers!==undefined){// get thumbnails for background layers
47
+ result.themes.backgroundLayers.map(function(backgroundLayer){var imgPath="img/mapthumbs/"+backgroundLayer.thumbnail;if(!fs.existsSync("./static/assets/"+imgPath)){imgPath="img/mapthumbs/default.jpg"}backgroundLayer.thumbnail=imgPath})}// write config file
48
+ fs.writeFile(process.cwd()+"/static/themes.json",JSON.stringify(result,null,2),function(error){if(error){/* eslint-disable-next-line */console.error("ERROR:",error);process.exit(1)}else{/* eslint-disable-next-line */console.log("\nCreated themes.json\n\n")}})})["catch"](function(error){/* eslint-disable-next-line */console.error("ERROR:",error);process.exit(1)});return result}lookup(os.hostname(),{hints:dns.ADDRCONFIG}).then(function(result){return lookupService(result.address,0)}).then(function(result){hostFqdn="http://"+result.hostname;/* eslint-disable-next-line */console.log("Reading "+themesConfigPath);genThemes(themesConfigPath)})["catch"](function(error){process.nextTick(function(){throw error})});