@kando-env/kando-ui 1.2.235 → 1.2.236

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 (592) hide show
  1. package/lib/Router.js +4 -66
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +11 -41
  3. package/lib/Widgets/EventsRow/EventsRow.js +14 -41
  4. package/lib/Widgets/Map/GraphUtils.js +1 -4
  5. package/lib/Widgets/Map/Map.js +117 -62
  6. package/lib/Widgets/Map/Map.scss +67 -0
  7. package/lib/Widgets/Map/MapUtils.js +28 -67
  8. package/lib/Widgets/Map/areas/AreaPolygon.js +7 -27
  9. package/lib/Widgets/Map/areas/AreaPolygons.js +10 -23
  10. package/lib/Widgets/Map/edges/Edge.js +10 -31
  11. package/lib/Widgets/Map/edges/Edge.scss +7 -2
  12. package/lib/Widgets/Map/edges/Edges.js +24 -18
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +7 -22
  14. package/lib/Widgets/Map/events/Event.js +7 -23
  15. package/lib/Widgets/Map/events/EventIndicator.js +20 -43
  16. package/lib/Widgets/Map/events/EventPath.js +5 -20
  17. package/lib/Widgets/Map/events/EventUtils.js +26 -69
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +10 -17
  19. package/lib/Widgets/Map/events/PointOfEvent.js +11 -37
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +4 -14
  21. package/lib/Widgets/Map/events/Snail.js +7 -19
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +15 -54
  23. package/lib/Widgets/Map/map/FloatingGraph.js +3 -19
  24. package/lib/Widgets/Map/map/GraphDateButton.js +3 -9
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +5 -11
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +4 -10
  27. package/lib/Widgets/Map/points/PointIcon.js +44 -0
  28. package/lib/Widgets/Map/points/PointIcon.scss +230 -0
  29. package/lib/Widgets/Map/points/PointMarker.js +22 -35
  30. package/lib/Widgets/Map/points/PointMarkers.js +62 -26
  31. package/lib/Widgets/Map/points/PointUtils.js +85 -106
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +15 -49
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +4 -19
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +1 -13
  35. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +1 -5
  36. package/lib/Widgets/MostPolluting/Areas/Areas.js +19 -53
  37. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  39. package/lib/Widgets/MostPolluting/Areas/styles.js +1 -7
  40. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +3 -11
  41. package/lib/Widgets/MostPolluting/Factories/Factories.js +30 -64
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +4 -21
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +1 -10
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +4 -17
  45. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -7
  46. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +1 -1
  47. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  48. package/lib/Widgets/MostPolluting/Factories/styles.js +1 -7
  49. package/lib/Widgets/MostPolluting/MostPolluting.js +22 -18
  50. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +13 -17
  51. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +2 -9
  52. package/lib/Widgets/MostPolluting/ShowMore/styles.js +1 -5
  53. package/lib/Widgets/MostPolluting/assets/index.js +17 -28
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.js +1 -16
  55. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +15 -26
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +4 -26
  57. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +25 -33
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +4 -20
  59. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +29 -43
  60. package/lib/Widgets/MostPolluting/models.js +1 -1
  61. package/lib/Widgets/MostPolluting/styles.js +1 -7
  62. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +2 -9
  63. package/lib/Widgets/PotentialImpactSummary/Icon.js +1 -11
  64. package/lib/Widgets/PotentialImpactSummary/index.js +7 -29
  65. package/lib/Widgets/PotentialImpactSummary/index.test.js +17 -36
  66. package/lib/Widgets/PotentialImpactSummary/styles.js +2 -15
  67. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  68. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +4 -10
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +7 -21
  70. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +19 -29
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +15 -24
  72. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +7 -21
  73. package/lib/Widgets/QualitySummary/QualitySummary.js +8 -24
  74. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +2 -2
  75. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  76. package/lib/Widgets/QualitySummary/styles.js +2 -15
  77. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +9 -20
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +9 -34
  79. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +9 -18
  80. package/lib/Widgets/UtilityInformation/UtilityInformation.js +22 -45
  81. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  82. package/lib/Widgets/UtilityInformation/styles.js +2 -22
  83. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +2 -2
  84. package/lib/assets/icons/index.js +5 -8
  85. package/lib/assets/icons/kandoStepper/index.js +9 -14
  86. package/lib/assets/icons/pin/pin-matash-white.svg +8 -42
  87. package/lib/assets/icons/plus_v.svg +13 -0
  88. package/lib/assets/icons/water_reuse.svg +27 -0
  89. package/lib/assets/map/pin-matash-clicked.svg +12 -0
  90. package/lib/assets/map/pin-matash-white.svg +8 -28
  91. package/lib/assets/map/pin-plant-clicked.svg +10 -0
  92. package/lib/assets/map/pin-plant-white.svg +6 -28
  93. package/lib/assets/map/pin-suction-clicked.svg +10 -0
  94. package/lib/assets/map/pin-suction.svg +6 -23
  95. package/lib/assets/map/pin-water-clicked.svg +11 -0
  96. package/lib/assets/map/pin-water.svg +7 -17
  97. package/lib/assets/point_icons/WWTP-icon.svg +8 -21
  98. package/lib/assets/point_icons/factory-icon.svg +6 -21
  99. package/lib/assets/point_icons/pump-station-icon.svg +6 -16
  100. package/lib/components/ApplyButton/ApplyButton.js +5 -11
  101. package/lib/components/ApplyButton/index.js +1 -4
  102. package/lib/components/Backdrop/Backdrop.js +2 -8
  103. package/lib/components/ContentLoader/ContentLoader.js +7 -12
  104. package/lib/components/ContentLoader/index.js +1 -2
  105. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +7 -14
  106. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +2 -8
  107. package/lib/components/CustomInputs/DoubleTabs/styles.js +2 -10
  108. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +5 -18
  109. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +1 -5
  110. package/lib/components/CustomInputs/Search/Search.js +13 -38
  111. package/lib/components/CustomInputs/Search/index.js +1 -4
  112. package/lib/components/CustomInputs/Select/Select.js +33 -33
  113. package/lib/components/CustomInputs/Select/Select.stories.js +2 -8
  114. package/lib/components/DamageType/DamageType.js +37 -76
  115. package/lib/components/DamageType/index.js +1 -4
  116. package/lib/components/DataLoaderError/DataLoaderError.js +4 -10
  117. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +6 -16
  118. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +17 -37
  119. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +12 -37
  120. package/lib/components/DischargeHeatmap/HighchartsOptions.js +6 -10
  121. package/lib/components/DischargeHeatmap/index.js +1 -4
  122. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -4
  123. package/lib/components/DischargeHeatmap/popupText.js +1 -16
  124. package/lib/components/DischargeHeatmap/titles.js +1 -8
  125. package/lib/components/DischargeHeatmap/types.js +1 -1
  126. package/lib/components/ErrorBoundary.js +3 -15
  127. package/lib/components/Events/Events.js +5 -30
  128. package/lib/components/Events/index.js +1 -4
  129. package/lib/components/Graph/Graph.js +31 -74
  130. package/lib/components/Graph/index.js +1 -4
  131. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +1 -7
  132. package/lib/components/Header/Breadcrumbs/index.js +1 -4
  133. package/lib/components/Header/DoubleTabs/DoubleTabs.js +14 -30
  134. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +2 -8
  135. package/lib/components/Header/DoubleTabs/styles.js +2 -10
  136. package/lib/components/Header/Header.js +1 -7
  137. package/lib/components/Header/Header.stories.js +2 -8
  138. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +1 -11
  139. package/lib/components/Header/InfoBar/InfoBar.js +10 -30
  140. package/lib/components/Header/InfoBar/Search/Control.js +2 -13
  141. package/lib/components/Header/InfoBar/Search/GroupLabel.js +1 -12
  142. package/lib/components/Header/InfoBar/Search/Search.js +5 -26
  143. package/lib/components/Header/InfoBar/Search/SearchContainer.js +4 -21
  144. package/lib/components/Header/InfoBar/Search/index.js +1 -4
  145. package/lib/components/Header/InfoBar/Search/searchStyle.js +1 -4
  146. package/lib/components/Header/KandoNavbar/KandoNavbar.js +46 -91
  147. package/lib/components/Header/KandoNavbar/index.js +1 -4
  148. package/lib/components/Header/Slideshow/Slideshow.js +31 -67
  149. package/lib/components/Header/Slideshow/index.js +1 -4
  150. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +1 -7
  151. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +2 -15
  152. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +1 -15
  153. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +7 -24
  154. package/lib/components/Header/Toolbar/Toolbar.js +46 -84
  155. package/lib/components/InfoBar/InfoBar.js +8 -23
  156. package/lib/components/InfoBar/InfoBar.stories.js +2 -8
  157. package/lib/components/KandoModal/KandoModal.js +19 -42
  158. package/lib/components/KandoModal/index.js +1 -4
  159. package/lib/components/Link.js +2 -11
  160. package/lib/components/Links/CustomRedirect/CustomRedirect.js +3 -12
  161. package/lib/components/Links/StyledLink/StyledLink.js +6 -16
  162. package/lib/components/Links/StyledNavLink/StyledNavLink.js +4 -14
  163. package/lib/components/LiveEvents/CarouselSlide.js +5 -11
  164. package/lib/components/LiveEvents/LiveEvents.js +1 -10
  165. package/lib/components/LiveEvents/index.js +1 -4
  166. package/lib/components/LoaderByPercent/LoaderByPercent.js +13 -23
  167. package/lib/components/Map/Map.js +12 -26
  168. package/lib/components/Map/index.js +1 -4
  169. package/lib/components/Modal/Modal.js +3 -10
  170. package/lib/components/NarrowHeader.js +1 -12
  171. package/lib/components/PointInfo/PointInfo.js +10 -22
  172. package/lib/components/PointInfo/index.js +1 -4
  173. package/lib/components/PopupModal/PopupModal.js +6 -17
  174. package/lib/components/PopupModal/PopupModal.stories.js +2 -11
  175. package/lib/components/Sector/Sector.js +4 -13
  176. package/lib/components/Sector/Sector.test.js +3 -8
  177. package/lib/components/Sector/index.js +1 -4
  178. package/lib/components/Sector/sectorIcons.js +1 -27
  179. package/lib/components/SevereEvent/Eta/Eta.js +20 -40
  180. package/lib/components/SevereEvent/Eta/styles.js +1 -5
  181. package/lib/components/SevereEvent/SevereEvent.js +15 -36
  182. package/lib/components/Spinner/Spinner.js +5 -10
  183. package/lib/components/Spinner/Spinner.stories.js +2 -8
  184. package/lib/components/Spinner/index.js +1 -4
  185. package/lib/components/Spinner/styles.js +1 -9
  186. package/lib/components/Tabs/Tabs.js +4 -24
  187. package/lib/components/Tabs/Tabs.stories.js +2 -8
  188. package/lib/components/Tabs/assets/index.js +1 -6
  189. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +2 -12
  190. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +12 -43
  191. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +12 -36
  192. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +1 -4
  193. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +9 -29
  194. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +4 -9
  195. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +1 -4
  196. package/lib/components/TimeRangeSelector/TimeRangeList.js +4 -13
  197. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +11 -24
  198. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +11 -36
  199. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +2 -10
  200. package/lib/components/TimeRangeSelector/constants.js +2 -2
  201. package/lib/components/TimeRangeSelector/index.js +1 -4
  202. package/lib/components/Toggle/Toggle.js +7 -21
  203. package/lib/components/Toggle/index.js +1 -4
  204. package/lib/components/TrendGraph/TrendGraph.js +16 -49
  205. package/lib/components/TrendGraph/index.js +1 -4
  206. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +13 -37
  207. package/lib/components/TrendGraphNVL/index.js +1 -4
  208. package/lib/development-environment/index.js +1 -13
  209. package/lib/development-environment/mock/browser.js +1 -8
  210. package/lib/development-environment/mock/get.js +1 -5
  211. package/lib/development-environment/mock/handlers.js +1 -26
  212. package/lib/development-environment/mock/mockBus.js +2 -7
  213. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +1 -1
  214. package/lib/development-environment/mock/mockObjects/areaInformation.js +1 -1
  215. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +1 -1
  216. package/lib/development-environment/mock/mockObjects/areaSitesData.js +1 -1
  217. package/lib/development-environment/mock/mockObjects/areasJson.js +1 -1
  218. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +1 -1
  219. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +1 -1
  220. package/lib/development-environment/mock/mockObjects/data-menuData.js +1 -1
  221. package/lib/development-environment/mock/mockObjects/data-search.js +1 -1
  222. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +1 -1
  223. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +1 -1
  224. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +1 -1
  225. package/lib/development-environment/mock/mockObjects/eventsJson.js +1 -1
  226. package/lib/development-environment/mock/mockObjects/metascore.js +1 -1
  227. package/lib/development-environment/mock/mockObjects/permissionsJson.js +1 -1
  228. package/lib/development-environment/mock/mockObjects/pointsJson.js +1 -1
  229. package/lib/development-environment/mock/mockObjects/site-info.js +1 -1
  230. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +1 -1
  231. package/lib/development-environment/togly/ToglyDashboard.js +4 -22
  232. package/lib/development-environment/togly/ToglyItem.js +5 -25
  233. package/lib/development-environment/togly/flags.js +1 -1
  234. package/lib/development-environment/togly/init.js +1 -6
  235. package/lib/development-environment/togly/macro.js +7 -9
  236. package/lib/development-environment/togly/useDoubleKeyDown.js +1 -8
  237. package/lib/development-environment/togly/useLocalStorage.js +12 -19
  238. package/lib/hooks/useApi.js +10 -29
  239. package/lib/hooks/useApiWithDashboardQuery.js +10 -30
  240. package/lib/hooks/useClickOutside.js +1 -5
  241. package/lib/hooks/useInitializeHeaders.js +1 -7
  242. package/lib/hooks/useKandoFetch.js +13 -27
  243. package/lib/hooks/useMap.js +11 -52
  244. package/lib/hooks/useNavContext.js +13 -22
  245. package/lib/hooks/useQueryURL.js +1 -4
  246. package/lib/hooks/useRemoveExistingLayers.js +2 -7
  247. package/lib/hooks/useUpdateEventBodyTail.js +1 -10
  248. package/lib/hooks/useUserTimeZone.js +1 -9
  249. package/lib/hooks/useUserTimeZone.test.js +1 -9
  250. package/lib/hooks/useWindowSize.js +14 -19
  251. package/lib/i18n/en.json +39 -11
  252. package/lib/i18n/en_uk.json +26 -3
  253. package/lib/i18n/fr.json +25 -2
  254. package/lib/i18n/he.json +32 -2
  255. package/lib/i18n/it.json +25 -2
  256. package/lib/index.js +21 -29
  257. package/lib/macros/getVersion.js +2 -3
  258. package/lib/models/IAction.js +1 -1
  259. package/lib/models/IAppState.js +1 -1
  260. package/lib/pages/AreaPage/AreaPage.js +5 -34
  261. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +6 -17
  262. package/lib/pages/AreaPage/Dashboard/Dashboard.js +2 -23
  263. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +11 -35
  264. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +6 -8
  265. package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +46 -65
  266. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +1 -10
  267. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +3 -15
  268. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -7
  269. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  270. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +1 -1
  271. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +2 -10
  272. package/lib/pages/AssessmentPage/AssessmentPage.js +5 -30
  273. package/lib/pages/CannyWidget/Feedback.js +10 -25
  274. package/lib/pages/CovidPage/CovidPage.js +1 -14
  275. package/lib/pages/CovidPage/components/Body.js +9 -33
  276. package/lib/pages/CovidPage/components/Map.js +20 -38
  277. package/lib/pages/CovidPage/components/Sidebar.js +4 -18
  278. package/lib/pages/CovidPage/components/Summary.js +8 -29
  279. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +13 -37
  280. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +1 -4
  281. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +13 -41
  282. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +1 -4
  283. package/lib/pages/CovidPage/components/areas/Area.js +6 -33
  284. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +4 -45
  285. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +5 -18
  286. package/lib/pages/CovidPage/components/areas/AreasList.js +14 -33
  287. package/lib/pages/CovidPage/components/areas/Sort.js +5 -19
  288. package/lib/pages/CovidPage/components/nvlStatusHelper.js +2 -11
  289. package/lib/pages/EventsPage/Body/Body.js +2 -19
  290. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +11 -28
  291. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +11 -31
  292. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +4 -11
  293. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +3 -11
  294. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +5 -10
  295. package/lib/pages/EventsPage/DragAndDropArea/index.js +1 -4
  296. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +26 -36
  297. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +5 -24
  298. package/lib/pages/EventsPage/EventsPage.js +1 -13
  299. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +9 -32
  300. package/lib/pages/EventsPage/events/MoreInfo.js +1 -19
  301. package/lib/pages/EventsPage/events/Sidebar.js +5 -18
  302. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +5 -29
  303. package/lib/pages/EventsPage/events/event_info/EventDetails.js +8 -32
  304. package/lib/pages/EventsPage/events/event_info/EventInfo.js +14 -42
  305. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +2 -14
  306. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +10 -40
  307. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +1 -12
  308. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +8 -30
  309. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +1 -8
  310. package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/LineChartYear/LineChartYear.js +7 -27
  311. package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/MockHistoryInformation.js +2 -10
  312. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +5 -21
  313. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsLineChart.js +4 -23
  314. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +4 -22
  315. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +6 -33
  316. package/lib/pages/EventsPage/events/event_info/samplings/Sampling.js +3 -15
  317. package/lib/pages/EventsPage/events/event_info/samplings/Samplings.js +2 -10
  318. package/lib/pages/EventsPage/events/event_info/sources/Source.js +8 -31
  319. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +4 -20
  320. package/lib/pages/EventsPage/events/events_list/EventItem.js +3 -24
  321. package/lib/pages/EventsPage/events/events_list/EventUtils.js +2 -13
  322. package/lib/pages/EventsPage/events/events_list/EventsList.js +54 -111
  323. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +11 -32
  324. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +35 -96
  325. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +10 -55
  326. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +5 -17
  327. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +15 -38
  328. package/lib/pages/EventsPage/events/events_list/Sort.js +4 -23
  329. package/lib/pages/ImportFileWizard/FileUploadRespones.js +4 -19
  330. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +2 -8
  331. package/lib/pages/ImportFileWizard/ImportFile.js +10 -29
  332. package/lib/pages/ImportFileWizard/ResponseBody.js +3 -12
  333. package/lib/pages/ImportFileWizard/ValidationForm.js +7 -27
  334. package/lib/pages/ImportFileWizard/ValidationResponse.js +6 -30
  335. package/lib/pages/ImportFileWizard/importFileUtils.js +1 -2
  336. package/lib/pages/ImportFileWizard/index.js +1 -4
  337. package/lib/pages/ImportGisPage/ImportGisContainer.js +7 -27
  338. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +10 -27
  339. package/lib/pages/ImportGisPage/importGisUtils.js +1 -13
  340. package/lib/pages/ImportGisProcess/index.js +4 -18
  341. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +5 -19
  342. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +3 -10
  343. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +1 -8
  344. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +25 -58
  345. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +2 -8
  346. package/lib/pages/NotificationsPage/Notification/Notification.js +8 -16
  347. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  348. package/lib/pages/NotificationsPage/Notifications.mock.js +1 -1
  349. package/lib/pages/NotificationsPage/Notifications.stories.js +2 -10
  350. package/lib/pages/NotificationsPage/NotificationsPage.js +11 -35
  351. package/lib/pages/NotificationsPage/assets/index.js +15 -24
  352. package/lib/pages/NotificationsPageV2/NotificationsPage.js +35 -83
  353. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +4 -24
  354. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +27 -46
  355. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +18 -49
  356. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +4 -47
  357. package/lib/pages/NotificationsPageV2/notificationUtils.js +2 -30
  358. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  359. package/lib/pages/OldSitePage/OldSitePage.js +16 -77
  360. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +3 -16
  361. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +2 -8
  362. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +4 -9
  363. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +5 -12
  364. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +2 -12
  365. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +7 -23
  366. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +6 -20
  367. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +4 -10
  368. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +2 -12
  369. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +9 -24
  370. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +4 -12
  371. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +28 -59
  372. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
  373. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
  374. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +3 -18
  375. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +2 -15
  376. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +8 -16
  377. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +1 -16
  378. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  379. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +2 -10
  380. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +2 -7
  381. package/lib/pages/ProfilePage/Container.js +2 -6
  382. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +16 -43
  383. package/lib/pages/ProfilePage/ProfilePage.js +172 -115
  384. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +9 -32
  385. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +7 -17
  386. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +3 -14
  387. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +18 -48
  388. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +4 -21
  389. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +7 -15
  390. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +8 -29
  391. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +6 -25
  392. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +9 -21
  393. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +1 -13
  394. package/lib/pages/SamplingsPage/DesktopActions/index.js +1 -4
  395. package/lib/pages/SamplingsPage/NavigationDropdown.js +3 -21
  396. package/lib/pages/SamplingsPage/NewSamplingAction.js +38 -84
  397. package/lib/pages/SamplingsPage/SamplingMobileModal.js +12 -65
  398. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +5 -19
  399. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +2 -13
  400. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +22 -56
  401. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +4 -20
  402. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +1 -14
  403. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +40 -112
  404. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +11 -42
  405. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +14 -47
  406. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +15 -49
  407. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +5 -21
  408. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +2 -8
  409. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +1 -11
  410. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +7 -36
  411. package/lib/pages/SamplingsPage/SamplingsMobileList.js +10 -34
  412. package/lib/pages/SamplingsPage/SamplingsPage.js +14 -39
  413. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +14 -48
  414. package/lib/pages/SamplingsPage/index.js +1 -3
  415. package/lib/pages/SamplingsPage/samplingsPageUtils.js +7 -30
  416. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +2 -10
  417. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +2 -8
  418. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +3 -17
  419. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +6 -11
  420. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +15 -23
  421. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +7 -16
  422. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +18 -27
  423. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +2 -12
  424. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +9 -26
  425. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +6 -20
  426. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +4 -10
  427. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +2 -12
  428. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +9 -24
  429. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +4 -12
  430. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +32 -68
  431. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
  432. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
  433. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +4 -19
  434. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +2 -15
  435. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +17 -38
  436. package/lib/pages/SitePage/SamplingParameters/dataParser.js +13 -29
  437. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +3 -7
  438. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  439. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +2 -10
  440. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +2 -8
  441. package/lib/pages/SitePage/SiteInformation/ContributorItem.js +5 -12
  442. package/lib/pages/SitePage/SiteInformation/EmptyState.js +1 -10
  443. package/lib/pages/SitePage/SiteInformation/PollutionContributor.js +5 -15
  444. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +17 -48
  445. package/lib/pages/SitePage/SiteInformation/style.js +2 -8
  446. package/lib/pages/SitePage/SitePage.js +10 -49
  447. package/lib/pages/UploadLabResult/index.js +1 -8
  448. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +9 -37
  449. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +2 -9
  450. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +2 -16
  451. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +2 -8
  452. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +9 -35
  453. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +1 -5
  454. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +1 -7
  455. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +1 -10
  456. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +7 -16
  457. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  458. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +1 -10
  459. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +1 -5
  460. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +3 -25
  461. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +13 -19
  462. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +9 -18
  463. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +5 -20
  464. package/lib/pages/WbeDashboard/ExpandableComponent.js +6 -14
  465. package/lib/pages/WbeDashboard/GraphWrapper.js +8 -28
  466. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +6 -19
  467. package/lib/pages/WbeDashboard/SearchInput.js +4 -22
  468. package/lib/pages/WbeDashboard/SummaryGraph.js +56 -76
  469. package/lib/pages/WbeDashboard/SummaryGraphModal.js +1 -13
  470. package/lib/pages/WbeDashboard/Tabs.js +4 -9
  471. package/lib/pages/WbeDashboard/WbeDashboardPage.js +60 -154
  472. package/lib/pages/WbeDashboard/WbeSummaryBar.js +19 -49
  473. package/lib/providers/Slideshow/SlideshowContext.js +3 -5
  474. package/lib/providers/Slideshow/SlideshowProvider.js +16 -31
  475. package/lib/providers/Slideshow/SlideshowRunner.js +7 -17
  476. package/lib/providers/UrlHistory/UrlHistoryContext.js +3 -7
  477. package/lib/providers/UrlHistory/UrlHistoryProvider.js +1 -13
  478. package/lib/providers/UrlHistory/index.js +5 -8
  479. package/lib/providers/UrlHistory/useLastVisited.js +1 -7
  480. package/lib/react-app-env.d.js +1 -1
  481. package/lib/store/ImportGis/action.js +1 -1
  482. package/lib/store/ImportGis/actionTypes.js +1 -2
  483. package/lib/store/ImportGis/actionsCreator.js +7 -17
  484. package/lib/store/ImportGis/models/gisImports.js +1 -1
  485. package/lib/store/ImportGis/reducer.js +1 -17
  486. package/lib/store/WBE/actionTypes.js +1 -1
  487. package/lib/store/WBE/actions.js +1 -3
  488. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  489. package/lib/store/WBE/models/IWBE.js +1 -1
  490. package/lib/store/WBE/models/IWBEState.js +1 -1
  491. package/lib/store/WBE/reducer.js +2 -9
  492. package/lib/store/areas/actionTypes.js +2 -2
  493. package/lib/store/areas/actions.js +2 -11
  494. package/lib/store/areas/models/IArea.js +1 -1
  495. package/lib/store/areas/models/IAreasState.js +1 -1
  496. package/lib/store/areas/reducer.js +1 -9
  497. package/lib/store/context/actionTypes.js +2 -2
  498. package/lib/store/context/actions.js +2 -6
  499. package/lib/store/context/contextMiddlewares.js +1 -9
  500. package/lib/store/context/models/INavContext.js +1 -1
  501. package/lib/store/context/models/INavContextState.js +1 -1
  502. package/lib/store/context/reducer.js +2 -9
  503. package/lib/store/dashboard/dashboardSlice.js +1 -3
  504. package/lib/store/dashboard/periodType.js +1 -1
  505. package/lib/store/edges/actionTypes.js +2 -2
  506. package/lib/store/edges/actions.js +3 -9
  507. package/lib/store/edges/models/IEdge.js +1 -1
  508. package/lib/store/edges/models/IEdgesState.js +1 -1
  509. package/lib/store/edges/reducer.js +2 -16
  510. package/lib/store/events/actionTypes.js +2 -2
  511. package/lib/store/events/actions.js +12 -30
  512. package/lib/store/events/models/IEvent.js +1 -1
  513. package/lib/store/events/models/IEventsState.js +1 -1
  514. package/lib/store/events/models/ISource.js +1 -1
  515. package/lib/store/events/reducer.js +3 -41
  516. package/lib/store/filters/IFilter.js +1 -1
  517. package/lib/store/filters/IFilterItem.js +1 -1
  518. package/lib/store/global/actionTypes.js +2 -2
  519. package/lib/store/global/actions.js +8 -20
  520. package/lib/store/global/models/IGlobalState.js +1 -1
  521. package/lib/store/global/reducer.js +2 -18
  522. package/lib/store/permissions/permissionsSlice.js +3 -6
  523. package/lib/store/points/actionTypes.js +2 -2
  524. package/lib/store/points/actions.js +1 -5
  525. package/lib/store/points/models/IGroup.js +1 -1
  526. package/lib/store/points/models/IPoint.js +1 -1
  527. package/lib/store/points/models/IPointsState.js +1 -1
  528. package/lib/store/points/reducer.js +1 -7
  529. package/lib/store/rootActionTypes.js +1 -1
  530. package/lib/store/rootActions.js +1 -3
  531. package/lib/store/rootReducer.js +4 -23
  532. package/lib/store/rootStore.js +4 -12
  533. package/lib/store/samplings/action.js +1 -1
  534. package/lib/store/samplings/actionTypes.js +1 -2
  535. package/lib/store/samplings/actionsCreator.js +2 -5
  536. package/lib/store/samplings/models/Samplings.js +1 -1
  537. package/lib/store/samplings/reducer.js +1 -9
  538. package/lib/styles/StylesLayout.js +1 -7
  539. package/lib/styles/theme/theme.js +2 -4
  540. package/lib/test/mocks/browser.js +3 -7
  541. package/lib/test/test-utils.js +11 -21
  542. package/lib/ui-kit/Button/Button.js +15 -23
  543. package/lib/ui-kit/Button/Button.test.js +6 -26
  544. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  545. package/lib/ui-kit/Checkbox/Checkbox.js +7 -21
  546. package/lib/ui-kit/DropDown/DropDown.js +5 -16
  547. package/lib/ui-kit/DropDown/DropDown.test.js +6 -12
  548. package/lib/ui-kit/DropDown/DropDownItem.js +5 -13
  549. package/lib/ui-kit/DropDown/DropdownToggle.js +2 -13
  550. package/lib/ui-kit/IconAction/IconAction.js +3 -9
  551. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +16 -54
  552. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +24 -28
  553. package/lib/ui-kit/KandoList/KandoList.js +5 -16
  554. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  555. package/lib/ui-kit/KandoTable/KandoTable.js +23 -35
  556. package/lib/ui-kit/KandoTable/KandoTable.test.js +1 -16
  557. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  558. package/lib/ui-kit/Layout/Layout.js +1 -8
  559. package/lib/ui-kit/MobileInput/MobileInput.js +18 -33
  560. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +8 -14
  561. package/lib/ui-kit/ModalConfirmation/index.js +1 -3
  562. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +5 -10
  563. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +3 -11
  564. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +4 -11
  565. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +5 -14
  566. package/lib/ui-kit/Tooltip/Tooltip.js +3 -8
  567. package/lib/ui-kit/index.js +1 -15
  568. package/lib/ui-kit/kandoStepper/KandoStepper.js +2 -7
  569. package/lib/utilities/ActionUtility.js +1 -2
  570. package/lib/utilities/Alert.js +2 -10
  571. package/lib/utilities/Analytics.js +2 -12
  572. package/lib/utilities/Array.js +2 -6
  573. package/lib/utilities/Enum.js +12 -16
  574. package/lib/utilities/ErrorBoundary.js +3 -18
  575. package/lib/utilities/File.js +5 -24
  576. package/lib/utilities/GetDir.js +4 -8
  577. package/lib/utilities/KandoDate.js +1 -7
  578. package/lib/utilities/KandoModal.js +7 -22
  579. package/lib/utilities/LocalStorage.js +2 -13
  580. package/lib/utilities/ThousandsToK.js +1 -3
  581. package/lib/utilities/TimeFormat.js +6 -19
  582. package/lib/utilities/Truncate.js +7 -27
  583. package/lib/utilities/edgesMath.js +9 -26
  584. package/lib/utilities/i18n.js +1 -14
  585. package/lib/utilities/kql.js +3 -10
  586. package/lib/utilities/map/icons.js +19 -20
  587. package/lib/utilities/polylinedecorator.js +383 -0
  588. package/lib/utilities/scoreToColor.js +1 -8
  589. package/lib/utilities/time.js +2 -9
  590. package/lib/utilities/uploadToS3.js +1 -9
  591. package/lib/utilities/urls.js +6 -14
  592. package/package.json +9 -4
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.computeSegmentHeading = exports.asRatioToPathLength = void 0;
8
+ exports.parseRelativeOrAbsoluteValue = parseRelativeOrAbsoluteValue;
9
+ exports.projectPatternOnPointPath = projectPatternOnPointPath;
10
+ var _leaflet = _interopRequireDefault(require("leaflet"));
11
+ require("leaflet-rotatedmarker");
12
+ // enable rotationAngle and rotationOrigin support on L.Marker
13
+
14
+ /**
15
+ * Defines several classes of symbol factories,
16
+ * to be used with L.PolylineDecorator
17
+ */
18
+
19
+ _leaflet.default.Symbol = _leaflet.default.Symbol || {};
20
+
21
+ /**
22
+ * A simple dash symbol, drawn as a Polyline.
23
+ * Can also be used for dots, if 'pixelSize' option is given the 0 value.
24
+ */
25
+ _leaflet.default.Symbol.Dash = _leaflet.default.Class.extend({
26
+ options: {
27
+ pixelSize: 10,
28
+ pathOptions: {}
29
+ },
30
+ initialize: function initialize(options) {
31
+ _leaflet.default.Util.setOptions(this, options);
32
+ this.options.pathOptions.clickable = false;
33
+ },
34
+ buildSymbol: function buildSymbol(dirPoint, latLngs, map, index, total) {
35
+ var opts = this.options;
36
+ var d2r = Math.PI / 180;
37
+
38
+ // for a dot, nothing more to compute
39
+ if (opts.pixelSize <= 1) {
40
+ return _leaflet.default.polyline([dirPoint.latLng, dirPoint.latLng], opts.pathOptions);
41
+ }
42
+ var midPoint = map.project(dirPoint.latLng);
43
+ var angle = -(dirPoint.heading - 90) * d2r;
44
+ var a = _leaflet.default.point(midPoint.x + opts.pixelSize * Math.cos(angle + Math.PI) / 2, midPoint.y + opts.pixelSize * Math.sin(angle) / 2);
45
+ // compute second point by central symmetry to avoid unecessary cos/sin
46
+ var b = midPoint.add(midPoint.subtract(a));
47
+ return _leaflet.default.polyline([map.unproject(a), map.unproject(b)], opts.pathOptions);
48
+ }
49
+ });
50
+ _leaflet.default.Symbol.dash = function (options) {
51
+ return new _leaflet.default.Symbol.Dash(options);
52
+ };
53
+ _leaflet.default.Symbol.ArrowHead = _leaflet.default.Class.extend({
54
+ options: {
55
+ polygon: true,
56
+ pixelSize: 10,
57
+ headAngle: 60,
58
+ pathOptions: {
59
+ stroke: false,
60
+ weight: 2
61
+ }
62
+ },
63
+ initialize: function initialize(options) {
64
+ _leaflet.default.Util.setOptions(this, options);
65
+ this.options.pathOptions.clickable = false;
66
+ },
67
+ buildSymbol: function buildSymbol(dirPoint, latLngs, map, index, total) {
68
+ return this.options.polygon ? _leaflet.default.polygon(this._buildArrowPath(dirPoint, map), this.options.pathOptions) : _leaflet.default.polyline(this._buildArrowPath(dirPoint, map), this.options.pathOptions);
69
+ },
70
+ _buildArrowPath: function _buildArrowPath(dirPoint, map) {
71
+ var d2r = Math.PI / 180;
72
+ var tipPoint = map.project(dirPoint.latLng);
73
+ var direction = -(dirPoint.heading - 90) * d2r;
74
+ var radianArrowAngle = this.options.headAngle / 2 * d2r;
75
+ var headAngle1 = direction + radianArrowAngle;
76
+ var headAngle2 = direction - radianArrowAngle;
77
+ var arrowHead1 = _leaflet.default.point(tipPoint.x - this.options.pixelSize * Math.cos(headAngle1), tipPoint.y + this.options.pixelSize * Math.sin(headAngle1));
78
+ var arrowHead2 = _leaflet.default.point(tipPoint.x - this.options.pixelSize * Math.cos(headAngle2), tipPoint.y + this.options.pixelSize * Math.sin(headAngle2));
79
+ return [map.unproject(arrowHead1), dirPoint.latLng, map.unproject(arrowHead2)];
80
+ }
81
+ });
82
+ _leaflet.default.Symbol.arrowHead = function (options) {
83
+ return new _leaflet.default.Symbol.ArrowHead(options);
84
+ };
85
+ _leaflet.default.Symbol.Marker = _leaflet.default.Class.extend({
86
+ options: {
87
+ markerOptions: {},
88
+ rotate: false
89
+ },
90
+ initialize: function initialize(options) {
91
+ _leaflet.default.Util.setOptions(this, options);
92
+ this.options.markerOptions.clickable = false;
93
+ this.options.markerOptions.draggable = false;
94
+ },
95
+ buildSymbol: function buildSymbol(directionPoint, latLngs, map, index, total) {
96
+ if (this.options.rotate) {
97
+ this.options.markerOptions.rotationAngle = directionPoint.heading + (this.options.angleCorrection || 0);
98
+ }
99
+ return _leaflet.default.marker(directionPoint.latLng, this.options.markerOptions);
100
+ }
101
+ });
102
+ _leaflet.default.Symbol.marker = function (options) {
103
+ return new _leaflet.default.Symbol.Marker(options);
104
+ };
105
+ var isCoord = function isCoord(c) {
106
+ return c instanceof _leaflet.default.LatLng || Array.isArray(c) && c.length === 2 && typeof c[0] === 'number';
107
+ };
108
+ var isCoordArray = function isCoordArray(ll) {
109
+ return Array.isArray(ll) && isCoord(ll[0]);
110
+ };
111
+ _leaflet.default.PolylineDecorator = _leaflet.default.FeatureGroup.extend({
112
+ options: {
113
+ patterns: []
114
+ },
115
+ initialize: function initialize(paths, options) {
116
+ _leaflet.default.FeatureGroup.prototype.initialize.call(this);
117
+ _leaflet.default.Util.setOptions(this, options);
118
+ this._map = null;
119
+ this._paths = this._initPaths(paths);
120
+ this._bounds = this._initBounds();
121
+ this._patterns = this._initPatterns(this.options.patterns);
122
+ },
123
+ /**
124
+ * Deals with all the different cases. input can be one of these types:
125
+ * array of LatLng, array of 2-number arrays, Polyline, Polygon,
126
+ * array of one of the previous.
127
+ */
128
+ _initPaths: function _initPaths(input, isPolygon) {
129
+ var _this = this;
130
+ if (isCoordArray(input)) {
131
+ // Leaflet Polygons don't need the first point to be repeated, but we do
132
+ var coords = isPolygon ? input.concat([input[0]]) : input;
133
+ return [coords];
134
+ }
135
+ if (input instanceof _leaflet.default.Polyline) {
136
+ // we need some recursivity to support multi-poly*
137
+ return this._initPaths(input.getLatLngs(), input instanceof _leaflet.default.Polygon);
138
+ }
139
+ if (Array.isArray(input)) {
140
+ // flatten everything, we just need coordinate lists to apply patterns
141
+ return input.reduce(function (flatArray, p) {
142
+ return flatArray.concat(_this._initPaths(p, isPolygon));
143
+ }, []);
144
+ }
145
+ return [];
146
+ },
147
+ // parse pattern definitions and precompute some values
148
+ _initPatterns: function _initPatterns(patternDefs) {
149
+ return patternDefs.map(this._parsePatternDef);
150
+ },
151
+ /**
152
+ * Changes the patterns used by this decorator
153
+ * and redraws the new one.
154
+ */
155
+ setPatterns: function setPatterns(patterns) {
156
+ this.options.patterns = patterns;
157
+ this._patterns = this._initPatterns(this.options.patterns);
158
+ this.redraw();
159
+ },
160
+ /**
161
+ * Changes the patterns used by this decorator
162
+ * and redraws the new one.
163
+ */
164
+ setPaths: function setPaths(paths) {
165
+ this._paths = this._initPaths(paths);
166
+ this._bounds = this._initBounds();
167
+ this.redraw();
168
+ },
169
+ /**
170
+ * Parse the pattern definition
171
+ */
172
+ _parsePatternDef: function _parsePatternDef(patternDef, latLngs) {
173
+ return {
174
+ symbolFactory: patternDef.symbol,
175
+ // Parse offset and repeat values, managing the two cases:
176
+ // absolute (in pixels) or relative (in percentage of the polyline length)
177
+ offset: parseRelativeOrAbsoluteValue(patternDef.offset),
178
+ endOffset: parseRelativeOrAbsoluteValue(patternDef.endOffset),
179
+ repeat: parseRelativeOrAbsoluteValue(patternDef.repeat)
180
+ };
181
+ },
182
+ onAdd: function onAdd(map) {
183
+ this._map = map;
184
+ this._draw();
185
+ this._map.on('moveend', this.redraw, this);
186
+ },
187
+ onRemove: function onRemove(map) {
188
+ this._map.off('moveend', this.redraw, this);
189
+ this._map = null;
190
+ _leaflet.default.FeatureGroup.prototype.onRemove.call(this, map);
191
+ },
192
+ /**
193
+ * As real pattern bounds depends on map zoom and bounds,
194
+ * we just compute the total bounds of all paths decorated by this instance.
195
+ */
196
+ _initBounds: function _initBounds() {
197
+ var allPathCoords = this._paths.reduce(function (acc, path) {
198
+ return acc.concat(path);
199
+ }, []);
200
+ return _leaflet.default.latLngBounds(allPathCoords);
201
+ },
202
+ getBounds: function getBounds() {
203
+ return this._bounds;
204
+ },
205
+ /**
206
+ * Returns an array of ILayers object
207
+ */
208
+ _buildSymbols: function _buildSymbols(latLngs, symbolFactory, directionPoints) {
209
+ var _this2 = this;
210
+ return directionPoints.map(function (directionPoint, i) {
211
+ return symbolFactory.buildSymbol(directionPoint, latLngs, _this2._map, i, directionPoints.length);
212
+ });
213
+ },
214
+ /**
215
+ * Compute pairs of LatLng and heading angle,
216
+ * that define positions and directions of the symbols on the path
217
+ */
218
+ _getDirectionPoints: function _getDirectionPoints(latLngs, pattern) {
219
+ var _this3 = this;
220
+ if (latLngs.length < 2) {
221
+ return [];
222
+ }
223
+ var pathAsPoints = latLngs.map(function (latLng) {
224
+ return _this3._map.project(latLng);
225
+ });
226
+ return projectPatternOnPointPath(pathAsPoints, pattern).map(function (point) {
227
+ return {
228
+ latLng: _this3._map.unproject(_leaflet.default.point(point.pt)),
229
+ heading: point.heading
230
+ };
231
+ });
232
+ },
233
+ redraw: function redraw() {
234
+ if (!this._map) {
235
+ return;
236
+ }
237
+ this.clearLayers();
238
+ this._draw();
239
+ },
240
+ /**
241
+ * Returns all symbols for a given pattern as an array of FeatureGroup
242
+ */
243
+ _getPatternLayers: function _getPatternLayers(pattern) {
244
+ var _this4 = this;
245
+ var mapBounds = this._map.getBounds().pad(0.1);
246
+ return this._paths.map(function (path) {
247
+ var directionPoints = _this4._getDirectionPoints(path, pattern)
248
+ // filter out invisible points
249
+ .filter(function (point) {
250
+ return mapBounds.contains(point.latLng);
251
+ });
252
+ return _leaflet.default.featureGroup(_this4._buildSymbols(path, pattern.symbolFactory, directionPoints));
253
+ });
254
+ },
255
+ /**
256
+ * Draw all patterns
257
+ */
258
+ _draw: function _draw() {
259
+ var _this5 = this;
260
+ this._patterns.map(function (pattern) {
261
+ return _this5._getPatternLayers(pattern);
262
+ }).forEach(function (layers) {
263
+ _this5.addLayer(_leaflet.default.featureGroup(layers));
264
+ });
265
+ }
266
+ });
267
+ /*
268
+ * Allows compact syntax to be used
269
+ */
270
+ _leaflet.default.polylineDecorator = function (paths, options) {
271
+ return new _leaflet.default.PolylineDecorator(paths, options);
272
+ };
273
+
274
+ // functional re-impl of L.Point.distanceTo,
275
+ // with no dependency on Leaflet for easier testing
276
+ function pointDistance(ptA, ptB) {
277
+ var x = ptB.x - ptA.x;
278
+ var y = ptB.y - ptA.y;
279
+ return Math.sqrt(x * x + y * y);
280
+ }
281
+ var computeSegmentHeading = function computeSegmentHeading(a, b) {
282
+ return (Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI + 90 + 360) % 360;
283
+ };
284
+ exports.computeSegmentHeading = computeSegmentHeading;
285
+ var asRatioToPathLength = function asRatioToPathLength(_ref, totalPathLength) {
286
+ var value = _ref.value,
287
+ isInPixels = _ref.isInPixels;
288
+ return isInPixels ? value / totalPathLength : value;
289
+ };
290
+ exports.asRatioToPathLength = asRatioToPathLength;
291
+ function parseRelativeOrAbsoluteValue(value) {
292
+ if (typeof value === 'string' && value.indexOf('%') !== -1) {
293
+ return {
294
+ value: parseFloat(value) / 100,
295
+ isInPixels: false
296
+ };
297
+ }
298
+ var parsedValue = value ? parseFloat(value) : 0;
299
+ return {
300
+ value: parsedValue,
301
+ isInPixels: parsedValue > 0
302
+ };
303
+ }
304
+ var pointsEqual = function pointsEqual(a, b) {
305
+ return a.x === b.x && a.y === b.y;
306
+ };
307
+ function pointsToSegments(pts) {
308
+ return pts.reduce(function (segments, b, idx, points) {
309
+ // this test skips same adjacent points
310
+ if (idx > 0 && !pointsEqual(b, points[idx - 1])) {
311
+ var a = points[idx - 1];
312
+ var distA = segments.length > 0 ? segments[segments.length - 1].distB : 0;
313
+ var distAB = pointDistance(a, b);
314
+ segments.push({
315
+ a: a,
316
+ b: b,
317
+ distA: distA,
318
+ distB: distA + distAB,
319
+ heading: computeSegmentHeading(a, b)
320
+ });
321
+ }
322
+ return segments;
323
+ }, []);
324
+ }
325
+ function projectPatternOnPointPath(pts, pattern) {
326
+ // 1. split the path into segment infos
327
+ var segments = pointsToSegments(pts);
328
+ var nbSegments = segments.length;
329
+ if (nbSegments === 0) {
330
+ return [];
331
+ }
332
+ var totalPathLength = segments[nbSegments - 1].distB;
333
+ var offset = asRatioToPathLength(pattern.offset, totalPathLength);
334
+ var endOffset = asRatioToPathLength(pattern.endOffset, totalPathLength);
335
+ var repeat = asRatioToPathLength(pattern.repeat, totalPathLength);
336
+ var repeatIntervalPixels = totalPathLength * repeat;
337
+ var startOffsetPixels = offset > 0 ? totalPathLength * offset : 0;
338
+ var endOffsetPixels = endOffset > 0 ? totalPathLength * endOffset : 0;
339
+
340
+ // 2. generate the positions of the pattern as offsets from the path start
341
+ var positionOffsets = [];
342
+ var positionOffset = startOffsetPixels;
343
+ do {
344
+ positionOffsets.push(positionOffset);
345
+ positionOffset += repeatIntervalPixels;
346
+ } while (repeatIntervalPixels > 0 && positionOffset < totalPathLength - endOffsetPixels);
347
+
348
+ // 3. projects offsets to segments
349
+ var segmentIndex = 0;
350
+ var segment = segments[0];
351
+ return positionOffsets.map(function (positionOffset) {
352
+ // find the segment matching the offset,
353
+ // starting from the previous one as offsets are ordered
354
+ while (positionOffset > segment.distB && segmentIndex < nbSegments - 1) {
355
+ segmentIndex++;
356
+ segment = segments[segmentIndex];
357
+ }
358
+ var segmentRatio = (positionOffset - segment.distA) / (segment.distB - segment.distA);
359
+ return {
360
+ pt: interpolateBetweenPoints(segment.a, segment.b, segmentRatio),
361
+ heading: segment.heading
362
+ };
363
+ });
364
+ }
365
+
366
+ /**
367
+ * Finds the point which lies on the segment defined by points A and B,
368
+ * at the given ratio of the distance from A to B, by linear interpolation.
369
+ */
370
+ function interpolateBetweenPoints(ptA, ptB, ratio) {
371
+ if (ptB.x !== ptA.x) {
372
+ return {
373
+ x: ptA.x + ratio * (ptB.x - ptA.x),
374
+ y: ptA.y + ratio * (ptB.y - ptA.y)
375
+ };
376
+ }
377
+ // special case where points lie on the same vertical axis
378
+ return {
379
+ x: ptA.x,
380
+ y: ptA.y + (ptB.y - ptA.y) * ratio
381
+ };
382
+ }
383
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiTCIsIlN5bWJvbCIsIkRhc2giLCJDbGFzcyIsImV4dGVuZCIsIm9wdGlvbnMiLCJwaXhlbFNpemUiLCJwYXRoT3B0aW9ucyIsImluaXRpYWxpemUiLCJVdGlsIiwic2V0T3B0aW9ucyIsImNsaWNrYWJsZSIsImJ1aWxkU3ltYm9sIiwiZGlyUG9pbnQiLCJsYXRMbmdzIiwibWFwIiwiaW5kZXgiLCJ0b3RhbCIsIm9wdHMiLCJkMnIiLCJNYXRoIiwiUEkiLCJwb2x5bGluZSIsImxhdExuZyIsIm1pZFBvaW50IiwicHJvamVjdCIsImFuZ2xlIiwiaGVhZGluZyIsImEiLCJwb2ludCIsIngiLCJjb3MiLCJ5Iiwic2luIiwiYiIsImFkZCIsInN1YnRyYWN0IiwidW5wcm9qZWN0IiwiZGFzaCIsIkFycm93SGVhZCIsInBvbHlnb24iLCJoZWFkQW5nbGUiLCJzdHJva2UiLCJ3ZWlnaHQiLCJfYnVpbGRBcnJvd1BhdGgiLCJ0aXBQb2ludCIsImRpcmVjdGlvbiIsInJhZGlhbkFycm93QW5nbGUiLCJoZWFkQW5nbGUxIiwiaGVhZEFuZ2xlMiIsImFycm93SGVhZDEiLCJhcnJvd0hlYWQyIiwiYXJyb3dIZWFkIiwiTWFya2VyIiwibWFya2VyT3B0aW9ucyIsInJvdGF0ZSIsImRyYWdnYWJsZSIsImRpcmVjdGlvblBvaW50Iiwicm90YXRpb25BbmdsZSIsImFuZ2xlQ29ycmVjdGlvbiIsIm1hcmtlciIsImlzQ29vcmQiLCJjIiwiTGF0TG5nIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNDb29yZEFycmF5IiwibGwiLCJQb2x5bGluZURlY29yYXRvciIsIkZlYXR1cmVHcm91cCIsInBhdHRlcm5zIiwicGF0aHMiLCJwcm90b3R5cGUiLCJjYWxsIiwiX21hcCIsIl9wYXRocyIsIl9pbml0UGF0aHMiLCJfYm91bmRzIiwiX2luaXRCb3VuZHMiLCJfcGF0dGVybnMiLCJfaW5pdFBhdHRlcm5zIiwiaW5wdXQiLCJpc1BvbHlnb24iLCJfdGhpcyIsImNvb3JkcyIsImNvbmNhdCIsIlBvbHlsaW5lIiwiZ2V0TGF0TG5ncyIsIlBvbHlnb24iLCJyZWR1Y2UiLCJmbGF0QXJyYXkiLCJwIiwicGF0dGVybkRlZnMiLCJfcGFyc2VQYXR0ZXJuRGVmIiwic2V0UGF0dGVybnMiLCJyZWRyYXciLCJzZXRQYXRocyIsInBhdHRlcm5EZWYiLCJzeW1ib2xGYWN0b3J5Iiwic3ltYm9sIiwib2Zmc2V0IiwicGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZSIsImVuZE9mZnNldCIsInJlcGVhdCIsIm9uQWRkIiwiX2RyYXciLCJvbiIsIm9uUmVtb3ZlIiwib2ZmIiwiYWxsUGF0aENvb3JkcyIsImFjYyIsInBhdGgiLCJsYXRMbmdCb3VuZHMiLCJnZXRCb3VuZHMiLCJfYnVpbGRTeW1ib2xzIiwiZGlyZWN0aW9uUG9pbnRzIiwiX3RoaXMyIiwiaSIsIl9nZXREaXJlY3Rpb25Qb2ludHMiLCJwYXR0ZXJuIiwiX3RoaXMzIiwicGF0aEFzUG9pbnRzIiwicHJvamVjdFBhdHRlcm5PblBvaW50UGF0aCIsInB0IiwiY2xlYXJMYXllcnMiLCJfZ2V0UGF0dGVybkxheWVycyIsIl90aGlzNCIsIm1hcEJvdW5kcyIsInBhZCIsImZpbHRlciIsImNvbnRhaW5zIiwiZmVhdHVyZUdyb3VwIiwiX3RoaXM1IiwiZm9yRWFjaCIsImxheWVycyIsImFkZExheWVyIiwicG9seWxpbmVEZWNvcmF0b3IiLCJwb2ludERpc3RhbmNlIiwicHRBIiwicHRCIiwic3FydCIsImNvbXB1dGVTZWdtZW50SGVhZGluZyIsImF0YW4yIiwiZXhwb3J0cyIsImFzUmF0aW9Ub1BhdGhMZW5ndGgiLCJfcmVmIiwidG90YWxQYXRoTGVuZ3RoIiwidmFsdWUiLCJpc0luUGl4ZWxzIiwiaW5kZXhPZiIsInBhcnNlRmxvYXQiLCJwYXJzZWRWYWx1ZSIsInBvaW50c0VxdWFsIiwicG9pbnRzVG9TZWdtZW50cyIsInB0cyIsInNlZ21lbnRzIiwiaWR4IiwicG9pbnRzIiwiZGlzdEEiLCJkaXN0QiIsImRpc3RBQiIsInB1c2giLCJuYlNlZ21lbnRzIiwicmVwZWF0SW50ZXJ2YWxQaXhlbHMiLCJzdGFydE9mZnNldFBpeGVscyIsImVuZE9mZnNldFBpeGVscyIsInBvc2l0aW9uT2Zmc2V0cyIsInBvc2l0aW9uT2Zmc2V0Iiwic2VnbWVudEluZGV4Iiwic2VnbWVudCIsInNlZ21lbnRSYXRpbyIsImludGVycG9sYXRlQmV0d2VlblBvaW50cyIsInJhdGlvIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCBmcm9tICdsZWFmbGV0Jztcbi8vIGVuYWJsZSByb3RhdGlvbkFuZ2xlIGFuZCByb3RhdGlvbk9yaWdpbiBzdXBwb3J0IG9uIEwuTWFya2VyXG5pbXBvcnQgJ2xlYWZsZXQtcm90YXRlZG1hcmtlcic7XG5cbi8qKlxuICogRGVmaW5lcyBzZXZlcmFsIGNsYXNzZXMgb2Ygc3ltYm9sIGZhY3RvcmllcyxcbiAqIHRvIGJlIHVzZWQgd2l0aCBMLlBvbHlsaW5lRGVjb3JhdG9yXG4gKi9cblxuTC5TeW1ib2wgPSBMLlN5bWJvbCB8fCB7fTtcblxuLyoqXG4gKiBBIHNpbXBsZSBkYXNoIHN5bWJvbCwgZHJhd24gYXMgYSBQb2x5bGluZS5cbiAqIENhbiBhbHNvIGJlIHVzZWQgZm9yIGRvdHMsIGlmICdwaXhlbFNpemUnIG9wdGlvbiBpcyBnaXZlbiB0aGUgMCB2YWx1ZS5cbiAqL1xuTC5TeW1ib2wuRGFzaCA9IEwuQ2xhc3MuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIHBpeGVsU2l6ZTogMTAsXG4gICAgcGF0aE9wdGlvbnM6IHt9LFxuICB9LFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgTC5VdGlsLnNldE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zLnBhdGhPcHRpb25zLmNsaWNrYWJsZSA9IGZhbHNlO1xuICB9LFxuXG4gIGJ1aWxkU3ltYm9sOiBmdW5jdGlvbiAoZGlyUG9pbnQsIGxhdExuZ3MsIG1hcCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgY29uc3Qgb3B0cyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBkMnIgPSBNYXRoLlBJIC8gMTgwO1xuXG4gICAgLy8gZm9yIGEgZG90LCBub3RoaW5nIG1vcmUgdG8gY29tcHV0ZVxuICAgIGlmIChvcHRzLnBpeGVsU2l6ZSA8PSAxKSB7XG4gICAgICByZXR1cm4gTC5wb2x5bGluZShbZGlyUG9pbnQubGF0TG5nLCBkaXJQb2ludC5sYXRMbmddLCBvcHRzLnBhdGhPcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBtaWRQb2ludCA9IG1hcC5wcm9qZWN0KGRpclBvaW50LmxhdExuZyk7XG4gICAgY29uc3QgYW5nbGUgPSAtKGRpclBvaW50LmhlYWRpbmcgLSA5MCkgKiBkMnI7XG4gICAgY29uc3QgYSA9IEwucG9pbnQoXG4gICAgICBtaWRQb2ludC54ICsgKG9wdHMucGl4ZWxTaXplICogTWF0aC5jb3MoYW5nbGUgKyBNYXRoLlBJKSkgLyAyLFxuICAgICAgbWlkUG9pbnQueSArIChvcHRzLnBpeGVsU2l6ZSAqIE1hdGguc2luKGFuZ2xlKSkgLyAyLFxuICAgICk7XG4gICAgLy8gY29tcHV0ZSBzZWNvbmQgcG9pbnQgYnkgY2VudHJhbCBzeW1tZXRyeSB0byBhdm9pZCB1bmVjZXNzYXJ5IGNvcy9zaW5cbiAgICBjb25zdCBiID0gbWlkUG9pbnQuYWRkKG1pZFBvaW50LnN1YnRyYWN0KGEpKTtcbiAgICByZXR1cm4gTC5wb2x5bGluZShbbWFwLnVucHJvamVjdChhKSwgbWFwLnVucHJvamVjdChiKV0sIG9wdHMucGF0aE9wdGlvbnMpO1xuICB9LFxufSk7XG5cbkwuU3ltYm9sLmRhc2ggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLkRhc2gob3B0aW9ucyk7XG59O1xuXG5MLlN5bWJvbC5BcnJvd0hlYWQgPSBMLkNsYXNzLmV4dGVuZCh7XG4gIG9wdGlvbnM6IHtcbiAgICBwb2x5Z29uOiB0cnVlLFxuICAgIHBpeGVsU2l6ZTogMTAsXG4gICAgaGVhZEFuZ2xlOiA2MCxcbiAgICBwYXRoT3B0aW9uczoge1xuICAgICAgc3Ryb2tlOiBmYWxzZSxcbiAgICAgIHdlaWdodDogMixcbiAgICB9LFxuICB9LFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgTC5VdGlsLnNldE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zLnBhdGhPcHRpb25zLmNsaWNrYWJsZSA9IGZhbHNlO1xuICB9LFxuXG4gIGJ1aWxkU3ltYm9sOiBmdW5jdGlvbiAoZGlyUG9pbnQsIGxhdExuZ3MsIG1hcCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wb2x5Z29uXG4gICAgICA/IEwucG9seWdvbih0aGlzLl9idWlsZEFycm93UGF0aChkaXJQb2ludCwgbWFwKSwgdGhpcy5vcHRpb25zLnBhdGhPcHRpb25zKVxuICAgICAgOiBMLnBvbHlsaW5lKFxuICAgICAgICAgIHRoaXMuX2J1aWxkQXJyb3dQYXRoKGRpclBvaW50LCBtYXApLFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucyxcbiAgICAgICAgKTtcbiAgfSxcblxuICBfYnVpbGRBcnJvd1BhdGg6IGZ1bmN0aW9uIChkaXJQb2ludCwgbWFwKSB7XG4gICAgY29uc3QgZDJyID0gTWF0aC5QSSAvIDE4MDtcbiAgICBjb25zdCB0aXBQb2ludCA9IG1hcC5wcm9qZWN0KGRpclBvaW50LmxhdExuZyk7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gLShkaXJQb2ludC5oZWFkaW5nIC0gOTApICogZDJyO1xuICAgIGNvbnN0IHJhZGlhbkFycm93QW5nbGUgPSAodGhpcy5vcHRpb25zLmhlYWRBbmdsZSAvIDIpICogZDJyO1xuXG4gICAgY29uc3QgaGVhZEFuZ2xlMSA9IGRpcmVjdGlvbiArIHJhZGlhbkFycm93QW5nbGU7XG4gICAgY29uc3QgaGVhZEFuZ2xlMiA9IGRpcmVjdGlvbiAtIHJhZGlhbkFycm93QW5nbGU7XG4gICAgY29uc3QgYXJyb3dIZWFkMSA9IEwucG9pbnQoXG4gICAgICB0aXBQb2ludC54IC0gdGhpcy5vcHRpb25zLnBpeGVsU2l6ZSAqIE1hdGguY29zKGhlYWRBbmdsZTEpLFxuICAgICAgdGlwUG9pbnQueSArIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLnNpbihoZWFkQW5nbGUxKSxcbiAgICApO1xuICAgIGNvbnN0IGFycm93SGVhZDIgPSBMLnBvaW50KFxuICAgICAgdGlwUG9pbnQueCAtIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLmNvcyhoZWFkQW5nbGUyKSxcbiAgICAgIHRpcFBvaW50LnkgKyB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5zaW4oaGVhZEFuZ2xlMiksXG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICBtYXAudW5wcm9qZWN0KGFycm93SGVhZDEpLFxuICAgICAgZGlyUG9pbnQubGF0TG5nLFxuICAgICAgbWFwLnVucHJvamVjdChhcnJvd0hlYWQyKSxcbiAgICBdO1xuICB9LFxufSk7XG5cbkwuU3ltYm9sLmFycm93SGVhZCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgTC5TeW1ib2wuQXJyb3dIZWFkKG9wdGlvbnMpO1xufTtcblxuTC5TeW1ib2wuTWFya2VyID0gTC5DbGFzcy5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgbWFya2VyT3B0aW9uczoge30sXG4gICAgcm90YXRlOiBmYWxzZSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zLmNsaWNrYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zLmRyYWdnYWJsZSA9IGZhbHNlO1xuICB9LFxuXG4gIGJ1aWxkU3ltYm9sOiBmdW5jdGlvbiAoZGlyZWN0aW9uUG9pbnQsIGxhdExuZ3MsIG1hcCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5yb3RhdGUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zLnJvdGF0aW9uQW5nbGUgPVxuICAgICAgICBkaXJlY3Rpb25Qb2ludC5oZWFkaW5nICsgKHRoaXMub3B0aW9ucy5hbmdsZUNvcnJlY3Rpb24gfHwgMCk7XG4gICAgfVxuICAgIHJldHVybiBMLm1hcmtlcihkaXJlY3Rpb25Qb2ludC5sYXRMbmcsIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5tYXJrZXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLk1hcmtlcihvcHRpb25zKTtcbn07XG5cbmNvbnN0IGlzQ29vcmQgPSAoYykgPT5cbiAgYyBpbnN0YW5jZW9mIEwuTGF0TG5nIHx8XG4gIChBcnJheS5pc0FycmF5KGMpICYmIGMubGVuZ3RoID09PSAyICYmIHR5cGVvZiBjWzBdID09PSAnbnVtYmVyJyk7XG5cbmNvbnN0IGlzQ29vcmRBcnJheSA9IChsbCkgPT4gQXJyYXkuaXNBcnJheShsbCkgJiYgaXNDb29yZChsbFswXSk7XG5cbkwuUG9seWxpbmVEZWNvcmF0b3IgPSBMLkZlYXR1cmVHcm91cC5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgcGF0dGVybnM6IFtdLFxuICB9LFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uIChwYXRocywgb3B0aW9ucykge1xuICAgIEwuRmVhdHVyZUdyb3VwLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyk7XG4gICAgTC5VdGlsLnNldE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5fbWFwID0gbnVsbDtcbiAgICB0aGlzLl9wYXRocyA9IHRoaXMuX2luaXRQYXRocyhwYXRocyk7XG4gICAgdGhpcy5fYm91bmRzID0gdGhpcy5faW5pdEJvdW5kcygpO1xuICAgIHRoaXMuX3BhdHRlcm5zID0gdGhpcy5faW5pdFBhdHRlcm5zKHRoaXMub3B0aW9ucy5wYXR0ZXJucyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERlYWxzIHdpdGggYWxsIHRoZSBkaWZmZXJlbnQgY2FzZXMuIGlucHV0IGNhbiBiZSBvbmUgb2YgdGhlc2UgdHlwZXM6XG4gICAqIGFycmF5IG9mIExhdExuZywgYXJyYXkgb2YgMi1udW1iZXIgYXJyYXlzLCBQb2x5bGluZSwgUG9seWdvbixcbiAgICogYXJyYXkgb2Ygb25lIG9mIHRoZSBwcmV2aW91cy5cbiAgICovXG4gIF9pbml0UGF0aHM6IGZ1bmN0aW9uIChpbnB1dCwgaXNQb2x5Z29uKSB7XG4gICAgaWYgKGlzQ29vcmRBcnJheShpbnB1dCkpIHtcbiAgICAgIC8vIExlYWZsZXQgUG9seWdvbnMgZG9uJ3QgbmVlZCB0aGUgZmlyc3QgcG9pbnQgdG8gYmUgcmVwZWF0ZWQsIGJ1dCB3ZSBkb1xuICAgICAgY29uc3QgY29vcmRzID0gaXNQb2x5Z29uID8gaW5wdXQuY29uY2F0KFtpbnB1dFswXV0pIDogaW5wdXQ7XG4gICAgICByZXR1cm4gW2Nvb3Jkc107XG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEwuUG9seWxpbmUpIHtcbiAgICAgIC8vIHdlIG5lZWQgc29tZSByZWN1cnNpdml0eSB0byBzdXBwb3J0IG11bHRpLXBvbHkqXG4gICAgICByZXR1cm4gdGhpcy5faW5pdFBhdGhzKGlucHV0LmdldExhdExuZ3MoKSwgaW5wdXQgaW5zdGFuY2VvZiBMLlBvbHlnb24pO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICAgIC8vIGZsYXR0ZW4gZXZlcnl0aGluZywgd2UganVzdCBuZWVkIGNvb3JkaW5hdGUgbGlzdHMgdG8gYXBwbHkgcGF0dGVybnNcbiAgICAgIHJldHVybiBpbnB1dC5yZWR1Y2UoXG4gICAgICAgIChmbGF0QXJyYXksIHApID0+IGZsYXRBcnJheS5jb25jYXQodGhpcy5faW5pdFBhdGhzKHAsIGlzUG9seWdvbikpLFxuICAgICAgICBbXSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSxcblxuICAvLyBwYXJzZSBwYXR0ZXJuIGRlZmluaXRpb25zIGFuZCBwcmVjb21wdXRlIHNvbWUgdmFsdWVzXG4gIF9pbml0UGF0dGVybnM6IGZ1bmN0aW9uIChwYXR0ZXJuRGVmcykge1xuICAgIHJldHVybiBwYXR0ZXJuRGVmcy5tYXAodGhpcy5fcGFyc2VQYXR0ZXJuRGVmKTtcbiAgfSxcblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgcGF0dGVybnMgdXNlZCBieSB0aGlzIGRlY29yYXRvclxuICAgKiBhbmQgcmVkcmF3cyB0aGUgbmV3IG9uZS5cbiAgICovXG4gIHNldFBhdHRlcm5zOiBmdW5jdGlvbiAocGF0dGVybnMpIHtcbiAgICB0aGlzLm9wdGlvbnMucGF0dGVybnMgPSBwYXR0ZXJucztcbiAgICB0aGlzLl9wYXR0ZXJucyA9IHRoaXMuX2luaXRQYXR0ZXJucyh0aGlzLm9wdGlvbnMucGF0dGVybnMpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBhdHRlcm5zIHVzZWQgYnkgdGhpcyBkZWNvcmF0b3JcbiAgICogYW5kIHJlZHJhd3MgdGhlIG5ldyBvbmUuXG4gICAqL1xuICBzZXRQYXRoczogZnVuY3Rpb24gKHBhdGhzKSB7XG4gICAgdGhpcy5fcGF0aHMgPSB0aGlzLl9pbml0UGF0aHMocGF0aHMpO1xuICAgIHRoaXMuX2JvdW5kcyA9IHRoaXMuX2luaXRCb3VuZHMoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgcGF0dGVybiBkZWZpbml0aW9uXG4gICAqL1xuICBfcGFyc2VQYXR0ZXJuRGVmOiBmdW5jdGlvbiAocGF0dGVybkRlZiwgbGF0TG5ncykge1xuICAgIHJldHVybiB7XG4gICAgICBzeW1ib2xGYWN0b3J5OiBwYXR0ZXJuRGVmLnN5bWJvbCxcbiAgICAgIC8vIFBhcnNlIG9mZnNldCBhbmQgcmVwZWF0IHZhbHVlcywgbWFuYWdpbmcgdGhlIHR3byBjYXNlczpcbiAgICAgIC8vIGFic29sdXRlIChpbiBwaXhlbHMpIG9yIHJlbGF0aXZlIChpbiBwZXJjZW50YWdlIG9mIHRoZSBwb2x5bGluZSBsZW5ndGgpXG4gICAgICBvZmZzZXQ6IHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUocGF0dGVybkRlZi5vZmZzZXQpLFxuICAgICAgZW5kT2Zmc2V0OiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHBhdHRlcm5EZWYuZW5kT2Zmc2V0KSxcbiAgICAgIHJlcGVhdDogcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZShwYXR0ZXJuRGVmLnJlcGVhdCksXG4gICAgfTtcbiAgfSxcblxuICBvbkFkZDogZnVuY3Rpb24gKG1hcCkge1xuICAgIHRoaXMuX21hcCA9IG1hcDtcbiAgICB0aGlzLl9kcmF3KCk7XG4gICAgdGhpcy5fbWFwLm9uKCdtb3ZlZW5kJywgdGhpcy5yZWRyYXcsIHRoaXMpO1xuICB9LFxuXG4gIG9uUmVtb3ZlOiBmdW5jdGlvbiAobWFwKSB7XG4gICAgdGhpcy5fbWFwLm9mZignbW92ZWVuZCcsIHRoaXMucmVkcmF3LCB0aGlzKTtcbiAgICB0aGlzLl9tYXAgPSBudWxsO1xuICAgIEwuRmVhdHVyZUdyb3VwLnByb3RvdHlwZS5vblJlbW92ZS5jYWxsKHRoaXMsIG1hcCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFzIHJlYWwgcGF0dGVybiBib3VuZHMgZGVwZW5kcyBvbiBtYXAgem9vbSBhbmQgYm91bmRzLFxuICAgKiB3ZSBqdXN0IGNvbXB1dGUgdGhlIHRvdGFsIGJvdW5kcyBvZiBhbGwgcGF0aHMgZGVjb3JhdGVkIGJ5IHRoaXMgaW5zdGFuY2UuXG4gICAqL1xuICBfaW5pdEJvdW5kczogZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFsbFBhdGhDb29yZHMgPSB0aGlzLl9wYXRocy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwYXRoKSA9PiBhY2MuY29uY2F0KHBhdGgpLFxuICAgICAgW10sXG4gICAgKTtcbiAgICByZXR1cm4gTC5sYXRMbmdCb3VuZHMoYWxsUGF0aENvb3Jkcyk7XG4gIH0sXG5cbiAgZ2V0Qm91bmRzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvdW5kcztcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBJTGF5ZXJzIG9iamVjdFxuICAgKi9cbiAgX2J1aWxkU3ltYm9sczogZnVuY3Rpb24gKGxhdExuZ3MsIHN5bWJvbEZhY3RvcnksIGRpcmVjdGlvblBvaW50cykge1xuICAgIHJldHVybiBkaXJlY3Rpb25Qb2ludHMubWFwKChkaXJlY3Rpb25Qb2ludCwgaSkgPT5cbiAgICAgIHN5bWJvbEZhY3RvcnkuYnVpbGRTeW1ib2woXG4gICAgICAgIGRpcmVjdGlvblBvaW50LFxuICAgICAgICBsYXRMbmdzLFxuICAgICAgICB0aGlzLl9tYXAsXG4gICAgICAgIGksXG4gICAgICAgIGRpcmVjdGlvblBvaW50cy5sZW5ndGgsXG4gICAgICApLFxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgcGFpcnMgb2YgTGF0TG5nIGFuZCBoZWFkaW5nIGFuZ2xlLFxuICAgKiB0aGF0IGRlZmluZSBwb3NpdGlvbnMgYW5kIGRpcmVjdGlvbnMgb2YgdGhlIHN5bWJvbHMgb24gdGhlIHBhdGhcbiAgICovXG4gIF9nZXREaXJlY3Rpb25Qb2ludHM6IGZ1bmN0aW9uIChsYXRMbmdzLCBwYXR0ZXJuKSB7XG4gICAgaWYgKGxhdExuZ3MubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBwYXRoQXNQb2ludHMgPSBsYXRMbmdzLm1hcCgobGF0TG5nKSA9PiB0aGlzLl9tYXAucHJvamVjdChsYXRMbmcpKTtcbiAgICByZXR1cm4gcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aChwYXRoQXNQb2ludHMsIHBhdHRlcm4pLm1hcCgocG9pbnQpID0+ICh7XG4gICAgICBsYXRMbmc6IHRoaXMuX21hcC51bnByb2plY3QoTC5wb2ludChwb2ludC5wdCkpLFxuICAgICAgaGVhZGluZzogcG9pbnQuaGVhZGluZyxcbiAgICB9KSk7XG4gIH0sXG5cbiAgcmVkcmF3OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzLl9tYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbGVhckxheWVycygpO1xuICAgIHRoaXMuX2RyYXcoKTtcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgc3ltYm9scyBmb3IgYSBnaXZlbiBwYXR0ZXJuIGFzIGFuIGFycmF5IG9mIEZlYXR1cmVHcm91cFxuICAgKi9cbiAgX2dldFBhdHRlcm5MYXllcnM6IGZ1bmN0aW9uIChwYXR0ZXJuKSB7XG4gICAgY29uc3QgbWFwQm91bmRzID0gdGhpcy5fbWFwLmdldEJvdW5kcygpLnBhZCgwLjEpO1xuICAgIHJldHVybiB0aGlzLl9wYXRocy5tYXAoKHBhdGgpID0+IHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvblBvaW50cyA9IHRoaXMuX2dldERpcmVjdGlvblBvaW50cyhwYXRoLCBwYXR0ZXJuKVxuICAgICAgICAvLyBmaWx0ZXIgb3V0IGludmlzaWJsZSBwb2ludHNcbiAgICAgICAgLmZpbHRlcigocG9pbnQpID0+IG1hcEJvdW5kcy5jb250YWlucyhwb2ludC5sYXRMbmcpKTtcbiAgICAgIHJldHVybiBMLmZlYXR1cmVHcm91cChcbiAgICAgICAgdGhpcy5fYnVpbGRTeW1ib2xzKHBhdGgsIHBhdHRlcm4uc3ltYm9sRmFjdG9yeSwgZGlyZWN0aW9uUG9pbnRzKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERyYXcgYWxsIHBhdHRlcm5zXG4gICAqL1xuICBfZHJhdzogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuX3BhdHRlcm5zXG4gICAgICAubWFwKChwYXR0ZXJuKSA9PiB0aGlzLl9nZXRQYXR0ZXJuTGF5ZXJzKHBhdHRlcm4pKVxuICAgICAgLmZvckVhY2goKGxheWVycykgPT4ge1xuICAgICAgICB0aGlzLmFkZExheWVyKEwuZmVhdHVyZUdyb3VwKGxheWVycykpO1xuICAgICAgfSk7XG4gIH0sXG59KTtcbi8qXG4gKiBBbGxvd3MgY29tcGFjdCBzeW50YXggdG8gYmUgdXNlZFxuICovXG5MLnBvbHlsaW5lRGVjb3JhdG9yID0gZnVuY3Rpb24gKHBhdGhzLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgTC5Qb2x5bGluZURlY29yYXRvcihwYXRocywgb3B0aW9ucyk7XG59O1xuXG4vLyBmdW5jdGlvbmFsIHJlLWltcGwgb2YgTC5Qb2ludC5kaXN0YW5jZVRvLFxuLy8gd2l0aCBubyBkZXBlbmRlbmN5IG9uIExlYWZsZXQgZm9yIGVhc2llciB0ZXN0aW5nXG5mdW5jdGlvbiBwb2ludERpc3RhbmNlKHB0QSwgcHRCKSB7XG4gIGNvbnN0IHggPSBwdEIueCAtIHB0QS54O1xuICBjb25zdCB5ID0gcHRCLnkgLSBwdEEueTtcbiAgcmV0dXJuIE1hdGguc3FydCh4ICogeCArIHkgKiB5KTtcbn1cblxuY29uc3QgY29tcHV0ZVNlZ21lbnRIZWFkaW5nID0gKGEsIGIpID0+XG4gICgoTWF0aC5hdGFuMihiLnkgLSBhLnksIGIueCAtIGEueCkgKiAxODApIC8gTWF0aC5QSSArIDkwICsgMzYwKSAlIDM2MDtcblxuY29uc3QgYXNSYXRpb1RvUGF0aExlbmd0aCA9ICh7IHZhbHVlLCBpc0luUGl4ZWxzIH0sIHRvdGFsUGF0aExlbmd0aCkgPT5cbiAgaXNJblBpeGVscyA/IHZhbHVlIC8gdG90YWxQYXRoTGVuZ3RoIDogdmFsdWU7XG5cbmZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5kZXhPZignJScpICE9PSAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogcGFyc2VGbG9hdCh2YWx1ZSkgLyAxMDAsXG4gICAgICBpc0luUGl4ZWxzOiBmYWxzZSxcbiAgICB9O1xuICB9XG4gIGNvbnN0IHBhcnNlZFZhbHVlID0gdmFsdWUgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IDA7XG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHBhcnNlZFZhbHVlLFxuICAgIGlzSW5QaXhlbHM6IHBhcnNlZFZhbHVlID4gMCxcbiAgfTtcbn1cblxuY29uc3QgcG9pbnRzRXF1YWwgPSAoYSwgYikgPT4gYS54ID09PSBiLnggJiYgYS55ID09PSBiLnk7XG5cbmZ1bmN0aW9uIHBvaW50c1RvU2VnbWVudHMocHRzKSB7XG4gIHJldHVybiBwdHMucmVkdWNlKChzZWdtZW50cywgYiwgaWR4LCBwb2ludHMpID0+IHtcbiAgICAvLyB0aGlzIHRlc3Qgc2tpcHMgc2FtZSBhZGphY2VudCBwb2ludHNcbiAgICBpZiAoaWR4ID4gMCAmJiAhcG9pbnRzRXF1YWwoYiwgcG9pbnRzW2lkeCAtIDFdKSkge1xuICAgICAgY29uc3QgYSA9IHBvaW50c1tpZHggLSAxXTtcbiAgICAgIGNvbnN0IGRpc3RBID1cbiAgICAgICAgc2VnbWVudHMubGVuZ3RoID4gMCA/IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdLmRpc3RCIDogMDtcbiAgICAgIGNvbnN0IGRpc3RBQiA9IHBvaW50RGlzdGFuY2UoYSwgYik7XG4gICAgICBzZWdtZW50cy5wdXNoKHtcbiAgICAgICAgYSxcbiAgICAgICAgYixcbiAgICAgICAgZGlzdEEsXG4gICAgICAgIGRpc3RCOiBkaXN0QSArIGRpc3RBQixcbiAgICAgICAgaGVhZGluZzogY29tcHV0ZVNlZ21lbnRIZWFkaW5nKGEsIGIpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzZWdtZW50cztcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBwcm9qZWN0UGF0dGVybk9uUG9pbnRQYXRoKHB0cywgcGF0dGVybikge1xuICAvLyAxLiBzcGxpdCB0aGUgcGF0aCBpbnRvIHNlZ21lbnQgaW5mb3NcbiAgY29uc3Qgc2VnbWVudHMgPSBwb2ludHNUb1NlZ21lbnRzKHB0cyk7XG4gIGNvbnN0IG5iU2VnbWVudHMgPSBzZWdtZW50cy5sZW5ndGg7XG4gIGlmIChuYlNlZ21lbnRzID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdG90YWxQYXRoTGVuZ3RoID0gc2VnbWVudHNbbmJTZWdtZW50cyAtIDFdLmRpc3RCO1xuXG4gIGNvbnN0IG9mZnNldCA9IGFzUmF0aW9Ub1BhdGhMZW5ndGgocGF0dGVybi5vZmZzZXQsIHRvdGFsUGF0aExlbmd0aCk7XG4gIGNvbnN0IGVuZE9mZnNldCA9IGFzUmF0aW9Ub1BhdGhMZW5ndGgocGF0dGVybi5lbmRPZmZzZXQsIHRvdGFsUGF0aExlbmd0aCk7XG4gIGNvbnN0IHJlcGVhdCA9IGFzUmF0aW9Ub1BhdGhMZW5ndGgocGF0dGVybi5yZXBlYXQsIHRvdGFsUGF0aExlbmd0aCk7XG5cbiAgY29uc3QgcmVwZWF0SW50ZXJ2YWxQaXhlbHMgPSB0b3RhbFBhdGhMZW5ndGggKiByZXBlYXQ7XG4gIGNvbnN0IHN0YXJ0T2Zmc2V0UGl4ZWxzID0gb2Zmc2V0ID4gMCA/IHRvdGFsUGF0aExlbmd0aCAqIG9mZnNldCA6IDA7XG4gIGNvbnN0IGVuZE9mZnNldFBpeGVscyA9IGVuZE9mZnNldCA+IDAgPyB0b3RhbFBhdGhMZW5ndGggKiBlbmRPZmZzZXQgOiAwO1xuXG4gIC8vIDIuIGdlbmVyYXRlIHRoZSBwb3NpdGlvbnMgb2YgdGhlIHBhdHRlcm4gYXMgb2Zmc2V0cyBmcm9tIHRoZSBwYXRoIHN0YXJ0XG4gIGNvbnN0IHBvc2l0aW9uT2Zmc2V0cyA9IFtdO1xuICBsZXQgcG9zaXRpb25PZmZzZXQgPSBzdGFydE9mZnNldFBpeGVscztcbiAgZG8ge1xuICAgIHBvc2l0aW9uT2Zmc2V0cy5wdXNoKHBvc2l0aW9uT2Zmc2V0KTtcbiAgICBwb3NpdGlvbk9mZnNldCArPSByZXBlYXRJbnRlcnZhbFBpeGVscztcbiAgfSB3aGlsZSAoXG4gICAgcmVwZWF0SW50ZXJ2YWxQaXhlbHMgPiAwICYmXG4gICAgcG9zaXRpb25PZmZzZXQgPCB0b3RhbFBhdGhMZW5ndGggLSBlbmRPZmZzZXRQaXhlbHNcbiAgKTtcblxuICAvLyAzLiBwcm9qZWN0cyBvZmZzZXRzIHRvIHNlZ21lbnRzXG4gIGxldCBzZWdtZW50SW5kZXggPSAwO1xuICBsZXQgc2VnbWVudCA9IHNlZ21lbnRzWzBdO1xuICByZXR1cm4gcG9zaXRpb25PZmZzZXRzLm1hcCgocG9zaXRpb25PZmZzZXQpID0+IHtcbiAgICAvLyBmaW5kIHRoZSBzZWdtZW50IG1hdGNoaW5nIHRoZSBvZmZzZXQsXG4gICAgLy8gc3RhcnRpbmcgZnJvbSB0aGUgcHJldmlvdXMgb25lIGFzIG9mZnNldHMgYXJlIG9yZGVyZWRcbiAgICB3aGlsZSAocG9zaXRpb25PZmZzZXQgPiBzZWdtZW50LmRpc3RCICYmIHNlZ21lbnRJbmRleCA8IG5iU2VnbWVudHMgLSAxKSB7XG4gICAgICBzZWdtZW50SW5kZXgrKztcbiAgICAgIHNlZ21lbnQgPSBzZWdtZW50c1tzZWdtZW50SW5kZXhdO1xuICAgIH1cblxuICAgIGNvbnN0IHNlZ21lbnRSYXRpbyA9XG4gICAgICAocG9zaXRpb25PZmZzZXQgLSBzZWdtZW50LmRpc3RBKSAvIChzZWdtZW50LmRpc3RCIC0gc2VnbWVudC5kaXN0QSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB0OiBpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMoc2VnbWVudC5hLCBzZWdtZW50LmIsIHNlZ21lbnRSYXRpbyksXG4gICAgICBoZWFkaW5nOiBzZWdtZW50LmhlYWRpbmcsXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIHBvaW50IHdoaWNoIGxpZXMgb24gdGhlIHNlZ21lbnQgZGVmaW5lZCBieSBwb2ludHMgQSBhbmQgQixcbiAqIGF0IHRoZSBnaXZlbiByYXRpbyBvZiB0aGUgZGlzdGFuY2UgZnJvbSBBIHRvIEIsIGJ5IGxpbmVhciBpbnRlcnBvbGF0aW9uLlxuICovXG5mdW5jdGlvbiBpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMocHRBLCBwdEIsIHJhdGlvKSB7XG4gIGlmIChwdEIueCAhPT0gcHRBLngpIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogcHRBLnggKyByYXRpbyAqIChwdEIueCAtIHB0QS54KSxcbiAgICAgIHk6IHB0QS55ICsgcmF0aW8gKiAocHRCLnkgLSBwdEEueSksXG4gICAgfTtcbiAgfVxuICAvLyBzcGVjaWFsIGNhc2Ugd2hlcmUgcG9pbnRzIGxpZSBvbiB0aGUgc2FtZSB2ZXJ0aWNhbCBheGlzXG4gIHJldHVybiB7XG4gICAgeDogcHRBLngsXG4gICAgeTogcHRBLnkgKyAocHRCLnkgLSBwdEEueSkgKiByYXRpbyxcbiAgfTtcbn1cblxuZXhwb3J0IHtcbiAgcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aCxcbiAgcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZSxcbiAgLy8gdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBhcmUgZXhwb3J0ZWQgb25seSBmb3IgdW5pdCB0ZXN0aW5nIHB1cnBvc2VcbiAgY29tcHV0ZVNlZ21lbnRIZWFkaW5nLFxuICBhc1JhdGlvVG9QYXRoTGVuZ3RoLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUFBLE9BQUE7QUFEQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUMsZ0JBQUMsQ0FBQ0MsTUFBTSxHQUFHRCxnQkFBQyxDQUFDQyxNQUFNLElBQUksQ0FBQyxDQUFDOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBRCxnQkFBQyxDQUFDQyxNQUFNLENBQUNDLElBQUksR0FBR0YsZ0JBQUMsQ0FBQ0csS0FBSyxDQUFDQyxNQUFNLENBQUM7RUFDN0JDLE9BQU8sRUFBRTtJQUNQQyxTQUFTLEVBQUUsRUFBRTtJQUNiQyxXQUFXLEVBQUUsQ0FBQztFQUNoQixDQUFDO0VBRURDLFVBQVUsRUFB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
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.scoreToColor = void 0;
7
-
8
7
  var _theme = require("../styles/theme/theme");
9
-
10
8
  var scoreToColor = function scoreToColor(val) {
11
9
  var num = Number(val);
12
-
13
10
  if (isNaN(num) || num <= 0) {
14
11
  return _theme.theme.colorScheme.natural.n70;
15
12
  }
16
-
17
13
  var color = _theme.theme.colorScheme.data.G100;
18
-
19
14
  if (num > 70) {
20
15
  color = _theme.theme.colorScheme.data.R100;
21
16
  } else if (num > 50) {
@@ -23,9 +18,7 @@ var scoreToColor = function scoreToColor(val) {
23
18
  } else if (num > 30) {
24
19
  color = _theme.theme.colorScheme.data.W100;
25
20
  }
26
-
27
21
  return color;
28
22
  };
29
-
30
23
  exports.scoreToColor = scoreToColor;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2NvcmVUb0NvbG9yLnRzIl0sIm5hbWVzIjpbInNjb3JlVG9Db2xvciIsInZhbCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidGhlbWUiLCJjb2xvclNjaGVtZSIsIm5hdHVyYWwiLCJuNzAiLCJjb2xvciIsImRhdGEiLCJHMTAwIiwiUjEwMCIsIk8xMDAiLCJXMTAwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRU8sSUFBTUEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsR0FBRCxFQUEwQjtBQUNwRCxNQUFJQyxHQUFHLEdBQUdDLE1BQU0sQ0FBQ0YsR0FBRCxDQUFoQjs7QUFFQSxNQUFJRyxLQUFLLENBQUNGLEdBQUQsQ0FBTCxJQUFjQSxHQUFHLElBQUksQ0FBekIsRUFBNEI7QUFDMUIsV0FBT0csYUFBTUMsV0FBTixDQUFrQkMsT0FBbEIsQ0FBMEJDLEdBQWpDO0FBQ0Q7O0FBQ0QsTUFBSUMsS0FBSyxHQUFHSixhQUFNQyxXQUFOLENBQWtCSSxJQUFsQixDQUF1QkMsSUFBbkM7O0FBQ0EsTUFBSVQsR0FBRyxHQUFHLEVBQVYsRUFBYztBQUNaTyxJQUFBQSxLQUFLLEdBQUdKLGFBQU1DLFdBQU4sQ0FBa0JJLElBQWxCLENBQXVCRSxJQUEvQjtBQUNELEdBRkQsTUFFTyxJQUFJVixHQUFHLEdBQUcsRUFBVixFQUFjO0FBQ25CTyxJQUFBQSxLQUFLLEdBQUdKLGFBQU1DLFdBQU4sQ0FBa0JJLElBQWxCLENBQXVCRyxJQUEvQjtBQUNELEdBRk0sTUFFQSxJQUFJWCxHQUFHLEdBQUcsRUFBVixFQUFjO0FBQ25CTyxJQUFBQSxLQUFLLEdBQUdKLGFBQU1DLFdBQU4sQ0FBa0JJLElBQWxCLENBQXVCSSxJQUEvQjtBQUNEOztBQUVELFNBQU9MLEtBQVA7QUFDRCxDQWhCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcblxuZXhwb3J0IGNvbnN0IHNjb3JlVG9Db2xvciA9ICh2YWw6IG51bWJlciB8IHN0cmluZykgPT4ge1xuICBsZXQgbnVtID0gTnVtYmVyKHZhbCk7XG5cbiAgaWYgKGlzTmFOKG51bSkgfHwgbnVtIDw9IDApIHtcbiAgICByZXR1cm4gdGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNzA7XG4gIH1cbiAgbGV0IGNvbG9yID0gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5HMTAwO1xuICBpZiAobnVtID4gNzApIHtcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuUjEwMDtcbiAgfSBlbHNlIGlmIChudW0gPiA1MCkge1xuICAgIGNvbG9yID0gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwO1xuICB9IGVsc2UgaWYgKG51bSA+IDMwKSB7XG4gICAgY29sb3IgPSB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDA7XG4gIH1cblxuICByZXR1cm4gY29sb3I7XG59O1xuIl19
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGhlbWUiLCJyZXF1aXJlIiwic2NvcmVUb0NvbG9yIiwidmFsIiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm43MCIsImNvbG9yIiwiZGF0YSIsIkcxMDAiLCJSMTAwIiwiTzEwMCIsIlcxMDAiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9zY29yZVRvQ29sb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhlbWUgfSBmcm9tICcuLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuXG5leHBvcnQgY29uc3Qgc2NvcmVUb0NvbG9yID0gKHZhbDogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gIGxldCBudW0gPSBOdW1iZXIodmFsKTtcblxuICBpZiAoaXNOYU4obnVtKSB8fCBudW0gPD0gMCkge1xuICAgIHJldHVybiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm43MDtcbiAgfVxuICBsZXQgY29sb3IgPSB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLkcxMDA7XG4gIGlmIChudW0gPiA3MCkge1xuICAgIGNvbG9yID0gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5SMTAwO1xuICB9IGVsc2UgaWYgKG51bSA+IDUwKSB7XG4gICAgY29sb3IgPSB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLk8xMDA7XG4gIH0gZWxzZSBpZiAobnVtID4gMzApIHtcbiAgICBjb2xvciA9IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuVzEwMDtcbiAgfVxuXG4gIHJldHVybiBjb2xvcjtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVPLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxHQUFvQixFQUFLO0VBQ3BELElBQUlDLEdBQUcsR0FBR0MsTUFBTSxDQUFDRixHQUFHLENBQUM7RUFFckIsSUFBSUcsS0FBSyxDQUFDRixHQUFHLENBQUMsSUFBSUEsR0FBRyxJQUFJLENBQUMsRUFBRTtJQUMxQixPQUFPRyxZQUFLLENBQUNDLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDQyxHQUFHO0VBQ3RDO0VBQ0EsSUFBSUMsS0FBSyxHQUFHSixZQUFLLENBQUNDLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDQyxJQUFJO0VBQ3ZDLElBQUlULEdBQUcsR0FBRyxFQUFFLEVBQUU7SUFDWk8sS0FBSyxHQUFHSixZQUFLLENBQUNDLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDRSxJQUFJO0VBQ3JDLENBQUMsTUFBTSxJQUFJVixHQUFHLEdBQUcsRUFBRSxFQUFFO0lBQ25CTyxLQUFLLEdBQUdKLFlBQUssQ0FBQ0MsV0FBVyxDQUFDSSxJQUFJLENBQUNHLElBQUk7RUFDckMsQ0FBQyxNQUFNLElBQUlYLEdBQUcsR0FBRyxFQUFFLEVBQUU7SUFDbkJPLEtBQUssR0FBR0osWUFBSyxDQUFDQyxXQUFXLENBQUNJLElBQUksQ0FBQ0ksSUFBSTtFQUNyQztFQUVBLE9BQU9MLEtBQUs7QUFDZCxDQUFDO0FBQUNNLE9BQUEsQ0FBQWYsWUFBQSxHQUFBQSxZQUFBIn0=
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.mapRangeToDate = exports.localLanguageMap = exports.rangeToDays = void 0;
9
-
7
+ exports.rangeToDays = exports.mapRangeToDate = exports.localLanguageMap = void 0;
10
8
  var _dayjs = _interopRequireDefault(require("dayjs"));
11
-
12
9
  var _locale = require("date-fns/locale");
13
-
14
10
  var rangeToDays = function rangeToDays(range) {
15
11
  var dict = {
16
12
  '24h': 1,
@@ -23,7 +19,6 @@ var rangeToDays = function rangeToDays(range) {
23
19
  };
24
20
  return dict[range];
25
21
  };
26
-
27
22
  exports.rangeToDays = rangeToDays;
28
23
  var localLanguageMap = {
29
24
  he: _locale.he,
@@ -32,13 +27,11 @@ var localLanguageMap = {
32
27
  fr: _locale.fr
33
28
  };
34
29
  exports.localLanguageMap = localLanguageMap;
35
-
36
30
  var mapRangeToDate = function mapRangeToDate(range) {
37
31
  var to = (0, _dayjs.default)().format('YYYY-MM-DD');
38
32
  var daysToSubtract = rangeToDays(range);
39
33
  var from = (0, _dayjs.default)().subtract(daysToSubtract, 'days').format('YYYY-MM-DD');
40
34
  return [from, to];
41
35
  };
42
-
43
36
  exports.mapRangeToDate = mapRangeToDate;
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGltZS50cyJdLCJuYW1lcyI6WyJyYW5nZVRvRGF5cyIsInJhbmdlIiwiZGljdCIsImxvY2FsTGFuZ3VhZ2VNYXAiLCJoZSIsIml0IiwiZW4iLCJlblVTIiwiZnIiLCJtYXBSYW5nZVRvRGF0ZSIsInRvIiwiZm9ybWF0IiwiZGF5c1RvU3VidHJhY3QiLCJmcm9tIiwic3VidHJhY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVPLElBQU1BLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLEtBQUQsRUFBbUI7QUFDNUMsTUFBTUMsSUFBK0IsR0FBRztBQUN0QyxXQUFPLENBRCtCO0FBRXRDLFdBQU8sQ0FGK0I7QUFHdEMsVUFBTSxDQUhnQztBQUl0QyxXQUFPLEVBSitCO0FBS3RDLFVBQU0sRUFMZ0M7QUFNdEMsVUFBTSxHQU5nQztBQU90QyxVQUFNO0FBUGdDLEdBQXhDO0FBU0EsU0FBT0EsSUFBSSxDQUFDRCxLQUFELENBQVg7QUFDRCxDQVhNOzs7QUFhQSxJQUFNRSxnQkFBZ0IsR0FBRztBQUFFQyxFQUFBQSxFQUFFLEVBQUZBLFVBQUY7QUFBTUMsRUFBQUEsRUFBRSxFQUFGQSxVQUFOO0FBQVVDLEVBQUFBLEVBQUUsRUFBRUMsWUFBZDtBQUFvQkMsRUFBQUEsRUFBRSxFQUFGQTtBQUFwQixDQUF6Qjs7O0FBRUEsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDUixLQUFELEVBQXFDO0FBQ2pFLE1BQU1TLEVBQUUsR0FBRyxzQkFBUUMsTUFBUixDQUFlLFlBQWYsQ0FBWDtBQUNBLE1BQU1DLGNBQWMsR0FBR1osV0FBVyxDQUFDQyxLQUFELENBQWxDO0FBQ0EsTUFBTVksSUFBSSxHQUFHLHNCQUFRQyxRQUFSLENBQWlCRixjQUFqQixFQUFpQyxNQUFqQyxFQUF5Q0QsTUFBekMsQ0FBZ0QsWUFBaEQsQ0FBYjtBQUVBLFNBQU8sQ0FBQ0UsSUFBRCxFQUFPSCxFQUFQLENBQVA7QUFDRCxDQU5NIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IGVuVVMsIGZyLCBoZSwgaXQgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuXG5leHBvcnQgY29uc3QgcmFuZ2VUb0RheXMgPSAocmFuZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBkaWN0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge1xuICAgICcyNGgnOiAxLFxuICAgICc0OGgnOiAyLFxuICAgICc3ZCc6IDcsXG4gICAgJzMwZCc6IDMwLFxuICAgICczbSc6IDkyLFxuICAgICc2bSc6IDE4MyxcbiAgICAnMXknOiAzNjUsXG4gIH07XG4gIHJldHVybiBkaWN0W3JhbmdlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2NhbExhbmd1YWdlTWFwID0geyBoZSwgaXQsIGVuOiBlblVTLCBmciB9O1xuXG5leHBvcnQgY29uc3QgbWFwUmFuZ2VUb0RhdGUgPSAocmFuZ2U6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT4ge1xuICBjb25zdCB0byA9IGRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gIGNvbnN0IGRheXNUb1N1YnRyYWN0ID0gcmFuZ2VUb0RheXMocmFuZ2UpO1xuICBjb25zdCBmcm9tID0gZGF5anMoKS5zdWJ0cmFjdChkYXlzVG9TdWJ0cmFjdCwgJ2RheXMnKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcblxuICByZXR1cm4gW2Zyb20sIHRvXTtcbn07XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF5anMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2NhbGUiLCJyYW5nZVRvRGF5cyIsInJhbmdlIiwiZGljdCIsImV4cG9ydHMiLCJsb2NhbExhbmd1YWdlTWFwIiwiaGUiLCJpdCIsImVuIiwiZW5VUyIsImZyIiwibWFwUmFuZ2VUb0RhdGUiLCJ0byIsImRheWpzIiwiZm9ybWF0IiwiZGF5c1RvU3VidHJhY3QiLCJmcm9tIiwic3VidHJhY3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3RpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IGVuVVMsIGZyLCBoZSwgaXQgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuXG5leHBvcnQgY29uc3QgcmFuZ2VUb0RheXMgPSAocmFuZ2U6IHN0cmluZykgPT4ge1xuICBjb25zdCBkaWN0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge1xuICAgICcyNGgnOiAxLFxuICAgICc0OGgnOiAyLFxuICAgICc3ZCc6IDcsXG4gICAgJzMwZCc6IDMwLFxuICAgICczbSc6IDkyLFxuICAgICc2bSc6IDE4MyxcbiAgICAnMXknOiAzNjUsXG4gIH07XG4gIHJldHVybiBkaWN0W3JhbmdlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2NhbExhbmd1YWdlTWFwID0geyBoZSwgaXQsIGVuOiBlblVTLCBmciB9O1xuXG5leHBvcnQgY29uc3QgbWFwUmFuZ2VUb0RhdGUgPSAocmFuZ2U6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT4ge1xuICBjb25zdCB0byA9IGRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gIGNvbnN0IGRheXNUb1N1YnRyYWN0ID0gcmFuZ2VUb0RheXMocmFuZ2UpO1xuICBjb25zdCBmcm9tID0gZGF5anMoKS5zdWJ0cmFjdChkYXlzVG9TdWJ0cmFjdCwgJ2RheXMnKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcblxuICByZXR1cm4gW2Zyb20sIHRvXTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFTyxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBYSxFQUFLO0VBQzVDLElBQU1DLElBQStCLEdBQUc7SUFDdEMsS0FBSyxFQUFFLENBQUM7SUFDUixLQUFLLEVBQUUsQ0FBQztJQUNSLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLEVBQUU7SUFDVCxJQUFJLEVBQUUsRUFBRTtJQUNSLElBQUksRUFBRSxHQUFHO0lBQ1QsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNELE9BQU9BLElBQUksQ0FBQ0QsS0FBSyxDQUFDO0FBQ3BCLENBQUM7QUFBQ0UsT0FBQSxDQUFBSCxXQUFBLEdBQUFBLFdBQUE7QUFFSyxJQUFNSSxnQkFBZ0IsR0FBRztFQUFFQyxFQUFFLEVBQUZBLFVBQUU7RUFBRUMsRUFBRSxFQUFGQSxVQUFFO0VBQUVDLEVBQUUsRUFBRUMsWUFBSTtFQUFFQyxFQUFFLEVBQUZBO0FBQUcsQ0FBQztBQUFDTixPQUFBLENBQUFDLGdCQUFBLEdBQUFBLGdCQUFBO0FBRWxELElBQU1NLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSVQsS0FBYSxFQUF1QjtFQUNqRSxJQUFNVSxFQUFFLEdBQUcsSUFBQUMsY0FBSyxFQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLFlBQVksQ0FBQztFQUN2QyxJQUFNQyxjQUFjLEdBQUdkLFdBQVcsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3pDLElBQU1jLElBQUksR0FBRyxJQUFBSCxjQUFLLEVBQUMsQ0FBQyxDQUFDSSxRQUFRLENBQUNGLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQztFQUUxRSxPQUFPLENBQUNFLElBQUksRUFBRUosRUFBRSxDQUFDO0FBQ25CLENBQUM7QUFBQ1IsT0FBQSxDQUFBTyxjQUFBLEdBQUFBLGNBQUEifQ==
@@ -1,31 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.uploadToAws = void 0;
9
-
10
8
  var _axios = _interopRequireDefault(require("axios"));
11
-
12
9
  var _xml2js = _interopRequireDefault(require("xml2js"));
13
-
14
10
  var uploadToAws = function uploadToAws(file, setResource, presignedURL, setIsFetchingToAws) {
15
11
  _axios.default.get(presignedURL).then(function (res) {
16
12
  var data = res.data;
17
13
  data['file'] = file;
18
14
  postToAws(data);
19
15
  });
20
-
21
16
  var postToAws = function postToAws(data) {
22
17
  setIsFetchingToAws(true);
23
18
  var formData = new FormData();
24
-
25
19
  for (var key in data) {
26
20
  formData.append(key, data[key]);
27
21
  }
28
-
29
22
  _axios.default.post(data.url, formData, {
30
23
  headers: {
31
24
  'Content-Type': 'multipart/form-data',
@@ -47,6 +40,5 @@ var uploadToAws = function uploadToAws(file, setResource, presignedURL, setIsFet
47
40
  });
48
41
  };
49
42
  };
50
-
51
43
  exports.uploadToAws = uploadToAws;
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdXBsb2FkVG9TMy50cyJdLCJuYW1lcyI6WyJ1cGxvYWRUb0F3cyIsImZpbGUiLCJzZXRSZXNvdXJjZSIsInByZXNpZ25lZFVSTCIsInNldElzRmV0Y2hpbmdUb0F3cyIsImF4aW9zIiwiZ2V0IiwidGhlbiIsInJlcyIsImRhdGEiLCJwb3N0VG9Bd3MiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwia2V5IiwiYXBwZW5kIiwicG9zdCIsInVybCIsImhlYWRlcnMiLCJ4bWwyanMiLCJwYXJzZVN0cmluZyIsImVyciIsInJlc3VsdCIsImFsZXJ0IiwicmVzcG9uc2UiLCJQb3N0UmVzcG9uc2UiLCJjYXRjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sSUFBTUEsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FDekJDLElBRHlCLEVBRXpCQyxXQUZ5QixFQUd6QkMsWUFIeUIsRUFJekJDLGtCQUp5QixFQUt0QjtBQUNIQyxpQkFBTUMsR0FBTixDQUFVSCxZQUFWLEVBQXdCSSxJQUF4QixDQUE2QixVQUFDQyxHQUFELEVBQVM7QUFDcEMsUUFBSUMsSUFBSSxHQUFHRCxHQUFHLENBQUNDLElBQWY7QUFDQUEsSUFBQUEsSUFBSSxDQUFDLE1BQUQsQ0FBSixHQUFlUixJQUFmO0FBQ0FTLElBQUFBLFNBQVMsQ0FBQ0QsSUFBRCxDQUFUO0FBQ0QsR0FKRDs7QUFNQSxNQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDRCxJQUFELEVBQVU7QUFDMUJMLElBQUFBLGtCQUFrQixDQUFDLElBQUQsQ0FBbEI7QUFDQSxRQUFJTyxRQUFRLEdBQUcsSUFBSUMsUUFBSixFQUFmOztBQUNBLFNBQUssSUFBSUMsR0FBVCxJQUFnQkosSUFBaEIsRUFBc0I7QUFDcEJFLE1BQUFBLFFBQVEsQ0FBQ0csTUFBVCxDQUFnQkQsR0FBaEIsRUFBcUJKLElBQUksQ0FBQ0ksR0FBRCxDQUF6QjtBQUNEOztBQUVEUixtQkFDR1UsSUFESCxDQUNRTixJQUFJLENBQUNPLEdBRGIsRUFDa0JMLFFBRGxCLEVBQzRCO0FBQ3hCTSxNQUFBQSxPQUFPLEVBQUU7QUFDUCx3QkFBZ0IscUJBRFQ7QUFFUCxxQkFBYTtBQUZOO0FBRGUsS0FENUIsRUFPR1YsSUFQSCxDQU9RLFVBQUNDLEdBQUQsRUFBUztBQUNiVSxzQkFBT0MsV0FBUCxDQUFtQlgsR0FBRyxDQUFDQyxJQUF2QixFQUE2QixVQUFDVyxHQUFELEVBQU1DLE1BQU4sRUFBaUI7QUFDNUMsWUFBSUQsR0FBSixFQUFTO0FBQ1BFLFVBQUFBLEtBQUssQ0FBQ0YsR0FBRCxDQUFMO0FBQ0QsU0FGRCxNQUVPO0FBQ0wsY0FBSUcsUUFBUSxHQUFHRixNQUFNLENBQUNHLFlBQXRCO0FBQ0F0QixVQUFBQSxXQUFXLENBQUNxQixRQUFELENBQVg7QUFFQW5CLFVBQUFBLGtCQUFrQixDQUFDLEtBQUQsQ0FBbEI7QUFDRDtBQUNGLE9BVEQ7QUFVRCxLQWxCSCxFQW1CR3FCLEtBbkJILENBbUJTLFVBQUNMLEdBQUQsRUFBUztBQUNkaEIsTUFBQUEsa0JBQWtCLENBQUMsS0FBRCxDQUFsQjtBQUNBa0IsTUFBQUEsS0FBSyxDQUFDRixHQUFELENBQUw7QUFDRCxLQXRCSDtBQXVCRCxHQTlCRDtBQStCRCxDQTNDTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeG1sMmpzIGZyb20gJ3htbDJqcyc7XG5cbmV4cG9ydCBjb25zdCB1cGxvYWRUb0F3cyA9IChcbiAgZmlsZSxcbiAgc2V0UmVzb3VyY2UsXG4gIHByZXNpZ25lZFVSTCxcbiAgc2V0SXNGZXRjaGluZ1RvQXdzLFxuKSA9PiB7XG4gIGF4aW9zLmdldChwcmVzaWduZWRVUkwpLnRoZW4oKHJlcykgPT4ge1xuICAgIGxldCBkYXRhID0gcmVzLmRhdGE7XG4gICAgZGF0YVsnZmlsZSddID0gZmlsZTtcbiAgICBwb3N0VG9Bd3MoZGF0YSk7XG4gIH0pO1xuXG4gIGNvbnN0IHBvc3RUb0F3cyA9IChkYXRhKSA9PiB7XG4gICAgc2V0SXNGZXRjaGluZ1RvQXdzKHRydWUpO1xuICAgIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvciAobGV0IGtleSBpbiBkYXRhKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pO1xuICAgIH1cblxuICAgIGF4aW9zXG4gICAgICAucG9zdChkYXRhLnVybCwgZm9ybURhdGEsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAgICAgICAgJ3gtYW16LWFjbCc6ICdwdWJsaWMtcmVhZCcsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICB4bWwyanMucGFyc2VTdHJpbmcocmVzLmRhdGEsIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGFsZXJ0KGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCByZXNwb25zZSA9IHJlc3VsdC5Qb3N0UmVzcG9uc2U7XG4gICAgICAgICAgICBzZXRSZXNvdXJjZShyZXNwb25zZSk7XG5cbiAgICAgICAgICAgIHNldElzRmV0Y2hpbmdUb0F3cyhmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBzZXRJc0ZldGNoaW5nVG9Bd3MoZmFsc2UpO1xuICAgICAgICBhbGVydChlcnIpO1xuICAgICAgfSk7XG4gIH07XG59O1xuIl19
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl94bWwyanMiLCJ1cGxvYWRUb0F3cyIsImZpbGUiLCJzZXRSZXNvdXJjZSIsInByZXNpZ25lZFVSTCIsInNldElzRmV0Y2hpbmdUb0F3cyIsImF4aW9zIiwiZ2V0IiwidGhlbiIsInJlcyIsImRhdGEiLCJwb3N0VG9Bd3MiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwia2V5IiwiYXBwZW5kIiwicG9zdCIsInVybCIsImhlYWRlcnMiLCJ4bWwyanMiLCJwYXJzZVN0cmluZyIsImVyciIsInJlc3VsdCIsImFsZXJ0IiwicmVzcG9uc2UiLCJQb3N0UmVzcG9uc2UiLCJjYXRjaCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3VwbG9hZFRvUzMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB4bWwyanMgZnJvbSAneG1sMmpzJztcblxuZXhwb3J0IGNvbnN0IHVwbG9hZFRvQXdzID0gKFxuICBmaWxlLFxuICBzZXRSZXNvdXJjZSxcbiAgcHJlc2lnbmVkVVJMLFxuICBzZXRJc0ZldGNoaW5nVG9Bd3MsXG4pID0+IHtcbiAgYXhpb3MuZ2V0KHByZXNpZ25lZFVSTCkudGhlbigocmVzKSA9PiB7XG4gICAgbGV0IGRhdGEgPSByZXMuZGF0YTtcbiAgICBkYXRhWydmaWxlJ10gPSBmaWxlO1xuICAgIHBvc3RUb0F3cyhkYXRhKTtcbiAgfSk7XG5cbiAgY29uc3QgcG9zdFRvQXdzID0gKGRhdGEpID0+IHtcbiAgICBzZXRJc0ZldGNoaW5nVG9Bd3ModHJ1ZSk7XG4gICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9yIChsZXQga2V5IGluIGRhdGEpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIGRhdGFba2V5XSk7XG4gICAgfVxuXG4gICAgYXhpb3NcbiAgICAgIC5wb3N0KGRhdGEudXJsLCBmb3JtRGF0YSwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxcbiAgICAgICAgICAneC1hbXotYWNsJzogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIHhtbDJqcy5wYXJzZVN0cmluZyhyZXMuZGF0YSwgKGVyciwgcmVzdWx0KSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgYWxlcnQoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVzdWx0LlBvc3RSZXNwb25zZTtcbiAgICAgICAgICAgIHNldFJlc291cmNlKHJlc3BvbnNlKTtcblxuICAgICAgICAgICAgc2V0SXNGZXRjaGluZ1RvQXdzKGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIHNldElzRmV0Y2hpbmdUb0F3cyhmYWxzZSk7XG4gICAgICAgIGFsZXJ0KGVycik7XG4gICAgICB9KTtcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFTyxJQUFNRSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FDdEJDLElBQUksRUFDSkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNmO0VBQ0hDLGNBQUssQ0FBQ0MsR0FBRyxDQUFDSCxZQUFZLENBQUMsQ0FBQ0ksSUFBSSxDQUFDLFVBQUNDLEdBQUcsRUFBSztJQUNwQyxJQUFJQyxJQUFJLEdBQUdELEdBQUcsQ0FBQ0MsSUFBSTtJQUNuQkEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHUixJQUFJO0lBQ25CUyxTQUFTLENBQUNELElBQUksQ0FBQztFQUNqQixDQUFDLENBQUM7RUFFRixJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSUQsSUFBSSxFQUFLO0lBQzFCTCxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDeEIsSUFBSU8sUUFBUSxHQUFHLElBQUlDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLEtBQUssSUFBSUMsR0FBRyxJQUFJSixJQUFJLEVBQUU7TUFDcEJFLFFBQVEsQ0FBQ0csTUFBTSxDQUFDRCxHQUFHLEVBQUVKLElBQUksQ0FBQ0ksR0FBRyxDQUFDLENBQUM7SUFDakM7SUFFQVIsY0FBSyxDQUNGVSxJQUFJLENBQUNOLElBQUksQ0FBQ08sR0FBRyxFQUFFTCxRQUFRLEVBQUU7TUFDeEJNLE9BQU8sRUFBRTtRQUNQLGNBQWMsRUFBRSxxQkFBcUI7UUFDckMsV0FBVyxFQUFFO01BQ2Y7SUFDRixDQUFDLENBQUMsQ0FDRFYsSUFBSSxDQUFDLFVBQUNDLEdBQUcsRUFBSztNQUNiVSxlQUFNLENBQUNDLFdBQVcsQ0FBQ1gsR0FBRyxDQUFDQyxJQUFJLEVBQUUsVUFBQ1csR0FBRyxFQUFFQyxNQUFNLEVBQUs7UUFDNUMsSUFBSUQsR0FBRyxFQUFFO1VBQ1BFLEtBQUssQ0FBQ0YsR0FBRyxDQUFDO1FBQ1osQ0FBQyxNQUFNO1VBQ0wsSUFBSUcsUUFBUSxHQUFHRixNQUFNLENBQUNHLFlBQVk7VUFDbEN0QixXQUFXLENBQUNxQixRQUFRLENBQUM7VUFFckJuQixrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDM0I7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FDRHFCLEtBQUssQ0FBQyxVQUFDTCxHQUFHLEVBQUs7TUFDZGhCLGtCQUFrQixDQUFDLEtBQUssQ0FBQztNQUN6QmtCLEtBQUssQ0FBQ0YsR0FBRyxDQUFDO0lBQ1osQ0FBQyxDQUFDO0VBQ04sQ0FBQztBQUNILENBQUM7QUFBQ00sT0FBQSxDQUFBMUIsV0FBQSxHQUFBQSxXQUFBIn0=