@kando-env/kando-ui 1.2.383 → 1.2.385-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Router.js +78 -36
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +35 -25
- package/lib/Widgets/EventsRow/EventsRow.js +39 -27
- package/lib/Widgets/Map/GraphUtils.js +3 -3
- package/lib/Widgets/Map/Map.js +138 -99
- package/lib/Widgets/Map/MapUtils.js +99 -82
- package/lib/Widgets/Map/areas/AreaPolygon.js +77 -53
- package/lib/Widgets/Map/areas/AreaPolygons.js +24 -23
- package/lib/Widgets/Map/areas/AreaUtils.js +46 -47
- package/lib/Widgets/Map/areas/Patterns.js +4 -4
- package/lib/Widgets/Map/edges/Edge.js +37 -33
- package/lib/Widgets/Map/edges/Edges.js +26 -21
- package/lib/Widgets/Map/edges/arrows/Arrows.js +44 -23
- package/lib/Widgets/Map/events/Event.js +17 -17
- package/lib/Widgets/Map/events/EventIndicator.js +60 -65
- package/lib/Widgets/Map/events/EventPath.js +23 -25
- package/lib/Widgets/Map/events/EventUtils.js +80 -60
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +18 -17
- package/lib/Widgets/Map/events/PointOfEvent.js +34 -29
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +37 -30
- package/lib/Widgets/Map/events/Snail.js +20 -19
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +86 -93
- package/lib/Widgets/Map/map/FloatingGraph.js +18 -22
- package/lib/Widgets/Map/map/GraphDateButton.js +17 -25
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +12 -13
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +15 -16
- package/lib/Widgets/Map/points/PointIcon.js +15 -22
- package/lib/Widgets/Map/points/PointMarker.js +87 -71
- package/lib/Widgets/Map/points/PointMarkers.js +66 -45
- package/lib/Widgets/Map/points/PointUtils.js +83 -145
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +47 -30
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +10 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +12 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/Areas.js +60 -31
- package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
- package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +8 -11
- package/lib/Widgets/MostPolluting/Factories/Factories.js +70 -39
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +18 -15
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +10 -12
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
- package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
- package/lib/Widgets/MostPolluting/MostPolluting.js +35 -25
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +22 -18
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +4 -6
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +4 -6
- package/lib/Widgets/MostPolluting/assets/index.js +10 -10
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +13 -19
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +30 -35
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +35 -45
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +35 -39
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -28
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +50 -54
- package/lib/Widgets/MostPolluting/styles.js +3 -3
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +5 -7
- package/lib/Widgets/PotentialImpactSummary/Icon.js +10 -12
- package/lib/Widgets/PotentialImpactSummary/index.js +27 -19
- package/lib/Widgets/PotentialImpactSummary/index.test.js +52 -47
- package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +7 -9
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +17 -22
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +32 -35
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +24 -26
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +37 -35
- package/lib/Widgets/QualitySummary/QualitySummary.js +13 -9
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
- package/lib/Widgets/QualitySummary/styles.js +15 -23
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +13 -12
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +26 -27
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +24 -29
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +37 -23
- package/lib/Widgets/UtilityInformation/styles.js +25 -34
- package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
- package/lib/assets/icons/TopNavbar/index.js +6 -6
- package/lib/assets/icons/TrendSvg.js +6 -6
- package/lib/assets/icons/index.js +15 -15
- package/lib/assets/icons/kandoStepper/index.js +5 -5
- package/lib/assets/icons/siteTypes/index.js +1 -1
- package/lib/components/ApplyButton/ApplyButton.js +9 -9
- package/lib/components/Backdrop/Backdrop.js +4 -6
- package/lib/components/ContentLoader/ContentLoader.js +9 -11
- package/lib/components/ContentLoader/index.js +1 -1
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +12 -13
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +5 -3
- package/lib/components/CustomInputs/DoubleTabs/styles.js +12 -20
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +20 -13
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +4 -6
- package/lib/components/CustomInputs/Search/Search.js +63 -42
- package/lib/components/CustomInputs/Select/Select.js +58 -45
- package/lib/components/CustomInputs/Select/Select.stories.js +6 -4
- package/lib/components/DamageType/DamageType.js +57 -35
- package/lib/components/DataLoaderError/DataLoaderError.js +6 -8
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +10 -9
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +71 -70
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -27
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +12 -10
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
- package/lib/components/DischargeHeatmap/popupText.js +10 -10
- package/lib/components/DischargeHeatmap/titles.js +3 -3
- package/lib/components/ErrorBoundary.js +41 -27
- package/lib/components/Events/Events.js +58 -41
- package/lib/components/Graph/Graph.js +96 -77
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +21 -17
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +33 -25
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +5 -3
- package/lib/components/Header/DoubleTabs/styles.js +4 -4
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.stories.js +5 -3
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +34 -22
- package/lib/components/Header/InfoBar/InfoBar.js +103 -74
- package/lib/components/Header/InfoBar/Search/Control.js +9 -9
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +5 -7
- package/lib/components/Header/InfoBar/Search/Search.js +21 -16
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +33 -21
- package/lib/components/Header/InfoBar/Search/searchStyle.js +49 -41
- package/lib/components/Header/InfoBar/TimeFilter.js +14 -11
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +89 -64
- package/lib/components/Header/Slideshow/Slideshow.js +90 -68
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +4 -6
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +23 -21
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +43 -37
- package/lib/components/Header/Toolbar/Toolbar.js +74 -55
- package/lib/components/InfoBar/InfoBar.js +23 -10
- package/lib/components/InfoBar/InfoBar.stories.js +5 -3
- package/lib/components/KandoModal/KandoModal.js +41 -27
- package/lib/components/Link.js +7 -8
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +8 -9
- package/lib/components/Links/StyledLink/StyledLink.js +12 -12
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +10 -11
- package/lib/components/LiveEvents/CarouselSlide.js +7 -9
- package/lib/components/LiveEvents/LiveEvents.js +3 -5
- package/lib/components/LoaderByPercent/LoaderByPercent.js +29 -37
- package/lib/components/Map/Map.js +23 -20
- package/lib/components/Modal/Modal.js +9 -9
- package/lib/components/NarrowHeader.js +31 -17
- package/lib/components/PointInfo/PointInfo.js +17 -19
- package/lib/components/PopupModal/PopupModal.js +16 -12
- package/lib/components/PopupModal/PopupModal.stories.js +19 -15
- package/lib/components/Sector/Sector.js +23 -18
- package/lib/components/Sector/Sector.test.js +20 -19
- package/lib/components/Sector/SectorIconsNew.js +112 -0
- package/lib/components/Sector/sectorIcons.js +2 -2
- package/lib/components/SevereEvent/Eta/Eta.js +52 -49
- package/lib/components/SevereEvent/Eta/styles.js +6 -10
- package/lib/components/SevereEvent/SevereEvent.js +37 -30
- package/lib/components/Spinner/Spinner.js +8 -8
- package/lib/components/Spinner/Spinner.stories.js +6 -4
- package/lib/components/Spinner/styles.js +14 -22
- package/lib/components/Tabs/Tabs.js +29 -21
- package/lib/components/Tabs/Tabs.stories.js +6 -4
- package/lib/components/Tabs/assets/index.js +5 -5
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +15 -12
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +51 -40
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +31 -19
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +25 -20
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
- package/lib/components/TimeRangeSelector/TimeRangeList.js +24 -23
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +25 -17
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +32 -31
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +6 -4
- package/lib/components/TimeRangeSelector/constants.js +3 -3
- package/lib/components/Toggle/Toggle.js +17 -12
- package/lib/components/TrendGraph/TrendGraph.js +39 -23
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +33 -27
- package/lib/development-environment/index.js +12 -8
- package/lib/development-environment/mock/browser.js +4 -2
- package/lib/development-environment/mock/get.js +10 -8
- package/lib/development-environment/mock/handlers.js +2 -2
- package/lib/development-environment/mock/mockBus.js +4 -4
- package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
- package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
- package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
- package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
- package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
- package/lib/development-environment/togly/ToglyDashboard.js +22 -13
- package/lib/development-environment/togly/ToglyItem.js +31 -36
- package/lib/development-environment/togly/init.js +2 -2
- package/lib/development-environment/togly/macro.js +10 -14
- package/lib/development-environment/togly/useDoubleKeyDown.js +9 -7
- package/lib/development-environment/togly/useLocalStorage.js +18 -13
- package/lib/hooks/useApi.js +55 -19
- package/lib/hooks/useApiWithDashboardQuery.js +49 -30
- package/lib/hooks/useClickOutside.js +3 -3
- package/lib/hooks/useInitializeHeaders.js +5 -5
- package/lib/hooks/useKandoFetch.js +29 -16
- package/lib/hooks/useMap.js +34 -22
- package/lib/hooks/useNavContext.js +26 -22
- package/lib/hooks/useRemoveExistingLayers.js +6 -6
- package/lib/hooks/useUpdateEventBodyTail.js +17 -13
- package/lib/hooks/useUserTimeZone.js +30 -33
- package/lib/hooks/useUserTimeZone.test.js +22 -19
- package/lib/hooks/useWindowSize.js +14 -7
- package/lib/i18n/en.json +15 -0
- package/lib/index.js +12 -11
- package/lib/macros/getVersion.js +3 -3
- package/lib/pages/AreaPage/AreaPage.js +67 -34
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +17 -16
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +31 -30
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +25 -17
- package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
- package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
- package/lib/pages/AssessmentPage/AssessmentPage.js +46 -40
- package/lib/pages/CannyWidget/Feedback.js +13 -13
- package/lib/pages/CovidPage/CovidPage.js +13 -8
- package/lib/pages/CovidPage/components/Body.js +27 -25
- package/lib/pages/CovidPage/components/Map.js +39 -29
- package/lib/pages/CovidPage/components/Sidebar.js +15 -16
- package/lib/pages/CovidPage/components/Summary.js +27 -20
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +33 -27
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +73 -51
- package/lib/pages/CovidPage/components/areas/Area.js +40 -29
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +46 -55
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +35 -32
- package/lib/pages/CovidPage/components/areas/AreasList.js +46 -34
- package/lib/pages/CovidPage/components/areas/Sort.js +14 -11
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
- package/lib/pages/DashboardMap/AreaCard.js +28 -28
- package/lib/pages/DashboardMap/AssessmentIcon.js +7 -8
- package/lib/pages/DashboardMap/Capacity.js +80 -31
- package/lib/pages/DashboardMap/FactoryCard.js +26 -31
- package/lib/pages/DashboardMap/HighchartsOptions.js +4 -5
- package/lib/pages/DashboardMap/List.js +105 -74
- package/lib/pages/DashboardMap/ListContext.js +19 -15
- package/lib/pages/DashboardMap/Loader.js +2 -2
- package/lib/pages/DashboardMap/SeverityBadge.js +21 -14
- package/lib/pages/DashboardMap/WWTPMap.js +60 -48
- package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
- package/lib/pages/DashboardMap/Widget.js +71 -54
- package/lib/pages/DashboardMap/utils.js +65 -48
- package/lib/pages/EventsPage/Body/Body.js +15 -20
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +19 -17
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +35 -27
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +6 -8
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +7 -11
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +30 -21
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +64 -53
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +31 -19
- package/lib/pages/EventsPage/EventsPage.js +10 -7
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +38 -26
- package/lib/pages/EventsPage/events/MoreInfo.js +16 -17
- package/lib/pages/EventsPage/events/Sidebar.js +18 -22
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
- package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +20 -17
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +35 -30
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +37 -40
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +42 -43
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
- package/lib/pages/EventsPage/events/event_info/EventSection.js +19 -17
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +38 -43
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +47 -39
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +4 -6
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +33 -30
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +36 -29
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +6 -4
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +9 -7
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +21 -22
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +19 -12
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +26 -22
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +8 -12
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +4 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +10 -12
- package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +8 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +12 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +4 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
- package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
- package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +5 -7
- package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +15 -17
- package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
- package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +8 -10
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +11 -16
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +8 -9
- package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
- package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +38 -25
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +36 -29
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +9 -11
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +17 -15
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +30 -27
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +26 -23
- package/lib/pages/EventsPage/events/event_info/styles.js +12 -20
- package/lib/pages/EventsPage/events/events_list/EventItem.js +19 -18
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
- package/lib/pages/EventsPage/events/events_list/EventsList.js +145 -124
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +55 -40
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +115 -79
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +77 -60
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +41 -38
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +36 -29
- package/lib/pages/EventsPage/events/events_list/Sort.js +16 -13
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +20 -13
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +4 -6
- package/lib/pages/ImportFileWizard/ImportFile.js +22 -20
- package/lib/pages/ImportFileWizard/ResponseBody.js +33 -24
- package/lib/pages/ImportFileWizard/ValidationForm.js +22 -23
- package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
- package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
- package/lib/pages/ImportGisPage/ImportGisContainer.js +24 -21
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +23 -21
- package/lib/pages/ImportGisPage/importGisUtils.js +21 -13
- package/lib/pages/ImportGisProcess/index.js +15 -12
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +12 -7
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +19 -17
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +65 -56
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -6
- package/lib/pages/NotificationsPage/Notification/Notification.js +12 -16
- package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
- package/lib/pages/NotificationsPage/Notifications.stories.js +6 -4
- package/lib/pages/NotificationsPage/NotificationsPage.js +36 -18
- package/lib/pages/NotificationsPage/assets/index.js +9 -9
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +97 -71
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +63 -94
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +16 -14
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +16 -18
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +21 -17
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +21 -17
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +22 -18
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +69 -83
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +22 -18
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +95 -97
- package/lib/pages/NotificationsPageV2/notificationUtils.js +48 -54
- package/lib/pages/OldSitePage/OldSitePage.js +132 -57
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +6 -8
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +20 -18
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +18 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -18
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +63 -51
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +53 -29
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +10 -11
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +11 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +28 -32
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +29 -27
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +12 -18
- package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +130 -0
- package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +64 -0
- package/lib/pages/PollutionRiskAssessment/FilterButton.js +36 -0
- package/lib/pages/PollutionRiskAssessment/Map.js +49 -0
- package/lib/pages/PollutionRiskAssessment/Map.scss +59 -0
- package/lib/pages/PollutionRiskAssessment/TotalSavings.js +51 -0
- package/lib/pages/PollutionRiskAssessment/UseCases.js +53 -0
- package/lib/pages/PollutionRiskAssessment/contact_us.svg +18 -0
- package/lib/pages/PollutionRiskAssessment/filter_button.svg +5 -0
- package/lib/pages/PollutionRiskAssessment/index.js +246 -0
- package/lib/pages/PollutionRiskAssessment/index.scss +45 -0
- package/lib/pages/PollutionRiskAssessment/pig.svg +3 -0
- package/lib/pages/PollutionRiskAssessment/useMap.js +132 -0
- package/lib/pages/PollutionRiskAssessment/use_cases.json +50 -0
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +44 -28
- package/lib/pages/ProfilePage/ProfilePage.js +214 -121
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +33 -25
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +16 -19
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +30 -28
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +117 -57
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +20 -17
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +10 -12
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +41 -39
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +26 -25
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +15 -13
- package/lib/pages/SamplingsPage/NavigationDropdown.js +32 -45
- package/lib/pages/SamplingsPage/NewSamplingAction.js +100 -76
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +101 -129
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +22 -21
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +22 -34
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +59 -36
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +18 -15
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +7 -9
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +194 -110
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +55 -49
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +43 -47
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +45 -49
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +20 -19
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +6 -10
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +54 -58
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +28 -21
- package/lib/pages/SamplingsPage/SamplingsPage.js +33 -27
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +58 -50
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +76 -68
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +4 -6
- package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +13 -14
- package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +13 -10
- package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +10 -14
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -9
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +23 -26
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +17 -14
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +32 -36
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +24 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -18
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +70 -58
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +26 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
- package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +37 -29
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +11 -10
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +59 -60
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +39 -30
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +12 -18
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +7 -11
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +30 -31
- package/lib/pages/SitePage/SitePage.js +81 -42
- package/lib/pages/UploadLabResult/index.js +13 -13
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +35 -26
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +8 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +8 -9
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +5 -3
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +48 -47
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +6 -10
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +6 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +12 -13
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +12 -15
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +29 -21
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +30 -26
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +17 -16
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +13 -7
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +31 -27
- package/lib/pages/WbeDashboard/ExpandableComponent.js +8 -9
- package/lib/pages/WbeDashboard/GraphWrapper.js +36 -30
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -17
- package/lib/pages/WbeDashboard/SearchInput.js +20 -15
- package/lib/pages/WbeDashboard/SummaryGraph.js +76 -50
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +17 -19
- package/lib/pages/WbeDashboard/Tabs.js +11 -11
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +213 -151
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +48 -40
- package/lib/pages/WwtpPage/DashboardCard.js +23 -26
- package/lib/pages/WwtpPage/DischargePatternCard.js +23 -14
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +22 -26
- package/lib/pages/WwtpPage/InletsCard/InletsCard.js +18 -19
- package/lib/pages/WwtpPage/Map.js +3 -5
- package/lib/pages/WwtpPage/OrganicCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +6 -8
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +8 -9
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +14 -18
- package/lib/pages/WwtpPage/PredictionCard.js +2 -2
- package/lib/pages/WwtpPage/TrendCard.js +19 -18
- package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
- package/lib/pages/WwtpPage/WwtpPage.js +8 -8
- package/lib/pages/WwtpPage/WwtpPageContainer.js +16 -21
- package/lib/providers/Slideshow/SlideshowContext.js +9 -11
- package/lib/providers/Slideshow/SlideshowProvider.js +38 -22
- package/lib/providers/Slideshow/SlideshowRunner.js +19 -17
- package/lib/providers/UrlHistory/UrlHistoryContext.js +4 -6
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +11 -12
- package/lib/providers/UrlHistory/index.js +2 -2
- package/lib/providers/UrlHistory/useLastVisited.js +5 -5
- package/lib/store/ImportGis/actionTypes.js +1 -1
- package/lib/store/ImportGis/actionsCreator.js +5 -7
- package/lib/store/ImportGis/reducer.js +29 -40
- package/lib/store/WBE/actionTypes.js +2 -2
- package/lib/store/WBE/reducer.js +9 -13
- package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +14 -24
- package/lib/store/areas/actionTypes.js +4 -4
- package/lib/store/areas/actions.js +13 -7
- package/lib/store/areas/reducer.js +6 -8
- package/lib/store/context/actionTypes.js +3 -3
- package/lib/store/context/actions.js +3 -3
- package/lib/store/context/contextMiddlewares.js +16 -14
- package/lib/store/context/reducer.js +9 -13
- package/lib/store/dashboard/dashboardSlice.js +10 -18
- package/lib/store/edges/actionTypes.js +5 -5
- package/lib/store/edges/actions.js +8 -4
- package/lib/store/edges/reducer.js +17 -13
- package/lib/store/events/actionTypes.js +17 -17
- package/lib/store/events/actions.js +7 -3
- package/lib/store/events/reducer.js +49 -42
- package/lib/store/global/actionTypes.js +11 -11
- package/lib/store/global/actions.js +6 -8
- package/lib/store/global/reducer.js +10 -11
- package/lib/store/permissions/permissionsSlice.js +8 -12
- package/lib/store/points/actionTypes.js +3 -3
- package/lib/store/points/actions.js +8 -4
- package/lib/store/points/models/IGeoPoint.js +6 -0
- package/lib/store/points/reducer.js +5 -7
- package/lib/store/rootActionTypes.js +2 -2
- package/lib/store/rootReducer.js +12 -17
- package/lib/store/rootStore.js +5 -5
- package/lib/store/samplings/actionTypes.js +1 -1
- package/lib/store/samplings/reducer.js +14 -16
- package/lib/styles/StylesLayout.js +3 -5
- package/lib/styles/theme/theme.js +28 -27
- package/lib/test/mocks/browser.js +4 -2
- package/lib/test/test-utils.js +15 -17
- package/lib/ui-kit/Button/Button.js +80 -128
- package/lib/ui-kit/Button/Button.test.js +29 -24
- package/lib/ui-kit/Checkbox/Checkbox.js +26 -31
- package/lib/ui-kit/ContentCard/ContentCard.js +18 -15
- package/lib/ui-kit/Dashboard/Dashboard.js +22 -25
- package/lib/ui-kit/DropDown/DropDown.js +24 -23
- package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
- package/lib/ui-kit/DropDown/DropDownItem.js +21 -24
- package/lib/ui-kit/DropDown/DropdownToggle.js +8 -12
- package/lib/ui-kit/EmptyState/EmptyState.js +4 -6
- package/lib/ui-kit/IconAction/IconAction.js +5 -7
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +64 -48
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +52 -69
- package/lib/ui-kit/InletsPie/InletsPie.js +13 -15
- package/lib/ui-kit/InletsPie/options.js +6 -6
- package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +44 -0
- package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +18 -0
- package/lib/ui-kit/KandoList/KandoList.js +12 -14
- package/lib/ui-kit/KandoTable/KandoTable.js +40 -48
- package/lib/ui-kit/KandoTable/KandoTable.test.js +22 -16
- package/lib/ui-kit/Layout/Layout.js +4 -6
- package/lib/ui-kit/MobileInput/MobileInput.js +50 -60
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +16 -13
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +6 -8
- package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
- package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +20 -27
- package/lib/ui-kit/OrganicEvents/TextInfo.js +10 -15
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +8 -10
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +17 -14
- package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
- package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
- package/lib/ui-kit/ScoreGauge/constant.js +3 -3
- package/lib/ui-kit/TimeLineChart/TrendChart.js +42 -54
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +7 -8
- package/lib/ui-kit/Tooltip/Tooltip.js +8 -14
- package/lib/ui-kit/index.js +8 -8
- package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
- package/lib/ui-kit/siteName/SiteName.js +8 -11
- package/lib/utilities/ActionUtility.js +7 -7
- package/lib/utilities/Alert.js +17 -21
- package/lib/utilities/Analytics.js +11 -11
- package/lib/utilities/Array.js +5 -4
- package/lib/utilities/Enum.js +51 -15
- package/lib/utilities/ErrorBoundary.js +41 -27
- package/lib/utilities/File.js +69 -40
- package/lib/utilities/GetDir.js +7 -8
- package/lib/utilities/KandoDate.js +15 -7
- package/lib/utilities/KandoModal.js +26 -16
- package/lib/utilities/LocalStorage.js +10 -8
- package/lib/utilities/ThousandsToK.js +3 -3
- package/lib/utilities/TimeFormat.js +20 -21
- package/lib/utilities/Truncate.js +25 -17
- package/lib/utilities/edgesMath.js +15 -14
- package/lib/utilities/i18n.js +3 -3
- package/lib/utilities/kql.js +14 -12
- package/lib/utilities/map/icons.js +3 -3
- package/lib/utilities/polylinedecorator.js +112 -87
- package/lib/utilities/scoreToData.js +17 -17
- package/lib/utilities/scoreToData.test.js +5 -5
- package/lib/utilities/time.js +8 -8
- package/lib/utilities/uploadToS3.js +11 -11
- package/lib/utilities/urls.js +64 -61
- package/package.json +3 -1
|
@@ -5,17 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
8
9
|
var _react = _interopRequireDefault(require("react"));
|
|
9
10
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
11
|
var _Icon = require("Widgets/PotentialImpactSummary/Icon");
|
|
11
12
|
require("./styles.scss");
|
|
12
13
|
var _reactI18next = require("react-i18next");
|
|
13
|
-
|
|
14
|
+
var ContaminantsList = function ContaminantsList(props) {
|
|
14
15
|
// in case more items are needed, add the folloing inside the array below: , {name: 'organic1'}, {name: 'organic2'}
|
|
15
|
-
|
|
16
|
+
var items = (0, _toConsumableArray2.default)(props.items);
|
|
16
17
|
|
|
17
18
|
// Choose the icon name by type - TBD: add more types
|
|
18
|
-
|
|
19
|
+
var iconTypes = {
|
|
19
20
|
organic: 'wwtp_cost'
|
|
20
21
|
// organic1: 'water_reuse',
|
|
21
22
|
// organic2: 'sludge_treatment',
|
|
@@ -23,26 +24,28 @@ const ContaminantsList = props => {
|
|
|
23
24
|
// organic4: 'pipes_pumps_blockage',
|
|
24
25
|
};
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
var icon = function icon(type) {
|
|
27
28
|
return iconTypes[type] || iconTypes.organic;
|
|
28
29
|
};
|
|
29
|
-
|
|
30
|
+
var row_separator = function row_separator(index, length) {
|
|
30
31
|
return index === length - 1 ? '' : 'row-separator';
|
|
31
32
|
};
|
|
32
33
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
33
34
|
className: "contaminants-container"
|
|
34
|
-
}, items.map((item, index)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
}, items.map(function (item, index) {
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Row, {
|
|
37
|
+
key: index,
|
|
38
|
+
className: "py-2 ".concat(row_separator(index, items.length), " flex-nowrap")
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
40
|
+
className: "icon-dimensions",
|
|
41
|
+
use_case: icon(item.name)
|
|
42
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
43
|
+
className: "p-1 font-weight-normal"
|
|
44
|
+
}, /*#__PURE__*/_react.default.createElement(_reactI18next.Trans, {
|
|
45
|
+
i18nKey: "event_info.contaminants_options.".concat(item.name)
|
|
46
|
+
})));
|
|
47
|
+
}));
|
|
45
48
|
};
|
|
46
49
|
var _default = ContaminantsList;
|
|
47
50
|
exports.default = _default;
|
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdEJvb3RzdHJhcCIsIl9JY29uIiwiX3JlYWN0STE4bmV4dCIsIkNvbnRhbWluYW50c0xpc3QiLCJwcm9wcyIsIml0ZW1zIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRlZmF1bHQiLCJpY29uVHlwZXMiLCJvcmdhbmljIiwiaWNvbiIsInR5cGUiLCJyb3dfc2VwYXJhdG9yIiwiaW5kZXgiLCJsZW5ndGgiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwibWFwIiwiaXRlbSIsIlJvdyIsImtleSIsImNvbmNhdCIsIkljb24iLCJ1c2VfY2FzZSIsIm5hbWUiLCJUcmFucyIsImkxOG5LZXkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRfaW5mby9Db250YW1pbmFudHMvQ29udGFtaW5hbnRzTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJvdyB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnc3JjL1dpZGdldHMvUG90ZW50aWFsSW1wYWN0U3VtbWFyeS9JY29uJztcbmltcG9ydCAnLi9zdHlsZXMuc2Nzcyc7XG5pbXBvcnQgeyBUcmFucyB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbnRlcmZhY2UgQ29udGFtaW5hbnRzTGlzdFByb3BzIHtcbiAgaXRlbXM6IGFueTtcbn1cblxuY29uc3QgQ29udGFtaW5hbnRzTGlzdDogUmVhY3QuRkM8Q29udGFtaW5hbnRzTGlzdFByb3BzPiA9IChwcm9wcykgPT4ge1xuICAvLyBpbiBjYXNlIG1vcmUgaXRlbXMgYXJlIG5lZWRlZCwgYWRkIHRoZSBmb2xsb2luZyBpbnNpZGUgdGhlIGFycmF5IGJlbG93OiAsIHtuYW1lOiAnb3JnYW5pYzEnfSwge25hbWU6ICdvcmdhbmljMid9XG4gIGNvbnN0IGl0ZW1zID0gWy4uLnByb3BzLml0ZW1zXTtcblxuICAvLyBDaG9vc2UgdGhlIGljb24gbmFtZSBieSB0eXBlIC0gVEJEOiBhZGQgbW9yZSB0eXBlc1xuICBjb25zdCBpY29uVHlwZXMgPSB7XG4gICAgb3JnYW5pYzogJ3d3dHBfY29zdCcsXG4gICAgLy8gb3JnYW5pYzE6ICd3YXRlcl9yZXVzZScsXG4gICAgLy8gb3JnYW5pYzI6ICdzbHVkZ2VfdHJlYXRtZW50JyxcbiAgICAvLyBvcmdhbmljMzogJ3Nob3J0ZW5fY29sbGVjdGlvbl9saWZldGltZScsXG4gICAgLy8gb3JnYW5pYzQ6ICdwaXBlc19wdW1wc19ibG9ja2FnZScsXG4gIH07XG5cbiAgY29uc3QgaWNvbiA9ICh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gaWNvblR5cGVzW3R5cGVdIHx8IGljb25UeXBlcy5vcmdhbmljO1xuICB9O1xuXG4gIGNvbnN0IHJvd19zZXBhcmF0b3IgPSAoaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gaW5kZXggPT09IGxlbmd0aCAtIDEgPyAnJyA6ICdyb3ctc2VwYXJhdG9yJztcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFtaW5hbnRzLWNvbnRhaW5lclwiPlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgPFJvd1xuICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgcHktMiAke3Jvd19zZXBhcmF0b3IoaW5kZXgsIGl0ZW1zLmxlbmd0aCl9IGZsZXgtbm93cmFwYH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJY29uIGNsYXNzTmFtZT1cImljb24tZGltZW5zaW9uc1wiIHVzZV9jYXNlPXtpY29uKGl0ZW0ubmFtZSl9IC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTEgZm9udC13ZWlnaHQtbm9ybWFsXCI+XG4gICAgICAgICAgICA8VHJhbnMgaTE4bktleT17YGV2ZW50X2luZm8uY29udGFtaW5hbnRzX29wdGlvbnMuJHtpdGVtLm5hbWV9YH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Sb3c+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRhbWluYW50c0xpc3Q7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFNQSxJQUFNSSxnQkFBaUQsR0FBRyxTQUFwREEsZ0JBQWlEQSxDQUFJQyxLQUFLLEVBQUs7RUFDbkU7RUFDQSxJQUFNQyxLQUFLLE9BQUFDLG1CQUFBLENBQUFDLE9BQUEsRUFBT0gsS0FBSyxDQUFDQyxLQUFLLENBQUM7O0VBRTlCO0VBQ0EsSUFBTUcsU0FBUyxHQUFHO0lBQ2hCQyxPQUFPLEVBQUU7SUFDVDtJQUNBO0lBQ0E7SUFDQTtFQUNGLENBQUM7O0VBRUQsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQUlDLElBQVksRUFBSztJQUM3QixPQUFPSCxTQUFTLENBQUNHLElBQUksQ0FBQyxJQUFJSCxTQUFTLENBQUNDLE9BQU87RUFDN0MsQ0FBQztFQUVELElBQU1HLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBSUMsS0FBYSxFQUFFQyxNQUFjLEVBQUs7SUFDdkQsT0FBT0QsS0FBSyxLQUFLQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxlQUFlO0VBQ3BELENBQUM7RUFFRCxvQkFDRWpCLE1BQUEsQ0FBQVUsT0FBQSxDQUFBUSxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUF3QixHQUNwQ1gsS0FBSyxDQUFDWSxHQUFHLENBQUMsVUFBQ0MsSUFBSSxFQUFFTCxLQUFLO0lBQUEsb0JBQ3JCaEIsTUFBQSxDQUFBVSxPQUFBLENBQUFRLGFBQUEsQ0FBQ2YsZUFBQSxDQUFBbUIsR0FBRztNQUNGQyxHQUFHLEVBQUVQLEtBQU07TUFDWEcsU0FBUyxVQUFBSyxNQUFBLENBQVVULGFBQWEsQ0FBQ0MsS0FBSyxFQUFFUixLQUFLLENBQUNTLE1BQU0sQ0FBQztJQUFlLGdCQUVwRWpCLE1BQUEsQ0FBQVUsT0FBQSxDQUFBUSxhQUFBLENBQUNkLEtBQUEsQ0FBQXFCLElBQUk7TUFBQ04sU0FBUyxFQUFDLGlCQUFpQjtNQUFDTyxRQUFRLEVBQUViLElBQUksQ0FBQ1EsSUFBSSxDQUFDTSxJQUFJO0lBQUUsQ0FBRSxDQUFDLGVBQy9EM0IsTUFBQSxDQUFBVSxPQUFBLENBQUFRLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQXdCLGdCQUNyQ25CLE1BQUEsQ0FBQVUsT0FBQSxDQUFBUSxhQUFBLENBQUNiLGFBQUEsQ0FBQXVCLEtBQUs7TUFBQ0MsT0FBTyxxQ0FBQUwsTUFBQSxDQUFxQ0gsSUFBSSxDQUFDTSxJQUFJO0lBQUcsQ0FBRSxDQUM5RCxDQUNGLENBQUM7RUFBQSxDQUNQLENBQ0UsQ0FBQztBQUVWLENBQUM7QUFBQyxJQUFBRyxRQUFBLEdBRWF4QixnQkFBZ0I7QUFBQXlCLE9BQUEsQ0FBQXJCLE9BQUEsR0FBQW9CLFFBQUEifQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
@@ -10,45 +11,47 @@ var _reactRedux = require("react-redux");
|
|
|
10
11
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
11
12
|
var _i18n = _interopRequireDefault(require("utilities/i18n"));
|
|
12
13
|
var _TimeFormat = _interopRequireDefault(require("utilities/TimeFormat"));
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
16
|
function mapStateToProps(state) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
global_data
|
|
19
|
-
} = state;
|
|
17
|
+
var points_data = state.points_data,
|
|
18
|
+
global_data = state.global_data;
|
|
20
19
|
return {
|
|
21
|
-
points_data,
|
|
22
|
-
global_data
|
|
20
|
+
points_data: points_data,
|
|
21
|
+
global_data: global_data
|
|
23
22
|
};
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} = props;
|
|
31
|
-
const getPointName = point_id => {
|
|
24
|
+
var EarlyWarnings = function EarlyWarnings(props) {
|
|
25
|
+
var event = props.event,
|
|
26
|
+
points_data = props.points_data,
|
|
27
|
+
global_data = props.global_data;
|
|
28
|
+
var getPointName = function getPointName(point_id) {
|
|
32
29
|
var _points_data$items$fi;
|
|
33
|
-
return ((_points_data$items$fi = points_data.items.filter(
|
|
30
|
+
return ((_points_data$items$fi = points_data.items.filter(function (point) {
|
|
31
|
+
return point.id === point_id;
|
|
32
|
+
})[0]) === null || _points_data$items$fi === void 0 ? void 0 : _points_data$items$fi.name) || 'No Name';
|
|
34
33
|
};
|
|
35
|
-
|
|
34
|
+
var ETAToTarget = function ETAToTarget(observation, early_warning) {
|
|
36
35
|
return observation.start_time + early_warning.distance * 60;
|
|
37
36
|
};
|
|
38
|
-
|
|
37
|
+
var countDownToTarget = function countDownToTarget(early_warning, observation) {
|
|
39
38
|
return early_warning.distance * 60 - (global_data.current_time - observation.start_time);
|
|
40
39
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
event.observations.filter(
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
var getEarlyWarnings = function getEarlyWarnings() {
|
|
41
|
+
var observations = [];
|
|
42
|
+
event.observations.filter(function (obs) {
|
|
43
|
+
return global_data.current_time > obs.start_time;
|
|
44
|
+
}).forEach(function (observation) {
|
|
45
|
+
observation.early_warnings.forEach(function (early_warning) {
|
|
46
|
+
var existingEarlyWarning = observations.find(function (obs) {
|
|
47
|
+
return obs.earlyWarning.target_point_id === early_warning.target_point_id;
|
|
48
|
+
});
|
|
46
49
|
if (existingEarlyWarning !== undefined) {
|
|
47
50
|
// Checks if observation exists with same target
|
|
48
51
|
|
|
49
52
|
observations.splice(observations.indexOf(existingEarlyWarning), 1);
|
|
50
53
|
}
|
|
51
|
-
|
|
54
|
+
var arrivedButNotObserved, arrived;
|
|
52
55
|
if (global_data.current_time < ETAToTarget(observation, early_warning)) {
|
|
53
56
|
// Event have not reached the target yet
|
|
54
57
|
arrived = false;
|
|
@@ -72,7 +75,7 @@ const EarlyWarnings = props => {
|
|
|
72
75
|
});
|
|
73
76
|
return observations;
|
|
74
77
|
};
|
|
75
|
-
|
|
78
|
+
var renderEarlyWarnings = function renderEarlyWarnings(observation) {
|
|
76
79
|
if (!observation.arrived) {
|
|
77
80
|
if (!observation.arrivedButNotObserved) {
|
|
78
81
|
return /*#__PURE__*/_react.default.createElement("li", {
|
|
@@ -111,13 +114,15 @@ const EarlyWarnings = props => {
|
|
|
111
114
|
}))));
|
|
112
115
|
}
|
|
113
116
|
};
|
|
114
|
-
(0, _react.useEffect)(()
|
|
115
|
-
|
|
117
|
+
(0, _react.useEffect)(function () {}, [global_data.current_time]);
|
|
118
|
+
var observations = getEarlyWarnings();
|
|
116
119
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("ul", {
|
|
117
120
|
className: 'early_warnings'
|
|
118
|
-
}, observations !== undefined && observations.map(
|
|
121
|
+
}, observations !== undefined && observations.map(function (observation) {
|
|
122
|
+
return renderEarlyWarnings(observation);
|
|
123
|
+
})));
|
|
119
124
|
};
|
|
120
|
-
|
|
125
|
+
var connector = (0, _reactRedux.connect)(mapStateToProps);
|
|
121
126
|
var _default = connector(EarlyWarnings);
|
|
122
127
|
exports.default = _default;
|
|
123
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9tb21lbnRUaW1lem9uZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaTE4biIsIl9UaW1lRm9ybWF0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwicG9pbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsIkVhcmx5V2FybmluZ3MiLCJwcm9wcyIsImV2ZW50IiwiZ2V0UG9pbnROYW1lIiwicG9pbnRfaWQiLCJfcG9pbnRzX2RhdGEkaXRlbXMkZmkiLCJpdGVtcyIsImZpbHRlciIsInBvaW50IiwiaWQiLCJuYW1lIiwiRVRBVG9UYXJnZXQiLCJvYnNlcnZhdGlvbiIsImVhcmx5X3dhcm5pbmciLCJzdGFydF90aW1lIiwiZGlzdGFuY2UiLCJjb3VudERvd25Ub1RhcmdldCIsImN1cnJlbnRfdGltZSIsImdldEVhcmx5V2FybmluZ3MiLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJmb3JFYWNoIiwiZWFybHlfd2FybmluZ3MiLCJleGlzdGluZ0Vhcmx5V2FybmluZyIsImZpbmQiLCJlYXJseVdhcm5pbmciLCJ0YXJnZXRfcG9pbnRfaWQiLCJ1bmRlZmluZWQiLCJzcGxpY2UiLCJpbmRleE9mIiwiYXJyaXZlZEJ1dE5vdE9ic2VydmVkIiwiYXJyaXZlZCIsImVuZF90aW1lIiwicHVzaCIsInJlbmRlckVhcmx5V2FybmluZ3MiLCJjcmVhdGVFbGVtZW50IiwiaTE4biIsInQiLCJldGEiLCJjbGFzc05hbWUiLCJtb21lbnQiLCJ1bml4IiwiZm9ybWF0IiwiZHVyYXRpb24iLCJodW1hbml6ZSIsInRpbWVzdGFtcCIsInRpbWVfem9uZSIsInVzZUVmZmVjdCIsIkZyYWdtZW50IiwibWFwIiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudF9pbmZvL0Vhcmx5V2FybmluZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcyB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IFRpbWVGb3JtYXQgZnJvbSAnc3JjL3V0aWxpdGllcy9UaW1lRm9ybWF0JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBwb2ludHNfZGF0YSwgZ2xvYmFsX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIGV2ZW50OiBJRXZlbnQ7XG59O1xuXG5jb25zdCBFYXJseVdhcm5pbmdzOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZXZlbnQsIHBvaW50c19kYXRhLCBnbG9iYWxfZGF0YSB9ID0gcHJvcHM7XG5cbiAgY29uc3QgZ2V0UG9pbnROYW1lID0gKHBvaW50X2lkOiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmlsdGVyKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IHBvaW50X2lkKVswXT8ubmFtZSB8fFxuICAgICAgJ05vIE5hbWUnXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBFVEFUb1RhcmdldCA9IChvYnNlcnZhdGlvbjogYW55LCBlYXJseV93YXJuaW5nOiBhbnkpID0+IHtcbiAgICByZXR1cm4gb2JzZXJ2YXRpb24uc3RhcnRfdGltZSArIGVhcmx5X3dhcm5pbmcuZGlzdGFuY2UgKiA2MDtcbiAgfTtcblxuICBjb25zdCBjb3VudERvd25Ub1RhcmdldCA9IChlYXJseV93YXJuaW5nOiBhbnksIG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgZWFybHlfd2FybmluZy5kaXN0YW5jZSAqIDYwIC1cbiAgICAgIChnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgLSBvYnNlcnZhdGlvbi5zdGFydF90aW1lKVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZ2V0RWFybHlXYXJuaW5ncyA9ICgpID0+IHtcbiAgICBsZXQgb2JzZXJ2YXRpb25zOiBhbnlbXSA9IFtdO1xuICAgIGV2ZW50Lm9ic2VydmF0aW9uc1xuICAgICAgLmZpbHRlcigob2JzKSA9PiBnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgPiBvYnMuc3RhcnRfdGltZSlcbiAgICAgIC5mb3JFYWNoKChvYnNlcnZhdGlvbikgPT4ge1xuICAgICAgICBvYnNlcnZhdGlvbi5lYXJseV93YXJuaW5ncy5mb3JFYWNoKChlYXJseV93YXJuaW5nOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgZXhpc3RpbmdFYXJseVdhcm5pbmcgPSBvYnNlcnZhdGlvbnMuZmluZChcbiAgICAgICAgICAgIChvYnMpID0+XG4gICAgICAgICAgICAgIG9icy5lYXJseVdhcm5pbmcudGFyZ2V0X3BvaW50X2lkID09PVxuICAgICAgICAgICAgICBlYXJseV93YXJuaW5nLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChleGlzdGluZ0Vhcmx5V2FybmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBDaGVja3MgaWYgb2JzZXJ2YXRpb24gZXhpc3RzIHdpdGggc2FtZSB0YXJnZXRcblxuICAgICAgICAgICAgb2JzZXJ2YXRpb25zLnNwbGljZShvYnNlcnZhdGlvbnMuaW5kZXhPZihleGlzdGluZ0Vhcmx5V2FybmluZyksIDEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQsIGFycml2ZWQ7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgPCBFVEFUb1RhcmdldChvYnNlcnZhdGlvbiwgZWFybHlfd2FybmluZylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEV2ZW50IGhhdmUgbm90IHJlYWNoZWQgdGhlIHRhcmdldCB5ZXRcbiAgICAgICAgICAgIGFycml2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGFycml2ZWRCdXROb3RPYnNlcnZlZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZW5kX3RpbWUgPCBFVEFUb1RhcmdldChvYnNlcnZhdGlvbiwgZWFybHlfd2FybmluZykpIHtcbiAgICAgICAgICAgIC8vIEVUQSByZWFjaGVkIGFmdGVyIGV2ZW50IGVuZGVkXG4gICAgICAgICAgICBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgYXJyaXZlZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBFdmVudCByZWFjaGVkIHRvIHRhcmdldFxuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJpdmVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBvYnNlcnZhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQ6IGFycml2ZWRCdXROb3RPYnNlcnZlZCxcbiAgICAgICAgICAgIGFycml2ZWQ6IGFycml2ZWQsXG4gICAgICAgICAgICBlYXJseVdhcm5pbmc6IGVhcmx5X3dhcm5pbmcsXG4gICAgICAgICAgICBvYnNlcnZhdGlvbjogb2JzZXJ2YXRpb24sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YXRpb25zO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckVhcmx5V2FybmluZ3MgPSAob2JzZXJ2YXRpb246IGFueSkgPT4ge1xuICAgIGlmICghb2JzZXJ2YXRpb24uYXJyaXZlZCkge1xuICAgICAgaWYgKCFvYnNlcnZhdGlvbi5hcnJpdmVkQnV0Tm90T2JzZXJ2ZWQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8bGkga2V5PXtvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcudGFyZ2V0X3BvaW50X2lkfT5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19pbmZvLmV0YV90b19uYW1lJywge1xuICAgICAgICAgICAgICAgICAgZXRhOiBnZXRQb2ludE5hbWUob2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCksXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydlYXJseS13YXJuaW5nLWluZm8nfT5cbiAgICAgICAgICAgICAge21vbWVudFxuICAgICAgICAgICAgICAgIC51bml4KFxuICAgICAgICAgICAgICAgICAgRVRBVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uLm9ic2VydmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZm9ybWF0KCdoOm1tIGEnKX1cbiAgICAgICAgICAgICAge2dsb2JhbF9kYXRhLmN1cnJlbnRfdGltZSAhPT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZGFuZ2VyJ30+XG4gICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgKHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy53aXRoaW4nKX17JyAnfVxuICAgICAgICAgICAgICAgICAge21vbWVudFxuICAgICAgICAgICAgICAgICAgICAuZHVyYXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgY291bnREb3duVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmRzJyxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuaHVtYW5pemUoKX1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5oaWdoX2NoYW5jZXNfb2ZfcmVhY2hpbmcnKX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGxpIGtleT17b2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZH0+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXhwZWN0ZWRfdG9fYXJyaXZlX2J1dF9ub3Rfb2JzZXJ2ZWQnKX17JyAnfVxuICAgICAgICAgICAgICAgIHtnZXRQb2ludE5hbWUob2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCl9XG4gICAgICAgICAgICAgIDwvYj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydlYXJseS13YXJuaW5nLWluZm8nfT5cbiAgICAgICAgICAgICAge2dsb2JhbF9kYXRhLmN1cnJlbnRfdGltZSAhPT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZGFuZ2VyJ30+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYXQnKX17JyAnfVxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17RVRBVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uLmVhcmx5V2FybmluZyxcbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24udGltZV96b25lfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxsaSBrZXk9e29ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWR9PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LnBvbGx1dGlvbl9oYXNfcmVhY2hlZCcpfXsnICd9XG4gICAgICAgICAgICAgIHtnZXRQb2ludE5hbWUob2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCl9XG4gICAgICAgICAgICA8L2I+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydlYXJseS13YXJuaW5nLWluZm8nfT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYXQnKX17JyAnfVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17RVRBVG9UYXJnZXQoXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uLm9ic2VydmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgdGltZV96b25lPXtvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbi50aW1lX3pvbmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHt9LCBbZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lXSk7XG5cbiAgbGV0IG9ic2VydmF0aW9ucyA9IGdldEVhcmx5V2FybmluZ3MoKTtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8dWwgY2xhc3NOYW1lPXsnZWFybHlfd2FybmluZ3MnfT5cbiAgICAgICAge29ic2VydmF0aW9ucyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgb2JzZXJ2YXRpb25zLm1hcCgob2JzZXJ2YXRpb24pID0+IHJlbmRlckVhcmx5V2FybmluZ3Mob2JzZXJ2YXRpb24pKX1cbiAgICAgIDwvdWw+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFYXJseVdhcm5pbmdzKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUFrRCxTQUFBTSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFG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
|
|
128
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9tb21lbnRUaW1lem9uZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaTE4biIsIl9UaW1lRm9ybWF0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsInBvaW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJFYXJseVdhcm5pbmdzIiwicHJvcHMiLCJldmVudCIsImdldFBvaW50TmFtZSIsInBvaW50X2lkIiwiX3BvaW50c19kYXRhJGl0ZW1zJGZpIiwiaXRlbXMiLCJmaWx0ZXIiLCJwb2ludCIsImlkIiwibmFtZSIsIkVUQVRvVGFyZ2V0Iiwib2JzZXJ2YXRpb24iLCJlYXJseV93YXJuaW5nIiwic3RhcnRfdGltZSIsImRpc3RhbmNlIiwiY291bnREb3duVG9UYXJnZXQiLCJjdXJyZW50X3RpbWUiLCJnZXRFYXJseVdhcm5pbmdzIiwib2JzZXJ2YXRpb25zIiwib2JzIiwiZm9yRWFjaCIsImVhcmx5X3dhcm5pbmdzIiwiZXhpc3RpbmdFYXJseVdhcm5pbmciLCJmaW5kIiwiZWFybHlXYXJuaW5nIiwidGFyZ2V0X3BvaW50X2lkIiwidW5kZWZpbmVkIiwic3BsaWNlIiwiaW5kZXhPZiIsImFycml2ZWRCdXROb3RPYnNlcnZlZCIsImFycml2ZWQiLCJlbmRfdGltZSIsInB1c2giLCJyZW5kZXJFYXJseVdhcm5pbmdzIiwiY3JlYXRlRWxlbWVudCIsImkxOG4iLCJ0IiwiZXRhIiwiY2xhc3NOYW1lIiwibW9tZW50IiwidW5peCIsImZvcm1hdCIsImR1cmF0aW9uIiwiaHVtYW5pemUiLCJ0aW1lc3RhbXAiLCJ0aW1lX3pvbmUiLCJ1c2VFZmZlY3QiLCJGcmFnbWVudCIsIm1hcCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRfaW5mby9FYXJseVdhcm5pbmdzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgcG9pbnRzX2RhdGEsIGdsb2JhbF9kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIHBvaW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBldmVudDogSUV2ZW50O1xufTtcblxuY29uc3QgRWFybHlXYXJuaW5nczogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGV2ZW50LCBwb2ludHNfZGF0YSwgZ2xvYmFsX2RhdGEgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGdldFBvaW50TmFtZSA9IChwb2ludF9pZDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmZpbHRlcigocG9pbnQpID0+IHBvaW50LmlkID09PSBwb2ludF9pZClbMF0/Lm5hbWUgfHxcbiAgICAgICdObyBOYW1lJ1xuICAgICk7XG4gIH07XG5cbiAgY29uc3QgRVRBVG9UYXJnZXQgPSAob2JzZXJ2YXRpb246IGFueSwgZWFybHlfd2FybmluZzogYW55KSA9PiB7XG4gICAgcmV0dXJuIG9ic2VydmF0aW9uLnN0YXJ0X3RpbWUgKyBlYXJseV93YXJuaW5nLmRpc3RhbmNlICogNjA7XG4gIH07XG5cbiAgY29uc3QgY291bnREb3duVG9UYXJnZXQgPSAoZWFybHlfd2FybmluZzogYW55LCBvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVhcmx5X3dhcm5pbmcuZGlzdGFuY2UgKiA2MCAtXG4gICAgICAoZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIC0gb2JzZXJ2YXRpb24uc3RhcnRfdGltZSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGdldEVhcmx5V2FybmluZ3MgPSAoKSA9PiB7XG4gICAgbGV0IG9ic2VydmF0aW9uczogYW55W10gPSBbXTtcbiAgICBldmVudC5vYnNlcnZhdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9icykgPT4gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lID4gb2JzLnN0YXJ0X3RpbWUpXG4gICAgICAuZm9yRWFjaCgob2JzZXJ2YXRpb24pID0+IHtcbiAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlfd2FybmluZ3MuZm9yRWFjaCgoZWFybHlfd2FybmluZzogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IGV4aXN0aW5nRWFybHlXYXJuaW5nID0gb2JzZXJ2YXRpb25zLmZpbmQoXG4gICAgICAgICAgICAob2JzKSA9PlxuICAgICAgICAgICAgICBvYnMuZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZCA9PT1cbiAgICAgICAgICAgICAgZWFybHlfd2FybmluZy50YXJnZXRfcG9pbnRfaWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdFYXJseVdhcm5pbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gQ2hlY2tzIGlmIG9ic2VydmF0aW9uIGV4aXN0cyB3aXRoIHNhbWUgdGFyZ2V0XG5cbiAgICAgICAgICAgIG9ic2VydmF0aW9ucy5zcGxpY2Uob2JzZXJ2YXRpb25zLmluZGV4T2YoZXhpc3RpbmdFYXJseVdhcm5pbmcpLCAxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgYXJyaXZlZEJ1dE5vdE9ic2VydmVkLCBhcnJpdmVkO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDwgRVRBVG9UYXJnZXQob2JzZXJ2YXRpb24sIGVhcmx5X3dhcm5pbmcpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBFdmVudCBoYXZlIG5vdCByZWFjaGVkIHRoZSB0YXJnZXQgeWV0XG4gICAgICAgICAgICBhcnJpdmVkID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmVuZF90aW1lIDwgRVRBVG9UYXJnZXQob2JzZXJ2YXRpb24sIGVhcmx5X3dhcm5pbmcpKSB7XG4gICAgICAgICAgICAvLyBFVEEgcmVhY2hlZCBhZnRlciBldmVudCBlbmRlZFxuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGFycml2ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRXZlbnQgcmVhY2hlZCB0byB0YXJnZXRcbiAgICAgICAgICAgIGFycml2ZWRCdXROb3RPYnNlcnZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYXJyaXZlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2JzZXJ2YXRpb25zLnB1c2goe1xuICAgICAgICAgICAgYXJyaXZlZEJ1dE5vdE9ic2VydmVkOiBhcnJpdmVkQnV0Tm90T2JzZXJ2ZWQsXG4gICAgICAgICAgICBhcnJpdmVkOiBhcnJpdmVkLFxuICAgICAgICAgICAgZWFybHlXYXJuaW5nOiBlYXJseV93YXJuaW5nLFxuICAgICAgICAgICAgb2JzZXJ2YXRpb246IG9ic2VydmF0aW9uLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9ic2VydmF0aW9ucztcbiAgfTtcblxuICBjb25zdCByZW5kZXJFYXJseVdhcm5pbmdzID0gKG9ic2VydmF0aW9uOiBhbnkpID0+IHtcbiAgICBpZiAoIW9ic2VydmF0aW9uLmFycml2ZWQpIHtcbiAgICAgIGlmICghb2JzZXJ2YXRpb24uYXJyaXZlZEJ1dE5vdE9ic2VydmVkKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGxpIGtleT17b2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLnRhcmdldF9wb2ludF9pZH0+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8Yj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfaW5mby5ldGFfdG9fbmFtZScsIHtcbiAgICAgICAgICAgICAgICAgIGV0YTogZ2V0UG9pbnROYW1lKG9ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWQpLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZWFybHktd2FybmluZy1pbmZvJ30+XG4gICAgICAgICAgICAgIHttb21lbnRcbiAgICAgICAgICAgICAgICAudW5peChcbiAgICAgICAgICAgICAgICAgIEVUQVRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZvcm1hdCgnaDptbSBhJyl9XG4gICAgICAgICAgICAgIHtnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgIT09IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICAgICh7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcud2l0aGluJyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIHttb21lbnRcbiAgICAgICAgICAgICAgICAgICAgLmR1cmF0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgIGNvdW50RG93blRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kcycsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmh1bWFuaXplKCl9XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydkYW5nZXInfT5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuaGlnaF9jaGFuY2VzX29mX3JlYWNoaW5nJyl9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxsaSBrZXk9e29ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWR9PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV4cGVjdGVkX3RvX2Fycml2ZV9idXRfbm90X29ic2VydmVkJyl9eycgJ31cbiAgICAgICAgICAgICAgICB7Z2V0UG9pbnROYW1lKG9ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWQpfVxuICAgICAgICAgICAgICA8L2I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZWFybHktd2FybmluZy1pbmZvJ30+XG4gICAgICAgICAgICAgIHtnbG9iYWxfZGF0YS5jdXJyZW50X3RpbWUgIT09IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2Rhbmdlcid9PlxuICAgICAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmF0Jyl9eycgJ31cbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e0VUQVRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB0aW1lX3pvbmU9e29ic2VydmF0aW9uLm9ic2VydmF0aW9uLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8bGkga2V5PXtvYnNlcnZhdGlvbi5lYXJseVdhcm5pbmcudGFyZ2V0X3BvaW50X2lkfT5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGI+XG4gICAgICAgICAgICAgIHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5wb2xsdXRpb25faGFzX3JlYWNoZWQnKX17JyAnfVxuICAgICAgICAgICAgICB7Z2V0UG9pbnROYW1lKG9ic2VydmF0aW9uLmVhcmx5V2FybmluZy50YXJnZXRfcG9pbnRfaWQpfVxuICAgICAgICAgICAgPC9iPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZWFybHktd2FybmluZy1pbmZvJ30+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydkYW5nZXInfT5cbiAgICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmF0Jyl9eycgJ31cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxUaW1lRm9ybWF0XG4gICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e0VUQVRvVGFyZ2V0KFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbi5vYnNlcnZhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb24uZWFybHlXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHRpbWVfem9uZT17b2JzZXJ2YXRpb24ub2JzZXJ2YXRpb24udGltZV96b25lfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW2dsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIGxldCBvYnNlcnZhdGlvbnMgPSBnZXRFYXJseVdhcm5pbmdzKCk7XG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPHVsIGNsYXNzTmFtZT17J2Vhcmx5X3dhcm5pbmdzJ30+XG4gICAgICAgIHtvYnNlcnZhdGlvbnMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIG9ic2VydmF0aW9ucy5tYXAoKG9ic2VydmF0aW9uKSA9PiByZW5kZXJFYXJseVdhcm5pbmdzKG9ic2VydmF0aW9uKSl9XG4gICAgICA8L3VsPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRWFybHlXYXJuaW5ncyk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsZUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUksS0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQWtELFNBQUFNLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFE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
|
|
@@ -17,41 +17,39 @@ var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
|
17
17
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
18
18
|
/* eslint-disable local-rules/no-hard-coded-jsx-literals */
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
var EventDetails = function EventDetails(props) {
|
|
21
21
|
var _event$samplings;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
let dateEarly = `${dateMinusOne.getFullYear()}-${dateMinusOne.getMonth() + 1}-${dateMinusOne.getDate()}`;
|
|
32
|
-
let dateLate = `${datePlusOne.getFullYear()}-${datePlusOne.getMonth() + 1}-${datePlusOne.getDate()}`;
|
|
22
|
+
var event = props.event,
|
|
23
|
+
points = props.points;
|
|
24
|
+
var buildDateRange = function buildDateRange(timestamp) {
|
|
25
|
+
var date = new Date(timestamp).getTime();
|
|
26
|
+
var dayMs = 86400000;
|
|
27
|
+
var dateMinusOne = new Date(date - dayMs);
|
|
28
|
+
var datePlusOne = new Date(date + dayMs);
|
|
29
|
+
var dateEarly = "".concat(dateMinusOne.getFullYear(), "-").concat(dateMinusOne.getMonth() + 1, "-").concat(dateMinusOne.getDate());
|
|
30
|
+
var dateLate = "".concat(datePlusOne.getFullYear(), "-").concat(datePlusOne.getMonth() + 1, "-").concat(datePlusOne.getDate());
|
|
33
31
|
return {
|
|
34
32
|
earlyDate: dateEarly,
|
|
35
33
|
lateDate: dateLate
|
|
36
34
|
};
|
|
37
35
|
};
|
|
38
|
-
|
|
39
|
-
KQL +=
|
|
36
|
+
var joinKQL = function joinKQL(KQL) {
|
|
37
|
+
KQL += " TimeFilterItem IN ( ".concat(buildDateRange(event.last_seen_time).earlyDate, ":").concat(buildDateRange(event.last_seen_time).lateDate, " )");
|
|
40
38
|
return KQL;
|
|
41
39
|
};
|
|
42
|
-
|
|
43
|
-
KQL =
|
|
40
|
+
var cutKQL = function cutKQL(KQL) {
|
|
41
|
+
KQL = "TimeFilterItem IN ( ".concat(buildDateRange(event.last_seen_time).earlyDate, ":").concat(buildDateRange(event.last_seen_time).lateDate, " ) ORDER_BY severity");
|
|
44
42
|
return KQL;
|
|
45
43
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
var buildKQLWithTimeRange = function buildKQLWithTimeRange() {
|
|
45
|
+
var href = window.location.href;
|
|
46
|
+
var KQL = query.get('valuesFromKQL');
|
|
47
|
+
var url = new URL(href);
|
|
50
48
|
if (KQL === null) return url.href;
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
var includesALL = KQL.includes('ALL');
|
|
50
|
+
var timeFilterPresent = KQL.match('(?=TimeFilterItem)(.*?)(?:(\\)))');
|
|
53
51
|
if (timeFilterPresent) {
|
|
54
|
-
|
|
52
|
+
var findTimeFilter = timeFilterPresent;
|
|
55
53
|
if (findTimeFilter !== null) {
|
|
56
54
|
KQL = KQL.replace(findTimeFilter[0], ' ');
|
|
57
55
|
}
|
|
@@ -62,16 +60,16 @@ const EventDetails = props => {
|
|
|
62
60
|
url.searchParams.set('valuesFromKQL', KQL);
|
|
63
61
|
return url.href;
|
|
64
62
|
};
|
|
65
|
-
|
|
63
|
+
var query = (0, _useQueryURL.default)();
|
|
66
64
|
//eslint-disable-next-line
|
|
67
|
-
|
|
68
|
-
navigator.clipboard.writeText(buildKQLWithTimeRange()).then(()
|
|
65
|
+
var copyUrl = function copyUrl() {
|
|
66
|
+
navigator.clipboard.writeText(buildKQLWithTimeRange()).then(function () {
|
|
69
67
|
_reactToastify.toast.success(_i18n.default.t('copy.success'), {
|
|
70
68
|
position: 'top-center',
|
|
71
69
|
autoClose: 1500,
|
|
72
70
|
hideProgressBar: true
|
|
73
71
|
});
|
|
74
|
-
}, ()
|
|
72
|
+
}, function () {
|
|
75
73
|
_reactToastify.toast.success(_i18n.default.t('copy.failed'), {
|
|
76
74
|
position: 'top-center',
|
|
77
75
|
autoClose: 1500,
|
|
@@ -79,11 +77,10 @@ const EventDetails = props => {
|
|
|
79
77
|
});
|
|
80
78
|
});
|
|
81
79
|
};
|
|
82
|
-
|
|
83
|
-
firstseen,
|
|
84
|
-
lastseen,
|
|
85
|
-
total
|
|
86
|
-
} = (0, _EventUtils.parseEventData)(event);
|
|
80
|
+
var _parseEventData = (0, _EventUtils.parseEventData)(event),
|
|
81
|
+
firstseen = _parseEventData.firstseen,
|
|
82
|
+
lastseen = _parseEventData.lastseen,
|
|
83
|
+
total = _parseEventData.total;
|
|
87
84
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
88
85
|
className: 'event-details event-info__card'
|
|
89
86
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -92,7 +89,7 @@ const EventDetails = props => {
|
|
|
92
89
|
className: "title"
|
|
93
90
|
}, " ", _i18n.default.t('events_overview.event_details')), /*#__PURE__*/_react.default.createElement("p", {
|
|
94
91
|
className: "copy-button",
|
|
95
|
-
onClick: ()
|
|
92
|
+
onClick: function onClick() {
|
|
96
93
|
copyUrl();
|
|
97
94
|
}
|
|
98
95
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
@@ -106,12 +103,12 @@ const EventDetails = props => {
|
|
|
106
103
|
}, _i18n.default.t('events_overview.severity'), ":"), /*#__PURE__*/_react.default.createElement("div", {
|
|
107
104
|
className: 'severities'
|
|
108
105
|
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
109
|
-
className:
|
|
110
|
-
}, _i18n.default.t(
|
|
111
|
-
className:
|
|
112
|
-
}, _i18n.default.t(
|
|
113
|
-
className:
|
|
114
|
-
}, _i18n.default.t(
|
|
106
|
+
className: "severities__severity severities__severity--0 severities__severity--0".concat(event.severity === '0' ? '--active' : '')
|
|
107
|
+
}, _i18n.default.t("events_overview.severities.0")), /*#__PURE__*/_react.default.createElement("p", {
|
|
108
|
+
className: "severities__severity severities__severity--1 severities__severity--1".concat(event.severity === '1' ? '--active' : '')
|
|
109
|
+
}, _i18n.default.t("events_overview.severities.1")), /*#__PURE__*/_react.default.createElement("p", {
|
|
110
|
+
className: "severities__severity severities__severity--2 severities__severity--2".concat(event.severity === '2' ? '--active' : '')
|
|
111
|
+
}, _i18n.default.t("events_overview.severities.2")))), /*#__PURE__*/_react.default.createElement("div", {
|
|
115
112
|
className: 'event-info__detail event-info__detail__early-warnings'
|
|
116
113
|
}, /*#__PURE__*/_react.default.createElement(_EarlyWarnings.default, {
|
|
117
114
|
event: event
|
|
@@ -144,4 +141,4 @@ const EventDetails = props => {
|
|
|
144
141
|
};
|
|
145
142
|
var _default = EventDetails;
|
|
146
143
|
exports.default = _default;
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pMThuIiwiX1RpbWVGb3JtYXQiLCJfRWFybHlXYXJuaW5ncyIsIl9TYW1wbGluZ3MiLCJfRXZlbnRVdGlscyIsIl91c2VRdWVyeVVSTCIsIl9yZWFjdFRvYXN0aWZ5IiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJFdmVudERldGFpbHMiLCJwcm9wcyIsIl9ldmVudCRzYW1wbGluZ3MiLCJldmVudCIsInBvaW50cyIsImJ1aWxkRGF0ZVJhbmdlIiwidGltZXN0YW1wIiwiZGF0ZSIsIkRhdGUiLCJnZXRUaW1lIiwiZGF5TXMiLCJkYXRlTWludXNPbmUiLCJkYXRlUGx1c09uZSIsImRhdGVFYXJseSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZGF0ZUxhdGUiLCJlYXJseURhdGUiLCJsYXRlRGF0ZSIsImpvaW5LUUwiLCJLUUwiLCJsYXN0X3NlZW5fdGltZSIsImN1dEtRTCIsImJ1aWxkS1FMV2l0aFRpbWVSYW5nZSIsImhyZWYiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInF1ZXJ5IiwiZ2V0IiwidXJsIiwiVVJMIiwiaW5jbHVkZXNBTEwiLCJpbmNsdWRlcyIsInRpbWVGaWx0ZXJQcmVzZW50IiwibWF0Y2giLCJmaW5kVGltZUZpbHRlciIsInJlcGxhY2UiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJ1c2VRdWVyeVVSTCIsImNvcHlVcmwiLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJ3cml0ZVRleHQiLCJ0aGVuIiwidG9hc3QiLCJzdWNjZXNzIiwiaTE4biIsInQiLCJwb3NpdGlvbiIsImF1dG9DbG9zZSIsImhpZGVQcm9ncmVzc0JhciIsImZpcnN0c2VlbiIsImxhc3RzZWVuIiwidG90YWwiLCJwYXJzZUV2ZW50RGF0YSIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYUNvcHkiLCJzZXZlcml0eSIsInBvaW50X25hbWUiLCJzdGFydF90aW1lIiwidGltZV96b25lIiwic2FtcGxpbmdzIiwibGVuZ3RoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50X2luZm8vRXZlbnREZXRhaWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBsb2NhbC1ydWxlcy9uby1oYXJkLWNvZGVkLWpzeC1saXRlcmFscyAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJUG9pbnRzU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnRzU3RhdGUnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5pbXBvcnQgRWFybHlXYXJuaW5ncyBmcm9tICcuL0Vhcmx5V2FybmluZ3MnO1xuaW1wb3J0IFNhbXBsaW5ncyBmcm9tICcuL3NhbXBsaW5nc09sZC9TYW1wbGluZ3MnO1xuaW1wb3J0IHsgcGFyc2VFdmVudERhdGEgfSBmcm9tICcuLi9ldmVudHNfbGlzdC9FdmVudFV0aWxzJztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICdzcmMvaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFDb3B5IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIHBvaW50czogSVBvaW50c1N0YXRlO1xufTtcblxuY29uc3QgRXZlbnREZXRhaWxzOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZXZlbnQsIHBvaW50cyB9ID0gcHJvcHM7XG5cbiAgY29uc3QgYnVpbGREYXRlUmFuZ2UgPSAodGltZXN0YW1wKSA9PiB7XG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApLmdldFRpbWUoKTtcbiAgICBsZXQgZGF5TXMgPSA4NjQwMDAwMDtcbiAgICBsZXQgZGF0ZU1pbnVzT25lID0gbmV3IERhdGUoZGF0ZSAtIGRheU1zKTtcbiAgICBsZXQgZGF0ZVBsdXNPbmUgPSBuZXcgRGF0ZShkYXRlICsgZGF5TXMpO1xuICAgIGxldCBkYXRlRWFybHkgPSBgJHtkYXRlTWludXNPbmUuZ2V0RnVsbFllYXIoKX0tJHtcbiAgICAgIGRhdGVNaW51c09uZS5nZXRNb250aCgpICsgMVxuICAgIH0tJHtkYXRlTWludXNPbmUuZ2V0RGF0ZSgpfWA7XG4gICAgbGV0IGRhdGVMYXRlID0gYCR7ZGF0ZVBsdXNPbmUuZ2V0RnVsbFllYXIoKX0tJHtcbiAgICAgIGRhdGVQbHVzT25lLmdldE1vbnRoKCkgKyAxXG4gICAgfS0ke2RhdGVQbHVzT25lLmdldERhdGUoKX1gO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVhcmx5RGF0ZTogZGF0ZUVhcmx5LFxuICAgICAgbGF0ZURhdGU6IGRhdGVMYXRlLFxuICAgIH07XG4gIH07XG5cbiAgY29uc3Qgam9pbktRTCA9IChLUUw6IHN0cmluZykgPT4ge1xuICAgIEtRTCArPSBgIFRpbWVGaWx0ZXJJdGVtIElOICggJHtcbiAgICAgIGJ1aWxkRGF0ZVJhbmdlKGV2ZW50Lmxhc3Rfc2Vlbl90aW1lKS5lYXJseURhdGVcbiAgICB9OiR7YnVpbGREYXRlUmFuZ2UoZXZlbnQubGFzdF9zZWVuX3RpbWUpLmxhdGVEYXRlfSApYDtcblxuICAgIHJldHVybiBLUUw7XG4gIH07XG5cbiAgY29uc3QgY3V0S1FMID0gKEtRTDogc3RyaW5nKSA9PiB7XG4gICAgS1FMID0gYFRpbWVGaWx0ZXJJdGVtIElOICggJHtcbiAgICAgIGJ1aWxkRGF0ZVJhbmdlKGV2ZW50Lmxhc3Rfc2Vlbl90aW1lKS5lYXJseURhdGVcbiAgICB9OiR7YnVpbGREYXRlUmFuZ2UoZXZlbnQubGFzdF9zZWVuX3RpbWUpLmxhdGVEYXRlfSApIE9SREVSX0JZIHNldmVyaXR5YDtcblxuICAgIHJldHVybiBLUUw7XG4gIH07XG5cbiAgY29uc3QgYnVpbGRLUUxXaXRoVGltZVJhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IGhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICBsZXQgS1FMID0gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gICAgbGV0IHVybCA9IG5ldyBVUkwoaHJlZik7XG5cbiAgICBpZiAoS1FMID09PSBudWxsKSByZXR1cm4gdXJsLmhyZWY7XG5cbiAgICBsZXQgaW5jbHVkZXNBTEwgPSBLUUwuaW5jbHVkZXMoJ0FMTCcpO1xuICAgIGxldCB0aW1lRmlsdGVyUHJlc2VudCA9IEtRTC5tYXRjaCgnKD89VGltZUZpbHRlckl0ZW0pKC4qPykoPzooXFxcXCkpKScpO1xuXG4gICAgaWYgKHRpbWVGaWx0ZXJQcmVzZW50KSB7XG4gICAgICBsZXQgZmluZFRpbWVGaWx0ZXIgPSB0aW1lRmlsdGVyUHJlc2VudDtcbiAgICAgIGlmIChmaW5kVGltZUZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgICBLUUwgPSBLUUwucmVwbGFjZShmaW5kVGltZUZpbHRlclswXSwgJyAnKTtcbiAgICAgIH1cblxuICAgICAgS1FMID0gam9pbktRTChLUUwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBLUUwgPSBpbmNsdWRlc0FMTCA/IGN1dEtRTChLUUwpIDogam9pbktRTChLUUwpO1xuICAgIH1cblxuICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCd2YWx1ZXNGcm9tS1FMJywgS1FMISk7XG4gICAgcmV0dXJuIHVybC5ocmVmO1xuICB9O1xuXG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgY29uc3QgY29weVVybCA9ICgpID0+IHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChidWlsZEtRTFdpdGhUaW1lUmFuZ2UoKSkudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgdG9hc3Quc3VjY2VzcyhpMThuLnQoJ2NvcHkuc3VjY2VzcycpLCB7XG4gICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICBhdXRvQ2xvc2U6IDE1MDAsXG4gICAgICAgICAgaGlkZVByb2dyZXNzQmFyOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRvYXN0LnN1Y2Nlc3MoaTE4bi50KCdjb3B5LmZhaWxlZCcpLCB7XG4gICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICBhdXRvQ2xvc2U6IDE1MDAsXG4gICAgICAgICAgaGlkZVByb2dyZXNzQmFyOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB7IGZpcnN0c2VlbiwgbGFzdHNlZW4sIHRvdGFsIH0gPSBwYXJzZUV2ZW50RGF0YShldmVudCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50LWRldGFpbHMgZXZlbnQtaW5mb19fY2FyZCd9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRfZGV0YWlscycpfTwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzTmFtZT1cImNvcHktYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBjb3B5VXJsKCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFDb3B5fSAvPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50LWluZm9fX2RldGFpbCBldmVudC1pbmZvX19ldmVudF9zZXZlcml0eSd9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LXRpdGxlXCI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LnNldmVyaXR5Jyl9OjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnc2V2ZXJpdGllcyd9PlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgc2V2ZXJpdGllc19fc2V2ZXJpdHkgc2V2ZXJpdGllc19fc2V2ZXJpdHktLTAgc2V2ZXJpdGllc19fc2V2ZXJpdHktLTAke1xuICAgICAgICAgICAgICAgIGV2ZW50LnNldmVyaXR5ID09PSAnMCcgPyAnLS1hY3RpdmUnIDogJydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtpMThuLnQoYGV2ZW50c19vdmVydmlldy5zZXZlcml0aWVzLjBgKX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHNldmVyaXRpZXNfX3NldmVyaXR5IHNldmVyaXRpZXNfX3NldmVyaXR5LS0xIHNldmVyaXRpZXNfX3NldmVyaXR5LS0xJHtcbiAgICAgICAgICAgICAgICBldmVudC5zZXZlcml0eSA9PT0gJzEnID8gJy0tYWN0aXZlJyA6ICcnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi50KGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4xYCl9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BzZXZlcml0aWVzX19zZXZlcml0eSBzZXZlcml0aWVzX19zZXZlcml0eS0tMiBzZXZlcml0aWVzX19zZXZlcml0eS0tMiR7XG4gICAgICAgICAgICAgICAgZXZlbnQuc2V2ZXJpdHkgPT09ICcyJyA/ICctLWFjdGl2ZScgOiAnJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2kxOG4udChgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXRpZXMuMmApfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17J2V2ZW50LWluZm9fX2RldGFpbCBldmVudC1pbmZvX19kZXRhaWxfX2Vhcmx5LXdhcm5pbmdzJ31cbiAgICAgICAgPlxuICAgICAgICAgIDxFYXJseVdhcm5pbmdzIGV2ZW50PXtldmVudH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtaW5mb19fZGV0YWlsIGV2ZW50LWluZm9fX2RldGFpbF9fc2Vlbid9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LXRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlyc3Rfc2VlbicpfTp7JyAnfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwPntmaXJzdHNlZW4ucG9pbnRfbmFtZX08L3A+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e2ZpcnN0c2Vlbi5zdGFydF90aW1lfVxuICAgICAgICAgICAgICAgIHRpbWVfem9uZT17Zmlyc3RzZWVuLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtaW5mb19fZGV0YWlsIGV2ZW50LWluZm9fX2RldGFpbF9fc2Vlbid9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LXRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcubGFzdF9zZWVuJyl9OlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwPntsYXN0c2Vlbi5wb2ludF9uYW1lfTwvcD5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17bGFzdHNlZW4ubGFzdF9zZWVuX3RpbWV9XG4gICAgICAgICAgICAgICAgdGltZV96b25lPXtsYXN0c2Vlbi50aW1lX3pvbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50LWluZm9fX2RldGFpbCBldmVudC1pbmZvX19kZXRhaWxfX3NlZW4nfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJveC10aXRsZVwiPlxuICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LnRvdGFsX3RpbWUnKX06XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvdGFsLXRpbWVcIj57dG90YWx9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7ZXZlbnQ/LnNhbXBsaW5ncz8ubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydldmVudC1pbmZvX19kZXRhaWwnfT5cbiAgICAgICAgICAgIDxTYW1wbGluZ3MgZXZlbnQ9e2V2ZW50fSBwb2ludHM9e3BvaW50c30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnREZXRhaWxzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sY0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsaUJBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGtCQUFBLEdBQUFULE9BQUE7QUFaQTs7QUFtQkEsTUFBTVUsWUFBOEIsR0FBSUMsS0FBSyxJQUFLO0VBQUEsSUFBQUMsZ0JBQUE7RUFDaEQsTUFBTTtJQUFFQyxLQUFLO0lBQUVDO0VBQU8sQ0FBQyxHQUFHSCxLQUFLO0VBRS9CLE1BQU1JLGNBQWMsR0FBSUMsU0FBUyxJQUFLO0lBQ3BDLElBQUlDLElBQUksR0FBRyxJQUFJQyxJQUFJLENBQUNGLFNBQVMsQ0FBQyxDQUFDRyxPQUFPLENBQUMsQ0FBQztJQUN4QyxJQUFJQyxLQUFLLEdBQUcsUUFBUTtJQUNwQixJQUFJQyxZQUFZLEdBQUcsSUFBSUgsSUFBSSxDQUFDRCxJQUFJLEdBQUdHLEtBQUssQ0FBQztJQUN6QyxJQUFJRSxXQUFXLEdBQUcsSUFBSUosSUFBSSxDQUFDRCxJQUFJLEdBQUdHLEtBQUssQ0FBQztJQUN4QyxJQUFJRyxTQUFTLEdBQUksR0FBRUYsWUFBWSxD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
|
|
144
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pMThuIiwiX1RpbWVGb3JtYXQiLCJfRWFybHlXYXJuaW5ncyIsIl9TYW1wbGluZ3MiLCJfRXZlbnRVdGlscyIsIl91c2VRdWVyeVVSTCIsIl9yZWFjdFRvYXN0aWZ5IiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJFdmVudERldGFpbHMiLCJwcm9wcyIsIl9ldmVudCRzYW1wbGluZ3MiLCJldmVudCIsInBvaW50cyIsImJ1aWxkRGF0ZVJhbmdlIiwidGltZXN0YW1wIiwiZGF0ZSIsIkRhdGUiLCJnZXRUaW1lIiwiZGF5TXMiLCJkYXRlTWludXNPbmUiLCJkYXRlUGx1c09uZSIsImRhdGVFYXJseSIsImNvbmNhdCIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZGF0ZUxhdGUiLCJlYXJseURhdGUiLCJsYXRlRGF0ZSIsImpvaW5LUUwiLCJLUUwiLCJsYXN0X3NlZW5fdGltZSIsImN1dEtRTCIsImJ1aWxkS1FMV2l0aFRpbWVSYW5nZSIsImhyZWYiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInF1ZXJ5IiwiZ2V0IiwidXJsIiwiVVJMIiwiaW5jbHVkZXNBTEwiLCJpbmNsdWRlcyIsInRpbWVGaWx0ZXJQcmVzZW50IiwibWF0Y2giLCJmaW5kVGltZUZpbHRlciIsInJlcGxhY2UiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJ1c2VRdWVyeVVSTCIsImNvcHlVcmwiLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJ3cml0ZVRleHQiLCJ0aGVuIiwidG9hc3QiLCJzdWNjZXNzIiwiaTE4biIsInQiLCJwb3NpdGlvbiIsImF1dG9DbG9zZSIsImhpZGVQcm9ncmVzc0JhciIsIl9wYXJzZUV2ZW50RGF0YSIsInBhcnNlRXZlbnREYXRhIiwiZmlyc3RzZWVuIiwibGFzdHNlZW4iLCJ0b3RhbCIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYUNvcHkiLCJzZXZlcml0eSIsInBvaW50X25hbWUiLCJzdGFydF90aW1lIiwidGltZV96b25lIiwic2FtcGxpbmdzIiwibGVuZ3RoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50X2luZm8vRXZlbnREZXRhaWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBsb2NhbC1ydWxlcy9uby1oYXJkLWNvZGVkLWpzeC1saXRlcmFscyAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJUG9pbnRzU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnRzU3RhdGUnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBUaW1lRm9ybWF0IGZyb20gJ3NyYy91dGlsaXRpZXMvVGltZUZvcm1hdCc7XG5pbXBvcnQgRWFybHlXYXJuaW5ncyBmcm9tICcuL0Vhcmx5V2FybmluZ3MnO1xuaW1wb3J0IFNhbXBsaW5ncyBmcm9tICcuL3NhbXBsaW5nc09sZC9TYW1wbGluZ3MnO1xuaW1wb3J0IHsgcGFyc2VFdmVudERhdGEgfSBmcm9tICcuLi9ldmVudHNfbGlzdC9FdmVudFV0aWxzJztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICdzcmMvaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdyZWFjdC10b2FzdGlmeSc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFDb3B5IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIHBvaW50czogSVBvaW50c1N0YXRlO1xufTtcblxuY29uc3QgRXZlbnREZXRhaWxzOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZXZlbnQsIHBvaW50cyB9ID0gcHJvcHM7XG5cbiAgY29uc3QgYnVpbGREYXRlUmFuZ2UgPSAodGltZXN0YW1wKSA9PiB7XG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApLmdldFRpbWUoKTtcbiAgICBsZXQgZGF5TXMgPSA4NjQwMDAwMDtcbiAgICBsZXQgZGF0ZU1pbnVzT25lID0gbmV3IERhdGUoZGF0ZSAtIGRheU1zKTtcbiAgICBsZXQgZGF0ZVBsdXNPbmUgPSBuZXcgRGF0ZShkYXRlICsgZGF5TXMpO1xuICAgIGxldCBkYXRlRWFybHkgPSBgJHtkYXRlTWludXNPbmUuZ2V0RnVsbFllYXIoKX0tJHtcbiAgICAgIGRhdGVNaW51c09uZS5nZXRNb250aCgpICsgMVxuICAgIH0tJHtkYXRlTWludXNPbmUuZ2V0RGF0ZSgpfWA7XG4gICAgbGV0IGRhdGVMYXRlID0gYCR7ZGF0ZVBsdXNPbmUuZ2V0RnVsbFllYXIoKX0tJHtcbiAgICAgIGRhdGVQbHVzT25lLmdldE1vbnRoKCkgKyAxXG4gICAgfS0ke2RhdGVQbHVzT25lLmdldERhdGUoKX1gO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVhcmx5RGF0ZTogZGF0ZUVhcmx5LFxuICAgICAgbGF0ZURhdGU6IGRhdGVMYXRlLFxuICAgIH07XG4gIH07XG5cbiAgY29uc3Qgam9pbktRTCA9IChLUUw6IHN0cmluZykgPT4ge1xuICAgIEtRTCArPSBgIFRpbWVGaWx0ZXJJdGVtIElOICggJHtcbiAgICAgIGJ1aWxkRGF0ZVJhbmdlKGV2ZW50Lmxhc3Rfc2Vlbl90aW1lKS5lYXJseURhdGVcbiAgICB9OiR7YnVpbGREYXRlUmFuZ2UoZXZlbnQubGFzdF9zZWVuX3RpbWUpLmxhdGVEYXRlfSApYDtcblxuICAgIHJldHVybiBLUUw7XG4gIH07XG5cbiAgY29uc3QgY3V0S1FMID0gKEtRTDogc3RyaW5nKSA9PiB7XG4gICAgS1FMID0gYFRpbWVGaWx0ZXJJdGVtIElOICggJHtcbiAgICAgIGJ1aWxkRGF0ZVJhbmdlKGV2ZW50Lmxhc3Rfc2Vlbl90aW1lKS5lYXJseURhdGVcbiAgICB9OiR7YnVpbGREYXRlUmFuZ2UoZXZlbnQubGFzdF9zZWVuX3RpbWUpLmxhdGVEYXRlfSApIE9SREVSX0JZIHNldmVyaXR5YDtcblxuICAgIHJldHVybiBLUUw7XG4gIH07XG5cbiAgY29uc3QgYnVpbGRLUUxXaXRoVGltZVJhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IGhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICBsZXQgS1FMID0gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gICAgbGV0IHVybCA9IG5ldyBVUkwoaHJlZik7XG5cbiAgICBpZiAoS1FMID09PSBudWxsKSByZXR1cm4gdXJsLmhyZWY7XG5cbiAgICBsZXQgaW5jbHVkZXNBTEwgPSBLUUwuaW5jbHVkZXMoJ0FMTCcpO1xuICAgIGxldCB0aW1lRmlsdGVyUHJlc2VudCA9IEtRTC5tYXRjaCgnKD89VGltZUZpbHRlckl0ZW0pKC4qPykoPzooXFxcXCkpKScpO1xuXG4gICAgaWYgKHRpbWVGaWx0ZXJQcmVzZW50KSB7XG4gICAgICBsZXQgZmluZFRpbWVGaWx0ZXIgPSB0aW1lRmlsdGVyUHJlc2VudDtcbiAgICAgIGlmIChmaW5kVGltZUZpbHRlciAhPT0gbnVsbCkge1xuICAgICAgICBLUUwgPSBLUUwucmVwbGFjZShmaW5kVGltZUZpbHRlclswXSwgJyAnKTtcbiAgICAgIH1cblxuICAgICAgS1FMID0gam9pbktRTChLUUwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBLUUwgPSBpbmNsdWRlc0FMTCA/IGN1dEtRTChLUUwpIDogam9pbktRTChLUUwpO1xuICAgIH1cblxuICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCd2YWx1ZXNGcm9tS1FMJywgS1FMISk7XG4gICAgcmV0dXJuIHVybC5ocmVmO1xuICB9O1xuXG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgY29uc3QgY29weVVybCA9ICgpID0+IHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChidWlsZEtRTFdpdGhUaW1lUmFuZ2UoKSkudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgdG9hc3Quc3VjY2VzcyhpMThuLnQoJ2NvcHkuc3VjY2VzcycpLCB7XG4gICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICBhdXRvQ2xvc2U6IDE1MDAsXG4gICAgICAgICAgaGlkZVByb2dyZXNzQmFyOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRvYXN0LnN1Y2Nlc3MoaTE4bi50KCdjb3B5LmZhaWxlZCcpLCB7XG4gICAgICAgICAgcG9zaXRpb246ICd0b3AtY2VudGVyJyxcbiAgICAgICAgICBhdXRvQ2xvc2U6IDE1MDAsXG4gICAgICAgICAgaGlkZVByb2dyZXNzQmFyOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB7IGZpcnN0c2VlbiwgbGFzdHNlZW4sIHRvdGFsIH0gPSBwYXJzZUV2ZW50RGF0YShldmVudCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50LWRldGFpbHMgZXZlbnQtaW5mb19fY2FyZCd9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZXZlbnRfZGV0YWlscycpfTwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzTmFtZT1cImNvcHktYnV0dG9uXCJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBjb3B5VXJsKCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb24gaWNvbj17ZmFDb3B5fSAvPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50LWluZm9fX2RldGFpbCBldmVudC1pbmZvX19ldmVudF9zZXZlcml0eSd9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LXRpdGxlXCI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LnNldmVyaXR5Jyl9OjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnc2V2ZXJpdGllcyd9PlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgc2V2ZXJpdGllc19fc2V2ZXJpdHkgc2V2ZXJpdGllc19fc2V2ZXJpdHktLTAgc2V2ZXJpdGllc19fc2V2ZXJpdHktLTAke1xuICAgICAgICAgICAgICAgIGV2ZW50LnNldmVyaXR5ID09PSAnMCcgPyAnLS1hY3RpdmUnIDogJydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtpMThuLnQoYGV2ZW50c19vdmVydmlldy5zZXZlcml0aWVzLjBgKX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHNldmVyaXRpZXNfX3NldmVyaXR5IHNldmVyaXRpZXNfX3NldmVyaXR5LS0xIHNldmVyaXRpZXNfX3NldmVyaXR5LS0xJHtcbiAgICAgICAgICAgICAgICBldmVudC5zZXZlcml0eSA9PT0gJzEnID8gJy0tYWN0aXZlJyA6ICcnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi50KGBldmVudHNfb3ZlcnZpZXcuc2V2ZXJpdGllcy4xYCl9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BzZXZlcml0aWVzX19zZXZlcml0eSBzZXZlcml0aWVzX19zZXZlcml0eS0tMiBzZXZlcml0aWVzX19zZXZlcml0eS0tMiR7XG4gICAgICAgICAgICAgICAgZXZlbnQuc2V2ZXJpdHkgPT09ICcyJyA/ICctLWFjdGl2ZScgOiAnJ1xuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2kxOG4udChgZXZlbnRzX292ZXJ2aWV3LnNldmVyaXRpZXMuMmApfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17J2V2ZW50LWluZm9fX2RldGFpbCBldmVudC1pbmZvX19kZXRhaWxfX2Vhcmx5LXdhcm5pbmdzJ31cbiAgICAgICAgPlxuICAgICAgICAgIDxFYXJseVdhcm5pbmdzIGV2ZW50PXtldmVudH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtaW5mb19fZGV0YWlsIGV2ZW50LWluZm9fX2RldGFpbF9fc2Vlbid9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LXRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlyc3Rfc2VlbicpfTp7JyAnfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwPntmaXJzdHNlZW4ucG9pbnRfbmFtZX08L3A+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPFRpbWVGb3JtYXRcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA9e2ZpcnN0c2Vlbi5zdGFydF90aW1lfVxuICAgICAgICAgICAgICAgIHRpbWVfem9uZT17Zmlyc3RzZWVuLnRpbWVfem9uZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtaW5mb19fZGV0YWlsIGV2ZW50LWluZm9fX2RldGFpbF9fc2Vlbid9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LXRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcubGFzdF9zZWVuJyl9OlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwPntsYXN0c2Vlbi5wb2ludF9uYW1lfTwvcD5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8VGltZUZvcm1hdFxuICAgICAgICAgICAgICAgIHRpbWVzdGFtcD17bGFzdHNlZW4ubGFzdF9zZWVuX3RpbWV9XG4gICAgICAgICAgICAgICAgdGltZV96b25lPXtsYXN0c2Vlbi50aW1lX3pvbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2V2ZW50LWluZm9fX2RldGFpbCBldmVudC1pbmZvX19kZXRhaWxfX3NlZW4nfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJveC10aXRsZVwiPlxuICAgICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LnRvdGFsX3RpbWUnKX06XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvdGFsLXRpbWVcIj57dG90YWx9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7ZXZlbnQ/LnNhbXBsaW5ncz8ubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydldmVudC1pbmZvX19kZXRhaWwnfT5cbiAgICAgICAgICAgIDxTYW1wbGluZ3MgZXZlbnQ9e2V2ZW50fSBwb2ludHM9e3BvaW50c30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnREZXRhaWxzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sY0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsaUJBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGtCQUFBLEdBQUFULE9BQUE7QUFaQTs7QUFtQkEsSUFBTVUsWUFBOEIsR0FBRyxTQUFqQ0EsWUFBOEJBLENBQUlDLEtBQUssRUFBSztFQUFBLElBQUFDLGdCQUFBO0VBQ2hELElBQVFDLEtBQUssR0FBYUYsS0FBSyxDQUF2QkUsS0FBSztJQUFFQyxNQUFNLEdBQUtILEtBQUssQ0FBaEJHLE1BQU07RUFFckIsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxTQUFTLEVBQUs7SUFDcEMsSUFBSUMsSUFBSSxHQUFHLElBQUlDLElBQUksQ0FBQ0YsU0FBUyxDQUFDLENBQUNHLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLElBQUlDLEtBQUssR0FBRyxRQUFRO0lBQ3BCLElBQUlDLFlBQVksR0FBRyxJQUFJSCxJQUFJLENBQUNELElBQUksR0FBR0csS0FBSyxDQUFDO0lBQ3pD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
|