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

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 (728) hide show
  1. package/lib/Router.js +81 -40
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +35 -24
  3. package/lib/Widgets/EventsRow/EventsRow.js +39 -26
  4. package/lib/Widgets/Map/GraphUtils.js +6 -4
  5. package/lib/Widgets/Map/Map.js +139 -100
  6. package/lib/Widgets/Map/MapUtils.js +102 -83
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +84 -57
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +25 -23
  9. package/lib/Widgets/Map/areas/AreaUtils.js +46 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +5 -5
  11. package/lib/Widgets/Map/edges/Edge.js +41 -32
  12. package/lib/Widgets/Map/edges/Edges.js +24 -19
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +45 -24
  14. package/lib/Widgets/Map/events/Event.js +14 -15
  15. package/lib/Widgets/Map/events/EventIndicator.js +63 -66
  16. package/lib/Widgets/Map/events/EventPath.js +34 -33
  17. package/lib/Widgets/Map/events/EventUtils.js +78 -54
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +19 -17
  19. package/lib/Widgets/Map/events/PointOfEvent.js +36 -27
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +39 -29
  21. package/lib/Widgets/Map/events/Snail.js +11 -10
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +79 -77
  23. package/lib/Widgets/Map/map/FloatingGraph.js +21 -24
  24. package/lib/Widgets/Map/map/GraphDateButton.js +20 -27
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +14 -14
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -17
  27. package/lib/Widgets/Map/points/PointIcon.js +22 -23
  28. package/lib/Widgets/Map/points/PointMarker.js +88 -68
  29. package/lib/Widgets/Map/points/PointMarkers.js +36 -30
  30. package/lib/Widgets/Map/points/PointUtils.js +90 -76
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +43 -25
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -11
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +14 -11
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +6 -4
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +60 -28
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +4 -3
  37. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/styles.js +6 -4
  39. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +9 -12
  40. package/lib/Widgets/MostPolluting/Factories/Factories.js +65 -33
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/CardLayout.js +20 -15
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +20 -15
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +10 -9
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +11 -13
  45. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +6 -4
  46. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +3 -2
  47. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  48. package/lib/Widgets/MostPolluting/Factories/styles.js +6 -4
  49. package/lib/Widgets/MostPolluting/MostPolluting.js +34 -23
  50. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +32 -20
  51. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +5 -7
  52. package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -7
  53. package/lib/Widgets/MostPolluting/assets/index.js +12 -12
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.js +14 -20
  55. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +31 -36
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +54 -49
  57. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +40 -44
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -28
  59. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +49 -53
  60. package/lib/Widgets/MostPolluting/models.js +1 -1
  61. package/lib/Widgets/MostPolluting/styles.js +6 -4
  62. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +6 -8
  63. package/lib/Widgets/PotentialImpactSummary/Icon.js +39 -30
  64. package/lib/Widgets/PotentialImpactSummary/index.js +28 -20
  65. package/lib/Widgets/PotentialImpactSummary/index.test.js +54 -48
  66. package/lib/Widgets/PotentialImpactSummary/styles.js +13 -8
  67. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  68. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +8 -10
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +18 -23
  70. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +31 -34
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -28
  72. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +38 -35
  73. package/lib/Widgets/QualitySummary/QualitySummary.js +14 -10
  74. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +7 -4
  75. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  76. package/lib/Widgets/QualitySummary/styles.js +21 -24
  77. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +14 -12
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +25 -25
  79. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +21 -26
  80. package/lib/Widgets/UtilityInformation/UtilityInformation.js +36 -23
  81. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  82. package/lib/Widgets/UtilityInformation/styles.js +31 -30
  83. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +5 -3
  84. package/lib/assets/icons/TopNavbar/index.js +7 -7
  85. package/lib/assets/icons/TrendSvg.js +7 -7
  86. package/lib/assets/icons/index.js +16 -16
  87. package/lib/assets/icons/kandoStepper/index.js +7 -7
  88. package/lib/assets/icons/siteTypes/index.js +2 -2
  89. package/lib/components/ApplyButton/ApplyButton.js +11 -10
  90. package/lib/components/ApplyButton/index.js +4 -3
  91. package/lib/components/Backdrop/Backdrop.js +5 -7
  92. package/lib/components/ContentLoader/ContentLoader.js +10 -12
  93. package/lib/components/ContentLoader/index.js +2 -2
  94. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -12
  95. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +9 -5
  96. package/lib/components/CustomInputs/DoubleTabs/styles.js +16 -21
  97. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +20 -12
  98. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -7
  99. package/lib/components/CustomInputs/Search/Search.js +60 -37
  100. package/lib/components/CustomInputs/Search/index.js +4 -3
  101. package/lib/components/CustomInputs/Select/Select.js +55 -38
  102. package/lib/components/CustomInputs/Select/Select.stories.js +10 -6
  103. package/lib/components/DamageType/DamageType.js +60 -35
  104. package/lib/components/DamageType/index.js +4 -3
  105. package/lib/components/DataLoaderError/DataLoaderError.js +7 -9
  106. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +13 -11
  107. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +73 -72
  108. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -25
  109. package/lib/components/DischargeHeatmap/HighchartsOptions.js +16 -12
  110. package/lib/components/DischargeHeatmap/index.js +4 -3
  111. package/lib/components/DischargeHeatmap/mocks/handlers.js +6 -5
  112. package/lib/components/DischargeHeatmap/popupText.js +12 -11
  113. package/lib/components/DischargeHeatmap/titles.js +6 -4
  114. package/lib/components/DischargeHeatmap/types.js +1 -1
  115. package/lib/components/ErrorBoundary.js +42 -27
  116. package/lib/components/Events/Events.js +48 -29
  117. package/lib/components/Events/index.js +4 -3
  118. package/lib/components/Graph/Graph.js +95 -74
  119. package/lib/components/Graph/index.js +4 -3
  120. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +24 -19
  121. package/lib/components/Header/Breadcrumbs/index.js +4 -3
  122. package/lib/components/Header/DoubleTabs/DoubleTabs.js +28 -18
  123. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +9 -5
  124. package/lib/components/Header/DoubleTabs/styles.js +8 -5
  125. package/lib/components/Header/Header.js +3 -3
  126. package/lib/components/Header/Header.stories.js +9 -5
  127. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +36 -24
  128. package/lib/components/Header/InfoBar/InfoBar.js +102 -69
  129. package/lib/components/Header/InfoBar/Search/Control.js +10 -11
  130. package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -8
  131. package/lib/components/Header/InfoBar/Search/Search.js +24 -17
  132. package/lib/components/Header/InfoBar/Search/SearchContainer.js +35 -21
  133. package/lib/components/Header/InfoBar/Search/index.js +4 -3
  134. package/lib/components/Header/InfoBar/Search/searchStyle.js +49 -36
  135. package/lib/components/Header/InfoBar/TimeFilter.js +17 -13
  136. package/lib/components/Header/InfoBar/types.js +1 -1
  137. package/lib/components/Header/KandoNavbar/KandoNavbar.js +93 -66
  138. package/lib/components/Header/KandoNavbar/index.js +4 -3
  139. package/lib/components/Header/Slideshow/Slideshow.js +91 -67
  140. package/lib/components/Header/Slideshow/index.js +4 -3
  141. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +5 -7
  142. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +24 -22
  143. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +17 -17
  144. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +42 -36
  145. package/lib/components/Header/Toolbar/Toolbar.js +76 -58
  146. package/lib/components/InfoBar/InfoBar.js +24 -10
  147. package/lib/components/InfoBar/InfoBar.stories.js +9 -5
  148. package/lib/components/KandoModal/KandoModal.js +62 -26
  149. package/lib/components/KandoModal/index.js +4 -3
  150. package/lib/components/Link.js +8 -9
  151. package/lib/components/Links/CustomRedirect/CustomRedirect.js +7 -10
  152. package/lib/components/Links/StyledLink/StyledLink.js +20 -17
  153. package/lib/components/Links/StyledNavLink/StyledNavLink.js +10 -12
  154. package/lib/components/LiveEvents/CarouselSlide.js +10 -11
  155. package/lib/components/LiveEvents/LiveEvents.js +6 -7
  156. package/lib/components/LiveEvents/index.js +4 -3
  157. package/lib/components/LoaderByPercent/LoaderByPercent.js +30 -37
  158. package/lib/components/Map/Map.js +25 -20
  159. package/lib/components/Map/index.js +4 -3
  160. package/lib/components/Modal/Modal.js +10 -10
  161. package/lib/components/NarrowHeader.js +32 -18
  162. package/lib/components/PointInfo/PointInfo.js +19 -20
  163. package/lib/components/PointInfo/index.js +4 -3
  164. package/lib/components/PopupModal/PopupModal.js +17 -13
  165. package/lib/components/PopupModal/PopupModal.stories.js +24 -17
  166. package/lib/components/SeasonalInsights/SeasonalInsights.js +147 -0
  167. package/lib/components/Sector/Sector.js +40 -34
  168. package/lib/components/Sector/Sector.test.js +24 -24
  169. package/lib/components/Sector/SectorIconsNew.js +19 -26
  170. package/lib/components/Sector/index.js +4 -3
  171. package/lib/components/Sector/sectorIcons.js +5 -4
  172. package/lib/components/SevereEvent/Eta/Eta.js +54 -49
  173. package/lib/components/SevereEvent/Eta/styles.js +8 -11
  174. package/lib/components/SevereEvent/SevereEvent.js +52 -28
  175. package/lib/components/SevereEvent/SevereEvent.scss +24 -0
  176. package/lib/components/SevereEvent/UpstreamBadge.js +60 -0
  177. package/lib/components/Spinner/Spinner.js +8 -8
  178. package/lib/components/Spinner/Spinner.stories.js +11 -6
  179. package/lib/components/Spinner/index.js +4 -3
  180. package/lib/components/Spinner/styles.js +16 -21
  181. package/lib/components/Tabs/Tabs.js +31 -18
  182. package/lib/components/Tabs/Tabs.stories.js +10 -6
  183. package/lib/components/Tabs/assets/index.js +6 -6
  184. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +18 -13
  185. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +45 -32
  186. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +34 -20
  187. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +4 -3
  188. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +22 -17
  189. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +14 -13
  190. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +4 -3
  191. package/lib/components/TimeRangeSelector/TimeRangeList.js +27 -24
  192. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +27 -17
  193. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -26
  194. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +10 -6
  195. package/lib/components/TimeRangeSelector/constants.js +5 -3
  196. package/lib/components/TimeRangeSelector/index.js +4 -3
  197. package/lib/components/Toggle/Toggle.js +18 -11
  198. package/lib/components/Toggle/index.js +4 -3
  199. package/lib/components/TopBanner/TopBanner.js +235 -0
  200. package/lib/components/TopBanner/insightsDismissalStorage.js +36 -0
  201. package/lib/components/TrendGraph/TrendGraph.js +42 -24
  202. package/lib/components/TrendGraph/index.js +4 -3
  203. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +33 -26
  204. package/lib/components/TrendGraphNVL/index.js +4 -3
  205. package/lib/development-environment/index.js +13 -9
  206. package/lib/development-environment/mock/browser.js +5 -2
  207. package/lib/development-environment/mock/get.js +10 -8
  208. package/lib/development-environment/mock/handlers.js +3 -2
  209. package/lib/development-environment/mock/mockBus.js +5 -4
  210. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +3 -2
  211. package/lib/development-environment/mock/mockObjects/areaInformation.js +3 -2
  212. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +3 -2
  213. package/lib/development-environment/mock/mockObjects/areaSitesData.js +3 -2
  214. package/lib/development-environment/mock/mockObjects/areasJson.js +3 -2
  215. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +3 -2
  216. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +3 -2
  217. package/lib/development-environment/mock/mockObjects/data-menuData.js +3 -2
  218. package/lib/development-environment/mock/mockObjects/data-search.js +3 -2
  219. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +3 -2
  220. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +3 -2
  221. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +3 -2
  222. package/lib/development-environment/mock/mockObjects/eventsJson.js +3 -2
  223. package/lib/development-environment/mock/mockObjects/metascore.js +3 -2
  224. package/lib/development-environment/mock/mockObjects/permissionsJson.js +3 -2
  225. package/lib/development-environment/mock/mockObjects/pointsJson.js +3 -2
  226. package/lib/development-environment/mock/mockObjects/site-info.js +3 -2
  227. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +3 -2
  228. package/lib/development-environment/togly/ToglyDashboard.js +23 -13
  229. package/lib/development-environment/togly/ToglyItem.js +31 -24
  230. package/lib/development-environment/togly/flags.js +1 -1
  231. package/lib/development-environment/togly/init.js +4 -4
  232. package/lib/development-environment/togly/macro.js +9 -13
  233. package/lib/development-environment/togly/useDoubleKeyDown.js +9 -7
  234. package/lib/development-environment/togly/useLocalStorage.js +18 -13
  235. package/lib/hooks/useApi.js +56 -20
  236. package/lib/hooks/useApiWithDashboardQuery.js +43 -23
  237. package/lib/hooks/useClickOutside.js +5 -4
  238. package/lib/hooks/useInitializeHeaders.js +6 -6
  239. package/lib/hooks/useKandoFetch.js +31 -17
  240. package/lib/hooks/useMap.js +37 -25
  241. package/lib/hooks/useNavContext.js +26 -22
  242. package/lib/hooks/useQueryURL.js +3 -2
  243. package/lib/hooks/useRemoveExistingLayers.js +8 -7
  244. package/lib/hooks/useUpdateEventBodyTail.js +19 -14
  245. package/lib/hooks/useUserTimeZone.js +31 -34
  246. package/lib/hooks/useUserTimeZone.test.js +23 -19
  247. package/lib/hooks/useWindowSize.js +14 -7
  248. package/lib/i18n/en.json +15 -3
  249. package/lib/i18n/fr.json +4 -0
  250. package/lib/i18n/he.json +12 -1
  251. package/lib/i18n/it.json +4 -0
  252. package/lib/index.js +13 -11
  253. package/lib/macros/getVersion.js +2 -2
  254. package/lib/models/IAction.js +1 -1
  255. package/lib/models/IAppState.js +1 -1
  256. package/lib/pages/AreaPage/AreaPage.js +68 -34
  257. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +17 -15
  258. package/lib/pages/AreaPage/Dashboard/Dashboard.js +28 -26
  259. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +23 -14
  260. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +5 -5
  261. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  262. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +10 -10
  263. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +6 -4
  264. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  265. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +3 -2
  266. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +8 -5
  267. package/lib/pages/AssessmentPage/AssessmentPage.js +46 -38
  268. package/lib/pages/CannyWidget/Feedback.js +16 -14
  269. package/lib/pages/CovidPage/CovidPage.js +16 -9
  270. package/lib/pages/CovidPage/components/Body.js +30 -26
  271. package/lib/pages/CovidPage/components/Map.js +40 -28
  272. package/lib/pages/CovidPage/components/Sidebar.js +16 -15
  273. package/lib/pages/CovidPage/components/Summary.js +29 -20
  274. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +33 -26
  275. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +4 -3
  276. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +76 -52
  277. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +4 -3
  278. package/lib/pages/CovidPage/components/areas/Area.js +36 -24
  279. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +46 -45
  280. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +36 -32
  281. package/lib/pages/CovidPage/components/areas/AreasList.js +42 -29
  282. package/lib/pages/CovidPage/components/areas/Sort.js +17 -12
  283. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  284. package/lib/pages/DashboardMap/AreaCard.js +27 -27
  285. package/lib/pages/DashboardMap/AssessmentIcon.js +7 -8
  286. package/lib/pages/DashboardMap/Capacity.js +77 -28
  287. package/lib/pages/DashboardMap/FactoryCard.js +24 -28
  288. package/lib/pages/DashboardMap/HighchartsOptions.js +5 -6
  289. package/lib/pages/DashboardMap/List.js +65 -55
  290. package/lib/pages/DashboardMap/ListContext.js +19 -14
  291. package/lib/pages/DashboardMap/Loader.js +3 -3
  292. package/lib/pages/DashboardMap/SeverityBadge.js +24 -16
  293. package/lib/pages/DashboardMap/WWTPMap.js +71 -57
  294. package/lib/pages/DashboardMap/WaterDischarge.js +9 -9
  295. package/lib/pages/DashboardMap/Widget.js +67 -48
  296. package/lib/pages/DashboardMap/index.js +4 -3
  297. package/lib/pages/DashboardMap/utils.js +60 -41
  298. package/lib/pages/EventsPage/Body/Body.js +12 -15
  299. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +20 -17
  300. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -16
  301. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +9 -10
  302. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +10 -13
  303. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +31 -22
  304. package/lib/pages/EventsPage/DragAndDropArea/index.js +4 -3
  305. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +38 -30
  306. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +23 -14
  307. package/lib/pages/EventsPage/EventsPage.js +17 -10
  308. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +40 -26
  309. package/lib/pages/EventsPage/events/MoreInfo.js +19 -18
  310. package/lib/pages/EventsPage/events/Sidebar.js +11 -14
  311. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +10 -9
  312. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +24 -19
  313. package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +4 -3
  314. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +38 -31
  315. package/lib/pages/EventsPage/events/event_info/EventDetails.js +33 -35
  316. package/lib/pages/EventsPage/events/event_info/EventInfo.js +60 -50
  317. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +5 -5
  318. package/lib/pages/EventsPage/events/event_info/EventSection.js +21 -18
  319. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +23 -29
  320. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +50 -39
  321. package/lib/pages/EventsPage/events/event_info/Header/Header.js +7 -8
  322. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +35 -30
  323. package/lib/pages/EventsPage/events/event_info/Header/index.js +4 -3
  324. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +7 -6
  325. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +39 -30
  326. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +9 -6
  327. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +15 -14
  328. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +12 -9
  329. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /index.js +4 -3
  330. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +24 -23
  331. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +22 -13
  332. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +6 -7
  333. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +4 -3
  334. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +12 -13
  335. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +28 -22
  336. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +4 -3
  337. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +10 -13
  338. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +9 -8
  339. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +4 -3
  340. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +9 -9
  341. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +5 -4
  342. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +11 -13
  343. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +5 -7
  344. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +14 -11
  345. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +6 -7
  346. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +8 -9
  347. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +8 -9
  348. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +7 -8
  349. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +12 -13
  350. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +19 -18
  351. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +7 -7
  352. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +8 -9
  353. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +18 -19
  354. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +7 -6
  355. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +12 -13
  356. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +19 -23
  357. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +11 -12
  358. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +7 -8
  359. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +4 -3
  360. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +6 -4
  361. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +40 -25
  362. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +39 -30
  363. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +12 -13
  364. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +20 -17
  365. package/lib/pages/EventsPage/events/event_info/sources/Source.js +31 -27
  366. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +27 -22
  367. package/lib/pages/EventsPage/events/event_info/styles.js +15 -21
  368. package/lib/pages/EventsPage/events/events_list/EventItem.js +21 -18
  369. package/lib/pages/EventsPage/events/events_list/EventUtils.js +11 -11
  370. package/lib/pages/EventsPage/events/events_list/EventsList.js +142 -111
  371. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +58 -41
  372. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +135 -90
  373. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +76 -54
  374. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +44 -39
  375. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +41 -32
  376. package/lib/pages/EventsPage/events/events_list/Filter/SingleSelect.js +21 -19
  377. package/lib/pages/EventsPage/events/events_list/Sort.js +39 -28
  378. package/lib/pages/ImportFileWizard/FileUploadRespones.js +22 -14
  379. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +8 -9
  380. package/lib/pages/ImportFileWizard/ImportFile.js +25 -21
  381. package/lib/pages/ImportFileWizard/ResponseBody.js +36 -26
  382. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -23
  383. package/lib/pages/ImportFileWizard/ValidationResponse.js +25 -23
  384. package/lib/pages/ImportFileWizard/importFileUtils.js +5 -4
  385. package/lib/pages/ImportFileWizard/index.js +4 -3
  386. package/lib/pages/ImportGisPage/ImportGisContainer.js +27 -22
  387. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +44 -38
  388. package/lib/pages/ImportGisPage/importGisUtils.js +52 -43
  389. package/lib/pages/ImportGisProcess/index.js +18 -14
  390. package/lib/pages/ImportSiteProcess/index.js +18 -14
  391. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +13 -7
  392. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +20 -18
  393. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +4 -4
  394. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +60 -28
  395. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +12 -8
  396. package/lib/pages/NotificationsPage/Notification/Notification.js +13 -17
  397. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  398. package/lib/pages/NotificationsPage/Notifications.mock.js +3 -2
  399. package/lib/pages/NotificationsPage/Notifications.stories.js +10 -6
  400. package/lib/pages/NotificationsPage/NotificationsPage.js +38 -19
  401. package/lib/pages/NotificationsPage/assets/index.js +10 -10
  402. package/lib/pages/NotificationsPageV2/NotificationsPage.js +101 -72
  403. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +65 -95
  404. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +15 -13
  405. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +17 -19
  406. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +22 -18
  407. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +22 -18
  408. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +23 -19
  409. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +71 -82
  410. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +23 -19
  411. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -71
  412. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +94 -80
  413. package/lib/pages/NotificationsPageV2/notificationUtils.js +39 -40
  414. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  415. package/lib/pages/OldSitePage/OldSitePage.js +132 -56
  416. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +10 -6
  417. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +9 -5
  418. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +7 -9
  419. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +19 -16
  420. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -10
  421. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +19 -12
  422. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +11 -14
  423. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +9 -5
  424. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +16 -18
  425. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +64 -51
  426. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +8 -10
  427. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +54 -29
  428. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +7 -4
  429. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +19 -12
  430. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  431. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +12 -10
  432. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +23 -27
  433. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +30 -28
  434. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  435. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +8 -5
  436. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +12 -16
  437. package/lib/pages/OperationsPage/LeftPanel.js +55 -35
  438. package/lib/pages/OperationsPage/Map/Map.js +12 -12
  439. package/lib/pages/OperationsPage/Map/useMap.js +64 -52
  440. package/lib/pages/OperationsPage/OperationsContainerPage.js +59 -32
  441. package/lib/pages/OperationsPage/OperationsFilePage.js +12 -10
  442. package/lib/pages/OperationsPage/OperationsUtilityPage.js +6 -5
  443. package/lib/pages/OperationsPage/RightPanel.js +25 -22
  444. package/lib/pages/OperationsPage/index.js +4 -4
  445. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +60 -27
  446. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +25 -19
  447. package/lib/pages/PollutionRiskAssessment/FilterButton.js +10 -11
  448. package/lib/pages/PollutionRiskAssessment/Map.js +42 -38
  449. package/lib/pages/PollutionRiskAssessment/SearchButton.js +10 -11
  450. package/lib/pages/PollutionRiskAssessment/SearchField.js +40 -26
  451. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +16 -16
  452. package/lib/pages/PollutionRiskAssessment/UseCases.js +34 -32
  453. package/lib/pages/PollutionRiskAssessment/index.js +136 -76
  454. package/lib/pages/PollutionRiskAssessment/useMap.js +50 -34
  455. package/lib/pages/PollutionRiskAssessment/utils.js +7 -7
  456. package/lib/pages/ProfilePage/Container.js +4 -3
  457. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +40 -23
  458. package/lib/pages/ProfilePage/ProfilePage.js +205 -106
  459. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +34 -25
  460. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +20 -20
  461. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +30 -27
  462. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +119 -57
  463. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +23 -18
  464. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +13 -14
  465. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +45 -40
  466. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +24 -25
  467. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +19 -18
  468. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +18 -15
  469. package/lib/pages/SamplingsPage/DesktopActions/index.js +4 -3
  470. package/lib/pages/SamplingsPage/NavigationDropdown.js +31 -43
  471. package/lib/pages/SamplingsPage/NewSamplingAction.js +102 -75
  472. package/lib/pages/SamplingsPage/SamplingMobileModal.js +98 -124
  473. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +25 -23
  474. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +25 -36
  475. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +61 -36
  476. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +21 -16
  477. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -10
  478. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +193 -108
  479. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +54 -47
  480. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +39 -42
  481. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +39 -42
  482. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +28 -21
  483. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +6 -4
  484. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +7 -11
  485. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +53 -51
  486. package/lib/pages/SamplingsPage/SamplingsMobileList.js +31 -22
  487. package/lib/pages/SamplingsPage/SamplingsPage.js +33 -25
  488. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +58 -49
  489. package/lib/pages/SamplingsPage/index.js +3 -2
  490. package/lib/pages/SamplingsPage/samplingsPageUtils.js +83 -52
  491. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -7
  492. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +16 -16
  493. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +16 -12
  494. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  495. package/lib/pages/SitePage/PollutionContributor/index.js +4 -3
  496. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +9 -5
  497. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +15 -15
  498. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -10
  499. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +24 -27
  500. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +16 -12
  501. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +33 -37
  502. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -10
  503. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +25 -15
  504. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +11 -14
  505. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +9 -5
  506. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +16 -18
  507. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +71 -58
  508. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +8 -10
  509. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +27 -15
  510. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +9 -5
  511. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +19 -12
  512. package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -10
  513. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +40 -30
  514. package/lib/pages/SitePage/SamplingParameters/body/index.js +4 -3
  515. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +12 -11
  516. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +12 -10
  517. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +54 -54
  518. package/lib/pages/SitePage/SamplingParameters/dataParser.js +41 -32
  519. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
  520. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  521. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +8 -5
  522. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +12 -16
  523. package/lib/pages/SitePage/SiteInformation/EmptyState.js +10 -13
  524. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
  525. package/lib/pages/SitePage/SitePage.js +77 -37
  526. package/lib/pages/UploadLabResult/index.js +16 -15
  527. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +37 -27
  528. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +13 -8
  529. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +15 -11
  530. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +9 -5
  531. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +50 -47
  532. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +8 -11
  533. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +5 -4
  534. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +9 -6
  535. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +10 -11
  536. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  537. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +13 -16
  538. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +8 -8
  539. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +4 -3
  540. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +30 -20
  541. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +40 -28
  542. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +17 -15
  543. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +14 -7
  544. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +31 -26
  545. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -9
  546. package/lib/pages/WbeDashboard/GraphWrapper.js +35 -28
  547. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -16
  548. package/lib/pages/WbeDashboard/SearchInput.js +21 -15
  549. package/lib/pages/WbeDashboard/SummaryGraph.js +77 -50
  550. package/lib/pages/WbeDashboard/SummaryGraphModal.js +18 -20
  551. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  552. package/lib/pages/WbeDashboard/WbeDashboardPage.js +210 -147
  553. package/lib/pages/WbeDashboard/WbeSummaryBar.js +48 -39
  554. package/lib/pages/WwtpPage/DashboardCard.js +21 -25
  555. package/lib/pages/WwtpPage/DischargePatternCard.js +25 -14
  556. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +11 -11
  557. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +22 -22
  558. package/lib/pages/WwtpPage/InletsCard/index.js +4 -3
  559. package/lib/pages/WwtpPage/Map.js +6 -6
  560. package/lib/pages/WwtpPage/OrganicCard.js +5 -4
  561. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +5 -4
  562. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +7 -8
  563. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +11 -11
  564. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +17 -20
  565. package/lib/pages/WwtpPage/PotentialSaving/index.js +4 -3
  566. package/lib/pages/WwtpPage/PotentialSaving/types.js +1 -1
  567. package/lib/pages/WwtpPage/PredictionCard.js +5 -4
  568. package/lib/pages/WwtpPage/TrendCard.js +22 -20
  569. package/lib/pages/WwtpPage/UpgradeBox.js +5 -4
  570. package/lib/pages/WwtpPage/WwtpPage.js +8 -9
  571. package/lib/pages/WwtpPage/WwtpPageContainer.js +19 -23
  572. package/lib/pages/WwtpPage/index.js +4 -3
  573. package/lib/providers/Slideshow/SlideshowContext.js +10 -11
  574. package/lib/providers/Slideshow/SlideshowProvider.js +40 -22
  575. package/lib/providers/Slideshow/SlideshowRunner.js +21 -18
  576. package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -7
  577. package/lib/providers/UrlHistory/UrlHistoryProvider.js +13 -12
  578. package/lib/providers/UrlHistory/index.js +4 -4
  579. package/lib/providers/UrlHistory/useLastVisited.js +6 -5
  580. package/lib/react-app-env.d.js +1 -1
  581. package/lib/store/ImportGis/action.js +1 -1
  582. package/lib/store/ImportGis/actionTypes.js +5 -4
  583. package/lib/store/ImportGis/actionsCreator.js +5 -7
  584. package/lib/store/ImportGis/models/gisImports.js +1 -1
  585. package/lib/store/ImportGis/reducer.js +7 -9
  586. package/lib/store/WBE/actionTypes.js +3 -2
  587. package/lib/store/WBE/actions.js +1 -1
  588. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  589. package/lib/store/WBE/models/IWBE.js +1 -1
  590. package/lib/store/WBE/models/IWBEState.js +1 -1
  591. package/lib/store/WBE/reducer.js +8 -10
  592. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +15 -24
  593. package/lib/store/WWTPDashboard/types.js +1 -1
  594. package/lib/store/areas/actionTypes.js +7 -4
  595. package/lib/store/areas/actions.js +13 -7
  596. package/lib/store/areas/models/IArea.js +1 -1
  597. package/lib/store/areas/models/IAreasState.js +1 -1
  598. package/lib/store/areas/reducer.js +6 -8
  599. package/lib/store/context/actionTypes.js +5 -3
  600. package/lib/store/context/actions.js +3 -3
  601. package/lib/store/context/contextMiddlewares.js +18 -15
  602. package/lib/store/context/models/INavContext.js +1 -1
  603. package/lib/store/context/models/INavContextState.js +1 -1
  604. package/lib/store/context/reducer.js +8 -10
  605. package/lib/store/dashboard/dashboardSlice.js +11 -18
  606. package/lib/store/dashboard/periodType.js +1 -1
  607. package/lib/store/edges/actionTypes.js +9 -5
  608. package/lib/store/edges/actions.js +8 -4
  609. package/lib/store/edges/models/IEdge.js +1 -1
  610. package/lib/store/edges/models/IEdgesState.js +1 -1
  611. package/lib/store/edges/reducer.js +17 -13
  612. package/lib/store/events/actionTypes.js +33 -17
  613. package/lib/store/events/actions.js +7 -3
  614. package/lib/store/events/models/IEvent.js +1 -1
  615. package/lib/store/events/models/IEventsState.js +1 -1
  616. package/lib/store/events/models/ISource.js +1 -1
  617. package/lib/store/events/reducer.js +39 -28
  618. package/lib/store/filters/IFilter.js +1 -1
  619. package/lib/store/filters/IFilterItem.js +1 -1
  620. package/lib/store/global/actionTypes.js +21 -11
  621. package/lib/store/global/actions.js +6 -8
  622. package/lib/store/global/models/IGlobalState.js +1 -1
  623. package/lib/store/global/reducer.js +7 -9
  624. package/lib/store/permissions/permissionsSlice.js +9 -12
  625. package/lib/store/points/actionTypes.js +5 -3
  626. package/lib/store/points/actions.js +10 -6
  627. package/lib/store/points/models/IGeoPoint.js +1 -1
  628. package/lib/store/points/models/IGroup.js +1 -1
  629. package/lib/store/points/models/IIssue.js +1 -1
  630. package/lib/store/points/models/IPoint.js +1 -1
  631. package/lib/store/points/models/IPointsState.js +1 -1
  632. package/lib/store/points/reducer.js +5 -7
  633. package/lib/store/rootActionTypes.js +3 -2
  634. package/lib/store/rootActions.js +1 -1
  635. package/lib/store/rootReducer.js +10 -12
  636. package/lib/store/rootStore.js +6 -6
  637. package/lib/store/samplings/action.js +1 -1
  638. package/lib/store/samplings/actionTypes.js +5 -4
  639. package/lib/store/samplings/actionsCreator.js +1 -1
  640. package/lib/store/samplings/models/Samplings.js +1 -1
  641. package/lib/store/samplings/reducer.js +10 -10
  642. package/lib/styles/StylesLayout.js +6 -7
  643. package/lib/styles/theme/theme.js +26 -23
  644. package/lib/test/mocks/browser.js +5 -2
  645. package/lib/test/test-utils.js +9 -12
  646. package/lib/ui-kit/Alert/KandoAlert.js +6 -8
  647. package/lib/ui-kit/Button/Button.js +83 -129
  648. package/lib/ui-kit/Button/Button.test.js +33 -27
  649. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  650. package/lib/ui-kit/Checkbox/Checkbox.js +27 -34
  651. package/lib/ui-kit/ContentCard/ContentCard.js +20 -16
  652. package/lib/ui-kit/Dashboard/Dashboard.js +28 -29
  653. package/lib/ui-kit/Dashboard/index.js +4 -3
  654. package/lib/ui-kit/DropDown/DropDown.js +22 -23
  655. package/lib/ui-kit/DropDown/DropDown.test.js +13 -13
  656. package/lib/ui-kit/DropDown/DropDownItem.js +25 -26
  657. package/lib/ui-kit/DropDown/DropdownToggle.js +10 -13
  658. package/lib/ui-kit/EmptyState/EmptyState.js +6 -7
  659. package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +81 -69
  660. package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +167 -89
  661. package/lib/ui-kit/HierarchyGraph/LeafSign.js +7 -7
  662. package/lib/ui-kit/HierarchyGraph/MicroStackedBar.js +19 -17
  663. package/lib/ui-kit/HierarchyGraph/NodeIcon.js +8 -9
  664. package/lib/ui-kit/HierarchyGraph/NodeLayout.js +25 -22
  665. package/lib/ui-kit/HierarchyGraph/PollutionContributorNode.js +10 -11
  666. package/lib/ui-kit/HierarchyGraph/ScoreNode.js +9 -10
  667. package/lib/ui-kit/HierarchyGraph/index.js +4 -3
  668. package/lib/ui-kit/HierarchyGraph/utils.js +67 -57
  669. package/lib/ui-kit/IconAction/IconAction.js +8 -9
  670. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +64 -47
  671. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +49 -58
  672. package/lib/ui-kit/InletsPie/InletsPie.js +16 -17
  673. package/lib/ui-kit/InletsPie/index.js +4 -3
  674. package/lib/ui-kit/InletsPie/options.js +9 -7
  675. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +38 -29
  676. package/lib/ui-kit/KandoFilter/KandoFilter.js +11 -10
  677. package/lib/ui-kit/KandoList/KandoList.js +12 -13
  678. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  679. package/lib/ui-kit/KandoTable/KandoTable.js +41 -48
  680. package/lib/ui-kit/KandoTable/KandoTable.test.js +27 -21
  681. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  682. package/lib/ui-kit/Layout/Layout.js +7 -8
  683. package/lib/ui-kit/MobileInput/MobileInput.js +50 -56
  684. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +17 -14
  685. package/lib/ui-kit/ModalConfirmation/index.js +3 -2
  686. package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -9
  687. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +9 -8
  688. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +22 -26
  689. package/lib/ui-kit/OrganicEvents/TextInfo.js +13 -17
  690. package/lib/ui-kit/OrganicEvents/index.js +4 -3
  691. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +11 -12
  692. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +21 -17
  693. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +4 -3
  694. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +24 -21
  695. package/lib/ui-kit/ScoreGauge/constant.js +4 -3
  696. package/lib/ui-kit/ScoreGauge/index.js +4 -3
  697. package/lib/ui-kit/TimeLineChart/TrendChart.js +28 -25
  698. package/lib/ui-kit/TimeLineChart/index.js +4 -3
  699. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +11 -10
  700. package/lib/ui-kit/Tooltip/Tooltip.js +9 -15
  701. package/lib/ui-kit/index.js +8 -8
  702. package/lib/ui-kit/kandoStepper/KandoStepper.js +14 -13
  703. package/lib/ui-kit/siteName/SiteName.js +11 -13
  704. package/lib/utilities/ActionUtility.js +7 -7
  705. package/lib/utilities/Alert.js +20 -23
  706. package/lib/utilities/Analytics.js +19 -19
  707. package/lib/utilities/Array.js +5 -4
  708. package/lib/utilities/Enum.js +51 -15
  709. package/lib/utilities/ErrorBoundary.js +42 -27
  710. package/lib/utilities/File.js +73 -45
  711. package/lib/utilities/GetDir.js +10 -10
  712. package/lib/utilities/KandoDate.js +15 -7
  713. package/lib/utilities/KandoModal.js +28 -16
  714. package/lib/utilities/LocalStorage.js +7 -5
  715. package/lib/utilities/ThousandsToK.js +2 -2
  716. package/lib/utilities/TimeFormat.js +23 -22
  717. package/lib/utilities/Truncate.js +27 -17
  718. package/lib/utilities/edgesMath.js +16 -15
  719. package/lib/utilities/i18n.js +6 -5
  720. package/lib/utilities/kql.js +12 -10
  721. package/lib/utilities/map/icons.js +18 -18
  722. package/lib/utilities/polylinedecorator.js +113 -88
  723. package/lib/utilities/scoreToData.js +26 -20
  724. package/lib/utilities/scoreToData.test.js +5 -5
  725. package/lib/utilities/time.js +10 -9
  726. package/lib/utilities/uploadToS3.js +12 -12
  727. package/lib/utilities/urls.js +16 -19
  728. package/package.json +9 -12
@@ -1,18 +1,21 @@
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
  });
8
8
  exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
10
13
  var _react = _interopRequireWildcard(require("react"));
11
14
  var _reactRedux = require("react-redux");
12
15
  var _actions = require("store/context/actions");
13
16
  var _Analytics = require("../../utilities/Analytics");
14
17
  var _Map = _interopRequireDefault(require("./Map"));
15
- var _useNavContext = require("../../hooks/useNavContext");
18
+ var _useNavContext2 = require("../../hooks/useNavContext");
16
19
  var _KandoBottomSheet = _interopRequireDefault(require("../../ui-kit/KandoBottomSheet/KandoBottomSheet"));
17
20
  var _urls = require("../../utilities/urls");
18
21
  require("./index.scss");
@@ -23,44 +26,95 @@ var _use_cases = _interopRequireDefault(require("./use_cases.json"));
23
26
  var _KandoAlert = require("ui-kit/Alert/KandoAlert");
24
27
  var _SearchField = _interopRequireDefault(require("./SearchField"));
25
28
  var _SearchButton = _interopRequireDefault(require("./SearchButton"));
26
- const PollutionRiskAssessment = () => {
27
- const waterAuthorityName = (0, _reactRedux.useSelector)(state => state.global_data.waterAuthorityName);
28
- const waterAuthorityId = (0, _reactRedux.useSelector)(state => state.global_data.waterAuthorityId);
29
- const [polygonData, setPolygonData] = (0, _react.useState)();
30
- const [pointsData, setPointsData] = (0, _react.useState)();
31
- const {
32
- isRtl
33
- } = (0, _useNavContext.useNavContext)();
34
- const [shownContent, setShownContent] = (0, _react.useState)('total_savings');
35
- const [visiblePoints, setVisiblePoints] = (0, _react.useState)([]);
36
- const [useCasesFilter, setUseCasesFilter] = (0, _react.useState)('');
37
- const [mapBounds, setMapBounds] = (0, _react.useState)(null);
38
- const [isSearchFieldVisible, setIsSearchFieldVisible] = (0, _react.useState)(false);
39
- const mapRef = (0, _react.useRef)(null);
40
- const handleDismiss = () => {
29
+ 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); }
30
+ 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; }
31
+ var PollutionRiskAssessment = function PollutionRiskAssessment() {
32
+ var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
33
+ return state.global_data.waterAuthorityName;
34
+ });
35
+ var waterAuthorityId = (0, _reactRedux.useSelector)(function (state) {
36
+ return state.global_data.waterAuthorityId;
37
+ });
38
+ var _useState = (0, _react.useState)(),
39
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
40
+ polygonData = _useState2[0],
41
+ setPolygonData = _useState2[1];
42
+ var _useState3 = (0, _react.useState)(),
43
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
44
+ pointsData = _useState4[0],
45
+ setPointsData = _useState4[1];
46
+ var _useNavContext = (0, _useNavContext2.useNavContext)(),
47
+ isRtl = _useNavContext.isRtl;
48
+ var _useState5 = (0, _react.useState)('total_savings'),
49
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
50
+ shownContent = _useState6[0],
51
+ setShownContent = _useState6[1];
52
+ var _useState7 = (0, _react.useState)([]),
53
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
54
+ visiblePoints = _useState8[0],
55
+ setVisiblePoints = _useState8[1];
56
+ var _useState9 = (0, _react.useState)(''),
57
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
58
+ useCasesFilter = _useState10[0],
59
+ setUseCasesFilter = _useState10[1];
60
+ var _useState11 = (0, _react.useState)(null),
61
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
62
+ mapBounds = _useState12[0],
63
+ setMapBounds = _useState12[1];
64
+ var _useState13 = (0, _react.useState)(false),
65
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
66
+ isSearchFieldVisible = _useState14[0],
67
+ setIsSearchFieldVisible = _useState14[1];
68
+ var mapRef = (0, _react.useRef)(null);
69
+ var handleDismiss = function handleDismiss() {
41
70
  setShownContent('total_savings');
42
71
  };
43
- const dispatch = (0, _reactRedux.useDispatch)();
44
- const fetchData = async (url, setData) => {
45
- try {
46
- const response = await fetch(url);
47
- const result = await response.json();
48
- setData(result);
49
- } catch (error) {
50
- console.error("Failed to fetch data from ".concat(url, ":"), error);
51
- }
52
- };
72
+ var dispatch = (0, _reactRedux.useDispatch)();
73
+ var fetchData = /*#__PURE__*/function () {
74
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, setData) {
75
+ var response, result;
76
+ return _regenerator.default.wrap(function _callee$(_context) {
77
+ while (1) {
78
+ switch (_context.prev = _context.next) {
79
+ case 0:
80
+ _context.prev = 0;
81
+ _context.next = 3;
82
+ return fetch(url);
83
+ case 3:
84
+ response = _context.sent;
85
+ _context.next = 6;
86
+ return response.json();
87
+ case 6:
88
+ result = _context.sent;
89
+ setData(result);
90
+ _context.next = 13;
91
+ break;
92
+ case 10:
93
+ _context.prev = 10;
94
+ _context.t0 = _context["catch"](0);
95
+ console.error("Failed to fetch data from ".concat(url, ":"), _context.t0);
96
+ case 13:
97
+ case "end":
98
+ return _context.stop();
99
+ }
100
+ }
101
+ }, _callee, null, [[0, 10]]);
102
+ }));
103
+ return function fetchData(_x, _x2) {
104
+ return _ref.apply(this, arguments);
105
+ };
106
+ }();
53
107
 
54
108
  // Close the bottom sheet after 300ms when the filter is changed by the user click
55
- (0, _react.useEffect)(() => {
56
- setTimeout(() => {
109
+ (0, _react.useEffect)(function () {
110
+ setTimeout(function () {
57
111
  handleDismiss();
58
112
  }, 300);
59
113
  }, [useCasesFilter]);
60
- (0, _react.useEffect)(() => {
114
+ (0, _react.useEffect)(function () {
61
115
  if (waterAuthorityId && waterAuthorityName) {
62
- const currentGeoAreaUrl = (0, _urls.urls)({
63
- waterAuthorityId
116
+ var currentGeoAreaUrl = (0, _urls.urls)({
117
+ waterAuthorityId: waterAuthorityId
64
118
  }).PollutionRiskAssessment.currentGeoArea;
65
119
  fetchData(currentGeoAreaUrl, setPolygonData);
66
120
  (0, _Analytics.analyticsTrack)('Viewed Pollution Risk Assessment Page', {
@@ -71,27 +125,27 @@ const PollutionRiskAssessment = () => {
71
125
  }));
72
126
  }
73
127
  }, [waterAuthorityId, waterAuthorityName]);
74
- const getPolygonGeoJSON = polygonData => {
128
+ var getPolygonGeoJSON = function getPolygonGeoJSON(polygonData) {
75
129
  try {
76
- return polygonData !== null && polygonData !== void 0 && polygonData.polygon ? JSON.parse(polygonData.polygon) : [];
130
+ return (polygonData === null || polygonData === void 0 ? void 0 : polygonData.polygon) ? JSON.parse(polygonData.polygon) : [];
77
131
  } catch (error) {
78
132
  console.error('Failed to parse polygon data:', error);
79
133
  return [];
80
134
  }
81
135
  };
82
- (0, _react.useEffect)(() => {
136
+ (0, _react.useEffect)(function () {
83
137
  if (!polygonData) return;
84
- const allPointsUrl = (0, _urls.urls)({
138
+ var allPointsUrl = (0, _urls.urls)({
85
139
  waterAuthorityId: waterAuthorityId,
86
140
  id: polygonData === null || polygonData === void 0 ? void 0 : polygonData.id
87
141
  }).PollutionRiskAssessment.allPoints;
88
142
  fetchData(allPointsUrl, setPointsData);
89
143
  }, [polygonData]);
90
- (0, _react.useEffect)(() => {
91
- const maxIntervals = 5;
92
- let interval = maxIntervals;
93
- let intercomElement;
94
- const id = setInterval(() => {
144
+ (0, _react.useEffect)(function () {
145
+ var maxIntervals = 5;
146
+ var interval = maxIntervals;
147
+ var intercomElement;
148
+ var id = setInterval(function () {
95
149
  interval -= 1;
96
150
  intercomElement = document.querySelector('.intercom-lightweight-app');
97
151
  if (intercomElement) {
@@ -105,14 +159,16 @@ const PollutionRiskAssessment = () => {
105
159
  clearInterval(id);
106
160
  }
107
161
  }, 300);
108
- return () => {
162
+ return function () {
109
163
  if (intercomElement) {
110
164
  intercomElement.style.display = '';
111
165
  }
112
166
  };
113
167
  }, []);
114
- const useCase = _use_cases.default.find(useCase => useCase.id === useCasesFilter);
115
- const getBottomSheetConfig = () => {
168
+ var useCase = _use_cases.default.find(function (useCase) {
169
+ return useCase.id === useCasesFilter;
170
+ });
171
+ var getBottomSheetConfig = function getBottomSheetConfig() {
116
172
  switch (shownContent) {
117
173
  case 'total_savings':
118
174
  return {
@@ -120,10 +176,8 @@ const PollutionRiskAssessment = () => {
120
176
  points: visiblePoints,
121
177
  filteredUseCase: useCase
122
178
  }),
123
- snapPoints: _ref => {
124
- let {
125
- maxHeight
126
- } = _ref;
179
+ snapPoints: function snapPoints(_ref2) {
180
+ var maxHeight = _ref2.maxHeight;
127
181
  return [164, maxHeight - 100];
128
182
  },
129
183
  backgroundColor: '#000'
@@ -134,10 +188,8 @@ const PollutionRiskAssessment = () => {
134
188
  selectedItem: useCasesFilter,
135
189
  handleChange: setUseCasesFilter
136
190
  }),
137
- snapPoints: _ref2 => {
138
- let {
139
- maxHeight
140
- } = _ref2;
191
+ snapPoints: function snapPoints(_ref3) {
192
+ var maxHeight = _ref3.maxHeight;
141
193
  return [maxHeight - 100];
142
194
  },
143
195
  backgroundColor: '#fff'
@@ -145,17 +197,18 @@ const PollutionRiskAssessment = () => {
145
197
  default:
146
198
  return {
147
199
  content: null,
148
- snapPoints: () => [0],
200
+ snapPoints: function snapPoints() {
201
+ return [0];
202
+ },
149
203
  backgroundColor: '#000'
150
204
  };
151
205
  }
152
206
  };
153
- const {
154
- content,
155
- snapPoints,
156
- backgroundColor
157
- } = (0, _react.useMemo)(getBottomSheetConfig, [shownContent, useCasesFilter, visiblePoints]);
158
- const bottomSheet = (0, _react.useMemo)(() => {
207
+ var _useMemo = (0, _react.useMemo)(getBottomSheetConfig, [shownContent, useCasesFilter, visiblePoints]),
208
+ content = _useMemo.content,
209
+ snapPoints = _useMemo.snapPoints,
210
+ backgroundColor = _useMemo.backgroundColor;
211
+ var bottomSheet = (0, _react.useMemo)(function () {
159
212
  return /*#__PURE__*/_react.default.createElement(_KandoBottomSheet.default, {
160
213
  backgroundColor: backgroundColor,
161
214
  snapPoints: snapPoints,
@@ -163,46 +216,52 @@ const PollutionRiskAssessment = () => {
163
216
  isOpen: true
164
217
  }, content);
165
218
  }, [visiblePoints, shownContent]);
166
- (0, _react.useEffect)(() => {
219
+ (0, _react.useEffect)(function () {
167
220
  if (!mapBounds || !pointsData) return;
168
- const filteredPoints = pointsData.filter(point => {
221
+ var filteredPoints = pointsData.filter(function (point) {
169
222
  return point.lat >= mapBounds.getSouthWest().lat && point.lat <= mapBounds.getNorthEast().lat && point.lng >= mapBounds.getSouthWest().lng && point.lng <= mapBounds.getNorthEast().lng;
170
223
  });
171
224
  setVisiblePoints(filteredPoints);
172
225
  }, [mapBounds, pointsData]);
173
- const handleBoundsChange = (0, _react.useCallback)(bounds => {
226
+ var handleBoundsChange = (0, _react.useCallback)(function (bounds) {
174
227
  setMapBounds(bounds);
175
228
  }, []);
176
- const filterButtonClick = () => {
177
- setShownContent(prevContent => prevContent === 'filter_behaviors' ? 'total_savings' : 'filter_behaviors');
229
+ var filterButtonClick = function filterButtonClick() {
230
+ setShownContent(function (prevContent) {
231
+ return prevContent === 'filter_behaviors' ? 'total_savings' : 'filter_behaviors';
232
+ });
178
233
  };
179
- const searchButtonClick = () => {
180
- setIsSearchFieldVisible(prevVisible => !prevVisible);
234
+ var searchButtonClick = function searchButtonClick() {
235
+ setIsSearchFieldVisible(function (prevVisible) {
236
+ return !prevVisible;
237
+ });
181
238
  closePopup();
182
239
  };
183
- const filterButtonState = (0, _react.useMemo)(() => {
240
+ var filterButtonState = (0, _react.useMemo)(function () {
184
241
  if (shownContent === 'filter_behaviors') {
185
242
  return 'filled';
186
243
  }
187
244
  return useCasesFilter !== '' ? 'filled-red' : '';
188
245
  }, [shownContent, useCasesFilter]);
189
- const zoomToPoint = (lat, lng) => {
246
+ var zoomToPoint = function zoomToPoint(lat, lng) {
190
247
  if (mapRef.current) {
191
248
  mapRef.current.zoomToPoint(lat, lng); // Set to max zoom level 18
192
249
  }
193
250
  };
194
- const clickOnMarker = (lat, lng) => {
251
+
252
+ var clickOnMarker = function clickOnMarker(lat, lng) {
195
253
  if (mapRef.current) {
196
254
  mapRef.current.clickOnMarker(lat, lng); // Set to max zoom level 18
197
255
  }
198
256
  };
199
- const closePopup = () => {
257
+
258
+ var closePopup = function closePopup() {
200
259
  if (mapRef.current) {
201
260
  mapRef.current.closePopup();
202
261
  }
203
262
  };
204
263
  if (!pointsData || !polygonData) return null;
205
- if (!(polygonData !== null && polygonData !== void 0 && polygonData.id)) {
264
+ if (!(polygonData === null || polygonData === void 0 ? void 0 : polygonData.id)) {
206
265
  return /*#__PURE__*/_react.default.createElement(_KandoAlert.KandoAlert, {
207
266
  variant: "danger",
208
267
  header: 'Heads up!'
@@ -235,13 +294,14 @@ const PollutionRiskAssessment = () => {
235
294
  onClick: searchButtonClick
236
295
  }));
237
296
  };
238
- var _default = exports.default = PollutionRiskAssessment;
239
- const MapTableContainer = _styledComponents.default.div.withConfig({
297
+ var _default = PollutionRiskAssessment;
298
+ exports.default = _default;
299
+ var MapTableContainer = _styledComponents.default.div.withConfig({
240
300
  displayName: "PollutionRiskAssessment__MapTableContainer",
241
301
  componentId: "sc-peb1i1-0"
242
302
  })(["position:fixed;top:65px;height:calc(100vh - 20px);width:100vw;#map{height:100%;width:100%;*,*:focus,*:hover{outline:none;}}"]);
243
- const SearchFieldContainer = _styledComponents.default.div.withConfig({
303
+ var SearchFieldContainer = _styledComponents.default.div.withConfig({
244
304
  displayName: "PollutionRiskAssessment__SearchFieldContainer",
245
305
  componentId: "sc-peb1i1-1"
246
306
  })(["position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:2000;width:300px;background:rgba(255,255,255,0);border-radius:8px;padding:10px;"]);
247
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX0FuYWx5dGljcyIsIl9NYXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZU5hdkNvbnRleHQiLCJfS2FuZG9Cb3R0b21TaGVldCIsIl91cmxzIiwiX1RvdGFsU2F2aW5ncyIsIl9GaWx0ZXJCZWhhdmlvcnMiLCJfRmlsdGVyQnV0dG9uIiwiX3VzZV9jYXNlcyIsIl9LYW5kb0FsZXJ0IiwiX1NlYXJjaEZpZWxkIiwiX1NlYXJjaEJ1dHRvbiIsIlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50Iiwid2F0ZXJBdXRob3JpdHlOYW1lIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsInBvbHlnb25EYXRhIiwic2V0UG9seWdvbkRhdGEiLCJ1c2VTdGF0ZSIsInBvaW50c0RhdGEiLCJzZXRQb2ludHNEYXRhIiwiaXNSdGwiLCJ1c2VOYXZDb250ZXh0Iiwic2hvd25Db250ZW50Iiwic2V0U2hvd25Db250ZW50IiwidmlzaWJsZVBvaW50cyIsInNldFZpc2libGVQb2ludHMiLCJ1c2VDYXNlc0ZpbHRlciIsInNldFVzZUNhc2VzRmlsdGVyIiwibWFwQm91bmRzIiwic2V0TWFwQm91bmRzIiwiaXNTZWFyY2hGaWVsZFZpc2libGUiLCJzZXRJc1NlYXJjaEZpZWxkVmlzaWJsZSIsIm1hcFJlZiIsInVzZVJlZiIsImhhbmRsZURpc21pc3MiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiZmV0Y2hEYXRhIiwidXJsIiwic2V0RGF0YSIsInJlc3BvbnNlIiwiZmV0Y2giLCJyZXN1bHQiLCJqc29uIiwiZXJyb3IiLCJjb25zb2xlIiwiY29uY2F0IiwidXNlRWZmZWN0Iiwic2V0VGltZW91dCIsImN1cnJlbnRHZW9BcmVhVXJsIiwidXJscyIsImN1cnJlbnRHZW9BcmVhIiwiYW5hbHl0aWNzVHJhY2siLCJ1dGlsaXR5X25hbWUiLCJ1cGRhdGVOYXZDb250ZXh0IiwibmFtZSIsImdldFBvbHlnb25HZW9KU09OIiwicG9seWdvbiIsIkpTT04iLCJwYXJzZSIsImFsbFBvaW50c1VybCIsImlkIiwiYWxsUG9pbnRzIiwibWF4SW50ZXJ2YWxzIiwiaW50ZXJ2YWwiLCJpbnRlcmNvbUVsZW1lbnQiLCJzZXRJbnRlcnZhbCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInN0eWxlIiwiZGlzcGxheSIsImNsZWFySW50ZXJ2YWwiLCJ1c2VDYXNlIiwidXNlQ2FzZXMiLCJmaW5kIiwiZ2V0Qm90dG9tU2hlZXRDb25maWciLCJjb250ZW50IiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJUb3RhbFNhdmluZ3MiLCJwb2ludHMiLCJmaWx0ZXJlZFVzZUNhc2UiLCJzbmFwUG9pbnRzIiwiX3JlZiIsIm1heEhlaWdodCIsImJhY2tncm91bmRDb2xvciIsIkZpbHRlckJlaGF2aW9ycyIsInNlbGVjdGVkSXRlbSIsImhhbmRsZUNoYW5nZSIsIl9yZWYyIiwidXNlTWVtbyIsImJvdHRvbVNoZWV0Iiwib25EaXNtaXNzIiwiaXNPcGVuIiwiZmlsdGVyZWRQb2ludHMiLCJmaWx0ZXIiLCJwb2ludCIsImxhdCIsImdldFNvdXRoV2VzdCIsImdldE5vcnRoRWFzdCIsImxuZyIsImhhbmRsZUJvdW5kc0NoYW5nZSIsInVzZUNhbGxiYWNrIiwiYm91bmRzIiwiZmlsdGVyQnV0dG9uQ2xpY2siLCJwcmV2Q29udGVudCIsInNlYXJjaEJ1dHRvbkNsaWNrIiwicHJldlZpc2libGUiLCJjbG9zZVBvcHVwIiwiZmlsdGVyQnV0dG9uU3RhdGUiLCJ6b29tVG9Qb2ludCIsImN1cnJlbnQiLCJjbGlja09uTWFya2VyIiwiS2FuZG9BbGVydCIsInZhcmlhbnQiLCJoZWFkZXIiLCJocmVmIiwiY2xhc3NOYW1lIiwiTWFwVGFibGVDb250YWluZXIiLCJyZWYiLCJjb2RlIiwib25Cb3VuZHNDaGFuZ2UiLCJTZWFyY2hGaWVsZENvbnRhaW5lciIsInN1Z2dlc3Rpb25zIiwiYnV0dG9uU3RhdGUiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1cGRhdGVOYXZDb250ZXh0IH0gZnJvbSAnc3JjL3N0b3JlL2NvbnRleHQvYWN0aW9ucyc7XG5pbXBvcnQgeyBhbmFseXRpY3NUcmFjayB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuaW1wb3J0IE1hcCBmcm9tICcuL01hcCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHVzZU5hdkNvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VOYXZDb250ZXh0JztcbmltcG9ydCBLYW5kb0JvdHRvbVNoZWV0IGZyb20gJy4uLy4uL3VpLWtpdC9LYW5kb0JvdHRvbVNoZWV0L0thbmRvQm90dG9tU2hlZXQnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IElHZW9Qb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lHZW9Qb2ludCc7XG5pbXBvcnQgTCwgeyBHZW9KU09OIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJy4vaW5kZXguc2Nzcyc7XG5pbXBvcnQgeyBUb3RhbFNhdmluZ3MgfSBmcm9tICcuL1RvdGFsU2F2aW5ncyc7XG5pbXBvcnQgeyBGaWx0ZXJCZWhhdmlvcnMgfSBmcm9tICcuL0ZpbHRlckJlaGF2aW9ycyc7XG5pbXBvcnQgRmlsdGVyQnV0dG9uIGZyb20gJy4vRmlsdGVyQnV0dG9uJztcbmltcG9ydCB1c2VDYXNlcyBmcm9tICcuL3VzZV9jYXNlcy5qc29uJztcbmltcG9ydCB7IEthbmRvQWxlcnQgfSBmcm9tICdzcmMvdWkta2l0L0FsZXJ0L0thbmRvQWxlcnQnO1xuaW1wb3J0IFNlYXJjaEZpZWxkIGZyb20gJy4vU2VhcmNoRmllbGQnO1xuaW1wb3J0IFNlYXJjaEJ1dHRvbiBmcm9tICcuL1NlYXJjaEJ1dHRvbic7XG5cbmNvbnN0IFBvbGx1dGlvblJpc2tBc3Nlc3NtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IFtwb2x5Z29uRGF0YSwgc2V0UG9seWdvbkRhdGFdID0gdXNlU3RhdGU8R2VvSlNPTj4oKTtcbiAgY29uc3QgW3BvaW50c0RhdGEsIHNldFBvaW50c0RhdGFdID0gdXNlU3RhdGU8SUdlb1BvaW50W10+KCk7XG4gIGNvbnN0IHsgaXNSdGwgfSA9IHVzZU5hdkNvbnRleHQoKTtcbiAgY29uc3QgW3Nob3duQ29udGVudCwgc2V0U2hvd25Db250ZW50XSA9IHVzZVN0YXRlKCd0b3RhbF9zYXZpbmdzJyk7XG4gIGNvbnN0IFt2aXNpYmxlUG9pbnRzLCBzZXRWaXNpYmxlUG9pbnRzXSA9IHVzZVN0YXRlPElHZW9Qb2ludFtdPihbXSk7XG4gIGNvbnN0IFt1c2VDYXNlc0ZpbHRlciwgc2V0VXNlQ2FzZXNGaWx0ZXJdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbbWFwQm91bmRzLCBzZXRNYXBCb3VuZHNdID0gdXNlU3RhdGU8TC5MYXRMbmdCb3VuZHMgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2lzU2VhcmNoRmllbGRWaXNpYmxlLCBzZXRJc1NlYXJjaEZpZWxkVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjx7XG4gICAgem9vbVRvUG9pbnQ6IChsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpID0+IHZvaWQ7XG4gICAgY2xpY2tPbk1hcmtlcjogKGxhdDogbnVtYmVyLCBsbmc6IG51bWJlcikgPT4gdm9pZDtcbiAgICBjbG9zZVBvcHVwOiAoKSA9PiB2b2lkO1xuICB9PihudWxsKTtcblxuICBjb25zdCBoYW5kbGVEaXNtaXNzID0gKCkgPT4ge1xuICAgIHNldFNob3duQ29udGVudCgndG90YWxfc2F2aW5ncycpO1xuICB9O1xuXG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgZmV0Y2hEYXRhID0gYXN5bmMgPFQsPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBzZXREYXRhOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxUPj4sXG4gICkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBzZXREYXRhKHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCBkYXRhIGZyb20gJHt1cmx9OmAsIGVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gQ2xvc2UgdGhlIGJvdHRvbSBzaGVldCBhZnRlciAzMDBtcyB3aGVuIHRoZSBmaWx0ZXIgaXMgY2hhbmdlZCBieSB0aGUgdXNlciBjbGlja1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaGFuZGxlRGlzbWlzcygpO1xuICAgIH0sIDMwMCk7XG4gIH0sIFt1c2VDYXNlc0ZpbHRlcl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXR5SWQgJiYgd2F0ZXJBdXRob3JpdHlOYW1lKSB7XG4gICAgICBjb25zdCBjdXJyZW50R2VvQXJlYVVybCA9IHVybHMoeyB3YXRlckF1dGhvcml0eUlkIH0pXG4gICAgICAgIC5Qb2xsdXRpb25SaXNrQXNzZXNzbWVudC5jdXJyZW50R2VvQXJlYTtcbiAgICAgIGZldGNoRGF0YShjdXJyZW50R2VvQXJlYVVybCwgc2V0UG9seWdvbkRhdGEpO1xuXG4gICAgICBhbmFseXRpY3NUcmFjaygnVmlld2VkIFBvbGx1dGlvbiBSaXNrIEFzc2Vzc21lbnQgUGFnZScsIHtcbiAgICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgICB9KTtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZU5hdkNvbnRleHQoeyBuYW1lOiAncG9sbHV0aW9uLXJpc2stYXNzZXNzbWVudCcgfSkpO1xuICAgIH1cbiAgfSwgW3dhdGVyQXV0aG9yaXR5SWQsIHdhdGVyQXV0aG9yaXR5TmFtZV0pO1xuXG4gIGNvbnN0IGdldFBvbHlnb25HZW9KU09OID0gKHBvbHlnb25EYXRhKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwb2x5Z29uRGF0YT8ucG9seWdvbiA/IEpTT04ucGFyc2UocG9seWdvbkRhdGEucG9seWdvbikgOiBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHBvbHlnb24gZGF0YTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb2x5Z29uRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYWxsUG9pbnRzVXJsID0gdXJscyh7XG4gICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgaWQ6IHBvbHlnb25EYXRhPy5pZCxcbiAgICB9KS5Qb2xsdXRpb25SaXNrQXNzZXNzbWVudC5hbGxQb2ludHM7XG5cbiAgICBmZXRjaERhdGEoYWxsUG9pbnRzVXJsLCBzZXRQb2ludHNEYXRhKTtcbiAgfSwgW3BvbHlnb25EYXRhXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBtYXhJbnRlcnZhbHMgPSA1O1xuICAgIGxldCBpbnRlcnZhbCA9IG1heEludGVydmFscztcbiAgICBsZXQgaW50ZXJjb21FbGVtZW50O1xuXG4gICAgY29uc3QgaWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpbnRlcnZhbCAtPSAxO1xuICAgICAgaW50ZXJjb21FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmludGVyY29tLWxpZ2h0d2VpZ2h0LWFwcCcpO1xuICAgICAgaWYgKGludGVyY29tRWxlbWVudCkge1xuICAgICAgICBpZiAoaW50ZXJjb21FbGVtZW50LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGludGVyY29tRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnRlcnZhbCA8PSAwKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaWQpO1xuICAgICAgfVxuICAgIH0sIDMwMCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGludGVyY29tRWxlbWVudCkge1xuICAgICAgICBpbnRlcmNvbUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICcnO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICBjb25zdCB1c2VDYXNlID0gdXNlQ2FzZXMuZmluZCgodXNlQ2FzZSkgPT4gdXNlQ2FzZS5pZCA9PT0gdXNlQ2FzZXNGaWx0ZXIpO1xuXG4gIGNvbnN0IGdldEJvdHRvbVNoZWV0Q29uZmlnID0gKCkgPT4ge1xuICAgIHN3aXRjaCAoc2hvd25Db250ZW50KSB7XG4gICAgICBjYXNlICd0b3RhbF9zYXZpbmdzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiAoXG4gICAgICAgICAgICA8VG90YWxTYXZpbmdzIHBvaW50cz17dmlzaWJsZVBvaW50c30gZmlsdGVyZWRVc2VDYXNlPXt1c2VDYXNlfSAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgc25hcFBvaW50czogKHsgbWF4SGVpZ2h0IH06IHsgbWF4SGVpZ2h0OiBudW1iZXIgfSkgPT4gW1xuICAgICAgICAgICAgMTY0LFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMTAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzAwMCcsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmaWx0ZXJfYmVoYXZpb3JzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiAoXG4gICAgICAgICAgICA8RmlsdGVyQmVoYXZpb3JzXG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbT17dXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17c2V0VXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgc25hcFBvaW50czogKHsgbWF4SGVpZ2h0IH06IHsgbWF4SGVpZ2h0OiBudW1iZXIgfSkgPT4gW1xuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMTAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgICAgICAgc25hcFBvaW50czogKCkgPT4gWzBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMwMDAnLFxuICAgICAgICB9O1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB7IGNvbnRlbnQsIHNuYXBQb2ludHMsIGJhY2tncm91bmRDb2xvciB9ID0gdXNlTWVtbyhcbiAgICBnZXRCb3R0b21TaGVldENvbmZpZyxcbiAgICBbc2hvd25Db250ZW50LCB1c2VDYXNlc0ZpbHRlciwgdmlzaWJsZVBvaW50c10sXG4gICk7XG5cbiAgY29uc3QgYm90dG9tU2hlZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPEthbmRvQm90dG9tU2hlZXRcbiAgICAgICAgYmFja2dyb3VuZENvbG9yPXtiYWNrZ3JvdW5kQ29sb3J9XG4gICAgICAgIHNuYXBQb2ludHM9e3NuYXBQb2ludHN9XG4gICAgICAgIG9uRGlzbWlzcz17aGFuZGxlRGlzbWlzc31cbiAgICAgICAgaXNPcGVuPXt0cnVlfVxuICAgICAgPlxuICAgICAgICB7Y29udGVudH1cbiAgICAgIDwvS2FuZG9Cb3R0b21TaGVldD5cbiAgICApO1xuICB9LCBbdmlzaWJsZVBvaW50cywgc2hvd25Db250ZW50XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcEJvdW5kcyB8fCAhcG9pbnRzRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSBwb2ludHNEYXRhLmZpbHRlcigocG9pbnQpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHBvaW50LmxhdCA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxhdCA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxuZyA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubG5nICYmXG4gICAgICAgIHBvaW50LmxuZyA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubG5nXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgc2V0VmlzaWJsZVBvaW50cyhmaWx0ZXJlZFBvaW50cyk7XG4gIH0sIFttYXBCb3VuZHMsIHBvaW50c0RhdGFdKTtcblxuICBjb25zdCBoYW5kbGVCb3VuZHNDaGFuZ2UgPSB1c2VDYWxsYmFjaygoYm91bmRzKSA9PiB7XG4gICAgc2V0TWFwQm91bmRzKGJvdW5kcyk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBmaWx0ZXJCdXR0b25DbGljayA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoKHByZXZDb250ZW50KSA9PlxuICAgICAgcHJldkNvbnRlbnQgPT09ICdmaWx0ZXJfYmVoYXZpb3JzJyA/ICd0b3RhbF9zYXZpbmdzJyA6ICdmaWx0ZXJfYmVoYXZpb3JzJyxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHNlYXJjaEJ1dHRvbkNsaWNrID0gKCkgPT4ge1xuICAgIHNldElzU2VhcmNoRmllbGRWaXNpYmxlKChwcmV2VmlzaWJsZSkgPT4gIXByZXZWaXNpYmxlKTtcbiAgICBjbG9zZVBvcHVwKCk7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyQnV0dG9uU3RhdGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoc2hvd25Db250ZW50ID09PSAnZmlsdGVyX2JlaGF2aW9ycycpIHtcbiAgICAgIHJldHVybiAnZmlsbGVkJztcbiAgICB9XG4gICAgcmV0dXJuIHVzZUNhc2VzRmlsdGVyICE9PSAnJyA/ICdmaWxsZWQtcmVkJyA6ICcnO1xuICB9LCBbc2hvd25Db250ZW50LCB1c2VDYXNlc0ZpbHRlcl0pO1xuXG4gIGNvbnN0IHpvb21Ub1BvaW50ID0gKGxhdDogbnVtYmVyLCBsbmc6IG51bWJlcikgPT4ge1xuICAgIGlmIChtYXBSZWYuY3VycmVudCkge1xuICAgICAgbWFwUmVmLmN1cnJlbnQuem9vbVRvUG9pbnQobGF0LCBsbmcpOyAvLyBTZXQgdG8gbWF4IHpvb20gbGV2ZWwgMThcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2xpY2tPbk1hcmtlciA9IChsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpID0+IHtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIG1hcFJlZi5jdXJyZW50LmNsaWNrT25NYXJrZXIobGF0LCBsbmcpOyAvLyBTZXQgdG8gbWF4IHpvb20gbGV2ZWwgMThcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2xvc2VQb3B1cCA9ICgpID0+IHtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIG1hcFJlZi5jdXJyZW50LmNsb3NlUG9wdXAoKTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKCFwb2ludHNEYXRhIHx8ICFwb2x5Z29uRGF0YSkgcmV0dXJuIG51bGw7XG5cbiAgaWYgKCFwb2x5Z29uRGF0YT8uaWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEthbmRvQWxlcnQgdmFyaWFudD1cImRhbmdlclwiIGhlYWRlcj17J0hlYWRzIHVwISd9PlxuICAgICAgICA8cD5cbiAgICAgICAgICB7J05vIHNhdmVkIGNpdHkgZm91bmQuJ31cbiAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICB7J0lmIHlvdSBuZWVkIGFzc2lzdGFuY2UsIHBsZWFzZSAnfVxuICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86c3VwcG9ydEBrYW5kby5lY29cIj57J3NlbmQgdXMgYSBtZXNzYWdlLid9PC9hPlxuICAgICAgICA8L3A+XG4gICAgICA8L0thbmRvQWxlcnQ+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJhcHAtd3JhcHBlclwiPlxuICAgICAgPE1hcFRhYmxlQ29udGFpbmVyIGlzUnRsPXtpc1J0bH0+XG4gICAgICAgIDxNYXBcbiAgICAgICAgICByZWY9e21hcFJlZn1cbiAgICAgICAgICBmaWx0ZXJlZFVzZUNhc2U9e3VzZUNhc2UgPyB1c2VDYXNlIDogeyBjb2RlOiAndG8nIH19XG4gICAgICAgICAgcG9pbnRzPXtwb2ludHNEYXRhfVxuICAgICAgICAgIHBvbHlnb249e2dldFBvbHlnb25HZW9KU09OKHBvbHlnb25EYXRhKX1cbiAgICAgICAgICBvbkJvdW5kc0NoYW5nZT17aGFuZGxlQm91bmRzQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgICB7aXNTZWFyY2hGaWVsZFZpc2libGUgJiYgKFxuICAgICAgICAgIDxTZWFyY2hGaWVsZENvbnRhaW5lcj5cbiAgICAgICAgICAgIDxTZWFyY2hGaWVsZFxuICAgICAgICAgICAgICBzdWdnZXN0aW9ucz17cG9pbnRzRGF0YX1cbiAgICAgICAgICAgICAgem9vbVRvUG9pbnQ9e3pvb21Ub1BvaW50fVxuICAgICAgICAgICAgICBjbGlja09uTWFya2VyPXtjbGlja09uTWFya2VyfVxuICAgICAgICAgICAgICBzZXRJc1NlYXJjaEZpZWxkVmlzaWJsZT17c2V0SXNTZWFyY2hGaWVsZFZpc2libGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU2VhcmNoRmllbGRDb250YWluZXI+XG4gICAgICAgICl9XG4gICAgICA8L01hcFRhYmxlQ29udGFpbmVyPlxuICAgICAge2JvdHRvbVNoZWV0fVxuICAgICAgPEZpbHRlckJ1dHRvblxuICAgICAgICBidXR0b25TdGF0ZT17ZmlsdGVyQnV0dG9uU3RhdGV9XG4gICAgICAgIG9uQ2xpY2s9e2ZpbHRlckJ1dHRvbkNsaWNrfVxuICAgICAgLz5cbiAgICAgIDxTZWFyY2hCdXR0b25cbiAgICAgICAgYnV0dG9uU3RhdGU9e2lzU2VhcmNoRmllbGRWaXNpYmxlID8gJ2ZpbGxlZCcgOiAnJ31cbiAgICAgICAgb25DbGljaz17c2VhcmNoQnV0dG9uQ2xpY2t9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQ7XG5cbmNvbnN0IE1hcFRhYmxlQ29udGFpbmVyID0gc3R5bGVkLmRpdjx7IGlzUnRsOiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNjVweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjBweCk7XG4gIHdpZHRoOiAxMDB2dztcblxuICAjbWFwIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAqLFxuICAgICo6Zm9jdXMsXG4gICAgKjpob3ZlciB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU2VhcmNoRmllbGRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHotaW5kZXg6IDIwMDA7XG4gIHdpZHRoOiAzMDBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICAvL2JveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFPQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxJQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFFQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBRixzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBUixPQUFBO0FBR0FBLE9BQUE7QUFDQSxJQUFBUyxhQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxnQkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsYUFBQSxHQUFBTixzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQVksVUFBQSxHQUFBUCxzQkFBQSxDQUFBTCxP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T0FBQSxDQUFBQyxhQUFBLENBQUN3QyxpQkFBaUI7SUFBQ2xHLEtBQUssRUFBRUE7RUFBTSxnQkFDOUI3QixNQUFBLENBQUFzRixPQUFBLENBQUFDLGFBQUEsQ0FBQ2pGLElBQUEsQ0FBQWdGLE9BQUc7SUFDRjBDLEdBQUcsRUFBRXZGLE1BQU87SUFDWmlELGVBQWUsRUFBRVQsT0FBTyxHQUFHQSxPQUFPLEdBQUc7TUFBRWdELElBQUksRUFBRTtJQUFLLENBQUU7SUFDcER4QyxNQUFNLEVBQUU5RCxVQUFXO0lBQ25CdUMsT0FBTyxFQUFFRCxpQkFBaUIsQ0FBQ3pDLFdBQVcsQ0FBRTtJQUN4QzBHLGNBQWMsRUFBRXBCO0VBQW1CLENBQ3BDLENBQUMsRUFDRHZFLG9CQUFvQixpQkFDbkJ2QyxNQUFBLENBQUFzRixPQUFBLENBQUFDLGFBQUEsQ0FBQzRDLG9CQUFvQixxQkFDbkJuSSxNQUFBLENBQUFzRixPQUFBLENBQUFDLGFBQUEsQ0FBQ3ZFLFlBQUEsQ0FBQXNFLE9BQVc7SUFDVjhDLFdBQVcsRUFBRXpHLFVBQVc7SUFDeEI0RixXQUFXLEVBQUVBLFdBQVk7SUFDekJFLGFBQWEsRUFBRUEsYUFBYztJQUM3QmpGLHVCQUF1QixFQUFFQTtFQUF3QixDQUNsRCxDQUNtQixDQUVQLENBQUMsRUFDbkI0RCxXQUFXLGVBQ1pwRyxNQUFBLENBQUFzRixPQUFBLENBQUFDLGFBQUEsQ0FBQzFFLGFBQUEsQ0FBQXlFLE9BQVk7SUFDWCtDLFdBQVcsRUFBRWYsaUJBQWtCO0lBQy9CZ0IsT0FBTyxFQUFFckI7RUFBa0IsQ0FDNUIsQ0FBQyxlQUNGakgsTUFBQSxDQUFBc0YsT0FBQSxDQUFBQyxhQUFBLENBQUN0RSxhQUFBLENBQUFxRSxPQUFZO0lBQ1grQyxXQUFXLEVBQUU5RixvQkFBb0IsR0FBRyxRQUFRLEdBQUcsRUFBRztJQUNsRCtGLE9BQU8sRUFBRW5CO0VBQWtCLENBQzVCLENBQ0UsQ0FBQztBQUVWLENBQUM7QUFBQyxJQUFBb0IsUUFBQSxHQUFBQyxPQUFBLENBQUFsRCxPQUFBLEdBRWFwRSx1QkFBdUI7QUFFdEMsTUFBTTZHLGlCQUFpQixHQUFHVSx5QkFBTSxDQUFDQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUlBZ0JuQztBQUVELE1BQU1WLG9CQUFvQixHQUFHTSx5QkFBTSxDQUFDQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOEpBV3RDIiwiaWdub3JlTGlzdCI6W119
307
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX0FuYWx5dGljcyIsIl9NYXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZU5hdkNvbnRleHQyIiwiX0thbmRvQm90dG9tU2hlZXQiLCJfdXJscyIsIl9Ub3RhbFNhdmluZ3MiLCJfRmlsdGVyQmVoYXZpb3JzIiwiX0ZpbHRlckJ1dHRvbiIsIl91c2VfY2FzZXMiLCJfS2FuZG9BbGVydCIsIl9TZWFyY2hGaWVsZCIsIl9TZWFyY2hCdXR0b24iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50Iiwid2F0ZXJBdXRob3JpdHlOYW1lIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvbHlnb25EYXRhIiwic2V0UG9seWdvbkRhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBvaW50c0RhdGEiLCJzZXRQb2ludHNEYXRhIiwiX3VzZU5hdkNvbnRleHQiLCJ1c2VOYXZDb250ZXh0IiwiaXNSdGwiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3duQ29udGVudCIsInNldFNob3duQ29udGVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidmlzaWJsZVBvaW50cyIsInNldFZpc2libGVQb2ludHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ1c2VDYXNlc0ZpbHRlciIsInNldFVzZUNhc2VzRmlsdGVyIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsIm1hcEJvdW5kcyIsInNldE1hcEJvdW5kcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJpc1NlYXJjaEZpZWxkVmlzaWJsZSIsInNldElzU2VhcmNoRmllbGRWaXNpYmxlIiwibWFwUmVmIiwidXNlUmVmIiwiaGFuZGxlRGlzbWlzcyIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJmZXRjaERhdGEiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1cmwiLCJzZXREYXRhIiwicmVzcG9uc2UiLCJyZXN1bHQiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJzZW50IiwianNvbiIsInQwIiwiY29uc29sZSIsImVycm9yIiwiY29uY2F0Iiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VFZmZlY3QiLCJzZXRUaW1lb3V0IiwiY3VycmVudEdlb0FyZWFVcmwiLCJ1cmxzIiwiY3VycmVudEdlb0FyZWEiLCJhbmFseXRpY3NUcmFjayIsInV0aWxpdHlfbmFtZSIsInVwZGF0ZU5hdkNvbnRleHQiLCJuYW1lIiwiZ2V0UG9seWdvbkdlb0pTT04iLCJwb2x5Z29uIiwiSlNPTiIsInBhcnNlIiwiYWxsUG9pbnRzVXJsIiwiaWQiLCJhbGxQb2ludHMiLCJtYXhJbnRlcnZhbHMiLCJpbnRlcnZhbCIsImludGVyY29tRWxlbWVudCIsInNldEludGVydmFsIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwic3R5bGUiLCJkaXNwbGF5IiwiY2xlYXJJbnRlcnZhbCIsInVzZUNhc2UiLCJ1c2VDYXNlcyIsImZpbmQiLCJnZXRCb3R0b21TaGVldENvbmZpZyIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiVG90YWxTYXZpbmdzIiwicG9pbnRzIiwiZmlsdGVyZWRVc2VDYXNlIiwic25hcFBvaW50cyIsIl9yZWYyIiwibWF4SGVpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiRmlsdGVyQmVoYXZpb3JzIiwic2VsZWN0ZWRJdGVtIiwiaGFuZGxlQ2hhbmdlIiwiX3JlZjMiLCJfdXNlTWVtbyIsInVzZU1lbW8iLCJib3R0b21TaGVldCIsIm9uRGlzbWlzcyIsImlzT3BlbiIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwicG9pbnQiLCJsYXQiLCJnZXRTb3V0aFdlc3QiLCJnZXROb3J0aEVhc3QiLCJsbmciLCJoYW5kbGVCb3VuZHNDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImJvdW5kcyIsImZpbHRlckJ1dHRvbkNsaWNrIiwicHJldkNvbnRlbnQiLCJzZWFyY2hCdXR0b25DbGljayIsInByZXZWaXNpYmxlIiwiY2xvc2VQb3B1cCIsImZpbHRlckJ1dHRvblN0YXRlIiwiem9vbVRvUG9pbnQiLCJjdXJyZW50IiwiY2xpY2tPbk1hcmtlciIsIkthbmRvQWxlcnQiLCJ2YXJpYW50IiwiaGVhZGVyIiwiaHJlZiIsImNsYXNzTmFtZSIsIk1hcFRhYmxlQ29udGFpbmVyIiwicmVmIiwiY29kZSIsIm9uQm91bmRzQ2hhbmdlIiwiU2VhcmNoRmllbGRDb250YWluZXIiLCJzdWdnZXN0aW9ucyIsImJ1dHRvblN0YXRlIiwib25DbGljayIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL1BvbGx1dGlvblJpc2tBc3Nlc3NtZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXBkYXRlTmF2Q29udGV4dCB9IGZyb20gJ3NyYy9zdG9yZS9jb250ZXh0L2FjdGlvbnMnO1xuaW1wb3J0IHsgYW5hbHl0aWNzVHJhY2sgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQW5hbHl0aWNzJztcbmltcG9ydCBNYXAgZnJvbSAnLi9NYXAnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyB1c2VOYXZDb250ZXh0IH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlTmF2Q29udGV4dCc7XG5pbXBvcnQgS2FuZG9Cb3R0b21TaGVldCBmcm9tICcuLi8uLi91aS1raXQvS2FuZG9Cb3R0b21TaGVldC9LYW5kb0JvdHRvbVNoZWV0JztcbmltcG9ydCB7IHVybHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyBJR2VvUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JR2VvUG9pbnQnO1xuaW1wb3J0IEwsIHsgR2VvSlNPTiB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnO1xuaW1wb3J0IHsgVG90YWxTYXZpbmdzIH0gZnJvbSAnLi9Ub3RhbFNhdmluZ3MnO1xuaW1wb3J0IHsgRmlsdGVyQmVoYXZpb3JzIH0gZnJvbSAnLi9GaWx0ZXJCZWhhdmlvcnMnO1xuaW1wb3J0IEZpbHRlckJ1dHRvbiBmcm9tICcuL0ZpbHRlckJ1dHRvbic7XG5pbXBvcnQgdXNlQ2FzZXMgZnJvbSAnLi91c2VfY2FzZXMuanNvbic7XG5pbXBvcnQgeyBLYW5kb0FsZXJ0IH0gZnJvbSAnc3JjL3VpLWtpdC9BbGVydC9LYW5kb0FsZXJ0JztcbmltcG9ydCBTZWFyY2hGaWVsZCBmcm9tICcuL1NlYXJjaEZpZWxkJztcbmltcG9ydCBTZWFyY2hCdXR0b24gZnJvbSAnLi9TZWFyY2hCdXR0b24nO1xuXG5jb25zdCBQb2xsdXRpb25SaXNrQXNzZXNzbWVudDogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5TmFtZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUuZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlOYW1lLFxuICApO1xuICBjb25zdCB3YXRlckF1dGhvcml0eUlkID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICApO1xuICBjb25zdCBbcG9seWdvbkRhdGEsIHNldFBvbHlnb25EYXRhXSA9IHVzZVN0YXRlPEdlb0pTT04+KCk7XG4gIGNvbnN0IFtwb2ludHNEYXRhLCBzZXRQb2ludHNEYXRhXSA9IHVzZVN0YXRlPElHZW9Qb2ludFtdPigpO1xuICBjb25zdCB7IGlzUnRsIH0gPSB1c2VOYXZDb250ZXh0KCk7XG4gIGNvbnN0IFtzaG93bkNvbnRlbnQsIHNldFNob3duQ29udGVudF0gPSB1c2VTdGF0ZSgndG90YWxfc2F2aW5ncycpO1xuICBjb25zdCBbdmlzaWJsZVBvaW50cywgc2V0VmlzaWJsZVBvaW50c10gPSB1c2VTdGF0ZTxJR2VvUG9pbnRbXT4oW10pO1xuICBjb25zdCBbdXNlQ2FzZXNGaWx0ZXIsIHNldFVzZUNhc2VzRmlsdGVyXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW21hcEJvdW5kcywgc2V0TWFwQm91bmRzXSA9IHVzZVN0YXRlPEwuTGF0TG5nQm91bmRzIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtpc1NlYXJjaEZpZWxkVmlzaWJsZSwgc2V0SXNTZWFyY2hGaWVsZFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8e1xuICAgIHpvb21Ub1BvaW50OiAobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyKSA9PiB2b2lkO1xuICAgIGNsaWNrT25NYXJrZXI6IChsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpID0+IHZvaWQ7XG4gICAgY2xvc2VQb3B1cDogKCkgPT4gdm9pZDtcbiAgfT4obnVsbCk7XG5cbiAgY29uc3QgaGFuZGxlRGlzbWlzcyA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoJ3RvdGFsX3NhdmluZ3MnKTtcbiAgfTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jIDxULD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgc2V0RGF0YTogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248VD4+LFxuICApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgc2V0RGF0YShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZGF0YSBmcm9tICR7dXJsfTpgLCBlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIC8vIENsb3NlIHRoZSBib3R0b20gc2hlZXQgYWZ0ZXIgMzAwbXMgd2hlbiB0aGUgZmlsdGVyIGlzIGNoYW5nZWQgYnkgdGhlIHVzZXIgY2xpY2tcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhhbmRsZURpc21pc3MoKTtcbiAgICB9LCAzMDApO1xuICB9LCBbdXNlQ2FzZXNGaWx0ZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YXRlckF1dGhvcml0eUlkICYmIHdhdGVyQXV0aG9yaXR5TmFtZSkge1xuICAgICAgY29uc3QgY3VycmVudEdlb0FyZWFVcmwgPSB1cmxzKHsgd2F0ZXJBdXRob3JpdHlJZCB9KVxuICAgICAgICAuUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQuY3VycmVudEdlb0FyZWE7XG4gICAgICBmZXRjaERhdGEoY3VycmVudEdlb0FyZWFVcmwsIHNldFBvbHlnb25EYXRhKTtcblxuICAgICAgYW5hbHl0aWNzVHJhY2soJ1ZpZXdlZCBQb2xsdXRpb24gUmlzayBBc3Nlc3NtZW50IFBhZ2UnLCB7XG4gICAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgICAgfSk7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVOYXZDb250ZXh0KHsgbmFtZTogJ3BvbGx1dGlvbi1yaXNrLWFzc2Vzc21lbnQnIH0pKTtcbiAgICB9XG4gIH0sIFt3YXRlckF1dGhvcml0eUlkLCB3YXRlckF1dGhvcml0eU5hbWVdKTtcblxuICBjb25zdCBnZXRQb2x5Z29uR2VvSlNPTiA9IChwb2x5Z29uRGF0YSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcG9seWdvbkRhdGE/LnBvbHlnb24gPyBKU09OLnBhcnNlKHBvbHlnb25EYXRhLnBvbHlnb24pIDogW107XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBwb2x5Z29uIGRhdGE6JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9seWdvbkRhdGEpIHJldHVybjtcblxuICAgIGNvbnN0IGFsbFBvaW50c1VybCA9IHVybHMoe1xuICAgICAgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgIGlkOiBwb2x5Z29uRGF0YT8uaWQsXG4gICAgfSkuUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQuYWxsUG9pbnRzO1xuXG4gICAgZmV0Y2hEYXRhKGFsbFBvaW50c1VybCwgc2V0UG9pbnRzRGF0YSk7XG4gIH0sIFtwb2x5Z29uRGF0YV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbWF4SW50ZXJ2YWxzID0gNTtcbiAgICBsZXQgaW50ZXJ2YWwgPSBtYXhJbnRlcnZhbHM7XG4gICAgbGV0IGludGVyY29tRWxlbWVudDtcblxuICAgIGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaW50ZXJ2YWwgLT0gMTtcbiAgICAgIGludGVyY29tRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pbnRlcmNvbS1saWdodHdlaWdodC1hcHAnKTtcbiAgICAgIGlmIChpbnRlcmNvbUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGludGVyY29tRWxlbWVudC5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKGlkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbnRlcmNvbUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaW50ZXJ2YWwgPD0gMCkge1xuICAgICAgICBjbGVhckludGVydmFsKGlkKTtcbiAgICAgIH1cbiAgICB9LCAzMDApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChpbnRlcmNvbUVsZW1lbnQpIHtcbiAgICAgICAgaW50ZXJjb21FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdXNlQ2FzZSA9IHVzZUNhc2VzLmZpbmQoKHVzZUNhc2UpID0+IHVzZUNhc2UuaWQgPT09IHVzZUNhc2VzRmlsdGVyKTtcblxuICBjb25zdCBnZXRCb3R0b21TaGVldENvbmZpZyA9ICgpID0+IHtcbiAgICBzd2l0Y2ggKHNob3duQ29udGVudCkge1xuICAgICAgY2FzZSAndG90YWxfc2F2aW5ncyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogKFxuICAgICAgICAgICAgPFRvdGFsU2F2aW5ncyBwb2ludHM9e3Zpc2libGVQb2ludHN9IGZpbHRlcmVkVXNlQ2FzZT17dXNlQ2FzZX0gLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIDE2NCxcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDEwMCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMwMDAnLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnZmlsdGVyX2JlaGF2aW9ycyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogKFxuICAgICAgICAgICAgPEZpbHRlckJlaGF2aW9yc1xuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW09e3VzZUNhc2VzRmlsdGVyfVxuICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e3NldFVzZUNhc2VzRmlsdGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDEwMCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICgpID0+IFswXSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMDAwJyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgeyBjb250ZW50LCBzbmFwUG9pbnRzLCBiYWNrZ3JvdW5kQ29sb3IgfSA9IHVzZU1lbW8oXG4gICAgZ2V0Qm90dG9tU2hlZXRDb25maWcsXG4gICAgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXIsIHZpc2libGVQb2ludHNdLFxuICApO1xuXG4gIGNvbnN0IGJvdHRvbVNoZWV0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxLYW5kb0JvdHRvbVNoZWV0XG4gICAgICAgIGJhY2tncm91bmRDb2xvcj17YmFja2dyb3VuZENvbG9yfVxuICAgICAgICBzbmFwUG9pbnRzPXtzbmFwUG9pbnRzfVxuICAgICAgICBvbkRpc21pc3M9e2hhbmRsZURpc21pc3N9XG4gICAgICAgIGlzT3Blbj17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L0thbmRvQm90dG9tU2hlZXQ+XG4gICAgKTtcbiAgfSwgW3Zpc2libGVQb2ludHMsIHNob3duQ29udGVudF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBCb3VuZHMgfHwgIXBvaW50c0RhdGEpIHJldHVybjtcblxuICAgIGNvbnN0IGZpbHRlcmVkUG9pbnRzID0gcG9pbnRzRGF0YS5maWx0ZXIoKHBvaW50KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBwb2ludC5sYXQgPj0gbWFwQm91bmRzLmdldFNvdXRoV2VzdCgpLmxhdCAmJlxuICAgICAgICBwb2ludC5sYXQgPD0gbWFwQm91bmRzLmdldE5vcnRoRWFzdCgpLmxhdCAmJlxuICAgICAgICBwb2ludC5sbmcgPj0gbWFwQm91bmRzLmdldFNvdXRoV2VzdCgpLmxuZyAmJlxuICAgICAgICBwb2ludC5sbmcgPD0gbWFwQm91bmRzLmdldE5vcnRoRWFzdCgpLmxuZ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHNldFZpc2libGVQb2ludHMoZmlsdGVyZWRQb2ludHMpO1xuICB9LCBbbWFwQm91bmRzLCBwb2ludHNEYXRhXSk7XG5cbiAgY29uc3QgaGFuZGxlQm91bmRzQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGJvdW5kcykgPT4ge1xuICAgIHNldE1hcEJvdW5kcyhib3VuZHMpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgZmlsdGVyQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgc2V0U2hvd25Db250ZW50KChwcmV2Q29udGVudCkgPT5cbiAgICAgIHByZXZDb250ZW50ID09PSAnZmlsdGVyX2JlaGF2aW9ycycgPyAndG90YWxfc2F2aW5ncycgOiAnZmlsdGVyX2JlaGF2aW9ycycsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzZWFyY2hCdXR0b25DbGljayA9ICgpID0+IHtcbiAgICBzZXRJc1NlYXJjaEZpZWxkVmlzaWJsZSgocHJldlZpc2libGUpID0+ICFwcmV2VmlzaWJsZSk7XG4gICAgY2xvc2VQb3B1cCgpO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlckJ1dHRvblN0YXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNob3duQ29udGVudCA9PT0gJ2ZpbHRlcl9iZWhhdmlvcnMnKSB7XG4gICAgICByZXR1cm4gJ2ZpbGxlZCc7XG4gICAgfVxuICAgIHJldHVybiB1c2VDYXNlc0ZpbHRlciAhPT0gJycgPyAnZmlsbGVkLXJlZCcgOiAnJztcbiAgfSwgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXJdKTtcblxuICBjb25zdCB6b29tVG9Qb2ludCA9IChsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpID0+IHtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIG1hcFJlZi5jdXJyZW50Lnpvb21Ub1BvaW50KGxhdCwgbG5nKTsgLy8gU2V0IHRvIG1heCB6b29tIGxldmVsIDE4XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNsaWNrT25NYXJrZXIgPSAobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyKSA9PiB7XG4gICAgaWYgKG1hcFJlZi5jdXJyZW50KSB7XG4gICAgICBtYXBSZWYuY3VycmVudC5jbGlja09uTWFya2VyKGxhdCwgbG5nKTsgLy8gU2V0IHRvIG1heCB6b29tIGxldmVsIDE4XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNsb3NlUG9wdXAgPSAoKSA9PiB7XG4gICAgaWYgKG1hcFJlZi5jdXJyZW50KSB7XG4gICAgICBtYXBSZWYuY3VycmVudC5jbG9zZVBvcHVwKCk7XG4gICAgfVxuICB9O1xuXG4gIGlmICghcG9pbnRzRGF0YSB8fCAhcG9seWdvbkRhdGEpIHJldHVybiBudWxsO1xuXG4gIGlmICghcG9seWdvbkRhdGE/LmlkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxLYW5kb0FsZXJ0IHZhcmlhbnQ9XCJkYW5nZXJcIiBoZWFkZXI9eydIZWFkcyB1cCEnfT5cbiAgICAgICAgPHA+XG4gICAgICAgICAgeydObyBzYXZlZCBjaXR5IGZvdW5kLid9XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgeydJZiB5b3UgbmVlZCBhc3Npc3RhbmNlLCBwbGVhc2UgJ31cbiAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAa2FuZG8uZWNvXCI+eydzZW5kIHVzIGEgbWVzc2FnZS4nfTwvYT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9LYW5kb0FsZXJ0PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBwLXdyYXBwZXJcIj5cbiAgICAgIDxNYXBUYWJsZUNvbnRhaW5lciBpc1J0bD17aXNSdGx9PlxuICAgICAgICA8TWFwXG4gICAgICAgICAgcmVmPXttYXBSZWZ9XG4gICAgICAgICAgZmlsdGVyZWRVc2VDYXNlPXt1c2VDYXNlID8gdXNlQ2FzZSA6IHsgY29kZTogJ3RvJyB9fVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzRGF0YX1cbiAgICAgICAgICBwb2x5Z29uPXtnZXRQb2x5Z29uR2VvSlNPTihwb2x5Z29uRGF0YSl9XG4gICAgICAgICAgb25Cb3VuZHNDaGFuZ2U9e2hhbmRsZUJvdW5kc0NoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgICAge2lzU2VhcmNoRmllbGRWaXNpYmxlICYmIChcbiAgICAgICAgICA8U2VhcmNoRmllbGRDb250YWluZXI+XG4gICAgICAgICAgICA8U2VhcmNoRmllbGRcbiAgICAgICAgICAgICAgc3VnZ2VzdGlvbnM9e3BvaW50c0RhdGF9XG4gICAgICAgICAgICAgIHpvb21Ub1BvaW50PXt6b29tVG9Qb2ludH1cbiAgICAgICAgICAgICAgY2xpY2tPbk1hcmtlcj17Y2xpY2tPbk1hcmtlcn1cbiAgICAgICAgICAgICAgc2V0SXNTZWFyY2hGaWVsZFZpc2libGU9e3NldElzU2VhcmNoRmllbGRWaXNpYmxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NlYXJjaEZpZWxkQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgPC9NYXBUYWJsZUNvbnRhaW5lcj5cbiAgICAgIHtib3R0b21TaGVldH1cbiAgICAgIDxGaWx0ZXJCdXR0b25cbiAgICAgICAgYnV0dG9uU3RhdGU9e2ZpbHRlckJ1dHRvblN0YXRlfVxuICAgICAgICBvbkNsaWNrPXtmaWx0ZXJCdXR0b25DbGlja31cbiAgICAgIC8+XG4gICAgICA8U2VhcmNoQnV0dG9uXG4gICAgICAgIGJ1dHRvblN0YXRlPXtpc1NlYXJjaEZpZWxkVmlzaWJsZSA/ICdmaWxsZWQnIDogJyd9XG4gICAgICAgIG9uQ2xpY2s9e3NlYXJjaEJ1dHRvbkNsaWNrfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBvbGx1dGlvblJpc2tBc3Nlc3NtZW50O1xuXG5jb25zdCBNYXBUYWJsZUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDY1cHg7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDIwcHgpO1xuICB3aWR0aDogMTAwdnc7XG5cbiAgI21hcCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKixcbiAgICAqOmZvY3VzLFxuICAgICo6aG92ZXIge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFNlYXJjaEZpZWxkQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB6LWluZGV4OiAyMDAwO1xuICB3aWR0aDogMzAwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTBweDtcbiAgLy9ib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBT0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksSUFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVIsT0FBQTtBQUdBQSxPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGFBQUEsR0FBQU4sc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFZLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFhLFdBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFlBQUEsR0FBQVQsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFlLGFBQUEsR0FBQVYsc0JBQUEsQ0FBQUwsT0FBQTtBQUEwQyxTQUFBZ0IseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdB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