@kando-env/kando-ui 1.2.354-alpha.12 → 1.2.354-alpha.13
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 +76 -37
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +37 -26
- package/lib/Widgets/EventsRow/EventsRow.js +41 -28
- package/lib/Widgets/Map/GraphUtils.js +6 -4
- package/lib/Widgets/Map/Map.js +88 -68
- package/lib/Widgets/Map/MapUtils.js +42 -42
- package/lib/Widgets/Map/areas/AreaPolygon.js +79 -54
- package/lib/Widgets/Map/areas/AreaPolygons.js +25 -23
- package/lib/Widgets/Map/areas/AreaUtils.js +47 -48
- package/lib/Widgets/Map/areas/Patterns.js +5 -5
- package/lib/Widgets/Map/edges/Edge.js +34 -28
- package/lib/Widgets/Map/edges/Edges.js +26 -20
- package/lib/Widgets/Map/edges/arrows/Arrows.js +45 -24
- package/lib/Widgets/Map/events/Event.js +18 -17
- package/lib/Widgets/Map/events/EventIndicator.js +55 -58
- package/lib/Widgets/Map/events/EventPath.js +25 -25
- package/lib/Widgets/Map/events/EventUtils.js +81 -60
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +19 -17
- package/lib/Widgets/Map/events/PointOfEvent.js +35 -29
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +37 -29
- package/lib/Widgets/Map/events/Snail.js +21 -19
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +90 -94
- package/lib/Widgets/Map/map/FloatingGraph.js +21 -24
- package/lib/Widgets/Map/map/GraphDateButton.js +20 -27
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +14 -14
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -17
- package/lib/Widgets/Map/points/PointIcon.js +18 -24
- package/lib/Widgets/Map/points/PointMarker.js +89 -71
- package/lib/Widgets/Map/points/PointMarkers.js +67 -45
- package/lib/Widgets/Map/points/PointUtils.js +88 -146
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +48 -30
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +13 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +6 -4
- package/lib/Widgets/MostPolluting/Areas/Areas.js +61 -31
- package/lib/Widgets/MostPolluting/Areas/areas.mock.js +4 -3
- package/lib/Widgets/MostPolluting/Areas/styles.js +6 -4
- package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +9 -12
- package/lib/Widgets/MostPolluting/Factories/Factories.js +71 -39
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +19 -16
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +9 -9
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +11 -13
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +6 -4
- package/lib/Widgets/MostPolluting/Factories/factories.mock.js +3 -2
- package/lib/Widgets/MostPolluting/Factories/styles.js +6 -4
- package/lib/Widgets/MostPolluting/MostPolluting.js +28 -21
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +29 -20
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +5 -7
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -7
- package/lib/Widgets/MostPolluting/assets/index.js +11 -11
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +14 -20
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +31 -36
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +36 -36
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +36 -40
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -29
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +51 -55
- package/lib/Widgets/MostPolluting/styles.js +6 -4
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +6 -8
- package/lib/Widgets/PotentialImpactSummary/Icon.js +7 -9
- package/lib/Widgets/PotentialImpactSummary/index.js +28 -20
- package/lib/Widgets/PotentialImpactSummary/index.test.js +53 -48
- package/lib/Widgets/PotentialImpactSummary/styles.js +13 -8
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +8 -10
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +18 -23
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +33 -36
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +25 -27
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +38 -35
- package/lib/Widgets/QualitySummary/QualitySummary.js +14 -10
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +7 -4
- package/lib/Widgets/QualitySummary/styles.js +21 -24
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +14 -12
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +27 -27
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +26 -30
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +43 -25
- package/lib/Widgets/UtilityInformation/styles.js +31 -30
- package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +5 -3
- package/lib/assets/icons/TopNavbar/index.js +6 -6
- package/lib/assets/icons/TrendSvg.js +7 -7
- 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 +12 -11
- package/lib/components/ApplyButton/index.js +4 -3
- package/lib/components/Backdrop/Backdrop.js +5 -7
- package/lib/components/ContentLoader/ContentLoader.js +10 -12
- package/lib/components/ContentLoader/index.js +1 -1
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +15 -15
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +9 -5
- package/lib/components/CustomInputs/DoubleTabs/styles.js +16 -21
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +21 -13
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -7
- package/lib/components/CustomInputs/Search/Search.js +66 -43
- package/lib/components/CustomInputs/Search/index.js +4 -3
- package/lib/components/CustomInputs/Select/Select.js +59 -45
- package/lib/components/CustomInputs/Select/Select.stories.js +10 -6
- package/lib/components/DamageType/DamageType.js +60 -36
- package/lib/components/DamageType/index.js +4 -3
- package/lib/components/DataLoaderError/DataLoaderError.js +7 -9
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +13 -11
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +72 -71
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +40 -28
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +15 -12
- package/lib/components/DischargeHeatmap/index.js +4 -3
- package/lib/components/DischargeHeatmap/mocks/handlers.js +4 -3
- package/lib/components/DischargeHeatmap/popupText.js +13 -12
- package/lib/components/DischargeHeatmap/titles.js +6 -4
- package/lib/components/ErrorBoundary.js +42 -27
- package/lib/components/Events/Events.js +61 -42
- package/lib/components/Events/index.js +4 -3
- package/lib/components/Graph/Graph.js +94 -73
- package/lib/components/Graph/index.js +4 -3
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +24 -19
- package/lib/components/Header/Breadcrumbs/index.js +4 -3
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +35 -25
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +9 -5
- package/lib/components/Header/DoubleTabs/styles.js +8 -5
- package/lib/components/Header/Header.js +3 -3
- package/lib/components/Header/Header.stories.js +9 -5
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +198 -83
- package/lib/components/Header/InfoBar/InfoBar.js +105 -75
- package/lib/components/Header/InfoBar/Search/Control.js +12 -11
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +8 -9
- package/lib/components/Header/InfoBar/Search/Search.js +22 -15
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +32 -18
- package/lib/components/Header/InfoBar/Search/index.js +4 -3
- package/lib/components/Header/InfoBar/Search/searchStyle.js +51 -42
- package/lib/components/Header/InfoBar/TimeFilter.js +17 -13
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +92 -65
- package/lib/components/Header/KandoNavbar/index.js +4 -3
- package/lib/components/Header/Slideshow/Slideshow.js +92 -68
- package/lib/components/Header/Slideshow/index.js +4 -3
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +5 -7
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +24 -22
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +19 -19
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +44 -38
- package/lib/components/Header/Toolbar/Toolbar.js +76 -56
- package/lib/components/InfoBar/InfoBar.js +24 -10
- package/lib/components/InfoBar/InfoBar.stories.js +9 -5
- package/lib/components/KandoModal/KandoModal.js +44 -28
- package/lib/components/KandoModal/index.js +4 -3
- package/lib/components/Link.js +8 -9
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -10
- package/lib/components/Links/StyledLink/StyledLink.js +14 -13
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +12 -12
- package/lib/components/LiveEvents/CarouselSlide.js +10 -11
- package/lib/components/LiveEvents/LiveEvents.js +6 -7
- package/lib/components/LiveEvents/index.js +4 -3
- package/lib/components/LoaderByPercent/LoaderByPercent.js +31 -38
- package/lib/components/Map/Map.js +26 -21
- package/lib/components/Map/index.js +4 -3
- package/lib/components/Modal/Modal.js +10 -10
- package/lib/components/NarrowHeader.js +32 -18
- package/lib/components/PointInfo/PointInfo.js +20 -21
- package/lib/components/PointInfo/index.js +4 -3
- package/lib/components/PopupModal/PopupModal.js +17 -13
- package/lib/components/PopupModal/PopupModal.stories.js +24 -17
- package/lib/components/Sector/Sector.js +9 -10
- package/lib/components/Sector/Sector.test.js +21 -20
- package/lib/components/Sector/index.js +4 -3
- package/lib/components/Sector/sectorIcons.js +5 -4
- package/lib/components/SevereEvent/Eta/Eta.js +55 -50
- package/lib/components/SevereEvent/Eta/styles.js +8 -11
- package/lib/components/SevereEvent/SevereEvent.js +38 -30
- package/lib/components/Spinner/Spinner.js +9 -9
- package/lib/components/Spinner/Spinner.stories.js +11 -6
- package/lib/components/Spinner/index.js +4 -3
- package/lib/components/Spinner/styles.js +18 -23
- package/lib/components/Tabs/Tabs.js +31 -18
- package/lib/components/Tabs/Tabs.stories.js +10 -6
- package/lib/components/Tabs/assets/index.js +5 -5
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +18 -13
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +54 -41
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +34 -20
- package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +4 -3
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +26 -21
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +16 -15
- package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +4 -3
- package/lib/components/TimeRangeSelector/TimeRangeList.js +27 -24
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +28 -18
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +35 -32
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +10 -6
- package/lib/components/TimeRangeSelector/constants.js +5 -3
- package/lib/components/TimeRangeSelector/index.js +4 -3
- package/lib/components/Toggle/Toggle.js +20 -13
- package/lib/components/Toggle/index.js +4 -3
- package/lib/components/TrendGraph/TrendGraph.js +43 -25
- package/lib/components/TrendGraph/index.js +4 -3
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +36 -28
- package/lib/components/TrendGraphNVL/index.js +4 -3
- package/lib/development-environment/index.js +13 -9
- package/lib/development-environment/mock/browser.js +5 -2
- package/lib/development-environment/mock/get.js +10 -8
- package/lib/development-environment/mock/handlers.js +3 -2
- package/lib/development-environment/mock/mockBus.js +5 -4
- package/lib/development-environment/mock/mockObjects/area-trends-graph.js +3 -2
- package/lib/development-environment/mock/mockObjects/areaInformation.js +3 -2
- package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +3 -2
- package/lib/development-environment/mock/mockObjects/areaSitesData.js +3 -2
- package/lib/development-environment/mock/mockObjects/areasJson.js +3 -2
- package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +3 -2
- package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +3 -2
- package/lib/development-environment/mock/mockObjects/data-menuData.js +3 -2
- package/lib/development-environment/mock/mockObjects/data-search.js +3 -2
- package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +3 -2
- package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +3 -2
- package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +3 -2
- package/lib/development-environment/mock/mockObjects/eventsJson.js +3 -2
- package/lib/development-environment/mock/mockObjects/metascore.js +3 -2
- package/lib/development-environment/mock/mockObjects/permissionsJson.js +3 -2
- package/lib/development-environment/mock/mockObjects/pointsJson.js +3 -2
- package/lib/development-environment/mock/mockObjects/site-info.js +3 -2
- package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +3 -2
- package/lib/development-environment/togly/ToglyDashboard.js +23 -13
- package/lib/development-environment/togly/ToglyItem.js +31 -24
- package/lib/development-environment/togly/init.js +3 -3
- 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 +56 -20
- package/lib/hooks/useApiWithDashboardQuery.js +49 -30
- package/lib/hooks/useClickOutside.js +5 -4
- package/lib/hooks/useInitializeHeaders.js +6 -6
- package/lib/hooks/useKandoFetch.js +32 -18
- package/lib/hooks/useMap.js +37 -25
- package/lib/hooks/useNavContext.js +26 -22
- package/lib/hooks/useQueryURL.js +3 -2
- package/lib/hooks/useRemoveExistingLayers.js +8 -7
- package/lib/hooks/useUpdateEventBodyTail.js +19 -14
- package/lib/hooks/useUserTimeZone.js +31 -34
- package/lib/hooks/useUserTimeZone.test.js +23 -19
- package/lib/hooks/useWindowSize.js +14 -7
- package/lib/index.js +13 -11
- package/lib/macros/getVersion.js +3 -3
- package/lib/pages/AreaPage/AreaPage.js +68 -34
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -14
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +30 -28
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +26 -17
- package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +5 -5
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +9 -9
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +12 -12
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +6 -4
- package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +3 -2
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +8 -5
- package/lib/pages/AssessmentPage/AssessmentPage.js +49 -41
- package/lib/pages/CannyWidget/Feedback.js +16 -14
- package/lib/pages/CovidPage/CovidPage.js +16 -9
- package/lib/pages/CovidPage/components/Body.js +30 -26
- package/lib/pages/CovidPage/components/Map.js +42 -30
- package/lib/pages/CovidPage/components/Sidebar.js +18 -17
- package/lib/pages/CovidPage/components/Summary.js +30 -21
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +36 -28
- package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +4 -3
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +76 -52
- package/lib/pages/CovidPage/components/TrendPopupContent/index.js +4 -3
- package/lib/pages/CovidPage/components/areas/Area.js +41 -29
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +49 -56
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +36 -32
- package/lib/pages/CovidPage/components/areas/AreasList.js +47 -34
- package/lib/pages/CovidPage/components/areas/Sort.js +17 -12
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
- package/lib/pages/DashboardMap/AreaCard.js +29 -29
- package/lib/pages/DashboardMap/AssessmentIcon.js +8 -9
- package/lib/pages/DashboardMap/Capacity.js +85 -34
- package/lib/pages/DashboardMap/FactoryCard.js +28 -33
- package/lib/pages/DashboardMap/HighchartsOptions.js +5 -6
- package/lib/pages/DashboardMap/List.js +98 -69
- package/lib/pages/DashboardMap/ListContext.js +19 -14
- package/lib/pages/DashboardMap/Loader.js +3 -3
- package/lib/pages/DashboardMap/SeverityBadge.js +19 -11
- package/lib/pages/DashboardMap/WWTPMap.js +61 -49
- package/lib/pages/DashboardMap/WaterDischarge.js +9 -9
- package/lib/pages/DashboardMap/Widget.js +72 -54
- package/lib/pages/DashboardMap/index.js +4 -3
- package/lib/pages/DashboardMap/utils.js +54 -44
- package/lib/pages/EventsPage/Body/Body.js +18 -21
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +20 -17
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +36 -27
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +9 -10
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +10 -13
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +31 -22
- package/lib/pages/EventsPage/DragAndDropArea/index.js +4 -3
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +64 -52
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +31 -19
- package/lib/pages/EventsPage/EventsPage.js +13 -8
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +42 -28
- package/lib/pages/EventsPage/events/MoreInfo.js +19 -18
- package/lib/pages/EventsPage/events/Sidebar.js +19 -22
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +10 -9
- package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +23 -19
- package/lib/pages/EventsPage/events/event_info/Contaminants/index.js +4 -3
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +38 -31
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +40 -42
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +45 -44
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +5 -5
- package/lib/pages/EventsPage/events/event_info/EventSection.js +22 -19
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +39 -44
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +50 -40
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +7 -8
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +36 -31
- package/lib/pages/EventsPage/events/event_info/Header/index.js +4 -3
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +9 -8
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +39 -30
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +9 -6
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +24 -23
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +22 -13
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +6 -7
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/index.js +4 -3
- package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +12 -13
- package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +29 -23
- package/lib/pages/EventsPage/events/event_info/SamplingList/index.js +4 -3
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +11 -14
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +10 -9
- package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +4 -3
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +5 -4
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +11 -13
- package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +14 -11
- package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +6 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +8 -9
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +8 -9
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +7 -8
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +12 -13
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +16 -15
- package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +7 -7
- package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +8 -9
- package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +18 -19
- package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +7 -6
- package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +11 -12
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +14 -18
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +9 -10
- package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +5 -4
- package/lib/pages/EventsPage/events/event_info/Timelines/index.js +4 -3
- package/lib/pages/EventsPage/events/event_info/Timelines/style.js +6 -4
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +41 -26
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +39 -30
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +12 -13
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +20 -17
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +33 -29
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +29 -24
- package/lib/pages/EventsPage/events/event_info/styles.js +15 -21
- package/lib/pages/EventsPage/events/events_list/EventItem.js +22 -19
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +11 -11
- package/lib/pages/EventsPage/events/events_list/EventsList.js +149 -126
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +58 -41
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +118 -80
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +80 -61
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +44 -39
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +39 -30
- package/lib/pages/EventsPage/events/events_list/Sort.js +19 -14
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +23 -15
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +8 -9
- package/lib/pages/ImportFileWizard/ImportFile.js +25 -21
- package/lib/pages/ImportFileWizard/ResponseBody.js +36 -26
- package/lib/pages/ImportFileWizard/ValidationForm.js +25 -25
- package/lib/pages/ImportFileWizard/ValidationResponse.js +25 -23
- package/lib/pages/ImportFileWizard/importFileUtils.js +5 -4
- package/lib/pages/ImportFileWizard/index.js +4 -3
- package/lib/pages/ImportGisPage/ImportGisContainer.js +27 -22
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +26 -23
- package/lib/pages/ImportGisPage/importGisUtils.js +25 -16
- package/lib/pages/ImportGisProcess/index.js +18 -14
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +13 -7
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +20 -18
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +4 -4
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +66 -34
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +12 -8
- package/lib/pages/NotificationsPage/Notification/Notification.js +13 -17
- package/lib/pages/NotificationsPage/Notifications.mock.js +3 -2
- package/lib/pages/NotificationsPage/Notifications.stories.js +10 -6
- package/lib/pages/NotificationsPage/NotificationsPage.js +38 -19
- package/lib/pages/NotificationsPage/assets/index.js +9 -9
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +97 -71
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +66 -96
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +144 -131
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +76 -74
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +88 -91
- package/lib/pages/NotificationsPageV2/notificationUtils.js +54 -55
- package/lib/pages/OldSitePage/OldSitePage.js +133 -57
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +10 -6
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +9 -5
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +21 -19
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -10
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +19 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +13 -17
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +9 -5
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +17 -19
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +64 -51
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +8 -10
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +54 -29
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +7 -4
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +19 -12
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -11
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +12 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +29 -33
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +31 -29
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +8 -5
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +15 -19
- package/lib/pages/ProfilePage/Container.js +4 -3
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +45 -28
- package/lib/pages/ProfilePage/ProfilePage.js +207 -118
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +34 -25
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +21 -21
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +31 -28
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +120 -58
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +23 -18
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +13 -14
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +46 -41
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +29 -27
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +19 -18
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +18 -15
- package/lib/pages/SamplingsPage/DesktopActions/index.js +4 -3
- package/lib/pages/SamplingsPage/NavigationDropdown.js +34 -46
- package/lib/pages/SamplingsPage/NewSamplingAction.js +104 -78
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +102 -130
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +25 -23
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +25 -36
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +62 -37
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +21 -16
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +10 -11
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +195 -110
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +56 -49
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +44 -47
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +46 -49
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +26 -19
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +6 -4
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +7 -11
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +55 -58
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +31 -22
- package/lib/pages/SamplingsPage/SamplingsPage.js +35 -27
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +59 -50
- package/lib/pages/SamplingsPage/index.js +3 -2
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +93 -69
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -7
- package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +16 -16
- package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +16 -12
- package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
- package/lib/pages/SitePage/PollutionContributor/index.js +4 -3
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +9 -5
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +15 -15
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -10
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +24 -27
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -15
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +33 -37
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -10
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +25 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +13 -17
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +9 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +17 -19
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +71 -58
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +8 -10
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +27 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +9 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +19 -12
- package/lib/pages/SitePage/SamplingParameters/body/Body.js +12 -11
- package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +40 -30
- package/lib/pages/SitePage/SamplingParameters/body/index.js +4 -3
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +12 -11
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +12 -10
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +60 -61
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +41 -32
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +8 -5
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +15 -19
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +10 -13
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +32 -31
- package/lib/pages/SitePage/SitePage.js +80 -40
- package/lib/pages/UploadLabResult/index.js +16 -15
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +37 -27
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +13 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +15 -11
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +9 -5
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +51 -48
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +8 -11
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +7 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +9 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +13 -14
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +13 -16
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +9 -8
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +4 -3
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +27 -17
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +37 -28
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +16 -14
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +14 -7
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +32 -27
- package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -9
- package/lib/pages/WbeDashboard/GraphWrapper.js +37 -30
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -16
- package/lib/pages/WbeDashboard/SearchInput.js +21 -15
- package/lib/pages/WbeDashboard/SummaryGraph.js +77 -50
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +18 -20
- package/lib/pages/WbeDashboard/Tabs.js +12 -12
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +211 -148
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +49 -40
- package/lib/pages/WwtpPage/DashboardCard.js +26 -28
- package/lib/pages/WwtpPage/DischargePatternCard.js +25 -14
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +25 -28
- package/lib/pages/WwtpPage/InletsCard/InletsCard.js +22 -22
- package/lib/pages/WwtpPage/InletsCard/index.js +4 -3
- package/lib/pages/WwtpPage/Map.js +6 -7
- package/lib/pages/WwtpPage/OrganicCard.js +5 -4
- package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +5 -4
- package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +9 -10
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +11 -11
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +17 -20
- package/lib/pages/WwtpPage/PotentialSaving/index.js +4 -3
- package/lib/pages/WwtpPage/PredictionCard.js +5 -4
- package/lib/pages/WwtpPage/TrendCard.js +22 -20
- package/lib/pages/WwtpPage/UpgradeBox.js +6 -5
- package/lib/pages/WwtpPage/WwtpPage.js +11 -10
- package/lib/pages/WwtpPage/WwtpPageContainer.js +19 -23
- package/lib/pages/WwtpPage/index.js +4 -3
- package/lib/providers/Slideshow/SlideshowContext.js +10 -11
- package/lib/providers/Slideshow/SlideshowProvider.js +40 -22
- package/lib/providers/Slideshow/SlideshowRunner.js +21 -18
- package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -7
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +13 -12
- package/lib/providers/UrlHistory/index.js +3 -3
- package/lib/providers/UrlHistory/useLastVisited.js +7 -6
- package/lib/store/ImportGis/actionTypes.js +5 -4
- package/lib/store/ImportGis/actionsCreator.js +5 -7
- package/lib/store/ImportGis/reducer.js +30 -41
- package/lib/store/WBE/actionTypes.js +3 -2
- package/lib/store/WBE/reducer.js +10 -14
- package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +15 -24
- package/lib/store/areas/actionTypes.js +7 -4
- package/lib/store/areas/actions.js +13 -7
- package/lib/store/areas/reducer.js +6 -8
- package/lib/store/context/actionTypes.js +5 -3
- package/lib/store/context/actions.js +3 -3
- package/lib/store/context/contextMiddlewares.js +18 -15
- package/lib/store/context/reducer.js +10 -14
- package/lib/store/dashboard/dashboardSlice.js +11 -18
- package/lib/store/edges/actionTypes.js +9 -5
- package/lib/store/edges/actions.js +8 -4
- package/lib/store/edges/reducer.js +17 -13
- package/lib/store/events/actionTypes.js +33 -17
- package/lib/store/events/actions.js +7 -3
- package/lib/store/events/reducer.js +49 -42
- package/lib/store/global/actionTypes.js +21 -11
- package/lib/store/global/actions.js +6 -8
- package/lib/store/global/reducer.js +10 -11
- package/lib/store/permissions/permissionsSlice.js +9 -12
- package/lib/store/points/actionTypes.js +5 -3
- package/lib/store/points/actions.js +7 -3
- package/lib/store/points/reducer.js +5 -7
- package/lib/store/rootActionTypes.js +3 -2
- package/lib/store/rootReducer.js +13 -17
- package/lib/store/rootStore.js +6 -6
- package/lib/store/samplings/actionTypes.js +5 -4
- package/lib/store/samplings/reducer.js +14 -16
- package/lib/styles/StylesLayout.js +6 -7
- package/lib/styles/theme/theme.js +30 -26
- package/lib/test/mocks/browser.js +5 -2
- package/lib/test/test-utils.js +16 -18
- package/lib/ui-kit/Button/Button.js +84 -130
- package/lib/ui-kit/Button/Button.test.js +30 -24
- package/lib/ui-kit/Checkbox/Checkbox.js +24 -32
- package/lib/ui-kit/ContentCard/ContentCard.js +21 -17
- package/lib/ui-kit/Dashboard/Dashboard.js +25 -26
- package/lib/ui-kit/Dashboard/index.js +4 -3
- package/lib/ui-kit/DropDown/DropDown.js +25 -24
- package/lib/ui-kit/DropDown/DropDown.test.js +13 -13
- package/lib/ui-kit/DropDown/DropDownItem.js +25 -26
- package/lib/ui-kit/DropDown/DropdownToggle.js +10 -13
- package/lib/ui-kit/EmptyState/EmptyState.js +7 -8
- package/lib/ui-kit/IconAction/IconAction.js +8 -9
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +66 -49
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +53 -70
- package/lib/ui-kit/InletsPie/InletsPie.js +16 -17
- package/lib/ui-kit/InletsPie/index.js +4 -3
- package/lib/ui-kit/InletsPie/options.js +9 -7
- package/lib/ui-kit/KandoList/KandoList.js +12 -13
- package/lib/ui-kit/KandoTable/KandoTable.js +41 -48
- package/lib/ui-kit/KandoTable/KandoTable.test.js +23 -17
- package/lib/ui-kit/Layout/Layout.js +7 -8
- package/lib/ui-kit/MobileInput/MobileInput.js +51 -61
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +17 -14
- package/lib/ui-kit/ModalConfirmation/index.js +3 -2
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +9 -10
- package/lib/ui-kit/OrganicEvents/OrganicEvents.js +9 -8
- package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +23 -29
- package/lib/ui-kit/OrganicEvents/TextInfo.js +13 -17
- package/lib/ui-kit/OrganicEvents/index.js +4 -3
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +11 -12
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +21 -17
- package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +4 -3
- package/lib/ui-kit/ScoreGauge/ScoreGauge.js +24 -22
- package/lib/ui-kit/ScoreGauge/constant.js +4 -3
- package/lib/ui-kit/ScoreGauge/index.js +4 -3
- package/lib/ui-kit/TimeLineChart/TrendChart.js +45 -56
- package/lib/ui-kit/TimeLineChart/index.js +4 -3
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +11 -10
- package/lib/ui-kit/Tooltip/Tooltip.js +9 -15
- package/lib/ui-kit/index.js +8 -8
- package/lib/ui-kit/kandoStepper/KandoStepper.js +15 -14
- package/lib/ui-kit/siteName/SiteName.js +11 -13
- package/lib/utilities/ActionUtility.js +7 -7
- package/lib/utilities/Alert.js +20 -23
- package/lib/utilities/Analytics.js +12 -12
- package/lib/utilities/Array.js +5 -4
- package/lib/utilities/Enum.js +51 -15
- package/lib/utilities/ErrorBoundary.js +42 -27
- package/lib/utilities/File.js +70 -41
- package/lib/utilities/GetDir.js +10 -10
- package/lib/utilities/KandoDate.js +15 -7
- package/lib/utilities/KandoModal.js +28 -16
- package/lib/utilities/LocalStorage.js +10 -8
- package/lib/utilities/ThousandsToK.js +3 -3
- package/lib/utilities/TimeFormat.js +23 -22
- package/lib/utilities/Truncate.js +28 -18
- package/lib/utilities/edgesMath.js +16 -15
- package/lib/utilities/i18n.js +6 -5
- package/lib/utilities/kql.js +14 -12
- package/lib/utilities/map/icons.js +4 -4
- package/lib/utilities/polylinedecorator.js +113 -88
- package/lib/utilities/scoreToData.js +16 -16
- package/lib/utilities/scoreToData.test.js +5 -5
- package/lib/utilities/time.js +10 -9
- package/lib/utilities/uploadToS3.js +12 -12
- package/lib/utilities/urls.js +61 -62
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")
|
|
4
|
-
var
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
@@ -11,31 +11,39 @@ require("utilities/polylinedecorator");
|
|
|
11
11
|
var _whitePoint = _interopRequireDefault(require("../../../assets/white-point.png"));
|
|
12
12
|
var _actions = require("../../../store/events/actions");
|
|
13
13
|
var _PointUtils = require("../points/PointUtils");
|
|
14
|
-
|
|
15
|
-
|
|
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; }
|
|
16
|
+
var drawManholeIcon = function drawManholeIcon(sourcePoint, map) {
|
|
17
|
+
var pointIcon = L.icon({
|
|
16
18
|
iconUrl: _whitePoint.default,
|
|
17
19
|
iconSize: [9, 9],
|
|
18
20
|
iconAnchor: [4.5, 4.5]
|
|
19
21
|
});
|
|
20
|
-
|
|
22
|
+
var manholeIcon = L.marker([sourcePoint.latitude, sourcePoint.longitude], {
|
|
21
23
|
icon: pointIcon,
|
|
22
24
|
riseOnHover: true
|
|
23
25
|
}).addTo(map);
|
|
24
|
-
manholeIcon.bindTooltip(
|
|
26
|
+
manholeIcon.bindTooltip("".concat(sourcePoint.group.name, " (").concat(sourcePoint.group.sector_name, ")"));
|
|
25
27
|
manholeIcon['kando_object_id'] = sourcePoint.id;
|
|
26
28
|
manholeIcon['kando_object'] = 'UpstreamPoint';
|
|
27
29
|
};
|
|
28
30
|
exports.drawManholeIcon = drawManholeIcon;
|
|
29
|
-
|
|
31
|
+
var getFirstEdgeOfEventPath = function getFirstEdgeOfEventPath(edges, event) {
|
|
30
32
|
if (event.path[0] === undefined) return;
|
|
31
|
-
return edges.find(
|
|
33
|
+
return edges.find(function (edge) {
|
|
34
|
+
return edge.id === event.path[0].edge_id;
|
|
35
|
+
});
|
|
32
36
|
};
|
|
33
37
|
exports.getFirstEdgeOfEventPath = getFirstEdgeOfEventPath;
|
|
34
|
-
|
|
35
|
-
return edges.filter(
|
|
38
|
+
var findEdges = function findEdges(edges, nextUpstreamLevelIds) {
|
|
39
|
+
return edges.filter(function (edge) {
|
|
40
|
+
return nextUpstreamLevelIds.includes(edge.target_point_id);
|
|
41
|
+
});
|
|
36
42
|
};
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
var recursiveUpstreamSearch = function recursiveUpstreamSearch(nextLevel, edges, mapAllEdgesNesting, allUpstreamEdges) {
|
|
44
|
+
var nextUpstreamLevelIds = nextLevel.map(function (edge) {
|
|
45
|
+
return edge.source_point_id;
|
|
46
|
+
});
|
|
39
47
|
if (findEdges(edges, nextUpstreamLevelIds).length === 0) {
|
|
40
48
|
return mapAllEdgesNesting([nextLevel]);
|
|
41
49
|
} else {
|
|
@@ -44,47 +52,55 @@ const recursiveUpstreamSearch = (nextLevel, edges, mapAllEdgesNesting, allUpstre
|
|
|
44
52
|
}
|
|
45
53
|
return mapAllEdgesNesting(allUpstreamEdges);
|
|
46
54
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
allUpstreamEdges.forEach(edges
|
|
50
|
-
edges.forEach(edge
|
|
55
|
+
var mapAllEdgesNesting = function mapAllEdgesNesting(allUpstreamEdges) {
|
|
56
|
+
var mapped = [];
|
|
57
|
+
allUpstreamEdges.forEach(function (edges) {
|
|
58
|
+
edges.forEach(function (edge) {
|
|
51
59
|
mapped.push(edge);
|
|
52
60
|
});
|
|
53
61
|
});
|
|
54
62
|
return mapped;
|
|
55
63
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
var getUpstreamEdges = function getUpstreamEdges(firstEdge, edges) {
|
|
65
|
+
var allUpstreamEdges = [];
|
|
66
|
+
var firstUpstreamLevel = edges.filter(function (edge) {
|
|
67
|
+
return edge.target_point_id === firstEdge.source_point_id;
|
|
68
|
+
});
|
|
59
69
|
return recursiveUpstreamSearch(firstUpstreamLevel, edges, mapAllEdgesNesting, allUpstreamEdges);
|
|
60
70
|
};
|
|
61
71
|
exports.getUpstreamEdges = getUpstreamEdges;
|
|
62
|
-
|
|
63
|
-
upstreamEdges.forEach(upstreamEdge
|
|
72
|
+
var findUpstreamEdgesToDraw = function findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw, points, edges) {
|
|
73
|
+
upstreamEdges.forEach(function (upstreamEdge) {
|
|
64
74
|
if (upstreamEdge) {
|
|
65
|
-
|
|
75
|
+
var sourcePoint = points.find(function (point) {
|
|
76
|
+
return point.id === upstreamEdge.source_point_id;
|
|
77
|
+
});
|
|
66
78
|
if (sourcePoint) edgesToDraw.push(upstreamEdge);
|
|
67
|
-
|
|
79
|
+
var connectionEdges = edges.filter(function (edge) {
|
|
80
|
+
return edge.source_point_id === upstreamEdge.target_point_id;
|
|
81
|
+
});
|
|
68
82
|
if (connectionEdges.length !== 0) {
|
|
69
|
-
connectionEdges.forEach(
|
|
83
|
+
connectionEdges.forEach(function (edge) {
|
|
84
|
+
return edgesToDraw.push(edge);
|
|
85
|
+
});
|
|
70
86
|
}
|
|
71
87
|
}
|
|
72
88
|
});
|
|
73
89
|
return edgesToDraw;
|
|
74
90
|
};
|
|
75
91
|
exports.findUpstreamEdgesToDraw = findUpstreamEdgesToDraw;
|
|
76
|
-
|
|
77
|
-
recursiveDownStreamSearch(downstreamNetwork, edges).forEach(downStreamEdge
|
|
92
|
+
var findDownstreamEdgesToDraw = function findDownstreamEdgesToDraw(firstEdge, edges, downstreamNetwork, edgesToDraw) {
|
|
93
|
+
recursiveDownStreamSearch(downstreamNetwork, edges).forEach(function (downStreamEdge) {
|
|
78
94
|
edgesToDraw.push(downStreamEdge);
|
|
79
95
|
});
|
|
80
96
|
};
|
|
81
97
|
exports.findDownstreamEdgesToDraw = findDownstreamEdgesToDraw;
|
|
82
|
-
|
|
83
|
-
|
|
98
|
+
var recursiveDownStreamSearch = function recursiveDownStreamSearch(downstreamNetwork, edges) {
|
|
99
|
+
var lastDownStreamEdge = downstreamNetwork[downstreamNetwork.length - 1];
|
|
84
100
|
if (nextLevelDownStream(lastDownStreamEdge, edges).length === 0) {
|
|
85
101
|
return downstreamNetwork;
|
|
86
102
|
} else {
|
|
87
|
-
nextLevelDownStream(lastDownStreamEdge, edges).forEach(edge
|
|
103
|
+
nextLevelDownStream(lastDownStreamEdge, edges).forEach(function (edge) {
|
|
88
104
|
downstreamNetwork.push(edge);
|
|
89
105
|
recursiveDownStreamSearch(downstreamNetwork, edges);
|
|
90
106
|
});
|
|
@@ -92,29 +108,33 @@ const recursiveDownStreamSearch = (downstreamNetwork, edges) => {
|
|
|
92
108
|
return downstreamNetwork;
|
|
93
109
|
};
|
|
94
110
|
exports.recursiveDownStreamSearch = recursiveDownStreamSearch;
|
|
95
|
-
|
|
96
|
-
return edges.filter(
|
|
111
|
+
var nextLevelDownStream = function nextLevelDownStream(firstEdge, edges) {
|
|
112
|
+
return edges.filter(function (edge) {
|
|
113
|
+
return edge.source_point_id === firstEdge.target_point_id;
|
|
114
|
+
});
|
|
97
115
|
};
|
|
98
116
|
exports.nextLevelDownStream = nextLevelDownStream;
|
|
99
|
-
|
|
100
|
-
event.path.forEach(part
|
|
101
|
-
|
|
117
|
+
var findEdgesFromEventPathToDraw = function findEdgesFromEventPathToDraw(edgesToDraw, event, edges) {
|
|
118
|
+
event.path.forEach(function (part) {
|
|
119
|
+
var matchedPart = edges.find(function (edge) {
|
|
120
|
+
return edge.id === part.edge_id;
|
|
121
|
+
});
|
|
102
122
|
if (matchedPart !== undefined) edgesToDraw.push(matchedPart);
|
|
103
123
|
});
|
|
104
124
|
};
|
|
105
125
|
exports.findEdgesFromEventPathToDraw = findEdgesFromEventPathToDraw;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
edges.forEach(edge
|
|
109
|
-
edge.shape_data.forEach(data
|
|
126
|
+
var drawNetwork = function drawNetwork(edges, points, dispatch, map, event, layerGroup, flowRateUnit) {
|
|
127
|
+
var latlngs = [];
|
|
128
|
+
edges.forEach(function (edge) {
|
|
129
|
+
edge.shape_data.forEach(function (data) {
|
|
110
130
|
latlngs.push([data.lat, data.lng]);
|
|
111
131
|
});
|
|
112
|
-
|
|
132
|
+
var polylineBack = L.polyline(latlngs, {
|
|
113
133
|
color: 'rgb(227,227,227)',
|
|
114
134
|
weight: 6,
|
|
115
135
|
opacity: 1
|
|
116
136
|
});
|
|
117
|
-
|
|
137
|
+
var tailDash;
|
|
118
138
|
if (L.Symbol !== undefined) {
|
|
119
139
|
tailDash = L.polylineDecorator(polylineBack._latlngs, {
|
|
120
140
|
patterns: [
|
|
@@ -142,7 +162,7 @@ const drawNetwork = (edges, points, dispatch, map, event, layerGroup, flowRateUn
|
|
|
142
162
|
if (map !== null) layerGroup.addLayer(polylineBack);
|
|
143
163
|
polylineBack.bringToFront();
|
|
144
164
|
if (L.Symbol !== undefined) tailDash.bringToFront();
|
|
145
|
-
|
|
165
|
+
var polylineFront = L.polyline(latlngs, {
|
|
146
166
|
color: 'rgb(29,29,29)',
|
|
147
167
|
weight: 1,
|
|
148
168
|
opacity: 1
|
|
@@ -157,13 +177,10 @@ const drawNetwork = (edges, points, dispatch, map, event, layerGroup, flowRateUn
|
|
|
157
177
|
if (event.hovered) dispatch((0, _actions.setHoveredEdgePaths)([polylineBack, polylineFront]));
|
|
158
178
|
latlngs = [];
|
|
159
179
|
if (points.length !== 0) {
|
|
160
|
-
|
|
161
|
-
|
|
180
|
+
var sourcePoint = pointFinder(points, edge.source_point_id);
|
|
181
|
+
var targetPoint = pointFinder(points, edge.target_point_id);
|
|
162
182
|
if (sourcePoint !== undefined && targetPoint !== undefined) {
|
|
163
|
-
polylineBack.bindPopup(
|
|
164
|
-
Source point: ${sourcePoint.group.name},<br>
|
|
165
|
-
Target point: ${targetPoint.group.name},
|
|
166
|
-
Distance: ${edge.distance}`);
|
|
183
|
+
polylineBack.bindPopup("Edge ID: ".concat(edge.id, ",<br>\n Source point: ").concat(sourcePoint.group.name, ",<br>\n Target point: ").concat(targetPoint.group.name, ",\n Distance: ").concat(edge.distance));
|
|
167
184
|
}
|
|
168
185
|
createPointLogic(sourcePoint, map, layerGroup, flowRateUnit);
|
|
169
186
|
if (edges[edges.length - 1].target_point_id === edge.target_point_id) {
|
|
@@ -173,16 +190,18 @@ const drawNetwork = (edges, points, dispatch, map, event, layerGroup, flowRateUn
|
|
|
173
190
|
});
|
|
174
191
|
};
|
|
175
192
|
exports.drawNetwork = drawNetwork;
|
|
176
|
-
|
|
177
|
-
|
|
193
|
+
var pointFinder = function pointFinder(points, desiredPointId) {
|
|
194
|
+
var desiredPoint = points.find(function (point) {
|
|
195
|
+
return point.id === desiredPointId;
|
|
196
|
+
});
|
|
178
197
|
return desiredPoint;
|
|
179
198
|
};
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
199
|
+
var findAndDrawEventNetworkEdges = function findAndDrawEventNetworkEdges(edges, event, points, dispatch, map, layerGroup, flowRateUnit) {
|
|
200
|
+
var edgesToDraw = [];
|
|
201
|
+
var firstEdge = getFirstEdgeOfEventPath(edges, event);
|
|
183
202
|
if (firstEdge !== undefined) {
|
|
184
|
-
|
|
185
|
-
|
|
203
|
+
var downstreamNetwork = [firstEdge];
|
|
204
|
+
var upstreamEdges = getUpstreamEdges(firstEdge, edges);
|
|
186
205
|
if (upstreamEdges === undefined) return;
|
|
187
206
|
if (upstreamEdges.length !== 0) findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw, points, edges);
|
|
188
207
|
findDownstreamEdgesToDraw(firstEdge, edges, downstreamNetwork, edgesToDraw);
|
|
@@ -190,22 +209,24 @@ const findAndDrawEventNetworkEdges = (edges, event, points, dispatch, map, layer
|
|
|
190
209
|
drawNetwork(edgesToDraw, points, dispatch, map, event, layerGroup, flowRateUnit);
|
|
191
210
|
};
|
|
192
211
|
exports.findAndDrawEventNetworkEdges = findAndDrawEventNetworkEdges;
|
|
193
|
-
|
|
194
|
-
return event.observations.find(
|
|
212
|
+
var pointIsObservation = function pointIsObservation(event, point) {
|
|
213
|
+
return event.observations.find(function (obs) {
|
|
214
|
+
return obs.point_id === point.id;
|
|
215
|
+
});
|
|
195
216
|
};
|
|
196
217
|
exports.pointIsObservation = pointIsObservation;
|
|
197
|
-
|
|
218
|
+
var pointIsCollector = function pointIsCollector(point) {
|
|
198
219
|
return point.group.type === 'Groups::Collectors';
|
|
199
220
|
};
|
|
200
221
|
exports.pointIsCollector = pointIsCollector;
|
|
201
|
-
|
|
222
|
+
var isCollectorUnmonitored = function isCollectorUnmonitored(point) {
|
|
202
223
|
return pointIsCollector(point) && !point.has_device;
|
|
203
224
|
};
|
|
204
225
|
exports.isCollectorUnmonitored = isCollectorUnmonitored;
|
|
205
|
-
|
|
226
|
+
var createPointLogic = function createPointLogic(point, map, layerGroup, flowRateUnit) {
|
|
206
227
|
if (isCollectorUnmonitored(point)) {
|
|
207
228
|
return;
|
|
208
229
|
}
|
|
209
230
|
(0, _PointUtils.createBubblePoint)([point.latitude, point.longitude], point, map, null, layerGroup, flowRateUnit);
|
|
210
231
|
};
|
|
211
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3doaXRlUG9pbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfUG9pbnRVdGlscyIsImRyYXdNYW5ob2xlSWNvbiIsInNvdXJjZVBvaW50IiwibWFwIiwicG9pbnRJY29uIiwiaWNvbiIsImljb25VcmwiLCJ3aGl0ZVBvaW50IiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwibWFuaG9sZUljb24iLCJtYXJrZXIiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInJpc2VPbkhvdmVyIiwiYWRkVG8iLCJiaW5kVG9vbHRpcCIsImdyb3VwIiwibmFtZSIsInNlY3Rvcl9uYW1lIiwiaWQiLCJleHBvcnRzIiwiZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgiLCJlZGdlcyIsImV2ZW50IiwicGF0aCIsInVuZGVmaW5lZCIsImZpbmQiLCJlZGdlIiwiZWRnZV9pZCIsImZpbmRFZGdlcyIsIm5leHRVcHN0cmVhbUxldmVsSWRzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJ0YXJnZXRfcG9pbnRfaWQiLCJyZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCIsIm5leHRMZXZlbCIsIm1hcEFsbEVkZ2VzTmVzdGluZyIsImFsbFVwc3RyZWFtRWRnZXMiLCJzb3VyY2VfcG9pbnRfaWQiLCJsZW5ndGgiLCJwdXNoIiwibWFwcGVkIiwiZm9yRWFjaCIsImdldFVwc3RyZWFtRWRnZXMiLCJmaXJzdEVkZ2UiLCJmaXJzdFVwc3RyZWFtTGV2ZWwiLCJmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyIsInVwc3RyZWFtRWRnZXMiLCJlZGdlc1RvRHJhdyIsInBvaW50cyIsInVwc3RyZWFtRWRnZSIsInBvaW50IiwiY29ubmVjdGlvbkVkZ2VzIiwiZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyIsImRvd25zdHJlYW1OZXR3b3JrIiwicmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCIsImRvd25TdHJlYW1FZGdlIiwibGFzdERvd25TdHJlYW1FZGdlIiwibmV4dExldmVsRG93blN0cmVhbSIsImZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXciLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TmV0d29yayIsImRpc3BhdGNoIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImxhdGxuZ3MiLCJzaGFwZV9kYXRhIiwiZGF0YSIsImxhdCIsImxuZyIsInBvbHlsaW5lQmFjayIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwidGFpbERhc2giLCJTeW1ib2wiLCJwb2x5bGluZURlY29yYXRvciIsIl9sYXRsbmdzIiwicGF0dGVybnMiLCJvZmZzZXQiLCJyZXBlYXQiLCJzeW1ib2wiLCJhcnJvd0hlYWQiLCJwaXhlbFNpemUiLCJwb2x5Z29uIiwicGF0aE9wdGlvbnMiLCJzdHJva2UiLCJhZGRMYXllciIsImhvdmVyZWQiLCJmb2N1c2VkIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsInNldEhvdmVyZWRFZGdlUGF0aHMiLCJwb2ludEZpbmRlciIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJjcmVhdGVQb2ludExvZ2ljIiwiZGVzaXJlZFBvaW50SWQiLCJkZXNpcmVkUG9pbnQiLCJmaW5kQW5kRHJhd0V2ZW50TmV0d29ya0VkZ2VzIiwicG9pbnRJc09ic2VydmF0aW9uIiwib2JzZXJ2YXRpb25zIiwib2JzIiwicG9pbnRfaWQiLCJwb2ludElzQ29sbGVjdG9yIiwidHlwZSIsImlzQ29sbGVjdG9yVW5tb25pdG9yZWQiLCJoYXNfZGV2aWNlIiwiY3JlYXRlQnViYmxlUG9pbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvZXZlbnRzL0V2ZW50VXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICcuLi8uLi8uLi9hc3NldHMvd2hpdGUtcG9pbnQucG5nJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVCdWJibGVQb2ludCB9IGZyb20gJy4uL3BvaW50cy9Qb2ludFV0aWxzJztcblxuZXhwb3J0IGNvbnN0IGRyYXdNYW5ob2xlSWNvbiA9IChzb3VyY2VQb2ludDogSVBvaW50LCBtYXA6IEwuTWFwKSA9PiB7XG4gIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgIGljb25Vcmw6IHdoaXRlUG9pbnQsXG4gICAgaWNvblNpemU6IFs5LCA5XSxcbiAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICB9KTtcblxuICBsZXQgbWFuaG9sZUljb246IGFueSA9IEwubWFya2VyKFxuICAgIFtzb3VyY2VQb2ludC5sYXRpdHVkZSwgc291cmNlUG9pbnQubG9uZ2l0dWRlXSxcbiAgICB7XG4gICAgICBpY29uOiBwb2ludEljb24sXG4gICAgICByaXNlT25Ib3ZlcjogdHJ1ZSxcbiAgICB9LFxuICApLmFkZFRvKG1hcCk7XG4gIG1hbmhvbGVJY29uLmJpbmRUb29sdGlwKFxuICAgIGAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9ICgke3NvdXJjZVBvaW50Lmdyb3VwLnNlY3Rvcl9uYW1lfSlgLFxuICApO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBzb3VyY2VQb2ludC5pZDtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1Vwc3RyZWFtUG9pbnQnO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoID0gKGVkZ2VzOiBJRWRnZVtdLCBldmVudDogSUV2ZW50KSA9PiB7XG4gIGlmIChldmVudC5wYXRoWzBdID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgcmV0dXJuIGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IGV2ZW50LnBhdGhbMF0uZWRnZV9pZCk7XG59O1xuXG5jb25zdCBmaW5kRWRnZXMgPSAoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSA9PiB7XG4gIHJldHVybiBlZGdlcy5maWx0ZXIoKGVkZ2U6IElFZGdlKSA9PlxuICAgIG5leHRVcHN0cmVhbUxldmVsSWRzLmluY2x1ZGVzKGVkZ2UudGFyZ2V0X3BvaW50X2lkKSxcbiAgKTtcbn07XG5cbmNvbnN0IHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoID0gKFxuICBuZXh0TGV2ZWwsXG4gIGVkZ2VzLFxuICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gIGFsbFVwc3RyZWFtRWRnZXMsXG4pID0+IHtcbiAgbGV0IG5leHRVcHN0cmVhbUxldmVsSWRzID0gbmV4dExldmVsLm1hcCgoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuICBpZiAoZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhbbmV4dExldmVsXSk7XG4gIH0gZWxzZSB7XG4gICAgYWxsVXBzdHJlYW1FZGdlcy5wdXNoKGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpKTtcbiAgICByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaChcbiAgICAgIGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpLFxuICAgICAgZWRnZXMsXG4gICAgICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gICAgICBhbGxVcHN0cmVhbUVkZ2VzLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbWFwQWxsRWRnZXNOZXN0aW5nKGFsbFVwc3RyZWFtRWRnZXMpO1xufTtcblxuY29uc3QgbWFwQWxsRWRnZXNOZXN0aW5nID0gKGFsbFVwc3RyZWFtRWRnZXMpID0+IHtcbiAgbGV0IG1hcHBlZDogYW55W10gPSBbXTtcbiAgYWxsVXBzdHJlYW1FZGdlcy5mb3JFYWNoKChlZGdlcykgPT4ge1xuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIG1hcHBlZC5wdXNoKGVkZ2UpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gbWFwcGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVwc3RyZWFtRWRnZXMgPSAoZmlyc3RFZGdlOiBJRWRnZSwgZWRnZXM6IElFZGdlW10pID0+IHtcbiAgbGV0IGFsbFVwc3RyZWFtRWRnZXM6IGFueVtdID0gW107XG4gIGxldCBmaXJzdFVwc3RyZWFtTGV2ZWw6IElFZGdlW10gPSBlZGdlcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+IGVkZ2UudGFyZ2V0X3BvaW50X2lkID09PSBmaXJzdEVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgKTtcblxuICByZXR1cm4gcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2goXG4gICAgZmlyc3RVcHN0cmVhbUxldmVsLFxuICAgIGVkZ2VzLFxuICAgIG1hcEFsbEVkZ2VzTmVzdGluZyxcbiAgICBhbGxVcHN0cmVhbUVkZ2VzLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3ID0gKFxuICB1cHN0cmVhbUVkZ2VzOiBJRWRnZVtdLFxuICBlZGdlc1RvRHJhdzogSUVkZ2VbXSxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgdXBzdHJlYW1FZGdlcy5mb3JFYWNoKCh1cHN0cmVhbUVkZ2UpID0+IHtcbiAgICBpZiAodXBzdHJlYW1FZGdlKSB7XG4gICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gdXBzdHJlYW1FZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoc291cmNlUG9pbnQpIGVkZ2VzVG9EcmF3LnB1c2godXBzdHJlYW1FZGdlKTtcblxuICAgICAgbGV0IGNvbm5lY3Rpb25FZGdlcyA9IGVkZ2VzLmZpbHRlcihcbiAgICAgICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSB1cHN0cmVhbUVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGNvbm5lY3Rpb25FZGdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgY29ubmVjdGlvbkVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IGVkZ2VzVG9EcmF3LnB1c2goZWRnZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVkZ2VzVG9EcmF3O1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXcgPSAoXG4gIGZpcnN0RWRnZTogSUVkZ2UsXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBkb3duc3RyZWFtTmV0d29yayxcbiAgZWRnZXNUb0RyYXcsXG4pID0+IHtcbiAgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaChkb3duc3RyZWFtTmV0d29yaywgZWRnZXMpLmZvckVhY2goXG4gICAgKGRvd25TdHJlYW1FZGdlKSA9PiB7XG4gICAgICBlZGdlc1RvRHJhdy5wdXNoKGRvd25TdHJlYW1FZGdlKTtcbiAgICB9LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2ggPSAoXG4gIGRvd25zdHJlYW1OZXR3b3JrOiBJRWRnZVtdLFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICBsZXQgbGFzdERvd25TdHJlYW1FZGdlID0gZG93bnN0cmVhbU5ldHdvcmtbZG93bnN0cmVhbU5ldHdvcmsubGVuZ3RoIC0gMV07XG5cbiAgaWYgKG5leHRMZXZlbERvd25TdHJlYW0obGFzdERvd25TdHJlYW1FZGdlLCBlZGdlcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGRvd25zdHJlYW1OZXR3b3JrO1xuICB9IGVsc2Uge1xuICAgIG5leHRMZXZlbERvd25TdHJlYW0obGFzdERvd25TdHJlYW1FZGdlLCBlZGdlcykuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgZG93bnN0cmVhbU5ldHdvcmsucHVzaChlZGdlKTtcbiAgICAgIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbn07XG5cbmV4cG9ydCBjb25zdCBuZXh0TGV2ZWxEb3duU3RyZWFtID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIHJldHVybiBlZGdlcy5maWx0ZXIoXG4gICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBmaXJzdEVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcgPSAoXG4gIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICBldmVudC5wYXRoLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICBsZXQgbWF0Y2hlZFBhcnQgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXJ0LmVkZ2VfaWQpO1xuICAgIGlmIChtYXRjaGVkUGFydCAhPT0gdW5kZWZpbmVkKSBlZGdlc1RvRHJhdy5wdXNoKG1hdGNoZWRQYXJ0KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZHJhd05ldHdvcmsgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuICBldmVudCxcbiAgbGF5ZXJHcm91cCxcbiAgZmxvd1JhdGVVbml0LFxuKSA9PiB7XG4gIGxldCBsYXRsbmdzOiBhbnkgPSBbXTtcbiAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgIGVkZ2Uuc2hhcGVfZGF0YS5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcbiAgICAgIGxhdGxuZ3MucHVzaChbZGF0YS5sYXQsIGRhdGEubG5nXSk7XG4gICAgfSk7XG5cbiAgICBsZXQgcG9seWxpbmVCYWNrOiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDIyNywyMjcsMjI3KScsXG4gICAgICB3ZWlnaHQ6IDYsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pO1xuXG4gICAgbGV0IHRhaWxEYXNoOiBhbnk7XG5cbiAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKHBvbHlsaW5lQmFjay5fbGF0bG5ncywge1xuICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwKScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICBsYXllckdyb3VwLmFkZExheWVyKHRhaWxEYXNoKTtcbiAgICB9XG5cbiAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZCkgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZSc7XG4gICAgaWYgKGV2ZW50LmZvY3VzZWQpIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnRm9jdXNlZEVkZ2UnO1xuICAgIGlmIChtYXAgIT09IG51bGwpIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9seWxpbmVCYWNrKTtcbiAgICBwb2x5bGluZUJhY2suYnJpbmdUb0Zyb250KCk7XG4gICAgaWYgKEwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHRhaWxEYXNoLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgbGV0IHBvbHlsaW5lRnJvbnQ6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2IoMjksMjksMjkpJyxcbiAgICAgIHdlaWdodDogMSxcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgfSk7XG5cbiAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlRnJvbnQnO1xuICAgIGlmIChldmVudC5mb2N1c2VkKSBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdGb2N1c2VkRWRnZUZyb250JztcbiAgICBpZiAobWFwICE9PSBudWxsKSBsYXllckdyb3VwLmFkZExheWVyKHBvbHlsaW5lRnJvbnQpO1xuICAgIHBvbHlsaW5lQmFjay5hZGRUbyhtYXApO1xuICAgIHBvbHlsaW5lRnJvbnQuYWRkVG8obWFwKTtcblxuICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpXG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtwb2x5bGluZUJhY2ssIHBvbHlsaW5lRnJvbnRdKSk7XG4gICAgbGF0bG5ncyA9IFtdO1xuXG4gICAgaWYgKHBvaW50cy5sZW5ndGggIT09IDApIHtcbiAgICAgIGxldCBzb3VyY2VQb2ludDogSVBvaW50ID0gcG9pbnRGaW5kZXIocG9pbnRzLCBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBsZXQgdGFyZ2V0UG9pbnQ6IElQb2ludCA9IHBvaW50RmluZGVyKHBvaW50cywgZWRnZS50YXJnZXRfcG9pbnRfaWQpO1xuICAgICAgaWYgKHNvdXJjZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgdGFyZ2V0UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlIHBvaW50OiAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50Lmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgfVxuICAgICAgY3JlYXRlUG9pbnRMb2dpYyhzb3VyY2VQb2ludCwgbWFwLCBsYXllckdyb3VwLCBmbG93UmF0ZVVuaXQpO1xuICAgICAgaWYgKGVkZ2VzW2VkZ2VzLmxlbmd0aCAtIDFdLnRhcmdldF9wb2ludF9pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQpIHtcbiAgICAgICAgY3JlYXRlUG9pbnRMb2dpYyh0YXJnZXRQb2ludCwgbWFwLCBsYXllckdyb3VwKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgcG9pbnRGaW5kZXIgPSAocG9pbnRzLCBkZXNpcmVkUG9pbnRJZCkgPT4ge1xuICBsZXQgZGVzaXJlZFBvaW50OiBJUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaWQgPT09IGRlc2lyZWRQb2ludElkLFxuICApO1xuXG4gIHJldHVybiBkZXNpcmVkUG9pbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyA9IChcbiAgZWRnZXM6IElFZGdlW10sXG4gIGV2ZW50OiBJRXZlbnQsXG4gIHBvaW50czogSVBvaW50W10sXG4gIGRpc3BhdGNoLFxuICBtYXAsXG4gIGxheWVyR3JvdXAsXG4gIGZsb3dSYXRlVW5pdCxcbikgPT4ge1xuICBsZXQgZWRnZXNUb0RyYXc6IElFZGdlW10gPSBbXTtcbiAgbGV0IGZpcnN0RWRnZSA9IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoKGVkZ2VzLCBldmVudCk7XG5cbiAgaWYgKGZpcnN0RWRnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IGRvd25zdHJlYW1OZXR3b3JrOiBJRWRnZVtdID0gW2ZpcnN0RWRnZV07XG4gICAgbGV0IHVwc3RyZWFtRWRnZXMgPSBnZXRVcHN0cmVhbUVkZ2VzKGZpcnN0RWRnZSwgZWRnZXMpO1xuICAgIGlmICh1cHN0cmVhbUVkZ2VzID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICBpZiAodXBzdHJlYW1FZGdlcy5sZW5ndGggIT09IDApXG4gICAgICBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyh1cHN0cmVhbUVkZ2VzLCBlZGdlc1RvRHJhdywgcG9pbnRzLCBlZGdlcyk7XG4gICAgZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyhmaXJzdEVkZ2UsIGVkZ2VzLCBkb3duc3RyZWFtTmV0d29yaywgZWRnZXNUb0RyYXcpO1xuICB9XG5cbiAgZHJhd05ldHdvcmsoXG4gICAgZWRnZXNUb0RyYXcsXG4gICAgcG9pbnRzLFxuICAgIGRpc3BhdGNoLFxuICAgIG1hcCxcbiAgICBldmVudCxcbiAgICBsYXllckdyb3VwLFxuICAgIGZsb3dSYXRlVW5pdCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzT2JzZXJ2YXRpb24gPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoKG9icykgPT4gb2JzLnBvaW50X2lkID09PSBwb2ludC5pZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc0NvbGxlY3RvciA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJztcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxlY3RvclVubW9uaXRvcmVkID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIHBvaW50SXNDb2xsZWN0b3IocG9pbnQpICYmICFwb2ludC5oYXNfZGV2aWNlO1xufTtcblxuY29uc3QgY3JlYXRlUG9pbnRMb2dpYyA9IChwb2ludDogSVBvaW50LCBtYXAsIGxheWVyR3JvdXAsIGZsb3dSYXRlVW5pdCkgPT4ge1xuICBpZiAoaXNDb2xsZWN0b3JVbm1vbml0b3JlZChwb2ludCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjcmVhdGVCdWJibGVQb2ludChcbiAgICBbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sXG4gICAgcG9pbnQsXG4gICAgbWFwLFxuICAgIG51bGwsXG4gICAgbGF5ZXJHcm91cCxcbiAgICBmbG93UmF0ZVVuaXQsXG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLENBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFB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
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3doaXRlUG9pbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfUG9pbnRVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiZHJhd01hbmhvbGVJY29uIiwic291cmNlUG9pbnQiLCJtYXAiLCJwb2ludEljb24iLCJpY29uIiwiaWNvblVybCIsIndoaXRlUG9pbnQiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJtYW5ob2xlSWNvbiIsIm1hcmtlciIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwiY29uY2F0IiwiZ3JvdXAiLCJuYW1lIiwic2VjdG9yX25hbWUiLCJpZCIsImV4cG9ydHMiLCJnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aCIsImVkZ2VzIiwiZXZlbnQiLCJwYXRoIiwidW5kZWZpbmVkIiwiZmluZCIsImVkZ2UiLCJlZGdlX2lkIiwiZmluZEVkZ2VzIiwibmV4dFVwc3RyZWFtTGV2ZWxJZHMiLCJmaWx0ZXIiLCJpbmNsdWRlcyIsInRhcmdldF9wb2ludF9pZCIsInJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoIiwibmV4dExldmVsIiwibWFwQWxsRWRnZXNOZXN0aW5nIiwiYWxsVXBzdHJlYW1FZGdlcyIsInNvdXJjZV9wb2ludF9pZCIsImxlbmd0aCIsInB1c2giLCJtYXBwZWQiLCJmb3JFYWNoIiwiZ2V0VXBzdHJlYW1FZGdlcyIsImZpcnN0RWRnZSIsImZpcnN0VXBzdHJlYW1MZXZlbCIsImZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3IiwidXBzdHJlYW1FZGdlcyIsImVkZ2VzVG9EcmF3IiwicG9pbnRzIiwidXBzdHJlYW1FZGdlIiwicG9pbnQiLCJjb25uZWN0aW9uRWRnZXMiLCJmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3IiwiZG93bnN0cmVhbU5ldHdvcmsiLCJyZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoIiwiZG93blN0cmVhbUVkZ2UiLCJsYXN0RG93blN0cmVhbUVkZ2UiLCJuZXh0TGV2ZWxEb3duU3RyZWFtIiwiZmluZEVkZ2VzRnJvbUV2ZW50UGF0aFRvRHJhdyIsInBhcnQiLCJtYXRjaGVkUGFydCIsImRyYXdOZXR3b3JrIiwiZGlzcGF0Y2giLCJsYXllckdyb3VwIiwiZmxvd1JhdGVVbml0IiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJkYXRhIiwibGF0IiwibG5nIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJ0YWlsRGFzaCIsIlN5bWJvbCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsInN0cm9rZSIsImFkZExheWVyIiwiaG92ZXJlZCIsImZvY3VzZWQiLCJicmluZ1RvRnJvbnQiLCJwb2x5bGluZUZyb250Iiwic2V0SG92ZXJlZEVkZ2VQYXRocyIsInBvaW50RmluZGVyIiwidGFyZ2V0UG9pbnQiLCJiaW5kUG9wdXAiLCJkaXN0YW5jZSIsImNyZWF0ZVBvaW50TG9naWMiLCJkZXNpcmVkUG9pbnRJZCIsImRlc2lyZWRQb2ludCIsImZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMiLCJwb2ludElzT2JzZXJ2YXRpb24iLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJwb2ludF9pZCIsInBvaW50SXNDb2xsZWN0b3IiLCJ0eXBlIiwiaXNDb2xsZWN0b3JVbm1vbml0b3JlZCIsImhhc19kZXZpY2UiLCJjcmVhdGVCdWJibGVQb2ludCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCB3aGl0ZVBvaW50IGZyb20gJy4uLy4uLy4uL2Fzc2V0cy93aGl0ZS1wb2ludC5wbmcnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEVkZ2VQYXRocyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IGNyZWF0ZUJ1YmJsZVBvaW50IH0gZnJvbSAnLi4vcG9pbnRzL1BvaW50VXRpbHMnO1xuXG5leHBvcnQgY29uc3QgZHJhd01hbmhvbGVJY29uID0gKHNvdXJjZVBvaW50OiBJUG9pbnQsIG1hcDogTC5NYXApID0+IHtcbiAgbGV0IHBvaW50SWNvbiA9IEwuaWNvbih7XG4gICAgaWNvblVybDogd2hpdGVQb2ludCxcbiAgICBpY29uU2l6ZTogWzksIDldLFxuICAgIGljb25BbmNob3I6IFs0LjUsIDQuNV0sXG4gIH0pO1xuXG4gIGxldCBtYW5ob2xlSWNvbjogYW55ID0gTC5tYXJrZXIoXG4gICAgW3NvdXJjZVBvaW50LmxhdGl0dWRlLCBzb3VyY2VQb2ludC5sb25naXR1ZGVdLFxuICAgIHtcbiAgICAgIGljb246IHBvaW50SWNvbixcbiAgICAgIHJpc2VPbkhvdmVyOiB0cnVlLFxuICAgIH0sXG4gICkuYWRkVG8obWFwKTtcbiAgbWFuaG9sZUljb24uYmluZFRvb2x0aXAoXG4gICAgYCR7c291cmNlUG9pbnQuZ3JvdXAubmFtZX0gKCR7c291cmNlUG9pbnQuZ3JvdXAuc2VjdG9yX25hbWV9KWAsXG4gICk7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3RfaWQnXSA9IHNvdXJjZVBvaW50LmlkO1xuICBtYW5ob2xlSWNvblsna2FuZG9fb2JqZWN0J10gPSAnVXBzdHJlYW1Qb2ludCc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGggPSAoZWRnZXM6IElFZGdlW10sIGV2ZW50OiBJRXZlbnQpID0+IHtcbiAgaWYgKGV2ZW50LnBhdGhbMF0gPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICByZXR1cm4gZWRnZXMuZmluZCgoZWRnZSkgPT4gZWRnZS5pZCA9PT0gZXZlbnQucGF0aFswXS5lZGdlX2lkKTtcbn07XG5cbmNvbnN0IGZpbmRFZGdlcyA9IChlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpID0+IHtcbiAgcmV0dXJuIGVkZ2VzLmZpbHRlcigoZWRnZTogSUVkZ2UpID0+XG4gICAgbmV4dFVwc3RyZWFtTGV2ZWxJZHMuaW5jbHVkZXMoZWRnZS50YXJnZXRfcG9pbnRfaWQpLFxuICApO1xufTtcblxuY29uc3QgcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2ggPSAoXG4gIG5leHRMZXZlbCxcbiAgZWRnZXMsXG4gIG1hcEFsbEVkZ2VzTmVzdGluZyxcbiAgYWxsVXBzdHJlYW1FZGdlcyxcbikgPT4ge1xuICBsZXQgbmV4dFVwc3RyZWFtTGV2ZWxJZHMgPSBuZXh0TGV2ZWwubWFwKChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gIGlmIChmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbWFwQWxsRWRnZXNOZXN0aW5nKFtuZXh0TGV2ZWxdKTtcbiAgfSBlbHNlIHtcbiAgICBhbGxVcHN0cmVhbUVkZ2VzLnB1c2goZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykpO1xuICAgIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgICAgZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcyksXG4gICAgICBlZGdlcyxcbiAgICAgIG1hcEFsbEVkZ2VzTmVzdGluZyxcbiAgICAgIGFsbFVwc3RyZWFtRWRnZXMsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYXBBbGxFZGdlc05lc3RpbmcoYWxsVXBzdHJlYW1FZGdlcyk7XG59O1xuXG5jb25zdCBtYXBBbGxFZGdlc05lc3RpbmcgPSAoYWxsVXBzdHJlYW1FZGdlcykgPT4ge1xuICBsZXQgbWFwcGVkOiBhbnlbXSA9IFtdO1xuICBhbGxVcHN0cmVhbUVkZ2VzLmZvckVhY2goKGVkZ2VzKSA9PiB7XG4gICAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgbWFwcGVkLnB1c2goZWRnZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBtYXBwZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXBzdHJlYW1FZGdlcyA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICBsZXQgYWxsVXBzdHJlYW1FZGdlczogYW55W10gPSBbXTtcbiAgbGV0IGZpcnN0VXBzdHJlYW1MZXZlbDogSUVkZ2VbXSA9IGVkZ2VzLmZpbHRlcihcbiAgICAoZWRnZSkgPT4gZWRnZS50YXJnZXRfcG9pbnRfaWQgPT09IGZpcnN0RWRnZSEuc291cmNlX3BvaW50X2lkLFxuICApO1xuXG4gIHJldHVybiByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaChcbiAgICBmaXJzdFVwc3RyZWFtTGV2ZWwsXG4gICAgZWRnZXMsXG4gICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgIGFsbFVwc3RyZWFtRWRnZXMsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZFVwc3RyZWFtRWRnZXNUb0RyYXcgPSAoXG4gIHVwc3RyZWFtRWRnZXM6IElFZGdlW10sXG4gIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICBwb2ludHM6IElQb2ludFtdLFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICB1cHN0cmVhbUVkZ2VzLmZvckVhY2goKHVwc3RyZWFtRWRnZSkgPT4ge1xuICAgIGlmICh1cHN0cmVhbUVkZ2UpIHtcbiAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAocG9pbnQpID0+IHBvaW50LmlkID09PSB1cHN0cmVhbUVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChzb3VyY2VQb2ludCkgZWRnZXNUb0RyYXcucHVzaCh1cHN0cmVhbUVkZ2UpO1xuXG4gICAgICBsZXQgY29ubmVjdGlvbkVkZ2VzID0gZWRnZXMuZmlsdGVyKFxuICAgICAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IHVwc3RyZWFtRWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoY29ubmVjdGlvbkVkZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBjb25uZWN0aW9uRWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4gZWRnZXNUb0RyYXcucHVzaChlZGdlKSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZWRnZXNUb0RyYXc7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgZmlyc3RFZGdlOiBJRWRnZSxcbiAgZWRnZXM6IElFZGdlW10sXG4gIGRvd25zdHJlYW1OZXR3b3JrLFxuICBlZGdlc1RvRHJhdyxcbikgPT4ge1xuICByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoKGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlcykuZm9yRWFjaChcbiAgICAoZG93blN0cmVhbUVkZ2UpID0+IHtcbiAgICAgIGVkZ2VzVG9EcmF3LnB1c2goZG93blN0cmVhbUVkZ2UpO1xuICAgIH0sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCA9IChcbiAgZG93bnN0cmVhbU5ldHdvcms6IElFZGdlW10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIGxldCBsYXN0RG93blN0cmVhbUVkZ2UgPSBkb3duc3RyZWFtTmV0d29ya1tkb3duc3RyZWFtTmV0d29yay5sZW5ndGggLSAxXTtcblxuICBpZiAobmV4dExldmVsRG93blN0cmVhbShsYXN0RG93blN0cmVhbUVkZ2UsIGVkZ2VzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZG93bnN0cmVhbU5ldHdvcms7XG4gIH0gZWxzZSB7XG4gICAgbmV4dExldmVsRG93blN0cmVhbShsYXN0RG93blN0cmVhbUVkZ2UsIGVkZ2VzKS5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBkb3duc3RyZWFtTmV0d29yay5wdXNoKGVkZ2UpO1xuICAgICAgcmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaChkb3duc3RyZWFtTmV0d29yaywgZWRnZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGRvd25zdHJlYW1OZXR3b3JrO1xufTtcblxuZXhwb3J0IGNvbnN0IG5leHRMZXZlbERvd25TdHJlYW0gPSAoZmlyc3RFZGdlOiBJRWRnZSwgZWRnZXM6IElFZGdlW10pID0+IHtcbiAgcmV0dXJuIGVkZ2VzLmZpbHRlcihcbiAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IGZpcnN0RWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEVkZ2VzRnJvbUV2ZW50UGF0aFRvRHJhdyA9IChcbiAgZWRnZXNUb0RyYXc6IElFZGdlW10sXG4gIGV2ZW50OiBJRXZlbnQsXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIGV2ZW50LnBhdGguZm9yRWFjaCgocGFydCkgPT4ge1xuICAgIGxldCBtYXRjaGVkUGFydCA9IGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IHBhcnQuZWRnZV9pZCk7XG4gICAgaWYgKG1hdGNoZWRQYXJ0ICE9PSB1bmRlZmluZWQpIGVkZ2VzVG9EcmF3LnB1c2gobWF0Y2hlZFBhcnQpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkcmF3TmV0d29yayA9IChcbiAgZWRnZXM6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGRpc3BhdGNoLFxuICBtYXAsXG4gIGV2ZW50LFxuICBsYXllckdyb3VwLFxuICBmbG93UmF0ZVVuaXQsXG4pID0+IHtcbiAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgZWRnZS5zaGFwZV9kYXRhLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgbGF0bG5ncy5wdXNoKFtkYXRhLmxhdCwgZGF0YS5sbmddKTtcbiAgICB9KTtcblxuICAgIGxldCBwb2x5bGluZUJhY2s6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2IoMjI3LDIyNywyMjcpJyxcbiAgICAgIHdlaWdodDogNixcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgfSk7XG5cbiAgICBsZXQgdGFpbERhc2g6IGFueTtcblxuICAgIGlmIChMLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmVCYWNrLl9sYXRsbmdzLCB7XG4gICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMTUsXG4gICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwwLDApJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgIGxheWVyR3JvdXAuYWRkTGF5ZXIodGFpbERhc2gpO1xuICAgIH1cblxuICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKSBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlJztcbiAgICBpZiAoZXZlbnQuZm9jdXNlZCkgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdGb2N1c2VkRWRnZSc7XG4gICAgaWYgKG1hcCAhPT0gbnVsbCkgbGF5ZXJHcm91cC5hZGRMYXllcihwb2x5bGluZUJhY2spO1xuICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcbiAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICBsZXQgcG9seWxpbmVGcm9udDogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyOSwyOSwyOSknLFxuICAgICAgd2VpZ2h0OiAxLFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KTtcblxuICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZCkgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2VGcm9udCc7XG4gICAgaWYgKGV2ZW50LmZvY3VzZWQpIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdCddID0gJ0ZvY3VzZWRFZGdlRnJvbnQnO1xuICAgIGlmIChtYXAgIT09IG51bGwpIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9seWxpbmVGcm9udCk7XG4gICAgcG9seWxpbmVCYWNrLmFkZFRvKG1hcCk7XG4gICAgcG9seWxpbmVGcm9udC5hZGRUbyhtYXApO1xuXG4gICAgcG9seWxpbmVGcm9udC5icmluZ1RvRnJvbnQoKTtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZClcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICBsYXRsbmdzID0gW107XG5cbiAgICBpZiAocG9pbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50OiBJUG9pbnQgPSBwb2ludEZpbmRlcihwb2ludHMsIGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgICAgIGxldCB0YXJnZXRQb2ludDogSVBvaW50ID0gcG9pbnRGaW5kZXIocG9pbnRzLCBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZCAmJiB0YXJnZXRQb2ludCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBvbHlsaW5lQmFjay5iaW5kUG9wdXAoYEVkZ2UgSUQ6ICR7ZWRnZS5pZH0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2UgcG9pbnQ6ICR7c291cmNlUG9pbnQuZ3JvdXAubmFtZX0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgcG9pbnQ6ICR7dGFyZ2V0UG9pbnQuZ3JvdXAubmFtZX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RhbmNlOiAke2VkZ2UuZGlzdGFuY2V9YCk7XG4gICAgICB9XG4gICAgICBjcmVhdGVQb2ludExvZ2ljKHNvdXJjZVBvaW50LCBtYXAsIGxheWVyR3JvdXAsIGZsb3dSYXRlVW5pdCk7XG4gICAgICBpZiAoZWRnZXNbZWRnZXMubGVuZ3RoIC0gMV0udGFyZ2V0X3BvaW50X2lkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCkge1xuICAgICAgICBjcmVhdGVQb2ludExvZ2ljKHRhcmdldFBvaW50LCBtYXAsIGxheWVyR3JvdXApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCBwb2ludEZpbmRlciA9IChwb2ludHMsIGRlc2lyZWRQb2ludElkKSA9PiB7XG4gIGxldCBkZXNpcmVkUG9pbnQ6IElQb2ludCA9IHBvaW50cy5maW5kKFxuICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZGVzaXJlZFBvaW50SWQsXG4gICk7XG5cbiAgcmV0dXJuIGRlc2lyZWRQb2ludDtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kQW5kRHJhd0V2ZW50TmV0d29ya0VkZ2VzID0gKFxuICBlZGdlczogSUVkZ2VbXSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZGlzcGF0Y2gsXG4gIG1hcCxcbiAgbGF5ZXJHcm91cCxcbiAgZmxvd1JhdGVVbml0LFxuKSA9PiB7XG4gIGxldCBlZGdlc1RvRHJhdzogSUVkZ2VbXSA9IFtdO1xuICBsZXQgZmlyc3RFZGdlID0gZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgoZWRnZXMsIGV2ZW50KTtcblxuICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgZG93bnN0cmVhbU5ldHdvcms6IElFZGdlW10gPSBbZmlyc3RFZGdlXTtcbiAgICBsZXQgdXBzdHJlYW1FZGdlcyA9IGdldFVwc3RyZWFtRWRnZXMoZmlyc3RFZGdlLCBlZGdlcyk7XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmICh1cHN0cmVhbUVkZ2VzLmxlbmd0aCAhPT0gMClcbiAgICAgIGZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3KHVwc3RyZWFtRWRnZXMsIGVkZ2VzVG9EcmF3LCBwb2ludHMsIGVkZ2VzKTtcbiAgICBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3KGZpcnN0RWRnZSwgZWRnZXMsIGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlc1RvRHJhdyk7XG4gIH1cblxuICBkcmF3TmV0d29yayhcbiAgICBlZGdlc1RvRHJhdyxcbiAgICBwb2ludHMsXG4gICAgZGlzcGF0Y2gsXG4gICAgbWFwLFxuICAgIGV2ZW50LFxuICAgIGxheWVyR3JvdXAsXG4gICAgZmxvd1JhdGVVbml0LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNPYnNlcnZhdGlvbiA9IChldmVudDogSUV2ZW50LCBwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBldmVudC5vYnNlcnZhdGlvbnMuZmluZCgob2JzKSA9PiBvYnMucG9pbnRfaWQgPT09IHBvaW50LmlkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzQ29sbGVjdG9yID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ29sbGVjdG9yVW5tb25pdG9yZWQgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gcG9pbnRJc0NvbGxlY3Rvcihwb2ludCkgJiYgIXBvaW50Lmhhc19kZXZpY2U7XG59O1xuXG5jb25zdCBjcmVhdGVQb2ludExvZ2ljID0gKHBvaW50OiBJUG9pbnQsIG1hcCwgbGF5ZXJHcm91cCwgZmxvd1JhdGVVbml0KSA9PiB7XG4gIGlmIChpc0NvbGxlY3RvclVubW9uaXRvcmVkKHBvaW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNyZWF0ZUJ1YmJsZVBvaW50KFxuICAgIFtwb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXSxcbiAgICBwb2ludCxcbiAgICBtYXAsXG4gICAgbnVsbCxcbiAgICBsYXllckdyb3VwLFxuICAgIGZsb3dSYXRlVW5pdCxcbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFJQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFBeUQsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxr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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
@@ -11,29 +11,31 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _reactRedux = require("react-redux");
|
|
12
12
|
var _actions = require("store/events/actions");
|
|
13
13
|
var _EventUtils = require("./EventUtils");
|
|
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; }
|
|
14
16
|
// @ts-ignore
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const dispatch = (0, _reactRedux.useDispatch)();
|
|
24
|
-
const cleanupLogic = () => {
|
|
18
|
+
var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
19
|
+
var event = _ref.event,
|
|
20
|
+
edges = _ref.edges,
|
|
21
|
+
points = _ref.points,
|
|
22
|
+
map = _ref.map;
|
|
23
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
24
|
+
var cleanupLogic = function cleanupLogic() {
|
|
25
25
|
dispatch((0, _actions.setHoveredEdgePaths)([]));
|
|
26
|
-
|
|
27
|
-
for (
|
|
26
|
+
var layers = map._layers;
|
|
27
|
+
for (var property in layers) {
|
|
28
28
|
if (layers[property].kando_object !== undefined && (layers[property].kando_object === 'UpstreamPoint' || layers[property].kando_object === 'Point')) {
|
|
29
29
|
map.removeLayer(layers[property]);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
var flowRateUnit = (0, _reactRedux.useSelector)(function (state) {
|
|
34
|
+
return state.permissions.user_info.flow_rate_unit;
|
|
35
|
+
});
|
|
36
|
+
(0, _react.useEffect)(function () {
|
|
35
37
|
if (map !== null && map !== undefined) {
|
|
36
|
-
|
|
38
|
+
var layerGroup = _leaflet.default.layerGroup();
|
|
37
39
|
(0, _EventUtils.findAndDrawEventNetworkEdges)(edges, event, points, dispatch, map, layerGroup, flowRateUnit);
|
|
38
40
|
layerGroup.addTo(map);
|
|
39
41
|
}
|
|
@@ -44,4 +46,4 @@ const NetworkForSpecificEvent = _ref => {
|
|
|
44
46
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
45
47
|
};
|
|
46
48
|
exports.NetworkForSpecificEvent = NetworkForSpecificEvent;
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX0V2ZW50VXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiX3JlZiIsImV2ZW50IiwiZWRnZXMiLCJwb2ludHMiLCJtYXAiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiY2xlYW51cExvZ2ljIiwic2V0SG92ZXJlZEVkZ2VQYXRocyIsImxheWVycyIsIl9sYXllcnMiLCJwcm9wZXJ0eSIsImthbmRvX29iamVjdCIsInVuZGVmaW5lZCIsInJlbW92ZUxheWVyIiwiZmxvd1JhdGVVbml0IiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsInBlcm1pc3Npb25zIiwidXNlcl9pbmZvIiwiZmxvd19yYXRlX3VuaXQiLCJ1c2VFZmZlY3QiLCJsYXllckdyb3VwIiwiTCIsImZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMiLCJhZGRUbyIsImNsZWFudXAiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2V2ZW50cy9OZXR3b3JrRm9yU3BlY2lmaWNFdmVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IEwsIHsgTWFwIGFzIExlYWZsZXRNYXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBmaW5kQW5kRHJhd0V2ZW50TmV0d29ya0VkZ2VzIH0gZnJvbSAnLi9FdmVudFV0aWxzJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBwb2ludHM6IElQb2ludFtdO1xuICBtYXA6IExlYWZsZXRNYXAgfCBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgTmV0d29ya0ZvclNwZWNpZmljRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZWRnZXMsXG4gIHBvaW50cyxcbiAgbWFwLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGNsZWFudXBMb2dpYyA9ICgpID0+IHtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtdKSk7XG4gICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnVXBzdHJlYW1Qb2ludCcgfHxcbiAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1BvaW50JylcbiAgICAgICkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGZsb3dSYXRlVW5pdCA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvLmZsb3dfcmF0ZV91bml0LFxuICApO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXAgIT09IG51bGwgJiYgbWFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBsYXllckdyb3VwID0gTC5sYXllckdyb3VwKCk7XG4gICAgICBmaW5kQW5kRHJhd0V2ZW50TmV0d29ya0VkZ2VzKFxuICAgICAgICBlZGdlcyxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIG1hcCxcbiAgICAgICAgbGF5ZXJHcm91cCxcbiAgICAgICAgZmxvd1JhdGVVbml0LFxuICAgICAgKTtcblxuICAgICAgbGF5ZXJHcm91cC5hZGRUbyhtYXApO1xuICAgIH1cblxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgY2xlYW51cExvZ2ljKCk7XG4gICAgfTtcbiAgfSwgW2V2ZW50LCBtYXBdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEs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
|