@kando-env/kando-ui 1.2.382-alpha.9 → 1.2.383

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 (603) hide show
  1. package/lib/Router.js +36 -78
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +25 -35
  3. package/lib/Widgets/EventsRow/EventsRow.js +27 -39
  4. package/lib/Widgets/Map/GraphUtils.js +3 -3
  5. package/lib/Widgets/Map/Map.js +86 -123
  6. package/lib/Widgets/Map/MapUtils.js +82 -99
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +53 -77
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
  9. package/lib/Widgets/Map/areas/AreaUtils.js +47 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +4 -4
  11. package/lib/Widgets/Map/edges/Edge.js +33 -37
  12. package/lib/Widgets/Map/edges/Edges.js +21 -26
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +23 -44
  14. package/lib/Widgets/Map/events/Event.js +17 -17
  15. package/lib/Widgets/Map/events/EventIndicator.js +65 -60
  16. package/lib/Widgets/Map/events/EventPath.js +25 -23
  17. package/lib/Widgets/Map/events/EventUtils.js +60 -80
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -18
  19. package/lib/Widgets/Map/events/PointOfEvent.js +29 -34
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +30 -37
  21. package/lib/Widgets/Map/events/Snail.js +19 -20
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +93 -86
  23. package/lib/Widgets/Map/map/FloatingGraph.js +22 -18
  24. package/lib/Widgets/Map/map/GraphDateButton.js +25 -17
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +13 -12
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -15
  27. package/lib/Widgets/Map/points/PointIcon.js +22 -15
  28. package/lib/Widgets/Map/points/PointMarker.js +71 -87
  29. package/lib/Widgets/Map/points/PointMarkers.js +45 -66
  30. package/lib/Widgets/Map/points/PointUtils.js +145 -83
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +30 -47
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -10
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -12
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +31 -60
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
  37. package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
  38. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +11 -8
  39. package/lib/Widgets/MostPolluting/Factories/Factories.js +39 -70
  40. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -18
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +12 -10
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
  44. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
  45. package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
  46. package/lib/Widgets/MostPolluting/MostPolluting.js +25 -35
  47. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +18 -22
  48. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +6 -4
  49. package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -4
  50. package/lib/Widgets/MostPolluting/assets/index.js +10 -10
  51. package/lib/Widgets/MostPolluting/components/ChangePercent.js +19 -13
  52. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +35 -30
  53. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +45 -35
  54. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
  55. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
  56. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +54 -50
  57. package/lib/Widgets/MostPolluting/styles.js +3 -3
  58. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +7 -5
  59. package/lib/Widgets/PotentialImpactSummary/Icon.js +12 -10
  60. package/lib/Widgets/PotentialImpactSummary/index.js +19 -27
  61. package/lib/Widgets/PotentialImpactSummary/index.test.js +47 -52
  62. package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
  63. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +9 -7
  64. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +22 -17
  65. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +35 -32
  66. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -24
  67. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -37
  68. package/lib/Widgets/QualitySummary/QualitySummary.js +9 -13
  69. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
  70. package/lib/Widgets/QualitySummary/styles.js +23 -15
  71. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -13
  72. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +27 -26
  73. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
  74. package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -37
  75. package/lib/Widgets/UtilityInformation/styles.js +34 -25
  76. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
  77. package/lib/assets/icons/TopNavbar/index.js +6 -6
  78. package/lib/assets/icons/TrendSvg.js +6 -6
  79. package/lib/assets/icons/index.js +15 -15
  80. package/lib/assets/icons/kandoStepper/index.js +5 -5
  81. package/lib/assets/icons/siteTypes/index.js +1 -1
  82. package/lib/components/ApplyButton/ApplyButton.js +9 -9
  83. package/lib/components/Backdrop/Backdrop.js +6 -4
  84. package/lib/components/ContentLoader/ContentLoader.js +11 -9
  85. package/lib/components/ContentLoader/index.js +1 -1
  86. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +13 -12
  87. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
  88. package/lib/components/CustomInputs/DoubleTabs/styles.js +20 -12
  89. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +13 -20
  90. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
  91. package/lib/components/CustomInputs/Search/Search.js +42 -63
  92. package/lib/components/CustomInputs/Select/Select.js +45 -58
  93. package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
  94. package/lib/components/DamageType/DamageType.js +35 -57
  95. package/lib/components/DataLoaderError/DataLoaderError.js +8 -6
  96. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +9 -10
  97. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +70 -71
  98. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +27 -37
  99. package/lib/components/DischargeHeatmap/HighchartsOptions.js +10 -12
  100. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
  101. package/lib/components/DischargeHeatmap/popupText.js +10 -10
  102. package/lib/components/DischargeHeatmap/titles.js +3 -3
  103. package/lib/components/ErrorBoundary.js +27 -41
  104. package/lib/components/Events/Events.js +41 -58
  105. package/lib/components/Graph/Graph.js +77 -96
  106. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
  107. package/lib/components/Header/DoubleTabs/DoubleTabs.js +25 -33
  108. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
  109. package/lib/components/Header/DoubleTabs/styles.js +4 -4
  110. package/lib/components/Header/Header.js +2 -2
  111. package/lib/components/Header/Header.stories.js +3 -5
  112. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +22 -34
  113. package/lib/components/Header/InfoBar/InfoBar.js +74 -103
  114. package/lib/components/Header/InfoBar/Search/Control.js +9 -9
  115. package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -5
  116. package/lib/components/Header/InfoBar/Search/Search.js +16 -21
  117. package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -33
  118. package/lib/components/Header/InfoBar/Search/searchStyle.js +41 -49
  119. package/lib/components/Header/InfoBar/TimeFilter.js +11 -14
  120. package/lib/components/Header/KandoNavbar/KandoNavbar.js +64 -89
  121. package/lib/components/Header/Slideshow/Slideshow.js +68 -90
  122. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +6 -4
  123. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +21 -23
  124. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
  125. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +37 -43
  126. package/lib/components/Header/Toolbar/Toolbar.js +55 -74
  127. package/lib/components/InfoBar/InfoBar.js +10 -23
  128. package/lib/components/InfoBar/InfoBar.stories.js +3 -5
  129. package/lib/components/KandoModal/KandoModal.js +27 -41
  130. package/lib/components/Link.js +8 -7
  131. package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -8
  132. package/lib/components/Links/StyledLink/StyledLink.js +12 -12
  133. package/lib/components/Links/StyledNavLink/StyledNavLink.js +11 -10
  134. package/lib/components/LiveEvents/CarouselSlide.js +9 -7
  135. package/lib/components/LiveEvents/LiveEvents.js +5 -3
  136. package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -29
  137. package/lib/components/Map/Map.js +20 -23
  138. package/lib/components/Modal/Modal.js +9 -9
  139. package/lib/components/NarrowHeader.js +17 -31
  140. package/lib/components/PointInfo/PointInfo.js +19 -17
  141. package/lib/components/PopupModal/PopupModal.js +12 -16
  142. package/lib/components/PopupModal/PopupModal.stories.js +15 -19
  143. package/lib/components/Sector/Sector.js +18 -23
  144. package/lib/components/Sector/Sector.test.js +19 -20
  145. package/lib/components/Sector/sectorIcons.js +2 -2
  146. package/lib/components/SevereEvent/Eta/Eta.js +49 -52
  147. package/lib/components/SevereEvent/Eta/styles.js +10 -6
  148. package/lib/components/SevereEvent/SevereEvent.js +30 -37
  149. package/lib/components/Spinner/Spinner.js +8 -8
  150. package/lib/components/Spinner/Spinner.stories.js +4 -6
  151. package/lib/components/Spinner/styles.js +22 -14
  152. package/lib/components/Tabs/Tabs.js +21 -29
  153. package/lib/components/Tabs/Tabs.stories.js +4 -6
  154. package/lib/components/Tabs/assets/index.js +5 -5
  155. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -15
  156. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +40 -51
  157. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
  158. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +20 -25
  159. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
  160. package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
  161. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -25
  162. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -32
  163. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
  164. package/lib/components/TimeRangeSelector/constants.js +3 -3
  165. package/lib/components/Toggle/Toggle.js +12 -17
  166. package/lib/components/TrendGraph/TrendGraph.js +23 -39
  167. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
  168. package/lib/development-environment/index.js +8 -12
  169. package/lib/development-environment/mock/browser.js +2 -4
  170. package/lib/development-environment/mock/get.js +8 -10
  171. package/lib/development-environment/mock/handlers.js +2 -2
  172. package/lib/development-environment/mock/mockBus.js +4 -4
  173. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
  174. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
  175. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
  176. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
  177. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
  178. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
  179. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
  180. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
  181. package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
  182. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
  183. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
  184. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
  185. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
  186. package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
  187. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
  188. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
  189. package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
  190. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
  191. package/lib/development-environment/togly/ToglyDashboard.js +13 -22
  192. package/lib/development-environment/togly/ToglyItem.js +36 -31
  193. package/lib/development-environment/togly/init.js +2 -2
  194. package/lib/development-environment/togly/macro.js +14 -10
  195. package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
  196. package/lib/development-environment/togly/useLocalStorage.js +13 -18
  197. package/lib/hooks/useApi.js +19 -55
  198. package/lib/hooks/useApiWithDashboardQuery.js +30 -49
  199. package/lib/hooks/useClickOutside.js +3 -3
  200. package/lib/hooks/useInitializeHeaders.js +5 -5
  201. package/lib/hooks/useKandoFetch.js +16 -29
  202. package/lib/hooks/useMap.js +22 -34
  203. package/lib/hooks/useNavContext.js +22 -26
  204. package/lib/hooks/useRemoveExistingLayers.js +6 -6
  205. package/lib/hooks/useUpdateEventBodyTail.js +13 -17
  206. package/lib/hooks/useUserTimeZone.js +33 -30
  207. package/lib/hooks/useUserTimeZone.test.js +19 -22
  208. package/lib/hooks/useWindowSize.js +7 -14
  209. package/lib/i18n/en.json +0 -15
  210. package/lib/index.js +11 -13
  211. package/lib/macros/getVersion.js +3 -3
  212. package/lib/pages/AreaPage/AreaPage.js +34 -67
  213. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -17
  214. package/lib/pages/AreaPage/Dashboard/Dashboard.js +30 -31
  215. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +17 -25
  216. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
  217. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  218. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
  219. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
  220. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
  221. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
  222. package/lib/pages/AssessmentPage/AssessmentPage.js +40 -46
  223. package/lib/pages/CannyWidget/Feedback.js +13 -13
  224. package/lib/pages/CovidPage/CovidPage.js +8 -13
  225. package/lib/pages/CovidPage/components/Body.js +25 -27
  226. package/lib/pages/CovidPage/components/Map.js +29 -39
  227. package/lib/pages/CovidPage/components/Sidebar.js +16 -15
  228. package/lib/pages/CovidPage/components/Summary.js +20 -27
  229. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
  230. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
  231. package/lib/pages/CovidPage/components/areas/Area.js +29 -40
  232. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +55 -46
  233. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
  234. package/lib/pages/CovidPage/components/areas/AreasList.js +34 -46
  235. package/lib/pages/CovidPage/components/areas/Sort.js +11 -14
  236. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  237. package/lib/pages/DashboardMap/AreaCard.js +28 -28
  238. package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
  239. package/lib/pages/DashboardMap/Capacity.js +31 -80
  240. package/lib/pages/DashboardMap/FactoryCard.js +31 -26
  241. package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
  242. package/lib/pages/DashboardMap/List.js +74 -105
  243. package/lib/pages/DashboardMap/ListContext.js +15 -19
  244. package/lib/pages/DashboardMap/Loader.js +2 -2
  245. package/lib/pages/DashboardMap/SeverityBadge.js +14 -21
  246. package/lib/pages/DashboardMap/WWTPMap.js +48 -60
  247. package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
  248. package/lib/pages/DashboardMap/Widget.js +54 -71
  249. package/lib/pages/DashboardMap/utils.js +48 -65
  250. package/lib/pages/EventsPage/Body/Body.js +20 -15
  251. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -19
  252. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -35
  253. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +8 -6
  254. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -7
  255. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +21 -30
  256. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +53 -64
  257. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +19 -31
  258. package/lib/pages/EventsPage/EventsPage.js +7 -10
  259. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -38
  260. package/lib/pages/EventsPage/events/MoreInfo.js +17 -16
  261. package/lib/pages/EventsPage/events/Sidebar.js +22 -18
  262. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
  263. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +17 -20
  264. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +30 -35
  265. package/lib/pages/EventsPage/events/event_info/EventDetails.js +40 -37
  266. package/lib/pages/EventsPage/events/event_info/EventInfo.js +43 -42
  267. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
  268. package/lib/pages/EventsPage/events/event_info/EventSection.js +17 -19
  269. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
  270. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -47
  271. package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
  272. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -33
  273. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
  274. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +29 -36
  275. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +4 -6
  276. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
  277. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +7 -9
  278. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +22 -21
  279. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +12 -19
  280. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +5 -3
  281. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +11 -9
  282. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -26
  283. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +12 -8
  284. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
  285. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +6 -4
  286. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
  287. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +12 -10
  288. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +10 -8
  289. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +10 -12
  290. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +5 -3
  291. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +7 -5
  292. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +7 -5
  293. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +6 -4
  294. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +11 -9
  295. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
  296. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
  297. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +7 -5
  298. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +17 -15
  299. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
  300. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +10 -8
  301. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +16 -11
  302. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +9 -8
  303. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
  304. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
  305. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +25 -38
  306. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +29 -36
  307. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +11 -9
  308. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +15 -17
  309. package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -30
  310. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +23 -26
  311. package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
  312. package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -19
  313. package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
  314. package/lib/pages/EventsPage/events/events_list/EventsList.js +124 -145
  315. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +40 -55
  316. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +79 -115
  317. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +60 -77
  318. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +38 -41
  319. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +29 -36
  320. package/lib/pages/EventsPage/events/events_list/Sort.js +13 -16
  321. package/lib/pages/ImportFileWizard/FileUploadRespones.js +13 -20
  322. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +6 -4
  323. package/lib/pages/ImportFileWizard/ImportFile.js +20 -22
  324. package/lib/pages/ImportFileWizard/ResponseBody.js +24 -33
  325. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -22
  326. package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
  327. package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
  328. package/lib/pages/ImportGisPage/ImportGisContainer.js +21 -24
  329. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +21 -23
  330. package/lib/pages/ImportGisPage/importGisUtils.js +13 -21
  331. package/lib/pages/ImportGisProcess/index.js +12 -15
  332. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -12
  333. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +17 -19
  334. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
  335. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +56 -65
  336. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +6 -8
  337. package/lib/pages/NotificationsPage/Notification/Notification.js +16 -12
  338. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
  339. package/lib/pages/NotificationsPage/Notifications.stories.js +4 -6
  340. package/lib/pages/NotificationsPage/NotificationsPage.js +18 -36
  341. package/lib/pages/NotificationsPage/assets/index.js +9 -9
  342. package/lib/pages/NotificationsPageV2/NotificationsPage.js +71 -97
  343. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +94 -63
  344. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +14 -16
  345. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +18 -16
  346. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +17 -21
  347. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +17 -21
  348. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +18 -22
  349. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +83 -69
  350. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +18 -22
  351. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
  352. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +97 -95
  353. package/lib/pages/NotificationsPageV2/notificationUtils.js +54 -48
  354. package/lib/pages/OldSitePage/OldSitePage.js +57 -132
  355. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
  356. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  357. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -6
  358. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -20
  359. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  360. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -18
  361. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  362. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  363. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
  364. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -63
  365. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  366. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -53
  367. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
  368. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  369. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -10
  370. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  371. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +32 -28
  372. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +27 -29
  373. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  374. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +18 -12
  375. package/lib/pages/ProfilePage/Container.js +2 -2
  376. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +28 -44
  377. package/lib/pages/ProfilePage/ProfilePage.js +121 -214
  378. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
  379. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +19 -16
  380. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +28 -30
  381. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -117
  382. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +17 -20
  383. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +12 -10
  384. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +39 -41
  385. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -26
  386. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
  387. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -15
  388. package/lib/pages/SamplingsPage/NavigationDropdown.js +45 -32
  389. package/lib/pages/SamplingsPage/NewSamplingAction.js +76 -100
  390. package/lib/pages/SamplingsPage/SamplingMobileModal.js +129 -101
  391. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +21 -22
  392. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +34 -22
  393. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -59
  394. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
  395. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -7
  396. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +110 -194
  397. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +49 -55
  398. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +47 -43
  399. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +49 -45
  400. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +19 -20
  401. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
  402. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +10 -6
  403. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +58 -54
  404. package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
  405. package/lib/pages/SamplingsPage/SamplingsPage.js +27 -33
  406. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +50 -58
  407. package/lib/pages/SamplingsPage/samplingsPageUtils.js +68 -76
  408. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -4
  409. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +14 -13
  410. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +10 -13
  411. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  412. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  413. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +14 -10
  414. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -8
  415. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +26 -23
  416. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +14 -17
  417. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +36 -32
  418. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  419. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -24
  420. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  421. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  422. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
  423. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -70
  424. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  425. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -26
  426. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
  427. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  428. package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
  429. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +29 -37
  430. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  431. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  432. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +60 -59
  433. package/lib/pages/SitePage/SamplingParameters/dataParser.js +30 -39
  434. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
  435. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  436. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +18 -12
  437. package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
  438. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -30
  439. package/lib/pages/SitePage/SitePage.js +42 -81
  440. package/lib/pages/UploadLabResult/index.js +13 -13
  441. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +26 -35
  442. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +6 -8
  443. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +9 -8
  444. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
  445. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -48
  446. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
  447. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
  448. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
  449. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +13 -12
  450. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -12
  451. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
  452. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
  453. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +21 -29
  454. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +26 -30
  455. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +16 -17
  456. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
  457. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +27 -31
  458. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
  459. package/lib/pages/WbeDashboard/GraphWrapper.js +30 -36
  460. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +17 -19
  461. package/lib/pages/WbeDashboard/SearchInput.js +15 -20
  462. package/lib/pages/WbeDashboard/SummaryGraph.js +50 -76
  463. package/lib/pages/WbeDashboard/SummaryGraphModal.js +19 -17
  464. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  465. package/lib/pages/WbeDashboard/WbeDashboardPage.js +151 -213
  466. package/lib/pages/WbeDashboard/WbeSummaryBar.js +40 -48
  467. package/lib/pages/WwtpPage/DashboardCard.js +26 -23
  468. package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
  469. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +26 -22
  470. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +19 -18
  471. package/lib/pages/WwtpPage/Map.js +5 -3
  472. package/lib/pages/WwtpPage/OrganicCard.js +2 -2
  473. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
  474. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -6
  475. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +9 -8
  476. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +18 -14
  477. package/lib/pages/WwtpPage/PredictionCard.js +2 -2
  478. package/lib/pages/WwtpPage/TrendCard.js +18 -19
  479. package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
  480. package/lib/pages/WwtpPage/WwtpPage.js +8 -8
  481. package/lib/pages/WwtpPage/WwtpPageContainer.js +21 -16
  482. package/lib/providers/Slideshow/SlideshowContext.js +11 -9
  483. package/lib/providers/Slideshow/SlideshowProvider.js +22 -38
  484. package/lib/providers/Slideshow/SlideshowRunner.js +17 -19
  485. package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -4
  486. package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -11
  487. package/lib/providers/UrlHistory/index.js +2 -2
  488. package/lib/providers/UrlHistory/useLastVisited.js +5 -5
  489. package/lib/store/ImportGis/actionTypes.js +1 -1
  490. package/lib/store/ImportGis/actionsCreator.js +7 -5
  491. package/lib/store/ImportGis/reducer.js +40 -29
  492. package/lib/store/WBE/actionTypes.js +2 -2
  493. package/lib/store/WBE/reducer.js +13 -9
  494. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -14
  495. package/lib/store/areas/actionTypes.js +4 -4
  496. package/lib/store/areas/actions.js +7 -13
  497. package/lib/store/areas/reducer.js +8 -6
  498. package/lib/store/context/actionTypes.js +3 -3
  499. package/lib/store/context/actions.js +3 -3
  500. package/lib/store/context/contextMiddlewares.js +14 -16
  501. package/lib/store/context/reducer.js +13 -9
  502. package/lib/store/dashboard/dashboardSlice.js +18 -10
  503. package/lib/store/edges/actionTypes.js +5 -5
  504. package/lib/store/edges/actions.js +4 -8
  505. package/lib/store/edges/reducer.js +13 -17
  506. package/lib/store/events/actionTypes.js +17 -17
  507. package/lib/store/events/actions.js +3 -7
  508. package/lib/store/events/reducer.js +42 -49
  509. package/lib/store/global/actionTypes.js +11 -11
  510. package/lib/store/global/actions.js +8 -6
  511. package/lib/store/global/reducer.js +11 -10
  512. package/lib/store/permissions/permissionsSlice.js +12 -8
  513. package/lib/store/points/actionTypes.js +3 -3
  514. package/lib/store/points/actions.js +4 -8
  515. package/lib/store/points/reducer.js +7 -5
  516. package/lib/store/rootActionTypes.js +2 -2
  517. package/lib/store/rootReducer.js +17 -12
  518. package/lib/store/rootStore.js +5 -5
  519. package/lib/store/samplings/actionTypes.js +1 -1
  520. package/lib/store/samplings/reducer.js +16 -14
  521. package/lib/styles/StylesLayout.js +5 -3
  522. package/lib/styles/theme/theme.js +27 -28
  523. package/lib/test/mocks/browser.js +2 -4
  524. package/lib/test/test-utils.js +17 -15
  525. package/lib/ui-kit/Button/Button.js +128 -80
  526. package/lib/ui-kit/Button/Button.test.js +24 -29
  527. package/lib/ui-kit/Checkbox/Checkbox.js +31 -26
  528. package/lib/ui-kit/ContentCard/ContentCard.js +15 -18
  529. package/lib/ui-kit/Dashboard/Dashboard.js +25 -22
  530. package/lib/ui-kit/DropDown/DropDown.js +23 -24
  531. package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
  532. package/lib/ui-kit/DropDown/DropDownItem.js +24 -21
  533. package/lib/ui-kit/DropDown/DropdownToggle.js +12 -8
  534. package/lib/ui-kit/EmptyState/EmptyState.js +6 -4
  535. package/lib/ui-kit/IconAction/IconAction.js +7 -5
  536. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +48 -64
  537. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +69 -52
  538. package/lib/ui-kit/InletsPie/InletsPie.js +15 -13
  539. package/lib/ui-kit/InletsPie/options.js +6 -6
  540. package/lib/ui-kit/KandoList/KandoList.js +14 -12
  541. package/lib/ui-kit/KandoTable/KandoTable.js +48 -40
  542. package/lib/ui-kit/KandoTable/KandoTable.test.js +16 -22
  543. package/lib/ui-kit/Layout/Layout.js +6 -4
  544. package/lib/ui-kit/MobileInput/MobileInput.js +60 -50
  545. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
  546. package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -6
  547. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
  548. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +27 -20
  549. package/lib/ui-kit/OrganicEvents/TextInfo.js +15 -10
  550. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -8
  551. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +14 -17
  552. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
  553. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
  554. package/lib/ui-kit/ScoreGauge/constant.js +3 -3
  555. package/lib/ui-kit/TimeLineChart/TrendChart.js +54 -42
  556. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +8 -7
  557. package/lib/ui-kit/Tooltip/Tooltip.js +14 -8
  558. package/lib/ui-kit/index.js +8 -8
  559. package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
  560. package/lib/ui-kit/siteName/SiteName.js +11 -8
  561. package/lib/utilities/ActionUtility.js +7 -7
  562. package/lib/utilities/Alert.js +21 -17
  563. package/lib/utilities/Analytics.js +11 -11
  564. package/lib/utilities/Array.js +4 -5
  565. package/lib/utilities/Enum.js +15 -51
  566. package/lib/utilities/ErrorBoundary.js +27 -41
  567. package/lib/utilities/File.js +40 -69
  568. package/lib/utilities/GetDir.js +8 -7
  569. package/lib/utilities/KandoDate.js +7 -15
  570. package/lib/utilities/KandoModal.js +16 -26
  571. package/lib/utilities/LocalStorage.js +8 -10
  572. package/lib/utilities/ThousandsToK.js +3 -3
  573. package/lib/utilities/TimeFormat.js +21 -20
  574. package/lib/utilities/Truncate.js +17 -25
  575. package/lib/utilities/edgesMath.js +14 -15
  576. package/lib/utilities/i18n.js +3 -3
  577. package/lib/utilities/kql.js +12 -14
  578. package/lib/utilities/map/icons.js +3 -3
  579. package/lib/utilities/polylinedecorator.js +87 -112
  580. package/lib/utilities/scoreToData.js +17 -17
  581. package/lib/utilities/scoreToData.test.js +5 -5
  582. package/lib/utilities/time.js +8 -8
  583. package/lib/utilities/uploadToS3.js +11 -11
  584. package/lib/utilities/urls.js +61 -64
  585. package/package.json +1 -3
  586. package/lib/components/Sector/SectorIconsNew.js +0 -112
  587. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +0 -130
  588. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +0 -64
  589. package/lib/pages/PollutionRiskAssessment/FilterButton.js +0 -36
  590. package/lib/pages/PollutionRiskAssessment/Map.js +0 -49
  591. package/lib/pages/PollutionRiskAssessment/Map.scss +0 -59
  592. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +0 -51
  593. package/lib/pages/PollutionRiskAssessment/UseCases.js +0 -53
  594. package/lib/pages/PollutionRiskAssessment/contact_us.svg +0 -18
  595. package/lib/pages/PollutionRiskAssessment/filter_button.svg +0 -5
  596. package/lib/pages/PollutionRiskAssessment/index.js +0 -246
  597. package/lib/pages/PollutionRiskAssessment/index.scss +0 -45
  598. package/lib/pages/PollutionRiskAssessment/pig.svg +0 -3
  599. package/lib/pages/PollutionRiskAssessment/useMap.js +0 -135
  600. package/lib/pages/PollutionRiskAssessment/use_cases.json +0 -50
  601. package/lib/store/points/models/IGeoPoint.js +0 -6
  602. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +0 -44
  603. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +0 -18
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.waterAuthoritiesRadioButtons = exports.sourcesRadioButtons = exports.severitiesRadioButtons = exports.sendViaCheckBoxes = exports.mockTypes = exports.getNotificationString = exports.getEmptyNotification = void 0;
8
8
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
9
- var mockTypes = ['PollutionAlertConfig', 'DataloggerThresholdAlertConfig', 'DataloggerOverflowAlertConfig', 'DeviceHealthAlertConfig', 'WbeAlertConfig', 'WbeWeeklyDigestAlertConfig', 'RollingEventAlertConfig', 'DataloggerPumpAlertConfig'];
9
+ const mockTypes = ['PollutionAlertConfig', 'DataloggerThresholdAlertConfig', 'DataloggerOverflowAlertConfig', 'DeviceHealthAlertConfig', 'WbeAlertConfig', 'WbeWeeklyDigestAlertConfig', 'RollingEventAlertConfig', 'DataloggerPumpAlertConfig'];
10
10
  exports.mockTypes = mockTypes;
11
- var getEmptyNotification = function getEmptyNotification() {
11
+ const getEmptyNotification = () => {
12
12
  return {
13
13
  available_types: ['PollutionAlertConfig', 'DataloggerThresholdAlertConfig', 'DataloggerOverflowAlertConfig', 'DeviceHealthAlertConfig', 'WbeAlertConfig', 'WbeWeeklyDigestAlertConfig', 'RollingEventAlertConfig', 'DataloggerPumpAlertConfig'],
14
14
  id: '',
@@ -40,7 +40,7 @@ var getEmptyNotification = function getEmptyNotification() {
40
40
  };
41
41
  };
42
42
  exports.getEmptyNotification = getEmptyNotification;
43
- var severitiesRadioButtons = [{
43
+ const severitiesRadioButtons = [{
44
44
  label: 'notifications_page.edit_extreme',
45
45
  name: 'severity',
46
46
  value: 'extreme'
@@ -54,7 +54,7 @@ var severitiesRadioButtons = [{
54
54
  value: 'medium'
55
55
  }];
56
56
  exports.severitiesRadioButtons = severitiesRadioButtons;
57
- var waterAuthoritiesRadioButtons = [{
57
+ const waterAuthoritiesRadioButtons = [{
58
58
  label: 'notifications_page.edit_all',
59
59
  name: 'water_authorities',
60
60
  value: 'all'
@@ -68,7 +68,7 @@ var waterAuthoritiesRadioButtons = [{
68
68
  value: 'exclude'
69
69
  }];
70
70
  exports.waterAuthoritiesRadioButtons = waterAuthoritiesRadioButtons;
71
- var sourcesRadioButtons = [{
71
+ const sourcesRadioButtons = [{
72
72
  label: 'notifications_page.edit_all',
73
73
  name: 'sources',
74
74
  value: 'all'
@@ -82,7 +82,7 @@ var sourcesRadioButtons = [{
82
82
  value: 'exclude'
83
83
  }];
84
84
  exports.sourcesRadioButtons = sourcesRadioButtons;
85
- var sendViaCheckBoxes = [{
85
+ const sendViaCheckBoxes = [{
86
86
  label: 'notifications_page.edit_telegram',
87
87
  name: 'actions',
88
88
  value: 'telegram'
@@ -98,90 +98,96 @@ var sendViaCheckBoxes = [{
98
98
  // },
99
99
  ];
100
100
  exports.sendViaCheckBoxes = sendViaCheckBoxes;
101
- var getNotificationString = function getNotificationString(notification) {
102
- var transIdx = 'notifications_page.notifications_text.';
103
- var title = _i18n.default.t("".concat(transIdx, "title"));
104
- var typeString = '';
105
- var sampleString = '';
106
- sampleString = notification.pump_only === '1' ? " ".concat(_i18n.default.t('notifications_page.sampler_activated')) : '.';
101
+ const getNotificationString = notification => {
102
+ const transIdx = 'notifications_page.notifications_text.';
103
+ const title = _i18n.default.t(`${transIdx}title`);
104
+ let typeString = '';
105
+ let sampleString = '';
106
+ sampleString = notification.pump_only === '1' ? ` ${_i18n.default.t('notifications_page.sampler_activated')}` : '.';
107
107
  switch (notification.type) {
108
108
  case 'RollingEventAlertConfig':
109
- typeString = [title, getNotificationAlertsString(notification), _i18n.default.t("".concat(transIdx, "about_pollution_events")), getNotificationSeveritiesString(notification), getNotificationSourcesString(notification, transIdx)].join(' ');
109
+ typeString = [title, getNotificationAlertsString(notification), _i18n.default.t(`${transIdx}about_pollution_events`), getNotificationSeveritiesString(notification), getNotificationSourcesString(notification, transIdx)].join(' ');
110
110
  typeString += sampleString;
111
111
  break;
112
112
  case 'PollutionAlertConfig':
113
- typeString = [title, getNotificationAlertsString(notification), _i18n.default.t("".concat(transIdx, "about_pollution_events")), getNotificationSeveritiesString(notification), getNotificationSourcesString(notification, transIdx)].join(' ');
113
+ typeString = [title, getNotificationAlertsString(notification), _i18n.default.t(`${transIdx}about_pollution_events`), getNotificationSeveritiesString(notification), getNotificationSourcesString(notification, transIdx)].join(' ');
114
114
  typeString += sampleString;
115
115
  break;
116
116
  case 'DataloggerThresholdAlertConfig':
117
- typeString = "".concat(title, " ").concat(getNotificationAlertsString(notification), " ").concat(_i18n.default.t(transIdx + 'sensors_thresholds')).concat(getNotificationSensorsString(notification), ".");
117
+ typeString = `${title} ${getNotificationAlertsString(notification)} ${_i18n.default.t(transIdx + 'sensors_thresholds')}${getNotificationSensorsString(notification)}.`;
118
118
  break;
119
119
  case 'DataloggerOverflowAlertConfig':
120
- typeString = "".concat(title, " ").concat(getNotificationAlertsString(notification), " ").concat(_i18n.default.t(transIdx + 'overflow_event'), ", ").concat(getNotificationSourcesString(notification, transIdx), ".");
120
+ typeString = `${title} ${getNotificationAlertsString(notification)} ${_i18n.default.t(transIdx + 'overflow_event')}, ${getNotificationSourcesString(notification, transIdx)}.`;
121
121
  break;
122
122
  case 'DeviceHealthAlertConfig':
123
- typeString = "".concat(title, " ").concat(getNotificationAlertsString(notification), " ").concat(_i18n.default.t(transIdx + 'device_malfunctioning'), " ").concat(getNotificationSourcesString(notification, transIdx), ".");
123
+ typeString = `${title} ${getNotificationAlertsString(notification)} ${_i18n.default.t(transIdx + 'device_malfunctioning')} ${getNotificationSourcesString(notification, transIdx)}.`;
124
124
  break;
125
125
  case 'WbeWeeklyDigestAlertConfig':
126
- typeString = "".concat(title, " ").concat(getNotificationAlertsString(notification), " ").concat(_i18n.default.t(transIdx + 'wbe_weekly'), ".");
126
+ typeString = `${title} ${getNotificationAlertsString(notification)} ${_i18n.default.t(transIdx + 'wbe_weekly')}.`;
127
127
  break;
128
128
  case 'WbeAlertConfig':
129
- typeString = "".concat(title, " ").concat(getNotificationAlertsString(notification), " ").concat(_i18n.default.t(transIdx + 'wbe_alert'), ".");
129
+ typeString = `${title} ${getNotificationAlertsString(notification)} ${_i18n.default.t(transIdx + 'wbe_alert')}.`;
130
130
  break;
131
131
  case 'DataloggerPumpAlertConfig':
132
- typeString = "".concat(title, " ").concat(getNotificationAlertsString(notification), " ").concat(_i18n.default.t(transIdx + 'datalogger_pump'), ", ").concat(getNotificationSourcesString(notification, transIdx), ".");
132
+ typeString = `${title} ${getNotificationAlertsString(notification)} ${_i18n.default.t(transIdx + 'datalogger_pump')}, ${getNotificationSourcesString(notification, transIdx)}.`;
133
133
  break;
134
134
  }
135
135
  return typeString;
136
136
  };
137
137
  exports.getNotificationString = getNotificationString;
138
138
  function getNotificationAlertsString(notification) {
139
- var sendVia = notification.actions;
140
- var tempArray = [];
141
- var sendViaString = '';
142
- for (var key in sendVia) {
139
+ const sendVia = notification.actions;
140
+ let tempArray = [];
141
+ let sendViaString = '';
142
+ for (const key in sendVia) {
143
143
  if (sendVia[key]) {
144
- tempArray.push(_i18n.default.t("notifications_page.edit_".concat(key)));
144
+ tempArray.push(_i18n.default.t(`notifications_page.edit_${key}`));
145
145
  }
146
146
  }
147
147
  sendViaString = tempArray.join(', ');
148
- var and = _i18n.default.t("notifications_page.notifications_text.and");
148
+ let and = _i18n.default.t(`notifications_page.notifications_text.and`);
149
149
  and += and === '&' ? ' ' : '';
150
- sendViaString = sendViaString.replace(/,\s([^,]+)$/, " ".concat(and, "$1"));
150
+ sendViaString = sendViaString.replace(/,\s([^,]+)$/, ` ${and}$1`);
151
151
  return sendViaString;
152
152
  }
153
153
  function getNotificationSeveritiesString(notification) {
154
- var severity = notification.severity;
155
- var severityString = '';
156
- severity === 'extreme' ? severityString = _i18n.default.t('notifications_page.extreme') : severityString = _i18n.default.t("notifications_page.".concat(severity)) + ' ' + _i18n.default.t("notifications_page.notifications_text.or_higher");
154
+ const {
155
+ severity
156
+ } = notification;
157
+ let severityString = '';
158
+ severity === 'extreme' ? severityString = _i18n.default.t('notifications_page.extreme') : severityString = _i18n.default.t(`notifications_page.${severity}`) + ' ' + _i18n.default.t(`notifications_page.notifications_text.or_higher`);
157
159
  return severityString;
158
160
  }
159
161
  function getNotificationSourcesString(notification, transIdx) {
160
- var set = notification.points.set;
161
- var selection_type = notification.points.selection_type;
162
- var Strings = [];
163
- var sourcesString = '';
164
- if (selection_type === 'all') Strings.push(_i18n.default.t("".concat(transIdx, "in_all_sources")));
165
- if (selection_type === 'exclude') Strings.push(_i18n.default.t("".concat(transIdx, "excluding")));
166
- if (selection_type === 'include') sourcesString = _i18n.default.t("".concat(transIdx, "in")) + ' ';
167
- if (selection_type !== 'all') set.map(function (source) {
168
- return Strings.push(source.text);
169
- });
162
+ const {
163
+ set
164
+ } = notification.points;
165
+ const {
166
+ selection_type
167
+ } = notification.points;
168
+ let Strings = [];
169
+ let sourcesString = '';
170
+ if (selection_type === 'all') Strings.push(_i18n.default.t(`${transIdx}in_all_sources`));
171
+ if (selection_type === 'exclude') Strings.push(_i18n.default.t(`${transIdx}excluding`));
172
+ if (selection_type === 'include') sourcesString = _i18n.default.t(`${transIdx}in`) + ' ';
173
+ if (selection_type !== 'all') set.map(source => Strings.push(source.text));
170
174
  sourcesString += Strings.join(Strings.length > 1 ? ', ' : ' ');
171
175
  return sourcesString;
172
176
  }
173
177
  function getNotificationSensorsString(notification) {
174
- var set = notification.sensors.set;
175
- var selection_type = notification.sensors.selection_type;
176
- var Strings = [];
177
- var sensorsString = '';
178
+ const {
179
+ set
180
+ } = notification.sensors;
181
+ const {
182
+ selection_type
183
+ } = notification.sensors;
184
+ let Strings = [];
185
+ let sensorsString = '';
178
186
  if (selection_type !== 'all') {
179
- set.map(function (sensor) {
180
- return Strings.push(sensor.text);
181
- });
187
+ set.map(sensor => Strings.push(sensor.text));
182
188
  sensorsString = ': ';
183
189
  sensorsString += Strings.join(', ');
184
190
  }
185
191
  return sensorsString;
186
192
  }
187
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibW9ja1R5cGVzIiwiZXhwb3J0cyIsImdldEVtcHR5Tm90aWZpY2F0aW9uIiwiYXZhaWxhYmxlX3R5cGVzIiwiaWQiLCJ0eXBlIiwic2V2ZXJpdHkiLCJ3YXRlcl9hdXRob3JpdGllcyIsInNlbGVjdGlvbl90eXBlIiwic2V0IiwicG9pbnRzIiwidGFncyIsInNlbnNvcnMiLCJhY3Rpb25zIiwidGVsZWdyYW0iLCJlbWFpbCIsInNtcyIsInB1bXBfb25seSIsImRpcmVjdF9pbXBhY3Rfb25seSIsInVuZGVmaW5lZCIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJsYWJlbCIsIm5hbWUiLCJ2YWx1ZSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJzb3VyY2VzUmFkaW9CdXR0b25zIiwic2VuZFZpYUNoZWNrQm94ZXMiLCJnZXROb3RpZmljYXRpb25TdHJpbmciLCJub3RpZmljYXRpb24iLCJ0cmFuc0lkeCIsInRpdGxlIiwiaTE4biIsInQiLCJjb25jYXQiLCJ0eXBlU3RyaW5nIiwic2FtcGxlU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyIsImdldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmciLCJqb2luIiwiZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyIsInNlbmRWaWEiLCJ0ZW1wQXJyYXkiLCJzZW5kVmlhU3RyaW5nIiwia2V5IiwicHVzaCIsImFuZCIsInJlcGxhY2UiLCJzZXZlcml0eVN0cmluZyIsIlN0cmluZ3MiLCJzb3VyY2VzU3RyaW5nIiwibWFwIiwic291cmNlIiwidGV4dCIsImxlbmd0aCIsInNlbnNvcnNTdHJpbmciLCJzZW5zb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xuICBhdmFpbGFibGVfdHlwZXM/OiBzdHJpbmdbXTtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzZXZlcml0eTogc3RyaW5nO1xuICB3YXRlcl9hdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbjtcbiAgYWN0aW9uczogYW55O1xuICBwdW1wX29ubHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZHZhbmNlZFNlbGVjdGlvbiB7XG4gIHNlbGVjdGlvbl90eXBlOiBzdHJpbmc7XG4gIHNldDogYW55O1xuICB3YXRlcl9hdXRob3JpdHk/OiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBtb2NrVHlwZXM6IGFueSA9IFtcbiAgJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgJ0RhdGFsb2dnZXJUaHJlc2hvbGRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZycsXG4gICdXYmVBbGVydENvbmZpZycsXG4gICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyUHVtcEFsZXJ0Q29uZmlnJyxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXRFbXB0eU5vdGlmaWNhdGlvbiA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBhdmFpbGFibGVfdHlwZXM6IFtcbiAgICAgICdQb2xsdXRpb25BbGVydENvbmZpZycsXG4gICAgICAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyxcbiAgICAgICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICAgICAnRGV2aWNlSGVhbHRoQWxlcnRDb25maWcnLFxuICAgICAgJ1diZUFsZXJ0Q29uZmlnJyxcbiAgICAgICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICAgICAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnLFxuICAgICAgJ0RhdGFsb2dnZXJQdW1wQWxlcnRDb25maWcnLFxuICAgIF0sXG4gICAgaWQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIHNldmVyaXR5OiAnbWVkaXVtJyxcbiAgICB3YXRlcl9hdXRob3JpdGllczoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHBvaW50czoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHRhZ3M6IHtcbiAgICAgIHNlbGVjdGlvbl90eXBlOiAnYWxsJyxcbiAgICAgIHNldDogW10sXG4gICAgfSxcbiAgICBzZW5zb3JzOiB7XG4gICAgICBzZWxlY3Rpb25fdHlwZTogJ2FsbCcsXG4gICAgICBzZXQ6IFtdLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyB0ZWxlZ3JhbTogZmFsc2UsIGVtYWlsOiB0cnVlLCBzbXM6IGZhbHNlIH0sXG4gICAgcHVtcF9vbmx5OiAnMCcsXG4gICAgZGlyZWN0X2ltcGFjdF9vbmx5OiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2V2ZXJpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXh0cmVtZScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ2V4dHJlbWUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9oaWdoJyxcbiAgICBuYW1lOiAnc2V2ZXJpdHknLFxuICAgIHZhbHVlOiAnaGlnaCcsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X21lZGl1bScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ21lZGl1bScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgd2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnYWxsJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfaW5jbHVkZScsXG4gICAgbmFtZTogJ3dhdGVyX2F1dGhvcml0aWVzJyxcbiAgICB2YWx1ZTogJ2luY2x1ZGUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9leGNsdWRlJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc291cmNlc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdhbGwnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9pbmNsdWRlJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdpbmNsdWRlJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXhjbHVkZScsXG4gICAgbmFtZTogJ3NvdXJjZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VuZFZpYUNoZWNrQm94ZXMgPSBbXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3RlbGVncmFtJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICd0ZWxlZ3JhbScsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2VtYWlsJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICdlbWFpbCcsXG4gIH0sXG4gIC8vIHtcbiAgLy8gICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NtcycsXG4gIC8vICAgbmFtZTogJ2FjdGlvbnMnLFxuICAvLyAgIHZhbHVlOiAnc21zJyxcbiAgLy8gfSxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXROb3RpZmljYXRpb25TdHJpbmcgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgY29uc3QgdHJhbnNJZHggPSAnbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC4nO1xuICBjb25zdCB0aXRsZSA9IGkxOG4udChgJHt0cmFuc0lkeH10aXRsZWApO1xuICBsZXQgdHlwZVN0cmluZyA9ICcnO1xuICBsZXQgc2FtcGxlU3RyaW5nID0gJyc7XG4gIHNhbXBsZVN0cmluZyA9XG4gICAgbm90aWZpY2F0aW9uLnB1bXBfb25seSA9PT0gJzEnXG4gICAgICA/IGAgJHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zYW1wbGVyX2FjdGl2YXRlZCcpfWBcbiAgICAgIDogJy4nO1xuXG4gIHN3aXRjaCAobm90aWZpY2F0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdQb2xsdXRpb25BbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQoXG4gICAgICAgIHRyYW5zSWR4ICsgJ3NlbnNvcnNfdGhyZXNob2xkcycsXG4gICAgICApfSR7Z2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlck92ZXJmbG93QWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQodHJhbnNJZHggKyAnb3ZlcmZsb3dfZXZlbnQnKX0sICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICB0cmFuc0lkeCxcbiAgICAgICl9LmA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGV2aWNlX21hbGZ1bmN0aW9uaW5nJyxcbiAgICAgICl9ICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZVdlZWtseURpZ2VzdEFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV93ZWVrbHknKX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZUFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV9hbGVydCcpfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlclB1bXBBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGF0YWxvZ2dlcl9wdW1wJyxcbiAgICAgICl9LCAke2dldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmcobm90aWZpY2F0aW9uLCB0cmFuc0lkeCl9LmA7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdHlwZVN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3Qgc2VuZFZpYSA9IG5vdGlmaWNhdGlvbi5hY3Rpb25zO1xuICBsZXQgdGVtcEFycmF5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBzZW5kVmlhU3RyaW5nID0gJyc7XG4gIGZvciAoY29uc3Qga2V5IGluIHNlbmRWaWEpIHtcbiAgICBpZiAoc2VuZFZpYVtrZXldKSB7XG4gICAgICB0ZW1wQXJyYXkucHVzaChpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5lZGl0XyR7a2V5fWApKTtcbiAgICB9XG4gIH1cbiAgc2VuZFZpYVN0cmluZyA9IHRlbXBBcnJheS5qb2luKCcsICcpO1xuICBsZXQgYW5kID0gaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2Uubm90aWZpY2F0aW9uc190ZXh0LmFuZGApO1xuICBhbmQgKz0gYW5kID09PSAnJicgPyAnICcgOiAnJztcbiAgc2VuZFZpYVN0cmluZyA9IHNlbmRWaWFTdHJpbmcucmVwbGFjZSgvLFxccyhbXixdKykkLywgYCAke2FuZH0kMWApO1xuICByZXR1cm4gc2VuZFZpYVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXZlcml0eSB9ID0gbm90aWZpY2F0aW9uO1xuICBsZXQgc2V2ZXJpdHlTdHJpbmcgPSAnJztcbiAgc2V2ZXJpdHkgPT09ICdleHRyZW1lJ1xuICAgID8gKHNldmVyaXR5U3RyaW5nID0gaTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZXh0cmVtZScpKVxuICAgIDogKHNldmVyaXR5U3RyaW5nID1cbiAgICAgICAgaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2UuJHtzZXZlcml0eX1gKSArXG4gICAgICAgICcgJyArXG4gICAgICAgIGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC5vcl9oaWdoZXJgKSk7XG4gIHJldHVybiBzZXZlcml0eVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSB7XG4gIGNvbnN0IHsgc2V0IH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuXG4gIGxldCBTdHJpbmdzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgc291cmNlc1N0cmluZyA9ICcnO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdhbGwnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9aW5fYWxsX3NvdXJjZXNgKSk7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSA9PT0gJ2V4Y2x1ZGUnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9ZXhjbHVkaW5nYCkpO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdpbmNsdWRlJylcbiAgICBzb3VyY2VzU3RyaW5nID0gaTE4bi50KGAke3RyYW5zSWR4fWluYCkgKyAnICc7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcpIHNldC5tYXAoKHNvdXJjZSkgPT4gU3RyaW5ncy5wdXNoKHNvdXJjZS50ZXh0KSk7XG4gIHNvdXJjZXNTdHJpbmcgKz0gU3RyaW5ncy5qb2luKFN0cmluZ3MubGVuZ3RoID4gMSA/ICcsICcgOiAnICcpO1xuICByZXR1cm4gc291cmNlc1N0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXQgfSA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBsZXQgU3RyaW5nczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IHNlbnNvcnNTdHJpbmcgPSAnJztcbiAgaWYgKHNlbGVjdGlvbl90eXBlICE9PSAnYWxsJykge1xuICAgIHNldC5tYXAoKHNlbnNvcikgPT4gU3RyaW5ncy5wdXNoKHNlbnNvci50ZXh0KSk7XG4gICAgc2Vuc29yc1N0cmluZyA9ICc6ICc7XG4gICAgc2Vuc29yc1N0cmluZyArPSBTdHJpbmdzLmpvaW4oJywgJyk7XG4gIH1cbiAgcmV0dXJuIHNlbnNvcnNTdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFxQk8sSUFBTUMsU0FBYyxHQUFHLENBQzVCLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QiwyQkFBMkIsQ0FDNUI7QUFBQ0MsT0FBQSxDQUFBRCxTQUFBLEdBQUFBLFNBQUE7QUFFSyxJQUFNRSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBLEVBQVM7RUFDeEMsT0FBTztJQUNMQyxlQUFlLEVBQUUsQ0FDZixzQkFBc0IsRUFDdEIsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsMkJBQTJCLENBQzVCO0lBQ0RDLEVBQUUsRUFBRSxFQUFFO0lBQ05DLElBQUksRUFBRSxFQUFFO0lBQ1JDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCQyxpQkFBaUIsRUFB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
193
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibW9ja1R5cGVzIiwiZXhwb3J0cyIsImdldEVtcHR5Tm90aWZpY2F0aW9uIiwiYXZhaWxhYmxlX3R5cGVzIiwiaWQiLCJ0eXBlIiwic2V2ZXJpdHkiLCJ3YXRlcl9hdXRob3JpdGllcyIsInNlbGVjdGlvbl90eXBlIiwic2V0IiwicG9pbnRzIiwidGFncyIsInNlbnNvcnMiLCJhY3Rpb25zIiwidGVsZWdyYW0iLCJlbWFpbCIsInNtcyIsInB1bXBfb25seSIsImRpcmVjdF9pbXBhY3Rfb25seSIsInVuZGVmaW5lZCIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJsYWJlbCIsIm5hbWUiLCJ2YWx1ZSIsIndhdGVyQXV0aG9yaXRpZXNSYWRpb0J1dHRvbnMiLCJzb3VyY2VzUmFkaW9CdXR0b25zIiwic2VuZFZpYUNoZWNrQm94ZXMiLCJnZXROb3RpZmljYXRpb25TdHJpbmciLCJub3RpZmljYXRpb24iLCJ0cmFuc0lkeCIsInRpdGxlIiwiaTE4biIsInQiLCJ0eXBlU3RyaW5nIiwic2FtcGxlU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nIiwiZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyIsImdldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmciLCJqb2luIiwiZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyIsInNlbmRWaWEiLCJ0ZW1wQXJyYXkiLCJzZW5kVmlhU3RyaW5nIiwia2V5IiwicHVzaCIsImFuZCIsInJlcGxhY2UiLCJzZXZlcml0eVN0cmluZyIsIlN0cmluZ3MiLCJzb3VyY2VzU3RyaW5nIiwibWFwIiwic291cmNlIiwidGV4dCIsImxlbmd0aCIsInNlbnNvcnNTdHJpbmciLCJzZW5zb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xuICBhdmFpbGFibGVfdHlwZXM/OiBzdHJpbmdbXTtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzZXZlcml0eTogc3RyaW5nO1xuICB3YXRlcl9hdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb247XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uO1xuICBzZW5zb3JzOiBBZHZhbmNlZFNlbGVjdGlvbjtcbiAgYWN0aW9uczogYW55O1xuICBwdW1wX29ubHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZHZhbmNlZFNlbGVjdGlvbiB7XG4gIHNlbGVjdGlvbl90eXBlOiBzdHJpbmc7XG4gIHNldDogYW55O1xuICB3YXRlcl9hdXRob3JpdHk/OiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBtb2NrVHlwZXM6IGFueSA9IFtcbiAgJ1BvbGx1dGlvbkFsZXJ0Q29uZmlnJyxcbiAgJ0RhdGFsb2dnZXJUaHJlc2hvbGRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZycsXG4gICdXYmVBbGVydENvbmZpZycsXG4gICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICdEYXRhbG9nZ2VyUHVtcEFsZXJ0Q29uZmlnJyxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXRFbXB0eU5vdGlmaWNhdGlvbiA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBhdmFpbGFibGVfdHlwZXM6IFtcbiAgICAgICdQb2xsdXRpb25BbGVydENvbmZpZycsXG4gICAgICAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyxcbiAgICAgICdEYXRhbG9nZ2VyT3ZlcmZsb3dBbGVydENvbmZpZycsXG4gICAgICAnRGV2aWNlSGVhbHRoQWxlcnRDb25maWcnLFxuICAgICAgJ1diZUFsZXJ0Q29uZmlnJyxcbiAgICAgICdXYmVXZWVrbHlEaWdlc3RBbGVydENvbmZpZycsXG4gICAgICAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnLFxuICAgICAgJ0RhdGFsb2dnZXJQdW1wQWxlcnRDb25maWcnLFxuICAgIF0sXG4gICAgaWQ6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIHNldmVyaXR5OiAnbWVkaXVtJyxcbiAgICB3YXRlcl9hdXRob3JpdGllczoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHBvaW50czoge1xuICAgICAgc2VsZWN0aW9uX3R5cGU6ICdhbGwnLFxuICAgICAgc2V0OiBbXSxcbiAgICB9LFxuICAgIHRhZ3M6IHtcbiAgICAgIHNlbGVjdGlvbl90eXBlOiAnYWxsJyxcbiAgICAgIHNldDogW10sXG4gICAgfSxcbiAgICBzZW5zb3JzOiB7XG4gICAgICBzZWxlY3Rpb25fdHlwZTogJ2FsbCcsXG4gICAgICBzZXQ6IFtdLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyB0ZWxlZ3JhbTogZmFsc2UsIGVtYWlsOiB0cnVlLCBzbXM6IGZhbHNlIH0sXG4gICAgcHVtcF9vbmx5OiAnMCcsXG4gICAgZGlyZWN0X2ltcGFjdF9vbmx5OiB1bmRlZmluZWQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2V2ZXJpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXh0cmVtZScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ2V4dHJlbWUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9oaWdoJyxcbiAgICBuYW1lOiAnc2V2ZXJpdHknLFxuICAgIHZhbHVlOiAnaGlnaCcsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X21lZGl1bScsXG4gICAgbmFtZTogJ3NldmVyaXR5JyxcbiAgICB2YWx1ZTogJ21lZGl1bScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgd2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnYWxsJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfaW5jbHVkZScsXG4gICAgbmFtZTogJ3dhdGVyX2F1dGhvcml0aWVzJyxcbiAgICB2YWx1ZTogJ2luY2x1ZGUnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9leGNsdWRlJyxcbiAgICBuYW1lOiAnd2F0ZXJfYXV0aG9yaXRpZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc291cmNlc1JhZGlvQnV0dG9ucyA9IFtcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfYWxsJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdhbGwnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9pbmNsdWRlJyxcbiAgICBuYW1lOiAnc291cmNlcycsXG4gICAgdmFsdWU6ICdpbmNsdWRlJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfZXhjbHVkZScsXG4gICAgbmFtZTogJ3NvdXJjZXMnLFxuICAgIHZhbHVlOiAnZXhjbHVkZScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VuZFZpYUNoZWNrQm94ZXMgPSBbXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3RlbGVncmFtJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICd0ZWxlZ3JhbScsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X2VtYWlsJyxcbiAgICBuYW1lOiAnYWN0aW9ucycsXG4gICAgdmFsdWU6ICdlbWFpbCcsXG4gIH0sXG4gIC8vIHtcbiAgLy8gICBsYWJlbDogJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NtcycsXG4gIC8vICAgbmFtZTogJ2FjdGlvbnMnLFxuICAvLyAgIHZhbHVlOiAnc21zJyxcbiAgLy8gfSxcbl07XG5cbmV4cG9ydCBjb25zdCBnZXROb3RpZmljYXRpb25TdHJpbmcgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgY29uc3QgdHJhbnNJZHggPSAnbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC4nO1xuICBjb25zdCB0aXRsZSA9IGkxOG4udChgJHt0cmFuc0lkeH10aXRsZWApO1xuICBsZXQgdHlwZVN0cmluZyA9ICcnO1xuICBsZXQgc2FtcGxlU3RyaW5nID0gJyc7XG4gIHNhbXBsZVN0cmluZyA9XG4gICAgbm90aWZpY2F0aW9uLnB1bXBfb25seSA9PT0gJzEnXG4gICAgICA/IGAgJHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zYW1wbGVyX2FjdGl2YXRlZCcpfWBcbiAgICAgIDogJy4nO1xuXG4gIHN3aXRjaCAobm90aWZpY2F0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdQb2xsdXRpb25BbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gW1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKG5vdGlmaWNhdGlvbiksXG4gICAgICAgIGkxOG4udChgJHt0cmFuc0lkeH1hYm91dF9wb2xsdXRpb25fZXZlbnRzYCksXG4gICAgICAgIGdldE5vdGlmaWNhdGlvblNldmVyaXRpZXNTdHJpbmcobm90aWZpY2F0aW9uKSxcbiAgICAgICAgZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSxcbiAgICAgIF0uam9pbignICcpO1xuICAgICAgdHlwZVN0cmluZyArPSBzYW1wbGVTdHJpbmc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQoXG4gICAgICAgIHRyYW5zSWR4ICsgJ3NlbnNvcnNfdGhyZXNob2xkcycsXG4gICAgICApfSR7Z2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlck92ZXJmbG93QWxlcnRDb25maWcnOlxuICAgICAgdHlwZVN0cmluZyA9IGAke3RpdGxlfSAke2dldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgKX0gJHtpMThuLnQodHJhbnNJZHggKyAnb3ZlcmZsb3dfZXZlbnQnKX0sICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICB0cmFuc0lkeCxcbiAgICAgICl9LmA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEZXZpY2VIZWFsdGhBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGV2aWNlX21hbGZ1bmN0aW9uaW5nJyxcbiAgICAgICl9ICR7Z2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZVdlZWtseURpZ2VzdEFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV93ZWVrbHknKX0uYDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ1diZUFsZXJ0Q29uZmlnJzpcbiAgICAgIHR5cGVTdHJpbmcgPSBgJHt0aXRsZX0gJHtnZXROb3RpZmljYXRpb25BbGVydHNTdHJpbmcoXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICl9ICR7aTE4bi50KHRyYW5zSWR4ICsgJ3diZV9hbGVydCcpfS5gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0YWxvZ2dlclB1bXBBbGVydENvbmZpZyc6XG4gICAgICB0eXBlU3RyaW5nID0gYCR7dGl0bGV9ICR7Z2V0Tm90aWZpY2F0aW9uQWxlcnRzU3RyaW5nKFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICApfSAke2kxOG4udChcbiAgICAgICAgdHJhbnNJZHggKyAnZGF0YWxvZ2dlcl9wdW1wJyxcbiAgICAgICl9LCAke2dldE5vdGlmaWNhdGlvblNvdXJjZXNTdHJpbmcobm90aWZpY2F0aW9uLCB0cmFuc0lkeCl9LmA7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdHlwZVN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldE5vdGlmaWNhdGlvbkFsZXJ0c1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3Qgc2VuZFZpYSA9IG5vdGlmaWNhdGlvbi5hY3Rpb25zO1xuICBsZXQgdGVtcEFycmF5OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBzZW5kVmlhU3RyaW5nID0gJyc7XG4gIGZvciAoY29uc3Qga2V5IGluIHNlbmRWaWEpIHtcbiAgICBpZiAoc2VuZFZpYVtrZXldKSB7XG4gICAgICB0ZW1wQXJyYXkucHVzaChpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5lZGl0XyR7a2V5fWApKTtcbiAgICB9XG4gIH1cbiAgc2VuZFZpYVN0cmluZyA9IHRlbXBBcnJheS5qb2luKCcsICcpO1xuICBsZXQgYW5kID0gaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2Uubm90aWZpY2F0aW9uc190ZXh0LmFuZGApO1xuICBhbmQgKz0gYW5kID09PSAnJicgPyAnICcgOiAnJztcbiAgc2VuZFZpYVN0cmluZyA9IHNlbmRWaWFTdHJpbmcucmVwbGFjZSgvLFxccyhbXixdKykkLywgYCAke2FuZH0kMWApO1xuICByZXR1cm4gc2VuZFZpYVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2V2ZXJpdGllc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXZlcml0eSB9ID0gbm90aWZpY2F0aW9uO1xuICBsZXQgc2V2ZXJpdHlTdHJpbmcgPSAnJztcbiAgc2V2ZXJpdHkgPT09ICdleHRyZW1lJ1xuICAgID8gKHNldmVyaXR5U3RyaW5nID0gaTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZXh0cmVtZScpKVxuICAgIDogKHNldmVyaXR5U3RyaW5nID1cbiAgICAgICAgaTE4bi50KGBub3RpZmljYXRpb25zX3BhZ2UuJHtzZXZlcml0eX1gKSArXG4gICAgICAgICcgJyArXG4gICAgICAgIGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLm5vdGlmaWNhdGlvbnNfdGV4dC5vcl9oaWdoZXJgKSk7XG4gIHJldHVybiBzZXZlcml0eVN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU291cmNlc1N0cmluZyhub3RpZmljYXRpb24sIHRyYW5zSWR4KSB7XG4gIGNvbnN0IHsgc2V0IH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24ucG9pbnRzO1xuXG4gIGxldCBTdHJpbmdzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgc291cmNlc1N0cmluZyA9ICcnO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdhbGwnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9aW5fYWxsX3NvdXJjZXNgKSk7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSA9PT0gJ2V4Y2x1ZGUnKVxuICAgIFN0cmluZ3MucHVzaChpMThuLnQoYCR7dHJhbnNJZHh9ZXhjbHVkaW5nYCkpO1xuICBpZiAoc2VsZWN0aW9uX3R5cGUgPT09ICdpbmNsdWRlJylcbiAgICBzb3VyY2VzU3RyaW5nID0gaTE4bi50KGAke3RyYW5zSWR4fWluYCkgKyAnICc7XG4gIGlmIChzZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcpIHNldC5tYXAoKHNvdXJjZSkgPT4gU3RyaW5ncy5wdXNoKHNvdXJjZS50ZXh0KSk7XG4gIHNvdXJjZXNTdHJpbmcgKz0gU3RyaW5ncy5qb2luKFN0cmluZ3MubGVuZ3RoID4gMSA/ICcsICcgOiAnICcpO1xuICByZXR1cm4gc291cmNlc1N0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uU2Vuc29yc1N0cmluZyhub3RpZmljYXRpb24pIHtcbiAgY29uc3QgeyBzZXQgfSA9IG5vdGlmaWNhdGlvbi5zZW5zb3JzO1xuICBjb25zdCB7IHNlbGVjdGlvbl90eXBlIH0gPSBub3RpZmljYXRpb24uc2Vuc29ycztcblxuICBsZXQgU3RyaW5nczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IHNlbnNvcnNTdHJpbmcgPSAnJztcbiAgaWYgKHNlbGVjdGlvbl90eXBlICE9PSAnYWxsJykge1xuICAgIHNldC5tYXAoKHNlbnNvcikgPT4gU3RyaW5ncy5wdXNoKHNlbnNvci50ZXh0KSk7XG4gICAgc2Vuc29yc1N0cmluZyA9ICc6ICc7XG4gICAgc2Vuc29yc1N0cmluZyArPSBTdHJpbmdzLmpvaW4oJywgJyk7XG4gIH1cbiAgcmV0dXJuIHNlbnNvcnNTdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFxQk8sTUFBTUMsU0FBYyxHQUFHLENBQzVCLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QiwyQkFBMkIsQ0FDNUI7QUFBQ0MsT0FBQSxDQUFBRCxTQUFBLEdBQUFBLFNBQUE7QUFFSyxNQUFNRSxvQkFBb0IsR0FBR0EsQ0FBQSxLQUFNO0VBQ3hDLE9BQU87SUFDTEMsZUFBZSxFQUFFLENBQ2Ysc0JBQXNCLEVBQ3RCLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0IseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDJCQUEyQixDQUM1QjtJQUNEQyxFQUFFLEVBQUUsRUFBRTtJQUNOQyxJQUFJLEVBQUUsRUFBRTtJQUNSQyxRQUFRLEVBQUUsUUFBUTtJQUNsQkMsaUJBQWlCLEVBQUU7TUFDakJDLGNBQWMsRUFBRSxLQUFL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