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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/lib/Router.js +78 -36
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +35 -25
  3. package/lib/Widgets/EventsRow/EventsRow.js +39 -27
  4. package/lib/Widgets/Map/GraphUtils.js +3 -3
  5. package/lib/Widgets/Map/Map.js +138 -99
  6. package/lib/Widgets/Map/MapUtils.js +99 -82
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +77 -53
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +24 -23
  9. package/lib/Widgets/Map/areas/AreaUtils.js +46 -47
  10. package/lib/Widgets/Map/areas/Patterns.js +4 -4
  11. package/lib/Widgets/Map/edges/Edge.js +37 -33
  12. package/lib/Widgets/Map/edges/Edges.js +26 -21
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +44 -23
  14. package/lib/Widgets/Map/events/Event.js +17 -17
  15. package/lib/Widgets/Map/events/EventIndicator.js +60 -65
  16. package/lib/Widgets/Map/events/EventPath.js +23 -25
  17. package/lib/Widgets/Map/events/EventUtils.js +80 -60
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +18 -17
  19. package/lib/Widgets/Map/events/PointOfEvent.js +34 -29
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +37 -30
  21. package/lib/Widgets/Map/events/Snail.js +20 -19
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +86 -93
  23. package/lib/Widgets/Map/map/FloatingGraph.js +18 -22
  24. package/lib/Widgets/Map/map/GraphDateButton.js +17 -25
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +12 -13
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +15 -16
  27. package/lib/Widgets/Map/points/PointIcon.js +15 -22
  28. package/lib/Widgets/Map/points/PointMarker.js +87 -71
  29. package/lib/Widgets/Map/points/PointMarkers.js +66 -45
  30. package/lib/Widgets/Map/points/PointUtils.js +83 -145
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +47 -30
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +10 -11
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +12 -11
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +60 -31
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
  37. package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
  38. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +8 -11
  39. package/lib/Widgets/MostPolluting/Factories/Factories.js +70 -39
  40. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +18 -15
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +10 -12
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
  44. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
  45. package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
  46. package/lib/Widgets/MostPolluting/MostPolluting.js +35 -25
  47. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +22 -18
  48. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +4 -6
  49. package/lib/Widgets/MostPolluting/ShowMore/styles.js +4 -6
  50. package/lib/Widgets/MostPolluting/assets/index.js +10 -10
  51. package/lib/Widgets/MostPolluting/components/ChangePercent.js +13 -19
  52. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +30 -35
  53. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +35 -45
  54. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +35 -39
  55. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -28
  56. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +50 -54
  57. package/lib/Widgets/MostPolluting/styles.js +3 -3
  58. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +5 -7
  59. package/lib/Widgets/PotentialImpactSummary/Icon.js +10 -12
  60. package/lib/Widgets/PotentialImpactSummary/index.js +27 -19
  61. package/lib/Widgets/PotentialImpactSummary/index.test.js +52 -47
  62. package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
  63. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +7 -9
  64. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +17 -22
  65. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +32 -35
  66. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +24 -26
  67. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +37 -35
  68. package/lib/Widgets/QualitySummary/QualitySummary.js +13 -9
  69. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
  70. package/lib/Widgets/QualitySummary/styles.js +15 -23
  71. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +13 -12
  72. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +26 -27
  73. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +24 -29
  74. package/lib/Widgets/UtilityInformation/UtilityInformation.js +37 -23
  75. package/lib/Widgets/UtilityInformation/styles.js +25 -34
  76. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
  77. package/lib/assets/icons/TopNavbar/index.js +6 -6
  78. package/lib/assets/icons/TrendSvg.js +6 -6
  79. package/lib/assets/icons/index.js +15 -15
  80. package/lib/assets/icons/kandoStepper/index.js +5 -5
  81. package/lib/assets/icons/siteTypes/index.js +1 -1
  82. package/lib/components/ApplyButton/ApplyButton.js +9 -9
  83. package/lib/components/Backdrop/Backdrop.js +4 -6
  84. package/lib/components/ContentLoader/ContentLoader.js +9 -11
  85. package/lib/components/ContentLoader/index.js +1 -1
  86. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -13
  87. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +5 -3
  88. package/lib/components/CustomInputs/DoubleTabs/styles.js +12 -20
  89. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +20 -13
  90. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +4 -6
  91. package/lib/components/CustomInputs/Search/Search.js +63 -42
  92. package/lib/components/CustomInputs/Select/Select.js +58 -45
  93. package/lib/components/CustomInputs/Select/Select.stories.js +6 -4
  94. package/lib/components/DamageType/DamageType.js +57 -35
  95. package/lib/components/DataLoaderError/DataLoaderError.js +6 -8
  96. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +10 -9
  97. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +71 -70
  98. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -27
  99. package/lib/components/DischargeHeatmap/HighchartsOptions.js +12 -10
  100. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
  101. package/lib/components/DischargeHeatmap/popupText.js +10 -10
  102. package/lib/components/DischargeHeatmap/titles.js +3 -3
  103. package/lib/components/ErrorBoundary.js +41 -27
  104. package/lib/components/Events/Events.js +58 -41
  105. package/lib/components/Graph/Graph.js +96 -77
  106. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +21 -17
  107. package/lib/components/Header/DoubleTabs/DoubleTabs.js +33 -25
  108. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +5 -3
  109. package/lib/components/Header/DoubleTabs/styles.js +4 -4
  110. package/lib/components/Header/Header.js +2 -2
  111. package/lib/components/Header/Header.stories.js +5 -3
  112. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +34 -22
  113. package/lib/components/Header/InfoBar/InfoBar.js +103 -74
  114. package/lib/components/Header/InfoBar/Search/Control.js +9 -9
  115. package/lib/components/Header/InfoBar/Search/GroupLabel.js +5 -7
  116. package/lib/components/Header/InfoBar/Search/Search.js +21 -16
  117. package/lib/components/Header/InfoBar/Search/SearchContainer.js +33 -21
  118. package/lib/components/Header/InfoBar/Search/searchStyle.js +49 -41
  119. package/lib/components/Header/InfoBar/TimeFilter.js +14 -11
  120. package/lib/components/Header/KandoNavbar/KandoNavbar.js +89 -64
  121. package/lib/components/Header/Slideshow/Slideshow.js +90 -68
  122. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +4 -6
  123. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +23 -21
  124. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
  125. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +43 -37
  126. package/lib/components/Header/Toolbar/Toolbar.js +74 -55
  127. package/lib/components/InfoBar/InfoBar.js +23 -10
  128. package/lib/components/InfoBar/InfoBar.stories.js +5 -3
  129. package/lib/components/KandoModal/KandoModal.js +41 -27
  130. package/lib/components/Link.js +7 -8
  131. package/lib/components/Links/CustomRedirect/CustomRedirect.js +8 -9
  132. package/lib/components/Links/StyledLink/StyledLink.js +12 -12
  133. package/lib/components/Links/StyledNavLink/StyledNavLink.js +10 -11
  134. package/lib/components/LiveEvents/CarouselSlide.js +7 -9
  135. package/lib/components/LiveEvents/LiveEvents.js +3 -5
  136. package/lib/components/LoaderByPercent/LoaderByPercent.js +29 -37
  137. package/lib/components/Map/Map.js +23 -20
  138. package/lib/components/Modal/Modal.js +9 -9
  139. package/lib/components/NarrowHeader.js +31 -17
  140. package/lib/components/PointInfo/PointInfo.js +17 -19
  141. package/lib/components/PopupModal/PopupModal.js +16 -12
  142. package/lib/components/PopupModal/PopupModal.stories.js +19 -15
  143. package/lib/components/Sector/Sector.js +23 -18
  144. package/lib/components/Sector/Sector.test.js +20 -19
  145. package/lib/components/Sector/SectorIconsNew.js +112 -0
  146. package/lib/components/Sector/sectorIcons.js +2 -2
  147. package/lib/components/SevereEvent/Eta/Eta.js +52 -49
  148. package/lib/components/SevereEvent/Eta/styles.js +6 -10
  149. package/lib/components/SevereEvent/SevereEvent.js +37 -30
  150. package/lib/components/Spinner/Spinner.js +8 -8
  151. package/lib/components/Spinner/Spinner.stories.js +6 -4
  152. package/lib/components/Spinner/styles.js +14 -22
  153. package/lib/components/Tabs/Tabs.js +29 -21
  154. package/lib/components/Tabs/Tabs.stories.js +6 -4
  155. package/lib/components/Tabs/assets/index.js +5 -5
  156. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +15 -12
  157. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +51 -40
  158. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +31 -19
  159. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +25 -20
  160. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
  161. package/lib/components/TimeRangeSelector/TimeRangeList.js +24 -23
  162. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +25 -17
  163. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +32 -31
  164. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +6 -4
  165. package/lib/components/TimeRangeSelector/constants.js +3 -3
  166. package/lib/components/Toggle/Toggle.js +17 -12
  167. package/lib/components/TrendGraph/TrendGraph.js +39 -23
  168. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +33 -27
  169. package/lib/development-environment/index.js +12 -8
  170. package/lib/development-environment/mock/browser.js +4 -2
  171. package/lib/development-environment/mock/get.js +10 -8
  172. package/lib/development-environment/mock/handlers.js +2 -2
  173. package/lib/development-environment/mock/mockBus.js +4 -4
  174. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
  175. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
  176. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
  177. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
  178. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
  179. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
  180. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
  181. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
  182. package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
  183. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
  184. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
  185. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
  186. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
  187. package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
  188. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
  189. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
  190. package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
  191. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
  192. package/lib/development-environment/togly/ToglyDashboard.js +22 -13
  193. package/lib/development-environment/togly/ToglyItem.js +31 -36
  194. package/lib/development-environment/togly/init.js +2 -2
  195. package/lib/development-environment/togly/macro.js +10 -14
  196. package/lib/development-environment/togly/useDoubleKeyDown.js +9 -7
  197. package/lib/development-environment/togly/useLocalStorage.js +18 -13
  198. package/lib/hooks/useApi.js +55 -19
  199. package/lib/hooks/useApiWithDashboardQuery.js +49 -30
  200. package/lib/hooks/useClickOutside.js +3 -3
  201. package/lib/hooks/useInitializeHeaders.js +5 -5
  202. package/lib/hooks/useKandoFetch.js +29 -16
  203. package/lib/hooks/useMap.js +34 -22
  204. package/lib/hooks/useNavContext.js +26 -22
  205. package/lib/hooks/useRemoveExistingLayers.js +6 -6
  206. package/lib/hooks/useUpdateEventBodyTail.js +17 -13
  207. package/lib/hooks/useUserTimeZone.js +30 -33
  208. package/lib/hooks/useUserTimeZone.test.js +22 -19
  209. package/lib/hooks/useWindowSize.js +14 -7
  210. package/lib/i18n/en.json +15 -0
  211. package/lib/index.js +12 -11
  212. package/lib/macros/getVersion.js +3 -3
  213. package/lib/pages/AreaPage/AreaPage.js +67 -34
  214. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +17 -16
  215. package/lib/pages/AreaPage/Dashboard/Dashboard.js +31 -30
  216. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +25 -17
  217. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
  218. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  219. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
  220. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
  221. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
  222. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
  223. package/lib/pages/AssessmentPage/AssessmentPage.js +46 -40
  224. package/lib/pages/CannyWidget/Feedback.js +13 -13
  225. package/lib/pages/CovidPage/CovidPage.js +13 -8
  226. package/lib/pages/CovidPage/components/Body.js +27 -25
  227. package/lib/pages/CovidPage/components/Map.js +39 -29
  228. package/lib/pages/CovidPage/components/Sidebar.js +15 -16
  229. package/lib/pages/CovidPage/components/Summary.js +27 -20
  230. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +33 -27
  231. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +73 -51
  232. package/lib/pages/CovidPage/components/areas/Area.js +40 -29
  233. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +46 -55
  234. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +35 -32
  235. package/lib/pages/CovidPage/components/areas/AreasList.js +46 -34
  236. package/lib/pages/CovidPage/components/areas/Sort.js +14 -11
  237. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  238. package/lib/pages/DashboardMap/AreaCard.js +28 -28
  239. package/lib/pages/DashboardMap/AssessmentIcon.js +7 -8
  240. package/lib/pages/DashboardMap/Capacity.js +80 -31
  241. package/lib/pages/DashboardMap/FactoryCard.js +26 -31
  242. package/lib/pages/DashboardMap/HighchartsOptions.js +4 -5
  243. package/lib/pages/DashboardMap/List.js +105 -74
  244. package/lib/pages/DashboardMap/ListContext.js +19 -15
  245. package/lib/pages/DashboardMap/Loader.js +2 -2
  246. package/lib/pages/DashboardMap/SeverityBadge.js +21 -14
  247. package/lib/pages/DashboardMap/WWTPMap.js +60 -48
  248. package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
  249. package/lib/pages/DashboardMap/Widget.js +71 -54
  250. package/lib/pages/DashboardMap/utils.js +65 -48
  251. package/lib/pages/EventsPage/Body/Body.js +15 -20
  252. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +19 -17
  253. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +35 -27
  254. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +6 -8
  255. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +7 -11
  256. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +30 -21
  257. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +64 -53
  258. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +31 -19
  259. package/lib/pages/EventsPage/EventsPage.js +10 -7
  260. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +38 -26
  261. package/lib/pages/EventsPage/events/MoreInfo.js +16 -17
  262. package/lib/pages/EventsPage/events/Sidebar.js +18 -22
  263. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
  264. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +20 -17
  265. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +35 -30
  266. package/lib/pages/EventsPage/events/event_info/EventDetails.js +37 -40
  267. package/lib/pages/EventsPage/events/event_info/EventInfo.js +42 -43
  268. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
  269. package/lib/pages/EventsPage/events/event_info/EventSection.js +19 -17
  270. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +38 -43
  271. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +47 -39
  272. package/lib/pages/EventsPage/events/event_info/Header/Header.js +4 -6
  273. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +33 -30
  274. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
  275. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +36 -29
  276. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +6 -4
  277. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
  278. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +9 -7
  279. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +21 -22
  280. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +19 -12
  281. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +3 -5
  282. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +9 -11
  283. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +26 -22
  284. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +8 -12
  285. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
  286. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +4 -6
  287. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
  288. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +10 -12
  289. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +8 -10
  290. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +12 -10
  291. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +3 -5
  292. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +5 -7
  293. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +5 -7
  294. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +4 -6
  295. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +9 -11
  296. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
  297. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
  298. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +5 -7
  299. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +15 -17
  300. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
  301. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +8 -10
  302. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +11 -16
  303. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +8 -9
  304. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
  305. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
  306. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +38 -25
  307. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +36 -29
  308. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +9 -11
  309. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +17 -15
  310. package/lib/pages/EventsPage/events/event_info/sources/Source.js +30 -27
  311. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +26 -23
  312. package/lib/pages/EventsPage/events/event_info/styles.js +12 -20
  313. package/lib/pages/EventsPage/events/events_list/EventItem.js +19 -18
  314. package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
  315. package/lib/pages/EventsPage/events/events_list/EventsList.js +145 -124
  316. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +55 -40
  317. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +115 -79
  318. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +77 -60
  319. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +41 -38
  320. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +36 -29
  321. package/lib/pages/EventsPage/events/events_list/Sort.js +16 -13
  322. package/lib/pages/ImportFileWizard/FileUploadRespones.js +20 -13
  323. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +4 -6
  324. package/lib/pages/ImportFileWizard/ImportFile.js +22 -20
  325. package/lib/pages/ImportFileWizard/ResponseBody.js +33 -24
  326. package/lib/pages/ImportFileWizard/ValidationForm.js +22 -23
  327. package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
  328. package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
  329. package/lib/pages/ImportGisPage/ImportGisContainer.js +24 -21
  330. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +23 -21
  331. package/lib/pages/ImportGisPage/importGisUtils.js +21 -13
  332. package/lib/pages/ImportGisProcess/index.js +15 -12
  333. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +12 -7
  334. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +19 -17
  335. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
  336. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +65 -56
  337. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -6
  338. package/lib/pages/NotificationsPage/Notification/Notification.js +12 -16
  339. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
  340. package/lib/pages/NotificationsPage/Notifications.stories.js +6 -4
  341. package/lib/pages/NotificationsPage/NotificationsPage.js +36 -18
  342. package/lib/pages/NotificationsPage/assets/index.js +9 -9
  343. package/lib/pages/NotificationsPageV2/NotificationsPage.js +97 -71
  344. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +63 -94
  345. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +16 -14
  346. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +16 -18
  347. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +21 -17
  348. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +21 -17
  349. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +22 -18
  350. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +69 -83
  351. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +22 -18
  352. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
  353. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +95 -97
  354. package/lib/pages/NotificationsPageV2/notificationUtils.js +48 -54
  355. package/lib/pages/OldSitePage/OldSitePage.js +132 -57
  356. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
  357. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
  358. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +6 -8
  359. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +20 -18
  360. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
  361. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +18 -12
  362. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
  363. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
  364. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -18
  365. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +63 -51
  366. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
  367. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +53 -29
  368. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
  369. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
  370. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +10 -11
  371. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +11 -10
  372. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +28 -32
  373. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +29 -27
  374. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  375. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +12 -18
  376. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +130 -0
  377. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +64 -0
  378. package/lib/pages/PollutionRiskAssessment/FilterButton.js +36 -0
  379. package/lib/pages/PollutionRiskAssessment/Map.js +49 -0
  380. package/lib/pages/PollutionRiskAssessment/Map.scss +59 -0
  381. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +51 -0
  382. package/lib/pages/PollutionRiskAssessment/UseCases.js +53 -0
  383. package/lib/pages/PollutionRiskAssessment/contact_us.svg +18 -0
  384. package/lib/pages/PollutionRiskAssessment/filter_button.svg +5 -0
  385. package/lib/pages/PollutionRiskAssessment/index.js +246 -0
  386. package/lib/pages/PollutionRiskAssessment/index.scss +45 -0
  387. package/lib/pages/PollutionRiskAssessment/pig.svg +3 -0
  388. package/lib/pages/PollutionRiskAssessment/useMap.js +132 -0
  389. package/lib/pages/PollutionRiskAssessment/use_cases.json +50 -0
  390. package/lib/pages/ProfilePage/Container.js +2 -2
  391. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +44 -28
  392. package/lib/pages/ProfilePage/ProfilePage.js +214 -121
  393. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +33 -25
  394. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +16 -19
  395. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +30 -28
  396. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +117 -57
  397. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +20 -17
  398. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +10 -12
  399. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +41 -39
  400. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +26 -25
  401. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
  402. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +15 -13
  403. package/lib/pages/SamplingsPage/NavigationDropdown.js +32 -45
  404. package/lib/pages/SamplingsPage/NewSamplingAction.js +100 -76
  405. package/lib/pages/SamplingsPage/SamplingMobileModal.js +101 -129
  406. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +22 -21
  407. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +22 -34
  408. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +59 -36
  409. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +18 -15
  410. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +7 -9
  411. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +194 -110
  412. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +55 -49
  413. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +43 -47
  414. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +45 -49
  415. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +20 -19
  416. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
  417. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +6 -10
  418. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +54 -58
  419. package/lib/pages/SamplingsPage/SamplingsMobileList.js +28 -21
  420. package/lib/pages/SamplingsPage/SamplingsPage.js +33 -27
  421. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +58 -50
  422. package/lib/pages/SamplingsPage/samplingsPageUtils.js +76 -68
  423. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +4 -6
  424. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +13 -14
  425. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +13 -10
  426. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  427. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
  428. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +10 -14
  429. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -9
  430. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +23 -26
  431. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +17 -14
  432. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +32 -36
  433. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
  434. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +24 -15
  435. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
  436. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
  437. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -18
  438. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +70 -58
  439. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
  440. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +26 -15
  441. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
  442. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
  443. package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
  444. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +37 -29
  445. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  446. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +11 -10
  447. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +59 -60
  448. package/lib/pages/SitePage/SamplingParameters/dataParser.js +39 -30
  449. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
  450. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  451. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +12 -18
  452. package/lib/pages/SitePage/SiteInformation/EmptyState.js +7 -11
  453. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +30 -31
  454. package/lib/pages/SitePage/SitePage.js +81 -42
  455. package/lib/pages/UploadLabResult/index.js +13 -13
  456. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +35 -26
  457. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +8 -6
  458. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +8 -9
  459. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +5 -3
  460. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +48 -47
  461. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +6 -10
  462. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
  463. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +6 -4
  464. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +12 -13
  465. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +12 -15
  466. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
  467. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
  468. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +29 -21
  469. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +30 -26
  470. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +17 -16
  471. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +13 -7
  472. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +31 -27
  473. package/lib/pages/WbeDashboard/ExpandableComponent.js +8 -9
  474. package/lib/pages/WbeDashboard/GraphWrapper.js +36 -30
  475. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -17
  476. package/lib/pages/WbeDashboard/SearchInput.js +20 -15
  477. package/lib/pages/WbeDashboard/SummaryGraph.js +76 -50
  478. package/lib/pages/WbeDashboard/SummaryGraphModal.js +17 -19
  479. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  480. package/lib/pages/WbeDashboard/WbeDashboardPage.js +213 -151
  481. package/lib/pages/WbeDashboard/WbeSummaryBar.js +48 -40
  482. package/lib/pages/WwtpPage/DashboardCard.js +23 -26
  483. package/lib/pages/WwtpPage/DischargePatternCard.js +23 -14
  484. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +22 -26
  485. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +18 -19
  486. package/lib/pages/WwtpPage/Map.js +3 -5
  487. package/lib/pages/WwtpPage/OrganicCard.js +2 -2
  488. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
  489. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +6 -8
  490. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +8 -9
  491. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +14 -18
  492. package/lib/pages/WwtpPage/PredictionCard.js +2 -2
  493. package/lib/pages/WwtpPage/TrendCard.js +19 -18
  494. package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
  495. package/lib/pages/WwtpPage/WwtpPage.js +8 -8
  496. package/lib/pages/WwtpPage/WwtpPageContainer.js +16 -21
  497. package/lib/providers/Slideshow/SlideshowContext.js +9 -11
  498. package/lib/providers/Slideshow/SlideshowProvider.js +38 -22
  499. package/lib/providers/Slideshow/SlideshowRunner.js +19 -17
  500. package/lib/providers/UrlHistory/UrlHistoryContext.js +4 -6
  501. package/lib/providers/UrlHistory/UrlHistoryProvider.js +11 -12
  502. package/lib/providers/UrlHistory/index.js +2 -2
  503. package/lib/providers/UrlHistory/useLastVisited.js +5 -5
  504. package/lib/store/ImportGis/actionTypes.js +1 -1
  505. package/lib/store/ImportGis/actionsCreator.js +5 -7
  506. package/lib/store/ImportGis/reducer.js +29 -40
  507. package/lib/store/WBE/actionTypes.js +2 -2
  508. package/lib/store/WBE/reducer.js +9 -13
  509. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +14 -24
  510. package/lib/store/areas/actionTypes.js +4 -4
  511. package/lib/store/areas/actions.js +13 -7
  512. package/lib/store/areas/reducer.js +6 -8
  513. package/lib/store/context/actionTypes.js +3 -3
  514. package/lib/store/context/actions.js +3 -3
  515. package/lib/store/context/contextMiddlewares.js +16 -14
  516. package/lib/store/context/reducer.js +9 -13
  517. package/lib/store/dashboard/dashboardSlice.js +10 -18
  518. package/lib/store/edges/actionTypes.js +5 -5
  519. package/lib/store/edges/actions.js +8 -4
  520. package/lib/store/edges/reducer.js +17 -13
  521. package/lib/store/events/actionTypes.js +17 -17
  522. package/lib/store/events/actions.js +7 -3
  523. package/lib/store/events/reducer.js +49 -42
  524. package/lib/store/global/actionTypes.js +11 -11
  525. package/lib/store/global/actions.js +6 -8
  526. package/lib/store/global/reducer.js +10 -11
  527. package/lib/store/permissions/permissionsSlice.js +8 -12
  528. package/lib/store/points/actionTypes.js +3 -3
  529. package/lib/store/points/actions.js +8 -4
  530. package/lib/store/points/models/IGeoPoint.js +6 -0
  531. package/lib/store/points/reducer.js +5 -7
  532. package/lib/store/rootActionTypes.js +2 -2
  533. package/lib/store/rootReducer.js +12 -17
  534. package/lib/store/rootStore.js +5 -5
  535. package/lib/store/samplings/actionTypes.js +1 -1
  536. package/lib/store/samplings/reducer.js +14 -16
  537. package/lib/styles/StylesLayout.js +3 -5
  538. package/lib/styles/theme/theme.js +28 -27
  539. package/lib/test/mocks/browser.js +4 -2
  540. package/lib/test/test-utils.js +15 -17
  541. package/lib/ui-kit/Button/Button.js +80 -128
  542. package/lib/ui-kit/Button/Button.test.js +29 -24
  543. package/lib/ui-kit/Checkbox/Checkbox.js +26 -31
  544. package/lib/ui-kit/ContentCard/ContentCard.js +18 -15
  545. package/lib/ui-kit/Dashboard/Dashboard.js +22 -25
  546. package/lib/ui-kit/DropDown/DropDown.js +24 -23
  547. package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
  548. package/lib/ui-kit/DropDown/DropDownItem.js +21 -24
  549. package/lib/ui-kit/DropDown/DropdownToggle.js +8 -12
  550. package/lib/ui-kit/EmptyState/EmptyState.js +4 -6
  551. package/lib/ui-kit/IconAction/IconAction.js +5 -7
  552. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +64 -48
  553. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +52 -69
  554. package/lib/ui-kit/InletsPie/InletsPie.js +13 -15
  555. package/lib/ui-kit/InletsPie/options.js +6 -6
  556. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +44 -0
  557. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +18 -0
  558. package/lib/ui-kit/KandoList/KandoList.js +12 -14
  559. package/lib/ui-kit/KandoTable/KandoTable.js +40 -48
  560. package/lib/ui-kit/KandoTable/KandoTable.test.js +22 -16
  561. package/lib/ui-kit/Layout/Layout.js +4 -6
  562. package/lib/ui-kit/MobileInput/MobileInput.js +50 -60
  563. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +16 -13
  564. package/lib/ui-kit/OrganicEvents/GaugeChart.js +6 -8
  565. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
  566. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +20 -27
  567. package/lib/ui-kit/OrganicEvents/TextInfo.js +10 -15
  568. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +8 -10
  569. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +17 -14
  570. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
  571. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
  572. package/lib/ui-kit/ScoreGauge/constant.js +3 -3
  573. package/lib/ui-kit/TimeLineChart/TrendChart.js +42 -54
  574. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +7 -8
  575. package/lib/ui-kit/Tooltip/Tooltip.js +8 -14
  576. package/lib/ui-kit/index.js +8 -8
  577. package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
  578. package/lib/ui-kit/siteName/SiteName.js +8 -11
  579. package/lib/utilities/ActionUtility.js +7 -7
  580. package/lib/utilities/Alert.js +17 -21
  581. package/lib/utilities/Analytics.js +11 -11
  582. package/lib/utilities/Array.js +5 -4
  583. package/lib/utilities/Enum.js +51 -15
  584. package/lib/utilities/ErrorBoundary.js +41 -27
  585. package/lib/utilities/File.js +69 -40
  586. package/lib/utilities/GetDir.js +7 -8
  587. package/lib/utilities/KandoDate.js +15 -7
  588. package/lib/utilities/KandoModal.js +26 -16
  589. package/lib/utilities/LocalStorage.js +10 -8
  590. package/lib/utilities/ThousandsToK.js +3 -3
  591. package/lib/utilities/TimeFormat.js +20 -21
  592. package/lib/utilities/Truncate.js +25 -17
  593. package/lib/utilities/edgesMath.js +15 -14
  594. package/lib/utilities/i18n.js +3 -3
  595. package/lib/utilities/kql.js +14 -12
  596. package/lib/utilities/map/icons.js +3 -3
  597. package/lib/utilities/polylinedecorator.js +112 -87
  598. package/lib/utilities/scoreToData.js +17 -17
  599. package/lib/utilities/scoreToData.test.js +5 -5
  600. package/lib/utilities/time.js +8 -8
  601. package/lib/utilities/uploadToS3.js +11 -11
  602. package/lib/utilities/urls.js +64 -61
  603. package/package.json +3 -1
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.graphDatesButtons = exports.dndGraphInitOptions = void 0;
8
8
  var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
9
- const dndGraphInitOptions = {
9
+ var dndGraphInitOptions = {
10
10
  scrollbar: {
11
11
  enabled: true,
12
12
  barBackgroundColor: '#DBDEE3',
@@ -86,7 +86,7 @@ const dndGraphInitOptions = {
86
86
  }
87
87
  };
88
88
  exports.dndGraphInitOptions = dndGraphInitOptions;
89
- const graphDatesButtons = [{
89
+ var graphDatesButtons = [{
90
90
  title: '1 Day',
91
91
  time: 24
92
92
  }, {
@@ -100,4 +100,4 @@ const graphDatesButtons = [{
100
100
  time: 2880
101
101
  }];
102
102
  exports.graphDatesButtons = graphDatesButtons;
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZG5kR3JhcGhJbml0T3B0aW9ucyIsInNjcm9sbGJhciIsImVuYWJsZWQiLCJiYXJCYWNrZ3JvdW5kQ29sb3IiLCJiYXJCb3JkZXJSYWRpdXMiLCJiYXJCb3JkZXJXaWR0aCIsImJ1dHRvbkJhY2tncm91bmRDb2xvciIsImJ1dHRvbkJvcmRlcldpZHRoIiwiYnV0dG9uQXJyb3dDb2xvciIsImJ1dHRvbkJvcmRlclJhZGl1cyIsInJpZmxlQ29sb3IiLCJ0cmFja0JhY2tncm91bmRDb2xvciIsInRyYWNrQm9yZGVyV2lkdGgiLCJ0cmFja0JvcmRlckNvbG9yIiwidHJhY2tCb3JkZXJSYWRpdXMiLCJjaGFydCIsInNwYWNpbmdCb3R0b20iLCJzcGFjaW5nTGVmdCIsInNwYWNpbmdSaWdodCIsInNwYWNpbmdUb3AiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZWlnaHQiLCJ6b29tVHlwZSIsInJhbmdlU2VsZWN0b3IiLCJhbGxCdXR0b25zRW5hYmxlZCIsImlucHV0RW5hYmxlZCIsImJ1dHRvbnMiLCJ0eXBlIiwiY291bnQiLCJ0ZXh0IiwiaTE4biIsInQiLCJidXR0b25UaGVtZSIsIndpZHRoIiwiZmlsbCIsInN0cm9rZSIsInBhZGRpbmciLCJyIiwic3R5bGUiLCJmb250U2l6ZSIsInN0YXRlcyIsImhvdmVyIiwiY29sb3IiLCJmb250V2VpZ2h0Iiwic2VsZWN0IiwiZXhwb3J0cyIsImdyYXBoRGF0ZXNCdXR0b25zIiwidGl0bGUiLCJ0aW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL0dyYXBoVXRpbHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJRXZlbnRzU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnRzU3RhdGUnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCBIaWdoY2hhcnRzIGZyb20gJ2hpZ2hjaGFydHMvaGlnaHN0b2NrJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaFR5cGUge1xuICBncmFwaERhdGE6IHtcbiAgICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICAgIGV2ZW50c19kYXRhOiBJRXZlbnRzU3RhdGU7XG4gICAgZ3JhcGhEYXRlOiBudW1iZXI7XG4gIH07XG4gIGdyYXBoRWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBHcmFwaHNDb2x1bW5UeXBlIHtcbiAgaWQ6IHN0cmluZztcbiAgZ3JhcGhzOiBHcmFwaFR5cGVbXSB8IFtdO1xufVxuZXhwb3J0IGNvbnN0IGRuZEdyYXBoSW5pdE9wdGlvbnM6IEhpZ2hjaGFydHMuT3B0aW9ucyA9IHtcbiAgc2Nyb2xsYmFyOiB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICBiYXJCYWNrZ3JvdW5kQ29sb3I6ICcjREJERUUzJyxcbiAgICBiYXJCb3JkZXJSYWRpdXM6IDcsXG4gICAgYmFyQm9yZGVyV2lkdGg6IDAsXG4gICAgYnV0dG9uQmFja2dyb3VuZENvbG9yOiAnI0RCREVFMycsXG4gICAgYnV0dG9uQm9yZGVyV2lkdGg6IDAsXG4gICAgYnV0dG9uQXJyb3dDb2xvcjogJyNmNjAwNGYnLFxuICAgIGJ1dHRvbkJvcmRlclJhZGl1czogNyxcbiAgICByaWZsZUNvbG9yOiAnI2Y2MDA0ZicsXG4gICAgdHJhY2tCYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZicsXG4gICAgdHJhY2tCb3JkZXJXaWR0aDogMixcbiAgICB0cmFja0JvcmRlckNvbG9yOiAnI0RCREVFMycsXG4gICAgdHJhY2tCb3JkZXJSYWRpdXM6IDcsXG4gIH0sXG4gIGNoYXJ0OiB7XG4gICAgc3BhY2luZ0JvdHRvbTogMCxcbiAgICBzcGFjaW5nTGVmdDogMCxcbiAgICBzcGFjaW5nUmlnaHQ6IDAsXG4gICAgc3BhY2luZ1RvcDogMCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcbiAgICBoZWlnaHQ6IDIzMCxcbiAgICB6b29tVHlwZTogJ3gnLFxuICB9LFxuXG4gIHJhbmdlU2VsZWN0b3I6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIGFsbEJ1dHRvbnNFbmFibGVkOiB0cnVlLFxuICAgIGlucHV0RW5hYmxlZDogZmFsc2UsXG4gICAgYnV0dG9uczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnZGF5JyxcbiAgICAgICAgY291bnQ6IDEsXG4gICAgICAgIHRleHQ6IGkxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnRpbWVfc2VsZWN0aW9uLm9uZV9kYXknKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdkYXknLFxuICAgICAgICBjb3VudDogMixcbiAgICAgICAgdGV4dDogaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24udHdvX2RheXMnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd3ZWVrJyxcbiAgICAgICAgY291bnQ6IDEsXG4gICAgICAgIHRleHQ6IGkxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnRpbWVfc2VsZWN0aW9uLm9uZV93ZWVrJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICBjb3VudDogMSxcbiAgICAgICAgdGV4dDogaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24ub25lX21vbnRoJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICBjb3VudDogMyxcbiAgICAgICAgdGV4dDogaTE4bi50KFxuICAgICAgICAgICdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24ub25lX3F1YXJ0ZXInLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJ1dHRvblRoZW1lOiB7XG4gICAgICB3aWR0aDogNjAsXG4gICAgICBmaWxsOiAnbm9uZScsXG4gICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICdzdHJva2Utd2lkdGgnOiAwLFxuICAgICAgcGFkZGluZzogNSxcbiAgICAgIHI6IDgsXG4gICAgICBzdHlsZToge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgfSxcbiAgICAgIHN0YXRlczoge1xuICAgICAgICBob3Zlcjoge1xuICAgICAgICAgIGZpbGw6ICcjRTMxQjYyJyxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3Q6IHtcbiAgICAgICAgICBmaWxsOiAnI0UzMUI2MicsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG5leHBvcnQgY29uc3QgZ3JhcGhEYXRlc0J1dHRvbnMgPSBbXG4gIHtcbiAgICB0aXRsZTogJzEgRGF5JyxcbiAgICB0aW1lOiAyNCxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnMSBXZWVrJyxcbiAgICB0aW1lOiAxNjgsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJzEgTW9udGgnLFxuICAgIHRpbWU6IDcyMCxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnMSBRdWFydGVyJyxcbiAgICB0aW1lOiAyODgwLFxuICB9LFxuXTtcbiJdLCJtYXBwaW5n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
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZG5kR3JhcGhJbml0T3B0aW9ucyIsInNjcm9sbGJhciIsImVuYWJsZWQiLCJiYXJCYWNrZ3JvdW5kQ29sb3IiLCJiYXJCb3JkZXJSYWRpdXMiLCJiYXJCb3JkZXJXaWR0aCIsImJ1dHRvbkJhY2tncm91bmRDb2xvciIsImJ1dHRvbkJvcmRlcldpZHRoIiwiYnV0dG9uQXJyb3dDb2xvciIsImJ1dHRvbkJvcmRlclJhZGl1cyIsInJpZmxlQ29sb3IiLCJ0cmFja0JhY2tncm91bmRDb2xvciIsInRyYWNrQm9yZGVyV2lkdGgiLCJ0cmFja0JvcmRlckNvbG9yIiwidHJhY2tCb3JkZXJSYWRpdXMiLCJjaGFydCIsInNwYWNpbmdCb3R0b20iLCJzcGFjaW5nTGVmdCIsInNwYWNpbmdSaWdodCIsInNwYWNpbmdUb3AiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZWlnaHQiLCJ6b29tVHlwZSIsInJhbmdlU2VsZWN0b3IiLCJhbGxCdXR0b25zRW5hYmxlZCIsImlucHV0RW5hYmxlZCIsImJ1dHRvbnMiLCJ0eXBlIiwiY291bnQiLCJ0ZXh0IiwiaTE4biIsInQiLCJidXR0b25UaGVtZSIsIndpZHRoIiwiZmlsbCIsInN0cm9rZSIsInBhZGRpbmciLCJyIiwic3R5bGUiLCJmb250U2l6ZSIsInN0YXRlcyIsImhvdmVyIiwiY29sb3IiLCJmb250V2VpZ2h0Iiwic2VsZWN0IiwiZXhwb3J0cyIsImdyYXBoRGF0ZXNCdXR0b25zIiwidGl0bGUiLCJ0aW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL0dyYXBoVXRpbHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJRXZlbnRzU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnRzU3RhdGUnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCBIaWdoY2hhcnRzIGZyb20gJ2hpZ2hjaGFydHMvaGlnaHN0b2NrJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaFR5cGUge1xuICBncmFwaERhdGE6IHtcbiAgICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICAgIGV2ZW50c19kYXRhOiBJRXZlbnRzU3RhdGU7XG4gICAgZ3JhcGhEYXRlOiBudW1iZXI7XG4gIH07XG4gIGdyYXBoRWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBHcmFwaHNDb2x1bW5UeXBlIHtcbiAgaWQ6IHN0cmluZztcbiAgZ3JhcGhzOiBHcmFwaFR5cGVbXSB8IFtdO1xufVxuZXhwb3J0IGNvbnN0IGRuZEdyYXBoSW5pdE9wdGlvbnM6IEhpZ2hjaGFydHMuT3B0aW9ucyA9IHtcbiAgc2Nyb2xsYmFyOiB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICBiYXJCYWNrZ3JvdW5kQ29sb3I6ICcjREJERUUzJyxcbiAgICBiYXJCb3JkZXJSYWRpdXM6IDcsXG4gICAgYmFyQm9yZGVyV2lkdGg6IDAsXG4gICAgYnV0dG9uQmFja2dyb3VuZENvbG9yOiAnI0RCREVFMycsXG4gICAgYnV0dG9uQm9yZGVyV2lkdGg6IDAsXG4gICAgYnV0dG9uQXJyb3dDb2xvcjogJyNmNjAwNGYnLFxuICAgIGJ1dHRvbkJvcmRlclJhZGl1czogNyxcbiAgICByaWZsZUNvbG9yOiAnI2Y2MDA0ZicsXG4gICAgdHJhY2tCYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZicsXG4gICAgdHJhY2tCb3JkZXJXaWR0aDogMixcbiAgICB0cmFja0JvcmRlckNvbG9yOiAnI0RCREVFMycsXG4gICAgdHJhY2tCb3JkZXJSYWRpdXM6IDcsXG4gIH0sXG4gIGNoYXJ0OiB7XG4gICAgc3BhY2luZ0JvdHRvbTogMCxcbiAgICBzcGFjaW5nTGVmdDogMCxcbiAgICBzcGFjaW5nUmlnaHQ6IDAsXG4gICAgc3BhY2luZ1RvcDogMCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcbiAgICBoZWlnaHQ6IDIzMCxcbiAgICB6b29tVHlwZTogJ3gnLFxuICB9LFxuXG4gIHJhbmdlU2VsZWN0b3I6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIGFsbEJ1dHRvbnNFbmFibGVkOiB0cnVlLFxuICAgIGlucHV0RW5hYmxlZDogZmFsc2UsXG4gICAgYnV0dG9uczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnZGF5JyxcbiAgICAgICAgY291bnQ6IDEsXG4gICAgICAgIHRleHQ6IGkxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnRpbWVfc2VsZWN0aW9uLm9uZV9kYXknKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdkYXknLFxuICAgICAgICBjb3VudDogMixcbiAgICAgICAgdGV4dDogaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24udHdvX2RheXMnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd3ZWVrJyxcbiAgICAgICAgY291bnQ6IDEsXG4gICAgICAgIHRleHQ6IGkxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnRpbWVfc2VsZWN0aW9uLm9uZV93ZWVrJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICBjb3VudDogMSxcbiAgICAgICAgdGV4dDogaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24ub25lX21vbnRoJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICBjb3VudDogMyxcbiAgICAgICAgdGV4dDogaTE4bi50KFxuICAgICAgICAgICdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24ub25lX3F1YXJ0ZXInLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJ1dHRvblRoZW1lOiB7XG4gICAgICB3aWR0aDogNjAsXG4gICAgICBmaWxsOiAnbm9uZScsXG4gICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICdzdHJva2Utd2lkdGgnOiAwLFxuICAgICAgcGFkZGluZzogNSxcbiAgICAgIHI6IDgsXG4gICAgICBzdHlsZToge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgfSxcbiAgICAgIHN0YXRlczoge1xuICAgICAgICBob3Zlcjoge1xuICAgICAgICAgIGZpbGw6ICcjRTMxQjYyJyxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3Q6IHtcbiAgICAgICAgICBmaWxsOiAnI0UzMUI2MicsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG5leHBvcnQgY29uc3QgZ3JhcGhEYXRlc0J1dHRvbnMgPSBbXG4gIHtcbiAgICB0aXRsZTogJzEgRGF5JyxcbiAgICB0aW1lOiAyNCxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnMSBXZWVrJyxcbiAgICB0aW1lOiAxNjgsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJzEgTW9udGgnLFxuICAgIHRpbWU6IDcyMCxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnMSBRdWFydGVyJyxcbiAgICB0aW1lOiAyODgwLFxuICB9LFxuXTtcbiJdLCJtYXBwaW5n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
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.Map = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
8
10
  var L = _interopRequireWildcard(require("leaflet"));
9
11
  require("utilities/polylinedecorator");
10
12
  require("leaflet.markercluster");
11
13
  require("leaflet.pattern");
14
+ require("leaflet.heat");
12
15
  var _react = _interopRequireWildcard(require("react"));
13
16
  var _reactRedux = require("react-redux");
14
17
  var _ErrorBoundary = _interopRequireDefault(require("utilities/ErrorBoundary"));
@@ -21,65 +24,95 @@ var _Event = require("./events/Event");
21
24
  var _MapUtils = require("./MapUtils");
22
25
  var _theme = require("../../styles/theme/theme");
23
26
  var _ListContext = require("pages/DashboardMap/ListContext");
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
29
  // @ts-ignore
27
30
 
28
31
  // import { storeMap } from 'src/store/global/actions';
29
32
 
30
33
  require('leaflet.markercluster');
31
- const Map = _ref => {
32
- let {
33
- areas,
34
- edges,
35
- points,
36
- global_data,
37
- areaToCenterBy,
38
- focusedEvent,
39
- hoveredEvent,
40
- hideEdges = false,
41
- mapBoxStyle = _theme.leafletMap.mapDefault,
42
- children,
43
- includeUnmonitoredPoints = true,
44
- includeUnmonitoredDescendantsForEdges = false,
45
- forEventsView = false,
46
- style = {},
47
- forWWTPDashboard = false
48
- } = _ref;
49
- const {
50
- map
51
- } = global_data;
52
- const mapRef = (0, _react.useRef)(null);
53
- const dispatch = (0, _reactRedux.useDispatch)();
54
- const [mapZoomLevel, setMapZoomLevel] = (0, _react.useState)(2);
55
- const {
56
- selectedItem
57
- } = (0, _ListContext.useSelectedItem)();
58
- const eventsData = (0, _reactRedux.useSelector)(state => state.events_data);
59
- const hoveredEventPresent = (0, _react.useMemo)(() => {
34
+ var Map = function Map(_ref) {
35
+ var areas = _ref.areas,
36
+ edges = _ref.edges,
37
+ points = _ref.points,
38
+ global_data = _ref.global_data,
39
+ areaToCenterBy = _ref.areaToCenterBy,
40
+ focusedEvent = _ref.focusedEvent,
41
+ hoveredEvent = _ref.hoveredEvent,
42
+ _ref$hideEdges = _ref.hideEdges,
43
+ hideEdges = _ref$hideEdges === void 0 ? false : _ref$hideEdges,
44
+ _ref$mapBoxStyle = _ref.mapBoxStyle,
45
+ mapBoxStyle = _ref$mapBoxStyle === void 0 ? _theme.leafletMap.mapDefault : _ref$mapBoxStyle,
46
+ children = _ref.children,
47
+ _ref$includeUnmonitor = _ref.includeUnmonitoredPoints,
48
+ includeUnmonitoredPoints = _ref$includeUnmonitor === void 0 ? true : _ref$includeUnmonitor,
49
+ _ref$includeUnmonitor2 = _ref.includeUnmonitoredDescendantsForEdges,
50
+ includeUnmonitoredDescendantsForEdges = _ref$includeUnmonitor2 === void 0 ? false : _ref$includeUnmonitor2,
51
+ _ref$forEventsView = _ref.forEventsView,
52
+ forEventsView = _ref$forEventsView === void 0 ? false : _ref$forEventsView,
53
+ _ref$style = _ref.style,
54
+ style = _ref$style === void 0 ? {} : _ref$style,
55
+ _ref$forWWTPDashboard = _ref.forWWTPDashboard,
56
+ forWWTPDashboard = _ref$forWWTPDashboard === void 0 ? false : _ref$forWWTPDashboard;
57
+ var map = global_data.map;
58
+ var mapRef = (0, _react.useRef)(null);
59
+ var dispatch = (0, _reactRedux.useDispatch)();
60
+ var _useState = (0, _react.useState)(2),
61
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
62
+ mapZoomLevel = _useState2[0],
63
+ setMapZoomLevel = _useState2[1];
64
+ var _useSelectedItem = (0, _ListContext.useSelectedItem)(),
65
+ selectedItem = _useSelectedItem.selectedItem;
66
+ var eventsData = (0, _reactRedux.useSelector)(function (state) {
67
+ return state.events_data;
68
+ });
69
+ var hoveredEventPresent = (0, _react.useMemo)(function () {
60
70
  return hoveredEvent !== null && hoveredEvent !== undefined;
61
71
  }, [hoveredEvent]);
62
- const focusedEventPresent = (0, _react.useMemo)(() => {
72
+ var focusedEventPresent = (0, _react.useMemo)(function () {
63
73
  return focusedEvent !== null && focusedEvent !== undefined;
64
74
  }, [focusedEvent]);
65
- const [hiddenFactoriesClusterGroup] = (0, _react.useState)(window.customLeaflet.markerClusterGroup(_MapUtils.clusterGroupOptions));
66
- const [unmonitoredFactoriesClusterGroup] = (0, _react.useState)(window.customLeaflet.markerClusterGroup(_MapUtils.clusterGroupOptions));
67
- const [monitoredFactoriesClusterGroup] = (0, _react.useState)(window.customLeaflet.markerClusterGroup(_MapUtils.clusterGroupOptions));
68
- const [unmonitoredEdgesGroup] = (0, _react.useState)(L.layerGroup());
69
- const [hiddenUnmonitoredEdgesGroup] = (0, _react.useState)(L.layerGroup());
70
- const [monitoredEdgesGroup] = (0, _react.useState)(L.layerGroup());
71
- const [wwtpsLayerGroup] = (0, _react.useState)(L.layerGroup());
72
- const [collectorsLayerGroup] = (0, _react.useState)(L.layerGroup());
73
- const [areasLayerGroup] = (0, _react.useState)(new L.FeatureGroup());
74
- const [edgesCheckbox, setEdgesCheckbox] = (0, _react.useState)(true);
75
- const renderPointMarkers = (filteredPoints, mapRef, props) => mapRef.current !== null && points && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, Object.assign({
76
- map: mapRef.current,
77
- points: filteredPoints
78
- }, props));
79
- const memoizedMonitoredPoints = (0, _react.useMemo)(() => {
80
- const monitoredPoints = (0, _MapUtils.filterPoints)(points, true);
75
+ var _useState3 = (0, _react.useState)(window.customLeaflet.markerClusterGroup(_MapUtils.clusterGroupOptions)),
76
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 1),
77
+ hiddenFactoriesClusterGroup = _useState4[0];
78
+ var _useState5 = (0, _react.useState)(window.customLeaflet.markerClusterGroup(_MapUtils.clusterGroupOptions)),
79
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 1),
80
+ unmonitoredFactoriesClusterGroup = _useState6[0];
81
+ var _useState7 = (0, _react.useState)(window.customLeaflet.markerClusterGroup(_MapUtils.clusterGroupOptions)),
82
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 1),
83
+ monitoredFactoriesClusterGroup = _useState8[0];
84
+ var _useState9 = (0, _react.useState)(L.layerGroup()),
85
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 1),
86
+ unmonitoredEdgesGroup = _useState10[0];
87
+ var _useState11 = (0, _react.useState)(L.layerGroup()),
88
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 1),
89
+ hiddenUnmonitoredEdgesGroup = _useState12[0];
90
+ var _useState13 = (0, _react.useState)(L.layerGroup()),
91
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 1),
92
+ monitoredEdgesGroup = _useState14[0];
93
+ var _useState15 = (0, _react.useState)(L.layerGroup()),
94
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 1),
95
+ wwtpsLayerGroup = _useState16[0];
96
+ var _useState17 = (0, _react.useState)(L.layerGroup()),
97
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 1),
98
+ collectorsLayerGroup = _useState18[0];
99
+ var _useState19 = (0, _react.useState)(new L.FeatureGroup()),
100
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 1),
101
+ areasLayerGroup = _useState20[0];
102
+ var _useState21 = (0, _react.useState)(true),
103
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
104
+ edgesCheckbox = _useState22[0],
105
+ setEdgesCheckbox = _useState22[1];
106
+ var renderPointMarkers = function renderPointMarkers(filteredPoints, mapRef, props) {
107
+ return mapRef.current !== null && points && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, Object.assign({
108
+ map: mapRef.current,
109
+ points: filteredPoints
110
+ }, props));
111
+ };
112
+ var memoizedMonitoredPoints = (0, _react.useMemo)(function () {
113
+ var monitoredPoints = (0, _MapUtils.filterPoints)(points, true);
81
114
  return renderPointMarkers(monitoredPoints, mapRef, {
82
- includeUnmonitoredPoints,
115
+ includeUnmonitoredPoints: includeUnmonitoredPoints,
83
116
  rerender: _MapUtils.zoomLevels[mapZoomLevel],
84
117
  factoriesGroup: monitoredFactoriesClusterGroup,
85
118
  wwtpsGroup: wwtpsLayerGroup,
@@ -87,10 +120,10 @@ const Map = _ref => {
87
120
  forEventsView: false
88
121
  });
89
122
  }, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
90
- const memoizedUnmonitoredPoints = (0, _react.useMemo)(() => {
91
- const unmonitoredPoints = (0, _MapUtils.filterPoints)(points, false);
123
+ var memoizedUnmonitoredPoints = (0, _react.useMemo)(function () {
124
+ var unmonitoredPoints = (0, _MapUtils.filterPoints)(points, false);
92
125
  return renderPointMarkers(unmonitoredPoints, mapRef, {
93
- includeUnmonitoredPoints,
126
+ includeUnmonitoredPoints: includeUnmonitoredPoints,
94
127
  rerender: _MapUtils.zoomLevels[mapZoomLevel],
95
128
  factoriesGroup: unmonitoredFactoriesClusterGroup,
96
129
  wwtpsGroup: wwtpsLayerGroup,
@@ -98,66 +131,70 @@ const Map = _ref => {
98
131
  forEventsView: false
99
132
  });
100
133
  }, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
101
- const renderEdges = (filteredEdges, mapRef, edgesCheckbox, props) => mapRef.current !== null && edgesCheckbox && /*#__PURE__*/_react.default.createElement(_Edges.default, Object.assign({
102
- edges: filteredEdges,
103
- map: mapRef.current
104
- }, props));
105
- const memoizedEdges = (0, _react.useMemo)(() => {
106
- const monitoredEdges = (0, _MapUtils.filterEdges)(edges, points, true);
134
+ var renderEdges = function renderEdges(filteredEdges, mapRef, edgesCheckbox, props) {
135
+ return mapRef.current !== null && edgesCheckbox && /*#__PURE__*/_react.default.createElement(_Edges.default, Object.assign({
136
+ edges: filteredEdges,
137
+ map: mapRef.current
138
+ }, props));
139
+ };
140
+ var memoizedEdges = (0, _react.useMemo)(function () {
141
+ var monitoredEdges = (0, _MapUtils.filterEdges)(edges, points, true);
107
142
  return renderEdges(monitoredEdges, mapRef, edgesCheckbox, {
108
- L,
109
- points,
110
- hideEdges,
143
+ L: L,
144
+ points: points,
145
+ hideEdges: hideEdges,
111
146
  hideArrows: true,
112
147
  allowUnmonitoredDescendants: includeUnmonitoredDescendantsForEdges,
113
148
  group: monitoredEdgesGroup
114
149
  });
115
150
  }, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
116
- const memoizedUnmonitoredEdges = (0, _react.useMemo)(() => {
117
- const unmonitoredEdges = (0, _MapUtils.filterEdges)(edges, points, false);
151
+ var memoizedUnmonitoredEdges = (0, _react.useMemo)(function () {
152
+ var unmonitoredEdges = (0, _MapUtils.filterEdges)(edges, points, false);
118
153
  return renderEdges(unmonitoredEdges, mapRef, edgesCheckbox, {
119
- L,
120
- points,
121
- hideEdges,
154
+ L: L,
155
+ points: points,
156
+ hideEdges: hideEdges,
122
157
  hideArrows: true,
123
158
  allowUnmonitoredDescendants: includeUnmonitoredDescendantsForEdges,
124
159
  group: unmonitoredEdgesGroup,
125
160
  shouldntDraw: hiddenUnmonitoredEdgesGroup.getLayers().length !== 0
126
161
  });
127
162
  }, [mapRef.current, points, focusedEventPresent, mapZoomLevel]);
128
- const handleEdgesCheckboxChange = isChecked => {
163
+ var handleEdgesCheckboxChange = function handleEdgesCheckboxChange(isChecked) {
129
164
  setEdgesCheckbox(isChecked);
130
165
  };
131
- const handlePointsCheckboxChange = isChecked => {
132
- let zoom = _MapUtils.zoomLevels[mapRef.current.getZoom()];
133
- if (isChecked) {
134
- hiddenFactoriesClusterGroup.addLayer(unmonitoredFactoriesClusterGroup);
135
- unmonitoredFactoriesClusterGroup.clearLayers();
136
- hiddenUnmonitoredEdgesGroup.removeFrom(mapRef.current);
137
- hiddenUnmonitoredEdgesGroup.clearLayers();
138
- hiddenUnmonitoredEdgesGroup.addLayer(unmonitoredEdgesGroup);
139
- unmonitoredEdgesGroup.removeFrom(mapRef.current);
140
- } else {
141
- unmonitoredFactoriesClusterGroup.addLayer(hiddenFactoriesClusterGroup);
142
- hiddenFactoriesClusterGroup.clearLayers();
143
- if (zoom === 'Medium' || zoom === 'Small') {
144
- unmonitoredEdgesGroup.addLayer(hiddenUnmonitoredEdgesGroup);
166
+ var handlePointsCheckboxChange = function handlePointsCheckboxChange(isChecked) {
167
+ if (mapRef.current !== null) {
168
+ var zoom = _MapUtils.zoomLevels[mapRef.current.getZoom()];
169
+ if (isChecked) {
170
+ hiddenFactoriesClusterGroup.addLayer(unmonitoredFactoriesClusterGroup);
171
+ unmonitoredFactoriesClusterGroup.clearLayers();
145
172
  hiddenUnmonitoredEdgesGroup.removeFrom(mapRef.current);
146
173
  hiddenUnmonitoredEdgesGroup.clearLayers();
147
- unmonitoredEdgesGroup.addTo(mapRef.current);
174
+ hiddenUnmonitoredEdgesGroup.addLayer(unmonitoredEdgesGroup);
175
+ unmonitoredEdgesGroup.removeFrom(mapRef.current);
176
+ } else {
177
+ unmonitoredFactoriesClusterGroup.addLayer(hiddenFactoriesClusterGroup);
178
+ hiddenFactoriesClusterGroup.clearLayers();
179
+ if (zoom === 'Medium' || zoom === 'Small') {
180
+ unmonitoredEdgesGroup.addLayer(hiddenUnmonitoredEdgesGroup);
181
+ hiddenUnmonitoredEdgesGroup.removeFrom(mapRef.current);
182
+ hiddenUnmonitoredEdgesGroup.clearLayers();
183
+ unmonitoredEdgesGroup.addTo(mapRef.current);
184
+ }
148
185
  }
149
186
  }
150
187
  };
151
- const trackLayerbox = () => {
188
+ var trackLayerbox = function trackLayerbox() {
152
189
  (0, _MapUtils.setupCheckboxListener)('#edges-checkbox', handleEdgesCheckboxChange);
153
190
  (0, _MapUtils.setupCheckboxListener)('#monitored-points-checkbox', handlePointsCheckboxChange);
154
191
  };
155
- const zoomRulesForEventsView = () => {
156
- const payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEdges, memoizedUnmonitoredEdges, memoizedUnmonitoredPoints, memoizedMonitoredPoints);
192
+ var zoomRulesForEventsView = function zoomRulesForEventsView() {
193
+ var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEdges, memoizedUnmonitoredEdges, memoizedUnmonitoredPoints, memoizedMonitoredPoints);
157
194
  return payload;
158
195
  };
159
- const zoomRulesForDashaboardMaps = () => {
160
- let payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedUnmonitoredPoints, " ", memoizedMonitoredPoints);
196
+ var zoomRulesForDashaboardMaps = function zoomRulesForDashaboardMaps() {
197
+ var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedUnmonitoredPoints, " ", memoizedMonitoredPoints);
161
198
  switch (_MapUtils.zoomLevels[mapZoomLevel]) {
162
199
  case 'Small':
163
200
  case 'Medium':
@@ -173,12 +210,12 @@ const Map = _ref => {
173
210
 
174
211
  return payload;
175
212
  };
176
- const memoizedZoomControl = (0, _react.useMemo)(() => {
177
- const payload = forEventsView ? zoomRulesForEventsView() : zoomRulesForDashaboardMaps();
213
+ var memoizedZoomControl = (0, _react.useMemo)(function () {
214
+ var payload = forEventsView ? zoomRulesForEventsView() : zoomRulesForDashaboardMaps();
178
215
  document.querySelector('#monitored-points-checkbox') != null && handlePointsCheckboxChange(document.querySelector('#monitored-points-checkbox').checked);
179
216
  return payload;
180
217
  }, [mapZoomLevel, eventsData.isFetching, focusedEvent, hoveredEvent, points, mapRef.current, edgesCheckbox, unmonitoredEdgesGroup]);
181
- const memoizedEvent = (0, _react.useMemo)(() => {
218
+ var memoizedEvent = (0, _react.useMemo)(function () {
182
219
  if (focusedEventPresent) {
183
220
  focusedEvent.focused = focusedEventPresent;
184
221
  focusedEvent.hovered = !focusedEventPresent;
@@ -196,14 +233,14 @@ const Map = _ref => {
196
233
  includeNetwork: !hoveredEventPresent
197
234
  });
198
235
  }, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
199
- (0, _react.useEffect)(() => {
236
+ (0, _react.useEffect)(function () {
200
237
  return function cleanup() {
201
238
  var _mapRef$current;
202
239
  collectorsLayerGroup.clearLayers();
203
240
  (_mapRef$current = mapRef.current) === null || _mapRef$current === void 0 ? void 0 : _mapRef$current.removeLayer(collectorsLayerGroup);
204
241
  };
205
242
  }, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
206
- (0, _react.useEffect)(() => {
243
+ (0, _react.useEffect)(function () {
207
244
  (0, _MapUtils.initializeMap)(mapZoomLevel, mapBoxStyle, _theme.leafletMap.satellite, mapRef, dispatch, _MapUtils.isValidArea, areaToCenterBy, setMapZoomLevel, forWWTPDashboard, true, global_data.waterAuthorityId);
208
245
  return function cleanup() {
209
246
  // factoriesClusterGroup.clearLayers();
@@ -219,22 +256,24 @@ const Map = _ref => {
219
256
  // dispatch(storeMap(undefined));
220
257
  };
221
258
  }, [global_data.waterAuthorityId]);
222
- (0, _react.useEffect)(() => {
259
+ (0, _react.useEffect)(function () {
223
260
  if (!mapRef.current) {
224
261
  (0, _MapUtils.initializeMap)(mapZoomLevel, mapBoxStyle, _theme.leafletMap.satellite, mapRef, dispatch, _MapUtils.isValidArea, areaToCenterBy, setMapZoomLevel, true, global_data.waterAuthorityId);
225
262
  } else {
226
263
  setMapZoomLevel(mapRef.current.getZoom());
227
264
  if (!areaToCenterBy) {
228
- areaToCenterBy = areas.map(area => area.shape_data).flat();
265
+ areaToCenterBy = areas.map(function (area) {
266
+ return area.shape_data;
267
+ }).flat();
229
268
  }
230
269
  (0, _MapUtils.areaFocusLogic)(mapRef, _MapUtils.isValidArea, areaToCenterBy);
231
270
  trackLayerbox();
232
271
  }
233
272
  }, [mapRef.current, areaToCenterBy]);
234
- (0, _react.useEffect)(() => {
273
+ (0, _react.useEffect)(function () {
235
274
  var _mapRef$current2;
236
- let clicked = false;
237
- (_mapRef$current2 = mapRef.current) === null || _mapRef$current2 === void 0 ? void 0 : _mapRef$current2.eachLayer(layer => {
275
+ var clicked = false;
276
+ (_mapRef$current2 = mapRef.current) === null || _mapRef$current2 === void 0 ? void 0 : _mapRef$current2.eachLayer(function (layer) {
238
277
  if (clicked) return;
239
278
  if ((layer === null || layer === void 0 ? void 0 : layer.kando_object_id) === selectedItem && layer.isPopupOpen() === false) {
240
279
  if (layer instanceof L.Marker) {
@@ -250,7 +289,7 @@ const Map = _ref => {
250
289
  className: "kd-map-container",
251
290
  style: style
252
291
  }, /*#__PURE__*/_react.default.createElement("div", {
253
- className: ` map-container ${global_data.sidenavExpanded ? '' : 'map-container--sidenav-collapsed'}`
292
+ className: " map-container ".concat(global_data.sidenavExpanded ? '' : 'map-container--sidenav-collapsed')
254
293
  }, /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement("div", {
255
294
  id: "map"
256
295
  }), (0, _MapUtils.shouldLoadMapObjects)(global_data, mapRef, edges, points) && /*#__PURE__*/_react.default.createElement(_AreaPolygons.AreaPolygons, {
@@ -265,4 +304,4 @@ const Map = _ref => {
265
304
  }), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent, memoizedZoomControl, children))));
266
305
  };
267
306
  exports.Map = Map;
268
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJoaWRlRWRnZXMiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzIiwiZm9yRXZlbnRzVmlldyIsInN0eWxlIiwiZm9yV1dUUERhc2hib2FyZCIsIm1hcCIsIm1hcFJlZiIsInVzZVJlZiIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJtYXBab29tTGV2ZWwiLCJzZXRNYXBab29tTGV2ZWwiLCJ1c2VTdGF0ZSIsInNlbGVjdGVkSXRlbSIsInVzZVNlbGVjdGVkSXRlbSIsImV2ZW50c0RhdGEiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJob3ZlcmVkRXZlbnRQcmVzZW50IiwidXNlTWVtbyIsInVuZGVmaW5lZCIsImZvY3VzZWRFdmVudFByZXNlbnQiLCJoaWRkZW5GYWN0b3JpZXNDbHVzdGVyR3JvdXAiLCJ3aW5kb3ciLCJjdXN0b21MZWFmbGV0IiwibWFya2VyQ2x1c3Rlckdyb3VwIiwiY2x1c3Rlckdyb3VwT3B0aW9ucyIsInVubW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwIiwibW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwIiwidW5tb25pdG9yZWRFZGdlc0dyb3VwIiwibGF5ZXJHcm91cCIsImhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cCIsIm1vbml0b3JlZEVkZ2VzR3JvdXAiLCJ3d3Rwc0xheWVyR3JvdXAiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsImFyZWFzTGF5ZXJHcm91cCIsIkZlYXR1cmVHcm91cCIsImVkZ2VzQ2hlY2tib3giLCJzZXRFZGdlc0NoZWNrYm94IiwicmVuZGVyUG9pbnRNYXJrZXJzIiwiZmlsdGVyZWRQb2ludHMiLCJwcm9wcyIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwiUG9pbnRNYXJrZXJzIiwiYXNzaWduIiwibWVtb2l6ZWRNb25pdG9yZWRQb2ludHMiLCJtb25pdG9yZWRQb2ludHMiLCJmaWx0ZXJQb2ludHMiLCJyZXJlbmRlciIsInpvb21MZXZlbHMiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzIiwidW5tb25pdG9yZWRQb2ludHMiLCJyZW5kZXJFZGdlcyIsImZpbHRlcmVkRWRnZXMiLCJtZW1vaXplZEVkZ2VzIiwibW9uaXRvcmVkRWRnZXMiLCJmaWx0ZXJFZGdlcyIsImhpZGVBcnJvd3MiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJncm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRFZGdlcyIsInVubW9uaXRvcmVkRWRnZXMiLCJzaG91bGRudERyYXciLCJnZXRMYXllcnMiLCJsZW5ndGgiLCJoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlIiwiaXNDaGVja2VkIiwiaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UiLCJ6b29tIiwiZ2V0Wm9vbSIsImFkZExheWVyIiwiY2xlYXJMYXllcnMiLCJyZW1vdmVGcm9tIiwiYWRkVG8iLCJ0cmFja0xheWVyYm94Iiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNoZWNrZWQiLCJpc0ZldGNoaW5nIiwibWVtb2l6ZWRFdmVudCIsImZvY3VzZWQiLCJob3ZlcmVkIiwiRXZlbnQiLCJldmVudCIsImluY2x1ZGVOZXR3b3JrIiwiZXZlbnRGaWx0ZXJQYXJhbSIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJfbWFwUmVmJGN1cnJlbnQiLCJyZW1vdmVMYXllciIsImluaXRpYWxpemVNYXAiLCJzYXRlbGxpdGUiLCJpc1ZhbGlkQXJlYSIsIndhdGVyQXV0aG9yaXR5SWQiLCJyZW1vdmUiLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudDIiLCJjbGlja2VkIiwiZWFjaExheWVyIiwibGF5ZXIiLCJrYW5kb19vYmplY3RfaWQiLCJpc1BvcHVwT3BlbiIsIk1hcmtlciIsImZpcmUiLCJQb2x5Z29uIiwiY2xhc3NOYW1lIiwic2lkZW5hdkV4cGFuZGVkIiwiaWQiLCJzaG91bGRMb2FkTWFwT2JqZWN0cyIsIkFyZWFQb2x5Z29ucyIsIm1hcFpvb20iLCJmZWF0dXJlR3JvdXAiLCJzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENTU1Byb3BlcnRpZXMsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuLy8gaW1wb3J0IHsgc3RvcmVNYXAgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdzcmMvdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgQXJlYVBvbHlnb25zIH0gZnJvbSAnLi9hcmVhcy9BcmVhUG9seWdvbnMnO1xuaW1wb3J0IEVkZ2VzIGZyb20gJy4vZWRnZXMvRWRnZXMnO1xuaW1wb3J0ICcuL01hcC5zY3NzJztcbmltcG9ydCAnLi9wb2ludHMvUG9pbnRJY29uLnNjc3MnO1xuaW1wb3J0IHsgUG9pbnRNYXJrZXJzIH0gZnJvbSAnLi9wb2ludHMvUG9pbnRNYXJrZXJzJztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyBFdmVudCB9IGZyb20gJy4vZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7XG4gIGFyZWFGb2N1c0xvZ2ljLFxuICBjbHVzdGVyR3JvdXBPcHRpb25zLFxuICBmaWx0ZXJFZGdlcyxcbiAgZmlsdGVyUG9pbnRzLFxuICBpbml0aWFsaXplTWFwLFxuICBpc1ZhbGlkQXJlYSxcbiAgc2V0dXBDaGVja2JveExpc3RlbmVyLFxuICBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzLFxuICBzaG91bGRMb2FkTWFwT2JqZWN0cyxcbiAgem9vbUxldmVscyxcbn0gZnJvbSAnLi9NYXBVdGlscyc7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvTGlzdENvbnRleHQnO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIGNvbnN0IFtoaWRkZW5GYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKGNsdXN0ZXJHcm91cE9wdGlvbnMpLFxuICApO1xuICBjb25zdCBbdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKGNsdXN0ZXJHcm91cE9wdGlvbnMpLFxuICApO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwXSA9IHVzZVN0YXRlKFxuICAgIHdpbmRvdy5jdXN0b21MZWFmbGV0Lm1hcmtlckNsdXN0ZXJHcm91cChjbHVzdGVyR3JvdXBPcHRpb25zKSxcbiAgKTtcblxuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2hpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFttb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3d3dHBzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFtjb2xsZWN0b3JzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFthcmVhc0xheWVyR3JvdXBdID0gdXNlU3RhdGUobmV3IEwuRmVhdHVyZUdyb3VwKCkpO1xuICBjb25zdCBbZWRnZXNDaGVja2JveCwgc2V0RWRnZXNDaGVja2JveF0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnMgbWFwPXttYXBSZWYuY3VycmVudH0gcG9pbnRzPXtmaWx0ZXJlZFBvaW50c30gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRNb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRQb2ludHMgPSBmaWx0ZXJQb2ludHMocG9pbnRzLCB0cnVlKTtcbiAgICByZXR1cm4gcmVuZGVyUG9pbnRNYXJrZXJzKG1vbml0b3JlZFBvaW50cywgbWFwUmVmLCB7XG4gICAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMsXG4gICAgICByZXJlbmRlcjogem9vbUxldmVsc1ttYXBab29tTGV2ZWxdLFxuICAgICAgZmFjdG9yaWVzR3JvdXA6IG1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3OiBmYWxzZSxcbiAgICB9KTtcbiAgfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnQsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB1bm1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyUG9pbnRNYXJrZXJzKHVubW9uaXRvcmVkUG9pbnRzLCBtYXBSZWYsIHtcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyxcbiAgICAgIHJlcmVuZGVyOiB6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0sXG4gICAgICBmYWN0b3JpZXNHcm91cDogdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAsXG4gICAgICB3d3Rwc0dyb3VwOiB3d3Rwc0xheWVyR3JvdXAsXG4gICAgICBjb2xsZWN0b3JzR3JvdXA6IGNvbGxlY3RvcnNMYXllckdyb3VwLFxuICAgICAgZm9yRXZlbnRzVmlldzogZmFsc2UsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCByZW5kZXJFZGdlcyA9IChmaWx0ZXJlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXNDaGVja2JveCAmJiAoXG4gICAgICA8RWRnZXMgZWRnZXM9e2ZpbHRlcmVkRWRnZXN9IG1hcD17bWFwUmVmLmN1cnJlbnR9IHsuLi5wcm9wc30gLz5cbiAgICApO1xuXG4gIGNvbnN0IG1lbW9pemVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIHRydWUpO1xuICAgIHJldHVybiByZW5kZXJFZGdlcyhtb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiBtb25pdG9yZWRFZGdlc0dyb3VwLFxuICAgIH0pO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcbiAgICByZXR1cm4gcmVuZGVyRWRnZXModW5tb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgICBzaG91bGRudERyYXc6IGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cC5nZXRMYXllcnMoKS5sZW5ndGggIT09IDAsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldEVkZ2VzQ2hlY2tib3goaXNDaGVja2VkKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSA9IChpc0NoZWNrZWQpID0+IHtcbiAgICBsZXQgem9vbSA9IHpvb21MZXZlbHNbbWFwUmVmLmN1cnJlbnQuZ2V0Wm9vbSgpXTtcblxuICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgIGhpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cC5hZGRMYXllcih1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICB1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuXG4gICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRMYXllcih1bm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cC5hZGRMYXllcihoaWRkZW5GYWN0b3JpZXNDbHVzdGVyR3JvdXApO1xuICAgICAgaGlkZGVuRmFjdG9yaWVzQ2x1c3Rlckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG5cbiAgICAgIGlmICh6b29tID09PSAnTWVkaXVtJyB8fCB6b29tID09PSAnU21hbGwnKSB7XG4gICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5hZGRMYXllcihoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAuYWRkVG8obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmFja0xheWVyYm94ID0gKCkgPT4ge1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcignI2VkZ2VzLWNoZWNrYm94JywgaGFuZGxlRWRnZXNDaGVja2JveENoYW5nZSk7XG4gICAgc2V0dXBDaGVja2JveExpc3RlbmVyKFxuICAgICAgJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JyxcbiAgICAgIGhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3Qgem9vbVJ1bGVzRm9yRXZlbnRzVmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge21lbW9pemVkRWRnZXN9XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkRWRnZXN9XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICB7bWVtb2l6ZWRNb25pdG9yZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3Qgem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMgPSAoKSA9PiB7XG4gICAgbGV0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50c30ge21lbW9pemVkTW9uaXRvcmVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcbiAgICBzd2l0Y2ggKHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSkge1xuICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgY2FzZSAnTWVkaXVtJzpcbiAgICAgICAgcGF5bG9hZCA9IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBjYXNlICdNTGFyZ2UnOlxuICAgICAgLy8gY2FzZSAnTGFyZ2UnOlxuICAgICAgLy8gY2FzZSAnWExhcmdlJzpcbiAgICAgIC8vIGRlZmF1bHQ6XG4gICAgICAvLyAgIHBheWxvYWQgPSA8PnttZW1vaXplZFBvaW50c308Lz47XG4gICAgICAvLyAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gZm9yRXZlbnRzVmlld1xuICAgICAgPyB6b29tUnVsZXNGb3JFdmVudHNWaWV3KClcbiAgICAgIDogem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMoKTtcblxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JykgIT0gbnVsbCAmJlxuICAgICAgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UoXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JykuY2hlY2tlZCxcbiAgICAgICk7XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0sIFtcbiAgICBtYXBab29tTGV2ZWwsXG4gICAgZXZlbnRzRGF0YS5pc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgcG9pbnRzLFxuICAgIG1hcFJlZi5jdXJyZW50LFxuICAgIGVkZ2VzQ2hlY2tib3gsXG4gICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLFxuICBdKTtcblxuICBjb25zdCBtZW1vaXplZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGZvY3VzZWRFdmVudCEuZm9jdXNlZCA9IGZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgICBmb2N1c2VkRXZlbnQhLmhvdmVyZWQgPSAhZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoaG92ZXJlZEV2ZW50UHJlc2VudCkge1xuICAgICAgaG92ZXJlZEV2ZW50IS5ob3ZlcmVkID0gaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICAgIGhvdmVyZWRFdmVudCEuZm9jdXNlZCA9ICFob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmICghaG92ZXJlZEV2ZW50UHJlc2VudCAmJiAhZm9jdXNlZEV2ZW50UHJlc2VudCkgcmV0dXJuIDw+PC8+O1xuICAgIHJldHVybiAoXG4gICAgICA8RXZlbnRcbiAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudCEgfHwgaG92ZXJlZEV2ZW50IX1cbiAgICAgICAgbWFwPXttYXB9XG4gICAgICAgIGVkZ2VzPXtlZGdlcyF9XG4gICAgICAgIHBvaW50cz17cG9pbnRzIX1cbiAgICAgICAgaW5jbHVkZU5ldHdvcms9eyFob3ZlcmVkRXZlbnRQcmVzZW50fVxuICAgICAgLz5cbiAgICApO1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgfTtcbiAgfSwgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50LCBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbml0aWFsaXplTWFwKFxuICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgbWFwQm94U3R5bGUsXG4gICAgICBsZWFmbGV0TWFwLnNhdGVsbGl0ZSxcbiAgICAgIG1hcFJlZixcbiAgICAgIGRpc3BhdGNoLFxuICAgICAgaXNWYWxpZEFyZWEsXG4gICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgIGZvcldXVFBEYXNoYm9hcmQsXG4gICAgICB0cnVlLFxuICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICApO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBmYWN0b3JpZXNDbHVzdGVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIC8vIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIC8vIGFyZWFzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoYXJlYXNMYXllckdyb3VwKTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZSgpO1xuICAgICAgLy8gZGlzcGF0Y2goc3RvcmVNYXAodW5kZWZpbmVkKSk7XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldE1hcFpvb21MZXZlbChtYXBSZWYuY3VycmVudC5nZXRab29tKCkpO1xuICAgICAgaWYgKCFhcmVhVG9DZW50ZXJCeSkge1xuICAgICAgICBhcmVhVG9DZW50ZXJCeSA9IGFyZWFzLm1hcCgoYXJlYSkgPT4gYXJlYS5zaGFwZV9kYXRhKS5mbGF0KCk7XG4gICAgICB9XG5cbiAgICAgIGFyZWFGb2N1c0xvZ2ljKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KTtcbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9XG4gIH0sIFttYXBSZWYuY3VycmVudCwgYXJlYVRvQ2VudGVyQnldKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjbGlja2VkID0gZmFsc2U7XG5cbiAgICBtYXBSZWYuY3VycmVudD8uZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgaWYgKGNsaWNrZWQpIHJldHVybjtcblxuICAgICAgaWYgKFxuICAgICAgICBsYXllcj8ua2FuZG9fb2JqZWN0X2lkID09PSBzZWxlY3RlZEl0ZW0gJiZcbiAgICAgICAgbGF5ZXIuaXNQb3B1cE9wZW4oKSA9PT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlBvbHlnb24pIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljay1ldmVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNsaWNrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc2VsZWN0ZWRJdGVtXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPjwvZGl2PlxuICAgICAgICAgIHtzaG91bGRMb2FkTWFwT2JqZWN0cyhnbG9iYWxfZGF0YSwgbWFwUmVmLCBlZGdlcywgcG9pbnRzKSAmJiAoXG4gICAgICAgICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgICAgTD17TH1cbiAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgICAgICAgIHJlcmVuZGVyPXt6b29tTGV2ZWxzW21hcFpvb21MZXZlbF19XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMoXG4gICAgICAgICAgICBlZGdlcyxcbiAgICAgICAgICAgIGFyZWFzLFxuICAgICAgICAgICAgZ2xvYmFsX2RhdGEsXG4gICAgICAgICAgICBtYXBSZWYsXG4gICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgKSAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7bWVtb2l6ZWRFdmVudH1cbiAgICAgICAgICAgICAge21lbW9pemVkWm9vbUNvbnRyb2x9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgIDwv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
307
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTWFwIiwiX3JlZiIsImFyZWFzIiwiZWRnZXMiLCJwb2ludHMiLCJnbG9iYWxfZGF0YSIsImFyZWFUb0NlbnRlckJ5IiwiZm9jdXNlZEV2ZW50IiwiaG92ZXJlZEV2ZW50IiwiX3JlZiRoaWRlRWRnZXMiLCJoaWRlRWRnZXMiLCJfcmVmJG1hcEJveFN0eWxlIiwibWFwQm94U3R5bGUiLCJsZWFmbGV0TWFwIiwibWFwRGVmYXVsdCIsImNoaWxkcmVuIiwiX3JlZiRpbmNsdWRlVW5tb25pdG9yIiwiaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzIiwiX3JlZiRpbmNsdWRlVW5tb25pdG9yMiIsImluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMiLCJfcmVmJGZvckV2ZW50c1ZpZXciLCJmb3JFdmVudHNWaWV3IiwiX3JlZiRzdHlsZSIsInN0eWxlIiwiX3JlZiRmb3JXV1RQRGFzaGJvYXJkIiwiZm9yV1dUUERhc2hib2FyZCIsIm1hcCIsIm1hcFJlZiIsInVzZVJlZiIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJtYXBab29tTGV2ZWwiLCJzZXRNYXBab29tTGV2ZWwiLCJfdXNlU2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwic2VsZWN0ZWRJdGVtIiwiZXZlbnRzRGF0YSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsIl91c2VTdGF0ZTMiLCJ3aW5kb3ciLCJjdXN0b21MZWFmbGV0IiwibWFya2VyQ2x1c3Rlckdyb3VwIiwiY2x1c3Rlckdyb3VwT3B0aW9ucyIsIl91c2VTdGF0ZTQiLCJoaWRkZW5GYWN0b3JpZXNDbHVzdGVyR3JvdXAiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInVubW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJtb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAiLCJfdXNlU3RhdGU5IiwibGF5ZXJHcm91cCIsIl91c2VTdGF0ZTEwIiwidW5tb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cCIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJtb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTE3IiwiX3VzZVN0YXRlMTgiLCJjb2xsZWN0b3JzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTE5IiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMjAiLCJhcmVhc0xheWVyR3JvdXAiLCJfdXNlU3RhdGUyMSIsIl91c2VTdGF0ZTIyIiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJyZW5kZXJQb2ludE1hcmtlcnMiLCJmaWx0ZXJlZFBvaW50cyIsInByb3BzIiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJQb2ludE1hcmtlcnMiLCJhc3NpZ24iLCJtZW1vaXplZE1vbml0b3JlZFBvaW50cyIsIm1vbml0b3JlZFBvaW50cyIsImZpbHRlclBvaW50cyIsInJlcmVuZGVyIiwiem9vbUxldmVscyIsImZhY3Rvcmllc0dyb3VwIiwid3d0cHNHcm91cCIsImNvbGxlY3RvcnNHcm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMiLCJ1bm1vbml0b3JlZFBvaW50cyIsInJlbmRlckVkZ2VzIiwiZmlsdGVyZWRFZGdlcyIsIm1lbW9pemVkRWRnZXMiLCJtb25pdG9yZWRFZGdlcyIsImZpbHRlckVkZ2VzIiwiaGlkZUFycm93cyIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsImdyb3VwIiwibWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzIiwidW5tb25pdG9yZWRFZGdlcyIsInNob3VsZG50RHJhdyIsImdldExheWVycyIsImxlbmd0aCIsImhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UiLCJpc0NoZWNrZWQiLCJoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSIsInpvb20iLCJnZXRab29tIiwiYWRkTGF5ZXIiLCJjbGVhckxheWVycyIsInJlbW92ZUZyb20iLCJhZGRUbyIsInRyYWNrTGF5ZXJib3giLCJzZXR1cENoZWNrYm94TGlzdGVuZXIiLCJ6b29tUnVsZXNGb3JFdmVudHNWaWV3IiwicGF5bG9hZCIsIkZyYWdtZW50Iiwiem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMiLCJtZW1vaXplZFpvb21Db250cm9sIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2hlY2tlZCIsImlzRmV0Y2hpbmciLCJtZW1vaXplZEV2ZW50IiwiZm9jdXNlZCIsImhvdmVyZWQiLCJFdmVudCIsImV2ZW50IiwiaW5jbHVkZU5ldHdvcmsiLCJldmVudEZpbHRlclBhcmFtIiwidXNlRWZmZWN0IiwiY2xlYW51cCIsIl9tYXBSZWYkY3VycmVudCIsInJlbW92ZUxheWVyIiwiaW5pdGlhbGl6ZU1hcCIsInNhdGVsbGl0ZSIsImlzVmFsaWRBcmVhIiwid2F0ZXJBdXRob3JpdHlJZCIsInJlbW92ZSIsImFyZWEiLCJzaGFwZV9kYXRhIiwiZmxhdCIsImFyZWFGb2N1c0xvZ2ljIiwiX21hcFJlZiRjdXJyZW50MiIsImNsaWNrZWQiLCJlYWNoTGF5ZXIiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlzUG9wdXBPcGVuIiwiTWFya2VyIiwiZmlyZSIsIlBvbHlnb24iLCJjbGFzc05hbWUiLCJjb25jYXQiLCJzaWRlbmF2RXhwYW5kZWQiLCJpZCIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiQXJlYVBvbHlnb25zIiwibWFwWm9vbSIsImZlYXR1cmVHcm91cCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgJ2xlYWZsZXQubWFya2VyY2x1c3Rlcic7XG5pbXBvcnQgJ2xlYWZsZXQucGF0dGVybic7XG5pbXBvcnQgJ2xlYWZsZXQuaGVhdCc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG4vLyBpbXBvcnQgeyBzdG9yZU1hcCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgJy4vTWFwLnNjc3MnO1xuaW1wb3J0ICcuL3BvaW50cy9Qb2ludEljb24uc2Nzcyc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJy4uLy4uL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHtcbiAgYXJlYUZvY3VzTG9naWMsXG4gIGNsdXN0ZXJHcm91cE9wdGlvbnMsXG4gIGZpbHRlckVkZ2VzLFxuICBmaWx0ZXJQb2ludHMsXG4gIGluaXRpYWxpemVNYXAsXG4gIGlzVmFsaWRBcmVhLFxuICBzZXR1cENoZWNrYm94TGlzdGVuZXIsXG4gIHNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMsXG4gIHNob3VsZExvYWRNYXBPYmplY3RzLFxuICB6b29tTGV2ZWxzLFxufSBmcm9tICcuL01hcFV0aWxzJztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICcuLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRJdGVtIH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9MaXN0Q29udGV4dCc7XG5yZXF1aXJlKCdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInKTtcblxuaW50ZXJmYWNlIE1hcFByb3BzIHtcbiAgYXJlYXM6IElBcmVhW107XG4gIGVkZ2VzPzogSUVkZ2VbXTtcbiAgcG9pbnRzPzogSVBvaW50W107XG4gIGdsb2JhbF9kYXRhOiBJR2xvYmFsU3RhdGU7XG4gIGFyZWFUb0NlbnRlckJ5PzogYW55O1xuICBmb2N1c2VkRXZlbnQ/OiBJRXZlbnQgfCBudWxsO1xuICBob3ZlcmVkRXZlbnQ/OiBJRXZlbnQgfCBudWxsO1xuICBoaWRlRWRnZXM/OiBib29sZWFuO1xuICBtYXBCb3hTdHlsZT86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBhbnk7XG4gIHN0eWxlPzogQ1NTUHJvcGVydGllcztcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzPzogYm9vbGVhbjtcbiAgaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcz86IGJvb2xlYW47XG4gIGZvckV2ZW50c1ZpZXc6IGJvb2xlYW47XG4gIGZvcldXVFBEYXNoYm9hcmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTWFwOiBSZWFjdC5GQzxNYXBQcm9wcz4gPSAoe1xuICBhcmVhcyxcbiAgZWRnZXMsXG4gIHBvaW50cyxcbiAgZ2xvYmFsX2RhdGEsXG4gIGFyZWFUb0NlbnRlckJ5LFxuICBmb2N1c2VkRXZlbnQsXG4gIGhvdmVyZWRFdmVudCxcbiAgaGlkZUVkZ2VzID0gZmFsc2UsXG4gIG1hcEJveFN0eWxlID0gbGVhZmxldE1hcC5tYXBEZWZhdWx0LFxuICBjaGlsZHJlbixcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzID0gdHJ1ZSxcbiAgaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyA9IGZhbHNlLFxuICBmb3JFdmVudHNWaWV3ID0gZmFsc2UsXG4gIHN0eWxlID0ge30sXG4gIGZvcldXVFBEYXNoYm9hcmQgPSBmYWxzZSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8TC5NYXAgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBbbWFwWm9vbUxldmVsLCBzZXRNYXBab29tTGV2ZWxdID0gdXNlU3RhdGUoMik7XG4gIGNvbnN0IHsgc2VsZWN0ZWRJdGVtIH0gPSB1c2VTZWxlY3RlZEl0ZW0oKTtcbiAgY29uc3QgZXZlbnRzRGF0YSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLmV2ZW50c19kYXRhLFxuICApO1xuICBjb25zdCBob3ZlcmVkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGhvdmVyZWRFdmVudCAhPT0gbnVsbCAmJiBob3ZlcmVkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2hvdmVyZWRFdmVudF0pO1xuXG4gIGNvbnN0IGZvY3VzZWRFdmVudFByZXNlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZm9jdXNlZEV2ZW50ICE9PSBudWxsICYmIGZvY3VzZWRFdmVudCAhPT0gdW5kZWZpbmVkO1xuICB9LCBbZm9jdXNlZEV2ZW50XSk7XG5cbiAgY29uc3QgW2hpZGRlbkZhY3Rvcmllc0NsdXN0ZXJHcm91cF0gPSB1c2VTdGF0ZShcbiAgICB3aW5kb3cuY3VzdG9tTGVhZmxldC5tYXJrZXJDbHVzdGVyR3JvdXAoY2x1c3Rlckdyb3VwT3B0aW9ucyksXG4gICk7XG4gIGNvbnN0IFt1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cF0gPSB1c2VTdGF0ZShcbiAgICB3aW5kb3cuY3VzdG9tTGVhZmxldC5tYXJrZXJDbHVzdGVyR3JvdXAoY2x1c3Rlckdyb3VwT3B0aW9ucyksXG4gICk7XG4gIGNvbnN0IFttb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKGNsdXN0ZXJHcm91cE9wdGlvbnMpLFxuICApO1xuXG4gIGNvbnN0IFt1bm1vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG4gIGNvbnN0IFtlZGdlc0NoZWNrYm94LCBzZXRFZGdlc0NoZWNrYm94XSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCByZW5kZXJQb2ludE1hcmtlcnMgPSAoZmlsdGVyZWRQb2ludHMsIG1hcFJlZiwgcHJvcHMpID0+XG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBwb2ludHMgJiYgKFxuICAgICAgPFBvaW50TWFya2VycyBtYXA9e21hcFJlZi5jdXJyZW50fSBwb2ludHM9e2ZpbHRlcmVkUG9pbnRzfSB7Li4ucHJvcHN9IC8+XG4gICAgKTtcblxuICBjb25zdCBtZW1vaXplZE1vbml0b3JlZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIHRydWUpO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnMobW9uaXRvcmVkUG9pbnRzLCBtYXBSZWYsIHtcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyxcbiAgICAgIHJlcmVuZGVyOiB6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0sXG4gICAgICBmYWN0b3JpZXNHcm91cDogbW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXc6IGZhbHNlLFxuICAgIH0pO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHVubW9uaXRvcmVkUG9pbnRzID0gZmlsdGVyUG9pbnRzKHBvaW50cywgZmFsc2UpO1xuICAgIHJldHVybiByZW5kZXJQb2ludE1hcmtlcnModW5tb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiB1bm1vbml0b3JlZEZhY3Rvcmllc0NsdXN0ZXJHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3OiBmYWxzZSxcbiAgICB9KTtcbiAgfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnQsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IHJlbmRlckVkZ2VzID0gKGZpbHRlcmVkRWRnZXMsIG1hcFJlZiwgZWRnZXNDaGVja2JveCwgcHJvcHMpID0+XG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBlZGdlc0NoZWNrYm94ICYmIChcbiAgICAgIDxFZGdlcyBlZGdlcz17ZmlsdGVyZWRFZGdlc30gbWFwPXttYXBSZWYuY3VycmVudH0gey4uLnByb3BzfSAvPlxuICAgICk7XG5cbiAgY29uc3QgbWVtb2l6ZWRFZGdlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG1vbml0b3JlZEVkZ2VzID0gZmlsdGVyRWRnZXMoZWRnZXMsIHBvaW50cywgdHJ1ZSk7XG4gICAgcmV0dXJuIHJlbmRlckVkZ2VzKG1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXMsXG4gICAgICBoaWRlQXJyb3dzOiB0cnVlLFxuICAgICAgYWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzOiBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzLFxuICAgICAgZ3JvdXA6IG1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgfSk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICBjb25zdCBtZW1vaXplZFVubW9uaXRvcmVkRWRnZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB1bm1vbml0b3JlZEVkZ2VzID0gZmlsdGVyRWRnZXMoZWRnZXMsIHBvaW50cywgZmFsc2UpO1xuICAgIHJldHVybiByZW5kZXJFZGdlcyh1bm1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXMsXG4gICAgICBoaWRlQXJyb3dzOiB0cnVlLFxuICAgICAgYWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzOiBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzLFxuICAgICAgZ3JvdXA6IHVubW9uaXRvcmVkRWRnZXNHcm91cCxcbiAgICAgIHNob3VsZG50RHJhdzogaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwLmdldExheWVycygpLmxlbmd0aCAhPT0gMCxcbiAgICB9KTtcbiAgfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnQsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0RWRnZXNDaGVja2JveChpc0NoZWNrZWQpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG5cbiAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgaGlkZGVuRmFjdG9yaWVzQ2x1c3Rlckdyb3VwLmFkZExheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAuY2xlYXJMYXllcnMoKTtcblxuICAgICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGhpZGRlblVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLnJlbW92ZUZyb20obWFwUmVmLmN1cnJlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNDbHVzdGVyR3JvdXAuYWRkTGF5ZXIoaGlkZGVuRmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgICAgaGlkZGVuRmFjdG9yaWVzQ2x1c3Rlckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG5cbiAgICAgICAgaWYgKHpvb20gPT09ICdNZWRpdW0nIHx8IHpvb20gPT09ICdTbWFsbCcpIHtcbiAgICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAuYWRkTGF5ZXIoaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgICBoaWRkZW5Vbm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICAgICAgaGlkZGVuVW5tb25pdG9yZWRFZGdlc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmFja0xheWVyYm94ID0gKCkgPT4ge1xuICAgIHNldHVwQ2hlY2tib3hMaXN0ZW5lcignI2VkZ2VzLWNoZWNrYm94JywgaGFuZGxlRWRnZXNDaGVja2JveENoYW5nZSk7XG4gICAgc2V0dXBDaGVja2JveExpc3RlbmVyKFxuICAgICAgJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JyxcbiAgICAgIGhhbmRsZVBvaW50c0NoZWNrYm94Q2hhbmdlLFxuICAgICk7XG4gIH07XG5cbiAgY29uc3Qgem9vbVJ1bGVzRm9yRXZlbnRzVmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge21lbW9pemVkRWRnZXN9XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkRWRnZXN9XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICB7bWVtb2l6ZWRNb25pdG9yZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3Qgem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMgPSAoKSA9PiB7XG4gICAgbGV0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7bWVtb2l6ZWRVbm1vbml0b3JlZFBvaW50c30ge21lbW9pemVkTW9uaXRvcmVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcbiAgICBzd2l0Y2ggKHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSkge1xuICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgY2FzZSAnTWVkaXVtJzpcbiAgICAgICAgcGF5bG9hZCA9IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBjYXNlICdNTGFyZ2UnOlxuICAgICAgLy8gY2FzZSAnTGFyZ2UnOlxuICAgICAgLy8gY2FzZSAnWExhcmdlJzpcbiAgICAgIC8vIGRlZmF1bHQ6XG4gICAgICAvLyAgIHBheWxvYWQgPSA8PnttZW1vaXplZFBvaW50c308Lz47XG4gICAgICAvLyAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gZm9yRXZlbnRzVmlld1xuICAgICAgPyB6b29tUnVsZXNGb3JFdmVudHNWaWV3KClcbiAgICAgIDogem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMoKTtcblxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JykgIT0gbnVsbCAmJlxuICAgICAgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UoXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JykuY2hlY2tlZCxcbiAgICAgICk7XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0sIFtcbiAgICBtYXBab29tTGV2ZWwsXG4gICAgZXZlbnRzRGF0YS5pc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgcG9pbnRzLFxuICAgIG1hcFJlZi5jdXJyZW50LFxuICAgIGVkZ2VzQ2hlY2tib3gsXG4gICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLFxuICBdKTtcblxuICBjb25zdCBtZW1vaXplZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGZvY3VzZWRFdmVudCEuZm9jdXNlZCA9IGZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgICBmb2N1c2VkRXZlbnQhLmhvdmVyZWQgPSAhZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoaG92ZXJlZEV2ZW50UHJlc2VudCkge1xuICAgICAgaG92ZXJlZEV2ZW50IS5ob3ZlcmVkID0gaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICAgIGhvdmVyZWRFdmVudCEuZm9jdXNlZCA9ICFob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmICghaG92ZXJlZEV2ZW50UHJlc2VudCAmJiAhZm9jdXNlZEV2ZW50UHJlc2VudCkgcmV0dXJuIDw+PC8+O1xuICAgIHJldHVybiAoXG4gICAgICA8RXZlbnRcbiAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudCEgfHwgaG92ZXJlZEV2ZW50IX1cbiAgICAgICAgbWFwPXttYXB9XG4gICAgICAgIGVkZ2VzPXtlZGdlcyF9XG4gICAgICAgIHBvaW50cz17cG9pbnRzIX1cbiAgICAgICAgaW5jbHVkZU5ldHdvcms9eyFob3ZlcmVkRXZlbnRQcmVzZW50fVxuICAgICAgLz5cbiAgICApO1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgfTtcbiAgfSwgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50LCBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbml0aWFsaXplTWFwKFxuICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgbWFwQm94U3R5bGUsXG4gICAgICBsZWFmbGV0TWFwLnNhdGVsbGl0ZSxcbiAgICAgIG1hcFJlZixcbiAgICAgIGRpc3BhdGNoLFxuICAgICAgaXNWYWxpZEFyZWEsXG4gICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgIGZvcldXVFBEYXNoYm9hcmQsXG4gICAgICB0cnVlLFxuICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICApO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBmYWN0b3JpZXNDbHVzdGVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIC8vIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIC8vIGFyZWFzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoYXJlYXNMYXllckdyb3VwKTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZSgpO1xuICAgICAgLy8gZGlzcGF0Y2goc3RvcmVNYXAodW5kZWZpbmVkKSk7XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldE1hcFpvb21MZXZlbChtYXBSZWYuY3VycmVudC5nZXRab29tKCkpO1xuICAgICAgaWYgKCFhcmVhVG9DZW50ZXJCeSkge1xuICAgICAgICBhcmVhVG9DZW50ZXJCeSA9IGFyZWFzLm1hcCgoYXJlYSkgPT4gYXJlYS5zaGFwZV9kYXRhKS5mbGF0KCk7XG4gICAgICB9XG5cbiAgICAgIGFyZWFGb2N1c0xvZ2ljKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KTtcbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9XG4gIH0sIFttYXBSZWYuY3VycmVudCwgYXJlYVRvQ2VudGVyQnldKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjbGlja2VkID0gZmFsc2U7XG5cbiAgICBtYXBSZWYuY3VycmVudD8uZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgaWYgKGNsaWNrZWQpIHJldHVybjtcblxuICAgICAgaWYgKFxuICAgICAgICBsYXllcj8ua2FuZG9fb2JqZWN0X2lkID09PSBzZWxlY3RlZEl0ZW0gJiZcbiAgICAgICAgbGF5ZXIuaXNQb3B1cE9wZW4oKSA9PT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlBvbHlnb24pIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljay1ldmVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNsaWNrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc2VsZWN0ZWRJdGVtXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPjwvZGl2PlxuICAgICAgICAgIHtzaG91bGRMb2FkTWFwT2JqZWN0cyhnbG9iYWxfZGF0YSwgbWFwUmVmLCBlZGdlcywgcG9pbnRzKSAmJiAoXG4gICAgICAgICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgICAgTD17TH1cbiAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgICAgICAgIHJlcmVuZGVyPXt6b29tTGV2ZWxzW21hcFpvb21MZXZlbF19XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMoXG4gICAgICAgICAgICBlZGdlcyxcbiAgICAgICAgICAgIGFyZWFzLFxuICAgICAgICAgICAgZ2xvYmFsX2RhdGEsXG4gICAgICAgICAgICBtYXBSZWYsXG4gICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgKSAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7bWVtb2l6ZWRFdmVudH1cbiAgICAgICAgICAgICAge21lbW9pemVkWm9vbUNvbnRyb2x9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFPQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFPQSxJQUFBRyxjQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFGLHNCQUFBLENBQUFK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