@rio-cloud/uikit-mcp 1.0.0 → 1.1.0
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/README.md +75 -40
- package/dist/doc-metadata.json +1872 -0
- package/dist/docs/components/accentBar.md +582 -0
- package/dist/docs/components/activity.md +330 -0
- package/dist/docs/components/animatedNumber.md +88 -0
- package/dist/docs/components/animatedTextReveal.md +381 -0
- package/dist/docs/components/animations.md +459 -0
- package/dist/docs/components/appHeader.md +737 -0
- package/dist/docs/components/appLayout.md +2016 -0
- package/dist/docs/components/appNavigationBar.md +274 -0
- package/dist/docs/components/areaCharts.md +828 -0
- package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
- package/dist/docs/components/assetTree.md +3223 -0
- package/dist/docs/components/autosuggests.md +1177 -0
- package/dist/docs/components/avatar.md +206 -0
- package/dist/docs/components/banner.md +668 -0
- package/dist/docs/components/barCharts.md +2785 -0
- package/dist/docs/components/barList.md +517 -0
- package/dist/docs/components/basicMap.md +167 -0
- package/dist/docs/components/bottomSheet.md +721 -0
- package/dist/docs/components/button.md +775 -0
- package/dist/docs/components/buttonToolbar.md +134 -0
- package/dist/docs/components/calendarStripe.md +525 -0
- package/dist/docs/components/card.md +86 -0
- package/dist/docs/components/carousel.md +128 -0
- package/dist/docs/components/chartColors.md +716 -0
- package/dist/docs/components/chartsGettingStarted.md +28 -0
- package/dist/docs/components/chat.md +932 -0
- package/dist/docs/components/checkbox.md +996 -0
- package/dist/docs/components/clearableInput.md +806 -0
- package/dist/docs/components/collapse.md +189 -0
- package/dist/docs/components/composedCharts.md +424 -0
- package/dist/docs/components/contentLoader.md +674 -0
- package/dist/docs/components/dataTabs.md +1251 -0
- package/dist/docs/components/datepickers.md +2543 -0
- package/dist/docs/components/dialogs.md +2244 -0
- package/dist/docs/components/divider.md +219 -0
- package/dist/docs/components/dropdowns.md +17550 -0
- package/dist/docs/components/editableContent.md +1127 -0
- package/dist/docs/components/expander.md +970 -0
- package/dist/docs/components/fade.md +836 -0
- package/dist/docs/components/fadeExpander.md +180 -0
- package/dist/docs/components/fadeUp.md +396 -0
- package/dist/docs/components/feedback.md +758 -0
- package/dist/docs/components/filePickers.md +370 -0
- package/dist/docs/components/formLabel.md +251 -0
- package/dist/docs/components/fullscreenMap.md +10 -0
- package/dist/docs/components/groupedItemList.md +1001 -0
- package/dist/docs/components/iconList.md +306 -0
- package/dist/docs/components/imagePreloader.md +167 -0
- package/dist/docs/components/labeledElement.md +115 -0
- package/dist/docs/components/licensePlate.md +412 -0
- package/dist/docs/components/lineCharts.md +2014 -0
- package/dist/docs/components/listMenu.md +392 -0
- package/dist/docs/components/loadMore.md +219 -0
- package/dist/docs/components/mainNavigation.md +129 -0
- package/dist/docs/components/mapCircle.md +93 -0
- package/dist/docs/components/mapCluster.md +337 -0
- package/dist/docs/components/mapContext.md +284 -0
- package/dist/docs/components/mapDraggableMarker.md +150 -0
- package/dist/docs/components/mapGettingStarted.md +39 -0
- package/dist/docs/components/mapInfoBubble.md +135 -0
- package/dist/docs/components/mapLayerGroup.md +94 -0
- package/dist/docs/components/mapMarker.md +1814 -0
- package/dist/docs/components/mapPolygon.md +959 -0
- package/dist/docs/components/mapRoute.md +3816 -0
- package/dist/docs/components/mapRouteGenerator.md +6 -0
- package/dist/docs/components/mapSettings.md +1040 -0
- package/dist/docs/components/mapUtils.md +132 -0
- package/dist/docs/components/multiselects.md +1921 -0
- package/dist/docs/components/noData.md +210 -0
- package/dist/docs/components/notifications.md +314 -0
- package/dist/docs/components/numbercontrol.md +706 -0
- package/dist/docs/components/onboarding.md +297 -0
- package/dist/docs/components/page.md +241 -0
- package/dist/docs/components/pager.md +133 -0
- package/dist/docs/components/pieCharts.md +1284 -0
- package/dist/docs/components/popover.md +222 -0
- package/dist/docs/components/position.md +50 -0
- package/dist/docs/components/radialBarCharts.md +3663 -0
- package/dist/docs/components/radiobutton.md +1271 -0
- package/dist/docs/components/releaseNotes.md +135 -0
- package/dist/docs/components/resizer.md +162 -0
- package/dist/docs/components/responsiveColumnStripe.md +435 -0
- package/dist/docs/components/responsiveVideo.md +71 -0
- package/dist/docs/components/rioglyph.md +331 -0
- package/dist/docs/components/rules.md +965 -0
- package/dist/docs/components/saveableInput.md +1721 -0
- package/dist/docs/components/selects.md +1993 -0
- package/dist/docs/components/sidebar.md +332 -0
- package/dist/docs/components/sliders.md +376 -0
- package/dist/docs/components/smoothScrollbars.md +1180 -0
- package/dist/docs/components/spinners.md +506 -0
- package/dist/docs/components/states.md +1176 -0
- package/dist/docs/components/statsWidgets.md +636 -0
- package/dist/docs/components/statusBar.md +644 -0
- package/dist/docs/components/stepButton.md +61 -0
- package/dist/docs/components/steppedProgressBars.md +1064 -0
- package/dist/docs/components/subNavigation.md +470 -0
- package/dist/docs/components/supportMarker.md +115 -0
- package/dist/docs/components/svgImage.md +248 -0
- package/dist/docs/components/switch.md +554 -0
- package/dist/docs/components/tables.md +8 -0
- package/dist/docs/components/tagManager.md +476 -0
- package/dist/docs/components/tags.md +785 -0
- package/dist/docs/components/teaser.md +925 -0
- package/dist/docs/components/timeline.md +514 -0
- package/dist/docs/components/timepicker.md +262 -0
- package/dist/docs/components/toggleButton.md +178 -0
- package/dist/docs/components/tooltip.md +454 -0
- package/dist/docs/components/virtualList.md +483 -0
- package/dist/docs/foundations.md +20901 -0
- package/dist/docs/start/changelog.md +439 -0
- package/dist/docs/start/goodtoknow.md +14 -0
- package/dist/docs/start/guidelines/color-combinations.md +678 -0
- package/dist/docs/start/guidelines/custom-css.md +42 -0
- package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
- package/dist/docs/start/guidelines/formatting.md +587 -0
- package/dist/docs/start/guidelines/iframe.md +323 -0
- package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
- package/dist/docs/start/guidelines/print-css.md +36 -0
- package/dist/docs/start/guidelines/spinner.md +710 -0
- package/dist/docs/start/guidelines/supported-browsers.md +10 -0
- package/dist/docs/start/guidelines/writing.md +635 -0
- package/dist/docs/start/howto.md +187 -0
- package/dist/docs/start/intro.md +43 -0
- package/dist/docs/start/responsiveness.md +98 -0
- package/dist/docs/templates/common-table.md +1111 -0
- package/dist/docs/templates/detail-views.md +942 -0
- package/dist/docs/templates/expandable-details.md +228 -0
- package/dist/docs/templates/feature-cards.md +549 -0
- package/dist/docs/templates/form-summary.md +199 -0
- package/dist/docs/templates/form-toggle.md +367 -0
- package/dist/docs/templates/list-blocks.md +1021 -0
- package/dist/docs/templates/loading-progress.md +109 -0
- package/dist/docs/templates/options-panel.md +152 -0
- package/dist/docs/templates/panel-variants.md +164 -0
- package/dist/docs/templates/progress-cards.md +607 -0
- package/dist/docs/templates/progress-success.md +142 -0
- package/dist/docs/templates/settings-form.md +434 -0
- package/dist/docs/templates/stats-blocks.md +1381 -0
- package/dist/docs/templates/table-panel.md +184 -0
- package/dist/docs/templates/table-row-animation.md +317 -0
- package/dist/docs/templates/usage-cards.md +227 -0
- package/dist/docs/utilities/deviceUtils.md +123 -0
- package/dist/docs/utilities/featureToggles.md +90 -0
- package/dist/docs/utilities/fuelTypeUtils.md +186 -0
- package/dist/docs/utilities/routeUtils.md +138 -0
- package/dist/docs/utilities/useAfterMount.md +66 -0
- package/dist/docs/utilities/useAutoAnimate.md +193 -0
- package/dist/docs/utilities/useAverage.md +95 -0
- package/dist/docs/utilities/useClickOutside.md +61 -0
- package/dist/docs/utilities/useClipboard.md +93 -0
- package/dist/docs/utilities/useCount.md +178 -0
- package/dist/docs/utilities/useDarkMode.md +49 -0
- package/dist/docs/utilities/useDebugInfo.md +126 -0
- package/dist/docs/utilities/useEffectOnce.md +58 -0
- package/dist/docs/utilities/useElapsedTime.md +58 -0
- package/dist/docs/utilities/useElementSize.md +71 -0
- package/dist/docs/utilities/useEsc.md +58 -0
- package/dist/docs/utilities/useEvent.md +64 -0
- package/dist/docs/utilities/useFocusTrap.md +85 -0
- package/dist/docs/utilities/useFullscreen.md +198 -0
- package/dist/docs/utilities/useHover.md +55 -0
- package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
- package/dist/docs/utilities/useInterval.md +85 -0
- package/dist/docs/utilities/useIsFocusWithin.md +114 -0
- package/dist/docs/utilities/useKey.md +151 -0
- package/dist/docs/utilities/useLocalStorage.md +91 -0
- package/dist/docs/utilities/useLocationSuggestions.md +114 -0
- package/dist/docs/utilities/useMax.md +62 -0
- package/dist/docs/utilities/useMin.md +78 -0
- package/dist/docs/utilities/useMutationObserver.md +113 -0
- package/dist/docs/utilities/useOnScreen.md +138 -0
- package/dist/docs/utilities/useOnlineStatus.md +49 -0
- package/dist/docs/utilities/usePostMessage.md +117 -0
- package/dist/docs/utilities/usePostMessageSender.md +257 -0
- package/dist/docs/utilities/usePrevious.md +101 -0
- package/dist/docs/utilities/useResizeObserver.md +151 -0
- package/dist/docs/utilities/useScrollPosition.md +252 -0
- package/dist/docs/utilities/useSearch.md +228 -0
- package/dist/docs/utilities/useSorting.md +389 -0
- package/dist/docs/utilities/useStateWithValidation.md +83 -0
- package/dist/docs/utilities/useSum.md +155 -0
- package/dist/docs/utilities/useTableExport.md +404 -0
- package/dist/docs/utilities/useTableSelection.md +1120 -0
- package/dist/docs/utilities/useTimeout.md +55 -0
- package/dist/docs/utilities/useToggle.md +115 -0
- package/dist/docs/utilities/useWindowResize.md +70 -0
- package/dist/index.mjs +271 -0
- package/dist/search-synonyms.json +134 -0
- package/dist/version.json +4 -0
- package/package.json +23 -19
- package/bin/uikit-mcp.mjs +0 -23
- package/data/pages/Components/components/accentbar.json +0 -207
- package/data/pages/Components/components/activity.json +0 -87
- package/data/pages/Components/components/animatednumber.json +0 -99
- package/data/pages/Components/components/animations.json +0 -87
- package/data/pages/Components/components/appheader.json +0 -291
- package/data/pages/Components/components/applayout.json +0 -1198
- package/data/pages/Components/components/appnavigationbar.json +0 -327
- package/data/pages/Components/components/areacharts.json +0 -563
- package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
- package/data/pages/Components/components/assettree.json +0 -3080
- package/data/pages/Components/components/autosuggests.json +0 -710
- package/data/pages/Components/components/avatar.json +0 -157
- package/data/pages/Components/components/banner.json +0 -599
- package/data/pages/Components/components/barcharts.json +0 -1507
- package/data/pages/Components/components/barlist.json +0 -223
- package/data/pages/Components/components/basicmap.json +0 -68
- package/data/pages/Components/components/bottomsheet.json +0 -601
- package/data/pages/Components/components/button.json +0 -583
- package/data/pages/Components/components/buttontoolbar.json +0 -63
- package/data/pages/Components/components/calendarstripe.json +0 -235
- package/data/pages/Components/components/card.json +0 -69
- package/data/pages/Components/components/carousel.json +0 -39
- package/data/pages/Components/components/chartcolors.json +0 -34
- package/data/pages/Components/components/chartsgettingstarted.json +0 -32
- package/data/pages/Components/components/chat.json +0 -39
- package/data/pages/Components/components/checkbox.json +0 -847
- package/data/pages/Components/components/clearableinput.json +0 -789
- package/data/pages/Components/components/collapse.json +0 -175
- package/data/pages/Components/components/composedcharts.json +0 -159
- package/data/pages/Components/components/contentloader.json +0 -233
- package/data/pages/Components/components/datatabs.json +0 -680
- package/data/pages/Components/components/datepickers.json +0 -287
- package/data/pages/Components/components/dialogs.json +0 -1492
- package/data/pages/Components/components/divider.json +0 -93
- package/data/pages/Components/components/dropdowns.json +0 -936
- package/data/pages/Components/components/editablecontent.json +0 -1117
- package/data/pages/Components/components/expander.json +0 -377
- package/data/pages/Components/components/fade.json +0 -403
- package/data/pages/Components/components/fadeexpander.json +0 -75
- package/data/pages/Components/components/fadeup.json +0 -127
- package/data/pages/Components/components/feedback.json +0 -269
- package/data/pages/Components/components/filepickers.json +0 -269
- package/data/pages/Components/components/formlabel.json +0 -115
- package/data/pages/Components/components/fullscreenmap.json +0 -22
- package/data/pages/Components/components/groupeditemlist.json +0 -323
- package/data/pages/Components/components/iconlist.json +0 -45
- package/data/pages/Components/components/imagepreloader.json +0 -81
- package/data/pages/Components/components/labeledelement.json +0 -75
- package/data/pages/Components/components/licenseplate.json +0 -69
- package/data/pages/Components/components/linecharts.json +0 -987
- package/data/pages/Components/components/listmenu.json +0 -313
- package/data/pages/Components/components/loadmore.json +0 -175
- package/data/pages/Components/components/mainnavigation.json +0 -39
- package/data/pages/Components/components/mapcircle.json +0 -34
- package/data/pages/Components/components/mapcluster.json +0 -51
- package/data/pages/Components/components/mapcontext.json +0 -105
- package/data/pages/Components/components/mapdraggablemarker.json +0 -34
- package/data/pages/Components/components/mapgettingstarted.json +0 -27
- package/data/pages/Components/components/mapgroup.json +0 -1198
- package/data/pages/Components/components/mapinfobubble.json +0 -34
- package/data/pages/Components/components/maplayergroup.json +0 -34
- package/data/pages/Components/components/mapmarker.json +0 -700
- package/data/pages/Components/components/mappolygon.json +0 -45
- package/data/pages/Components/components/maproute.json +0 -623
- package/data/pages/Components/components/maproutegenerator.json +0 -16
- package/data/pages/Components/components/mapsettings.json +0 -51
- package/data/pages/Components/components/maputils.json +0 -34
- package/data/pages/Components/components/multiselects.json +0 -1451
- package/data/pages/Components/components/nodata.json +0 -139
- package/data/pages/Components/components/notifications.json +0 -65
- package/data/pages/Components/components/numbercontrol.json +0 -301
- package/data/pages/Components/components/onboarding.json +0 -302
- package/data/pages/Components/components/page.json +0 -197
- package/data/pages/Components/components/pager.json +0 -93
- package/data/pages/Components/components/piecharts.json +0 -731
- package/data/pages/Components/components/popover.json +0 -251
- package/data/pages/Components/components/position.json +0 -69
- package/data/pages/Components/components/radialbarcharts.json +0 -1304
- package/data/pages/Components/components/radiobutton.json +0 -1105
- package/data/pages/Components/components/releasenotes.json +0 -44
- package/data/pages/Components/components/resizer.json +0 -93
- package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
- package/data/pages/Components/components/responsivevideo.json +0 -75
- package/data/pages/Components/components/rioglyph.json +0 -93
- package/data/pages/Components/components/rules.json +0 -410
- package/data/pages/Components/components/saveableinput.json +0 -703
- package/data/pages/Components/components/selects.json +0 -701
- package/data/pages/Components/components/sidebar.json +0 -243
- package/data/pages/Components/components/sliders.json +0 -235
- package/data/pages/Components/components/smoothscrollbars.json +0 -335
- package/data/pages/Components/components/spinners.json +0 -343
- package/data/pages/Components/components/states.json +0 -1705
- package/data/pages/Components/components/statswidgets.json +0 -314
- package/data/pages/Components/components/statusbar.json +0 -177
- package/data/pages/Components/components/stepbutton.json +0 -57
- package/data/pages/Components/components/steppedprogressbars.json +0 -417
- package/data/pages/Components/components/subnavigation.json +0 -107
- package/data/pages/Components/components/supportmarker.json +0 -45
- package/data/pages/Components/components/svgimage.json +0 -81
- package/data/pages/Components/components/switch.json +0 -111
- package/data/pages/Components/components/tables.json +0 -144
- package/data/pages/Components/components/tagmanager.json +0 -86
- package/data/pages/Components/components/tags.json +0 -146
- package/data/pages/Components/components/teaser.json +0 -188
- package/data/pages/Components/components/timeline.json +0 -45
- package/data/pages/Components/components/timepicker.json +0 -163
- package/data/pages/Components/components/togglebutton.json +0 -247
- package/data/pages/Components/components/tooltip.json +0 -270
- package/data/pages/Components/components/virtuallist.json +0 -175
- package/data/pages/Foundations/foundations.json +0 -2475
- package/data/pages/Getting-started/start/changelog.json +0 -22
- package/data/pages/Getting-started/start/goodtoknow.json +0 -32
- package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
- package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
- package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
- package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
- package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
- package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
- package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
- package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
- package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
- package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
- package/data/pages/Getting-started/start/howto.json +0 -72
- package/data/pages/Getting-started/start/intro.json +0 -37
- package/data/pages/Getting-started/start/responsiveness.json +0 -52
- package/data/pages/Templates/templates/common-table.json +0 -39
- package/data/pages/Templates/templates/detail-views.json +0 -71
- package/data/pages/Templates/templates/expandable-details.json +0 -39
- package/data/pages/Templates/templates/feature-cards.json +0 -103
- package/data/pages/Templates/templates/form-summary.json +0 -39
- package/data/pages/Templates/templates/form-toggle.json +0 -39
- package/data/pages/Templates/templates/list-blocks.json +0 -119
- package/data/pages/Templates/templates/loading-progress.json +0 -39
- package/data/pages/Templates/templates/options-panel.json +0 -39
- package/data/pages/Templates/templates/panel-variants.json +0 -39
- package/data/pages/Templates/templates/progress-cards.json +0 -71
- package/data/pages/Templates/templates/progress-success.json +0 -39
- package/data/pages/Templates/templates/settings-form.json +0 -39
- package/data/pages/Templates/templates/stats-blocks.json +0 -135
- package/data/pages/Templates/templates/table-panel.json +0 -39
- package/data/pages/Templates/templates/table-row-animation.json +0 -39
- package/data/pages/Templates/templates/usage-cards.json +0 -39
- package/data/pages/Utilities/utilities/deviceutils.json +0 -39
- package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
- package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
- package/data/pages/Utilities/utilities/routeutils.json +0 -34
- package/data/pages/Utilities/utilities/useaftermount.json +0 -63
- package/data/pages/Utilities/utilities/useaverage.json +0 -86
- package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
- package/data/pages/Utilities/utilities/useclipboard.json +0 -57
- package/data/pages/Utilities/utilities/usecount.json +0 -92
- package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
- package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
- package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
- package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
- package/data/pages/Utilities/utilities/useelementsize.json +0 -63
- package/data/pages/Utilities/utilities/useesc.json +0 -57
- package/data/pages/Utilities/utilities/useevent.json +0 -75
- package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
- package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
- package/data/pages/Utilities/utilities/usehover.json +0 -57
- package/data/pages/Utilities/utilities/useinterval.json +0 -63
- package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
- package/data/pages/Utilities/utilities/usekey.json +0 -75
- package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
- package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
- package/data/pages/Utilities/utilities/usemax.json +0 -86
- package/data/pages/Utilities/utilities/usemin.json +0 -86
- package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
- package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
- package/data/pages/Utilities/utilities/useonscreen.json +0 -63
- package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
- package/data/pages/Utilities/utilities/useprevious.json +0 -63
- package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
- package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
- package/data/pages/Utilities/utilities/usesearch.json +0 -197
- package/data/pages/Utilities/utilities/usesorting.json +0 -139
- package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
- package/data/pages/Utilities/utilities/usesum.json +0 -86
- package/data/pages/Utilities/utilities/usetableexport.json +0 -87
- package/data/pages/Utilities/utilities/usetableselection.json +0 -311
- package/data/pages/Utilities/utilities/usetimeout.json +0 -63
- package/data/pages/Utilities/utilities/usetoggle.json +0 -75
- package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
- package/data/version.json +0 -4
- package/docs/content-schema.md +0 -147
- package/docs/navigation-inventory.json +0 -1310
- package/docs/search-synonyms.json +0 -43
- package/server/index.mjs +0 -268
- package/server/lib/load-docs.mjs +0 -48
- package/server/lib/normalise-doc.mjs +0 -220
- package/server/lib/render-markdown.mjs +0 -82
- package/server/lib/search-index.mjs +0 -49
- package/server/lib/types.js +0 -99
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# Map
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Map
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/mapContext
|
|
6
|
+
*Captured:* 2025-12-12T12:39:15.120Z
|
|
7
|
+
|
|
8
|
+
## Map
|
|
9
|
+
|
|
10
|
+
### Example: Example 1
|
|
11
|
+
|
|
12
|
+
Terms of use© 1987–2025 HERE
|
|
13
|
+
|
|
14
|
+
10 km
|
|
15
|
+
|
|
16
|
+
Choose view
|
|
17
|
+
Map view
|
|
18
|
+
Satellite
|
|
19
|
+
|
|
20
|
+
Traffic conditions
|
|
21
|
+
Show traffic incidents
|
|
22
|
+
|
|
23
|
+
#### Summary
|
|
24
|
+
|
|
25
|
+
Terms of use© 1987–2025 HERE
|
|
26
|
+
|
|
27
|
+
10 km
|
|
28
|
+
|
|
29
|
+
Choose view
|
|
30
|
+
Map view
|
|
31
|
+
Satellite
|
|
32
|
+
|
|
33
|
+
Traffic conditions
|
|
34
|
+
Show traffic incidents
|
|
35
|
+
|
|
36
|
+
#### React (tsx)
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { useRef, useState } from 'react';
|
|
40
|
+
|
|
41
|
+
import Notification from '@rio-cloud/rio-uikit/Notification';
|
|
42
|
+
import Map from '@rio-cloud/rio-uikit/Map';
|
|
43
|
+
import ContextMenu, { isMapTarget } from '@rio-cloud/rio-uikit/ContextMenu';
|
|
44
|
+
import ContextMenuItem from '@rio-cloud/rio-uikit/ContextMenuItem';
|
|
45
|
+
import EventUtils from '@rio-cloud/rio-uikit/EventUtils';
|
|
46
|
+
import Marker from '@rio-cloud/rio-uikit/Marker';
|
|
47
|
+
import SingleMapMarker from '@rio-cloud/rio-uikit/SingleMapMarker';
|
|
48
|
+
import MapSettings from '@rio-cloud/rio-uikit/MapSettings';
|
|
49
|
+
import MapTypeSettings from '@rio-cloud/rio-uikit/MapTypeSettings';
|
|
50
|
+
import MapLayerSettings from '@rio-cloud/rio-uikit/MapLayerSettings';
|
|
51
|
+
import MapLayerTrafficItem from '@rio-cloud/rio-uikit/MapLayerTrafficItem';
|
|
52
|
+
import MapLayerIncidentsItem from '@rio-cloud/rio-uikit/MapLayerIncidentsItem';
|
|
53
|
+
import MapLayerRoadRestrictionsItem from '@rio-cloud/rio-uikit/MapLayerRoadRestrictionsItem';
|
|
54
|
+
import Circle from '@rio-cloud/rio-uikit/Circle';
|
|
55
|
+
import type { MapApi, MapContextMenuEvent, MapEvent, Position } from '@rio-cloud/rio-uikit/mapTypes';
|
|
56
|
+
|
|
57
|
+
import { UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT } from '../uikit_demo_credentials';
|
|
58
|
+
import MapSettingsDropdownHeader from '@rio-cloud/rio-uikit/MapSettingsDropdownHeader';
|
|
59
|
+
|
|
60
|
+
const formatCoordinates = (coordinates: Position) => {
|
|
61
|
+
return [
|
|
62
|
+
Math.abs(Number(coordinates.lat.toFixed(4))) + (coordinates.lat > 0 ? 'N' : 'S'),
|
|
63
|
+
Math.abs(Number(coordinates.lng.toFixed(4))) + (coordinates.lng > 0 ? 'E' : 'W'),
|
|
64
|
+
].join(' ');
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const notifyCoordinates = (coordinates: Position) => Notification.info(JSON.stringify(coordinates));
|
|
68
|
+
|
|
69
|
+
type ContextMenuData = {
|
|
70
|
+
target?: string;
|
|
71
|
+
event?: MapContextMenuEvent;
|
|
72
|
+
targetPosition?: Position;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const ContextMenuExample = () => {
|
|
76
|
+
const munichCoord = { lat: 48.1351, lng: 11.582 };
|
|
77
|
+
const markerPosition = { lat: 48.1351, lng: 11.382 };
|
|
78
|
+
const circlePosition = { lat: 48.2351, lng: 11.482 };
|
|
79
|
+
|
|
80
|
+
const [contextMenuData, setContextMenuData] = useState<ContextMenuData>({});
|
|
81
|
+
|
|
82
|
+
const [mapCenter, setMapCenter] = useState<Position>(munichCoord);
|
|
83
|
+
const [coordLabel, setCoordLabel] = useState<string>('');
|
|
84
|
+
|
|
85
|
+
const [showSpinner, setShowSpinner] = useState(true);
|
|
86
|
+
|
|
87
|
+
const mapApiRef = useRef<MapApi>();
|
|
88
|
+
|
|
89
|
+
// The onOpen callback will receive the coordinates of the context menu unless the "targetPosition"
|
|
90
|
+
// prop is defined whereas in that case the context menu coordinates are ignored and the provided
|
|
91
|
+
// targetPosition is returned
|
|
92
|
+
const handleOpenContextMenu = (contextMenuCoordinates: Position) => {
|
|
93
|
+
setShowSpinner(true);
|
|
94
|
+
|
|
95
|
+
// Resolve the coordinates to an address but for demo purpose we show the coordinates
|
|
96
|
+
console.log(contextMenuCoordinates);
|
|
97
|
+
setCoordLabel(formatCoordinates(contextMenuCoordinates));
|
|
98
|
+
|
|
99
|
+
// remove the spinner after some time to showcase the sinner in the UI and to simulate an async event
|
|
100
|
+
setTimeout(() => setShowSpinner(false), 1000);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const centerMap = (coordinates: Position /* , hereMap*/) => setMapCenter(coordinates);
|
|
104
|
+
|
|
105
|
+
const markerEventListenerMap = {
|
|
106
|
+
[EventUtils.TAP]: (event: MapEvent) => {
|
|
107
|
+
// Note: if there is a "TAP" event defined make sure to block the event for right mouse button otherwise
|
|
108
|
+
// the right click will also trigger the tap callback and may cause unwanted selection
|
|
109
|
+
if (EventUtils.isRightClick(event)) {
|
|
110
|
+
event.stopPropagation();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log(event);
|
|
114
|
+
},
|
|
115
|
+
[EventUtils.CONTEXTMENU]: (event: MapContextMenuEvent) => {
|
|
116
|
+
// "target" is used to decide what context menu items shall be shown
|
|
117
|
+
// "event" is used to add the menu items to it
|
|
118
|
+
// "targetPosition" is used to return a fixed position on context menu open or in the item callback
|
|
119
|
+
setContextMenuData({ target: 'marker', event, targetPosition: markerPosition });
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
const circleEventListenerMap = {
|
|
124
|
+
[EventUtils.CONTEXTMENU]: (event: MapContextMenuEvent) => {
|
|
125
|
+
setContextMenuData({ target: 'circle', event, targetPosition: circlePosition });
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
// Register a context menu event listener for the map itself in order to show
|
|
130
|
+
// only map related context menu entries
|
|
131
|
+
const mapEventListenerMap = {
|
|
132
|
+
[EventUtils.CONTEXTMENU]: (event: MapContextMenuEvent) => {
|
|
133
|
+
if (isMapTarget(event, mapApiRef.current)) {
|
|
134
|
+
setContextMenuData({ target: 'map', event, targetPosition: circlePosition });
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// Define some context menu entries that are always available when opening
|
|
140
|
+
const positionItem = (
|
|
141
|
+
<ContextMenuItem
|
|
142
|
+
key='1'
|
|
143
|
+
className='text-color-darker cursor-default'
|
|
144
|
+
labelClassName='text-medium'
|
|
145
|
+
label={coordLabel}
|
|
146
|
+
icon='rioglyph-map-marker'
|
|
147
|
+
hasSpinner={showSpinner}
|
|
148
|
+
/>
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
const centerMapItem = (
|
|
152
|
+
<ContextMenuItem key='2' icon='rioglyph-position' label='Center map here' callback={centerMap} />
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
let contextMenuItems = [];
|
|
156
|
+
|
|
157
|
+
// Add context related menu items like when clicking on a map object.
|
|
158
|
+
// This differentiation may vary for your use case. This is just for demo purposes.
|
|
159
|
+
switch (contextMenuData.target) {
|
|
160
|
+
case 'circle':
|
|
161
|
+
contextMenuItems = [
|
|
162
|
+
positionItem,
|
|
163
|
+
centerMapItem,
|
|
164
|
+
<ContextMenuItem key='removeCircle' label='Remove circle' disabled />,
|
|
165
|
+
];
|
|
166
|
+
break;
|
|
167
|
+
case 'marker':
|
|
168
|
+
contextMenuItems = [
|
|
169
|
+
positionItem,
|
|
170
|
+
centerMapItem,
|
|
171
|
+
<ContextMenuItem key='startRoute' label='<b>Start here</b>' callback={notifyCoordinates} />,
|
|
172
|
+
];
|
|
173
|
+
break;
|
|
174
|
+
default:
|
|
175
|
+
contextMenuItems = [
|
|
176
|
+
positionItem,
|
|
177
|
+
centerMapItem,
|
|
178
|
+
<ContextMenuItem
|
|
179
|
+
key='zoomHere'
|
|
180
|
+
label='Zoom to this location'
|
|
181
|
+
callback={() => {
|
|
182
|
+
if (mapApiRef.current?.utils) {
|
|
183
|
+
const zoom = mapApiRef.current.utils.getZoom() + 3;
|
|
184
|
+
mapApiRef.current.utils.setZoom(zoom >= 19 ? 19 : zoom, false);
|
|
185
|
+
}
|
|
186
|
+
}}
|
|
187
|
+
/>,
|
|
188
|
+
];
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
return (
|
|
193
|
+
<div className='height-300'>
|
|
194
|
+
<Map
|
|
195
|
+
credentials={UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT}
|
|
196
|
+
center={mapCenter}
|
|
197
|
+
zoom={10}
|
|
198
|
+
eventListenerMap={mapEventListenerMap}
|
|
199
|
+
mapSettings={
|
|
200
|
+
<MapSettings
|
|
201
|
+
options={[
|
|
202
|
+
<MapTypeSettings
|
|
203
|
+
key='mapTypeSettings'
|
|
204
|
+
tooltip='Change map type'
|
|
205
|
+
dropdownHeaderText='Map views'
|
|
206
|
+
defaultTypeLabel='Default view'
|
|
207
|
+
truckTypeLabel='Truck view'
|
|
208
|
+
terrainTypeLabel='Terrain view'
|
|
209
|
+
satelliteTypeLabel='Satellite view'
|
|
210
|
+
nightTypeLabel='Night view'
|
|
211
|
+
/>,
|
|
212
|
+
<MapLayerSettings
|
|
213
|
+
key='mapLayerSettings'
|
|
214
|
+
layers={[
|
|
215
|
+
<MapSettingsDropdownHeader key='dividerTraffic' label='Traffic overlays' />,
|
|
216
|
+
<MapLayerTrafficItem key='mapLayerTrafficItem' label='Traffic' />,
|
|
217
|
+
<MapLayerIncidentsItem key='mapLayerIncidentsItem' label='Incidents' />,
|
|
218
|
+
<MapLayerRoadRestrictionsItem
|
|
219
|
+
key='mapLayerRoadRestrictionsItem'
|
|
220
|
+
label='Road restrictions'
|
|
221
|
+
/>,
|
|
222
|
+
]}
|
|
223
|
+
tooltip='Toggle various map overlays'
|
|
224
|
+
/>,
|
|
225
|
+
]}
|
|
226
|
+
/>
|
|
227
|
+
}
|
|
228
|
+
>
|
|
229
|
+
{(api: MapApi) => {
|
|
230
|
+
mapApiRef.current = api;
|
|
231
|
+
|
|
232
|
+
return (
|
|
233
|
+
<>
|
|
234
|
+
<Marker
|
|
235
|
+
position={markerPosition}
|
|
236
|
+
icon={<SingleMapMarker iconNames={['truck']} markerColor='bg-map-marker-asset' />}
|
|
237
|
+
eventListenerMap={markerEventListenerMap}
|
|
238
|
+
/>
|
|
239
|
+
<Circle
|
|
240
|
+
position={circlePosition}
|
|
241
|
+
radius={5000}
|
|
242
|
+
style={{ strokeColor: '#f0f' }}
|
|
243
|
+
precision={30}
|
|
244
|
+
eventListenerMap={circleEventListenerMap}
|
|
245
|
+
/>
|
|
246
|
+
<ContextMenu
|
|
247
|
+
onOpen={handleOpenContextMenu}
|
|
248
|
+
menuItems={contextMenuItems}
|
|
249
|
+
contextMenuEvent={contextMenuData.event}
|
|
250
|
+
targetPosition={contextMenuData.targetPosition}
|
|
251
|
+
/>
|
|
252
|
+
</>
|
|
253
|
+
);
|
|
254
|
+
}}
|
|
255
|
+
</Map>
|
|
256
|
+
</div>
|
|
257
|
+
);
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
export default ContextMenuExample;
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
#### Props: ContextMenu
|
|
264
|
+
|
|
265
|
+
### ContextMenu
|
|
266
|
+
|
|
267
|
+
| Name | Type | Default | Description |
|
|
268
|
+
| --- | --- | --- | --- |
|
|
269
|
+
| onOpen | Function | — | Callback function triggered when the context menu has opened. It returns the coordinates where the map has been clicked: { lat: 48.07182240898762, lng: 11.495482666015647 } |
|
|
270
|
+
| children | List of ContextMenuItem | — | The list of ContextMenuItem to render. Note that the order is important and may not be altered after the first render as the component tries to update the labels directly and relieson the order of items. Also do not omit an item which you want to add later on. Rather disable it. |
|
|
271
|
+
|
|
272
|
+
#### Props: ContextMenuItem
|
|
273
|
+
|
|
274
|
+
### ContextMenuItem
|
|
275
|
+
|
|
276
|
+
| Name | Type | Default | Description |
|
|
277
|
+
| --- | --- | --- | --- |
|
|
278
|
+
| label | String | — | The actual label text. |
|
|
279
|
+
| disabled | Boolean | — | Defines whether or not the item is disabled. |
|
|
280
|
+
| hasSpinner | Boolean | — | Defines whether or not a spinner is rendered instead of the label. |
|
|
281
|
+
| icon | String | — | The name of the icon added to the label. |
|
|
282
|
+
| callback | Function | — | Callback function that is called when clicking on the item. |
|
|
283
|
+
| labelClassName | String | — | Additional classes added to the label element. |
|
|
284
|
+
| className | String | — | Additional classes added to the wrapper element. |
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Draggable marker
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Map
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/mapDraggableMarker
|
|
6
|
+
*Captured:* 2025-12-12T12:39:05.357Z
|
|
7
|
+
|
|
8
|
+
## Draggable marker
|
|
9
|
+
|
|
10
|
+
### Example: Example 1
|
|
11
|
+
|
|
12
|
+
Terms of use© 1987–2025 HERE
|
|
13
|
+
|
|
14
|
+
10 km
|
|
15
|
+
|
|
16
|
+
Choose view
|
|
17
|
+
Map view
|
|
18
|
+
Satellite
|
|
19
|
+
|
|
20
|
+
Traffic conditions
|
|
21
|
+
Show traffic incidents
|
|
22
|
+
|
|
23
|
+
Marker position{"lat":48.16,"lng":11.38}
|
|
24
|
+
|
|
25
|
+
#### Summary
|
|
26
|
+
|
|
27
|
+
Terms of use© 1987–2025 HERE
|
|
28
|
+
|
|
29
|
+
10 km
|
|
30
|
+
|
|
31
|
+
Choose view
|
|
32
|
+
Map view
|
|
33
|
+
Satellite
|
|
34
|
+
|
|
35
|
+
Traffic conditions
|
|
36
|
+
Show traffic incidents
|
|
37
|
+
|
|
38
|
+
Marker position{"lat":48.16,"lng":11.38}
|
|
39
|
+
|
|
40
|
+
#### React (tsx)
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
// See https://www.here.com/docs/bundle/draggable-marker/page/README.html
|
|
44
|
+
|
|
45
|
+
import { useState, useRef } from 'react';
|
|
46
|
+
|
|
47
|
+
import Map from '@rio-cloud/rio-uikit/Map';
|
|
48
|
+
import EventUtils from '@rio-cloud/rio-uikit/EventUtils';
|
|
49
|
+
import Marker from '@rio-cloud/rio-uikit/Marker';
|
|
50
|
+
import SingleMapMarker from '@rio-cloud/rio-uikit/SingleMapMarker';
|
|
51
|
+
|
|
52
|
+
import { UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT } from '../uikit_demo_credentials';
|
|
53
|
+
import type { MapApi, MapEvent, Position } from '@rio-cloud/rio-uikit/mapTypes';
|
|
54
|
+
|
|
55
|
+
const initialMapPosition = { lat: 48.03, lng: 11.7 };
|
|
56
|
+
|
|
57
|
+
const MarkerExample = () => {
|
|
58
|
+
const mapApiRef = useRef<MapApi>();
|
|
59
|
+
|
|
60
|
+
const [markerPosition, setMarkerPosition] = useState<Position>({ lat: 48.16, lng: 11.38 });
|
|
61
|
+
|
|
62
|
+
const mapEventListenerMap = {
|
|
63
|
+
[EventUtils.TAP]: (event: MapEvent) => {
|
|
64
|
+
const pointer = event.currentPointer;
|
|
65
|
+
setMarkerPosition(mapApiRef.current?.map.screenToGeo(pointer.viewportX, pointer.viewportY));
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const markerEventListenerMap = {
|
|
70
|
+
[EventUtils.DRAG_START]: (event: MapEvent) => {
|
|
71
|
+
// disable the default draggability of the underlying map
|
|
72
|
+
// and calculate the offset between mouse and target's position
|
|
73
|
+
// when starting to drag a marker object:
|
|
74
|
+
const target = event.target;
|
|
75
|
+
const pointer = event.currentPointer;
|
|
76
|
+
|
|
77
|
+
if (target.draggable) {
|
|
78
|
+
const targetPosition = mapApiRef.current?.map.geoToScreen(target.getGeometry());
|
|
79
|
+
target.offset = new H.math.Point(
|
|
80
|
+
pointer.viewportX - targetPosition.x,
|
|
81
|
+
pointer.viewportY - targetPosition.y
|
|
82
|
+
);
|
|
83
|
+
mapApiRef.current?.behavior.disable();
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
[EventUtils.DRAG_END]: (event: MapEvent) => {
|
|
87
|
+
// re-enable the default draggability of the underlying map
|
|
88
|
+
// when dragging has completed
|
|
89
|
+
const target = event.target;
|
|
90
|
+
if (target.draggable) {
|
|
91
|
+
mapApiRef.current?.behavior.enable();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Update final map marker position
|
|
95
|
+
const pointer = event.currentPointer;
|
|
96
|
+
setMarkerPosition(
|
|
97
|
+
mapApiRef.current?.map.screenToGeo(
|
|
98
|
+
pointer.viewportX - target.offset.x,
|
|
99
|
+
pointer.viewportY - target.offset.y
|
|
100
|
+
)
|
|
101
|
+
);
|
|
102
|
+
},
|
|
103
|
+
[EventUtils.DRAG]: (event: MapEvent) => {
|
|
104
|
+
// Listen to the drag event and move the position of the marker
|
|
105
|
+
// as necessary
|
|
106
|
+
const target = event.target;
|
|
107
|
+
const pointer = event.currentPointer;
|
|
108
|
+
if (target.draggable) {
|
|
109
|
+
target.setGeometry(
|
|
110
|
+
mapApiRef.current?.map.screenToGeo(
|
|
111
|
+
pointer.viewportX - target.offset.x,
|
|
112
|
+
pointer.viewportY - target.offset.y
|
|
113
|
+
)
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
return (
|
|
120
|
+
<>
|
|
121
|
+
<Map
|
|
122
|
+
credentials={UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT}
|
|
123
|
+
center={initialMapPosition}
|
|
124
|
+
zoom={10}
|
|
125
|
+
height={550}
|
|
126
|
+
eventListenerMap={mapEventListenerMap}
|
|
127
|
+
>
|
|
128
|
+
{(api: MapApi) => {
|
|
129
|
+
mapApiRef.current = api;
|
|
130
|
+
|
|
131
|
+
return (
|
|
132
|
+
<Marker
|
|
133
|
+
position={markerPosition}
|
|
134
|
+
icon={<SingleMapMarker iconNames={['pushpin']} markerColor='bg-map-marker-poi' />}
|
|
135
|
+
eventListenerMap={markerEventListenerMap}
|
|
136
|
+
draggable
|
|
137
|
+
/>
|
|
138
|
+
);
|
|
139
|
+
}}
|
|
140
|
+
</Map>
|
|
141
|
+
<div className='margin-top-15'>
|
|
142
|
+
<label>Marker position</label>
|
|
143
|
+
<div>{JSON.stringify(markerPosition)}</div>
|
|
144
|
+
</div>
|
|
145
|
+
</>
|
|
146
|
+
);
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export default MarkerExample;
|
|
150
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# components/mapGettingStarted
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Map
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/mapGettingStarted
|
|
6
|
+
*Captured:* 2025-12-12T12:39:03.564Z
|
|
7
|
+
|
|
8
|
+
HERE Maps credentials used in the UIKIT demo are not allowed to be used in any production environment!
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
> Note: HERE Maps credentials used in the UIKIT demo are not allowed to be used in any production environment!Please make sure you get your own "dev" and "prod" credentials!
|
|
13
|
+
|
|
14
|
+
## HERE Maps credentials
|
|
15
|
+
|
|
16
|
+
Please note that the usage of HERE Maps is not free. If you have any questions regarding license costs, please contact us.
|
|
17
|
+
|
|
18
|
+
In case you want to use HERE Maps in production, please contact finance@rio.cloud.
|
|
19
|
+
|
|
20
|
+
**Add HERE Maps dependencies**
|
|
21
|
+
|
|
22
|
+
**Map Imports**
|
|
23
|
+
|
|
24
|
+
As the UIKIT Map component relies on the map scripts from Here, we need to add them to the index.html as shown below.
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-core.js" type="text/javascript"></script>
|
|
28
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-core-legacy.js" type="text/javascript"></script>
|
|
29
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-service.js" type="text/javascript"></script>
|
|
30
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-service-legacy.js" type="text/javascript"></script>
|
|
31
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-mapevents.js" type="text/javascript"></script>
|
|
32
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-ui.js" type="text/javascript"></script>
|
|
33
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-harp.js" type="text/javascript"></script>
|
|
34
|
+
<script src="https://js.api.here.com/v3/3.1/mapsjs-clustering.js" type="text/javascript"></script>
|
|
35
|
+
|
|
36
|
+
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.1/mapsjs-ui.css" />
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Map API VersionBy default, the map imports use the map version 3.1. However, this version is not a fixed version as it will be resolved to an internal version by Here. This means version 3.1 is treated as an evergreen version.If you encounter any instability or even bugs with the map itself, it is recommended to set the version fixed in the imports and check for a newer version on demand.More details can be found on the Here Developer PlatformFor example<script src="https://js.api.here.com/v3/3.1.11.2/mapsjs-core.js"></script>
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# InfoBubble
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Map
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#components/mapInfoBubble
|
|
6
|
+
*Captured:* 2025-12-12T12:39:12.574Z
|
|
7
|
+
|
|
8
|
+
## InfoBubble
|
|
9
|
+
|
|
10
|
+
### Example: Example 1
|
|
11
|
+
|
|
12
|
+
Terms of use© 1987–2025 HERE
|
|
13
|
+
|
|
14
|
+
10 km
|
|
15
|
+
|
|
16
|
+
Ansicht auswählen
|
|
17
|
+
Kartenansicht
|
|
18
|
+
Satellit
|
|
19
|
+
|
|
20
|
+
Verkehrslage
|
|
21
|
+
Verkehrsstörungen anzeigen
|
|
22
|
+
|
|
23
|
+
Toggle info
|
|
24
|
+
|
|
25
|
+
#### Summary
|
|
26
|
+
|
|
27
|
+
Terms of use© 1987–2025 HERE
|
|
28
|
+
|
|
29
|
+
10 km
|
|
30
|
+
|
|
31
|
+
Ansicht auswählen
|
|
32
|
+
Kartenansicht
|
|
33
|
+
Satellit
|
|
34
|
+
|
|
35
|
+
Verkehrslage
|
|
36
|
+
Verkehrsstörungen anzeigen
|
|
37
|
+
|
|
38
|
+
Toggle info
|
|
39
|
+
|
|
40
|
+
#### React (tsx)
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { useRef, useState } from 'react';
|
|
44
|
+
|
|
45
|
+
import Map from '@rio-cloud/rio-uikit/Map';
|
|
46
|
+
import MapSettings from '@rio-cloud/rio-uikit/MapSettings';
|
|
47
|
+
import MapTypeSettings from '@rio-cloud/rio-uikit/MapTypeSettings';
|
|
48
|
+
|
|
49
|
+
import { UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT } from '../uikit_demo_credentials';
|
|
50
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
51
|
+
import InfoBubble from '@rio-cloud/rio-uikit/InfoBubble';
|
|
52
|
+
import type { MapApi } from '@rio-cloud/rio-uikit/mapTypes';
|
|
53
|
+
|
|
54
|
+
const mapCenter = { lat: 48.1351, lng: 11.582 };
|
|
55
|
+
const position = { lat: 48.02, lng: 11.6 };
|
|
56
|
+
|
|
57
|
+
const InfoBubbleContent = () => (
|
|
58
|
+
<div className='width-200 user-select-none'>
|
|
59
|
+
<div className='margin-top--15 margin-left--15 margin-right--25 padding-15 bg-lightest rounded-top'>
|
|
60
|
+
<div className='text-bold'>Public toilet</div>
|
|
61
|
+
<div className='text-color-dark line-height-18 text-size-12 margin-top-5'>
|
|
62
|
+
Toilet handle in public toilet is broken and can't flush the toilet
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
<div className='margin-bottom--15 margin-left--15 margin-right--25 padding-15 shadow-default rounded-top'>
|
|
66
|
+
<div className='line-height-20 text-size-12'>
|
|
67
|
+
<div className='display-flex justify-content-between'>
|
|
68
|
+
<div className='text-color-dark'>Operator</div>
|
|
69
|
+
<div>Mr. Handyman</div>
|
|
70
|
+
</div>
|
|
71
|
+
<div className='display-flex justify-content-between'>
|
|
72
|
+
<div className='text-color-dark'>Contact</div>
|
|
73
|
+
<div>089 / 123 45 67 89</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
<div className='text-center text-size-12 margin-top-5 margin-bottom--5'>
|
|
77
|
+
<a href='https://rio.cloud' target='_blank' rel='noreferrer'>
|
|
78
|
+
Visit website
|
|
79
|
+
</a>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
export default () => {
|
|
86
|
+
const [showInfo, setShowInfo] = useState(false);
|
|
87
|
+
|
|
88
|
+
const mapApiRef = useRef<MapApi>();
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<>
|
|
92
|
+
<Map
|
|
93
|
+
credentials={UIKIT_DEMO_CREDENTIALS_ARE_NOT_ALLOWED_IN_PROD_ENVIRONMENT}
|
|
94
|
+
center={mapCenter}
|
|
95
|
+
zoom={10}
|
|
96
|
+
height={400}
|
|
97
|
+
language='de'
|
|
98
|
+
mapSettings={
|
|
99
|
+
<MapSettings
|
|
100
|
+
options={[
|
|
101
|
+
<MapTypeSettings
|
|
102
|
+
key='mapTypeSettings'
|
|
103
|
+
tooltip='Change map type'
|
|
104
|
+
dropdownHeaderText='Map views'
|
|
105
|
+
defaultTypeLabel='Default view'
|
|
106
|
+
truckTypeLabel='Truck view'
|
|
107
|
+
terrainTypeLabel='Terrain view'
|
|
108
|
+
satelliteTypeLabel='Satellite view'
|
|
109
|
+
nightTypeLabel='Night view'
|
|
110
|
+
/>,
|
|
111
|
+
]}
|
|
112
|
+
/>
|
|
113
|
+
}
|
|
114
|
+
>
|
|
115
|
+
{(api: MapApi) => {
|
|
116
|
+
mapApiRef.current = api;
|
|
117
|
+
|
|
118
|
+
return null;
|
|
119
|
+
}}
|
|
120
|
+
</Map>
|
|
121
|
+
{showInfo && (
|
|
122
|
+
<InfoBubble
|
|
123
|
+
api={mapApiRef.current}
|
|
124
|
+
position={position}
|
|
125
|
+
content={<InfoBubbleContent />}
|
|
126
|
+
onClose={() => setShowInfo(false)}
|
|
127
|
+
/>
|
|
128
|
+
)}
|
|
129
|
+
<div className='margin-top-20'>
|
|
130
|
+
<Button onClick={() => setShowInfo(!showInfo)}>Toggle info</Button>
|
|
131
|
+
</div>
|
|
132
|
+
</>
|
|
133
|
+
);
|
|
134
|
+
};
|
|
135
|
+
```
|