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

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