@kando-env/kando-ui 1.2.383 → 1.2.385-alpha.0

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