@rio-cloud/rio-uikit 0.16.1 → 0.16.2-beta.10

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 (306) hide show
  1. package/.DS_Store +0 -0
  2. package/ColorScheme.d.ts +4 -0
  3. package/ColorScheme.js +2 -0
  4. package/Colors.js +1 -1
  5. package/TruckLayer.js +1 -1
  6. package/components/.DS_Store +0 -0
  7. package/components/applicationHeader/AppMenu.js +6 -3
  8. package/components/applicationHeader/AppMenuDropdown.js +6 -2
  9. package/components/applicationHeader/ApplicationHeader.js +10 -5
  10. package/components/applicationHeader/MobileAppMenu.js +8 -4
  11. package/components/assetTree/Tree.js +1 -1
  12. package/components/autosuggest/AutoSuggest.js +2 -2
  13. package/components/charts/chartHelper.js +1 -1
  14. package/components/clearableInput/ClearableInput.js +2 -1
  15. package/components/datepicker/DatePicker.js +8 -4
  16. package/components/filepicker/FilePicker.js +5 -4
  17. package/components/map/.DS_Store +0 -0
  18. package/components/map/assets/icon_map_settings_maptype_night_active.svg +12 -0
  19. package/components/map/assets/icon_map_settings_maptype_night_inactive.svg +12 -0
  20. package/components/map/components/.DS_Store +0 -0
  21. package/components/map/components/Map.js +167 -140
  22. package/components/map/components/constants.js +1 -0
  23. package/components/map/components/features/Route.js +6 -7
  24. package/components/map/components/features/basics/Polyline.js +10 -5
  25. package/components/map/components/features/layers/RoadRestrictionLayer.js +27 -0
  26. package/components/map/components/features/layers/TrafficLayer.js +19 -5
  27. package/components/map/components/features/layers/baselayers/DefaultRasterLayer.js +19 -0
  28. package/components/map/components/features/layers/baselayers/DefaultVectorLayer.js +15 -0
  29. package/components/map/components/features/layers/baselayers/FleetStyleLayer.js +13 -17
  30. package/components/map/components/features/layers/baselayers/NightLayer.js +17 -0
  31. package/components/map/components/features/layers/baselayers/SatelliteLayer.js +13 -17
  32. package/components/map/components/features/layers/baselayers/TerrainLayer.js +13 -17
  33. package/components/map/components/features/layers/baselayers/useBaseLayer.js +53 -0
  34. package/components/map/components/features/settings/builtinSettings/MapClusterSettings.js +1 -1
  35. package/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +9 -3
  36. package/components/map/components/mapUtils.js +44 -8
  37. package/components/map/icons/MapIcon.js +64 -0
  38. package/components/mapMarker/ClusterMapMarker.js +2 -2
  39. package/components/mapMarker/SingleMapMarker.js +8 -2
  40. package/components/numberControl/NumberControl.js +34 -11
  41. package/components/numberInput/NumberInput.js +52 -50
  42. package/components/sidebars/Sidebar.js +2 -2
  43. package/hooks/useDarkMode.js +30 -0
  44. package/hooks/useElementSize.js +1 -1
  45. package/hooks/useFullscreen.js +37 -41
  46. package/hooks/useHereMap.ts +23 -0
  47. package/hooks/useMutationObserver.js +38 -0
  48. package/hooks/useScripts.ts +52 -0
  49. package/hooks/useScrollPosition.js +72 -0
  50. package/index.js +6 -1
  51. package/lib/.DS_Store +0 -0
  52. package/lib/es/.DS_Store +0 -0
  53. package/lib/es/ColorScheme.d.ts +4 -0
  54. package/lib/es/ColorScheme.js +18 -0
  55. package/lib/es/Colors.js +1 -1
  56. package/lib/es/TruckLayer.js +2 -2
  57. package/lib/es/components/.DS_Store +0 -0
  58. package/lib/es/components/applicationHeader/AppMenu.js +6 -3
  59. package/lib/es/components/applicationHeader/AppMenuDropdown.js +6 -2
  60. package/lib/es/components/applicationHeader/ApplicationHeader.js +10 -5
  61. package/lib/es/components/applicationHeader/MobileAppMenu.js +8 -4
  62. package/lib/es/components/assetTree/Tree.js +1 -1
  63. package/lib/es/components/autosuggest/AutoSuggest.js +2 -2
  64. package/lib/es/components/charts/chartHelper.js +1 -1
  65. package/lib/es/components/clearableInput/ClearableInput.js +2 -1
  66. package/lib/es/components/datepicker/DatePicker.js +7 -3
  67. package/lib/es/components/filepicker/FilePicker.js +5 -4
  68. package/lib/es/components/map/assets/icon_map_settings_maptype_night_active.svg +12 -0
  69. package/lib/es/components/map/assets/icon_map_settings_maptype_night_inactive.svg +12 -0
  70. package/lib/es/components/map/components/Map.js +165 -135
  71. package/lib/es/components/map/components/constants.js +3 -1
  72. package/lib/es/components/map/components/features/Route.js +6 -7
  73. package/lib/es/components/map/components/features/basics/Polyline.js +10 -7
  74. package/lib/es/components/map/components/features/layers/RoadRestrictionLayer.js +35 -0
  75. package/lib/es/components/map/components/features/layers/TrafficLayer.js +18 -5
  76. package/lib/es/components/map/components/features/layers/baselayers/DefaultRasterLayer.js +25 -0
  77. package/lib/es/components/map/components/features/layers/baselayers/DefaultVectorLayer.js +22 -0
  78. package/lib/es/components/map/components/features/layers/baselayers/FleetStyleLayer.js +12 -17
  79. package/lib/es/components/map/components/features/layers/baselayers/NightLayer.js +23 -0
  80. package/lib/es/components/map/components/features/layers/baselayers/SatelliteLayer.js +12 -17
  81. package/lib/es/components/map/components/features/layers/baselayers/TerrainLayer.js +12 -17
  82. package/lib/es/components/map/components/features/layers/baselayers/useBaseLayer.js +61 -0
  83. package/lib/es/components/map/components/features/settings/builtinSettings/MapClusterSettings.js +1 -1
  84. package/lib/es/components/map/components/features/settings/builtinSettings/MapTypeSettings.js +7 -1
  85. package/lib/es/components/map/components/mapUtils.js +44 -10
  86. package/lib/es/components/map/icons/MapIcon.js +67 -1
  87. package/lib/es/components/mapMarker/ClusterMapMarker.js +2 -2
  88. package/lib/es/components/mapMarker/SingleMapMarker.js +8 -2
  89. package/lib/es/components/numberControl/NumberControl.js +33 -10
  90. package/lib/es/components/numberInput/NumberInput.js +51 -50
  91. package/lib/es/components/sidebars/Sidebar.js +2 -2
  92. package/lib/es/hooks/useDarkMode.js +38 -0
  93. package/lib/es/hooks/useElementSize.js +1 -1
  94. package/lib/es/hooks/useFullscreen.js +37 -41
  95. package/lib/es/hooks/useHereMap.ts +23 -0
  96. package/lib/es/hooks/useMutationObserver.js +46 -0
  97. package/lib/es/hooks/useScripts.ts +52 -0
  98. package/lib/es/hooks/useScrollPosition.js +80 -0
  99. package/lib/es/index.js +40 -1
  100. package/lib/es/mapIndex.js +2 -2
  101. package/lib/es/styles/.DS_Store +0 -0
  102. package/lib/es/styles/components/Activity.less +9 -10
  103. package/lib/es/styles/components/ApplicationHeader.less +24 -29
  104. package/lib/es/styles/components/ApplicationLayout.less +7 -7
  105. package/lib/es/styles/components/AssetTree.less +30 -28
  106. package/lib/es/styles/components/AutoSuggest.less +2 -2
  107. package/lib/es/styles/components/BottomSheet.less +1 -2
  108. package/lib/es/styles/components/Carousel.less +13 -9
  109. package/lib/es/styles/components/Checkbox.less +15 -16
  110. package/lib/es/styles/components/ClearableInput.less +3 -3
  111. package/lib/es/styles/components/Counter.less +12 -12
  112. package/lib/es/styles/components/DataTabs.less +2 -2
  113. package/lib/es/styles/components/DatePicker.less +27 -27
  114. package/lib/es/styles/components/Dialog.less +15 -11
  115. package/lib/es/styles/components/Dropdown.less +11 -11
  116. package/lib/es/styles/components/Expander.less +7 -7
  117. package/lib/es/styles/components/ListMenu.less +8 -8
  118. package/lib/es/styles/components/MapHere.less +3 -2
  119. package/lib/es/styles/components/MapMarker.less +16 -17
  120. package/lib/es/styles/components/MapSettings.less +5 -5
  121. package/lib/es/styles/components/NoData.less +1 -1
  122. package/lib/es/styles/components/Notification.less +12 -12
  123. package/lib/es/styles/components/RadioButton.less +11 -12
  124. package/lib/es/styles/components/Resizer.less +1 -1
  125. package/lib/es/styles/components/Select.less +16 -26
  126. package/lib/es/styles/components/Sidebar.less +29 -21
  127. package/lib/es/styles/components/Slider.less +18 -18
  128. package/lib/es/styles/components/Spinner.less +6 -6
  129. package/lib/es/styles/components/StatsWidget.less +5 -5
  130. package/lib/es/styles/components/SteppedProgressBar.less +32 -29
  131. package/lib/es/styles/components/SupportMarker.less +1 -1
  132. package/lib/es/styles/components/Switch.less +8 -8
  133. package/lib/es/styles/components/TableSettingsDialog.less +7 -7
  134. package/lib/es/styles/components/TableToolbar.less +1 -1
  135. package/lib/es/styles/components/Tag.less +10 -10
  136. package/lib/es/styles/components/Timeline.less +3 -3
  137. package/lib/es/styles/components/Tooltip.less +10 -10
  138. package/lib/es/styles/design/badges.less +10 -10
  139. package/lib/es/styles/design/border.less +1 -1
  140. package/lib/es/styles/design/breadcrumbs.less +2 -2
  141. package/lib/es/styles/design/button-groups.less +25 -1
  142. package/lib/es/styles/design/buttons.less +53 -109
  143. package/lib/es/styles/design/callouts.less +3 -3
  144. package/lib/es/styles/design/code.less +4 -6
  145. package/lib/es/styles/design/colors.less +20 -20
  146. package/lib/es/styles/design/form-input-groups.less +4 -4
  147. package/lib/es/styles/design/form-inputs.less +33 -31
  148. package/lib/es/styles/design/images.less +2 -2
  149. package/lib/es/styles/design/labels.less +11 -11
  150. package/lib/es/styles/design/list-group.less +14 -12
  151. package/lib/es/styles/design/navs.less +27 -27
  152. package/lib/es/styles/design/normalize.less +0 -9
  153. package/lib/es/styles/design/pagination.less +10 -10
  154. package/lib/es/styles/design/panels.less +10 -10
  155. package/lib/es/styles/design/popovers.less +8 -8
  156. package/lib/es/styles/design/progress-bars.less +8 -8
  157. package/lib/es/styles/design/shadows.less +14 -7
  158. package/lib/es/styles/design/tables.less +68 -106
  159. package/lib/es/styles/design/text.less +5 -19
  160. package/lib/es/styles/design/theme.less +10 -10
  161. package/lib/es/styles/design/thumbnails.less +2 -2
  162. package/lib/es/styles/design/type.less +4 -4
  163. package/lib/es/styles/design/wells.less +1 -1
  164. package/lib/es/styles/mapping/color-map.less +76 -75
  165. package/lib/es/styles/mixins/_imports.less +14 -0
  166. package/lib/es/styles/mixins/buttons.less +24 -56
  167. package/lib/es/styles/mixins/forms.less +19 -55
  168. package/lib/es/styles/mixins/hsl.less +19 -0
  169. package/lib/es/styles/mixins/panels.less +2 -2
  170. package/lib/es/styles/print/print.less +7 -7
  171. package/lib/es/styles/rio-uikit-core.less +2 -2
  172. package/lib/es/styles/rio-uikit-print-utilities.less +2 -2
  173. package/lib/es/styles/rio-uikit-responsive-utilities.less +2 -2
  174. package/lib/es/styles/variables/_index.less +196 -0
  175. package/lib/es/styles/variables/colors.json +67 -0
  176. package/lib/es/styles/variables/concated_css_variables.less +66 -0
  177. package/lib/es/styles/variables/dark_colors.less +88 -0
  178. package/lib/es/styles/variables/dark_css_variables.less +28 -0
  179. package/lib/es/styles/variables/dark_css_variables_map.less +96 -0
  180. package/lib/es/styles/variables/light_colors.less +92 -0
  181. package/lib/es/styles/variables/light_css_variables.less +17 -0
  182. package/lib/es/styles/variables/light_css_variables_map.less +100 -0
  183. package/lib/es/styles/variables/screens.less +7 -0
  184. package/lib/es/styles/variables/text.less +23 -0
  185. package/lib/es/themes/.DS_Store +0 -0
  186. package/lib/es/themes/BuyButton/styles/rio-buyButton.less +13 -8
  187. package/lib/es/themes/MAN/styles/man-uikit.less +3 -0
  188. package/lib/es/themes/SCANIA/styles/scania-uikit.less +3 -0
  189. package/lib/es/themes/Volkswagen/styles/vw-uikit.less +21 -30
  190. package/lib/es/themes/Website/styles/rio-website.less +154 -124
  191. package/lib/es/themes/Xmas/styles/rio-xmas.less +59 -29
  192. package/lib/es/types.ts +27 -5
  193. package/lib/es/useDarkMode.d.ts +4 -0
  194. package/lib/es/useDarkMode.js +13 -0
  195. package/lib/es/useMutationObserver.d.ts +4 -0
  196. package/lib/es/useMutationObserver.js +13 -0
  197. package/lib/es/useScrollPosition.d.ts +4 -0
  198. package/lib/es/useScrollPosition.js +13 -0
  199. package/lib/es/utils/colorScheme.js +69 -0
  200. package/lib/es/utils/init.js +34 -34
  201. package/lib/es/version.json +1 -1
  202. package/mapIndex.js +1 -1
  203. package/package.json +34 -33
  204. package/styles/.DS_Store +0 -0
  205. package/styles/components/Activity.less +9 -10
  206. package/styles/components/ApplicationHeader.less +24 -29
  207. package/styles/components/ApplicationLayout.less +7 -7
  208. package/styles/components/AssetTree.less +30 -28
  209. package/styles/components/AutoSuggest.less +2 -2
  210. package/styles/components/BottomSheet.less +1 -2
  211. package/styles/components/Carousel.less +13 -9
  212. package/styles/components/Checkbox.less +15 -16
  213. package/styles/components/ClearableInput.less +3 -3
  214. package/styles/components/Counter.less +12 -12
  215. package/styles/components/DataTabs.less +2 -2
  216. package/styles/components/DatePicker.less +27 -27
  217. package/styles/components/Dialog.less +15 -11
  218. package/styles/components/Dropdown.less +11 -11
  219. package/styles/components/Expander.less +7 -7
  220. package/styles/components/ListMenu.less +8 -8
  221. package/styles/components/MapHere.less +3 -2
  222. package/styles/components/MapMarker.less +16 -17
  223. package/styles/components/MapSettings.less +5 -5
  224. package/styles/components/NoData.less +1 -1
  225. package/styles/components/Notification.less +12 -12
  226. package/styles/components/RadioButton.less +11 -12
  227. package/styles/components/Resizer.less +1 -1
  228. package/styles/components/Select.less +16 -26
  229. package/styles/components/Sidebar.less +29 -21
  230. package/styles/components/Slider.less +18 -18
  231. package/styles/components/Spinner.less +6 -6
  232. package/styles/components/StatsWidget.less +5 -5
  233. package/styles/components/SteppedProgressBar.less +32 -29
  234. package/styles/components/SupportMarker.less +1 -1
  235. package/styles/components/Switch.less +8 -8
  236. package/styles/components/TableSettingsDialog.less +7 -7
  237. package/styles/components/TableToolbar.less +1 -1
  238. package/styles/components/Tag.less +10 -10
  239. package/styles/components/Timeline.less +3 -3
  240. package/styles/components/Tooltip.less +10 -10
  241. package/styles/design/badges.less +10 -10
  242. package/styles/design/border.less +1 -1
  243. package/styles/design/breadcrumbs.less +2 -2
  244. package/styles/design/button-groups.less +25 -1
  245. package/styles/design/buttons.less +53 -109
  246. package/styles/design/callouts.less +3 -3
  247. package/styles/design/code.less +4 -6
  248. package/styles/design/colors.less +20 -20
  249. package/styles/design/form-input-groups.less +4 -4
  250. package/styles/design/form-inputs.less +33 -31
  251. package/styles/design/images.less +2 -2
  252. package/styles/design/labels.less +11 -11
  253. package/styles/design/list-group.less +14 -12
  254. package/styles/design/navs.less +27 -27
  255. package/styles/design/normalize.less +0 -9
  256. package/styles/design/pagination.less +10 -10
  257. package/styles/design/panels.less +10 -10
  258. package/styles/design/popovers.less +8 -8
  259. package/styles/design/progress-bars.less +8 -8
  260. package/styles/design/shadows.less +14 -7
  261. package/styles/design/tables.less +68 -106
  262. package/styles/design/text.less +5 -19
  263. package/styles/design/theme.less +10 -10
  264. package/styles/design/thumbnails.less +2 -2
  265. package/styles/design/type.less +4 -4
  266. package/styles/design/wells.less +1 -1
  267. package/styles/mapping/color-map.less +76 -75
  268. package/styles/mixins/_imports.less +14 -0
  269. package/styles/mixins/buttons.less +24 -56
  270. package/styles/mixins/forms.less +19 -55
  271. package/styles/mixins/hsl.less +19 -0
  272. package/styles/mixins/panels.less +2 -2
  273. package/styles/print/print.less +7 -7
  274. package/styles/rio-uikit-core.less +2 -2
  275. package/styles/rio-uikit-print-utilities.less +2 -2
  276. package/styles/rio-uikit-responsive-utilities.less +2 -2
  277. package/styles/variables/_index.less +196 -0
  278. package/styles/variables/colors.json +67 -0
  279. package/styles/variables/concated_css_variables.less +66 -0
  280. package/styles/variables/dark_colors.less +88 -0
  281. package/styles/variables/dark_css_variables.less +28 -0
  282. package/styles/variables/dark_css_variables_map.less +96 -0
  283. package/styles/variables/light_colors.less +92 -0
  284. package/styles/variables/light_css_variables.less +17 -0
  285. package/styles/variables/light_css_variables_map.less +100 -0
  286. package/styles/variables/screens.less +7 -0
  287. package/styles/variables/text.less +23 -0
  288. package/themes/.DS_Store +0 -0
  289. package/themes/BuyButton/styles/rio-buyButton.less +13 -8
  290. package/themes/MAN/styles/man-uikit.less +3 -0
  291. package/themes/SCANIA/styles/scania-uikit.less +3 -0
  292. package/themes/Volkswagen/.DS_Store +0 -0
  293. package/themes/Volkswagen/styles/vw-uikit.less +21 -30
  294. package/themes/Website/.DS_Store +0 -0
  295. package/themes/Website/styles/rio-website.less +154 -124
  296. package/themes/Xmas/styles/rio-xmas.less +59 -29
  297. package/types.ts +27 -5
  298. package/useDarkMode.d.ts +4 -0
  299. package/useDarkMode.js +2 -0
  300. package/useMutationObserver.d.ts +4 -0
  301. package/useMutationObserver.js +2 -0
  302. package/useScrollPosition.d.ts +4 -0
  303. package/useScrollPosition.js +2 -0
  304. package/utils/colorScheme.js +55 -0
  305. package/utils/init.js +34 -34
  306. package/version.json +1 -1
@@ -4,8 +4,6 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  var _PropTypes$shape;
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
- /* eslint-disable no-undef, camelcase */
8
-
9
7
  import React, { useRef, useState, useEffect } from 'react';
10
8
  import PropTypes from 'prop-types';
11
9
  import isFunction from 'lodash/fp/isFunction';
@@ -15,22 +13,45 @@ import throttle from 'lodash/fp/throttle';
15
13
  import mapProps from '../utils/proptypes';
16
14
  import addEventListener from '../../../utils/addEventListener';
17
15
  import '../herePolyfill';
18
- import { MAP_TYPE_DEFAULT, MAP_TYPE_FLEET_STYLE, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_LAYER_INCIDENTS, MAP_LAYER_TRAFFIC, MAP_LAYER_ROAD_RESTRICTIONS, TILE_SIZE, HIGH_RES_PPI } from './constants';
19
- // import MapSettings from './features/old/MapSettings';
16
+ import { MAP_TYPE_DEFAULT, MAP_TYPE_FLEET_STYLE, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_NIGHT, MAP_LAYER_INCIDENTS, MAP_LAYER_TRAFFIC, MAP_LAYER_ROAD_RESTRICTIONS } from './constants';
20
17
  import ZoomButtons from './features/settings/ZoomButtons';
21
18
  import IncidentsLayer from './features/layers/IncidentsLayer';
22
19
  import TrafficLayer from './features/layers/TrafficLayer';
23
- import TruckLayer from './features/layers/TruckLayer';
24
- import DefaultLayer from './features/layers/baselayers/DefaultLayer';
20
+ import RoadRestrictionLayer from './features/layers/RoadRestrictionLayer';
21
+ import DefaultVectorLayer from './features/layers/baselayers/DefaultVectorLayer';
22
+ import DefaultRasterLayer from './features/layers/baselayers/DefaultRasterLayer';
25
23
  import FleetStyleLayer from './features/layers/baselayers/FleetStyleLayer';
26
24
  import SatelliteLayer from './features/layers/baselayers/SatelliteLayer';
27
25
  import TerrainLayer from './features/layers/baselayers/TerrainLayer';
26
+ import NightLayer from './features/layers/baselayers/NightLayer';
27
+ import { getDefaultBaseLayer } from './features/layers/baselayers/useBaseLayer';
28
28
  import { addEventListenerMap, removeEventListenerMap } from '../utils/eventHandling';
29
29
  import { MapContext, MapSettingsContext } from './context';
30
- import { createUtils } from './mapUtils';
31
- export var NO_CREDENTIALS_ERROR_MESSAGE = 'Cannot instantiate PlainMap. Missing credentials property.';
30
+ import { createUtils, getPPI } from './mapUtils';
31
+ import useDarkMode from '../../../hooks/useDarkMode';
32
+ export var NO_CREDENTIALS_ERROR_MESSAGE = 'Cannot instantiate the Map. Missing credentials property.';
32
33
  var RESIZE_THROTTLE = 1100; // 100 more than the ApplicationLayout handler
33
34
 
35
+ // Note: "apikey" used by Here v3.1 whereas "app_id" and "app_code" are used by the 3.0 API
36
+ // The Here API 3.1 works a little different and by default uses WebGL rendering
37
+ // See Migration guide: https://developer.here.com/documentation/maps/3.1.37.0/dev_guide/topics/migration.html
38
+ var getPlatform = function getPlatform(credentials) {
39
+ return new H.service.Platform({
40
+ apikey: credentials.apikey || credentials.api_key,
41
+ app_id: credentials.app_id,
42
+ app_code: credentials.app_code
43
+ });
44
+ };
45
+ var getHereUi = function getHereUi(hereMap, defaultLayers, showScaleBar) {
46
+ var hereUi = H.ui.UI.createDefault(hereMap, defaultLayers);
47
+ if (hereUi) {
48
+ hereUi.getControl('scalebar').setVisibility(showScaleBar);
49
+ hereUi.getControl('scalebar').setAlignment('bottom-left');
50
+ hereUi.getControl('mapsettings').setVisibility(false);
51
+ hereUi.removeControl('zoom');
52
+ }
53
+ return hereUi;
54
+ };
34
55
  var getBounds = function getBounds(boundingBox) {
35
56
  var top = boundingBox.top,
36
57
  left = boundingBox.left,
@@ -38,41 +59,47 @@ var getBounds = function getBounds(boundingBox) {
38
59
  right = boundingBox.right;
39
60
  return new H.geo.Rect(top, left, bottom, right);
40
61
  };
41
- var getLayer = function getLayer(api, layer, language) {
62
+ var getLayer = function getLayer(api, layer, language, useWebGL) {
42
63
  switch (layer) {
43
64
  case MAP_LAYER_TRAFFIC:
44
65
  return /*#__PURE__*/React.createElement(TrafficLayer, {
45
66
  api: api,
46
67
  language: language,
47
68
  key: layer,
48
- layerIndex: 1
69
+ useWebGL: useWebGL
49
70
  });
50
71
  case MAP_LAYER_INCIDENTS:
51
72
  return /*#__PURE__*/React.createElement(IncidentsLayer, {
52
73
  api: api,
53
74
  language: language,
54
- key: layer,
55
- layerIndex: 2
75
+ key: layer
56
76
  });
57
77
  case MAP_LAYER_ROAD_RESTRICTIONS:
58
- return /*#__PURE__*/React.createElement(TruckLayer, {
78
+ return /*#__PURE__*/React.createElement(RoadRestrictionLayer, {
59
79
  api: api,
60
80
  language: language,
61
81
  key: layer,
62
- layerIndex: 3
82
+ useWebGL: useWebGL
63
83
  });
64
84
  default:
65
85
  null;
66
86
  }
67
87
  };
68
- var getBaseLayer = function getBaseLayer(api, baseLayer, language) {
88
+ var getBaseLayer = function getBaseLayer(api, baseLayer, language, useWebGL, darkMode) {
69
89
  switch (baseLayer) {
70
90
  case MAP_TYPE_DEFAULT:
71
- return /*#__PURE__*/React.createElement(DefaultLayer, {
72
- api: api,
73
- language: language,
74
- key: baseLayer
75
- });
91
+ {
92
+ return !darkMode && useWebGL ? /*#__PURE__*/React.createElement(DefaultVectorLayer, {
93
+ api: api,
94
+ language: language,
95
+ key: baseLayer
96
+ }) : /*#__PURE__*/React.createElement(DefaultRasterLayer, {
97
+ api: api,
98
+ language: language,
99
+ key: baseLayer,
100
+ darkMode: darkMode
101
+ });
102
+ }
76
103
  case MAP_TYPE_FLEET_STYLE:
77
104
  return /*#__PURE__*/React.createElement(FleetStyleLayer, {
78
105
  api: api,
@@ -91,11 +118,17 @@ var getBaseLayer = function getBaseLayer(api, baseLayer, language) {
91
118
  language: language,
92
119
  key: baseLayer
93
120
  });
121
+ case MAP_TYPE_NIGHT:
122
+ return /*#__PURE__*/React.createElement(NightLayer, {
123
+ api: api,
124
+ language: language,
125
+ key: baseLayer
126
+ });
94
127
  default:
95
128
  null;
96
129
  }
97
130
  };
98
- var enhanceChildren = function enhanceChildren(children, api) {
131
+ var enrichChildrenWithApi = function enrichChildrenWithApi(children, api) {
99
132
  return React.Children.map(children, function (child) {
100
133
  if (child) {
101
134
  return /*#__PURE__*/React.cloneElement(child, {
@@ -139,7 +172,9 @@ var Map = function Map(props) {
139
172
  onZoomIn = props.onZoomIn,
140
173
  onZoomOut = props.onZoomOut,
141
174
  mapSettingsTooltip = props.mapSettingsTooltip,
142
- mapSettings = props.mapSettings;
175
+ mapSettings = props.mapSettings,
176
+ useWebGL = props.useWebGL,
177
+ darkMode = props.darkMode;
143
178
  var mapRef = useRef(null);
144
179
  var _useState = useState(false),
145
180
  _useState2 = _slicedToArray(_useState, 2),
@@ -147,107 +182,93 @@ var Map = function Map(props) {
147
182
  setMapInitialized = _useState2[1];
148
183
  var _useState3 = useState(),
149
184
  _useState4 = _slicedToArray(_useState3, 2),
150
- herePlatform = _useState4[0],
151
- setHerePlatform = _useState4[1];
152
- var _useState5 = useState(),
185
+ api = _useState4[0],
186
+ setApi = _useState4[1];
187
+ var _useState5 = useState(mapType),
153
188
  _useState6 = _slicedToArray(_useState5, 2),
154
- api = _useState6[0],
155
- setApi = _useState6[1];
156
- var _useState7 = useState(mapType),
189
+ baseLayer = _useState6[0],
190
+ setBaseLayer = _useState6[1];
191
+ var _useState7 = useState(mapLayer),
157
192
  _useState8 = _slicedToArray(_useState7, 2),
158
- baseLayer = _useState8[0],
159
- setBaseLayer = _useState8[1];
160
- var _useState9 = useState(mapLayer),
193
+ activeLayers = _useState8[0],
194
+ setActiveLayers = _useState8[1];
195
+ var _useState9 = useState(externalShowCluster),
161
196
  _useState10 = _slicedToArray(_useState9, 2),
162
- activeLayers = _useState10[0],
163
- setActiveLayers = _useState10[1];
164
- var _useState11 = useState(externalShowCluster),
165
- _useState12 = _slicedToArray(_useState11, 2),
166
- showCluster = _useState12[0],
167
- setShowCluster = _useState12[1];
197
+ showCluster = _useState10[0],
198
+ setShowCluster = _useState10[1];
199
+ var isDarkMode = useDarkMode();
168
200
  useEffect(function () {
169
- if (!herePlatform) {
170
- var platform = new H.service.Platform({
171
- // Note: "apikey" used by Here v3.1 whereas "app_id" and "app_code" are used by the 3.0 API
172
- apikey: credentials.apikey || credentials.api_key,
173
- app_id: credentials.app_id,
174
- app_code: credentials.app_code
175
- });
176
- setHerePlatform(platform);
177
- var defaultLayers = platform.createDefaultLayers({
178
- tileSize: TILE_SIZE,
179
- ppi: window.devicePixelRatio > 1 ? HIGH_RES_PPI : undefined,
180
- lg: language,
181
- lg2: 'en'
182
- });
183
- var bounds = boundingBox && getBounds(boundingBox);
184
- var newHereMap = new H.Map(mapRef.current, defaultLayers.raster.normal.map, {
185
- zoom: zoom,
186
- center: center,
187
- bounds: bounds,
188
- // Removed window.devicePixelRatio || 1 since it was zooming out when devicePixelRatio > 1
189
- pixelRatio: 1,
190
- // need to be set for better performence of legacy map
191
- engineType: H.map.render.RenderEngine.EngineType.P2D
192
- });
201
+ // Toggle night map only if current map type is default
202
+ if (isDarkMode && baseLayer === MAP_TYPE_DEFAULT) {
203
+ setBaseLayer(MAP_TYPE_NIGHT);
204
+ onMapTypeChange(MAP_TYPE_NIGHT);
205
+ }
206
+ // Toggle back to default map only if current map type is night
207
+ else if (!isDarkMode && baseLayer === MAP_TYPE_NIGHT) {
208
+ setBaseLayer(MAP_TYPE_DEFAULT);
209
+ onMapTypeChange(MAP_TYPE_DEFAULT);
210
+ }
211
+ }, [isDarkMode]);
212
+ var devicePixelRatio = window.devicePixelRatio || 1;
213
+ useEffect(function () {
214
+ console.debug('initialize here map');
215
+ var bounds = boundingBox && getBounds(boundingBox);
216
+ var platform = getPlatform(credentials);
217
+ var defaultLayers = platform.createDefaultLayers();
218
+ var defaultLayer = getDefaultBaseLayer(defaultLayers, baseLayer, useWebGL);
193
219
 
194
- // Add a resize listener to make sure that the map occupies the whole container
195
- var resizeListener = addEventListener(window, 'resize', throttle(RESIZE_THROTTLE, function () {
196
- return newHereMap.getViewPort().resize();
197
- }));
198
- var orientationChangeListener = addEventListener(window, 'orientationchange', throttle(RESIZE_THROTTLE, function () {
199
- return newHereMap.getViewPort().resize();
200
- }));
201
- setMapInitialized(true);
202
- var newHereMapEvents = !disableMapEvents && new H.mapevents.MapEvents(newHereMap);
203
- var newHereBehavior = !disableMapEvents && !disableBehavior && new H.mapevents.Behavior(newHereMapEvents);
204
- if (newHereBehavior) {
205
- newHereBehavior.disable(H.mapevents.Behavior.Feature.FRACTIONAL_ZOOM);
206
- }
207
- addEventListenerMap(newHereMap, eventListenerMap, newHereMap);
208
- var hereUi = H.ui.UI.createDefault(newHereMap, defaultLayers);
209
- if (hereUi) {
210
- hereUi.getControl('scalebar').setVisibility(showScaleBar);
211
- hereUi.getControl('scalebar').setAlignment('bottom-left');
212
- hereUi.getControl('mapsettings').setVisibility(false);
213
- hereUi.removeControl('zoom');
214
- }
215
- var newSettings = {
220
+ // Instantiate (and display) a map object:
221
+ var mapConfig = {
222
+ zoom: zoom,
223
+ center: center,
224
+ bounds: bounds,
225
+ pixelRatio: devicePixelRatio
226
+ };
227
+ var hereMap = new H.Map(mapRef.current, defaultLayer, mapConfig);
228
+
229
+ // Add a resize listener to make sure that the map occupies the whole container
230
+ var resizeListener = addEventListener(window, 'resize', throttle(RESIZE_THROTTLE, function () {
231
+ return hereMap.getViewPort().resize();
232
+ }));
233
+ var orientationChangeListener = addEventListener(window, 'orientationchange', throttle(RESIZE_THROTTLE, function () {
234
+ return hereMap.getViewPort().resize();
235
+ }));
236
+ setMapInitialized(true);
237
+ var hereMapEvents = !disableMapEvents && new H.mapevents.MapEvents(hereMap);
238
+ var hereBehavior = !(disableMapEvents || disableBehavior) && new H.mapevents.Behavior(hereMapEvents);
239
+ addEventListenerMap(hereMap, eventListenerMap, hereMap);
240
+ setApi({
241
+ credentials: credentials,
242
+ defaultLayers: defaultLayers,
243
+ group: hereMap,
244
+ map: hereMap,
245
+ mapEvents: hereMapEvents,
246
+ behavior: hereBehavior,
247
+ platform: platform,
248
+ ui: getHereUi(hereMap, defaultLayers, showScaleBar),
249
+ utils: createUtils(hereMap),
250
+ settings: {
216
251
  baseLayer: baseLayer,
217
252
  mapLayer: activeLayers,
218
253
  showCluster: showCluster
219
- };
220
- setApi({
221
- credentials: credentials,
222
- defaultLayers: defaultLayers,
223
- group: newHereMap,
224
- map: newHereMap,
225
- mapEvents: newHereMapEvents,
226
- behavior: newHereBehavior,
227
- platform: platform,
228
- ui: hereUi,
229
- settings: newSettings,
230
- utils: createUtils(newHereMap)
231
- });
232
- return function () {
233
- if (newHereMap) {
234
- removeEventListenerMap(newHereMap);
235
- if (newHereMapEvents) {
236
- newHereMapEvents.dispose();
237
- }
238
- if (resizeListener) {
239
- resizeListener.remove();
240
- }
241
- if (orientationChangeListener) {
242
- orientationChangeListener.remove();
243
- }
244
- //console.log('Destroy map', newHereMap);
245
- newHereMap.dispose();
246
- // setTimeout(() => newHereMap.dispose(), 0);
254
+ }
255
+ });
256
+ return function () {
257
+ if (hereMap) {
258
+ removeEventListenerMap(hereMap);
259
+ if (hereMapEvents) {
260
+ hereMapEvents.dispose();
247
261
  }
248
- };
249
- }
250
- }, []);
262
+ if (resizeListener) {
263
+ resizeListener.remove();
264
+ }
265
+ if (orientationChangeListener) {
266
+ orientationChangeListener.remove();
267
+ }
268
+ hereMap.dispose();
269
+ }
270
+ };
271
+ }, [useWebGL]);
251
272
 
252
273
  // Update BoundingBox from outside
253
274
  useEffect(function () {
@@ -262,17 +283,25 @@ var Map = function Map(props) {
262
283
  }
263
284
  }, [boundingBox]);
264
285
 
265
- // Update Zoom from outside
286
+ // Update Zoom from outside if value is different
266
287
  useEffect(function () {
267
- if (api && zoom) {
268
- api.map.setZoom(zoom, zoomAnimation);
288
+ if (!api) {
289
+ return;
290
+ }
291
+ var currentMapZoom = api.utils.getZoom();
292
+ if (zoom && currentMapZoom !== zoom) {
293
+ api.utils.setZoom(zoom, zoomAnimation);
269
294
  }
270
295
  }, [zoom]);
271
296
 
272
- // Update Lat & Lng from outside
297
+ // Update Lat & Lng from outside if value is different
273
298
  useEffect(function () {
274
- if (api && center) {
275
- api.map.setCenter(center, zoomAnimation);
299
+ if (!(api && center)) {
300
+ return;
301
+ }
302
+ var currentMapCenter = api.utils.getCenter();
303
+ if (currentMapCenter.lat !== center.lat || currentMapCenter.lng !== center.lng) {
304
+ api.utils.setCenter(center, zoomAnimation);
276
305
  }
277
306
  }, [center]);
278
307
 
@@ -324,30 +353,22 @@ var Map = function Map(props) {
324
353
  }));
325
354
  };
326
355
  var handleZoomIn = function handleZoomIn() {
327
- var z = api.map.getZoom();
356
+ var z = api.utils.getZoom();
328
357
  var newZoom = z + 1;
329
358
  onZoomIn(newZoom, z);
330
- api.map.setZoom(newZoom, true);
359
+ api.utils.setZoom(newZoom, zoomAnimation);
331
360
  };
332
361
  var handleZoomOut = function handleZoomOut() {
333
- var z = api.map.getZoom();
362
+ var z = api.utils.getZoom();
334
363
  var newZoom = z - 1;
335
364
  onZoomOut(newZoom, z);
336
- api.map.setZoom(newZoom, true);
337
- };
338
- var renderChildren = function renderChildren() {
339
- if (!children) {
340
- return null;
341
- }
342
- return /*#__PURE__*/React.createElement("div", {
343
- className: 'MapElements'
344
- }, isFunction(children) ? children(api) : enhanceChildren(children, api));
365
+ api.utils.setZoom(newZoom, zoomAnimation);
345
366
  };
346
367
  var style = getStyle(height, width);
347
368
  var autoHeightClass = isEmpty(style) ? 'height-100pct' : '';
348
369
  var hideZoomButtons = disableBehavior;
349
370
  return /*#__PURE__*/React.createElement("div", {
350
- className: "Map position-relative ".concat(autoHeightClass),
371
+ className: "Map position-relative map-type-".concat(baseLayer.toLowerCase(), " ").concat(autoHeightClass),
351
372
  style: style,
352
373
  ref: mapRef
353
374
  }, isMapInitialized && /*#__PURE__*/React.createElement(MapContext.Provider, {
@@ -367,15 +388,17 @@ var Map = function Map(props) {
367
388
  onShowClusterChange: handleShowClusterChange,
368
389
  mapSettingsTooltip: mapSettingsTooltip
369
390
  }
370
- }, mapSettings), getBaseLayer(api, baseLayer, language), map(function (layer) {
371
- return getLayer(api, layer, language);
372
- }, activeLayers), renderChildren()));
391
+ }, mapSettings), getBaseLayer(api, baseLayer, language, useWebGL, darkMode), map(function (layer) {
392
+ return getLayer(api, layer, language, useWebGL);
393
+ }, activeLayers), children && /*#__PURE__*/React.createElement("div", {
394
+ className: 'MapElements'
395
+ }, isFunction(children) ? children(api) : enrichChildrenWithApi(children, api))));
373
396
  };
374
- ;
375
397
  Map.TYPE_DEFAULT = MAP_TYPE_DEFAULT;
376
398
  Map.TYPE_FLEET_STYLE = MAP_TYPE_FLEET_STYLE;
377
399
  Map.TYPE_SATELLITE = MAP_TYPE_SATELLITE;
378
400
  Map.TYPE_TERRAIN = MAP_TYPE_TERRAIN;
401
+ Map.TYPE_NIGHT = MAP_TYPE_NIGHT;
379
402
  Map.LAYER_INCIDENTS = MAP_LAYER_INCIDENTS;
380
403
  Map.LAYER_TRAFFIC = MAP_LAYER_TRAFFIC;
381
404
  Map.LAYER_ROAD_RESTRICTIONS = MAP_LAYER_ROAD_RESTRICTIONS;
@@ -393,7 +416,9 @@ Map.defaultProps = {
393
416
  onMapLayerChange: function onMapLayerChange() {},
394
417
  onShowClusterChange: function onShowClusterChange() {},
395
418
  onZoomIn: function onZoomIn() {},
396
- onZoomOut: function onZoomOut() {}
419
+ onZoomOut: function onZoomOut() {},
420
+ useWebGL: false,
421
+ darkMode: false
397
422
  };
398
423
  Map.propTypes = {
399
424
  credentials: PropTypes.shape((_PropTypes$shape = {}, _defineProperty(_PropTypes$shape, 'app_id', PropTypes.string), _defineProperty(_PropTypes$shape, 'app_code', PropTypes.string), _defineProperty(_PropTypes$shape, 'api_key', PropTypes.string), _defineProperty(_PropTypes$shape, "apikey", PropTypes.string), _PropTypes$shape)).isRequired,
@@ -409,7 +434,7 @@ Map.propTypes = {
409
434
  hideMapSettings: PropTypes.bool,
410
435
  hideClusterSettings: PropTypes.bool,
411
436
  hideMapLayerSettings: PropTypes.bool,
412
- mapType: PropTypes.oneOf([Map.TYPE_DEFAULT, Map.TYPE_FLEET_STYLE, Map.TYPE_SATELLITE, Map.TYPE_TERRAIN]),
437
+ mapType: PropTypes.oneOf([Map.TYPE_DEFAULT, Map.TYPE_FLEET_STYLE, Map.TYPE_SATELLITE, Map.TYPE_TERRAIN, Map.TYPE_NIGHT]),
413
438
  mapLayer: PropTypes.arrayOf(PropTypes.string),
414
439
  showCluster: PropTypes.bool,
415
440
  showScaleBar: PropTypes.bool,
@@ -420,6 +445,8 @@ Map.propTypes = {
420
445
  onZoomOut: PropTypes.func,
421
446
  getApi: PropTypes.func,
422
447
  mapSettingsTooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
423
- mapSettings: PropTypes.node
448
+ mapSettings: PropTypes.node,
449
+ useWebGL: PropTypes.bool,
450
+ darkMode: PropTypes.bool
424
451
  };
425
452
  export default Map;
@@ -2,6 +2,7 @@ export var MAP_TYPE_DEFAULT = 'DEFAULT';
2
2
  export var MAP_TYPE_FLEET_STYLE = 'FLEET_STYLE';
3
3
  export var MAP_TYPE_SATELLITE = 'SATELLITE';
4
4
  export var MAP_TYPE_TERRAIN = 'TERRAIN';
5
+ export var MAP_TYPE_NIGHT = 'NIGHT';
5
6
  export var MAP_LAYER_INCIDENTS = 'INCIDENTS';
6
7
  export var MAP_LAYER_TRAFFIC = 'TRAFFIC';
7
8
  export var MAP_LAYER_ROAD_RESTRICTIONS = 'ROAD_RESTRICTIONS';
@@ -15,7 +15,6 @@ export var MISSING_POSITIONS_EXCEPTION_MSG = 'Route requires a minimum of 1 posi
15
15
  export var TO_LESS_LINE_WIDTH_EXCEPTION_MSG = 'If isBorderIncludedInWidth is set to true than width has to be greater than twice of borderWidth';
16
16
  var LINE_STROKE_COLOR = 'rgba(48, 194, 255, 1)';
17
17
  var LINE_STROKE_COLOR_REDUCED = 'rgba(48, 194, 255, 0.5)';
18
- var BORDER_STROKE_COLOR = 'rgba(255, 255, 255, 1)';
19
18
  var BORDER_STROKE_COLOR_REDUCED = 'rgba(255, 255, 255, 0)';
20
19
  var defaultStyle = {
21
20
  width: 5,
@@ -25,12 +24,12 @@ var defaultStyle = {
25
24
  isBorderIncludedInWidth: false
26
25
  };
27
26
  var defaultArrowStyle = {
28
- lineWidth: 10,
29
- fillColor: 'rgba(42, 55, 64, 1)',
30
- strokeColor: BORDER_STROKE_COLOR,
31
- lineDash: [0, 6],
32
- lineTailCap: 'arrow-tail',
33
- lineHeadCap: 'arrow-head'
27
+ // lineWidth: 12,
28
+ // strokeColor: 'rgba(0, 0, 0, 0.8)',
29
+ // lineDash: [0, 3],
30
+ // lineDashOffset: 2,
31
+ // lineTailCap: 'arrow-tail',
32
+ // lineHeadCap: 'arrow-head',
34
33
  };
35
34
  var alternativeRouteStyle = _objectSpread(_objectSpread({}, defaultStyle), {}, {
36
35
  color: 'rgb(218,253,255)'
@@ -1,4 +1,7 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2
5
  /* eslint-disable no-undef */
3
6
  import { useState, useEffect, useContext } from 'react';
4
7
  import PropTypes from 'prop-types';
@@ -35,15 +38,17 @@ var Polyline = function Polyline(_ref) {
35
38
  // Create a patterned polyline:
36
39
 
37
40
  // Non-legacy version:
38
- var arrowLineStyle = new H.map.SpatialStyle({
39
- width: 5,
41
+ var arrowLineStyle = new H.map.SpatialStyle(_objectSpread(_objectSpread({}, arrowStyle), {}, {
40
42
  lineWidth: 10,
41
- strokeColor: 'rgba(255, 255, 255, 0)'
42
- });
43
+ strokeColor: 'rgba(0, 0, 0, 0.8)',
44
+ lineDash: [0, 3],
45
+ lineDashOffset: 1.6,
46
+ lineTailCap: 'arrow-tail',
47
+ lineHeadCap: 'arrow-head'
48
+ }));
43
49
  var routeArrows = new H.map.Polyline(geometry, {
44
50
  style: arrowLineStyle
45
51
  });
46
- routeArrows.setArrows(arrowStyle);
47
52
 
48
53
  // create a group that represents the route line and contains
49
54
  // outline and the pattern
@@ -0,0 +1,27 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["useWebGL"];
4
+ import React from 'react';
5
+ import { FORMAT, TILE_SIZE } from '../../constants';
6
+ import { getPPI } from '../../mapUtils';
7
+ import Layer from './Layer';
8
+ var createRoadRestrictionLayer = function createRoadRestrictionLayer(useWebGL) {
9
+ return function (api, language) {
10
+ return api.platform.getMapTileService({
11
+ type: 'base'
12
+ }).createTileLayer('truckonlytile', 'normal.day', TILE_SIZE, FORMAT, {
13
+ style: 'default',
14
+ lg: language,
15
+ ppi: useWebGL ? undefined : getPPI()
16
+ });
17
+ };
18
+ };
19
+ var RoadRestrictionLayer = function RoadRestrictionLayer(props) {
20
+ var useWebGL = props.useWebGL,
21
+ remainingProps = _objectWithoutProperties(props, _excluded);
22
+ var createLayer = createRoadRestrictionLayer(useWebGL);
23
+ return /*#__PURE__*/React.createElement(Layer, _extends({}, remainingProps, {
24
+ createLayer: createLayer
25
+ }));
26
+ };
27
+ export default RoadRestrictionLayer;
@@ -1,10 +1,21 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- /* eslint-disable no-undef */
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["useWebGL"];
3
4
  import React from 'react';
4
5
  import { FORMAT, TILE_SIZE } from '../../constants';
5
6
  import Layer from './Layer';
6
- var createTrafficLayer = function createTrafficLayer(api, language) {
7
- //return api.defaultLayers.vector.normal.traffic;
7
+ var createVebGlTrafficLayer = function createVebGlTrafficLayer(api, language) {
8
+ // use new Here 3.1 API traffic layer for WebGL
9
+ // https://developer.here.com/documentation/maps/3.1.37.0/dev_guide/topics/migration.html
10
+
11
+ // Create a traffic service and a corresponding provider.
12
+ var service = api.platform.getTrafficService();
13
+ var provider = new H.service.traffic.flow.Provider(service);
14
+
15
+ // Create a tile layer that can be added to the map
16
+ return new H.map.layer.TileLayer(provider);
17
+ };
18
+ var createRasterTrafficLayer = function createRasterTrafficLayer(api, language) {
8
19
  return api.platform.getMapTileService({
9
20
  type: 'traffic'
10
21
  }).createTileLayer('flowtile', 'normal.day.grey', TILE_SIZE, FORMAT, {
@@ -13,8 +24,11 @@ var createTrafficLayer = function createTrafficLayer(api, language) {
13
24
  });
14
25
  };
15
26
  var TrafficLayer = function TrafficLayer(props) {
16
- return /*#__PURE__*/React.createElement(Layer, _extends({}, props, {
17
- createLayer: createTrafficLayer
27
+ var useWebGL = props.useWebGL,
28
+ remainingProps = _objectWithoutProperties(props, _excluded);
29
+ var createLayerCallback = useWebGL ? createVebGlTrafficLayer : createRasterTrafficLayer;
30
+ return /*#__PURE__*/React.createElement(Layer, _extends({}, remainingProps, {
31
+ createLayer: createLayerCallback
18
32
  }));
19
33
  };
20
34
  export default TrafficLayer;
@@ -0,0 +1,19 @@
1
+ import { useBaseLayer } from './useBaseLayer';
2
+ import { MAP_TYPE_DEFAULT } from '../../../constants';
3
+
4
+ // https://developer.here.com/documentation/map-tile/dev_guide/topics/resource-info.html
5
+
6
+ var DefaultRasterLayer = function DefaultRasterLayer(props) {
7
+ var api = props.api,
8
+ language = props.language;
9
+ useBaseLayer({
10
+ api: api,
11
+ language: language,
12
+ mapType: MAP_TYPE_DEFAULT,
13
+ additionalParameters: {
14
+ style: 'alps'
15
+ }
16
+ });
17
+ return null;
18
+ };
19
+ export default DefaultRasterLayer;
@@ -0,0 +1,15 @@
1
+ import { useBaseLayer } from './useBaseLayer';
2
+ import { MAP_TYPE_DEFAULT } from '../../../constants';
3
+ var DefaultVectorLayer = function DefaultVectorLayer(props) {
4
+ var api = props.api,
5
+ language = props.language;
6
+ useBaseLayer({
7
+ api: api,
8
+ language: language,
9
+ mapType: MAP_TYPE_DEFAULT,
10
+ additionalParameters: {},
11
+ isWebGL: true
12
+ });
13
+ return null;
14
+ };
15
+ export default DefaultVectorLayer;
@@ -1,20 +1,16 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react';
3
- import { FORMAT, TILE_SIZE } from '../../../constants';
4
- import BaseLayer from './BaseLayer';
5
- var createFleetStyleLayer = function createFleetStyleLayer(api, language, showTraffic) {
6
- var type = showTraffic ? 'traffic' : 'base';
7
- var tileType = showTraffic ? 'traffictile' : 'maptile';
8
- return api.platform.getMapTileService({
9
- type: type
10
- }).createTileLayer(tileType, 'normal.day', TILE_SIZE, FORMAT, {
11
- style: 'fleet',
12
- lg: language
13
- });
14
- };
1
+ import { useBaseLayer } from './useBaseLayer';
2
+ import { MAP_TYPE_FLEET_STYLE } from '../../../constants';
15
3
  var FleetStyleLayer = function FleetStyleLayer(props) {
16
- return /*#__PURE__*/React.createElement(BaseLayer, _extends({}, props, {
17
- createBaseLayer: createFleetStyleLayer
18
- }));
4
+ var api = props.api,
5
+ language = props.language;
6
+ useBaseLayer({
7
+ api: api,
8
+ language: language,
9
+ mapType: MAP_TYPE_FLEET_STYLE,
10
+ additionalParameters: {
11
+ style: 'fleet'
12
+ }
13
+ });
14
+ return null;
19
15
  };
20
16
  export default FleetStyleLayer;