@kando-env/kando-ui 1.2.466-alpha.5 → 1.2.466-alpha.7

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 (725) hide show
  1. package/lib/Router.js +40 -81
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +24 -35
  3. package/lib/Widgets/EventsRow/EventsRow.js +26 -39
  4. package/lib/Widgets/Map/GraphUtils.js +4 -6
  5. package/lib/Widgets/Map/Map.js +100 -139
  6. package/lib/Widgets/Map/MapUtils.js +83 -102
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +57 -84
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +23 -25
  9. package/lib/Widgets/Map/areas/AreaUtils.js +46 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +5 -5
  11. package/lib/Widgets/Map/edges/Edge.js +32 -41
  12. package/lib/Widgets/Map/edges/Edges.js +19 -24
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +24 -45
  14. package/lib/Widgets/Map/events/Event.js +15 -14
  15. package/lib/Widgets/Map/events/EventIndicator.js +66 -63
  16. package/lib/Widgets/Map/events/EventPath.js +33 -34
  17. package/lib/Widgets/Map/events/EventUtils.js +54 -78
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -19
  19. package/lib/Widgets/Map/events/PointOfEvent.js +27 -36
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +29 -39
  21. package/lib/Widgets/Map/events/Snail.js +10 -11
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +77 -79
  23. package/lib/Widgets/Map/map/FloatingGraph.js +24 -21
  24. package/lib/Widgets/Map/map/GraphDateButton.js +27 -20
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +14 -14
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +17 -16
  27. package/lib/Widgets/Map/points/PointIcon.js +23 -22
  28. package/lib/Widgets/Map/points/PointMarker.js +68 -88
  29. package/lib/Widgets/Map/points/PointMarkers.js +30 -36
  30. package/lib/Widgets/Map/points/PointUtils.js +76 -90
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +25 -43
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -11
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -14
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +4 -6
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +28 -60
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -4
  37. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/styles.js +4 -6
  39. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +12 -9
  40. package/lib/Widgets/MostPolluting/Factories/Factories.js +33 -65
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/CardLayout.js +15 -20
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -20
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +9 -10
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +13 -11
  45. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +4 -6
  46. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -3
  47. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  48. package/lib/Widgets/MostPolluting/Factories/styles.js +4 -6
  49. package/lib/Widgets/MostPolluting/MostPolluting.js +23 -34
  50. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +20 -32
  51. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +7 -5
  52. package/lib/Widgets/MostPolluting/ShowMore/styles.js +7 -6
  53. package/lib/Widgets/MostPolluting/assets/index.js +12 -12
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.js +20 -14
  55. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +36 -31
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +49 -54
  57. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +44 -40
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
  59. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +53 -49
  60. package/lib/Widgets/MostPolluting/models.js +1 -1
  61. package/lib/Widgets/MostPolluting/styles.js +4 -6
  62. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +8 -6
  63. package/lib/Widgets/PotentialImpactSummary/Icon.js +30 -39
  64. package/lib/Widgets/PotentialImpactSummary/index.js +20 -28
  65. package/lib/Widgets/PotentialImpactSummary/index.test.js +48 -54
  66. package/lib/Widgets/PotentialImpactSummary/styles.js +8 -13
  67. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  68. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +10 -8
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +23 -18
  70. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +34 -31
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +28 -26
  72. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -38
  73. package/lib/Widgets/QualitySummary/QualitySummary.js +10 -14
  74. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -7
  75. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  76. package/lib/Widgets/QualitySummary/styles.js +24 -21
  77. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -14
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +25 -25
  79. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +26 -21
  80. package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -36
  81. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  82. package/lib/Widgets/UtilityInformation/styles.js +30 -31
  83. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -5
  84. package/lib/assets/icons/TopNavbar/index.js +7 -7
  85. package/lib/assets/icons/TrendSvg.js +7 -7
  86. package/lib/assets/icons/index.js +16 -16
  87. package/lib/assets/icons/kandoStepper/index.js +7 -7
  88. package/lib/assets/icons/siteTypes/index.js +2 -2
  89. package/lib/components/ApplyButton/ApplyButton.js +10 -11
  90. package/lib/components/ApplyButton/index.js +3 -4
  91. package/lib/components/Backdrop/Backdrop.js +7 -5
  92. package/lib/components/ContentLoader/ContentLoader.js +12 -10
  93. package/lib/components/ContentLoader/index.js +2 -2
  94. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -12
  95. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +5 -9
  96. package/lib/components/CustomInputs/DoubleTabs/styles.js +21 -16
  97. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +12 -20
  98. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +7 -6
  99. package/lib/components/CustomInputs/Search/Search.js +37 -60
  100. package/lib/components/CustomInputs/Search/index.js +3 -4
  101. package/lib/components/CustomInputs/Select/Select.js +38 -55
  102. package/lib/components/CustomInputs/Select/Select.stories.js +6 -10
  103. package/lib/components/DamageType/DamageType.js +35 -60
  104. package/lib/components/DamageType/index.js +3 -4
  105. package/lib/components/DataLoaderError/DataLoaderError.js +9 -7
  106. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +11 -13
  107. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +72 -73
  108. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +25 -37
  109. package/lib/components/DischargeHeatmap/HighchartsOptions.js +12 -16
  110. package/lib/components/DischargeHeatmap/index.js +3 -4
  111. package/lib/components/DischargeHeatmap/mocks/handlers.js +5 -6
  112. package/lib/components/DischargeHeatmap/popupText.js +11 -12
  113. package/lib/components/DischargeHeatmap/titles.js +4 -6
  114. package/lib/components/DischargeHeatmap/types.js +1 -1
  115. package/lib/components/ErrorBoundary.js +27 -42
  116. package/lib/components/Events/Events.js +29 -48
  117. package/lib/components/Events/index.js +3 -4
  118. package/lib/components/Graph/Graph.js +74 -95
  119. package/lib/components/Graph/index.js +3 -4
  120. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +19 -24
  121. package/lib/components/Header/Breadcrumbs/index.js +3 -4
  122. package/lib/components/Header/DoubleTabs/DoubleTabs.js +18 -28
  123. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +5 -9
  124. package/lib/components/Header/DoubleTabs/styles.js +5 -8
  125. package/lib/components/Header/Header.js +3 -3
  126. package/lib/components/Header/Header.stories.js +5 -9
  127. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +24 -36
  128. package/lib/components/Header/InfoBar/InfoBar.js +69 -102
  129. package/lib/components/Header/InfoBar/Search/Control.js +11 -10
  130. package/lib/components/Header/InfoBar/Search/GroupLabel.js +8 -7
  131. package/lib/components/Header/InfoBar/Search/Search.js +17 -24
  132. package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -35
  133. package/lib/components/Header/InfoBar/Search/index.js +3 -4
  134. package/lib/components/Header/InfoBar/Search/searchStyle.js +36 -49
  135. package/lib/components/Header/InfoBar/TimeFilter.js +13 -17
  136. package/lib/components/Header/InfoBar/types.js +1 -1
  137. package/lib/components/Header/KandoNavbar/KandoNavbar.js +66 -93
  138. package/lib/components/Header/KandoNavbar/index.js +3 -4
  139. package/lib/components/Header/Slideshow/Slideshow.js +67 -91
  140. package/lib/components/Header/Slideshow/index.js +3 -4
  141. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +7 -5
  142. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +22 -24
  143. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +17 -17
  144. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +36 -42
  145. package/lib/components/Header/Toolbar/Toolbar.js +58 -76
  146. package/lib/components/InfoBar/InfoBar.js +10 -24
  147. package/lib/components/InfoBar/InfoBar.stories.js +5 -9
  148. package/lib/components/KandoModal/KandoModal.js +26 -62
  149. package/lib/components/KandoModal/index.js +3 -4
  150. package/lib/components/Link.js +9 -8
  151. package/lib/components/Links/CustomRedirect/CustomRedirect.js +10 -7
  152. package/lib/components/Links/StyledLink/StyledLink.js +17 -20
  153. package/lib/components/Links/StyledNavLink/StyledNavLink.js +12 -10
  154. package/lib/components/LiveEvents/CarouselSlide.js +11 -10
  155. package/lib/components/LiveEvents/LiveEvents.js +7 -6
  156. package/lib/components/LiveEvents/index.js +3 -4
  157. package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -30
  158. package/lib/components/Map/Map.js +20 -25
  159. package/lib/components/Map/index.js +3 -4
  160. package/lib/components/Modal/Modal.js +10 -10
  161. package/lib/components/NarrowHeader.js +18 -32
  162. package/lib/components/PointInfo/PointInfo.js +20 -19
  163. package/lib/components/PointInfo/index.js +3 -4
  164. package/lib/components/PopupModal/PopupModal.js +13 -17
  165. package/lib/components/PopupModal/PopupModal.stories.js +17 -24
  166. package/lib/components/Sector/Sector.js +34 -40
  167. package/lib/components/Sector/Sector.test.js +24 -24
  168. package/lib/components/Sector/SectorIconsNew.js +26 -19
  169. package/lib/components/Sector/index.js +3 -4
  170. package/lib/components/Sector/sectorIcons.js +4 -5
  171. package/lib/components/SevereEvent/Eta/Eta.js +49 -54
  172. package/lib/components/SevereEvent/Eta/styles.js +11 -8
  173. package/lib/components/SevereEvent/SevereEvent.js +28 -52
  174. package/lib/components/SevereEvent/SevereEvent.scss +0 -24
  175. package/lib/components/Spinner/Spinner.js +8 -8
  176. package/lib/components/Spinner/Spinner.stories.js +6 -11
  177. package/lib/components/Spinner/index.js +3 -4
  178. package/lib/components/Spinner/styles.js +21 -16
  179. package/lib/components/Tabs/Tabs.js +18 -31
  180. package/lib/components/Tabs/Tabs.stories.js +6 -10
  181. package/lib/components/Tabs/assets/index.js +6 -6
  182. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +13 -18
  183. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +32 -45
  184. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +20 -34
  185. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +3 -4
  186. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +17 -22
  187. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -14
  188. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +3 -4
  189. package/lib/components/TimeRangeSelector/TimeRangeList.js +24 -27
  190. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -27
  191. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +26 -31
  192. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +6 -10
  193. package/lib/components/TimeRangeSelector/constants.js +3 -5
  194. package/lib/components/TimeRangeSelector/index.js +3 -4
  195. package/lib/components/Toggle/Toggle.js +11 -18
  196. package/lib/components/Toggle/index.js +3 -4
  197. package/lib/components/TrendGraph/TrendGraph.js +24 -42
  198. package/lib/components/TrendGraph/index.js +3 -4
  199. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +26 -33
  200. package/lib/components/TrendGraphNVL/index.js +3 -4
  201. package/lib/development-environment/index.js +9 -13
  202. package/lib/development-environment/mock/browser.js +2 -5
  203. package/lib/development-environment/mock/get.js +8 -10
  204. package/lib/development-environment/mock/handlers.js +2 -3
  205. package/lib/development-environment/mock/mockBus.js +4 -5
  206. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -3
  207. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -3
  208. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -3
  209. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -3
  210. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -3
  211. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -3
  212. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -3
  213. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -3
  214. package/lib/development-environment/mock/mockObjects/data-search.js +2 -3
  215. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -3
  216. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -3
  217. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -3
  218. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -3
  219. package/lib/development-environment/mock/mockObjects/metascore.js +2 -3
  220. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -3
  221. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -3
  222. package/lib/development-environment/mock/mockObjects/site-info.js +2 -3
  223. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -3
  224. package/lib/development-environment/togly/ToglyDashboard.js +13 -23
  225. package/lib/development-environment/togly/ToglyItem.js +24 -31
  226. package/lib/development-environment/togly/flags.js +1 -1
  227. package/lib/development-environment/togly/init.js +4 -4
  228. package/lib/development-environment/togly/macro.js +13 -9
  229. package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
  230. package/lib/development-environment/togly/useLocalStorage.js +13 -18
  231. package/lib/hooks/useApi.js +20 -56
  232. package/lib/hooks/useApiWithDashboardQuery.js +23 -43
  233. package/lib/hooks/useClickOutside.js +4 -5
  234. package/lib/hooks/useInitializeHeaders.js +6 -6
  235. package/lib/hooks/useKandoFetch.js +17 -31
  236. package/lib/hooks/useMap.js +25 -37
  237. package/lib/hooks/useNavContext.js +22 -26
  238. package/lib/hooks/useQueryURL.js +2 -3
  239. package/lib/hooks/useRemoveExistingLayers.js +7 -8
  240. package/lib/hooks/useUpdateEventBodyTail.js +14 -19
  241. package/lib/hooks/useUserTimeZone.js +34 -31
  242. package/lib/hooks/useUserTimeZone.test.js +19 -23
  243. package/lib/hooks/useWindowSize.js +7 -14
  244. package/lib/i18n/en.json +3 -14
  245. package/lib/i18n/he.json +1 -11
  246. package/lib/index.js +11 -13
  247. package/lib/macros/getVersion.js +2 -2
  248. package/lib/models/IAction.js +1 -1
  249. package/lib/models/IAppState.js +1 -1
  250. package/lib/pages/AreaPage/AreaPage.js +34 -68
  251. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +15 -17
  252. package/lib/pages/AreaPage/Dashboard/Dashboard.js +26 -28
  253. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +14 -23
  254. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +5 -5
  255. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  256. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +10 -10
  257. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +4 -6
  258. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  259. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -3
  260. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +5 -8
  261. package/lib/pages/AssessmentPage/AssessmentPage.js +38 -46
  262. package/lib/pages/CannyWidget/Feedback.js +14 -16
  263. package/lib/pages/CovidPage/CovidPage.js +9 -16
  264. package/lib/pages/CovidPage/components/Body.js +26 -30
  265. package/lib/pages/CovidPage/components/Map.js +28 -40
  266. package/lib/pages/CovidPage/components/Sidebar.js +15 -16
  267. package/lib/pages/CovidPage/components/Summary.js +20 -29
  268. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +26 -33
  269. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +3 -4
  270. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +52 -76
  271. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +3 -4
  272. package/lib/pages/CovidPage/components/areas/Area.js +24 -36
  273. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +45 -46
  274. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -36
  275. package/lib/pages/CovidPage/components/areas/AreasList.js +29 -42
  276. package/lib/pages/CovidPage/components/areas/Sort.js +12 -17
  277. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  278. package/lib/pages/DashboardMap/AreaCard.js +27 -27
  279. package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
  280. package/lib/pages/DashboardMap/Capacity.js +28 -77
  281. package/lib/pages/DashboardMap/FactoryCard.js +28 -24
  282. package/lib/pages/DashboardMap/HighchartsOptions.js +6 -5
  283. package/lib/pages/DashboardMap/List.js +55 -65
  284. package/lib/pages/DashboardMap/ListContext.js +14 -19
  285. package/lib/pages/DashboardMap/Loader.js +3 -3
  286. package/lib/pages/DashboardMap/SeverityBadge.js +16 -24
  287. package/lib/pages/DashboardMap/WWTPMap.js +57 -71
  288. package/lib/pages/DashboardMap/WaterDischarge.js +9 -9
  289. package/lib/pages/DashboardMap/Widget.js +48 -67
  290. package/lib/pages/DashboardMap/index.js +3 -4
  291. package/lib/pages/DashboardMap/utils.js +41 -60
  292. package/lib/pages/EventsPage/Body/Body.js +15 -12
  293. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -20
  294. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +16 -27
  295. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +10 -9
  296. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +13 -10
  297. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +22 -31
  298. package/lib/pages/EventsPage/DragAndDropArea/index.js +3 -4
  299. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +30 -38
  300. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +14 -23
  301. package/lib/pages/EventsPage/EventsPage.js +10 -17
  302. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -40
  303. package/lib/pages/EventsPage/events/MoreInfo.js +18 -19
  304. package/lib/pages/EventsPage/events/Sidebar.js +14 -11
  305. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +9 -10
  306. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +19 -24
  307. package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +3 -4
  308. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +31 -38
  309. package/lib/pages/EventsPage/events/event_info/EventDetails.js +35 -33
  310. package/lib/pages/EventsPage/events/event_info/EventInfo.js +50 -60
  311. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +5 -5
  312. package/lib/pages/EventsPage/events/event_info/EventSection.js +18 -21
  313. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +29 -23
  314. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -50
  315. package/lib/pages/EventsPage/events/event_info/Header/Header.js +8 -7
  316. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -35
  317. package/lib/pages/EventsPage/events/event_info/Header/index.js +3 -4
  318. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -7
  319. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +30 -39
  320. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +6 -9
  321. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +14 -15
  322. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +9 -12
  323. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /index.js +3 -4
  324. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +23 -24
  325. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +13 -22
  326. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +7 -6
  327. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +3 -4
  328. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +13 -12
  329. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -28
  330. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +3 -4
  331. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +13 -10
  332. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +8 -9
  333. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +3 -4
  334. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +9 -9
  335. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +4 -5
  336. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +13 -11
  337. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +7 -5
  338. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +11 -14
  339. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +7 -6
  340. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +9 -8
  341. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +9 -8
  342. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +8 -7
  343. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +13 -12
  344. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +18 -19
  345. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +7 -7
  346. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +9 -8
  347. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +19 -18
  348. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +6 -7
  349. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +13 -12
  350. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +23 -19
  351. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +12 -11
  352. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +8 -7
  353. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +3 -4
  354. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +4 -6
  355. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +25 -40
  356. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +30 -39
  357. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +13 -12
  358. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +17 -20
  359. package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -31
  360. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +22 -27
  361. package/lib/pages/EventsPage/events/event_info/styles.js +21 -15
  362. package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -21
  363. package/lib/pages/EventsPage/events/events_list/EventUtils.js +11 -11
  364. package/lib/pages/EventsPage/events/events_list/EventsList.js +111 -142
  365. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +41 -58
  366. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +90 -135
  367. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +54 -76
  368. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +39 -44
  369. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +32 -41
  370. package/lib/pages/EventsPage/events/events_list/Filter/SingleSelect.js +19 -21
  371. package/lib/pages/EventsPage/events/events_list/Sort.js +28 -39
  372. package/lib/pages/ImportFileWizard/FileUploadRespones.js +14 -22
  373. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +9 -8
  374. package/lib/pages/ImportFileWizard/ImportFile.js +21 -25
  375. package/lib/pages/ImportFileWizard/ResponseBody.js +26 -36
  376. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -23
  377. package/lib/pages/ImportFileWizard/ValidationResponse.js +23 -25
  378. package/lib/pages/ImportFileWizard/importFileUtils.js +4 -5
  379. package/lib/pages/ImportFileWizard/index.js +3 -4
  380. package/lib/pages/ImportGisPage/ImportGisContainer.js +22 -27
  381. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +38 -44
  382. package/lib/pages/ImportGisPage/importGisUtils.js +43 -52
  383. package/lib/pages/ImportGisProcess/index.js +14 -18
  384. package/lib/pages/ImportSiteProcess/index.js +14 -18
  385. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -13
  386. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +18 -20
  387. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +4 -4
  388. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +28 -60
  389. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -12
  390. package/lib/pages/NotificationsPage/Notification/Notification.js +17 -13
  391. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  392. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -3
  393. package/lib/pages/NotificationsPage/Notifications.stories.js +6 -10
  394. package/lib/pages/NotificationsPage/NotificationsPage.js +19 -38
  395. package/lib/pages/NotificationsPage/assets/index.js +10 -10
  396. package/lib/pages/NotificationsPageV2/NotificationsPage.js +72 -101
  397. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +95 -65
  398. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +13 -15
  399. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +19 -17
  400. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +18 -22
  401. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +18 -22
  402. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +19 -23
  403. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +82 -71
  404. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +19 -23
  405. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +71 -74
  406. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +80 -94
  407. package/lib/pages/NotificationsPageV2/notificationUtils.js +40 -39
  408. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  409. package/lib/pages/OldSitePage/OldSitePage.js +56 -132
  410. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +6 -10
  411. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -9
  412. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -7
  413. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +16 -19
  414. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +10 -12
  415. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -19
  416. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +14 -11
  417. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -9
  418. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -16
  419. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -64
  420. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +10 -8
  421. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -54
  422. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -7
  423. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -19
  424. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  425. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -12
  426. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +27 -23
  427. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +28 -30
  428. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  429. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +5 -8
  430. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +16 -12
  431. package/lib/pages/OperationsPage/LeftPanel.js +35 -55
  432. package/lib/pages/OperationsPage/Map/Map.js +12 -12
  433. package/lib/pages/OperationsPage/Map/useMap.js +52 -64
  434. package/lib/pages/OperationsPage/OperationsContainerPage.js +32 -59
  435. package/lib/pages/OperationsPage/OperationsFilePage.js +10 -12
  436. package/lib/pages/OperationsPage/OperationsUtilityPage.js +5 -6
  437. package/lib/pages/OperationsPage/RightPanel.js +22 -25
  438. package/lib/pages/OperationsPage/index.js +4 -4
  439. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +27 -60
  440. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +19 -25
  441. package/lib/pages/PollutionRiskAssessment/FilterButton.js +11 -10
  442. package/lib/pages/PollutionRiskAssessment/Map.js +38 -42
  443. package/lib/pages/PollutionRiskAssessment/SearchButton.js +11 -10
  444. package/lib/pages/PollutionRiskAssessment/SearchField.js +26 -40
  445. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +16 -16
  446. package/lib/pages/PollutionRiskAssessment/UseCases.js +32 -34
  447. package/lib/pages/PollutionRiskAssessment/index.js +76 -136
  448. package/lib/pages/PollutionRiskAssessment/useMap.js +34 -50
  449. package/lib/pages/PollutionRiskAssessment/utils.js +7 -7
  450. package/lib/pages/ProfilePage/Container.js +3 -4
  451. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +23 -40
  452. package/lib/pages/ProfilePage/ProfilePage.js +106 -205
  453. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -34
  454. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +20 -20
  455. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +27 -30
  456. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -119
  457. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +18 -23
  458. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +14 -13
  459. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +40 -45
  460. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -24
  461. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +18 -19
  462. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +15 -18
  463. package/lib/pages/SamplingsPage/DesktopActions/index.js +3 -4
  464. package/lib/pages/SamplingsPage/NavigationDropdown.js +43 -31
  465. package/lib/pages/SamplingsPage/NewSamplingAction.js +75 -102
  466. package/lib/pages/SamplingsPage/SamplingMobileModal.js +124 -98
  467. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +23 -25
  468. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +36 -25
  469. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -61
  470. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +16 -21
  471. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +10 -9
  472. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +108 -193
  473. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +47 -54
  474. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +42 -39
  475. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +42 -39
  476. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +21 -28
  477. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +4 -6
  478. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +11 -7
  479. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +51 -53
  480. package/lib/pages/SamplingsPage/SamplingsMobileList.js +22 -31
  481. package/lib/pages/SamplingsPage/SamplingsPage.js +25 -33
  482. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +49 -58
  483. package/lib/pages/SamplingsPage/index.js +2 -3
  484. package/lib/pages/SamplingsPage/samplingsPageUtils.js +52 -83
  485. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +7 -6
  486. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +16 -16
  487. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +12 -16
  488. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  489. package/lib/pages/SitePage/PollutionContributor/index.js +3 -4
  490. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -9
  491. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +15 -15
  492. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +10 -9
  493. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +27 -24
  494. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +12 -16
  495. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +37 -33
  496. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +10 -12
  497. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -25
  498. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +14 -11
  499. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -9
  500. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -16
  501. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -71
  502. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +10 -8
  503. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -27
  504. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -9
  505. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -19
  506. package/lib/pages/SitePage/SamplingParameters/body/Body.js +10 -9
  507. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +30 -40
  508. package/lib/pages/SitePage/SamplingParameters/body/index.js +3 -4
  509. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -12
  510. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -12
  511. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +54 -54
  512. package/lib/pages/SitePage/SamplingParameters/dataParser.js +32 -41
  513. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
  514. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  515. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +5 -8
  516. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +16 -12
  517. package/lib/pages/SitePage/SiteInformation/EmptyState.js +13 -10
  518. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
  519. package/lib/pages/SitePage/SitePage.js +37 -77
  520. package/lib/pages/UploadLabResult/index.js +15 -16
  521. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +27 -37
  522. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +8 -13
  523. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +11 -15
  524. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +5 -9
  525. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -50
  526. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +11 -8
  527. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -5
  528. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +6 -9
  529. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +11 -10
  530. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  531. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +16 -13
  532. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +8 -8
  533. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +3 -4
  534. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +20 -30
  535. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +28 -40
  536. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +15 -17
  537. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -14
  538. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +26 -31
  539. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -9
  540. package/lib/pages/WbeDashboard/GraphWrapper.js +28 -35
  541. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +16 -19
  542. package/lib/pages/WbeDashboard/SearchInput.js +15 -21
  543. package/lib/pages/WbeDashboard/SummaryGraph.js +50 -77
  544. package/lib/pages/WbeDashboard/SummaryGraphModal.js +20 -18
  545. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  546. package/lib/pages/WbeDashboard/WbeDashboardPage.js +147 -210
  547. package/lib/pages/WbeDashboard/WbeSummaryBar.js +39 -48
  548. package/lib/pages/WwtpPage/DashboardCard.js +25 -21
  549. package/lib/pages/WwtpPage/DischargePatternCard.js +14 -25
  550. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +11 -11
  551. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +22 -22
  552. package/lib/pages/WwtpPage/InletsCard/index.js +3 -4
  553. package/lib/pages/WwtpPage/Map.js +6 -6
  554. package/lib/pages/WwtpPage/OrganicCard.js +4 -5
  555. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +4 -5
  556. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -7
  557. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +11 -11
  558. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +20 -17
  559. package/lib/pages/WwtpPage/PotentialSaving/index.js +3 -4
  560. package/lib/pages/WwtpPage/PotentialSaving/types.js +1 -1
  561. package/lib/pages/WwtpPage/PredictionCard.js +4 -5
  562. package/lib/pages/WwtpPage/TrendCard.js +20 -22
  563. package/lib/pages/WwtpPage/UpgradeBox.js +4 -5
  564. package/lib/pages/WwtpPage/WwtpPage.js +9 -8
  565. package/lib/pages/WwtpPage/WwtpPageContainer.js +23 -19
  566. package/lib/pages/WwtpPage/index.js +3 -4
  567. package/lib/providers/Slideshow/SlideshowContext.js +11 -10
  568. package/lib/providers/Slideshow/SlideshowProvider.js +22 -40
  569. package/lib/providers/Slideshow/SlideshowRunner.js +18 -21
  570. package/lib/providers/UrlHistory/UrlHistoryContext.js +7 -6
  571. package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -13
  572. package/lib/providers/UrlHistory/index.js +4 -4
  573. package/lib/providers/UrlHistory/useLastVisited.js +5 -6
  574. package/lib/react-app-env.d.js +1 -1
  575. package/lib/store/ImportGis/action.js +1 -1
  576. package/lib/store/ImportGis/actionTypes.js +4 -5
  577. package/lib/store/ImportGis/actionsCreator.js +7 -5
  578. package/lib/store/ImportGis/models/gisImports.js +1 -1
  579. package/lib/store/ImportGis/reducer.js +9 -7
  580. package/lib/store/WBE/actionTypes.js +2 -3
  581. package/lib/store/WBE/actions.js +1 -1
  582. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  583. package/lib/store/WBE/models/IWBE.js +1 -1
  584. package/lib/store/WBE/models/IWBEState.js +1 -1
  585. package/lib/store/WBE/reducer.js +10 -8
  586. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -15
  587. package/lib/store/WWTPDashboard/types.js +1 -1
  588. package/lib/store/areas/actionTypes.js +4 -7
  589. package/lib/store/areas/actions.js +7 -13
  590. package/lib/store/areas/models/IArea.js +1 -1
  591. package/lib/store/areas/models/IAreasState.js +1 -1
  592. package/lib/store/areas/reducer.js +8 -6
  593. package/lib/store/context/actionTypes.js +3 -5
  594. package/lib/store/context/actions.js +3 -3
  595. package/lib/store/context/contextMiddlewares.js +15 -18
  596. package/lib/store/context/models/INavContext.js +1 -1
  597. package/lib/store/context/models/INavContextState.js +1 -1
  598. package/lib/store/context/reducer.js +10 -8
  599. package/lib/store/dashboard/dashboardSlice.js +18 -11
  600. package/lib/store/dashboard/periodType.js +1 -1
  601. package/lib/store/edges/actionTypes.js +5 -9
  602. package/lib/store/edges/actions.js +4 -8
  603. package/lib/store/edges/models/IEdge.js +1 -1
  604. package/lib/store/edges/models/IEdgesState.js +1 -1
  605. package/lib/store/edges/reducer.js +13 -17
  606. package/lib/store/events/actionTypes.js +17 -33
  607. package/lib/store/events/actions.js +3 -7
  608. package/lib/store/events/models/IEvent.js +1 -1
  609. package/lib/store/events/models/IEventsState.js +1 -1
  610. package/lib/store/events/models/ISource.js +1 -1
  611. package/lib/store/events/reducer.js +28 -39
  612. package/lib/store/filters/IFilter.js +1 -1
  613. package/lib/store/filters/IFilterItem.js +1 -1
  614. package/lib/store/global/actionTypes.js +11 -21
  615. package/lib/store/global/actions.js +8 -6
  616. package/lib/store/global/models/IGlobalState.js +1 -1
  617. package/lib/store/global/reducer.js +9 -7
  618. package/lib/store/permissions/permissionsSlice.js +12 -9
  619. package/lib/store/points/actionTypes.js +3 -5
  620. package/lib/store/points/actions.js +6 -10
  621. package/lib/store/points/models/IGeoPoint.js +1 -1
  622. package/lib/store/points/models/IGroup.js +1 -1
  623. package/lib/store/points/models/IIssue.js +1 -1
  624. package/lib/store/points/models/IPoint.js +1 -1
  625. package/lib/store/points/models/IPointsState.js +1 -1
  626. package/lib/store/points/reducer.js +7 -5
  627. package/lib/store/rootActionTypes.js +2 -3
  628. package/lib/store/rootActions.js +1 -1
  629. package/lib/store/rootReducer.js +12 -10
  630. package/lib/store/rootStore.js +6 -6
  631. package/lib/store/samplings/action.js +1 -1
  632. package/lib/store/samplings/actionTypes.js +4 -5
  633. package/lib/store/samplings/actionsCreator.js +1 -1
  634. package/lib/store/samplings/models/Samplings.js +1 -1
  635. package/lib/store/samplings/reducer.js +10 -10
  636. package/lib/styles/StylesLayout.js +7 -6
  637. package/lib/styles/theme/theme.js +23 -26
  638. package/lib/test/mocks/browser.js +2 -5
  639. package/lib/test/test-utils.js +12 -9
  640. package/lib/ui-kit/Alert/KandoAlert.js +8 -6
  641. package/lib/ui-kit/Button/Button.js +129 -83
  642. package/lib/ui-kit/Button/Button.test.js +27 -33
  643. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  644. package/lib/ui-kit/Checkbox/Checkbox.js +34 -27
  645. package/lib/ui-kit/ContentCard/ContentCard.js +16 -20
  646. package/lib/ui-kit/Dashboard/Dashboard.js +29 -28
  647. package/lib/ui-kit/Dashboard/index.js +3 -4
  648. package/lib/ui-kit/DropDown/DropDown.js +23 -22
  649. package/lib/ui-kit/DropDown/DropDown.test.js +13 -13
  650. package/lib/ui-kit/DropDown/DropDownItem.js +26 -25
  651. package/lib/ui-kit/DropDown/DropdownToggle.js +13 -10
  652. package/lib/ui-kit/EmptyState/EmptyState.js +7 -6
  653. package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +69 -81
  654. package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +89 -167
  655. package/lib/ui-kit/HierarchyGraph/LeafSign.js +7 -7
  656. package/lib/ui-kit/HierarchyGraph/MicroStackedBar.js +17 -19
  657. package/lib/ui-kit/HierarchyGraph/NodeIcon.js +9 -8
  658. package/lib/ui-kit/HierarchyGraph/NodeLayout.js +22 -25
  659. package/lib/ui-kit/HierarchyGraph/PollutionContributorNode.js +11 -10
  660. package/lib/ui-kit/HierarchyGraph/ScoreNode.js +10 -9
  661. package/lib/ui-kit/HierarchyGraph/index.js +3 -4
  662. package/lib/ui-kit/HierarchyGraph/utils.js +57 -67
  663. package/lib/ui-kit/IconAction/IconAction.js +9 -8
  664. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +47 -64
  665. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +58 -49
  666. package/lib/ui-kit/InletsPie/InletsPie.js +17 -16
  667. package/lib/ui-kit/InletsPie/index.js +3 -4
  668. package/lib/ui-kit/InletsPie/options.js +7 -9
  669. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +29 -38
  670. package/lib/ui-kit/KandoFilter/KandoFilter.js +10 -11
  671. package/lib/ui-kit/KandoList/KandoList.js +13 -12
  672. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  673. package/lib/ui-kit/KandoTable/KandoTable.js +48 -41
  674. package/lib/ui-kit/KandoTable/KandoTable.test.js +21 -27
  675. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  676. package/lib/ui-kit/Layout/Layout.js +8 -7
  677. package/lib/ui-kit/MobileInput/MobileInput.js +56 -50
  678. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +14 -17
  679. package/lib/ui-kit/ModalConfirmation/index.js +2 -3
  680. package/lib/ui-kit/OrganicEvents/GaugeChart.js +9 -8
  681. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +8 -9
  682. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +26 -22
  683. package/lib/ui-kit/OrganicEvents/TextInfo.js +17 -13
  684. package/lib/ui-kit/OrganicEvents/index.js +3 -4
  685. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +12 -11
  686. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +17 -21
  687. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -4
  688. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +21 -24
  689. package/lib/ui-kit/ScoreGauge/constant.js +3 -4
  690. package/lib/ui-kit/ScoreGauge/index.js +3 -4
  691. package/lib/ui-kit/TimeLineChart/TrendChart.js +25 -28
  692. package/lib/ui-kit/TimeLineChart/index.js +3 -4
  693. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +10 -11
  694. package/lib/ui-kit/Tooltip/Tooltip.js +15 -9
  695. package/lib/ui-kit/index.js +8 -8
  696. package/lib/ui-kit/kandoStepper/KandoStepper.js +13 -14
  697. package/lib/ui-kit/siteName/SiteName.js +13 -11
  698. package/lib/utilities/ActionUtility.js +7 -7
  699. package/lib/utilities/Alert.js +23 -20
  700. package/lib/utilities/Analytics.js +19 -19
  701. package/lib/utilities/Array.js +4 -5
  702. package/lib/utilities/Enum.js +15 -51
  703. package/lib/utilities/ErrorBoundary.js +27 -42
  704. package/lib/utilities/File.js +45 -73
  705. package/lib/utilities/GetDir.js +10 -10
  706. package/lib/utilities/KandoDate.js +7 -15
  707. package/lib/utilities/KandoModal.js +16 -28
  708. package/lib/utilities/LocalStorage.js +5 -7
  709. package/lib/utilities/ThousandsToK.js +2 -2
  710. package/lib/utilities/TimeFormat.js +22 -23
  711. package/lib/utilities/Truncate.js +17 -27
  712. package/lib/utilities/edgesMath.js +15 -16
  713. package/lib/utilities/i18n.js +5 -6
  714. package/lib/utilities/kql.js +10 -12
  715. package/lib/utilities/map/icons.js +18 -18
  716. package/lib/utilities/polylinedecorator.js +88 -113
  717. package/lib/utilities/scoreToData.js +20 -26
  718. package/lib/utilities/scoreToData.test.js +5 -5
  719. package/lib/utilities/time.js +9 -10
  720. package/lib/utilities/uploadToS3.js +12 -12
  721. package/lib/utilities/urls.js +19 -16
  722. package/package.json +12 -9
  723. package/lib/components/SeasonalInsights/SeasonalInsights.js +0 -150
  724. package/lib/components/SevereEvent/UpstreamBadge.js +0 -60
  725. package/lib/components/TopBanner/TopBanner.js +0 -208
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
@@ -13,58 +13,62 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _reactRedux = require("react-redux");
14
14
  var _actions = require("store/events/actions");
15
15
  var _useUpdateEventBodyTail = _interopRequireDefault(require("hooks/useUpdateEventBodyTail"));
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
16
  // @ts-ignore
19
17
 
20
18
  function mapStateToProps(state) {
21
- var events_data = state.events_data,
22
- global_data = state.global_data,
23
- edges_data = state.edges_data;
19
+ const {
20
+ events_data,
21
+ global_data,
22
+ edges_data
23
+ } = state;
24
24
  return {
25
- events_data: events_data,
26
- global_data: global_data,
27
- edges_data: edges_data
25
+ events_data,
26
+ global_data,
27
+ edges_data
28
28
  };
29
29
  }
30
- var EventIndicator = function EventIndicator(props) {
31
- var map = props.map,
32
- events_data = props.events_data,
33
- edges_data = props.edges_data,
34
- global_data = props.global_data,
35
- event = props.event,
36
- paths = props.paths;
37
- var eventIndicator = events_data.eventIndicator;
38
- var dispatch = (0, _reactRedux.useDispatch)();
39
- var eventParts = [];
30
+ const EventIndicator = props => {
31
+ const {
32
+ map,
33
+ events_data,
34
+ edges_data,
35
+ global_data,
36
+ event,
37
+ paths
38
+ } = props;
39
+ const {
40
+ eventIndicator
41
+ } = events_data;
42
+ const dispatch = (0, _reactRedux.useDispatch)();
43
+ let eventParts = [];
40
44
  // eslint-disable-next-line etc/no-commented-out-code
41
45
 
42
- var removeExistingIndicator = function removeExistingIndicator() {
46
+ const removeExistingIndicator = () => {
43
47
  if (eventIndicator !== null) {
44
- eventIndicator.eachLayer(function (layer) {
48
+ eventIndicator.eachLayer(layer => {
45
49
  map.removeLayer(layer);
46
50
  });
47
51
  }
48
52
  };
49
- var makePairs = function makePairs(array) {
50
- var pairs = [];
51
- for (var i = 0; i < array.length; i++) {
53
+ const makePairs = array => {
54
+ let pairs = [];
55
+ for (let i = 0; i < array.length; i++) {
52
56
  if (i < array.length - 1) {
53
57
  pairs.push([array[i], array[i + 1]]);
54
58
  }
55
59
  }
56
60
  return pairs;
57
61
  };
58
- var calculateBodyAndTail = function calculateBodyAndTail(segment, bodyStart, bodyEnd) {
59
- var tailPath = [];
60
- var bodyPath = [];
61
- var foundBodyStart = false;
62
- var eventBodyStartMarker = bodyStart._latlng;
63
- var eventBodyEndMarker = bodyEnd._latlng;
64
- var subSegments = makePairs(segment._latlngs);
65
- var shouldContinue = true;
66
- for (var i = 0; i < subSegments.length; i++) {
67
- var foundBodyStartOnCurrentSubSegment = false;
62
+ const calculateBodyAndTail = (segment, bodyStart, bodyEnd) => {
63
+ let tailPath = [];
64
+ let bodyPath = [];
65
+ let foundBodyStart = false;
66
+ let eventBodyStartMarker = bodyStart._latlng;
67
+ let eventBodyEndMarker = bodyEnd._latlng;
68
+ let subSegments = makePairs(segment._latlngs);
69
+ let shouldContinue = true;
70
+ for (let i = 0; i < subSegments.length; i++) {
71
+ let foundBodyStartOnCurrentSubSegment = false;
68
72
  if (shouldContinue && !foundBodyStart) {
69
73
  // if bodyStartMarker exist on subSegment
70
74
 
@@ -77,7 +81,7 @@ var EventIndicator = function EventIndicator(props) {
77
81
  }
78
82
  }
79
83
  if (shouldContinue && foundBodyStart) {
80
- var beginningOfBody = foundBodyStartOnCurrentSubSegment ? eventBodyStartMarker : subSegments[i][0];
84
+ let beginningOfBody = foundBodyStartOnCurrentSubSegment ? eventBodyStartMarker : subSegments[i][0];
81
85
  if ((0, _leafletGeometryutil.belongsSegment)(eventBodyEndMarker, subSegments[i][0], subSegments[i][1], 0.0000001)) {
82
86
  bodyPath.push([beginningOfBody, eventBodyEndMarker]);
83
87
  shouldContinue = false;
@@ -91,12 +95,12 @@ var EventIndicator = function EventIndicator(props) {
91
95
  bodyPath: bodyPath
92
96
  };
93
97
  };
94
- var renderEventIndicator = function renderEventIndicator() {
98
+ const renderEventIndicator = () => {
95
99
  if (event !== null && event.path.length >= 1) {
96
100
  removeExistingIndicator();
97
- for (var i = 0; i < event.path.length; i++) {
101
+ for (let i = 0; i < event.path.length; i++) {
98
102
  if (event.path[i] !== undefined && event.path[i].event_body_part <= 100 && event.path[i].event_body_part > 0 && paths[i] !== undefined) {
99
- var eventBodyStart = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, paths[i]._latlngs, event.path[i].event_tail_part / 100).latLng, {
103
+ let eventBodyStart = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, paths[i]._latlngs, event.path[i].event_tail_part / 100).latLng, {
100
104
  icon: L.divIcon({
101
105
  iconAnchor: [0, 0],
102
106
  iconSize: [0, 0]
@@ -105,7 +109,7 @@ var EventIndicator = function EventIndicator(props) {
105
109
  }).addTo(map);
106
110
  eventBodyStart['kando_object_id'] = event.id;
107
111
  eventBodyStart['kando_object'] = 'EventBodyStart';
108
- var eventBodyEnd = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, paths[i]._latlngs, (event.path[i].event_body_part + event.path[i].event_tail_part) / 100).latLng, {
112
+ let eventBodyEnd = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, paths[i]._latlngs, (event.path[i].event_body_part + event.path[i].event_tail_part) / 100).latLng, {
109
113
  icon: L.divIcon({
110
114
  iconAnchor: [0, 0],
111
115
  iconSize: [0, 0]
@@ -114,8 +118,8 @@ var EventIndicator = function EventIndicator(props) {
114
118
  }).addTo(map);
115
119
  eventBodyEnd['kando_object_id'] = event.id;
116
120
  eventBodyEnd['kando_object'] = 'EventBodyEnd';
117
- var path = calculateBodyAndTail(paths[i], eventBodyStart, eventBodyEnd);
118
- var eventTail = L.polyline(path.tailPath, {
121
+ let path = calculateBodyAndTail(paths[i], eventBodyStart, eventBodyEnd);
122
+ let eventTail = L.polyline(path.tailPath, {
119
123
  color: '#f50b56',
120
124
  weight: 12,
121
125
  className: 'event-tail',
@@ -123,7 +127,7 @@ var EventIndicator = function EventIndicator(props) {
123
127
  }).addTo(map);
124
128
  eventTail['kando_object_id'] = event.id;
125
129
  eventTail['kando_object'] = 'EventTail';
126
- var eventBody = L.polyline(path.bodyPath, {
130
+ let eventBody = L.polyline(path.bodyPath, {
127
131
  color: '#f50b56',
128
132
  weight: 12,
129
133
  className: 'event-body'
@@ -131,7 +135,7 @@ var EventIndicator = function EventIndicator(props) {
131
135
  eventBody['kando_object_id'] = event.id;
132
136
  eventBody['kando_object'] = 'EventBody';
133
137
  eventBody.bringToFront();
134
- var tailDash = void 0;
138
+ let tailDash;
135
139
  if (window.L.Symbol !== undefined) {
136
140
  tailDash = window.L.polylineDecorator(eventTail._latlngs, {
137
141
  patterns: [
@@ -162,7 +166,7 @@ var EventIndicator = function EventIndicator(props) {
162
166
  weight: 1
163
167
  }).addTo(map);
164
168
  tailLine['kando_object'] = 'Decorator';
165
- var arrowHead = void 0;
169
+ let arrowHead;
166
170
  if (window.L.Symbol !== undefined) {
167
171
  arrowHead = window.L.polylineDecorator(eventBody, {
168
172
  patterns: [
@@ -186,17 +190,17 @@ var EventIndicator = function EventIndicator(props) {
186
190
  if (L.Symbol !== undefined) eventParts.push(tailDash);
187
191
  eventParts.push(eventBody, eventTail, bodyLine, arrowHead, tailLine);
188
192
  } else if (event.path[i] !== undefined && event.path[i].event_body_part === 0 && event.path[i].event_tail_part > 0 && paths[i] !== undefined) {
189
- var _eventTail = L.polyline(paths[i]._latlngs, {
193
+ let eventTail = L.polyline(paths[i]._latlngs, {
190
194
  color: '#f50b56',
191
195
  weight: 12,
192
196
  className: 'event-tail',
193
197
  opacity: 0.3
194
198
  }).addTo(map);
195
- _eventTail['kando_object_id'] = event.id;
196
- _eventTail['kando_object'] = 'EventTail';
197
- var _tailDash = void 0;
199
+ eventTail['kando_object_id'] = event.id;
200
+ eventTail['kando_object'] = 'EventTail';
201
+ let tailDash;
198
202
  if (window.L.Symbol !== undefined) {
199
- _tailDash = window.L.polylineDecorator(_eventTail._latlngs, {
203
+ tailDash = window.L.polylineDecorator(eventTail._latlngs, {
200
204
  patterns: [
201
205
  // defines a pattern of 10px-wide dashes, repeated every 20px on the line
202
206
  {
@@ -213,25 +217,25 @@ var EventIndicator = function EventIndicator(props) {
213
217
  })
214
218
  }]
215
219
  }).addTo(map);
216
- _tailDash['kando_object'] = 'Decorator';
220
+ tailDash['kando_object'] = 'Decorator';
217
221
  }
218
- tailLine = L.polyline(_eventTail._latlngs, {
222
+ tailLine = L.polyline(eventTail._latlngs, {
219
223
  color: 'rgba(255, 255, 255)',
220
224
  weight: 1
221
225
  }).addTo(map);
222
226
  tailLine['kando_object'] = 'Decorator';
223
- _tailDash.bringToFront();
224
- eventParts.push(_eventTail, tailLine);
225
- if (L.Symbol !== undefined) eventParts.push(_tailDash);
227
+ tailDash.bringToFront();
228
+ eventParts.push(eventTail, tailLine);
229
+ if (L.Symbol !== undefined) eventParts.push(tailDash);
226
230
  }
227
231
  }
228
232
  dispatch((0, _actions.setEventIndicator)(L.layerGroup(eventParts)));
229
- var bringToFront = function bringToFront() {
230
- eventParts.forEach(function (layer) {
233
+ const bringToFront = () => {
234
+ eventParts.forEach(layer => {
231
235
  layer.bringToFront();
232
236
  });
233
237
  };
234
- setTimeout(function () {
238
+ setTimeout(() => {
235
239
  bringToFront();
236
240
  }, 100);
237
241
  map.on('zoomend', function () {
@@ -240,12 +244,11 @@ var EventIndicator = function EventIndicator(props) {
240
244
  }
241
245
  };
242
246
  (0, _useUpdateEventBodyTail.default)(event !== null ? global_data.current_time : 0, event, edges_data, event.hovered);
243
- (0, _react.useEffect)(function () {
247
+ (0, _react.useEffect)(() => {
244
248
  renderEventIndicator();
245
249
  }, [paths, global_data.current_time]);
246
250
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
247
251
  };
248
- var connector = (0, _reactRedux.connect)(mapStateToProps);
249
- var _default = connector(EventIndicator);
250
- exports.default = _default;
251
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldEdlb21ldHJ5dXRpbCIsInJlcXVpcmUiLCJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3QiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX3VzZVVwZGF0ZUV2ZW50Qm9keVRhaWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwiRXZlbnRJbmRpY2F0b3IiLCJwcm9wcyIsIm1hcCIsImV2ZW50IiwicGF0aHMiLCJldmVudEluZGljYXRvciIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJldmVudFBhcnRzIiwicmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IiLCJlYWNoTGF5ZXIiLCJsYXllciIsInJlbW92ZUxheWVyIiwibWFrZVBhaXJzIiwiYXJyYXkiLCJwYWlycyIsImkiLCJsZW5ndGgiLCJwdXNoIiwiY2FsY3VsYXRlQm9keUFuZFRhaWwiLCJzZWdtZW50IiwiYm9keVN0YXJ0IiwiYm9keUVuZCIsInRhaWxQYXRoIiwiYm9keVBhdGgiLCJmb3VuZEJvZHlTdGFydCIsImV2ZW50Qm9keVN0YXJ0TWFya2VyIiwiX2xhdGxuZyIsImV2ZW50Qm9keUVuZE1hcmtlciIsInN1YlNlZ21lbnRzIiwiX2xhdGxuZ3MiLCJzaG91bGRDb250aW51ZSIsImZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCIsImJlbG9uZ3NTZWdtZW50IiwiYmVnaW5uaW5nT2ZCb2R5IiwicmVuZGVyRXZlbnRJbmRpY2F0b3IiLCJwYXRoIiwidW5kZWZpbmVkIiwiZXZlbnRfYm9keV9wYXJ0IiwiZXZlbnRCb2R5U3RhcnQiLCJtYXJrZXIiLCJpbnRlcnBvbGF0ZU9uTGluZSIsImV2ZW50X3RhaWxfcGFydCIsImxhdExuZyIsImljb24iLCJkaXZJY29uIiwiaWNvbkFuY2hvciIsImljb25TaXplIiwib3BhY2l0eSIsImFkZFRvIiwiaWQiLCJldmVudEJvZHlFbmQiLCJldmVudFRhaWwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwiZXZlbnRCb2R5IiwiYnJpbmdUb0Zyb250IiwidGFpbERhc2giLCJ3aW5kb3ciLCJTeW1ib2wiLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYm9keUxpbmUiLCJ0YWlsTGluZSIsInNldEV2ZW50SW5kaWNhdG9yIiwibGF5ZXJHcm91cCIsImZvckVhY2giLCJzZXRUaW1lb3V0Iiwib24iLCJ1c2VVcGRhdGVFdmVudEJvZHlUYWlsIiwiY3VycmVudF90aW1lIiwiaG92ZXJlZCIsInVzZUVmZmVjdCIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvZXZlbnRzL0V2ZW50SW5kaWNhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZU9uTGluZSwgYmVsb25nc1NlZ21lbnQgfSBmcm9tICdsZWFmbGV0LWdlb21ldHJ5dXRpbCc7XG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBzZXRFdmVudEluZGljYXRvciB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHVzZVVwZGF0ZUV2ZW50Qm9keVRhaWwgZnJvbSAnc3JjL2hvb2tzL3VzZVVwZGF0ZUV2ZW50Qm9keVRhaWwnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7IGV2ZW50c19kYXRhLCBnbG9iYWxfZGF0YSwgZWRnZXNfZGF0YSB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBtYXA6IGFueTtcbiAgcGF0aHM6IGFueTtcbiAgZXZlbnQ6IElFdmVudDtcbn07XG5cbmNvbnN0IEV2ZW50SW5kaWNhdG9yOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgbWFwLCBldmVudHNfZGF0YSwgZWRnZXNfZGF0YSwgZ2xvYmFsX2RhdGEsIGV2ZW50LCBwYXRocyB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgZXZlbnRJbmRpY2F0b3IgfSA9IGV2ZW50c19kYXRhO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGxldCBldmVudFBhcnRzOiBhbnlbXSA9IFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXRjL25vLWNvbW1lbnRlZC1vdXQtY29kZVxuXG4gIGNvbnN0IHJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yID0gKCkgPT4ge1xuICAgIGlmIChldmVudEluZGljYXRvciAhPT0gbnVsbCkge1xuICAgICAgZXZlbnRJbmRpY2F0b3IuZWFjaExheWVyKChsYXllcjogYW55KSA9PiB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihsYXllcik7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgbWFrZVBhaXJzID0gKGFycmF5OiBbXSkgPT4ge1xuICAgIGxldCBwYWlyczogYW55W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IGFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcGFpcnMucHVzaChbYXJyYXlbaV0sIGFycmF5W2kgKyAxXV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWlycztcbiAgfTtcblxuICBjb25zdCBjYWxjdWxhdGVCb2R5QW5kVGFpbCA9IChzZWdtZW50OiBhbnksIGJvZHlTdGFydDogYW55LCBib2R5RW5kOiBhbnkpID0+IHtcbiAgICBsZXQgdGFpbFBhdGg6IGFueVtdID0gW107XG4gICAgbGV0IGJvZHlQYXRoOiBhbnlbXSA9IFtdO1xuICAgIGxldCBmb3VuZEJvZHlTdGFydCA9IGZhbHNlO1xuICAgIGxldCBldmVudEJvZHlTdGFydE1hcmtlciA9IGJvZHlTdGFydC5fbGF0bG5nO1xuICAgIGxldCBldmVudEJvZHlFbmRNYXJrZXIgPSBib2R5RW5kLl9sYXRsbmc7XG4gICAgbGV0IHN1YlNlZ21lbnRzID0gbWFrZVBhaXJzKHNlZ21lbnQuX2xhdGxuZ3MpO1xuICAgIGxldCBzaG91bGRDb250aW51ZSA9IHRydWU7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN1YlNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50ID0gZmFsc2U7XG5cbiAgICAgIGlmIChzaG91bGRDb250aW51ZSAmJiAhZm91bmRCb2R5U3RhcnQpIHtcbiAgICAgICAgLy8gaWYgYm9keVN0YXJ0TWFya2VyIGV4aXN0IG9uIHN1YlNlZ21lbnRcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgYmVsb25nc1NlZ21lbnQoXG4gICAgICAgICAgICBldmVudEJvZHlTdGFydE1hcmtlcixcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzBdLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMV0sXG4gICAgICAgICAgICAwLjAwMDAwMDEsXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICB0YWlsUGF0aC5wdXNoKFtzdWJTZWdtZW50c1tpXVswXSwgZXZlbnRCb2R5U3RhcnRNYXJrZXJdKTtcblxuICAgICAgICAgIGZvdW5kQm9keVN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhaWxQYXRoLnB1c2goW3N1YlNlZ21lbnRzW2ldWzBdLCBzdWJTZWdtZW50c1tpXVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRDb250aW51ZSAmJiBmb3VuZEJvZHlTdGFydCkge1xuICAgICAgICBsZXQgYmVnaW5uaW5nT2ZCb2R5ID0gZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50XG4gICAgICAgICAgPyBldmVudEJvZHlTdGFydE1hcmtlclxuICAgICAgICAgIDogc3ViU2VnbWVudHNbaV1bMF07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJlbG9uZ3NTZWdtZW50KFxuICAgICAgICAgICAgZXZlbnRCb2R5RW5kTWFya2VyLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMF0sXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVsxXSxcbiAgICAgICAgICAgIDAuMDAwMDAwMSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGJvZHlQYXRoLnB1c2goW2JlZ2lubmluZ09mQm9keSwgZXZlbnRCb2R5RW5kTWFya2VyXSk7XG4gICAgICAgICAgc2hvdWxkQ29udGludWUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBib2R5UGF0aC5wdXNoKFtiZWdpbm5pbmdPZkJvZHksIHN1YlNlZ21lbnRzW2ldWzFdXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGFpbFBhdGg6IHRhaWxQYXRoLFxuICAgICAgYm9keVBhdGg6IGJvZHlQYXRoLFxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyRXZlbnRJbmRpY2F0b3IgPSAoKSA9PiB7XG4gICAgaWYgKGV2ZW50ICE9PSBudWxsICYmIGV2ZW50LnBhdGgubGVuZ3RoID49IDEpIHtcbiAgICAgIHJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yKCk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50LnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0IDw9IDEwMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50Qm9keVN0YXJ0ID0gTC5tYXJrZXIoXG4gICAgICAgICAgICBpbnRlcnBvbGF0ZU9uTGluZShcbiAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICBwYXRoc1tpXS5fbGF0bG5ncyxcbiAgICAgICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF90YWlsX3BhcnQgLyAxMDAsXG4gICAgICAgICAgICApLmxhdExuZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMCwgMF0sXG4gICAgICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudEJvZHlTdGFydFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlTdGFydFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5U3RhcnQnO1xuXG4gICAgICAgICAgbGV0IGV2ZW50Qm9keUVuZCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgcGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIChldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCArIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0KSAvXG4gICAgICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgKS5sYXRMbmcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzAsIDBdLFxuICAgICAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5RW5kWydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keUVuZFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5RW5kJztcblxuICAgICAgICAgIGxldCBwYXRoID0gY2FsY3VsYXRlQm9keUFuZFRhaWwoXG4gICAgICAgICAgICBwYXRoc1tpXSxcbiAgICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0LFxuICAgICAgICAgICAgZXZlbnRCb2R5RW5kLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBsZXQgZXZlbnRUYWlsID0gTC5wb2x5bGluZShwYXRoLnRhaWxQYXRoLCB7XG4gICAgICAgICAgICBjb2xvcjogJyNmNTBiNTYnLFxuICAgICAgICAgICAgd2VpZ2h0OiAxMixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LXRhaWwnLFxuICAgICAgICAgICAgb3BhY2l0eTogMC4zLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRUYWlsJztcblxuICAgICAgICAgIGxldCBldmVudEJvZHkgPSBMLnBvbHlsaW5lKHBhdGguYm9keVBhdGgsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtYm9keScsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudEJvZHlbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5WydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHknO1xuICAgICAgICAgIGV2ZW50Qm9keS5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgICAgIGxldCB0YWlsRGFzaDogYW55O1xuICAgICAgICAgIGlmICh3aW5kb3cuTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGFpbERhc2ggPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihldmVudFRhaWwuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAyMCxcbiAgICAgICAgICAgICAgICAgIHJlcGVhdDogNjAsXG4gICAgICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGJvZHlMaW5lID0gTC5wb2x5bGluZShldmVudEJvZHkuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuNiknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgYm9keUxpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB2YXIgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgbGV0IGFycm93SGVhZDogYW55O1xuICAgICAgICAgIGlmICh3aW5kb3cuTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXJyb3dIZWFkID0gd2luZG93LkwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICAgIGFycm93SGVhZFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKEwuU3ltYm9sICE9PSB1bmRlZmluZWQpIGV2ZW50UGFydHMucHVzaCh0YWlsRGFzaCk7XG4gICAgICAgICAgZXZlbnRQYXJ0cy5wdXNoKGV2ZW50Qm9keSwgZXZlbnRUYWlsLCBib2R5TGluZSwgYXJyb3dIZWFkLCB0YWlsTGluZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgZXZlbnQucGF0aFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPT09IDAgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCA+IDAgJiZcbiAgICAgICAgICBwYXRoc1tpXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBldmVudFRhaWwgPSBMLnBvbHlsaW5lKHBhdGhzW2ldLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJyNmNTBiNTYnLFxuICAgICAgICAgICAgd2VpZ2h0OiAxMixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LXRhaWwnLFxuICAgICAgICAgICAgb3BhY2l0eTogMC4zLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFRhaWwnO1xuXG4gICAgICAgICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0YWlsRGFzaCA9IHdpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRUYWlsLCB0YWlsTGluZSk7XG4gICAgICAgICAgaWYgKEwuU3ltYm9sICE9PSB1bmRlZmluZWQpIGV2ZW50UGFydHMucHVzaCh0YWlsRGFzaCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goc2V0RXZlbnRJbmRpY2F0b3IoTC5sYXllckdyb3VwKGV2ZW50UGFydHMpKSk7XG4gICAgICBjb25zdCBicmluZ1RvRnJvbnQgPSAoKSA9PiB7XG4gICAgICAgIGV2ZW50UGFydHMuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgICAgICAgICBsYXllci5icmluZ1RvRnJvbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgYnJpbmdUb0Zyb250KCk7XG4gICAgICB9LCAxMDApO1xuXG4gICAgICBtYXAub24oJ3pvb21lbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGJyaW5nVG9Gcm9udCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHVzZVVwZGF0ZUV2ZW50Qm9keVRhaWwoXG4gICAgZXZlbnQgIT09IG51bGwgPyBnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgOiAwLFxuICAgIGV2ZW50LFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgZXZlbnQuaG92ZXJlZCxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlbmRlckV2ZW50SW5kaWNhdG9yKCk7XG4gIH0sIFtwYXRocywgZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lXSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEV2ZW50SW5kaWNhdG9yKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFELHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBUCxPQUFBO0FBQXNFLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBUCx3QkFBQVcsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWixHQUFBLFFBQUFZLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFB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
252
+ const connector = (0, _reactRedux.connect)(mapStateToProps);
253
+ var _default = exports.default = connector(EventIndicator);
254
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldEdlb21ldHJ5dXRpbCIsInJlcXVpcmUiLCJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3QiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX3VzZVVwZGF0ZUV2ZW50Qm9keVRhaWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwibWFwU3RhdGVUb1Byb3BzIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImdsb2JhbF9kYXRhIiwiZWRnZXNfZGF0YSIsIkV2ZW50SW5kaWNhdG9yIiwicHJvcHMiLCJtYXAiLCJldmVudCIsInBhdGhzIiwiZXZlbnRJbmRpY2F0b3IiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiZXZlbnRQYXJ0cyIsInJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yIiwiZWFjaExheWVyIiwibGF5ZXIiLCJyZW1vdmVMYXllciIsIm1ha2VQYWlycyIsImFycmF5IiwicGFpcnMiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNhbGN1bGF0ZUJvZHlBbmRUYWlsIiwic2VnbWVudCIsImJvZHlTdGFydCIsImJvZHlFbmQiLCJ0YWlsUGF0aCIsImJvZHlQYXRoIiwiZm91bmRCb2R5U3RhcnQiLCJldmVudEJvZHlTdGFydE1hcmtlciIsIl9sYXRsbmciLCJldmVudEJvZHlFbmRNYXJrZXIiLCJzdWJTZWdtZW50cyIsIl9sYXRsbmdzIiwic2hvdWxkQ29udGludWUiLCJmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQiLCJiZWxvbmdzU2VnbWVudCIsImJlZ2lubmluZ09mQm9keSIsInJlbmRlckV2ZW50SW5kaWNhdG9yIiwicGF0aCIsInVuZGVmaW5lZCIsImV2ZW50X2JvZHlfcGFydCIsImV2ZW50Qm9keVN0YXJ0IiwibWFya2VyIiwiaW50ZXJwb2xhdGVPbkxpbmUiLCJldmVudF90YWlsX3BhcnQiLCJsYXRMbmciLCJpY29uIiwiZGl2SWNvbiIsImljb25BbmNob3IiLCJpY29uU2l6ZSIsIm9wYWNpdHkiLCJhZGRUbyIsImlkIiwiZXZlbnRCb2R5RW5kIiwiZXZlbnRUYWlsIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsImNsYXNzTmFtZSIsImV2ZW50Qm9keSIsImJyaW5nVG9Gcm9udCIsInRhaWxEYXNoIiwid2luZG93IiwiU3ltYm9sIiwicG9seWxpbmVEZWNvcmF0b3IiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsInN0cm9rZSIsImJvZHlMaW5lIiwidGFpbExpbmUiLCJzZXRFdmVudEluZGljYXRvciIsImxheWVyR3JvdXAiLCJmb3JFYWNoIiwic2V0VGltZW91dCIsIm9uIiwidXNlVXBkYXRlRXZlbnRCb2R5VGFpbCIsImN1cnJlbnRfdGltZSIsImhvdmVyZWQiLCJ1c2VFZmZlY3QiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGludGVycG9sYXRlT25MaW5lLCBiZWxvbmdzU2VnbWVudCB9IGZyb20gJ2xlYWZsZXQtZ2VvbWV0cnl1dGlsJztcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBwYXRoczogYW55O1xuICBldmVudDogSUV2ZW50O1xufTtcblxuY29uc3QgRXZlbnRJbmRpY2F0b3I6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBtYXAsIGV2ZW50c19kYXRhLCBlZGdlc19kYXRhLCBnbG9iYWxfZGF0YSwgZXZlbnQsIHBhdGhzIH0gPSBwcm9wcztcbiAgY29uc3QgeyBldmVudEluZGljYXRvciB9ID0gZXZlbnRzX2RhdGE7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgbGV0IGV2ZW50UGFydHM6IGFueVtdID0gW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlXG5cbiAgY29uc3QgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IgPSAoKSA9PiB7XG4gICAgaWYgKGV2ZW50SW5kaWNhdG9yICE9PSBudWxsKSB7XG4gICAgICBldmVudEluZGljYXRvci5lYWNoTGF5ZXIoKGxheWVyOiBhbnkpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBtYWtlUGFpcnMgPSAoYXJyYXk6IFtdKSA9PiB7XG4gICAgbGV0IHBhaXJzOiBhbnlbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpIDwgYXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgICBwYWlycy5wdXNoKFthcnJheVtpXSwgYXJyYXlbaSArIDFdXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhaXJzO1xuICB9O1xuXG4gIGNvbnN0IGNhbGN1bGF0ZUJvZHlBbmRUYWlsID0gKHNlZ21lbnQ6IGFueSwgYm9keVN0YXJ0OiBhbnksIGJvZHlFbmQ6IGFueSkgPT4ge1xuICAgIGxldCB0YWlsUGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgYm9keVBhdGg6IGFueVtdID0gW107XG4gICAgbGV0IGZvdW5kQm9keVN0YXJ0ID0gZmFsc2U7XG4gICAgbGV0IGV2ZW50Qm9keVN0YXJ0TWFya2VyID0gYm9keVN0YXJ0Ll9sYXRsbmc7XG4gICAgbGV0IGV2ZW50Qm9keUVuZE1hcmtlciA9IGJvZHlFbmQuX2xhdGxuZztcbiAgICBsZXQgc3ViU2VnbWVudHMgPSBtYWtlUGFpcnMoc2VnbWVudC5fbGF0bG5ncyk7XG4gICAgbGV0IHNob3VsZENvbnRpbnVlID0gdHJ1ZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3ViU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQgPSBmYWxzZTtcblxuICAgICAgaWYgKHNob3VsZENvbnRpbnVlICYmICFmb3VuZEJvZHlTdGFydCkge1xuICAgICAgICAvLyBpZiBib2R5U3RhcnRNYXJrZXIgZXhpc3Qgb24gc3ViU2VnbWVudFxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0TWFya2VyLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMF0sXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVsxXSxcbiAgICAgICAgICAgIDAuMDAwMDAwMSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRhaWxQYXRoLnB1c2goW3N1YlNlZ21lbnRzW2ldWzBdLCBldmVudEJvZHlTdGFydE1hcmtlcl0pO1xuXG4gICAgICAgICAgZm91bmRCb2R5U3RhcnQgPSB0cnVlO1xuICAgICAgICAgIGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIHN1YlNlZ21lbnRzW2ldWzFdXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZENvbnRpbnVlICYmIGZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIGxldCBiZWdpbm5pbmdPZkJvZHkgPSBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnRcbiAgICAgICAgICA/IGV2ZW50Qm9keVN0YXJ0TWFya2VyXG4gICAgICAgICAgOiBzdWJTZWdtZW50c1tpXVswXTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgYmVsb25nc1NlZ21lbnQoXG4gICAgICAgICAgICBldmVudEJvZHlFbmRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBldmVudEJvZHlFbmRNYXJrZXJdKTtcbiAgICAgICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHlQYXRoLnB1c2goW2JlZ2lubmluZ09mQm9keSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0YWlsUGF0aDogdGFpbFBhdGgsXG4gICAgICBib2R5UGF0aDogYm9keVBhdGgsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJFdmVudEluZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnQgIT09IG51bGwgJiYgZXZlbnQucGF0aC5sZW5ndGggPj0gMSkge1xuICAgICAgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXZlbnQucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQucGF0aFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPD0gMTAwICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPiAwICYmXG4gICAgICAgICAgcGF0aHNbaV0gIT09IHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBsZXQgZXZlbnRCb2R5U3RhcnQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCAvIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlTdGFydCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5RW5kID0gTC5tYXJrZXIoXG4gICAgICAgICAgICBpbnRlcnBvbGF0ZU9uTGluZShcbiAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICBwYXRoc1tpXS5fbGF0bG5ncyxcbiAgICAgICAgICAgICAgKGV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0ICsgZXZlbnQucGF0aFtpXS5ldmVudF90YWlsX3BhcnQpIC9cbiAgICAgICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICApLmxhdExuZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMCwgMF0sXG4gICAgICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5RW5kWydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlFbmQnO1xuXG4gICAgICAgICAgbGV0IHBhdGggPSBjYWxjdWxhdGVCb2R5QW5kVGFpbChcbiAgICAgICAgICAgIHBhdGhzW2ldLFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnQsXG4gICAgICAgICAgICBldmVudEJvZHlFbmQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGxldCBldmVudFRhaWwgPSBMLnBvbHlsaW5lKHBhdGgudGFpbFBhdGgsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFRhaWwnO1xuXG4gICAgICAgICAgbGV0IGV2ZW50Qm9keSA9IEwucG9seWxpbmUocGF0aC5ib2R5UGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC1ib2R5JyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keSc7XG4gICAgICAgICAgZXZlbnRCb2R5LmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICAgICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0YWlsRGFzaCA9IHdpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgYm9keUxpbmUgPSBMLnBvbHlsaW5lKGV2ZW50Qm9keS5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIC42KScsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBib2R5TGluZVsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcblxuICAgICAgICAgIHZhciB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBsZXQgYXJyb3dIZWFkOiBhbnk7XG4gICAgICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhcnJvd0hlYWQgPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihldmVudEJvZHksIHtcbiAgICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAyMCxcbiAgICAgICAgICAgICAgICAgIHJlcGVhdDogNjAsXG4gICAgICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgICAgYXJyb3dIZWFkWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkgZXZlbnRQYXJ0cy5wdXNoKHRhaWxEYXNoKTtcbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRCb2R5LCBldmVudFRhaWwsIGJvZHlMaW5lLCBhcnJvd0hlYWQsIHRhaWxMaW5lKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA9PT0gMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICBsZXQgdGFpbERhc2g6IGFueTtcbiAgICAgICAgICBpZiAod2luZG93LkwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRhaWxEYXNoID0gd2luZG93LkwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRhaWxMaW5lID0gTC5wb2x5bGluZShldmVudFRhaWwuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1KScsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICB0YWlsTGluZVsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgICAgICB0YWlsRGFzaC5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgICAgIGV2ZW50UGFydHMucHVzaChldmVudFRhaWwsIHRhaWxMaW5lKTtcbiAgICAgICAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkgZXZlbnRQYXJ0cy5wdXNoKHRhaWxEYXNoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaChzZXRFdmVudEluZGljYXRvcihMLmxheWVyR3JvdXAoZXZlbnRQYXJ0cykpKTtcbiAgICAgIGNvbnN0IGJyaW5nVG9Gcm9udCA9ICgpID0+IHtcbiAgICAgICAgZXZlbnRQYXJ0cy5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgICAgIGxheWVyLmJyaW5nVG9Gcm9udCgpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBicmluZ1RvRnJvbnQoKTtcbiAgICAgIH0sIDEwMCk7XG5cbiAgICAgIG1hcC5vbignem9vbWVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYnJpbmdUb0Zyb250KCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbChcbiAgICBldmVudCAhPT0gbnVsbCA/IGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZSA6IDAsXG4gICAgZXZlbnQsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBldmVudC5ob3ZlcmVkLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmVuZGVyRXZlbnRJbmRpY2F0b3IoKTtcbiAgfSwgW3BhdGhzLCBnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWVdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRJbmRpY2F0b3IpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBLElBQUFBLG9CQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxDQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtB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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -11,19 +11,21 @@ var _reactRedux = require("react-redux");
11
11
  var _actions = require("store/events/actions");
12
12
  // @ts-ignore
13
13
 
14
- var EventPath = function EventPath(_ref) {
15
- var event = _ref.event,
16
- global_data = _ref.global_data,
17
- _ref$eventPaths = _ref.eventPaths,
18
- eventPaths = _ref$eventPaths === void 0 ? [] : _ref$eventPaths,
19
- _ref$points_data = _ref.points_data,
20
- points_data = _ref$points_data === void 0 ? [] : _ref$points_data;
21
- var map = global_data.map;
22
- var dispatch = (0, _reactRedux.useDispatch)();
23
- var groupRef = (0, _react.useRef)(null);
14
+ const EventPath = _ref => {
15
+ let {
16
+ event,
17
+ global_data,
18
+ eventPaths = [],
19
+ points_data = []
20
+ } = _ref;
21
+ const {
22
+ map
23
+ } = global_data;
24
+ const dispatch = (0, _reactRedux.useDispatch)();
25
+ const groupRef = (0, _react.useRef)(null);
24
26
 
25
27
  // Initialize the group once
26
- (0, _react.useEffect)(function () {
28
+ (0, _react.useEffect)(() => {
27
29
  if (map) {
28
30
  if (groupRef.current) {
29
31
  groupRef.current.clearLayers();
@@ -31,7 +33,7 @@ var EventPath = function EventPath(_ref) {
31
33
  }
32
34
  groupRef.current = _leaflet.default.featureGroup().addTo(map);
33
35
  }
34
- return function () {
36
+ return () => {
35
37
  if (groupRef.current && map) {
36
38
  groupRef.current.clearLayers();
37
39
  map.removeLayer(groupRef.current);
@@ -39,9 +41,9 @@ var EventPath = function EventPath(_ref) {
39
41
  }
40
42
  };
41
43
  }, [event, map]);
42
- var drawPolyline = function drawPolyline(event, layerLatlngs, eventPathsAsMapObjects) {
44
+ const drawPolyline = (event, layerLatlngs, eventPathsAsMapObjects) => {
43
45
  if (!groupRef.current) return;
44
- var eventPath = _leaflet.default.polyline(layerLatlngs, {
46
+ let eventPath = _leaflet.default.polyline(layerLatlngs, {
45
47
  color: 'rgb(236,119,156)',
46
48
  weight: 10,
47
49
  className: 'event-path',
@@ -50,7 +52,7 @@ var EventPath = function EventPath(_ref) {
50
52
  eventPathsAsMapObjects.push(eventPath);
51
53
  eventPath['kando_object_id'] = event.id;
52
54
  eventPath['kando_object'] = 'EventPath';
53
- var tailDash;
55
+ let tailDash;
54
56
  if (window.L.Symbol !== undefined) {
55
57
  tailDash = window.L.polylineDecorator(eventPath._latlngs, {
56
58
  patterns: [{
@@ -81,10 +83,10 @@ var EventPath = function EventPath(_ref) {
81
83
  dispatch((0, _actions.setFocusedEventPaths)(eventPathsAsMapObjects));
82
84
  }
83
85
  };
84
- var buildLayerLookup = function buildLayerLookup(layers) {
85
- var lookup = {};
86
- for (var property in layers) {
87
- var layer = layers[property];
86
+ const buildLayerLookup = layers => {
87
+ const lookup = {};
88
+ for (const property in layers) {
89
+ const layer = layers[property];
88
90
  if (layer.kando_object_id !== undefined && layer.kando_object === 'Edge') {
89
91
  lookup[layer.kando_object_id] = layer;
90
92
  }
@@ -93,35 +95,33 @@ var EventPath = function EventPath(_ref) {
93
95
  };
94
96
 
95
97
  // Memoize the layer lookup so it only recalculates when map._layers changes
96
- var layerLookup = (0, _react.useMemo)(function () {
98
+ const layerLookup = (0, _react.useMemo)(() => {
97
99
  if (!map) return {};
98
100
  return buildLayerLookup(map._layers);
99
101
  }, [map, map === null || map === void 0 ? void 0 : map._layers]);
100
- var renderEventPath = function renderEventPath(event, isHover) {
102
+ const renderEventPath = (event, isHover) => {
101
103
  if (map !== undefined && groupRef.current) {
102
104
  groupRef.current.clearLayers();
103
- var eventPathsAsMapObjects = [];
105
+ let eventPathsAsMapObjects = [];
104
106
  // const layers = map._layers;
105
107
  // const layerLookup = buildLayerLookup(layers);
106
108
 
107
- event.path.forEach(function (path) {
108
- var layer = layerLookup[path.edge_id];
109
+ event.path.forEach(path => {
110
+ const layer = layerLookup[path.edge_id];
109
111
  if (layer) {
110
- var layerLatlngs = layer.getLatLngs();
112
+ let layerLatlngs = layer.getLatLngs();
111
113
  drawPolyline(event, layerLatlngs, eventPathsAsMapObjects);
112
114
  }
113
115
  });
114
116
  if (!isHover) {
115
- var validLayers = eventPathsAsMapObjects.filter(Boolean);
117
+ const validLayers = eventPathsAsMapObjects.filter(Boolean);
116
118
  if (validLayers.length !== 0) {
117
119
  if (validLayers.length >= 2) {
118
120
  map.fitBounds(_leaflet.default.featureGroup([validLayers[0], validLayers[validLayers.length - 1]]).getBounds().pad(0.1));
119
121
  }
120
122
  } else {
121
123
  if (points_data.length === 0) return;
122
- var point = points_data.find(function (point) {
123
- return point.id === event.last_observation_from_hierarchy.point_id;
124
- });
124
+ const point = points_data.find(point => point.id === event.last_observation_from_hierarchy.point_id);
125
125
  if (point && point.latitude && point.longitude) {
126
126
  map.setView([point.latitude, point.longitude], 14);
127
127
  }
@@ -129,7 +129,7 @@ var EventPath = function EventPath(_ref) {
129
129
  }
130
130
  }
131
131
  };
132
- (0, _react.useEffect)(function () {
132
+ (0, _react.useEffect)(() => {
133
133
  if (eventPaths) {
134
134
  // eventPaths.forEach((path) => {
135
135
  // map.removeLayer(path);
@@ -140,6 +140,5 @@ var EventPath = function EventPath(_ref) {
140
140
  }, [event, event.hovered]);
141
141
  return null;
142
142
  };
143
- var _default = EventPath;
144
- exports.default = _default;
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfYWN0aW9ucyIsIkV2ZW50UGF0aCIsIl9yZWYiLCJldmVudCIsImdsb2JhbF9kYXRhIiwiX3JlZiRldmVudFBhdGhzIiwiZXZlbnRQYXRocyIsIl9yZWYkcG9pbnRzX2RhdGEiLCJwb2ludHNfZGF0YSIsIm1hcCIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJncm91cFJlZiIsInVzZVJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJjbGVhckxheWVycyIsInJlbW92ZUxheWVyIiwiTCIsImZlYXR1cmVHcm91cCIsImFkZFRvIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiZXZlbnRQYXRoc0FzTWFwT2JqZWN0cyIsImV2ZW50UGF0aCIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJjbGFzc05hbWUiLCJzdHJva2UiLCJwdXNoIiwiaWQiLCJ0YWlsRGFzaCIsIndpbmRvdyIsIlN5bWJvbCIsInVuZGVmaW5lZCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsIm9wYWNpdHkiLCJob3ZlcmVkIiwic2V0SG92ZXJlZEV2ZW50UGF0aHMiLCJzZXRGb2N1c2VkRXZlbnRQYXRocyIsImJ1aWxkTGF5ZXJMb29rdXAiLCJsYXllcnMiLCJsb29rdXAiLCJwcm9wZXJ0eSIsImxheWVyIiwia2FuZG9fb2JqZWN0X2lkIiwia2FuZG9fb2JqZWN0IiwibGF5ZXJMb29rdXAiLCJ1c2VNZW1vIiwiX2xheWVycyIsInJlbmRlckV2ZW50UGF0aCIsImlzSG92ZXIiLCJwYXRoIiwiZm9yRWFjaCIsImVkZ2VfaWQiLCJnZXRMYXRMbmdzIiwidmFsaWRMYXllcnMiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwiZml0Qm91bmRzIiwiZ2V0Qm91bmRzIiwicGFkIiwicG9pbnQiLCJmaW5kIiwibGFzdF9vYnNlcnZhdGlvbl9mcm9tX2hpZXJhcmNoeSIsInBvaW50X2lkIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJzZXRWaWV3IiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRQYXRoLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgc2V0Rm9jdXNlZEV2ZW50UGF0aHMsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBldmVudFBhdGhzPzogYW55W107XG4gIHBvaW50c19kYXRhPzogYW55W107XG59O1xuXG5jb25zdCBFdmVudFBhdGg6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZ2xvYmFsX2RhdGEsXG4gIGV2ZW50UGF0aHMgPSBbXSxcbiAgcG9pbnRzX2RhdGEgPSBbXSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGdyb3VwUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gSW5pdGlhbGl6ZSB0aGUgZ3JvdXAgb25jZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIGlmIChncm91cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGdyb3VwUmVmLmN1cnJlbnQuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGdyb3VwUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgICAgZ3JvdXBSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCkuYWRkVG8obWFwKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChncm91cFJlZi5jdXJyZW50ICYmIG1hcCkge1xuICAgICAgICBncm91cFJlZi5jdXJyZW50LmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihncm91cFJlZi5jdXJyZW50KTtcbiAgICAgICAgZ3JvdXBSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2V2ZW50LCBtYXBdKTtcblxuICBjb25zdCBkcmF3UG9seWxpbmUgPSAoXG4gICAgZXZlbnQ6IElFdmVudCxcbiAgICBsYXllckxhdGxuZ3M6IGFueSxcbiAgICBldmVudFBhdGhzQXNNYXBPYmplY3RzOiBhbnksXG4gICkgPT4ge1xuICAgIGlmICghZ3JvdXBSZWYuY3VycmVudCkgcmV0dXJuO1xuXG4gICAgbGV0IGV2ZW50UGF0aCA9IEwucG9seWxpbmUobGF5ZXJMYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyMzYsMTE5LDE1NiknLFxuICAgICAgd2VpZ2h0OiAxMCxcbiAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LXBhdGgnLFxuICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgIH0pLmFkZFRvKGdyb3VwUmVmLmN1cnJlbnQpO1xuXG4gICAgZXZlbnRQYXRoc0FzTWFwT2JqZWN0cy5wdXNoKGV2ZW50UGF0aCk7XG4gICAgZXZlbnRQYXRoWydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgIGV2ZW50UGF0aFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRQYXRoJztcblxuICAgIGxldCB0YWlsRGFzaDogYW55O1xuICAgIGlmICh3aW5kb3cuTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFpbERhc2ggPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihldmVudFBhdGguX2xhdGxuZ3MsIHtcbiAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDI1NSwyNTUsMjU1KScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSkuYWRkVG8oZ3JvdXBSZWYuY3VycmVudCk7XG4gICAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnQXJyb3cnO1xuICAgICAgaWYgKHRhaWxEYXNoKSBldmVudFBhdGhzQXNNYXBPYmplY3RzLnB1c2godGFpbERhc2gpO1xuICAgICAgLy8gaWYgKHRhaWxEYXNoLmJyaW5nVG9Gcm9udCkgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG4gICAgfVxuXG4gICAgLy8gaWYgKGV2ZW50UGF0aC5icmluZ1RvRnJvbnQpIGV2ZW50UGF0aC5icmluZ1RvRnJvbnQoKTtcblxuICAgIGlmIChldmVudC5ob3ZlcmVkKSB7XG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhldmVudFBhdGhzQXNNYXBPYmplY3RzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudFBhdGhzKGV2ZW50UGF0aHNBc01hcE9iamVjdHMpKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYnVpbGRMYXllckxvb2t1cCA9IChsYXllcnMpID0+IHtcbiAgICBjb25zdCBsb29rdXAgPSB7fTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgY29uc3QgbGF5ZXIgPSBsYXllcnNbcHJvcGVydHldO1xuICAgICAgaWYgKFxuICAgICAgICBsYXllci5rYW5kb19vYmplY3RfaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBsYXllci5rYW5kb19vYmplY3QgPT09ICdFZGdlJ1xuICAgICAgKSB7XG4gICAgICAgIGxvb2t1cFtsYXllci5rYW5kb19vYmplY3RfaWRdID0gbGF5ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb29rdXA7XG4gIH07XG5cbiAgLy8gTWVtb2l6ZSB0aGUgbGF5ZXIgbG9va3VwIHNvIGl0IG9ubHkgcmVjYWxjdWxhdGVzIHdoZW4gbWFwLl9sYXllcnMgY2hhbmdlc1xuICBjb25zdCBsYXllckxvb2t1cCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghbWFwKSByZXR1cm4ge307XG4gICAgcmV0dXJuIGJ1aWxkTGF5ZXJMb29rdXAobWFwLl9sYXllcnMpO1xuICB9LCBbbWFwLCBtYXA/Ll9sYXllcnNdKTtcblxuICBjb25zdCByZW5kZXJFdmVudFBhdGggPSAoZXZlbnQ6IElFdmVudCwgaXNIb3ZlcjogYm9vbGVhbikgPT4ge1xuICAgIGlmIChtYXAgIT09IHVuZGVmaW5lZCAmJiBncm91cFJlZi5jdXJyZW50KSB7XG4gICAgICBncm91cFJlZi5jdXJyZW50LmNsZWFyTGF5ZXJzKCk7XG4gICAgICBsZXQgZXZlbnRQYXRoc0FzTWFwT2JqZWN0czogYW55W10gPSBbXTtcbiAgICAgIC8vIGNvbnN0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgLy8gY29uc3QgbGF5ZXJMb29rdXAgPSBidWlsZExheWVyTG9va3VwKGxheWVycyk7XG5cbiAgICAgIGV2ZW50LnBhdGguZm9yRWFjaCgocGF0aDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGxheWVyID0gbGF5ZXJMb29rdXBbcGF0aC5lZGdlX2lkXTtcbiAgICAgICAgaWYgKGxheWVyKSB7XG4gICAgICAgICAgbGV0IGxheWVyTGF0bG5ncyA9IGxheWVyLmdldExhdExuZ3MoKTtcbiAgICAgICAgICBkcmF3UG9seWxpbmUoZXZlbnQsIGxheWVyTGF0bG5ncywgZXZlbnRQYXRoc0FzTWFwT2JqZWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIWlzSG92ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsaWRMYXllcnMgPSBldmVudFBhdGhzQXNNYXBPYmplY3RzLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgaWYgKHZhbGlkTGF5ZXJzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIGlmICh2YWxpZExheWVycy5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgbWFwLmZpdEJvdW5kcyhcbiAgICAgICAgICAgICAgTC5mZWF0dXJlR3JvdXAoW1xuICAgICAgICAgICAgICAgIHZhbGlkTGF5ZXJzWzBdLFxuICAgICAgICAgICAgICAgIHZhbGlkTGF5ZXJzW3ZhbGlkTGF5ZXJzLmxlbmd0aCAtIDFdLFxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgIC5nZXRCb3VuZHMoKVxuICAgICAgICAgICAgICAgIC5wYWQoMC4xKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChwb2ludHNfZGF0YS5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRzX2RhdGEuZmluZChcbiAgICAgICAgICAgIChwb2ludCkgPT5cbiAgICAgICAgICAgICAgcG9pbnQuaWQgPT09IGV2ZW50Lmxhc3Rfb2JzZXJ2YXRpb25fZnJvbV9oaWVyYXJjaHkucG9pbnRfaWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAocG9pbnQgJiYgcG9pbnQubGF0aXR1ZGUgJiYgcG9pbnQubG9uZ2l0dWRlKSB7XG4gICAgICAgICAgICBtYXAuc2V0VmlldyhbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIDE0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXZlbnRQYXRocykge1xuICAgICAgLy8gZXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAvLyAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgIC8vIH0pO1xuXG4gICAgICByZW5kZXJFdmVudFBhdGgoZXZlbnQsIGV2ZW50LmhvdmVyZWQpO1xuICAgIH1cbiAgfSwgW2V2ZW50LCBldmVudC5ob3ZlcmVkXSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFdmVudFBhdGg7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFKQTs7QUFrQkEsSUFBTUksU0FBMkIsR0FBRyxTQUE5QkEsU0FBMkJBLENBQUFDLElBQUEsRUFLM0I7RUFBQSxJQUpKQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FB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
143
+ var _default = exports.default = EventPath;
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfYWN0aW9ucyIsIkV2ZW50UGF0aCIsIl9yZWYiLCJldmVudCIsImdsb2JhbF9kYXRhIiwiZXZlbnRQYXRocyIsInBvaW50c19kYXRhIiwibWFwIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImdyb3VwUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNsZWFyTGF5ZXJzIiwicmVtb3ZlTGF5ZXIiLCJMIiwiZmVhdHVyZUdyb3VwIiwiYWRkVG8iLCJkcmF3UG9seWxpbmUiLCJsYXllckxhdGxuZ3MiLCJldmVudFBhdGhzQXNNYXBPYmplY3RzIiwiZXZlbnRQYXRoIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsImNsYXNzTmFtZSIsInN0cm9rZSIsInB1c2giLCJpZCIsInRhaWxEYXNoIiwid2luZG93IiwiU3ltYm9sIiwidW5kZWZpbmVkIiwicG9seWxpbmVEZWNvcmF0b3IiLCJfbGF0bG5ncyIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwib3BhY2l0eSIsImhvdmVyZWQiLCJzZXRIb3ZlcmVkRXZlbnRQYXRocyIsInNldEZvY3VzZWRFdmVudFBhdGhzIiwiYnVpbGRMYXllckxvb2t1cCIsImxheWVycyIsImxvb2t1cCIsInByb3BlcnR5IiwibGF5ZXIiLCJrYW5kb19vYmplY3RfaWQiLCJrYW5kb19vYmplY3QiLCJsYXllckxvb2t1cCIsInVzZU1lbW8iLCJfbGF5ZXJzIiwicmVuZGVyRXZlbnRQYXRoIiwiaXNIb3ZlciIsInBhdGgiLCJmb3JFYWNoIiwiZWRnZV9pZCIsImdldExhdExuZ3MiLCJ2YWxpZExheWVycyIsImZpbHRlciIsIkJvb2xlYW4iLCJsZW5ndGgiLCJmaXRCb3VuZHMiLCJnZXRCb3VuZHMiLCJwYWQiLCJwb2ludCIsImZpbmQiLCJsYXN0X29ic2VydmF0aW9uX2Zyb21faGllcmFyY2h5IiwicG9pbnRfaWQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInNldFZpZXciLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2V2ZW50cy9FdmVudFBhdGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBzZXRGb2N1c2VkRXZlbnRQYXRocyxcbiAgc2V0SG92ZXJlZEV2ZW50UGF0aHMsXG59IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIGdsb2JhbF9kYXRhOiBJR2xvYmFsU3RhdGU7XG4gIGV2ZW50UGF0aHM/OiBhbnlbXTtcbiAgcG9pbnRzX2RhdGE/OiBhbnlbXTtcbn07XG5cbmNvbnN0IEV2ZW50UGF0aDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGV2ZW50LFxuICBnbG9iYWxfZGF0YSxcbiAgZXZlbnRQYXRocyA9IFtdLFxuICBwb2ludHNfZGF0YSA9IFtdLFxufSkgPT4ge1xuICBjb25zdCB7IG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgZ3JvdXBSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXAgfCBudWxsPihudWxsKTtcblxuICAvLyBJbml0aWFsaXplIHRoZSBncm91cCBvbmNlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1hcCkge1xuICAgICAgaWYgKGdyb3VwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZ3JvdXBSZWYuY3VycmVudC5jbGVhckxheWVycygpO1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIoZ3JvdXBSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgICBncm91cFJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKS5hZGRUbyhtYXApO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGdyb3VwUmVmLmN1cnJlbnQgJiYgbWFwKSB7XG4gICAgICAgIGdyb3VwUmVmLmN1cnJlbnQuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGdyb3VwUmVmLmN1cnJlbnQpO1xuICAgICAgICBncm91cFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbZXZlbnQsIG1hcF0pO1xuXG4gIGNvbnN0IGRyYXdQb2x5bGluZSA9IChcbiAgICBldmVudDogSUV2ZW50LFxuICAgIGxheWVyTGF0bG5nczogYW55LFxuICAgIGV2ZW50UGF0aHNBc01hcE9iamVjdHM6IGFueSxcbiAgKSA9PiB7XG4gICAgaWYgKCFncm91cFJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBsZXQgZXZlbnRQYXRoID0gTC5wb2x5bGluZShsYXllckxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDIzNiwxMTksMTU2KScsXG4gICAgICB3ZWlnaHQ6IDEwLFxuICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtcGF0aCcsXG4gICAgICBzdHJva2U6IHRydWUsXG4gICAgfSkuYWRkVG8oZ3JvdXBSZWYuY3VycmVudCk7XG5cbiAgICBldmVudFBhdGhzQXNNYXBPYmplY3RzLnB1c2goZXZlbnRQYXRoKTtcbiAgICBldmVudFBhdGhbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgZXZlbnRQYXRoWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFBhdGgnO1xuXG4gICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWlsRGFzaCA9IHdpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50UGF0aC5fbGF0bG5ncywge1xuICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2IoMjU1LDI1NSwyNTUpJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KS5hZGRUbyhncm91cFJlZi5jdXJyZW50KTtcbiAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdBcnJvdyc7XG4gICAgICBpZiAodGFpbERhc2gpIGV2ZW50UGF0aHNBc01hcE9iamVjdHMucHVzaCh0YWlsRGFzaCk7XG4gICAgICAvLyBpZiAodGFpbERhc2guYnJpbmdUb0Zyb250KSB0YWlsRGFzaC5icmluZ1RvRnJvbnQoKTtcbiAgICB9XG5cbiAgICAvLyBpZiAoZXZlbnRQYXRoLmJyaW5nVG9Gcm9udCkgZXZlbnRQYXRoLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKGV2ZW50UGF0aHNBc01hcE9iamVjdHMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50UGF0aHMoZXZlbnRQYXRoc0FzTWFwT2JqZWN0cykpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBidWlsZExheWVyTG9va3VwID0gKGxheWVycykgPT4ge1xuICAgIGNvbnN0IGxvb2t1cCA9IHt9O1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICBjb25zdCBsYXllciA9IGxheWVyc1twcm9wZXJ0eV07XG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyLmthbmRvX29iamVjdF9pZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGxheWVyLmthbmRvX29iamVjdCA9PT0gJ0VkZ2UnXG4gICAgICApIHtcbiAgICAgICAgbG9va3VwW2xheWVyLmthbmRvX29iamVjdF9pZF0gPSBsYXllcjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxvb2t1cDtcbiAgfTtcblxuICAvLyBNZW1vaXplIHRoZSBsYXllciBsb29rdXAgc28gaXQgb25seSByZWNhbGN1bGF0ZXMgd2hlbiBtYXAuX2xheWVycyBjaGFuZ2VzXG4gIGNvbnN0IGxheWVyTG9va3VwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFtYXApIHJldHVybiB7fTtcbiAgICByZXR1cm4gYnVpbGRMYXllckxvb2t1cChtYXAuX2xheWVycyk7XG4gIH0sIFttYXAsIG1hcD8uX2xheWVyc10pO1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aCA9IChldmVudDogSUV2ZW50LCBpc0hvdmVyOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKG1hcCAhPT0gdW5kZWZpbmVkICYmIGdyb3VwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGdyb3VwUmVmLmN1cnJlbnQuY2xlYXJMYXllcnMoKTtcbiAgICAgIGxldCBldmVudFBhdGhzQXNNYXBPYmplY3RzOiBhbnlbXSA9IFtdO1xuICAgICAgLy8gY29uc3QgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgICAvLyBjb25zdCBsYXllckxvb2t1cCA9IGJ1aWxkTGF5ZXJMb29rdXAobGF5ZXJzKTtcblxuICAgICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbGF5ZXIgPSBsYXllckxvb2t1cFtwYXRoLmVkZ2VfaWRdO1xuICAgICAgICBpZiAobGF5ZXIpIHtcbiAgICAgICAgICBsZXQgbGF5ZXJMYXRsbmdzID0gbGF5ZXIuZ2V0TGF0TG5ncygpO1xuICAgICAgICAgIGRyYXdQb2x5bGluZShldmVudCwgbGF5ZXJMYXRsbmdzLCBldmVudFBhdGhzQXNNYXBPYmplY3RzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghaXNIb3Zlcikge1xuICAgICAgICBjb25zdCB2YWxpZExheWVycyA9IGV2ZW50UGF0aHNBc01hcE9iamVjdHMuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICBpZiAodmFsaWRMYXllcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgaWYgKHZhbGlkTGF5ZXJzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgICAgICBtYXAuZml0Qm91bmRzKFxuICAgICAgICAgICAgICBMLmZlYXR1cmVHcm91cChbXG4gICAgICAgICAgICAgICAgdmFsaWRMYXllcnNbMF0sXG4gICAgICAgICAgICAgICAgdmFsaWRMYXllcnNbdmFsaWRMYXllcnMubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgLmdldEJvdW5kcygpXG4gICAgICAgICAgICAgICAgLnBhZCgwLjEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHBvaW50c19kYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgcG9pbnQgPSBwb2ludHNfZGF0YS5maW5kKFxuICAgICAgICAgICAgKHBvaW50KSA9PlxuICAgICAgICAgICAgICBwb2ludC5pZCA9PT0gZXZlbnQubGFzdF9vYnNlcnZhdGlvbl9mcm9tX2hpZXJhcmNoeS5wb2ludF9pZCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChwb2ludCAmJiBwb2ludC5sYXRpdHVkZSAmJiBwb2ludC5sb25naXR1ZGUpIHtcbiAgICAgICAgICAgIG1hcC5zZXRWaWV3KFtwb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXSwgMTQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChldmVudFBhdGhzKSB7XG4gICAgICAvLyBldmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgIC8vICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgLy8gfSk7XG5cbiAgICAgIHJlbmRlckV2ZW50UGF0aChldmVudCwgZXZlbnQuaG92ZXJlZCk7XG4gICAgfVxuICB9LCBbZXZlbnQsIGV2ZW50LmhvdmVyZWRdKTtcblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50UGF0aDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUpBOztBQWtCQSxNQUFNSSxTQUEyQixHQUFHQyxJQUFBLElBSzlCO0VBQUEsSUFMK0I7SUFDbkNDLEtBQUs7SUFDTEMsV0FBVztJQUNYQyxVQUFVLEdBQUcsRUFBRTtJQUNmQyxXQUFXLEdBQUc7RUFDaEIsQ0FBQyxHQUFBSixJQUFB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QUFPLENBQUM7UUFDdkMsSUFBSVYsS0FBSyxFQUFFO1VBQ1QsSUFBSWhDLFlBQVksR0FBR2dDLEtBQUssQ0FBQ1csVUFBVSxDQUFDLENBQUM7VUFDckM1QyxZQUFZLENBQUNoQixLQUFLLEVBQUVpQixZQUFZLEVBQUVDLHNCQUFzQixDQUFDO1FBQzNEO01BQ0YsQ0FBQyxDQUFDO01BRUYsSUFBSSxDQUFDc0MsT0FBTyxFQUFFO1FBQ1osTUFBTUssV0FBVyxHQUFHM0Msc0JBQXNCLENBQUM0QyxNQUFNLENBQUNDLE9BQU8sQ0FBQztRQUMxRCxJQUFJRixXQUFXLENBQUNHLE1BQU0sS0FBSyxDQUFDLEVBQUU7VUFDNUIsSUFBSUgsV0FBVyxDQUFDRyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQzNCNUQsR0FBRyxDQUFDNkQsU0FBUyxDQUNYcEQsZ0JBQUMsQ0FBQ0MsWUFBWSxDQUFDLENBQ2IrQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2RBLFdBQVcsQ0FBQ0EsV0FBVyxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQ3BDLENBQUMsQ0FDQ0UsU0FBUyxDQUFDLENBQUMsQ0FDWEMsR0FBRyxDQUFDLEdBQUcsQ0FDWixDQUFDO1VBQ0g7UUFDRixDQUFDLE1BQU07VUFDTCxJQUFJaEUsV0FBVyxDQUFDNkQsTUFBTSxLQUFLLENBQUMsRUFBRTtVQUU5QixNQUFNSSxLQUFLLEdBQUdqRSxXQUFXLENBQUNrRSxJQUFJLENBQzNCRCxLQUFLLElBQ0pBLEtBQUssQ0FBQzFDLEVBQUUsS0FBSzFCLEtBQUssQ0FBQ3NFLCtCQUErQixDQUFDQyxRQUN2RCxDQUFDO1VBQ0QsSUFBSUgsS0FBSyxJQUFJQSxLQUFLLENBQUNJLFFBQVEsSUFBSUosS0FBSyxDQUFDSyxTQUFTLEVBQUU7WUFDOUNyRSxHQUFHLENBQUNzRSxPQUFPLENBQUMsQ0FBQ04sS0FBSyxDQUFDSSxRQUFRLEVBQUVKLEtBQUssQ0FBQ0ssU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDO1VBQ3BEO1FBQ0Y7TUFDRjtJQUNGO0VBQ0YsQ0FBQztFQUVELElBQUFoRSxnQkFBUyxFQUFDLE1BQU07SUFDZCxJQUFJUCxVQUFVLEVBQUU7TUFDZDtNQUNBO01BQ0E7O01BRUFxRCxlQUFlLENBQUN2RCxLQUFLLEVBQUVBLEtBQUssQ0FBQzBDLE9BQU8sQ0FBQztJQUN2QztFQUNGLENBQUMsRUFBRSxDQUFDMUMsS0FBSyxFQUFFQSxLQUFLLENBQUMwQyxPQUFPLENBQUMsQ0FBQztFQUUxQixPQUFPLElBQUk7QUFDYixDQUFDO0FBQUMsSUFBQWlDLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWEvRSxTQUFTIiwiaWdub3JlTGlzdCI6W119