@rio-cloud/rio-uikit 2.0.1 → 2.2.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.
Files changed (567) hide show
  1. package/CircularProgress.d.ts +2 -0
  2. package/CircularProgress.js +5 -0
  3. package/CircularProgress.js.map +1 -0
  4. package/RadioCardGroup.d.ts +2 -0
  5. package/RadioCardGroup.js +7 -0
  6. package/RadioCardGroup.js.map +1 -0
  7. package/SearchHighlightText.d.ts +2 -0
  8. package/SearchHighlightText.js +5 -0
  9. package/SearchHighlightText.js.map +1 -0
  10. package/TextTruncateMiddle.d.ts +2 -0
  11. package/TextTruncateMiddle.js +5 -0
  12. package/TextTruncateMiddle.js.map +1 -0
  13. package/Tracker.d.ts +2 -0
  14. package/Tracker.js +5 -0
  15. package/Tracker.js.map +1 -0
  16. package/classNames.d.ts +2 -0
  17. package/classNames.js +5 -0
  18. package/classNames.js.map +1 -0
  19. package/components/accentBar/AccentBar.js +1 -1
  20. package/components/accentBar/AccentBar.js.map +1 -1
  21. package/components/actionBarItem/ActionBarItem.d.ts +2 -2
  22. package/components/actionBarItem/ActionBarItem.js +7 -7
  23. package/components/actionBarItem/ActionBarItem.js.map +1 -1
  24. package/components/actionBarItem/ActionBarItemIcon.js +1 -1
  25. package/components/actionBarItem/ActionBarItemIcon.js.map +1 -1
  26. package/components/actionBarItem/ActionBarItemList.js +1 -1
  27. package/components/actionBarItem/ActionBarItemList.js.map +1 -1
  28. package/components/actionBarItem/ActionBarItemListItem.js +1 -1
  29. package/components/actionBarItem/ActionBarItemListItem.js.map +1 -1
  30. package/components/actionBarItem/ActionBarItemListSeparator.js +1 -1
  31. package/components/actionBarItem/ActionBarItemListSeparator.js.map +1 -1
  32. package/components/actionBarItem/ActionBarItemPopoverContent.js +3 -3
  33. package/components/actionBarItem/ActionBarItemPopoverContent.js.map +1 -1
  34. package/components/actionBarItem/ActionBarOverlay.js +1 -1
  35. package/components/actionBarItem/ActionBarOverlay.js.map +1 -1
  36. package/components/activity/Activity.js +1 -1
  37. package/components/activity/Activity.js.map +1 -1
  38. package/components/animatedTextReveal/AnimatedTextReveal.js +1 -1
  39. package/components/animatedTextReveal/AnimatedTextReveal.js.map +1 -1
  40. package/components/applicationHeader/AppMenu.js +2 -2
  41. package/components/applicationHeader/AppMenu.js.map +1 -1
  42. package/components/applicationHeader/AppMenuDropdown.js +13 -11
  43. package/components/applicationHeader/AppMenuDropdown.js.map +1 -1
  44. package/components/applicationHeader/ApplicationHeader.d.ts +6 -7
  45. package/components/applicationHeader/ApplicationHeader.js +1 -1
  46. package/components/applicationHeader/ApplicationHeader.js.map +1 -1
  47. package/components/applicationHeader/MobileHeaderModal.js +8 -8
  48. package/components/applicationHeader/MobileHeaderModal.js.map +1 -1
  49. package/components/applicationHeader/MobileSubmoduleNavigation.js +1 -1
  50. package/components/applicationHeader/MobileSubmoduleNavigation.js.map +1 -1
  51. package/components/applicationHeader/NavItems.js +4 -4
  52. package/components/applicationHeader/NavItems.js.map +1 -1
  53. package/components/applicationLayout/ApplicationLayout.js +10 -10
  54. package/components/applicationLayout/ApplicationLayout.js.map +1 -1
  55. package/components/applicationLayout/ApplicationLayoutBody.js +2 -2
  56. package/components/applicationLayout/ApplicationLayoutBody.js.map +1 -1
  57. package/components/applicationLayout/ApplicationLayoutBodyBanner.js +1 -1
  58. package/components/applicationLayout/ApplicationLayoutBodyBanner.js.map +1 -1
  59. package/components/applicationLayout/ApplicationLayoutBodyBottomBar.js +1 -1
  60. package/components/applicationLayout/ApplicationLayoutBodyBottomBar.js.map +1 -1
  61. package/components/applicationLayout/ApplicationLayoutBodyNavigation.js +1 -1
  62. package/components/applicationLayout/ApplicationLayoutBodyNavigation.js.map +1 -1
  63. package/components/applicationLayout/ApplicationLayoutHeader.js +1 -1
  64. package/components/applicationLayout/ApplicationLayoutHeader.js.map +1 -1
  65. package/components/applicationLayout/ApplicationLayoutSidebar.js +1 -1
  66. package/components/applicationLayout/ApplicationLayoutSidebar.js.map +1 -1
  67. package/components/applicationLayout/SubNavigation.d.ts +7 -0
  68. package/components/applicationLayout/SubNavigation.js +1 -1
  69. package/components/applicationLayout/SubNavigation.js.map +1 -1
  70. package/components/assetTree/AssetTree.d.ts +7 -0
  71. package/components/assetTree/AssetTree.js +1 -1
  72. package/components/assetTree/AssetTree.js.map +1 -1
  73. package/components/assetTree/Tree.d.ts +15 -0
  74. package/components/assetTree/Tree.js +1 -1
  75. package/components/assetTree/Tree.js.map +1 -1
  76. package/components/assetTree/TreeIcon.d.ts +30 -0
  77. package/components/assetTree/TreeIcon.js +16 -0
  78. package/components/assetTree/TreeIcon.js.map +1 -0
  79. package/components/assetTree/TreeLeaf.js +23 -23
  80. package/components/assetTree/TreeLeaf.js.map +1 -1
  81. package/components/assetTree/TreeNode.js +25 -25
  82. package/components/assetTree/TreeNode.js.map +1 -1
  83. package/components/assetTree/TreeNodeContainer.js +1 -1
  84. package/components/assetTree/TreeNodeContainer.js.map +1 -1
  85. package/components/assetTree/TreeOption.js +3 -3
  86. package/components/assetTree/TreeOption.js.map +1 -1
  87. package/components/assetTree/TreeOptions.js +4 -4
  88. package/components/assetTree/TreeOptions.js.map +1 -1
  89. package/components/assetTree/TreeRoot.js +3 -3
  90. package/components/assetTree/TreeRoot.js.map +1 -1
  91. package/components/assetTree/TreeSearch.d.ts +2 -0
  92. package/components/assetTree/TreeSearch.js +3 -3
  93. package/components/assetTree/TreeSearch.js.map +1 -1
  94. package/components/assetTree/TreeSidebar.js +1 -1
  95. package/components/assetTree/TreeSidebar.js.map +1 -1
  96. package/components/assetTree/TreeSidebarCategories.js +4 -4
  97. package/components/assetTree/TreeSidebarCategories.js.map +1 -1
  98. package/components/assetTree/TreeSummary.js +1 -1
  99. package/components/assetTree/TreeSummary.js.map +1 -1
  100. package/components/assetTree/TypeCounter.js +1 -1
  101. package/components/assetTree/TypeCounter.js.map +1 -1
  102. package/components/autosuggest/AutoSuggest.js +1 -1
  103. package/components/autosuggest/AutoSuggest.js.map +1 -1
  104. package/components/avatar/Avatar.js +1 -1
  105. package/components/avatar/Avatar.js.map +1 -1
  106. package/components/banner/Banner.js +1 -1
  107. package/components/banner/Banner.js.map +1 -1
  108. package/components/banner/BannerContent.js +1 -1
  109. package/components/banner/BannerContent.js.map +1 -1
  110. package/components/barList/BarList.d.ts +26 -0
  111. package/components/barList/BarList.js +1 -1
  112. package/components/barList/BarList.js.map +1 -1
  113. package/components/bottomSheet/BottomSheet.d.ts +17 -3
  114. package/components/bottomSheet/BottomSheet.js +1 -1
  115. package/components/bottomSheet/BottomSheet.js.map +1 -1
  116. package/components/bottomSheet/TimedBottomSheet.d.ts +10 -0
  117. package/components/bottomSheet/TimedBottomSheet.js.map +1 -1
  118. package/components/button/Button.d.ts +53 -7
  119. package/components/button/Button.js +87 -64
  120. package/components/button/Button.js.map +1 -1
  121. package/components/button/ButtonToolbar.js +1 -1
  122. package/components/button/ButtonToolbar.js.map +1 -1
  123. package/components/button/ToggleButton.d.ts +4 -1
  124. package/components/button/ToggleButton.js.map +1 -1
  125. package/components/calendarStripe/CalendarStripe.d.ts +1 -1
  126. package/components/calendarStripe/CalendarStripe.js +48 -50
  127. package/components/calendarStripe/CalendarStripe.js.map +1 -1
  128. package/components/card/Card.js +1 -1
  129. package/components/card/Card.js.map +1 -1
  130. package/components/charts/Area.d.ts +2 -2
  131. package/components/charts/Area.js.map +1 -1
  132. package/components/charts/Line.d.ts +2 -2
  133. package/components/charts/Line.js.map +1 -1
  134. package/components/charts/RadialBarChart.js +106 -103
  135. package/components/charts/RadialBarChart.js.map +1 -1
  136. package/components/checkbox/Checkbox.d.ts +0 -3
  137. package/components/checkbox/Checkbox.js +6 -6
  138. package/components/checkbox/Checkbox.js.map +1 -1
  139. package/components/circularProgress/CircularProgress.d.ts +139 -0
  140. package/components/circularProgress/CircularProgress.js +197 -0
  141. package/components/circularProgress/CircularProgress.js.map +1 -0
  142. package/components/clearableInput/ClearableInput.d.ts +21 -20
  143. package/components/clearableInput/ClearableInput.js +9 -9
  144. package/components/clearableInput/ClearableInput.js.map +1 -1
  145. package/components/collapse/Collapse.d.ts +3 -0
  146. package/components/collapse/Collapse.js +12 -12
  147. package/components/collapse/Collapse.js.map +1 -1
  148. package/components/contentLoader/ContentLoader.d.ts +10 -2
  149. package/components/contentLoader/ContentLoader.js.map +1 -1
  150. package/components/dataTabs/DataTabHeader.js +1 -1
  151. package/components/dataTabs/DataTabHeader.js.map +1 -1
  152. package/components/dataTabs/DataTabs.d.ts +6 -0
  153. package/components/dataTabs/DataTabs.js +4 -4
  154. package/components/dataTabs/DataTabs.js.map +1 -1
  155. package/components/datepicker/DatePicker.js +6 -6
  156. package/components/datepicker/DatePicker.js.map +1 -1
  157. package/components/datepicker/DateRangePicker.js +1 -1
  158. package/components/datepicker/DateRangePicker.js.map +1 -1
  159. package/components/datepicker/DayPicker.js +1 -1
  160. package/components/datepicker/DayPicker.js.map +1 -1
  161. package/components/dialog/ConfirmationDialog.d.ts +22 -0
  162. package/components/dialog/ConfirmationDialog.js.map +1 -1
  163. package/components/dialog/Dialog.d.ts +13 -1
  164. package/components/dialog/Dialog.js +55 -55
  165. package/components/dialog/Dialog.js.map +1 -1
  166. package/components/dialog/DialogBody.js +1 -1
  167. package/components/dialog/DialogBody.js.map +1 -1
  168. package/components/dialog/DialogFooter.js +1 -1
  169. package/components/dialog/DialogFooter.js.map +1 -1
  170. package/components/dialog/DialogHeader.js +1 -1
  171. package/components/dialog/DialogHeader.js.map +1 -1
  172. package/components/dialog/MediaDialog.js +1 -1
  173. package/components/dialog/MediaDialog.js.map +1 -1
  174. package/components/dialog/ReleaseNotesDialog.d.ts +3 -3
  175. package/components/dialog/ReleaseNotesDialog.js.map +1 -1
  176. package/components/dialog/SplitDialog.js +1 -1
  177. package/components/dialog/SplitDialog.js.map +1 -1
  178. package/components/divider/Divider.js +1 -1
  179. package/components/divider/Divider.js.map +1 -1
  180. package/components/dropdown/ButtonDropdown.d.ts +4 -0
  181. package/components/dropdown/ButtonDropdown.js +52 -52
  182. package/components/dropdown/ButtonDropdown.js.map +1 -1
  183. package/components/dropdown/DropdownSubmenu.d.ts +4 -0
  184. package/components/dropdown/DropdownSubmenu.js +3 -3
  185. package/components/dropdown/DropdownSubmenu.js.map +1 -1
  186. package/components/dropdown/DropdownToggleButton.d.ts +1 -1
  187. package/components/dropdown/DropdownToggleButton.js +4 -3
  188. package/components/dropdown/DropdownToggleButton.js.map +1 -1
  189. package/components/dropdown/SplitCaretButton.js +6 -6
  190. package/components/dropdown/SplitCaretButton.js.map +1 -1
  191. package/components/editableContent/EditableContent.d.ts +6 -0
  192. package/components/editableContent/EditableContent.js +1 -1
  193. package/components/editableContent/EditableContent.js.map +1 -1
  194. package/components/ellipsis/TextTruncateMiddle.d.ts +23 -0
  195. package/components/ellipsis/TextTruncateMiddle.js +21 -0
  196. package/components/ellipsis/TextTruncateMiddle.js.map +1 -0
  197. package/components/expander/ExpanderList.d.ts +3 -0
  198. package/components/expander/ExpanderList.js +5 -5
  199. package/components/expander/ExpanderList.js.map +1 -1
  200. package/components/expander/ExpanderPanel.d.ts +14 -4
  201. package/components/expander/ExpanderPanel.js +1 -1
  202. package/components/expander/ExpanderPanel.js.map +1 -1
  203. package/components/fade/Fade.d.ts +1 -1
  204. package/components/fade/Fade.js.map +1 -1
  205. package/components/feedback/FeedbackRating.js +1 -1
  206. package/components/feedback/FeedbackRating.js.map +1 -1
  207. package/components/feedback/FeedbackReactions.js +1 -1
  208. package/components/feedback/FeedbackReactions.js.map +1 -1
  209. package/components/filepicker/FilePicker.d.ts +0 -2
  210. package/components/filepicker/FilePicker.js.map +1 -1
  211. package/components/formLabel/FormLabel.js +6 -9
  212. package/components/formLabel/FormLabel.js.map +1 -1
  213. package/components/formLabel/LabeledElement.js +1 -1
  214. package/components/formLabel/LabeledElement.js.map +1 -1
  215. package/components/groupedItemList/GroupedItemList.d.ts +10 -7
  216. package/components/groupedItemList/GroupedItemList.js.map +1 -1
  217. package/components/listMenu/ListMenu.js +2 -5
  218. package/components/listMenu/ListMenu.js.map +1 -1
  219. package/components/listMenu/ListMenuGroup.d.ts +2 -1
  220. package/components/listMenu/ListMenuGroup.js +2 -2
  221. package/components/listMenu/ListMenuGroup.js.map +1 -1
  222. package/components/loadMore/LoadMoreButton.js +1 -1
  223. package/components/loadMore/LoadMoreButton.js.map +1 -1
  224. package/components/loadMore/LoadMoreProgress.js +1 -1
  225. package/components/loadMore/LoadMoreProgress.js.map +1 -1
  226. package/components/map/components/Map.js.map +1 -1
  227. package/components/map/components/constants.js.map +1 -1
  228. package/components/map/components/features/ContextMenuItem.d.ts +1 -1
  229. package/components/map/components/features/ContextMenuItem.js +2 -17
  230. package/components/map/components/features/ContextMenuItem.js.map +1 -1
  231. package/components/map/components/features/MapSettings.js +4 -4
  232. package/components/map/components/features/MapSettings.js.map +1 -1
  233. package/components/map/components/features/basics/Polyline.d.ts +4 -1
  234. package/components/map/components/features/basics/Polyline.js +1 -1
  235. package/components/map/components/features/basics/Polyline.js.map +1 -1
  236. package/components/map/components/features/layers/MarkerLayer.d.ts +3 -1
  237. package/components/map/components/features/layers/MarkerLayer.js.map +1 -1
  238. package/components/map/components/features/layers/clustering/ClusterLayer.js +1 -1
  239. package/components/map/components/features/layers/clustering/ClusterLayer.js.map +1 -1
  240. package/components/map/components/features/layers/clustering/SimpleClusterLayer.d.ts +3 -2
  241. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js.map +1 -1
  242. package/components/map/components/features/layers/overlayLayers/RoadRestrictionLayer.js +7 -7
  243. package/components/map/components/features/layers/overlayLayers/RoadRestrictionLayer.js.map +1 -1
  244. package/components/map/components/features/layers/overlayLayers/TrafficLayer.js +4 -4
  245. package/components/map/components/features/layers/overlayLayers/TrafficLayer.js.map +1 -1
  246. package/components/map/components/features/settings/MapSettingsItem.js +1 -1
  247. package/components/map/components/features/settings/MapSettingsItem.js.map +1 -1
  248. package/components/map/components/features/settings/MapSettingsPanel.js +6 -20
  249. package/components/map/components/features/settings/MapSettingsPanel.js.map +1 -1
  250. package/components/map/components/features/settings/MapSettingsTile.js +87 -61
  251. package/components/map/components/features/settings/MapSettingsTile.js.map +1 -1
  252. package/components/map/components/features/settings/ZoomButtons.js +1 -1
  253. package/components/map/components/features/settings/ZoomButtons.js.map +1 -1
  254. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.d.ts +38 -1
  255. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +128 -92
  256. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js.map +1 -1
  257. package/components/map/utils/clustering.d.ts +6 -1
  258. package/components/map/utils/clustering.js +25 -19
  259. package/components/map/utils/clustering.js.map +1 -1
  260. package/components/map/utils/eventHandling.js +9 -9
  261. package/components/map/utils/eventHandling.js.map +1 -1
  262. package/components/map/utils/mapUtils.d.ts +6 -6
  263. package/components/map/utils/mapUtils.js +14 -19
  264. package/components/map/utils/mapUtils.js.map +1 -1
  265. package/components/map/utils/rendering.d.ts +1 -1
  266. package/components/map/utils/rendering.js +23 -23
  267. package/components/map/utils/rendering.js.map +1 -1
  268. package/components/mapMarker/ClusterMapMarker.js +1 -1
  269. package/components/mapMarker/ClusterMapMarker.js.map +1 -1
  270. package/components/mapMarker/SingleMapMarker.js +1 -1
  271. package/components/mapMarker/SingleMapMarker.js.map +1 -1
  272. package/components/menuItems/MenuItem.d.ts +23 -0
  273. package/components/menuItems/MenuItem.js +1 -1
  274. package/components/menuItems/MenuItem.js.map +1 -1
  275. package/components/menuItems/MenuItemList.js +1 -1
  276. package/components/menuItems/MenuItemList.js.map +1 -1
  277. package/components/navigation/AppNavigationBar.js +4 -4
  278. package/components/navigation/AppNavigationBar.js.map +1 -1
  279. package/components/noData/NoData.js +1 -1
  280. package/components/noData/NoData.js.map +1 -1
  281. package/components/notification/Notification.js +4 -4
  282. package/components/notification/Notification.js.map +1 -1
  283. package/components/numberControl/NumberControl.js +4 -4
  284. package/components/numberControl/NumberControl.js.map +1 -1
  285. package/components/numberInput/NumberInput.js +1 -1
  286. package/components/numberInput/NumberInput.js.map +1 -1
  287. package/components/onboarding/OnboardingTip.d.ts +18 -12
  288. package/components/onboarding/OnboardingTip.js +4 -4
  289. package/components/onboarding/OnboardingTip.js.map +1 -1
  290. package/components/overlay/OverlayTrigger.d.ts +43 -1
  291. package/components/overlay/OverlayTrigger.js.map +1 -1
  292. package/components/page/Page.js +1 -1
  293. package/components/page/Page.js.map +1 -1
  294. package/components/pager/Pager.d.ts +3 -0
  295. package/components/pager/Pager.js +1 -1
  296. package/components/pager/Pager.js.map +1 -1
  297. package/components/popover/Popover.d.ts +1 -0
  298. package/components/popover/Popover.js.map +1 -1
  299. package/components/preloader/ImagePreloader.d.ts +1 -1
  300. package/components/preloader/ImagePreloader.js.map +1 -1
  301. package/components/radiobutton/RadioButton.d.ts +10 -6
  302. package/components/radiobutton/RadioButton.js +5 -5
  303. package/components/radiobutton/RadioButton.js.map +1 -1
  304. package/components/radiobutton/RadioCardGroup.d.ts +86 -0
  305. package/components/radiobutton/RadioCardGroup.js +110 -0
  306. package/components/radiobutton/RadioCardGroup.js.map +1 -0
  307. package/components/releaseNotes/ReleaseNotes.d.ts +0 -3
  308. package/components/releaseNotes/ReleaseNotes.js.map +1 -1
  309. package/components/resizer/Resizer.d.ts +17 -3
  310. package/components/resizer/Resizer.js +1 -1
  311. package/components/resizer/Resizer.js.map +1 -1
  312. package/components/responsiveColumnStripe/ResponsiveColumnStripe.js +1 -1
  313. package/components/responsiveColumnStripe/ResponsiveColumnStripe.js.map +1 -1
  314. package/components/rioglyph/Rioglyph.d.ts +20 -8
  315. package/components/rioglyph/Rioglyph.js +1 -1
  316. package/components/rioglyph/Rioglyph.js.map +1 -1
  317. package/components/rioglyph/RioglyphIconType.d.ts +1 -1
  318. package/components/rules/RuleConnector.js +1 -1
  319. package/components/rules/RuleConnector.js.map +1 -1
  320. package/components/rules/RuleContainer.js +27 -27
  321. package/components/rules/RuleContainer.js.map +1 -1
  322. package/components/rules/RulesWrapper.js +1 -1
  323. package/components/rules/RulesWrapper.js.map +1 -1
  324. package/components/saveableInput/SaveableDateInput.d.ts +20 -2
  325. package/components/saveableInput/SaveableDateInput.js +1 -1
  326. package/components/saveableInput/SaveableDateInput.js.map +1 -1
  327. package/components/saveableInput/SaveableInput.d.ts +10 -2
  328. package/components/saveableInput/SaveableInput.js +49 -49
  329. package/components/saveableInput/SaveableInput.js.map +1 -1
  330. package/components/searchHighlight/SearchHighlightText.d.ts +28 -0
  331. package/components/searchHighlight/SearchHighlightText.js +15 -0
  332. package/components/searchHighlight/SearchHighlightText.js.map +1 -0
  333. package/components/selects/BaseSelectDropdown.js +90 -79
  334. package/components/selects/BaseSelectDropdown.js.map +1 -1
  335. package/components/selects/ClearButton.js +4 -4
  336. package/components/selects/ClearButton.js.map +1 -1
  337. package/components/selects/Multiselect.js +6 -6
  338. package/components/selects/Multiselect.js.map +1 -1
  339. package/components/selects/MultiselectToggleFilter.js +4 -4
  340. package/components/selects/MultiselectToggleFilter.js.map +1 -1
  341. package/components/selects/MultiselectToggleSelection.js +1 -1
  342. package/components/selects/MultiselectToggleSelection.js.map +1 -1
  343. package/components/selects/Select.d.ts +5 -0
  344. package/components/selects/Select.js +93 -93
  345. package/components/selects/Select.js.map +1 -1
  346. package/components/selects/SelectFilter.js +1 -1
  347. package/components/selects/SelectFilter.js.map +1 -1
  348. package/components/selects/WithFeedbackAndAddon.js +1 -1
  349. package/components/selects/WithFeedbackAndAddon.js.map +1 -1
  350. package/components/sidebars/Sidebar.d.ts +19 -3
  351. package/components/sidebars/Sidebar.js +54 -54
  352. package/components/sidebars/Sidebar.js.map +1 -1
  353. package/components/sidebars/SidebarBackdrop.js +4 -4
  354. package/components/sidebars/SidebarBackdrop.js.map +1 -1
  355. package/components/sidebars/SidebarFooter.js +1 -1
  356. package/components/sidebars/SidebarFooter.js.map +1 -1
  357. package/components/sidebars/SidebarFullscreenToggle.js +4 -4
  358. package/components/sidebars/SidebarFullscreenToggle.js.map +1 -1
  359. package/components/slider/RangeSlider.d.ts +15 -0
  360. package/components/slider/RangeSlider.js +1 -1
  361. package/components/slider/RangeSlider.js.map +1 -1
  362. package/components/slider/Slider.d.ts +9 -0
  363. package/components/slider/Slider.js +1 -1
  364. package/components/slider/Slider.js.map +1 -1
  365. package/components/smoothScrollbars/SmoothScrollbars.d.ts +44 -0
  366. package/components/smoothScrollbars/SmoothScrollbars.js +1 -1
  367. package/components/smoothScrollbars/SmoothScrollbars.js.map +1 -1
  368. package/components/spinner/Spinner.d.ts +3 -3
  369. package/components/spinner/Spinner.js +5 -4
  370. package/components/spinner/Spinner.js.map +1 -1
  371. package/components/states/CustomState.d.ts +69 -1
  372. package/components/states/CustomState.js +1 -1
  373. package/components/states/CustomState.js.map +1 -1
  374. package/components/states/EmptyState.d.ts +1 -1
  375. package/components/states/EmptyState.js.map +1 -1
  376. package/components/states/ErrorState.d.ts +1 -1
  377. package/components/states/ErrorState.js.map +1 -1
  378. package/components/states/ForbiddenState.d.ts +1 -1
  379. package/components/states/ForbiddenState.js.map +1 -1
  380. package/components/states/MaintenanceState.d.ts +1 -1
  381. package/components/states/MaintenanceState.js.map +1 -1
  382. package/components/states/NotBookedState.d.ts +1 -1
  383. package/components/states/NotBookedState.js.map +1 -1
  384. package/components/states/NotFoundState.d.ts +1 -1
  385. package/components/states/NotFoundState.js.map +1 -1
  386. package/components/states/StateButton.js +1 -1
  387. package/components/states/StateButton.js.map +1 -1
  388. package/components/states/StateIcon.d.ts +14 -1
  389. package/components/states/StateIcon.js.map +1 -1
  390. package/components/statsWidget/StatsWidget.d.ts +2 -0
  391. package/components/statsWidget/StatsWidget.js +1 -1
  392. package/components/statsWidget/StatsWidget.js.map +1 -1
  393. package/components/statsWidget/StatsWidgetBody.d.ts +1 -0
  394. package/components/statsWidget/StatsWidgetBody.js +1 -1
  395. package/components/statsWidget/StatsWidgetBody.js.map +1 -1
  396. package/components/statsWidget/StatsWidgetFooter.js +1 -1
  397. package/components/statsWidget/StatsWidgetFooter.js.map +1 -1
  398. package/components/statsWidget/StatsWidgetHeader.js +1 -1
  399. package/components/statsWidget/StatsWidgetHeader.js.map +1 -1
  400. package/components/statsWidget/StatsWidgetNumber.d.ts +2 -0
  401. package/components/statsWidget/StatsWidgetNumber.js +2 -2
  402. package/components/statsWidget/StatsWidgetNumber.js.map +1 -1
  403. package/components/statsWidget/StatsWidgetSpacer.js +1 -1
  404. package/components/statsWidget/StatsWidgetSpacer.js.map +1 -1
  405. package/components/statsWidget/StatsWidgets.js +1 -1
  406. package/components/statsWidget/StatsWidgets.js.map +1 -1
  407. package/components/statusBar/StatusBar.d.ts +98 -3
  408. package/components/statusBar/StatusBar.js +24 -17
  409. package/components/statusBar/StatusBar.js.map +1 -1
  410. package/components/statusBar/StatusBarIcon.d.ts +2 -2
  411. package/components/statusBar/StatusBarIcon.js +4 -4
  412. package/components/statusBar/StatusBarIcon.js.map +1 -1
  413. package/components/statusBar/StatusBarLabel.d.ts +2 -2
  414. package/components/statusBar/StatusBarLabel.js +5 -7
  415. package/components/statusBar/StatusBarLabel.js.map +1 -1
  416. package/components/statusBar/StatusBarProgressBar.d.ts +1 -1
  417. package/components/statusBar/StatusBarProgressBar.js +1 -1
  418. package/components/statusBar/StatusBarProgressBar.js.map +1 -1
  419. package/components/steppedProgressBar/SteppedProgressBar.d.ts +1 -1
  420. package/components/steppedProgressBar/SteppedProgressBar.js +1 -1
  421. package/components/steppedProgressBar/SteppedProgressBar.js.map +1 -1
  422. package/components/switch/Switch.d.ts +28 -1
  423. package/components/switch/Switch.js +77 -35
  424. package/components/switch/Switch.js.map +1 -1
  425. package/components/table/SortArrowDown.d.ts +1 -1
  426. package/components/table/SortArrowDown.js.map +1 -1
  427. package/components/table/SortArrowUp.d.ts +1 -1
  428. package/components/table/SortArrowUp.js.map +1 -1
  429. package/components/table/TableCardsSorting.js +4 -4
  430. package/components/table/TableCardsSorting.js.map +1 -1
  431. package/components/table/TableHead.js +1 -1
  432. package/components/table/TableHead.js.map +1 -1
  433. package/components/table/TableSearch.js +1 -1
  434. package/components/table/TableSearch.js.map +1 -1
  435. package/components/table/TableSettingsColumnButtons.d.ts +1 -1
  436. package/components/table/TableSettingsColumnButtons.js +1 -1
  437. package/components/table/TableSettingsColumnButtons.js.map +1 -1
  438. package/components/table/TableSettingsColumnDetails.d.ts +1 -1
  439. package/components/table/TableSettingsColumnDetails.js +1 -1
  440. package/components/table/TableSettingsColumnDetails.js.map +1 -1
  441. package/components/table/TableSettingsDialog.d.ts +56 -1
  442. package/components/table/TableSettingsDialog.js +170 -144
  443. package/components/table/TableSettingsDialog.js.map +1 -1
  444. package/components/table/TableSettingsDialogFooter.js +9 -9
  445. package/components/table/TableSettingsDialogFooter.js.map +1 -1
  446. package/components/table/TableSettingsListContainer.d.ts +1 -1
  447. package/components/table/TableSettingsListContainer.js.map +1 -1
  448. package/components/table/TableSettingsListItem.d.ts +1 -1
  449. package/components/table/TableSettingsListItem.js +8 -8
  450. package/components/table/TableSettingsListItem.js.map +1 -1
  451. package/components/table/TableToolbar.js +1 -1
  452. package/components/table/TableToolbar.js.map +1 -1
  453. package/components/table/TableViewToggles.d.ts +21 -1
  454. package/components/table/TableViewToggles.js +1 -1
  455. package/components/table/TableViewToggles.js.map +1 -1
  456. package/components/tag/Tag.d.ts +7 -2
  457. package/components/tag/Tag.js +1 -1
  458. package/components/tag/Tag.js.map +1 -1
  459. package/components/tag/TagList.js +1 -1
  460. package/components/tag/TagList.js.map +1 -1
  461. package/components/tagManager/CustomSuggestionItem.js +1 -1
  462. package/components/tagManager/CustomSuggestionItem.js.map +1 -1
  463. package/components/tagManager/TagManager.d.ts +29 -2
  464. package/components/tagManager/TagManager.js +6 -6
  465. package/components/tagManager/TagManager.js.map +1 -1
  466. package/components/tagManager/TagManagerItemList.d.ts +1 -1
  467. package/components/tagManager/TagManagerItemList.js +1 -1
  468. package/components/tagManager/TagManagerItemList.js.map +1 -1
  469. package/components/teaser/Teaser.d.ts +57 -55
  470. package/components/teaser/Teaser.js +1 -1
  471. package/components/teaser/Teaser.js.map +1 -1
  472. package/components/teaser/TeaserContainer.d.ts +1 -1
  473. package/components/teaser/TeaserContainer.js +1 -1
  474. package/components/teaser/TeaserContainer.js.map +1 -1
  475. package/components/timepicker/TimePicker.d.ts +20 -0
  476. package/components/timepicker/TimePicker.js +153 -99
  477. package/components/timepicker/TimePicker.js.map +1 -1
  478. package/components/tooltip/SimpleTooltip.d.ts +22 -4
  479. package/components/tooltip/SimpleTooltip.js.map +1 -1
  480. package/components/tooltip/Tooltip.d.ts +22 -2
  481. package/components/tooltip/Tooltip.js +1 -1
  482. package/components/tooltip/Tooltip.js.map +1 -1
  483. package/components/tracker/Tracker.d.ts +85 -0
  484. package/components/tracker/Tracker.js +54 -0
  485. package/components/tracker/Tracker.js.map +1 -0
  486. package/components/tracker/TrackerBlock.d.ts +11 -0
  487. package/components/tracker/TrackerBlock.js +34 -0
  488. package/components/tracker/TrackerBlock.js.map +1 -0
  489. package/components/video/ResponsiveVideo.d.ts +8 -3
  490. package/components/video/ResponsiveVideo.js +1 -1
  491. package/components/video/ResponsiveVideo.js.map +1 -1
  492. package/hooks/useCookies.d.ts +79 -0
  493. package/hooks/useCookies.js +33 -0
  494. package/hooks/useCookies.js.map +1 -0
  495. package/hooks/useInterval.js +5 -5
  496. package/hooks/useInterval.js.map +1 -1
  497. package/hooks/useIsFocusWithin.js +3 -3
  498. package/hooks/useIsFocusWithin.js.map +1 -1
  499. package/hooks/useKey.d.ts +1 -1
  500. package/hooks/useKey.js.map +1 -1
  501. package/hooks/useLatest.d.ts +16 -0
  502. package/hooks/useLatest.js +11 -0
  503. package/hooks/useLatest.js.map +1 -0
  504. package/hooks/useOnboarding.d.ts +86 -80
  505. package/hooks/useOnboarding.js.map +1 -1
  506. package/hooks/usePostMessage.d.ts +2 -1
  507. package/hooks/usePostMessage.js.map +1 -1
  508. package/hooks/useRioCookieConsent.d.ts +49 -0
  509. package/hooks/useRioCookieConsent.js +44 -0
  510. package/hooks/useRioCookieConsent.js.map +1 -0
  511. package/hooks/useSearch.d.ts +1 -1
  512. package/hooks/useSearch.js +28 -17
  513. package/hooks/useSearch.js.map +1 -1
  514. package/hooks/useSearchHighlight.d.ts +60 -0
  515. package/hooks/useSearchHighlight.js +54 -0
  516. package/hooks/useSearchHighlight.js.map +1 -0
  517. package/hooks/useTableExport.js.map +1 -1
  518. package/hooks/useTimeout.js +11 -11
  519. package/hooks/useTimeout.js.map +1 -1
  520. package/hooks/useUncontrollable.d.ts +1 -1
  521. package/hooks/useUncontrollable.js.map +1 -1
  522. package/hooks/useUrlState.d.ts +62 -0
  523. package/hooks/useUrlState.js +137 -0
  524. package/hooks/useUrlState.js.map +1 -0
  525. package/mergeClassNameOverrides.d.ts +1 -0
  526. package/mergeClassNameOverrides.js +5 -0
  527. package/mergeClassNameOverrides.js.map +1 -0
  528. package/package.json +18 -21
  529. package/routeUtils.js +11 -5
  530. package/routeUtils.js.map +1 -1
  531. package/themes/Volkswagen/components/applicationHeader/VolkswagenApplicationHeader.js +1 -1
  532. package/themes/Volkswagen/components/applicationHeader/VolkswagenApplicationHeader.js.map +1 -1
  533. package/useCookies.d.ts +2 -0
  534. package/useCookies.js +5 -0
  535. package/useCookies.js.map +1 -0
  536. package/useRioCookieConsent.d.ts +2 -0
  537. package/useRioCookieConsent.js +5 -0
  538. package/useRioCookieConsent.js.map +1 -0
  539. package/useSearchHighlight.d.ts +2 -0
  540. package/useSearchHighlight.js +6 -0
  541. package/useSearchHighlight.js.map +1 -0
  542. package/useUrlState.d.ts +2 -0
  543. package/useUrlState.js +5 -0
  544. package/useUrlState.js.map +1 -0
  545. package/utils/classNames.d.ts +3 -0
  546. package/utils/classNames.js +5 -0
  547. package/utils/classNames.js.map +1 -0
  548. package/utils/colorScheme.js +14 -13
  549. package/utils/colorScheme.js.map +1 -1
  550. package/utils/cssuseragent.js.map +1 -1
  551. package/utils/mergeClassNameOverrides.d.ts +1 -0
  552. package/utils/mergeClassNameOverrides.js +55 -0
  553. package/utils/mergeClassNameOverrides.js.map +1 -0
  554. package/utils/routeUtils.d.ts +122 -13
  555. package/utils/routeUtils.js +89 -31
  556. package/utils/routeUtils.js.map +1 -1
  557. package/utils/scrollItemIntoView.js +12 -11
  558. package/utils/scrollItemIntoView.js.map +1 -1
  559. package/utils/urlFeatureToggles.js +19 -20
  560. package/utils/urlFeatureToggles.js.map +1 -1
  561. package/version.d.ts +1 -1
  562. package/version.js +1 -1
  563. package/version.js.map +1 -1
  564. package/components/states/BaseStateProps.d.ts +0 -66
  565. package/components/statusBar/StatusBar.types.d.ts +0 -85
  566. package/components/table/TableSettingsDialog.types.d.ts +0 -39
  567. package/components/tagManager/TagManagerTag.d.ts +0 -5
@@ -1,9 +1,14 @@
1
+ import { MarkerIcon } from '../components/features/basics/Marker';
1
2
  import { ClusterTheme } from '../components/features/layers/clustering/ClusterLayer';
2
3
  export type Cluster = H.clustering.ICluster;
3
4
  export type DataPoint = H.clustering.DataPoint;
4
5
  export type NoisePoint = H.clustering.INoisePoint;
5
6
  export type Theme = H.clustering.ITheme | undefined;
7
+ export type SimpleClusterTheme<T = any> = {
8
+ getClusterPresentation: (data: T[], position: H.geo.Point) => H.map.Object | MarkerIcon;
9
+ getNoisePresentation: (data: T, position: H.geo.Point) => H.map.Object | MarkerIcon;
10
+ };
6
11
  export declare const ClusterUtils: {
7
12
  getBoundingBoxForCluster: (cluster: Cluster) => H.geo.Rect;
8
13
  };
9
- export declare const wrapSimpleTheme: (theme: ClusterTheme) => ClusterTheme;
14
+ export declare const wrapSimpleTheme: (theme: SimpleClusterTheme) => ClusterTheme;
@@ -1,41 +1,47 @@
1
1
  import { getOrCreateIcon as i, isDomMakerNeeded as l } from "../components/features/basics/Marker.js";
2
2
  const g = (a) => {
3
- let t = null, e = null, o = null, r = null;
3
+ let t = null, n = null, e = null, r = null;
4
4
  return a.forEachDataPoint((s) => {
5
- const n = s.getPosition();
6
- (t === null || t > n.lat) && (t = n.lat), (e === null || e > n.lng) && (e = n.lng), (o === null || o < n.lat) && (o = n.lat), (r === null || r < n.lng) && (r = n.lng);
5
+ const o = s.getPosition();
6
+ (t === null || t > o.lat) && (t = o.lat), (n === null || n > o.lng) && (n = o.lng), (e === null || e < o.lat) && (e = o.lat), (r === null || r < o.lng) && (r = o.lng);
7
7
  }), new H.geo.Rect(
8
- o,
9
8
  e,
9
+ n,
10
10
  t,
11
11
  r
12
12
  );
13
- }, p = {
13
+ }, M = {
14
14
  getBoundingBoxForCluster: g
15
- }, c = (a) => (t) => {
16
- const e = [];
17
- t.forEachDataPoint((n) => e.push(n.getData()));
18
- const o = i(a(e, t.getPosition())), r = l(o) ? H.map.DomMarker : H.map.Marker, s = new r(t.getPosition(), {
19
- icon: o,
15
+ }, m = (a) => (t) => {
16
+ const n = [];
17
+ t.forEachDataPoint((c) => n.push(c.getData()));
18
+ const e = a(n, t.getPosition());
19
+ if (e instanceof H.map.Object)
20
+ return e;
21
+ const r = i(e), s = l(r) ? H.map.DomMarker : H.map.Marker, o = new s(t.getPosition(), {
22
+ icon: r,
20
23
  // Set min/max zoom with values from the cluster, otherwise
21
24
  // clusters will be shown at all zoom levels
22
25
  min: t.getMinZoom(),
23
26
  max: t.getMaxZoom()
24
27
  });
25
- return s.setData(t), s;
26
- }, m = (a) => (t) => {
27
- const e = i(a(t.getData(), t.getPosition())), o = l(e) ? H.map.DomMarker : H.map.Marker, r = new o(t.getPosition(), {
28
+ return o.setData(t), o;
29
+ }, u = (a) => (t) => {
30
+ const n = a(t.getData(), t.getPosition());
31
+ if (n instanceof H.map.Object)
32
+ return n;
33
+ const e = i(n), r = l(e) ? H.map.DomMarker : H.map.Marker, s = new r(t.getPosition(), {
28
34
  icon: e,
29
35
  // Use min zoom from a noise point to show it correctly at certain zoom levels
30
36
  min: t.getMinZoom()
31
37
  });
32
- return r.setData(t), r;
33
- }, M = (a) => ({
34
- getClusterPresentation: c(a.getClusterPresentation),
35
- getNoisePresentation: m(a.getNoisePresentation)
38
+ return s.setData(t), s;
39
+ }, f = (a) => ({
40
+ getClusterPresentation: m(a.getClusterPresentation),
41
+ getNoisePresentation: u(a.getNoisePresentation)
36
42
  });
37
43
  export {
38
- p as ClusterUtils,
39
- M as wrapSimpleTheme
44
+ M as ClusterUtils,
45
+ f as wrapSimpleTheme
40
46
  };
41
47
  //# sourceMappingURL=clustering.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clustering.js","sources":["../../../../src/components/map/utils/clustering.ts"],"sourcesContent":["import { getOrCreateIcon, isDomMakerNeeded } from '../components/features/basics/Marker';\nimport type { ClusterTheme } from '../components/features/layers/clustering/ClusterLayer';\n\nexport type Cluster = H.clustering.ICluster;\nexport type DataPoint = H.clustering.DataPoint;\nexport type NoisePoint = H.clustering.INoisePoint;\n\nexport type Theme = H.clustering.ITheme | undefined;\n\nconst getBoundingBoxForCluster = (cluster: Cluster): H.geo.Rect => {\n let minLat: number | null = null;\n let minLng: number | null = null;\n let maxLat: number | null = null;\n let maxLng: number | null = null;\n\n cluster.forEachDataPoint((dataPoint: NoisePoint) => {\n const position = dataPoint.getPosition();\n if (minLat === null || minLat > position.lat) {\n minLat = position.lat;\n }\n if (minLng === null || minLng > position.lng) {\n minLng = position.lng;\n }\n if (maxLat === null || maxLat < position.lat) {\n maxLat = position.lat;\n }\n if (maxLng === null || maxLng < position.lng) {\n maxLng = position.lng;\n }\n });\n\n return new H.geo.Rect(\n maxLat as unknown as number,\n minLng as unknown as number,\n minLat as unknown as number,\n maxLng as unknown as number\n );\n};\n\nexport const ClusterUtils = {\n getBoundingBoxForCluster,\n};\n\nconst wrapClusterPresentation = <T>(func: (clusterElements: any, position: H.geo.Point) => H.map.Object) => {\n return (cluster: Cluster): H.map.Marker => {\n const clusterElements: T[] = [];\n\n cluster.forEachDataPoint((point: NoisePoint) => clusterElements.push(point.getData()));\n\n const clusterIcon = getOrCreateIcon(func(clusterElements, cluster.getPosition())) as any;\n const MarkerConstructor = isDomMakerNeeded(clusterIcon) ? H.map.DomMarker : H.map.Marker;\n\n const clusterMarker = new MarkerConstructor(cluster.getPosition(), {\n icon: clusterIcon,\n\n // Set min/max zoom with values from the cluster, otherwise\n // clusters will be shown at all zoom levels\n min: cluster.getMinZoom(),\n max: cluster.getMaxZoom(),\n });\n\n // Bind cluster data to the marker\n clusterMarker.setData(cluster);\n\n return clusterMarker;\n };\n};\n\nconst wrapNoisePresentation = <T>(func: (data: T, position: H.geo.Point) => H.map.Object) => {\n return (noisePoint: NoisePoint): H.map.Marker => {\n const noiseIcon = getOrCreateIcon(func(noisePoint.getData(), noisePoint.getPosition())) as any;\n const MarkerConstructor = isDomMakerNeeded(noiseIcon) ? H.map.DomMarker : H.map.Marker;\n\n const noiseMarker = new MarkerConstructor(noisePoint.getPosition(), {\n icon: noiseIcon,\n\n // Use min zoom from a noise point to show it correctly at certain zoom levels\n min: noisePoint.getMinZoom(),\n });\n\n // Bind noise point data to the marker:\n noiseMarker.setData(noisePoint);\n\n return noiseMarker;\n };\n};\n\nexport const wrapSimpleTheme = (theme: ClusterTheme): ClusterTheme => ({\n getClusterPresentation: wrapClusterPresentation(theme.getClusterPresentation),\n getNoisePresentation: wrapNoisePresentation(theme.getNoisePresentation),\n});\n"],"names":["getBoundingBoxForCluster","cluster","minLat","minLng","maxLat","maxLng","dataPoint","position","ClusterUtils","wrapClusterPresentation","func","clusterElements","point","clusterIcon","getOrCreateIcon","MarkerConstructor","isDomMakerNeeded","clusterMarker","wrapNoisePresentation","noisePoint","noiseIcon","noiseMarker","wrapSimpleTheme","theme"],"mappings":";AASA,MAAMA,IAA2B,CAACC,MAAiC;AAC/D,MAAIC,IAAwB,MACxBC,IAAwB,MACxBC,IAAwB,MACxBC,IAAwB;AAE5B,SAAAJ,EAAQ,iBAAiB,CAACK,MAA0B;AAChD,UAAMC,IAAWD,EAAU,YAAA;AAC3B,KAAIJ,MAAW,QAAQA,IAASK,EAAS,SACrCL,IAASK,EAAS,OAElBJ,MAAW,QAAQA,IAASI,EAAS,SACrCJ,IAASI,EAAS,OAElBH,MAAW,QAAQA,IAASG,EAAS,SACrCH,IAASG,EAAS,OAElBF,MAAW,QAAQA,IAASE,EAAS,SACrCF,IAASE,EAAS;AAAA,EAE1B,CAAC,GAEM,IAAI,EAAE,IAAI;AAAA,IACbH;AAAA,IACAD;AAAA,IACAD;AAAA,IACAG;AAAA,EAAA;AAER,GAEaG,IAAe;AAAA,EACxB,0BAAAR;AACJ,GAEMS,IAA0B,CAAIC,MACzB,CAACT,MAAmC;AACvC,QAAMU,IAAuB,CAAA;AAE7B,EAAAV,EAAQ,iBAAiB,CAACW,MAAsBD,EAAgB,KAAKC,EAAM,QAAA,CAAS,CAAC;AAErF,QAAMC,IAAcC,EAAgBJ,EAAKC,GAAiBV,EAAQ,YAAA,CAAa,CAAC,GAC1Ec,IAAoBC,EAAiBH,CAAW,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,QAE5EI,IAAgB,IAAIF,EAAkBd,EAAQ,eAAe;AAAA,IAC/D,MAAMY;AAAA;AAAA;AAAA,IAIN,KAAKZ,EAAQ,WAAA;AAAA,IACb,KAAKA,EAAQ,WAAA;AAAA,EAAW,CAC3B;AAGD,SAAAgB,EAAc,QAAQhB,CAAO,GAEtBgB;AACX,GAGEC,IAAwB,CAAIR,MACvB,CAACS,MAAyC;AAC7C,QAAMC,IAAYN,EAAgBJ,EAAKS,EAAW,WAAWA,EAAW,YAAA,CAAa,CAAC,GAChFJ,IAAoBC,EAAiBI,CAAS,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,QAE1EC,IAAc,IAAIN,EAAkBI,EAAW,eAAe;AAAA,IAChE,MAAMC;AAAA;AAAA,IAGN,KAAKD,EAAW,WAAA;AAAA,EAAW,CAC9B;AAGD,SAAAE,EAAY,QAAQF,CAAU,GAEvBE;AACX,GAGSC,IAAkB,CAACC,OAAuC;AAAA,EACnE,wBAAwBd,EAAwBc,EAAM,sBAAsB;AAAA,EAC5E,sBAAsBL,EAAsBK,EAAM,oBAAoB;AAC1E;"}
1
+ {"version":3,"file":"clustering.js","sources":["../../../../src/components/map/utils/clustering.ts"],"sourcesContent":["import { getOrCreateIcon, isDomMakerNeeded, type MarkerIcon } from '../components/features/basics/Marker';\nimport type { ClusterTheme } from '../components/features/layers/clustering/ClusterLayer';\n\nexport type Cluster = H.clustering.ICluster;\nexport type DataPoint = H.clustering.DataPoint;\nexport type NoisePoint = H.clustering.INoisePoint;\n\nexport type Theme = H.clustering.ITheme | undefined;\n\n// biome-ignore lint/suspicious/noExplicitAny: keep it less strict\nexport type SimpleClusterTheme<T = any> = {\n getClusterPresentation: (data: T[], position: H.geo.Point) => H.map.Object | MarkerIcon;\n getNoisePresentation: (data: T, position: H.geo.Point) => H.map.Object | MarkerIcon;\n};\n\nconst getBoundingBoxForCluster = (cluster: Cluster): H.geo.Rect => {\n let minLat: number | null = null;\n let minLng: number | null = null;\n let maxLat: number | null = null;\n let maxLng: number | null = null;\n\n cluster.forEachDataPoint((dataPoint: NoisePoint) => {\n const position = dataPoint.getPosition();\n if (minLat === null || minLat > position.lat) {\n minLat = position.lat;\n }\n if (minLng === null || minLng > position.lng) {\n minLng = position.lng;\n }\n if (maxLat === null || maxLat < position.lat) {\n maxLat = position.lat;\n }\n if (maxLng === null || maxLng < position.lng) {\n maxLng = position.lng;\n }\n });\n\n return new H.geo.Rect(\n maxLat as unknown as number,\n minLng as unknown as number,\n minLat as unknown as number,\n maxLng as unknown as number\n );\n};\n\nexport const ClusterUtils = {\n getBoundingBoxForCluster,\n};\n\nconst wrapClusterPresentation = <T>(\n func: (clusterElements: T[], position: H.geo.Point) => H.map.Object | MarkerIcon\n) => {\n return (cluster: Cluster): H.map.Marker => {\n const clusterElements: T[] = [];\n\n cluster.forEachDataPoint((point: NoisePoint) => clusterElements.push(point.getData()));\n\n const presentation = func(clusterElements, cluster.getPosition());\n if (presentation instanceof H.map.Object) {\n return presentation as H.map.Marker;\n }\n\n const clusterIcon = getOrCreateIcon(presentation);\n const MarkerConstructor = isDomMakerNeeded(clusterIcon) ? H.map.DomMarker : H.map.Marker;\n\n const clusterMarker = new MarkerConstructor(cluster.getPosition(), {\n icon: clusterIcon,\n\n // Set min/max zoom with values from the cluster, otherwise\n // clusters will be shown at all zoom levels\n min: cluster.getMinZoom(),\n max: cluster.getMaxZoom(),\n });\n\n // Bind cluster data to the marker\n clusterMarker.setData(cluster);\n\n return clusterMarker;\n };\n};\n\nconst wrapNoisePresentation = <T>(func: (data: T, position: H.geo.Point) => H.map.Object | MarkerIcon) => {\n return (noisePoint: NoisePoint): H.map.Marker => {\n const presentation = func(noisePoint.getData(), noisePoint.getPosition());\n if (presentation instanceof H.map.Object) {\n return presentation as H.map.Marker;\n }\n\n const noiseIcon = getOrCreateIcon(presentation);\n const MarkerConstructor = isDomMakerNeeded(noiseIcon) ? H.map.DomMarker : H.map.Marker;\n\n const noiseMarker = new MarkerConstructor(noisePoint.getPosition(), {\n icon: noiseIcon,\n\n // Use min zoom from a noise point to show it correctly at certain zoom levels\n min: noisePoint.getMinZoom(),\n });\n\n // Bind noise point data to the marker:\n noiseMarker.setData(noisePoint);\n\n return noiseMarker;\n };\n};\n\nexport const wrapSimpleTheme = (theme: SimpleClusterTheme): ClusterTheme => ({\n getClusterPresentation: wrapClusterPresentation(theme.getClusterPresentation),\n getNoisePresentation: wrapNoisePresentation(theme.getNoisePresentation),\n});\n"],"names":["getBoundingBoxForCluster","cluster","minLat","minLng","maxLat","maxLng","dataPoint","position","ClusterUtils","wrapClusterPresentation","func","clusterElements","point","presentation","clusterIcon","getOrCreateIcon","MarkerConstructor","isDomMakerNeeded","clusterMarker","wrapNoisePresentation","noisePoint","noiseIcon","noiseMarker","wrapSimpleTheme","theme"],"mappings":";AAeA,MAAMA,IAA2B,CAACC,MAAiC;AAC/D,MAAIC,IAAwB,MACxBC,IAAwB,MACxBC,IAAwB,MACxBC,IAAwB;AAE5B,SAAAJ,EAAQ,iBAAiB,CAACK,MAA0B;AAChD,UAAMC,IAAWD,EAAU,YAAA;AAC3B,KAAIJ,MAAW,QAAQA,IAASK,EAAS,SACrCL,IAASK,EAAS,OAElBJ,MAAW,QAAQA,IAASI,EAAS,SACrCJ,IAASI,EAAS,OAElBH,MAAW,QAAQA,IAASG,EAAS,SACrCH,IAASG,EAAS,OAElBF,MAAW,QAAQA,IAASE,EAAS,SACrCF,IAASE,EAAS;AAAA,EAE1B,CAAC,GAEM,IAAI,EAAE,IAAI;AAAA,IACbH;AAAA,IACAD;AAAA,IACAD;AAAA,IACAG;AAAA,EAAA;AAER,GAEaG,IAAe;AAAA,EACxB,0BAAAR;AACJ,GAEMS,IAA0B,CAC5BC,MAEO,CAACT,MAAmC;AACvC,QAAMU,IAAuB,CAAA;AAE7B,EAAAV,EAAQ,iBAAiB,CAACW,MAAsBD,EAAgB,KAAKC,EAAM,QAAA,CAAS,CAAC;AAErF,QAAMC,IAAeH,EAAKC,GAAiBV,EAAQ,aAAa;AAChE,MAAIY,aAAwB,EAAE,IAAI;AAC9B,WAAOA;AAGX,QAAMC,IAAcC,EAAgBF,CAAY,GAC1CG,IAAoBC,EAAiBH,CAAW,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,QAE5EI,IAAgB,IAAIF,EAAkBf,EAAQ,eAAe;AAAA,IAC/D,MAAMa;AAAA;AAAA;AAAA,IAIN,KAAKb,EAAQ,WAAA;AAAA,IACb,KAAKA,EAAQ,WAAA;AAAA,EAAW,CAC3B;AAGD,SAAAiB,EAAc,QAAQjB,CAAO,GAEtBiB;AACX,GAGEC,IAAwB,CAAIT,MACvB,CAACU,MAAyC;AAC7C,QAAMP,IAAeH,EAAKU,EAAW,WAAWA,EAAW,aAAa;AACxE,MAAIP,aAAwB,EAAE,IAAI;AAC9B,WAAOA;AAGX,QAAMQ,IAAYN,EAAgBF,CAAY,GACxCG,IAAoBC,EAAiBI,CAAS,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,QAE1EC,IAAc,IAAIN,EAAkBI,EAAW,eAAe;AAAA,IAChE,MAAMC;AAAA;AAAA,IAGN,KAAKD,EAAW,WAAA;AAAA,EAAW,CAC9B;AAGD,SAAAE,EAAY,QAAQF,CAAU,GAEvBE;AACX,GAGSC,IAAkB,CAACC,OAA6C;AAAA,EACzE,wBAAwBf,EAAwBe,EAAM,sBAAsB;AAAA,EAC5E,sBAAsBL,EAAsBK,EAAM,oBAAoB;AAC1E;"}
@@ -1,9 +1,9 @@
1
1
  const s = (e = 250) => {
2
2
  let n;
3
3
  const t = (r, ...E) => {
4
- o(), n = window.setTimeout(() => r(...E), e);
4
+ o(), n = setTimeout(() => r(...E), e);
5
5
  }, o = () => {
6
- window.clearTimeout(n);
6
+ clearTimeout(n);
7
7
  };
8
8
  return {
9
9
  delayTime: e,
@@ -23,7 +23,7 @@ const s = (e = 250) => {
23
23
  map: n,
24
24
  calculateGeoCoords: () => n.screenToGeo(t, o)
25
25
  };
26
- }, T = (e, n) => (t) => e(t, i(t, n)), _ = (e, n, t) => {
26
+ }, T = (e, n) => (t) => e(t, i(t, n)), l = (e, n, t) => {
27
27
  if (!n)
28
28
  return;
29
29
  const o = {};
@@ -33,7 +33,7 @@ const s = (e = 250) => {
33
33
  }), e.rioMapRemoveEvents = () => (Object.keys(o).forEach((r) => {
34
34
  e.removeEventListener(r, o[r]);
35
35
  }), delete e.rioMapRemoveEvents, t);
36
- }, l = (e) => {
36
+ }, N = (e) => {
37
37
  if (e.rioMapRemoveEvents)
38
38
  return e.rioMapRemoveEvents();
39
39
  }, u = (e, n = 300) => {
@@ -46,7 +46,7 @@ const s = (e = 250) => {
46
46
  }, t[c.DBL_TAP] = (...r) => {
47
47
  o.cancel(), e[c.DBL_TAP](...r);
48
48
  }, t;
49
- }, a = (e) => e.originalEvent.button, d = (e) => a(e) === c.MOUSE_BUTTONS.RIGHT, c = {
49
+ }, a = (e) => e.originalEvent.button, _ = (e) => a(e) === c.MOUSE_BUTTONS.RIGHT, c = {
50
50
  MOUSE_BUTTONS: {
51
51
  LEFT: 0,
52
52
  MIDDLE: 1,
@@ -73,17 +73,17 @@ const s = (e = 250) => {
73
73
  ENGINE_CHANGE: "enginechange",
74
74
  createTapOnDblTapPreventer: u,
75
75
  getMouseButton: a,
76
- isRightClick: d
76
+ isRightClick: _
77
77
  };
78
78
  export {
79
79
  c as EventUtils,
80
- _ as addEventListenerMap,
80
+ l as addEventListenerMap,
81
81
  T as createEnhancedListener,
82
82
  i as createEnhancedMapEvent,
83
83
  u as createTapOnDblTapPreventer,
84
84
  c as default,
85
85
  a as getMouseButton,
86
- d as isRightClick,
87
- l as removeEventListenerMap
86
+ _ as isRightClick,
87
+ N as removeEventListenerMap
88
88
  };
89
89
  //# sourceMappingURL=eventHandling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventHandling.js","sources":["../../../../src/components/map/utils/eventHandling.ts"],"sourcesContent":["import type { MapEvent } from './mapTypes';\n\nexport type EventListenerMap = {\n [key: string]: Function;\n};\n\ntype Timer = number | undefined;\n\ntype MapTimeGuard = {\n delayTime: number;\n timer: Timer;\n delay(callback: Function, ...args: any[]): void;\n cancel(): void;\n};\n\nconst createMapTimeGuard = (delay = 250): MapTimeGuard => {\n let timer: Timer;\n\n const delayFunc = <T>(callback: Function, ...args: T[]): void => {\n cancelFunc();\n timer = window.setTimeout(() => callback(...args), delay);\n };\n\n const cancelFunc = (): void => {\n window.clearTimeout(timer);\n };\n\n return {\n delayTime: delay,\n timer,\n delay: delayFunc,\n cancel: cancelFunc,\n };\n};\n\ntype EnhancedMapEvent = {\n viewportX: number;\n viewportY: number;\n map: H.Map;\n calculateGeoCoords(): H.geo.Point;\n};\n\nexport const createEnhancedMapEvent = (\n event: H.mapevents.Event | null,\n mapApi: H.Map\n): EnhancedMapEvent | { map: H.Map } => {\n if (!event || !event.currentPointer) {\n return {\n map: mapApi,\n };\n }\n\n const viewportX = event.currentPointer.viewportX;\n const viewportY = event.currentPointer.viewportY;\n\n const calculateGeoCoords = (): H.geo.Point => {\n return mapApi.screenToGeo(viewportX, viewportY);\n };\n\n return {\n viewportX,\n viewportY,\n map: mapApi,\n calculateGeoCoords,\n };\n};\n\nexport const createEnhancedListener = (listener: Function, mapApi: H.Map) => {\n return (event: H.mapevents.Event) => listener(event, createEnhancedMapEvent(event, mapApi));\n};\n\nexport type RioEventTarget = H.util.EventTarget & {\n rioMapRemoveEvents?: Function;\n};\n\nexport const addEventListenerMap = (\n eventTarget: RioEventTarget,\n eventListenerMap: EventListenerMap | undefined,\n mapApi: H.Map\n) => {\n if (!eventListenerMap) {\n return;\n }\n\n const enhancedMap: Record<string, any> = {};\n\n Object.keys(eventListenerMap).forEach(key => {\n const enhancedListener = createEnhancedListener(eventListenerMap[key], mapApi);\n eventTarget.addEventListener(key, enhancedListener as any);\n enhancedMap[key] = enhancedListener;\n });\n\n eventTarget.rioMapRemoveEvents = () => {\n Object.keys(enhancedMap).forEach(key => {\n eventTarget.removeEventListener(key, enhancedMap[key]);\n });\n\n // biome-ignore lint/performance/noDelete: <explanation>\n delete eventTarget.rioMapRemoveEvents;\n\n return mapApi;\n };\n};\n\nexport const removeEventListenerMap = (eventTarget: RioEventTarget) => {\n if (eventTarget.rioMapRemoveEvents) {\n return eventTarget.rioMapRemoveEvents();\n }\n};\n\nexport const createTapOnDblTapPreventer = (\n eventListenerMap: EventListenerMap,\n delayBetweenTaps = 300\n): EventListenerMap => {\n const result = { ...eventListenerMap };\n if (!eventListenerMap[EventUtils.TAP] || !eventListenerMap[EventUtils.DBL_TAP]) {\n return result;\n }\n\n const guard = createMapTimeGuard(delayBetweenTaps);\n\n result[EventUtils.TAP] = <T>(...args: T[]) => {\n guard.delay(eventListenerMap[EventUtils.TAP], ...args);\n };\n\n result[EventUtils.DBL_TAP] = <T>(...args: T[]) => {\n guard.cancel();\n eventListenerMap[EventUtils.DBL_TAP](...args);\n };\n\n return result;\n};\n\nexport const getMouseButton = (event: MapEvent): number => {\n return (event.originalEvent as unknown as H.mapevents.Pointer).button;\n};\n\nexport const isRightClick = (event: MapEvent): boolean => {\n return getMouseButton(event) === EventUtils.MOUSE_BUTTONS.RIGHT;\n};\n\nexport const EventUtils = {\n MOUSE_BUTTONS: {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n },\n\n POINTER_DOWN: 'pointerdown',\n POINTER_UP: 'pointerup',\n POINTER_MOVE: 'pointermove',\n POINTER_ENTER: 'pointerenter',\n POINTER_LEAVE: 'pointerleave',\n POINTER_CANCEL: 'pointercancel',\n\n DRAG_START: 'dragstart',\n DRAG: 'drag',\n DRAG_END: 'dragend',\n TAP: 'tap',\n DBL_TAP: 'dbltap',\n LONGPRESS: 'longpress',\n\n CONTEXTMENU: 'contextmenu',\n CONTEXTMENU_CLOSE: 'contextmenuclose',\n\n MAP_VIEW_CHANGE_START: 'mapviewchangestart',\n MAP_VIEW_CHANGE: 'mapviewchange',\n MAP_VIEW_CHANGE_END: 'mapviewchangeend',\n\n BASE_LAYER_CHANGE: 'baselayerchange',\n ENGINE_CHANGE: 'enginechange',\n\n createTapOnDblTapPreventer,\n getMouseButton,\n isRightClick,\n};\n\nexport default EventUtils;\n"],"names":["createMapTimeGuard","delay","timer","delayFunc","callback","args","cancelFunc","createEnhancedMapEvent","event","mapApi","viewportX","viewportY","createEnhancedListener","listener","addEventListenerMap","eventTarget","eventListenerMap","enhancedMap","key","enhancedListener","removeEventListenerMap","createTapOnDblTapPreventer","delayBetweenTaps","result","EventUtils","guard","getMouseButton","isRightClick"],"mappings":"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"}
1
+ {"version":3,"file":"eventHandling.js","sources":["../../../../src/components/map/utils/eventHandling.ts"],"sourcesContent":["import type { MapEvent } from './mapTypes';\n\nexport type EventListenerMap = {\n [key: string]: Function;\n};\n\ntype MapTimeGuard = {\n delayTime: number;\n timer: NodeJS.Timeout | undefined;\n delay(callback: Function, ...args: any[]): void;\n cancel(): void;\n};\n\nconst createMapTimeGuard = (delay = 250): MapTimeGuard => {\n let timer: NodeJS.Timeout | undefined;\n\n const delayFunc = <T>(callback: Function, ...args: T[]): void => {\n cancelFunc();\n timer = setTimeout(() => callback(...args), delay);\n };\n\n const cancelFunc = (): void => {\n clearTimeout(timer);\n };\n\n return {\n delayTime: delay,\n timer,\n delay: delayFunc,\n cancel: cancelFunc,\n };\n};\n\ntype EnhancedMapEvent = {\n viewportX: number;\n viewportY: number;\n map: H.Map;\n calculateGeoCoords(): H.geo.Point;\n};\n\nexport const createEnhancedMapEvent = (\n event: H.mapevents.Event | null,\n mapApi: H.Map\n): EnhancedMapEvent | { map: H.Map } => {\n if (!event || !event.currentPointer) {\n return {\n map: mapApi,\n };\n }\n\n const viewportX = event.currentPointer.viewportX;\n const viewportY = event.currentPointer.viewportY;\n\n const calculateGeoCoords = (): H.geo.Point => {\n return mapApi.screenToGeo(viewportX, viewportY);\n };\n\n return {\n viewportX,\n viewportY,\n map: mapApi,\n calculateGeoCoords,\n };\n};\n\nexport const createEnhancedListener = (listener: Function, mapApi: H.Map) => {\n return (event: H.mapevents.Event) => listener(event, createEnhancedMapEvent(event, mapApi));\n};\n\nexport type RioEventTarget = H.util.EventTarget & {\n rioMapRemoveEvents?: Function;\n};\n\nexport const addEventListenerMap = (\n eventTarget: RioEventTarget,\n eventListenerMap: EventListenerMap | undefined,\n mapApi: H.Map\n) => {\n if (!eventListenerMap) {\n return;\n }\n\n const enhancedMap: Record<string, any> = {};\n\n Object.keys(eventListenerMap).forEach(key => {\n const enhancedListener = createEnhancedListener(eventListenerMap[key], mapApi);\n eventTarget.addEventListener(key, enhancedListener as any);\n enhancedMap[key] = enhancedListener;\n });\n\n eventTarget.rioMapRemoveEvents = () => {\n Object.keys(enhancedMap).forEach(key => {\n eventTarget.removeEventListener(key, enhancedMap[key]);\n });\n\n delete eventTarget.rioMapRemoveEvents;\n\n return mapApi;\n };\n};\n\nexport const removeEventListenerMap = (eventTarget: RioEventTarget) => {\n if (eventTarget.rioMapRemoveEvents) {\n return eventTarget.rioMapRemoveEvents();\n }\n};\n\nexport const createTapOnDblTapPreventer = (\n eventListenerMap: EventListenerMap,\n delayBetweenTaps = 300\n): EventListenerMap => {\n const result = { ...eventListenerMap };\n if (!eventListenerMap[EventUtils.TAP] || !eventListenerMap[EventUtils.DBL_TAP]) {\n return result;\n }\n\n const guard = createMapTimeGuard(delayBetweenTaps);\n\n result[EventUtils.TAP] = <T>(...args: T[]) => {\n guard.delay(eventListenerMap[EventUtils.TAP], ...args);\n };\n\n result[EventUtils.DBL_TAP] = <T>(...args: T[]) => {\n guard.cancel();\n eventListenerMap[EventUtils.DBL_TAP](...args);\n };\n\n return result;\n};\n\nexport const getMouseButton = (event: MapEvent): number => {\n return (event.originalEvent as unknown as H.mapevents.Pointer).button;\n};\n\nexport const isRightClick = (event: MapEvent): boolean => {\n return getMouseButton(event) === EventUtils.MOUSE_BUTTONS.RIGHT;\n};\n\nexport const EventUtils = {\n MOUSE_BUTTONS: {\n LEFT: 0,\n MIDDLE: 1,\n RIGHT: 2,\n },\n\n POINTER_DOWN: 'pointerdown',\n POINTER_UP: 'pointerup',\n POINTER_MOVE: 'pointermove',\n POINTER_ENTER: 'pointerenter',\n POINTER_LEAVE: 'pointerleave',\n POINTER_CANCEL: 'pointercancel',\n\n DRAG_START: 'dragstart',\n DRAG: 'drag',\n DRAG_END: 'dragend',\n TAP: 'tap',\n DBL_TAP: 'dbltap',\n LONGPRESS: 'longpress',\n\n CONTEXTMENU: 'contextmenu',\n CONTEXTMENU_CLOSE: 'contextmenuclose',\n\n MAP_VIEW_CHANGE_START: 'mapviewchangestart',\n MAP_VIEW_CHANGE: 'mapviewchange',\n MAP_VIEW_CHANGE_END: 'mapviewchangeend',\n\n BASE_LAYER_CHANGE: 'baselayerchange',\n ENGINE_CHANGE: 'enginechange',\n\n createTapOnDblTapPreventer,\n getMouseButton,\n isRightClick,\n};\n\nexport default EventUtils;\n"],"names":["createMapTimeGuard","delay","timer","delayFunc","callback","args","cancelFunc","createEnhancedMapEvent","event","mapApi","viewportX","viewportY","createEnhancedListener","listener","addEventListenerMap","eventTarget","eventListenerMap","enhancedMap","key","enhancedListener","removeEventListenerMap","createTapOnDblTapPreventer","delayBetweenTaps","result","EventUtils","guard","getMouseButton","isRightClick"],"mappings":"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"}
@@ -26,9 +26,9 @@ export type MapUtils = {
26
26
  getObjects: () => H.map.Object[];
27
27
  getLayers: () => H.map.DataModel[];
28
28
  getBaseLayer: () => H.map.layer.Layer;
29
- getGroups: () => H.map.Object[];
30
- getMarkers: () => H.map.Object[];
31
- getRoutePolylines: () => H.map.Object[];
29
+ getGroups: () => H.map.Group[];
30
+ getMarkers: () => H.map.Marker[];
31
+ getRoutePolylines: () => H.map.Polyline[];
32
32
  getPosition: typeof getPosition;
33
33
  calculateBoundingBox: typeof calculateBoundingBox;
34
34
  isValidBoundingBox: typeof isValidBoundingBox;
@@ -70,9 +70,9 @@ export declare const createUtils: (mapApi: H.Map) => {
70
70
  getObjects: () => H.map.Object[];
71
71
  getLayers: () => any[];
72
72
  getBaseLayer: () => H.map.layer.Layer;
73
- getGroups: () => H.map.Object[];
74
- getMarkers: () => H.map.Object[];
75
- getRoutePolylines: () => any;
73
+ getGroups: () => H.map.Group[];
74
+ getMarkers: () => H.map.Marker[];
75
+ getRoutePolylines: () => H.map.Polyline[];
76
76
  getPosition: (marker: H.map.AbstractMarker) => H.geo.Point | H.geo.MultiPoint;
77
77
  calculateBoundingBox: (positions: {
78
78
  lat: number;
@@ -1,9 +1,8 @@
1
- import { flow as l, filter as n, flatMap as a } from "es-toolkit/compat";
2
- import { parsePositionFromString as c, isValidBoundingBox as d, calculateBoundingBox as u } from "./positions.js";
3
- const w = (e) => {
4
- const { top: t, left: o, bottom: s, right: i } = e;
5
- return new H.geo.Rect(t, o, s, i);
6
- }, g = (e) => (t) => t instanceof e, b = g(H.map.AbstractMarker), r = g(H.map.Group), f = g(H.map.Polyline), h = (e) => e.getGeometry(), L = (e) => ({
1
+ import { parsePositionFromString as i, isValidBoundingBox as l, calculateBoundingBox as c } from "./positions.js";
2
+ const b = (e) => {
3
+ const { top: t, left: o, bottom: g, right: n } = e;
4
+ return new H.geo.Rect(t, o, g, n);
5
+ }, r = (e) => (t) => t instanceof e, a = r(H.map.AbstractMarker), s = r(H.map.Group), d = r(H.map.Polyline), u = (e) => e.getGeometry(), y = (e) => ({
7
6
  getCenter: () => {
8
7
  const t = e.getCenter();
9
8
  return {
@@ -55,20 +54,16 @@ const w = (e) => {
55
54
  getObjects: () => e.getObjects(),
56
55
  getLayers: () => e.getLayers().asArray(),
57
56
  getBaseLayer: () => e.getBaseLayer(),
58
- getGroups: () => n(e.getObjects(), r),
59
- getMarkers: () => n(e.getObjects(), b),
60
- getRoutePolylines: () => l(
61
- n(r),
62
- a((t) => t.getObjects()),
63
- n(f)
64
- )(e.getObjects()),
65
- getPosition: h,
66
- calculateBoundingBox: u,
67
- isValidBoundingBox: d,
68
- parsePositionFromString: c
57
+ getGroups: () => e.getObjects().filter(s),
58
+ getMarkers: () => e.getObjects().filter(a),
59
+ getRoutePolylines: () => e.getObjects().filter(s).flatMap((n) => n.getObjects()).filter(d),
60
+ getPosition: u,
61
+ calculateBoundingBox: c,
62
+ isValidBoundingBox: l,
63
+ parsePositionFromString: i
69
64
  });
70
65
  export {
71
- L as createUtils,
72
- w as getMapBounds
66
+ y as createUtils,
67
+ b as getMapBounds
73
68
  };
74
69
  //# sourceMappingURL=mapUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapUtils.js","sources":["../../../../src/components/map/utils/mapUtils.ts"],"sourcesContent":["import { filter, flatMap, flow } from 'es-toolkit/compat';\n\nimport { calculateBoundingBox, isValidBoundingBox, parsePositionFromString } from './positions';\nimport type { BoundingBox, MapBoundingBox, Position } from './mapTypes';\n\n// Internal use for setting the map to a given bounding box\nexport const getMapBounds = (boundingBox: BoundingBox) => {\n const { top, left, bottom, right } = boundingBox;\n return new H.geo.Rect(top, left, bottom, right);\n};\n\nconst typeFilterFunction = (hereType: abstract new (...args: never[]) => H.map.Object) => (obj: H.map.Object) =>\n obj instanceof hereType;\n\nconst markerFilterFunction = typeFilterFunction(H.map.AbstractMarker);\n\nconst groupFilterFunction = typeFilterFunction(H.map.Group);\n\nconst polylineFilterFunction = typeFilterFunction(H.map.Polyline);\n\nconst getPosition = (marker: H.map.AbstractMarker) => marker.getGeometry();\n\nexport type MapUtils = {\n getCenter: () => Position;\n setCenter: (position: Position, animate: boolean) => void;\n getZoom: () => number;\n setZoom: (zoom: number, zoomAnimation: boolean) => void;\n getViewPort: () => {\n width: number;\n height: number;\n margin: number;\n padding: {\n top: number;\n right: number;\n bottom: number;\n left: number;\n };\n center: {\n x: number;\n y: number;\n };\n };\n getBounds: () => MapBoundingBox;\n getObjects: () => H.map.Object[];\n getLayers: () => H.map.DataModel[];\n getBaseLayer: () => H.map.layer.Layer;\n getGroups: () => H.map.Object[];\n getMarkers: () => H.map.Object[];\n getRoutePolylines: () => H.map.Object[];\n getPosition: typeof getPosition;\n calculateBoundingBox: typeof calculateBoundingBox;\n isValidBoundingBox: typeof isValidBoundingBox;\n parsePositionFromString: typeof parsePositionFromString;\n};\n\nexport const createUtils = (mapApi: H.Map) => {\n return {\n getCenter: () => {\n const center = mapApi.getCenter();\n return {\n lat: center.lat,\n lng: center.lng,\n };\n },\n setCenter: (position: Position, animate: boolean) => {\n mapApi.getViewModel().setLookAtData({ position }, animate);\n },\n getZoom: () => {\n const { zoom } = mapApi.getViewModel().getLookAtData();\n return Math.round(zoom === undefined ? 0 : zoom);\n },\n setZoom: (zoom: number, zoomAnimation = false) => {\n mapApi.getViewModel().setLookAtData({ zoom }, zoomAnimation);\n },\n getViewPort: () => {\n const viewPort = mapApi.getViewPort();\n return {\n width: viewPort.width,\n height: viewPort.height,\n margin: viewPort.margin,\n padding: {\n top: viewPort.padding.top,\n right: viewPort.padding.right,\n bottom: viewPort.padding.bottom,\n left: viewPort.padding.left,\n },\n center: {\n x: viewPort.center.x,\n y: viewPort.center.y,\n },\n };\n },\n\n getBounds: () => {\n const { bounds } = mapApi.getViewModel().getLookAtData();\n\n // HERE Maps API for JavaScript 3.1\n const boundingBox = bounds?.getBoundingBox();\n return {\n topLeft: {\n lng: boundingBox?.getTopLeft().lng,\n lat: boundingBox?.getTopLeft().lat,\n },\n bottomRight: {\n lng: boundingBox?.getBottomRight().lng,\n lat: boundingBox?.getBottomRight().lat,\n },\n };\n },\n getObjects: () => mapApi.getObjects(),\n getLayers: () => mapApi.getLayers().asArray(),\n getBaseLayer: () => mapApi.getBaseLayer(),\n getGroups: () => filter(mapApi.getObjects(), groupFilterFunction),\n getMarkers: () => filter(mapApi.getObjects(), markerFilterFunction),\n\n getRoutePolylines: () =>\n flow(\n filter(groupFilterFunction),\n flatMap((group: H.map.Group) => group.getObjects()),\n filter(polylineFilterFunction)\n )(mapApi.getObjects()),\n\n getPosition,\n calculateBoundingBox,\n isValidBoundingBox,\n parsePositionFromString,\n };\n};\n"],"names":["getMapBounds","boundingBox","top","left","bottom","right","typeFilterFunction","hereType","obj","markerFilterFunction","groupFilterFunction","polylineFilterFunction","getPosition","marker","createUtils","mapApi","center","position","animate","zoom","zoomAnimation","viewPort","bounds","filter","flow","flatMap","group","calculateBoundingBox","isValidBoundingBox","parsePositionFromString"],"mappings":";;AAMO,MAAMA,IAAe,CAACC,MAA6B;AACtD,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,QAAAC,GAAQ,OAAAC,MAAUJ;AACrC,SAAO,IAAI,EAAE,IAAI,KAAKC,GAAKC,GAAMC,GAAQC,CAAK;AAClD,GAEMC,IAAqB,CAACC,MAA8D,CAACC,MACvFA,aAAeD,GAEbE,IAAuBH,EAAmB,EAAE,IAAI,cAAc,GAE9DI,IAAsBJ,EAAmB,EAAE,IAAI,KAAK,GAEpDK,IAAyBL,EAAmB,EAAE,IAAI,QAAQ,GAE1DM,IAAc,CAACC,MAAiCA,EAAO,YAAA,GAmChDC,IAAc,CAACC,OACjB;AAAA,EACH,WAAW,MAAM;AACb,UAAMC,IAASD,EAAO,UAAA;AACtB,WAAO;AAAA,MACH,KAAKC,EAAO;AAAA,MACZ,KAAKA,EAAO;AAAA,IAAA;AAAA,EAEpB;AAAA,EACA,WAAW,CAACC,GAAoBC,MAAqB;AACjD,IAAAH,EAAO,eAAe,cAAc,EAAE,UAAAE,EAAA,GAAYC,CAAO;AAAA,EAC7D;AAAA,EACA,SAAS,MAAM;AACX,UAAM,EAAE,MAAAC,EAAA,IAASJ,EAAO,aAAA,EAAe,cAAA;AACvC,WAAO,KAAK,MAAMI,MAAS,SAAY,IAAIA,CAAI;AAAA,EACnD;AAAA,EACA,SAAS,CAACA,GAAcC,IAAgB,OAAU;AAC9C,IAAAL,EAAO,eAAe,cAAc,EAAE,MAAAI,EAAA,GAAQC,CAAa;AAAA,EAC/D;AAAA,EACA,aAAa,MAAM;AACf,UAAMC,IAAWN,EAAO,YAAA;AACxB,WAAO;AAAA,MACH,OAAOM,EAAS;AAAA,MAChB,QAAQA,EAAS;AAAA,MACjB,QAAQA,EAAS;AAAA,MACjB,SAAS;AAAA,QACL,KAAKA,EAAS,QAAQ;AAAA,QACtB,OAAOA,EAAS,QAAQ;AAAA,QACxB,QAAQA,EAAS,QAAQ;AAAA,QACzB,MAAMA,EAAS,QAAQ;AAAA,MAAA;AAAA,MAE3B,QAAQ;AAAA,QACJ,GAAGA,EAAS,OAAO;AAAA,QACnB,GAAGA,EAAS,OAAO;AAAA,MAAA;AAAA,IACvB;AAAA,EAER;AAAA,EAEA,WAAW,MAAM;AACb,UAAM,EAAE,QAAAC,EAAA,IAAWP,EAAO,aAAA,EAAe,cAAA,GAGnCd,IAAcqB,GAAQ,eAAA;AAC5B,WAAO;AAAA,MACH,SAAS;AAAA,QACL,KAAKrB,GAAa,WAAA,EAAa;AAAA,QAC/B,KAAKA,GAAa,aAAa;AAAA,MAAA;AAAA,MAEnC,aAAa;AAAA,QACT,KAAKA,GAAa,eAAA,EAAiB;AAAA,QACnC,KAAKA,GAAa,iBAAiB;AAAA,MAAA;AAAA,IACvC;AAAA,EAER;AAAA,EACA,YAAY,MAAMc,EAAO,WAAA;AAAA,EACzB,WAAW,MAAMA,EAAO,UAAA,EAAY,QAAA;AAAA,EACpC,cAAc,MAAMA,EAAO,aAAA;AAAA,EAC3B,WAAW,MAAMQ,EAAOR,EAAO,WAAA,GAAcL,CAAmB;AAAA,EAChE,YAAY,MAAMa,EAAOR,EAAO,WAAA,GAAcN,CAAoB;AAAA,EAElE,mBAAmB,MACfe;AAAA,IACID,EAAOb,CAAmB;AAAA,IAC1Be,EAAQ,CAACC,MAAuBA,EAAM,YAAY;AAAA,IAClDH,EAAOZ,CAAsB;AAAA,EAAA,EAC/BI,EAAO,YAAY;AAAA,EAEzB,aAAAH;AAAA,EACA,sBAAAe;AAAA,EACA,oBAAAC;AAAA,EACA,yBAAAC;AAAA;"}
1
+ {"version":3,"file":"mapUtils.js","sources":["../../../../src/components/map/utils/mapUtils.ts"],"sourcesContent":["import { calculateBoundingBox, isValidBoundingBox, parsePositionFromString } from './positions';\nimport type { BoundingBox, MapBoundingBox, Position } from './mapTypes';\n\n// Internal use for setting the map to a given bounding box\nexport const getMapBounds = (boundingBox: BoundingBox) => {\n const { top, left, bottom, right } = boundingBox;\n return new H.geo.Rect(top, left, bottom, right);\n};\n\nconst typeFilterFunction = (hereType: abstract new (...args: never[]) => H.map.Object) => (obj: H.map.Object) =>\n obj instanceof hereType;\n\nconst markerFilterFunction = typeFilterFunction(H.map.AbstractMarker);\n\nconst groupFilterFunction = typeFilterFunction(H.map.Group);\n\nconst polylineFilterFunction = typeFilterFunction(H.map.Polyline);\n\nconst getPosition = (marker: H.map.AbstractMarker) => marker.getGeometry();\n\nexport type MapUtils = {\n getCenter: () => Position;\n setCenter: (position: Position, animate: boolean) => void;\n getZoom: () => number;\n setZoom: (zoom: number, zoomAnimation: boolean) => void;\n getViewPort: () => {\n width: number;\n height: number;\n margin: number;\n padding: {\n top: number;\n right: number;\n bottom: number;\n left: number;\n };\n center: {\n x: number;\n y: number;\n };\n };\n getBounds: () => MapBoundingBox;\n getObjects: () => H.map.Object[];\n getLayers: () => H.map.DataModel[];\n getBaseLayer: () => H.map.layer.Layer;\n getGroups: () => H.map.Group[];\n getMarkers: () => H.map.Marker[];\n getRoutePolylines: () => H.map.Polyline[];\n getPosition: typeof getPosition;\n calculateBoundingBox: typeof calculateBoundingBox;\n isValidBoundingBox: typeof isValidBoundingBox;\n parsePositionFromString: typeof parsePositionFromString;\n};\n\nexport const createUtils = (mapApi: H.Map) => {\n return {\n getCenter: () => {\n const center = mapApi.getCenter();\n return {\n lat: center.lat,\n lng: center.lng,\n };\n },\n setCenter: (position: Position, animate: boolean) => {\n mapApi.getViewModel().setLookAtData({ position }, animate);\n },\n getZoom: () => {\n const { zoom } = mapApi.getViewModel().getLookAtData();\n return Math.round(zoom === undefined ? 0 : zoom);\n },\n setZoom: (zoom: number, zoomAnimation = false) => {\n mapApi.getViewModel().setLookAtData({ zoom }, zoomAnimation);\n },\n getViewPort: () => {\n const viewPort = mapApi.getViewPort();\n return {\n width: viewPort.width,\n height: viewPort.height,\n margin: viewPort.margin,\n padding: {\n top: viewPort.padding.top,\n right: viewPort.padding.right,\n bottom: viewPort.padding.bottom,\n left: viewPort.padding.left,\n },\n center: {\n x: viewPort.center.x,\n y: viewPort.center.y,\n },\n };\n },\n\n getBounds: () => {\n const { bounds } = mapApi.getViewModel().getLookAtData();\n\n // HERE Maps API for JavaScript 3.1\n const boundingBox = bounds?.getBoundingBox();\n return {\n topLeft: {\n lng: boundingBox?.getTopLeft().lng,\n lat: boundingBox?.getTopLeft().lat,\n },\n bottomRight: {\n lng: boundingBox?.getBottomRight().lng,\n lat: boundingBox?.getBottomRight().lat,\n },\n };\n },\n getObjects: () => mapApi.getObjects(),\n getLayers: () => mapApi.getLayers().asArray(),\n getBaseLayer: () => mapApi.getBaseLayer(),\n getGroups: () => mapApi.getObjects().filter(groupFilterFunction) as H.map.Group[],\n getMarkers: () => mapApi.getObjects().filter(markerFilterFunction) as H.map.Marker[],\n\n getRoutePolylines: () => {\n const groups = mapApi.getObjects().filter(groupFilterFunction) as H.map.Group[];\n const groupObjects = groups.flatMap(group => group.getObjects());\n const filteredPolylines = groupObjects.filter(polylineFilterFunction) as H.map.Polyline[];\n return filteredPolylines;\n },\n\n getPosition,\n calculateBoundingBox,\n isValidBoundingBox,\n parsePositionFromString,\n };\n};\n"],"names":["getMapBounds","boundingBox","top","left","bottom","right","typeFilterFunction","hereType","obj","markerFilterFunction","groupFilterFunction","polylineFilterFunction","getPosition","marker","createUtils","mapApi","center","position","animate","zoom","zoomAnimation","viewPort","bounds","group","calculateBoundingBox","isValidBoundingBox","parsePositionFromString"],"mappings":";AAIO,MAAMA,IAAe,CAACC,MAA6B;AACtD,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,QAAAC,GAAQ,OAAAC,MAAUJ;AACrC,SAAO,IAAI,EAAE,IAAI,KAAKC,GAAKC,GAAMC,GAAQC,CAAK;AAClD,GAEMC,IAAqB,CAACC,MAA8D,CAACC,MACvFA,aAAeD,GAEbE,IAAuBH,EAAmB,EAAE,IAAI,cAAc,GAE9DI,IAAsBJ,EAAmB,EAAE,IAAI,KAAK,GAEpDK,IAAyBL,EAAmB,EAAE,IAAI,QAAQ,GAE1DM,IAAc,CAACC,MAAiCA,EAAO,YAAA,GAmChDC,IAAc,CAACC,OACjB;AAAA,EACH,WAAW,MAAM;AACb,UAAMC,IAASD,EAAO,UAAA;AACtB,WAAO;AAAA,MACH,KAAKC,EAAO;AAAA,MACZ,KAAKA,EAAO;AAAA,IAAA;AAAA,EAEpB;AAAA,EACA,WAAW,CAACC,GAAoBC,MAAqB;AACjD,IAAAH,EAAO,eAAe,cAAc,EAAE,UAAAE,EAAA,GAAYC,CAAO;AAAA,EAC7D;AAAA,EACA,SAAS,MAAM;AACX,UAAM,EAAE,MAAAC,EAAA,IAASJ,EAAO,aAAA,EAAe,cAAA;AACvC,WAAO,KAAK,MAAMI,MAAS,SAAY,IAAIA,CAAI;AAAA,EACnD;AAAA,EACA,SAAS,CAACA,GAAcC,IAAgB,OAAU;AAC9C,IAAAL,EAAO,eAAe,cAAc,EAAE,MAAAI,EAAA,GAAQC,CAAa;AAAA,EAC/D;AAAA,EACA,aAAa,MAAM;AACf,UAAMC,IAAWN,EAAO,YAAA;AACxB,WAAO;AAAA,MACH,OAAOM,EAAS;AAAA,MAChB,QAAQA,EAAS;AAAA,MACjB,QAAQA,EAAS;AAAA,MACjB,SAAS;AAAA,QACL,KAAKA,EAAS,QAAQ;AAAA,QACtB,OAAOA,EAAS,QAAQ;AAAA,QACxB,QAAQA,EAAS,QAAQ;AAAA,QACzB,MAAMA,EAAS,QAAQ;AAAA,MAAA;AAAA,MAE3B,QAAQ;AAAA,QACJ,GAAGA,EAAS,OAAO;AAAA,QACnB,GAAGA,EAAS,OAAO;AAAA,MAAA;AAAA,IACvB;AAAA,EAER;AAAA,EAEA,WAAW,MAAM;AACb,UAAM,EAAE,QAAAC,EAAA,IAAWP,EAAO,aAAA,EAAe,cAAA,GAGnCd,IAAcqB,GAAQ,eAAA;AAC5B,WAAO;AAAA,MACH,SAAS;AAAA,QACL,KAAKrB,GAAa,WAAA,EAAa;AAAA,QAC/B,KAAKA,GAAa,aAAa;AAAA,MAAA;AAAA,MAEnC,aAAa;AAAA,QACT,KAAKA,GAAa,eAAA,EAAiB;AAAA,QACnC,KAAKA,GAAa,iBAAiB;AAAA,MAAA;AAAA,IACvC;AAAA,EAER;AAAA,EACA,YAAY,MAAMc,EAAO,WAAA;AAAA,EACzB,WAAW,MAAMA,EAAO,UAAA,EAAY,QAAA;AAAA,EACpC,cAAc,MAAMA,EAAO,aAAA;AAAA,EAC3B,WAAW,MAAMA,EAAO,WAAA,EAAa,OAAOL,CAAmB;AAAA,EAC/D,YAAY,MAAMK,EAAO,WAAA,EAAa,OAAON,CAAoB;AAAA,EAEjE,mBAAmB,MACAM,EAAO,WAAA,EAAa,OAAOL,CAAmB,EACjC,QAAQ,CAAAa,MAASA,EAAM,YAAY,EACxB,OAAOZ,CAAsB;AAAA,EAIxE,aAAAC;AAAA,EACA,sBAAAY;AAAA,EACA,oBAAAC;AAAA,EACA,yBAAAC;AAAA;"}
@@ -20,4 +20,4 @@ export type BaseLayerResponse = {
20
20
  baseLayer: H.map.layer.Layer;
21
21
  overlayLayer?: H.map.layer.Layer;
22
22
  };
23
- export declare const getBaseLayer: ({ baseLayerName, defaultLayers, enableWebGL, platform, engineType, language, vehicleRestrictions, minZoom, maxZoom, }: BaseLayer) => Promise<BaseLayerResponse>;
23
+ export declare const getBaseLayer: ({ baseLayerName, defaultLayers, enableWebGL, platform, engineType, language, minZoom, maxZoom, }: BaseLayer) => Promise<BaseLayerResponse>;
@@ -1,5 +1,5 @@
1
- import { MAP_TYPE_TERRAIN as _, MAP_TYPE_FLEET_STYLE as v, ENGINE_TYPE_HARP as M, ENGINE_TYPE_P2D as E, MAP_TYPE_DEFAULT as p, MAP_TYPE_NIGHT as A, MAP_TYPE_SATELLITE as d, DEFAULT_RASTER_LAYER_FORMAT as h } from "../components/constants.js";
2
- const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e !== _ && e !== v, S = (r) => (
1
+ import { MAP_TYPE_TERRAIN as _, MAP_TYPE_FLEET_STYLE as v, ENGINE_TYPE_HARP as M, ENGINE_TYPE_P2D as l, MAP_TYPE_DEFAULT as p, MAP_TYPE_NIGHT as A, MAP_TYPE_SATELLITE as d, DEFAULT_RASTER_LAYER_FORMAT as L } from "../components/constants.js";
2
+ const h = () => window.devicePixelRatio >= 1.7 ? 200 : 100, u = (r, e) => r && e !== _ && e !== v, w = (r) => (
3
3
  // Initiate and authenticate your connection to the HERE platform:
4
4
  new H.service.Platform({
5
5
  apikey: r.apikey ?? "",
@@ -11,31 +11,30 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
11
11
  tileSize: 512
12
12
  }), s = new H.map.layer.TileLayer(n);
13
13
  return s.setMin(a), s.setMax(t), s;
14
- }, l = (r, e, a, t) => r?.getRasterTileService({
15
- format: h,
14
+ }, E = (r, e, a, t) => r?.getRasterTileService({
15
+ format: L,
16
16
  queryParams: {
17
17
  // https://www.here.com/docs/bundle/raster-tile-api-migration-guide/page/README.html#5-language
18
18
  lang: t,
19
- ppi: L(),
19
+ ppi: h(),
20
20
  style: e,
21
21
  features: a
22
22
  }
23
- }), b = (r, e) => {
23
+ }), S = (r, e) => {
24
24
  switch (r) {
25
25
  case v:
26
26
  case _:
27
- return E;
27
+ return l;
28
28
  default:
29
- return e ? M : E;
29
+ return e ? M : l;
30
30
  }
31
- }, I = async ({
31
+ }, b = async ({
32
32
  baseLayerName: r,
33
33
  defaultLayers: e,
34
34
  enableWebGL: a,
35
35
  platform: t,
36
36
  engineType: n,
37
37
  language: s,
38
- vehicleRestrictions: R,
39
38
  minZoom: i,
40
39
  maxZoom: c
41
40
  }) => {
@@ -55,6 +54,7 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
55
54
  };
56
55
  await t.createHybridLayers(
57
56
  y,
57
+ // biome-ignore lint/suspicious/noExplicitAny: whatever layer type
58
58
  (o) => (o.raster.setMin(i), o.raster.setMax(c), o.vector.setMin(i), o.vector.setMax(c), {
59
59
  baseLayer: o.raster,
60
60
  overlayLayer: o.vector
@@ -64,7 +64,7 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
64
64
  }
65
65
  return {
66
66
  baseLayer: P(
67
- l(t, "explore.satellite.day", T, s),
67
+ E(t, "explore.satellite.day", T, s),
68
68
  n,
69
69
  i,
70
70
  c
@@ -74,7 +74,7 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
74
74
  case _:
75
75
  return {
76
76
  baseLayer: P(
77
- l(t, "topo.day", T, s),
77
+ E(t, "topo.day", T, s),
78
78
  n,
79
79
  i,
80
80
  c
@@ -83,19 +83,19 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
83
83
  case v:
84
84
  return {
85
85
  baseLayer: P(
86
- l(t, "logistics.day", T, s),
87
- E,
86
+ E(t, "logistics.day", T, s),
87
+ l,
88
88
  i,
89
89
  c
90
90
  )
91
91
  };
92
92
  case A:
93
93
  return a ? (e?.vector.normal.mapnight.setMin(i), e?.vector.normal.mapnight.setMax(c), {
94
- // @ts-ignore-next-line "vector.normal.mapnight" is newer than the types
94
+ // @ts-expect-error-next-line "vector.normal.mapnight" is newer than the types
95
95
  baseLayer: e.vector.normal.mapnight
96
96
  }) : {
97
97
  baseLayer: P(
98
- l(t, "explore.night", T, s),
98
+ E(t, "explore.night", T, s),
99
99
  n,
100
100
  i,
101
101
  c
@@ -104,7 +104,7 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
104
104
  default:
105
105
  return {
106
106
  baseLayer: P(
107
- l(t, "explore.day", T, s),
107
+ E(t, "explore.day", T, s),
108
108
  n,
109
109
  i,
110
110
  c
@@ -113,12 +113,12 @@ const L = () => window.devicePixelRatio >= 1.7 ? 200 : 100, w = (r, e) => r && e
113
113
  }
114
114
  };
115
115
  export {
116
- I as getBaseLayer,
117
- l as getBaseRasterTileService,
116
+ b as getBaseLayer,
117
+ E as getBaseRasterTileService,
118
118
  P as getBaseTileLayer,
119
- b as getEngineType,
120
- L as getPPI,
121
- S as getPlatform,
122
- w as isVectorBased
119
+ S as getEngineType,
120
+ h as getPPI,
121
+ w as getPlatform,
122
+ u as isVectorBased
123
123
  };
124
124
  //# sourceMappingURL=rendering.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.js","sources":["../../../../src/components/map/utils/rendering.ts"],"sourcesContent":["import {\n DEFAULT_RASTER_LAYER_FORMAT,\n MAP_TYPE_FLEET_STYLE,\n MAP_TYPE_TERRAIN,\n ENGINE_TYPE_P2D,\n ENGINE_TYPE_HARP,\n MAP_TYPE_DEFAULT,\n MAP_TYPE_NIGHT,\n MAP_TYPE_SATELLITE,\n} from '../components/constants';\nimport type { MapCredentials, MapType } from './mapTypes';\n\n// https://www.here.com/docs/bundle/raster-tile-api-migration-guide/page/README.html#6-pixels-per-inch-ppi\n// Note: higher PPI image tiles result in larger label size and show more label on the map\n// HERE Raster Tile API v3: 100, 200, 200 or 400, 400\nexport const getPPI = () => (window.devicePixelRatio >= 1.7 ? 200 : 100);\n\n// Even if webgl is enabled, some base layer cannot be rendered in HARP properly\nexport const isVectorBased = (enableWebGL: boolean, baseLayer: MapType) =>\n enableWebGL && baseLayer !== MAP_TYPE_TERRAIN && baseLayer !== MAP_TYPE_FLEET_STYLE;\n\n// See Migration guide: https://developer.here.com/documentation/maps/3.1.37.0/dev_guide/topics/migration.html\nexport const getPlatform = (credentials: MapCredentials) =>\n // Initiate and authenticate your connection to the HERE platform:\n new H.service.Platform({\n apikey: credentials.apikey ?? '',\n useHTTPS: location.protocol === 'https:',\n });\n\nexport const getBaseTileLayer = <T>(\n rasterTileService: T,\n engineType: H.Map.EngineType,\n minZoom: number,\n maxZoom: number\n) => {\n // @ts-ignore-next-line \"H.service.rasterTile\" is newer that the types\n const rasterTileProvider = new H.service.rasterTile.Provider(rasterTileService, {\n engineType,\n tileSize: 512,\n });\n\n const rasterTileLayer = new H.map.layer.TileLayer(rasterTileProvider);\n\n // force the tile layer minimum zoom (furthest away possible) and maximum zoom (nearest) to the desired level\n rasterTileLayer.setMin(minZoom);\n rasterTileLayer.setMax(maxZoom);\n\n return rasterTileLayer;\n};\n\nexport const getBaseRasterTileService = (\n platform: H.service.Platform,\n style: string,\n features: string,\n lang: string\n) => {\n // @ts-ignore-next-line \"getRasterTileService\" is newer that the types\n return platform?.getRasterTileService({\n format: DEFAULT_RASTER_LAYER_FORMAT,\n queryParams: {\n // https://www.here.com/docs/bundle/raster-tile-api-migration-guide/page/README.html#5-language\n lang,\n ppi: getPPI(),\n style,\n features,\n },\n });\n};\n\nexport const getEngineType = (baseLayerName: string, enableWebGL: boolean) => {\n switch (baseLayerName) {\n case MAP_TYPE_FLEET_STYLE:\n case MAP_TYPE_TERRAIN:\n return ENGINE_TYPE_P2D;\n default:\n return enableWebGL ? ENGINE_TYPE_HARP : ENGINE_TYPE_P2D;\n }\n};\n\nexport type BaseLayer = {\n baseLayerName: string;\n defaultLayers: H.service.DefaultLayers;\n enableWebGL: boolean;\n platform: H.service.Platform;\n engineType: H.Map.EngineType;\n language: string;\n vehicleRestrictions: boolean;\n minZoom: number;\n maxZoom: number;\n};\n\nexport type BaseLayerResponse = { baseLayer: H.map.layer.Layer; overlayLayer?: H.map.layer.Layer };\n\nexport const getBaseLayer = async ({\n baseLayerName,\n defaultLayers,\n enableWebGL,\n platform,\n engineType,\n language,\n vehicleRestrictions,\n minZoom,\n maxZoom,\n}: BaseLayer): Promise<BaseLayerResponse> => {\n const restriction = 'disabled'; // vehicleRestrictions ? 'active_and_inactive' : 'disabled';\n const features = `pois:all,environmental_zones:all,congestion_zones:all,vehicle_restrictions:${restriction}`;\n\n if (enableWebGL && baseLayerName === MAP_TYPE_DEFAULT) {\n defaultLayers?.vector.normal.map.setMin(minZoom);\n defaultLayers?.vector.normal.map.setMax(maxZoom);\n\n return {\n baseLayer: defaultLayers?.vector.normal.map,\n };\n }\n switch (baseLayerName) {\n case MAP_TYPE_SATELLITE: {\n if (enableWebGL) {\n // This is a workaround for setting the min and max zoom limit for satellite map\n // since the setMin/setMax cannot be set on the \"defaultLayers.hybrid.liteday.raster\".\n // The HERE support suggested to create a hybrid layer for that and set the zoom limits\n // on the two layers.\n const hybridStyleConfig = {\n base: {\n style: 'oslo',\n scheme: 'hybrid.day',\n },\n };\n\n // This method creates hybrid map layers. A hybrid map consists of raster satellite base layer and vector layers on top.\n // Layers created by this method can be used only when the Map is instantiated with H.Map.EngineType.HARP engineType.\n // See https://www.here.com/docs/bundle/maps-api-for-javascript-api-reference/page/H.service.Platform_4.html#createHybridLayers\n // @ts-ignore-next-line\n await platform.createHybridLayers(\n hybridStyleConfig,\n (layers: any) => {\n layers.raster.setMin(minZoom);\n layers.raster.setMax(maxZoom);\n\n layers.vector.setMin(minZoom);\n layers.vector.setMax(maxZoom);\n\n return {\n baseLayer: layers.raster,\n overlayLayer: layers.vector,\n };\n },\n console.error\n );\n }\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'explore.satellite.day', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n case MAP_TYPE_TERRAIN: {\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'topo.day', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n case MAP_TYPE_FLEET_STYLE: {\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'logistics.day', features, language),\n ENGINE_TYPE_P2D,\n minZoom,\n maxZoom\n ),\n };\n }\n case MAP_TYPE_NIGHT: {\n if (enableWebGL) {\n // @ts-ignore-next-line \"setMin\" is working on \"vector.normal.mapnight\"\n defaultLayers?.vector.normal.mapnight.setMin(minZoom);\n // @ts-ignore-next-line \"setMax\" is working on \"vector.normal.mapnight\"\n defaultLayers?.vector.normal.mapnight.setMax(maxZoom);\n\n return {\n // @ts-ignore-next-line \"vector.normal.mapnight\" is newer than the types\n baseLayer: defaultLayers.vector.normal.mapnight,\n };\n }\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'explore.night', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n default: {\n // As a replacement for \"defaultLayers?.raster.normal.map\" which uses the old and deprecated\n // H.service.MapTileService, we use the Raster Tile Service v3 instead\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'explore.day', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n }\n};\n"],"names":["getPPI","isVectorBased","enableWebGL","baseLayer","MAP_TYPE_TERRAIN","MAP_TYPE_FLEET_STYLE","getPlatform","credentials","getBaseTileLayer","rasterTileService","engineType","minZoom","maxZoom","rasterTileProvider","rasterTileLayer","getBaseRasterTileService","platform","style","features","lang","DEFAULT_RASTER_LAYER_FORMAT","getEngineType","baseLayerName","ENGINE_TYPE_P2D","ENGINE_TYPE_HARP","getBaseLayer","defaultLayers","language","vehicleRestrictions","MAP_TYPE_DEFAULT","MAP_TYPE_SATELLITE","hybridStyleConfig","layers","MAP_TYPE_NIGHT"],"mappings":"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"}
1
+ {"version":3,"file":"rendering.js","sources":["../../../../src/components/map/utils/rendering.ts"],"sourcesContent":["import {\n DEFAULT_RASTER_LAYER_FORMAT,\n MAP_TYPE_FLEET_STYLE,\n MAP_TYPE_TERRAIN,\n ENGINE_TYPE_P2D,\n ENGINE_TYPE_HARP,\n MAP_TYPE_DEFAULT,\n MAP_TYPE_NIGHT,\n MAP_TYPE_SATELLITE,\n} from '../components/constants';\nimport type { MapCredentials, MapType } from './mapTypes';\n\n// https://www.here.com/docs/bundle/raster-tile-api-migration-guide/page/README.html#6-pixels-per-inch-ppi\n// Note: higher PPI image tiles result in larger label size and show more label on the map\n// HERE Raster Tile API v3: 100, 200, 200 or 400, 400\nexport const getPPI = () => (window.devicePixelRatio >= 1.7 ? 200 : 100);\n\n// Even if webgl is enabled, some base layer cannot be rendered in HARP properly\nexport const isVectorBased = (enableWebGL: boolean, baseLayer: MapType) =>\n enableWebGL && baseLayer !== MAP_TYPE_TERRAIN && baseLayer !== MAP_TYPE_FLEET_STYLE;\n\n// See Migration guide: https://developer.here.com/documentation/maps/3.1.37.0/dev_guide/topics/migration.html\nexport const getPlatform = (credentials: MapCredentials) =>\n // Initiate and authenticate your connection to the HERE platform:\n new H.service.Platform({\n apikey: credentials.apikey ?? '',\n useHTTPS: location.protocol === 'https:',\n });\n\nexport const getBaseTileLayer = <T>(\n rasterTileService: T,\n engineType: H.Map.EngineType,\n minZoom: number,\n maxZoom: number\n) => {\n // @ts-expect-error-next-line \"H.service.rasterTile\" is newer that the types\n const rasterTileProvider = new H.service.rasterTile.Provider(rasterTileService, {\n engineType,\n tileSize: 512,\n });\n\n const rasterTileLayer = new H.map.layer.TileLayer(rasterTileProvider);\n\n // force the tile layer minimum zoom (furthest away possible) and maximum zoom (nearest) to the desired level\n rasterTileLayer.setMin(minZoom);\n rasterTileLayer.setMax(maxZoom);\n\n return rasterTileLayer;\n};\n\nexport const getBaseRasterTileService = (\n platform: H.service.Platform,\n style: string,\n features: string,\n lang: string\n) => {\n // @ts-expect-error-next-line \"getRasterTileService\" is newer that the types\n return platform?.getRasterTileService({\n format: DEFAULT_RASTER_LAYER_FORMAT,\n queryParams: {\n // https://www.here.com/docs/bundle/raster-tile-api-migration-guide/page/README.html#5-language\n lang,\n ppi: getPPI(),\n style,\n features,\n },\n });\n};\n\nexport const getEngineType = (baseLayerName: string, enableWebGL: boolean) => {\n switch (baseLayerName) {\n case MAP_TYPE_FLEET_STYLE:\n case MAP_TYPE_TERRAIN:\n return ENGINE_TYPE_P2D;\n default:\n return enableWebGL ? ENGINE_TYPE_HARP : ENGINE_TYPE_P2D;\n }\n};\n\nexport type BaseLayer = {\n baseLayerName: string;\n defaultLayers: H.service.DefaultLayers;\n enableWebGL: boolean;\n platform: H.service.Platform;\n engineType: H.Map.EngineType;\n language: string;\n vehicleRestrictions: boolean;\n minZoom: number;\n maxZoom: number;\n};\n\nexport type BaseLayerResponse = { baseLayer: H.map.layer.Layer; overlayLayer?: H.map.layer.Layer };\n\nexport const getBaseLayer = async ({\n baseLayerName,\n defaultLayers,\n enableWebGL,\n platform,\n engineType,\n language,\n minZoom,\n maxZoom,\n}: BaseLayer): Promise<BaseLayerResponse> => {\n const restriction = 'disabled'; // vehicleRestrictions ? 'active_and_inactive' : 'disabled';\n const features = `pois:all,environmental_zones:all,congestion_zones:all,vehicle_restrictions:${restriction}`;\n\n if (enableWebGL && baseLayerName === MAP_TYPE_DEFAULT) {\n defaultLayers?.vector.normal.map.setMin(minZoom);\n defaultLayers?.vector.normal.map.setMax(maxZoom);\n\n return {\n baseLayer: defaultLayers?.vector.normal.map,\n };\n }\n switch (baseLayerName) {\n case MAP_TYPE_SATELLITE: {\n if (enableWebGL) {\n // This is a workaround for setting the min and max zoom limit for satellite map\n // since the setMin/setMax cannot be set on the \"defaultLayers.hybrid.liteday.raster\".\n // The HERE support suggested to create a hybrid layer for that and set the zoom limits\n // on the two layers.\n const hybridStyleConfig = {\n base: {\n style: 'oslo',\n scheme: 'hybrid.day',\n },\n };\n\n // This method creates hybrid map layers. A hybrid map consists of raster satellite base layer and vector layers on top.\n // Layers created by this method can be used only when the Map is instantiated with H.Map.EngineType.HARP engineType.\n // See https://www.here.com/docs/bundle/maps-api-for-javascript-api-reference/page/H.service.Platform_4.html#createHybridLayers\n // @ts-expect-error-next-line\n await platform.createHybridLayers(\n hybridStyleConfig,\n // biome-ignore lint/suspicious/noExplicitAny: whatever layer type\n (layers: any) => {\n layers.raster.setMin(minZoom);\n layers.raster.setMax(maxZoom);\n\n layers.vector.setMin(minZoom);\n layers.vector.setMax(maxZoom);\n\n return {\n baseLayer: layers.raster,\n overlayLayer: layers.vector,\n };\n },\n console.error\n );\n }\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'explore.satellite.day', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n case MAP_TYPE_TERRAIN: {\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'topo.day', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n case MAP_TYPE_FLEET_STYLE: {\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'logistics.day', features, language),\n ENGINE_TYPE_P2D,\n minZoom,\n maxZoom\n ),\n };\n }\n case MAP_TYPE_NIGHT: {\n if (enableWebGL) {\n // @ts-expect-error-next-line \"setMin\" is working on \"vector.normal.mapnight\"\n defaultLayers?.vector.normal.mapnight.setMin(minZoom);\n // @ts-expect-error-next-line \"setMax\" is working on \"vector.normal.mapnight\"\n defaultLayers?.vector.normal.mapnight.setMax(maxZoom);\n\n return {\n // @ts-expect-error-next-line \"vector.normal.mapnight\" is newer than the types\n baseLayer: defaultLayers.vector.normal.mapnight,\n };\n }\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'explore.night', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n default: {\n // As a replacement for \"defaultLayers?.raster.normal.map\" which uses the old and deprecated\n // H.service.MapTileService, we use the Raster Tile Service v3 instead\n return {\n baseLayer: getBaseTileLayer(\n getBaseRasterTileService(platform, 'explore.day', features, language),\n engineType,\n minZoom,\n maxZoom\n ),\n };\n }\n }\n};\n"],"names":["getPPI","isVectorBased","enableWebGL","baseLayer","MAP_TYPE_TERRAIN","MAP_TYPE_FLEET_STYLE","getPlatform","credentials","getBaseTileLayer","rasterTileService","engineType","minZoom","maxZoom","rasterTileProvider","rasterTileLayer","getBaseRasterTileService","platform","style","features","lang","DEFAULT_RASTER_LAYER_FORMAT","getEngineType","baseLayerName","ENGINE_TYPE_P2D","ENGINE_TYPE_HARP","getBaseLayer","defaultLayers","language","MAP_TYPE_DEFAULT","MAP_TYPE_SATELLITE","hybridStyleConfig","layers","MAP_TYPE_NIGHT"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as r, jsxs as l } from "react/jsx-runtime";
2
- import o from "classnames";
2
+ import o from "../../utils/classNames.js";
3
3
  import { markerColorMapping as v } from "../map/utils/mapTypes.js";
4
4
  const g = (t) => {
5
5
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterMapMarker.js","sources":["../../../src/components/mapMarker/ClusterMapMarker.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport { markerColorMapping, type MarkerColor } from '../map/utils/mapTypes';\n\nexport type ClusterMapMarkerProps = {\n /**\n * Number displayed in the center.\n */\n count?: number;\n\n /**\n * Displayed in the orange badge if more than 0.\n *\n * @default 0\n */\n warningCount?: number;\n\n /**\n * Displayed in the red badge if more than 0.\n *\n * @default 0\n */\n exceptionCount?: number;\n\n /**\n * Defines if marker is selected or not.\n *\n * @default false\n */\n active?: boolean;\n\n /**\n * Defines if marker is clickable or not.\n *\n * @default true\n */\n clickable?: boolean;\n\n /**\n * Defines the color of the marker.\n *\n * Possible values are:\n * - `bg-map-marker-asset`\n * - `bg-map-marker-poi`\n * - `bg-map-marker-geofence`\n * - `bg-map-marker-route`\n * - `bg-map-marker-info`\n * - `bg-map-marker-success`\n * - `bg-map-marker-warning`\n * - `bg-map-marker-danger`\n *\n * @default 'bg-map-marker-asset'\n */\n markerColor?: MarkerColor;\n\n /**\n * Name of a rioglyph icon.\n */\n iconName?: string;\n\n /**\n * Marker cursor\n */\n cursor?: 'cursor-pointer' | 'cursor-grab' | 'cursor-not-allowed';\n};\n\nconst ClusterMapMarker = (props: ClusterMapMarkerProps) => {\n const {\n count,\n exceptionCount = 0,\n markerColor = 'bg-map-marker-asset',\n warningCount = 0,\n active = false,\n clickable = true,\n iconName,\n cursor = 'cursor-pointer',\n } = props;\n\n const clusterClasses = classNames('rio-map-cluster-circle', active && 'active', cursor);\n const classes = classNames(\n active && 'active',\n 'rio-map-marker',\n 'rio-map-marker-center-center',\n !clickable && 'not-clickable'\n );\n\n const markerBackgroundColor = `var(${markerColorMapping[markerColor]})`;\n\n return (\n <div\n className={classes}\n style={{ color: markerBackgroundColor }}\n data-marker-type={markerColor.replace('bg-', 'cluster-')}\n >\n <div className='rio-map-marker-translate'>\n <div className='rio-map-cluster'>\n <div className={clusterClasses}>\n <div className='rio-map-cluster-content'>\n {iconName && (\n <span className='rio-map-icon'>\n <span className={`rioglyph rioglyph-${iconName}`} />\n </span>\n )}\n <div className='rio-map-count'>{count}</div>\n </div>\n </div>\n {exceptionCount > 0 && <div className='rio-map-bubble exception'>{exceptionCount}</div>}\n {warningCount > 0 && <div className='rio-map-bubble warning'>{warningCount}</div>}\n </div>\n </div>\n </div>\n );\n};\n\nexport default ClusterMapMarker;\n"],"names":["ClusterMapMarker","props","count","exceptionCount","markerColor","warningCount","active","clickable","iconName","cursor","clusterClasses","classNames","classes","markerBackgroundColor","markerColorMapping","jsx","jsxs"],"mappings":";;;AAkEA,MAAMA,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,OAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,aAAAC,IAAc;AAAA,IACd,cAAAC,IAAe;AAAA,IACf,QAAAC,IAAS;AAAA,IACT,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,EAAA,IACTR,GAEES,IAAiBC,EAAW,0BAA0BL,KAAU,UAAUG,CAAM,GAChFG,IAAUD;AAAA,IACZL,KAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,CAACC,KAAa;AAAA,EAAA,GAGZM,IAAwB,OAAOC,EAAmBV,CAAW,CAAC;AAEpE,SACI,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWH;AAAA,MACX,OAAO,EAAE,OAAOC,EAAA;AAAA,MAChB,oBAAkBT,EAAY,QAAQ,OAAO,UAAU;AAAA,MAEvD,4BAAC,OAAA,EAAI,WAAU,4BACX,UAAA,gBAAAY,EAAC,OAAA,EAAI,WAAU,mBACX,UAAA;AAAA,QAAA,gBAAAD,EAAC,SAAI,WAAWL,GACZ,UAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,2BACV,UAAA;AAAA,UAAAR,KACG,gBAAAO,EAAC,QAAA,EAAK,WAAU,gBACZ,UAAA,gBAAAA,EAAC,UAAK,WAAW,qBAAqBP,CAAQ,GAAA,CAAI,GACtD;AAAA,UAEJ,gBAAAO,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAAb,EAAA,CAAM;AAAA,QAAA,EAAA,CAC1C,EAAA,CACJ;AAAA,QACCC,IAAiB,KAAK,gBAAAY,EAAC,OAAA,EAAI,WAAU,4BAA4B,UAAAZ,GAAe;AAAA,QAChFE,IAAe,KAAK,gBAAAU,EAAC,OAAA,EAAI,WAAU,0BAA0B,UAAAV,EAAA,CAAa;AAAA,MAAA,EAAA,CAC/E,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"ClusterMapMarker.js","sources":["../../../src/components/mapMarker/ClusterMapMarker.tsx"],"sourcesContent":["import classNames from '../../utils/classNames';\nimport { markerColorMapping, type MarkerColor } from '../map/utils/mapTypes';\n\nexport type ClusterMapMarkerProps = {\n /**\n * Number displayed in the center.\n */\n count?: number;\n\n /**\n * Displayed in the orange badge if more than 0.\n *\n * @default 0\n */\n warningCount?: number;\n\n /**\n * Displayed in the red badge if more than 0.\n *\n * @default 0\n */\n exceptionCount?: number;\n\n /**\n * Defines if marker is selected or not.\n *\n * @default false\n */\n active?: boolean;\n\n /**\n * Defines if marker is clickable or not.\n *\n * @default true\n */\n clickable?: boolean;\n\n /**\n * Defines the color of the marker.\n *\n * Possible values are:\n * - `bg-map-marker-asset`\n * - `bg-map-marker-poi`\n * - `bg-map-marker-geofence`\n * - `bg-map-marker-route`\n * - `bg-map-marker-info`\n * - `bg-map-marker-success`\n * - `bg-map-marker-warning`\n * - `bg-map-marker-danger`\n *\n * @default 'bg-map-marker-asset'\n */\n markerColor?: MarkerColor;\n\n /**\n * Name of a rioglyph icon.\n */\n iconName?: string;\n\n /**\n * Marker cursor\n */\n cursor?: 'cursor-pointer' | 'cursor-grab' | 'cursor-not-allowed';\n};\n\nconst ClusterMapMarker = (props: ClusterMapMarkerProps) => {\n const {\n count,\n exceptionCount = 0,\n markerColor = 'bg-map-marker-asset',\n warningCount = 0,\n active = false,\n clickable = true,\n iconName,\n cursor = 'cursor-pointer',\n } = props;\n\n const clusterClasses = classNames('rio-map-cluster-circle', active && 'active', cursor);\n const classes = classNames(\n active && 'active',\n 'rio-map-marker',\n 'rio-map-marker-center-center',\n !clickable && 'not-clickable'\n );\n\n const markerBackgroundColor = `var(${markerColorMapping[markerColor]})`;\n\n return (\n <div\n className={classes}\n style={{ color: markerBackgroundColor }}\n data-marker-type={markerColor.replace('bg-', 'cluster-')}\n >\n <div className='rio-map-marker-translate'>\n <div className='rio-map-cluster'>\n <div className={clusterClasses}>\n <div className='rio-map-cluster-content'>\n {iconName && (\n <span className='rio-map-icon'>\n <span className={`rioglyph rioglyph-${iconName}`} />\n </span>\n )}\n <div className='rio-map-count'>{count}</div>\n </div>\n </div>\n {exceptionCount > 0 && <div className='rio-map-bubble exception'>{exceptionCount}</div>}\n {warningCount > 0 && <div className='rio-map-bubble warning'>{warningCount}</div>}\n </div>\n </div>\n </div>\n );\n};\n\nexport default ClusterMapMarker;\n"],"names":["ClusterMapMarker","props","count","exceptionCount","markerColor","warningCount","active","clickable","iconName","cursor","clusterClasses","classNames","classes","markerBackgroundColor","markerColorMapping","jsx","jsxs"],"mappings":";;;AAiEA,MAAMA,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,OAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,aAAAC,IAAc;AAAA,IACd,cAAAC,IAAe;AAAA,IACf,QAAAC,IAAS;AAAA,IACT,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,EAAA,IACTR,GAEES,IAAiBC,EAAW,0BAA0BL,KAAU,UAAUG,CAAM,GAChFG,IAAUD;AAAA,IACZL,KAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,CAACC,KAAa;AAAA,EAAA,GAGZM,IAAwB,OAAOC,EAAmBV,CAAW,CAAC;AAEpE,SACI,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAWH;AAAA,MACX,OAAO,EAAE,OAAOC,EAAA;AAAA,MAChB,oBAAkBT,EAAY,QAAQ,OAAO,UAAU;AAAA,MAEvD,4BAAC,OAAA,EAAI,WAAU,4BACX,UAAA,gBAAAY,EAAC,OAAA,EAAI,WAAU,mBACX,UAAA;AAAA,QAAA,gBAAAD,EAAC,SAAI,WAAWL,GACZ,UAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,2BACV,UAAA;AAAA,UAAAR,KACG,gBAAAO,EAAC,QAAA,EAAK,WAAU,gBACZ,UAAA,gBAAAA,EAAC,UAAK,WAAW,qBAAqBP,CAAQ,GAAA,CAAI,GACtD;AAAA,UAEJ,gBAAAO,EAAC,OAAA,EAAI,WAAU,iBAAiB,UAAAb,EAAA,CAAM;AAAA,QAAA,EAAA,CAC1C,EAAA,CACJ;AAAA,QACCC,IAAiB,KAAK,gBAAAY,EAAC,OAAA,EAAI,WAAU,4BAA4B,UAAAZ,GAAe;AAAA,QAChFE,IAAe,KAAK,gBAAAU,EAAC,OAAA,EAAI,WAAU,0BAA0B,UAAAV,EAAA,CAAa;AAAA,MAAA,EAAA,CAC/E,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as a, jsxs as l, Fragment as S } from "react/jsx-runtime";
2
- import c from "classnames";
2
+ import c from "../../utils/classNames.js";
3
3
  import { markerColorMapping as j } from "../map/utils/mapTypes.js";
4
4
  const B = 60, E = (s) => {
5
5
  const { moving: o, bearing: r, stateIconName: e } = s;
@@ -1 +1 @@
1
- {"version":3,"file":"SingleMapMarker.js","sources":["../../../src/components/mapMarker/SingleMapMarker.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { markerColorMapping, type MarkerColor } from '../map/utils/mapTypes';\n\nconst DEFAULT_BEARING = 60;\n\nconst MapStateIndicator = (props: { moving: boolean; bearing: number; stateIconName?: string }) => {\n const { moving, bearing, stateIconName } = props;\n\n if (!moving && !stateIconName) {\n return null;\n }\n\n const iconClassName = classNames('rioglyph', `rioglyph-${stateIconName || 'direction'}`);\n\n const style = stateIconName ? {} : { transform: `rotate(${bearing}deg)` };\n\n return (\n <div className={`rio-map-icon rio-map-marker-state ${stateIconName ? '' : 'rio-map-direction'}`}>\n <span className={iconClassName} style={style} />\n </div>\n );\n};\n\nconst getIcons = (iconNames: string[] = []) =>\n iconNames.map((name, index) => (\n <div key={`rio-map-icon-${name}-${index}`} className='rio-map-icon'>\n <span className={`rioglyph rioglyph-${name}`} />\n </div>\n ));\n\nexport type SingleMapMarkerProps = ComponentProps<'div'> & {\n /**\n * Defines the rotation of the arrow in deg.\n *\n * @default 60\n */\n bearing?: number;\n\n /**\n * Text for the marker.\n */\n name?: string | ReactNode;\n\n /**\n * Displayed in the orange badge if more than 0.\n *\n * @default 0\n */\n warningCount?: number;\n\n /**\n * Displayed in the red badge if more than 0.\n *\n * @default 0\n */\n exceptionCount?: number;\n\n /**\n * Defines if marker is selected.\n *\n * @default false\n */\n active?: boolean;\n\n /**\n * Defines if marker is clickable or not.\n *\n * @default true\n */\n clickable?: boolean;\n\n /**\n * Defines if marker is fixed and has no centering point.\n *\n * @default false\n */\n fixed?: boolean;\n\n /**\n * Defines whether the direction icon is displayed or not.\n *\n * @default false\n */\n moving?: boolean;\n\n /**\n * Optional icon that is shown in the state indicator and used instead of the moving direction arrow.\n */\n stateIconName?: string;\n\n /**\n * Defines if marker is displayed with pinging animation.\n *\n * @default false\n */\n pinging?: boolean;\n\n /**\n * List of rioglyph icon names.\n */\n iconNames?: string[];\n\n /**\n * Defines the color of the marker.\n *\n * Possible values are:\n * - `bg-map-marker-asset`\n * - `bg-map-marker-poi`\n * - `bg-map-marker-geofence`\n * - `bg-map-marker-route`\n * - `bg-map-marker-info`\n * - `bg-map-marker-success`\n * - `bg-map-marker-warning`\n * - `bg-map-marker-danger`\n * - `bg-map-marker-restrictions`\n *\n * @default 'bg-map-marker-asset'\n */\n markerColor?: MarkerColor;\n\n /**\n * Can be used to add a text-color class to the marker div.\n */\n textColor?: string;\n\n /**\n * Used to control the marker's anchor size.\n *\n * Possible values are:\n * - `md`\n * - `lg`\n *\n * @default 'md'\n */\n anchorSize?: 'md' | 'lg';\n\n /**\n * Whether the marker is only visible on hover.\n *\n * @default false\n */\n markerOnHover?: boolean;\n\n /**\n * Optional icon that is shown on the anchor of the DOM marker.\n * Use this when no marker content is shown.\n */\n anchorIconName?: string;\n\n /**\n * Shows only the anchor without the rest of the marker.\n */\n anchorOnly?: boolean;\n\n /**\n * Marker cursor\n */\n cursor?: 'cursor-pointer' | 'cursor-grab' | 'cursor-not-allowed';\n};\n\nconst SingleMapMarker = (props: SingleMapMarkerProps) => {\n const {\n bearing = DEFAULT_BEARING,\n name,\n warningCount = 0,\n exceptionCount = 0,\n active = false,\n clickable = true,\n fixed = false,\n moving = false,\n pinging = false,\n anchorIconName,\n stateIconName,\n iconNames,\n markerColor = 'bg-map-marker-asset',\n textColor,\n anchorSize,\n markerOnHover = false,\n anchorOnly = !name && !iconNames,\n cursor = 'cursor-pointer',\n className,\n style,\n } = props;\n\n const largeAnchor = anchorSize === 'lg';\n\n const classes = classNames(\n active && 'active',\n 'rio-map-marker',\n 'rio-map-marker-bottom-center',\n !clickable && 'not-clickable',\n className\n );\n\n const anchorClasses = classNames('rio-map-anchor', largeAnchor ? 'rio-map-anchor-lg' : '', cursor);\n\n const singleClasses = classNames(\n 'rio-map-single',\n fixed && 'fixed',\n moving && 'moving',\n textColor,\n markerOnHover && 'visible-on-hover',\n active && 'active',\n pinging && 'pinging',\n typeof name === 'string' && name.length === 1 && 'single-letter',\n cursor\n );\n\n const markerBackgroundColor = `var(${markerColorMapping[markerColor]})`;\n\n return (\n <div\n className={classes}\n style={{ ...style, color: markerBackgroundColor }}\n data-marker-type={markerColor.replace('bg-', 'single-')}\n >\n <div className='rio-map-marker-translate'>\n {!anchorOnly && (\n <>\n <div className={singleClasses}>\n <MapStateIndicator moving={moving} bearing={bearing} stateIconName={stateIconName} />\n {getIcons(iconNames)}\n {name && <div className='rio-map-name'>{name}</div>}\n {exceptionCount > 0 && <div className='rio-map-bubble exception'>{exceptionCount}</div>}\n {warningCount > 0 && <div className='rio-map-bubble warning'>{warningCount}</div>}\n </div>\n <div className='rio-map-anchor-arrow' />\n </>\n )}\n <div className={anchorClasses}>\n {anchorIconName && largeAnchor && <span className={`rioglyph rioglyph-${anchorIconName}`} />}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SingleMapMarker;\n"],"names":["DEFAULT_BEARING","MapStateIndicator","props","moving","bearing","stateIconName","iconClassName","classNames","style","jsx","getIcons","iconNames","name","index","SingleMapMarker","warningCount","exceptionCount","active","clickable","fixed","pinging","anchorIconName","markerColor","textColor","anchorSize","markerOnHover","anchorOnly","cursor","className","largeAnchor","classes","anchorClasses","singleClasses","markerBackgroundColor","markerColorMapping","jsxs","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"SingleMapMarker.js","sources":["../../../src/components/mapMarker/SingleMapMarker.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport { markerColorMapping, type MarkerColor } from '../map/utils/mapTypes';\n\nconst DEFAULT_BEARING = 60;\n\nconst MapStateIndicator = (props: { moving: boolean; bearing: number; stateIconName?: string }) => {\n const { moving, bearing, stateIconName } = props;\n\n if (!moving && !stateIconName) {\n return null;\n }\n\n const iconClassName = classNames('rioglyph', `rioglyph-${stateIconName || 'direction'}`);\n\n const style = stateIconName ? {} : { transform: `rotate(${bearing}deg)` };\n\n return (\n <div className={`rio-map-icon rio-map-marker-state ${stateIconName ? '' : 'rio-map-direction'}`}>\n <span className={iconClassName} style={style} />\n </div>\n );\n};\n\nconst getIcons = (iconNames: string[] = []) =>\n iconNames.map((name, index) => (\n <div key={`rio-map-icon-${name}-${index}`} className='rio-map-icon'>\n <span className={`rioglyph rioglyph-${name}`} />\n </div>\n ));\n\nexport type SingleMapMarkerProps = ComponentProps<'div'> & {\n /**\n * Defines the rotation of the arrow in deg.\n *\n * @default 60\n */\n bearing?: number;\n\n /**\n * Text for the marker.\n */\n name?: string | ReactNode;\n\n /**\n * Displayed in the orange badge if more than 0.\n *\n * @default 0\n */\n warningCount?: number;\n\n /**\n * Displayed in the red badge if more than 0.\n *\n * @default 0\n */\n exceptionCount?: number;\n\n /**\n * Defines if marker is selected.\n *\n * @default false\n */\n active?: boolean;\n\n /**\n * Defines if marker is clickable or not.\n *\n * @default true\n */\n clickable?: boolean;\n\n /**\n * Defines if marker is fixed and has no centering point.\n *\n * @default false\n */\n fixed?: boolean;\n\n /**\n * Defines whether the direction icon is displayed or not.\n *\n * @default false\n */\n moving?: boolean;\n\n /**\n * Optional icon that is shown in the state indicator and used instead of the moving direction arrow.\n */\n stateIconName?: string;\n\n /**\n * Defines if marker is displayed with pinging animation.\n *\n * @default false\n */\n pinging?: boolean;\n\n /**\n * List of rioglyph icon names.\n */\n iconNames?: string[];\n\n /**\n * Defines the color of the marker.\n *\n * Possible values are:\n * - `bg-map-marker-asset`\n * - `bg-map-marker-poi`\n * - `bg-map-marker-geofence`\n * - `bg-map-marker-route`\n * - `bg-map-marker-info`\n * - `bg-map-marker-success`\n * - `bg-map-marker-warning`\n * - `bg-map-marker-danger`\n * - `bg-map-marker-restrictions`\n *\n * @default 'bg-map-marker-asset'\n */\n markerColor?: MarkerColor;\n\n /**\n * Can be used to add a text-color class to the marker div.\n */\n textColor?: string;\n\n /**\n * Used to control the marker's anchor size.\n *\n * Possible values are:\n * - `md`\n * - `lg`\n *\n * @default 'md'\n */\n anchorSize?: 'md' | 'lg';\n\n /**\n * Whether the marker is only visible on hover.\n *\n * @default false\n */\n markerOnHover?: boolean;\n\n /**\n * Optional icon that is shown on the anchor of the DOM marker.\n * Use this when no marker content is shown.\n */\n anchorIconName?: string;\n\n /**\n * Shows only the anchor without the rest of the marker.\n */\n anchorOnly?: boolean;\n\n /**\n * Marker cursor\n */\n cursor?: 'cursor-pointer' | 'cursor-grab' | 'cursor-not-allowed';\n};\n\nconst SingleMapMarker = (props: SingleMapMarkerProps) => {\n const {\n bearing = DEFAULT_BEARING,\n name,\n warningCount = 0,\n exceptionCount = 0,\n active = false,\n clickable = true,\n fixed = false,\n moving = false,\n pinging = false,\n anchorIconName,\n stateIconName,\n iconNames,\n markerColor = 'bg-map-marker-asset',\n textColor,\n anchorSize,\n markerOnHover = false,\n anchorOnly = !name && !iconNames,\n cursor = 'cursor-pointer',\n className,\n style,\n } = props;\n\n const largeAnchor = anchorSize === 'lg';\n\n const classes = classNames(\n active && 'active',\n 'rio-map-marker',\n 'rio-map-marker-bottom-center',\n !clickable && 'not-clickable',\n className\n );\n\n const anchorClasses = classNames('rio-map-anchor', largeAnchor ? 'rio-map-anchor-lg' : '', cursor);\n\n const singleClasses = classNames(\n 'rio-map-single',\n fixed && 'fixed',\n moving && 'moving',\n textColor,\n markerOnHover && 'visible-on-hover',\n active && 'active',\n pinging && 'pinging',\n typeof name === 'string' && name.length === 1 && 'single-letter',\n cursor\n );\n\n const markerBackgroundColor = `var(${markerColorMapping[markerColor]})`;\n\n return (\n <div\n className={classes}\n style={{ ...style, color: markerBackgroundColor }}\n data-marker-type={markerColor.replace('bg-', 'single-')}\n >\n <div className='rio-map-marker-translate'>\n {!anchorOnly && (\n <>\n <div className={singleClasses}>\n <MapStateIndicator moving={moving} bearing={bearing} stateIconName={stateIconName} />\n {getIcons(iconNames)}\n {name && <div className='rio-map-name'>{name}</div>}\n {exceptionCount > 0 && <div className='rio-map-bubble exception'>{exceptionCount}</div>}\n {warningCount > 0 && <div className='rio-map-bubble warning'>{warningCount}</div>}\n </div>\n <div className='rio-map-anchor-arrow' />\n </>\n )}\n <div className={anchorClasses}>\n {anchorIconName && largeAnchor && <span className={`rioglyph rioglyph-${anchorIconName}`} />}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SingleMapMarker;\n"],"names":["DEFAULT_BEARING","MapStateIndicator","props","moving","bearing","stateIconName","iconClassName","classNames","style","jsx","getIcons","iconNames","name","index","SingleMapMarker","warningCount","exceptionCount","active","clickable","fixed","pinging","anchorIconName","markerColor","textColor","anchorSize","markerOnHover","anchorOnly","cursor","className","largeAnchor","classes","anchorClasses","singleClasses","markerBackgroundColor","markerColorMapping","jsxs","Fragment"],"mappings":"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"}