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

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