@kando-env/kando-ui 1.2.351 → 1.2.352
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 +23 -33
- package/lib/Widgets/EventsRow/EventsRow.js +25 -37
- package/lib/Widgets/Map/GraphUtils.js +3 -3
- package/lib/Widgets/Map/Map.js +66 -83
- package/lib/Widgets/Map/MapUtils.js +40 -39
- package/lib/Widgets/Map/areas/AreaPolygon.js +52 -76
- package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
- package/lib/Widgets/Map/areas/AreaUtils.js +46 -46
- package/lib/Widgets/Map/areas/Patterns.js +4 -4
- package/lib/Widgets/Map/edges/Edge.js +24 -31
- package/lib/Widgets/Map/edges/Edges.js +19 -23
- 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 +57 -52
- package/lib/Widgets/Map/events/EventPath.js +24 -22
- package/lib/Widgets/Map/events/EventUtils.js +55 -78
- 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 +15 -13
- 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 +69 -75
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +28 -45
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -10
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +10 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/Areas.js +28 -57
- 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 +33 -64
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +14 -17
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +7 -7
- 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 +21 -27
- 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 +34 -31
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +27 -26
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +51 -47
- 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 +25 -24
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -40
- package/lib/Widgets/UtilityInformation/styles.js +31 -22
- 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 +8 -8
- 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 +10 -9
- 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 +12 -19
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
- package/lib/components/CustomInputs/Search/Search.js +39 -60
- package/lib/components/CustomInputs/Select/Select.js +42 -55
- package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
- package/lib/components/DamageType/DamageType.js +34 -56
- 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 +9 -9
- package/lib/components/DischargeHeatmap/titles.js +3 -3
- package/lib/components/ErrorBoundary.js +27 -41
- package/lib/components/Events/Events.js +28 -45
- package/lib/components/Graph/Graph.js +67 -86
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +18 -26
- 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 +82 -197
- package/lib/components/Header/InfoBar/InfoBar.js +66 -95
- package/lib/components/Header/InfoBar/Search/Control.js +9 -9
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +6 -4
- package/lib/components/Header/InfoBar/Search/Search.js +14 -19
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +15 -27
- 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 +62 -87
- package/lib/components/Header/Slideshow/Slideshow.js +67 -89
- 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 +13 -13
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +35 -41
- 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 +23 -37
- 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 +36 -28
- package/lib/components/Map/Map.js +19 -22
- package/lib/components/Modal/Modal.js +9 -9
- package/lib/components/NarrowHeader.js +17 -31
- package/lib/components/PointInfo/PointInfo.js +18 -16
- 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 +48 -51
- package/lib/components/SevereEvent/Eta/styles.js +10 -6
- package/lib/components/SevereEvent/SevereEvent.js +27 -34
- package/lib/components/Spinner/Spinner.js +7 -7
- package/lib/components/Spinner/Spinner.stories.js +4 -6
- package/lib/components/Spinner/styles.js +20 -12
- package/lib/components/Tabs/Tabs.js +18 -27
- 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 +34 -45
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +16 -21
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +11 -11
- package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +16 -24
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +28 -29
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
- package/lib/components/TimeRangeSelector/constants.js +3 -3
- package/lib/components/Toggle/Toggle.js +10 -15
- package/lib/components/TrendGraph/TrendGraph.js +22 -38
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +24 -30
- 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 +25 -28
- package/lib/development-environment/togly/init.js +2 -2
- package/lib/development-environment/togly/macro.js +13 -9
- 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 +15 -28
- 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 +2 -2
- package/lib/pages/AreaPage/AreaPage.js +34 -67
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +15 -16
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +23 -24
- 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 +7 -7
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +9 -9
- 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 +37 -43
- 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 +27 -37
- package/lib/pages/CovidPage/components/Sidebar.js +14 -13
- package/lib/pages/CovidPage/components/Summary.js +19 -26
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +24 -30
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
- package/lib/pages/CovidPage/components/areas/Area.js +24 -35
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +44 -43
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
- package/lib/pages/CovidPage/components/areas/AreasList.js +29 -41
- 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 +26 -26
- package/lib/pages/DashboardMap/AssessmentIcon.js +7 -6
- package/lib/pages/DashboardMap/Capacity.js +34 -85
- package/lib/pages/DashboardMap/FactoryCard.js +28 -24
- package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
- package/lib/pages/DashboardMap/List.js +68 -94
- 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 +49 -59
- package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
- package/lib/pages/DashboardMap/Widget.js +53 -70
- package/lib/pages/DashboardMap/utils.js +41 -50
- 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 +52 -63
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +17 -23
- package/lib/pages/EventsPage/EventsPage.js +7 -10
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +25 -37
- 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 +32 -29
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +41 -40
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
- package/lib/pages/EventsPage/events/event_info/EventSection.js +16 -18
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +38 -46
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +28 -31
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +4 -4
- 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/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 +21 -25
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +11 -7
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +6 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +5 -3
- 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 +6 -4
- 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 +24 -37
- 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 +25 -28
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +21 -24
- package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
- package/lib/pages/EventsPage/events/events_list/EventItem.js +17 -18
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
- package/lib/pages/EventsPage/events/events_list/EventsList.js +113 -134
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +38 -53
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +72 -108
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +52 -69
- 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 +12 -19
- 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 +21 -20
- 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 +12 -20
- 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 +28 -57
- 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 +70 -93
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +93 -62
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +126 -137
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +71 -71
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +90 -87
- package/lib/pages/NotificationsPageV2/notificationUtils.js +39 -33
- package/lib/pages/OldSitePage/OldSitePage.js +56 -131
- 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 +17 -11
- 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 +26 -22
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +26 -28
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +15 -9
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +23 -39
- package/lib/pages/ProfilePage/ProfilePage.js +111 -199
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +18 -15
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +23 -25
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +56 -116
- 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 +38 -40
- 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 +42 -29
- package/lib/pages/SamplingsPage/NewSamplingAction.js +73 -97
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +123 -97
- 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 +33 -56
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +8 -6
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +107 -191
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +47 -53
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +42 -38
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +42 -38
- 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 +51 -52
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
- package/lib/pages/SamplingsPage/SamplingsPage.js +25 -31
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +49 -57
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +67 -75
- 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 +17 -11
- 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 +8 -8
- 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 +53 -53
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +29 -38
- 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 +15 -9
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
- package/lib/pages/SitePage/SitePage.js +34 -73
- 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 +46 -47
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +2 -2
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +10 -9
- 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 +16 -24
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +26 -30
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +15 -16
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +26 -30
- package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
- package/lib/pages/WbeDashboard/GraphWrapper.js +28 -34
- 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 +10 -10
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +144 -206
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +39 -47
- package/lib/pages/WwtpPage/DashboardCard.js +23 -20
- package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +25 -21
- 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 +6 -4
- 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 +2 -2
- package/lib/pages/WwtpPage/WwtpPage.js +7 -7
- 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 +4 -4
- 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 +3 -7
- 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 +127 -79
- 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 +14 -17
- package/lib/ui-kit/Dashboard/Dashboard.js +22 -19
- package/lib/ui-kit/DropDown/DropDown.js +22 -23
- 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 +5 -3
- package/lib/ui-kit/IconAction/IconAction.js +7 -5
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +46 -62
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +57 -48
- 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 +55 -49
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +7 -5
- 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 +19 -19
- 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 +11 -11
- 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 +5 -7
- package/lib/utilities/ThousandsToK.js +2 -2
- package/lib/utilities/TimeFormat.js +21 -20
- package/lib/utilities/Truncate.js +16 -24
- package/lib/utilities/edgesMath.js +14 -15
- package/lib/utilities/i18n.js +3 -3
- package/lib/utilities/kql.js +10 -12
- package/lib/utilities/map/icons.js +3 -3
- package/lib/utilities/polylinedecorator.js +87 -112
- package/lib/utilities/scoreToData.js +10 -10
- 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 +16 -14
- package/package.json +1 -1
|
@@ -1,25 +1,26 @@
|
|
|
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.AreaPolygons = void 0;
|
|
9
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
9
|
var _AreaPolygon = _interopRequireDefault(require("./AreaPolygon"));
|
|
11
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
|
12
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
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); }
|
|
11
|
+
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; }
|
|
12
|
+
const AreaPolygons = props => {
|
|
13
|
+
const {
|
|
14
|
+
L,
|
|
15
|
+
areas,
|
|
16
|
+
map,
|
|
17
|
+
mapZoom,
|
|
18
|
+
global_data,
|
|
19
|
+
featureGroup
|
|
20
|
+
} = props;
|
|
20
21
|
// const [shouldFly, setShouldFly] = useState(true);
|
|
21
22
|
|
|
22
|
-
(0, _react.useEffect)(
|
|
23
|
+
(0, _react.useEffect)(() => {
|
|
23
24
|
featureGroup.addTo(map);
|
|
24
25
|
}, []);
|
|
25
26
|
|
|
@@ -32,18 +33,16 @@ var AreaPolygons = function AreaPolygons(props) {
|
|
|
32
33
|
// }
|
|
33
34
|
// }
|
|
34
35
|
|
|
35
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, areas.length !== 0 && areas.map(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
46
|
-
}));
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, areas.length !== 0 && areas.map(area => /*#__PURE__*/_react.default.createElement(_AreaPolygon.default, {
|
|
37
|
+
area: area,
|
|
38
|
+
map: map,
|
|
39
|
+
L: L,
|
|
40
|
+
key: area.area_id,
|
|
41
|
+
mapZoom: mapZoom,
|
|
42
|
+
global_data: global_data,
|
|
43
|
+
bindPopup: true,
|
|
44
|
+
featureGroup: featureGroup
|
|
45
|
+
})));
|
|
47
46
|
};
|
|
48
47
|
exports.AreaPolygons = AreaPolygons;
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfQXJlYVBvbHlnb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkFyZWFQb2x5Z29ucyIsInByb3BzIiwiTCIsImFyZWFzIiwibWFwIiwibWFwWm9vbSIsImdsb2JhbF9kYXRhIiwiZmVhdHVyZUdyb3VwIiwidXNlRWZmZWN0IiwiYWRkVG8iLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJsZW5ndGgiLCJhcmVhIiwiYXJlYV9pZCIsImJpbmRQb3B1cCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvYXJlYXMvQXJlYVBvbHlnb25zLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCBBcmVhUG9seWdvbiBmcm9tICcuL0FyZWFQb2x5Z29uJztcbmltcG9ydCB7IEZlYXR1cmVHcm91cCB9IGZyb20gJ2xlYWZsZXQnO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgTDogYW55O1xuICBhcmVhczogSUFyZWFbXTtcbiAgbWFwWm9vbTogbnVtYmVyO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZ2xvYmFsX2RhdGE6IGFueTtcbiAgZmVhdHVyZUdyb3VwOiBGZWF0dXJlR3JvdXA7XG59O1xuXG5leHBvcnQgY29uc3QgQXJlYVBvbHlnb25zOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBMLCBhcmVhcywgbWFwLCBtYXBab29tLCBnbG9iYWxfZGF0YSwgZmVhdHVyZUdyb3VwIH0gPSBwcm9wcztcbiAgLy8gY29uc3QgW3Nob3VsZEZseSwgc2V0U2hvdWxkRmx5XSA9IHVzZVN0YXRlKHRydWUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmVhdHVyZUdyb3VwLmFkZFRvKG1hcCk7XG4gIH0sIFtdKTtcblxuICAvLyBpZiAoc2hvdWxkRmx5KSB7XG4gIC8vICAgaWYgKGZlYXR1cmVHcm91cC5nZXRMYXllcnMoKS5sZW5ndGggPiAwICYmICFhcmVhVG9DZW50ZXJCeSkge1xuICAvLyAgICAgbWFwLmZpdEJvdW5kcyhmZWF0dXJlR3JvdXAuZ2V0Qm91bmRzKCksIHtcbiAgLy8gICAgICAgcGFkZGluZzogWzQyMCwgNDIwXSxcbiAgLy8gICAgIH0pO1xuICAvLyAgICAgc2V0U2hvdWxkRmx5KGZhbHNlKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7YXJlYXMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIGFyZWFzLm1hcCgoYXJlYTogSUFyZWEpID0+IChcbiAgICAgICAgICA8QXJlYVBvbHlnb25cbiAgICAgICAgICAgIGFyZWE9e2FyZWF9XG4gICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgIEw9e0x9XG4gICAgICAgICAgICBrZXk9e2FyZWEuYXJlYV9pZH1cbiAgICAgICAgICAgIG1hcFpvb209e21hcFpvb219XG4gICAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgICBiaW5kUG9wdXA9e3RydWV9XG4gICAgICAgICAgICBmZWF0dXJlR3JvdXA9e2ZlYXR1cmVHcm91cH1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICA8Lz5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBd0MsU0FBQUcseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUwsd0JBQUFTLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFoQixHQUFBLEVBQUFNLE1BQUEsWUFBQUEsTUFBQTtBQWFqQyxNQUFNVyxZQUE2QixHQUFJQyxLQUFLLElBQUs7RUFDdEQsTUFBTTtJQUFFQyxDQUFDO0lBQUVDLEtBQUs7SUFBRUMsR0FBRztJQUFFQyxPQUFPO0lBQUVDLFdBQVc7SUFBRUM7RUFBYSxDQUFDLEdBQUdOLEtBQUs7RUFDbkU7O0VBRUEsSUFBQU8sZ0JBQVMsRUFBQyxNQUFNO0lBQ2RELFlBQVksQ0FBQ0UsS0FBSyxDQUFDTCxHQUFHLENBQUM7RUFDekIsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs7RUFFTjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLG9CQUNFL0IsTUFBQSxDQUFBWSxPQUFBLENBQUF5QixhQUFBLENBQUFyQyxNQUFBLENBQUFZLE9BQUEsQ0FBQTBCLFFBQUEsUUFDR1IsS0FBSyxDQUFDUyxNQUFNLEtBQUssQ0FBQyxJQUNqQlQsS0FBSyxDQUFDQyxHQUFHLENBQUVTLElBQVcsaUJBQ3BCeEMsTUFBQSxDQUFBWSxPQUFBLENBQUF5QixhQUFBLENBQUNsQyxZQUFBLENBQUFTLE9BQVc7SUFDVjRCLElBQUksRUFBRUEsSUFBSztJQUNYVCxHQUFHLEVBQUVBLEdBQUk7SUFDVEYsQ0FBQyxFQUFFQSxDQUFFO0lBQ0xSLEdBQUcsRUFBRW1CLElBQUksQ0FBQ0MsT0FBUTtJQUNsQlQsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCQyxXQUFXLEVBQUVBLFdBQVk7SUFDekJTLFNBQVMsRUFBRSxJQUFLO0lBQ2hCUixZQUFZLEVBQUVBO0VBQWEsQ0FDNUIsQ0FDRixDQUNILENBQUM7QUFFUCxDQUFDO0FBQUNTLE9BQUEsQ0FBQWhCLFlBQUEsR0FBQUEsWUFBQSJ9
|
|
@@ -10,23 +10,23 @@ require("leaflet.pattern");
|
|
|
10
10
|
var _scoreToData = require("../../../utilities/scoreToData");
|
|
11
11
|
var _theme = require("../../../styles/theme/theme");
|
|
12
12
|
var _Patterns = require("./Patterns");
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const getAreaName = area => {
|
|
14
|
+
let name = area.area_name || area.name;
|
|
15
15
|
return name;
|
|
16
16
|
};
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const getAreaId = area => {
|
|
18
|
+
let name = area.area_id || area.id;
|
|
19
19
|
return name;
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const genericPolygon = (area, mapZoom) => {
|
|
22
|
+
let areaPolygon;
|
|
23
|
+
let latlngs = area.shape_data.map(location => {
|
|
24
24
|
return [location['lat'], location['lng']];
|
|
25
25
|
});
|
|
26
26
|
if (latlngs.length < 1) return;
|
|
27
|
-
|
|
27
|
+
let color = area.color ? area.color : (0, _scoreToData.scoreToColor)(area.area_score);
|
|
28
28
|
areaPolygon = _leaflet.default.polygon(latlngs, {
|
|
29
|
-
color
|
|
29
|
+
color,
|
|
30
30
|
fillOpacity: area.showColorOnlyInBorders ? 0.3 : 0.4,
|
|
31
31
|
weight: area.showColorOnlyInBorders ? 2 : 0,
|
|
32
32
|
fill: false
|
|
@@ -34,25 +34,25 @@ var genericPolygon = function genericPolygon(area, mapZoom) {
|
|
|
34
34
|
return areaPolygon;
|
|
35
35
|
};
|
|
36
36
|
exports.genericPolygon = genericPolygon;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
for (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
const calculatePolygonArea = coordinates => {
|
|
38
|
+
let area = 0;
|
|
39
|
+
let numPoints = coordinates.length;
|
|
40
|
+
for (let i = 0; i < numPoints; i++) {
|
|
41
|
+
let x1 = coordinates[i][0];
|
|
42
|
+
let y1 = coordinates[i][1];
|
|
43
|
+
let x2 = coordinates[(i + 1) % numPoints][0];
|
|
44
|
+
let y2 = coordinates[(i + 1) % numPoints][1];
|
|
45
45
|
area += x1 * y2 - x2 * y1;
|
|
46
46
|
}
|
|
47
47
|
return Math.abs(area / 2);
|
|
48
48
|
};
|
|
49
49
|
exports.calculatePolygonArea = calculatePolygonArea;
|
|
50
|
-
|
|
50
|
+
const polygonTitle = (area, mapZoom) => {
|
|
51
51
|
return "<div class=\"area-tooltip\" style=\"color:".concat(_theme.theme.colorScheme.primary.ps1, ";font-weight:700;background-color:transparent;font-size: ").concat(mapZoom * 1.5, "px;-webkit-text-stroke: 0.8px #ffffff;\"> ").concat(getAreaName(area), " \n </div>");
|
|
52
52
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
const bindTooltip = (layer, area) => {
|
|
54
|
+
const mapZoom = layer._map !== undefined ? layer._map.getZoom() : 0;
|
|
55
|
+
const title = polygonTitle(area, mapZoom);
|
|
56
56
|
layer.bindTooltip(title, {
|
|
57
57
|
className: 'area-tooltip',
|
|
58
58
|
permanent: true,
|
|
@@ -62,9 +62,9 @@ var bindTooltip = function bindTooltip(layer, area) {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
// The tooltip is showing the area name
|
|
65
|
-
|
|
65
|
+
const handleToltipBasedOnZoomLevel = (polygon, mapZoom) => {
|
|
66
66
|
if (mapZoom > 11) {
|
|
67
|
-
|
|
67
|
+
const tooltip = polygon.getTooltip();
|
|
68
68
|
tooltip.setContent(polygonTitle(polygon, mapZoom));
|
|
69
69
|
polygon.openTooltip();
|
|
70
70
|
} else {
|
|
@@ -72,11 +72,11 @@ var handleToltipBasedOnZoomLevel = function handleToltipBasedOnZoomLevel(polygon
|
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
exports.handleToltipBasedOnZoomLevel = handleToltipBasedOnZoomLevel;
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const drillDownBasedOnZoomLevel = (areaPolygon, area, percentage, zoomPercentageToDrillDown, isPartialPolygonVisible, map, featureGroup) => {
|
|
76
|
+
const drillDownCondition = () => {
|
|
77
77
|
return percentage >= zoomPercentageToDrillDown && isPartialPolygonVisible && area.sub_areas.length !== 0 && areaPolygon._map !== null;
|
|
78
78
|
};
|
|
79
|
-
|
|
79
|
+
const hidePolygon = polygon => {
|
|
80
80
|
polygon.bringToBack();
|
|
81
81
|
polygon.closeTooltip();
|
|
82
82
|
polygon['hidden'] = true;
|
|
@@ -85,7 +85,7 @@ var drillDownBasedOnZoomLevel = function drillDownBasedOnZoomLevel(areaPolygon,
|
|
|
85
85
|
fill: false
|
|
86
86
|
});
|
|
87
87
|
};
|
|
88
|
-
|
|
88
|
+
const showPolygon = (polygon, fill) => {
|
|
89
89
|
polygon.bringToFront();
|
|
90
90
|
polygon['hidden'] = false;
|
|
91
91
|
polygon.setStyle({
|
|
@@ -97,10 +97,10 @@ var drillDownBasedOnZoomLevel = function drillDownBasedOnZoomLevel(areaPolygon,
|
|
|
97
97
|
fillOpacity: 0.4
|
|
98
98
|
});
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
const handleSubAreas = show => {
|
|
101
101
|
if (areaPolygon['sub_areas'] !== undefined) {
|
|
102
|
-
areaPolygon['sub_areas'].forEach(
|
|
103
|
-
featureGroup.eachLayer(
|
|
102
|
+
areaPolygon['sub_areas'].forEach(subAreaId => {
|
|
103
|
+
featureGroup.eachLayer(layer => {
|
|
104
104
|
if (layer['kando_object_id'] === subAreaId) {
|
|
105
105
|
show ? showPolygon(layer, true) : hidePolygon(layer);
|
|
106
106
|
}
|
|
@@ -123,32 +123,32 @@ var drillDownBasedOnZoomLevel = function drillDownBasedOnZoomLevel(areaPolygon,
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
|
-
|
|
126
|
+
const zoomControlForArea = (areaPolygon, area, map, featureGroup) => {
|
|
127
127
|
map.on('zoomend', function () {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
128
|
+
let getMapBounds = map.getBounds();
|
|
129
|
+
let polygonBounds = areaPolygon.getBounds();
|
|
130
|
+
let isPartialPolygonVisible = getMapBounds.intersects(polygonBounds);
|
|
131
|
+
let mapBoundsPolygon = _leaflet.default.polygon([getMapBounds.getSouthWest(), getMapBounds.getNorthWest(), getMapBounds.getNorthEast(), getMapBounds.getSouthEast()]);
|
|
132
|
+
let mapBounds = calculatePolygonArea(mapBoundsPolygon.toGeoJSON().geometry.coordinates[0]);
|
|
133
|
+
let areaSurface = areaPolygon['calculated_surface'];
|
|
134
|
+
const zoomPercentageToDrillDown = 15.0;
|
|
135
|
+
const percentage = areaSurface / mapBounds * 100;
|
|
136
136
|
drillDownBasedOnZoomLevel(areaPolygon, area, percentage, zoomPercentageToDrillDown, isPartialPolygonVisible, map, featureGroup);
|
|
137
137
|
});
|
|
138
138
|
};
|
|
139
139
|
exports.zoomControlForArea = zoomControlForArea;
|
|
140
|
-
|
|
140
|
+
const customAttributesForAreaPolygon = (areaPolygon, area) => {
|
|
141
141
|
areaPolygon['kando_object_id'] = getAreaId(area);
|
|
142
142
|
areaPolygon['kando_object'] = 'Area';
|
|
143
143
|
areaPolygon['area_name'] = getAreaName(area);
|
|
144
144
|
areaPolygon['calculated_surface'] = area.calculated_surface;
|
|
145
145
|
};
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
const createPolygon = (area, mapZoom, featureGroup, map, popupCreator) => {
|
|
147
|
+
let polygon;
|
|
148
148
|
if (area.shape_data !== null && area.shape_data !== undefined && area.shape_data.length > 0) {
|
|
149
149
|
polygon = genericPolygon(area, mapZoom);
|
|
150
150
|
customAttributesForAreaPolygon(polygon, area);
|
|
151
|
-
|
|
151
|
+
const pattern = getPattern(area);
|
|
152
152
|
if (pattern) {
|
|
153
153
|
pattern === null || pattern === void 0 ? void 0 : pattern.addTo(map);
|
|
154
154
|
polygon.setStyle({
|
|
@@ -165,11 +165,11 @@ var createPolygon = function createPolygon(area, mapZoom, featureGroup, map, pop
|
|
|
165
165
|
return null;
|
|
166
166
|
};
|
|
167
167
|
exports.createPolygon = createPolygon;
|
|
168
|
-
|
|
168
|
+
const getPattern = area => {
|
|
169
169
|
if (area.is_assessment === false) {
|
|
170
170
|
return null;
|
|
171
171
|
}
|
|
172
|
-
|
|
172
|
+
const color = (0, _scoreToData.scoreToColor)(area.area_score);
|
|
173
173
|
return (0, _Patterns.assesmentPattern)(color);
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Njb3JlVG9EYXRhIiwiX3RoZW1lIiwiX1BhdHRlcm5zIiwiZ2V0QXJlYU5hbWUiLCJhcmVhIiwibmFtZSIsImFyZWFfbmFtZSIsImdldEFyZWFJZCIsImFyZWFfaWQiLCJpZCIsImdlbmVyaWNQb2x5Z29uIiwibWFwWm9vbSIsImFyZWFQb2x5Z29uIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJtYXAiLCJsb2NhdGlvbiIsImxlbmd0aCIsImNvbG9yIiwic2NvcmVUb0NvbG9yIiwiYXJlYV9zY29yZSIsIkwiLCJwb2x5Z29uIiwiZmlsbE9wYWNpdHkiLCJzaG93Q29sb3JPbmx5SW5Cb3JkZXJzIiwid2VpZ2h0IiwiZmlsbCIsImV4cG9ydHMiLCJjYWxjdWxhdGVQb2x5Z29uQXJlYSIsImNvb3JkaW5hdGVzIiwibnVtUG9pbnRzIiwiaSIsIngxIiwieTEiLCJ4MiIsInkyIiwiTWF0aCIsImFicyIsInBvbHlnb25UaXRsZSIsImNvbmNhdCIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJwcmltYXJ5IiwicHMxIiwiYmluZFRvb2x0aXAiLCJsYXllciIsIl9tYXAiLCJ1bmRlZmluZWQiLCJnZXRab29tIiwidGl0bGUiLCJjbGFzc05hbWUiLCJwZXJtYW5lbnQiLCJkaXJlY3Rpb24iLCJoYW5kbGVUb2x0aXBCYXNlZE9uWm9vbUxldmVsIiwidG9vbHRpcCIsImdldFRvb2x0aXAiLCJzZXRDb250ZW50Iiwib3BlblRvb2x0aXAiLCJjbG9zZVRvb2x0aXAiLCJkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsIiwicGVyY2VudGFnZSIsInpvb21QZXJjZW50YWdlVG9EcmlsbERvd24iLCJpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSIsImZlYXR1cmVHcm91cCIsImRyaWxsRG93bkNvbmRpdGlvbiIsInN1Yl9hcmVhcyIsImhpZGVQb2x5Z29uIiwiYnJpbmdUb0JhY2siLCJzZXRTdHlsZSIsInN0cm9rZSIsInNob3dQb2x5Z29uIiwiYnJpbmdUb0Zyb250Iiwib3BhY2l0eSIsImhhbmRsZVN1YkFyZWFzIiwic2hvdyIsImZvckVhY2giLCJzdWJBcmVhSWQiLCJlYWNoTGF5ZXIiLCJ6b29tQ29udHJvbEZvckFyZWEiLCJvbiIsImdldE1hcEJvdW5kcyIsImdldEJvdW5kcyIsInBvbHlnb25Cb3VuZHMiLCJpbnRlcnNlY3RzIiwibWFwQm91bmRzUG9seWdvbiIsImdldFNvdXRoV2VzdCIsImdldE5vcnRoV2VzdCIsImdldE5vcnRoRWFzdCIsImdldFNvdXRoRWFzdCIsIm1hcEJvdW5kcyIsInRvR2VvSlNPTiIsImdlb21ldHJ5IiwiYXJlYVN1cmZhY2UiLCJjdXN0b21BdHRyaWJ1dGVzRm9yQXJlYVBvbHlnb24iLCJjYWxjdWxhdGVkX3N1cmZhY2UiLCJjcmVhdGVQb2x5Z29uIiwicG9wdXBDcmVhdG9yIiwicGF0dGVybiIsImdldFBhdHRlcm4iLCJhZGRUbyIsImZpbGxQYXR0ZXJuIiwiaXNfYXNzZXNzbWVudCIsImFzc2VzbWVudFBhdHRlcm4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvYXJlYXMvQXJlYVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMLCB7IEZlYXR1cmVHcm91cCwgUG9seWdvbiB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0IHsgc2NvcmVUb0NvbG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGFzc2VzbWVudFBhdHRlcm4gfSBmcm9tICcuL1BhdHRlcm5zJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5cbmNvbnN0IGdldEFyZWFOYW1lID0gKGFyZWEpID0+IHtcbiAgbGV0IG5hbWUgPSBhcmVhLmFyZWFfbmFtZSB8fCBhcmVhLm5hbWU7XG5cbiAgcmV0dXJuIG5hbWU7XG59O1xuXG5jb25zdCBnZXRBcmVhSWQgPSAoYXJlYSkgPT4ge1xuICBsZXQgbmFtZSA9IGFyZWEuYXJlYV9pZCB8fCBhcmVhLmlkO1xuXG4gIHJldHVybiBuYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyaWNQb2x5Z29uID0gKGFyZWEsIG1hcFpvb20pID0+IHtcbiAgbGV0IGFyZWFQb2x5Z29uOiBQb2x5Z29uO1xuICBsZXQgbGF0bG5ncyA9IGFyZWEuc2hhcGVfZGF0YS5tYXAoKGxvY2F0aW9uOiBhbnkpID0+IHtcbiAgICByZXR1cm4gW2xvY2F0aW9uWydsYXQnXSwgbG9jYXRpb25bJ2xuZyddXTtcbiAgfSk7XG5cbiAgaWYgKGxhdGxuZ3MubGVuZ3RoIDwgMSkgcmV0dXJuO1xuXG4gIGxldCBjb2xvciA9IGFyZWEuY29sb3IgPyBhcmVhLmNvbG9yIDogc2NvcmVUb0NvbG9yKGFyZWEuYXJlYV9zY29yZSk7XG5cbiAgYXJlYVBvbHlnb24gPSBMLnBvbHlnb24obGF0bG5ncywge1xuICAgIGNvbG9yLFxuICAgIGZpbGxPcGFjaXR5OiBhcmVhLnNob3dDb2xvck9ubHlJbkJvcmRlcnMgPyAwLjMgOiAwLjQsXG4gICAgd2VpZ2h0OiBhcmVhLnNob3dDb2xvck9ubHlJbkJvcmRlcnMgPyAyIDogMCxcbiAgICBmaWxsOiBmYWxzZSxcbiAgfSk7XG5cbiAgcmV0dXJuIGFyZWFQb2x5Z29uO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVBvbHlnb25BcmVhID0gKGNvb3JkaW5hdGVzKSA9PiB7XG4gIGxldCBhcmVhID0gMDtcbiAgbGV0IG51bVBvaW50cyA9IGNvb3JkaW5hdGVzLmxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVBvaW50czsgaSsrKSB7XG4gICAgbGV0IHgxID0gY29vcmRpbmF0ZXNbaV1bMF07XG4gICAgbGV0IHkxID0gY29vcmRpbmF0ZXNbaV1bMV07XG4gICAgbGV0IHgyID0gY29vcmRpbmF0ZXNbKGkgKyAxKSAlIG51bVBvaW50c11bMF07XG4gICAgbGV0IHkyID0gY29vcmRpbmF0ZXNbKGkgKyAxKSAlIG51bVBvaW50c11bMV07XG5cbiAgICBhcmVhICs9IHgxICogeTIgLSB4MiAqIHkxO1xuICB9XG5cbiAgcmV0dXJuIE1hdGguYWJzKGFyZWEgLyAyKTtcbn07XG5cbmNvbnN0IHBvbHlnb25UaXRsZSA9IChhcmVhLCBtYXBab29tKSA9PiB7XG4gIHJldHVybiBgPGRpdiBjbGFzcz1cImFyZWEtdG9vbHRpcFwiIHN0eWxlPVwiY29sb3I6JHtcbiAgICB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnBzMVxuICB9O2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZTogJHtcbiAgICBtYXBab29tICogMS41XG4gIH1weDstd2Via2l0LXRleHQtc3Ryb2tlOiAwLjhweCAjZmZmZmZmO1wiPiAke2dldEFyZWFOYW1lKGFyZWEpfSBcbiAgICAgICAgPC9kaXY+YDtcbn07XG5cbmNvbnN0IGJpbmRUb29sdGlwID0gKGxheWVyLCBhcmVhKSA9PiB7XG4gIGNvbnN0IG1hcFpvb20gPSBsYXllci5fbWFwICE9PSB1bmRlZmluZWQgPyBsYXllci5fbWFwLmdldFpvb20oKSA6IDA7XG4gIGNvbnN0IHRpdGxlID0gcG9seWdvblRpdGxlKGFyZWEsIG1hcFpvb20pO1xuICBsYXllci5iaW5kVG9vbHRpcCh0aXRsZSwge1xuICAgIGNsYXNzTmFtZTogJ2FyZWEtdG9vbHRpcCcsXG4gICAgcGVybWFuZW50OiB0cnVlLFxuICAgIGRpcmVjdGlvbjogJ2NlbnRlcicsXG4gIH0pO1xuICBoYW5kbGVUb2x0aXBCYXNlZE9uWm9vbUxldmVsKGxheWVyLCBtYXBab29tKTtcbn07XG5cbi8vIFRoZSB0b29sdGlwIGlzIHNob3dpbmcgdGhlIGFyZWEgbmFtZVxuZXhwb3J0IGNvbnN0IGhhbmRsZVRvbHRpcEJhc2VkT25ab29tTGV2ZWwgPSAocG9seWdvbiwgbWFwWm9vbSkgPT4ge1xuICBpZiAobWFwWm9vbSA+IDExKSB7XG4gICAgY29uc3QgdG9vbHRpcCA9IHBvbHlnb24uZ2V0VG9vbHRpcCgpO1xuICAgIHRvb2x0aXAuc2V0Q29udGVudChwb2x5Z29uVGl0bGUocG9seWdvbiwgbWFwWm9vbSkpO1xuICAgIHBvbHlnb24ub3BlblRvb2x0aXAoKTtcbiAgfSBlbHNlIHtcbiAgICBwb2x5Z29uLmNsb3NlVG9vbHRpcCgpO1xuICB9XG59O1xuXG5jb25zdCBkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsID0gKFxuICBhcmVhUG9seWdvbixcbiAgYXJlYSxcbiAgcGVyY2VudGFnZSxcbiAgem9vbVBlcmNlbnRhZ2VUb0RyaWxsRG93bixcbiAgaXNQYXJ0aWFsUG9seWdvblZpc2libGUsXG4gIG1hcCxcbiAgZmVhdHVyZUdyb3VwLFxuKSA9PiB7XG4gIGNvbnN0IGRyaWxsRG93bkNvbmRpdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcGVyY2VudGFnZSA+PSB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duICYmXG4gICAgICBpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSAmJlxuICAgICAgYXJlYS5zdWJfYXJlYXMubGVuZ3RoICE9PSAwICYmXG4gICAgICBhcmVhUG9seWdvbi5fbWFwICE9PSBudWxsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBoaWRlUG9seWdvbiA9IChwb2x5Z29uOiBQb2x5Z29uKSA9PiB7XG4gICAgcG9seWdvbi5icmluZ1RvQmFjaygpO1xuICAgIHBvbHlnb24uY2xvc2VUb29sdGlwKCk7XG4gICAgcG9seWdvblsnaGlkZGVuJ10gPSB0cnVlO1xuICAgIHBvbHlnb24uc2V0U3R5bGUoe1xuICAgICAgc3Ryb2tlOiBmYWxzZSxcbiAgICAgIGZpbGw6IGZhbHNlLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHNob3dQb2x5Z29uID0gKHBvbHlnb246IFBvbHlnb24sIGZpbGw6IGJvb2xlYW4pID0+IHtcbiAgICBwb2x5Z29uLmJyaW5nVG9Gcm9udCgpO1xuICAgIHBvbHlnb25bJ2hpZGRlbiddID0gZmFsc2U7XG4gICAgcG9seWdvbi5zZXRTdHlsZSh7XG4gICAgICAvL3N0cm9rZTogZmlsbCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgIG9wYWNpdHk6IDAuNCxcbiAgICAgIHdlaWdodDogMixcbiAgICAgIGZpbGw6IGZpbGwsXG4gICAgICBmaWxsT3BhY2l0eTogMC40LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1YkFyZWFzID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoYXJlYVBvbHlnb25bJ3N1Yl9hcmVhcyddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFyZWFQb2x5Z29uWydzdWJfYXJlYXMnXS5mb3JFYWNoKChzdWJBcmVhSWQpID0+IHtcbiAgICAgICAgZmVhdHVyZUdyb3VwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgICAgICBpZiAobGF5ZXJbJ2thbmRvX29iamVjdF9pZCddID09PSBzdWJBcmVhSWQpIHtcbiAgICAgICAgICAgIHNob3cgPyBzaG93UG9seWdvbihsYXllciwgdHJ1ZSkgOiBoaWRlUG9seWdvbihsYXllcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICAvLyBTaG93IHRoZSBhcmVhIHdpdGggYm9yZGVyIG9ubHlcbiAgLy8gT3IgYmFja2dyb3VuZCBjb2xvclxuICBpZiAoZHJpbGxEb3duQ29uZGl0aW9uKCkpIHtcbiAgICBzaG93UG9seWdvbihhcmVhUG9seWdvbiwgZmFsc2UpO1xuICAgIGFyZWFQb2x5Z29uLmNsb3NlVG9vbHRpcCgpO1xuICAgIGhhbmRsZVN1YkFyZWFzKHRydWUpO1xuICB9IGVsc2Uge1xuICAgIGhhbmRsZVN1YkFyZWFzKGZhbHNlKTtcblxuICAgIGlmICghYXJlYVBvbHlnb25bJ2hpZGRlbiddKSB7XG4gICAgICBzaG93UG9seWdvbihhcmVhUG9seWdvbiwgdHJ1ZSk7XG4gICAgICBoYW5kbGVUb2x0aXBCYXNlZE9uWm9vbUxldmVsKGFyZWFQb2x5Z29uLCBtYXAuZ2V0Wm9vbSgpKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB6b29tQ29udHJvbEZvckFyZWEgPSAoYXJlYVBvbHlnb24sIGFyZWEsIG1hcCwgZmVhdHVyZUdyb3VwKSA9PiB7XG4gIG1hcC5vbignem9vbWVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgZ2V0TWFwQm91bmRzID0gbWFwLmdldEJvdW5kcygpO1xuICAgIGxldCBwb2x5Z29uQm91bmRzID0gYXJlYVBvbHlnb24uZ2V0Qm91bmRzKCk7XG4gICAgbGV0IGlzUGFydGlhbFBvbHlnb25WaXNpYmxlID0gZ2V0TWFwQm91bmRzLmludGVyc2VjdHMocG9seWdvbkJvdW5kcyk7XG4gICAgbGV0IG1hcEJvdW5kc1BvbHlnb24gPSBMLnBvbHlnb24oW1xuICAgICAgZ2V0TWFwQm91bmRzLmdldFNvdXRoV2VzdCgpLFxuICAgICAgZ2V0TWFwQm91bmRzLmdldE5vcnRoV2VzdCgpLFxuICAgICAgZ2V0TWFwQm91bmRzLmdldE5vcnRoRWFzdCgpLFxuICAgICAgZ2V0TWFwQm91bmRzLmdldFNvdXRoRWFzdCgpLFxuICAgIF0pO1xuXG4gICAgbGV0IG1hcEJvdW5kcyA9IGNhbGN1bGF0ZVBvbHlnb25BcmVhKFxuICAgICAgbWFwQm91bmRzUG9seWdvbi50b0dlb0pTT04oKS5nZW9tZXRyeS5jb29yZGluYXRlc1swXSxcbiAgICApO1xuXG4gICAgbGV0IGFyZWFTdXJmYWNlID0gYXJlYVBvbHlnb25bJ2NhbGN1bGF0ZWRfc3VyZmFjZSddO1xuICAgIGNvbnN0IHpvb21QZXJjZW50YWdlVG9EcmlsbERvd24gPSAxNS4wO1xuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAoYXJlYVN1cmZhY2UgLyBtYXBCb3VuZHMpICogMTAwO1xuXG4gICAgZHJpbGxEb3duQmFzZWRPblpvb21MZXZlbChcbiAgICAgIGFyZWFQb2x5Z29uLFxuICAgICAgYXJlYSxcbiAgICAgIHBlcmNlbnRhZ2UsXG4gICAgICB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duLFxuICAgICAgaXNQYXJ0aWFsUG9seWdvblZpc2libGUsXG4gICAgICBtYXAsXG4gICAgICBmZWF0dXJlR3JvdXAsXG4gICAgKTtcbiAgfSk7XG59O1xuXG5jb25zdCBjdXN0b21BdHRyaWJ1dGVzRm9yQXJlYVBvbHlnb24gPSAoYXJlYVBvbHlnb24sIGFyZWEpID0+IHtcbiAgYXJlYVBvbHlnb25bJ2thbmRvX29iamVjdF9pZCddID0gZ2V0QXJlYUlkKGFyZWEpO1xuICBhcmVhUG9seWdvblsna2FuZG9fb2JqZWN0J10gPSAnQXJlYSc7XG4gIGFyZWFQb2x5Z29uWydhcmVhX25hbWUnXSA9IGdldEFyZWFOYW1lKGFyZWEpO1xuICBhcmVhUG9seWdvblsnY2FsY3VsYXRlZF9zdXJmYWNlJ10gPSBhcmVhLmNhbGN1bGF0ZWRfc3VyZmFjZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb2x5Z29uID0gKFxuICBhcmVhLFxuICBtYXBab29tLFxuICBmZWF0dXJlR3JvdXA6IEZlYXR1cmVHcm91cCxcbiAgbWFwLFxuICBwb3B1cENyZWF0b3I/OiAocG9seWdvbjogUG9seWdvbiwgYXJlYTogSUFyZWEpID0+IHZvaWQsXG4pID0+IHtcbiAgbGV0IHBvbHlnb246IFBvbHlnb247XG4gIGlmIChcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IG51bGwgJiZcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgIGFyZWEuc2hhcGVfZGF0YS5sZW5ndGggPiAwXG4gICkge1xuICAgIHBvbHlnb24gPSBnZW5lcmljUG9seWdvbihhcmVhLCBtYXBab29tKTtcblxuICAgIGN1c3RvbUF0dHJpYnV0ZXNGb3JBcmVhUG9seWdvbihwb2x5Z29uLCBhcmVhKTtcbiAgICBjb25zdCBwYXR0ZXJuID0gZ2V0UGF0dGVybihhcmVhKTtcbiAgICBpZiAocGF0dGVybikge1xuICAgICAgcGF0dGVybj8uYWRkVG8obWFwKTtcbiAgICAgIHBvbHlnb24uc2V0U3R5bGUoe1xuICAgICAgICBmaWxsUGF0dGVybjogcGF0dGVybixcbiAgICAgICAgY29sb3I6IHNjb3JlVG9Db2xvcihhcmVhLmFyZWFfc2NvcmUpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHBvbHlnb24uYWRkVG8oZmVhdHVyZUdyb3VwKTtcbiAgICBwb3B1cENyZWF0b3IgJiYgcG9wdXBDcmVhdG9yKHBvbHlnb24sIGFyZWEpO1xuICAgIGJpbmRUb29sdGlwKHBvbHlnb24sIGFyZWEpO1xuICAgIHpvb21Db250cm9sRm9yQXJlYShwb2x5Z29uLCBhcmVhLCBtYXAsIGZlYXR1cmVHcm91cCk7XG4gICAgcmV0dXJuIHBvbHlnb247XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBnZXRQYXR0ZXJuID0gKGFyZWEpID0+IHtcbiAgaWYgKGFyZWEuaXNfYXNzZXNzbWVudCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBjb2xvciA9IHNjb3JlVG9Db2xvcihhcmVhLmFyZWFfc2NvcmUpO1xuICByZXR1cm4gYXNzZXNtZW50UGF0dGVybihjb2xvcik7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFNSSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsSUFBSSxFQUFLO0VBQzVCLElBQUlDLElBQUksR0FBR0QsSUFBSSxDQUFDRSxTQUFTLElBQUlGLElBQUksQ0FBQ0MsSUFBSTtFQUV0QyxPQUFPQSxJQUFJO0FBQ2IsQ0FBQztBQUVELElBQU1FLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJSCxJQUFJLEVBQUs7RUFDMUIsSUFBSUMsSUFBSSxHQUFHRCxJQUFJLENBQUNJLE9BQU8sSUFBSUosSUFBSSxDQUFDSyxFQUFFO0VBRWxDLE9BQU9KLElBQUk7QUFDYixDQUFDO0FBRU0sSUFBTUssY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJTixJQUFJLEVBQUVPLE9BQU8sRUFBSztFQUMvQyxJQUFJQyxXQUFvQjtFQUN4QixJQUFJQyxPQUFPLEdBQUdULElBQUksQ0FBQ1UsVUFBVSxDQUFDQyxHQUFHLENBQUMsVUFBQ0MsUUFBYSxFQUFLO0lBQ25ELE9BQU8sQ0FBQ0EsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFQSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDM0MsQ0FBQyxDQUFDO0VBRUYsSUFBSUgsT0FBTyxDQUFDSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO0VBRXhCLElBQUlDLEtBQUssR0FBR2QsSUFBSSxDQUFDYyxLQUFLLEdBQUdkLElBQUksQ0FBQ2MsS0FBSyxHQUFHLElBQUFDLHlCQUFZLEVBQUNmLElBQUksQ0FBQ2dCLFVBQVUsQ0FBQztFQUVuRVIsV0FBVyxHQUFHUyxnQkFBQyxDQUFDQyxPQUFPLENBQUNULE9BQU8sRUFBRTtJQUMvQkssS0FBSyxFQUFMQSxLQUFLO0lBQ0xLLFdBQVcsRUFBRW5CLElBQUksQ0FBQ29CLHNCQUFzQixHQUFHLEdBQUcsR0FBRyxHQUFHO0lBQ3BEQyxNQUFNLEVBQUVyQixJQUFJLENBQUNvQixzQkFBc0IsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUMzQ0UsSUFBSSxFQUFFO0VBQ1IsQ0FBQyxDQUFDO0VBRUYsT0FBT2QsV0FBVztBQUNwQixDQUFDO0FBQUNlLE9BQUEsQ0FBQWpCLGNBQUEsR0FBQUEsY0FBQTtBQUVLLElBQU1rQixvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxXQUFXLEVBQUs7RUFDbkQsSUFBSXpCLElBQUksR0FBRyxDQUFDO0VBQ1osSUFBSTBCLFNBQVMsR0FBR0QsV0FBVyxDQUFDWixNQUFNO0VBRWxDLEtBQUssSUFBSWMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxTQUFTLEVBQUVDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLElBQUlDLEVBQUUsR0FBR0gsV0FBVyxDQUFDRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsSUFBSUUsRUFBRSxHQUFHSixXQUFXLENBQUNFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixJQUFJRyxFQUFFLEdBQUdMLFdBQVcsQ0FBQyxDQUFDRSxDQUFDLEdBQUcsQ0FBQyxJQUFJRCxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsSUFBSUssRUFBRSxHQUFHTixXQUFXLENBQUMsQ0FBQ0UsQ0FBQyxHQUFHLENBQUMsSUFBSUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVDMUIsSUFBSSxJQUFJNEIsRUFBRSxHQUFHRyxFQUFFLEdBQUdELEVBQUUsR0FBR0QsRUFBRTtFQUMzQjtFQUVBLE9BQU9HLElBQUksQ0FBQ0MsR0FBRyxDQUFDakMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBQUN1QixPQUFBLENBQUFDLG9CQUFBLEdBQUFBLG9CQUFBO0FBRUYsSUFBTVUsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlsQyxJQUFJLEVBQUVPLE9BQU8sRUFBSztFQUN0QyxvREFBQTRCLE1BQUEsQ0FDRUMsWUFBSyxDQUFDQyxXQUFXLENBQUNDLE9BQU8sQ0FBQ0MsR0FBRywrREFBQUosTUFBQSxDQUU3QjVCLE9BQU8sR0FBRyxHQUFHLGdEQUFBNEIsTUFBQSxDQUM2QnBDLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDO0FBRS9ELENBQUM7QUFFRCxJQUFNd0MsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLEtBQUssRUFBRXpDLElBQUksRUFBSztFQUNuQyxJQUFNTyxPQUFPLEdBQUdrQyxLQUFLLENBQUNDLElBQUksS0FBS0MsU0FBUyxHQUFHRixLQUFLLENBQUNDLElBQUksQ0FBQ0UsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO0VBQ25FLElBQU1DLEtBQUssR0FBR1gsWUFBWSxDQUFDbEMsSUFBSSxFQUFFTyxPQUFPLENBQUM7RUFDekNrQyxLQUFLLENBQUNELFdBQVcsQ0FBQ0ssS0FBSyxFQUFFO0lBQ3ZCQyxTQUFTLEVBQUUsY0FBYztJQUN6QkMsU0FBUyxFQUFFLElBQUk7SUFDZkMsU0FBUyxFQUFFO0VBQ2IsQ0FBQyxDQUFDO0VBQ0ZDLDRCQUE0QixDQUFDUixLQUFLLEVBQUVsQyxPQUFPLENBQUM7QUFDOUMsQ0FBQzs7QUFFRDtBQUNPLElBQU0wQyw0QkFBNEIsR0FBRyxTQUEvQkEsNEJBQTRCQSxDQUFJL0IsT0FBTyxFQUFFWCxPQUFPLEVBQUs7RUFDaEUsSUFBSUEsT0FBTyxHQUFHLEVBQUUsRUFBRTtJQUNoQixJQUFNMkMsT0FBTyxHQUFHaEMsT0FBTyxDQUFDaUMsVUFBVSxDQUFDLENBQUM7SUFDcENELE9BQU8sQ0FBQ0UsVUFBVSxDQUFDbEIsWUFBWSxDQUFDaEIsT0FBTyxFQUFFWCxPQUFPLENBQUMsQ0FBQztJQUNsRFcsT0FBTyxDQUFDbUMsV0FBVyxDQUFDLENBQUM7RUFDdkIsQ0FBQyxNQUFNO0lBQ0xuQyxPQUFPLENBQUNvQyxZQUFZLENBQUMsQ0FBQztFQUN4QjtBQUNGLENBQUM7QUFBQy9CLE9BQUEsQ0FBQTBCLDRCQUFBLEdBQUFBLDRCQUFBO0FBRUYsSUFBTU0seUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FDN0IvQyxXQUFXLEVBQ1hSLElBQUksRUFDSndELFVBQVUsRUFDVkMseUJBQXlCLEVBQ3pCQyx1QkFBdUIsRUFDdkIvQyxHQUFHLEVBQ0hnRCxZQUFZLEVBQ1Q7RUFDSCxJQUFNQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7SUFDL0IsT0FDRUosVUFBVSxJQUFJQyx5QkFBeUIsSUFDdkNDLHVCQUF1QixJQUN2QjFELElBQUksQ0FBQzZELFNBQVMsQ0FBQ2hELE1BQU0sS0FBSyxDQUFDLElBQzNCTCxXQUFXLENBQUNrQyxJQUFJLEtBQUssSUFBSTtFQUU3QixDQUFDO0VBRUQsSUFBTW9CLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJNUMsT0FBZ0IsRUFBSztJQUN4Q0EsT0FBTyxDQUFDNkMsV0FBVyxDQUFDLENBQUM7SUFDckI3QyxPQUFPLENBQUNvQyxZQUFZLENBQUMsQ0FBQztJQUN0QnBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJO0lBQ3hCQSxPQUFPLENBQUM4QyxRQUFRLENBQUM7TUFDZkMsTUFBTSxFQUFFLEtBQUs7TUFDYjNDLElBQUksRUFBRTtJQUNSLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNEMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUloRCxPQUFnQixFQUFFSSxJQUFhLEVBQUs7SUFDdkRKLE9BQU8sQ0FBQ2lELFlBQVksQ0FBQyxDQUFDO0lBQ3RCakQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUs7SUFDekJBLE9BQU8sQ0FBQzhDLFFBQVEsQ0FBQztNQUNmO01BQ0FDLE1BQU0sRUFBRSxJQUFJO01BQ1pHLE9BQU8sRUFBRSxHQUFHO01BQ1ovQyxNQUFNLEVBQUUsQ0FBQztNQUNUQyxJQUFJLEVBQUVBLElBQUk7TUFDVkgsV0FBVyxFQUFFO0lBQ2YsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVELElBQU1rRCxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLElBQWEsRUFBSztJQUN4QyxJQUFJOUQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLbUMsU0FBUyxFQUFFO01BQzFDbkMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDK0QsT0FBTyxDQUFDLFVBQUNDLFNBQVMsRUFBSztRQUM5Q2IsWUFBWSxDQUFDYyxTQUFTLENBQUMsVUFBQ2hDLEtBQUssRUFBSztVQUNoQyxJQUFJQSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSytCLFNBQVMsRUFBRTtZQUMxQ0YsSUFBSSxHQUFHSixXQUFXLENBQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUdxQixXQUFXLENBQUNyQixLQUFLLENBQUM7VUFDdEQ7UUFDRixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSjtFQUNGLENBQUM7O0VBRUQ7RUFDQTtFQUNBLElBQUltQixrQkFBa0IsQ0FBQyxDQUFDLEVBQUU7SUFDeEJNLFdBQVcsQ0FBQzFELFdBQVcsRUFBRSxLQUFLLENBQUM7SUFDL0JBLFdBQVcsQ0FBQzhDLFlBQVksQ0FBQyxDQUFDO0lBQzFCZSxjQUFjLENBQUMsSUFBSSxDQUFDO0VBQ3RCLENBQUMsTUFBTTtJQUNMQSxjQUFjLENBQUMsS0FBSyxDQUFDO0lBRXJCLElBQUksQ0FBQzdELFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRTtNQUMxQjBELFdBQVcsQ0FBQzFELFdBQVcsRUFBRSxJQUFJLENBQUM7TUFDOUJ5Qyw0QkFBNEIsQ0FBQ3pDLFdBQVcsRUFBRUcsR0FBRyxDQUFDaUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRDtFQUNGO0FBQ0YsQ0FBQztBQUVNLElBQU04QixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJbEUsV0FBVyxFQUFFUixJQUFJLEVBQUVXLEdBQUcsRUFBRWdELFlBQVksRUFBSztFQUMxRWhELEdBQUcsQ0FBQ2dFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWTtJQUM1QixJQUFJQyxZQUFZLEdBQUdqRSxHQUFHLENBQUNrRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxJQUFJQyxhQUFhLEdBQUd0RSxXQUFXLENBQUNxRSxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJbkIsdUJBQXVCLEdBQUdrQixZQUFZLENBQUNHLFVBQVUsQ0FBQ0QsYUFBYSxDQUFDO0lBQ3BFLElBQUlFLGdCQUFnQixHQUFHL0QsZ0JBQUMsQ0FBQ0MsT0FBTyxDQUFDLENBQy9CMEQsWUFBWSxDQUFDSyxZQUFZLENBQUMsQ0FBQyxFQUMzQkwsWUFBWSxDQUFDTSxZQUFZLENBQUMsQ0FBQyxFQUMzQk4sWUFBWSxDQUFDTyxZQUFZLENBQUMsQ0FBQyxFQUMzQlAsWUFBWSxDQUFDUSxZQUFZLENBQUMsQ0FBQyxDQUM1QixDQUFDO0lBRUYsSUFBSUMsU0FBUyxHQUFHN0Qsb0JBQW9CLENBQ2xDd0QsZ0JBQWdCLENBQUNNLFNBQVMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQzlELFdBQVcsQ0FBQyxDQUFDLENBQ3JELENBQUM7SUFFRCxJQUFJK0QsV0FBVyxHQUFHaEYsV0FBVyxDQUFDLG9CQUFvQixDQUFDO0lBQ25ELElBQU1pRCx5QkFBeUIsR0FBRyxJQUFJO0lBQ3RDLElBQU1ELFVBQVUsR0FBSWdDLFdBQVcsR0FBR0gsU0FBUyxHQUFJLEdBQUc7SUFFbEQ5Qix5QkFBeUIsQ0FDdkIvQyxXQUFXLEVBQ1hSLElBQUksRUFDSndELFVBQVUsRUFDVkMseUJBQXlCLEVBQ3pCQyx1QkFBdUIsRUFDdkIvQyxHQUFHLEVBQ0hnRCxZQUNGLENBQUM7RUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBQUNwQyxPQUFBLENBQUFtRCxrQkFBQSxHQUFBQSxrQkFBQTtBQUVGLElBQU1lLDhCQUE4QixHQUFHLFNBQWpDQSw4QkFBOEJBLENBQUlqRixXQUFXLEVBQUVSLElBQUksRUFBSztFQUM1RFEsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUdMLFNBQVMsQ0FBQ0gsSUFBSSxDQUFDO0VBQ2hEUSxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTTtFQUNwQ0EsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHVCxXQUFXLENBQUNDLElBQUksQ0FBQztFQUM1Q1EsV0FBVyxDQUFDLG9CQUFvQixDQUFDLEdBQUdSLElBQUksQ0FBQzBGLGtCQUFrQjtBQUM3RCxDQUFDO0FBRU0sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUN4QjNGLElBQUksRUFDSk8sT0FBTyxFQUNQb0QsWUFBMEIsRUFDMUJoRCxHQUFHLEVBQ0hpRixZQUFzRCxFQUNuRDtFQUNILElBQUkxRSxPQUFnQjtFQUNwQixJQUNFbEIsSUFBSSxDQUFDVSxVQUFVLEtBQUssSUFBSSxJQUN4QlYsSUFBSSxDQUFDVSxVQUFVLEtBQUtpQyxTQUFTLElBQzdCM0MsSUFBSSxDQUFDVSxVQUFVLENBQUNHLE1BQU0sR0FBRyxDQUFDLEVBQzFCO0lBQ0FLLE9BQU8sR0FBR1osY0FBYyxDQUFDTixJQUFJLEVBQUVPLE9BQU8sQ0FBQztJQUV2Q2tGLDhCQUE4QixDQUFDdkUsT0FBTyxFQUFFbEIsSUFBSSxDQUFDO0lBQzdDLElBQU02RixPQUFPLEdBQUdDLFVBQVUsQ0FBQzlGLElBQUksQ0FBQztJQUNoQyxJQUFJNkYsT0FBTyxFQUFFO01BQ1hBLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFRSxLQUFLLENBQUNwRixHQUFHLENBQUM7TUFDbkJPLE9BQU8sQ0FBQzhDLFFBQVEsQ0FBQztRQUNmZ0MsV0FBVyxFQUFFSCxPQUFPO1FBQ3BCL0UsS0FBSyxFQUFFLElBQUFDLHlCQUFZLEVBQUNmLElBQUksQ0FBQ2dCLFVBQVU7TUFDckMsQ0FBQyxDQUFDO0lBQ0o7SUFDQUUsT0FBTyxDQUFDNkUsS0FBSyxDQUFDcEMsWUFBWSxDQUFDO0lBQzNCaUMsWUFBWSxJQUFJQSxZQUFZLENBQUMxRSxPQUFPLEVBQUVsQixJQUFJLENBQUM7SUFDM0N3QyxXQUFXLENBQUN0QixPQUFPLEVBQUVsQixJQUFJLENBQUM7SUFDMUIwRSxrQkFBa0IsQ0FBQ3hELE9BQU8sRUFBRWxCLElBQUksRUFBRVcsR0FBRyxFQUFFZ0QsWUFBWSxDQUFDO0lBQ3BELE9BQU96QyxPQUFPO0VBQ2hCO0VBQ0EsT0FBTyxJQUFJO0FBQ2IsQ0FBQztBQUFDSyxPQUFBLENBQUFvRSxhQUFBLEdBQUFBLGFBQUE7QUFFRixJQUFNRyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBSTlGLElBQUksRUFBSztFQUMzQixJQUFJQSxJQUFJLENBQUNpRyxhQUFhLEtBQUssS0FBSyxFQUFFO0lBQ2hDLE9BQU8sSUFBSTtFQUNiO0VBQ0EsSUFBTW5GLEtBQUssR0FBRyxJQUFBQyx5QkFBWSxFQUFDZixJQUFJLENBQUNnQixVQUFVLENBQUM7RUFDM0MsT0FBTyxJQUFBa0YsMEJBQWdCLEVBQUNwRixLQUFLLENBQUM7QUFDaEMsQ0FBQyJ9
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Njb3JlVG9EYXRhIiwiX3RoZW1lIiwiX1BhdHRlcm5zIiwiZ2V0QXJlYU5hbWUiLCJhcmVhIiwibmFtZSIsImFyZWFfbmFtZSIsImdldEFyZWFJZCIsImFyZWFfaWQiLCJpZCIsImdlbmVyaWNQb2x5Z29uIiwibWFwWm9vbSIsImFyZWFQb2x5Z29uIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJtYXAiLCJsb2NhdGlvbiIsImxlbmd0aCIsImNvbG9yIiwic2NvcmVUb0NvbG9yIiwiYXJlYV9zY29yZSIsIkwiLCJwb2x5Z29uIiwiZmlsbE9wYWNpdHkiLCJzaG93Q29sb3JPbmx5SW5Cb3JkZXJzIiwid2VpZ2h0IiwiZmlsbCIsImV4cG9ydHMiLCJjYWxjdWxhdGVQb2x5Z29uQXJlYSIsImNvb3JkaW5hdGVzIiwibnVtUG9pbnRzIiwiaSIsIngxIiwieTEiLCJ4MiIsInkyIiwiTWF0aCIsImFicyIsInBvbHlnb25UaXRsZSIsImNvbmNhdCIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJwcmltYXJ5IiwicHMxIiwiYmluZFRvb2x0aXAiLCJsYXllciIsIl9tYXAiLCJ1bmRlZmluZWQiLCJnZXRab29tIiwidGl0bGUiLCJjbGFzc05hbWUiLCJwZXJtYW5lbnQiLCJkaXJlY3Rpb24iLCJoYW5kbGVUb2x0aXBCYXNlZE9uWm9vbUxldmVsIiwidG9vbHRpcCIsImdldFRvb2x0aXAiLCJzZXRDb250ZW50Iiwib3BlblRvb2x0aXAiLCJjbG9zZVRvb2x0aXAiLCJkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsIiwicGVyY2VudGFnZSIsInpvb21QZXJjZW50YWdlVG9EcmlsbERvd24iLCJpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSIsImZlYXR1cmVHcm91cCIsImRyaWxsRG93bkNvbmRpdGlvbiIsInN1Yl9hcmVhcyIsImhpZGVQb2x5Z29uIiwiYnJpbmdUb0JhY2siLCJzZXRTdHlsZSIsInN0cm9rZSIsInNob3dQb2x5Z29uIiwiYnJpbmdUb0Zyb250Iiwib3BhY2l0eSIsImhhbmRsZVN1YkFyZWFzIiwic2hvdyIsImZvckVhY2giLCJzdWJBcmVhSWQiLCJlYWNoTGF5ZXIiLCJ6b29tQ29udHJvbEZvckFyZWEiLCJvbiIsImdldE1hcEJvdW5kcyIsImdldEJvdW5kcyIsInBvbHlnb25Cb3VuZHMiLCJpbnRlcnNlY3RzIiwibWFwQm91bmRzUG9seWdvbiIsImdldFNvdXRoV2VzdCIsImdldE5vcnRoV2VzdCIsImdldE5vcnRoRWFzdCIsImdldFNvdXRoRWFzdCIsIm1hcEJvdW5kcyIsInRvR2VvSlNPTiIsImdlb21ldHJ5IiwiYXJlYVN1cmZhY2UiLCJjdXN0b21BdHRyaWJ1dGVzRm9yQXJlYVBvbHlnb24iLCJjYWxjdWxhdGVkX3N1cmZhY2UiLCJjcmVhdGVQb2x5Z29uIiwicG9wdXBDcmVhdG9yIiwicGF0dGVybiIsImdldFBhdHRlcm4iLCJhZGRUbyIsImZpbGxQYXR0ZXJuIiwiaXNfYXNzZXNzbWVudCIsImFzc2VzbWVudFBhdHRlcm4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvYXJlYXMvQXJlYVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMLCB7IEZlYXR1cmVHcm91cCwgUG9seWdvbiB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0IHsgc2NvcmVUb0NvbG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGFzc2VzbWVudFBhdHRlcm4gfSBmcm9tICcuL1BhdHRlcm5zJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5cbmNvbnN0IGdldEFyZWFOYW1lID0gKGFyZWEpID0+IHtcbiAgbGV0IG5hbWUgPSBhcmVhLmFyZWFfbmFtZSB8fCBhcmVhLm5hbWU7XG5cbiAgcmV0dXJuIG5hbWU7XG59O1xuXG5jb25zdCBnZXRBcmVhSWQgPSAoYXJlYSkgPT4ge1xuICBsZXQgbmFtZSA9IGFyZWEuYXJlYV9pZCB8fCBhcmVhLmlkO1xuXG4gIHJldHVybiBuYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyaWNQb2x5Z29uID0gKGFyZWEsIG1hcFpvb20pID0+IHtcbiAgbGV0IGFyZWFQb2x5Z29uOiBQb2x5Z29uO1xuICBsZXQgbGF0bG5ncyA9IGFyZWEuc2hhcGVfZGF0YS5tYXAoKGxvY2F0aW9uOiBhbnkpID0+IHtcbiAgICByZXR1cm4gW2xvY2F0aW9uWydsYXQnXSwgbG9jYXRpb25bJ2xuZyddXTtcbiAgfSk7XG5cbiAgaWYgKGxhdGxuZ3MubGVuZ3RoIDwgMSkgcmV0dXJuO1xuXG4gIGxldCBjb2xvciA9IGFyZWEuY29sb3IgPyBhcmVhLmNvbG9yIDogc2NvcmVUb0NvbG9yKGFyZWEuYXJlYV9zY29yZSk7XG5cbiAgYXJlYVBvbHlnb24gPSBMLnBvbHlnb24obGF0bG5ncywge1xuICAgIGNvbG9yLFxuICAgIGZpbGxPcGFjaXR5OiBhcmVhLnNob3dDb2xvck9ubHlJbkJvcmRlcnMgPyAwLjMgOiAwLjQsXG4gICAgd2VpZ2h0OiBhcmVhLnNob3dDb2xvck9ubHlJbkJvcmRlcnMgPyAyIDogMCxcbiAgICBmaWxsOiBmYWxzZSxcbiAgfSk7XG5cbiAgcmV0dXJuIGFyZWFQb2x5Z29uO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVBvbHlnb25BcmVhID0gKGNvb3JkaW5hdGVzKSA9PiB7XG4gIGxldCBhcmVhID0gMDtcbiAgbGV0IG51bVBvaW50cyA9IGNvb3JkaW5hdGVzLmxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVBvaW50czsgaSsrKSB7XG4gICAgbGV0IHgxID0gY29vcmRpbmF0ZXNbaV1bMF07XG4gICAgbGV0IHkxID0gY29vcmRpbmF0ZXNbaV1bMV07XG4gICAgbGV0IHgyID0gY29vcmRpbmF0ZXNbKGkgKyAxKSAlIG51bVBvaW50c11bMF07XG4gICAgbGV0IHkyID0gY29vcmRpbmF0ZXNbKGkgKyAxKSAlIG51bVBvaW50c11bMV07XG5cbiAgICBhcmVhICs9IHgxICogeTIgLSB4MiAqIHkxO1xuICB9XG5cbiAgcmV0dXJuIE1hdGguYWJzKGFyZWEgLyAyKTtcbn07XG5cbmNvbnN0IHBvbHlnb25UaXRsZSA9IChhcmVhLCBtYXBab29tKSA9PiB7XG4gIHJldHVybiBgPGRpdiBjbGFzcz1cImFyZWEtdG9vbHRpcFwiIHN0eWxlPVwiY29sb3I6JHtcbiAgICB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnBzMVxuICB9O2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZTogJHtcbiAgICBtYXBab29tICogMS41XG4gIH1weDstd2Via2l0LXRleHQtc3Ryb2tlOiAwLjhweCAjZmZmZmZmO1wiPiAke2dldEFyZWFOYW1lKGFyZWEpfSBcbiAgICAgICAgPC9kaXY+YDtcbn07XG5cbmNvbnN0IGJpbmRUb29sdGlwID0gKGxheWVyLCBhcmVhKSA9PiB7XG4gIGNvbnN0IG1hcFpvb20gPSBsYXllci5fbWFwICE9PSB1bmRlZmluZWQgPyBsYXllci5fbWFwLmdldFpvb20oKSA6IDA7XG4gIGNvbnN0IHRpdGxlID0gcG9seWdvblRpdGxlKGFyZWEsIG1hcFpvb20pO1xuICBsYXllci5iaW5kVG9vbHRpcCh0aXRsZSwge1xuICAgIGNsYXNzTmFtZTogJ2FyZWEtdG9vbHRpcCcsXG4gICAgcGVybWFuZW50OiB0cnVlLFxuICAgIGRpcmVjdGlvbjogJ2NlbnRlcicsXG4gIH0pO1xuICBoYW5kbGVUb2x0aXBCYXNlZE9uWm9vbUxldmVsKGxheWVyLCBtYXBab29tKTtcbn07XG5cbi8vIFRoZSB0b29sdGlwIGlzIHNob3dpbmcgdGhlIGFyZWEgbmFtZVxuZXhwb3J0IGNvbnN0IGhhbmRsZVRvbHRpcEJhc2VkT25ab29tTGV2ZWwgPSAocG9seWdvbiwgbWFwWm9vbSkgPT4ge1xuICBpZiAobWFwWm9vbSA+IDExKSB7XG4gICAgY29uc3QgdG9vbHRpcCA9IHBvbHlnb24uZ2V0VG9vbHRpcCgpO1xuICAgIHRvb2x0aXAuc2V0Q29udGVudChwb2x5Z29uVGl0bGUocG9seWdvbiwgbWFwWm9vbSkpO1xuICAgIHBvbHlnb24ub3BlblRvb2x0aXAoKTtcbiAgfSBlbHNlIHtcbiAgICBwb2x5Z29uLmNsb3NlVG9vbHRpcCgpO1xuICB9XG59O1xuXG5jb25zdCBkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsID0gKFxuICBhcmVhUG9seWdvbixcbiAgYXJlYSxcbiAgcGVyY2VudGFnZSxcbiAgem9vbVBlcmNlbnRhZ2VUb0RyaWxsRG93bixcbiAgaXNQYXJ0aWFsUG9seWdvblZpc2libGUsXG4gIG1hcCxcbiAgZmVhdHVyZUdyb3VwLFxuKSA9PiB7XG4gIGNvbnN0IGRyaWxsRG93bkNvbmRpdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcGVyY2VudGFnZSA+PSB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duICYmXG4gICAgICBpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSAmJlxuICAgICAgYXJlYS5zdWJfYXJlYXMubGVuZ3RoICE9PSAwICYmXG4gICAgICBhcmVhUG9seWdvbi5fbWFwICE9PSBudWxsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBoaWRlUG9seWdvbiA9IChwb2x5Z29uOiBQb2x5Z29uKSA9PiB7XG4gICAgcG9seWdvbi5icmluZ1RvQmFjaygpO1xuICAgIHBvbHlnb24uY2xvc2VUb29sdGlwKCk7XG4gICAgcG9seWdvblsnaGlkZGVuJ10gPSB0cnVlO1xuICAgIHBvbHlnb24uc2V0U3R5bGUoe1xuICAgICAgc3Ryb2tlOiBmYWxzZSxcbiAgICAgIGZpbGw6IGZhbHNlLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHNob3dQb2x5Z29uID0gKHBvbHlnb246IFBvbHlnb24sIGZpbGw6IGJvb2xlYW4pID0+IHtcbiAgICBwb2x5Z29uLmJyaW5nVG9Gcm9udCgpO1xuICAgIHBvbHlnb25bJ2hpZGRlbiddID0gZmFsc2U7XG4gICAgcG9seWdvbi5zZXRTdHlsZSh7XG4gICAgICAvL3N0cm9rZTogZmlsbCA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgIG9wYWNpdHk6IDAuNCxcbiAgICAgIHdlaWdodDogMixcbiAgICAgIGZpbGw6IGZpbGwsXG4gICAgICBmaWxsT3BhY2l0eTogMC40LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1YkFyZWFzID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoYXJlYVBvbHlnb25bJ3N1Yl9hcmVhcyddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFyZWFQb2x5Z29uWydzdWJfYXJlYXMnXS5mb3JFYWNoKChzdWJBcmVhSWQpID0+IHtcbiAgICAgICAgZmVhdHVyZUdyb3VwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgICAgICBpZiAobGF5ZXJbJ2thbmRvX29iamVjdF9pZCddID09PSBzdWJBcmVhSWQpIHtcbiAgICAgICAgICAgIHNob3cgPyBzaG93UG9seWdvbihsYXllciwgdHJ1ZSkgOiBoaWRlUG9seWdvbihsYXllcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICAvLyBTaG93IHRoZSBhcmVhIHdpdGggYm9yZGVyIG9ubHlcbiAgLy8gT3IgYmFja2dyb3VuZCBjb2xvclxuICBpZiAoZHJpbGxEb3duQ29uZGl0aW9uKCkpIHtcbiAgICBzaG93UG9seWdvbihhcmVhUG9seWdvbiwgZmFsc2UpO1xuICAgIGFyZWFQb2x5Z29uLmNsb3NlVG9vbHRpcCgpO1xuICAgIGhhbmRsZVN1YkFyZWFzKHRydWUpO1xuICB9IGVsc2Uge1xuICAgIGhhbmRsZVN1YkFyZWFzKGZhbHNlKTtcblxuICAgIGlmICghYXJlYVBvbHlnb25bJ2hpZGRlbiddKSB7XG4gICAgICBzaG93UG9seWdvbihhcmVhUG9seWdvbiwgdHJ1ZSk7XG4gICAgICBoYW5kbGVUb2x0aXBCYXNlZE9uWm9vbUxldmVsKGFyZWFQb2x5Z29uLCBtYXAuZ2V0Wm9vbSgpKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB6b29tQ29udHJvbEZvckFyZWEgPSAoYXJlYVBvbHlnb24sIGFyZWEsIG1hcCwgZmVhdHVyZUdyb3VwKSA9PiB7XG4gIG1hcC5vbignem9vbWVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgZ2V0TWFwQm91bmRzID0gbWFwLmdldEJvdW5kcygpO1xuICAgIGxldCBwb2x5Z29uQm91bmRzID0gYXJlYVBvbHlnb24uZ2V0Qm91bmRzKCk7XG4gICAgbGV0IGlzUGFydGlhbFBvbHlnb25WaXNpYmxlID0gZ2V0TWFwQm91bmRzLmludGVyc2VjdHMocG9seWdvbkJvdW5kcyk7XG4gICAgbGV0IG1hcEJvdW5kc1BvbHlnb24gPSBMLnBvbHlnb24oW1xuICAgICAgZ2V0TWFwQm91bmRzLmdldFNvdXRoV2VzdCgpLFxuICAgICAgZ2V0TWFwQm91bmRzLmdldE5vcnRoV2VzdCgpLFxuICAgICAgZ2V0TWFwQm91bmRzLmdldE5vcnRoRWFzdCgpLFxuICAgICAgZ2V0TWFwQm91bmRzLmdldFNvdXRoRWFzdCgpLFxuICAgIF0pO1xuXG4gICAgbGV0IG1hcEJvdW5kcyA9IGNhbGN1bGF0ZVBvbHlnb25BcmVhKFxuICAgICAgbWFwQm91bmRzUG9seWdvbi50b0dlb0pTT04oKS5nZW9tZXRyeS5jb29yZGluYXRlc1swXSxcbiAgICApO1xuXG4gICAgbGV0IGFyZWFTdXJmYWNlID0gYXJlYVBvbHlnb25bJ2NhbGN1bGF0ZWRfc3VyZmFjZSddO1xuICAgIGNvbnN0IHpvb21QZXJjZW50YWdlVG9EcmlsbERvd24gPSAxNS4wO1xuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSAoYXJlYVN1cmZhY2UgLyBtYXBCb3VuZHMpICogMTAwO1xuXG4gICAgZHJpbGxEb3duQmFzZWRPblpvb21MZXZlbChcbiAgICAgIGFyZWFQb2x5Z29uLFxuICAgICAgYXJlYSxcbiAgICAgIHBlcmNlbnRhZ2UsXG4gICAgICB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duLFxuICAgICAgaXNQYXJ0aWFsUG9seWdvblZpc2libGUsXG4gICAgICBtYXAsXG4gICAgICBmZWF0dXJlR3JvdXAsXG4gICAgKTtcbiAgfSk7XG59O1xuXG5jb25zdCBjdXN0b21BdHRyaWJ1dGVzRm9yQXJlYVBvbHlnb24gPSAoYXJlYVBvbHlnb24sIGFyZWEpID0+IHtcbiAgYXJlYVBvbHlnb25bJ2thbmRvX29iamVjdF9pZCddID0gZ2V0QXJlYUlkKGFyZWEpO1xuICBhcmVhUG9seWdvblsna2FuZG9fb2JqZWN0J10gPSAnQXJlYSc7XG4gIGFyZWFQb2x5Z29uWydhcmVhX25hbWUnXSA9IGdldEFyZWFOYW1lKGFyZWEpO1xuICBhcmVhUG9seWdvblsnY2FsY3VsYXRlZF9zdXJmYWNlJ10gPSBhcmVhLmNhbGN1bGF0ZWRfc3VyZmFjZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb2x5Z29uID0gKFxuICBhcmVhLFxuICBtYXBab29tLFxuICBmZWF0dXJlR3JvdXA6IEZlYXR1cmVHcm91cCxcbiAgbWFwLFxuICBwb3B1cENyZWF0b3I/OiAocG9seWdvbjogUG9seWdvbiwgYXJlYTogSUFyZWEpID0+IHZvaWQsXG4pID0+IHtcbiAgbGV0IHBvbHlnb246IFBvbHlnb247XG4gIGlmIChcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IG51bGwgJiZcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgIGFyZWEuc2hhcGVfZGF0YS5sZW5ndGggPiAwXG4gICkge1xuICAgIHBvbHlnb24gPSBnZW5lcmljUG9seWdvbihhcmVhLCBtYXBab29tKTtcblxuICAgIGN1c3RvbUF0dHJpYnV0ZXNGb3JBcmVhUG9seWdvbihwb2x5Z29uLCBhcmVhKTtcbiAgICBjb25zdCBwYXR0ZXJuID0gZ2V0UGF0dGVybihhcmVhKTtcbiAgICBpZiAocGF0dGVybikge1xuICAgICAgcGF0dGVybj8uYWRkVG8obWFwKTtcbiAgICAgIHBvbHlnb24uc2V0U3R5bGUoe1xuICAgICAgICBmaWxsUGF0dGVybjogcGF0dGVybixcbiAgICAgICAgY29sb3I6IHNjb3JlVG9Db2xvcihhcmVhLmFyZWFfc2NvcmUpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHBvbHlnb24uYWRkVG8oZmVhdHVyZUdyb3VwKTtcbiAgICBwb3B1cENyZWF0b3IgJiYgcG9wdXBDcmVhdG9yKHBvbHlnb24sIGFyZWEpO1xuICAgIGJpbmRUb29sdGlwKHBvbHlnb24sIGFyZWEpO1xuICAgIHpvb21Db250cm9sRm9yQXJlYShwb2x5Z29uLCBhcmVhLCBtYXAsIGZlYXR1cmVHcm91cCk7XG4gICAgcmV0dXJuIHBvbHlnb247XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBnZXRQYXR0ZXJuID0gKGFyZWEpID0+IHtcbiAgaWYgKGFyZWEuaXNfYXNzZXNzbWVudCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBjb2xvciA9IHNjb3JlVG9Db2xvcihhcmVhLmFyZWFfc2NvcmUpO1xuICByZXR1cm4gYXNzZXNtZW50UGF0dGVybihjb2xvcik7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFHQSxNQUFNSSxXQUFXLEdBQUlDLElBQUksSUFBSztFQUM1QixJQUFJQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsU0FBUyxJQUFJRixJQUFJLENBQUNDLElBQUk7RUFFdEMsT0FBT0EsSUFBSTtBQUNiLENBQUM7QUFFRCxNQUFNRSxTQUFTLEdBQUlILElBQUksSUFBSztFQUMxQixJQUFJQyxJQUFJLEdBQUdELElBQUksQ0FBQ0ks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
|
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.assesmentPattern = void 0;
|
|
8
8
|
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
9
9
|
require("leaflet.pattern");
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const assesmentPattern = color => {
|
|
11
|
+
const shape = new _leaflet.default.PatternCircle({
|
|
12
12
|
x: 3,
|
|
13
13
|
y: 3,
|
|
14
14
|
radius: 1,
|
|
@@ -17,7 +17,7 @@ var assesmentPattern = function assesmentPattern(color) {
|
|
|
17
17
|
fillOpacity: 1,
|
|
18
18
|
stroke: true
|
|
19
19
|
});
|
|
20
|
-
|
|
20
|
+
const pattern = new _leaflet.default.Pattern({
|
|
21
21
|
width: 10,
|
|
22
22
|
height: 10
|
|
23
23
|
});
|
|
@@ -25,4 +25,4 @@ var assesmentPattern = function assesmentPattern(color) {
|
|
|
25
25
|
return pattern;
|
|
26
26
|
};
|
|
27
27
|
exports.assesmentPattern = assesmentPattern;
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiYXNzZXNtZW50UGF0dGVybiIsImNvbG9yIiwic2hhcGUiLCJMIiwiUGF0dGVybkNpcmNsZSIsIngiLCJ5IiwicmFkaXVzIiwiZmlsbCIsImZpbGxPcGFjaXR5Iiwic3Ryb2tlIiwicGF0dGVybiIsIlBhdHRlcm4iLCJ3aWR0aCIsImhlaWdodCIsImFkZFNoYXBlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9hcmVhcy9QYXR0ZXJucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnbGVhZmxldC5wYXR0ZXJuJztcblxuZXhwb3J0IGNvbnN0IGFzc2VzbWVudFBhdHRlcm4gPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBjb25zdCBzaGFwZSA9IG5ldyBMLlBhdHRlcm5DaXJjbGUoe1xuICAgIHg6IDMsXG4gICAgeTogMyxcbiAgICByYWRpdXM6IDEsXG4gICAgZmlsbDogdHJ1ZSxcbiAgICBjb2xvcjogY29sb3IsXG4gICAgZmlsbE9wYWNpdHk6IDEsXG4gICAgc3Ryb2tlOiB0cnVlLFxuICB9KTtcbiAgY29uc3QgcGF0dGVybiA9IG5ldyBMLlBhdHRlcm4oeyB3aWR0aDogMTAsIGhlaWdodDogMTAgfSk7XG4gIHBhdHRlcm4uYWRkU2hhcGUoc2hhcGUpO1xuXG4gIHJldHVybiBwYXR0ZXJuO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBRU8sTUFBTUMsZ0JBQWdCLEdBQUlDLEtBQWEsSUFBSztFQUNqRCxNQUFNQyxLQUFLLEdBQUcsSUFBSUMsZ0JBQUMsQ0FBQ0MsYUFBYSxDQUFDO0lBQ2hDQyxDQUFDLEVBQUUsQ0FBQztJQUNKQyxDQUFDLEVBQUUsQ0FBQztJQUNKQyxNQUFNLEVBQUUsQ0FBQztJQUNUQyxJQUFJLEVBQUUsSUFBSTtJQUNWUCxLQUFLLEVBQUVBLEtBQUs7SUFDWlEsV0FBVyxFQUFFLENBQUM7SUFDZEMsTUFBTSxFQUFFO0VBQ1YsQ0FBQyxDQUFDO0VBQ0YsTUFBTUMsT0FBTyxHQUFHLElBQUlSLGdCQUFDLENBQUNTLE9BQU8sQ0FBQztJQUFFQyxLQUFLLEVBQUUsRUFBRTtJQUFFQyxNQUFNLEVBQUU7RUFBRyxDQUFDLENBQUM7RUFDeERILE9BQU8sQ0FBQ0ksUUFBUSxDQUFDYixLQUFLLENBQUM7RUFFdkIsT0FBT1MsT0FBTztBQUNoQixDQUFDO0FBQUNLLE9BQUEsQ0FBQWhCLGdCQUFBLEdBQUFBLGdCQUFBIn0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -10,39 +9,33 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
9
|
var _reactRedux = require("react-redux");
|
|
11
10
|
require("./Edge.scss");
|
|
12
11
|
var _actions = require("../../../store/events/actions");
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
hideEdges =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return Object.keys(edge.shape_data).length !== 0 && edge.shape_data.find(
|
|
28
|
-
return data.lat === null || data.lng === null;
|
|
29
|
-
}) === undefined;
|
|
12
|
+
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); }
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
const Edge = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
L,
|
|
17
|
+
map,
|
|
18
|
+
edge,
|
|
19
|
+
points,
|
|
20
|
+
hideEdges = false,
|
|
21
|
+
allowUnmonitoredDescendants = false,
|
|
22
|
+
specificEvent
|
|
23
|
+
} = _ref;
|
|
24
|
+
const dispatch = (0, _reactRedux.useDispatch)();
|
|
25
|
+
const shapeDataExist = () => {
|
|
26
|
+
return Object.keys(edge.shape_data).length !== 0 && edge.shape_data.find(data => data.lat === null || data.lng === null) === undefined;
|
|
30
27
|
};
|
|
31
|
-
(0, _react.useEffect)(
|
|
28
|
+
(0, _react.useEffect)(() => {
|
|
32
29
|
if (shapeDataExist()) {
|
|
33
|
-
|
|
34
|
-
edge.shape_data.forEach(
|
|
30
|
+
let latlngs = [];
|
|
31
|
+
edge.shape_data.forEach(data => {
|
|
35
32
|
latlngs.push([data.lat, data.lng]);
|
|
36
33
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
var targetPoint = points.filter(function (point) {
|
|
41
|
-
return point.id === edge.target_point_id;
|
|
42
|
-
});
|
|
34
|
+
let sourcePoint = points.filter(point => point.id === edge.source_point_id);
|
|
35
|
+
let targetPoint = points.filter(point => point.id === edge.target_point_id);
|
|
43
36
|
if (points.length === 0) return;
|
|
44
37
|
if (sourcePoint[0] === undefined || targetPoint[0] === undefined) return;
|
|
45
|
-
|
|
38
|
+
let polylineBack = L.polyline(latlngs, {
|
|
46
39
|
color: 'rgb(227,227,227)',
|
|
47
40
|
weight: 6,
|
|
48
41
|
opacity: hideEdges ? 0 : 1
|
|
@@ -51,7 +44,7 @@ var Edge = function Edge(_ref) {
|
|
|
51
44
|
polylineBack['kando_object_id'] = edge.id;
|
|
52
45
|
polylineBack['kando_object'] = 'Edge';
|
|
53
46
|
polylineBack.bringToFront();
|
|
54
|
-
|
|
47
|
+
let polylineFront = L.polyline(latlngs, {
|
|
55
48
|
color: 'rgb(29,29,29)',
|
|
56
49
|
weight: hideEdges ? 0 : 1,
|
|
57
50
|
opacity: hideEdges ? 0 : 1
|
|
@@ -66,7 +59,7 @@ var Edge = function Edge(_ref) {
|
|
|
66
59
|
}, [edge, specificEvent]);
|
|
67
60
|
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
68
61
|
};
|
|
69
|
-
|
|
62
|
+
const connector = (0, _reactRedux.connect)(null);
|
|
70
63
|
var _default = connector(Edge);
|
|
71
64
|
exports.default = _default;
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkVkZ2UiLCJfcmVmIiwiTCIsIm1hcCIsImVkZ2UiLCJwb2ludHMiLCJoaWRlRWRnZXMiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJzcGVjaWZpY0V2ZW50IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInNoYXBlRGF0YUV4aXN0Iiwia2V5cyIsInNoYXBlX2RhdGEiLCJsZW5ndGgiLCJmaW5kIiwiZGF0YSIsImxhdCIsImxuZyIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImxhdGxuZ3MiLCJmb3JFYWNoIiwicHVzaCIsInNvdXJjZVBvaW50IiwiZmlsdGVyIiwicG9pbnQiLCJpZCIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJhZGRUbyIsImJpbmRQb3B1cCIsImNvbmNhdCIsImdyb3VwIiwibmFtZSIsImRpc3RhbmNlIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsInNldEhvdmVyZWRFZGdlUGF0aHMiLCJjcmVhdGVFbGVtZW50IiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9lZGdlcy9FZGdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0ICcuL0VkZ2Uuc2Nzcyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xudHlwZSBQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBtYXA6IGFueTtcbiAgTDogYW55O1xuICBlZGdlOiBJRWRnZTtcbiAgcG9pbnRzOiBhbnk7XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIHNwZWNpZmljRXZlbnQ/OiBJRXZlbnQ7XG4gIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBFZGdlOiBSZWFjdC5GQzxQcm9wcz4gPSAoe1xuICBMLFxuICBtYXAsXG4gIGVkZ2UsXG4gIHBvaW50cyxcbiAgaGlkZUVkZ2VzID0gZmFsc2UsXG4gIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyA9IGZhbHNlLFxuICBzcGVjaWZpY0V2ZW50LFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHNoYXBlRGF0YUV4aXN0ID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBPYmplY3Qua2V5cyhlZGdlLnNoYXBlX2RhdGEpLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgZWRnZS5zaGFwZV9kYXRhLmZpbmQoXG4gICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEubGF0ID09PSBudWxsIHx8IGRhdGEubG5nID09PSBudWxsLFxuICAgICAgKSA9PT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzaGFwZURhdGFFeGlzdCgpKSB7XG4gICAgICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gICAgICBlZGdlLnNoYXBlX2RhdGEuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGxhdGxuZ3MucHVzaChbZGF0YS5sYXQsIGRhdGEubG5nXSk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbHRlcihcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICk7XG4gICAgICBsZXQgdGFyZ2V0UG9pbnQgPSBwb2ludHMuZmlsdGVyKFxuICAgICAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaWQgPT09IGVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHBvaW50cy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAgIGlmIChzb3VyY2VQb2ludFswXSA9PT0gdW5kZWZpbmVkIHx8IHRhcmdldFBvaW50WzBdID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgbGV0IHBvbHlsaW5lQmFjazogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAncmdiKDIyNywyMjcsMjI3KScsXG4gICAgICAgIHdlaWdodDogNixcbiAgICAgICAgb3BhY2l0eTogaGlkZUVkZ2VzID8gMCA6IDEsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2UgcG9pbnQ6ICR7c291cmNlUG9pbnRbMF0uZ3JvdXAubmFtZX0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCBwb2ludDogJHt0YXJnZXRQb2ludFswXS5ncm91cC5uYW1lfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuXG4gICAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnRWRnZSc7XG5cbiAgICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgbGV0IHBvbHlsaW5lRnJvbnQ6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyOSwyOSwyOSknLFxuICAgICAgICB3ZWlnaHQ6IGhpZGVFZGdlcyA/IDAgOiAxLFxuICAgICAgICBvcGFjaXR5OiBoaWRlRWRnZXMgPyAwIDogMSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICAgIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdCddID0gJ0VkZ2VGcm9udCc7XG5cbiAgICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG4gICAgICBpZiAoc3BlY2lmaWNFdmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlZGdlLCBzcGVjaWZpY0V2ZW50XSk7XG5cbiAgcmV0dXJuIDxkaXY+PC9kaXY+O1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChudWxsKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFZGdlKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUFBLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFHQUEsT0FBQTtBQUVBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUFvRSxTQUFBSyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZCxHQUFBLEVBQUFXLEdBQUEsU0FBQUksSUFBQSxHQUFB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
|