@kando-env/kando-ui 1.2.354-alpha.12 → 1.2.354-alpha.13

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