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

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 (672) hide show
  1. package/lib/Router.js +42 -81
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +23 -33
  3. package/lib/Widgets/EventsRow/EventsRow.js +25 -37
  4. package/lib/Widgets/Map/GraphUtils.js +3 -3
  5. package/lib/Widgets/Map/Map.js +70 -90
  6. package/lib/Widgets/Map/MapUtils.js +43 -43
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +52 -76
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
  9. package/lib/Widgets/Map/areas/AreaUtils.js +48 -48
  10. package/lib/Widgets/Map/areas/Patterns.js +4 -4
  11. package/lib/Widgets/Map/edges/Edge.js +24 -31
  12. package/lib/Widgets/Map/edges/Edges.js +19 -23
  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 +57 -52
  16. package/lib/Widgets/Map/events/EventPath.js +24 -22
  17. package/lib/Widgets/Map/events/EventUtils.js +55 -78
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -18
  19. package/lib/Widgets/Map/events/PointOfEvent.js +32 -37
  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 +15 -13
  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 +69 -75
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +28 -45
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -10
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +10 -11
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +28 -57
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
  37. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
  39. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +11 -8
  40. package/lib/Widgets/MostPolluting/Factories/Factories.js +33 -64
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +14 -17
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +7 -7
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +12 -10
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
  45. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
  46. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  47. package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
  48. package/lib/Widgets/MostPolluting/MostPolluting.js +21 -27
  49. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +21 -22
  50. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +6 -4
  51. package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -4
  52. package/lib/Widgets/MostPolluting/assets/index.js +11 -11
  53. package/lib/Widgets/MostPolluting/components/ChangePercent.js +19 -13
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +35 -30
  55. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +34 -31
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
  57. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -26
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +52 -48
  59. package/lib/Widgets/MostPolluting/models.js +1 -1
  60. package/lib/Widgets/MostPolluting/styles.js +3 -3
  61. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +7 -5
  62. package/lib/Widgets/PotentialImpactSummary/Icon.js +8 -7
  63. package/lib/Widgets/PotentialImpactSummary/index.js +19 -27
  64. package/lib/Widgets/PotentialImpactSummary/index.test.js +48 -52
  65. package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
  66. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  67. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +9 -7
  68. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +22 -17
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +35 -32
  70. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -24
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -37
  72. package/lib/Widgets/QualitySummary/QualitySummary.js +9 -13
  73. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
  74. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  75. package/lib/Widgets/QualitySummary/styles.js +23 -15
  76. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -13
  77. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +25 -24
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
  79. package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -40
  80. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  81. package/lib/Widgets/UtilityInformation/styles.js +31 -22
  82. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
  83. package/lib/assets/icons/TopNavbar/index.js +7 -7
  84. package/lib/assets/icons/TrendSvg.js +6 -6
  85. package/lib/assets/icons/index.js +16 -16
  86. package/lib/assets/icons/kandoStepper/index.js +6 -6
  87. package/lib/assets/icons/siteTypes/index.js +2 -2
  88. package/lib/components/ApplyButton/ApplyButton.js +8 -8
  89. package/lib/components/ApplyButton/index.js +1 -1
  90. package/lib/components/Backdrop/Backdrop.js +6 -4
  91. package/lib/components/ContentLoader/ContentLoader.js +11 -9
  92. package/lib/components/ContentLoader/index.js +2 -2
  93. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +10 -9
  94. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
  95. package/lib/components/CustomInputs/DoubleTabs/styles.js +20 -12
  96. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +12 -19
  97. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
  98. package/lib/components/CustomInputs/Search/Search.js +39 -60
  99. package/lib/components/CustomInputs/Search/index.js +1 -1
  100. package/lib/components/CustomInputs/Select/Select.js +42 -55
  101. package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
  102. package/lib/components/DamageType/DamageType.js +35 -56
  103. package/lib/components/DamageType/index.js +1 -1
  104. package/lib/components/DataLoaderError/DataLoaderError.js +8 -6
  105. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +9 -10
  106. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +71 -72
  107. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +27 -37
  108. package/lib/components/DischargeHeatmap/HighchartsOptions.js +11 -12
  109. package/lib/components/DischargeHeatmap/index.js +1 -1
  110. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
  111. package/lib/components/DischargeHeatmap/popupText.js +9 -9
  112. package/lib/components/DischargeHeatmap/titles.js +3 -3
  113. package/lib/components/DischargeHeatmap/types.js +1 -1
  114. package/lib/components/ErrorBoundary.js +27 -41
  115. package/lib/components/Events/Events.js +28 -45
  116. package/lib/components/Events/index.js +1 -1
  117. package/lib/components/Graph/Graph.js +67 -86
  118. package/lib/components/Graph/index.js +1 -1
  119. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
  120. package/lib/components/Header/Breadcrumbs/index.js +1 -1
  121. package/lib/components/Header/DoubleTabs/DoubleTabs.js +18 -26
  122. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
  123. package/lib/components/Header/DoubleTabs/styles.js +4 -4
  124. package/lib/components/Header/Header.js +2 -2
  125. package/lib/components/Header/Header.stories.js +3 -5
  126. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +82 -197
  127. package/lib/components/Header/InfoBar/InfoBar.js +66 -95
  128. package/lib/components/Header/InfoBar/Search/Control.js +9 -9
  129. package/lib/components/Header/InfoBar/Search/GroupLabel.js +6 -4
  130. package/lib/components/Header/InfoBar/Search/Search.js +14 -19
  131. package/lib/components/Header/InfoBar/Search/SearchContainer.js +15 -27
  132. package/lib/components/Header/InfoBar/Search/index.js +1 -1
  133. package/lib/components/Header/InfoBar/Search/searchStyle.js +41 -49
  134. package/lib/components/Header/InfoBar/TimeFilter.js +11 -14
  135. package/lib/components/Header/InfoBar/types.js +1 -1
  136. package/lib/components/Header/KandoNavbar/KandoNavbar.js +65 -90
  137. package/lib/components/Header/KandoNavbar/index.js +1 -1
  138. package/lib/components/Header/Slideshow/Slideshow.js +67 -89
  139. package/lib/components/Header/Slideshow/index.js +1 -1
  140. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +6 -4
  141. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +21 -23
  142. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +23 -21
  143. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +35 -41
  144. package/lib/components/Header/Toolbar/Toolbar.js +58 -76
  145. package/lib/components/InfoBar/InfoBar.js +10 -23
  146. package/lib/components/InfoBar/InfoBar.stories.js +3 -5
  147. package/lib/components/KandoModal/KandoModal.js +23 -37
  148. package/lib/components/KandoModal/index.js +1 -1
  149. package/lib/components/Link.js +8 -7
  150. package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -8
  151. package/lib/components/Links/StyledLink/StyledLink.js +12 -12
  152. package/lib/components/Links/StyledNavLink/StyledNavLink.js +11 -10
  153. package/lib/components/LiveEvents/CarouselSlide.js +9 -7
  154. package/lib/components/LiveEvents/LiveEvents.js +5 -3
  155. package/lib/components/LiveEvents/index.js +1 -1
  156. package/lib/components/LoaderByPercent/LoaderByPercent.js +36 -28
  157. package/lib/components/Map/Map.js +19 -22
  158. package/lib/components/Map/index.js +1 -1
  159. package/lib/components/Modal/Modal.js +9 -9
  160. package/lib/components/NarrowHeader.js +17 -31
  161. package/lib/components/PointInfo/PointInfo.js +18 -16
  162. package/lib/components/PointInfo/index.js +1 -1
  163. package/lib/components/PopupModal/PopupModal.js +12 -16
  164. package/lib/components/PopupModal/PopupModal.stories.js +15 -19
  165. package/lib/components/Sector/Sector.js +8 -6
  166. package/lib/components/Sector/Sector.test.js +23 -24
  167. package/lib/components/Sector/index.js +1 -1
  168. package/lib/components/Sector/sectorIcons.js +2 -2
  169. package/lib/components/SevereEvent/Eta/Eta.js +48 -51
  170. package/lib/components/SevereEvent/Eta/styles.js +10 -6
  171. package/lib/components/SevereEvent/SevereEvent.js +27 -34
  172. package/lib/components/Spinner/Spinner.js +7 -7
  173. package/lib/components/Spinner/Spinner.stories.js +4 -6
  174. package/lib/components/Spinner/index.js +1 -1
  175. package/lib/components/Spinner/styles.js +20 -12
  176. package/lib/components/Tabs/Tabs.js +18 -27
  177. package/lib/components/Tabs/Tabs.stories.js +4 -6
  178. package/lib/components/Tabs/assets/index.js +6 -6
  179. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -15
  180. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +34 -45
  181. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
  182. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +1 -1
  183. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +16 -21
  184. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +11 -11
  185. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +1 -1
  186. package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
  187. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +16 -24
  188. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +28 -29
  189. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
  190. package/lib/components/TimeRangeSelector/constants.js +3 -3
  191. package/lib/components/TimeRangeSelector/index.js +1 -1
  192. package/lib/components/Toggle/Toggle.js +10 -15
  193. package/lib/components/Toggle/index.js +1 -1
  194. package/lib/components/TrendGraph/TrendGraph.js +22 -38
  195. package/lib/components/TrendGraph/index.js +1 -1
  196. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +24 -31
  197. package/lib/components/TrendGraphNVL/index.js +1 -1
  198. package/lib/development-environment/index.js +8 -12
  199. package/lib/development-environment/mock/browser.js +2 -4
  200. package/lib/development-environment/mock/get.js +8 -10
  201. package/lib/development-environment/mock/handlers.js +2 -2
  202. package/lib/development-environment/mock/mockBus.js +4 -4
  203. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
  204. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
  205. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
  206. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
  207. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
  208. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
  209. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
  210. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
  211. package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
  212. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
  213. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
  214. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
  215. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
  216. package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
  217. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
  218. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
  219. package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
  220. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
  221. package/lib/development-environment/togly/ToglyDashboard.js +13 -22
  222. package/lib/development-environment/togly/ToglyItem.js +25 -28
  223. package/lib/development-environment/togly/flags.js +1 -1
  224. package/lib/development-environment/togly/init.js +3 -3
  225. package/lib/development-environment/togly/macro.js +13 -9
  226. package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
  227. package/lib/development-environment/togly/useLocalStorage.js +13 -18
  228. package/lib/hooks/useApi.js +19 -55
  229. package/lib/hooks/useApiWithDashboardQuery.js +30 -49
  230. package/lib/hooks/useClickOutside.js +3 -3
  231. package/lib/hooks/useInitializeHeaders.js +5 -5
  232. package/lib/hooks/useKandoFetch.js +15 -28
  233. package/lib/hooks/useMap.js +22 -34
  234. package/lib/hooks/useNavContext.js +22 -26
  235. package/lib/hooks/useQueryURL.js +1 -1
  236. package/lib/hooks/useRemoveExistingLayers.js +6 -6
  237. package/lib/hooks/useUpdateEventBodyTail.js +13 -17
  238. package/lib/hooks/useUserTimeZone.js +33 -30
  239. package/lib/hooks/useUserTimeZone.test.js +19 -22
  240. package/lib/hooks/useWindowSize.js +7 -14
  241. package/lib/index.js +11 -12
  242. package/lib/macros/getVersion.js +2 -2
  243. package/lib/models/IAction.js +1 -1
  244. package/lib/models/IAppState.js +1 -1
  245. package/lib/pages/AreaPage/AreaPage.js +34 -67
  246. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +15 -16
  247. package/lib/pages/AreaPage/Dashboard/Dashboard.js +23 -24
  248. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +17 -25
  249. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
  250. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +7 -7
  251. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +9 -9
  252. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
  253. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  254. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
  255. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
  256. package/lib/pages/AssessmentPage/AssessmentPage.js +37 -43
  257. package/lib/pages/CannyWidget/Feedback.js +13 -13
  258. package/lib/pages/CovidPage/CovidPage.js +8 -13
  259. package/lib/pages/CovidPage/components/Body.js +25 -27
  260. package/lib/pages/CovidPage/components/Map.js +27 -37
  261. package/lib/pages/CovidPage/components/Sidebar.js +14 -13
  262. package/lib/pages/CovidPage/components/Summary.js +19 -26
  263. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +24 -31
  264. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +1 -1
  265. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
  266. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +1 -1
  267. package/lib/pages/CovidPage/components/areas/Area.js +24 -35
  268. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +44 -43
  269. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
  270. package/lib/pages/CovidPage/components/areas/AreasList.js +29 -41
  271. package/lib/pages/CovidPage/components/areas/Sort.js +11 -14
  272. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  273. package/lib/pages/DashboardMap/AreaCard.js +26 -26
  274. package/lib/pages/DashboardMap/AssessmentIcon.js +7 -6
  275. package/lib/pages/DashboardMap/Capacity.js +34 -85
  276. package/lib/pages/DashboardMap/FactoryCard.js +28 -24
  277. package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
  278. package/lib/pages/DashboardMap/List.js +77 -96
  279. package/lib/pages/DashboardMap/ListContext.js +15 -19
  280. package/lib/pages/DashboardMap/Loader.js +2 -2
  281. package/lib/pages/DashboardMap/SeverityBadge.js +10 -18
  282. package/lib/pages/DashboardMap/WWTPMap.js +61 -67
  283. package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
  284. package/lib/pages/DashboardMap/Widget.js +53 -70
  285. package/lib/pages/DashboardMap/index.js +1 -1
  286. package/lib/pages/DashboardMap/utils.js +41 -50
  287. package/lib/pages/EventsPage/Body/Body.js +20 -15
  288. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -19
  289. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -35
  290. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +8 -6
  291. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -7
  292. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +21 -30
  293. package/lib/pages/EventsPage/DragAndDropArea/index.js +1 -1
  294. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +52 -63
  295. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +19 -31
  296. package/lib/pages/EventsPage/EventsPage.js +7 -10
  297. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +25 -37
  298. package/lib/pages/EventsPage/events/MoreInfo.js +17 -16
  299. package/lib/pages/EventsPage/events/Sidebar.js +21 -16
  300. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
  301. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +18 -20
  302. package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +1 -1
  303. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +30 -35
  304. package/lib/pages/EventsPage/events/event_info/EventDetails.js +32 -29
  305. package/lib/pages/EventsPage/events/event_info/EventInfo.js +41 -40
  306. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
  307. package/lib/pages/EventsPage/events/event_info/EventSection.js +16 -18
  308. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
  309. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -46
  310. package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
  311. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +28 -31
  312. package/lib/pages/EventsPage/events/event_info/Header/index.js +1 -1
  313. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +4 -4
  314. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +29 -36
  315. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +4 -6
  316. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +22 -21
  317. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +12 -19
  318. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +5 -3
  319. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +1 -1
  320. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +11 -9
  321. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +21 -25
  322. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +1 -1
  323. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +11 -7
  324. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +6 -6
  325. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +1 -1
  326. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +5 -3
  327. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
  328. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +12 -10
  329. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +6 -4
  330. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +10 -12
  331. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +5 -3
  332. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +7 -5
  333. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +7 -5
  334. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +6 -4
  335. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +11 -9
  336. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +18 -18
  337. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
  338. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +7 -5
  339. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +17 -15
  340. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
  341. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +10 -8
  342. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +16 -11
  343. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +11 -10
  344. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
  345. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +1 -1
  346. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
  347. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +24 -37
  348. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +29 -36
  349. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +11 -9
  350. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +15 -17
  351. package/lib/pages/EventsPage/events/event_info/sources/Source.js +25 -28
  352. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +21 -24
  353. package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
  354. package/lib/pages/EventsPage/events/events_list/EventItem.js +17 -18
  355. package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
  356. package/lib/pages/EventsPage/events/events_list/EventsList.js +114 -134
  357. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +38 -53
  358. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +72 -108
  359. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +53 -70
  360. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +38 -41
  361. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +29 -36
  362. package/lib/pages/EventsPage/events/events_list/Sort.js +13 -16
  363. package/lib/pages/ImportFileWizard/FileUploadRespones.js +12 -19
  364. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +6 -4
  365. package/lib/pages/ImportFileWizard/ImportFile.js +20 -22
  366. package/lib/pages/ImportFileWizard/ResponseBody.js +24 -33
  367. package/lib/pages/ImportFileWizard/ValidationForm.js +21 -20
  368. package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
  369. package/lib/pages/ImportFileWizard/importFileUtils.js +2 -2
  370. package/lib/pages/ImportFileWizard/index.js +1 -1
  371. package/lib/pages/ImportGisPage/ImportGisContainer.js +21 -24
  372. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +21 -23
  373. package/lib/pages/ImportGisPage/importGisUtils.js +12 -20
  374. package/lib/pages/ImportGisProcess/index.js +12 -15
  375. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -12
  376. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +17 -19
  377. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
  378. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +28 -57
  379. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +6 -8
  380. package/lib/pages/NotificationsPage/Notification/Notification.js +16 -12
  381. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  382. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
  383. package/lib/pages/NotificationsPage/Notifications.stories.js +4 -6
  384. package/lib/pages/NotificationsPage/NotificationsPage.js +18 -36
  385. package/lib/pages/NotificationsPage/assets/index.js +10 -10
  386. package/lib/pages/NotificationsPageV2/NotificationsPage.js +70 -93
  387. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +93 -62
  388. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +126 -137
  389. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +71 -71
  390. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +90 -87
  391. package/lib/pages/NotificationsPageV2/notificationUtils.js +39 -33
  392. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  393. package/lib/pages/OldSitePage/OldSitePage.js +56 -131
  394. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
  395. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  396. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -6
  397. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -20
  398. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  399. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -18
  400. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  401. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  402. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +17 -11
  403. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -63
  404. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  405. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -53
  406. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
  407. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  408. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -10
  409. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  410. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +26 -22
  411. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +26 -28
  412. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  413. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  414. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +15 -9
  415. package/lib/pages/ProfilePage/Container.js +2 -2
  416. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +23 -39
  417. package/lib/pages/ProfilePage/ProfilePage.js +111 -199
  418. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
  419. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +18 -15
  420. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +27 -29
  421. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +56 -116
  422. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +17 -20
  423. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +12 -10
  424. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +38 -40
  425. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -26
  426. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
  427. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -15
  428. package/lib/pages/SamplingsPage/DesktopActions/index.js +1 -1
  429. package/lib/pages/SamplingsPage/NavigationDropdown.js +42 -29
  430. package/lib/pages/SamplingsPage/NewSamplingAction.js +74 -97
  431. package/lib/pages/SamplingsPage/SamplingMobileModal.js +123 -97
  432. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +21 -22
  433. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +34 -22
  434. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +35 -58
  435. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
  436. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +8 -6
  437. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +107 -191
  438. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +47 -53
  439. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +42 -38
  440. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +42 -38
  441. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +19 -20
  442. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
  443. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +10 -6
  444. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +51 -52
  445. package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
  446. package/lib/pages/SamplingsPage/SamplingsPage.js +25 -31
  447. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +49 -57
  448. package/lib/pages/SamplingsPage/index.js +1 -1
  449. package/lib/pages/SamplingsPage/samplingsPageUtils.js +67 -75
  450. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -4
  451. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +14 -13
  452. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +10 -13
  453. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  454. package/lib/pages/SitePage/PollutionContributor/index.js +1 -1
  455. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  456. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +14 -10
  457. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -8
  458. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +26 -23
  459. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +14 -17
  460. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +36 -32
  461. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  462. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -24
  463. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  464. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  465. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +17 -11
  466. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -70
  467. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  468. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -26
  469. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
  470. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  471. package/lib/pages/SitePage/SamplingParameters/body/Body.js +8 -8
  472. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +29 -37
  473. package/lib/pages/SitePage/SamplingParameters/body/index.js +1 -1
  474. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  475. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  476. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +53 -53
  477. package/lib/pages/SitePage/SamplingParameters/dataParser.js +29 -38
  478. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
  479. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  480. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  481. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +15 -9
  482. package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
  483. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
  484. package/lib/pages/SitePage/SitePage.js +34 -73
  485. package/lib/pages/UploadLabResult/index.js +13 -13
  486. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +26 -35
  487. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +6 -8
  488. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +9 -8
  489. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
  490. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +46 -47
  491. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
  492. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +2 -2
  493. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
  494. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +10 -9
  495. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  496. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -12
  497. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
  498. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
  499. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +16 -24
  500. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +29 -30
  501. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +15 -16
  502. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
  503. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +26 -30
  504. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
  505. package/lib/pages/WbeDashboard/GraphWrapper.js +28 -34
  506. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +17 -19
  507. package/lib/pages/WbeDashboard/SearchInput.js +15 -20
  508. package/lib/pages/WbeDashboard/SummaryGraph.js +50 -76
  509. package/lib/pages/WbeDashboard/SummaryGraphModal.js +19 -17
  510. package/lib/pages/WbeDashboard/Tabs.js +10 -10
  511. package/lib/pages/WbeDashboard/WbeDashboardPage.js +144 -206
  512. package/lib/pages/WbeDashboard/WbeSummaryBar.js +39 -47
  513. package/lib/pages/WwtpPage/DashboardCard.js +23 -20
  514. package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
  515. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +25 -21
  516. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +19 -18
  517. package/lib/pages/WwtpPage/InletsCard/index.js +1 -1
  518. package/lib/pages/WwtpPage/Map.js +5 -3
  519. package/lib/pages/WwtpPage/OrganicCard.js +2 -2
  520. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
  521. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +6 -4
  522. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +9 -8
  523. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +18 -14
  524. package/lib/pages/WwtpPage/PotentialSaving/index.js +1 -1
  525. package/lib/pages/WwtpPage/PotentialSaving/types.js +1 -1
  526. package/lib/pages/WwtpPage/PredictionCard.js +2 -2
  527. package/lib/pages/WwtpPage/TrendCard.js +18 -19
  528. package/lib/pages/WwtpPage/UpgradeBox.js +2 -2
  529. package/lib/pages/WwtpPage/WwtpPage.js +7 -7
  530. package/lib/pages/WwtpPage/WwtpPageContainer.js +21 -16
  531. package/lib/pages/WwtpPage/index.js +1 -1
  532. package/lib/providers/Slideshow/SlideshowContext.js +11 -9
  533. package/lib/providers/Slideshow/SlideshowProvider.js +22 -38
  534. package/lib/providers/Slideshow/SlideshowRunner.js +17 -19
  535. package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -4
  536. package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -11
  537. package/lib/providers/UrlHistory/index.js +3 -3
  538. package/lib/providers/UrlHistory/useLastVisited.js +4 -4
  539. package/lib/react-app-env.d.js +1 -1
  540. package/lib/store/ImportGis/action.js +1 -1
  541. package/lib/store/ImportGis/actionTypes.js +2 -2
  542. package/lib/store/ImportGis/actionsCreator.js +7 -5
  543. package/lib/store/ImportGis/models/gisImports.js +1 -1
  544. package/lib/store/ImportGis/reducer.js +40 -29
  545. package/lib/store/WBE/actionTypes.js +2 -2
  546. package/lib/store/WBE/actions.js +1 -1
  547. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  548. package/lib/store/WBE/models/IWBE.js +1 -1
  549. package/lib/store/WBE/models/IWBEState.js +1 -1
  550. package/lib/store/WBE/reducer.js +13 -9
  551. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -14
  552. package/lib/store/WWTPDashboard/types.js +1 -1
  553. package/lib/store/areas/actionTypes.js +4 -4
  554. package/lib/store/areas/actions.js +7 -13
  555. package/lib/store/areas/models/IArea.js +1 -1
  556. package/lib/store/areas/models/IAreasState.js +1 -1
  557. package/lib/store/areas/reducer.js +8 -6
  558. package/lib/store/context/actionTypes.js +3 -3
  559. package/lib/store/context/actions.js +3 -3
  560. package/lib/store/context/contextMiddlewares.js +14 -16
  561. package/lib/store/context/models/INavContext.js +1 -1
  562. package/lib/store/context/models/INavContextState.js +1 -1
  563. package/lib/store/context/reducer.js +13 -9
  564. package/lib/store/dashboard/dashboardSlice.js +18 -10
  565. package/lib/store/dashboard/periodType.js +1 -1
  566. package/lib/store/edges/actionTypes.js +5 -5
  567. package/lib/store/edges/actions.js +4 -8
  568. package/lib/store/edges/models/IEdge.js +1 -1
  569. package/lib/store/edges/models/IEdgesState.js +1 -1
  570. package/lib/store/edges/reducer.js +13 -17
  571. package/lib/store/events/actionTypes.js +17 -17
  572. package/lib/store/events/actions.js +3 -7
  573. package/lib/store/events/models/IEvent.js +1 -1
  574. package/lib/store/events/models/IEventsState.js +1 -1
  575. package/lib/store/events/models/ISource.js +1 -1
  576. package/lib/store/events/reducer.js +42 -49
  577. package/lib/store/filters/IFilter.js +1 -1
  578. package/lib/store/filters/IFilterItem.js +1 -1
  579. package/lib/store/global/actionTypes.js +11 -11
  580. package/lib/store/global/actions.js +8 -6
  581. package/lib/store/global/models/IGlobalState.js +1 -1
  582. package/lib/store/global/reducer.js +11 -10
  583. package/lib/store/permissions/permissionsSlice.js +12 -8
  584. package/lib/store/points/actionTypes.js +3 -3
  585. package/lib/store/points/actions.js +3 -7
  586. package/lib/store/points/models/IGroup.js +1 -1
  587. package/lib/store/points/models/IPoint.js +1 -1
  588. package/lib/store/points/models/IPointsState.js +1 -1
  589. package/lib/store/points/reducer.js +7 -5
  590. package/lib/store/rootActionTypes.js +2 -2
  591. package/lib/store/rootActions.js +1 -1
  592. package/lib/store/rootReducer.js +17 -12
  593. package/lib/store/rootStore.js +5 -5
  594. package/lib/store/samplings/action.js +1 -1
  595. package/lib/store/samplings/actionTypes.js +2 -2
  596. package/lib/store/samplings/actionsCreator.js +1 -1
  597. package/lib/store/samplings/models/Samplings.js +1 -1
  598. package/lib/store/samplings/reducer.js +16 -14
  599. package/lib/styles/StylesLayout.js +5 -3
  600. package/lib/styles/theme/theme.js +26 -27
  601. package/lib/test/mocks/browser.js +2 -4
  602. package/lib/test/test-utils.js +17 -15
  603. package/lib/ui-kit/Button/Button.js +127 -79
  604. package/lib/ui-kit/Button/Button.test.js +27 -32
  605. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  606. package/lib/ui-kit/Checkbox/Checkbox.js +30 -20
  607. package/lib/ui-kit/ContentCard/ContentCard.js +14 -17
  608. package/lib/ui-kit/Dashboard/Dashboard.js +38 -25
  609. package/lib/ui-kit/Dashboard/index.js +1 -1
  610. package/lib/ui-kit/DropDown/DropDown.js +22 -23
  611. package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
  612. package/lib/ui-kit/DropDown/DropDownItem.js +24 -21
  613. package/lib/ui-kit/DropDown/DropdownToggle.js +12 -8
  614. package/lib/ui-kit/EmptyState/EmptyState.js +5 -3
  615. package/lib/ui-kit/IconAction/IconAction.js +7 -5
  616. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +46 -62
  617. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +57 -48
  618. package/lib/ui-kit/InletsPie/InletsPie.js +15 -13
  619. package/lib/ui-kit/InletsPie/index.js +1 -1
  620. package/lib/ui-kit/InletsPie/options.js +6 -6
  621. package/lib/ui-kit/KandoList/KandoList.js +14 -12
  622. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  623. package/lib/ui-kit/KandoTable/KandoTable.js +48 -40
  624. package/lib/ui-kit/KandoTable/KandoTable.test.js +20 -26
  625. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  626. package/lib/ui-kit/Layout/Layout.js +6 -4
  627. package/lib/ui-kit/MobileInput/MobileInput.js +55 -49
  628. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
  629. package/lib/ui-kit/ModalConfirmation/index.js +1 -1
  630. package/lib/ui-kit/OrganicEvents/GaugeChart.js +7 -5
  631. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
  632. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +27 -20
  633. package/lib/ui-kit/OrganicEvents/TextInfo.js +15 -10
  634. package/lib/ui-kit/OrganicEvents/index.js +1 -1
  635. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -8
  636. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +14 -17
  637. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
  638. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -19
  639. package/lib/ui-kit/ScoreGauge/constant.js +3 -3
  640. package/lib/ui-kit/ScoreGauge/index.js +1 -1
  641. package/lib/ui-kit/TimeLineChart/TrendChart.js +54 -42
  642. package/lib/ui-kit/TimeLineChart/index.js +1 -1
  643. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +8 -7
  644. package/lib/ui-kit/Tooltip/Tooltip.js +14 -8
  645. package/lib/ui-kit/index.js +8 -8
  646. package/lib/ui-kit/kandoStepper/KandoStepper.js +11 -11
  647. package/lib/ui-kit/siteName/SiteName.js +11 -8
  648. package/lib/utilities/ActionUtility.js +7 -7
  649. package/lib/utilities/Alert.js +21 -17
  650. package/lib/utilities/Analytics.js +11 -11
  651. package/lib/utilities/Array.js +4 -5
  652. package/lib/utilities/Enum.js +15 -51
  653. package/lib/utilities/ErrorBoundary.js +27 -41
  654. package/lib/utilities/File.js +40 -69
  655. package/lib/utilities/GetDir.js +8 -7
  656. package/lib/utilities/KandoDate.js +7 -15
  657. package/lib/utilities/KandoModal.js +16 -26
  658. package/lib/utilities/LocalStorage.js +5 -7
  659. package/lib/utilities/ThousandsToK.js +2 -2
  660. package/lib/utilities/TimeFormat.js +21 -20
  661. package/lib/utilities/Truncate.js +16 -24
  662. package/lib/utilities/edgesMath.js +14 -15
  663. package/lib/utilities/i18n.js +3 -3
  664. package/lib/utilities/kql.js +10 -12
  665. package/lib/utilities/map/icons.js +3 -3
  666. package/lib/utilities/polylinedecorator.js +87 -112
  667. package/lib/utilities/scoreToData.js +10 -10
  668. package/lib/utilities/scoreToData.test.js +5 -5
  669. package/lib/utilities/time.js +8 -8
  670. package/lib/utilities/uploadToS3.js +11 -11
  671. package/lib/utilities/urls.js +16 -14
  672. package/package.json +1 -1
@@ -5,20 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.zoomLevels = exports.topIconOptions = exports.shouldLoadMapObjects = exports.shoudLoadDependentMapObjects = exports.multipleLayeredIcons = exports.middleIconOptions = exports.isValidArea = exports.initializeMap = exports.iconZoomControl = exports.findSpecificLayersFromMap = exports.eventsCounterIcons = exports.eventsCountIcon = exports.bubbleIconOptions = exports.areaFocusLogic = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
8
  var _leaflet = _interopRequireDefault(require("leaflet"));
10
9
  var _actions = require("../../store/global/actions");
11
10
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
12
11
  var _WWTPDashboardSlice = require("../../store/WWTPDashboard/WWTPDashboardSlice");
13
- var areaFocusLogic = function areaFocusLogic(mapRef, isValidArea, areaToCenterBy) {
14
- var mapInstance = mapRef.current;
12
+ const areaFocusLogic = (mapRef, isValidArea, areaToCenterBy) => {
13
+ // eslint-disable-next-line no-console
14
+ console.log('areaFocusLogic');
15
+ let mapInstance = mapRef.current;
15
16
  if (isValidArea(areaToCenterBy)) {
16
17
  mapInstance.fitBounds(areaToCenterBy, {
17
18
  padding: [0, 0]
18
19
  });
19
20
  } else {
20
- var group = [];
21
- for (var property in mapInstance._layers) {
21
+ const group = [];
22
+ for (const property in mapInstance._layers) {
22
23
  if (mapInstance._layers[property].kando_object === 'Area' || mapInstance._layers[property].kando_object === 'Point') {
23
24
  group.push(mapInstance._layers[property]);
24
25
  }
@@ -32,37 +33,37 @@ var areaFocusLogic = function areaFocusLogic(mapRef, isValidArea, areaToCenterBy
32
33
  // mapInstance.invalidateSize(true);
33
34
  };
34
35
  exports.areaFocusLogic = areaFocusLogic;
35
- var isValidArea = function isValidArea(area) {
36
+ const isValidArea = area => {
36
37
  return area && area.length > 0 && Object.keys(area[0]).length > 0;
37
38
  };
38
39
  exports.isValidArea = isValidArea;
39
- var shouldLoadMapObjects = function shouldLoadMapObjects(global_data, mapRef, points, edges) {
40
+ const shouldLoadMapObjects = (global_data, mapRef, points, edges) => {
40
41
  return global_data.map !== undefined && mapRef.current !== null && edges !== undefined && points !== undefined;
41
42
  };
42
43
  exports.shouldLoadMapObjects = shouldLoadMapObjects;
43
- var shoudLoadDependentMapObjects = function shoudLoadDependentMapObjects(edges, areas, global, mapRef, points) {
44
+ const shoudLoadDependentMapObjects = (edges, areas, global, mapRef, points) => {
44
45
  return global.map !== undefined && mapRef.current !== null &&
45
46
  // edges.length !== 0 &&
46
47
  // areas.length !== 0 &&
47
- points.length !== 0;
48
+ (points === null || points === void 0 ? void 0 : points.length) !== 0;
48
49
  };
49
50
  exports.shoudLoadDependentMapObjects = shoudLoadDependentMapObjects;
50
- var findSpecificLayersFromMap = function findSpecificLayersFromMap(layersToFind, currentLayer) {
51
+ const findSpecificLayersFromMap = (layersToFind, currentLayer) => {
51
52
  return layersToFind.includes(currentLayer.kando_object) && currentLayer.kando_point_type !== 'Manhole';
52
53
  };
53
54
  exports.findSpecificLayersFromMap = findSpecificLayersFromMap;
54
- var eventsCounterIcons = function eventsCounterIcons(layer, zoomLevel) {
55
- var icon = layer.options.icon;
55
+ const eventsCounterIcons = (layer, zoomLevel) => {
56
+ let icon = layer.options.icon;
56
57
  icon.options.iconSize = eventsCountIcon(zoomLevel).iconSize;
57
58
  icon.options.iconAnchor = eventsCountIcon(zoomLevel).iconAnchor;
58
59
  layer.setIcon(icon);
59
60
  layer.setOpacity(1);
60
61
  };
61
62
  exports.eventsCounterIcons = eventsCounterIcons;
62
- var multipleLayeredIcons = function multipleLayeredIcons(layer, zoomLevel) {
63
- var icon = layer.options.icon;
64
- var isAFewLayerIcon = layer.kando_few_layer_icon;
65
- var miniIcon = {
63
+ const multipleLayeredIcons = (layer, zoomLevel) => {
64
+ let icon = layer.options.icon;
65
+ let isAFewLayerIcon = layer.kando_few_layer_icon;
66
+ let miniIcon = {
66
67
  present: layer.kando_secondary || layer.kando_third,
67
68
  secondary: layer.kando_secondary,
68
69
  third: layer.kando_third
@@ -87,20 +88,20 @@ var multipleLayeredIcons = function multipleLayeredIcons(layer, zoomLevel) {
87
88
  layer.setIcon(icon);
88
89
  };
89
90
  exports.multipleLayeredIcons = multipleLayeredIcons;
90
- var oneLayerIconOptions = function oneLayerIconOptions(zoomLevel) {
91
+ const oneLayerIconOptions = zoomLevel => {
91
92
  return {
92
93
  iconSize: [zoomLevel * 3.3, zoomLevel * 3.3],
93
94
  iconAnchor: [zoomLevel * 1.7, zoomLevel * 3.7]
94
95
  };
95
96
  };
96
- var eventsCountIcon = function eventsCountIcon(zoomLevel) {
97
+ const eventsCountIcon = zoomLevel => {
97
98
  return {
98
99
  iconSize: [zoomLevel * 2.5, zoomLevel * 2.5],
99
100
  iconAnchor: [zoomLevel * 0, zoomLevel * 4]
100
101
  };
101
102
  };
102
103
  exports.eventsCountIcon = eventsCountIcon;
103
- var bubbleIconOptions = function bubbleIconOptions(zoomLevel, miniIcon) {
104
+ const bubbleIconOptions = (zoomLevel, miniIcon) => {
104
105
  if (miniIcon.present) {
105
106
  if (miniIcon.secondary) {
106
107
  return {
@@ -121,7 +122,7 @@ var bubbleIconOptions = function bubbleIconOptions(zoomLevel, miniIcon) {
121
122
  }
122
123
  };
123
124
  exports.bubbleIconOptions = bubbleIconOptions;
124
- var middleIconOptions = function middleIconOptions(zoomLevel, miniIcon) {
125
+ const middleIconOptions = (zoomLevel, miniIcon) => {
125
126
  if (miniIcon.present) {
126
127
  if (miniIcon.secondary) {
127
128
  return {
@@ -142,7 +143,7 @@ var middleIconOptions = function middleIconOptions(zoomLevel, miniIcon) {
142
143
  }
143
144
  };
144
145
  exports.middleIconOptions = middleIconOptions;
145
- var topIconOptions = function topIconOptions(zoomLevel, miniIcon) {
146
+ const topIconOptions = (zoomLevel, miniIcon) => {
146
147
  if (miniIcon.present) {
147
148
  if (miniIcon.secondary) {
148
149
  return {
@@ -163,10 +164,10 @@ var topIconOptions = function topIconOptions(zoomLevel, miniIcon) {
163
164
  }
164
165
  };
165
166
  exports.topIconOptions = topIconOptions;
166
- var iconZoomControl = function iconZoomControl(map) {
167
- var layers = map._layers;
168
- var zoomLevel = map._zoom;
169
- for (var property in layers) {
167
+ const iconZoomControl = map => {
168
+ let layers = map._layers;
169
+ let zoomLevel = map._zoom;
170
+ for (const property in layers) {
170
171
  if (findSpecificLayersFromMap(['IconNumber'], layers[property])) {
171
172
  eventsCounterIcons(layers[property], zoomLevel);
172
173
  }
@@ -179,7 +180,7 @@ var iconZoomControl = function iconZoomControl(map) {
179
180
  }
180
181
  };
181
182
  exports.iconZoomControl = iconZoomControl;
182
- var mapStyle = function mapStyle(mapBoxStyle) {
183
+ const mapStyle = mapBoxStyle => {
183
184
  return _leaflet.default.tileLayer("https://api.mapbox.com/styles/v1/nadav-kando/".concat(mapBoxStyle, "/tiles/256/{z}/{x}/{y}@2x?access_token=pk.eyJ1IjoibmFkYXYta2FuZG8iLCJhIjoiY2pveHprdGRxMHlmdDN4bDg0dzJxOXc4dSJ9.J-2ohq7j4yKNbm4N_-P6qw"), {
184
185
  attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
185
186
  maxZoom: 18,
@@ -191,13 +192,15 @@ var mapStyle = function mapStyle(mapBoxStyle) {
191
192
  updateWhenIdle: false
192
193
  });
193
194
  };
194
- var baseMaps = function baseMaps(mapBoxStyle, mapBoxSatelliteStyle) {
195
- var _ref;
196
- var defaultMap = _i18n.default.t('map.layers.default');
197
- var satellite = _i18n.default.t('map.layers.satellite');
198
- return _ref = {}, (0, _defineProperty2.default)(_ref, defaultMap, mapStyle(mapBoxStyle)), (0, _defineProperty2.default)(_ref, satellite, mapStyle(mapBoxSatelliteStyle)), _ref;
195
+ const baseMaps = (mapBoxStyle, mapBoxSatelliteStyle) => {
196
+ let defaultMap = _i18n.default.t('map.layers.default');
197
+ let satellite = _i18n.default.t('map.layers.satellite');
198
+ return {
199
+ [defaultMap]: mapStyle(mapBoxStyle),
200
+ [satellite]: mapStyle(mapBoxSatelliteStyle)
201
+ };
199
202
  };
200
- var initializeMap = function initializeMap(mapZoomLevel, mapBoxStyle, mapBoxSatelliteStyle, mapRef, dispatch, isValidArea, areaToCenterBy, setMapZoomLevel, forWWTPDashboard) {
203
+ const initializeMap = (mapZoomLevel, mapBoxStyle, mapBoxSatelliteStyle, mapRef, dispatch, isValidArea, areaToCenterBy, setMapZoomLevel, forWWTPDashboard) => {
201
204
  // @ts-ignore
202
205
  mapRef.current = new _leaflet.default.Map('map', {
203
206
  center: [0, 0],
@@ -207,19 +210,16 @@ var initializeMap = function initializeMap(mapZoomLevel, mapBoxStyle, mapBoxSate
207
210
  preferCanvas: false
208
211
  });
209
212
  if (forWWTPDashboard) dispatch((0, _WWTPDashboardSlice.setMap)(mapRef.current));
210
- mapRef.current.whenReady(function () {
211
- var map = mapRef.current;
212
- var mapTypes = baseMaps(mapBoxStyle, mapBoxSatelliteStyle);
213
+ mapRef.current.whenReady(() => {
214
+ let map = mapRef.current;
215
+ const mapTypes = baseMaps(mapBoxStyle, mapBoxSatelliteStyle);
213
216
  _leaflet.default.control.layers(mapTypes, {}, {
214
217
  position: 'bottomright'
215
218
  }).addTo(map);
216
219
 
217
220
  // The name of the layer changes between languages so there was a need to get to the first layer
218
221
  Object.values(mapTypes)[0].addTo(map);
219
- setTimeout(function () {
220
- if (!mapRef.current) {
221
- return;
222
- }
222
+ setTimeout(() => {
223
223
  try {
224
224
  mapRef.current.invalidateSize(true);
225
225
  } catch (err) {
@@ -227,7 +227,7 @@ var initializeMap = function initializeMap(mapZoomLevel, mapBoxStyle, mapBoxSate
227
227
  }
228
228
  dispatch((0, _actions.storeMap)(mapRef.current));
229
229
  dispatch((0, _actions.sideNavExpanded)(true));
230
- map.on('keydown', function (event) {
230
+ map.on('keydown', event => {
231
231
  if (event.originalEvent.key === 'Escape') {
232
232
  map.closePopup();
233
233
  document.body.focus();
@@ -242,12 +242,12 @@ var initializeMap = function initializeMap(mapZoomLevel, mapBoxStyle, mapBoxSate
242
242
  if (!mapRef.current) {
243
243
  return;
244
244
  }
245
- var zoom = mapRef.current.getZoom();
245
+ let zoom = mapRef.current.getZoom();
246
246
  setMapZoomLevel(zoom);
247
247
  });
248
248
  };
249
249
  exports.initializeMap = initializeMap;
250
- var zoomLevels = {
250
+ const zoomLevels = {
251
251
  1: 'XLarge',
252
252
  2: 'XLarge',
253
253
  3: 'XLarge',
@@ -268,4 +268,4 @@ var zoomLevels = {
268
268
  18: 'Small'
269
269
  };
270
270
  exports.zoomLevels = zoomLevels;
271
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJfaTE4biIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJhcmVhRm9jdXNMb2dpYyIsIm1hcFJlZiIsImlzVmFsaWRBcmVhIiwiYXJlYVRvQ2VudGVyQnkiLCJtYXBJbnN0YW5jZSIsImN1cnJlbnQiLCJmaXRCb3VuZHMiLCJwYWRkaW5nIiwiZ3JvdXAiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJwdXNoIiwiT2JqZWN0Iiwia2V5cyIsIkwiLCJmZWF0dXJlR3JvdXAiLCJnZXRCb3VuZHMiLCJsZW5ndGgiLCJleHBvcnRzIiwiYXJlYSIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHMiLCJlZGdlcyIsIm1hcCIsInVuZGVmaW5lZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJhcmVhcyIsImdsb2JhbCIsImZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAiLCJsYXllcnNUb0ZpbmQiLCJjdXJyZW50TGF5ZXIiLCJpbmNsdWRlcyIsImthbmRvX3BvaW50X3R5cGUiLCJldmVudHNDb3VudGVySWNvbnMiLCJsYXllciIsInpvb21MZXZlbCIsImljb24iLCJvcHRpb25zIiwiaWNvblNpemUiLCJldmVudHNDb3VudEljb24iLCJpY29uQW5jaG9yIiwic2V0SWNvbiIsInNldE9wYWNpdHkiLCJtdWx0aXBsZUxheWVyZWRJY29ucyIsImlzQUZld0xheWVySWNvbiIsImthbmRvX2Zld19sYXllcl9pY29uIiwibWluaUljb24iLCJwcmVzZW50Iiwia2FuZG9fc2Vjb25kYXJ5Iiwia2FuZG9fdGhpcmQiLCJzZWNvbmRhcnkiLCJ0aGlyZCIsImthbmRvX2luZGV4X29iamVjdCIsImJ1YmJsZUljb25PcHRpb25zIiwib25lTGF5ZXJJY29uT3B0aW9ucyIsIm1pZGRsZUljb25PcHRpb25zIiwidG9wSWNvbk9wdGlvbnMiLCJpY29uWm9vbUNvbnRyb2wiLCJsYXllcnMiLCJfem9vbSIsIm1hcFN0eWxlIiwibWFwQm94U3R5bGUiLCJ0aWxlTGF5ZXIiLCJjb25jYXQiLCJhdHRyaWJ1dGlvbiIsIm1heFpvb20iLCJtaW5ab29tIiwiaWQiLCJ0aWxlU2l6ZSIsInpvb21PZmZzZXQiLCJ1cGRhdGVXaGVuWm9vbWluZyIsInVwZGF0ZVdoZW5JZGxlIiwiYmFzZU1hcHMiLCJtYXBCb3hTYXRlbGxpdGVTdHlsZSIsIl9yZWYiLCJkZWZhdWx0TWFwIiwiaTE4biIsInQiLCJzYXRlbGxpdGUiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImluaXRpYWxpemVNYXAiLCJtYXBab29tTGV2ZWwiLCJkaXNwYXRjaCIsInNldE1hcFpvb21MZXZlbCIsImZvcldXVFBEYXNoYm9hcmQiLCJNYXAiLCJjZW50ZXIiLCJ6b29tU25hcCIsInpvb20iLCJhdHRyaWJ1dGlvbkNvbnRyb2wiLCJwcmVmZXJDYW52YXMiLCJzZXRNYXAiLCJ3aGVuUmVhZHkiLCJtYXBUeXBlcyIsImNvbnRyb2wiLCJwb3NpdGlvbiIsImFkZFRvIiwidmFsdWVzIiwic2V0VGltZW91dCIsImludmFsaWRhdGVTaXplIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwic3RvcmVNYXAiLCJzaWRlTmF2RXhwYW5kZWQiLCJvbiIsImV2ZW50Iiwib3JpZ2luYWxFdmVudCIsImtleSIsImNsb3NlUG9wdXAiLCJkb2N1bWVudCIsImJvZHkiLCJmb2N1cyIsImUiLCJnZXRab29tIiwiem9vbUxldmVscyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBQb2ludFR1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBzaWRlTmF2RXhwYW5kZWQsIHN0b3JlTWFwIH0gZnJvbSAnLi4vLi4vc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IHNldE1hcCB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcblxuZXhwb3J0IGNvbnN0IGFyZWFGb2N1c0xvZ2ljID0gKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KSA9PiB7XG4gIGxldCBtYXBJbnN0YW5jZTogYW55ID0gbWFwUmVmLmN1cnJlbnQ7XG4gIGlmIChpc1ZhbGlkQXJlYShhcmVhVG9DZW50ZXJCeSkpIHtcbiAgICBtYXBJbnN0YW5jZS5maXRCb3VuZHMoYXJlYVRvQ2VudGVyQnksIHsgcGFkZGluZzogWzAsIDBdIH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGdyb3VwOiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBtYXBJbnN0YW5jZS5fbGF5ZXJzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0FyZWEnIHx8XG4gICAgICAgIG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1BvaW50J1xuICAgICAgKSB7XG4gICAgICAgIGdyb3VwLnB1c2gobWFwSW5zdGFuY2UuX2xheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCkpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKEwuZmVhdHVyZUdyb3VwKGdyb3VwKS5nZXRCb3VuZHMoKSwge1xuICAgICAgICBwYWRkaW5nOiBbMTAwLCAxMDBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vIG1hcEluc3RhbmNlLmludmFsaWRhdGVTaXplKHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRBcmVhID0gKGFyZWEpID0+IHtcbiAgcmV0dXJuIGFyZWEgJiYgYXJlYS5sZW5ndGggPiAwICYmIE9iamVjdC5rZXlzKGFyZWFbMF0pLmxlbmd0aCA+IDA7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkTG9hZE1hcE9iamVjdHMgPSAoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgcG9pbnRzLCBlZGdlcykgPT4ge1xuICByZXR1cm4gKFxuICAgIGdsb2JhbF9kYXRhLm1hcCAhPT0gdW5kZWZpbmVkICYmXG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBlZGdlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgcG9pbnRzICE9PSB1bmRlZmluZWRcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzID0gKFxuICBlZGdlcyxcbiAgYXJlYXMsXG4gIGdsb2JhbCxcbiAgbWFwUmVmLFxuICBwb2ludHMsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBnbG9iYWwubWFwICE9PSB1bmRlZmluZWQgJiZcbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIC8vIGVkZ2VzLmxlbmd0aCAhPT0gMCAmJlxuICAgIC8vIGFyZWFzLmxlbmd0aCAhPT0gMCAmJlxuICAgIHBvaW50cy5sZW5ndGggIT09IDBcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwID0gKFxuICBsYXllcnNUb0ZpbmQ6IHN0cmluZ1tdLFxuICBjdXJyZW50TGF5ZXIsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBsYXllcnNUb0ZpbmQuaW5jbHVkZXMoY3VycmVudExheWVyLmthbmRvX29iamVjdCkgJiZcbiAgICBjdXJyZW50TGF5ZXIua2FuZG9fcG9pbnRfdHlwZSAhPT0gJ01hbmhvbGUnXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZXZlbnRzQ291bnRlckljb25zID0gKGxheWVyLCB6b29tTGV2ZWwpID0+IHtcbiAgbGV0IGljb24gPSBsYXllci5vcHRpb25zLmljb247XG4gIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25TaXplO1xuICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25BbmNob3I7XG4gIGxheWVyLnNldEljb24oaWNvbik7XG4gIGxheWVyLnNldE9wYWNpdHkoMSk7XG59O1xuXG5leHBvcnQgY29uc3QgbXVsdGlwbGVMYXllcmVkSWNvbnMgPSAobGF5ZXIsIHpvb21MZXZlbCkgPT4ge1xuICBsZXQgaWNvbiA9IGxheWVyLm9wdGlvbnMuaWNvbjtcbiAgbGV0IGlzQUZld0xheWVySWNvbiA9IGxheWVyLmthbmRvX2Zld19sYXllcl9pY29uO1xuICBsZXQgbWluaUljb24gPSB7XG4gICAgcHJlc2VudDogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5IHx8IGxheWVyLmthbmRvX3RoaXJkLFxuICAgIHNlY29uZGFyeTogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5LFxuICAgIHRoaXJkOiBsYXllci5rYW5kb190aGlyZCxcbiAgfTtcblxuICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAwKSB7XG4gICAgaWYgKGlzQUZld0xheWVySWNvbikge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gYnViYmxlSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGJ1YmJsZUljb25PcHRpb25zKFxuICAgICAgICB6b29tTGV2ZWwsXG4gICAgICAgIG1pbmlJY29uLFxuICAgICAgKS5pY29uQW5jaG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBvbmVMYXllckljb25PcHRpb25zKHpvb21MZXZlbCkuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IG9uZUxheWVySWNvbk9wdGlvbnMoem9vbUxldmVsKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAxKSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBtaWRkbGVJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gbWlkZGxlSWNvbk9wdGlvbnMoXG4gICAgICAgIHpvb21MZXZlbCxcbiAgICAgICAgbWluaUljb24sXG4gICAgICApLmljb25BbmNob3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IHRvcEljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSB0b3BJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfVxuXG4gIGxheWVyLnNldEljb24oaWNvbik7XG59O1xuXG5jb25zdCBvbmVMYXllckljb25PcHRpb25zID0gKHpvb21MZXZlbCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGljb25TaXplOiBbem9vbUxldmVsICogMy4zLCB6b29tTGV2ZWwgKiAzLjNdIGFzIFBvaW50VHVwbGUsXG4gICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuNywgem9vbUxldmVsICogMy43XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGV2ZW50c0NvdW50SWNvbiA9ICh6b29tTGV2ZWwpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDIuNSwgem9vbUxldmVsICogMi41XSBhcyBQb2ludFR1cGxlLFxuICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAwLCB6b29tTGV2ZWwgKiA0XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUljb25PcHRpb25zID0gKHpvb21MZXZlbCwgbWluaUljb24pID0+IHtcbiAgaWYgKG1pbmlJY29uLnByZXNlbnQpIHtcbiAgICBpZiAobWluaUljb24uc2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDRdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDJdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAzLjk4LCB6b29tTGV2ZWwgKiA0LjNdIGFzIFBvaW50VHVwbGUsXG4gICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMiwgem9vbUxldmVsICogNF0gYXMgUG9pbnRUdXBsZSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWlkZGxlSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS4xLCB6b29tTGV2ZWwgKiAxLjFdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNDUsIHpvb21MZXZlbCAqIDMuNV0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuMSwgem9vbUxldmVsICogMS4xXSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjQ1LCB6b29tTGV2ZWwgKiAxLjVdLFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMi41LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuMjk1LCB6b29tTGV2ZWwgKiAzLjM1XSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9wSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMC45LCB6b29tTGV2ZWwgKiAxLjhdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS42LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuMiwgem9vbUxldmVsICogMi4xXSxcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDMuOSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAyLCB6b29tTGV2ZWwgKiAzLjhdLFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpY29uWm9vbUNvbnRyb2wgPSAobWFwKSA9PiB7XG4gIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgbGV0IHpvb21MZXZlbCA9IG1hcC5fem9vbTtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgIGlmIChmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwKFsnSWNvbk51bWJlciddLCBsYXllcnNbcHJvcGVydHldKSkge1xuICAgICAgZXZlbnRzQ291bnRlckljb25zKGxheWVyc1twcm9wZXJ0eV0sIHpvb21MZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydQb2ludCcsICdJY29uJ10sIGxheWVyc1twcm9wZXJ0eV0pKSB7XG4gICAgICBtdWx0aXBsZUxheWVyZWRJY29ucyhsYXllcnNbcHJvcGVydHldLCB6b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydTYW1wbGluZycsICdPYnNlcnZhdGlvbiddLCBsYXllcnNbcHJvcGVydHldKVxuICAgICkge1xuICAgICAgbXVsdGlwbGVMYXllcmVkSWNvbnMobGF5ZXJzW3Byb3BlcnR5XSwgem9vbUxldmVsKTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IG1hcFN0eWxlID0gKG1hcEJveFN0eWxlKSA9PiB7XG4gIHJldHVybiBMLnRpbGVMYXllcihcbiAgICBgaHR0cHM6Ly9hcGkubWFwYm94LmNvbS9zdHlsZXMvdjEvbmFkYXYta2FuZG8vJHttYXBCb3hTdHlsZX0vdGlsZXMvMjU2L3t6fS97eH0ve3l9QDJ4P2FjY2Vzc190b2tlbj1way5leUoxSWpvaWJtRmtZWFl0YTJGdVpHOGlMQ0poSWpvaVkycHZlSHByZEdSeE1IbG1kRE40YkRnMGR6SnhPWGM0ZFNKOS5KLTJvaHE3ajR5S05ibTROXy1QNnF3YCxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGlvbjpcbiAgICAgICAgJ01hcCBkYXRhICZjb3B5OyA8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvXCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzLCA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC9cIj5DQy1CWS1TQTwvYT4sIEltYWdlcnkgwqkgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vXCI+TWFwYm94PC9hPicsXG4gICAgICBtYXhab29tOiAxOCxcbiAgICAgIG1pblpvb206IDIsXG4gICAgICBpZDogJ21hcGJveC9zdHJlZXRzLXYxMScsXG4gICAgICB0aWxlU2l6ZTogNTEyLFxuICAgICAgem9vbU9mZnNldDogLTEsXG4gICAgICB1cGRhdGVXaGVuWm9vbWluZzogZmFsc2UsXG4gICAgICB1cGRhdGVXaGVuSWRsZTogZmFsc2UsXG4gICAgfSxcbiAgKTtcbn07XG5jb25zdCBiYXNlTWFwcyA9IChtYXBCb3hTdHlsZSwgbWFwQm94U2F0ZWxsaXRlU3R5bGUpID0+IHtcbiAgbGV0IGRlZmF1bHRNYXAgPSBpMThuLnQoJ21hcC5sYXllcnMuZGVmYXVsdCcpO1xuICBsZXQgc2F0ZWxsaXRlID0gaTE4bi50KCdtYXAubGF5ZXJzLnNhdGVsbGl0ZScpO1xuICByZXR1cm4ge1xuICAgIFtkZWZhdWx0TWFwXTogbWFwU3R5bGUobWFwQm94U3R5bGUpLFxuICAgIFtzYXRlbGxpdGVdOiBtYXBTdHlsZShtYXBCb3hTYXRlbGxpdGVTdHlsZSksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZU1hcCA9IChcbiAgbWFwWm9vbUxldmVsLFxuICBtYXBCb3hTdHlsZSxcbiAgbWFwQm94U2F0ZWxsaXRlU3R5bGUsXG4gIG1hcFJlZixcbiAgZGlzcGF0Y2gsXG4gIGlzVmFsaWRBcmVhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgc2V0TWFwWm9vbUxldmVsLFxuICBmb3JXV1RQRGFzaGJvYXJkLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgbWFwUmVmLmN1cnJlbnQgPSBuZXcgTC5NYXAoJ21hcCcsIHtcbiAgICBjZW50ZXI6IFswLCAwXSxcbiAgICB6b29tU25hcDogMSxcbiAgICB6b29tOiBtYXBab29tTGV2ZWwsXG4gICAgYXR0cmlidXRpb25Db250cm9sOiBmYWxzZSxcbiAgICBwcmVmZXJDYW52YXM6IGZhbHNlLFxuICB9KTtcblxuICBpZiAoZm9yV1dUUERhc2hib2FyZCkgZGlzcGF0Y2goc2V0TWFwKG1hcFJlZi5jdXJyZW50KSk7XG5cbiAgbWFwUmVmLmN1cnJlbnQud2hlblJlYWR5KCgpID0+IHtcbiAgICBsZXQgbWFwID0gbWFwUmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgbWFwVHlwZXMgPSBiYXNlTWFwcyhtYXBCb3hTdHlsZSwgbWFwQm94U2F0ZWxsaXRlU3R5bGUpO1xuXG4gICAgTC5jb250cm9sLmxheWVycyhtYXBUeXBlcywge30sIHsgcG9zaXRpb246ICdib3R0b21yaWdodCcgfSkuYWRkVG8obWFwKTtcblxuICAgIC8vIFRoZSBuYW1lIG9mIHRoZSBsYXllciBjaGFuZ2VzIGJldHdlZW4gbGFuZ3VhZ2VzIHNvIHRoZXJlIHdhcyBhIG5lZWQgdG8gZ2V0IHRvIHRoZSBmaXJzdCBsYXllclxuICAgIE9iamVjdC52YWx1ZXMobWFwVHlwZXMpWzBdLmFkZFRvKG1hcCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBtYXBSZWYuY3VycmVudC5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnInLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaChzdG9yZU1hcChtYXBSZWYuY3VycmVudCkpO1xuICAgICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKHRydWUpKTtcblxuICAgICAgbWFwLm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5vcmlnaW5hbEV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIGlzVmFsaWRBcmVhKGFyZWFUb0NlbnRlckJ5KSkge1xuICAgICAgbWFwUmVmLmN1cnJlbnQuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5KTtcbiAgICB9XG4gIH0pO1xuXG4gIG1hcFJlZi5jdXJyZW50Lm9uKCd6b29tZW5kJywgZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB6b29tID0gbWFwUmVmLmN1cnJlbnQuZ2V0Wm9vbSgpO1xuICAgIHNldE1hcFpvb21MZXZlbCh6b29tKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgem9vbUxldmVscyA9IHtcbiAgMTogJ1hMYXJnZScsXG4gIDI6ICdYTGFyZ2UnLFxuICAzOiAnWExhcmdlJyxcbiAgNDogJ1hMYXJnZScsXG4gIDU6ICdYTGFyZ2UnLFxuICA2OiAnWExhcmdlJyxcbiAgNzogJ0xhcmdlJyxcbiAgODogJ0xhcmdlJyxcbiAgOTogJ0xhcmdlJyxcbiAgMTA6ICdMYXJnZScsXG4gIDExOiAnTUxhcmdlJyxcbiAgMTI6ICdNTGFyZ2UnLFxuICAxMzogJ01MYXJnZScsXG4gIDE0OiAnTUxhcmdlJyxcbiAgMTU6ICdNZWRpdW0nLFxuICAxNjogJ01lZGl1bScsXG4gIDE3OiAnU21hbGwnLFxuICAxODogJ1NtYWxsJyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxH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
271
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJfaTE4biIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJhcmVhRm9jdXNMb2dpYyIsIm1hcFJlZiIsImlzVmFsaWRBcmVhIiwiYXJlYVRvQ2VudGVyQnkiLCJjb25zb2xlIiwibG9nIiwibWFwSW5zdGFuY2UiLCJjdXJyZW50IiwiZml0Qm91bmRzIiwicGFkZGluZyIsImdyb3VwIiwicHJvcGVydHkiLCJfbGF5ZXJzIiwia2FuZG9fb2JqZWN0IiwicHVzaCIsIk9iamVjdCIsImtleXMiLCJMIiwiZmVhdHVyZUdyb3VwIiwiZ2V0Qm91bmRzIiwibGVuZ3RoIiwiZXhwb3J0cyIsImFyZWEiLCJzaG91bGRMb2FkTWFwT2JqZWN0cyIsImdsb2JhbF9kYXRhIiwicG9pbnRzIiwiZWRnZXMiLCJtYXAiLCJ1bmRlZmluZWQiLCJzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzIiwiYXJlYXMiLCJnbG9iYWwiLCJmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwIiwibGF5ZXJzVG9GaW5kIiwiY3VycmVudExheWVyIiwiaW5jbHVkZXMiLCJrYW5kb19wb2ludF90eXBlIiwiZXZlbnRzQ291bnRlckljb25zIiwibGF5ZXIiLCJ6b29tTGV2ZWwiLCJpY29uIiwib3B0aW9ucyIsImljb25TaXplIiwiZXZlbnRzQ291bnRJY29uIiwiaWNvbkFuY2hvciIsInNldEljb24iLCJzZXRPcGFjaXR5IiwibXVsdGlwbGVMYXllcmVkSWNvbnMiLCJpc0FGZXdMYXllckljb24iLCJrYW5kb19mZXdfbGF5ZXJfaWNvbiIsIm1pbmlJY29uIiwicHJlc2VudCIsImthbmRvX3NlY29uZGFyeSIsImthbmRvX3RoaXJkIiwic2Vjb25kYXJ5IiwidGhpcmQiLCJrYW5kb19pbmRleF9vYmplY3QiLCJidWJibGVJY29uT3B0aW9ucyIsIm9uZUxheWVySWNvbk9wdGlvbnMiLCJtaWRkbGVJY29uT3B0aW9ucyIsInRvcEljb25PcHRpb25zIiwiaWNvblpvb21Db250cm9sIiwibGF5ZXJzIiwiX3pvb20iLCJtYXBTdHlsZSIsIm1hcEJveFN0eWxlIiwidGlsZUxheWVyIiwiY29uY2F0IiwiYXR0cmlidXRpb24iLCJtYXhab29tIiwibWluWm9vbSIsImlkIiwidGlsZVNpemUiLCJ6b29tT2Zmc2V0IiwidXBkYXRlV2hlblpvb21pbmciLCJ1cGRhdGVXaGVuSWRsZSIsImJhc2VNYXBzIiwibWFwQm94U2F0ZWxsaXRlU3R5bGUiLCJkZWZhdWx0TWFwIiwiaTE4biIsInQiLCJzYXRlbGxpdGUiLCJpbml0aWFsaXplTWFwIiwibWFwWm9vbUxldmVsIiwiZGlzcGF0Y2giLCJzZXRNYXBab29tTGV2ZWwiLCJmb3JXV1RQRGFzaGJvYXJkIiwiTWFwIiwiY2VudGVyIiwiem9vbVNuYXAiLCJ6b29tIiwiYXR0cmlidXRpb25Db250cm9sIiwicHJlZmVyQ2FudmFzIiwic2V0TWFwIiwid2hlblJlYWR5IiwibWFwVHlwZXMiLCJjb250cm9sIiwicG9zaXRpb24iLCJhZGRUbyIsInZhbHVlcyIsInNldFRpbWVvdXQiLCJpbnZhbGlkYXRlU2l6ZSIsImVyciIsImVycm9yIiwic3RvcmVNYXAiLCJzaWRlTmF2RXhwYW5kZWQiLCJvbiIsImV2ZW50Iiwib3JpZ2luYWxFdmVudCIsImtleSIsImNsb3NlUG9wdXAiLCJkb2N1bWVudCIsImJvZHkiLCJmb2N1cyIsImUiLCJnZXRab29tIiwiem9vbUxldmVscyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBQb2ludFR1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBzaWRlTmF2RXhwYW5kZWQsIHN0b3JlTWFwIH0gZnJvbSAnLi4vLi4vc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IHNldE1hcCB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcblxuZXhwb3J0IGNvbnN0IGFyZWFGb2N1c0xvZ2ljID0gKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUubG9nKCdhcmVhRm9jdXNMb2dpYycpO1xuICBsZXQgbWFwSW5zdGFuY2U6IGFueSA9IG1hcFJlZi5jdXJyZW50O1xuICBpZiAoaXNWYWxpZEFyZWEoYXJlYVRvQ2VudGVyQnkpKSB7XG4gICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5LCB7IHBhZGRpbmc6IFswLCAwXSB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBncm91cDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwSW5zdGFuY2UuX2xheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdBcmVhJyB8fFxuICAgICAgICBtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCdcbiAgICAgICkge1xuICAgICAgICBncm91cC5wdXNoKG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoTC5mZWF0dXJlR3JvdXAoZ3JvdXApLmdldEJvdW5kcygpKS5sZW5ndGggIT09IDApIHtcbiAgICAgIG1hcEluc3RhbmNlLmZpdEJvdW5kcyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCksIHtcbiAgICAgICAgcGFkZGluZzogWzEwMCwgMTAwXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBtYXBJbnN0YW5jZS5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkQXJlYSA9IChhcmVhKSA9PiB7XG4gIHJldHVybiBhcmVhICYmIGFyZWEubGVuZ3RoID4gMCAmJiBPYmplY3Qua2V5cyhhcmVhWzBdKS5sZW5ndGggPiAwO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3VsZExvYWRNYXBPYmplY3RzID0gKGdsb2JhbF9kYXRhLCBtYXBSZWYsIHBvaW50cywgZWRnZXMpID0+IHtcbiAgcmV0dXJuIChcbiAgICBnbG9iYWxfZGF0YS5tYXAgIT09IHVuZGVmaW5lZCAmJlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXMgIT09IHVuZGVmaW5lZCAmJlxuICAgIHBvaW50cyAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyA9IChcbiAgZWRnZXMsXG4gIGFyZWFzLFxuICBnbG9iYWwsXG4gIG1hcFJlZixcbiAgcG9pbnRzLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgZ2xvYmFsLm1hcCAhPT0gdW5kZWZpbmVkICYmXG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICAvLyBlZGdlcy5sZW5ndGggIT09IDAgJiZcbiAgICAvLyBhcmVhcy5sZW5ndGggIT09IDAgJiZcbiAgICBwb2ludHM/Lmxlbmd0aCAhPT0gMFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAgPSAoXG4gIGxheWVyc1RvRmluZDogc3RyaW5nW10sXG4gIGN1cnJlbnRMYXllcixcbikgPT4ge1xuICByZXR1cm4gKFxuICAgIGxheWVyc1RvRmluZC5pbmNsdWRlcyhjdXJyZW50TGF5ZXIua2FuZG9fb2JqZWN0KSAmJlxuICAgIGN1cnJlbnRMYXllci5rYW5kb19wb2ludF90eXBlICE9PSAnTWFuaG9sZSdcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBldmVudHNDb3VudGVySWNvbnMgPSAobGF5ZXIsIHpvb21MZXZlbCkgPT4ge1xuICBsZXQgaWNvbiA9IGxheWVyLm9wdGlvbnMuaWNvbjtcbiAgaWNvbi5vcHRpb25zLmljb25TaXplID0gZXZlbnRzQ291bnRJY29uKHpvb21MZXZlbCkuaWNvblNpemU7XG4gIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gZXZlbnRzQ291bnRJY29uKHpvb21MZXZlbCkuaWNvbkFuY2hvcjtcbiAgbGF5ZXIuc2V0SWNvbihpY29uKTtcbiAgbGF5ZXIuc2V0T3BhY2l0eSgxKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtdWx0aXBsZUxheWVyZWRJY29ucyA9IChsYXllciwgem9vbUxldmVsKSA9PiB7XG4gIGxldCBpY29uID0gbGF5ZXIub3B0aW9ucy5pY29uO1xuICBsZXQgaXNBRmV3TGF5ZXJJY29uID0gbGF5ZXIua2FuZG9fZmV3X2xheWVyX2ljb247XG4gIGxldCBtaW5pSWNvbiA9IHtcbiAgICBwcmVzZW50OiBsYXllci5rYW5kb19zZWNvbmRhcnkgfHwgbGF5ZXIua2FuZG9fdGhpcmQsXG4gICAgc2Vjb25kYXJ5OiBsYXllci5rYW5kb19zZWNvbmRhcnksXG4gICAgdGhpcmQ6IGxheWVyLmthbmRvX3RoaXJkLFxuICB9O1xuXG4gIGlmIChsYXllci5rYW5kb19pbmRleF9vYmplY3QgPT09IDApIHtcbiAgICBpZiAoaXNBRmV3TGF5ZXJJY29uKSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBidWJibGVJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gYnViYmxlSWNvbk9wdGlvbnMoXG4gICAgICAgIHpvb21MZXZlbCxcbiAgICAgICAgbWluaUljb24sXG4gICAgICApLmljb25BbmNob3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IG9uZUxheWVySWNvbk9wdGlvbnMoem9vbUxldmVsKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gb25lTGF5ZXJJY29uT3B0aW9ucyh6b29tTGV2ZWwpLmljb25BbmNob3I7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChsYXllci5rYW5kb19pbmRleF9vYmplY3QgPT09IDEpIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IG1pZGRsZUljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSBtaWRkbGVJY29uT3B0aW9ucyhcbiAgICAgICAgem9vbUxldmVsLFxuICAgICAgICBtaW5pSWNvbixcbiAgICAgICkuaWNvbkFuY2hvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gdG9wSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IHRvcEljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25BbmNob3I7XG4gICAgfVxuICB9XG5cbiAgbGF5ZXIuc2V0SWNvbihpY29uKTtcbn07XG5cbmNvbnN0IG9uZUxheWVySWNvbk9wdGlvbnMgPSAoem9vbUxldmVsKSA9PiB7XG4gIHJldHVybiB7XG4gICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAzLjMsIHpvb21MZXZlbCAqIDMuM10gYXMgUG9pbnRUdXBsZSxcbiAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMS43LCB6b29tTGV2ZWwgKiAzLjddIGFzIFBvaW50VHVwbGUsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXZlbnRzQ291bnRJY29uID0gKHpvb21MZXZlbCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGljb25TaXplOiBbem9vbUxldmVsICogMi41LCB6b29tTGV2ZWwgKiAyLjVdIGFzIFBvaW50VHVwbGUsXG4gICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDRdIGFzIFBvaW50VHVwbGUsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnViYmxlSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS45OCwgem9vbUxldmVsICogMi4zXSBhcyBQb2ludFR1cGxlLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMCwgem9vbUxldmVsICogNF0gYXMgUG9pbnRUdXBsZSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS45OCwgem9vbUxldmVsICogMi4zXSBhcyBQb2ludFR1cGxlLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMCwgem9vbUxldmVsICogMl0gYXMgUG9pbnRUdXBsZSxcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDMuOTgsIHpvb21MZXZlbCAqIDQuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAyLCB6b29tTGV2ZWwgKiA0XSBhcyBQb2ludFR1cGxlLFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBtaWRkbGVJY29uT3B0aW9ucyA9ICh6b29tTGV2ZWwsIG1pbmlJY29uKSA9PiB7XG4gIGlmIChtaW5pSWNvbi5wcmVzZW50KSB7XG4gICAgaWYgKG1pbmlJY29uLnNlY29uZGFyeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAxLjEsIHpvb21MZXZlbCAqIDEuMV0sXG4gICAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAtMC40NSwgem9vbUxldmVsICogMy41XSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS4xLCB6b29tTGV2ZWwgKiAxLjFdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNDUsIHpvb21MZXZlbCAqIDEuNV0sXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAyLjUsIHpvb21MZXZlbCAqIDIuNV0sXG4gICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMS4yOTUsIHpvb21MZXZlbCAqIDMuMzVdLFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0b3BJY29uT3B0aW9ucyA9ICh6b29tTGV2ZWwsIG1pbmlJY29uKSA9PiB7XG4gIGlmIChtaW5pSWNvbi5wcmVzZW50KSB7XG4gICAgaWYgKG1pbmlJY29uLnNlY29uZGFyeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAwLjksIHpvb21MZXZlbCAqIDEuOF0sXG4gICAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAtMC41LCB6b29tTGV2ZWwgKiAzLjhdLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAxLjYsIHpvb21MZXZlbCAqIDIuNV0sXG4gICAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAtMC4yLCB6b29tTGV2ZWwgKiAyLjFdLFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMy45LCB6b29tTGV2ZWwgKiAzLjhdLFxuICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDIsIHpvb21MZXZlbCAqIDMuOF0sXG4gICAgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGljb25ab29tQ29udHJvbCA9IChtYXApID0+IHtcbiAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICBsZXQgem9vbUxldmVsID0gbWFwLl96b29tO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgaWYgKGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydJY29uTnVtYmVyJ10sIGxheWVyc1twcm9wZXJ0eV0pKSB7XG4gICAgICBldmVudHNDb3VudGVySWNvbnMobGF5ZXJzW3Byb3BlcnR5XSwgem9vbUxldmVsKTtcbiAgICB9XG5cbiAgICBpZiAoZmluZFNwZWNpZmljTGF5ZXJzRnJvbU1hcChbJ1BvaW50JywgJ0ljb24nXSwgbGF5ZXJzW3Byb3BlcnR5XSkpIHtcbiAgICAgIG11bHRpcGxlTGF5ZXJlZEljb25zKGxheWVyc1twcm9wZXJ0eV0sIHpvb21MZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgZmluZFNwZWNpZmljTGF5ZXJzRnJvbU1hcChbJ1NhbXBsaW5nJywgJ09ic2VydmF0aW9uJ10sIGxheWVyc1twcm9wZXJ0eV0pXG4gICAgKSB7XG4gICAgICBtdWx0aXBsZUxheWVyZWRJY29ucyhsYXllcnNbcHJvcGVydHldLCB6b29tTGV2ZWwpO1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgbWFwU3R5bGUgPSAobWFwQm94U3R5bGUpID0+IHtcbiAgcmV0dXJuIEwudGlsZUxheWVyKFxuICAgIGBodHRwczovL2FwaS5tYXBib3guY29tL3N0eWxlcy92MS9uYWRhdi1rYW5kby8ke21hcEJveFN0eWxlfS90aWxlcy8yNTYve3p9L3t4fS97eX1AMng/YWNjZXNzX3Rva2VuPXBrLmV5SjFJam9pYm1Ga1lYWXRhMkZ1Wkc4aUxDSmhJam9pWTJwdmVIcHJkR1J4TUhsbWRETjRiRGcwZHpKeE9YYzRkU0o5LkotMm9ocTdqNHlLTmJtNE5fLVA2cXdgLFxuICAgIHtcbiAgICAgIGF0dHJpYnV0aW9uOlxuICAgICAgICAnTWFwIGRhdGEgJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9cIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMsIDxhIGhyZWY9XCJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMi4wL1wiPkNDLUJZLVNBPC9hPiwgSW1hZ2VyeSDCqSA8YSBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9cIj5NYXBib3g8L2E+JyxcbiAgICAgIG1heFpvb206IDE4LFxuICAgICAgbWluWm9vbTogMixcbiAgICAgIGlkOiAnbWFwYm94L3N0cmVldHMtdjExJyxcbiAgICAgIHRpbGVTaXplOiA1MTIsXG4gICAgICB6b29tT2Zmc2V0OiAtMSxcbiAgICAgIHVwZGF0ZVdoZW5ab29taW5nOiBmYWxzZSxcbiAgICAgIHVwZGF0ZVdoZW5JZGxlOiBmYWxzZSxcbiAgICB9LFxuICApO1xufTtcbmNvbnN0IGJhc2VNYXBzID0gKG1hcEJveFN0eWxlLCBtYXBCb3hTYXRlbGxpdGVTdHlsZSkgPT4ge1xuICBsZXQgZGVmYXVsdE1hcCA9IGkxOG4udCgnbWFwLmxheWVycy5kZWZhdWx0Jyk7XG4gIGxldCBzYXRlbGxpdGUgPSBpMThuLnQoJ21hcC5sYXllcnMuc2F0ZWxsaXRlJyk7XG4gIHJldHVybiB7XG4gICAgW2RlZmF1bHRNYXBdOiBtYXBTdHlsZShtYXBCb3hTdHlsZSksXG4gICAgW3NhdGVsbGl0ZV06IG1hcFN0eWxlKG1hcEJveFNhdGVsbGl0ZVN0eWxlKSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsaXplTWFwID0gKFxuICBtYXBab29tTGV2ZWwsXG4gIG1hcEJveFN0eWxlLFxuICBtYXBCb3hTYXRlbGxpdGVTdHlsZSxcbiAgbWFwUmVmLFxuICBkaXNwYXRjaCxcbiAgaXNWYWxpZEFyZWEsXG4gIGFyZWFUb0NlbnRlckJ5LFxuICBzZXRNYXBab29tTGV2ZWwsXG4gIGZvcldXVFBEYXNoYm9hcmQsXG4pID0+IHtcbiAgLy8gQHRzLWlnbm9yZVxuICBtYXBSZWYuY3VycmVudCA9IG5ldyBMLk1hcCgnbWFwJywge1xuICAgIGNlbnRlcjogWzAsIDBdLFxuICAgIHpvb21TbmFwOiAxLFxuICAgIHpvb206IG1hcFpvb21MZXZlbCxcbiAgICBhdHRyaWJ1dGlvbkNvbnRyb2w6IGZhbHNlLFxuICAgIHByZWZlckNhbnZhczogZmFsc2UsXG4gIH0pO1xuXG4gIGlmIChmb3JXV1RQRGFzaGJvYXJkKSBkaXNwYXRjaChzZXRNYXAobWFwUmVmLmN1cnJlbnQpKTtcblxuICBtYXBSZWYuY3VycmVudC53aGVuUmVhZHkoKCkgPT4ge1xuICAgIGxldCBtYXAgPSBtYXBSZWYuY3VycmVudDtcblxuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobWFwQm94U3R5bGUsIG1hcEJveFNhdGVsbGl0ZVN0eWxlKTtcblxuICAgIEwuY29udHJvbC5sYXllcnMobWFwVHlwZXMsIHt9LCB7IHBvc2l0aW9uOiAnYm90dG9tcmlnaHQnIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAvLyBUaGUgbmFtZSBvZiB0aGUgbGF5ZXIgY2hhbmdlcyBiZXR3ZWVuIGxhbmd1YWdlcyBzbyB0aGVyZSB3YXMgYSBuZWVkIHRvIGdldCB0byB0aGUgZmlyc3QgbGF5ZXJcbiAgICBPYmplY3QudmFsdWVzKG1hcFR5cGVzKVswXS5hZGRUbyhtYXApO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBtYXBSZWYuY3VycmVudC5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnInLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaChzdG9yZU1hcChtYXBSZWYuY3VycmVudCkpO1xuICAgICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKHRydWUpKTtcblxuICAgICAgbWFwLm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5vcmlnaW5hbEV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIGlzVmFsaWRBcmVhKGFyZWFUb0NlbnRlckJ5KSkge1xuICAgICAgbWFwUmVmLmN1cnJlbnQuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5KTtcbiAgICB9XG4gIH0pO1xuXG4gIG1hcFJlZi5jdXJyZW50Lm9uKCd6b29tZW5kJywgZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB6b29tID0gbWFwUmVmLmN1cnJlbnQuZ2V0Wm9vbSgpO1xuICAgIHNldE1hcFpvb21MZXZlbCh6b29tKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgem9vbUxldmVscyA9IHtcbiAgMTogJ1hMYXJnZScsXG4gIDI6ICdYTGFyZ2UnLFxuICAzOiAnWExhcmdlJyxcbiAgNDogJ1hMYXJnZScsXG4gIDU6ICdYTGFyZ2UnLFxuICA2OiAnWExhcmdlJyxcbiAgNzogJ0xhcmdlJyxcbiAgODogJ0xhcmdlJyxcbiAgOTogJ0xhcmdlJyxcbiAgMTA6ICdMYXJnZScsXG4gIDExOiAnTUxhcmdlJyxcbiAgMTI6ICdNTGFyZ2UnLFxuICAxMzogJ01MYXJnZScsXG4gIDE0OiAnTUxhcmdlJyxcbiAgMTU6ICdNZWRpdW0nLFxuICAxNjogJ01lZGl1bScsXG4gIDE3OiAnU21hbGwnLFxuICAxODogJ1NtYWxsJyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFB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
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
10
8
  var _react = _interopRequireDefault(require("react"));
11
9
  var _reactRedux = require("react-redux");
12
10
  var _AreaUtils = require("./AreaUtils");
@@ -16,91 +14,71 @@ var _utils = require("pages/DashboardMap/utils");
16
14
  var _scoreToData = require("utilities/scoreToData");
17
15
  var _Capacity = require("pages/DashboardMap/Capacity");
18
16
  var _reactRouterDom = require("react-router-dom");
19
- var AreaPolygon = function AreaPolygon(props) {
20
- var map = props.map,
21
- area = props.area,
22
- mapZoom = props.mapZoom,
23
- global_data = props.global_data,
24
- featureGroup = props.featureGroup;
25
- var points = (0, _reactRedux.useSelector)(function (state) {
26
- return state.points_data.items;
27
- });
28
- var areas = (0, _reactRedux.useSelector)(function (state) {
29
- return state.areas_data.items;
30
- });
31
- var WWTPMode = (0, _reactRedux.useSelector)(function (state) {
32
- return state.wwtp_dashboard.map !== null;
33
- });
34
- var capacity = global_data.waterAuthorityIsCapacity;
35
- var dispatch = (0, _reactRedux.useDispatch)();
36
- var history = (0, _reactRouterDom.useHistory)();
37
- var WWTPMapLogic = function WWTPMapLogic(polygon, area) {
17
+ const AreaPolygon = props => {
18
+ const {
19
+ map,
20
+ area,
21
+ mapZoom,
22
+ global_data,
23
+ featureGroup
24
+ } = props;
25
+ const points = (0, _reactRedux.useSelector)(state => state.points_data.items);
26
+ const areas = (0, _reactRedux.useSelector)(state => state.areas_data.items);
27
+ const WWTPMode = (0, _reactRedux.useSelector)(state => state.wwtp_dashboard.map !== null);
28
+ const capacity = global_data.waterAuthorityIsCapacity;
29
+ const dispatch = (0, _reactRedux.useDispatch)();
30
+ const history = (0, _reactRouterDom.useHistory)();
31
+ const WWTPMapLogic = (polygon, area) => {
38
32
  if (!WWTPMode || !capacity) return;
39
- var fetchDataAndShowPopup = /*#__PURE__*/function () {
40
- var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
41
- var widgetContainer, type;
42
- return _regenerator.default.wrap(function _callee$(_context) {
43
- while (1) {
44
- switch (_context.prev = _context.next) {
45
- case 0:
46
- widgetContainer = document.createElement('span');
47
- (0, _utils.createPopupForObject)({
48
- renderedElement: widgetContainer,
49
- marker: polygon
50
- });
51
- type = (area === null || area === void 0 ? void 0 : area.is_virtual) === true ? 'varea' : 'area';
52
- (0, _Capacity.fetchCapacity)(type, area.area_id, global_data.waterAuthorityId).then(function (listData) {
53
- _reactDom.default.render(/*#__PURE__*/_react.default.createElement(_Widget.Widget, {
54
- object: area,
55
- dispatch: dispatch,
56
- areas: areas,
57
- points: points,
58
- map: map,
59
- global_data: global_data,
60
- listData: listData,
61
- history: history
62
- }), widgetContainer);
63
- });
64
- if (!polygon.isPopupOpen()) {
65
- polygon.openPopup();
66
- }
67
- case 5:
68
- case "end":
69
- return _context.stop();
70
- }
71
- }
72
- }, _callee);
73
- }));
74
- return function fetchDataAndShowPopup() {
75
- return _ref.apply(this, arguments);
76
- };
77
- }();
78
- polygon.on('click-event', function () {
33
+ const fetchDataAndShowPopup = async () => {
34
+ const widgetContainer = document.createElement('span');
35
+ (0, _utils.createPopupForObject)({
36
+ renderedElement: widgetContainer,
37
+ marker: polygon
38
+ });
39
+ const type = (area === null || area === void 0 ? void 0 : area.is_virtual) === true ? 'varea' : 'area';
40
+ (0, _Capacity.fetchCapacity)(type, area.area_id, global_data.waterAuthorityId).then(listData => {
41
+ _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_Widget.Widget, {
42
+ object: area,
43
+ dispatch: dispatch,
44
+ areas: areas,
45
+ points: points,
46
+ map: map,
47
+ global_data: global_data,
48
+ listData: listData,
49
+ history: history
50
+ }), widgetContainer);
51
+ });
52
+ if (!polygon.isPopupOpen()) {
53
+ polygon.openPopup();
54
+ }
55
+ };
56
+ polygon.on('click-event', () => {
79
57
  polygon.isPopupOpen() ? polygon.closePopup() : fetchDataAndShowPopup();
80
58
  polygon.openTooltip();
81
59
  });
82
- polygon.on('click', function () {
60
+ polygon.on('click', () => {
83
61
  fetchDataAndShowPopup();
84
- var subject = 'Map View - Area clicked';
62
+ const subject = 'Map View - Area clicked';
85
63
  (0, _utils.sendAnalyticsEvent)(subject, 'map', {
86
64
  area_id: area.area_id,
87
65
  area_name: area.area_name
88
66
  });
89
67
  });
90
68
  };
91
- var getPolygon = function getPolygon(id) {
92
- var polygon;
93
- featureGroup.eachLayer(function (layer) {
69
+ const getPolygon = id => {
70
+ let polygon;
71
+ featureGroup.eachLayer(layer => {
94
72
  if (layer.kando_object_id === id) {
95
73
  polygon = layer;
96
74
  }
97
75
  });
98
76
  return polygon;
99
77
  };
100
- var isPolygonChangedColor = function isPolygonChangedColor(polygon, area) {
78
+ const isPolygonChangedColor = (polygon, area) => {
101
79
  if (!polygon) return true;
102
- var areaColor = (0, _scoreToData.scoreToColor)(area.area_score);
103
- var polygonColor = polygon.options.color;
80
+ const areaColor = (0, _scoreToData.scoreToColor)(area.area_score);
81
+ const polygonColor = polygon.options.color;
104
82
  return areaColor !== polygonColor;
105
83
  };
106
84
 
@@ -109,13 +87,11 @@ var AreaPolygon = function AreaPolygon(props) {
109
87
  // We replace them because the area's color might have changed.
110
88
  // This creates a flickering effect on the map which is not ideal
111
89
  // but it's the best solution we have for now and we might need to refactor this in the future.
112
- var existingPolygon = getPolygon(area.area_id);
90
+ const existingPolygon = getPolygon(area.area_id);
113
91
  if (isPolygonChangedColor(existingPolygon, area)) {
114
- var polygon = (0, _AreaUtils.createPolygon)(area, mapZoom, featureGroup, map, WWTPMapLogic);
92
+ const polygon = (0, _AreaUtils.createPolygon)(area, mapZoom, featureGroup, map, WWTPMapLogic);
115
93
  if (polygon) {
116
- var subAreas = area.sub_areas.map(function (subArea) {
117
- return subArea.area_id;
118
- });
94
+ let subAreas = area.sub_areas.map(subArea => subArea.area_id);
119
95
  if (subAreas.length > 0) {
120
96
  polygon['sub_areas'] = subAreas;
121
97
  }
@@ -127,7 +103,7 @@ var AreaPolygon = function AreaPolygon(props) {
127
103
  }
128
104
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
129
105
  };
130
- var connector = (0, _reactRedux.connect)(null);
106
+ const connector = (0, _reactRedux.connect)(null);
131
107
  var _default = connector(AreaPolygon);
132
108
  exports.default = _default;
133
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFJlZHV4IiwiX0FyZWFVdGlscyIsIl9yZWFjdERvbSIsIl9XaWRnZXQiLCJfdXRpbHMiLCJfc2NvcmVUb0RhdGEiLCJfQ2FwYWNpdHkiLCJfcmVhY3RSb3V0ZXJEb20iLCJBcmVhUG9seWdvbiIsInByb3BzIiwibWFwIiwiYXJlYSIsIm1hcFpvb20iLCJnbG9iYWxfZGF0YSIsImZlYXR1cmVHcm91cCIsInBvaW50cyIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwiYXJlYXMiLCJhcmVhc19kYXRhIiwiV1dUUE1vZGUiLCJ3d3RwX2Rhc2hib2FyZCIsImNhcGFjaXR5Iiwid2F0ZXJBdXRob3JpdHlJc0NhcGFjaXR5IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiV1dUUE1hcExvZ2ljIiwicG9seWdvbiIsImZldGNoRGF0YUFuZFNob3dQb3B1cCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJkZWZhdWx0IiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3aWRnZXRDb250YWluZXIiLCJ0eXBlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwiaXNfdmlydHVhbCIsImZldGNoQ2FwYWNpdHkiLCJhcmVhX2lkIiwid2F0ZXJBdXRob3JpdHlJZCIsInRoZW4iLCJsaXN0RGF0YSIsIlJlYWN0RE9NIiwicmVuZGVyIiwiV2lkZ2V0Iiwib2JqZWN0IiwiaXNQb3B1cE9wZW4iLCJvcGVuUG9wdXAiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJvbiIsImNsb3NlUG9wdXAiLCJvcGVuVG9vbHRpcCIsInN1YmplY3QiLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJhcmVhX25hbWUiLCJnZXRQb2x5Z29uIiwiaWQiLCJlYWNoTGF5ZXIiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlzUG9seWdvbkNoYW5nZWRDb2xvciIsImFyZWFDb2xvciIsInNjb3JlVG9Db2xvciIsImFyZWFfc2NvcmUiLCJwb2x5Z29uQ29sb3IiLCJvcHRpb25zIiwiY29sb3IiLCJleGlzdGluZ1BvbHlnb24iLCJjcmVhdGVQb2x5Z29uIiwic3ViQXJlYXMiLCJzdWJfYXJlYXMiLCJzdWJBcmVhIiwibGVuZ3RoIiwicmVtb3ZlTGF5ZXIiLCJmaXJlIiwiRnJhZ21lbnQiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2FyZWFzL0FyZWFQb2x5Z29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IGNyZWF0ZVBvbHlnb24gfSBmcm9tICcuL0FyZWFVdGlscyc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0JztcbmltcG9ydCB7XG4gIGNyZWF0ZVBvcHVwRm9yT2JqZWN0LFxuICBzZW5kQW5hbHl0aWNzRXZlbnQsXG59IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvdXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdyb3VwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBzY29yZVRvQ29sb3IgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IGZldGNoQ2FwYWNpdHkgfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0NhcGFjaXR5JztcbmltcG9ydCB7IHVzZUhpc3RvcnkgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcblxudHlwZSBQcm9wcyA9IHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgYXJlYTogSUFyZWEgJiB7IGNvbG9yPzogc3RyaW5nOyBzaG93Q29sb3JPbmx5SW5Cb3JkZXJzPzogYm9vbGVhbiB9O1xuICBtYXBab29tOiBudW1iZXI7XG4gIGdsb2JhbF9kYXRhOiBhbnk7XG4gIGJpbmRQb3B1cD86IGJvb2xlYW47XG4gIGZlYXR1cmVHcm91cDogRmVhdHVyZUdyb3VwO1xufTtcblxuY29uc3QgQXJlYVBvbHlnb246IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG1hcCwgYXJlYSwgbWFwWm9vbSwgZ2xvYmFsX2RhdGEsIGZlYXR1cmVHcm91cCB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvaW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucG9pbnRzX2RhdGEuaXRlbXMpO1xuICBjb25zdCBhcmVhcyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuYXJlYXNfZGF0YS5pdGVtcyk7XG4gIGNvbnN0IFdXVFBNb2RlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS53d3RwX2Rhc2hib2FyZC5tYXAgIT09IG51bGwpO1xuICBjb25zdCBjYXBhY2l0eSA9IGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SXNDYXBhY2l0eTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuXG4gIGNvbnN0IFdXVFBNYXBMb2dpYyA9IChwb2x5Z29uLCBhcmVhKSA9PiB7XG4gICAgaWYgKCFXV1RQTW9kZSB8fCAhY2FwYWNpdHkpIHJldHVybjtcblxuICAgIGNvbnN0IGZldGNoRGF0YUFuZFNob3dQb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHdpZGdldENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgY3JlYXRlUG9wdXBGb3JPYmplY3Qoe1xuICAgICAgICByZW5kZXJlZEVsZW1lbnQ6IHdpZGdldENvbnRhaW5lcixcbiAgICAgICAgbWFya2VyOiBwb2x5Z29uLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBhcmVhPy5pc192aXJ0dWFsID09PSB0cnVlID8gJ3ZhcmVhJyA6ICdhcmVhJztcbiAgICAgIGZldGNoQ2FwYWNpdHkodHlwZSwgYXJlYS5hcmVhX2lkLCBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKS50aGVuKFxuICAgICAgICAobGlzdERhdGEpID0+IHtcbiAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICA8V2lkZ2V0XG4gICAgICAgICAgICAgIG9iamVjdD17YXJlYX1cbiAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBsaXN0RGF0YT17bGlzdERhdGF9XG4gICAgICAgICAgICAgIGhpc3Rvcnk9e2hpc3Rvcnl9XG4gICAgICAgICAgICAvPixcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lcixcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgaWYgKCFwb2x5Z29uLmlzUG9wdXBPcGVuKCkpIHtcbiAgICAgICAgcG9seWdvbi5vcGVuUG9wdXAoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcG9seWdvbi5vbignY2xpY2stZXZlbnQnLCAoKSA9PiB7XG4gICAgICBwb2x5Z29uLmlzUG9wdXBPcGVuKCkgPyBwb2x5Z29uLmNsb3NlUG9wdXAoKSA6IGZldGNoRGF0YUFuZFNob3dQb3B1cCgpO1xuICAgICAgcG9seWdvbi5vcGVuVG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgcG9seWdvbi5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICBmZXRjaERhdGFBbmRTaG93UG9wdXAoKTtcblxuICAgICAgY29uc3Qgc3ViamVjdCA9ICdNYXAgVmlldyAtIEFyZWEgY2xpY2tlZCc7XG4gICAgICBzZW5kQW5hbHl0aWNzRXZlbnQoc3ViamVjdCwgJ21hcCcsIHtcbiAgICAgICAgYXJlYV9pZDogYXJlYS5hcmVhX2lkLFxuICAgICAgICBhcmVhX25hbWU6IGFyZWEuYXJlYV9uYW1lLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0UG9seWdvbiA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgbGV0IHBvbHlnb247XG4gICAgZmVhdHVyZUdyb3VwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChsYXllci5rYW5kb19vYmplY3RfaWQgPT09IGlkKSB7XG4gICAgICAgIHBvbHlnb24gPSBsYXllcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcG9seWdvbjtcbiAgfTtcblxuICBjb25zdCBpc1BvbHlnb25DaGFuZ2VkQ29sb3IgPSAocG9seWdvbiwgYXJlYSkgPT4ge1xuICAgIGlmICghcG9seWdvbikgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYXJlYUNvbG9yID0gc2NvcmVUb0NvbG9yKGFyZWEuYXJlYV9zY29yZSk7XG4gICAgY29uc3QgcG9seWdvbkNvbG9yID0gcG9seWdvbi5vcHRpb25zLmNvbG9yO1xuICAgIHJldHVybiBhcmVhQ29sb3IgIT09IHBvbHlnb25Db2xvcjtcbiAgfTtcblxuICAvLyBUaGUgZm9sbG93aW5nIHJlbW92ZXMgdGhlIGV4aXN0aW5nIGxheWVyIGFuZCByZWRyYXcgaXQgYWZ0ZXIuXG4gIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoZSBmZWF0dXJlR3JvdXAgd2lsbCBob2xkIG9ubHkgb25lIHBvbHlnb24gcGVyIGFyZWEgb3RoZXJ3aXNlIHRoZXkgYXJlIHBpbGluZyB1cC5cbiAgLy8gV2UgcmVwbGFjZSB0aGVtIGJlY2F1c2UgdGhlIGFyZWEncyBjb2xvciBtaWdodCBoYXZlIGNoYW5nZWQuXG4gIC8vIFRoaXMgY3JlYXRlcyBhIGZsaWNrZXJpbmcgZWZmZWN0IG9uIHRoZSBtYXAgd2hpY2ggaXMgbm90IGlkZWFsXG4gIC8vIGJ1dCBpdCdzIHRoZSBiZXN0IHNvbHV0aW9uIHdlIGhhdmUgZm9yIG5vdyBhbmQgd2UgbWlnaHQgbmVlZCB0byByZWZhY3RvciB0aGlzIGluIHRoZSBmdXR1cmUuXG4gIGNvbnN0IGV4aXN0aW5nUG9seWdvbiA9IGdldFBvbHlnb24oYXJlYS5hcmVhX2lkKTtcbiAgaWYgKGlzUG9seWdvbkNoYW5nZWRDb2xvcihleGlzdGluZ1BvbHlnb24sIGFyZWEpKSB7XG4gICAgY29uc3QgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24oXG4gICAgICBhcmVhLFxuICAgICAgbWFwWm9vbSxcbiAgICAgIGZlYXR1cmVHcm91cCxcbiAgICAgIG1hcCxcbiAgICAgIFdXVFBNYXBMb2dpYyxcbiAgICApO1xuICAgIGlmIChwb2x5Z29uKSB7XG4gICAgICBsZXQgc3ViQXJlYXMgPSBhcmVhLnN1Yl9hcmVhcy5tYXAoKHN1YkFyZWEpID0+IHN1YkFyZWEuYXJlYV9pZCk7XG4gICAgICBpZiAoc3ViQXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICBwb2x5Z29uWydzdWJfYXJlYXMnXSA9IHN1YkFyZWFzO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXhpc3RpbmdQb2x5Z29uKSB7XG4gICAgICBmZWF0dXJlR3JvdXAucmVtb3ZlTGF5ZXIoZXhpc3RpbmdQb2x5Z29uKTtcbiAgICAgIG1hcC5maXJlKCd6b29tZW5kJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiA8PjwvPjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobnVsbCk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoQXJlYVBvbHlnb24pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFLQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxlQUFBLEdBQUFSLE9BQUE7QUFZQSxJQUFNUyxXQUE0QixHQUFHLFNBQS9CQSxXQUE0QkEsQ0FBSUMsS0FBSyxFQUFLO0VBQzlDLElBQVFDLEdBQUcsR0FBK0NELEtBQUssQ0FBdkRDLEdBQUc7SUFBRUMsSUFBSSxHQUF5Q0YsS0FBSyxDQUFsREUsSUFBSTtJQUFFQyxPQUFPLEdBQWdDSCxLQUFLLENBQTVDRyxPQUFPO0lBQUVDLFdBQVcsR0FBbUJKLEtBQUssQ0FBbkNJLFdBQVc7SUFBRUMsWUFBWSxHQUFLTCxLQUFLLENBQXRCSyxZQUFZO0VBQ3JELElBQU1DLE1BQU0sR0FBRyxJQUFBQyx1QkFBVyxFQUFDLFVBQUNDLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsS0FBSztFQUFBLEVBQUM7RUFDOUQsSUFBTUMsS0FBSyxHQUFHLElBQUFKLHVCQUFXLEVBQUMsVUFBQ0MsS0FBSztJQUFBLE9BQUtBLEtBQUssQ0FBQ0ksVUFBVSxDQUFDRixLQUFLO0VBQUEsRUFBQztFQUM1RCxJQUFNRyxRQUFRLEdBQUcsSUFBQU4sdUJBQVcsRUFBQyxVQUFDQyxLQUFLO0lBQUEsT0FBS0EsS0FBSyxDQUFDTSxjQUFjLENBQUNiLEdBQUcsS0FBSyxJQUFJO0VBQUEsRUFBQztF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
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFJlZHV4IiwiX0FyZWFVdGlscyIsIl9yZWFjdERvbSIsIl9XaWRnZXQiLCJfdXRpbHMiLCJfc2NvcmVUb0RhdGEiLCJfQ2FwYWNpdHkiLCJfcmVhY3RSb3V0ZXJEb20iLCJBcmVhUG9seWdvbiIsInByb3BzIiwibWFwIiwiYXJlYSIsIm1hcFpvb20iLCJnbG9iYWxfZGF0YSIsImZlYXR1cmVHcm91cCIsInBvaW50cyIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwiYXJlYXMiLCJhcmVhc19kYXRhIiwiV1dUUE1vZGUiLCJ3d3RwX2Rhc2hib2FyZCIsImNhcGFjaXR5Iiwid2F0ZXJBdXRob3JpdHlJc0NhcGFjaXR5IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiV1dUUE1hcExvZ2ljIiwicG9seWdvbiIsImZldGNoRGF0YUFuZFNob3dQb3B1cCIsIndpZGdldENvbnRhaW5lciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwidHlwZSIsImlzX3ZpcnR1YWwiLCJmZXRjaENhcGFjaXR5IiwiYXJlYV9pZCIsIndhdGVyQXV0aG9yaXR5SWQiLCJ0aGVuIiwibGlzdERhdGEiLCJSZWFjdERPTSIsInJlbmRlciIsImRlZmF1bHQiLCJXaWRnZXQiLCJvYmplY3QiLCJpc1BvcHVwT3BlbiIsIm9wZW5Qb3B1cCIsIm9uIiwiY2xvc2VQb3B1cCIsIm9wZW5Ub29sdGlwIiwic3ViamVjdCIsInNlbmRBbmFseXRpY3NFdmVudCIsImFyZWFfbmFtZSIsImdldFBvbHlnb24iLCJpZCIsImVhY2hMYXllciIsImxheWVyIiwia2FuZG9fb2JqZWN0X2lkIiwiaXNQb2x5Z29uQ2hhbmdlZENvbG9yIiwiYXJlYUNvbG9yIiwic2NvcmVUb0NvbG9yIiwiYXJlYV9zY29yZSIsInBvbHlnb25Db2xvciIsIm9wdGlvbnMiLCJjb2xvciIsImV4aXN0aW5nUG9seWdvbiIsImNyZWF0ZVBvbHlnb24iLCJzdWJBcmVhcyIsInN1Yl9hcmVhcyIsInN1YkFyZWEiLCJsZW5ndGgiLCJyZW1vdmVMYXllciIsImZpcmUiLCJGcmFnbWVudCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvYXJlYXMvQXJlYVBvbHlnb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHsgY3JlYXRlUG9seWdvbiB9IGZyb20gJy4vQXJlYVV0aWxzJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgV2lkZ2V0IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9XaWRnZXQnO1xuaW1wb3J0IHtcbiAgY3JlYXRlUG9wdXBGb3JPYmplY3QsXG4gIHNlbmRBbmFseXRpY3NFdmVudCxcbn0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC91dGlscyc7XG5pbXBvcnQgeyBGZWF0dXJlR3JvdXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IHNjb3JlVG9Db2xvciB9IGZyb20gJ3NyYy91dGlsaXRpZXMvc2NvcmVUb0RhdGEnO1xuaW1wb3J0IHsgZmV0Y2hDYXBhY2l0eSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvQ2FwYWNpdHknO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgTDogYW55O1xuICBhcmVhOiBJQXJlYSAmIHsgY29sb3I/OiBzdHJpbmc7IHNob3dDb2xvck9ubHlJbkJvcmRlcnM/OiBib29sZWFuIH07XG4gIG1hcFpvb206IG51bWJlcjtcbiAgZ2xvYmFsX2RhdGE6IGFueTtcbiAgYmluZFBvcHVwPzogYm9vbGVhbjtcbiAgZmVhdHVyZUdyb3VwOiBGZWF0dXJlR3JvdXA7XG59O1xuXG5jb25zdCBBcmVhUG9seWdvbjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgbWFwLCBhcmVhLCBtYXBab29tLCBnbG9iYWxfZGF0YSwgZmVhdHVyZUdyb3VwIH0gPSBwcm9wcztcbiAgY29uc3QgcG9pbnRzID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5wb2ludHNfZGF0YS5pdGVtcyk7XG4gIGNvbnN0IGFyZWFzID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5hcmVhc19kYXRhLml0ZW1zKTtcbiAgY29uc3QgV1dUUE1vZGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnd3dHBfZGFzaGJvYXJkLm1hcCAhPT0gbnVsbCk7XG4gIGNvbnN0IGNhcGFjaXR5ID0gZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJc0NhcGFjaXR5O1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG5cbiAgY29uc3QgV1dUUE1hcExvZ2ljID0gKHBvbHlnb24sIGFyZWEpID0+IHtcbiAgICBpZiAoIVdXVFBNb2RlIHx8ICFjYXBhY2l0eSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZmV0Y2hEYXRhQW5kU2hvd1BvcHVwID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgd2lkZ2V0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXG4gICAgICBjcmVhdGVQb3B1cEZvck9iamVjdCh7XG4gICAgICAgIHJlbmRlcmVkRWxlbWVudDogd2lkZ2V0Q29udGFpbmVyLFxuICAgICAgICBtYXJrZXI6IHBvbHlnb24sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdHlwZSA9IGFyZWE/LmlzX3ZpcnR1YWwgPT09IHRydWUgPyAndmFyZWEnIDogJ2FyZWEnO1xuICAgICAgZmV0Y2hDYXBhY2l0eSh0eXBlLCBhcmVhLmFyZWFfaWQsIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpLnRoZW4oXG4gICAgICAgIChsaXN0RGF0YSkgPT4ge1xuICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgIDxXaWRnZXRcbiAgICAgICAgICAgICAgb2JqZWN0PXthcmVhfVxuICAgICAgICAgICAgICBkaXNwYXRjaD17ZGlzcGF0Y2h9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgICAgIGxpc3REYXRhPXtsaXN0RGF0YX1cbiAgICAgICAgICAgICAgaGlzdG9yeT17aGlzdG9yeX1cbiAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAoIXBvbHlnb24uaXNQb3B1cE9wZW4oKSkge1xuICAgICAgICBwb2x5Z29uLm9wZW5Qb3B1cCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBwb2x5Z29uLm9uKCdjbGljay1ldmVudCcsICgpID0+IHtcbiAgICAgIHBvbHlnb24uaXNQb3B1cE9wZW4oKSA/IHBvbHlnb24uY2xvc2VQb3B1cCgpIDogZmV0Y2hEYXRhQW5kU2hvd1BvcHVwKCk7XG4gICAgICBwb2x5Z29uLm9wZW5Ub29sdGlwKCk7XG4gICAgfSk7XG5cbiAgICBwb2x5Z29uLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgIGZldGNoRGF0YUFuZFNob3dQb3B1cCgpO1xuXG4gICAgICBjb25zdCBzdWJqZWN0ID0gJ01hcCBWaWV3IC0gQXJlYSBjbGlja2VkJztcbiAgICAgIHNlbmRBbmFseXRpY3NFdmVudChzdWJqZWN0LCAnbWFwJywge1xuICAgICAgICBhcmVhX2lkOiBhcmVhLmFyZWFfaWQsXG4gICAgICAgIGFyZWFfbmFtZTogYXJlYS5hcmVhX25hbWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBnZXRQb2x5Z29uID0gKGlkOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgcG9seWdvbjtcbiAgICBmZWF0dXJlR3JvdXAuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgaWYgKGxheWVyLmthbmRvX29iamVjdF9pZCA9PT0gaWQpIHtcbiAgICAgICAgcG9seWdvbiA9IGxheWVyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwb2x5Z29uO1xuICB9O1xuXG4gIGNvbnN0IGlzUG9seWdvbkNoYW5nZWRDb2xvciA9IChwb2x5Z29uLCBhcmVhKSA9PiB7XG4gICAgaWYgKCFwb2x5Z29uKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBhcmVhQ29sb3IgPSBzY29yZVRvQ29sb3IoYXJlYS5hcmVhX3Njb3JlKTtcbiAgICBjb25zdCBwb2x5Z29uQ29sb3IgPSBwb2x5Z29uLm9wdGlvbnMuY29sb3I7XG4gICAgcmV0dXJuIGFyZWFDb2xvciAhPT0gcG9seWdvbkNvbG9yO1xuICB9O1xuXG4gIC8vIFRoZSBmb2xsb3dpbmcgcmVtb3ZlcyB0aGUgZXhpc3RpbmcgbGF5ZXIgYW5kIHJlZHJhdyBpdCBhZnRlci5cbiAgLy8gVGhpcyBpcyBuZWNlc3Nhcnkgc28gdGhlIGZlYXR1cmVHcm91cCB3aWxsIGhvbGQgb25seSBvbmUgcG9seWdvbiBwZXIgYXJlYSBvdGhlcndpc2UgdGhleSBhcmUgcGlsaW5nIHVwLlxuICAvLyBXZSByZXBsYWNlIHRoZW0gYmVjYXVzZSB0aGUgYXJlYSdzIGNvbG9yIG1pZ2h0IGhhdmUgY2hhbmdlZC5cbiAgLy8gVGhpcyBjcmVhdGVzIGEgZmxpY2tlcmluZyBlZmZlY3Qgb24gdGhlIG1hcCB3aGljaCBpcyBub3QgaWRlYWxcbiAgLy8gYnV0IGl0J3MgdGhlIGJlc3Qgc29sdXRpb24gd2UgaGF2ZSBmb3Igbm93IGFuZCB3ZSBtaWdodCBuZWVkIHRvIHJlZmFjdG9yIHRoaXMgaW4gdGhlIGZ1dHVyZS5cbiAgY29uc3QgZXhpc3RpbmdQb2x5Z29uID0gZ2V0UG9seWdvbihhcmVhLmFyZWFfaWQpO1xuICBpZiAoaXNQb2x5Z29uQ2hhbmdlZENvbG9yKGV4aXN0aW5nUG9seWdvbiwgYXJlYSkpIHtcbiAgICBjb25zdCBwb2x5Z29uID0gY3JlYXRlUG9seWdvbihcbiAgICAgIGFyZWEsXG4gICAgICBtYXBab29tLFxuICAgICAgZmVhdHVyZUdyb3VwLFxuICAgICAgbWFwLFxuICAgICAgV1dUUE1hcExvZ2ljLFxuICAgICk7XG4gICAgaWYgKHBvbHlnb24pIHtcbiAgICAgIGxldCBzdWJBcmVhcyA9IGFyZWEuc3ViX2FyZWFzLm1hcCgoc3ViQXJlYSkgPT4gc3ViQXJlYS5hcmVhX2lkKTtcbiAgICAgIGlmIChzdWJBcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHBvbHlnb25bJ3N1Yl9hcmVhcyddID0gc3ViQXJlYXM7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChleGlzdGluZ1BvbHlnb24pIHtcbiAgICAgIGZlYXR1cmVHcm91cC5yZW1vdmVMYXllcihleGlzdGluZ1BvbHlnb24pO1xuICAgICAgbWFwLmZpcmUoJ3pvb21lbmQnKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDw+PC8+O1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChudWxsKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihBcmVhUG9seWdvbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9B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