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.
- package/LICENSE +28 -0
- package/README.md +68 -0
- package/actions/display.js +7 -0
- package/actions/editing.js +7 -0
- package/actions/layerinfo.js +7 -0
- package/actions/layers.js +8 -0
- package/actions/localConfig.js +7 -0
- package/actions/locale.js +10 -0
- package/actions/locate.js +8 -0
- package/actions/logging.js +7 -0
- package/actions/map.js +15 -0
- package/actions/measurement.js +8 -0
- package/actions/processNotifications.js +7 -0
- package/actions/redlining.js +7 -0
- package/actions/redliningPick.js +7 -0
- package/actions/serviceinfo.js +7 -0
- package/actions/task.js +9 -0
- package/actions/theme.js +24 -0
- package/actions/windows.js +10 -0
- package/components/AppMenu.js +8 -0
- package/components/AttributeForm.js +34 -0
- package/components/AutoEditForm.js +8 -0
- package/components/CoordinateDisplayer.js +7 -0
- package/components/EditComboField.js +10 -0
- package/components/EditUploadField.js +8 -0
- package/components/FullscreenSwitcher.js +8 -0
- package/components/Icon.js +7 -0
- package/components/IdentifyViewer.js +16 -0
- package/components/ImportLayer.js +25 -0
- package/components/LayerInfoWindow.js +7 -0
- package/components/LinkFeatureForm.js +10 -0
- package/components/MapSelection.js +13 -0
- package/components/NumericInputWindow.js +7 -0
- package/components/PickFeature.js +7 -0
- package/components/PluginsContainer.js +8 -0
- package/components/PrintSelection.js +54 -0
- package/components/QtDesignerForm.js +30 -0
- package/components/ResizeableWindow.js +12 -0
- package/components/SearchBox.js +26 -0
- package/components/ServiceInfoWindow.js +7 -0
- package/components/SideBar.js +9 -0
- package/components/StandardApp.js +35 -0
- package/components/Swipeable.js +1 -0
- package/components/TaskBar.js +7 -0
- package/components/ThemeLayersListWindow.js +9 -0
- package/components/ThemeList.js +12 -0
- package/components/Toolbar.js +7 -0
- package/components/WindowManager.js +7 -0
- package/components/map/OlLayer.js +12 -0
- package/components/map/OlLocate.css +56 -0
- package/components/map/OlLocate.js +17 -0
- package/components/map/OlMap.js +11 -0
- package/components/map/layers/BingLayer.js +8 -0
- package/components/map/layers/GoogleLayer.js +27 -0
- package/components/map/layers/GraticuleLayer.js +8 -0
- package/components/map/layers/ImageLayer.js +8 -0
- package/components/map/layers/MVTLayer.js +7 -0
- package/components/map/layers/OSMLayer.js +8 -0
- package/components/map/layers/OverlayLayer.js +10 -0
- package/components/map/layers/VectorLayer.js +14 -0
- package/components/map/layers/WFSLayer.js +11 -0
- package/components/map/layers/WMSLayer.js +11 -0
- package/components/map/layers/WMTSLayer.js +9 -0
- package/components/map/layers/XYZLayer.js +7 -0
- package/components/map/layers/index.js +8 -0
- package/components/map3d/BottomBar3D.js +7 -0
- package/components/map3d/Compare3D.js +12 -0
- package/components/map3d/Draw3D.js +10 -0
- package/components/map3d/ExportObjects3D.js +17 -0
- package/components/map3d/HeightProfile3D.js +8 -0
- package/components/map3d/HideObjects3D.js +12 -0
- package/components/map3d/Identify3D.js +13 -0
- package/components/map3d/LayerTree3D.js +8 -0
- package/components/map3d/Map3D.js +29 -0
- package/components/map3d/Map3DLight.js +10 -0
- package/components/map3d/MapControls3D.js +20 -0
- package/components/map3d/MapExport3D.js +11 -0
- package/components/map3d/Measure3D.js +23 -0
- package/components/map3d/OverviewMap3D.js +9 -0
- package/components/map3d/SearchField3D.js +16 -0
- package/components/map3d/TopBar3D.js +7 -0
- package/components/map3d/View3DSwitcher.js +7 -0
- package/components/map3d/drawtool/CreateTool3D.js +9 -0
- package/components/map3d/drawtool/EditTool3D.js +9 -0
- package/components/map3d/drawtool/NumericInput3D.js +7 -0
- package/components/map3d/img/viewcone.svg +124 -0
- package/components/map3d/layers/VectorLayer3D.js +7 -0
- package/components/map3d/layers/WFSLayer3D.js +8 -0
- package/components/map3d/layers/WMSLayer3D.js +7 -0
- package/components/map3d/layers/WMTSLayer3D.js +9 -0
- package/components/map3d/layers/index.js +8 -0
- package/components/map3d/models/arrow.glb +0 -0
- package/components/map3d/models/pin.glb +0 -0
- package/components/map3d/slices/map3d.js +1 -0
- package/components/map3d/style/BottomBar3D.css +67 -0
- package/components/map3d/style/Compare3D.css +57 -0
- package/components/map3d/style/Draw3D.css +7 -0
- package/components/map3d/style/HideObjects3D.css +29 -0
- package/components/map3d/style/LayerTree3D.css +126 -0
- package/components/map3d/style/Map3D.css +42 -0
- package/components/map3d/style/Map3DLight.css +72 -0
- package/components/map3d/style/MapControls3D.css +56 -0
- package/components/map3d/style/MapExport3D.css +25 -0
- package/components/map3d/style/OverviewMap3D.css +37 -0
- package/components/map3d/style/SearchField3D.css +7 -0
- package/components/map3d/style/View3DSwitcher.css +27 -0
- package/components/map3d/utils/Tiles3DStyle.js +1 -0
- package/components/share/ShareLink.js +7 -0
- package/components/share/ShareQRCode.js +8 -0
- package/components/share/ShareSocials.js +9 -0
- package/components/share/style/ShareLink.css +13 -0
- package/components/share/style/ShareSocials.css +9 -0
- package/components/style/App.css +229 -0
- package/components/style/AppMenu.css +162 -0
- package/components/style/AttributeForm.css +57 -0
- package/components/style/AutoEditForm.css +64 -0
- package/components/style/DefaultColorScheme.css +60 -0
- package/components/style/EditUploadField.css +103 -0
- package/components/style/FullscreenSwitcher.css +25 -0
- package/components/style/Icon.css +26 -0
- package/components/style/IdentifyViewer.css +249 -0
- package/components/style/ImportLayer.css +28 -0
- package/components/style/LayerInfoWindow.css +46 -0
- package/components/style/LinkFeatureForm.css +48 -0
- package/components/style/NumericInputWindow.css +11 -0
- package/components/style/PickFeature.css +25 -0
- package/components/style/PluginsContainer.css +4 -0
- package/components/style/QtDesignerForm.css +225 -0
- package/components/style/ResizeableWindow.css +178 -0
- package/components/style/SearchBox.css +159 -0
- package/components/style/ServiceInfoWindow.css +34 -0
- package/components/style/SideBar.css +100 -0
- package/components/style/TaskBar.css +35 -0
- package/components/style/ThemeLayersListWindow.css +47 -0
- package/components/style/ThemeList.css +200 -0
- package/components/style/Toolbar.css +20 -0
- package/components/style/WindowManager.css +50 -0
- package/components/timeline/FixedTimeline.js +10 -0
- package/components/timeline/InfiniteTimeline.js +13 -0
- package/components/timeline/TimelineFeaturesSlider.js +10 -0
- package/components/timeline/style/FixedTimeline.css +76 -0
- package/components/timeline/style/InfiniteTimeline.css +94 -0
- package/components/timeline/style/TimelineFeaturesSlider.css +131 -0
- package/components/widgets/AccordeonWidget.js +7 -0
- package/components/widgets/ButtonBar.js +7 -0
- package/components/widgets/ColorButton.js +8 -0
- package/components/widgets/ComboBox.js +7 -0
- package/components/widgets/CopyButton.js +7 -0
- package/components/widgets/DateTimeInput.js +8 -0
- package/components/widgets/EditableSelect.js +8 -0
- package/components/widgets/FileSelector.js +9 -0
- package/components/widgets/Input.js +7 -0
- package/components/widgets/InputContainer.js +7 -0
- package/components/widgets/LayerCatalogWidget.js +3 -0
- package/components/widgets/MenuButton.js +1 -0
- package/components/widgets/ModalDialog.js +7 -0
- package/components/widgets/NavBar.js +7 -0
- package/components/widgets/NumberInput.js +9 -0
- package/components/widgets/PopupMenu.js +1 -0
- package/components/widgets/Primitives.js +7 -0
- package/components/widgets/ReCaptchaWidget.js +1 -0
- package/components/widgets/SearchWidget.js +7 -0
- package/components/widgets/Spinner.js +6 -0
- package/components/widgets/SuggestionInput.js +7 -0
- package/components/widgets/TextInput.js +7 -0
- package/components/widgets/ToggleSwitch.js +7 -0
- package/components/widgets/VectorLayerPicker.js +8 -0
- package/components/widgets/style/AccordeonWidget.css +22 -0
- package/components/widgets/style/ButtonBar.css +88 -0
- package/components/widgets/style/ColorButton.css +88 -0
- package/components/widgets/style/ComboBox.css +83 -0
- package/components/widgets/style/CopyButton.css +21 -0
- package/components/widgets/style/EditableSelect.css +47 -0
- package/components/widgets/style/FileSelector.css +14 -0
- package/components/widgets/style/InputContainer.css +34 -0
- package/components/widgets/style/LayerCatalogWidget.css +59 -0
- package/components/widgets/style/MenuButton.css +122 -0
- package/components/widgets/style/ModalDialog.css +50 -0
- package/components/widgets/style/NavBar.css +12 -0
- package/components/widgets/style/NumberInput.css +76 -0
- package/components/widgets/style/SearchWidget.css +43 -0
- package/components/widgets/style/Spinner.css +32 -0
- package/components/widgets/style/SuggestionInput.css +8 -0
- package/components/widgets/style/TextInput.css +94 -0
- package/components/widgets/style/ToggleSwitch.css +61 -0
- package/components/widgets/style/VectorLayerPicker.css +3 -0
- package/icons/2d.svg +70 -0
- package/icons/3d.svg +70 -0
- package/icons/3d2d.svg +92 -0
- package/icons/after.svg +76 -0
- package/icons/arrow-down.svg +60 -0
- package/icons/arrow-up.svg +60 -0
- package/icons/before.svg +76 -0
- package/icons/bglayer.svg +71 -0
- package/icons/bookmark.svg +170 -0
- package/icons/box.svg +63 -0
- package/icons/buffer.svg +67 -0
- package/icons/camera.svg +118 -0
- package/icons/catalog.svg +62 -0
- package/icons/checked.svg +80 -0
- package/icons/chevron-down.svg +60 -0
- package/icons/chevron-left.svg +59 -0
- package/icons/chevron-right.svg +60 -0
- package/icons/chevron-up.svg +60 -0
- package/icons/circle.svg +70 -0
- package/icons/clear.svg +62 -0
- package/icons/clock.svg +71 -0
- package/icons/cog.svg +60 -0
- package/icons/collapse.svg +73 -0
- package/icons/compare.svg +72 -0
- package/icons/cone.svg +58 -0
- package/icons/confirm.svg +62 -0
- package/icons/copy.svg +60 -0
- package/icons/cuboid.svg +58 -0
- package/icons/cyclomedia.svg +47 -0
- package/icons/cylinder.svg +58 -0
- package/icons/dataimport.svg +116 -0
- package/icons/detach.svg +79 -0
- package/icons/dock.svg +82 -0
- package/icons/dock_bottom.svg +82 -0
- package/icons/dock_left.svg +84 -0
- package/icons/dock_right.svg +84 -0
- package/icons/dock_top.svg +84 -0
- package/icons/draw.svg +78 -0
- package/icons/editdraw.svg +84 -0
- package/icons/edited.svg +78 -0
- package/icons/editing.svg +118 -0
- package/icons/ellipse.svg +72 -0
- package/icons/embed.svg +88 -0
- package/icons/expand.svg +73 -0
- package/icons/export.svg +126 -0
- package/icons/eye.svg +127 -0
- package/icons/featureform.svg +115 -0
- package/icons/fill.svg +62 -0
- package/icons/filter.svg +69 -0
- package/icons/folder-open.svg +60 -0
- package/icons/freehand.svg +82 -0
- package/icons/group.svg +76 -0
- package/icons/home.svg +60 -0
- package/icons/identify_radius.svg +71 -0
- package/icons/identify_region.svg +71 -0
- package/icons/import.svg +62 -0
- package/icons/info-sign.svg +60 -0
- package/icons/info.svg +80 -0
- package/icons/layers.svg +71 -0
- package/icons/light.svg +77 -0
- package/icons/line.svg +61 -0
- package/icons/line_buffer.svg +65 -0
- package/icons/link.svg +75 -0
- package/icons/list-alt.svg +111 -0
- package/icons/lock.svg +54 -0
- package/icons/login.svg +56 -0
- package/icons/logout.svg +56 -0
- package/icons/map3d.svg +51 -0
- package/icons/maximize.svg +84 -0
- package/icons/measure.svg +82 -0
- package/icons/measure_line.svg +87 -0
- package/icons/measure_polygon.svg +88 -0
- package/icons/menu-hamburger.svg +60 -0
- package/icons/minimize.svg +76 -0
- package/icons/minus-sign.svg +60 -0
- package/icons/minus.svg +61 -0
- package/icons/nav-end.svg +74 -0
- package/icons/nav-left.svg +74 -0
- package/icons/nav-right.svg +74 -0
- package/icons/nav-start.svg +73 -0
- package/icons/new.svg +84 -0
- package/icons/nodetool.svg +68 -0
- package/icons/numericinput.svg +86 -0
- package/icons/ok.svg +60 -0
- package/icons/open.svg +79 -0
- package/icons/open_link.svg +74 -0
- package/icons/paint.svg +75 -0
- package/icons/pen.svg +41 -0
- package/icons/person.svg +44 -0
- package/icons/pick.svg +67 -0
- package/icons/pick_point.svg +74 -0
- package/icons/pick_region.svg +71 -0
- package/icons/plus.svg +60 -0
- package/icons/point.svg +67 -0
- package/icons/point_buffer.svg +74 -0
- package/icons/polygon.svg +61 -0
- package/icons/print.svg +60 -0
- package/icons/pyramid.svg +58 -0
- package/icons/radio_checked.svg +78 -0
- package/icons/radio_tristate.svg +75 -0
- package/icons/radio_unchecked.svg +72 -0
- package/icons/rasterexport.svg +124 -0
- package/icons/rect.svg +63 -0
- package/icons/refresh.svg +44 -0
- package/icons/remove.svg +60 -0
- package/icons/report.svg +84 -0
- package/icons/routing-bicycle.svg +40 -0
- package/icons/routing-bus.svg +40 -0
- package/icons/routing-cablecar.svg +40 -0
- package/icons/routing-car.svg +40 -0
- package/icons/routing-ship.svg +40 -0
- package/icons/routing-train.svg +40 -0
- package/icons/routing-tram.svg +40 -0
- package/icons/routing-truck.svg +40 -0
- package/icons/routing-walking.svg +40 -0
- package/icons/routing.svg +68 -0
- package/icons/save.svg +190 -0
- package/icons/scale.svg +62 -0
- package/icons/screenshot.svg +60 -0
- package/icons/search.svg +60 -0
- package/icons/selectbox.svg +79 -0
- package/icons/share.svg +64 -0
- package/icons/snap_edge.svg +79 -0
- package/icons/snap_vertex.svg +79 -0
- package/icons/sphere.svg +58 -0
- package/icons/square.svg +68 -0
- package/icons/sync.svg +72 -0
- package/icons/text.svg +68 -0
- package/icons/themes.svg +81 -0
- package/icons/tilt-down.svg +67 -0
- package/icons/tilt-left.svg +48 -0
- package/icons/tilt-right.svg +48 -0
- package/icons/tilt-up.svg +67 -0
- package/icons/today.svg +45 -0
- package/icons/tools.svg +77 -0
- package/icons/transformtool.svg +74 -0
- package/icons/transparency.svg +132 -0
- package/icons/trash.svg +60 -0
- package/icons/tree_minus.svg +81 -0
- package/icons/tree_plus.svg +81 -0
- package/icons/triangle-down.svg +59 -0
- package/icons/triangle-left.svg +60 -0
- package/icons/triangle-right.svg +60 -0
- package/icons/triangle-up.svg +59 -0
- package/icons/tristate.svg +79 -0
- package/icons/unchecked.svg +74 -0
- package/icons/undock.svg +82 -0
- package/icons/undock_bottom.svg +82 -0
- package/icons/undock_left.svg +82 -0
- package/icons/undock_right.svg +84 -0
- package/icons/undock_top.svg +84 -0
- package/icons/unmaximize.svg +84 -0
- package/icons/unminimize.svg +76 -0
- package/icons/up-down-arrow.svg +66 -0
- package/icons/warning.svg +72 -0
- package/icons/wedge.svg +58 -0
- package/icons/zoom.svg +60 -0
- package/icons/zoomin.svg +71 -0
- package/icons/zoomout.svg +80 -0
- package/libs/openlayers.js +11 -0
- package/package.json +135 -0
- package/plugins/API.js +114 -0
- package/plugins/AttributeTable.js +25 -0
- package/plugins/Authentication.js +13 -0
- package/plugins/BackgroundSwitcher.js +10 -0
- package/plugins/Bookmark.js +13 -0
- package/plugins/BottomBar.js +10 -0
- package/plugins/CookiePopup.js +9 -0
- package/plugins/Cyclomedia.js +11 -0
- package/plugins/Editing.js +21 -0
- package/plugins/FeatureForm.js +21 -0
- package/plugins/FeatureSearch.js +11 -0
- package/plugins/GeometryDigitizer.js +43 -0
- package/plugins/HeightProfile.js +26 -0
- package/plugins/Help.js +11 -0
- package/plugins/HomeButton.js +9 -0
- package/plugins/Identify.js +18 -0
- package/plugins/LayerCatalog.js +45 -0
- package/plugins/LayerTree.js +15 -0
- package/plugins/LocateButton.js +10 -0
- package/plugins/Map.js +22 -0
- package/plugins/MapCompare.js +11 -0
- package/plugins/MapCopyright.js +11 -0
- package/plugins/MapExport.js +23 -0
- package/plugins/MapFilter.js +20 -0
- package/plugins/MapInfoTooltip.js +32 -0
- package/plugins/MapLegend.js +14 -0
- package/plugins/MapTip.js +15 -0
- package/plugins/Measure.js +10 -0
- package/plugins/NewsPopup.js +12 -0
- package/plugins/Panoramax.js +10 -0
- package/plugins/Portal.js +10 -0
- package/plugins/Print.js +22 -0
- package/plugins/ProcessNotifications.js +11 -0
- package/plugins/Redlining.js +12 -0
- package/plugins/Reports.js +15 -0
- package/plugins/Routing.js +23 -0
- package/plugins/ScratchDrawing.js +15 -0
- package/plugins/Settings.js +12 -0
- package/plugins/Share.js +11 -0
- package/plugins/StartupMarker.js +12 -0
- package/plugins/TaskButton.js +9 -0
- package/plugins/ThemeSwitcher.js +10 -0
- package/plugins/TimeManager.js +21 -0
- package/plugins/TopBar.js +13 -0
- package/plugins/ValueTool.js +11 -0
- package/plugins/View3D.js +34 -0
- package/plugins/ZoomButtons.js +11 -0
- package/plugins/map/EditingSupport.js +13 -0
- package/plugins/map/LocateSupport.js +14 -0
- package/plugins/map/MeasurementSupport.js +15 -0
- package/plugins/map/OverviewSupport.js +14 -0
- package/plugins/map/RedliningPickSupport.js +12 -0
- package/plugins/map/RedliningSupport.js +28 -0
- package/plugins/map/ScaleBarSupport.js +10 -0
- package/plugins/map/SnapInteraction.js +1 -0
- package/plugins/map/SnapSupport.js +7 -0
- package/plugins/map/SnappingSupport.js +23 -0
- package/plugins/map/style/OverviewSupport.css +42 -0
- package/plugins/map/style/ScaleBarSupport.css +18 -0
- package/plugins/map/style/SnappingSupport.css +33 -0
- package/plugins/redlining/RedliningBufferSupport.js +8 -0
- package/plugins/style/AttributeTable.css +220 -0
- package/plugins/style/Authentication.css +16 -0
- package/plugins/style/BackgroundSwitcher.css +99 -0
- package/plugins/style/Bookmark.css +62 -0
- package/plugins/style/BottomBar.css +53 -0
- package/plugins/style/Buttons.css +68 -0
- package/plugins/style/CookiePopup.css +24 -0
- package/plugins/style/Cyclomedia.css +66 -0
- package/plugins/style/Editing.css +40 -0
- package/plugins/style/FeatureForm.css +21 -0
- package/plugins/style/FeatureSearch.css +71 -0
- package/plugins/style/GeometryDigitizer.css +28 -0
- package/plugins/style/HeightProfile.css +26 -0
- package/plugins/style/Identify.css +4 -0
- package/plugins/style/LayerCatalog.css +8 -0
- package/plugins/style/LayerTree.css +316 -0
- package/plugins/style/Map.css +43 -0
- package/plugins/style/MapCompare.css +27 -0
- package/plugins/style/MapCopyright.css +17 -0
- package/plugins/style/MapExport.css +55 -0
- package/plugins/style/MapFilter.css +101 -0
- package/plugins/style/MapInfoTooltip.css +78 -0
- package/plugins/style/MapLegend.css +36 -0
- package/plugins/style/MapTip.css +22 -0
- package/plugins/style/Measure.css +23 -0
- package/plugins/style/NewsPopup.css +87 -0
- package/plugins/style/Panoramax.css +15 -0
- package/plugins/style/Portal.css +115 -0
- package/plugins/style/Print.css +116 -0
- package/plugins/style/ProcessNotifications.css +55 -0
- package/plugins/style/Redlining.css +101 -0
- package/plugins/style/Reports.css +11 -0
- package/plugins/style/Routing.css +243 -0
- package/plugins/style/ScratchDrawing.css +8 -0
- package/plugins/style/Settings.css +11 -0
- package/plugins/style/Share.css +59 -0
- package/plugins/style/ThemeSwitcher.css +7 -0
- package/plugins/style/TimeManager.css +91 -0
- package/plugins/style/TopBar.css +50 -0
- package/plugins/style/ValueTool.css +60 -0
- package/reducers/display.js +7 -0
- package/reducers/editing.js +8 -0
- package/reducers/index.js +7 -0
- package/reducers/layerinfo.js +7 -0
- package/reducers/layers.js +14 -0
- package/reducers/localConfig.js +8 -0
- package/reducers/locale.js +8 -0
- package/reducers/locate.js +8 -0
- package/reducers/map.js +11 -0
- package/reducers/measurement.js +8 -0
- package/reducers/processNotifications.js +7 -0
- package/reducers/redlining.js +7 -0
- package/reducers/redliningPick.js +7 -0
- package/reducers/serviceinfo.js +7 -0
- package/reducers/task.js +7 -0
- package/reducers/theme.js +7 -0
- package/reducers/windows.js +7 -0
- package/scripts/dist.sh +16 -0
- package/scripts/gen-plugin-docs.js +9 -0
- package/scripts/makeIconkit.js +7 -0
- package/scripts/package-commands.bat +8 -0
- package/scripts/package-commands.sh +22 -0
- package/scripts/themesConfig.js +48 -0
- package/scripts/themesConfig.py +659 -0
- package/scripts/translateui.sh +51 -0
- package/scripts/updateTranslations.js +17 -0
- package/scripts/wmts_config_generator.py +169 -0
- package/selectors/searchproviders.js +12 -0
- package/static/translations/bg-BG.json +709 -0
- package/static/translations/ca-ES.json +709 -0
- package/static/translations/cs-CZ.json +709 -0
- package/static/translations/de-CH.json +709 -0
- package/static/translations/de-DE.json +709 -0
- package/static/translations/en-US.json +709 -0
- package/static/translations/es-ES.json +709 -0
- package/static/translations/fi-FI.json +709 -0
- package/static/translations/fr-FR.json +709 -0
- package/static/translations/hu-HU.json +709 -0
- package/static/translations/it-IT.json +709 -0
- package/static/translations/ja-JP.json +709 -0
- package/static/translations/nl-NL.json +709 -0
- package/static/translations/no-NO.json +709 -0
- package/static/translations/pl-PL.json +709 -0
- package/static/translations/pt-BR.json +709 -0
- package/static/translations/pt-PT.json +709 -0
- package/static/translations/ro-RO.json +709 -0
- package/static/translations/ru-RU.json +709 -0
- package/static/translations/sv-SE.json +709 -0
- package/static/translations/tr-TR.json +709 -0
- package/static/translations/tsconfig.json +606 -0
- package/stores/StandardStore.js +8 -0
- package/utils/ConfigUtils.js +9 -0
- package/utils/CoordinatesUtils.js +29 -0
- package/utils/DxfUtils.js +10 -0
- package/utils/EditingInterface.js +67 -0
- package/utils/EditingUtils.js +11 -0
- package/utils/FeatureStyles.js +10 -0
- package/utils/IdentifyUtils.js +12 -0
- package/utils/ImageEditor.js +15 -0
- package/utils/LayerUtils.js +57 -0
- package/utils/LocaleUtils.js +9 -0
- package/utils/MapUtils.js +66 -0
- package/utils/MeasureUtils.js +9 -0
- package/utils/MiscUtils.js +15 -0
- package/utils/PermaLinkUtils.js +11 -0
- package/utils/ResourceRegistry.js +7 -0
- package/utils/RoutingInterface.js +12 -0
- package/utils/SearchProviders.js +19 -0
- package/utils/ServiceLayerUtils.js +20 -0
- package/utils/Signal.js +2 -0
- package/utils/ThemeUtils.js +12 -0
- package/utils/VectorLayerUtils.js +20 -0
- package/utils/expr_grammar/README.md +3 -0
- package/utils/expr_grammar/grammar.js +3 -0
- package/utils/expr_grammar/grammar.ne +118 -0
- package/utils/expr_grammar/test.js +13 -0
- package/utils/img/README.markers +1 -0
- package/utils/img/arrowhead.svg +4 -0
- package/utils/img/marker-icon.png +0 -0
- package/utils/img/measurehead.svg +4 -0
|
@@ -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 _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{setCurrentTask,setCurrentTaskBlocked}from"../actions/task";import Icon from"./Icon";import"./style/TaskBar.css";var TaskBar=/*#__PURE__*/function(_React$Component){function TaskBar(){var _this;_classCallCheck(this,TaskBar);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,TaskBar,[].concat(args));_defineProperty(_this,"closeClicked",function(){if(_this.props.unblockOnClose){_this.props.setCurrentTaskBlocked(false)}_this.props.setCurrentTask(null)});_defineProperty(_this,"renderRole",function(role){var children=typeof _this.props.children==="function"?_this.props.children():React.Children.toArray(_this.props.children).reduce(function(res,child){return _objectSpread(_objectSpread({},res),{},_defineProperty({},child.props.role,child))},{});return children[role]});return _this}_inherits(TaskBar,_React$Component);return _createClass(TaskBar,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this$props$currentTa,_prevProps$currentTas,_prevProps$currentTas2;var newVisible=((_this$props$currentTa=this.props.currentTask)===null||_this$props$currentTa===void 0?void 0:_this$props$currentTa.id)===this.props.task;var oldVisible=((_prevProps$currentTas=prevProps.currentTask)===null||_prevProps$currentTas===void 0?void 0:_prevProps$currentTas.id)===this.props.task;if(newVisible&&(!oldVisible||this.props.currentTask.mode!==((_prevProps$currentTas2=prevProps.currentTask)===null||_prevProps$currentTas2===void 0?void 0:_prevProps$currentTas2.mode))){this.props.onShow(this.props.currentTask.mode,this.props.currentTask.data)}else if(!newVisible&&oldVisible){this.props.onHide()}}},{key:"render",value:function render(){if(this.props.currentTask.id!==this.props.task){return null}var containerStyle={left:this.props.menuMargins.left+this.props.mapMargins.left+"px",right:this.props.menuMargins.right+this.props.mapMargins.right+"px"};return/*#__PURE__*/React.createElement("div",null,/*#__PURE__*/React.createElement("div",{className:"taskbar-container",style:containerStyle},/*#__PURE__*/React.createElement("div",{className:"taskbar "+this.props.task},/*#__PURE__*/React.createElement("div",{className:"body"},this.renderRole("body")),this.props.onHide?/*#__PURE__*/React.createElement("span",{className:"closewrapper"},/*#__PURE__*/React.createElement(Icon,{className:"close",icon:"remove",onClick:this.closeClicked,size:"large"})):null)),this.renderRole("extra"))}}])}(React.Component);_defineProperty(TaskBar,"propTypes",{children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]),currentTask:PropTypes.object,mapMargins:PropTypes.object,menuMargins:PropTypes.object,onHide:PropTypes.func,onShow:PropTypes.func,setCurrentTask:PropTypes.func,setCurrentTaskBlocked:PropTypes.func,task:PropTypes.string.isRequired,unblockOnClose:PropTypes.bool});_defineProperty(TaskBar,"defaultProps",{onShow:function onShow(){},onHide:function onHide(){}});export default connect(function(state){return{currentTask:state.task,mapMargins:state.windows.mapMargins,menuMargins:state.windows.menuMargins}},{setCurrentTask:setCurrentTask,setCurrentTaskBlocked:setCurrentTaskBlocked})(TaskBar);
|
|
@@ -0,0 +1,9 @@
|
|
|
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 _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 React from"react";import{connect}from"react-redux";import isEmpty from"lodash.isempty";import PropTypes from"prop-types";import{LayerRole,addLayer}from"../actions/layers";import{setCurrentTask}from"../actions/task";import{setThemeLayersList}from"../actions/theme";import{showNotification,closeWindow}from"../actions/windows";import LayerUtils from"../utils/LayerUtils";import LocaleUtils from"../utils/LocaleUtils";import ThemeUtils from"../utils/ThemeUtils";import Icon from"./Icon";import ResizeableWindow from"./ResizeableWindow";import"./style/ThemeLayersListWindow.css";var ThemeLayersListWindow=/*#__PURE__*/function(_React$Component){function ThemeLayersListWindow(){var _this;_classCallCheck(this,ThemeLayersListWindow);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,ThemeLayersListWindow,[].concat(args));_defineProperty(_this,"state",{selectedLayers:[]});_defineProperty(_this,"addSelectedLayers",function(){_this.addLayers(_this.state.selectedLayers.map(function(layer){return _objectSpread(_objectSpread({},layer),{},{visibility:true})}))});_defineProperty(_this,"addLayers",function(sublayers){_this.props.closeWindow("existinglayers");var existingLayer=_this.props.layers.find(function(l){return l.type==="wms"&&l.url===_this.props.theme.url});if(existingLayer){var existingSublayers=[].concat(_toConsumableArray(LayerUtils.getSublayerNames(existingLayer)),[existingLayer.name]);var filteredSublayers=[];sublayers=sublayers.filter(function(sublayer){if(existingSublayers.includes(sublayer.name)){filteredSublayers.push(sublayer.title);return false}return true});if(!isEmpty(filteredSublayers)){var text=LocaleUtils.tr("themelayerslist.existinglayers")+": "+filteredSublayers.join(",");_this.props.showNotification("existinglayers",text)}}if(!isEmpty(sublayers)){_this.props.addLayer(ThemeUtils.createThemeLayer(_this.props.theme,_this.props.themes,LayerRole.USERLAYER,sublayers))}// Show layer tree to notify user that something has happened
|
|
8
|
+
_this.props.setCurrentTask("LayerTree")});_defineProperty(_this,"itemSelectionToggled",function(layer){// If item is already in array, this means it is selected so it is removed from the array. Else it is added
|
|
9
|
+
if(_this.state.selectedLayers.includes(layer)){var index=_this.state.selectedLayers.indexOf(layer);_this.setState(function(state){var selectedLayers=state.selectedLayers.filter(function(item,j){return index!==j});return{selectedLayers:selectedLayers}})}else{_this.setState(function(state){var selectedLayers=state.selectedLayers.concat(layer);return{selectedLayers:selectedLayers}})}});_defineProperty(_this,"onClose",function(){_this.props.setThemeLayersList(null)});return _this}_inherits(ThemeLayersListWindow,_React$Component);return _createClass(ThemeLayersListWindow,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(this.props.theme!==prevProps.theme){this.props.closeWindow("existinglayers");this.setState({selectedLayers:[]})}}},{key:"renderLayer",value:function renderLayer(layer){var _this2=this;var checkboxstate=this.state.selectedLayers.includes(layer)?"checked":"unchecked";var addLayerTitle=LocaleUtils.tr("themelayerslist.addlayer");return/*#__PURE__*/React.createElement("div",{className:"layerlist-item",key:layer.name},/*#__PURE__*/React.createElement(Icon,{className:"layerlist-item-checkbox",icon:checkboxstate,onClick:function onClick(){return _this2.itemSelectionToggled(layer)}}),/*#__PURE__*/React.createElement("span",{className:"layerlist-item-title",title:layer.title},layer.title),/*#__PURE__*/React.createElement(Icon,{className:"layerlist-item-add",icon:"plus",onClick:function onClick(){return _this2.addLayers([layer])},title:addLayerTitle}))}},{key:"renderLayerGroup",value:function renderLayerGroup(layer){var _this3=this;return layer.sublayers.map(function(sublayer){if(sublayer.sublayers){return/*#__PURE__*/React.createElement("div",{className:"layerlist-group",key:sublayer.name},_this3.renderLayer(sublayer),/*#__PURE__*/React.createElement("div",{className:"layerlist-group-items"},_this3.renderLayerGroup(sublayer)))}else{return _this3.renderLayer(sublayer)}})}},{key:"render",value:function render(){if(!this.props.theme){return null}return/*#__PURE__*/React.createElement(ResizeableWindow,{icon:"layers",initialHeight:this.props.windowSize.height,initialWidth:this.props.windowSize.width,onClose:this.onClose,title:LocaleUtils.tr("themelayerslist.addlayerstotheme")},/*#__PURE__*/React.createElement("div",{className:"theme-list-window-body",role:"body"},/*#__PURE__*/React.createElement("h4",{className:"theme-list-window-title"},this.props.theme.title),/*#__PURE__*/React.createElement("div",{className:"theme-list-window-frame"},this.renderLayerGroup(this.props.theme)),/*#__PURE__*/React.createElement("button",{className:"button",disabled:!this.state.selectedLayers.length,onClick:this.addSelectedLayers},LocaleUtils.tr("themelayerslist.addselectedlayers"))))}}])}(React.Component);_defineProperty(ThemeLayersListWindow,"propTypes",{addLayer:PropTypes.func,closeWindow:PropTypes.func,layers:PropTypes.array,setCurrentTask:PropTypes.func,setThemeLayersList:PropTypes.func,showNotification:PropTypes.func,theme:PropTypes.object,themes:PropTypes.object,windowSize:PropTypes.object});var selector=function selector(state){return{layers:state.layers.flat,theme:state.theme.themelist,themes:state.theme.themes}};export default connect(selector,{closeWindow:closeWindow,setThemeLayersList:setThemeLayersList,setCurrentTask:setCurrentTask,addLayer:addLayer,showNotification:showNotification})(ThemeLayersListWindow);
|
|
@@ -0,0 +1,12 @@
|
|
|
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 _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 _n2=0,F=function F(){};return{s:F,n:function n(){return _n2>=r.length?{done:!0}:{done:!1,value:r[_n2++]}},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 _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 React from"react";import{connect}from"react-redux";import axios from"axios";import{remove as removeDiacritics}from"diacritics";import isEmpty from"lodash.isempty";import PropTypes from"prop-types";import{setActiveLayerInfo}from"../actions/layerinfo";import{LayerRole,addLayer}from"../actions/layers";import{setUserInfoFields}from"../actions/localConfig";import{setCurrentTask}from"../actions/task";import{setCurrentTheme,setThemeLayersList}from"../actions/theme";import ConfigUtils from"../utils/ConfigUtils";import LocaleUtils from"../utils/LocaleUtils";import ThemeUtils from"../utils/ThemeUtils";import Icon from"./Icon";import"./style/ThemeList.css";var ThemeList=/*#__PURE__*/function(_React$Component){function ThemeList(){var _this;_classCallCheck(this,ThemeList);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,ThemeList,[].concat(args));_defineProperty(_this,"state",{expandedGroups:[],visibleThemeInfoMenu:null});_defineProperty(_this,"groupMatchesFilter",function(group,filter){if(group&&group.items){for(var i=0,n=group.items.length;i<n;++i){if(removeDiacritics(group.items[i].title).match(filter)||removeDiacritics(group.items[i].keywords||"").match(filter)||removeDiacritics(group.items[i]["abstract"]||"").match(filter)){return true}}}if(group&&group.subdirs){for(var _i=0,_n=group.subdirs.length;_i<_n;++_i){if(_this.groupMatchesFilter(group.subdirs[_i],filter)){return true}}}return false});_defineProperty(_this,"renderThemeGroup",function(group,filter){var assetsPath=ConfigUtils.getAssetsPath();var subdirs=group&&group.subdirs?group.subdirs:[];if(filter){subdirs=subdirs.filter(function(subdir){return _this.groupMatchesFilter(subdir,filter)})}var subtree=subdirs.map(function(subdir){var expanded=!_this.props.collapsibleGroups||filter||_this.state.expandedGroups.includes(subdir.id)||_this.props.activeTheme&&_this.groupContainsActiveTheme(subdir);if(isEmpty(subdir.items)&&isEmpty(subdir.subdirs)){return null}return/*#__PURE__*/React.createElement("li",{className:"theme-group-header "+(expanded?"theme-group-header-expanded":""),key:subdir.id},/*#__PURE__*/React.createElement("span",{onClick:function onClick(){return _this.setState(function(state){return{expandedGroups:expanded?state.expandedGroups.filter(function(id){return id!==subdir.id}):[].concat(_toConsumableArray(state.expandedGroups),[subdir.id])}})}},_this.props.collapsibleGroups?/*#__PURE__*/React.createElement(Icon,{icon:expanded?"collapse":"expand"}):null," ",subdir.title),expanded?_this.renderThemeGroup(subdir,filter):null)});var activeThemeId=_this.props.activeTheme?_this.props.activeTheme.id:null;var addLayersTitle=LocaleUtils.tr("themeswitcher.addlayerstotheme");var addTitle=LocaleUtils.tr("themeswitcher.addtotheme");var changeDefaultUrlTitle=LocaleUtils.tr("themeswitcher.changedefaulttheme");var openTabTitle=LocaleUtils.tr("themeswitcher.openintab");var username=ConfigUtils.getConfigProp("username");return/*#__PURE__*/React.createElement("ul",{className:"theme-group-body"},(!isEmpty(group.items)?group.items:[]).map(function(item){var infoLinks=(item.themeInfoLinks&&item.themeInfoLinks.entries||[]).map(function(name){return _this.props.themes.themeInfoLinks.find(function(entry){return entry.name===name})}).filter(function(entry){return entry});var matches=[];if(filter){var match=null;if(match=removeDiacritics(item.title).match(filter)){matches.push([LocaleUtils.tr("themeswitcher.match.title"),_this.extractSubstr(match,item.title),item.title])}if(match=removeDiacritics(item.keywords||"").match(filter)){matches.push([LocaleUtils.tr("themeswitcher.match.keywords"),_this.extractSubstr(match,item.keywords),item.keywords])}if(match=removeDiacritics(item["abstract"]||"").match(filter)){matches.push([LocaleUtils.tr("themeswitcher.match.abstract"),_this.extractSubstr(match,item["abstract"]),item["abstract"]])}if(isEmpty(matches)){return null}}var title=item["abstract"];if(title&&item.keywords){title+="\n\n"}if(item.keywords){title+=LocaleUtils.tr("themeswitcher.match.keywords")+": "+item.keywords}return/*#__PURE__*/React.createElement("li",{className:activeThemeId===item.id?"theme-item theme-item-active":"theme-item",key:item.id,onClick:function onClick(){return _this.setTheme(item)},title:title},/*#__PURE__*/React.createElement("div",{className:"theme-item-title",title:item.title},/*#__PURE__*/React.createElement("span",null,item.title)),!isEmpty(infoLinks)?/*#__PURE__*/React.createElement("div",{className:"theme-item-info-menu "+(_this.state.visibleThemeInfoMenu?"theme-item-info-menu-active":""),onClick:function onClick(ev){return _this.toggleThemeInfoMenu(ev,item.id)}},/*#__PURE__*/React.createElement(Icon,{icon:"info"}),item.themeInfoLinks.title?/*#__PURE__*/React.createElement("span",null,item.themeInfoLinks.title):LocaleUtils.tr(item.themeInfoLinks.titleMsgId),/*#__PURE__*/React.createElement(Icon,{icon:"triangle-down"}),_this.state.visibleThemeInfoMenu===item.id?/*#__PURE__*/React.createElement("div",{className:"theme-item-info-links",onClick:function onClick(ev){return ev.stopPropagation()}},infoLinks.map(function(link){return/*#__PURE__*/React.createElement("a",{href:link.url,key:link.name,target:link.target},link.title)})):null):null,/*#__PURE__*/React.createElement("div",{className:"theme-item-body"},item.description?/*#__PURE__*/React.createElement("div",{className:"theme-item-description",dangerouslySetInnerHTML:{__html:item.description}}):null,/*#__PURE__*/React.createElement("img",{className:"theme-item-thumbnail",src:assetsPath+"/"+item.thumbnail})),!item.restricted?/*#__PURE__*/React.createElement("div",{className:"theme-item-icons"},_this.props.allowAddingOtherThemeLayers?/*#__PURE__*/React.createElement(Icon,{icon:"layers",onClick:function onClick(ev){return _this.getThemeLayersToList(ev,item)},title:addLayersTitle}):null,_this.props.allowAddingOtherThemes?/*#__PURE__*/React.createElement(Icon,{icon:"plus",onClick:function onClick(ev){return _this.addThemeLayers(ev,item)},title:addTitle}):null,/*#__PURE__*/React.createElement(Icon,{icon:"open_link",onClick:function onClick(ev){return _this.openInTab(ev,item.id)},title:openTabTitle}),_this.props.showDefaultThemeSelector&&username?/*#__PURE__*/React.createElement(Icon,{className:_this.extractThemeId(_this.props.defaultUrlParams)===item.id?"icon-active":"",icon:"new",onClick:function onClick(ev){return _this.changeDefaultUrlParams(ev,item.id)},title:changeDefaultUrlTitle}):null):/*#__PURE__*/React.createElement("div",{className:"theme-item-restricted-overlay"},/*#__PURE__*/React.createElement(Icon,{icon:"lock"})),isEmpty(matches)?null:/*#__PURE__*/React.createElement("div",{className:"theme-item-filterinfo-overlay"},matches.map(function(match){return/*#__PURE__*/React.createElement("div",{key:match[0],title:match[2]},/*#__PURE__*/React.createElement("i",null,match[0],":"),/*#__PURE__*/React.createElement("br",null),match[1][0],/*#__PURE__*/React.createElement("b",null,match[1][1]),match[1][2])})))}),subtree)});_defineProperty(_this,"groupContainsActiveTheme",function(group){var _iterator=_createForOfIteratorHelper(group.items||[]),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var item=_step.value;if(item.id===_this.props.activeTheme.id){return true}}}catch(err){_iterator.e(err)}finally{_iterator.f()}var _iterator2=_createForOfIteratorHelper(group.subdirs||[]),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var subdir=_step2.value;if(_this.groupContainsActiveTheme(subdir)){return true}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}return false});_defineProperty(_this,"extractSubstr",function(match,text){var cleanText=removeDiacritics(text);var cleanFilter=removeDiacritics(_this.props.filter);var padding=Math.round((20-cleanFilter.length)/2);// Add unused right padding to left
|
|
8
|
+
padding+=-Math.min(cleanText.length-(match.index+cleanFilter.length)-padding,0);var leftStart=Math.max(match.index-padding,0);var leftLen=Math.min(match.index,padding);return[(leftStart>0?"\u2026":"")+cleanText.substr(leftStart,leftLen),cleanText.substr(match.index,cleanFilter.length),cleanText.substr(match.index+cleanFilter.length)]});_defineProperty(_this,"extractThemeId",function(text){return Object.fromEntries(text.split("&").map(function(x){return x.split("=")})).t});_defineProperty(_this,"setTheme",function(theme){if(theme.restricted){// eslint-disable-next-line
|
|
9
|
+
alert(LocaleUtils.tr("themeswitcher.restrictedthemeinfo"));return}var hasUserLayer=_this.props.layers.find(function(layer){return layer.role===LayerRole.USERLAYER});var preserveNonThemeLayers=ConfigUtils.getConfigProp("preserveNonThemeLayersOnThemeSwitch",_this.props.activeTheme);// eslint-disable-next-line
|
|
10
|
+
if(hasUserLayer&&!preserveNonThemeLayers&&!confirm(LocaleUtils.tr("themeswitcher.confirmswitch"))){return}_this.props.setActiveLayerInfo(null,null);if(_this.props.showLayerAfterChangeTheme){_this.props.setCurrentTask("LayerTree")}else{_this.props.setCurrentTask(null)}_this.props.changeTheme(theme,_this.props.themes,!_this.props.dontPreserveSettingsOnSwitch)});_defineProperty(_this,"toggleThemeInfoMenu",function(ev,themeId){ev.stopPropagation();_this.setState(function(state){return{visibleThemeInfoMenu:state.visibleThemeInfoMenu===themeId?null:themeId}})});_defineProperty(_this,"addThemeLayers",function(ev,theme){ev.stopPropagation();_this.props.addLayer(ThemeUtils.createThemeLayer(theme,_this.props.themes,LayerRole.USERLAYER));// Show layer tree to notify user that something has happened
|
|
11
|
+
_this.props.setCurrentTask("LayerTree")});_defineProperty(_this,"getThemeLayersToList",function(ev,theme){ev.stopPropagation();_this.props.setThemeLayersList(theme);// Show layer tree to notify user that something has happened
|
|
12
|
+
_this.props.setCurrentTask("LayerTree")});_defineProperty(_this,"openInTab",function(ev,themeid){ev.stopPropagation();var url=location.href.split("?")[0]+"?t="+themeid;window.open(url,"_blank")});_defineProperty(_this,"changeDefaultUrlParams",function(ev,themeid){ev.stopPropagation();var params={default_url_params:"t="+themeid};var baseurl=location.href.split("?")[0].replace(/\/$/,"");axios.get(baseurl+"/setuserinfo",{params:params}).then(function(response){if(!response.data.success){/* eslint-disable-next-line */alert(LocaleUtils.tr("settings.defaultthemefailed",response.data.error))}else{_this.props.setUserInfoFields(response.data.fields)}})["catch"](function(e){/* eslint-disable-next-line */alert(LocaleUtils.tr("settings.defaultthemefailed",String(e)))})});return _this}_inherits(ThemeList,_React$Component);return _createClass(ThemeList,[{key:"render",value:function render(){var filter=this.props.filter?new RegExp(removeDiacritics(this.props.filter).replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&"),"i"):null;return/*#__PURE__*/React.createElement("div",{className:"ThemeList"},this.renderThemeGroup(this.props.themes,filter))}}])}(React.Component);_defineProperty(ThemeList,"propTypes",{activeTheme:PropTypes.object,addLayer:PropTypes.func,allowAddingOtherThemeLayers:PropTypes.bool,allowAddingOtherThemes:PropTypes.bool,changeTheme:PropTypes.func,collapsibleGroups:PropTypes.bool,defaultUrlParams:PropTypes.string,dontPreserveSettingsOnSwitch:PropTypes.bool,filter:PropTypes.string,layers:PropTypes.array,mapConfig:PropTypes.object,setActiveLayerInfo:PropTypes.func,setCurrentTask:PropTypes.func,setThemeLayersList:PropTypes.func,setUserInfoFields:PropTypes.func,showDefaultThemeSelector:PropTypes.bool,showLayerAfterChangeTheme:PropTypes.bool,themes:PropTypes.object});var selector=function selector(state){var _state$localConfig$us;return{themes:state.theme.themes||{},layers:state.layers.flat,mapConfig:state.map,defaultUrlParams:((_state$localConfig$us=state.localConfig.user_infos)===null||_state$localConfig$us===void 0?void 0:_state$localConfig$us.default_url_params)||""}};export default connect(selector,{changeTheme:setCurrentTheme,setCurrentTask:setCurrentTask,addLayer:addLayer,setActiveLayerInfo:setActiveLayerInfo,setThemeLayersList:setThemeLayersList,setUserInfoFields:setUserInfoFields})(ThemeList);
|
|
@@ -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 _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 React from"react";import{connect}from"react-redux";import Mousetrap from"mousetrap";import PropTypes from"prop-types";import{setCurrentTask}from"../actions/task";import LocaleUtils from"../utils/LocaleUtils";import Icon from"./Icon";import"./style/Toolbar.css";var Toolbar=/*#__PURE__*/function(_React$Component){function Toolbar(props){var _this;_classCallCheck(this,Toolbar);_this=_callSuper(this,Toolbar,[props]);_defineProperty(_this,"renderToolbarItem",function(item){var active=_this.props.currentTask===(item.task||item.key)&&_this.props.currentTaskMode===(item.mode||null);var title=LocaleUtils.tr("appmenu.items."+item.key+(item.mode||""));return/*#__PURE__*/React.createElement(Icon,{className:active?"toolbar-item-active":"",icon:item.icon,key:item.key+item.mode,onClick:function onClick(){return _this.itemClicked(item,active)},size:"xlarge",title:title})});_defineProperty(_this,"itemClicked",function(item,active){if(item.url){_this.props.openExternalUrl(item.url,item.target,LocaleUtils.tr("appmenu.items."+item.key),item.icon)}else if(active){_this.props.setCurrentTask(null)}else{_this.props.setCurrentTask(item.task||item.key,item.mode,item.mapClickAction||(item.identifyEnabled?"identify":null))}});_this.boundShortcuts=[];return _this}_inherits(Toolbar,_React$Component);return _createClass(Toolbar,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this2=this;if(this.props.toolbarItems!==prevProps.toolbarItems){this.boundShortcuts.forEach(function(shortcut){return Mousetrap.unbind(shortcut)});this.boundShortcuts=[];if(this.props.toolbarItemsShortcutPrefix){var index=1;this.props.toolbarItems.forEach(function(item){var shortcut=_this2.props.toolbarItemsShortcutPrefix+"+"+index;Mousetrap.bind(shortcut,function(){var active=_this2.props.currentTask===(item.task||item.key)&&_this2.props.currentTaskMode===(item.mode||null);_this2.itemClicked(item,active);return false});_this2.boundShortcuts.push(shortcut);index+=1})}}}},{key:"render",value:function render(){return/*#__PURE__*/React.createElement("div",{className:"Toolbar"},this.props.toolbarItems.map(this.renderToolbarItem))}}])}(React.Component);_defineProperty(Toolbar,"propTypes",{currentTask:PropTypes.string,currentTaskMode:PropTypes.string,openExternalUrl:PropTypes.func,setCurrentTask:PropTypes.func,toolbarItems:PropTypes.array,toolbarItemsShortcutPrefix:PropTypes.string});export default connect(function(state){return{currentTask:state.task.id,currentTaskMode:state.task.mode}},{setCurrentTask:setCurrentTask})(Toolbar);
|
|
@@ -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 _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 React from"react";import{connect}from"react-redux";import PropTypes from"prop-types";import{closeWindow,closeAllWindows,NotificationType}from"../actions/windows";import LocaleUtils from"../utils/LocaleUtils";import Icon from"./Icon";import ResizeableWindow from"./ResizeableWindow";import"./style/WindowManager.css";var WindowManager=/*#__PURE__*/function(_React$Component){function WindowManager(){var _this;_classCallCheck(this,WindowManager);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,WindowManager,[].concat(args));_defineProperty(_this,"renderIframeDialog",function(key,data){var extraControls=[];if(_this.boolVal(data.options.print,true)!==false){extraControls.push({icon:"print",callback:function callback(){return _this.printIframe(key)}})}var dockable=_this.boolVal(data.options.dockable)!==false;var docked=_this.boolVal(data.options.docked)!==false;var splitScreenWhenDocked=_this.boolVal(data.options.splitScreenWhenDocked)!==false;return/*#__PURE__*/React.createElement(ResizeableWindow,{baseZIndex:data.options.zIndex||10,dockable:dockable||docked,extraControls:extraControls,icon:data.options.icon||"",initialHeight:data.options.h||480,initialWidth:data.options.w||640,initiallyDocked:docked,key:key,onClose:function onClose(){return _this.closeWindow(key)},splitScreenWhenDocked:splitScreenWhenDocked,title:LocaleUtils.tr(data.options.title||"windows."+key)},/*#__PURE__*/React.createElement("iframe",{className:"windows-iframe-dialog-body",name:key,role:"body",src:data.url}))});_defineProperty(_this,"renderNotification",function(key,data){var className="windows-notification-info";if(data.notificationType===NotificationType.WARN){className="windows-notification-warn"}else if(data.notificationType===NotificationType.ERROR){className="windows-notification-error"}return/*#__PURE__*/React.createElement("div",{className:className,key:key},/*#__PURE__*/React.createElement("div",null,data.text),/*#__PURE__*/React.createElement("span",null,/*#__PURE__*/React.createElement(Icon,{icon:"remove",onClick:function onClick(){return _this.closeWindow(key)},size:"large"})))});_defineProperty(_this,"closeWindow",function(key){_this.props.closeWindow(key)});_defineProperty(_this,"printIframe",function(key){if(window.frames[key]){window.frames[key].focus();window.frames[key].print()}});_defineProperty(_this,"boolVal",function(value){var delft=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(value===undefined||value===null){return delft}var textVal=(""+value).toLowerCase();if(textVal===""){return delft}return["0","false"].includes(textVal)?false:true});_defineProperty(_this,"get",function(obj,key,deflt){if(obj[key]===undefined){return deflt}return obj[key]});return _this}_inherits(WindowManager,_React$Component);return _createClass(WindowManager,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(this.props.currentTheme!==prevProps.currentTheme){this.props.closeAllWindows()}}},{key:"render",value:function render(){var _this2=this;var notificationIndex=0;return[].concat(_toConsumableArray(Object.entries(this.props.windows).map(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],data=_ref2[1];if(data.type==="iframedialog"){return _this2.renderIframeDialog(key,data)}return null})),[/*#__PURE__*/React.createElement("div",{className:"windows-notification-container",key:"notifications-container"},Object.entries(this.props.windows).map(function(_ref3){var _ref4=_slicedToArray(_ref3,2),key=_ref4[0],data=_ref4[1];if(data.type==="notification"){return _this2.renderNotification(key,data,notificationIndex++)}else{return null}}))])}}])}(React.Component);_defineProperty(WindowManager,"propTypes",{closeAllWindows:PropTypes.func,closeWindow:PropTypes.func,currentTheme:PropTypes.object,windows:PropTypes.object});var selector=function selector(state){return{windows:state.windows.entries,currentTheme:state.theme.current}};export default connect(selector,{closeWindow:closeWindow,closeAllWindows:closeAllWindows})(WindowManager);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _arrayWithHoles(r){if(Array.isArray(r))return r}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 React from"react";import{connect}from"react-redux";import ol from"openlayers";import PropTypes from"prop-types";import{setLayerLoading}from"../../actions/layers";import CoordinatesUtils from"../../utils/CoordinatesUtils";import MapUtils from"../../utils/MapUtils";import Signal from"../../utils/Signal";import LayerRegistry from"./layers/index";export var OlLayerAdded=new Signal;export var OlLayerUpdated=new Signal;var OlLayer=/*#__PURE__*/function(_React$Component){function OlLayer(props){var _this;_classCallCheck(this,OlLayer);_this=_callSuper(this,OlLayer,[props]);_defineProperty(_this,"makeOptions",function(options){var _options$opacity,_options$visibility;var projection=options.srs||options.crs||options.projection||_this.props.projection;return _objectSpread(_objectSpread({},options),{},{projection:projection,opacity:(_options$opacity=options.opacity)!==null&&_options$opacity!==void 0?_options$opacity:255,visibility:(_options$visibility=options.visibility)!==null&&_options$visibility!==void 0?_options$visibility:true,minResolution:typeof options.minScale==="number"?MapUtils.getResolutionsForScales([options.minScale],projection)[0]:undefined,maxResolution:typeof options.maxScale==="number"?MapUtils.getResolutionsForScales([options.maxScale],projection)[0]:undefined})});_defineProperty(_this,"createLayer",function(options){if(options.type==="group"){_this.layer=new ol.layer.Group({zIndex:_this.props.zIndex});_this.layer.setLayers(new ol.Collection(options.items.map(function(item){var layerCreator=LayerRegistry[item.type];if(layerCreator){var sublayer=layerCreator.create(_this.makeOptions(item),_this.props.map);sublayer.set("id",options.id+"#"+item.name);return sublayer}else{return null}}).filter(function(x){return x})))}else{var layerCreator=LayerRegistry[options.type];if(layerCreator){_this.layer=layerCreator.create(options,_this.props.map)}}if(_this.layer){_this.layer.set("id",options.id);// WMS layer handles visibility and opacity internally
|
|
9
|
+
if(options.type!=="wms"){_this.layer.setVisible(_this.layer.get("empty")!==true&&options.visibility);_this.layer.setOpacity(options.opacity/255)}_this.layer.setZIndex(_this.props.zIndex);_this.addLayer(_this.layer,options)}});_defineProperty(_this,"updateLayer",function(newOptions,oldOptions){// optimization to avoid to update the layer if not necessary
|
|
10
|
+
if(newOptions===oldOptions){return}var layerCreator=LayerRegistry[_this.props.options.type];if(layerCreator&&layerCreator.update){layerCreator.update(_this.layer,newOptions,oldOptions,_this.props.map);OlLayerUpdated.notify(_this.layer)}});_defineProperty(_this,"addLayer",function(layer,options){_this.props.map.addLayer(layer);OlLayerAdded.notify(layer);layer.on("prerender",function(event){var ctx=event.context;ctx.save();ctx.beginPath();if(_this.props.swipe!==null&&_this.props.swipe!==undefined){var width=ctx.canvas.width*(_this.props.swipe/100);ctx.rect(0,0,width,ctx.canvas.height);ctx.clip()}});layer.on("postrender",function(event){event.context.restore()});if(options.zoomToExtent&&options.bbox&&options.bbox.bounds){var map=_this.props.map;var extent=CoordinatesUtils.reprojectBbox(options.bbox.bounds,options.bbox.crs,map.getView().getProjection());try{map.getView().fit(extent,map.getSize())}catch(e){/* pass */}}var sublayers={};if(layer instanceof ol.layer.Group){layer.getLayers().forEach(function(sublayer){sublayers[options.id+"#"+sublayer.get("id")]=sublayer})}else{sublayers[options.id]=layer}Object.entries(sublayers).map(function(_ref){var _ref2=_slicedToArray(_ref,2),id=_ref2[0],sublayer=_ref2[1];if(sublayer.getSource()&&sublayer.getSource().getImageLoadFunction){sublayer.getSource().on("imageloadstart",function(){_this.props.setLayerLoading(id,true)});sublayer.getSource().on("imageloadend",function(){_this.props.setLayerLoading(id,false)});sublayer.getSource().on("imageloaderror",function(){_this.props.setLayerLoading(id,false)})}else if(sublayer.getSource()&&sublayer.getSource().getTileLoadFunction){sublayer.getSource().on("tileloadstart",function(){if(_this.tilestoload===0){_this.props.setLayerLoading(id,true)}_this.tilestoload++});sublayer.getSource().on("tileloadend",function(){_this.tilestoload--;if(_this.tilestoload===0){_this.props.setLayerLoading(id,false)}});sublayer.getSource().on("tileloaderror",function(){_this.tilestoload--;if(_this.tilestoload===0){_this.props.setLayerLoading(id,false)}})}else if(sublayer.getSource()&&sublayer.getSource()instanceof ol.source.Vector&&sublayer.getSource().getUrl()){sublayer.getSource().on("featuresloadstart",function(){_this.props.setLayerLoading(id,true)});sublayer.getSource().on("featuresloadend",function(){_this.props.setLayerLoading(id,false)});sublayer.getSource().on("featuresloaderror",function(){_this.props.setLayerLoading(id,false)})}})});_this.layer=null;return _this}_inherits(OlLayer,_React$Component);return _createClass(OlLayer,[{key:"componentDidMount",value:function componentDidMount(){this.tilestoload=0;this.createLayer(this.makeOptions(this.props.options))}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(!this.layer){return}var newOptions=this.makeOptions(this.props.options);var oldOptions=this.makeOptions(prevProps.options);this.updateLayer(newOptions,oldOptions);// WMS layer handles visibility and opacity internally
|
|
11
|
+
if(newOptions.type!=="wms"){this.layer.setVisible(newOptions.visibility);this.layer.setOpacity(newOptions.opacity/255)}this.layer.setZIndex(this.props.zIndex);if(this.props.swipe!==prevProps.swipe){this.props.map.render()}}},{key:"componentWillUnmount",value:function componentWillUnmount(){if(this.layer&&this.props.map){this.props.map.removeLayer(this.layer)}}},{key:"render",value:function render(){var layerCreator=LayerRegistry[this.props.options.type];if(layerCreator&&layerCreator.render){// NOTE: required for Google Maps layer
|
|
12
|
+
return layerCreator.render(this.props.options,this.props.map,this.layer)}return null}}])}(React.Component);_defineProperty(OlLayer,"propTypes",{map:PropTypes.object,options:PropTypes.object,projection:PropTypes.string,setLayerLoading:PropTypes.func,swipe:PropTypes.number,zIndex:PropTypes.number});export default connect(function(){return{}},{setLayerLoading:setLayerLoading})(OlLayer);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
.ol-popup {
|
|
2
|
+
position: absolute;
|
|
3
|
+
text-align: center;
|
|
4
|
+
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
|
5
|
+
-ms-transform: translate(-50%,-100%); /* IE 9 */
|
|
6
|
+
-webkit-transform: translate(-50%,-100%); /* Safari */
|
|
7
|
+
transform: translate(-50%,-100%);
|
|
8
|
+
}
|
|
9
|
+
a.ol-popup-close-btn {
|
|
10
|
+
position: absolute;
|
|
11
|
+
top: 0;
|
|
12
|
+
right: 0;
|
|
13
|
+
padding: 4px 4px 0 0;
|
|
14
|
+
text-align: center;
|
|
15
|
+
width: 18px;
|
|
16
|
+
height: 14px;
|
|
17
|
+
font: 16px/14px Tahoma, Verdana, sans-serif;
|
|
18
|
+
color: #c3c3c3;
|
|
19
|
+
text-decoration: none;
|
|
20
|
+
font-weight: bold;
|
|
21
|
+
background: transparent;
|
|
22
|
+
}
|
|
23
|
+
.ol-popup-cnt-wrapper {
|
|
24
|
+
padding: 1px;
|
|
25
|
+
text-align: left;
|
|
26
|
+
border-radius: 12px;
|
|
27
|
+
}
|
|
28
|
+
.ol-popup-cnt-wrapper, .ol-popup-tip {
|
|
29
|
+
background: white;
|
|
30
|
+
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
|
31
|
+
}
|
|
32
|
+
.ol-popup-cnt {
|
|
33
|
+
margin: 13px 19px;
|
|
34
|
+
line-height: 1.4;
|
|
35
|
+
white-space: nowrap;
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
.ol-popup-tip-wrapper {
|
|
39
|
+
margin: 0 auto;
|
|
40
|
+
width: 40px;
|
|
41
|
+
height: 20px;
|
|
42
|
+
position: relative;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
.ol-popup-tip {
|
|
47
|
+
width: 17px;
|
|
48
|
+
height: 17px;
|
|
49
|
+
padding: 1px;
|
|
50
|
+
margin: -10px auto 0;
|
|
51
|
+
-webkit-transform: rotate(45deg);
|
|
52
|
+
-moz-transform: rotate(45deg);
|
|
53
|
+
-ms-transform: rotate(45deg);
|
|
54
|
+
-o-transform: rotate(45deg);
|
|
55
|
+
transform: rotate(45deg);
|
|
56
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
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 _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
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 ol from"openlayers";import CoordinatesUtils from"../../utils/CoordinatesUtils";import LocaleUtils from"../../utils/LocaleUtils";import"./OlLocate.css";var createPopup=function createPopup(){var pop=document.createElement("div");pop.setAttribute("class","ol-popup");var popDismis=document.createElement("a");popDismis.setAttribute("class","ol-popup-close-btn");popDismis.setAttribute("href","#close");popDismis.innerHTML="x";var popCntWrap=document.createElement("div");popCntWrap.setAttribute("class","ol-popup-cnt-wrapper");var popCnt=document.createElement("div");popCnt.setAttribute("class","ol-popup-cnt");popCntWrap.appendChild(popCnt);var popTipWrap=document.createElement("div");popTipWrap.setAttribute("class","ol-popup-tip-wrapper");var popTip=document.createElement("div");popTip.setAttribute("class","ol-popup-tip");popTipWrap.appendChild(popTip);pop.appendChild(popDismis);pop.appendChild(popCntWrap);pop.appendChild(popTipWrap);return pop};var OlLocate=/*#__PURE__*/function(_ol$Object){function OlLocate(map,optOptions){var _this;_classCallCheck(this,OlLocate);_this=_callSuper(this,OlLocate);_defineProperty(_this,"start",function(){_this.geolocate.on("error",_this.options.onLocationError,_this);_this.follow=_this.options.follow;_this.geolocate.setTracking(true);_this.layer.setMap(_this.map);_this.map.addOverlay(_this.overlay);if(_this.options.showPopup){_this.map.on("click",_this.mapClick,_this);_this.map.on("touch",_this.mapClick,_this)}if(_this.options.stopFollowingOnDrag){_this.map.on("pointerdrag",_this.stopFollow,_this)}if(!_this.p){_this.set("state","LOCATING");_this.set("position",null)}else{_this._updatePosFt()}});_defineProperty(_this,"stop",function(){_this.geolocate.un("error",_this.options.onLocationError,_this);_this.geolocate.setTracking(false);_this.popup.hide=true;_this.map.removeOverlay(_this.overlay);_this.layer.setMap(null);if(_this.options.showPopup){_this.map.un("click",_this.mapClick);_this.map.un("touch",_this.mapClick)}if(_this.options.stopFollowingOnDrag&&_this.follow){_this.map.un("pointerdrag",_this.stopFollow,_this)}_this.set("state","DISABLED");_this.set("position",null)});_defineProperty(_this,"startFollow",function(){_this.follow=true;if(_this.options.stopFollowingOnDrag){_this.map.on("pointerdrag",_this.stopFollow,_this)}if(_this.p){_this._updatePosFt()}});_defineProperty(_this,"stopFollow",function(){_this.follow=false;_this.map.un("pointerdrag",_this.stopFollow,_this);_this.set("state","ENABLED")});_defineProperty(_this,"updateView",function(point){if(_this.follow){_this.map.getView().setCenter(point.getCoordinates());if(!_this.options.keepCurrentZoomLevel){_this.map.getView().setZoom(_this.options.locateOptions.maxZoom)}}});_defineProperty(_this,"onLocationError",function(err){// eslint-disable-next-line
|
|
9
|
+
alert(err.message)});_defineProperty(_this,"mapClick",function(evt){var feature=_this.map.forEachFeatureAtPixel(evt.pixel,function(ft){return ft});if(feature&&feature.get("id")==="_locate-pos"&&_this.popup.hidden){_this._updatePopUpCnt()}else if(!_this.popup.hidden){_this.popUp.hidden=true}});_defineProperty(_this,"setStrings",function(newStrings){_this.options.strings=_objectSpread(_objectSpread({},_this.options.strings),newStrings)});_defineProperty(_this,"setProjection",function(projection){_this.geolocate.setProjection(projection)});_defineProperty(_this,"_updatePosFt",function(){var state=_this.get("state");var nState=_this.follow?"FOLLOWING":"ENABLED";if(nState!==state){_this.set("state",nState)}var p=_this.geolocate.getPosition();var wgsPos=CoordinatesUtils.reproject(p,_this.map.getView().getProjection(),"EPSG:4326");_this.set("position",wgsPos);_this.p=p;var point=new ol.geom.Point(p);if(_this.options.drawCircle){var accuracy=new ol.geom.Circle(point.getCoordinates(),_this.geolocate.getAccuracy());_this.posFt.setGeometry(new ol.geom.GeometryCollection([point,accuracy]))}else{_this.posFt.setGeometry(new ol.geom.GeometryCollection([point]))}if(!_this.popup.hidden){_this._updatePopUpCnt()}if(_this.follow){_this.updateView(point)}// Update only once
|
|
10
|
+
if(!_this.options.remainActive){_this.geolocate.setTracking(false)}});_defineProperty(_this,"_updatePopUpCnt",function(){var distance;var unit;if(_this.options.metric){distance=_this.geolocate.getAccuracy();unit=_this.options.strings.metersUnit}else{distance=Math.round(_this.geolocate.getAccuracy()*3.2808399);unit=_this.options.strings.feetUnit}var cnt=_this.options.strings.popup.replace("{distance}",distance);_this.popCnt.innerHTML=cnt.replace("{unit}",unit);_this.overlay.setPosition(_this.posFt.getGeometry().getGeometries()[0].getCoordinates());_this.popup.hidden=false});_defineProperty(_this,"_getDefaultStyles",function(){return new ol.style.Style({image:new ol.style.Circle({radius:6,fill:new ol.style.Fill({color:"rgba(42,147,238,0.7)"}),stroke:new ol.style.Stroke({color:"rgba(19,106,236,1)",width:2})}),fill:new ol.style.Fill({color:"rgba(19,106,236,0.15)"}),stroke:new ol.style.Stroke({color:"rgba(19,106,236,1)",width:2})})});_this.set("state","DISABLED");_this.map=map;var defOptions={drawCircle:true,// draw accuracy circle
|
|
11
|
+
follow:true,// follow with zoom and pan the user's location
|
|
12
|
+
stopFollowingOnDrag:false,// if follow is true, stop following when map is dragged (deprecated)
|
|
13
|
+
// if true locate control remains active on click even if the user's location is in view.
|
|
14
|
+
// clicking control will just pan to location not implemented
|
|
15
|
+
remainActive:true,locateStyle:_this._getDefaultStyles(),metric:true,onLocationError:_this.onLocationError,// keep the current map zoom level when displaying the user's location. (if 'false', use maxZoom)
|
|
16
|
+
keepCurrentZoomLevel:false,showPopup:false,// display a popup when the user click on the inner marker
|
|
17
|
+
strings:{metersUnit:LocaleUtils.tr("locate.metersUnit"),feetUnit:LocaleUtils.tr("locate.feetUnit"),popup:LocaleUtils.tr("locate.popup")},locateOptions:{maximumAge:2000,enableHighAccuracy:false,timeout:10000,maxZoom:18}};_this.options=_objectSpread(_objectSpread({},defOptions),optOptions);_this.geolocate=new ol.Geolocation({projection:_this.map.getView().getProjection(),trackingOptions:_this.options.locateOptions});_this.geolocate.on("change:position",_this._updatePosFt,_this);_this.popup=createPopup();_this.popup.hidden=true;_this.popCnt=_this.popup.getElementsByClassName("ol-popup-cnt")[0];_this.overlay=new ol.Overlay({element:_this.popup,positioning:"top-center",stopEvent:false});_this.layer=new ol.layer.Vector({source:new ol.source.Vector({useSpatialIndex:false})});_this.posFt=new ol.Feature({geometry:_this.geolocate.getAccuracyGeometry(),name:"position",id:"_locate-pos"});_this.posFt.setStyle(_this.options.locateStyle);_this.layer.getSource().addFeature(_this.posFt);return _this}_inherits(OlLocate,_ol$Object);return _createClass(OlLocate)}(ol.Object);export{OlLocate as default};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e))}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
|
|
2
|
+
* Copyright 2015-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 React from"react";import{connect}from"react-redux";import ol from"openlayers";import PropTypes from"prop-types";import{changeMapView,clickOnMap}from"../../actions/map";import{setCurrentTask}from"../../actions/task";import ConfigUtils from"../../utils/ConfigUtils";import CoordinatesUtils from"../../utils/CoordinatesUtils";import LocaleUtils from"../../utils/LocaleUtils";import MapUtils from"../../utils/MapUtils";ol.Map.prototype.setRequestsPaused=function(paused){this.requestsPaused_=paused;this.tileQueue_.setRequestsPaused(paused);this.getView().setRequestsPaused(paused);if(!paused){this.render()}};var OlMap=/*#__PURE__*/function(_React$Component){function OlMap(props){var _this;_classCallCheck(this,OlMap);_this=_callSuper(this,OlMap,[props]);_defineProperty(_this,"state",{mapOptions:{},projection:null,resolutions:[],rebuildView:false});_defineProperty(_this,"recreateKeyboardInteractions",function(){_this.keyboardPanInteractions.forEach(function(interaction){_this.map.removeInteraction(interaction)});_this.keyboardPanInteractions=[new ol.interaction.KeyboardPan({pixelDelta:_this.state.mapOptions.panStepSize*document.body.offsetWidth,condition:_this.panHStepCondition}),new ol.interaction.KeyboardPan({pixelDelta:_this.state.mapOptions.panStepSize*document.body.offsetHeight,condition:_this.panVStepCondition}),new ol.interaction.KeyboardPan({pixelDelta:_this.state.mapOptions.panPageSize*document.body.offsetWidth,condition:_this.panHPageCondition}),new ol.interaction.KeyboardPan({pixelDelta:_this.state.mapOptions.panPageSize*document.body.offsetHeight,condition:_this.panVPageCondition})];_this.keyboardPanInteractions.forEach(function(interaction){_this.map.addInteraction(interaction)})});_defineProperty(_this,"unblockRequests",function(){if(_this.moving){if(_this.unpauseTimeout){clearTimeout(_this.unpauseTimeout)}_this.unpauseTimeout=setTimeout(function(){_this.updateMapInfoState();_this.map.setRequestsPaused(false);_this.unpauseTimeout=null;_this.moving=false},500)}});_defineProperty(_this,"panHStepCondition",function(ev){var horiz=ev.originalEvent.key==="ArrowLeft"||ev.originalEvent.key==="ArrowRight";return horiz&&ol.events.condition.noModifierKeys(ev)&&ol.events.condition.targetNotEditable(ev)});_defineProperty(_this,"panVStepCondition",function(ev){var vert=ev.originalEvent.key==="ArrowUp"||ev.originalEvent.key==="ArrowDown";return vert&&ol.events.condition.noModifierKeys(ev)&&ol.events.condition.targetNotEditable(ev)});_defineProperty(_this,"panHPageCondition",function(ev){var horiz=ev.originalEvent.key==="ArrowLeft"||ev.originalEvent.key==="ArrowRight";return horiz&&ol.events.condition.shiftKeyOnly(ev)&&ol.events.condition.targetNotEditable(ev)});_defineProperty(_this,"panVPageCondition",function(ev){var vert=ev.originalEvent.key==="ArrowUp"||ev.originalEvent.key==="ArrowDown";return vert&&ol.events.condition.shiftKeyOnly(ev)&&ol.events.condition.targetNotEditable(ev)});_defineProperty(_this,"onClick",function(button,event,pixel){if(_this.ignoreNextClick){_this.ignoreNextClick=false;return}if(button===2){event.preventDefault()}if(_this.props.unsetTaskOnMapClick){_this.props.setCurrentTask(null);return}var features=[];var format=new ol.format.GeoJSON;_this.map.forEachFeatureAtPixel(pixel,function(feature,layer){// Picked vector tile features cause an exception when passed to format.writeFeatureObject
|
|
9
|
+
try{var featureObj=format.writeFeatureObject(feature);featureObj.layerId=layer?layer.get("id"):null;features.push(featureObj)}catch(e){/* pass */}},{hitTolerance:5});var data={ts:+new Date,coordinate:_this.map.getEventCoordinate(event),pixel:_this.map.getEventPixel(event),features:features,modifiers:{alt:event.altKey,ctrl:event.ctrlKey,shift:event.shiftKey},button:button};_this.props.onClick(data)});_defineProperty(_this,"updateMapInfoState",function(){var view=_this.map.getView();var c=view.getCenter()||[0,0];var bbox={bounds:view.calculateExtent(_this.map.getSize()),rotation:view.getRotation()};var size={width:_this.map.getSize()[0],height:_this.map.getSize()[1]};_this.props.onMapViewChanges(c,view.getZoom()||0,bbox,size,_this.props.id,_this.props.projection)});_defineProperty(_this,"createView",function(center,zoom,projection,resolutions,enableRotation,rotation){var extent=_this.props.mapOptions.constrainExtent&&_this.props.fullExtent?CoordinatesUtils.reprojectBbox(_this.props.fullExtent.bounds,_this.props.fullExtent.crs,projection):undefined;var viewOptions={projection:projection,center:center,zoom:zoom,constrainResolution:ConfigUtils.getConfigProp("allowFractionalZoom")===true?false:true,resolutions:resolutions,constrainRotation:false,enableRotation:enableRotation!==false,rotation:MapUtils.degreesToRadians(rotation)||0,extent:extent};return new ol.View(viewOptions)});_defineProperty(_this,"registerHooks",function(){MapUtils.registerHook(MapUtils.GET_MAP,_this.map);MapUtils.registerHook(MapUtils.GET_PIXEL_FROM_COORDINATES_HOOK,function(pos){return _this.map.getPixelFromCoordinate(pos)});MapUtils.registerHook(MapUtils.GET_COORDINATES_FROM_PIXEL_HOOK,function(pixel){return _this.map.getCoordinateFromPixel(pixel)});MapUtils.registerHook(MapUtils.GET_SNAPPED_COORDINATES_FROM_PIXEL_HOOK,function(pixel){return _this.map.getCoordinateFromPixel(pixel)});MapUtils.registerHook(MapUtils.GET_NATIVE_LAYER,function(id){return _this.map.getLayers().getArray().find(function(layer){return layer.get("id")===id})})});_this.ignoreNextClick=false;_this.state.mapOptions=_objectSpread(_objectSpread({},OlMap.defaultProps.mapOptions),props.mapOptions);var interactions=ol.interaction.defaults({// don't create these default interactions, but create them below with custom params
|
|
10
|
+
dragPan:false,mouseWheelZoom:false,keyboard:false});_this.keyboardPanInteractions=[];var kinetic=null;if(_this.state.mapOptions.kineticPanParams){kinetic=new ol.Kinetic(_this.state.mapOptions.kineticPanParams.decay,_this.state.mapOptions.kineticPanParams.minVelocity,_this.state.mapOptions.kineticPanParams.delay)}interactions.extend([new ol.interaction.DragPan({kinetic:kinetic,condition:function condition(ev){var oev=ev.originalEvent;return!oev.altKey&&!(oev.metaKey||oev.ctrlKey)&&!oev.shiftKey&&oev.isPrimary!==false&&(oev.button===0||oev.button===1)}}),new ol.interaction.MouseWheelZoom({duration:_this.state.mapOptions.zoomDuration||250,constrainResolution:ConfigUtils.getConfigProp("allowFractionalZoom")===true?false:true}),new ol.interaction.KeyboardZoom]);var controls=ol.control.defaults({zoom:false,attribution:false,rotateOptions:{tipLabel:LocaleUtils.tr("map.resetrotation")}});var map=new ol.Map({layers:[],controls:controls,interactions:interactions,view:_this.createView(props.center,props.zoom,props.projection,props.resolutions,_this.state.mapOptions.enableRotation,_this.state.mapOptions.rotation)});_this.unpauseTimeout=null;_this.moving=false;map.on("movestart",function(){_this.moving=true;_this.map.setRequestsPaused(true)});map.on("moveend",function(){_this.unblockRequests()});map.on("singleclick",function(event){return _this.onClick(0,event.originalEvent,event.pixel)});map.getViewport().addEventListener("contextmenu",function(event){return _this.onClick(2,event,_this.map.getEventPixel(event))});map.set("id",props.id);map.setIgnoreNextClick=function(ignore){_this.ignoreNextClick=ignore};_this.map=map;_this.registerHooks();_this.recreateKeyboardInteractions();window.addEventListener("resize",_this.recreateKeyboardInteractions);return _this}_inherits(OlMap,_React$Component);return _createClass(OlMap,[{key:"componentDidMount",value:function componentDidMount(){this.map.setTarget(this.props.id);this.updateMapInfoState()}},{key:"componentWillUnmount",value:function componentWillUnmount(){window.removeEventListener("resize",this.recreateKeyboardInteractions)}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(prevProps.id!==this.props.mapStateSource){var view=this.map.getView();if(prevProps.center!==this.props.center){view.setCenter(this.props.center)}if(prevProps.zoom!==this.props.zoom){view.setZoom(this.props.zoom)}if(prevProps.bbox.rotation!==this.props.bbox.rotation){view.setRotation(this.props.bbox.rotation)}}if(this.state.rebuildView){this.setState({rebuildView:false})}}},{key:"render",value:function render(){var _this2=this;if(this.state.rebuildView){var overviewMap=this.map.getControls().getArray().find(function(control){return control instanceof ol.control.OverviewMap});var view=this.createView(this.props.center,this.props.zoom,this.props.projection,this.props.resolutions,this.state.mapOptions.enableRotation,this.state.mapOptions.rotation);if(overviewMap){overviewMap.getOverviewMap().setView(view)}this.map.setView(view);// We have to force ol to drop tile and reload
|
|
11
|
+
this.map.getLayers().forEach(function(l){if(l instanceof ol.layer.Group){l.getLayers().forEach(function(sublayer){var source=sublayer.getSource();if(source.getTileLoadFunction){source.setTileLoadFunction(source.getTileLoadFunction())}})}else{var source=l.getSource();if(source.getTileLoadFunction){source.setTileLoadFunction(source.getTileLoadFunction())}}});view.setZoom(this.props.zoom);view.setCenter(this.props.center);this.map.render()}var children=React.Children.map(this.props.children,function(child){return child?/*#__PURE__*/React.cloneElement(child,{map:_this2.map,projection:_this2.props.projection}):null});var style={left:this.props.mapMargins.left,right:this.props.mapMargins.right,top:this.props.mapMargins.top,bottom:this.props.mapMargins.bottom};return/*#__PURE__*/React.createElement("div",{id:this.props.id,key:"map",style:style,tabIndex:"0"},children)}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(nextProps,state){if(nextProps.projection!==state.projection||nextProps.resolutions!==state.resolutions){return{rebuildView:true,projection:nextProps.projection,resolutions:nextProps.resolutions}}return null}}])}(React.Component);_defineProperty(OlMap,"propTypes",{bbox:PropTypes.object,center:PropTypes.array,children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]),fullExtent:PropTypes.object,id:PropTypes.string,mapMargins:PropTypes.object,mapOptions:PropTypes.object,mapStateSource:PropTypes.string,onClick:PropTypes.func,onMapViewChanges:PropTypes.func,onMouseMove:PropTypes.func,panPageSize:PropTypes.number,panStepSize:PropTypes.number,projection:PropTypes.string,resolutions:PropTypes.array,setCurrentTask:PropTypes.func,unsetTaskOnMapClick:PropTypes.bool,zoom:PropTypes.number.isRequired});_defineProperty(OlMap,"defaultProps",{id:"map",mapOptions:{panPageSize:1,panStepSize:0.25}});export default connect(function(state){return{mapMargins:state.windows.mapMargins,unsetTaskOnMapClick:state.task.unsetOnMapClick}},{onMapViewChanges:changeMapView,onClick:clickOnMap,setCurrentTask:setCurrentTask})(OlMap);
|
|
@@ -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 ol from"openlayers";import ConfigUtils from"../../../utils/ConfigUtils";export default{create:function create(options){var _options$imagerySet;if(!options.apiKey){/* eslint-disable-next-line */console.warn("No api-key provided for BingMaps layer")}var layer=new ol.layer.Tile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,preload:ConfigUtils.getConfigProp("tilePreloadLevels",null,0),source:new ol.source.BingMaps(_objectSpread({projection:options.projection,key:options.apiKey,imagerySet:(_options$imagerySet=options.imagerySet)!==null&&_options$imagerySet!==void 0?_options$imagerySet:options.name},options.sourceConfig||{}))},options.layerConfig||{}));return layer}};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
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 React from"react";import ol from"openlayers";var layersMap;var rendererItem;// internal state for visibility of all Google Maps layers in layer tree
|
|
9
|
+
var layerVisibilities={};var gmaps={};var isTouchSupported="ontouchstart"in window;var startEvent=isTouchSupported?"touchstart":"mousedown";var moveEvent=isTouchSupported?"touchmove":"mousemove";var endEvent=isTouchSupported?"touchend":"mouseup";// NOTE: For the GoogleLayer to work, you MUST use EPSG:3857 as map projection and the google mercator scales:
|
|
10
|
+
// [591658711,295829355,147914678,73957339,36978669,18489335,9244667,4622334,2311167,1155583,577792,288896,144448,72224,36112,18056,9028,4514,2257,1128,564,282,141,71,35,18,9,4,2]
|
|
11
|
+
export default{create:function create(options,map){var google=window.google;var mapId=map.get("id");if(mapId!=="map"){// ignore if not main map, e.g. overview
|
|
12
|
+
return null}if(!layersMap){layersMap={HYBRID:google.maps.MapTypeId.HYBRID,SATELLITE:google.maps.MapTypeId.SATELLITE,ROADMAP:google.maps.MapTypeId.ROADMAP,TERRAIN:google.maps.MapTypeId.TERRAIN}}if(!gmaps[mapId]){gmaps[mapId]=new google.maps.Map(document.getElementById(mapId+"gmaps"),{disableDefaultUI:true,keyboardShortcuts:false,draggable:false,disableDoubleClickZoom:true,scrollwheel:false,streetViewControl:false,tilt:0})}gmaps[mapId].setMapTypeId(layersMap[options.name]);var mapContainer=document.getElementById(mapId+"gmaps");var setCenter=function setCenter(){if(mapContainer.style.visibility!=="hidden"){var center=ol.proj.transform(map.getView().getCenter(),"EPSG:3857","EPSG:4326");gmaps[mapId].setCenter(new google.maps.LatLng(center[1],center[0]))}};var setZoom=function setZoom(){if(mapContainer.style.visibility!=="hidden"){gmaps[mapId].setZoom(Math.round(map.getView().getZoom()))}};/**
|
|
13
|
+
* @param point {array}: [x, y]
|
|
14
|
+
* @param alpha {number}: rotation in degrees
|
|
15
|
+
*/var rotatePoint=function rotatePoint(point,alpha){var radAlpha=alpha*Math.PI/180;var x=point[0];var y=point[1];var rx=x*Math.cos(radAlpha)-y*Math.sin(radAlpha);var ry=x*Math.sin(radAlpha)+y*Math.cos(radAlpha);return[rx,ry]};/**
|
|
16
|
+
* @param rotation {number}: rotation in degrees
|
|
17
|
+
* @param size {array}: map size [w, h]
|
|
18
|
+
*/var calculateRotatedSize=function calculateRotatedSize(rotation,size){var w=size[0];var h=size[1];var vertices=[// [ x , y ]
|
|
19
|
+
[w/2,h/2],[-w/2,h/2],[-w/2,-h/2],[w/2,-h/2]];var rVertices=vertices.map(function(p){return rotatePoint(p,rotation)});var Xs=rVertices.map(function(p){return p[0]});var Ys=rVertices.map(function(p){return p[1]});var maxX=Math.max.apply(null,Xs);var minX=Math.min.apply(null,Xs);var maxY=Math.max.apply(null,Ys);var minY=Math.min.apply(null,Ys);var H=Math.abs(maxY)+Math.abs(minY);var W=Math.abs(maxX)+Math.abs(minX);return{width:W,height:H}};var setRotation=function setRotation(){if(mapContainer.style.visibility!=="hidden"){var rotation=map.getView().getRotation()*180/Math.PI;mapContainer.style.transform="rotate("+rotation+"deg)";google.maps.event.trigger(gmaps[mapId],"resize")}};var setViewEventListeners=function setViewEventListeners(){var view=map.getView();view.on("change:center",setCenter);view.on("change:resolution",setZoom);view.on("change:rotation",setRotation)};map.on("change:view",setViewEventListeners);setViewEventListeners();setCenter();setZoom();var viewport=map.getViewport();var oldTrans=document.getElementById(mapId+"gmaps").style.transform;var mousedown=false;var mousemove=false;var resizeGoogleLayerIfRotated=function resizeGoogleLayerIfRotated(){var degrees=/[+-]?\d+\.?\d*/i;var newTrans=document.getElementById(mapId+"gmaps").style.transform;if(newTrans!==oldTrans&&newTrans.indexOf("rotate")!==-1){var rotation=parseFloat(newTrans.match(degrees)[0]);var size=calculateRotatedSize(-rotation,map.getSize());mapContainer.style.width=size.width+"px";mapContainer.style.height=size.height+"px";mapContainer.style.left=Math.round((map.getSize()[0]-size.width)/2)+"px";mapContainer.style.top=Math.round((map.getSize()[1]-size.height)/2)+"px";google.maps.event.trigger(gmaps[mapId],"resize");setCenter()}};viewport.addEventListener(startEvent,function(){mousedown=true});viewport.addEventListener(endEvent,function(){if(mousemove&&mousedown){resizeGoogleLayerIfRotated()}oldTrans=document.getElementById(mapId+"gmaps").style.transform;mousedown=false});viewport.addEventListener(moveEvent,function(){mousemove=mousedown});return null},render:function render(options,map){var mapId=map.get("id");if(mapId!=="map"){// ignore if not main map, e.g. overview
|
|
20
|
+
return null}// the first item that call render will take control
|
|
21
|
+
if(!rendererItem){rendererItem=options.name}var wrapperStyle={zIndex:-1,position:"fixed",left:0,right:0,top:0,bottom:0};var gmapsStyle={height:"100%"};var visibilityChanged=layerVisibilities[options.id]!==options.visibility;layerVisibilities[options.id]=options.visibility;if(options.visibility===true){var div=document.getElementById(mapId+"gmaps");if(div){// override div visibility
|
|
22
|
+
div.style.visibility="visible"}if(gmaps[mapId]&&layersMap){gmaps[mapId].setMapTypeId(layersMap[options.name]);gmaps[mapId].setTilt(0);if(visibilityChanged){// update map extent when turning visibility on
|
|
23
|
+
var center=ol.proj.transform(map.getView().getCenter(),"EPSG:3857","EPSG:4326");gmaps[mapId].setCenter(new window.google.maps.LatLng(center[1],center[0]));gmaps[mapId].setZoom(map.getView().getZoom())}}}else{gmapsStyle.visibility="hidden";// used only for the renered div
|
|
24
|
+
}// To hide the map when visibility is set to false for every
|
|
25
|
+
// instance of google layer
|
|
26
|
+
if(rendererItem===options.name){// assume the first render the div for gmaps
|
|
27
|
+
var _div=document.getElementById(mapId+"gmaps");if(_div){_div.style.visibility=options.visibility?"visible":"hidden"}return/*#__PURE__*/React.createElement("div",{style:wrapperStyle},/*#__PURE__*/React.createElement("div",{className:"fill",id:mapId+"gmaps",style:gmapsStyle}))}return null},update:function update(layer,newOptions,oldOptions,map){var mapId=map.get("id");var google=window.google;if(!oldOptions.visibility&&newOptions.visibility){var view=map.getView();var center=ol.proj.transform(view.getCenter(),"EPSG:3857","EPSG:4326");gmaps[mapId].setCenter(new google.maps.LatLng(center[1],center[0]));gmaps[mapId].setZoom(view.getZoom())}}};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
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 ol from"openlayers";export default{create:function create(options,map){var graticule=new ol.Graticule({strokeStyle:options.style||new ol.style.Stroke({color:"rgba(255,120,0,0.9)",width:2,lineDash:[0.5,4]})});graticule.setMap(map);return{detached:true,remove:function remove(){graticule.setMap(null)}}}};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
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 ol from"openlayers";export default{create:function create(options){return new ol.layer.Image({source:new ol.source.ImageStatic({url:options.url,projection:options.projection,imageExtent:options.imageExtent})})},update:function update(){}};
|
|
@@ -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 2022 Oslandia SAS <infos+qwc2@oslandia.com>
|
|
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 axios from"axios";import{applyStyle}from"ol-mapbox-style";import ol from"openlayers";export default{create:function create(options){var createLayer=function createLayer(){return new ol.layer.VectorTile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,declutter:options.declutter,source:new ol.source.VectorTile(_objectSpread({projection:options.projection,format:new ol.format.MVT({}),url:options.url,tileGrid:options.tileGridConfig?new ol.tilegrid.TileGrid(_objectSpread({},options.tileGridConfig)):undefined},options.sourceConfig||{}))},options.layerConfig||{}))};var group=new ol.layer.Group;if(options.style){axios.get(options.style).then(function(response){var glStyle=response.data;Object.keys(glStyle.sources).forEach(function(styleSource){var layer=createLayer();applyStyle(layer,glStyle,styleSource,options.styleOptions).then(function(){group.getLayers().push(layer)})})})}else{group.getLayers().push(createLayer())}return group}};
|
|
@@ -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 ol from"openlayers";import ConfigUtils from"../../../utils/ConfigUtils";export default{create:function create(options){return new ol.layer.Tile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,preload:ConfigUtils.getConfigProp("tilePreloadLevels",null,0),source:new ol.source.OSM(_objectSpread({url:options.url,projection:options.projection},options.sourceConfig||{}))},options.layerConfig||{}))}};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
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 ol from"openlayers";var _removeIds=function removeIds(items){if(items.length!==0){for(var i=0;i<items.length;i++){var item=items.item(i);item.removeAttribute("data-reactid");_removeIds(item.children||[])}}};var cloneOriginalOverlay=function cloneOriginalOverlay(original,options){var cloned=original.cloneNode(true);cloned.id=options.id+"-overlay";cloned.className=(options.className||original.className)+"-overlay";cloned.removeAttribute("data-reactid");// remove reactjs generated ids from cloned object
|
|
9
|
+
_removeIds(cloned.children||[]);// handle optional close button on overlay
|
|
10
|
+
var closeClassName=options.closeClass||"close";if(options.onClose&&cloned.getElementsByClassName(closeClassName).length===1){var close=cloned.getElementsByClassName(closeClassName)[0];var onClose=function onClose(e){options.onClose(e.target.getAttribute("data-overlayid"))};close.addEventListener("click",onClose)}return cloned};export default{create:function create(options,map){var original=document.getElementById(options.id);var cloned=cloneOriginalOverlay(original,options);document.body.appendChild(cloned);var overlay=new ol.Overlay({id:options.id,element:cloned,autoPan:options.autoPan||false,positioning:options.positioning||"top-left",offset:options.offset||[0,0],autoPanAnimation:{duration:options.autoPanAnimation||250},position:[options.position.x,options.position.y]});map.addOverlay(overlay);return{detached:true,remove:function remove(){map.removeOverlay(overlay)}}}};
|
|
@@ -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 _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 ol from"openlayers";import FeatureStyles from"../../../utils/FeatureStyles";export function createFeatures(options,mapCrs){var format=new ol.format.GeoJSON;return(options.features||[]).reduce(function(collection,feature){var featureObject=format.readFeatures(_objectSpread(_objectSpread({},feature),{},{type:"Feature"}));featureObject.forEach(function(f){var _ref,_feature$crs;var featureCrs=(_ref=(_feature$crs=feature.crs)!==null&&_feature$crs!==void 0?_feature$crs:options.projection)!==null&&_ref!==void 0?_ref:mapCrs;if(featureCrs.type==="name"){featureCrs=featureCrs.properties.name}if(featureCrs!==mapCrs){var _f$getGeometry;(_f$getGeometry=f.getGeometry())===null||_f$getGeometry===void 0||_f$getGeometry.transform(featureCrs,mapCrs)}var featureStyleName=feature.styleName||options.styleName;var featureStyleOptions=_objectSpread(_objectSpread({},options.styleOptions),feature.styleOptions);f.set("styleName",featureStyleName);f.set("styleOptions",featureStyleOptions);if(feature.circleParams){f.set("circleParams",feature.circleParams)}if(feature.shape){f.set("shape",feature.shape)}if(feature.measurements){f.set("measurements",feature.measurements)}if(featureStyleName){f.setStyle(FeatureStyles[featureStyleName](f,featureStyleOptions))}});return collection.concat(featureObject)},[])}export function updateFeatures(source,newOptions,oldOptions,mapCrs){var format=new ol.format.GeoJSON;var oldFeaturesMap=(oldOptions.features||[]).reduce(function(res,f){res[f.id]=f;return res},{});var newIds=new Set(newOptions.features.map(function(f){return f.id}));var removed=Object.keys(oldFeaturesMap).filter(function(id){return!newIds.has(id)});// Remove removed features
|
|
9
|
+
var _iterator=_createForOfIteratorHelper(removed),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var id=_step.value;var feature=source.getFeatureById(id);if(feature){source.removeFeature(feature)}}// Add / update features
|
|
10
|
+
}catch(err){_iterator.e(err)}finally{_iterator.f()}var newFeatureObjects=[];var _iterator2=_createForOfIteratorHelper(newOptions.features),_step2;try{var _loop=function _loop(){var feature=_step2.value;if(oldFeaturesMap[feature.id]&&oldFeaturesMap[feature.id]===feature){// Unchanged, continue
|
|
11
|
+
return 1;// continue
|
|
12
|
+
}if(oldFeaturesMap[feature.id]&&oldFeaturesMap[feature.id]!==feature){// Changed, remove
|
|
13
|
+
var oldFeature=source.getFeatureById(feature.id);if(oldFeature){source.removeFeature(oldFeature)}}// Add new
|
|
14
|
+
var featureObject=format.readFeatures(_objectSpread(_objectSpread({},feature),{},{type:"Feature"}));featureObject.forEach(function(f){var _ref2,_feature$crs2;var featureCrs=(_ref2=(_feature$crs2=feature.crs)!==null&&_feature$crs2!==void 0?_feature$crs2:newOptions.projection)!==null&&_ref2!==void 0?_ref2:mapCrs;if(featureCrs.type==="name"){featureCrs=featureCrs.properties.name}if(featureCrs!==mapCrs){var _f$getGeometry2;(_f$getGeometry2=f.getGeometry())===null||_f$getGeometry2===void 0||_f$getGeometry2.transform(featureCrs,mapCrs)}var featureStyleName=feature.styleName||newOptions.styleName;var featureStyleOptions=_objectSpread(_objectSpread({},newOptions.styleOptions),feature.styleOptions);f.set("styleName",featureStyleName);f.set("styleOptions",featureStyleOptions);f.set("circleParams",feature.circleParams);f.set("shape",feature.shape);f.set("measurements",feature.measurements);if(featureStyleName){f.setStyle(FeatureStyles[featureStyleName](f,featureStyleOptions))}});newFeatureObjects=newFeatureObjects.concat(featureObject)};for(_iterator2.s();!(_step2=_iterator2.n()).done;){if(_loop())continue}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}if(newFeatureObjects){source.addFeatures(newFeatureObjects)}}export function featureStyleFunction(options){return function(feature){var styleName=options.styleName||"default";var styleOptions=options.styleOptions||{};return FeatureStyles[styleName](feature,styleOptions)}}export default{create:function create(options,map){var source=new ol.source.Vector;var mapCrs=map.getView().getProjection().getCode();var features=createFeatures(options,mapCrs);source.addFeatures(features);var vectorLayer=new ol.layer.Vector({source:source,style:options.styleFunction||featureStyleFunction(options)});return vectorLayer},update:function update(layer,newOptions,oldOptions,map){var mapCrs=map.getView().getProjection().getCode();if(newOptions.styleName!==oldOptions.styleName||newOptions.styleOptions!==oldOptions.styleOptions){layer.setStyle(featureStyleFunction(newOptions))}else if(newOptions.styleFunction!==oldOptions.styleFunction){layer.setStyle(newOptions.styleFunction)}if(newOptions.features!==oldOptions.features){updateFeatures(layer.getSource(),newOptions,oldOptions,mapCrs)}else if((oldOptions.rev||0)!==(newOptions.rev||0)){layer.getSource().changed()}},render:function render(){return null}};
|
|
@@ -0,0 +1,11 @@
|
|
|
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)}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}/**
|
|
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 ol from"openlayers";import url from"url";import CoordinatesUtils from"../../../utils/CoordinatesUtils";import FeatureStyles from"../../../utils/FeatureStyles";export function wfsToOpenlayersOptions(options){var formatMap={"gml3":function gml3(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML3({dataProjection:proj}),version:options.version})},"gml32":function gml32(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML32({dataProjection:proj}),version:options.version})},"application/gml+xml; version=3.2":function application_gmlXml_version32(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML32({dataProjection:proj}),version:options.version})},"gml2":function gml2(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML2({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.0":function text_xml_subtypeGml_30(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML3({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.1":function text_xml_subtypeGml_31(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML3({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.1.0":function text_xml_subtypeGml_310(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML3({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.1.1":function text_xml_subtypeGml_311(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML3({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.2":function text_xml_subtypeGml_32(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML32({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.2.0":function text_xml_subtypeGml_320(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML32({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/3.2.1":function text_xml_subtypeGml_321(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML32({dataProjection:proj}),version:options.version})},"text/xml; subtype=gml/2.1.2":function text_xml_subtypeGml_212(proj){return new ol.format.WFS({gmlFormat:new ol.format.GML2({dataProjection:proj}),version:options.version})},"kml":function kml(proj){return new ol.format.KML({defaultDataProjection:proj})},"application/vnd.google-earth.kml+xml":function application_vndGoogleEarthKmlXml(proj){return new ol.format.KML({dataProjection:proj})},"geojson":function geojson(proj){return new ol.format.GeoJSON({dataProjection:proj})},"json":function json(proj){return new ol.format.GeoJSON({dataProjection:proj})},"application/json":function application_json(proj){return new ol.format.GeoJSON({dataProjection:proj})}};var olformat=null;var format=null;var _loop=function _loop(){var key=_Object$keys[_i];var fmt=options.formats.find(function(entry){return entry.toLowerCase()===key});if(fmt){olformat=formatMap[key](options.projection);format=fmt;return 1;// break
|
|
8
|
+
}};for(var _i=0,_Object$keys=Object.keys(formatMap);_i<_Object$keys.length;_i++){if(_loop())break}if(!format){// eslint-disable-next-line
|
|
9
|
+
console.warn("No supported WFS format found");return null}var typeName=options.version<"2.0.0"?"typeName":"typeNames";return{formatName:format,format:olformat,url:options.url?function(extent){var bbox=extent.join(",");var srsName=options.projection;if(options.version>="1.1.0"){// http://augusttown.blogspot.com/2010/08/mysterious-bbox-parameter-in-web.html
|
|
10
|
+
// Invert WGS axis orentation
|
|
11
|
+
var axisOrientation=CoordinatesUtils.getAxisOrder(options.projection);var requestExtent=axisOrientation==="neu"?[extent[1],extent[0],extent[3],extent[2]]:extent;bbox=requestExtent.join(",")+","+CoordinatesUtils.toOgcUrnCrs(options.projection);srsName=CoordinatesUtils.toOgcUrnCrs(options.projection)}var urlParts=url.parse(options.url,true);var urlParams=Object.entries(urlParts.query).reduce(function(res,_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],val=_ref2[1];return _objectSpread(_objectSpread({},res),{},_defineProperty({},key.toUpperCase(),val))},{});delete urlParts.search;urlParts.query=_objectSpread(_objectSpread({},urlParams),{},_defineProperty(_defineProperty(_defineProperty(_defineProperty({SERVICE:"WFS",VERSION:options.version,REQUEST:"GetFeature"},typeName,options.name),"outputFormat",format),"srsName",srsName),"bbox",bbox));return url.format(urlParts)}:undefined,strategy:ol.loadingstrategy.bbox}}export default{create:function create(options){var vectorSource=new ol.source.Vector(_objectSpread(_objectSpread({},wfsToOpenlayersOptions(options)),{},{loader:options.loader?function(extent,resolution,projection,success,failure){options.loader(vectorSource,extent,resolution,projection,success,failure)}:undefined}));return new ol.layer.Vector({source:vectorSource,style:function style(feature){return FeatureStyles["default"](feature,{fillColor:options.color,strokeColor:feature.getGeometry().getType().endsWith("LineString")?options.color:"#000",strokeWidth:1,strokeDash:[],circleRadius:5})}})},update:function update(/* layer, newOptions, oldOptions */){}};
|
|
@@ -0,0 +1,11 @@
|
|
|
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)}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}/**
|
|
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 axios from"axios";import ol from"openlayers";import url from"url";import ConfigUtils from"../../../utils/ConfigUtils";import CoordinatesUtils from"../../../utils/CoordinatesUtils";import MiscUtils from"../../../utils/MiscUtils";export function wmsImageLoadFunction(image,src){var maxUrlLength=ConfigUtils.getConfigProp("wmsMaxGetUrlLength",null,2048);var postOrigins=ConfigUtils.getConfigProp("wmsPostOrigins",null,[]);var reqOrigin=new URL(src,location.href).origin;if(src.length>maxUrlLength&&(location.origin===reqOrigin||postOrigins.includes(reqOrigin))){// Switch to POST if url is too long
|
|
9
|
+
var urlParts=src.split("?");urlParts[1]+="&csrf_token="+MiscUtils.getCsrfToken();var options={headers:{"content-type":"application/x-www-form-urlencoded"},responseType:"blob"};axios.post(urlParts[0],urlParts[1],options).then(function(response){var reader=new FileReader;reader.readAsDataURL(response.data);reader.onload=function(){image.src=reader.result}})["catch"](function(){// Fall back to GET
|
|
10
|
+
image.src=src})}else{image.src=src}}export function wmsToOpenlayersOptions(options){var _ref3,_urlParams$TILED;var urlParams=Object.entries(url.parse(options.url,true).query).reduce(function(res,_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],val=_ref2[1];return _objectSpread(_objectSpread({},res),{},_defineProperty({},key.toUpperCase(),val))},{});return _objectSpread(_objectSpread({},urlParams),{},{LAYERS:options.name,STYLES:options.style||"",FORMAT:options.format||"image/png",TRANSPARENT:options.transparent!==undefined?options.transparent:true,SRS:options.projection,CRS:options.projection,TILED:String((_ref3=(_urlParams$TILED=urlParams.TILED)!==null&&_urlParams$TILED!==void 0?_urlParams$TILED:options.tiled)!==null&&_ref3!==void 0?_ref3:false).toLowerCase()==="true",VERSION:options.version,DPI:options.serverType==="qgis"?options.dpi||ConfigUtils.getConfigProp("wmsDpi")||96:undefined},options.params)}export function getClientSideOpacity(queryParameters){var _queryParameters$OPAC;// If WMS parameters contain only one opacity value, set opacity client side (as some WMS servers don't support opacity)
|
|
11
|
+
var opacities=((_queryParameters$OPAC=queryParameters.OPACITIES)!==null&&_queryParameters$OPAC!==void 0?_queryParameters$OPAC:"255").split(",");if(opacities.length===1){queryParameters.OPACITIES="255";return parseInt(opacities[0],10)/255}return undefined}export default{create:function create(options,map){var queryParameters=_objectSpread(_objectSpread({},wmsToOpenlayersOptions(options)),{},{__t:+new Date});var clientSideOpacity=getClientSideOpacity(queryParameters);if(queryParameters.TILED&&!options.bbox){/* eslint-disable-next-line */console.warn("Tiled WMS requested without specifying bounding box, falling back to non-tiled.")}var layer=null;if(!queryParameters.TILED||!options.bbox){layer=new ol.layer.Image(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,source:new ol.source.ImageWMS(_objectSpread({url:options.url.split("?")[0],serverType:options.serverType,params:queryParameters,ratio:options.ratio||1,hidpi:ConfigUtils.getConfigProp("wmsHidpi")!==false?true:false,imageLoadFunction:function imageLoadFunction(image,src){return wmsImageLoadFunction(image.getImage(),src)}},options.sourceConfig||{}))},options.layerConfig||{}))}else{var extent=CoordinatesUtils.reprojectBbox(options.bbox.bounds,options.bbox.crs,options.projection);var tileGrid=new ol.tilegrid.TileGrid({extent:extent,tileSize:options.tileSize||256,maxZoom:map.getView().getResolutions().length,resolutions:map.getView().getResolutions()});layer=new ol.layer.Tile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,preload:ConfigUtils.getConfigProp("tilePreloadLevels",null,0),source:new ol.source.TileWMS(_objectSpread({urls:[options.url.split("?")[0]],params:queryParameters,serverType:options.serverType,tileGrid:tileGrid,hidpi:ConfigUtils.getConfigProp("wmsHidpi")!==false?true:false,tileLoadFunction:function tileLoadFunction(imageTile,src){return wmsImageLoadFunction(imageTile.getImage(),src)}},options.sourceConfig||{}))},options.layerConfig||{}))}layer.setVisible(queryParameters.LAYERS&&options.visibility);layer.setOpacity(clientSideOpacity!==null&&clientSideOpacity!==void 0?clientSideOpacity:100);return layer},update:function update(layer,newOptions,oldOptions){var _layer$getSource;if(oldOptions&&layer!==null&&layer!==void 0&&(_layer$getSource=layer.getSource())!==null&&_layer$getSource!==void 0&&_layer$getSource.updateParams){var changed=(oldOptions.rev||0)!==(newOptions.rev||0);var oldParams=wmsToOpenlayersOptions(oldOptions);getClientSideOpacity(oldParams);var newParams=wmsToOpenlayersOptions(newOptions);var clientSideOpacity=getClientSideOpacity(newParams);Object.keys(oldParams).forEach(function(key){if(!(key in newParams)){newParams[key]=undefined}});if(!changed){changed=Object.keys(newParams).find(function(key){return newParams[key]!==oldParams[key]})!==undefined}changed|=newOptions.visibility!==oldOptions.visibility;if(changed){var queryParameters=_objectSpread(_objectSpread({},newParams),{},{__t:+new Date});if(layer.get("updateTimeout")){clearTimeout(layer.get("updateTimeout"))}if(!newOptions.visibility||!queryParameters.LAYERS){layer.setVisible(false)}layer.setOpacity(clientSideOpacity!==null&&clientSideOpacity!==void 0?clientSideOpacity:100);layer.set("updateTimeout",setTimeout(function(){layer.setVisible(queryParameters.LAYERS&&newOptions.visibility);layer.getSource().updateParams(queryParameters);layer.getSource().changed();layer.set("updateTimeout",null)},500))}else{layer.setOpacity(clientSideOpacity!==null&&clientSideOpacity!==void 0?clientSideOpacity:100)}}}};
|
|
@@ -0,0 +1,9 @@
|
|
|
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 ol from"openlayers";import ConfigUtils from"../../../utils/ConfigUtils";import CoordinatesUtils from"../../../utils/CoordinatesUtils";function getWMSURLs(urls){return urls.map(function(url){return url.split("?")[0]})}export function createWMTSSource(options){var _options$style,_options$wrapX,_options$requestEncod;var urls=getWMSURLs(Array.isArray(options.url)?options.url:[options.url]).map(function(url){if(options.rev){return url+"?"+options.rev}else{return url}});var projection=ol.proj.get(options.projection);var resolutions=options.resolutions;var matrixIds=new Array(options.resolutions.length);// generate matrixIds arrays for this WMTS
|
|
9
|
+
for(var z=0;z<options.resolutions.length;++z){matrixIds[z]=options.tileMatrixPrefix!==""?options.tileMatrixPrefix+":"+z:z}var extent=options.bbox?CoordinatesUtils.reprojectBbox(options.bbox.bounds,options.bbox.crs,options.projection):null;return new ol.source.WMTS(_objectSpread({urls:urls,layer:options.name,format:options.format,projection:projection?projection:null,matrixSet:options.tileMatrixSet,tileGrid:new ol.tilegrid.WMTS({extent:extent,origin:[options.originX,options.originY],resolutions:resolutions,matrixIds:matrixIds,tileSize:options.tileSize||[256,256]}),style:(_options$style=options.style)!==null&&_options$style!==void 0?_options$style:"",wrapX:(_options$wrapX=options.wrapX)!==null&&_options$wrapX!==void 0?_options$wrapX:false,requestEncoding:(_options$requestEncod=options.requestEncoding)!==null&&_options$requestEncod!==void 0?_options$requestEncod:"REST"},options.sourceConfig||{}))}export default{create:function create(options){return new ol.layer.Tile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,preload:ConfigUtils.getConfigProp("tilePreloadLevels",null,0),source:createWMTSSource(options)},options.layerConfig||{}))},update:function update(layer,newOptions,oldOptions){if(newOptions.rev!==oldOptions.rev){layer.setSource(createWMTSSource(newOptions))}}};
|
|
@@ -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 2021 Oslandia SAS <infos+qwc2@oslandia.com>
|
|
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 ol from"openlayers";import ConfigUtils from"../../../utils/ConfigUtils";export default{create:function create(options){return new ol.layer.Tile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,preload:ConfigUtils.getConfigProp("tilePreloadLevels",null,0),source:new ol.source.XYZ(_objectSpread({url:options.url,projection:options.projection},options.sourceConfig||{}))},options.layerConfig||{}))}};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
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 bingLayer from"./BingLayer";import googleLayer from"./GoogleLayer";import graticuleLayer from"./GraticuleLayer";import imageLayer from"./ImageLayer";import mvtLayer from"./MVTLayer";import osmLayer from"./OSMLayer";import overlayLayer from"./OverlayLayer";import vectorLayer from"./VectorLayer";import wfsLayer from"./WFSLayer";import wmsLayer from"./WMSLayer";import wmtsLayer from"./WMTSLayer";import xyzLayer from"./XYZLayer";export default{bing:bingLayer,google:googleLayer,graticule:graticuleLayer,image:imageLayer,mvt:mvtLayer,osm:osmLayer,overlay:overlayLayer,vector:vectorLayer,wms:wmsLayer,wmts:wmtsLayer,wfs:wfsLayer,xyz:xyzLayer};
|