@kando-env/kando-ui 1.2.377 → 1.2.379
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 +36 -73
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +25 -35
- package/lib/Widgets/EventsRow/EventsRow.js +27 -39
- package/lib/Widgets/Map/GraphUtils.js +3 -3
- package/lib/Widgets/Map/Map.js +130 -117
- package/lib/Widgets/Map/MapUtils.js +116 -67
- package/lib/Widgets/Map/areas/AreaPolygon.js +53 -77
- package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
- package/lib/Widgets/Map/areas/AreaUtils.js +47 -46
- package/lib/Widgets/Map/areas/Patterns.js +4 -4
- package/lib/Widgets/Map/edges/Edge.js +39 -38
- package/lib/Widgets/Map/edges/Edges.js +24 -24
- package/lib/Widgets/Map/edges/arrows/Arrows.js +23 -44
- package/lib/Widgets/Map/events/Event.js +17 -17
- package/lib/Widgets/Map/events/EventIndicator.js +65 -60
- package/lib/Widgets/Map/events/EventPath.js +24 -22
- package/lib/Widgets/Map/events/EventUtils.js +60 -80
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -18
- package/lib/Widgets/Map/events/PointOfEvent.js +29 -34
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +30 -37
- package/lib/Widgets/Map/events/Snail.js +19 -20
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +93 -86
- package/lib/Widgets/Map/map/FloatingGraph.js +22 -18
- package/lib/Widgets/Map/map/GraphDateButton.js +25 -17
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +13 -12
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -15
- package/lib/Widgets/Map/points/PointIcon.js +22 -15
- package/lib/Widgets/Map/points/PointMarker.js +71 -87
- package/lib/Widgets/Map/points/PointMarkers.js +45 -66
- package/lib/Widgets/Map/points/PointUtils.js +146 -83
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +31 -47
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -28
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -12
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/Areas.js +31 -60
- 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 +11 -8
- package/lib/Widgets/MostPolluting/Factories/Factories.js +39 -70
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -18
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +12 -10
- 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 +32 -29
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +18 -22
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +6 -4
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -4
- package/lib/Widgets/MostPolluting/assets/index.js +10 -10
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +19 -13
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +35 -30
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +45 -35
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +54 -50
- package/lib/Widgets/MostPolluting/styles.js +3 -3
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +7 -5
- package/lib/Widgets/PotentialImpactSummary/Icon.js +8 -6
- package/lib/Widgets/PotentialImpactSummary/index.js +19 -27
- package/lib/Widgets/PotentialImpactSummary/index.test.js +47 -52
- package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +9 -7
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +22 -17
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +35 -32
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -24
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -37
- package/lib/Widgets/QualitySummary/QualitySummary.js +9 -13
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
- package/lib/Widgets/QualitySummary/styles.js +23 -15
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -13
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +27 -26
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +30 -47
- package/lib/Widgets/UtilityInformation/styles.js +34 -25
- 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 +6 -4
- package/lib/components/ContentLoader/ContentLoader.js +11 -9
- package/lib/components/ContentLoader/index.js +1 -1
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +13 -12
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
- package/lib/components/CustomInputs/DoubleTabs/styles.js +20 -12
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +13 -20
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
- package/lib/components/CustomInputs/Search/Search.js +42 -63
- package/lib/components/CustomInputs/Select/Select.js +45 -58
- package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
- package/lib/components/DamageType/DamageType.js +35 -57
- package/lib/components/DataLoaderError/DataLoaderError.js +8 -6
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +9 -10
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +70 -71
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +27 -37
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +10 -12
- 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 +27 -41
- package/lib/components/Events/Events.js +41 -58
- package/lib/components/Graph/Graph.js +77 -96
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +25 -33
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
- package/lib/components/Header/DoubleTabs/styles.js +4 -4
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.stories.js +3 -5
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +96 -205
- package/lib/components/Header/InfoBar/InfoBar.js +74 -103
- package/lib/components/Header/InfoBar/Search/Control.js +9 -9
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -5
- package/lib/components/Header/InfoBar/Search/Search.js +16 -21
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -33
- package/lib/components/Header/InfoBar/Search/searchStyle.js +41 -49
- package/lib/components/Header/InfoBar/TimeFilter.js +11 -14
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +64 -89
- package/lib/components/Header/Slideshow/Slideshow.js +68 -90
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +6 -4
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +21 -23
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +37 -43
- package/lib/components/Header/Toolbar/Toolbar.js +55 -74
- package/lib/components/InfoBar/InfoBar.js +10 -23
- package/lib/components/InfoBar/InfoBar.stories.js +3 -5
- package/lib/components/KandoModal/KandoModal.js +27 -41
- package/lib/components/Link.js +8 -7
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -8
- package/lib/components/Links/StyledLink/StyledLink.js +12 -12
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +11 -10
- package/lib/components/LiveEvents/CarouselSlide.js +9 -7
- package/lib/components/LiveEvents/LiveEvents.js +5 -3
- package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -29
- package/lib/components/Map/Map.js +20 -23
- package/lib/components/Modal/Modal.js +9 -9
- package/lib/components/NarrowHeader.js +17 -31
- package/lib/components/PointInfo/PointInfo.js +19 -17
- package/lib/components/PopupModal/PopupModal.js +12 -16
- package/lib/components/PopupModal/PopupModal.stories.js +15 -19
- package/lib/components/Sector/Sector.js +8 -6
- package/lib/components/Sector/Sector.test.js +19 -20
- package/lib/components/Sector/sectorIcons.js +2 -2
- package/lib/components/SevereEvent/Eta/Eta.js +49 -52
- package/lib/components/SevereEvent/Eta/styles.js +10 -6
- package/lib/components/SevereEvent/SevereEvent.js +30 -37
- package/lib/components/Spinner/Spinner.js +8 -8
- package/lib/components/Spinner/Spinner.stories.js +4 -6
- package/lib/components/Spinner/styles.js +22 -14
- package/lib/components/Tabs/Tabs.js +21 -29
- package/lib/components/Tabs/Tabs.stories.js +4 -6
- package/lib/components/Tabs/assets/index.js +5 -5
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -15
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +40 -51
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +20 -25
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
- package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -25
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -32
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
- package/lib/components/TimeRangeSelector/constants.js +3 -3
- package/lib/components/Toggle/Toggle.js +12 -17
- package/lib/components/TrendGraph/TrendGraph.js +23 -39
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
- package/lib/development-environment/index.js +8 -12
- package/lib/development-environment/mock/browser.js +2 -4
- package/lib/development-environment/mock/get.js +8 -10
- 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 +13 -22
- package/lib/development-environment/togly/ToglyItem.js +36 -31
- package/lib/development-environment/togly/init.js +2 -2
- package/lib/development-environment/togly/macro.js +14 -10
- package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
- package/lib/development-environment/togly/useLocalStorage.js +13 -18
- package/lib/hooks/useApi.js +19 -55
- package/lib/hooks/useApiWithDashboardQuery.js +30 -49
- package/lib/hooks/useClickOutside.js +3 -3
- package/lib/hooks/useInitializeHeaders.js +5 -5
- package/lib/hooks/useKandoFetch.js +16 -29
- package/lib/hooks/useMap.js +22 -34
- package/lib/hooks/useNavContext.js +22 -26
- package/lib/hooks/useRemoveExistingLayers.js +6 -6
- package/lib/hooks/useUpdateEventBodyTail.js +13 -17
- package/lib/hooks/useUserTimeZone.js +33 -30
- package/lib/hooks/useUserTimeZone.test.js +19 -22
- package/lib/hooks/useWindowSize.js +7 -14
- package/lib/index.js +11 -12
- package/lib/macros/getVersion.js +3 -3
- package/lib/pages/AreaPage/AreaPage.js +34 -67
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -17
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +33 -30
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +17 -25
- 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 +40 -46
- package/lib/pages/CannyWidget/Feedback.js +13 -13
- package/lib/pages/CovidPage/CovidPage.js +8 -13
- package/lib/pages/CovidPage/components/Body.js +25 -27
- package/lib/pages/CovidPage/components/Map.js +29 -39
- package/lib/pages/CovidPage/components/Sidebar.js +16 -15
- package/lib/pages/CovidPage/components/Summary.js +20 -27
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
- package/lib/pages/CovidPage/components/areas/Area.js +29 -40
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +55 -46
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
- package/lib/pages/CovidPage/components/areas/AreasList.js +34 -46
- package/lib/pages/CovidPage/components/areas/Sort.js +11 -14
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
- package/lib/pages/DashboardMap/AreaCard.js +28 -28
- package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
- package/lib/pages/DashboardMap/Capacity.js +31 -80
- package/lib/pages/DashboardMap/FactoryCard.js +34 -28
- package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
- package/lib/pages/DashboardMap/List.js +81 -103
- package/lib/pages/DashboardMap/ListContext.js +15 -19
- package/lib/pages/DashboardMap/Loader.js +2 -2
- package/lib/pages/DashboardMap/SeverityBadge.js +10 -18
- package/lib/pages/DashboardMap/WWTPMap.js +91 -90
- package/lib/pages/DashboardMap/WaterDischarge.js +10 -10
- package/lib/pages/DashboardMap/Widget.js +54 -71
- package/lib/pages/DashboardMap/utils.js +48 -65
- package/lib/pages/EventsPage/Body/Body.js +20 -15
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -19
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -35
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +8 -6
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -7
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +21 -30
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +53 -64
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +19 -31
- package/lib/pages/EventsPage/EventsPage.js +7 -10
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -38
- package/lib/pages/EventsPage/events/MoreInfo.js +17 -16
- package/lib/pages/EventsPage/events/Sidebar.js +21 -16
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
- package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +17 -20
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +30 -35
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +40 -37
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +43 -42
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
- package/lib/pages/EventsPage/events/event_info/EventSection.js +17 -19
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -47
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -33
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +29 -36
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +4 -6
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +7 -9
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +22 -21
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +12 -19
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +5 -3
- package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +11 -9
- package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -26
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +12 -8
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +6 -4
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +12 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +10 -8
- package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +10 -12
- package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +5 -3
- package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +7 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +7 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +6 -4
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +11 -9
- 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 +7 -5
- package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +17 -15
- package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
- package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +10 -8
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +16 -11
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +9 -8
- 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 +25 -38
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +29 -36
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +11 -9
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +15 -17
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -30
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +23 -26
- package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
- package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -19
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
- package/lib/pages/EventsPage/events/events_list/EventsList.js +124 -145
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +40 -55
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +79 -115
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +60 -77
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +38 -41
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +29 -36
- package/lib/pages/EventsPage/events/events_list/Sort.js +13 -16
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +13 -20
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +6 -4
- package/lib/pages/ImportFileWizard/ImportFile.js +20 -22
- package/lib/pages/ImportFileWizard/ResponseBody.js +24 -33
- package/lib/pages/ImportFileWizard/ValidationForm.js +23 -22
- package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
- package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
- package/lib/pages/ImportGisPage/ImportGisContainer.js +21 -24
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +21 -23
- package/lib/pages/ImportGisPage/importGisUtils.js +13 -21
- package/lib/pages/ImportGisProcess/index.js +12 -15
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -12
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +17 -19
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +56 -65
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +6 -8
- package/lib/pages/NotificationsPage/Notification/Notification.js +16 -12
- package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
- package/lib/pages/NotificationsPage/Notifications.stories.js +4 -6
- package/lib/pages/NotificationsPage/NotificationsPage.js +18 -36
- package/lib/pages/NotificationsPage/assets/index.js +9 -9
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +71 -97
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +94 -63
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +14 -16
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +18 -16
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +17 -21
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +17 -21
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +18 -22
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +83 -69
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +18 -22
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +97 -95
- package/lib/pages/NotificationsPageV2/notificationUtils.js +54 -48
- package/lib/pages/OldSitePage/OldSitePage.js +57 -132
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -6
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -20
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -18
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -63
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -53
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -11
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +32 -28
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +27 -29
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +18 -12
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +28 -44
- package/lib/pages/ProfilePage/ProfilePage.js +121 -214
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +19 -16
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +28 -30
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -117
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +17 -20
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +12 -10
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +39 -41
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -26
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -15
- package/lib/pages/SamplingsPage/NavigationDropdown.js +45 -32
- package/lib/pages/SamplingsPage/NewSamplingAction.js +76 -100
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +129 -101
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +21 -22
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +34 -22
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -59
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -7
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +110 -194
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +49 -55
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +47 -43
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +49 -45
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +19 -20
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +10 -6
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +58 -54
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
- package/lib/pages/SamplingsPage/SamplingsPage.js +27 -33
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +50 -58
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +68 -76
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -4
- package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +14 -13
- package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +10 -13
- package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +14 -10
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -8
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +26 -23
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +14 -17
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +36 -32
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -24
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -70
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -26
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
- package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
- package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +29 -37
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -11
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +60 -59
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +30 -39
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +18 -12
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +49 -41
- package/lib/pages/SitePage/SitePage.js +45 -80
- package/lib/pages/UploadLabResult/index.js +13 -13
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +26 -35
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +6 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +9 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -48
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +13 -12
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -12
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +30 -31
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +26 -30
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +17 -18
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +27 -31
- package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
- package/lib/pages/WbeDashboard/GraphWrapper.js +30 -36
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +17 -19
- package/lib/pages/WbeDashboard/SearchInput.js +15 -20
- package/lib/pages/WbeDashboard/SummaryGraph.js +50 -76
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +19 -17
- package/lib/pages/WbeDashboard/Tabs.js +11 -11
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +151 -213
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +40 -48
- package/lib/pages/WwtpPage/DashboardCard.js +26 -23
- package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +26 -22
- package/lib/pages/WwtpPage/InletsCard/InletsCard.js +19 -18
- package/lib/pages/WwtpPage/Map.js +5 -3
- package/lib/pages/WwtpPage/OrganicCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -6
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +9 -8
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +18 -14
- package/lib/pages/WwtpPage/PredictionCard.js +2 -2
- package/lib/pages/WwtpPage/TrendCard.js +18 -19
- package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
- package/lib/pages/WwtpPage/WwtpPage.js +8 -8
- package/lib/pages/WwtpPage/WwtpPageContainer.js +21 -16
- package/lib/providers/Slideshow/SlideshowContext.js +11 -9
- package/lib/providers/Slideshow/SlideshowProvider.js +22 -38
- package/lib/providers/Slideshow/SlideshowRunner.js +17 -19
- package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -4
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -11
- 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 +7 -5
- package/lib/store/ImportGis/reducer.js +40 -29
- package/lib/store/WBE/actionTypes.js +2 -2
- package/lib/store/WBE/reducer.js +13 -9
- package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -14
- package/lib/store/areas/actionTypes.js +4 -4
- package/lib/store/areas/actions.js +7 -13
- package/lib/store/areas/reducer.js +8 -6
- package/lib/store/context/actionTypes.js +3 -3
- package/lib/store/context/actions.js +3 -3
- package/lib/store/context/contextMiddlewares.js +14 -16
- package/lib/store/context/reducer.js +13 -9
- package/lib/store/dashboard/dashboardSlice.js +18 -10
- package/lib/store/edges/actionTypes.js +5 -5
- package/lib/store/edges/actions.js +4 -8
- package/lib/store/edges/reducer.js +13 -17
- package/lib/store/events/actionTypes.js +17 -17
- package/lib/store/events/actions.js +3 -7
- package/lib/store/events/reducer.js +42 -49
- package/lib/store/global/actionTypes.js +11 -11
- package/lib/store/global/actions.js +8 -6
- package/lib/store/global/reducer.js +11 -10
- package/lib/store/permissions/permissionsSlice.js +12 -8
- package/lib/store/points/actionTypes.js +3 -3
- package/lib/store/points/actions.js +4 -8
- package/lib/store/points/reducer.js +7 -5
- package/lib/store/rootActionTypes.js +2 -2
- package/lib/store/rootReducer.js +17 -12
- package/lib/store/rootStore.js +5 -5
- package/lib/store/samplings/actionTypes.js +1 -1
- package/lib/store/samplings/reducer.js +16 -14
- package/lib/styles/StylesLayout.js +5 -3
- package/lib/styles/theme/theme.js +26 -27
- package/lib/test/mocks/browser.js +2 -4
- package/lib/test/test-utils.js +17 -15
- package/lib/ui-kit/Button/Button.js +128 -80
- package/lib/ui-kit/Button/Button.test.js +24 -29
- package/lib/ui-kit/Checkbox/Checkbox.js +30 -20
- package/lib/ui-kit/ContentCard/ContentCard.js +15 -18
- package/lib/ui-kit/Dashboard/Dashboard.js +25 -22
- package/lib/ui-kit/DropDown/DropDown.js +23 -24
- package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
- package/lib/ui-kit/DropDown/DropDownItem.js +24 -21
- package/lib/ui-kit/DropDown/DropdownToggle.js +12 -8
- package/lib/ui-kit/EmptyState/EmptyState.js +6 -4
- package/lib/ui-kit/IconAction/IconAction.js +7 -5
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +48 -64
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +69 -52
- package/lib/ui-kit/InletsPie/InletsPie.js +15 -13
- package/lib/ui-kit/InletsPie/options.js +6 -6
- package/lib/ui-kit/KandoList/KandoList.js +14 -12
- package/lib/ui-kit/KandoTable/KandoTable.js +48 -40
- package/lib/ui-kit/KandoTable/KandoTable.test.js +16 -22
- package/lib/ui-kit/Layout/Layout.js +6 -4
- package/lib/ui-kit/MobileInput/MobileInput.js +60 -50
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -6
- package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
- package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +27 -20
- package/lib/ui-kit/OrganicEvents/TextInfo.js +15 -10
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -8
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +14 -17
- 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 +54 -42
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +8 -7
- package/lib/ui-kit/Tooltip/Tooltip.js +14 -8
- package/lib/ui-kit/index.js +8 -8
- package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
- package/lib/ui-kit/siteName/SiteName.js +11 -8
- package/lib/utilities/ActionUtility.js +7 -7
- package/lib/utilities/Alert.js +21 -17
- package/lib/utilities/Analytics.js +11 -11
- package/lib/utilities/Array.js +4 -5
- package/lib/utilities/Enum.js +15 -51
- package/lib/utilities/ErrorBoundary.js +27 -41
- package/lib/utilities/File.js +40 -69
- package/lib/utilities/GetDir.js +8 -7
- package/lib/utilities/KandoDate.js +7 -15
- package/lib/utilities/KandoModal.js +16 -26
- package/lib/utilities/LocalStorage.js +8 -10
- package/lib/utilities/ThousandsToK.js +3 -3
- package/lib/utilities/TimeFormat.js +21 -20
- package/lib/utilities/Truncate.js +17 -25
- package/lib/utilities/edgesMath.js +14 -15
- package/lib/utilities/i18n.js +3 -3
- package/lib/utilities/kql.js +12 -14
- package/lib/utilities/map/icons.js +3 -3
- package/lib/utilities/polylinedecorator.js +87 -112
- 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 +61 -59
- package/package.json +1 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.updatePoint = exports.Widget = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
13
10
|
var _WWTPDashboardSlice = require("../../store/WWTPDashboard/WWTPDashboardSlice");
|
|
@@ -15,85 +12,73 @@ var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
|
|
|
15
12
|
var _InletsPie = _interopRequireDefault(require("../../ui-kit/InletsPie"));
|
|
16
13
|
var _utils = require("./utils");
|
|
17
14
|
var _Capacity = require("./Capacity");
|
|
18
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
|
19
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
const updatePoint = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
point,
|
|
20
|
+
listItems,
|
|
21
|
+
areas,
|
|
22
|
+
points
|
|
23
|
+
} = _ref;
|
|
24
|
+
const areaIds = listItems.map(item => item.id);
|
|
25
|
+
const subAreas = getAreas(areaIds, areas);
|
|
26
|
+
return {
|
|
27
|
+
...point,
|
|
30
28
|
factories: subAreas.length > 0 ? [] : getPoints(listItems, points),
|
|
31
29
|
sub_areas: subAreas,
|
|
32
30
|
shape_data: [[point.latitude, point.longitude]]
|
|
33
|
-
}
|
|
31
|
+
};
|
|
34
32
|
};
|
|
35
33
|
exports.updatePoint = updatePoint;
|
|
36
|
-
|
|
34
|
+
const getAreas = (areaIds, areas) => {
|
|
37
35
|
if (areaIds.length === 0 || areas === undefined || areas === null || areas.length === 0) return [];
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return area.area_id === id;
|
|
41
|
-
});
|
|
36
|
+
const returnedAreas = areaIds.map(id => {
|
|
37
|
+
const correspondingArea = areas.find(area => area.area_id === id);
|
|
42
38
|
return correspondingArea;
|
|
43
39
|
});
|
|
44
40
|
return returnedAreas;
|
|
45
41
|
};
|
|
46
|
-
|
|
42
|
+
const getPoints = (listItems, points) => {
|
|
47
43
|
if (listItems === null || points === undefined || points.length === 0) return [];
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return point.id === item.id;
|
|
51
|
-
});
|
|
44
|
+
const returnedPoints = listItems.map(item => {
|
|
45
|
+
const correspondingPoint = points.find(point => point.id === item.id);
|
|
52
46
|
return correspondingPoint;
|
|
53
47
|
});
|
|
54
48
|
return returnedPoints;
|
|
55
49
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
setPoint = _useState4[1];
|
|
73
|
-
var _useState5 = (0, _react.useState)(''),
|
|
74
|
-
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
75
|
-
buttonName = _useState6[0],
|
|
76
|
-
setButtonName = _useState6[1];
|
|
77
|
-
var _useState7 = (0, _react.useState)([]),
|
|
78
|
-
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
79
|
-
listItems = _useState8[0],
|
|
80
|
-
setListItems = _useState8[1];
|
|
81
|
-
var handleClick = function handleClick() {
|
|
50
|
+
const Widget = props => {
|
|
51
|
+
const {
|
|
52
|
+
object,
|
|
53
|
+
dispatch,
|
|
54
|
+
points,
|
|
55
|
+
areas,
|
|
56
|
+
map,
|
|
57
|
+
global_data,
|
|
58
|
+
listData,
|
|
59
|
+
history
|
|
60
|
+
} = props;
|
|
61
|
+
const [area, setArea] = (0, _react.useState)(null);
|
|
62
|
+
const [point, setPoint] = (0, _react.useState)(null);
|
|
63
|
+
const [buttonName, setButtonName] = (0, _react.useState)('');
|
|
64
|
+
const [listItems, setListItems] = (0, _react.useState)([]);
|
|
65
|
+
const handleClick = () => {
|
|
82
66
|
map.closePopup();
|
|
83
|
-
|
|
67
|
+
const clickedObject = {
|
|
68
|
+
...object,
|
|
84
69
|
clicked: true
|
|
85
|
-
}
|
|
70
|
+
};
|
|
86
71
|
(0, _utils.updateHistory)(clickedObject, history);
|
|
87
72
|
(0, _Capacity.setFocusedItem)(clickedObject, listItems, points, areas, dispatch, _WWTPDashboardSlice.setFocusedArea, true);
|
|
88
73
|
sendButtonClickedAnalytics();
|
|
89
74
|
};
|
|
90
|
-
|
|
75
|
+
const sendButtonClickedAnalytics = () => {
|
|
91
76
|
(0, _utils.sendAnalyticsEvent)('Map view - Popup drilldown clicked', buttonName, {
|
|
92
77
|
utility_name: global_data.waterAuthorityName
|
|
93
78
|
});
|
|
94
79
|
};
|
|
95
|
-
|
|
96
|
-
|
|
80
|
+
const getButtonType = type => {
|
|
81
|
+
let rc;
|
|
97
82
|
switch (type.toLowerCase()) {
|
|
98
83
|
case 'area':
|
|
99
84
|
case 'varea':
|
|
@@ -107,8 +92,8 @@ var Widget = function Widget(props) {
|
|
|
107
92
|
}
|
|
108
93
|
return rc;
|
|
109
94
|
};
|
|
110
|
-
|
|
111
|
-
|
|
95
|
+
const title = () => {
|
|
96
|
+
let payload = '';
|
|
112
97
|
if (point) {
|
|
113
98
|
payload = point.name;
|
|
114
99
|
} else {
|
|
@@ -118,32 +103,30 @@ var Widget = function Widget(props) {
|
|
|
118
103
|
}
|
|
119
104
|
return payload;
|
|
120
105
|
};
|
|
121
|
-
|
|
106
|
+
const buttonTitle = () => {
|
|
122
107
|
if (buttonName === '') return '';
|
|
123
|
-
return _i18n.default.t(
|
|
108
|
+
return _i18n.default.t(`wwtpPage.${buttonName}`);
|
|
124
109
|
};
|
|
125
|
-
(0, _react.useEffect)(
|
|
126
|
-
|
|
110
|
+
(0, _react.useEffect)(() => {
|
|
111
|
+
let isAPoint = object.forWWTPMap !== undefined;
|
|
127
112
|
if (isAPoint) {
|
|
128
113
|
setPoint(object);
|
|
129
114
|
} else {
|
|
130
115
|
setArea(object);
|
|
131
116
|
}
|
|
132
117
|
}, [object]);
|
|
133
|
-
(0, _react.useEffect)(
|
|
118
|
+
(0, _react.useEffect)(() => {
|
|
134
119
|
if (listData === undefined) return;
|
|
135
120
|
setListItems(listData === null || listData === void 0 ? void 0 : listData.data);
|
|
136
121
|
if (listData.data.length > 0) {
|
|
137
122
|
setButtonName(getButtonType(listData.data[0].type));
|
|
138
123
|
}
|
|
139
124
|
}, [listData]);
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
125
|
+
const widgetContent = () => {
|
|
126
|
+
const data = listData === null || listData === void 0 ? void 0 : listData.data;
|
|
127
|
+
const showButton = (data === null || data === void 0 ? void 0 : data.length) > 0;
|
|
143
128
|
return /*#__PURE__*/_react.default.createElement("div", null, showButton && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
144
|
-
onClick:
|
|
145
|
-
return handleClick();
|
|
146
|
-
},
|
|
129
|
+
onClick: () => handleClick(),
|
|
147
130
|
className: 'childrenButton rounded-pill btn-light'
|
|
148
131
|
}, buttonTitle()), /*#__PURE__*/_react.default.createElement(_InletsPie.default, {
|
|
149
132
|
inlets: listItems
|
|
@@ -154,4 +137,4 @@ var Widget = function Widget(props) {
|
|
|
154
137
|
}, widgetContent()));
|
|
155
138
|
};
|
|
156
139
|
exports.Widget = Widget;
|
|
157
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9DYXBhY2l0eSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBkYXRlUG9pbnQiLCJfcmVmIiwicG9pbnQiLCJsaXN0SXRlbXMiLCJhcmVhcyIsInBvaW50cyIsImFyZWFJZHMiLCJtYXAiLCJpdGVtIiwiaWQiLCJzdWJBcmVhcyIsImdldEFyZWFzIiwiX29iamVjdFNwcmVhZDIiLCJmYWN0b3JpZXMiLCJsZW5ndGgiLCJnZXRQb2ludHMiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwicmV0dXJuZWRBcmVhcyIsImNvcnJlc3BvbmRpbmdBcmVhIiwiZmluZCIsImFyZWEiLCJhcmVhX2lkIiwicmV0dXJuZWRQb2ludHMiLCJjb3JyZXNwb25kaW5nUG9pbnQiLCJXaWRnZXQiLCJwcm9wcyIsIm9iamVjdCIsImRpc3BhdGNoIiwiZ2xvYmFsX2RhdGEiLCJsaXN0RGF0YSIsImhpc3RvcnkiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRBcmVhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYnV0dG9uTmFtZSIsInNldEJ1dHRvbk5hbWUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNldExpc3RJdGVtcyIsImhhbmRsZUNsaWNrIiwiY2xvc2VQb3B1cCIsImNsaWNrZWRPYmplY3QiLCJjbGlja2VkIiwidXBkYXRlSGlzdG9yeSIsInNldEZvY3VzZWRJdGVtIiwic2V0Rm9jdXNlZEFyZWEiLCJzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcyIsInNlbmRBbmFseXRpY3NFdmVudCIsInV0aWxpdHlfbmFtZSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImdldEJ1dHRvblR5cGUiLCJ0eXBlIiwicmMiLCJ0b0xvd2VyQ2FzZSIsInRpdGxlIiwicGF5bG9hZCIsIm5hbWUiLCJhcmVhX25hbWUiLCJidXR0b25UaXRsZSIsImkxOG4iLCJ0IiwiY29uY2F0IiwidXNlRWZmZWN0IiwiaXNBUG9pbnQiLCJmb3JXV1RQTWFwIiwiZGF0YSIsIndpZGdldENvbnRlbnQiLCJzaG93QnV0dG9uIiwiY3JlYXRlRWxlbWVudCIsIkJ1dHRvbiIsIm9uQ2xpY2siLCJjbGFzc05hbWUiLCJpbmxldHMiLCJGcmFnbWVudCIsIkNhcmQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL1dpZGdldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIENhcmQgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgc2V0Rm9jdXNlZEFyZWEgfSBmcm9tICcuLi8uLi9zdG9yZS9XV1RQRGFzaGJvYXJkL1dXVFBEYXNoYm9hcmRTbGljZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgSW5sZXRzUGllIGZyb20gJy4uLy4uL3VpLWtpdC9JbmxldHNQaWUnO1xuaW1wb3J0IHsgc2VuZEFuYWx5dGljc0V2ZW50LCB1cGRhdGVIaXN0b3J5IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBzZXRGb2N1c2VkSXRlbSB9IGZyb20gJy4vQ2FwYWNpdHknO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgb2JqZWN0OiBhbnk7XG4gIGRpc3BhdGNoOiBhbnk7XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBhcmVhcz86IElBcmVhW107XG4gIG1hcDtcbiAgZ2xvYmFsX2RhdGE7XG4gIGxpc3REYXRhOiBhbnk7XG4gIGhpc3Rvcnk6IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQb2ludCA9ICh7IHBvaW50LCBsaXN0SXRlbXMsIGFyZWFzLCBwb2ludHMgfSkgPT4ge1xuICBjb25zdCBhcmVhSWRzID0gbGlzdEl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG4gIGNvbnN0IHN1YkFyZWFzID0gZ2V0QXJlYXMoYXJlYUlkcywgYXJlYXMpO1xuICByZXR1cm4ge1xuICAgIC4uLnBvaW50LFxuICAgIGZhY3Rvcmllczogc3ViQXJlYXMubGVuZ3RoID4gMCA/IFtdIDogZ2V0UG9pbnRzKGxpc3RJdGVtcywgcG9pbnRzKSxcbiAgICBzdWJfYXJlYXM6IHN1YkFyZWFzLFxuICAgIHNoYXBlX2RhdGE6IFtbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV1dLFxuICB9O1xufTtcblxuY29uc3QgZ2V0QXJlYXMgPSAoYXJlYUlkczogYW55W10sIGFyZWFzKSA9PiB7XG4gIGlmIChcbiAgICBhcmVhSWRzLmxlbmd0aCA9PT0gMCB8fFxuICAgIGFyZWFzID09PSB1bmRlZmluZWQgfHxcbiAgICBhcmVhcyA9PT0gbnVsbCB8fFxuICAgIGFyZWFzLmxlbmd0aCA9PT0gMFxuICApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IHJldHVybmVkQXJlYXMgPSBhcmVhSWRzLm1hcCgoaWQpID0+IHtcbiAgICBjb25zdCBjb3JyZXNwb25kaW5nQXJlYSA9IGFyZWFzLmZpbmQoKGFyZWEpID0+IGFyZWEuYXJlYV9pZCA9PT0gaWQpO1xuICAgIHJldHVybiBjb3JyZXNwb25kaW5nQXJlYTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJldHVybmVkQXJlYXM7XG59O1xuXG5jb25zdCBnZXRQb2ludHMgPSAobGlzdEl0ZW1zLCBwb2ludHMpID0+IHtcbiAgaWYgKGxpc3RJdGVtcyA9PT0gbnVsbCB8fCBwb2ludHMgPT09IHVuZGVmaW5lZCB8fCBwb2ludHMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBbXTtcblxuICBjb25zdCByZXR1cm5lZFBvaW50cyA9IGxpc3RJdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICBjb25zdCBjb3JyZXNwb25kaW5nUG9pbnQgPSBwb2ludHMuZmluZCgocG9pbnQpID0+IHBvaW50LmlkID09PSBpdGVtLmlkKTtcbiAgICByZXR1cm4gY29ycmVzcG9uZGluZ1BvaW50O1xuICB9KTtcblxuICByZXR1cm4gcmV0dXJuZWRQb2ludHM7XG59O1xuZXhwb3J0IGNvbnN0IFdpZGdldDogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgb2JqZWN0LFxuICAgIGRpc3BhdGNoLFxuICAgIHBvaW50cyxcbiAgICBhcmVhcyxcbiAgICBtYXAsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgbGlzdERhdGEsXG4gICAgaGlzdG9yeSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbYXJlYSwgc2V0QXJlYV0gPSB1c2VTdGF0ZTxJQXJlYSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcG9pbnQsIHNldFBvaW50XSA9IHVzZVN0YXRlPElQb2ludCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYnV0dG9uTmFtZSwgc2V0QnV0dG9uTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW2xpc3RJdGVtcywgc2V0TGlzdEl0ZW1zXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgICBjb25zdCBjbGlja2VkT2JqZWN0ID0geyAuLi5vYmplY3QsIGNsaWNrZWQ6IHRydWUgfTtcbiAgICB1cGRhdGVIaXN0b3J5KGNsaWNrZWRPYmplY3QsIGhpc3RvcnkpO1xuICAgIHNldEZvY3VzZWRJdGVtKFxuICAgICAgY2xpY2tlZE9iamVjdCxcbiAgICAgIGxpc3RJdGVtcyxcbiAgICAgIHBvaW50cyxcbiAgICAgIGFyZWFzLFxuICAgICAgZGlzcGF0Y2gsXG4gICAgICBzZXRGb2N1c2VkQXJlYSxcbiAgICAgIHRydWUsXG4gICAgKTtcbiAgICBzZW5kQnV0dG9uQ2xpY2tlZEFuYWx5dGljcygpO1xuICB9O1xuXG4gIGNvbnN0IHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzID0gKCkgPT4ge1xuICAgIHNlbmRBbmFseXRpY3NFdmVudCgnTWFwIHZpZXcgLSBQb3B1cCBkcmlsbGRvd24gY2xpY2tlZCcsIGJ1dHRvbk5hbWUsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGdldEJ1dHRvblR5cGUgPSAodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgbGV0IHJjO1xuXG4gICAgc3dpdGNoICh0eXBlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2FyZWEnOlxuICAgICAgY2FzZSAndmFyZWEnOlxuICAgICAgICByYyA9ICd2aWV3X3N1Yl9hcmVhcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmFjdG9yeSc6XG4gICAgICAgIHJjID0gJ3ZpZXdfZmFjdG9yaWVzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByYyA9ICd2aWV3X2lubGV0cyc7XG4gICAgfVxuICAgIHJldHVybiByYztcbiAgfTtcblxuICBjb25zdCB0aXRsZSA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9ICcnO1xuICAgIGlmIChwb2ludCkge1xuICAgICAgcGF5bG9hZCA9IHBvaW50Lm5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhcmVhKSB7XG4gICAgICAgIHBheWxvYWQgPSBhcmVhLmFyZWFfbmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3QgYnV0dG9uVGl0bGUgPSAoKSA9PiB7XG4gICAgaWYgKGJ1dHRvbk5hbWUgPT09ICcnKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGkxOG4udChgd3d0cFBhZ2UuJHtidXR0b25OYW1lfWApO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGlzQVBvaW50ID0gb2JqZWN0LmZvcldXVFBNYXAgIT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc0FQb2ludCkge1xuICAgICAgc2V0UG9pbnQob2JqZWN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXJlYShvYmplY3QpO1xuICAgIH1cbiAgfSwgW29iamVjdF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3REYXRhID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIHNldExpc3RJdGVtcyhsaXN0RGF0YT8uZGF0YSk7XG4gICAgaWYgKGxpc3REYXRhLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgc2V0QnV0dG9uTmFtZShnZXRCdXR0b25UeXBlKGxpc3REYXRhLmRhdGFbMF0udHlwZSkpO1xuICAgIH1cbiAgfSwgW2xpc3REYXRhXSk7XG5cbiAgY29uc3Qgd2lkZ2V0Q29udGVudCA9ICgpID0+IHtcbiAgICBjb25zdCBkYXRhID0gbGlzdERhdGE/LmRhdGE7XG4gICAgY29uc3Qgc2hvd0J1dHRvbiA9IGRhdGE/Lmxlbmd0aCA+IDA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAge3Nob3dCdXR0b24gJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrKCl9XG4gICAgICAgICAgICBjbGFzc05hbWU9eydjaGlsZHJlbkJ1dHRvbiByb3VuZGVkLXBpbGwgYnRuLWxpZ2h0J31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YnV0dG9uVGl0bGUoKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgICAgPElubGV0c1BpZSBpbmxldHM9e2xpc3RJdGVtc30gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgzPnt0aXRsZSgpfTwvaDM+XG4gICAgICA8Q2FyZCBjbGFzc05hbWU9XCJiZy13aGl0ZSB3aWRnZXQtY29udGFpbmVyXCI+e3dpZGdldENvbnRlbnQoKX08L0NhcmQ+XG4gICAgPC8+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUE0QyxTQUFBUSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVYsd0JBQUFjLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFhckMsSUFBTVcsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUFDLElBQUEsRUFBNEM7RUFBQSxJQUF0Q0MsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFBRUMsU0FBUyxHQUFBRixJQUFBLENBQVRFLFNBQVM7SUFBRUMsS0FBSyxHQUFBSCxJQUFBLENBQUxHLEtBQUs7SUFBRUMsTUFBTSxHQUFBSixJQUFBLENBQU5JLE1BQU07RUFDM0QsSUFBTUMsT0FBTyxHQUFHSCxTQUFTLENBQUNJLEdBQUcsQ0FBQyxVQUFDQyxJQUFJO0lBQUEsT0FBS0EsSUFBSSxDQUFDQyxFQUFFO0VBQUEsRUFBQztFQUNoRCxJQUFNQyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ0wsT0FBTyxFQUFFRixLQUFLLENBQUM7RUFDekMsV0FBQVEsY0FBQSxDQUFBM0IsT0FBQSxNQUFBMkIsY0FBQSxDQUFBM0IsT0FBQSxNQUNLaUIsS0FBSztJQUNSVyxTQUFTLEVBQUVILFFBQVEsQ0FBQ0ksTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUdDLFNBQVMsQ0FBQ1osU0FBUyxFQUFFRSxNQUFNLENBQUM7SUFDbEVXLFNBQVMsRUFBRU4sUUFBUTtJQUNuQk8sVUFBVSxFQUFFLENBQUMsQ0FBQ2YsS0FBSyxDQUFDZ0IsUUFBUSxFQUFFaEIsS0FBSyxDQUFDaUIsU0FBUyxDQUFDO0VBQUM7QUFFbkQsQ0FBQztBQUFDQyxPQUFBLENBQUFwQixXQUFBLEdBQUFBLFdBQUE7QUFFRixJQUFNVyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUwsT0FBYyxFQUFFRixLQUFLLEVBQUs7RUFDMUMsSUFDRUUsT0FBTyxDQUFDUSxNQUFNLEtBQUssQ0FBQyxJQUNwQlYsS0FBSyxLQUFLaUIsU0FBUyxJQUNuQmpCLEtBQUssS0FBSyxJQUFJLElBQ2RBLEtBQUssQ0FBQ1UsTUFBTSxLQUFLLENBQUMsRUFFbEIsT0FBTyxFQUFFO0VBRVgsSUFBTVEsYUFBYSxHQUFHaEIsT0FBTyxDQUFDQyxHQUFHLENBQUMsVUFBQ0UsRUFBRSxFQUFLO0lBQ3hDLElBQU1jLGlCQUFpQixHQUFHbkIsS0FBSyxDQUFDb0IsSUFBSSxDQUFDLFVBQUNDLElBQUk7TUFBQSxPQUFLQSxJQUFJLENBQUNDLE9BQU8sS0FBS2pCLEVBQUU7SUFBQSxFQUFDO0lBQ25FLE9BQU9jLGlCQUFpQjtFQUMxQixDQUFDLENBQUM7RUFFRixPQUFPRCxhQUFhO0FBQ3RCLENBQUM7QUFFRCxJQUFNUCxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSVosU0FBUyxFQUFFRSxNQUFNLEVBQUs7RUFDdkMsSUFBSUYsU0FBUyxLQUFLLElBQUksSUFBSUUsTUFBTSxLQUFLZ0IsU0FBUyxJQUFJaEIsTUFBTSxDQUFDUyxNQUFNLEtBQUssQ0FBQyxFQUNuRSxPQUFPLEVBQUU7RUFFWCxJQUFNYSxjQUFjLEdBQUd4QixTQUFTLENBQUNJLEdBQUcsQ0FBQyxVQUFDQyxJQUFJLEVBQUs7SUFDN0MsSUFBTW9CLGtCQUFrQixHQUFHdkIsTUFBTSxDQUFDbUIsSUFBSSxDQUFDLFVBQUN0QixLQUFLO01BQUEsT0FBS0EsS0FBSyxDQUFDTyxFQUFFLEtBQUtELElBQUksQ0FBQ0MsRUFBRTtJQUFBLEVBQUM7SUFDdkUsT0FBT21CLGtCQUFrQjtFQUMzQixDQUFDLENBQUM7RUFFRixPQUFPRCxjQUFjO0FBQ3ZCLENBQUM7QUFDTSxJQUFNRSxNQUF3QixHQUFHLFNBQTNCQSxNQUF3QkEsQ0FBSUMsS0FBSyxFQUFLO0VBQ2pELElBQ0VDLE1BQU0sR0FRSkQsS0FBSyxDQVJQQyxNQUFNO0lBQ05DLFFBQVEsR0FPTkYsS0FBSyxDQVBQRSxRQUFRO0lBQ1IzQixNQUFNLEdBTUp5QixLQUFLLENBTlB6QixNQUFNO0lBQ05ELEtBQUssR0FLSDBCLEtBQUssQ0FMUDFCLEtBQUs7SUFDTEcsR0FBRyxHQUlEdUIsS0FBSyxDQUpQdkIsR0FBRztJQUNIMEIsV0FBVyxHQUdUSCxLQUFLLENBSFBHLFdBQVc7SUFDWEMsUUFBUSxHQUVOSixLQUFLLENBRlBJLFFBQVE7SUFDUkMsT0FBTyxHQUNMTCxLQUFLLENBRFBLLE9BQU87RUFFVCxJQUFBQyxTQUFBLEdBQXdCLElBQUFDLGVBQVEsRUFBZSxJQUFJLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUF0RCxPQUFBLEVBQUFtRCxTQUFBO0lBQTdDWCxJQUFJLEdBQUFhLFVBQUE7SUFBRUUsT0FBTyxHQUFBRixVQUFBO0VBQ3BCLElBQUFHLFVBQUEsR0FBMEIsSUFBQUosZUFBUSxFQUFnQixJQUFJLENBQUM7SUFBQUssVUFBQSxPQUFBSCxlQUFBLENBQUF0RCxPQUFBLEVBQUF3RCxVQUFBO0lBQWhEdkMsS0FBSyxHQUFBd0MsVUFBQTtJQUFFQyxRQUFRLEdBQUFELFVBQUE7RUFDdEIsSUFBQUUsVUFBQSxHQUFvQyxJQUFBUCxlQUFRLEVBQVMsRUFBRSxDQUFDO0lBQUFRLFVBQUEsT0FBQU4sZUFBQSxDQUFBdEQsT0FBQSxFQUFBMkQsVUFBQTtJQUFqREUsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBRyxVQUFBLEdBQWtDLElBQUFYLGVBQVEsRUFBUSxFQUFFLENBQUM7SUFBQVksVUFBQSxPQUFBVixlQUFBLENBQUF0RCxPQUFBLEVBQUErRCxVQUFBO0lBQTlDN0MsU0FBUyxHQUFBOEMsVUFBQTtJQUFFQyxZQUFZLEdBQUFELFVBQUE7RUFFOUIsSUFBTUUsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QjVDLEdBQUcsQ0FBQzZDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hCLElBQU1DLGFBQWEsT0FBQXpDLGNBQUEsQ0FBQTNCLE9BQUEsTUFBQTJCLGNBQUEsQ0FBQTNCLE9BQUEsTUFBUThDLE1BQU07TUFBRXVCLE9BQU8sRUFBRTtJQUFJLEVBQUU7SUFDbEQsSUFBQUMsb0JBQWEsRUFBQ0YsYUFBYSxFQUFFbEIsT0FBTyxDQUFDO0lBQ3JDLElBQUFxQix3QkFBYyxFQUNaSCxhQUFhLEVBQ2JsRCxTQUFTLEVBQ1RFLE1BQU0sRUFDTkQsS0FBSyxFQUNMNEIsUUFBUSxFQUNSeUIsa0NBQWMsRUFDZCxJQUNGLENBQUM7SUFDREMsMEJBQTBCLENBQUMsQ0FBQztFQUM5QixDQUFDO0VBRUQsSUFBTUEsMEJBQTBCLEdBQUcsU0FBN0JBLDBCQUEwQkEsQ0FBQSxFQUFTO0lBQ3ZDLElBQUFDLHlCQUFrQixFQUFDLG9DQUFvQyxFQUFFYixVQUFVLEVBQUU7TUFDbkVjLFlBQVksRUFBRTNCLFdBQVcsQ0FBQzRCO0lBQzVCLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlDLElBQVksRUFBSztJQUN0QyxJQUFJQyxFQUFFO0lBRU4sUUFBUUQsSUFBSSxDQUFDRSxXQUFXLENBQUMsQ0FBQztNQUN4QixLQUFLLE1BQU07TUFDWCxLQUFLLE9BQU87UUFDVkQsRUFBRSxHQUFHLGdCQUFnQjtRQUNyQjtNQUNGLEtBQUssU0FBUztRQUNaQSxFQUFFLEdBQUcsZ0JBQWdCO1FBQ3JCO01BQ0Y7UUFDRUEsRUFBRSxHQUFHLGFBQWE7SUFDdEI7SUFDQSxPQUFPQSxFQUFFO0VBQ1gsQ0FBQztFQUVELElBQU1FLEtBQUssR0FBRyxTQUFSQSxLQUFLQSxDQUFBLEVBQVM7SUFDbEIsSUFBSUMsT0FBTyxHQUFHLEVBQUU7SUFDaEIsSUFBSWpFLEtBQUssRUFBRTtNQUNUaUUsT0FBTyxHQUFHakUsS0FBSyxDQUFDa0UsSUFBSTtJQUN0QixDQUFDLE1BQU07TUFDTCxJQUFJM0MsSUFBSSxFQUFFO1FBQ1IwQyxPQUFPLEdBQUcxQyxJQUFJLENBQUM0QyxTQUFTO01BQzFCO0lBQ0Y7SUFDQSxPQUFPRixPQUFPO0VBQ2hCLENBQUM7RUFFRCxJQUFNRyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQSxFQUFTO0lBQ3hCLElBQUl4QixVQUFVLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRTtJQUNoQyxPQUFPeUIsYUFBSSxDQUFDQyxDQUFDLGFBQUFDLE1BQUEsQ0FBYTNCLFVBQVUsQ0FBRSxDQUFDO0VBQ3pDLENBQUM7RUFFRCxJQUFBNEIsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSUMsUUFBUSxHQUFHNUMsTUFBTSxDQUFDNkMsVUFBVSxLQUFLdkQsU0FBUztJQUU5QyxJQUFJc0QsUUFBUSxFQUFFO01BQ1poQyxRQUFRLENBQUNaLE1BQU0sQ0FBQztJQUNsQixDQUFDLE1BQU07TUFDTFMsT0FBTyxDQUFDVCxNQUFNLENBQUM7SUFDakI7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsTUFBTSxDQUFDLENBQUM7RUFFWixJQUFBMkMsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSXhDLFFBQVEsS0FBS2IsU0FBUyxFQUFFO0lBRTVCNkIsWUFBWSxDQUFDaEIsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUUyQyxJQUFJLENBQUM7SUFDNUIsSUFBSTNDLFFBQVEsQ0FBQzJDLElBQUksQ0FBQy9ELE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDNUJpQyxhQUFhLENBQUNlLGFBQWEsQ0FBQzVCLFFBQVEsQ0FBQzJDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQ2QsSUFBSSxDQUFDLENBQUM7SUFDckQ7RUFDRixDQUFDLEVBQUUsQ0FBQzdCLFFBQVEsQ0FBQyxDQUFDO0VBRWQsSUFBTTRDLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQSxFQUFTO0lBQzFCLElBQU1ELElBQUksR0FBRzNDLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFMkMsSUFBSTtJQUMzQixJQUFNRSxVQUFVLEdBQUcsQ0FBQUYsSUFBSSxhQUFKQSxJQUFJLHVCQUFKQSxJQUFJLENBQUUvRCxNQUFNLElBQUcsQ0FBQztJQUVuQyxvQkFDRS9DLE1BQUEsQ0FBQWtCLE9BQUEsQ0FBQStGLGFBQUEsY0FDR0QsVUFBVSxpQkFDVGhILE1BQUEsQ0FBQWtCLE9BQUEsQ0FBQStGLGFBQUEsQ0FBQzlHLGVBQUEsQ0FBQStHLE1BQU07TUFDTEMsT0FBTyxFQUFFLFNBQUFBLFFBQUE7UUFBQSxPQUFNL0IsV0FBVyxDQUFDLENBQUM7TUFBQSxDQUFDO01BQzdCZ0MsU0FBUyxFQUFFO0lBQXdDLEdBRWxEYixXQUFXLENBQUMsQ0FDUCxDQUNULGVBQ0R2RyxNQUFBLENBQUFrQixPQUFBLENBQUErRixhQUFBLENBQUMxRyxVQUFBLENBQUFXLE9BQVM7TUFBQ21HLE1BQU0sRUFBRWpGO0lBQVUsQ0FBRSxDQUM1QixDQUFDO0VBRVYsQ0FBQztFQUVELG9CQUNFcEMsTUFBQSxDQUFBa0IsT0FBQSxDQUFBK0YsYUFBQSxDQUFBakgsTUFBQSxDQUFBa0IsT0FBQSxDQUFBb0csUUFBQSxxQkFDRXRILE1BQUEsQ0FBQWtCLE9BQUEsQ0FBQStGLGFBQUEsYUFBS2QsS0FBSyxDQUFDLENBQU0sQ0FBQyxlQUNsQm5HLE1BQUEsQ0FBQWtCLE9BQUEsQ0FBQStGLGFBQUEsQ0FBQzlHLGVBQUEsQ0FBQW9ILElBQUk7SUFBQ0gsU0FBUyxFQUFDO0VBQTJCLEdBQUVMLGFBQWEsQ0FBQyxDQUFRLENBQ25FLENBQUM7QUFFUCxDQUFDO0FBQUMxRCxPQUFBLENBQUFTLE1BQUEsR0FBQUEsTUFBQSJ9
|
|
140
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9DYXBhY2l0eSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJ1cGRhdGVQb2ludCIsIl9yZWYiLCJwb2ludCIsImxpc3RJdGVtcyIsImFyZWFzIiwicG9pbnRzIiwiYXJlYUlkcyIsIm1hcCIsIml0ZW0iLCJpZCIsInN1YkFyZWFzIiwiZ2V0QXJlYXMiLCJmYWN0b3JpZXMiLCJsZW5ndGgiLCJnZXRQb2ludHMiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwicmV0dXJuZWRBcmVhcyIsImNvcnJlc3BvbmRpbmdBcmVhIiwiZmluZCIsImFyZWEiLCJhcmVhX2lkIiwicmV0dXJuZWRQb2ludHMiLCJjb3JyZXNwb25kaW5nUG9pbnQiLCJXaWRnZXQiLCJwcm9wcyIsIm9iamVjdCIsImRpc3BhdGNoIiwiZ2xvYmFsX2RhdGEiLCJsaXN0RGF0YSIsImhpc3RvcnkiLCJzZXRBcmVhIiwidXNlU3RhdGUiLCJzZXRQb2ludCIsImJ1dHRvbk5hbWUiLCJzZXRCdXR0b25OYW1lIiwic2V0TGlzdEl0ZW1zIiwiaGFuZGxlQ2xpY2siLCJjbG9zZVBvcHVwIiwiY2xpY2tlZE9iamVjdCIsImNsaWNrZWQiLCJ1cGRhdGVIaXN0b3J5Iiwic2V0Rm9jdXNlZEl0ZW0iLCJzZXRGb2N1c2VkQXJlYSIsInNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzIiwic2VuZEFuYWx5dGljc0V2ZW50IiwidXRpbGl0eV9uYW1lIiwid2F0ZXJBdXRob3JpdHlOYW1lIiwiZ2V0QnV0dG9uVHlwZSIsInR5cGUiLCJyYyIsInRvTG93ZXJDYXNlIiwidGl0bGUiLCJwYXlsb2FkIiwibmFtZSIsImFyZWFfbmFtZSIsImJ1dHRvblRpdGxlIiwiaTE4biIsInQiLCJ1c2VFZmZlY3QiLCJpc0FQb2ludCIsImZvcldXVFBNYXAiLCJkYXRhIiwid2lkZ2V0Q29udGVudCIsInNob3dCdXR0b24iLCJjcmVhdGVFbGVtZW50IiwiQnV0dG9uIiwib25DbGljayIsImNsYXNzTmFtZSIsImlubGV0cyIsIkZyYWdtZW50IiwiQ2FyZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgQ2FyZCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBzZXRGb2N1c2VkQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCBJbmxldHNQaWUgZnJvbSAnLi4vLi4vdWkta2l0L0lubGV0c1BpZSc7XG5pbXBvcnQgeyBzZW5kQW5hbHl0aWNzRXZlbnQsIHVwZGF0ZUhpc3RvcnkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHNldEZvY3VzZWRJdGVtIH0gZnJvbSAnLi9DYXBhY2l0eSc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBvYmplY3Q6IGFueTtcbiAgZGlzcGF0Y2g6IGFueTtcbiAgcG9pbnRzPzogSVBvaW50W107XG4gIGFyZWFzPzogSUFyZWFbXTtcbiAgbWFwO1xuICBnbG9iYWxfZGF0YTtcbiAgbGlzdERhdGE6IGFueTtcbiAgaGlzdG9yeTogYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBvaW50ID0gKHsgcG9pbnQsIGxpc3RJdGVtcywgYXJlYXMsIHBvaW50cyB9KSA9PiB7XG4gIGNvbnN0IGFyZWFJZHMgPSBsaXN0SXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmlkKTtcbiAgY29uc3Qgc3ViQXJlYXMgPSBnZXRBcmVhcyhhcmVhSWRzLCBhcmVhcyk7XG4gIHJldHVybiB7XG4gICAgLi4ucG9pbnQsXG4gICAgZmFjdG9yaWVzOiBzdWJBcmVhcy5sZW5ndGggPiAwID8gW10gOiBnZXRQb2ludHMobGlzdEl0ZW1zLCBwb2ludHMpLFxuICAgIHN1Yl9hcmVhczogc3ViQXJlYXMsXG4gICAgc2hhcGVfZGF0YTogW1twb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXV0sXG4gIH07XG59O1xuXG5jb25zdCBnZXRBcmVhcyA9IChhcmVhSWRzOiBhbnlbXSwgYXJlYXMpID0+IHtcbiAgaWYgKFxuICAgIGFyZWFJZHMubGVuZ3RoID09PSAwIHx8XG4gICAgYXJlYXMgPT09IHVuZGVmaW5lZCB8fFxuICAgIGFyZWFzID09PSBudWxsIHx8XG4gICAgYXJlYXMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW107XG5cbiAgY29uc3QgcmV0dXJuZWRBcmVhcyA9IGFyZWFJZHMubWFwKChpZCkgPT4ge1xuICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdBcmVhID0gYXJlYXMuZmluZCgoYXJlYSkgPT4gYXJlYS5hcmVhX2lkID09PSBpZCk7XG4gICAgcmV0dXJuIGNvcnJlc3BvbmRpbmdBcmVhO1xuICB9KTtcblxuICByZXR1cm4gcmV0dXJuZWRBcmVhcztcbn07XG5cbmNvbnN0IGdldFBvaW50cyA9IChsaXN0SXRlbXMsIHBvaW50cykgPT4ge1xuICBpZiAobGlzdEl0ZW1zID09PSBudWxsIHx8IHBvaW50cyA9PT0gdW5kZWZpbmVkIHx8IHBvaW50cy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IHJldHVybmVkUG9pbnRzID0gbGlzdEl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdQb2ludCA9IHBvaW50cy5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGl0ZW0uaWQpO1xuICAgIHJldHVybiBjb3JyZXNwb25kaW5nUG9pbnQ7XG4gIH0pO1xuXG4gIHJldHVybiByZXR1cm5lZFBvaW50cztcbn07XG5leHBvcnQgY29uc3QgV2lkZ2V0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBvYmplY3QsXG4gICAgZGlzcGF0Y2gsXG4gICAgcG9pbnRzLFxuICAgIGFyZWFzLFxuICAgIG1hcCxcbiAgICBnbG9iYWxfZGF0YSxcbiAgICBsaXN0RGF0YSxcbiAgICBoaXN0b3J5LFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFthcmVhLCBzZXRBcmVhXSA9IHVzZVN0YXRlPElBcmVhIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtwb2ludCwgc2V0UG9pbnRdID0gdXNlU3RhdGU8SVBvaW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtidXR0b25OYW1lLCBzZXRCdXR0b25OYW1lXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbbGlzdEl0ZW1zLCBzZXRMaXN0SXRlbXNdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICAgIGNvbnN0IGNsaWNrZWRPYmplY3QgPSB7IC4uLm9iamVjdCwgY2xpY2tlZDogdHJ1ZSB9O1xuICAgIHVwZGF0ZUhpc3RvcnkoY2xpY2tlZE9iamVjdCwgaGlzdG9yeSk7XG4gICAgc2V0Rm9jdXNlZEl0ZW0oXG4gICAgICBjbGlja2VkT2JqZWN0LFxuICAgICAgbGlzdEl0ZW1zLFxuICAgICAgcG9pbnRzLFxuICAgICAgYXJlYXMsXG4gICAgICBkaXNwYXRjaCxcbiAgICAgIHNldEZvY3VzZWRBcmVhLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICAgIHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzKCk7XG4gIH07XG5cbiAgY29uc3Qgc2VuZEJ1dHRvbkNsaWNrZWRBbmFseXRpY3MgPSAoKSA9PiB7XG4gICAgc2VuZEFuYWx5dGljc0V2ZW50KCdNYXAgdmlldyAtIFBvcHVwIGRyaWxsZG93biBjbGlja2VkJywgYnV0dG9uTmFtZSwge1xuICAgICAgdXRpbGl0eV9uYW1lOiBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0QnV0dG9uVHlwZSA9ICh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgcmM7XG5cbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAnYXJlYSc6XG4gICAgICBjYXNlICd2YXJlYSc6XG4gICAgICAgIHJjID0gJ3ZpZXdfc3ViX2FyZWFzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmYWN0b3J5JzpcbiAgICAgICAgcmMgPSAndmlld19mYWN0b3JpZXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJjID0gJ3ZpZXdfaW5sZXRzJztcbiAgICB9XG4gICAgcmV0dXJuIHJjO1xuICB9O1xuXG4gIGNvbnN0IHRpdGxlID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gJyc7XG4gICAgaWYgKHBvaW50KSB7XG4gICAgICBwYXlsb2FkID0gcG9pbnQubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGFyZWEpIHtcbiAgICAgICAgcGF5bG9hZCA9IGFyZWEuYXJlYV9uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCBidXR0b25UaXRsZSA9ICgpID0+IHtcbiAgICBpZiAoYnV0dG9uTmFtZSA9PT0gJycpIHJldHVybiAnJztcbiAgICByZXR1cm4gaTE4bi50KGB3d3RwUGFnZS4ke2J1dHRvbk5hbWV9YCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgaXNBUG9pbnQgPSBvYmplY3QuZm9yV1dUUE1hcCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzQVBvaW50KSB7XG4gICAgICBzZXRQb2ludChvYmplY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBcmVhKG9iamVjdCk7XG4gICAgfVxuICB9LCBbb2JqZWN0XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGlzdERhdGEgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgc2V0TGlzdEl0ZW1zKGxpc3REYXRhPy5kYXRhKTtcbiAgICBpZiAobGlzdERhdGEuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICBzZXRCdXR0b25OYW1lKGdldEJ1dHRvblR5cGUobGlzdERhdGEuZGF0YVswXS50eXBlKSk7XG4gICAgfVxuICB9LCBbbGlzdERhdGFdKTtcblxuICBjb25zdCB3aWRnZXRDb250ZW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBsaXN0RGF0YT8uZGF0YTtcbiAgICBjb25zdCBzaG93QnV0dG9uID0gZGF0YT8ubGVuZ3RoID4gMDtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7c2hvd0J1dHRvbiAmJiAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQ2xpY2soKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2NoaWxkcmVuQnV0dG9uIHJvdW5kZWQtcGlsbCBidG4tbGlnaHQnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtidXR0b25UaXRsZSgpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgICA8SW5sZXRzUGllIGlubGV0cz17bGlzdEl0ZW1zfSAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDM+e3RpdGxlKCl9PC9oMz5cbiAgICAgIDxDYXJkIGNsYXNzTmFtZT1cImJnLXdoaXRlIHdpZGdldC1jb250YWluZXJcIj57d2lkZ2V0Q29udGVudCgpfTwvQ2FyZD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBRUEsSUFBQUssVUFBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQTRDLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFWLHdCQUFBYyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JB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
|
|
@@ -5,77 +5,63 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.updateHistory = exports.sortPoints = exports.sortAreas = exports.simpleTruncate = exports.sendAnalyticsEvent = exports.initializeWWTPData = exports.getPoints = exports.focusMap = exports.createPopupForObject = exports.calculateWWTPInfo = exports.CardContainer = void 0;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
|
|
9
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
|
|
11
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
9
|
var _jquery = _interopRequireDefault(require("jquery"));
|
|
13
10
|
var _Analytics = require("utilities/Analytics");
|
|
14
|
-
|
|
11
|
+
const initializeWWTPData = payload => {
|
|
15
12
|
if (payload.dataExists()) {
|
|
16
|
-
|
|
13
|
+
const wwtpInfp = calculateWWTPInfo(payload);
|
|
17
14
|
payload.setWWTPInfo(wwtpInfp);
|
|
18
15
|
payload.setPoints(payload.points_data.items);
|
|
19
16
|
payload.setAreas(payload.areas_data.newAreas);
|
|
20
17
|
}
|
|
21
18
|
};
|
|
22
19
|
exports.initializeWWTPData = initializeWWTPData;
|
|
23
|
-
|
|
20
|
+
const sortAreas = areas => {
|
|
24
21
|
if (!areas) return areas;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return a.is_assessment === b.is_assessment ? 0 : a.is_assessment ? -1 : 1;
|
|
28
|
-
}).sort(function (a, b) {
|
|
29
|
-
return b.area_score - a.area_score;
|
|
30
|
-
});
|
|
22
|
+
const temp = [...areas];
|
|
23
|
+
const sortedAreas = temp.sort((a, b) => a.is_assessment === b.is_assessment ? 0 : a.is_assessment ? -1 : 1).sort((a, b) => b.area_score - a.area_score);
|
|
31
24
|
return sortedAreas;
|
|
32
25
|
};
|
|
33
26
|
exports.sortAreas = sortAreas;
|
|
34
|
-
|
|
27
|
+
const sortPoints = points => {
|
|
35
28
|
if (!points) return points;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return a.has_device === b.has_device ? 0 : a.has_device ? -1 : 1;
|
|
39
|
-
}).sort(function (a, b) {
|
|
40
|
-
return b.area_score - a.area_score;
|
|
41
|
-
});
|
|
29
|
+
const temp = [...points];
|
|
30
|
+
const sortedPoints = temp.sort((a, b) => a.has_device === b.has_device ? 0 : a.has_device ? -1 : 1).sort((a, b) => b.area_score - a.area_score);
|
|
42
31
|
return sortedPoints;
|
|
43
32
|
};
|
|
44
33
|
exports.sortPoints = sortPoints;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
const updateHistory = (object, history) => {
|
|
35
|
+
const area = object.area_id ? object : null;
|
|
36
|
+
const point = object.id ? object : null;
|
|
48
37
|
if (point) {
|
|
49
|
-
|
|
50
|
-
history.push(
|
|
38
|
+
const type = point.group.type === 'Groups::WastewaterTreatmentPlant' ? 'wwtp' : 'site';
|
|
39
|
+
history.push(`/dashboard_v2/${type}/${point.id}${history.location.search}`);
|
|
51
40
|
} else {
|
|
52
41
|
if (area) {
|
|
53
|
-
|
|
54
|
-
history.push(
|
|
42
|
+
const type = area.is_virtual ? 'varea' : 'area';
|
|
43
|
+
history.push(`/dashboard_v2/${type}/${area.area_id}${history.location.search}`);
|
|
55
44
|
}
|
|
56
45
|
}
|
|
57
46
|
};
|
|
58
47
|
exports.updateHistory = updateHistory;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
48
|
+
const calculateWWTPInfo = _ref => {
|
|
49
|
+
let {
|
|
50
|
+
id,
|
|
51
|
+
points_data,
|
|
52
|
+
areas_data
|
|
53
|
+
} = _ref;
|
|
54
|
+
let WWTP = points_data.items.find(point => point.id === parseInt(id));
|
|
66
55
|
if (WWTP === undefined) {
|
|
67
56
|
var _points_data$items;
|
|
68
|
-
WWTP = (_points_data$items = points_data.items) === null || _points_data$items === void 0 ? void 0 : _points_data$items.find(
|
|
69
|
-
return point.group.area_id === parseInt(id);
|
|
70
|
-
});
|
|
57
|
+
WWTP = (_points_data$items = points_data.items) === null || _points_data$items === void 0 ? void 0 : _points_data$items.find(point => point.group.area_id === parseInt(id));
|
|
71
58
|
}
|
|
72
|
-
|
|
73
|
-
return parseInt(id) === area.area_id;
|
|
74
|
-
});
|
|
59
|
+
let WWTPArea = areas_data.newAreas.find(area => parseInt(id) === area.area_id);
|
|
75
60
|
if (WWTP !== undefined) {
|
|
76
|
-
WWTP =
|
|
61
|
+
WWTP = {
|
|
62
|
+
...WWTP,
|
|
77
63
|
forWWTPMap: true
|
|
78
|
-
}
|
|
64
|
+
};
|
|
79
65
|
}
|
|
80
66
|
return {
|
|
81
67
|
point: WWTP,
|
|
@@ -83,15 +69,15 @@ var calculateWWTPInfo = function calculateWWTPInfo(_ref) {
|
|
|
83
69
|
};
|
|
84
70
|
};
|
|
85
71
|
exports.calculateWWTPInfo = calculateWWTPInfo;
|
|
86
|
-
|
|
87
|
-
args.marker.bindPopup(
|
|
72
|
+
const createPopupForObject = args => {
|
|
73
|
+
args.marker.bindPopup(`<div class="widget-container"></div>`, {
|
|
88
74
|
maxWidth: 400,
|
|
89
75
|
minWidth: 400,
|
|
90
76
|
maxHeight: 400,
|
|
91
77
|
minHeight: 400
|
|
92
78
|
});
|
|
93
79
|
args.marker.on('popupopen', function () {
|
|
94
|
-
setTimeout(
|
|
80
|
+
setTimeout(() => {
|
|
95
81
|
if ((0, _jquery.default)('.widget-container').contents().length <= 0) {
|
|
96
82
|
(0, _jquery.default)('.widget-container').append(args.renderedElement);
|
|
97
83
|
}
|
|
@@ -102,32 +88,32 @@ var createPopupForObject = function createPopupForObject(args) {
|
|
|
102
88
|
});
|
|
103
89
|
};
|
|
104
90
|
exports.createPopupForObject = createPopupForObject;
|
|
105
|
-
|
|
91
|
+
const focusMap = (object, map) => {
|
|
106
92
|
if (object === null || map === null) return;
|
|
107
|
-
|
|
93
|
+
let latlngs = [];
|
|
108
94
|
if (object === undefined) {
|
|
109
|
-
for (
|
|
95
|
+
for (const property in map._layers) {
|
|
110
96
|
if (map._layers[property].kando_object === 'Area' || map._layers[property].kando_object === 'Point') {
|
|
111
97
|
latlngs.push(map._layers[property]._bounds);
|
|
112
98
|
}
|
|
113
99
|
}
|
|
114
100
|
} else {
|
|
115
101
|
if (object.sub_areas && object.sub_areas.length > 0) {
|
|
116
|
-
object.sub_areas.forEach(
|
|
102
|
+
object.sub_areas.forEach(sub_area => {
|
|
117
103
|
if ((sub_area === null || sub_area === void 0 ? void 0 : sub_area.shape_data) !== undefined) {
|
|
118
|
-
sub_area.shape_data.forEach(
|
|
104
|
+
sub_area.shape_data.forEach(latlng => {
|
|
119
105
|
latlngs.push(latlng);
|
|
120
106
|
});
|
|
121
107
|
}
|
|
122
108
|
});
|
|
123
109
|
} else {
|
|
124
110
|
if (object.inlets && object.inlets.length > 0) {
|
|
125
|
-
object.inlets.forEach(
|
|
111
|
+
object.inlets.forEach(inlet => {
|
|
126
112
|
latlngs.push([inlet.latitude, inlet.longitude]);
|
|
127
113
|
});
|
|
128
114
|
} else {
|
|
129
115
|
if ((object === null || object === void 0 ? void 0 : object.shape_data) !== undefined) {
|
|
130
|
-
object.shape_data.forEach(
|
|
116
|
+
object.shape_data.forEach(latlng => {
|
|
131
117
|
latlngs.push(latlng);
|
|
132
118
|
});
|
|
133
119
|
} else {
|
|
@@ -136,10 +122,10 @@ var focusMap = function focusMap(object, map) {
|
|
|
136
122
|
}
|
|
137
123
|
}
|
|
138
124
|
}
|
|
139
|
-
latlngs.length > 0 && map !== null &&
|
|
125
|
+
latlngs.length > 0 && map !== null && typeof map._layers === 'object' && map._layers.length === undefined && map.fitBounds(latlngs);
|
|
140
126
|
};
|
|
141
127
|
exports.focusMap = focusMap;
|
|
142
|
-
|
|
128
|
+
const simpleTruncate = (str, length) => {
|
|
143
129
|
if (typeof str !== 'string' || typeof length !== 'number') {
|
|
144
130
|
throw new Error('Invalid arguments. Please provide a string and a number.');
|
|
145
131
|
}
|
|
@@ -150,16 +136,12 @@ var simpleTruncate = function simpleTruncate(str, length) {
|
|
|
150
136
|
}
|
|
151
137
|
};
|
|
152
138
|
exports.simpleTruncate = simpleTruncate;
|
|
153
|
-
|
|
139
|
+
const getPoints = (list, points_data) => {
|
|
154
140
|
if (points_data.length === 0) return list;
|
|
155
|
-
return list.map(
|
|
156
|
-
return points_data.find(function (point) {
|
|
157
|
-
return point.id === item.id;
|
|
158
|
-
});
|
|
159
|
-
}).filter(Boolean);
|
|
141
|
+
return list.map(item => points_data.find(point => point.id === item.id)).filter(Boolean);
|
|
160
142
|
};
|
|
161
143
|
exports.getPoints = getPoints;
|
|
162
|
-
|
|
144
|
+
const CardContainer = _styledComponents.default.div.withConfig({
|
|
163
145
|
displayName: "utils__CardContainer",
|
|
164
146
|
componentId: "sc-zfjea1-0"
|
|
165
147
|
})([".card{transition:0.1s ease-in-out;box-shadow:0px 1px 3px rgba(0,0,0,0.2);&:hover{transition:0.2s ease-in-out;box-shadow:0px 3px 10px rgba(0,0,0,0.2);cursor:pointer;}}"]);
|
|
@@ -169,12 +151,13 @@ var CardContainer = _styledComponents.default.div.withConfig({
|
|
|
169
151
|
// selection is the object that was selected
|
|
170
152
|
// specificFields is an object with event fields to send which are combined with the rest of the fields
|
|
171
153
|
exports.CardContainer = CardContainer;
|
|
172
|
-
|
|
173
|
-
|
|
154
|
+
const sendAnalyticsEvent = (subject, selection, eventFields) => {
|
|
155
|
+
const data = {
|
|
174
156
|
selection: selection,
|
|
175
|
-
page_name: window.location.pathname
|
|
176
|
-
|
|
157
|
+
page_name: window.location.pathname,
|
|
158
|
+
...eventFields
|
|
159
|
+
};
|
|
177
160
|
(0, _Analytics.analyticsTrack)(subject, data);
|
|
178
161
|
};
|
|
179
162
|
exports.sendAnalyticsEvent = sendAnalyticsEvent;
|
|
180
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanF1ZXJ5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQW5hbHl0aWNzIiwiaW5pdGlhbGl6ZVdXVFBEYXRhIiwicGF5bG9hZCIsImRhdGFFeGlzdHMiLCJ3d3RwSW5mcCIsImNhbGN1bGF0ZVdXVFBJbmZvIiwic2V0V1dUUEluZm8iLCJzZXRQb2ludHMiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwic2V0QXJlYXMiLCJhcmVhc19kYXRhIiwibmV3QXJlYXMiLCJleHBvcnRzIiwic29ydEFyZWFzIiwiYXJlYXMiLCJ0ZW1wIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRlZmF1bHQiLCJzb3J0ZWRBcmVhcyIsInNvcnQiLCJhIiwiYiIsImlzX2Fzc2Vzc21lbnQiLCJhcmVhX3Njb3JlIiwic29ydFBvaW50cyIsInBvaW50cyIsInNvcnRlZFBvaW50cyIsImhhc19kZXZpY2UiLCJ1cGRhdGVIaXN0b3J5Iiwib2JqZWN0IiwiaGlzdG9yeSIsImFyZWEiLCJhcmVhX2lkIiwicG9pbnQiLCJpZCIsInR5cGUiLCJncm91cCIsInB1c2giLCJjb25jYXQiLCJsb2NhdGlvbiIsInNlYXJjaCIsImlzX3ZpcnR1YWwiLCJfcmVmIiwiV1dUUCIsImZpbmQiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsIl9wb2ludHNfZGF0YSRpdGVtcyIsIldXVFBBcmVhIiwiX29iamVjdFNwcmVhZDIiLCJmb3JXV1RQTWFwIiwiY3JlYXRlUG9wdXBGb3JPYmplY3QiLCJhcmdzIiwibWFya2VyIiwiYmluZFBvcHVwIiwibWF4V2lkdGgiLCJtaW5XaWR0aCIsIm1heEhlaWdodCIsIm1pbkhlaWdodCIsIm9uIiwic2V0VGltZW91dCIsIiQiLCJjb250ZW50cyIsImxlbmd0aCIsImFwcGVuZCIsInJlbmRlcmVkRWxlbWVudCIsInVuYmluZFBvcHVwIiwiZm9jdXNNYXAiLCJtYXAiLCJsYXRsbmdzIiwicHJvcGVydHkiLCJfbGF5ZXJzIiwia2FuZG9fb2JqZWN0IiwiX2JvdW5kcyIsInN1Yl9hcmVhcyIsImZvckVhY2giLCJzdWJfYXJlYSIsInNoYXBlX2RhdGEiLCJsYXRsbmciLCJpbmxldHMiLCJpbmxldCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiX3R5cGVvZjIiLCJmaXRCb3VuZHMiLCJzaW1wbGVUcnVuY2F0ZSIsInN0ciIsIkVycm9yIiwic3Vic3RyaW5nIiwiZ2V0UG9pbnRzIiwibGlzdCIsIml0ZW0iLCJmaWx0ZXIiLCJCb29sZWFuIiwiQ2FyZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwic2VuZEFuYWx5dGljc0V2ZW50Iiwic3ViamVjdCIsInNlbGVjdGlvbiIsImV2ZW50RmllbGRzIiwiZGF0YSIsInBhZ2VfbmFtZSIsIndpbmRvdyIsInBhdGhuYW1lIiwiYW5hbHl0aWNzVHJhY2siXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZVdXVFBEYXRhID0gKHBheWxvYWQpID0+IHtcbiAgaWYgKHBheWxvYWQuZGF0YUV4aXN0cygpKSB7XG4gICAgY29uc3Qgd3d0cEluZnAgPSBjYWxjdWxhdGVXV1RQSW5mbyhwYXlsb2FkKTtcbiAgICBwYXlsb2FkLnNldFdXVFBJbmZvKHd3dHBJbmZwKTtcbiAgICBwYXlsb2FkLnNldFBvaW50cyhwYXlsb2FkLnBvaW50c19kYXRhLml0ZW1zKTtcbiAgICBwYXlsb2FkLnNldEFyZWFzKHBheWxvYWQuYXJlYXNfZGF0YS5uZXdBcmVhcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0QXJlYXMgPSAoYXJlYXMpID0+IHtcbiAgaWYgKCFhcmVhcykgcmV0dXJuIGFyZWFzO1xuXG4gIGNvbnN0IHRlbXAgPSBbLi4uYXJlYXNdO1xuICBjb25zdCBzb3J0ZWRBcmVhcyA9IHRlbXBcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEuaXNfYXNzZXNzbWVudCA9PT0gYi5pc19hc3Nlc3NtZW50ID8gMCA6IGEuaXNfYXNzZXNzbWVudCA/IC0xIDogMSxcbiAgICApXG4gICAgLnNvcnQoKGEsIGIpID0+IGIuYXJlYV9zY29yZSAtIGEuYXJlYV9zY29yZSk7XG5cbiAgcmV0dXJuIHNvcnRlZEFyZWFzO1xufTtcblxuZXhwb3J0IGNvbnN0IHNvcnRQb2ludHMgPSAocG9pbnRzKSA9PiB7XG4gIGlmICghcG9pbnRzKSByZXR1cm4gcG9pbnRzO1xuXG4gIGNvbnN0IHRlbXAgPSBbLi4ucG9pbnRzXTtcbiAgY29uc3Qgc29ydGVkUG9pbnRzID0gdGVtcFxuICAgIC5zb3J0KChhLCBiKSA9PiAoYS5oYXNfZGV2aWNlID09PSBiLmhhc19kZXZpY2UgPyAwIDogYS5oYXNfZGV2aWNlID8gLTEgOiAxKSlcbiAgICAuc29ydCgoYSwgYikgPT4gYi5hcmVhX3Njb3JlIC0gYS5hcmVhX3Njb3JlKTtcblxuICByZXR1cm4gc29ydGVkUG9pbnRzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUhpc3RvcnkgPSAob2JqZWN0LCBoaXN0b3J5KSA9PiB7XG4gIGNvbnN0IGFyZWEgPSBvYmplY3QuYXJlYV9pZCA/IG9iamVjdCA6IG51bGw7XG4gIGNvbnN0IHBvaW50ID0gb2JqZWN0LmlkID8gb2JqZWN0IDogbnVsbDtcblxuICBpZiAocG9pbnQpIHtcbiAgICBjb25zdCB0eXBlID1cbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcgPyAnd3d0cCcgOiAnc2l0ZSc7XG4gICAgaGlzdG9yeS5wdXNoKGAvZGFzaGJvYXJkX3YyLyR7dHlwZX0vJHtwb2ludC5pZH0ke2hpc3RvcnkubG9jYXRpb24uc2VhcmNofWApO1xuICB9IGVsc2Uge1xuICAgIGlmIChhcmVhKSB7XG4gICAgICBjb25zdCB0eXBlID0gYXJlYS5pc192aXJ0dWFsID8gJ3ZhcmVhJyA6ICdhcmVhJztcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC9kYXNoYm9hcmRfdjIvJHt0eXBlfS8ke2FyZWEuYXJlYV9pZH0ke2hpc3RvcnkubG9jYXRpb24uc2VhcmNofWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVdXVFBJbmZvID0gKHsgaWQsIHBvaW50c19kYXRhLCBhcmVhc19kYXRhIH0pID0+IHtcbiAgbGV0IFdXVFA6IElQb2ludCA9IHBvaW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBwYXJzZUludChpZCksXG4gICk7XG5cbiAgaWYgKFdXVFAgPT09IHVuZGVmaW5lZCkge1xuICAgIFdXVFAgPSBwb2ludHNfZGF0YS5pdGVtcz8uZmluZChcbiAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5ncm91cC5hcmVhX2lkID09PSBwYXJzZUludChpZCksXG4gICAgKTtcbiAgfVxuXG4gIGxldCBXV1RQQXJlYTogSUFyZWEgPSBhcmVhc19kYXRhLm5ld0FyZWFzLmZpbmQoXG4gICAgKGFyZWE6IElBcmVhKSA9PiBwYXJzZUludChpZCkgPT09IGFyZWEuYXJlYV9pZCxcbiAgKTtcblxuICBpZiAoV1dUUCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgV1dUUCA9IHtcbiAgICAgIC4uLldXVFAsXG4gICAgICBmb3JXV1RQTWFwOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBwb2ludDogV1dUUCwgYXJlYTogV1dUUEFyZWEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3B1cEZvck9iamVjdCA9IChhcmdzKSA9PiB7XG4gIGFyZ3MubWFya2VyLmJpbmRQb3B1cChgPGRpdiBjbGFzcz1cIndpZGdldC1jb250YWluZXJcIj48L2Rpdj5gLCB7XG4gICAgbWF4V2lkdGg6IDQwMCxcbiAgICBtaW5XaWR0aDogNDAwLFxuICAgIG1heEhlaWdodDogNDAwLFxuICAgIG1pbkhlaWdodDogNDAwLFxuICB9KTtcblxuICBhcmdzLm1hcmtlci5vbigncG9wdXBvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCQoJy53aWRnZXQtY29udGFpbmVyJykuY29udGVudHMoKS5sZW5ndGggPD0gMCkge1xuICAgICAgICAkKCcud2lkZ2V0LWNvbnRhaW5lcicpLmFwcGVuZChhcmdzLnJlbmRlcmVkRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwgMjAwKTtcbiAgfSk7XG5cbiAgYXJncy5tYXJrZXIub24oJ3BvcHVwY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXJncy5tYXJrZXIudW5iaW5kUG9wdXAoKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZm9jdXNNYXAgPSAob2JqZWN0LCBtYXApID0+IHtcbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBtYXAgPT09IG51bGwpIHJldHVybjtcblxuICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gIGlmIChvYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwLl9sYXllcnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbWFwLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0FyZWEnIHx8XG4gICAgICAgIG1hcC5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCdcbiAgICAgICkge1xuICAgICAgICBsYXRsbmdzLnB1c2gobWFwLl9sYXllcnNbcHJvcGVydHldLl9ib3VuZHMpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAob2JqZWN0LnN1Yl9hcmVhcyAmJiBvYmplY3Quc3ViX2FyZWFzLmxlbmd0aCA+IDApIHtcbiAgICAgIG9iamVjdC5zdWJfYXJlYXMuZm9yRWFjaCgoc3ViX2FyZWEpID0+IHtcbiAgICAgICAgaWYgKHN1Yl9hcmVhPy5zaGFwZV9kYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzdWJfYXJlYS5zaGFwZV9kYXRhLmZvckVhY2goKGxhdGxuZykgPT4ge1xuICAgICAgICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob2JqZWN0LmlubGV0cyAmJiBvYmplY3QuaW5sZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb2JqZWN0LmlubGV0cy5mb3JFYWNoKChpbmxldCkgPT4ge1xuICAgICAgICAgIGxhdGxuZ3MucHVzaChbaW5sZXQubGF0aXR1ZGUsIGlubGV0LmxvbmdpdHVkZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChvYmplY3Q/LnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9iamVjdC5zaGFwZV9kYXRhLmZvckVhY2goKGxhdGxuZykgPT4ge1xuICAgICAgICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGF0bG5ncy5wdXNoKFtvYmplY3QubGF0aXR1ZGUsIG9iamVjdC5sb25naXR1ZGVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBsYXRsbmdzLmxlbmd0aCA+IDAgJiZcbiAgICBtYXAgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgbWFwLl9sYXllcnMgPT09ICdvYmplY3QnICYmXG4gICAgbWFwLl9sYXllcnMubGVuZ3RoID09PSB1bmRlZmluZWQgJiZcbiAgICBtYXAuZml0Qm91bmRzKGxhdGxuZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNpbXBsZVRydW5jYXRlID0gKHN0ciwgbGVuZ3RoKSA9PiB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgbGVuZ3RoICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhcmd1bWVudHMuIFBsZWFzZSBwcm92aWRlIGEgc3RyaW5nIGFuZCBhIG51bWJlci4nKTtcbiAgfVxuXG4gIGlmIChzdHIubGVuZ3RoIDw9IGxlbmd0aCkge1xuICAgIHJldHVybiBzdHI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoMCwgbGVuZ3RoKSArICcuLi4nO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UG9pbnRzID0gKGxpc3Q6IGFueVtdLCBwb2ludHNfZGF0YTogSVBvaW50W10pID0+IHtcbiAgaWYgKHBvaW50c19kYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGxpc3Q7XG5cbiAgcmV0dXJuIGxpc3RcbiAgICAubWFwKChpdGVtKSA9PiBwb2ludHNfZGF0YS5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGl0ZW0uaWQpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59O1xuXG5leHBvcnQgY29uc3QgQ2FyZENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIC5jYXJkIHtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNpdGlvbjogMC4ycyBlYXNlLWluLW91dDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5gO1xuXG4vLyBTZW5kIGFuYWx5dGljcyBldmVudHMgZnJvbSBzZXZlcmFsIHBsYWNlcyBpbiB3d3RwbWFwLlxuLy8gc3ViamVjdCBpcyB0aGUgbmFtZSBvZiB0aGUgZXZlbnRcbi8vIHNlbGVjdGlvbiBpcyB0aGUgb2JqZWN0IHRoYXQgd2FzIHNlbGVjdGVkXG4vLyBzcGVjaWZpY0ZpZWxkcyBpcyBhbiBvYmplY3Qgd2l0aCBldmVudCBmaWVsZHMgdG8gc2VuZCB3aGljaCBhcmUgY29tYmluZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZmllbGRzXG5leHBvcnQgY29uc3Qgc2VuZEFuYWx5dGljc0V2ZW50ID0gKFxuICBzdWJqZWN0OiBzdHJpbmcsXG4gIHNlbGVjdGlvbjogc3RyaW5nLFxuICBldmVudEZpZWxkczogT2JqZWN0LFxuKSA9PiB7XG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgc2VsZWN0aW9uOiBzZWxlY3Rpb24sXG4gICAgcGFnZV9uYW1lOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgLi4uZXZlbnRGaWVsZHMsXG4gIH07XG4gIGFuYWx5dGljc1RyYWNrKHN1YmplY3QsIGRhdGEpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFFTyxJQUFNRSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxPQUFPLEVBQUs7RUFDN0MsSUFBSUEsT0FBTyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxFQUFFO0lBQ3hCLElBQU1DLFFBQVEsR0FBR0MsaUJBQWlCLENBQUNILE9BQU8sQ0FBQztJQUMzQ0EsT0FBTyxDQUFDSSxXQUFXLENBQUNGLFFBQVEsQ0FBQztJQUM3QkYsT0FBTyxDQUFDSyxTQUFTLENBQUNMLE9BQU8sQ0FBQ00sV0FBVyxDQUFDQyxLQUFLLENBQUM7SUFDNUNQLE9BQU8sQ0FBQ1EsUUFBUSxDQUFD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
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanF1ZXJ5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQW5hbHl0aWNzIiwiaW5pdGlhbGl6ZVdXVFBEYXRhIiwicGF5bG9hZCIsImRhdGFFeGlzdHMiLCJ3d3RwSW5mcCIsImNhbGN1bGF0ZVdXVFBJbmZvIiwic2V0V1dUUEluZm8iLCJzZXRQb2ludHMiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwic2V0QXJlYXMiLCJhcmVhc19kYXRhIiwibmV3QXJlYXMiLCJleHBvcnRzIiwic29ydEFyZWFzIiwiYXJlYXMiLCJ0ZW1wIiwic29ydGVkQXJlYXMiLCJzb3J0IiwiYSIsImIiLCJpc19hc3Nlc3NtZW50IiwiYXJlYV9zY29yZSIsInNvcnRQb2ludHMiLCJwb2ludHMiLCJzb3J0ZWRQb2ludHMiLCJoYXNfZGV2aWNlIiwidXBkYXRlSGlzdG9yeSIsIm9iamVjdCIsImhpc3RvcnkiLCJhcmVhIiwiYXJlYV9pZCIsInBvaW50IiwiaWQiLCJ0eXBlIiwiZ3JvdXAiLCJwdXNoIiwibG9jYXRpb24iLCJzZWFyY2giLCJpc192aXJ0dWFsIiwiX3JlZiIsIldXVFAiLCJmaW5kIiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJfcG9pbnRzX2RhdGEkaXRlbXMiLCJXV1RQQXJlYSIsImZvcldXVFBNYXAiLCJjcmVhdGVQb3B1cEZvck9iamVjdCIsImFyZ3MiLCJtYXJrZXIiLCJiaW5kUG9wdXAiLCJtYXhXaWR0aCIsIm1pbldpZHRoIiwibWF4SGVpZ2h0IiwibWluSGVpZ2h0Iiwib24iLCJzZXRUaW1lb3V0IiwiJCIsImNvbnRlbnRzIiwibGVuZ3RoIiwiYXBwZW5kIiwicmVuZGVyZWRFbGVtZW50IiwidW5iaW5kUG9wdXAiLCJmb2N1c01hcCIsIm1hcCIsImxhdGxuZ3MiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJfYm91bmRzIiwic3ViX2FyZWFzIiwiZm9yRWFjaCIsInN1Yl9hcmVhIiwic2hhcGVfZGF0YSIsImxhdGxuZyIsImlubGV0cyIsImlubGV0IiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmaXRCb3VuZHMiLCJzaW1wbGVUcnVuY2F0ZSIsInN0ciIsIkVycm9yIiwic3Vic3RyaW5nIiwiZ2V0UG9pbnRzIiwibGlzdCIsIml0ZW0iLCJmaWx0ZXIiLCJCb29sZWFuIiwiQ2FyZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwic2VuZEFuYWx5dGljc0V2ZW50Iiwic3ViamVjdCIsInNlbGVjdGlvbiIsImV2ZW50RmllbGRzIiwiZGF0YSIsInBhZ2VfbmFtZSIsIndpbmRvdyIsInBhdGhuYW1lIiwiYW5hbHl0aWNzVHJhY2siXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZVdXVFBEYXRhID0gKHBheWxvYWQpID0+IHtcbiAgaWYgKHBheWxvYWQuZGF0YUV4aXN0cygpKSB7XG4gICAgY29uc3Qgd3d0cEluZnAgPSBjYWxjdWxhdGVXV1RQSW5mbyhwYXlsb2FkKTtcbiAgICBwYXlsb2FkLnNldFdXVFBJbmZvKHd3dHBJbmZwKTtcbiAgICBwYXlsb2FkLnNldFBvaW50cyhwYXlsb2FkLnBvaW50c19kYXRhLml0ZW1zKTtcbiAgICBwYXlsb2FkLnNldEFyZWFzKHBheWxvYWQuYXJlYXNfZGF0YS5uZXdBcmVhcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0QXJlYXMgPSAoYXJlYXMpID0+IHtcbiAgaWYgKCFhcmVhcykgcmV0dXJuIGFyZWFzO1xuXG4gIGNvbnN0IHRlbXAgPSBbLi4uYXJlYXNdO1xuICBjb25zdCBzb3J0ZWRBcmVhcyA9IHRlbXBcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEuaXNfYXNzZXNzbWVudCA9PT0gYi5pc19hc3Nlc3NtZW50ID8gMCA6IGEuaXNfYXNzZXNzbWVudCA/IC0xIDogMSxcbiAgICApXG4gICAgLnNvcnQoKGEsIGIpID0+IGIuYXJlYV9zY29yZSAtIGEuYXJlYV9zY29yZSk7XG5cbiAgcmV0dXJuIHNvcnRlZEFyZWFzO1xufTtcblxuZXhwb3J0IGNvbnN0IHNvcnRQb2ludHMgPSAocG9pbnRzKSA9PiB7XG4gIGlmICghcG9pbnRzKSByZXR1cm4gcG9pbnRzO1xuXG4gIGNvbnN0IHRlbXAgPSBbLi4ucG9pbnRzXTtcbiAgY29uc3Qgc29ydGVkUG9pbnRzID0gdGVtcFxuICAgIC5zb3J0KChhLCBiKSA9PiAoYS5oYXNfZGV2aWNlID09PSBiLmhhc19kZXZpY2UgPyAwIDogYS5oYXNfZGV2aWNlID8gLTEgOiAxKSlcbiAgICAuc29ydCgoYSwgYikgPT4gYi5hcmVhX3Njb3JlIC0gYS5hcmVhX3Njb3JlKTtcblxuICByZXR1cm4gc29ydGVkUG9pbnRzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUhpc3RvcnkgPSAob2JqZWN0LCBoaXN0b3J5KSA9PiB7XG4gIGNvbnN0IGFyZWEgPSBvYmplY3QuYXJlYV9pZCA/IG9iamVjdCA6IG51bGw7XG4gIGNvbnN0IHBvaW50ID0gb2JqZWN0LmlkID8gb2JqZWN0IDogbnVsbDtcblxuICBpZiAocG9pbnQpIHtcbiAgICBjb25zdCB0eXBlID1cbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcgPyAnd3d0cCcgOiAnc2l0ZSc7XG4gICAgaGlzdG9yeS5wdXNoKGAvZGFzaGJvYXJkX3YyLyR7dHlwZX0vJHtwb2ludC5pZH0ke2hpc3RvcnkubG9jYXRpb24uc2VhcmNofWApO1xuICB9IGVsc2Uge1xuICAgIGlmIChhcmVhKSB7XG4gICAgICBjb25zdCB0eXBlID0gYXJlYS5pc192aXJ0dWFsID8gJ3ZhcmVhJyA6ICdhcmVhJztcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC9kYXNoYm9hcmRfdjIvJHt0eXBlfS8ke2FyZWEuYXJlYV9pZH0ke2hpc3RvcnkubG9jYXRpb24uc2VhcmNofWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVdXVFBJbmZvID0gKHsgaWQsIHBvaW50c19kYXRhLCBhcmVhc19kYXRhIH0pID0+IHtcbiAgbGV0IFdXVFA6IElQb2ludCA9IHBvaW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBwYXJzZUludChpZCksXG4gICk7XG5cbiAgaWYgKFdXVFAgPT09IHVuZGVmaW5lZCkge1xuICAgIFdXVFAgPSBwb2ludHNfZGF0YS5pdGVtcz8uZmluZChcbiAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5ncm91cC5hcmVhX2lkID09PSBwYXJzZUludChpZCksXG4gICAgKTtcbiAgfVxuXG4gIGxldCBXV1RQQXJlYTogSUFyZWEgPSBhcmVhc19kYXRhLm5ld0FyZWFzLmZpbmQoXG4gICAgKGFyZWE6IElBcmVhKSA9PiBwYXJzZUludChpZCkgPT09IGFyZWEuYXJlYV9pZCxcbiAgKTtcblxuICBpZiAoV1dUUCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgV1dUUCA9IHtcbiAgICAgIC4uLldXVFAsXG4gICAgICBmb3JXV1RQTWFwOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBwb2ludDogV1dUUCwgYXJlYTogV1dUUEFyZWEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3B1cEZvck9iamVjdCA9IChhcmdzKSA9PiB7XG4gIGFyZ3MubWFya2VyLmJpbmRQb3B1cChgPGRpdiBjbGFzcz1cIndpZGdldC1jb250YWluZXJcIj48L2Rpdj5gLCB7XG4gICAgbWF4V2lkdGg6IDQwMCxcbiAgICBtaW5XaWR0aDogNDAwLFxuICAgIG1heEhlaWdodDogNDAwLFxuICAgIG1pbkhlaWdodDogNDAwLFxuICB9KTtcblxuICBhcmdzLm1hcmtlci5vbigncG9wdXBvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCQoJy53aWRnZXQtY29udGFpbmVyJykuY29udGVudHMoKS5sZW5ndGggPD0gMCkge1xuICAgICAgICAkKCcud2lkZ2V0LWNvbnRhaW5lcicpLmFwcGVuZChhcmdzLnJlbmRlcmVkRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwgMjAwKTtcbiAgfSk7XG5cbiAgYXJncy5tYXJrZXIub24oJ3BvcHVwY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXJncy5tYXJrZXIudW5iaW5kUG9wdXAoKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZm9jdXNNYXAgPSAob2JqZWN0LCBtYXApID0+IHtcbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBtYXAgPT09IG51bGwpIHJldHVybjtcblxuICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gIGlmIChvYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwLl9sYXllcnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbWFwLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0FyZWEnIHx8XG4gICAgICAgIG1hcC5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCdcbiAgICAgICkge1xuICAgICAgICBsYXRsbmdzLnB1c2gobWFwLl9sYXllcnNbcHJvcGVydHldLl9ib3VuZHMpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAob2JqZWN0LnN1Yl9hcmVhcyAmJiBvYmplY3Quc3ViX2FyZWFzLmxlbmd0aCA+IDApIHtcbiAgICAgIG9iamVjdC5zdWJfYXJlYXMuZm9yRWFjaCgoc3ViX2FyZWEpID0+IHtcbiAgICAgICAgaWYgKHN1Yl9hcmVhPy5zaGFwZV9kYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzdWJfYXJlYS5zaGFwZV9kYXRhLmZvckVhY2goKGxhdGxuZykgPT4ge1xuICAgICAgICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob2JqZWN0LmlubGV0cyAmJiBvYmplY3QuaW5sZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb2JqZWN0LmlubGV0cy5mb3JFYWNoKChpbmxldCkgPT4ge1xuICAgICAgICAgIGxhdGxuZ3MucHVzaChbaW5sZXQubGF0aXR1ZGUsIGlubGV0LmxvbmdpdHVkZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChvYmplY3Q/LnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9iamVjdC5zaGFwZV9kYXRhLmZvckVhY2goKGxhdGxuZykgPT4ge1xuICAgICAgICAgICAgbGF0bG5ncy5wdXNoKGxhdGxuZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGF0bG5ncy5wdXNoKFtvYmplY3QubGF0aXR1ZGUsIG9iamVjdC5sb25naXR1ZGVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBsYXRsbmdzLmxlbmd0aCA+IDAgJiZcbiAgICBtYXAgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgbWFwLl9sYXllcnMgPT09ICdvYmplY3QnICYmXG4gICAgbWFwLl9sYXllcnMubGVuZ3RoID09PSB1bmRlZmluZWQgJiZcbiAgICBtYXAuZml0Qm91bmRzKGxhdGxuZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNpbXBsZVRydW5jYXRlID0gKHN0ciwgbGVuZ3RoKSA9PiB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgbGVuZ3RoICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhcmd1bWVudHMuIFBsZWFzZSBwcm92aWRlIGEgc3RyaW5nIGFuZCBhIG51bWJlci4nKTtcbiAgfVxuXG4gIGlmIChzdHIubGVuZ3RoIDw9IGxlbmd0aCkge1xuICAgIHJldHVybiBzdHI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoMCwgbGVuZ3RoKSArICcuLi4nO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UG9pbnRzID0gKGxpc3Q6IGFueVtdLCBwb2ludHNfZGF0YTogSVBvaW50W10pID0+IHtcbiAgaWYgKHBvaW50c19kYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGxpc3Q7XG5cbiAgcmV0dXJuIGxpc3RcbiAgICAubWFwKChpdGVtKSA9PiBwb2ludHNfZGF0YS5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGl0ZW0uaWQpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59O1xuXG5leHBvcnQgY29uc3QgQ2FyZENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIC5jYXJkIHtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgdHJhbnNpdGlvbjogMC4ycyBlYXNlLWluLW91dDtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5gO1xuXG4vLyBTZW5kIGFuYWx5dGljcyBldmVudHMgZnJvbSBzZXZlcmFsIHBsYWNlcyBpbiB3d3RwbWFwLlxuLy8gc3ViamVjdCBpcyB0aGUgbmFtZSBvZiB0aGUgZXZlbnRcbi8vIHNlbGVjdGlvbiBpcyB0aGUgb2JqZWN0IHRoYXQgd2FzIHNlbGVjdGVkXG4vLyBzcGVjaWZpY0ZpZWxkcyBpcyBhbiBvYmplY3Qgd2l0aCBldmVudCBmaWVsZHMgdG8gc2VuZCB3aGljaCBhcmUgY29tYmluZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZmllbGRzXG5leHBvcnQgY29uc3Qgc2VuZEFuYWx5dGljc0V2ZW50ID0gKFxuICBzdWJqZWN0OiBzdHJpbmcsXG4gIHNlbGVjdGlvbjogc3RyaW5nLFxuICBldmVudEZpZWxkczogT2JqZWN0LFxuKSA9PiB7XG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgc2VsZWN0aW9uOiBzZWxlY3Rpb24sXG4gICAgcGFnZV9uYW1lOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgLi4uZXZlbnRGaWVsZHMsXG4gIH07XG4gIGFuYWx5dGljc1RyYWNrKHN1YmplY3QsIGRhdGEpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFFTyxNQUFNRSxrQkFBa0IsR0FBSUMsT0FBTyxJQUFLO0VBQzdDLElBQUlBLE9BQU8sQ0FBQ0MsVUFBVSxDQUFDLENBQUMsRUFBRTtJQUN4QixNQUFNQyxRQUFRLEdBQUdDLGlCQUFpQixDQUFDSCxPQUFPLENBQUM7SUFDM0NBLE9BQU8sQ0FBQ0ksV0FBVyxDQUFDRixRQUFRLENBQUM7SUFDN0JGLE9BQU8sQ0FBQ0ssU0FBUyxDQUFDTCxPQUFPLENBQUNNLFdBQVcsQ0FBQ0MsS0FBSyxDQUFDO0lBQzVDUCxPQUFPLENBQUNRLFFBQVEsQ0FBQ1IsT0FBTyxDQUFDUyxVQUFVLENBQUNDLFFBQVEsQ0FBQztFQUMvQztBQUNGLENBQUM7QUFBQ0MsT0FBQSxDQUFBWixrQkFBQSxHQUFBQSxrQkFBQTtBQUVLLE1BQU1hLFNBQVMsR0FBSUMsS0FBSyxJQUFLO0VBQ2xDLElBQUksQ0FBQ0EsS0FBSyxFQUFFLE9BQU9BLEtBQUs7RUFFeEIsTUFBTUMsSUFBSSxHQUFHLENBQUMsR0FBR0QsS0FBSyxDQUFDO0VBQ3ZCLE1BQU1FLFdBQVcsR0FBR0QsSUFBSSxDQUNyQkUsSUFBSSxDQUFDLENBQUNDLENBQUMsRUFBRUMsQ0FBQyxLQUNURCxDQUFDLENBQUNFLGFBQWEsS0FBS0QsQ0FBQyxDQUFDQyxhQUFhLEdBQUcsQ0FBQyxHQUFHRixDQUFDLENBQUNFLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUNuRSxDQUFDLENBQ0FILElBQUksQ0FBQyxDQUFDQyxDQUFDLEVBQUVDLENBQUMsS0FBS0EsQ0FBQyxDQUFDRSxVQUFVLEdBQUdILENBQUMsQ0FBQ0csVUFBVSxDQUFDO0VBRTlDLE9BQU9MLFdBQVc7QUFDcEIsQ0FBQztBQUFDSixPQUFBLENBQUFDLFNBQUEsR0FBQUEsU0FBQTtBQUVLLE1BQU1TLFVBQVUsR0FBSUMsTUFBTSxJQUFLO0VBQ3BDLElBQUksQ0FBQ0EsTUFBTSxFQUFFLE9BQU9BLE1BQU07RUFFMUIsTUFBTVIsSUFBSSxHQUFHLENBQUMsR0FBR1EsTUFBTSxDQUFDO0VBQ3hCLE1BQU1DLFlBQVksR0FBR1QsSUFBSSxDQUN0QkUsSUFBSSxDQUFDLENBQUNDLENBQUMsRUFBRUMsQ0FBQyxLQUFNRCxDQUFDLENBQUNPLFVBQVUsS0FBS04sQ0FBQyxDQUFDTSxVQUFVLEdBQUcsQ0FBQyxHQUFHUCxDQUFDLENBQUNPLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFFLENBQUMsQ0FDM0VSLElBQUksQ0FBQyxDQUFDQyxDQUFDLEVBQUVDLENBQUMsS0FBS0EsQ0FBQyxDQUFDRSxVQUFVLEdBQUdILENBQUMsQ0FBQ0csVUFBVSxDQUFDO0VBRTlDLE9BQU9HLFlBQVk7QUFDckIsQ0FBQztBQUFDWixPQUFBLENBQUFVLFVBQUEsR0FBQUEsVUFBQTtBQUVLLE1BQU1JLGFBQWEsR0FBR0EsQ0FBQ0MsTUFBTSxFQUFFQyxPQUFPLEtBQUs7RUFDaEQsTUFBTUMsSUFBSSxHQUFHRixNQUFNLENBQUNHLE9BQU8sR0FBR0gsTUFBTSxHQUFHLElBQUk7RUFDM0MsTUFBTUksS0FBSyxHQUFHSixNQUFNLENBQUNLLEVBQUUsR0FBR0wsTUFBTSxHQUFHLElBQUk7RUFFdkMsSUFBSUksS0FBSyxFQUFFO0lBQ1QsTUFBTUUsSUFBSSxHQUNSRixLQUFLLENBQUNHLEtBQUssQ0FBQ0QsSUFBSSxLQUFLLGtDQUFrQyxHQUFHLE1BQU0sR0FBRyxNQUFNO0lBQzNFTCxPQUFPLENBQUNPLElBQUksQ0FBRSxpQkFBZ0JGLElBQUssSUFBR0YsS0FBSyxDQUFDQyxFQUFHLEdBQUVKLE9BQU8sQ0FBQ1EsUUFBUSxDQUFDQyxNQUFPLEVBQUMsQ0FBQztFQUM3RSxDQUFDLE1BQU07SUFDTCxJQUFJUixJQUFJLEVBQUU7TUFDUixNQUFNSSxJQUFJLEdBQUdKLElBQUksQ0FBQ1MsVUFBVSxHQUFHLE9BQU8sR0FBRyxNQUFNO01BQy9DVixPQUFPLENBQUNPLElBQUksQ0FDVCxpQkFBZ0JGLElBQUssSUFBR0osSUFBSSxDQUFDQyxPQUFRLEdBQUVGLE9BQU8sQ0FBQ1EsUUFBUSxDQUFDQyxNQUFPLEVBQ2xFLENBQUM7SUFDSDtFQUNGO0FBQ0YsQ0FBQztBQUFDekIsT0FBQSxDQUFBYyxhQUFBLEdBQUFBLGFBQUE7QUFFSyxNQUFNdEIsaUJBQWlCLEdBQUdtQyxJQUFBLElBQXFDO0VBQUEsSUFBcEM7SUFBRVAsRUFBRTtJQUFFekIsV0FBVztJQUFFRztFQUFXLENBQUMsR0FBQTZCLElBQUE7RUFDL0QsSUFBSUMsSUFBWSxHQUFHakMsV0FBVyxDQUFDQyxLQUFLLENBQUNpQyxJQUFJLENBQ3RDVixLQUFhLElBQUtBLEtBQUssQ0FBQ0MsRUFBRSxLQUFLVSxRQUFRLENBQUNWLEVBQUUsQ0FDN0MsQ0FBQztFQUVELElBQUlRLElBQUksS0FBS0csU0FBUyxFQUFFO0lBQUEsSUFBQUMsa0JBQUE7SUFDdEJKLElBQUksSUFBQUksa0JBQUEsR0FBR3JDLFdBQVcsQ0FBQ0MsS0FBSyxjQUFBb0Msa0JBQUEsdUJBQWpCQSxrQkFBQSxDQUFtQkgsSUFBSSxDQUMzQlYsS0FBYSxJQUFLQSxLQUFLLENBQUNHLEtBQUssQ0FBQ0osT0FBTyxLQUFLWSxRQUFRLENBQUNWLEVBQUUsQ0FDeEQsQ0FBQztFQUNIO0VBRUEsSUFBSWEsUUFBZSxHQUFHbkMsVUFBVSxDQUFDQyxRQUFRLENBQUM4QixJQUFJLENBQzNDWixJQUFXLElBQUthLFFBQVEsQ0FBQ1YsRUFBRSxDQUFDLEtBQUtILElBQUksQ0FBQ0MsT0FDekMsQ0FBQztFQUVELElBQUlVLElBQUksS0FBS0csU0FBUyxFQUFFO0lBQ3RCSCxJQUFJLEdBQUc7TUFDTCxHQUFHQSxJQUFJO01BQ1BNLFVBQVUsRUFBRTtJQUNkLENBQUM7RUFDSDtFQUVBLE9BQU87SUFBRWYsS0FBSyxFQUFFUyxJQUFJO0lBQUVYLElBQUksRUFBRWdCO0VBQVMsQ0FBQztBQUN4QyxDQUFDO0FBQUNqQyxPQUFBLENBQUFSLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUssTUFBTTJDLG9CQUFvQixHQUFJQyxJQUFJLElBQUs7RUFDNUNBLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxTQUFTLENBQUUsc0NBQXFDLEVBQUU7SUFDNURDLFFBQVEsRUFBRSxHQUFHO0lBQ2JDLFFBQVEsRUFBRSxHQUFHO0lBQ2JDLFNBQVMsRUFBRSxHQUFHO0lBQ2RDLFNBQVMsRUFBRTtFQUNiLENBQUMsQ0FBQztFQUVGTixJQUFJLENBQUNDLE1BQU0sQ0FBQ00sRUFBRSxDQUFDLFdBQVcsRUFBRSxZQUFZO0lBQ3RDQyxVQUFVLENBQUMsTUFBTTtNQUNmLElBQUksSUFBQUMsZUFBQyxFQUFDLG1CQUFtQixDQUFDLENBQUNDLFFBQVEsQ0FBQyxDQUFDLENBQUNDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDakQsSUFBQUYsZUFBQyxFQUFDLG1CQUFtQixDQUFDLENBQUNHLE1BQU0sQ0FBQ1osSUFBSSxDQUFDYSxlQUFlLENBQUM7TUFDckQ7SUFDRixDQUFDLEVBQUUsR0FBRyxDQUFDO0VBQ1QsQ0FBQyxDQUFDO0VBRUZiLElBQUksQ0FBQ0MsTUFBTSxDQUFDTSxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVk7SUFDdkNQLElBQUksQ0FBQ0MsTUFBTSxDQUFDYSxXQUFXLENBQUMsQ0FBQztFQUMzQixDQUFDLENBQUM7QUFDSixDQUFDO0FBQUNsRCxPQUFBLENBQUFtQyxvQkFBQSxHQUFBQSxvQkFBQTtBQUVLLE1BQU1nQixRQUFRLEdBQUdBLENBQUNwQyxNQUFNLEVBQUVxQyxHQUFHLEtBQUs7RUFDdkMsSUFBSXJDLE1BQU0sS0FBSyxJQUFJLElBQUlxQyxHQUFHLEtBQUssSUFBSSxFQUFFO0VBRXJDLElBQUlDLE9BQVksR0FBRyxFQUFFO0VBQ3JCLElBQUl0QyxNQUFNLEtBQUtnQixTQUFTLEVBQUU7SUFDeEIsS0FBSyxNQUFNdUIsUUFBUSxJQUFJRixHQUFHLENBQUNHLE9BQU8sRUFBRTtNQUNsQyxJQUNFSCxHQUFHLENBQUNHLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUNFLFlBQVksS0FBSyxNQUFNLElBQzdDSixHQUFHLENBQUNHLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUNFLFlBQVksS0FBSyxPQUFPLEVBQzlDO1FBQ0FILE9BQU8sQ0FBQzlCLElBQUksQ0FBQzZCLEdBQUcsQ0FBQ0csT0FBTyxDQUFDRCxRQUFRLENBQUMsQ0FBQ0csT0FBTyxDQUFDO01BQzdDO0lBQ0Y7RUFDRixDQUFDLE1BQU07SUFDTCxJQUFJMUMsTUFBTSxDQUFDMkMsU0FBUyxJQUFJM0MsTUFBTSxDQUFDMkMsU0FBUyxDQUFDWCxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ25EaEMsTUFBTSxDQUFDMkMsU0FBUyxDQUFDQyxPQUFPLENBQUVDLFFBQVEsSUFBSztRQUNyQyxJQUFJLENBQUFBLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFQyxVQUFVLE1BQUs5QixTQUFTLEVBQUU7VUFDdEM2QixRQUFRLENBQUNDLFVBQVUsQ0FBQ0YsT0FBTyxDQUFFRyxNQUFNLElBQUs7WUFDdENULE9BQU8sQ0FBQzlCLElBQUksQ0FBQ3VDLE1BQU0sQ0FBQztVQUN0QixDQUFDLENBQUM7UUFDSjtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsTUFBTTtNQUNMLElBQUkvQyxNQUFNLENBQUNnRCxNQUFNLElBQUloRCxNQUFNLENBQUNnRCxNQUFNLENBQUNoQixNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzdDaEMsTUFBTSxDQUFDZ0QsTUFBTSxDQUFDSixPQUFPLENBQUVLLEtBQUssSUFBSztVQUMvQlgsT0FBTyxDQUFDOUIsSUFBSSxDQUFDLENBQUN5QyxLQUFLLENBQUNDLFFBQVEsRUFBRUQsS0FBSyxDQUFDRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUM7TUFDSixDQUFDLE1BQU07UUFDTCxJQUFJLENBQUFuRCxNQUFNLGFBQU5BLE1BQU0sdUJBQU5BLE1BQU0sQ0FBRThDLFVBQVUsTUFBSzlCLFNBQVMsRUFBRTtVQUNwQ2hCLE1BQU0sQ0FBQzhDLFVBQVUsQ0FBQ0YsT0FBTyxDQUFFRyxNQUFNLElBQUs7WUFDcENULE9BQU8sQ0FBQzlCLElBQUksQ0FBQ3VDLE1BQU0sQ0FBQztVQUN0QixDQUFDLENBQUM7UUFDSixDQUFDLE1BQU07VUFDTFQsT0FBTyxDQUFDOUIsSUFBSSxDQUFDLENBQUNSLE1BQU0sQ0FBQ2tELFFBQVEsRUFBRWxELE1BQU0sQ0FBQ21ELFNBQVMsQ0FBQyxDQUFDO1FBQ25EO01BQ0Y7SUFDRjtFQUNGO0VBQ0FiLE9BQU8sQ0FBQ04sTUFBTSxHQUFHLENBQUMsSUFDaEJLLEdBQUcsS0FBSyxJQUFJLElBQ1osT0FBT0EsR0FBRyxDQUFDRyxPQUFPLEtBQUssUUFBUSxJQUMvQkgsR0FBRyxDQUFDRyxPQUFPLENBQUNSLE1BQU0sS0FBS2hCLFNBQVMsSUFDaENxQixHQUFHLENBQUNlLFNBQVMsQ0FBQ2QsT0FBTyxDQUFDO0FBQzFCLENBQUM7QUFBQ3JELE9BQUEsQ0FBQW1ELFFBQUEsR0FBQUEsUUFBQTtBQUVLLE1BQU1pQixjQUFjLEdBQUdBLENBQUNDLEdBQUcsRUFBRXRCLE1BQU0sS0FBSztFQUM3QyxJQUFJLE9BQU9zQixHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU90QixNQUFNLEtBQUssUUFBUSxFQUFFO0lBQ3pELE1BQU0sSUFBSXVCLEtBQUssQ0FBQywwREFBMEQsQ0FBQztFQUM3RTtFQUVBLElBQUlELEdBQUcsQ0FBQ3RCLE1BQU0sSUFBSUEsTUFBTSxFQUFFO0lBQ3hCLE9BQU9zQixHQUFHO0VBQ1osQ0FBQyxNQUFNO0lBQ0wsT0FBT0EsR0FBRyxDQUFDRSxTQUFTLENBQUMsQ0FBQyxFQUFFeEIsTUFBTSxDQUFDLEdBQUcsS0FBSztFQUN6QztBQUNGLENBQUM7QUFBQy9DLE9BQUEsQ0FBQW9FLGNBQUEsR0FBQUEsY0FBQTtBQUVLLE1BQU1JLFNBQVMsR0FBR0EsQ0FBQ0MsSUFBVyxFQUFFOUUsV0FBcUIsS0FBSztFQUMvRCxJQUFJQSxXQUFXLENBQUNvRCxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU8wQixJQUFJO0VBRXpDLE9BQU9BLElBQUksQ0FDUnJCLEdBQUcsQ0FBRXNCLElBQUksSUFBSy9FLFdBQVcsQ0FBQ2tDLElBQUksQ0FBRVYsS0FBSyxJQUFLQSxLQUFLLENBQUNDLEVBQUUsS0FBS3NELElBQUksQ0FBQ3RELEVBQUUsQ0FBQyxDQUFDLENBQ2hFdUQsTUFBTSxDQUFDQyxPQUFPLENBQUM7QUFDcEIsQ0FBQztBQUFDNUUsT0FBQSxDQUFBd0UsU0FBQSxHQUFBQSxTQUFBO0FBRUssTUFBTUssYUFBYSxHQUFHQyx5QkFBTSxDQUFDQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOEtBV3RDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQUFsRixPQUFBLENBQUE2RSxhQUFBLEdBQUFBLGFBQUE7QUFDTyxNQUFNTSxrQkFBa0IsR0FBR0EsQ0FDaENDLE9BQWUsRUFDZkMsU0FBaUIsRUFDakJDLFdBQW1CLEtBQ2hCO0VBQ0gsTUFBTUMsSUFBSSxHQUFHO0lBQ1hGLFNBQVMsRUFBRUEsU0FBUztJQUNwQkcsU0FBUyxFQUFFQyxNQUFNLENBQUNqRSxRQUFRLENBQUNrRSxRQUFRO0lBQ25DLEdBQUdKO0VBQ0wsQ0FBQztFQUNELElBQUFLLHlCQUFjLEVBQUNQLE9BQU8sRUFBRUcsSUFBSSxDQUFDO0FBQy9CLENBQUM7QUFBQ3ZGLE9BQUEsQ0FBQW1GLGtCQUFBLEdBQUFBLGtCQUFBIn0=
|