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

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 (725) hide show
  1. package/lib/Router.js +40 -81
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +24 -35
  3. package/lib/Widgets/EventsRow/EventsRow.js +26 -39
  4. package/lib/Widgets/Map/GraphUtils.js +4 -6
  5. package/lib/Widgets/Map/Map.js +100 -139
  6. package/lib/Widgets/Map/MapUtils.js +83 -102
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +57 -84
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +23 -25
  9. package/lib/Widgets/Map/areas/AreaUtils.js +46 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +5 -5
  11. package/lib/Widgets/Map/edges/Edge.js +32 -41
  12. package/lib/Widgets/Map/edges/Edges.js +19 -24
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +24 -45
  14. package/lib/Widgets/Map/events/Event.js +15 -14
  15. package/lib/Widgets/Map/events/EventIndicator.js +66 -63
  16. package/lib/Widgets/Map/events/EventPath.js +33 -34
  17. package/lib/Widgets/Map/events/EventUtils.js +54 -78
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -19
  19. package/lib/Widgets/Map/events/PointOfEvent.js +27 -36
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +29 -39
  21. package/lib/Widgets/Map/events/Snail.js +10 -11
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +77 -79
  23. package/lib/Widgets/Map/map/FloatingGraph.js +24 -21
  24. package/lib/Widgets/Map/map/GraphDateButton.js +27 -20
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +14 -14
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +17 -16
  27. package/lib/Widgets/Map/points/PointIcon.js +23 -22
  28. package/lib/Widgets/Map/points/PointMarker.js +68 -88
  29. package/lib/Widgets/Map/points/PointMarkers.js +30 -36
  30. package/lib/Widgets/Map/points/PointUtils.js +76 -90
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +25 -43
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -11
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -14
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +4 -6
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +28 -60
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -4
  37. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/styles.js +4 -6
  39. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +12 -9
  40. package/lib/Widgets/MostPolluting/Factories/Factories.js +33 -65
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/CardLayout.js +15 -20
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -20
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +9 -10
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +13 -11
  45. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +4 -6
  46. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -3
  47. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  48. package/lib/Widgets/MostPolluting/Factories/styles.js +4 -6
  49. package/lib/Widgets/MostPolluting/MostPolluting.js +23 -34
  50. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +20 -32
  51. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +7 -5
  52. package/lib/Widgets/MostPolluting/ShowMore/styles.js +7 -6
  53. package/lib/Widgets/MostPolluting/assets/index.js +12 -12
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.js +20 -14
  55. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +36 -31
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +49 -54
  57. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +44 -40
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
  59. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +53 -49
  60. package/lib/Widgets/MostPolluting/models.js +1 -1
  61. package/lib/Widgets/MostPolluting/styles.js +4 -6
  62. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +8 -6
  63. package/lib/Widgets/PotentialImpactSummary/Icon.js +30 -39
  64. package/lib/Widgets/PotentialImpactSummary/index.js +20 -28
  65. package/lib/Widgets/PotentialImpactSummary/index.test.js +48 -54
  66. package/lib/Widgets/PotentialImpactSummary/styles.js +8 -13
  67. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  68. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +10 -8
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +23 -18
  70. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +34 -31
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +28 -26
  72. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -38
  73. package/lib/Widgets/QualitySummary/QualitySummary.js +10 -14
  74. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -7
  75. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  76. package/lib/Widgets/QualitySummary/styles.js +24 -21
  77. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -14
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +25 -25
  79. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +26 -21
  80. package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -36
  81. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  82. package/lib/Widgets/UtilityInformation/styles.js +30 -31
  83. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -5
  84. package/lib/assets/icons/TopNavbar/index.js +7 -7
  85. package/lib/assets/icons/TrendSvg.js +7 -7
  86. package/lib/assets/icons/index.js +16 -16
  87. package/lib/assets/icons/kandoStepper/index.js +7 -7
  88. package/lib/assets/icons/siteTypes/index.js +2 -2
  89. package/lib/components/ApplyButton/ApplyButton.js +10 -11
  90. package/lib/components/ApplyButton/index.js +3 -4
  91. package/lib/components/Backdrop/Backdrop.js +7 -5
  92. package/lib/components/ContentLoader/ContentLoader.js +12 -10
  93. package/lib/components/ContentLoader/index.js +2 -2
  94. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -12
  95. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +5 -9
  96. package/lib/components/CustomInputs/DoubleTabs/styles.js +21 -16
  97. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +12 -20
  98. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +7 -6
  99. package/lib/components/CustomInputs/Search/Search.js +37 -60
  100. package/lib/components/CustomInputs/Search/index.js +3 -4
  101. package/lib/components/CustomInputs/Select/Select.js +38 -55
  102. package/lib/components/CustomInputs/Select/Select.stories.js +6 -10
  103. package/lib/components/DamageType/DamageType.js +35 -60
  104. package/lib/components/DamageType/index.js +3 -4
  105. package/lib/components/DataLoaderError/DataLoaderError.js +9 -7
  106. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +11 -13
  107. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +72 -73
  108. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +25 -37
  109. package/lib/components/DischargeHeatmap/HighchartsOptions.js +12 -16
  110. package/lib/components/DischargeHeatmap/index.js +3 -4
  111. package/lib/components/DischargeHeatmap/mocks/handlers.js +5 -6
  112. package/lib/components/DischargeHeatmap/popupText.js +11 -12
  113. package/lib/components/DischargeHeatmap/titles.js +4 -6
  114. package/lib/components/DischargeHeatmap/types.js +1 -1
  115. package/lib/components/ErrorBoundary.js +27 -42
  116. package/lib/components/Events/Events.js +29 -48
  117. package/lib/components/Events/index.js +3 -4
  118. package/lib/components/Graph/Graph.js +74 -95
  119. package/lib/components/Graph/index.js +3 -4
  120. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +19 -24
  121. package/lib/components/Header/Breadcrumbs/index.js +3 -4
  122. package/lib/components/Header/DoubleTabs/DoubleTabs.js +18 -28
  123. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +5 -9
  124. package/lib/components/Header/DoubleTabs/styles.js +5 -8
  125. package/lib/components/Header/Header.js +3 -3
  126. package/lib/components/Header/Header.stories.js +5 -9
  127. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +24 -36
  128. package/lib/components/Header/InfoBar/InfoBar.js +69 -102
  129. package/lib/components/Header/InfoBar/Search/Control.js +11 -10
  130. package/lib/components/Header/InfoBar/Search/GroupLabel.js +8 -7
  131. package/lib/components/Header/InfoBar/Search/Search.js +17 -24
  132. package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -35
  133. package/lib/components/Header/InfoBar/Search/index.js +3 -4
  134. package/lib/components/Header/InfoBar/Search/searchStyle.js +36 -49
  135. package/lib/components/Header/InfoBar/TimeFilter.js +13 -17
  136. package/lib/components/Header/InfoBar/types.js +1 -1
  137. package/lib/components/Header/KandoNavbar/KandoNavbar.js +66 -93
  138. package/lib/components/Header/KandoNavbar/index.js +3 -4
  139. package/lib/components/Header/Slideshow/Slideshow.js +67 -91
  140. package/lib/components/Header/Slideshow/index.js +3 -4
  141. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +7 -5
  142. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +22 -24
  143. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +17 -17
  144. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +36 -42
  145. package/lib/components/Header/Toolbar/Toolbar.js +58 -76
  146. package/lib/components/InfoBar/InfoBar.js +10 -24
  147. package/lib/components/InfoBar/InfoBar.stories.js +5 -9
  148. package/lib/components/KandoModal/KandoModal.js +26 -62
  149. package/lib/components/KandoModal/index.js +3 -4
  150. package/lib/components/Link.js +9 -8
  151. package/lib/components/Links/CustomRedirect/CustomRedirect.js +10 -7
  152. package/lib/components/Links/StyledLink/StyledLink.js +17 -20
  153. package/lib/components/Links/StyledNavLink/StyledNavLink.js +12 -10
  154. package/lib/components/LiveEvents/CarouselSlide.js +11 -10
  155. package/lib/components/LiveEvents/LiveEvents.js +7 -6
  156. package/lib/components/LiveEvents/index.js +3 -4
  157. package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -30
  158. package/lib/components/Map/Map.js +20 -25
  159. package/lib/components/Map/index.js +3 -4
  160. package/lib/components/Modal/Modal.js +10 -10
  161. package/lib/components/NarrowHeader.js +18 -32
  162. package/lib/components/PointInfo/PointInfo.js +20 -19
  163. package/lib/components/PointInfo/index.js +3 -4
  164. package/lib/components/PopupModal/PopupModal.js +13 -17
  165. package/lib/components/PopupModal/PopupModal.stories.js +17 -24
  166. package/lib/components/Sector/Sector.js +34 -40
  167. package/lib/components/Sector/Sector.test.js +24 -24
  168. package/lib/components/Sector/SectorIconsNew.js +26 -19
  169. package/lib/components/Sector/index.js +3 -4
  170. package/lib/components/Sector/sectorIcons.js +4 -5
  171. package/lib/components/SevereEvent/Eta/Eta.js +49 -54
  172. package/lib/components/SevereEvent/Eta/styles.js +11 -8
  173. package/lib/components/SevereEvent/SevereEvent.js +28 -52
  174. package/lib/components/SevereEvent/SevereEvent.scss +0 -24
  175. package/lib/components/Spinner/Spinner.js +8 -8
  176. package/lib/components/Spinner/Spinner.stories.js +6 -11
  177. package/lib/components/Spinner/index.js +3 -4
  178. package/lib/components/Spinner/styles.js +21 -16
  179. package/lib/components/Tabs/Tabs.js +18 -31
  180. package/lib/components/Tabs/Tabs.stories.js +6 -10
  181. package/lib/components/Tabs/assets/index.js +6 -6
  182. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +13 -18
  183. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +32 -45
  184. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +20 -34
  185. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +3 -4
  186. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +17 -22
  187. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -14
  188. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +3 -4
  189. package/lib/components/TimeRangeSelector/TimeRangeList.js +24 -27
  190. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -27
  191. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +26 -31
  192. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +6 -10
  193. package/lib/components/TimeRangeSelector/constants.js +3 -5
  194. package/lib/components/TimeRangeSelector/index.js +3 -4
  195. package/lib/components/Toggle/Toggle.js +11 -18
  196. package/lib/components/Toggle/index.js +3 -4
  197. package/lib/components/TrendGraph/TrendGraph.js +24 -42
  198. package/lib/components/TrendGraph/index.js +3 -4
  199. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +26 -33
  200. package/lib/components/TrendGraphNVL/index.js +3 -4
  201. package/lib/development-environment/index.js +9 -13
  202. package/lib/development-environment/mock/browser.js +2 -5
  203. package/lib/development-environment/mock/get.js +8 -10
  204. package/lib/development-environment/mock/handlers.js +2 -3
  205. package/lib/development-environment/mock/mockBus.js +4 -5
  206. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -3
  207. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -3
  208. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -3
  209. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -3
  210. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -3
  211. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -3
  212. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -3
  213. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -3
  214. package/lib/development-environment/mock/mockObjects/data-search.js +2 -3
  215. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -3
  216. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -3
  217. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -3
  218. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -3
  219. package/lib/development-environment/mock/mockObjects/metascore.js +2 -3
  220. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -3
  221. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -3
  222. package/lib/development-environment/mock/mockObjects/site-info.js +2 -3
  223. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -3
  224. package/lib/development-environment/togly/ToglyDashboard.js +13 -23
  225. package/lib/development-environment/togly/ToglyItem.js +24 -31
  226. package/lib/development-environment/togly/flags.js +1 -1
  227. package/lib/development-environment/togly/init.js +4 -4
  228. package/lib/development-environment/togly/macro.js +13 -9
  229. package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
  230. package/lib/development-environment/togly/useLocalStorage.js +13 -18
  231. package/lib/hooks/useApi.js +20 -56
  232. package/lib/hooks/useApiWithDashboardQuery.js +23 -43
  233. package/lib/hooks/useClickOutside.js +4 -5
  234. package/lib/hooks/useInitializeHeaders.js +6 -6
  235. package/lib/hooks/useKandoFetch.js +17 -31
  236. package/lib/hooks/useMap.js +25 -37
  237. package/lib/hooks/useNavContext.js +22 -26
  238. package/lib/hooks/useQueryURL.js +2 -3
  239. package/lib/hooks/useRemoveExistingLayers.js +7 -8
  240. package/lib/hooks/useUpdateEventBodyTail.js +14 -19
  241. package/lib/hooks/useUserTimeZone.js +34 -31
  242. package/lib/hooks/useUserTimeZone.test.js +19 -23
  243. package/lib/hooks/useWindowSize.js +7 -14
  244. package/lib/i18n/en.json +3 -14
  245. package/lib/i18n/he.json +1 -11
  246. package/lib/index.js +11 -13
  247. package/lib/macros/getVersion.js +2 -2
  248. package/lib/models/IAction.js +1 -1
  249. package/lib/models/IAppState.js +1 -1
  250. package/lib/pages/AreaPage/AreaPage.js +34 -68
  251. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +15 -17
  252. package/lib/pages/AreaPage/Dashboard/Dashboard.js +26 -28
  253. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +14 -23
  254. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +5 -5
  255. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  256. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +10 -10
  257. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +4 -6
  258. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  259. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -3
  260. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +5 -8
  261. package/lib/pages/AssessmentPage/AssessmentPage.js +38 -46
  262. package/lib/pages/CannyWidget/Feedback.js +14 -16
  263. package/lib/pages/CovidPage/CovidPage.js +9 -16
  264. package/lib/pages/CovidPage/components/Body.js +26 -30
  265. package/lib/pages/CovidPage/components/Map.js +28 -40
  266. package/lib/pages/CovidPage/components/Sidebar.js +15 -16
  267. package/lib/pages/CovidPage/components/Summary.js +20 -29
  268. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +26 -33
  269. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +3 -4
  270. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +52 -76
  271. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +3 -4
  272. package/lib/pages/CovidPage/components/areas/Area.js +24 -36
  273. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +45 -46
  274. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -36
  275. package/lib/pages/CovidPage/components/areas/AreasList.js +29 -42
  276. package/lib/pages/CovidPage/components/areas/Sort.js +12 -17
  277. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  278. package/lib/pages/DashboardMap/AreaCard.js +27 -27
  279. package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
  280. package/lib/pages/DashboardMap/Capacity.js +28 -77
  281. package/lib/pages/DashboardMap/FactoryCard.js +28 -24
  282. package/lib/pages/DashboardMap/HighchartsOptions.js +6 -5
  283. package/lib/pages/DashboardMap/List.js +55 -65
  284. package/lib/pages/DashboardMap/ListContext.js +14 -19
  285. package/lib/pages/DashboardMap/Loader.js +3 -3
  286. package/lib/pages/DashboardMap/SeverityBadge.js +16 -24
  287. package/lib/pages/DashboardMap/WWTPMap.js +57 -71
  288. package/lib/pages/DashboardMap/WaterDischarge.js +9 -9
  289. package/lib/pages/DashboardMap/Widget.js +48 -67
  290. package/lib/pages/DashboardMap/index.js +3 -4
  291. package/lib/pages/DashboardMap/utils.js +41 -60
  292. package/lib/pages/EventsPage/Body/Body.js +15 -12
  293. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -20
  294. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +16 -27
  295. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +10 -9
  296. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +13 -10
  297. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +22 -31
  298. package/lib/pages/EventsPage/DragAndDropArea/index.js +3 -4
  299. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +30 -38
  300. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +14 -23
  301. package/lib/pages/EventsPage/EventsPage.js +10 -17
  302. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -40
  303. package/lib/pages/EventsPage/events/MoreInfo.js +18 -19
  304. package/lib/pages/EventsPage/events/Sidebar.js +14 -11
  305. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +9 -10
  306. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +19 -24
  307. package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +3 -4
  308. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +31 -38
  309. package/lib/pages/EventsPage/events/event_info/EventDetails.js +35 -33
  310. package/lib/pages/EventsPage/events/event_info/EventInfo.js +50 -60
  311. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +5 -5
  312. package/lib/pages/EventsPage/events/event_info/EventSection.js +18 -21
  313. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +29 -23
  314. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -50
  315. package/lib/pages/EventsPage/events/event_info/Header/Header.js +8 -7
  316. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -35
  317. package/lib/pages/EventsPage/events/event_info/Header/index.js +3 -4
  318. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -7
  319. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +30 -39
  320. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +6 -9
  321. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +14 -15
  322. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +9 -12
  323. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /index.js +3 -4
  324. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +23 -24
  325. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +13 -22
  326. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +7 -6
  327. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +3 -4
  328. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +13 -12
  329. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -28
  330. package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +3 -4
  331. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +13 -10
  332. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +8 -9
  333. package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +3 -4
  334. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +9 -9
  335. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +4 -5
  336. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +13 -11
  337. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +7 -5
  338. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +11 -14
  339. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +7 -6
  340. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +9 -8
  341. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +9 -8
  342. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +8 -7
  343. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +13 -12
  344. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +18 -19
  345. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +7 -7
  346. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +9 -8
  347. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +19 -18
  348. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +6 -7
  349. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +13 -12
  350. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +23 -19
  351. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +12 -11
  352. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +8 -7
  353. package/lib/pages/EventsPage/events/event_info/Timelines/index.js +3 -4
  354. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +4 -6
  355. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +25 -40
  356. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +30 -39
  357. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +13 -12
  358. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +17 -20
  359. package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -31
  360. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +22 -27
  361. package/lib/pages/EventsPage/events/event_info/styles.js +21 -15
  362. package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -21
  363. package/lib/pages/EventsPage/events/events_list/EventUtils.js +11 -11
  364. package/lib/pages/EventsPage/events/events_list/EventsList.js +111 -142
  365. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +41 -58
  366. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +90 -135
  367. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +54 -76
  368. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +39 -44
  369. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +32 -41
  370. package/lib/pages/EventsPage/events/events_list/Filter/SingleSelect.js +19 -21
  371. package/lib/pages/EventsPage/events/events_list/Sort.js +28 -39
  372. package/lib/pages/ImportFileWizard/FileUploadRespones.js +14 -22
  373. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +9 -8
  374. package/lib/pages/ImportFileWizard/ImportFile.js +21 -25
  375. package/lib/pages/ImportFileWizard/ResponseBody.js +26 -36
  376. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -23
  377. package/lib/pages/ImportFileWizard/ValidationResponse.js +23 -25
  378. package/lib/pages/ImportFileWizard/importFileUtils.js +4 -5
  379. package/lib/pages/ImportFileWizard/index.js +3 -4
  380. package/lib/pages/ImportGisPage/ImportGisContainer.js +22 -27
  381. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +38 -44
  382. package/lib/pages/ImportGisPage/importGisUtils.js +43 -52
  383. package/lib/pages/ImportGisProcess/index.js +14 -18
  384. package/lib/pages/ImportSiteProcess/index.js +14 -18
  385. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -13
  386. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +18 -20
  387. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +4 -4
  388. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +28 -60
  389. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -12
  390. package/lib/pages/NotificationsPage/Notification/Notification.js +17 -13
  391. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  392. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -3
  393. package/lib/pages/NotificationsPage/Notifications.stories.js +6 -10
  394. package/lib/pages/NotificationsPage/NotificationsPage.js +19 -38
  395. package/lib/pages/NotificationsPage/assets/index.js +10 -10
  396. package/lib/pages/NotificationsPageV2/NotificationsPage.js +72 -101
  397. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +95 -65
  398. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +13 -15
  399. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +19 -17
  400. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +18 -22
  401. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +18 -22
  402. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +19 -23
  403. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +82 -71
  404. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +19 -23
  405. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +71 -74
  406. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +80 -94
  407. package/lib/pages/NotificationsPageV2/notificationUtils.js +40 -39
  408. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  409. package/lib/pages/OldSitePage/OldSitePage.js +56 -132
  410. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +6 -10
  411. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -9
  412. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -7
  413. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +16 -19
  414. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +10 -12
  415. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -19
  416. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +14 -11
  417. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -9
  418. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -16
  419. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -64
  420. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +10 -8
  421. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -54
  422. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -7
  423. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -19
  424. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  425. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -12
  426. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +27 -23
  427. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +28 -30
  428. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  429. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +5 -8
  430. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +16 -12
  431. package/lib/pages/OperationsPage/LeftPanel.js +35 -55
  432. package/lib/pages/OperationsPage/Map/Map.js +12 -12
  433. package/lib/pages/OperationsPage/Map/useMap.js +52 -64
  434. package/lib/pages/OperationsPage/OperationsContainerPage.js +32 -59
  435. package/lib/pages/OperationsPage/OperationsFilePage.js +10 -12
  436. package/lib/pages/OperationsPage/OperationsUtilityPage.js +5 -6
  437. package/lib/pages/OperationsPage/RightPanel.js +22 -25
  438. package/lib/pages/OperationsPage/index.js +4 -4
  439. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +27 -60
  440. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +19 -25
  441. package/lib/pages/PollutionRiskAssessment/FilterButton.js +11 -10
  442. package/lib/pages/PollutionRiskAssessment/Map.js +38 -42
  443. package/lib/pages/PollutionRiskAssessment/SearchButton.js +11 -10
  444. package/lib/pages/PollutionRiskAssessment/SearchField.js +26 -40
  445. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +16 -16
  446. package/lib/pages/PollutionRiskAssessment/UseCases.js +32 -34
  447. package/lib/pages/PollutionRiskAssessment/index.js +76 -136
  448. package/lib/pages/PollutionRiskAssessment/useMap.js +34 -50
  449. package/lib/pages/PollutionRiskAssessment/utils.js +7 -7
  450. package/lib/pages/ProfilePage/Container.js +3 -4
  451. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +23 -40
  452. package/lib/pages/ProfilePage/ProfilePage.js +106 -205
  453. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -34
  454. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +20 -20
  455. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +27 -30
  456. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -119
  457. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +18 -23
  458. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +14 -13
  459. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +40 -45
  460. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -24
  461. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +18 -19
  462. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +15 -18
  463. package/lib/pages/SamplingsPage/DesktopActions/index.js +3 -4
  464. package/lib/pages/SamplingsPage/NavigationDropdown.js +43 -31
  465. package/lib/pages/SamplingsPage/NewSamplingAction.js +75 -102
  466. package/lib/pages/SamplingsPage/SamplingMobileModal.js +124 -98
  467. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +23 -25
  468. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +36 -25
  469. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -61
  470. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +16 -21
  471. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +10 -9
  472. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +108 -193
  473. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +47 -54
  474. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +42 -39
  475. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +42 -39
  476. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +21 -28
  477. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +4 -6
  478. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +11 -7
  479. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +51 -53
  480. package/lib/pages/SamplingsPage/SamplingsMobileList.js +22 -31
  481. package/lib/pages/SamplingsPage/SamplingsPage.js +25 -33
  482. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +49 -58
  483. package/lib/pages/SamplingsPage/index.js +2 -3
  484. package/lib/pages/SamplingsPage/samplingsPageUtils.js +52 -83
  485. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +7 -6
  486. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +16 -16
  487. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +12 -16
  488. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  489. package/lib/pages/SitePage/PollutionContributor/index.js +3 -4
  490. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -9
  491. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +15 -15
  492. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +10 -9
  493. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +27 -24
  494. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +12 -16
  495. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +37 -33
  496. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +10 -12
  497. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -25
  498. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +14 -11
  499. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -9
  500. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -16
  501. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -71
  502. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +10 -8
  503. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -27
  504. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -9
  505. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -19
  506. package/lib/pages/SitePage/SamplingParameters/body/Body.js +10 -9
  507. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +30 -40
  508. package/lib/pages/SitePage/SamplingParameters/body/index.js +3 -4
  509. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -12
  510. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -12
  511. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +54 -54
  512. package/lib/pages/SitePage/SamplingParameters/dataParser.js +32 -41
  513. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
  514. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  515. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +5 -8
  516. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +16 -12
  517. package/lib/pages/SitePage/SiteInformation/EmptyState.js +13 -10
  518. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
  519. package/lib/pages/SitePage/SitePage.js +37 -77
  520. package/lib/pages/UploadLabResult/index.js +15 -16
  521. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +27 -37
  522. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +8 -13
  523. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +11 -15
  524. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +5 -9
  525. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -50
  526. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +11 -8
  527. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -5
  528. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +6 -9
  529. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +11 -10
  530. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  531. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +16 -13
  532. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +8 -8
  533. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +3 -4
  534. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +20 -30
  535. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +28 -40
  536. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +15 -17
  537. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -14
  538. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +26 -31
  539. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -9
  540. package/lib/pages/WbeDashboard/GraphWrapper.js +28 -35
  541. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +16 -19
  542. package/lib/pages/WbeDashboard/SearchInput.js +15 -21
  543. package/lib/pages/WbeDashboard/SummaryGraph.js +50 -77
  544. package/lib/pages/WbeDashboard/SummaryGraphModal.js +20 -18
  545. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  546. package/lib/pages/WbeDashboard/WbeDashboardPage.js +147 -210
  547. package/lib/pages/WbeDashboard/WbeSummaryBar.js +39 -48
  548. package/lib/pages/WwtpPage/DashboardCard.js +25 -21
  549. package/lib/pages/WwtpPage/DischargePatternCard.js +14 -25
  550. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +11 -11
  551. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +22 -22
  552. package/lib/pages/WwtpPage/InletsCard/index.js +3 -4
  553. package/lib/pages/WwtpPage/Map.js +6 -6
  554. package/lib/pages/WwtpPage/OrganicCard.js +4 -5
  555. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +4 -5
  556. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -7
  557. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +11 -11
  558. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +20 -17
  559. package/lib/pages/WwtpPage/PotentialSaving/index.js +3 -4
  560. package/lib/pages/WwtpPage/PotentialSaving/types.js +1 -1
  561. package/lib/pages/WwtpPage/PredictionCard.js +4 -5
  562. package/lib/pages/WwtpPage/TrendCard.js +20 -22
  563. package/lib/pages/WwtpPage/UpgradeBox.js +4 -5
  564. package/lib/pages/WwtpPage/WwtpPage.js +9 -8
  565. package/lib/pages/WwtpPage/WwtpPageContainer.js +23 -19
  566. package/lib/pages/WwtpPage/index.js +3 -4
  567. package/lib/providers/Slideshow/SlideshowContext.js +11 -10
  568. package/lib/providers/Slideshow/SlideshowProvider.js +22 -40
  569. package/lib/providers/Slideshow/SlideshowRunner.js +18 -21
  570. package/lib/providers/UrlHistory/UrlHistoryContext.js +7 -6
  571. package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -13
  572. package/lib/providers/UrlHistory/index.js +4 -4
  573. package/lib/providers/UrlHistory/useLastVisited.js +5 -6
  574. package/lib/react-app-env.d.js +1 -1
  575. package/lib/store/ImportGis/action.js +1 -1
  576. package/lib/store/ImportGis/actionTypes.js +4 -5
  577. package/lib/store/ImportGis/actionsCreator.js +7 -5
  578. package/lib/store/ImportGis/models/gisImports.js +1 -1
  579. package/lib/store/ImportGis/reducer.js +9 -7
  580. package/lib/store/WBE/actionTypes.js +2 -3
  581. package/lib/store/WBE/actions.js +1 -1
  582. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  583. package/lib/store/WBE/models/IWBE.js +1 -1
  584. package/lib/store/WBE/models/IWBEState.js +1 -1
  585. package/lib/store/WBE/reducer.js +10 -8
  586. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -15
  587. package/lib/store/WWTPDashboard/types.js +1 -1
  588. package/lib/store/areas/actionTypes.js +4 -7
  589. package/lib/store/areas/actions.js +7 -13
  590. package/lib/store/areas/models/IArea.js +1 -1
  591. package/lib/store/areas/models/IAreasState.js +1 -1
  592. package/lib/store/areas/reducer.js +8 -6
  593. package/lib/store/context/actionTypes.js +3 -5
  594. package/lib/store/context/actions.js +3 -3
  595. package/lib/store/context/contextMiddlewares.js +15 -18
  596. package/lib/store/context/models/INavContext.js +1 -1
  597. package/lib/store/context/models/INavContextState.js +1 -1
  598. package/lib/store/context/reducer.js +10 -8
  599. package/lib/store/dashboard/dashboardSlice.js +18 -11
  600. package/lib/store/dashboard/periodType.js +1 -1
  601. package/lib/store/edges/actionTypes.js +5 -9
  602. package/lib/store/edges/actions.js +4 -8
  603. package/lib/store/edges/models/IEdge.js +1 -1
  604. package/lib/store/edges/models/IEdgesState.js +1 -1
  605. package/lib/store/edges/reducer.js +13 -17
  606. package/lib/store/events/actionTypes.js +17 -33
  607. package/lib/store/events/actions.js +3 -7
  608. package/lib/store/events/models/IEvent.js +1 -1
  609. package/lib/store/events/models/IEventsState.js +1 -1
  610. package/lib/store/events/models/ISource.js +1 -1
  611. package/lib/store/events/reducer.js +28 -39
  612. package/lib/store/filters/IFilter.js +1 -1
  613. package/lib/store/filters/IFilterItem.js +1 -1
  614. package/lib/store/global/actionTypes.js +11 -21
  615. package/lib/store/global/actions.js +8 -6
  616. package/lib/store/global/models/IGlobalState.js +1 -1
  617. package/lib/store/global/reducer.js +9 -7
  618. package/lib/store/permissions/permissionsSlice.js +12 -9
  619. package/lib/store/points/actionTypes.js +3 -5
  620. package/lib/store/points/actions.js +6 -10
  621. package/lib/store/points/models/IGeoPoint.js +1 -1
  622. package/lib/store/points/models/IGroup.js +1 -1
  623. package/lib/store/points/models/IIssue.js +1 -1
  624. package/lib/store/points/models/IPoint.js +1 -1
  625. package/lib/store/points/models/IPointsState.js +1 -1
  626. package/lib/store/points/reducer.js +7 -5
  627. package/lib/store/rootActionTypes.js +2 -3
  628. package/lib/store/rootActions.js +1 -1
  629. package/lib/store/rootReducer.js +12 -10
  630. package/lib/store/rootStore.js +6 -6
  631. package/lib/store/samplings/action.js +1 -1
  632. package/lib/store/samplings/actionTypes.js +4 -5
  633. package/lib/store/samplings/actionsCreator.js +1 -1
  634. package/lib/store/samplings/models/Samplings.js +1 -1
  635. package/lib/store/samplings/reducer.js +10 -10
  636. package/lib/styles/StylesLayout.js +7 -6
  637. package/lib/styles/theme/theme.js +23 -26
  638. package/lib/test/mocks/browser.js +2 -5
  639. package/lib/test/test-utils.js +12 -9
  640. package/lib/ui-kit/Alert/KandoAlert.js +8 -6
  641. package/lib/ui-kit/Button/Button.js +129 -83
  642. package/lib/ui-kit/Button/Button.test.js +27 -33
  643. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  644. package/lib/ui-kit/Checkbox/Checkbox.js +34 -27
  645. package/lib/ui-kit/ContentCard/ContentCard.js +16 -20
  646. package/lib/ui-kit/Dashboard/Dashboard.js +29 -28
  647. package/lib/ui-kit/Dashboard/index.js +3 -4
  648. package/lib/ui-kit/DropDown/DropDown.js +23 -22
  649. package/lib/ui-kit/DropDown/DropDown.test.js +13 -13
  650. package/lib/ui-kit/DropDown/DropDownItem.js +26 -25
  651. package/lib/ui-kit/DropDown/DropdownToggle.js +13 -10
  652. package/lib/ui-kit/EmptyState/EmptyState.js +7 -6
  653. package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +69 -81
  654. package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +89 -167
  655. package/lib/ui-kit/HierarchyGraph/LeafSign.js +7 -7
  656. package/lib/ui-kit/HierarchyGraph/MicroStackedBar.js +17 -19
  657. package/lib/ui-kit/HierarchyGraph/NodeIcon.js +9 -8
  658. package/lib/ui-kit/HierarchyGraph/NodeLayout.js +22 -25
  659. package/lib/ui-kit/HierarchyGraph/PollutionContributorNode.js +11 -10
  660. package/lib/ui-kit/HierarchyGraph/ScoreNode.js +10 -9
  661. package/lib/ui-kit/HierarchyGraph/index.js +3 -4
  662. package/lib/ui-kit/HierarchyGraph/utils.js +57 -67
  663. package/lib/ui-kit/IconAction/IconAction.js +9 -8
  664. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +47 -64
  665. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +58 -49
  666. package/lib/ui-kit/InletsPie/InletsPie.js +17 -16
  667. package/lib/ui-kit/InletsPie/index.js +3 -4
  668. package/lib/ui-kit/InletsPie/options.js +7 -9
  669. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +29 -38
  670. package/lib/ui-kit/KandoFilter/KandoFilter.js +10 -11
  671. package/lib/ui-kit/KandoList/KandoList.js +13 -12
  672. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  673. package/lib/ui-kit/KandoTable/KandoTable.js +48 -41
  674. package/lib/ui-kit/KandoTable/KandoTable.test.js +21 -27
  675. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  676. package/lib/ui-kit/Layout/Layout.js +8 -7
  677. package/lib/ui-kit/MobileInput/MobileInput.js +56 -50
  678. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +14 -17
  679. package/lib/ui-kit/ModalConfirmation/index.js +2 -3
  680. package/lib/ui-kit/OrganicEvents/GaugeChart.js +9 -8
  681. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +8 -9
  682. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +26 -22
  683. package/lib/ui-kit/OrganicEvents/TextInfo.js +17 -13
  684. package/lib/ui-kit/OrganicEvents/index.js +3 -4
  685. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +12 -11
  686. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +17 -21
  687. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -4
  688. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +21 -24
  689. package/lib/ui-kit/ScoreGauge/constant.js +3 -4
  690. package/lib/ui-kit/ScoreGauge/index.js +3 -4
  691. package/lib/ui-kit/TimeLineChart/TrendChart.js +25 -28
  692. package/lib/ui-kit/TimeLineChart/index.js +3 -4
  693. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +10 -11
  694. package/lib/ui-kit/Tooltip/Tooltip.js +15 -9
  695. package/lib/ui-kit/index.js +8 -8
  696. package/lib/ui-kit/kandoStepper/KandoStepper.js +13 -14
  697. package/lib/ui-kit/siteName/SiteName.js +13 -11
  698. package/lib/utilities/ActionUtility.js +7 -7
  699. package/lib/utilities/Alert.js +23 -20
  700. package/lib/utilities/Analytics.js +19 -19
  701. package/lib/utilities/Array.js +4 -5
  702. package/lib/utilities/Enum.js +15 -51
  703. package/lib/utilities/ErrorBoundary.js +27 -42
  704. package/lib/utilities/File.js +45 -73
  705. package/lib/utilities/GetDir.js +10 -10
  706. package/lib/utilities/KandoDate.js +7 -15
  707. package/lib/utilities/KandoModal.js +16 -28
  708. package/lib/utilities/LocalStorage.js +5 -7
  709. package/lib/utilities/ThousandsToK.js +2 -2
  710. package/lib/utilities/TimeFormat.js +22 -23
  711. package/lib/utilities/Truncate.js +17 -27
  712. package/lib/utilities/edgesMath.js +15 -16
  713. package/lib/utilities/i18n.js +5 -6
  714. package/lib/utilities/kql.js +10 -12
  715. package/lib/utilities/map/icons.js +18 -18
  716. package/lib/utilities/polylinedecorator.js +88 -113
  717. package/lib/utilities/scoreToData.js +20 -26
  718. package/lib/utilities/scoreToData.test.js +5 -5
  719. package/lib/utilities/time.js +9 -10
  720. package/lib/utilities/uploadToS3.js +12 -12
  721. package/lib/utilities/urls.js +19 -16
  722. package/package.json +12 -9
  723. package/lib/components/SeasonalInsights/SeasonalInsights.js +0 -150
  724. package/lib/components/SevereEvent/UpstreamBadge.js +0 -60
  725. package/lib/components/TopBanner/TopBanner.js +0 -208
@@ -1,37 +1,29 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
9
  var _react = _interopRequireWildcard(require("react"));
11
10
  var _reactBootstrap = require("react-bootstrap");
12
11
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
13
12
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
14
13
  var _Sector = _interopRequireDefault(require("components/Sector"));
15
14
  var _KandoFilter = _interopRequireDefault(require("ui-kit/KandoFilter/KandoFilter"));
16
- 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); }
17
- 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; }
18
- var LeftPanel = function LeftPanel(_ref) {
19
- var points = _ref.points,
20
- selectedPoint = _ref.selectedPoint,
21
- setSelectedPoint = _ref.setSelectedPoint,
22
- _ref$onlyMonitored = _ref.onlyMonitored,
23
- onlyMonitored = _ref$onlyMonitored === void 0 ? true : _ref$onlyMonitored,
24
- filterOptions = _ref.filterOptions;
25
- var _useState = (0, _react.useState)([]),
26
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
27
- selectedFilters = _useState2[0],
28
- setSelectedFilters = _useState2[1];
29
- var _useState3 = (0, _react.useState)([]),
30
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
31
- filteredPoints = _useState4[0],
32
- setFilteredPoints = _useState4[1];
33
- var maxIssues = 3;
34
- var issuesIconColor = function issuesIconColor(length) {
15
+ const LeftPanel = _ref => {
16
+ let {
17
+ points,
18
+ selectedPoint,
19
+ setSelectedPoint,
20
+ onlyMonitored = true,
21
+ filterOptions
22
+ } = _ref;
23
+ const [selectedFilters, setSelectedFilters] = (0, _react.useState)([]);
24
+ const [filteredPoints, setFilteredPoints] = (0, _react.useState)([]);
25
+ const maxIssues = 3;
26
+ const issuesIconColor = length => {
35
27
  if (length % maxIssues === 0) {
36
28
  return 'icon-red';
37
29
  } else if (length % maxIssues === 2) {
@@ -40,8 +32,8 @@ var LeftPanel = function LeftPanel(_ref) {
40
32
  return 'icon-yellow';
41
33
  }
42
34
  };
43
- var showIssues = function showIssues(point) {
44
- var issuesLength = point === null || point === void 0 ? void 0 : point.issues.length;
35
+ const showIssues = point => {
36
+ const issuesLength = point === null || point === void 0 ? void 0 : point.issues.length;
45
37
  if (issuesLength > 0) {
46
38
  return /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
47
39
  icon: _freeSolidSvgIcons.faExclamationTriangle,
@@ -50,23 +42,16 @@ var LeftPanel = function LeftPanel(_ref) {
50
42
  }
51
43
  return '';
52
44
  };
53
- var sortedPoints = points.sort(function (a, b) {
54
- return b.issues.length - a.issues.length;
55
- });
56
- (0, _react.useEffect)(function () {
45
+ const sortedPoints = points.sort((a, b) => b.issues.length - a.issues.length);
46
+ (0, _react.useEffect)(() => {
57
47
  setFilteredPoints(sortedPoints);
58
48
  }, [sortedPoints]);
59
- (0, _react.useEffect)(function () {
60
- var filteredPoints = sortedPoints.filter(function (point) {
49
+ (0, _react.useEffect)(() => {
50
+ const filteredPoints = sortedPoints.filter(point => {
61
51
  if (selectedFilters.length === 0) {
62
52
  return true; // Show all points if no filters are selected
63
53
  }
64
-
65
- return selectedFilters.some(function (filter) {
66
- return point.issues.some(function (issue) {
67
- return issue.type === filter.value;
68
- });
69
- });
54
+ return selectedFilters.some(filter => point.issues.some(issue => issue.type === filter.value));
70
55
  });
71
56
  setFilteredPoints(filteredPoints);
72
57
  }, [selectedFilters]);
@@ -80,23 +65,18 @@ var LeftPanel = function LeftPanel(_ref) {
80
65
  setSelectedFilters: setSelectedFilters
81
66
  }))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Row, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, null, /*#__PURE__*/_react.default.createElement("div", {
82
67
  className: "scrollable-list"
83
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, points.length > 0 && filteredPoints.map(function (point) {
84
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
85
- className: (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id) === point.id ? 'list-item list-item-selected' : 'list-item',
86
- key: point.id,
87
- onClick: function onClick() {
88
- return setSelectedPoint(point);
89
- }
90
- }, /*#__PURE__*/_react.default.createElement("div", {
91
- className: "item-content"
92
- }, /*#__PURE__*/_react.default.createElement(_Sector.default, {
93
- sectorIconName: point.group.sector_icon_name,
94
- sectorName: point.group.sector_name,
95
- showLabel: false,
96
- withTooltip: true
97
- }), /*#__PURE__*/_react.default.createElement("span", null, point.name)), showIssues(point));
98
- }))))));
68
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, points.length > 0 && filteredPoints.map(point => /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
69
+ className: (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id) === point.id ? 'list-item list-item-selected' : 'list-item',
70
+ key: point.id,
71
+ onClick: () => setSelectedPoint(point)
72
+ }, /*#__PURE__*/_react.default.createElement("div", {
73
+ className: "item-content"
74
+ }, /*#__PURE__*/_react.default.createElement(_Sector.default, {
75
+ sectorIconName: point.group.sector_icon_name,
76
+ sectorName: point.group.sector_name,
77
+ showLabel: false,
78
+ withTooltip: true
79
+ }), /*#__PURE__*/_react.default.createElement("span", null, point.name)), showIssues(point))))))));
99
80
  };
100
- var _default = LeftPanel;
101
- exports.default = _default;
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfcmVhY3RGb250YXdlc29tZSIsIl9mcmVlU29saWRTdmdJY29ucyIsIl9TZWN0b3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0thbmRvRmlsdGVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJMZWZ0UGFuZWwiLCJfcmVmIiwicG9pbnRzIiwic2VsZWN0ZWRQb2ludCIsInNldFNlbGVjdGVkUG9pbnQiLCJfcmVmJG9ubHlNb25pdG9yZWQiLCJvbmx5TW9uaXRvcmVkIiwiZmlsdGVyT3B0aW9ucyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNlbGVjdGVkRmlsdGVycyIsInNldFNlbGVjdGVkRmlsdGVycyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZmlsdGVyZWRQb2ludHMiLCJzZXRGaWx0ZXJlZFBvaW50cyIsIm1heElzc3VlcyIsImlzc3Vlc0ljb25Db2xvciIsImxlbmd0aCIsInNob3dJc3N1ZXMiLCJwb2ludCIsImlzc3Vlc0xlbmd0aCIsImlzc3VlcyIsImNyZWF0ZUVsZW1lbnQiLCJGb250QXdlc29tZUljb24iLCJpY29uIiwiZmFFeGNsYW1hdGlvblRyaWFuZ2xlIiwiY2xhc3NOYW1lIiwic29ydGVkUG9pbnRzIiwic29ydCIsImEiLCJiIiwidXNlRWZmZWN0IiwiZmlsdGVyIiwic29tZSIsImlzc3VlIiwidHlwZSIsInZhbHVlIiwiQ29udGFpbmVyIiwiUm93IiwiQ29sIiwiY29uY2F0IiwiTGlzdEdyb3VwIiwibWFwIiwiSXRlbSIsImlkIiwib25DbGljayIsInNlY3Rvckljb25OYW1lIiwiZ3JvdXAiLCJzZWN0b3JfaWNvbl9uYW1lIiwic2VjdG9yTmFtZSIsInNlY3Rvcl9uYW1lIiwic2hvd0xhYmVsIiwid2l0aFRvb2x0aXAiLCJuYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL0xlZnRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb250YWluZXIsIFJvdywgQ29sLCBMaXN0R3JvdXAgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYUV4Y2xhbWF0aW9uVHJpYW5nbGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IFNlY3RvciBmcm9tICdzcmMvY29tcG9uZW50cy9TZWN0b3InO1xuaW1wb3J0IEthbmRvRmlsdGVyIGZyb20gJ3NyYy91aS1raXQvS2FuZG9GaWx0ZXIvS2FuZG9GaWx0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlZnRQYW5lbFByb3BzIHtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbDtcbiAgc2V0U2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQ7XG4gIGZpbHRlck9wdGlvbnM6IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9W107XG4gIG9ubHlNb25pdG9yZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IExlZnRQYW5lbDogUmVhY3QuRkM8TGVmdFBhbmVsUHJvcHM+ID0gKHtcbiAgcG9pbnRzLFxuICBzZWxlY3RlZFBvaW50LFxuICBzZXRTZWxlY3RlZFBvaW50LFxuICBvbmx5TW9uaXRvcmVkID0gdHJ1ZSxcbiAgZmlsdGVyT3B0aW9ucyxcbn0pID0+IHtcbiAgY29uc3QgW3NlbGVjdGVkRmlsdGVycywgc2V0U2VsZWN0ZWRGaWx0ZXJzXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW2ZpbHRlcmVkUG9pbnRzLCBzZXRGaWx0ZXJlZFBvaW50c10gPSB1c2VTdGF0ZTxJUG9pbnRbXT4oW10pO1xuICBjb25zdCBtYXhJc3N1ZXMgPSAzO1xuICBjb25zdCBpc3N1ZXNJY29uQ29sb3IgPSAobGVuZ3RoKSA9PiB7XG4gICAgaWYgKGxlbmd0aCAlIG1heElzc3VlcyA9PT0gMCkge1xuICAgICAgcmV0dXJuICdpY29uLXJlZCc7XG4gICAgfSBlbHNlIGlmIChsZW5ndGggJSBtYXhJc3N1ZXMgPT09IDIpIHtcbiAgICAgIHJldHVybiAnaWNvbi1vcmFuZ2UnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2ljb24teWVsbG93JztcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2hvd0lzc3VlcyA9IChwb2ludCkgPT4ge1xuICAgIGNvbnN0IGlzc3Vlc0xlbmd0aCA9IHBvaW50Py5pc3N1ZXMubGVuZ3RoO1xuICAgIGlmIChpc3N1ZXNMZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Rm9udEF3ZXNvbWVJY29uXG4gICAgICAgICAgaWNvbj17ZmFFeGNsYW1hdGlvblRyaWFuZ2xlfVxuICAgICAgICAgIGNsYXNzTmFtZT17aXNzdWVzSWNvbkNvbG9yKGlzc3Vlc0xlbmd0aCl9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgY29uc3Qgc29ydGVkUG9pbnRzID0gcG9pbnRzLnNvcnQoKGEsIGIpID0+IGIuaXNzdWVzLmxlbmd0aCAtIGEuaXNzdWVzLmxlbmd0aCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRGaWx0ZXJlZFBvaW50cyhzb3J0ZWRQb2ludHMpO1xuICB9LCBbc29ydGVkUG9pbnRzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFBvaW50cyA9IHNvcnRlZFBvaW50cy5maWx0ZXIoKHBvaW50KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRGaWx0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gU2hvdyBhbGwgcG9pbnRzIGlmIG5vIGZpbHRlcnMgYXJlIHNlbGVjdGVkXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWxlY3RlZEZpbHRlcnMuc29tZSgoZmlsdGVyKSA9PlxuICAgICAgICBwb2ludC5pc3N1ZXMuc29tZSgoaXNzdWUpID0+IGlzc3VlLnR5cGUgPT09IGZpbHRlci52YWx1ZSksXG4gICAgICApO1xuICAgIH0pO1xuICAgIHNldEZpbHRlcmVkUG9pbnRzKGZpbHRlcmVkUG9pbnRzKTtcbiAgfSwgW3NlbGVjdGVkRmlsdGVyc10pO1xuXG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lciBjbGFzc05hbWU9XCJtdC00IHBsLTMgcHItMlwiPlxuICAgICAgPFJvdz5cbiAgICAgICAgPENvbD5cbiAgICAgICAgICA8aDQ+e2Ake29ubHlNb25pdG9yZWQgPyAnTW9uaXRvcmVkICcgOiAnJ31NYW5ob2xlcygke1xuICAgICAgICAgICAgZmlsdGVyZWRQb2ludHMubGVuZ3RoXG4gICAgICAgICAgfSlgfTwvaDQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+XG4gICAgICA8Um93IGNsYXNzTmFtZT1cIm10LTMgbWItM1wiPlxuICAgICAgICA8Q29sPlxuICAgICAgICAgIDxLYW5kb0ZpbHRlclxuICAgICAgICAgICAgZmlsdGVyT3B0aW9ucz17ZmlsdGVyT3B0aW9uc31cbiAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVycz17c2VsZWN0ZWRGaWx0ZXJzfVxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRGaWx0ZXJzPXtzZXRTZWxlY3RlZEZpbHRlcnN9XG4gICAgICAgICAgPjwvS2FuZG9GaWx0ZXI+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+XG4gICAgICA8Um93PlxuICAgICAgICA8Q29sPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2Nyb2xsYWJsZS1saXN0XCI+XG4gICAgICAgICAgICA8TGlzdEdyb3VwPlxuICAgICAgICAgICAgICB7cG9pbnRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZFBvaW50cy5tYXAoKHBvaW50KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8TGlzdEdyb3VwLkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBvaW50Py5pZCA9PT0gcG9pbnQuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ2xpc3QtaXRlbSBsaXN0LWl0ZW0tc2VsZWN0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdsaXN0LWl0ZW0nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtwb2ludC5pZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRQb2ludChwb2ludCl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlY3RvclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VjdG9ySWNvbk5hbWU9e3BvaW50Lmdyb3VwLnNlY3Rvcl9pY29uX25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN0b3JOYW1lPXtwb2ludC5ncm91cC5zZWN0b3JfbmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoVG9vbHRpcD17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICA+PC9TZWN0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3BvaW50Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAge3Nob3dJc3N1ZXMocG9pbnQpfVxuICAgICAgICAgICAgICAgICAgPC9MaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvTGlzdEdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGVmdFBhbmVsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxpQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsa0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUwsT0FBQTtBQUE2RCxTQUFBTyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxp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
81
+ var _default = exports.default = LeftPanel;
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfcmVhY3RGb250YXdlc29tZSIsIl9mcmVlU29saWRTdmdJY29ucyIsIl9TZWN0b3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0thbmRvRmlsdGVyIiwiTGVmdFBhbmVsIiwiX3JlZiIsInBvaW50cyIsInNlbGVjdGVkUG9pbnQiLCJzZXRTZWxlY3RlZFBvaW50Iiwib25seU1vbml0b3JlZCIsImZpbHRlck9wdGlvbnMiLCJzZWxlY3RlZEZpbHRlcnMiLCJzZXRTZWxlY3RlZEZpbHRlcnMiLCJ1c2VTdGF0ZSIsImZpbHRlcmVkUG9pbnRzIiwic2V0RmlsdGVyZWRQb2ludHMiLCJtYXhJc3N1ZXMiLCJpc3N1ZXNJY29uQ29sb3IiLCJsZW5ndGgiLCJzaG93SXNzdWVzIiwicG9pbnQiLCJpc3N1ZXNMZW5ndGgiLCJpc3N1ZXMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYUV4Y2xhbWF0aW9uVHJpYW5nbGUiLCJjbGFzc05hbWUiLCJzb3J0ZWRQb2ludHMiLCJzb3J0IiwiYSIsImIiLCJ1c2VFZmZlY3QiLCJmaWx0ZXIiLCJzb21lIiwiaXNzdWUiLCJ0eXBlIiwidmFsdWUiLCJDb250YWluZXIiLCJSb3ciLCJDb2wiLCJjb25jYXQiLCJMaXN0R3JvdXAiLCJtYXAiLCJJdGVtIiwiaWQiLCJrZXkiLCJvbkNsaWNrIiwic2VjdG9ySWNvbk5hbWUiLCJncm91cCIsInNlY3Rvcl9pY29uX25hbWUiLCJzZWN0b3JOYW1lIiwic2VjdG9yX25hbWUiLCJzaG93TGFiZWwiLCJ3aXRoVG9vbHRpcCIsIm5hbWUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvTGVmdFBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbnRhaW5lciwgUm93LCBDb2wsIExpc3RHcm91cCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhRXhjbGFtYXRpb25UcmlhbmdsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgU2VjdG9yIGZyb20gJ3NyYy9jb21wb25lbnRzL1NlY3Rvcic7XG5pbXBvcnQgS2FuZG9GaWx0ZXIgZnJvbSAnc3JjL3VpLWtpdC9LYW5kb0ZpbHRlci9LYW5kb0ZpbHRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVmdFBhbmVsUHJvcHMge1xuICBwb2ludHM6IElQb2ludFtdO1xuICBzZWxlY3RlZFBvaW50OiBJUG9pbnQgfCBudWxsO1xuICBzZXRTZWxlY3RlZFBvaW50OiAocG9pbnQ6IElQb2ludCkgPT4gdm9pZDtcbiAgZmlsdGVyT3B0aW9uczogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgb25seU1vbml0b3JlZDogYm9vbGVhbjtcbn1cblxuY29uc3QgTGVmdFBhbmVsOiBSZWFjdC5GQzxMZWZ0UGFuZWxQcm9wcz4gPSAoe1xuICBwb2ludHMsXG4gIHNlbGVjdGVkUG9pbnQsXG4gIHNldFNlbGVjdGVkUG9pbnQsXG4gIG9ubHlNb25pdG9yZWQgPSB0cnVlLFxuICBmaWx0ZXJPcHRpb25zLFxufSkgPT4ge1xuICBjb25zdCBbc2VsZWN0ZWRGaWx0ZXJzLCBzZXRTZWxlY3RlZEZpbHRlcnNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbZmlsdGVyZWRQb2ludHMsIHNldEZpbHRlcmVkUG9pbnRzXSA9IHVzZVN0YXRlPElQb2ludFtdPihbXSk7XG4gIGNvbnN0IG1heElzc3VlcyA9IDM7XG4gIGNvbnN0IGlzc3Vlc0ljb25Db2xvciA9IChsZW5ndGgpID0+IHtcbiAgICBpZiAobGVuZ3RoICUgbWF4SXNzdWVzID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2ljb24tcmVkJztcbiAgICB9IGVsc2UgaWYgKGxlbmd0aCAlIG1heElzc3VlcyA9PT0gMikge1xuICAgICAgcmV0dXJuICdpY29uLW9yYW5nZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnaWNvbi15ZWxsb3cnO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzaG93SXNzdWVzID0gKHBvaW50KSA9PiB7XG4gICAgY29uc3QgaXNzdWVzTGVuZ3RoID0gcG9pbnQ/Lmlzc3Vlcy5sZW5ndGg7XG4gICAgaWYgKGlzc3Vlc0xlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICBpY29uPXtmYUV4Y2xhbWF0aW9uVHJpYW5nbGV9XG4gICAgICAgICAgY2xhc3NOYW1lPXtpc3N1ZXNJY29uQ29sb3IoaXNzdWVzTGVuZ3RoKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfTtcblxuICBjb25zdCBzb3J0ZWRQb2ludHMgPSBwb2ludHMuc29ydCgoYSwgYikgPT4gYi5pc3N1ZXMubGVuZ3RoIC0gYS5pc3N1ZXMubGVuZ3RoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEZpbHRlcmVkUG9pbnRzKHNvcnRlZFBvaW50cyk7XG4gIH0sIFtzb3J0ZWRQb2ludHNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkUG9pbnRzID0gc29ydGVkUG9pbnRzLmZpbHRlcigocG9pbnQpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZEZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBTaG93IGFsbCBwb2ludHMgaWYgbm8gZmlsdGVycyBhcmUgc2VsZWN0ZWRcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGVjdGVkRmlsdGVycy5zb21lKChmaWx0ZXIpID0+XG4gICAgICAgIHBvaW50Lmlzc3Vlcy5zb21lKChpc3N1ZSkgPT4gaXNzdWUudHlwZSA9PT0gZmlsdGVyLnZhbHVlKSxcbiAgICAgICk7XG4gICAgfSk7XG4gICAgc2V0RmlsdGVyZWRQb2ludHMoZmlsdGVyZWRQb2ludHMpO1xuICB9LCBbc2VsZWN0ZWRGaWx0ZXJzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIGNsYXNzTmFtZT1cIm10LTQgcGwtMyBwci0yXCI+XG4gICAgICA8Um93PlxuICAgICAgICA8Q29sPlxuICAgICAgICAgIDxoND57YCR7b25seU1vbml0b3JlZCA/ICdNb25pdG9yZWQgJyA6ICcnfU1hbmhvbGVzKCR7XG4gICAgICAgICAgICBmaWx0ZXJlZFBvaW50cy5sZW5ndGhcbiAgICAgICAgICB9KWB9PC9oND5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICAgIDxSb3cgY2xhc3NOYW1lPVwibXQtMyBtYi0zXCI+XG4gICAgICAgIDxDb2w+XG4gICAgICAgICAgPEthbmRvRmlsdGVyXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zPXtmaWx0ZXJPcHRpb25zfVxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzPXtzZWxlY3RlZEZpbHRlcnN9XG4gICAgICAgICAgICBzZXRTZWxlY3RlZEZpbHRlcnM9e3NldFNlbGVjdGVkRmlsdGVyc31cbiAgICAgICAgICA+PC9LYW5kb0ZpbHRlcj5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICAgIDxSb3c+XG4gICAgICAgIDxDb2w+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzY3JvbGxhYmxlLWxpc3RcIj5cbiAgICAgICAgICAgIDxMaXN0R3JvdXA+XG4gICAgICAgICAgICAgIHtwb2ludHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgIGZpbHRlcmVkUG9pbnRzLm1hcCgocG9pbnQpID0+IChcbiAgICAgICAgICAgICAgICAgIDxMaXN0R3JvdXAuSXRlbVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUG9pbnQ/LmlkID09PSBwb2ludC5pZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbGlzdC1pdGVtIGxpc3QtaXRlbS1zZWxlY3RlZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2xpc3QtaXRlbSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBrZXk9e3BvaW50LmlkfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZFBvaW50KHBvaW50KX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN0b3JJY29uTmFtZT17cG9pbnQuZ3JvdXAuc2VjdG9yX2ljb25fbmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rvck5hbWU9e3BvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhUb29sdGlwPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgID48L1NlY3Rvcj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57cG9pbnQubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7c2hvd0lzc3Vlcyhwb2ludCl9XG4gICAgICAgICAgICAgICAgICA8L0xpc3RHcm91cC5JdGVtPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9MaXN0R3JvdXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMZWZ0UGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsaUJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFELHNCQUFBLENBQUFMLE9BQUE7QUFVQSxNQUFNTyxTQUFtQyxHQUFHQyxJQUFBLElBTXRDO0VBQUEsSUFOdUM7SUFDM0NDLE1BQU07SUFDTkMsYUFBYTtJQUNiQyxnQkFBZ0I7SUFDaEJDLGFBQWEsR0FBRyxJQUFJO0lBQ3BCQztFQUNGLENBQUMsR0FBQUwsSUFBQTtFQUNDLE1BQU0sQ0FBQ00sZUFBZSxFQUFFQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFBQyxFQUFFLENBQUM7RUFDMUQsTUFBTSxDQUFDQyxjQUFjLEVBQUVDLGlCQUFpQixDQUFDLEdBQUcsSUFBQUYsZUFBUSxFQUFXLEVBQUUsQ0FBQztFQUNsRSxNQUFNRyxTQUFTLEdBQUcsQ0FBQztFQUNuQixNQUFNQyxlQUFlLEdBQUlDLE1BQU0sSUFBSztJQUNsQyxJQUFJQSxNQUFNLEdBQUdGLFNBQVMsS0FBSyxDQUFDLEVBQUU7TUFDNUIsT0FBTyxVQUFVO0lBQ25CLENBQUMsTUFBTSxJQUFJRSxNQUFNLEdBQUdGLFNBQVMsS0FBSyxDQUFDLEVBQUU7TUFDbkMsT0FBTyxhQUFhO0lBQ3RCLENBQUMsTUFBTTtNQUNMLE9BQU8sYUFBYTtJQUN0QjtFQUNGLENBQUM7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
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
@@ -9,15 +9,15 @@ exports.Map = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _useMap = require("./useMap");
11
11
  var _ErrorBoundary = _interopRequireDefault(require("utilities/ErrorBoundary"));
12
- 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); }
13
- 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; }
14
- var Map = function Map(_ref) {
15
- var points = _ref.points,
16
- edges = _ref.edges,
17
- areas = _ref.areas,
18
- selectedPoint = _ref.selectedPoint,
19
- updateSelectedPoint = _ref.updateSelectedPoint;
20
- var mapRef = (0, _react.useRef)(null);
12
+ const Map = _ref => {
13
+ let {
14
+ points,
15
+ edges,
16
+ areas,
17
+ selectedPoint,
18
+ updateSelectedPoint
19
+ } = _ref;
20
+ const mapRef = (0, _react.useRef)(null);
21
21
  (0, _useMap.useMap)(mapRef, points, edges, areas, selectedPoint, updateSelectedPoint);
22
22
  return /*#__PURE__*/_react.default.createElement("div", {
23
23
  className: "map-container"
@@ -27,4 +27,4 @@ var Map = function Map(_ref) {
27
27
  })));
28
28
  };
29
29
  exports.Map = Map;
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlTWFwIiwiX0Vycm9yQm91bmRhcnkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwicG9pbnRzIiwiZWRnZXMiLCJhcmVhcyIsInNlbGVjdGVkUG9pbnQiLCJ1cGRhdGVTZWxlY3RlZFBvaW50IiwibWFwUmVmIiwidXNlUmVmIiwidXNlTWFwIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1hcCB9IGZyb20gJy4vdXNlTWFwJztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIHBvaW50czogSVBvaW50W107XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBhcmVhczogSUFyZWFbXTtcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbDtcbiAgdXBkYXRlU2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIHBvaW50cyxcbiAgZWRnZXMsXG4gIGFyZWFzLFxuICBzZWxlY3RlZFBvaW50LFxuICB1cGRhdGVTZWxlY3RlZFBvaW50LFxufSkgPT4ge1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICB1c2VNYXAobWFwUmVmLCBwb2ludHMsIGVkZ2VzLCBhcmVhcywgc2VsZWN0ZWRQb2ludCwgdXBkYXRlU2VsZWN0ZWRQb2ludCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1jb250YWluZXJcIj5cbiAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICA8ZGl2IHJlZj17bWFwUmVmfSBjbGFzc05hbWU9XCJtYXAtaGVpZ2h0c1wiIC8+XG4gICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUF3RCxTQUFBSSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQU4sd0JBQUFVLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFhakQsSUFBTVcsR0FBdUIsR0FBRyxTQUExQkEsR0FBdUJBLENBQUFDLElBQUEsRUFNOUI7RUFBQSxJQUxKQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNOQyxLQUFLLEdBQUFGLElBQUEsQ0FBTEUsS0FBSztJQUNMQyxLQUFLLEdBQUFILElBQUEsQ0FBTEcsS0FBSztJQUNMQyxhQUFhLEdBQUFKLElBQUEsQ0FBYkksYUFBYTtJQUNiQyxtQkFBbUIsR0FBQUwsSUFBQSxDQUFuQkssbUJBQW1CO0VBRW5CLElBQU1DLE1BQU0sR0FBRyxJQUFBQyxhQUFNLEVBQWlCLElBQUksQ0FBQztFQUMzQyxJQUFBQyxjQUFNLEVBQUNGLE1BQU0sRUFBRUwsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsQ0FBQztFQUV4RSxvQkFDRW5DLE1BQUEsQ0FBQWMsT0FBQSxDQUFBeUIsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBZSxnQkFDNUJ4QyxNQUFBLENBQUFjLE9BQUEsQ0FBQXlCLGFBQUEsQ0FBQ25DLGNBQUEsQ0FBQVUsT0FBYSxxQkFDWmQsTUFBQSxDQUFBYyxPQUFBLENBQUF5QixhQUFBO0lBQUtFLEdBQUcsRUFBRUwsTUFBTztJQUFDSSxTQUFTLEVBQUM7RUFBYSxDQUFFLENBQzlCLENBQ1osQ0FBQztBQUVWLENBQUM7QUFBQ0UsT0FBQSxDQUFBYixHQUFBLEdBQUFBLEdBQUEifQ==
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlTWFwIiwiX0Vycm9yQm91bmRhcnkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiTWFwIiwiX3JlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIm1hcFJlZiIsInVzZVJlZiIsInVzZU1hcCIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicmVmIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9NYXAvTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTWFwIH0gZnJvbSAnLi91c2VNYXAnO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnc3JjL3V0aWxpdGllcy9FcnJvckJvdW5kYXJ5JztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcblxuaW50ZXJmYWNlIE1hcFByb3BzIHtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgZWRnZXM6IElFZGdlW107XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBzZWxlY3RlZFBvaW50OiBJUG9pbnQgfCBudWxsO1xuICB1cGRhdGVTZWxlY3RlZFBvaW50OiAocG9pbnQ6IElQb2ludCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgcG9pbnRzLFxuICBlZGdlcyxcbiAgYXJlYXMsXG4gIHNlbGVjdGVkUG9pbnQsXG4gIHVwZGF0ZVNlbGVjdGVkUG9pbnQsXG59KSA9PiB7XG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIHVzZU1hcChtYXBSZWYsIHBvaW50cywgZWRnZXMsIGFyZWFzLCBzZWxlY3RlZFBvaW50LCB1cGRhdGVTZWxlY3RlZFBvaW50KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLWNvbnRhaW5lclwiPlxuICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgIDxkaXYgcmVmPXttYXBSZWZ9IGNsYXNzTmFtZT1cIm1hcC1oZWlnaHRzXCIgLz5cbiAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBYU8sTUFBTUksR0FBdUIsR0FBR0MsSUFBQSxJQU1qQztFQUFBLElBTmtDO0lBQ3RDQyxNQUFNO0lBQ05DLEtBQUs7SUFDTEMsS0FBSztJQUNMQyxhQUFhO0lBQ2JDO0VBQ0YsQ0FBQyxHQUFBTCxJQUFBO0VBQ0MsTUFBTU0sTUFBTSxHQUFHLElBQUFDLGFBQU0sRUFBaUIsSUFBSSxDQUFDO0VBQzNDLElBQUFDLGNBQU0sRUFBQ0YsTUFBTSxFQUFFTCxNQUFNLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxhQUFhLEVBQUVDLG1CQUFtQixDQUFDO0VBRXhFLG9CQUNFWixNQUFBLENBQUFnQixPQUFBLENBQUFDLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWUsZ0JBQzVCbEIsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBLENBQUNiLGNBQUEsQ0FBQVksT0FBYSxxQkFDWmhCLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQUMsYUFBQTtJQUFLRSxHQUFHLEVBQUVOLE1BQU87SUFBQ0ssU0FBUyxFQUFDO0VBQWEsQ0FBRSxDQUM5QixDQUNaLENBQUM7QUFFVixDQUFDO0FBQUNFLE9BQUEsQ0FBQWQsR0FBQSxHQUFBQSxHQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,40 +1,32 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useMap = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
8
  var _leaflet = _interopRequireDefault(require("leaflet"));
11
9
  var _react = require("react");
12
10
  var _PointIcon = require("Widgets/Map/points/PointIcon");
13
11
  var _theme = require("styles/theme/theme");
14
12
  var _MapUtils = require("Widgets/Map/MapUtils");
15
- var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, updateSelectedPoint) {
16
- var _useState = (0, _react.useState)(),
17
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
18
- map = _useState2[0],
19
- setMap = _useState2[1];
20
- var _useState3 = (0, _react.useState)(null),
21
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
22
- focusedMarker = _useState4[0],
23
- setFocusedMarker = _useState4[1];
24
- var focusedMarkerRef = (0, _react.useRef)(null);
25
- var pointsLayerRef = (0, _react.useRef)();
26
- var edgesLayerRef = (0, _react.useRef)();
27
- var areasLayerRef = (0, _react.useRef)();
28
- (0, _react.useEffect)(function () {
13
+ const useMap = (mapRef, points, edges, areas, selectedPoint, updateSelectedPoint) => {
14
+ const [map, setMap] = (0, _react.useState)();
15
+ const [focusedMarker, setFocusedMarker] = (0, _react.useState)(null);
16
+ const focusedMarkerRef = (0, _react.useRef)(null);
17
+ const pointsLayerRef = (0, _react.useRef)();
18
+ const edgesLayerRef = (0, _react.useRef)();
19
+ const areasLayerRef = (0, _react.useRef)();
20
+ (0, _react.useEffect)(() => {
29
21
  focusedMarkerRef.current = focusedMarker;
30
22
  resetAllOthers();
31
23
  }, [focusedMarker]);
32
- (0, _react.useEffect)(function () {
24
+ (0, _react.useEffect)(() => {
33
25
  if (!mapRef.current) {
34
26
  return;
35
27
  }
36
- var mapTypes = (0, _MapUtils.baseMaps)(_theme.leafletMap.mapDefault, _theme.leafletMap.satellite);
37
- var mapTemp = _leaflet.default.map(mapRef.current, {
28
+ const mapTypes = (0, _MapUtils.baseMaps)(_theme.leafletMap.mapDefault, _theme.leafletMap.satellite);
29
+ const mapTemp = _leaflet.default.map(mapRef.current, {
38
30
  renderer: _leaflet.default.canvas()
39
31
  });
40
32
  Object.values(mapTypes)[0].addTo(mapTemp);
@@ -42,7 +34,7 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
42
34
  position: 'bottomright'
43
35
  }).addTo(mapTemp);
44
36
  setMap(mapTemp);
45
- return function () {
37
+ return () => {
46
38
  if (!mapTemp) {
47
39
  return;
48
40
  }
@@ -50,22 +42,22 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
50
42
  mapTemp.remove();
51
43
  };
52
44
  }, []);
53
- var resetAllOthers = function resetAllOthers() {
45
+ const resetAllOthers = () => {
54
46
  var _pointsLayerRef$curre;
55
- (_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.eachLayer(function (marker) {
47
+ (_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.eachLayer(marker => {
56
48
  if (marker.options.kando_object_id !== (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id) && marker._isInside) {
57
49
  marker.fire('mouseout');
58
50
  }
59
51
  });
60
52
  };
61
- (0, _react.useEffect)(function () {
53
+ (0, _react.useEffect)(() => {
62
54
  if (selectedPoint === null) {
63
55
  setFocusedMarker(null);
64
56
  } else {
65
57
  var _pointsLayerRef$curre2;
66
- (_pointsLayerRef$curre2 = pointsLayerRef.current) === null || _pointsLayerRef$curre2 === void 0 ? void 0 : _pointsLayerRef$curre2.eachLayer(function (marker) {
58
+ (_pointsLayerRef$curre2 = pointsLayerRef.current) === null || _pointsLayerRef$curre2 === void 0 ? void 0 : _pointsLayerRef$curre2.eachLayer(marker => {
67
59
  if (selectedPoint && marker.options.kando_object_id === (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id)) {
68
- if (!(map === null || map === void 0 ? void 0 : map.getBounds().contains(marker.getLatLng()))) {
60
+ if (!(map !== null && map !== void 0 && map.getBounds().contains(marker.getLatLng()))) {
69
61
  map === null || map === void 0 ? void 0 : map.flyTo(marker.getLatLng(), map.getZoom(), {
70
62
  duration: 0.5,
71
63
  animate: false
@@ -78,10 +70,10 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
78
70
  });
79
71
  }
80
72
  }, [selectedPoint]);
81
- var handleMarkerClick = function handleMarkerClick(point) {
73
+ const handleMarkerClick = point => {
82
74
  updateSelectedPoint(point);
83
75
  };
84
- var addMarkers = function addMarkers() {
76
+ const addMarkers = () => {
85
77
  if (!map || !points) {
86
78
  return;
87
79
  }
@@ -93,31 +85,31 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
93
85
  pointsLayerRef.current = _leaflet.default.featureGroup();
94
86
  pointsLayerRef.current.addTo(map);
95
87
  if (!pointsLayerRef.current.getLayers().length) {
96
- points.forEach(function (point) {
97
- var type = point.has_device === true || point.group.type === 'Groups::WastewaterTreatmentPlant' ? point.group.type : 'Groups::default';
98
- var hasIssues = 'issues' in point && !point.has_device;
99
- var icon = (0, _PointIcon.getPointIconByType)(type, point.name, '', false, true, hasIssues, point.has_sampler, point.should_install);
100
- var focusedIcon = (0, _PointIcon.getPointIconByType)(type, point.name, '', true, false, hasIssues, point.has_sampler, point.should_install);
88
+ points.forEach(point => {
89
+ const type = point.has_device === true || point.group.type === 'Groups::WastewaterTreatmentPlant' ? point.group.type : 'Groups::default';
90
+ const hasIssues = 'issues' in point && !point.has_device;
91
+ const icon = (0, _PointIcon.getPointIconByType)(type, point.name, '', false, true, hasIssues, point.has_sampler, point.should_install);
92
+ const focusedIcon = (0, _PointIcon.getPointIconByType)(type, point.name, '', true, false, hasIssues, point.has_sampler, point.should_install);
101
93
  if (point.latitude && point.longitude) {
102
94
  var _pointsLayerRef$curre3;
103
- var marker = getMarker(point);
95
+ let marker = getMarker(point);
104
96
  marker.setIcon(icon);
105
97
  // The use of marker._isInside is to overcome the issue that mouseover is endlessly triggered
106
98
  // and we need it only once
107
- marker.on('mouseover', function () {
99
+ marker.on('mouseover', () => {
108
100
  if (!marker._isInside) {
109
101
  marker._isInside = true;
110
102
  marker.setIcon(focusedIcon);
111
103
  }
112
104
  });
113
- marker.on('mouseout', function () {
105
+ marker.on('mouseout', () => {
114
106
  var _focusedMarkerRef$cur;
115
107
  if ((focusedMarkerRef === null || focusedMarkerRef === void 0 ? void 0 : (_focusedMarkerRef$cur = focusedMarkerRef.current) === null || _focusedMarkerRef$cur === void 0 ? void 0 : _focusedMarkerRef$cur._leaflet_id) !== (marker === null || marker === void 0 ? void 0 : marker._leaflet_id)) {
116
108
  marker._isInside = false;
117
109
  marker.setIcon(icon);
118
110
  }
119
111
  });
120
- marker.on('click', function () {
112
+ marker.on('click', () => {
121
113
  var _focusedMarkerRef$cur2;
122
114
  if ((focusedMarkerRef === null || focusedMarkerRef === void 0 ? void 0 : (_focusedMarkerRef$cur2 = focusedMarkerRef.current) === null || _focusedMarkerRef$cur2 === void 0 ? void 0 : _focusedMarkerRef$cur2._leaflet_id) === (marker === null || marker === void 0 ? void 0 : marker._leaflet_id)) {
123
115
  setFocusedMarker(null);
@@ -131,19 +123,17 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
131
123
  });
132
124
  }
133
125
  };
134
- var getMarker = function getMarker(point) {
126
+ const getMarker = point => {
135
127
  return _leaflet.default.marker([point.latitude, point.longitude], {
136
128
  kando_object_id: point.id
137
129
  });
138
130
  };
139
- var addEdges = function addEdges() {
131
+ const addEdges = () => {
140
132
  if (!map || !edges) {
141
133
  return;
142
134
  }
143
- var pointLookup = new Map();
144
- points.forEach(function (p) {
145
- return pointLookup.set(p.id, p);
146
- });
135
+ const pointLookup = new Map();
136
+ points.forEach(p => pointLookup.set(p.id, p));
147
137
  if (edgesLayerRef.current) {
148
138
  if (map.hasLayer(edgesLayerRef.current)) {
149
139
  map.removeLayer(edgesLayerRef.current);
@@ -151,22 +141,22 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
151
141
  }
152
142
  edgesLayerRef.current = _leaflet.default.featureGroup();
153
143
  edgesLayerRef.current.addTo(map);
154
- edges.forEach(function (edge) {
144
+ edges.forEach(edge => {
155
145
  var _edgesLayerRef$curren, _edgesLayerRef$curren2;
156
- var sourcePoint = pointLookup.get(edge.source_point_id);
157
- var targetPoint = pointLookup.get(edge.target_point_id);
146
+ const sourcePoint = pointLookup.get(edge.source_point_id);
147
+ const targetPoint = pointLookup.get(edge.target_point_id);
158
148
  if (!sourcePoint || !targetPoint) {
159
149
  return;
160
150
  }
161
- var latlngs = [[sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.latitude, sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.longitude], [targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.latitude, targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.longitude]];
162
- var polyline = _leaflet.default.polyline(latlngs, {
151
+ const latlngs = [[sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.latitude, sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.longitude], [targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.latitude, targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.longitude]];
152
+ const polyline = _leaflet.default.polyline(latlngs, {
163
153
  color: 'black',
164
154
  weight: 1,
165
155
  opacity: 0.5,
166
156
  smoothFactor: 1
167
157
  });
168
158
  (_edgesLayerRef$curren = edgesLayerRef.current) === null || _edgesLayerRef$curren === void 0 ? void 0 : _edgesLayerRef$curren.addLayer(polyline);
169
- var decorator = _leaflet.default.polylineDecorator(polyline, {
159
+ const decorator = _leaflet.default.polylineDecorator(polyline, {
170
160
  patterns: [{
171
161
  offset: 20,
172
162
  repeat: 60,
@@ -185,7 +175,7 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
185
175
  (_edgesLayerRef$curren2 = edgesLayerRef.current) === null || _edgesLayerRef$curren2 === void 0 ? void 0 : _edgesLayerRef$curren2.addLayer(decorator);
186
176
  });
187
177
  };
188
- var addAreas = function addAreas() {
178
+ const addAreas = () => {
189
179
  if (!map || !areas) {
190
180
  return;
191
181
  }
@@ -196,10 +186,10 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
196
186
  }
197
187
  areasLayerRef.current = _leaflet.default.featureGroup();
198
188
  areasLayerRef.current.addTo(map);
199
- var flattenAreas = function flattenAreas() {
200
- var areas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
201
- var allAreas = [];
202
- areas.forEach(function (area) {
189
+ const flattenAreas = function () {
190
+ let areas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
191
+ let allAreas = [];
192
+ areas.forEach(area => {
203
193
  if (area.shape_data.length > 0) {
204
194
  allAreas.push(area);
205
195
  }
@@ -211,14 +201,12 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
211
201
  });
212
202
 
213
203
  // Remove duplicates
214
- return (0, _toConsumableArray2.default)(new Map(allAreas.map(function (area) {
215
- return [area.area_id, area];
216
- })).values());
204
+ return [...new Map(allAreas.map(area => [area.area_id, area])).values()];
217
205
  };
218
- var allAreas = flattenAreas(areas);
219
- allAreas.forEach(function (area) {
206
+ const allAreas = flattenAreas(areas);
207
+ allAreas.forEach(area => {
220
208
  var _areasLayerRef$curren;
221
- var polygon = _leaflet.default.polygon(area.shape_data, {
209
+ const polygon = _leaflet.default.polygon(area.shape_data, {
222
210
  color: 'black',
223
211
  weight: 1,
224
212
  opacity: 0.8,
@@ -234,16 +222,16 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
234
222
  (_areasLayerRef$curren = areasLayerRef.current) === null || _areasLayerRef$curren === void 0 ? void 0 : _areasLayerRef$curren.addLayer(polygon);
235
223
  });
236
224
  };
237
- var focusMap = function focusMap() {
225
+ const focusMap = () => {
238
226
  if (map) {
239
- if ((pointsLayerRef === null || pointsLayerRef === void 0 ? void 0 : pointsLayerRef.current) && Array.isArray(pointsLayerRef.current.getLayers()) && pointsLayerRef.current.getLayers().length > 0) {
227
+ if (pointsLayerRef !== null && pointsLayerRef !== void 0 && pointsLayerRef.current && Array.isArray(pointsLayerRef.current.getLayers()) && pointsLayerRef.current.getLayers().length > 0) {
240
228
  map.fitBounds(pointsLayerRef.current.getBounds());
241
229
  } else {
242
230
  map.setView([32.219157, 34.982481], 12);
243
231
  }
244
232
  }
245
233
  };
246
- (0, _react.useEffect)(function () {
234
+ (0, _react.useEffect)(() => {
247
235
  if (map) {
248
236
  addAreas();
249
237
  addEdges();
@@ -254,4 +242,4 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
254
242
  return map;
255
243
  };
256
244
  exports.useMap = useMap;
257
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImZvY3VzZWRNYXJrZXIiLCJzZXRGb2N1c2VkTWFya2VyIiwiZm9jdXNlZE1hcmtlclJlZiIsInVzZVJlZiIsInBvaW50c0xheWVyUmVmIiwiZWRnZXNMYXllclJlZiIsImFyZWFzTGF5ZXJSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwicmVzZXRBbGxPdGhlcnMiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJlYWNoTGF5ZXIiLCJtYXJrZXIiLCJvcHRpb25zIiwia2FuZG9fb2JqZWN0X2lkIiwiaWQiLCJfaXNJbnNpZGUiLCJmaXJlIiwiX3BvaW50c0xheWVyUmVmJGN1cnJlMiIsImdldEJvdW5kcyIsImNvbnRhaW5zIiwiZ2V0TGF0TG5nIiwiZmx5VG8iLCJnZXRab29tIiwiZHVyYXRpb24iLCJhbmltYXRlIiwiaGFuZGxlTWFya2VyQ2xpY2siLCJwb2ludCIsImFkZE1hcmtlcnMiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiZmVhdHVyZUdyb3VwIiwiZ2V0TGF5ZXJzIiwibGVuZ3RoIiwiZm9yRWFjaCIsInR5cGUiLCJoYXNfZGV2aWNlIiwiZ3JvdXAiLCJoYXNJc3N1ZXMiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwibmFtZSIsImhhc19zYW1wbGVyIiwic2hvdWxkX2luc3RhbGwiLCJmb2N1c2VkSWNvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiX3BvaW50c0xheWVyUmVmJGN1cnJlMyIsImdldE1hcmtlciIsInNldEljb24iLCJvbiIsIl9mb2N1c2VkTWFya2VyUmVmJGN1ciIsIl9sZWFmbGV0X2lkIiwiX2ZvY3VzZWRNYXJrZXJSZWYkY3VyMiIsImFkZExheWVyIiwiYWRkRWRnZXMiLCJwb2ludExvb2t1cCIsIk1hcCIsInAiLCJzZXQiLCJlZGdlIiwiX2VkZ2VzTGF5ZXJSZWYkY3VycmVuIiwiX2VkZ2VzTGF5ZXJSZWYkY3VycmVuMiIsInNvdXJjZVBvaW50IiwiZ2V0Iiwic291cmNlX3BvaW50X2lkIiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJsYXRsbmdzIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJzbW9vdGhGYWN0b3IiLCJkZWNvcmF0b3IiLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYWRkQXJlYXMiLCJmbGF0dGVuQXJlYXMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJhbGxBcmVhcyIsImFyZWEiLCJzaGFwZV9kYXRhIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsInN1Yl9hcmVhcyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJhcmVhX2lkIiwiX2FyZWFzTGF5ZXJSZWYkY3VycmVuIiwiaW50ZXJhY3RpdmUiLCJiaW5kVG9vbHRpcCIsImFyZWFfbmFtZSIsInBlcm1hbmVudCIsImRpcmVjdGlvbiIsImNsYXNzTmFtZSIsImZvY3VzTWFwIiwiZml0Qm91bmRzIiwic2V0VmlldyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvTWFwL3VzZU1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwsIHsgTWFya2VyIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludEljb24nO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJ3NyYy9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgYmFzZU1hcHMgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvTWFwVXRpbHMnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuXG5leHBvcnQgY29uc3QgdXNlTWFwID0gKFxuICBtYXBSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBhcmVhczogSUFyZWFbXSxcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbCxcbiAgdXBkYXRlU2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQsXG4pOiBMLk1hcCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IFttYXAsIHNldE1hcF0gPSB1c2VTdGF0ZTxMLk1hcD4oKTtcbiAgY29uc3QgW2ZvY3VzZWRNYXJrZXIsIHNldEZvY3VzZWRNYXJrZXJdID0gdXNlU3RhdGU8TWFya2VyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGZvY3VzZWRNYXJrZXJSZWYgPSB1c2VSZWY8TWFya2VyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBlZGdlc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBhcmVhc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZm9jdXNlZE1hcmtlclJlZi5jdXJyZW50ID0gZm9jdXNlZE1hcmtlcjtcbiAgICByZXNldEFsbE90aGVycygpO1xuICB9LCBbZm9jdXNlZE1hcmtlcl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobGVhZmxldE1hcC5tYXBEZWZhdWx0LCBsZWFmbGV0TWFwLnNhdGVsbGl0ZSk7XG4gICAgY29uc3QgbWFwVGVtcCA9IEwubWFwKG1hcFJlZi5jdXJyZW50LCB7IHJlbmRlcmVyOiBMLmNhbnZhcygpIH0pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ2JvdHRvbXJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIHNldE1hcChtYXBUZW1wKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIW1hcFRlbXApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbWFwVGVtcC5vZmYoKTtcbiAgICAgIG1hcFRlbXAucmVtb3ZlKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHJlc2V0QWxsT3RoZXJzID0gKCkgPT4ge1xuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobWFya2VyKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIG1hcmtlci5vcHRpb25zLmthbmRvX29iamVjdF9pZCAhPT0gc2VsZWN0ZWRQb2ludD8uaWQgJiZcbiAgICAgICAgbWFya2VyLl9pc0luc2lkZVxuICAgICAgKSB7XG4gICAgICAgIG1hcmtlci5maXJlKCdtb3VzZW91dCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQgPT09IG51bGwpIHtcbiAgICAgIHNldEZvY3VzZWRNYXJrZXIobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQ/LmVhY2hMYXllcigobWFya2VyKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3RlZFBvaW50ICYmXG4gICAgICAgICAgbWFya2VyLm9wdGlvbnMua2FuZG9fb2JqZWN0X2lkID09PSBzZWxlY3RlZFBvaW50Py5pZFxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoIW1hcD8uZ2V0Qm91bmRzKCkuY29udGFpbnMobWFya2VyLmdldExhdExuZygpKSkge1xuICAgICAgICAgICAgbWFwPy5mbHlUbyhtYXJrZXIuZ2V0TGF0TG5nKCksIG1hcC5nZXRab29tKCksIHtcbiAgICAgICAgICAgICAgZHVyYXRpb246IDAuNSxcbiAgICAgICAgICAgICAgYW5pbWF0ZTogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWFya2VyLmZpcmUoJ21vdXNlb3ZlcicpO1xuICAgICAgICAgIHNldEZvY3VzZWRNYXJrZXIobWFya2VyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3NlbGVjdGVkUG9pbnRdKTtcblxuICBjb25zdCBoYW5kbGVNYXJrZXJDbGljayA9IChwb2ludCkgPT4ge1xuICAgIHVwZGF0ZVNlbGVjdGVkUG9pbnQocG9pbnQpO1xuICB9O1xuXG4gIGNvbnN0IGFkZE1hcmtlcnMgPSAoKSA9PiB7XG4gICAgaWYgKCFtYXAgfHwgIXBvaW50cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwb2ludHNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwb2ludHNMYXllclJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBpZiAoIXBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICBwb2ludHMuZm9yRWFjaCgocG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgdHlwZSA9XG4gICAgICAgICAgcG9pbnQuaGFzX2RldmljZSA9PT0gdHJ1ZSB8fFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCdcbiAgICAgICAgICAgID8gcG9pbnQuZ3JvdXAudHlwZVxuICAgICAgICAgICAgOiAnR3JvdXBzOjpkZWZhdWx0JztcbiAgICAgICAgY29uc3QgaGFzSXNzdWVzID0gJ2lzc3VlcycgaW4gcG9pbnQgJiYgIXBvaW50Lmhhc19kZXZpY2U7XG4gICAgICAgIGNvbnN0IGljb24gPSBnZXRQb2ludEljb25CeVR5cGUoXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBwb2ludC5uYW1lLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICAgaGFzSXNzdWVzLFxuICAgICAgICAgIHBvaW50Lmhhc19zYW1wbGVyLFxuICAgICAgICAgIHBvaW50LnNob3VsZF9pbnN0YWxsLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRJY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIGhhc0lzc3VlcyxcbiAgICAgICAgICBwb2ludC5oYXNfc2FtcGxlcixcbiAgICAgICAgICBwb2ludC5zaG91bGRfaW5zdGFsbCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocG9pbnQubGF0aXR1ZGUgJiYgcG9pbnQubG9uZ2l0dWRlKSB7XG4gICAgICAgICAgbGV0IG1hcmtlciA9IGdldE1hcmtlcihwb2ludCk7XG5cbiAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICAvLyBUaGUgdXNlIG9mIG1hcmtlci5faXNJbnNpZGUgaXMgdG8gb3ZlcmNvbWUgdGhlIGlzc3VlIHRoYXQgbW91c2VvdmVyIGlzIGVuZGxlc3NseSB0cmlnZ2VyZWRcbiAgICAgICAgICAvLyBhbmQgd2UgbmVlZCBpdCBvbmx5IG9uY2VcbiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghbWFya2VyLl9pc0luc2lkZSkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgbWFya2VyLnNldEljb24oZm9jdXNlZEljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbWFya2VyLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZm9jdXNlZE1hcmtlclJlZj8uY3VycmVudD8uX2xlYWZsZXRfaWQgIT09IG1hcmtlcj8uX2xlYWZsZXRfaWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gZmFsc2U7XG4gICAgICAgICAgICAgIG1hcmtlci5zZXRJY29uKGljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbWFya2VyLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZm9jdXNlZE1hcmtlclJlZj8uY3VycmVudD8uX2xlYWZsZXRfaWQgPT09IG1hcmtlcj8uX2xlYWZsZXRfaWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG51bGwpO1xuICAgICAgICAgICAgICBoYW5kbGVNYXJrZXJDbGljayhudWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGhhbmRsZU1hcmtlckNsaWNrKHBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKG1hcmtlcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRNYXJrZXIgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiBMLm1hcmtlcihbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIHtcbiAgICAgIGthbmRvX29iamVjdF9pZDogcG9pbnQuaWQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYWRkRWRnZXMgPSAoKSA9PiB7XG4gICAgaWYgKCFtYXAgfHwgIWVkZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9pbnRMb29rdXAgPSBuZXcgTWFwKCk7XG4gICAgcG9pbnRzLmZvckVhY2goKHApID0+IHBvaW50TG9va3VwLnNldChwLmlkLCBwKSk7XG5cbiAgICBpZiAoZWRnZXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gcG9pbnRMb29rdXAuZ2V0KGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gcG9pbnRMb29rdXAuZ2V0KGVkZ2UudGFyZ2V0X3BvaW50X2lkKTtcblxuICAgICAgaWYgKCFzb3VyY2VQb2ludCB8fCAhdGFyZ2V0UG9pbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXRsbmdzID0gW1xuICAgICAgICBbc291cmNlUG9pbnQ/LmxhdGl0dWRlLCBzb3VyY2VQb2ludD8ubG9uZ2l0dWRlXSxcbiAgICAgICAgW3RhcmdldFBvaW50Py5sYXRpdHVkZSwgdGFyZ2V0UG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBwb2x5bGluZSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjUsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgIH0pO1xuXG4gICAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlsaW5lKTtcblxuICAgICAgY29uc3QgZGVjb3JhdG9yID0gTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZSwge1xuICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICBwaXhlbFNpemU6IDQsXG4gICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM1NTUnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjgsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIoZGVjb3JhdG9yKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBhZGRBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhYXJlYXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYXJlYXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5BcmVhcyA9IChhcmVhczogSUFyZWFbXSA9IFtdKTogSUFyZWFbXSA9PiB7XG4gICAgICBsZXQgYWxsQXJlYXM6IElBcmVhW10gPSBbXTtcblxuICAgICAgYXJlYXMuZm9yRWFjaCgoYXJlYTogSUFyZWEpID0+IHtcbiAgICAgICAgaWYgKGFyZWEuc2hhcGVfZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYWxsQXJlYXMucHVzaChhcmVhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBzdWJfYXJlYXMsIHJlY3Vyc2UgYW5kIGNvbmNhdGVuYXRlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZWEuc3ViX2FyZWFzKSAmJiBhcmVhLnN1Yl9hcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYWxsQXJlYXMgPSBhbGxBcmVhcy5jb25jYXQoZmxhdHRlbkFyZWFzKGFyZWEuc3ViX2FyZWFzKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBSZW1vdmUgZHVwbGljYXRlc1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ubmV3IE1hcChhbGxBcmVhcy5tYXAoKGFyZWEpID0+IFthcmVhLmFyZWFfaWQsIGFyZWFdKSkudmFsdWVzKCksXG4gICAgICBdO1xuICAgIH07XG5cbiAgICBjb25zdCBhbGxBcmVhcyA9IGZsYXR0ZW5BcmVhcyhhcmVhcyk7XG5cbiAgICBhbGxBcmVhcy5mb3JFYWNoKChhcmVhKSA9PiB7XG4gICAgICBjb25zdCBwb2x5Z29uID0gTC5wb2x5Z29uKGFyZWEuc2hhcGVfZGF0YSwge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjgsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgICAgaW50ZXJhY3RpdmU6IGZhbHNlLFxuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IGFyZWEuYXJlYV9pZCxcbiAgICAgIH0pO1xuXG4gICAgICBwb2x5Z29uLmJpbmRUb29sdGlwKGFyZWEuYXJlYV9uYW1lLCB7XG4gICAgICAgIHBlcm1hbmVudDogdHJ1ZSxcbiAgICAgICAgZGlyZWN0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYXJlYS10b29sdGlwJyxcbiAgICAgIH0pO1xuXG4gICAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlnb24pO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGZvY3VzTWFwID0gKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcG9pbnRzTGF5ZXJSZWY/LmN1cnJlbnQgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShwb2ludHNMYXllclJlZi5jdXJyZW50LmdldExheWVycygpKSAmJlxuICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50LmdldExheWVycygpLmxlbmd0aCA+IDBcbiAgICAgICkge1xuICAgICAgICBtYXAuZml0Qm91bmRzKHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRzKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFwLnNldFZpZXcoWzMyLjIxOTE1NywgMzQuOTgyNDgxXSwgMTIpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIGFkZEFyZWFzKCk7XG4gICAgICBhZGRFZGdlcygpO1xuICAgICAgYWRkTWFya2VycygpO1xuICAgICAgZm9jdXNNYXAoKTtcbiAgICB9XG4gIH0sIFtwb2ludHMsIGFyZWFzLCBlZGdlcywgbWFwXSk7XG5cbiAgcmV0dXJuIG1hcDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUtPLElBQU1LLE1BQU0sR0FBRyxTQUFUQSxNQUFNQSxDQUNqQkMsTUFBdUMsRUFDdkNDLE1BQWdCLEVBQ2hCQyxLQUFjLEVBQ2RDLEtBQWMsRUFDZEMsYUFBNEIsRUFDNUJDLG1CQUE0QyxFQUN0QjtFQUN0QixJQUFBQyxTQUFBLEdBQXNCLElBQUFDLGVBQVEsRUFBUSxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxDQUFBQyxPQUFBLEVBQUFKLFNBQUE7SUFBaENLLEdBQUcsR0FBQUgsVUFBQTtJQUFFSSxNQUFNLEdBQUFKLFVBQUE7RUFDbEIsSUFBQUssVUFBQSxHQUEwQyxJQUFBTixlQUFRLEVBQWdCLElBQUksQ0FBQztJQUFBTyxVQUFBLE9BQUFMLGVBQUEsQ0FBQUMsT0FBQSxFQUFBRyxVQUFBO0lBQWhFRSxhQUFhLEdBQUFELFVBQUE7SUFBRUUsZ0JBQWdCLEdBQUFGLFVBQUE7RUFDdEMsSUFBTUcsZ0JBQWdCLEdBQUcsSUFBQUMsYUFBTSxFQUFnQixJQUFJLENBQUM7RUFDcEQsSUFBTUMsY0FBYyxHQUFHLElBQUFELGFBQU0sRUFBaUIsQ0FBQztFQUMvQyxJQUFNRSxhQUFhLEdBQUcsSUFBQUYsYUFBTSxFQUFpQixDQUFDO0VBQzlDLElBQU1HLGFBQWEsR0FBRyxJQUFBSCxhQUFNLEVBQWlCLENBQUM7RUFFOUMsSUFBQUksZ0JBQVMsRUFBQyxZQUFNO0lBQ2RMLGdCQUFnQixDQUFDTSxPQUFPLEdBQUdSLGFBQWE7SUFDeENTLGNBQWMsQ0FBQyxDQUFDO0VBQ2xCLENBQUMsRUFBRSxDQUFDVCxhQUFhLENBQUMsQ0FBQztFQUVuQixJQUFBTyxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFJLENBQUN0QixNQUFNLENBQUN1QixPQUFPLEVBQUU7TUFDbkI7SUFDRjtJQUVBLElBQU1FLFFBQVEsR0FBRyxJQUFBQyxrQkFBUSxFQUFDQyxpQkFBVSxDQUFDQyxVQUFVLEVBQUVELGlCQUFVLENBQUNFLFNBQVMsQ0FBQztJQUN0RSxJQUFNQyxPQUFPLEdBQUdDLGdCQUFDLENBQUNwQixHQUFHLENBQUNYLE1BQU0sQ0FBQ3VCLE9BQU8sRUFBRTtNQUFFUyxRQUFRLEVBQUVELGdCQUFDLENBQUNFLE1BQU0sQ0FBQztJQUFFLENBQUMsQ0FBQztJQUUvREMsTUFBTSxDQUFDQyxNQUFNLENBQUNWLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDVyxLQUFLLENBQUNOLE9BQU8sQ0FBQztJQUV6Q0MsZ0JBQUMsQ0FBQ00sT0FBTyxDQUFDQyxNQUFNLENBQUNiLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtNQUFFYyxRQUFRLEVBQUU7SUFBYyxDQUFDLENBQUMsQ0FBQ0gsS0FBSyxDQUFDTixPQUFPLENBQUM7SUFFMUVsQixNQUFNLENBQUNrQixPQUFPLENBQUM7SUFFZixPQUFPLFlBQU07TUFDWCxJQUFJLENBQUNBLE9BQU8sRUFBRTtRQUNaO01BQ0Y7TUFDQUEsT0FBTyxDQUFDVSxHQUFHLENBQUMsQ0FBQztNQUNiVixPQUFPLENBQUNXLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7RUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTWpCLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFTO0lBQUEsSUFBQWtCLHFCQUFBO0lBQzNCLENBQUFBLHFCQUFBLEdBQUF2QixjQUFjLENBQUNJLE9BQU8sY0FBQW1CLHFCQUFBLHVCQUF0QkEscUJBQUEsQ0FBd0JDLFNBQVMsQ0FBQyxVQUFDQyxNQUFNLEVBQUs7TUFDNUMsSUFDRUEsTUFBTSxDQUFDQyxPQUFPLENBQUNDLGVBQWUsTUFBSzFDLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFFMkMsRUFBRSxLQUNwREgsTUFBTSxDQUFDSSxTQUFTLEVBQ2hCO1FBQ0FKLE1BQU0sQ0FBQ0ssSUFBSSxDQUFDLFVBQVUsQ0FBQztNQUN6QjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFBM0IsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSWxCLGFBQWEsS0FBSyxJQUFJLEVBQUU7TUFDMUJZLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDLE1BQU07TUFBQSxJQUFBa0Msc0JBQUE7TUFDTCxDQUFBQSxzQkFBQSxHQUFBL0IsY0FBYyxDQUFDSSxPQUFPLGNBQUEyQixzQkFBQSx1QkFBdEJBLHNCQUFBLENBQXdCUCxTQUFTLENBQUMsVUFBQ0MsTUFBTSxFQUFLO1FBQzVDLElBQ0V4QyxhQUFhLElBQ2J3QyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsZUFBZSxNQUFLMUMsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUUyQyxFQUFFLEdBQ3BEO1VBQ0EsSUFBSSxFQUFDcEMsR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUV3QyxTQUFTLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUNSLE1BQU0sQ0FBQ1MsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFFO1lBQ2xEMUMsR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUUyQyxLQUFLLENBQUNWLE1BQU0sQ0FBQ1MsU0FBUyxDQUFDLENBQUMsRUFBRTFDLEdBQUcsQ0FBQzRDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Y0FDNUNDLFFBQVEsRUFBRSxHQUFHO2NBQ2JDLE9BQU8sRUFBRTtZQUNYLENBQUMsQ0FBQztVQUNKO1VBQ0FiLE1BQU0sQ0FBQ0ssSUFBSSxDQUFDLFdBQVcsQ0FBQztVQUN4QmpDLGdCQUFnQixDQUFDNEIsTUFBTSxDQUFDO1VBQ3hCO1FBQ0Y7TUFDRixDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDeEMsYUFBYSxDQUFDLENBQUM7RUFFbkIsSUFBTXNELGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlDLEtBQUssRUFBSztJQUNuQ3RELG1CQUFtQixDQUFDc0QsS0FBSyxDQUFDO0VBQzVCLENBQUM7RUFFRCxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQSxFQUFTO0lBQ3ZCLElBQUksQ0FBQ2pELEdBQUcsSUFBSSxDQUFDVixNQUFNLEVBQUU7TUFDbkI7SUFDRjtJQUVBLElBQUlrQixjQUFjLENBQUNJLE9BQU8sRUFBRTtNQUMxQixJQUFJWixHQUFHLENBQUNrRCxRQUFRLENBQUMxQyxjQUFjLENBQUNJLE9BQU8sQ0FBQyxFQUFFO1FBQ3hDWixHQUFHLENBQUNtRCxXQUFXLENBQUMzQyxjQUFjLENBQUNJLE9BQU8sQ0FBQztNQUN6QztJQUNGO0lBRUFKLGNBQWMsQ0FBQ0ksT0FBTyxHQUFHUSxnQkFBQyxDQUFDZ0MsWUFBWSxDQUFDLENBQUM7SUFDekM1QyxjQUFjLENBQUNJLE9BQU8sQ0FBQ2EsS0FBSyxDQUFDekIsR0FBRyxDQUFDO0lBRWpDLElBQUksQ0FBQ1EsY0FBYyxDQUFDSSxPQUFPLENBQUN5QyxTQUFTLENBQUMsQ0FBQyxDQUFDQyxNQUFNLEVBQUU7TUFDOUNoRSxNQUFNLENBQUNpRSxPQUFPLENBQUMsVUFBQ1AsS0FBSyxFQUFLO1FBQ3hCLElBQU1RLElBQUksR0FDUlIsS0FBSyxDQUFDUyxVQUFVLEtBQUssSUFBSSxJQUN6QlQsS0FBSyxDQUFDVSxLQUFLLENBQUNGLElBQUksS0FBSyxrQ0FBa0MsR0FDbkRSLEtBQUssQ0FBQ1UsS0FBSyxDQUFDRixJQUFJLEdBQ2hCLGlCQUFpQjtRQUN2QixJQUFNRyxTQUFTLEdBQUcsUUFBUSxJQUFJWCxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDUyxVQUFVO1FBQ3hELElBQU1HLElBQUksR0FBRyxJQUFBQyw2QkFBa0IsRUFDN0JMLElBQUksRUFDSlIsS0FBSyxDQUFDYyxJQUFJLEVBQ1YsRUFBRSxFQUNGLEtBQUssRUFDTCxJQUFJLEVBQ0pILFNBQVMsRUFDVFgsS0FBSyxDQUFDZSxXQUFXLEVBQ2pCZixLQUFLLENBQUNnQixjQUNSLENBQUM7UUFFRCxJQUFNQyxXQUFXLEdBQUcsSUFBQUosNkJBQWtCLEVBQ3BDTCxJQUFJLEVBQ0pSLEtBQUssQ0FBQ2MsSUFBSSxFQUNWLEVBQUUsRUFDRixJQUFJLEVBQ0osS0FBSyxFQUNMSCxTQUFTLEVBQ1RYLEtBQUssQ0FBQ2UsV0FBVyxFQUNqQmYsS0FBSyxDQUFDZ0IsY0FDUixDQUFDO1FBRUQsSUFBSWhCLEtBQUssQ0FBQ2tCLFFBQVEsSUFBSWxCLEtBQUssQ0FBQ21CLFNBQVMsRUFBRTtVQUFBLElBQUFDLHNCQUFBO1VBQ3JDLElBQUluQyxNQUFNLEdBQUdvQyxTQUFTLENBQUNyQixLQUFLLENBQUM7VUFFN0JmLE1BQU0sQ0FBQ3FDLE9BQU8sQ0FBQ1YsSUFBSSxDQUFDO1VBQ3BCO1VBQ0E7VUFDQTNCLE1BQU0sQ0FBQ3NDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBTTtZQUMzQixJQUFJLENBQUN0QyxNQUFNLENBQUNJLFNBQVMsRUFBRTtjQUNyQkosTUFBTSxDQUFDSSxTQUFTLEdBQUcsSUFBSTtjQUN2QkosTUFBTSxDQUFDcUMsT0FBTyxDQUFDTCxXQUFXLENBQUM7WUFDN0I7VUFDRixDQUFDLENBQUM7VUFFRmhDLE1BQU0sQ0FBQ3NDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsWUFBTTtZQUFBLElBQUFDLHFCQUFBO1lBQzFCLElBQ0UsQ0FBQWxFLGdCQUFnQixhQUFoQkEsZ0JBQWdCLHdCQUFBa0UscUJBQUEsR0FBaEJsRSxnQkFBZ0IsQ0FBRU0sT0FBTyxjQUFBNEQscUJBQUEsdUJBQXpCQSxxQkFBQSxDQUEyQkMsV0FBVyxPQUFLeEMsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUV3QyxXQUFXLEdBQzlEO2NBQ0F4QyxNQUFNLENBQUNJLFNBQVMsR0FBRyxLQUFLO2NBQ3hCSixNQUFNLENBQUNxQyxPQUFPLENBQUNWLElBQUksQ0FBQztZQUN0QjtVQUNGLENBQUMsQ0FBQztVQUVGM0IsTUFBTSxDQUFDc0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFNO1lBQUEsSUFBQUcsc0JBQUE7WUFDdkIsSUFDRSxDQUFBcEUsZ0JBQWdCLGFBQWhCQSxnQkFBZ0Isd0JBQUFvRSxzQkFBQSxHQUFoQnBFLGdCQUFnQixDQUFFTSxPQUFPLGNBQUE4RCxzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCRCxXQUFXLE9BQUt4QyxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRXdDLFdBQVcsR0FDOUQ7Y0FDQXBFLGdCQUFnQixDQUFDLElBQUksQ0FBQztjQUN0QjBDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDLE1BQU07Y0FDTEEsaUJBQWlCLENBQUNDLEtBQUssQ0FBQztZQUMxQjtVQUNGLENBQUMsQ0FBQztVQUVGLENBQUFvQixzQkFBQSxHQUFBNUQsY0FBYyxDQUFDSSxPQUFPLGNBQUF3RCxzQkFBQSx1QkFBdEJBLHNCQUFBLENBQXdCTyxRQUFRLENBQUMxQyxNQUFNLENBQUM7UUFDMUM7TUFDRixDQUFDLENBQUM7SUFDSjtFQUNGLENBQUM7RUFFRCxJQUFNb0MsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlyQixLQUFhLEVBQUs7SUFDbkMsT0FBTzVCLGdCQUFDLENBQUNhLE1BQU0sQ0FBQyxDQUFDZSxLQUFLLENBQUNrQixRQUFRLEVBQUVsQixLQUFLLENBQUNtQixTQUFTLENBQUMsRUFBRTtNQUNqRGhDLGVBQWUsRUFBRWEsS0FBSyxDQUFDWjtJQUN6QixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTXdDLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFBLEVBQVM7SUFDckIsSUFBSSxDQUFDNUUsR0FBRyxJQUFJLENBQUNULEtBQUssRUFBRTtNQUNsQjtJQUNGO0lBRUEsSUFBTXNGLFdBQVcsR0FBRyxJQUFJQyxHQUFHLENBQUMsQ0FBQztJQUM3QnhGLE1BQU0sQ0FBQ2lFLE9BQU8sQ0FBQyxVQUFDd0IsQ0FBQztNQUFBLE9BQUtGLFdBQVcsQ0FBQ0csR0FBRyxDQUFDRCxDQUFDLENBQUMzQyxFQUFFLEVBQUUyQyxDQUFDLENBQUM7SUFBQSxFQUFDO0lBRS9DLElBQUl0RSxhQUFhLENBQUNHLE9BQU8sRUFBRTtNQUN6QixJQUFJWixHQUFHLENBQUNrRCxRQUFRLENBQUN6QyxhQUFhLENBQUNHLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZDWixHQUFHLENBQUNtRCxXQUFXLENBQUMxQyxhQUFhLENBQUNHLE9BQU8sQ0FBQztNQUN4QztJQUNGO0lBRUFILGFBQWEsQ0FBQ0csT0FBTyxHQUFHUSxnQkFBQyxDQUFDZ0MsWUFBWSxDQUFDLENBQUM7SUFDeEMzQyxhQUFhLENBQUNHLE9BQU8sQ0FBQ2EsS0FBSyxDQUFDekIsR0FBRyxDQUFDO0lBRWhDVCxLQUFLLENBQUNnRSxPQUFPLENBQUMsVUFBQzBCLElBQUksRUFBSztNQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO01BQ3RCLElBQU1DLFdBQVcsR0FBR1AsV0FBVyxDQUFDUSxHQUFHLENBQUNKLElBQUksQ0FBQ0ssZUFBZSxDQUFDO01BQ3pELElBQU1DLFdBQVcsR0FBR1YsV0FBVyxDQUFDUSxHQUFHLENBQUNKLElBQUksQ0FBQ08sZUFBZSxDQUFDO01BRXpELElBQUksQ0FBQ0osV0FBVyxJQUFJLENBQUNHLFdBQVcsRUFBRTtRQUNoQztNQUNGO01BRUEsSUFBTUUsT0FBTyxHQUFHLENBQ2QsQ0FBQ0wsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVsQixRQUFRLEVBQUVrQixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRWpCLFNBQVMsQ0FBQyxFQUMvQyxDQUFDb0IsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVyQixRQUFRLEVBQUVxQixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRXBCLFNBQVMsQ0FBQyxDQUNoRDtNQUVELElBQU11QixRQUFRLEdBQUd0RSxnQkFBQyxDQUFDc0UsUUFBUSxDQUFDRCxPQUFPLEVBQUU7UUFDbkNFLEtBQUssRUFBRSxPQUFPO1FBQ2RDLE1BQU0sRUFBRSxDQUFDO1FBQ1RDLE9BQU8sRUFBRSxHQUFHO1FBQ1pDLFlBQVksRUFBRTtNQUNoQixDQUFDLENBQUM7TUFFRixDQUFBWixxQkFBQSxHQUFBekUsYUFBYSxDQUFDRyxPQUFPLGNBQUFzRSxxQkFBQSx1QkFBckJBLHFCQUFBLENBQXVCUCxRQUFRLENBQUNlLFFBQVEsQ0FBQztNQUV6QyxJQUFNSyxTQUFTLEdBQUczRSxnQkFBQyxDQUFDNEUsaUJBQWlCLENBQUNOLFFBQVEsRUFBRTtRQUM5Q08sUUFBUSxFQUFFLENBQ1I7VUFDRUMsTUFBTSxFQUFFLEVBQUU7VUFDVkMsTUFBTSxFQUFFLEVBQUU7VUFDVkMsTUFBTSxFQUFFaEYsZ0JBQUMsQ0FBQ2lGLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDO1lBQ3pCQyxTQUFTLEVBQUUsQ0FBQztZQUNaQyxPQUFPLEVBQUUsS0FBSztZQUNkQyxXQUFXLEVBQUU7Y0FDWEMsTUFBTSxFQUFFLElBQUk7Y0FDWmYsS0FBSyxFQUFFLE1BQU07Y0FDYkMsTUFBTSxFQUFFLENBQUM7Y0FDVEMsT0FBTyxFQUFFO1lBQ1g7VUFDRixDQUFDO1FBQ0gsQ0FBQztNQUVMLENBQUMsQ0FBQztNQUVGLENBQUFWLHNCQUFBLEdBQUExRSxhQUFhLENBQUNHLE9BQU8sY0FBQXVFLHNCQUFBLHVCQUFyQkEsc0JBQUEsQ0FBdUJSLFFBQVEsQ0FBQ29CLFNBQVMsQ0FBQztJQUM1QyxDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBTVksUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztJQUNyQixJQUFJLENBQUMzRyxHQUFHLElBQUksQ0FBQ1IsS0FBSyxFQUFFO01BQ2xCO0lBQ0Y7SUFFQSxJQUFJa0IsYUFBYSxDQUFDRSxPQUFPLEVBQUU7TUFDekIsSUFBSVosR0FBRyxDQUFDa0QsUUFBUSxDQUFDeEMsYUFBYSxDQUFDRSxPQUFPLENBQUMsRUFBRTtRQUN2Q1osR0FBRyxDQUFDbUQsV0FBVyxDQUFDekMsYUFBYSxDQUFDRSxPQUFPLENBQUM7TUFDeEM7SUFDRjtJQUVBRixhQUFhLENBQUNFLE9BQU8sR0FBR1EsZ0JBQUMsQ0FBQ2dDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDMUMsYUFBYSxDQUFDRSxPQUFPLENBQUNhLEtBQUssQ0FBQ3pCLEdBQUcsQ0FBQztJQUVoQyxJQUFNNEcsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBcUM7TUFBQSxJQUFqQ3BILEtBQWMsR0FBQXFILFNBQUEsQ0FBQXZELE1BQUEsUUFBQXVELFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsRUFBRTtNQUN2QyxJQUFJRSxRQUFpQixHQUFHLEVBQUU7TUFFMUJ2SCxLQUFLLENBQUMrRCxPQUFPLENBQUMsVUFBQ3lELElBQVcsRUFBSztRQUM3QixJQUFJQSxJQUFJLENBQUNDLFVBQVUsQ0FBQzNELE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDOUJ5RCxRQUFRLENBQUNHLElBQUksQ0FBQ0YsSUFBSSxDQUFDO1FBQ3JCOztRQUVBO1FBQ0EsSUFBSUcsS0FBSyxDQUFDQyxPQUFPLENBQUNKLElBQUksQ0FBQ0ssU0FBUyxDQUFDLElBQUlMLElBQUksQ0FBQ0ssU0FBUyxDQUFDL0QsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUM5RHlELFFBQVEsR0FBR0EsUUFBUSxDQUFDTyxNQUFNLENBQUNWLFlBQVksQ0FBQ0ksSUFBSSxDQUFDSyxTQUFTLENBQUMsQ0FBQztRQUMxRDtNQUNGLENBQUMsQ0FBQzs7TUFFRjtNQUNBLFdBQUFFLG1CQUFBLENBQUF4SCxPQUFBLEVBQ0ssSUFBSStFLEdBQUcsQ0FBQ2lDLFFBQVEsQ0FBQy9HLEdBQUcsQ0FBQyxVQUFDZ0gsSUFBSTtRQUFBLE9BQUssQ0FBQ0EsSUFBSSxDQUFDUSxPQUFPLEVBQUVSLElBQUksQ0FBQztNQUFBLEVBQUMsQ0FBQyxDQUFDeEYsTUFBTSxDQUFDLENBQUM7SUFFckUsQ0FBQztJQUVELElBQU11RixRQUFRLEdBQUdILFlBQVksQ0FBQ3BILEtBQUssQ0FBQztJQUVwQ3VILFFBQVEsQ0FBQ3hELE9BQU8sQ0FBQyxVQUFDeUQsSUFBSSxFQUFLO01BQUEsSUFBQVMscUJBQUE7TUFDekIsSUFBTWpCLE9BQU8sR0FBR3BGLGdCQUFDLENBQUNvRixPQUFPLENBQUNRLElBQUksQ0FBQ0MsVUFBVSxFQUFFO1FBQ3pDdEIsS0FBSyxFQUFFLE9BQU87UUFDZEMsTUFBTSxFQUFFLENBQUM7UUFDVEMsT0FBTyxFQUFFLEdBQUc7UUFDWkMsWUFBWSxFQUFFLENBQUM7UUFDZjRCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCdkYsZUFBZSxFQUFFNkUsSUFBSSxDQUFDUTtNQUN4QixDQUFDLENBQUM7TUFFRmhCLE9BQU8sQ0FBQ21CLFdBQVcsQ0FBQ1gsSUFBSSxDQUFDWSxTQUFTLEVBQUU7UUFDbENDLFNBQVMsRUFBRSxJQUFJO1FBQ2ZDLFNBQVMsRUFBRSxRQUFRO1FBQ25CQyxTQUFTLEVBQUU7TUFDYixDQUFDLENBQUM7TUFFRixDQUFBTixxQkFBQSxHQUFBL0csYUFBYSxDQUFDRSxPQUFPLGNBQUE2RyxxQkFBQSx1QkFBckJBLHFCQUFBLENBQXVCOUMsUUFBUSxDQUFDNkIsT0FBTyxDQUFDO0lBQzFDLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNd0IsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztJQUNyQixJQUFJaEksR0FBRyxFQUFFO01BQ1AsSUFDRSxDQUFBUSxjQUFjLGFBQWRBLGNBQWMsdUJBQWRBLGNBQWMsQ0FBRUksT0FBTyxLQUN2QnVHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDNUcsY0FBYyxDQUFDSSxPQUFPLENBQUN5QyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQ2pEN0MsY0FBYyxDQUFDSSxPQUFPLENBQUN5QyxTQUFTLENBQUMsQ0FBQyxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxFQUM3QztRQUNBdEQsR0FBRyxDQUFDaUksU0FBUyxDQUFDekgsY0FBYyxDQUFDSSxPQUFPLENBQUM0QixTQUFTLENBQUMsQ0FBQyxDQUFDO01BQ25ELENBQUMsTUFBTTtRQUNMeEMsR0FBRyxDQUFDa0ksT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztNQUN6QztJQUNGO0VBQ0YsQ0FBQztFQUVELElBQUF2SCxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFJWCxHQUFHLEVBQUU7TUFDUDJHLFFBQVEsQ0FBQyxDQUFDO01BQ1YvQixRQUFRLENBQUMsQ0FBQztNQUNWM0IsVUFBVSxDQUFDLENBQUM7TUFDWitFLFFBQVEsQ0FBQyxDQUFDO0lBQ1o7RUFDRixDQUFDLEVBQUUsQ0FBQzFJLE1BQU0sRUFBRUUsS0FBSyxFQUFFRCxLQUFLLEVBQUVTLEdBQUcsQ0FBQyxDQUFDO0VBRS9CLE9BQU9BLEdBQUc7QUFDWixDQUFDO0FBQUNtSSxPQUFBLENBQUEvSSxNQUFBLEdBQUFBLE1BQUEifQ==
245
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIm1hcCIsInNldE1hcCIsInVzZVN0YXRlIiwiZm9jdXNlZE1hcmtlciIsInNldEZvY3VzZWRNYXJrZXIiLCJmb2N1c2VkTWFya2VyUmVmIiwidXNlUmVmIiwicG9pbnRzTGF5ZXJSZWYiLCJlZGdlc0xheWVyUmVmIiwiYXJlYXNMYXllclJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJyZXNldEFsbE90aGVycyIsIm1hcFR5cGVzIiwiYmFzZU1hcHMiLCJsZWFmbGV0TWFwIiwibWFwRGVmYXVsdCIsInNhdGVsbGl0ZSIsIm1hcFRlbXAiLCJMIiwicmVuZGVyZXIiLCJjYW52YXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJhZGRUbyIsImNvbnRyb2wiLCJsYXllcnMiLCJwb3NpdGlvbiIsIm9mZiIsInJlbW92ZSIsIl9wb2ludHNMYXllclJlZiRjdXJyZSIsImVhY2hMYXllciIsIm1hcmtlciIsIm9wdGlvbnMiLCJrYW5kb19vYmplY3RfaWQiLCJpZCIsIl9pc0luc2lkZSIsImZpcmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUyIiwiZ2V0Qm91bmRzIiwiY29udGFpbnMiLCJnZXRMYXRMbmciLCJmbHlUbyIsImdldFpvb20iLCJkdXJhdGlvbiIsImFuaW1hdGUiLCJoYW5kbGVNYXJrZXJDbGljayIsInBvaW50IiwiYWRkTWFya2VycyIsImhhc0xheWVyIiwicmVtb3ZlTGF5ZXIiLCJmZWF0dXJlR3JvdXAiLCJnZXRMYXllcnMiLCJsZW5ndGgiLCJmb3JFYWNoIiwidHlwZSIsImhhc19kZXZpY2UiLCJncm91cCIsImhhc0lzc3VlcyIsImljb24iLCJnZXRQb2ludEljb25CeVR5cGUiLCJuYW1lIiwiaGFzX3NhbXBsZXIiLCJzaG91bGRfaW5zdGFsbCIsImZvY3VzZWRJY29uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUzIiwiZ2V0TWFya2VyIiwic2V0SWNvbiIsIm9uIiwiX2ZvY3VzZWRNYXJrZXJSZWYkY3VyIiwiX2xlYWZsZXRfaWQiLCJfZm9jdXNlZE1hcmtlclJlZiRjdXIyIiwiYWRkTGF5ZXIiLCJhZGRFZGdlcyIsInBvaW50TG9va3VwIiwiTWFwIiwicCIsInNldCIsImVkZ2UiLCJfZWRnZXNMYXllclJlZiRjdXJyZW4iLCJfZWRnZXNMYXllclJlZiRjdXJyZW4yIiwic291cmNlUG9pbnQiLCJnZXQiLCJzb3VyY2VfcG9pbnRfaWQiLCJ0YXJnZXRQb2ludCIsInRhcmdldF9wb2ludF9pZCIsImxhdGxuZ3MiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0Iiwib3BhY2l0eSIsInNtb290aEZhY3RvciIsImRlY29yYXRvciIsInBvbHlsaW5lRGVjb3JhdG9yIiwicGF0dGVybnMiLCJvZmZzZXQiLCJyZXBlYXQiLCJzeW1ib2wiLCJTeW1ib2wiLCJhcnJvd0hlYWQiLCJwaXhlbFNpemUiLCJwb2x5Z29uIiwicGF0aE9wdGlvbnMiLCJzdHJva2UiLCJhZGRBcmVhcyIsImZsYXR0ZW5BcmVhcyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImFsbEFyZWFzIiwiYXJlYSIsInNoYXBlX2RhdGEiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5Iiwic3ViX2FyZWFzIiwiY29uY2F0IiwiYXJlYV9pZCIsIl9hcmVhc0xheWVyUmVmJGN1cnJlbiIsImludGVyYWN0aXZlIiwiYmluZFRvb2x0aXAiLCJhcmVhX25hbWUiLCJwZXJtYW5lbnQiLCJkaXJlY3Rpb24iLCJjbGFzc05hbWUiLCJmb2N1c01hcCIsImZpdEJvdW5kcyIsInNldFZpZXciLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL01hcC91c2VNYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMLCB7IE1hcmtlciB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFBvaW50SWNvbkJ5VHlwZSB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRJY29uJztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICdzcmMvc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGJhc2VNYXBzIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcFV0aWxzJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcblxuZXhwb3J0IGNvbnN0IHVzZU1hcCA9IChcbiAgbWFwUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgYXJlYXM6IElBcmVhW10sXG4gIHNlbGVjdGVkUG9pbnQ6IElQb2ludCB8IG51bGwsXG4gIHVwZGF0ZVNlbGVjdGVkUG9pbnQ6IChwb2ludDogSVBvaW50KSA9PiB2b2lkLFxuKTogTC5NYXAgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbbWFwLCBzZXRNYXBdID0gdXNlU3RhdGU8TC5NYXA+KCk7XG4gIGNvbnN0IFtmb2N1c2VkTWFya2VyLCBzZXRGb2N1c2VkTWFya2VyXSA9IHVzZVN0YXRlPE1hcmtlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBmb2N1c2VkTWFya2VyUmVmID0gdXNlUmVmPE1hcmtlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBwb2ludHNMYXllclJlZiA9IHVzZVJlZjxMLkZlYXR1cmVHcm91cD4oKTtcbiAgY29uc3QgZWRnZXNMYXllclJlZiA9IHVzZVJlZjxMLkZlYXR1cmVHcm91cD4oKTtcbiAgY29uc3QgYXJlYXNMYXllclJlZiA9IHVzZVJlZjxMLkZlYXR1cmVHcm91cD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZvY3VzZWRNYXJrZXJSZWYuY3VycmVudCA9IGZvY3VzZWRNYXJrZXI7XG4gICAgcmVzZXRBbGxPdGhlcnMoKTtcbiAgfSwgW2ZvY3VzZWRNYXJrZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUeXBlcyA9IGJhc2VNYXBzKGxlYWZsZXRNYXAubWFwRGVmYXVsdCwgbGVhZmxldE1hcC5zYXRlbGxpdGUpO1xuICAgIGNvbnN0IG1hcFRlbXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwgeyByZW5kZXJlcjogTC5jYW52YXMoKSB9KTtcblxuICAgIE9iamVjdC52YWx1ZXMobWFwVHlwZXMpWzBdLmFkZFRvKG1hcFRlbXApO1xuXG4gICAgTC5jb250cm9sLmxheWVycyhtYXBUeXBlcywge30sIHsgcG9zaXRpb246ICdib3R0b21yaWdodCcgfSkuYWRkVG8obWFwVGVtcCk7XG5cbiAgICBzZXRNYXAobWFwVGVtcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFtYXBUZW1wKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hcFRlbXAub2ZmKCk7XG4gICAgICBtYXBUZW1wLnJlbW92ZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICBjb25zdCByZXNldEFsbE90aGVycyA9ICgpID0+IHtcbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKG1hcmtlcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBtYXJrZXIub3B0aW9ucy5rYW5kb19vYmplY3RfaWQgIT09IHNlbGVjdGVkUG9pbnQ/LmlkICYmXG4gICAgICAgIG1hcmtlci5faXNJbnNpZGVcbiAgICAgICkge1xuICAgICAgICBtYXJrZXIuZmlyZSgnbW91c2VvdXQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZFBvaW50ID09PSBudWxsKSB7XG4gICAgICBzZXRGb2N1c2VkTWFya2VyKG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKG1hcmtlcikgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2VsZWN0ZWRQb2ludCAmJlxuICAgICAgICAgIG1hcmtlci5vcHRpb25zLmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRQb2ludD8uaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKCFtYXA/LmdldEJvdW5kcygpLmNvbnRhaW5zKG1hcmtlci5nZXRMYXRMbmcoKSkpIHtcbiAgICAgICAgICAgIG1hcD8uZmx5VG8obWFya2VyLmdldExhdExuZygpLCBtYXAuZ2V0Wm9vbSgpLCB7XG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAwLjUsXG4gICAgICAgICAgICAgIGFuaW1hdGU6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcmtlci5maXJlKCdtb3VzZW92ZXInKTtcbiAgICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG1hcmtlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZFBvaW50XSk7XG5cbiAgY29uc3QgaGFuZGxlTWFya2VyQ2xpY2sgPSAocG9pbnQpID0+IHtcbiAgICB1cGRhdGVTZWxlY3RlZFBvaW50KHBvaW50KTtcbiAgfTtcblxuICBjb25zdCBhZGRNYXJrZXJzID0gKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFwb2ludHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihwb2ludHNMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5hZGRUbyhtYXApO1xuXG4gICAgaWYgKCFwb2ludHNMYXllclJlZi5jdXJyZW50LmdldExheWVycygpLmxlbmd0aCkge1xuICAgICAgcG9pbnRzLmZvckVhY2goKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPVxuICAgICAgICAgIHBvaW50Lmhhc19kZXZpY2UgPT09IHRydWUgfHxcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnXG4gICAgICAgICAgICA/IHBvaW50Lmdyb3VwLnR5cGVcbiAgICAgICAgICAgIDogJ0dyb3Vwczo6ZGVmYXVsdCc7XG4gICAgICAgIGNvbnN0IGhhc0lzc3VlcyA9ICdpc3N1ZXMnIGluIHBvaW50ICYmICFwb2ludC5oYXNfZGV2aWNlO1xuICAgICAgICBjb25zdCBpY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGhhc0lzc3VlcyxcbiAgICAgICAgICBwb2ludC5oYXNfc2FtcGxlcixcbiAgICAgICAgICBwb2ludC5zaG91bGRfaW5zdGFsbCxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBmb2N1c2VkSWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHBvaW50Lm5hbWUsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICBoYXNJc3N1ZXMsXG4gICAgICAgICAgcG9pbnQuaGFzX3NhbXBsZXIsXG4gICAgICAgICAgcG9pbnQuc2hvdWxkX2luc3RhbGwsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHBvaW50LmxhdGl0dWRlICYmIHBvaW50LmxvbmdpdHVkZSkge1xuICAgICAgICAgIGxldCBtYXJrZXIgPSBnZXRNYXJrZXIocG9pbnQpO1xuXG4gICAgICAgICAgbWFya2VyLnNldEljb24oaWNvbik7XG4gICAgICAgICAgLy8gVGhlIHVzZSBvZiBtYXJrZXIuX2lzSW5zaWRlIGlzIHRvIG92ZXJjb21lIHRoZSBpc3N1ZSB0aGF0IG1vdXNlb3ZlciBpcyBlbmRsZXNzbHkgdHJpZ2dlcmVkXG4gICAgICAgICAgLy8gYW5kIHdlIG5lZWQgaXQgb25seSBvbmNlXG4gICAgICAgICAgbWFya2VyLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1hcmtlci5faXNJbnNpZGUpIHtcbiAgICAgICAgICAgICAgbWFya2VyLl9pc0luc2lkZSA9IHRydWU7XG4gICAgICAgICAgICAgIG1hcmtlci5zZXRJY29uKGZvY3VzZWRJY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcmtlci5vbignbW91c2VvdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGZvY3VzZWRNYXJrZXJSZWY/LmN1cnJlbnQ/Ll9sZWFmbGV0X2lkICE9PSBtYXJrZXI/Ll9sZWFmbGV0X2lkXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgbWFya2VyLl9pc0luc2lkZSA9IGZhbHNlO1xuICAgICAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGZvY3VzZWRNYXJrZXJSZWY/LmN1cnJlbnQ/Ll9sZWFmbGV0X2lkID09PSBtYXJrZXI/Ll9sZWFmbGV0X2lkXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc2V0Rm9jdXNlZE1hcmtlcihudWxsKTtcbiAgICAgICAgICAgICAgaGFuZGxlTWFya2VyQ2xpY2sobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBoYW5kbGVNYXJrZXJDbGljayhwb2ludCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihtYXJrZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0TWFya2VyID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gTC5tYXJrZXIoW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdLCB7XG4gICAgICBrYW5kb19vYmplY3RfaWQ6IHBvaW50LmlkLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGFkZEVkZ2VzID0gKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFlZGdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50TG9va3VwID0gbmV3IE1hcCgpO1xuICAgIHBvaW50cy5mb3JFYWNoKChwKSA9PiBwb2ludExvb2t1cC5zZXQocC5pZCwgcCkpO1xuXG4gICAgaWYgKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnRhcmdldF9wb2ludF9pZCk7XG5cbiAgICAgIGlmICghc291cmNlUG9pbnQgfHwgIXRhcmdldFBvaW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGF0bG5ncyA9IFtcbiAgICAgICAgW3NvdXJjZVBvaW50Py5sYXRpdHVkZSwgc291cmNlUG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICAgIFt0YXJnZXRQb2ludD8ubGF0aXR1ZGUsIHRhcmdldFBvaW50Py5sb25naXR1ZGVdLFxuICAgICAgXTtcblxuICAgICAgY29uc3QgcG9seWxpbmUgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgb3BhY2l0eTogMC41LFxuICAgICAgICBzbW9vdGhGYWN0b3I6IDEsXG4gICAgICB9KTtcblxuICAgICAgZWRnZXNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihwb2x5bGluZSk7XG5cbiAgICAgIGNvbnN0IGRlY29yYXRvciA9IEwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmUsIHtcbiAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiA0LFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjNTU1JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC44LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKGRlY29yYXRvcik7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYWRkQXJlYXMgPSAoKSA9PiB7XG4gICAgaWYgKCFtYXAgfHwgIWFyZWFzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihhcmVhc0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihhcmVhc0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFyZWFzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBjb25zdCBmbGF0dGVuQXJlYXMgPSAoYXJlYXM6IElBcmVhW10gPSBbXSk6IElBcmVhW10gPT4ge1xuICAgICAgbGV0IGFsbEFyZWFzOiBJQXJlYVtdID0gW107XG5cbiAgICAgIGFyZWFzLmZvckVhY2goKGFyZWE6IElBcmVhKSA9PiB7XG4gICAgICAgIGlmIChhcmVhLnNoYXBlX2RhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFsbEFyZWFzLnB1c2goYXJlYSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc3ViX2FyZWFzLCByZWN1cnNlIGFuZCBjb25jYXRlbmF0ZVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhcmVhLnN1Yl9hcmVhcykgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFsbEFyZWFzID0gYWxsQXJlYXMuY29uY2F0KGZsYXR0ZW5BcmVhcyhhcmVhLnN1Yl9hcmVhcykpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZXNcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLm5ldyBNYXAoYWxsQXJlYXMubWFwKChhcmVhKSA9PiBbYXJlYS5hcmVhX2lkLCBhcmVhXSkpLnZhbHVlcygpLFxuICAgICAgXTtcbiAgICB9O1xuXG4gICAgY29uc3QgYWxsQXJlYXMgPSBmbGF0dGVuQXJlYXMoYXJlYXMpO1xuXG4gICAgYWxsQXJlYXMuZm9yRWFjaCgoYXJlYSkgPT4ge1xuICAgICAgY29uc3QgcG9seWdvbiA9IEwucG9seWdvbihhcmVhLnNoYXBlX2RhdGEsIHtcbiAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgb3BhY2l0eTogMC44LFxuICAgICAgICBzbW9vdGhGYWN0b3I6IDEsXG4gICAgICAgIGludGVyYWN0aXZlOiBmYWxzZSxcbiAgICAgICAga2FuZG9fb2JqZWN0X2lkOiBhcmVhLmFyZWFfaWQsXG4gICAgICB9KTtcblxuICAgICAgcG9seWdvbi5iaW5kVG9vbHRpcChhcmVhLmFyZWFfbmFtZSwge1xuICAgICAgICBwZXJtYW5lbnQ6IHRydWUsXG4gICAgICAgIGRpcmVjdGlvbjogJ2NlbnRlcicsXG4gICAgICAgIGNsYXNzTmFtZTogJ2FyZWEtdG9vbHRpcCcsXG4gICAgICB9KTtcblxuICAgICAgYXJlYXNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihwb2x5Z29uKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBmb2N1c01hcCA9ICgpID0+IHtcbiAgICBpZiAobWFwKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHBvaW50c0xheWVyUmVmPy5jdXJyZW50ICYmXG4gICAgICAgIEFycmF5LmlzQXJyYXkocG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKSkgJiZcbiAgICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKS5sZW5ndGggPiAwXG4gICAgICApIHtcbiAgICAgICAgbWFwLmZpdEJvdW5kcyhwb2ludHNMYXllclJlZi5jdXJyZW50LmdldEJvdW5kcygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1hcC5zZXRWaWV3KFszMi4yMTkxNTcsIDM0Ljk4MjQ4MV0sIDEyKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWFwKSB7XG4gICAgICBhZGRBcmVhcygpO1xuICAgICAgYWRkRWRnZXMoKTtcbiAgICAgIGFkZE1hcmtlcnMoKTtcbiAgICAgIGZvY3VzTWFwKCk7XG4gICAgfVxuICB9LCBbcG9pbnRzLCBhcmVhcywgZWRnZXMsIG1hcF0pO1xuXG4gIHJldHVybiBtYXA7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBS08sTUFBTUssTUFBTSxHQUFHQSxDQUNwQkMsTUFBdUMsRUFDdkNDLE1BQWdCLEVBQ2hCQyxLQUFjLEVBQ2RDLEtBQWMsRUFDZEMsYUFBNEIsRUFDNUJDLG1CQUE0QyxLQUN0QjtFQUN0QixNQUFNLENBQUNDLEdBQUcsRUFBRUMsTUFBTSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFRLENBQUM7RUFDdkMsTUFBTSxDQUFD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