@kando-env/kando-ui 1.2.376 → 1.2.378
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 +73 -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 +94 -72
- package/lib/Widgets/Map/MapUtils.js +61 -64
- 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 +35 -31
- package/lib/Widgets/Map/edges/Edges.js +23 -19
- 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 +22 -24
- 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 +48 -30
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +10 -29
- 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 +42 -23
- 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 +6 -8
- 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 +44 -30
- 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 +97 -70
- 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 +108 -90
- 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 +6 -8
- package/lib/components/Sector/Sector.test.js +20 -19
- 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 +5 -0
- package/lib/i18n/he.json +5 -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 +34 -29
- 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 +29 -33
- package/lib/pages/DashboardMap/HighchartsOptions.js +4 -5
- package/lib/pages/DashboardMap/List.js +112 -74
- package/lib/pages/DashboardMap/ListContext.js +19 -15
- package/lib/pages/DashboardMap/Loader.js +2 -2
- package/lib/pages/DashboardMap/SeverityBadge.js +18 -10
- package/lib/pages/DashboardMap/WWTPMap.js +103 -80
- package/lib/pages/DashboardMap/WaterDischarge.js +10 -10
- 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 +16 -21
- 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/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +44 -28
- package/lib/pages/ProfilePage/ProfilePage.js +237 -120
- 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 +48 -41
- package/lib/pages/SitePage/SitePage.js +84 -41
- 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 +38 -23
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +30 -26
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +18 -17
- 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/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 +27 -26
- 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 +20 -30
- 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/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 +59 -61
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.graphDatesButtons = exports.dndGraphInitOptions = void 0;
|
|
8
8
|
var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
|
|
9
|
-
|
|
9
|
+
var dndGraphInitOptions = {
|
|
10
10
|
scrollbar: {
|
|
11
11
|
enabled: true,
|
|
12
12
|
barBackgroundColor: '#DBDEE3',
|
|
@@ -86,7 +86,7 @@ const dndGraphInitOptions = {
|
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
88
|
exports.dndGraphInitOptions = dndGraphInitOptions;
|
|
89
|
-
|
|
89
|
+
var graphDatesButtons = [{
|
|
90
90
|
title: '1 Day',
|
|
91
91
|
time: 24
|
|
92
92
|
}, {
|
|
@@ -100,4 +100,4 @@ const graphDatesButtons = [{
|
|
|
100
100
|
time: 2880
|
|
101
101
|
}];
|
|
102
102
|
exports.graphDatesButtons = graphDatesButtons;
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZG5kR3JhcGhJbml0T3B0aW9ucyIsInNjcm9sbGJhciIsImVuYWJsZWQiLCJiYXJCYWNrZ3JvdW5kQ29sb3IiLCJiYXJCb3JkZXJSYWRpdXMiLCJiYXJCb3JkZXJXaWR0aCIsImJ1dHRvbkJhY2tncm91bmRDb2xvciIsImJ1dHRvbkJvcmRlcldpZHRoIiwiYnV0dG9uQXJyb3dDb2xvciIsImJ1dHRvbkJvcmRlclJhZGl1cyIsInJpZmxlQ29sb3IiLCJ0cmFja0JhY2tncm91bmRDb2xvciIsInRyYWNrQm9yZGVyV2lkdGgiLCJ0cmFja0JvcmRlckNvbG9yIiwidHJhY2tCb3JkZXJSYWRpdXMiLCJjaGFydCIsInNwYWNpbmdCb3R0b20iLCJzcGFjaW5nTGVmdCIsInNwYWNpbmdSaWdodCIsInNwYWNpbmdUb3AiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZWlnaHQiLCJ6b29tVHlwZSIsInJhbmdlU2VsZWN0b3IiLCJhbGxCdXR0b25zRW5hYmxlZCIsImlucHV0RW5hYmxlZCIsImJ1dHRvbnMiLCJ0eXBlIiwiY291bnQiLCJ0ZXh0IiwiaTE4biIsInQiLCJidXR0b25UaGVtZSIsIndpZHRoIiwiZmlsbCIsInN0cm9rZSIsInBhZGRpbmciLCJyIiwic3R5bGUiLCJmb250U2l6ZSIsInN0YXRlcyIsImhvdmVyIiwiY29sb3IiLCJmb250V2VpZ2h0Iiwic2VsZWN0IiwiZXhwb3J0cyIsImdyYXBoRGF0ZXNCdXR0b25zIiwidGl0bGUiLCJ0aW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL0dyYXBoVXRpbHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJRXZlbnRzU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnRzU3RhdGUnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCBIaWdoY2hhcnRzIGZyb20gJ2hpZ2hjaGFydHMvaGlnaHN0b2NrJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaFR5cGUge1xuICBncmFwaERhdGE6IHtcbiAgICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICAgIGV2ZW50c19kYXRhOiBJRXZlbnRzU3RhdGU7XG4gICAgZ3JhcGhEYXRlOiBudW1iZXI7XG4gIH07XG4gIGdyYXBoRWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBHcmFwaHNDb2x1bW5UeXBlIHtcbiAgaWQ6IHN0cmluZztcbiAgZ3JhcGhzOiBHcmFwaFR5cGVbXSB8IFtdO1xufVxuZXhwb3J0IGNvbnN0IGRuZEdyYXBoSW5pdE9wdGlvbnM6IEhpZ2hjaGFydHMuT3B0aW9ucyA9IHtcbiAgc2Nyb2xsYmFyOiB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICBiYXJCYWNrZ3JvdW5kQ29sb3I6ICcjREJERUUzJyxcbiAgICBiYXJCb3JkZXJSYWRpdXM6IDcsXG4gICAgYmFyQm9yZGVyV2lkdGg6IDAsXG4gICAgYnV0dG9uQmFja2dyb3VuZENvbG9yOiAnI0RCREVFMycsXG4gICAgYnV0dG9uQm9yZGVyV2lkdGg6IDAsXG4gICAgYnV0dG9uQXJyb3dDb2xvcjogJyNmNjAwNGYnLFxuICAgIGJ1dHRvbkJvcmRlclJhZGl1czogNyxcbiAgICByaWZsZUNvbG9yOiAnI2Y2MDA0ZicsXG4gICAgdHJhY2tCYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZicsXG4gICAgdHJhY2tCb3JkZXJXaWR0aDogMixcbiAgICB0cmFja0JvcmRlckNvbG9yOiAnI0RCREVFMycsXG4gICAgdHJhY2tCb3JkZXJSYWRpdXM6IDcsXG4gIH0sXG4gIGNoYXJ0OiB7XG4gICAgc3BhY2luZ0JvdHRvbTogMCxcbiAgICBzcGFjaW5nTGVmdDogMCxcbiAgICBzcGFjaW5nUmlnaHQ6IDAsXG4gICAgc3BhY2luZ1RvcDogMCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcbiAgICBoZWlnaHQ6IDIzMCxcbiAgICB6b29tVHlwZTogJ3gnLFxuICB9LFxuXG4gIHJhbmdlU2VsZWN0b3I6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIGFsbEJ1dHRvbnNFbmFibGVkOiB0cnVlLFxuICAgIGlucHV0RW5hYmxlZDogZmFsc2UsXG4gICAgYnV0dG9uczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnZGF5JyxcbiAgICAgICAgY291bnQ6IDEsXG4gICAgICAgIHRleHQ6IGkxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnRpbWVfc2VsZWN0aW9uLm9uZV9kYXknKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdkYXknLFxuICAgICAgICBjb3VudDogMixcbiAgICAgICAgdGV4dDogaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24udHdvX2RheXMnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd3ZWVrJyxcbiAgICAgICAgY291bnQ6IDEsXG4gICAgICAgIHRleHQ6IGkxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZsb2F0aW5nX2dyYXBoLnRpbWVfc2VsZWN0aW9uLm9uZV93ZWVrJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICBjb3VudDogMSxcbiAgICAgICAgdGV4dDogaTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24ub25lX21vbnRoJyksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbW9udGgnLFxuICAgICAgICBjb3VudDogMyxcbiAgICAgICAgdGV4dDogaTE4bi50KFxuICAgICAgICAgICdldmVudHNfb3ZlcnZpZXcuZmxvYXRpbmdfZ3JhcGgudGltZV9zZWxlY3Rpb24ub25lX3F1YXJ0ZXInLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGJ1dHRvblRoZW1lOiB7XG4gICAgICB3aWR0aDogNjAsXG4gICAgICBmaWxsOiAnbm9uZScsXG4gICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICdzdHJva2Utd2lkdGgnOiAwLFxuICAgICAgcGFkZGluZzogNSxcbiAgICAgIHI6IDgsXG4gICAgICBzdHlsZToge1xuICAgICAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgICAgfSxcbiAgICAgIHN0YXRlczoge1xuICAgICAgICBob3Zlcjoge1xuICAgICAgICAgIGZpbGw6ICcjRTMxQjYyJyxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3Q6IHtcbiAgICAgICAgICBmaWxsOiAnI0UzMUI2MicsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogJzQwMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG5leHBvcnQgY29uc3QgZ3JhcGhEYXRlc0J1dHRvbnMgPSBbXG4gIHtcbiAgICB0aXRsZTogJzEgRGF5JyxcbiAgICB0aW1lOiAyNCxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnMSBXZWVrJyxcbiAgICB0aW1lOiAxNjgsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJzEgTW9udGgnLFxuICAgIHRpbWU6IDcyMCxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnMSBRdWFydGVyJyxcbiAgICB0aW1lOiAyODgwLFxuICB9LFxuXTtcbiJdLCJtYXBwaW5n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
|
package/lib/Widgets/Map/Map.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
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
|
});
|
|
7
8
|
exports.Map = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
8
10
|
var L = _interopRequireWildcard(require("leaflet"));
|
|
9
11
|
require("utilities/polylinedecorator");
|
|
10
12
|
require("leaflet.markercluster");
|
|
@@ -22,69 +24,87 @@ var _MapUtils = require("./MapUtils");
|
|
|
22
24
|
var _theme = require("../../styles/theme/theme");
|
|
23
25
|
var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
|
|
24
26
|
var _ListContext = require("pages/DashboardMap/ListContext");
|
|
25
|
-
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); }
|
|
26
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
27
|
+
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); }
|
|
28
|
+
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; }
|
|
27
29
|
// @ts-ignore
|
|
28
30
|
|
|
29
31
|
// import { storeMap } from 'src/store/global/actions';
|
|
30
32
|
|
|
31
33
|
require('leaflet.markercluster');
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
hideEdges = false,
|
|
42
|
-
mapBoxStyle =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
34
|
+
var Map = function Map(_ref) {
|
|
35
|
+
var areas = _ref.areas,
|
|
36
|
+
edges = _ref.edges,
|
|
37
|
+
points = _ref.points,
|
|
38
|
+
global_data = _ref.global_data,
|
|
39
|
+
areaToCenterBy = _ref.areaToCenterBy,
|
|
40
|
+
focusedEvent = _ref.focusedEvent,
|
|
41
|
+
hoveredEvent = _ref.hoveredEvent,
|
|
42
|
+
_ref$hideEdges = _ref.hideEdges,
|
|
43
|
+
hideEdges = _ref$hideEdges === void 0 ? false : _ref$hideEdges,
|
|
44
|
+
_ref$mapBoxStyle = _ref.mapBoxStyle,
|
|
45
|
+
mapBoxStyle = _ref$mapBoxStyle === void 0 ? _theme.leafletMap.mapDefault : _ref$mapBoxStyle,
|
|
46
|
+
children = _ref.children,
|
|
47
|
+
_ref$includeUnmonitor = _ref.includeUnmonitoredPoints,
|
|
48
|
+
includeUnmonitoredPoints = _ref$includeUnmonitor === void 0 ? true : _ref$includeUnmonitor,
|
|
49
|
+
_ref$includeUnmonitor2 = _ref.includeUnmonitoredDescendantsForEdges,
|
|
50
|
+
includeUnmonitoredDescendantsForEdges = _ref$includeUnmonitor2 === void 0 ? false : _ref$includeUnmonitor2,
|
|
51
|
+
_ref$forEventsView = _ref.forEventsView,
|
|
52
|
+
forEventsView = _ref$forEventsView === void 0 ? false : _ref$forEventsView,
|
|
53
|
+
_ref$style = _ref.style,
|
|
54
|
+
style = _ref$style === void 0 ? {} : _ref$style,
|
|
55
|
+
_ref$forWWTPDashboard = _ref.forWWTPDashboard,
|
|
56
|
+
forWWTPDashboard = _ref$forWWTPDashboard === void 0 ? false : _ref$forWWTPDashboard;
|
|
57
|
+
var map = global_data.map;
|
|
58
|
+
var mapRef = (0, _react.useRef)(null);
|
|
59
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
60
|
+
var _useState = (0, _react.useState)(2),
|
|
61
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
62
|
+
mapZoomLevel = _useState2[0],
|
|
63
|
+
setMapZoomLevel = _useState2[1];
|
|
64
|
+
var _useSelectedItem = (0, _ListContext.useSelectedItem)(),
|
|
65
|
+
selectedItem = _useSelectedItem.selectedItem;
|
|
66
|
+
var eventsData = (0, _reactRedux.useSelector)(function (state) {
|
|
67
|
+
return state.events_data;
|
|
68
|
+
});
|
|
69
|
+
var hoveredEventPresent = (0, _react.useMemo)(function () {
|
|
61
70
|
return hoveredEvent !== null && hoveredEvent !== undefined;
|
|
62
71
|
}, [hoveredEvent]);
|
|
63
|
-
|
|
72
|
+
var focusedEventPresent = (0, _react.useMemo)(function () {
|
|
64
73
|
return focusedEvent !== null && focusedEvent !== undefined;
|
|
65
74
|
}, [focusedEvent]);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
var _useState3 = (0, _react.useState)(window.customLeaflet.markerClusterGroup({
|
|
76
|
+
spiderfyOnMaxZoom: false,
|
|
77
|
+
showCoverageOnHover: false,
|
|
78
|
+
zoomToBoundsOnClick: true,
|
|
79
|
+
animate: true,
|
|
80
|
+
disableClusteringAtZoom: 15,
|
|
81
|
+
removeOutsideVisibleBounds: false,
|
|
82
|
+
chunkedLoading: true,
|
|
83
|
+
iconCreateFunction: function iconCreateFunction(cluster) {
|
|
84
|
+
return new L.DivIcon({
|
|
85
|
+
html: "<div><span>".concat(cluster._childCount, "</span></div><div class='marker-cluster-name'>").concat(_i18n.default.t('industries'), "</div>"),
|
|
86
|
+
className: 'marker-cluster',
|
|
87
|
+
iconSize: new L.Point(40, 40)
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
})),
|
|
91
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 1),
|
|
92
|
+
factoriesClusterGroup = _useState4[0];
|
|
93
|
+
var _useState5 = (0, _react.useState)(L.layerGroup()),
|
|
94
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 1),
|
|
95
|
+
wwtpsLayerGroup = _useState6[0];
|
|
96
|
+
var _useState7 = (0, _react.useState)(L.layerGroup()),
|
|
97
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 1),
|
|
98
|
+
collectorsLayerGroup = _useState8[0];
|
|
84
99
|
//const [factoriesLayerGroup] = useState(L.layerGroup());
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
100
|
+
var _useState9 = (0, _react.useState)(new L.FeatureGroup()),
|
|
101
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 1),
|
|
102
|
+
areasLayerGroup = _useState10[0];
|
|
103
|
+
var _useState11 = (0, _react.useState)(true),
|
|
104
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
105
|
+
edgesCheckbox = _useState12[0],
|
|
106
|
+
setEdgesCheckbox = _useState12[1];
|
|
107
|
+
var memoizedPoints = (0, _react.useMemo)(function () {
|
|
88
108
|
return mapRef.current !== null && points && /*#__PURE__*/_react.default.createElement(_PointMarkers.PointMarkers, {
|
|
89
109
|
map: mapRef.current,
|
|
90
110
|
points: points,
|
|
@@ -101,15 +121,15 @@ const Map = _ref => {
|
|
|
101
121
|
// mapRef.current !== null && iconZoomControl(mapRef.current);
|
|
102
122
|
// }, [mapRef.current, points, focusedEventPresent]);
|
|
103
123
|
|
|
104
|
-
|
|
105
|
-
|
|
124
|
+
var trackLayerbox = function trackLayerbox() {
|
|
125
|
+
var checkbox = document.querySelector('#edges-checkbox');
|
|
106
126
|
if (checkbox === null) return;
|
|
107
|
-
checkbox.addEventListener('change', ()
|
|
127
|
+
checkbox.addEventListener('change', function () {
|
|
108
128
|
setEdgesCheckbox(checkbox.checked);
|
|
109
129
|
});
|
|
110
130
|
};
|
|
111
|
-
|
|
112
|
-
|
|
131
|
+
var zoomRulesForEventsView = function zoomRulesForEventsView() {
|
|
132
|
+
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, edgesCheckbox && /*#__PURE__*/_react.default.createElement(_Edges.default, {
|
|
113
133
|
edges: edges,
|
|
114
134
|
map: mapRef.current,
|
|
115
135
|
L: L,
|
|
@@ -120,8 +140,8 @@ const Map = _ref => {
|
|
|
120
140
|
}), memoizedPoints);
|
|
121
141
|
return payload;
|
|
122
142
|
};
|
|
123
|
-
|
|
124
|
-
|
|
143
|
+
var zoomRulesForDashaboardMaps = function zoomRulesForDashaboardMaps() {
|
|
144
|
+
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedPoints);
|
|
125
145
|
switch (_MapUtils.zoomLevels[mapZoomLevel]) {
|
|
126
146
|
case 'Small':
|
|
127
147
|
case 'Medium':
|
|
@@ -137,11 +157,11 @@ const Map = _ref => {
|
|
|
137
157
|
|
|
138
158
|
return payload;
|
|
139
159
|
};
|
|
140
|
-
|
|
141
|
-
|
|
160
|
+
var memoizedZoomControl = (0, _react.useMemo)(function () {
|
|
161
|
+
var payload = forEventsView ? zoomRulesForEventsView() : zoomRulesForDashaboardMaps();
|
|
142
162
|
return payload;
|
|
143
163
|
}, [mapZoomLevel, eventsData.isFetching, focusedEvent, hoveredEvent, points, mapRef.current, edgesCheckbox]);
|
|
144
|
-
|
|
164
|
+
var memoizedEvent = (0, _react.useMemo)(function () {
|
|
145
165
|
if (focusedEventPresent) {
|
|
146
166
|
focusedEvent.focused = focusedEventPresent;
|
|
147
167
|
focusedEvent.hovered = !focusedEventPresent;
|
|
@@ -159,14 +179,14 @@ const Map = _ref => {
|
|
|
159
179
|
includeNetwork: !hoveredEventPresent
|
|
160
180
|
});
|
|
161
181
|
}, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
|
|
162
|
-
(0, _react.useEffect)(()
|
|
182
|
+
(0, _react.useEffect)(function () {
|
|
163
183
|
return function cleanup() {
|
|
164
184
|
var _mapRef$current;
|
|
165
185
|
collectorsLayerGroup.clearLayers();
|
|
166
186
|
(_mapRef$current = mapRef.current) === null || _mapRef$current === void 0 ? void 0 : _mapRef$current.removeLayer(collectorsLayerGroup);
|
|
167
187
|
};
|
|
168
188
|
}, [focusedEvent, hoveredEvent, global_data.eventFilterParam]);
|
|
169
|
-
(0, _react.useEffect)(()
|
|
189
|
+
(0, _react.useEffect)(function () {
|
|
170
190
|
(0, _MapUtils.initializeMap)(mapZoomLevel, mapBoxStyle, _theme.leafletMap.satellite, mapRef, dispatch, _MapUtils.isValidArea, areaToCenterBy, setMapZoomLevel, forWWTPDashboard, true, global_data.waterAuthorityId);
|
|
171
191
|
return function cleanup() {
|
|
172
192
|
// factoriesClusterGroup.clearLayers();
|
|
@@ -182,22 +202,24 @@ const Map = _ref => {
|
|
|
182
202
|
// dispatch(storeMap(undefined));
|
|
183
203
|
};
|
|
184
204
|
}, [global_data.waterAuthorityId]);
|
|
185
|
-
(0, _react.useEffect)(()
|
|
205
|
+
(0, _react.useEffect)(function () {
|
|
186
206
|
if (!mapRef.current) {
|
|
187
207
|
(0, _MapUtils.initializeMap)(mapZoomLevel, mapBoxStyle, _theme.leafletMap.satellite, mapRef, dispatch, _MapUtils.isValidArea, areaToCenterBy, setMapZoomLevel, true, global_data.waterAuthorityId);
|
|
188
208
|
} else {
|
|
189
209
|
setMapZoomLevel(mapRef.current.getZoom());
|
|
190
210
|
if (!areaToCenterBy) {
|
|
191
|
-
areaToCenterBy = areas.map(
|
|
211
|
+
areaToCenterBy = areas.map(function (area) {
|
|
212
|
+
return area.shape_data;
|
|
213
|
+
}).flat();
|
|
192
214
|
}
|
|
193
215
|
(0, _MapUtils.areaFocusLogic)(mapRef, _MapUtils.isValidArea, areaToCenterBy);
|
|
194
216
|
trackLayerbox();
|
|
195
217
|
}
|
|
196
218
|
}, [mapRef.current, areaToCenterBy]);
|
|
197
|
-
(0, _react.useEffect)(()
|
|
219
|
+
(0, _react.useEffect)(function () {
|
|
198
220
|
var _mapRef$current2;
|
|
199
|
-
|
|
200
|
-
(_mapRef$current2 = mapRef.current) === null || _mapRef$current2 === void 0 ? void 0 : _mapRef$current2.eachLayer(layer
|
|
221
|
+
var clicked = false;
|
|
222
|
+
(_mapRef$current2 = mapRef.current) === null || _mapRef$current2 === void 0 ? void 0 : _mapRef$current2.eachLayer(function (layer) {
|
|
201
223
|
if (clicked) return;
|
|
202
224
|
if ((layer === null || layer === void 0 ? void 0 : layer.kando_object_id) === selectedItem && layer.isPopupOpen() === false) {
|
|
203
225
|
if (layer instanceof L.Marker) {
|
|
@@ -213,7 +235,7 @@ const Map = _ref => {
|
|
|
213
235
|
className: "kd-map-container",
|
|
214
236
|
style: style
|
|
215
237
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
216
|
-
className:
|
|
238
|
+
className: " map-container ".concat(global_data.sidenavExpanded ? '' : 'map-container--sidenav-collapsed')
|
|
217
239
|
}, /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
218
240
|
id: "map"
|
|
219
241
|
}), (0, _MapUtils.shouldLoadMapObjects)(global_data, mapRef, edges, points) && /*#__PURE__*/_react.default.createElement(_AreaPolygons.AreaPolygons, {
|
|
@@ -228,4 +250,4 @@ const Map = _ref => {
|
|
|
228
250
|
}), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent, memoizedZoomControl, children))));
|
|
229
251
|
};
|
|
230
252
|
exports.Map = Map;
|
|
231
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9pMThuIiwiX0xpc3RDb250ZXh0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk1hcCIsIl9yZWYiLCJhcmVhcyIsImVkZ2VzIiwicG9pbnRzIiwiZ2xvYmFsX2RhdGEiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhpZGVFZGdlcyIsIm1hcEJveFN0eWxlIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJjaGlsZHJlbiIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsImluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMiLCJmb3JFdmVudHNWaWV3Iiwic3R5bGUiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsInVzZVN0YXRlIiwic2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwiZXZlbnRzRGF0YSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsImZhY3Rvcmllc0NsdXN0ZXJHcm91cCIsIndpbmRvdyIsImN1c3RvbUxlYWZsZXQiLCJtYXJrZXJDbHVzdGVyR3JvdXAiLCJzcGlkZXJmeU9uTWF4Wm9vbSIsInNob3dDb3ZlcmFnZU9uSG92ZXIiLCJ6b29tVG9Cb3VuZHNPbkNsaWNrIiwiYW5pbWF0ZSIsImRpc2FibGVDbHVzdGVyaW5nQXRab29tIiwicmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHMiLCJjaHVua2VkTG9hZGluZyIsImljb25DcmVhdGVGdW5jdGlvbiIsImNsdXN0ZXIiLCJEaXZJY29uIiwiaHRtbCIsIl9jaGlsZENvdW50IiwiaTE4biIsInQiLCJjbGFzc05hbWUiLCJpY29uU2l6ZSIsIlBvaW50Iiwid3d0cHNMYXllckdyb3VwIiwibGF5ZXJHcm91cCIsImNvbGxlY3RvcnNMYXllckdyb3VwIiwiYXJlYXNMYXllckdyb3VwIiwiRmVhdHVyZUdyb3VwIiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJtZW1vaXplZFBvaW50cyIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwiUG9pbnRNYXJrZXJzIiwicmVyZW5kZXIiLCJ6b29tTGV2ZWxzIiwiZmFjdG9yaWVzR3JvdXAiLCJ3d3Rwc0dyb3VwIiwiY29sbGVjdG9yc0dyb3VwIiwidHJhY2tMYXllcmJveCIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNoZWNrZWQiLCJ6b29tUnVsZXNGb3JFdmVudHNWaWV3IiwicGF5bG9hZCIsIkZyYWdtZW50IiwiaGlkZUFycm93cyIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsImlzRmV0Y2hpbmciLCJtZW1vaXplZEV2ZW50IiwiZm9jdXNlZCIsImhvdmVyZWQiLCJFdmVudCIsImV2ZW50IiwiaW5jbHVkZU5ldHdvcmsiLCJldmVudEZpbHRlclBhcmFtIiwidXNlRWZmZWN0IiwiY2xlYW51cCIsIl9tYXBSZWYkY3VycmVudCIsImNsZWFyTGF5ZXJzIiwicmVtb3ZlTGF5ZXIiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJ3YXRlckF1dGhvcml0eUlkIiwicmVtb3ZlIiwiZ2V0Wm9vbSIsImFyZWEiLCJzaGFwZV9kYXRhIiwiZmxhdCIsImFyZWFGb2N1c0xvZ2ljIiwiX21hcFJlZiRjdXJyZW50MiIsImNsaWNrZWQiLCJlYWNoTGF5ZXIiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlzUG9wdXBPcGVuIiwiTWFya2VyIiwiZmlyZSIsIlBvbHlnb24iLCJzaWRlbmF2RXhwYW5kZWQiLCJpZCIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiQXJlYVBvbHlnb25zIiwibWFwWm9vbSIsImZlYXR1cmVHcm91cCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgJ2xlYWZsZXQubWFya2VyY2x1c3Rlcic7XG5pbXBvcnQgJ2xlYWZsZXQucGF0dGVybic7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG4vLyBpbXBvcnQgeyBzdG9yZU1hcCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgJy4vTWFwLnNjc3MnO1xuaW1wb3J0ICcuL3BvaW50cy9Qb2ludEljb24uc2Nzcyc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJy4uLy4uL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHtcbiAgYXJlYUZvY3VzTG9naWMsXG4gIGluaXRpYWxpemVNYXAsXG4gIGlzVmFsaWRBcmVhLFxuICBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzLFxuICBzaG91bGRMb2FkTWFwT2JqZWN0cyxcbiAgem9vbUxldmVscyxcbn0gZnJvbSAnLi9NYXBVdGlscyc7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvTGlzdENvbnRleHQnO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIGNvbnN0IFtmYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKHtcbiAgICAgIHNwaWRlcmZ5T25NYXhab29tOiBmYWxzZSxcbiAgICAgIHNob3dDb3ZlcmFnZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgem9vbVRvQm91bmRzT25DbGljazogdHJ1ZSxcbiAgICAgIGFuaW1hdGU6IHRydWUsXG4gICAgICBkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbTogMTUsXG4gICAgICByZW1vdmVPdXRzaWRlVmlzaWJsZUJvdW5kczogZmFsc2UsXG4gICAgICBjaHVua2VkTG9hZGluZzogdHJ1ZSxcbiAgICAgIGljb25DcmVhdGVGdW5jdGlvbjogZnVuY3Rpb24gKGNsdXN0ZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMLkRpdkljb24oe1xuICAgICAgICAgIGh0bWw6IGA8ZGl2PjxzcGFuPiR7XG4gICAgICAgICAgICBjbHVzdGVyLl9jaGlsZENvdW50XG4gICAgICAgICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSdtYXJrZXItY2x1c3Rlci1uYW1lJz4ke2kxOG4udChcbiAgICAgICAgICAgICdpbmR1c3RyaWVzJyxcbiAgICAgICAgICApfTwvZGl2PmAsXG4gICAgICAgICAgY2xhc3NOYW1lOiAnbWFya2VyLWNsdXN0ZXInLFxuICAgICAgICAgIGljb25TaXplOiBuZXcgTC5Qb2ludCg0MCwgNDApLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgW3d3dHBzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFtjb2xsZWN0b3JzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIC8vY29uc3QgW2ZhY3Rvcmllc0xheWVyR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbYXJlYXNMYXllckdyb3VwXSA9IHVzZVN0YXRlKG5ldyBMLkZlYXR1cmVHcm91cCgpKTtcbiAgY29uc3QgW2VkZ2VzQ2hlY2tib3gsIHNldEVkZ2VzQ2hlY2tib3hdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICAgIHBvaW50cyAmJiAoXG4gICAgICAgIDxQb2ludE1hcmtlcnNcbiAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17aW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICAgIHJlcmVuZGVyPXt6b29tTGV2ZWxzW21hcFpvb21MZXZlbF19XG4gICAgICAgICAgZmFjdG9yaWVzR3JvdXA9e2ZhY3Rvcmllc0NsdXN0ZXJHcm91cH1cbiAgICAgICAgICB3d3Rwc0dyb3VwPXt3d3Rwc0xheWVyR3JvdXB9XG4gICAgICAgICAgY29sbGVjdG9yc0dyb3VwPXtjb2xsZWN0b3JzTGF5ZXJHcm91cH1cbiAgICAgICAgICBmb3JFdmVudHNWaWV3PXtmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICApO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgLy8gY29uc3QgYWN0aXZhdGVab29tQ29udHJvbEZvckljb25zID0gdXNlTWVtbygoKSA9PiB7XG4gIC8vICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiYgaWNvblpvb21Db250cm9sKG1hcFJlZi5jdXJyZW50KTtcbiAgLy8gfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnRdKTtcblxuICBjb25zdCB0cmFja0xheWVyYm94ID0gKCkgPT4ge1xuICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGdlcy1jaGVja2JveCcpO1xuICAgIGlmIChjaGVja2JveCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgc2V0RWRnZXNDaGVja2JveChjaGVja2JveC5jaGVja2VkKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JFdmVudHNWaWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7ZWRnZXNDaGVja2JveCAmJiAoXG4gICAgICAgICAgPEVkZ2VzXG4gICAgICAgICAgICBlZGdlcz17ZWRnZXMhfVxuICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgICBwb2ludHM9e3BvaW50cyF9XG4gICAgICAgICAgICBoaWRlRWRnZXM9e2hpZGVFZGdlc31cbiAgICAgICAgICAgIGhpZGVBcnJvd3M9e3RydWV9XG4gICAgICAgICAgICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM9e2luY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXN9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge21lbW9pemVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gPD57bWVtb2l6ZWRQb2ludHN9PC8+O1xuICAgIHN3aXRjaCAoem9vbUxldmVsc1ttYXBab29tTGV2ZWxdKSB7XG4gICAgICBjYXNlICdTbWFsbCc6XG4gICAgICBjYXNlICdNZWRpdW0nOlxuICAgICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgJ01MYXJnZSc6XG4gICAgICAvLyBjYXNlICdMYXJnZSc6XG4gICAgICAvLyBjYXNlICdYTGFyZ2UnOlxuICAgICAgLy8gZGVmYXVsdDpcbiAgICAgIC8vICAgcGF5bG9hZCA9IDw+e21lbW9pemVkUG9pbnRzfTwvPjtcbiAgICAgIC8vICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRab29tQ29udHJvbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSBmb3JFdmVudHNWaWV3XG4gICAgICA/IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKVxuICAgICAgOiB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcygpO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0sIFtcbiAgICBtYXBab29tTGV2ZWwsXG4gICAgZXZlbnRzRGF0YS5pc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgcG9pbnRzLFxuICAgIG1hcFJlZi5jdXJyZW50LFxuICAgIGVkZ2VzQ2hlY2tib3gsXG4gIF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkRXZlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG4gICAgcmV0dXJuIChcbiAgICAgIDxFdmVudFxuICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50ISB8fCBob3ZlcmVkRXZlbnQhfVxuICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgZWRnZXM9e2VkZ2VzIX1cbiAgICAgICAgcG9pbnRzPXtwb2ludHMhfVxuICAgICAgICBpbmNsdWRlTmV0d29yaz17IWhvdmVyZWRFdmVudFByZXNlbnR9XG4gICAgICAvPlxuICAgICk7XG4gIH0sIFtmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICB9O1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluaXRpYWxpemVNYXAoXG4gICAgICBtYXBab29tTGV2ZWwsXG4gICAgICBtYXBCb3hTdHlsZSxcbiAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgbWFwUmVmLFxuICAgICAgZGlzcGF0Y2gsXG4gICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgIGFyZWFUb0NlbnRlckJ5LFxuICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgIHRydWUsXG4gICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIC8vIGZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gd3d0cHNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAvLyBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gYXJlYXNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoZmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgLy8gbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICAvLyBkaXNwYXRjaChzdG9yZU1hcCh1bmRlZmluZWQpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgICBtYXBCb3hTdHlsZSxcbiAgICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICAgIG1hcFJlZixcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgICB0cnVlLFxuICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgdHJhY2tMYXllcmJveCgpO1xuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNsaWNrZWQgPSBmYWxzZTtcblxuICAgIG1hcFJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyPy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkSXRlbSAmJlxuICAgICAgICBsYXllci5pc1BvcHVwT3BlbigpID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2snKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllciBpbnN0YW5jZW9mIEwuUG9seWdvbikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwia2QtbWFwLWNvbnRhaW5lclwiIHN0eWxlPXtzdHlsZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCBtYXAtY29udGFpbmVyICR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnbWFwLWNvbnRhaW5lci0tc2lkZW5hdi1jb2xsYXBzZWQnXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8ZGl2IGlkPVwibWFwXCI+PC9kaXY+XG4gICAgICAgICAge3Nob3VsZExvYWRNYXBPYmplY3RzKGdsb2JhbF9kYXRhLCBtYXBSZWYsIGVkZ2VzLCBwb2ludHMpICYmIChcbiAgICAgICAgICAgIDxBcmVhUG9seWdvbnNcbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICBhcmVhVG9DZW50ZXJCeT17YXJlYVRvQ2VudGVyQnl9XG4gICAgICAgICAgICAgIG1hcFpvb209e21hcFpvb21MZXZlbH1cbiAgICAgICAgICAgICAgcmVyZW5kZXI9e3pvb21MZXZlbHNbbWFwWm9vbUxldmVsXX1cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBmZWF0dXJlR3JvdXA9e2FyZWFzTGF5ZXJHcm91cH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgIGVkZ2VzLFxuICAgICAgICAgICAgYXJlYXMsXG4gICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgIG1hcFJlZixcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICApICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHttZW1vaXplZEV2ZW50fVxuICAgICAgICAgICAgICB7bWVtb2l6ZWRab29tQ29udHJvbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBT0Es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
|
|
253
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9pMThuIiwiX0xpc3RDb250ZXh0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwiYXJlYXMiLCJlZGdlcyIsInBvaW50cyIsImdsb2JhbF9kYXRhIiwiYXJlYVRvQ2VudGVyQnkiLCJmb2N1c2VkRXZlbnQiLCJob3ZlcmVkRXZlbnQiLCJfcmVmJGhpZGVFZGdlcyIsImhpZGVFZGdlcyIsIl9yZWYkbWFwQm94U3R5bGUiLCJtYXBCb3hTdHlsZSIsImxlYWZsZXRNYXAiLCJtYXBEZWZhdWx0IiwiY2hpbGRyZW4iLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IiLCJpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMiLCJfcmVmJGluY2x1ZGVVbm1vbml0b3IyIiwiaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyIsIl9yZWYkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJfcmVmJHN0eWxlIiwic3R5bGUiLCJfcmVmJGZvcldXVFBEYXNoYm9hcmQiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsIl91c2VTZWxlY3RlZEl0ZW0iLCJ1c2VTZWxlY3RlZEl0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJldmVudHNEYXRhIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiaG92ZXJlZEV2ZW50UHJlc2VudCIsInVzZU1lbW8iLCJ1bmRlZmluZWQiLCJmb2N1c2VkRXZlbnRQcmVzZW50IiwiX3VzZVN0YXRlMyIsIndpbmRvdyIsImN1c3RvbUxlYWZsZXQiLCJtYXJrZXJDbHVzdGVyR3JvdXAiLCJzcGlkZXJmeU9uTWF4Wm9vbSIsInNob3dDb3ZlcmFnZU9uSG92ZXIiLCJ6b29tVG9Cb3VuZHNPbkNsaWNrIiwiYW5pbWF0ZSIsImRpc2FibGVDbHVzdGVyaW5nQXRab29tIiwicmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHMiLCJjaHVua2VkTG9hZGluZyIsImljb25DcmVhdGVGdW5jdGlvbiIsImNsdXN0ZXIiLCJEaXZJY29uIiwiaHRtbCIsImNvbmNhdCIsIl9jaGlsZENvdW50IiwiaTE4biIsInQiLCJjbGFzc05hbWUiLCJpY29uU2l6ZSIsIlBvaW50IiwiX3VzZVN0YXRlNCIsImZhY3Rvcmllc0NsdXN0ZXJHcm91cCIsIl91c2VTdGF0ZTUiLCJsYXllckdyb3VwIiwiX3VzZVN0YXRlNiIsInd3dHBzTGF5ZXJHcm91cCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiY29sbGVjdG9yc0xheWVyR3JvdXAiLCJfdXNlU3RhdGU5IiwiRmVhdHVyZUdyb3VwIiwiX3VzZVN0YXRlMTAiLCJhcmVhc0xheWVyR3JvdXAiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJtZW1vaXplZFBvaW50cyIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwiUG9pbnRNYXJrZXJzIiwicmVyZW5kZXIiLCJ6b29tTGV2ZWxzIiwiZmFjdG9yaWVzR3JvdXAiLCJ3d3Rwc0dyb3VwIiwiY29sbGVjdG9yc0dyb3VwIiwidHJhY2tMYXllcmJveCIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNoZWNrZWQiLCJ6b29tUnVsZXNGb3JFdmVudHNWaWV3IiwicGF5bG9hZCIsIkZyYWdtZW50IiwiaGlkZUFycm93cyIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsInpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzIiwibWVtb2l6ZWRab29tQ29udHJvbCIsImlzRmV0Y2hpbmciLCJtZW1vaXplZEV2ZW50IiwiZm9jdXNlZCIsImhvdmVyZWQiLCJFdmVudCIsImV2ZW50IiwiaW5jbHVkZU5ldHdvcmsiLCJldmVudEZpbHRlclBhcmFtIiwidXNlRWZmZWN0IiwiY2xlYW51cCIsIl9tYXBSZWYkY3VycmVudCIsImNsZWFyTGF5ZXJzIiwicmVtb3ZlTGF5ZXIiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJ3YXRlckF1dGhvcml0eUlkIiwicmVtb3ZlIiwiZ2V0Wm9vbSIsImFyZWEiLCJzaGFwZV9kYXRhIiwiZmxhdCIsImFyZWFGb2N1c0xvZ2ljIiwiX21hcFJlZiRjdXJyZW50MiIsImNsaWNrZWQiLCJlYWNoTGF5ZXIiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlzUG9wdXBPcGVuIiwiTWFya2VyIiwiZmlyZSIsIlBvbHlnb24iLCJzaWRlbmF2RXhwYW5kZWQiLCJpZCIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiQXJlYVBvbHlnb25zIiwibWFwWm9vbSIsImZlYXR1cmVHcm91cCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcic7XG5pbXBvcnQgJ2xlYWZsZXQubWFya2VyY2x1c3Rlcic7XG5pbXBvcnQgJ2xlYWZsZXQucGF0dGVybic7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG4vLyBpbXBvcnQgeyBzdG9yZU1hcCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgJy4vTWFwLnNjc3MnO1xuaW1wb3J0ICcuL3BvaW50cy9Qb2ludEljb24uc2Nzcyc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJy4uLy4uL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCB7IEV2ZW50IH0gZnJvbSAnLi9ldmVudHMvRXZlbnQnO1xuaW1wb3J0IHtcbiAgYXJlYUZvY3VzTG9naWMsXG4gIGluaXRpYWxpemVNYXAsXG4gIGlzVmFsaWRBcmVhLFxuICBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzLFxuICBzaG91bGRMb2FkTWFwT2JqZWN0cyxcbiAgem9vbUxldmVscyxcbn0gZnJvbSAnLi9NYXBVdGlscyc7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvTGlzdENvbnRleHQnO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIGNvbnN0IFtmYWN0b3JpZXNDbHVzdGVyR3JvdXBdID0gdXNlU3RhdGUoXG4gICAgd2luZG93LmN1c3RvbUxlYWZsZXQubWFya2VyQ2x1c3Rlckdyb3VwKHtcbiAgICAgIHNwaWRlcmZ5T25NYXhab29tOiBmYWxzZSxcbiAgICAgIHNob3dDb3ZlcmFnZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgem9vbVRvQm91bmRzT25DbGljazogdHJ1ZSxcbiAgICAgIGFuaW1hdGU6IHRydWUsXG4gICAgICBkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbTogMTUsXG4gICAgICByZW1vdmVPdXRzaWRlVmlzaWJsZUJvdW5kczogZmFsc2UsXG4gICAgICBjaHVua2VkTG9hZGluZzogdHJ1ZSxcbiAgICAgIGljb25DcmVhdGVGdW5jdGlvbjogZnVuY3Rpb24gKGNsdXN0ZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBMLkRpdkljb24oe1xuICAgICAgICAgIGh0bWw6IGA8ZGl2PjxzcGFuPiR7XG4gICAgICAgICAgICBjbHVzdGVyLl9jaGlsZENvdW50XG4gICAgICAgICAgfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSdtYXJrZXItY2x1c3Rlci1uYW1lJz4ke2kxOG4udChcbiAgICAgICAgICAgICdpbmR1c3RyaWVzJyxcbiAgICAgICAgICApfTwvZGl2PmAsXG4gICAgICAgICAgY2xhc3NOYW1lOiAnbWFya2VyLWNsdXN0ZXInLFxuICAgICAgICAgIGljb25TaXplOiBuZXcgTC5Qb2ludCg0MCwgNDApLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgW3d3dHBzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFtjb2xsZWN0b3JzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIC8vY29uc3QgW2ZhY3Rvcmllc0xheWVyR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbYXJlYXNMYXllckdyb3VwXSA9IHVzZVN0YXRlKG5ldyBMLkZlYXR1cmVHcm91cCgpKTtcbiAgY29uc3QgW2VkZ2VzQ2hlY2tib3gsIHNldEVkZ2VzQ2hlY2tib3hdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICAgIHBvaW50cyAmJiAoXG4gICAgICAgIDxQb2ludE1hcmtlcnNcbiAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17aW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICAgIHJlcmVuZGVyPXt6b29tTGV2ZWxzW21hcFpvb21MZXZlbF19XG4gICAgICAgICAgZmFjdG9yaWVzR3JvdXA9e2ZhY3Rvcmllc0NsdXN0ZXJHcm91cH1cbiAgICAgICAgICB3d3Rwc0dyb3VwPXt3d3Rwc0xheWVyR3JvdXB9XG4gICAgICAgICAgY29sbGVjdG9yc0dyb3VwPXtjb2xsZWN0b3JzTGF5ZXJHcm91cH1cbiAgICAgICAgICBmb3JFdmVudHNWaWV3PXtmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICApO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgLy8gY29uc3QgYWN0aXZhdGVab29tQ29udHJvbEZvckljb25zID0gdXNlTWVtbygoKSA9PiB7XG4gIC8vICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiYgaWNvblpvb21Db250cm9sKG1hcFJlZi5jdXJyZW50KTtcbiAgLy8gfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnRdKTtcblxuICBjb25zdCB0cmFja0xheWVyYm94ID0gKCkgPT4ge1xuICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGdlcy1jaGVja2JveCcpO1xuICAgIGlmIChjaGVja2JveCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgc2V0RWRnZXNDaGVja2JveChjaGVja2JveC5jaGVja2VkKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JFdmVudHNWaWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7ZWRnZXNDaGVja2JveCAmJiAoXG4gICAgICAgICAgPEVkZ2VzXG4gICAgICAgICAgICBlZGdlcz17ZWRnZXMhfVxuICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgICBwb2ludHM9e3BvaW50cyF9XG4gICAgICAgICAgICBoaWRlRWRnZXM9e2hpZGVFZGdlc31cbiAgICAgICAgICAgIGhpZGVBcnJvd3M9e3RydWV9XG4gICAgICAgICAgICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM9e2luY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXN9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge21lbW9pemVkUG9pbnRzfVxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gPD57bWVtb2l6ZWRQb2ludHN9PC8+O1xuICAgIHN3aXRjaCAoem9vbUxldmVsc1ttYXBab29tTGV2ZWxdKSB7XG4gICAgICBjYXNlICdTbWFsbCc6XG4gICAgICBjYXNlICdNZWRpdW0nOlxuICAgICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgJ01MYXJnZSc6XG4gICAgICAvLyBjYXNlICdMYXJnZSc6XG4gICAgICAvLyBjYXNlICdYTGFyZ2UnOlxuICAgICAgLy8gZGVmYXVsdDpcbiAgICAgIC8vICAgcGF5bG9hZCA9IDw+e21lbW9pemVkUG9pbnRzfTwvPjtcbiAgICAgIC8vICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRab29tQ29udHJvbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSBmb3JFdmVudHNWaWV3XG4gICAgICA/IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKVxuICAgICAgOiB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcygpO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH0sIFtcbiAgICBtYXBab29tTGV2ZWwsXG4gICAgZXZlbnRzRGF0YS5pc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgcG9pbnRzLFxuICAgIG1hcFJlZi5jdXJyZW50LFxuICAgIGVkZ2VzQ2hlY2tib3gsXG4gIF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkRXZlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG4gICAgcmV0dXJuIChcbiAgICAgIDxFdmVudFxuICAgICAgICBldmVudD17Zm9jdXNlZEV2ZW50ISB8fCBob3ZlcmVkRXZlbnQhfVxuICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgZWRnZXM9e2VkZ2VzIX1cbiAgICAgICAgcG9pbnRzPXtwb2ludHMhfVxuICAgICAgICBpbmNsdWRlTmV0d29yaz17IWhvdmVyZWRFdmVudFByZXNlbnR9XG4gICAgICAvPlxuICAgICk7XG4gIH0sIFtmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICB9O1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluaXRpYWxpemVNYXAoXG4gICAgICBtYXBab29tTGV2ZWwsXG4gICAgICBtYXBCb3hTdHlsZSxcbiAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgbWFwUmVmLFxuICAgICAgZGlzcGF0Y2gsXG4gICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgIGFyZWFUb0NlbnRlckJ5LFxuICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgIHRydWUsXG4gICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIC8vIGZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gd3d0cHNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAvLyBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gYXJlYXNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoZmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgLy8gbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICAvLyBkaXNwYXRjaChzdG9yZU1hcCh1bmRlZmluZWQpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgICBtYXBCb3hTdHlsZSxcbiAgICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICAgIG1hcFJlZixcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgICB0cnVlLFxuICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgdHJhY2tMYXllcmJveCgpO1xuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNsaWNrZWQgPSBmYWxzZTtcblxuICAgIG1hcFJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyPy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkSXRlbSAmJlxuICAgICAgICBsYXllci5pc1BvcHVwT3BlbigpID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2snKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllciBpbnN0YW5jZW9mIEwuUG9seWdvbikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwia2QtbWFwLWNvbnRhaW5lclwiIHN0eWxlPXtzdHlsZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCBtYXAtY29udGFpbmVyICR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnbWFwLWNvbnRhaW5lci0tc2lkZW5hdi1jb2xsYXBzZWQnXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8ZGl2IGlkPVwibWFwXCI+PC9kaXY+XG4gICAgICAgICAge3Nob3VsZExvYWRNYXBPYmplY3RzKGdsb2JhbF9kYXRhLCBtYXBSZWYsIGVkZ2VzLCBwb2ludHMpICYmIChcbiAgICAgICAgICAgIDxBcmVhUG9seWdvbnNcbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICBhcmVhVG9DZW50ZXJCeT17YXJlYVRvQ2VudGVyQnl9XG4gICAgICAgICAgICAgIG1hcFpvb209e21hcFpvb21MZXZlbH1cbiAgICAgICAgICAgICAgcmVyZW5kZXI9e3pvb21MZXZlbHNbbWFwWm9vbUxldmVsXX1cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBmZWF0dXJlR3JvdXA9e2FyZWFzTGF5ZXJHcm91cH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgIGVkZ2VzLFxuICAgICAgICAgICAgYXJlYXMsXG4gICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgIG1hcFJlZixcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICApICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHttZW1vaXplZEV2ZW50fVxuICAgICAgICAgICAgICB7bWVtb2l6ZWRab29tQ29udHJvbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxDQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFPQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFPQSxJQUFBRyxjQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFGLHNCQUFBLENBQUFKLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsTUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsU0FBQSxHQUFBVCxPQUFBO0FBUUEsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsS0FBQSxHQUFBUCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVksWUFBQSxHQUFBWixPQUFBO0FBQXFFLFNBQUFhLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFB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
|