@kando-env/kando-ui 1.2.232 → 1.2.233
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 +4 -66
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +11 -41
- package/lib/Widgets/EventsRow/EventsRow.js +14 -41
- package/lib/Widgets/Map/GraphUtils.js +1 -4
- package/lib/Widgets/Map/Map.js +20 -42
- package/lib/Widgets/Map/MapUtils.js +4 -58
- package/lib/Widgets/Map/areas/AreaPolygon.js +7 -27
- package/lib/Widgets/Map/areas/AreaPolygons.js +8 -21
- package/lib/Widgets/Map/edges/Edge.js +9 -30
- package/lib/Widgets/Map/edges/Edges.js +11 -17
- package/lib/Widgets/Map/edges/arrows/Arrows.js +7 -22
- package/lib/Widgets/Map/events/Event.js +7 -23
- package/lib/Widgets/Map/events/EventIndicator.js +19 -42
- package/lib/Widgets/Map/events/EventPath.js +5 -20
- package/lib/Widgets/Map/events/EventUtils.js +4 -53
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +5 -16
- package/lib/Widgets/Map/events/PointOfEvent.js +3 -32
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +4 -14
- package/lib/Widgets/Map/events/Snail.js +7 -19
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +15 -54
- package/lib/Widgets/Map/map/FloatingGraph.js +3 -19
- package/lib/Widgets/Map/map/GraphDateButton.js +3 -9
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +5 -11
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +4 -10
- package/lib/Widgets/Map/points/PointMarker.js +3 -19
- package/lib/Widgets/Map/points/PointMarkers.js +6 -19
- package/lib/Widgets/Map/points/PointUtils.js +7 -78
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +15 -49
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +4 -19
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +1 -13
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +1 -5
- package/lib/Widgets/MostPolluting/Areas/Areas.js +19 -53
- package/lib/Widgets/MostPolluting/Areas/areas.mock.js +1 -1
- package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
- package/lib/Widgets/MostPolluting/Areas/styles.js +1 -7
- package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +3 -11
- package/lib/Widgets/MostPolluting/Factories/Factories.js +30 -64
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +4 -21
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +1 -10
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +4 -17
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -7
- package/lib/Widgets/MostPolluting/Factories/factories.mock.js +1 -1
- package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
- package/lib/Widgets/MostPolluting/Factories/styles.js +1 -7
- package/lib/Widgets/MostPolluting/MostPolluting.js +4 -17
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +13 -17
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +2 -9
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +1 -5
- package/lib/Widgets/MostPolluting/assets/index.js +17 -28
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +1 -16
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +15 -26
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +4 -26
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +25 -33
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +4 -20
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +29 -43
- package/lib/Widgets/MostPolluting/models.js +1 -1
- package/lib/Widgets/MostPolluting/styles.js +1 -7
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +2 -9
- package/lib/Widgets/PotentialImpactSummary/Icon.js +1 -11
- package/lib/Widgets/PotentialImpactSummary/index.js +7 -29
- package/lib/Widgets/PotentialImpactSummary/index.test.js +17 -36
- package/lib/Widgets/PotentialImpactSummary/styles.js +2 -15
- package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +4 -10
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +7 -21
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +19 -29
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +15 -24
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +7 -21
- package/lib/Widgets/QualitySummary/QualitySummary.js +8 -24
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +2 -2
- package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
- package/lib/Widgets/QualitySummary/styles.js +3 -16
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +9 -20
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +9 -34
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +9 -18
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +22 -45
- package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
- package/lib/Widgets/UtilityInformation/styles.js +2 -22
- package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +2 -2
- package/lib/assets/icons/index.js +5 -8
- package/lib/assets/icons/kandoStepper/index.js +9 -14
- package/lib/components/ApplyButton/ApplyButton.js +5 -11
- package/lib/components/ApplyButton/index.js +1 -4
- package/lib/components/Backdrop/Backdrop.js +2 -8
- package/lib/components/ContentLoader/ContentLoader.js +7 -12
- package/lib/components/ContentLoader/index.js +1 -2
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +7 -14
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +2 -8
- package/lib/components/CustomInputs/DoubleTabs/styles.js +2 -10
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +5 -18
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +1 -5
- package/lib/components/CustomInputs/Search/Search.js +13 -38
- package/lib/components/CustomInputs/Search/index.js +1 -4
- package/lib/components/CustomInputs/Select/Select.js +13 -31
- package/lib/components/CustomInputs/Select/Select.stories.js +2 -8
- package/lib/components/DamageType/DamageType.js +37 -76
- package/lib/components/DamageType/index.js +1 -4
- package/lib/components/DataLoaderError/DataLoaderError.js +4 -10
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +6 -16
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +17 -37
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +12 -37
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +6 -10
- package/lib/components/DischargeHeatmap/index.js +1 -4
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -4
- package/lib/components/DischargeHeatmap/popupText.js +1 -16
- package/lib/components/DischargeHeatmap/titles.js +1 -8
- package/lib/components/DischargeHeatmap/types.js +1 -1
- package/lib/components/ErrorBoundary.js +3 -15
- package/lib/components/Events/Events.js +5 -30
- package/lib/components/Events/index.js +1 -4
- package/lib/components/Graph/Graph.js +31 -74
- package/lib/components/Graph/index.js +1 -4
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +1 -7
- package/lib/components/Header/Breadcrumbs/index.js +1 -4
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +14 -30
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +2 -8
- package/lib/components/Header/DoubleTabs/styles.js +2 -10
- package/lib/components/Header/Header.js +1 -7
- package/lib/components/Header/Header.stories.js +2 -8
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +1 -11
- package/lib/components/Header/InfoBar/InfoBar.js +4 -30
- package/lib/components/Header/InfoBar/Search/Control.js +2 -13
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +1 -12
- package/lib/components/Header/InfoBar/Search/Search.js +5 -26
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +4 -21
- package/lib/components/Header/InfoBar/Search/index.js +1 -4
- package/lib/components/Header/InfoBar/Search/searchStyle.js +1 -4
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +46 -91
- package/lib/components/Header/KandoNavbar/index.js +1 -4
- package/lib/components/Header/Slideshow/Slideshow.js +31 -67
- package/lib/components/Header/Slideshow/index.js +1 -4
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +1 -7
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +2 -15
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +1 -15
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +7 -24
- package/lib/components/Header/Toolbar/Toolbar.js +46 -84
- package/lib/components/InfoBar/InfoBar.js +8 -23
- package/lib/components/InfoBar/InfoBar.stories.js +2 -8
- package/lib/components/KandoModal/KandoModal.js +19 -42
- package/lib/components/KandoModal/index.js +1 -4
- package/lib/components/Link.js +2 -11
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +3 -12
- package/lib/components/Links/StyledLink/StyledLink.js +6 -16
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +4 -14
- package/lib/components/LiveEvents/CarouselSlide.js +5 -11
- package/lib/components/LiveEvents/LiveEvents.js +1 -10
- package/lib/components/LiveEvents/index.js +1 -4
- package/lib/components/LoaderByPercent/LoaderByPercent.js +13 -23
- package/lib/components/Map/Map.js +12 -26
- package/lib/components/Map/index.js +1 -4
- package/lib/components/Modal/Modal.js +3 -10
- package/lib/components/NarrowHeader.js +1 -12
- package/lib/components/PointInfo/PointInfo.js +10 -22
- package/lib/components/PointInfo/index.js +1 -4
- package/lib/components/PopupModal/PopupModal.js +6 -17
- package/lib/components/PopupModal/PopupModal.stories.js +2 -11
- package/lib/components/Sector/Sector.js +4 -13
- package/lib/components/Sector/Sector.test.js +3 -8
- package/lib/components/Sector/index.js +1 -4
- package/lib/components/Sector/sectorIcons.js +1 -27
- package/lib/components/SevereEvent/Eta/Eta.js +14 -39
- package/lib/components/SevereEvent/Eta/styles.js +1 -5
- package/lib/components/SevereEvent/SevereEvent.js +15 -36
- package/lib/components/Spinner/Spinner.js +5 -10
- package/lib/components/Spinner/Spinner.stories.js +2 -8
- package/lib/components/Spinner/index.js +1 -4
- package/lib/components/Spinner/styles.js +1 -9
- package/lib/components/Tabs/Tabs.js +4 -24
- package/lib/components/Tabs/Tabs.stories.js +2 -8
- package/lib/components/Tabs/assets/index.js +1 -6
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +2 -12
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +12 -43
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +12 -36
- package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +1 -4
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +9 -29
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +4 -9
- package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +1 -4
- package/lib/components/TimeRangeSelector/TimeRangeList.js +4 -13
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +11 -24
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +11 -36
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +2 -10
- package/lib/components/TimeRangeSelector/constants.js +2 -2
- package/lib/components/TimeRangeSelector/index.js +1 -4
- package/lib/components/Toggle/Toggle.js +7 -21
- package/lib/components/Toggle/index.js +1 -4
- package/lib/components/TrendGraph/TrendGraph.js +16 -49
- package/lib/components/TrendGraph/index.js +1 -4
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +10 -35
- package/lib/components/TrendGraphNVL/index.js +1 -4
- package/lib/development-environment/index.js +1 -13
- package/lib/development-environment/mock/browser.js +1 -8
- package/lib/development-environment/mock/get.js +1 -5
- package/lib/development-environment/mock/handlers.js +1 -26
- package/lib/development-environment/mock/mockBus.js +2 -7
- package/lib/development-environment/mock/mockObjects/area-trends-graph.js +1 -1
- package/lib/development-environment/mock/mockObjects/areaInformation.js +1 -1
- package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +1 -1
- package/lib/development-environment/mock/mockObjects/areaSitesData.js +1 -1
- package/lib/development-environment/mock/mockObjects/areasJson.js +1 -1
- package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +1 -1
- package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +1 -1
- package/lib/development-environment/mock/mockObjects/data-menuData.js +1 -1
- package/lib/development-environment/mock/mockObjects/data-search.js +1 -1
- package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +1 -1
- package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +1 -1
- package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +1 -1
- package/lib/development-environment/mock/mockObjects/eventsJson.js +1 -1
- package/lib/development-environment/mock/mockObjects/metascore.js +1 -1
- package/lib/development-environment/mock/mockObjects/permissionsJson.js +1 -1
- package/lib/development-environment/mock/mockObjects/pointsJson.js +1 -1
- package/lib/development-environment/mock/mockObjects/site-info.js +1 -1
- package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +1 -1
- package/lib/development-environment/togly/ToglyDashboard.js +4 -22
- package/lib/development-environment/togly/ToglyItem.js +5 -25
- package/lib/development-environment/togly/flags.js +1 -1
- package/lib/development-environment/togly/init.js +1 -6
- package/lib/development-environment/togly/macro.js +7 -9
- package/lib/development-environment/togly/useDoubleKeyDown.js +1 -8
- package/lib/development-environment/togly/useLocalStorage.js +12 -19
- package/lib/hooks/useApi.js +10 -29
- package/lib/hooks/useApiWithDashboardQuery.js +10 -30
- package/lib/hooks/useClickOutside.js +1 -5
- package/lib/hooks/useInitializeHeaders.js +1 -7
- package/lib/hooks/useKandoFetch.js +13 -27
- package/lib/hooks/useMap.js +8 -39
- package/lib/hooks/useNavContext.js +13 -22
- package/lib/hooks/useQueryURL.js +1 -4
- package/lib/hooks/useRemoveExistingLayers.js +2 -7
- package/lib/hooks/useUpdateEventBodyTail.js +1 -10
- package/lib/hooks/useUserTimeZone.js +1 -9
- package/lib/hooks/useUserTimeZone.test.js +1 -9
- package/lib/hooks/useWindowSize.js +14 -19
- package/lib/index.js +13 -29
- package/lib/macros/getVersion.js +2 -3
- package/lib/models/IAction.js +1 -1
- package/lib/models/IAppState.js +1 -1
- package/lib/pages/AreaPage/AreaPage.js +5 -34
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +6 -17
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +3 -24
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +11 -35
- package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +6 -8
- package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +28 -64
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +1 -10
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +3 -15
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -7
- package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
- package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +1 -1
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +3 -11
- package/lib/pages/AssessmentPage/AssessmentPage.js +5 -30
- package/lib/pages/CannyWidget/Feedback.js +10 -25
- package/lib/pages/CovidPage/CovidPage.js +1 -14
- package/lib/pages/CovidPage/components/Body.js +9 -33
- package/lib/pages/CovidPage/components/Map.js +20 -38
- package/lib/pages/CovidPage/components/Sidebar.js +4 -18
- package/lib/pages/CovidPage/components/Summary.js +8 -29
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +10 -35
- package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +1 -4
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +13 -41
- package/lib/pages/CovidPage/components/TrendPopupContent/index.js +1 -4
- package/lib/pages/CovidPage/components/areas/Area.js +6 -33
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +4 -45
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +5 -18
- package/lib/pages/CovidPage/components/areas/AreasList.js +14 -33
- package/lib/pages/CovidPage/components/areas/Sort.js +5 -19
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +2 -11
- package/lib/pages/EventsPage/Body/Body.js +2 -19
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +11 -28
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +11 -31
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +4 -11
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +3 -11
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +5 -10
- package/lib/pages/EventsPage/DragAndDropArea/index.js +1 -4
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +7 -33
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +2 -21
- package/lib/pages/EventsPage/EventsPage.js +1 -13
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +9 -32
- package/lib/pages/EventsPage/events/MoreInfo.js +1 -19
- package/lib/pages/EventsPage/events/Sidebar.js +5 -18
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +5 -29
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +8 -32
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +12 -41
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +2 -14
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +10 -40
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +1 -12
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +8 -30
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +1 -8
- package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/LineChartYear/LineChartYear.js +7 -27
- package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/MockHistoryInformation.js +2 -10
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +5 -21
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsLineChart.js +4 -23
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +4 -22
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +6 -33
- package/lib/pages/EventsPage/events/event_info/samplings/Sampling.js +3 -15
- package/lib/pages/EventsPage/events/event_info/samplings/Samplings.js +2 -10
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +8 -31
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +4 -20
- package/lib/pages/EventsPage/events/events_list/EventItem.js +3 -24
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +2 -13
- package/lib/pages/EventsPage/events/events_list/EventsList.js +38 -102
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +11 -32
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +31 -96
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +10 -55
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +5 -17
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +15 -38
- package/lib/pages/EventsPage/events/events_list/Sort.js +4 -23
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +4 -19
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +2 -8
- package/lib/pages/ImportFileWizard/ImportFile.js +10 -29
- package/lib/pages/ImportFileWizard/ResponseBody.js +3 -12
- package/lib/pages/ImportFileWizard/ValidationForm.js +7 -27
- package/lib/pages/ImportFileWizard/ValidationResponse.js +6 -30
- package/lib/pages/ImportFileWizard/importFileUtils.js +1 -2
- package/lib/pages/ImportFileWizard/index.js +1 -4
- package/lib/pages/ImportGisPage/ImportGisContainer.js +7 -27
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +10 -27
- package/lib/pages/ImportGisPage/importGisUtils.js +1 -13
- package/lib/pages/ImportGisProcess/index.js +4 -18
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +5 -19
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +3 -10
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +1 -8
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +25 -58
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +2 -8
- package/lib/pages/NotificationsPage/Notification/Notification.js +8 -16
- package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
- package/lib/pages/NotificationsPage/Notifications.mock.js +1 -1
- package/lib/pages/NotificationsPage/Notifications.stories.js +2 -10
- package/lib/pages/NotificationsPage/NotificationsPage.js +11 -35
- package/lib/pages/NotificationsPage/assets/index.js +15 -24
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +35 -83
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +4 -24
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +15 -40
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +18 -49
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +6 -49
- package/lib/pages/NotificationsPageV2/notificationUtils.js +2 -30
- package/lib/pages/OldSitePage/IDashboardData.js +1 -1
- package/lib/pages/OldSitePage/OldSitePage.js +16 -77
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +3 -16
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +2 -8
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +4 -9
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +5 -12
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +2 -12
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +7 -23
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +6 -20
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +4 -10
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +2 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +9 -24
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +4 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +28 -59
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +3 -18
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +2 -15
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +8 -16
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +1 -16
- package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +2 -10
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +2 -7
- package/lib/pages/ProfilePage/Container.js +1 -5
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +16 -43
- package/lib/pages/ProfilePage/ProfilePage.js +39 -88
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +9 -32
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +7 -17
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +3 -14
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +7 -43
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +4 -21
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +7 -15
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +8 -29
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +6 -25
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +9 -21
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +1 -13
- package/lib/pages/SamplingsPage/DesktopActions/index.js +1 -4
- package/lib/pages/SamplingsPage/NavigationDropdown.js +3 -21
- package/lib/pages/SamplingsPage/NewSamplingAction.js +38 -84
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +12 -65
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +5 -19
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +2 -13
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +22 -56
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +4 -20
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +1 -14
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +34 -107
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +11 -42
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +14 -47
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +15 -49
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +5 -21
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +2 -8
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +1 -11
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +7 -36
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +10 -34
- package/lib/pages/SamplingsPage/SamplingsPage.js +14 -39
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +14 -48
- package/lib/pages/SamplingsPage/index.js +1 -3
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +7 -30
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +2 -10
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +2 -8
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +3 -17
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +6 -11
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +15 -23
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +7 -16
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +18 -27
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +2 -12
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +9 -26
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +6 -20
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +4 -10
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +2 -12
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +9 -24
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +4 -12
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +32 -68
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +4 -19
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +2 -15
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +17 -38
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +13 -29
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +3 -7
- package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +2 -10
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +2 -8
- package/lib/pages/SitePage/SiteInformation/ContributorItem.js +5 -12
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +1 -10
- package/lib/pages/SitePage/SiteInformation/PollutionContributor.js +5 -15
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +17 -48
- package/lib/pages/SitePage/SiteInformation/style.js +2 -8
- package/lib/pages/SitePage/SitePage.js +10 -49
- package/lib/pages/UploadLabResult/index.js +1 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +9 -37
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +2 -9
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +2 -16
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +2 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +9 -35
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +1 -5
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +1 -7
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +1 -10
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +7 -16
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +1 -10
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +1 -5
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +3 -25
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +13 -19
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +6 -17
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +5 -20
- package/lib/pages/WbeDashboard/ExpandableComponent.js +1 -11
- package/lib/pages/WbeDashboard/GraphWrapper.js +5 -26
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +6 -19
- package/lib/pages/WbeDashboard/SearchInput.js +4 -22
- package/lib/pages/WbeDashboard/SummaryGraph.js +13 -44
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +1 -13
- package/lib/pages/WbeDashboard/Tabs.js +3 -9
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +25 -112
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +8 -42
- package/lib/providers/Slideshow/SlideshowContext.js +3 -5
- package/lib/providers/Slideshow/SlideshowProvider.js +16 -31
- package/lib/providers/Slideshow/SlideshowRunner.js +7 -17
- package/lib/providers/UrlHistory/UrlHistoryContext.js +3 -7
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +1 -13
- package/lib/providers/UrlHistory/index.js +5 -8
- package/lib/providers/UrlHistory/useLastVisited.js +1 -7
- package/lib/react-app-env.d.js +1 -1
- package/lib/store/ImportGis/action.js +1 -1
- package/lib/store/ImportGis/actionTypes.js +1 -2
- package/lib/store/ImportGis/actionsCreator.js +7 -17
- package/lib/store/ImportGis/models/gisImports.js +1 -1
- package/lib/store/ImportGis/reducer.js +1 -17
- package/lib/store/WBE/actionTypes.js +1 -1
- package/lib/store/WBE/actions.js +1 -3
- package/lib/store/WBE/models/IAreaWBE.js +1 -1
- package/lib/store/WBE/models/IWBE.js +1 -1
- package/lib/store/WBE/models/IWBEState.js +1 -1
- package/lib/store/WBE/reducer.js +2 -9
- package/lib/store/areas/actionTypes.js +2 -2
- package/lib/store/areas/actions.js +2 -11
- package/lib/store/areas/models/IArea.js +1 -1
- package/lib/store/areas/models/IAreasState.js +1 -1
- package/lib/store/areas/reducer.js +1 -9
- package/lib/store/context/actionTypes.js +2 -2
- package/lib/store/context/actions.js +2 -6
- package/lib/store/context/contextMiddlewares.js +1 -9
- package/lib/store/context/models/INavContext.js +1 -1
- package/lib/store/context/models/INavContextState.js +1 -1
- package/lib/store/context/reducer.js +2 -9
- package/lib/store/dashboard/dashboardSlice.js +1 -3
- package/lib/store/dashboard/periodType.js +1 -1
- package/lib/store/edges/actionTypes.js +2 -2
- package/lib/store/edges/actions.js +3 -9
- package/lib/store/edges/models/IEdge.js +1 -1
- package/lib/store/edges/models/IEdgesState.js +1 -1
- package/lib/store/edges/reducer.js +2 -16
- package/lib/store/events/actionTypes.js +2 -2
- package/lib/store/events/actions.js +10 -28
- package/lib/store/events/models/IEvent.js +1 -1
- package/lib/store/events/models/IEventsState.js +1 -1
- package/lib/store/events/models/ISource.js +1 -1
- package/lib/store/events/reducer.js +3 -41
- package/lib/store/filters/IFilter.js +1 -1
- package/lib/store/filters/IFilterItem.js +1 -1
- package/lib/store/global/actionTypes.js +2 -2
- package/lib/store/global/actions.js +8 -20
- package/lib/store/global/models/IGlobalState.js +1 -1
- package/lib/store/global/reducer.js +2 -18
- package/lib/store/permissions/permissionsSlice.js +1 -6
- package/lib/store/points/actionTypes.js +2 -2
- package/lib/store/points/actions.js +1 -5
- package/lib/store/points/models/IGroup.js +1 -1
- package/lib/store/points/models/IPoint.js +1 -1
- package/lib/store/points/models/IPointsState.js +1 -1
- package/lib/store/points/reducer.js +1 -7
- package/lib/store/rootActionTypes.js +1 -1
- package/lib/store/rootActions.js +1 -3
- package/lib/store/rootReducer.js +4 -23
- package/lib/store/rootStore.js +4 -12
- package/lib/store/samplings/action.js +1 -1
- package/lib/store/samplings/actionTypes.js +1 -2
- package/lib/store/samplings/actionsCreator.js +2 -5
- package/lib/store/samplings/models/Samplings.js +1 -1
- package/lib/store/samplings/reducer.js +1 -9
- package/lib/styles/StylesLayout.js +1 -7
- package/lib/styles/theme/theme.js +2 -4
- package/lib/test/mocks/browser.js +3 -7
- package/lib/test/test-utils.js +11 -21
- package/lib/ui-kit/Button/Button.js +15 -23
- package/lib/ui-kit/Button/Button.test.js +6 -26
- package/lib/ui-kit/Button/ButtonUtils.js +1 -1
- package/lib/ui-kit/Checkbox/Checkbox.js +7 -21
- package/lib/ui-kit/DropDown/DropDown.js +5 -16
- package/lib/ui-kit/DropDown/DropDown.test.js +6 -12
- package/lib/ui-kit/DropDown/DropDownItem.js +5 -13
- package/lib/ui-kit/DropDown/DropdownToggle.js +2 -13
- package/lib/ui-kit/IconAction/IconAction.js +3 -9
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +16 -49
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +16 -27
- package/lib/ui-kit/KandoList/KandoList.js +5 -16
- package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
- package/lib/ui-kit/KandoTable/KandoTable.js +21 -35
- package/lib/ui-kit/KandoTable/KandoTable.test.js +1 -16
- package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
- package/lib/ui-kit/Layout/Layout.js +1 -8
- package/lib/ui-kit/MobileInput/MobileInput.js +18 -33
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +8 -14
- package/lib/ui-kit/ModalConfirmation/index.js +1 -3
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +5 -10
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +3 -11
- package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +4 -11
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +5 -14
- package/lib/ui-kit/Tooltip/Tooltip.js +3 -8
- package/lib/ui-kit/index.js +1 -15
- package/lib/ui-kit/kandoStepper/KandoStepper.js +2 -7
- package/lib/utilities/ActionUtility.js +1 -2
- package/lib/utilities/Alert.js +2 -10
- package/lib/utilities/Analytics.js +1 -12
- package/lib/utilities/Array.js +2 -6
- package/lib/utilities/Enum.js +1 -16
- package/lib/utilities/ErrorBoundary.js +3 -18
- package/lib/utilities/File.js +5 -24
- package/lib/utilities/GetDir.js +4 -8
- package/lib/utilities/KandoDate.js +1 -7
- package/lib/utilities/KandoModal.js +7 -22
- package/lib/utilities/LocalStorage.js +2 -13
- package/lib/utilities/ThousandsToK.js +1 -3
- package/lib/utilities/TimeFormat.js +6 -19
- package/lib/utilities/Truncate.js +7 -27
- package/lib/utilities/edgesMath.js +5 -24
- package/lib/utilities/i18n.js +1 -14
- package/lib/utilities/kql.js +3 -10
- package/lib/utilities/map/icons.js +1 -14
- package/lib/utilities/scoreToColor.js +1 -8
- package/lib/utilities/time.js +2 -9
- package/lib/utilities/uploadToS3.js +1 -9
- package/lib/utilities/urls.js +4 -12
- package/package.json +1 -1
|
@@ -1,53 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = void 0;
|
|
11
|
-
|
|
12
9
|
var _leafletGeometryutil = require("leaflet-geometryutil");
|
|
13
|
-
|
|
14
10
|
require("leaflet-polylinedecorator");
|
|
15
|
-
|
|
16
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
-
|
|
18
12
|
var _reactRedux = require("react-redux");
|
|
19
|
-
|
|
20
13
|
var _actions = require("store/events/actions");
|
|
21
|
-
|
|
22
14
|
var _useUpdateEventBodyTail = _interopRequireDefault(require("hooks/useUpdateEventBodyTail"));
|
|
23
|
-
|
|
24
15
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
-
|
|
26
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
-
|
|
28
17
|
// @ts-ignore
|
|
18
|
+
|
|
29
19
|
function mapStateToProps(state) {
|
|
30
20
|
var events_data = state.events_data,
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
global_data = state.global_data,
|
|
22
|
+
edges_data = state.edges_data;
|
|
33
23
|
return {
|
|
34
24
|
events_data: events_data,
|
|
35
25
|
global_data: global_data,
|
|
36
26
|
edges_data: edges_data
|
|
37
27
|
};
|
|
38
28
|
}
|
|
39
|
-
|
|
40
29
|
var EventIndicator = function EventIndicator(props) {
|
|
41
30
|
var L = props.L,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
31
|
+
map = props.map,
|
|
32
|
+
events_data = props.events_data,
|
|
33
|
+
edges_data = props.edges_data,
|
|
34
|
+
global_data = props.global_data,
|
|
35
|
+
event = props.event,
|
|
36
|
+
paths = props.paths;
|
|
48
37
|
var eventIndicator = events_data.eventIndicator;
|
|
49
38
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
50
|
-
var eventParts = [];
|
|
39
|
+
var eventParts = [];
|
|
40
|
+
// eslint-disable-next-line etc/no-commented-out-code
|
|
51
41
|
|
|
52
42
|
var removeExistingIndicator = function removeExistingIndicator() {
|
|
53
43
|
if (eventIndicator !== null) {
|
|
@@ -56,19 +46,15 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
56
46
|
});
|
|
57
47
|
}
|
|
58
48
|
};
|
|
59
|
-
|
|
60
49
|
var makePairs = function makePairs(array) {
|
|
61
50
|
var pairs = [];
|
|
62
|
-
|
|
63
51
|
for (var i = 0; i < array.length; i++) {
|
|
64
52
|
if (i < array.length - 1) {
|
|
65
53
|
pairs.push([array[i], array[i + 1]]);
|
|
66
54
|
}
|
|
67
55
|
}
|
|
68
|
-
|
|
69
56
|
return pairs;
|
|
70
57
|
};
|
|
71
|
-
|
|
72
58
|
var calculateBodyAndTail = function calculateBodyAndTail(segment, bodyStart, bodyEnd) {
|
|
73
59
|
var tailPath = [];
|
|
74
60
|
var bodyPath = [];
|
|
@@ -77,12 +63,11 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
77
63
|
var eventBodyEndMarker = bodyEnd._latlng;
|
|
78
64
|
var subSegments = makePairs(segment._latlngs);
|
|
79
65
|
var shouldContinue = true;
|
|
80
|
-
|
|
81
66
|
for (var i = 0; i < subSegments.length; i++) {
|
|
82
67
|
var foundBodyStartOnCurrentSubSegment = false;
|
|
83
|
-
|
|
84
68
|
if (shouldContinue && !foundBodyStart) {
|
|
85
69
|
// if bodyStartMarker exist on subSegment
|
|
70
|
+
|
|
86
71
|
if ((0, _leafletGeometryutil.belongsSegment)(eventBodyStartMarker, subSegments[i][0], subSegments[i][1], 0.0000001)) {
|
|
87
72
|
tailPath.push([subSegments[i][0], eventBodyStartMarker]);
|
|
88
73
|
foundBodyStart = true;
|
|
@@ -91,10 +76,8 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
91
76
|
tailPath.push([subSegments[i][0], subSegments[i][1]]);
|
|
92
77
|
}
|
|
93
78
|
}
|
|
94
|
-
|
|
95
79
|
if (shouldContinue && foundBodyStart) {
|
|
96
80
|
var beginningOfBody = foundBodyStartOnCurrentSubSegment ? eventBodyStartMarker : subSegments[i][0];
|
|
97
|
-
|
|
98
81
|
if ((0, _leafletGeometryutil.belongsSegment)(eventBodyEndMarker, subSegments[i][0], subSegments[i][1], 0.0000001)) {
|
|
99
82
|
bodyPath.push([beginningOfBody, eventBodyEndMarker]);
|
|
100
83
|
shouldContinue = false;
|
|
@@ -103,17 +86,14 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
103
86
|
}
|
|
104
87
|
}
|
|
105
88
|
}
|
|
106
|
-
|
|
107
89
|
return {
|
|
108
90
|
tailPath: tailPath,
|
|
109
91
|
bodyPath: bodyPath
|
|
110
92
|
};
|
|
111
93
|
};
|
|
112
|
-
|
|
113
94
|
var renderEventIndicator = function renderEventIndicator() {
|
|
114
95
|
if (event !== null && event.path.length >= 1) {
|
|
115
96
|
removeExistingIndicator();
|
|
116
|
-
|
|
117
97
|
for (var i = 0; i < event.path.length; i++) {
|
|
118
98
|
if (event.path[i] !== undefined && event.path[i].event_body_part <= 100 && event.path[i].event_body_part > 0 && paths[i] !== undefined) {
|
|
119
99
|
var eventBodyStart = L.marker((0, _leafletGeometryutil.interpolateOnLine)(map, paths[i]._latlngs, event.path[i].event_tail_part / 100).latLng, {
|
|
@@ -152,7 +132,8 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
152
132
|
eventBody['kando_object'] = 'EventBody';
|
|
153
133
|
eventBody.bringToFront();
|
|
154
134
|
var tailDash = L.polylineDecorator(eventTail._latlngs, {
|
|
155
|
-
patterns: [
|
|
135
|
+
patterns: [
|
|
136
|
+
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
156
137
|
{
|
|
157
138
|
offset: 15,
|
|
158
139
|
repeat: 25,
|
|
@@ -179,7 +160,8 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
179
160
|
}).addTo(map);
|
|
180
161
|
tailLine['kando_object'] = 'Decorator';
|
|
181
162
|
var arrowHead = L.polylineDecorator(eventBody, {
|
|
182
|
-
patterns: [
|
|
163
|
+
patterns: [
|
|
164
|
+
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
183
165
|
{
|
|
184
166
|
offset: 5,
|
|
185
167
|
repeat: 25,
|
|
@@ -203,11 +185,11 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
203
185
|
className: 'event-tail',
|
|
204
186
|
opacity: 0.3
|
|
205
187
|
}).addTo(map);
|
|
206
|
-
|
|
207
188
|
_eventTail['kando_object_id'] = event.id;
|
|
208
189
|
_eventTail['kando_object'] = 'EventTail';
|
|
209
190
|
tailDash = L.polylineDecorator(_eventTail._latlngs, {
|
|
210
|
-
patterns: [
|
|
191
|
+
patterns: [
|
|
192
|
+
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
211
193
|
{
|
|
212
194
|
offset: 15,
|
|
213
195
|
repeat: 25,
|
|
@@ -232,21 +214,16 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
232
214
|
eventParts.push(_eventTail, tailDash, tailLine);
|
|
233
215
|
}
|
|
234
216
|
}
|
|
235
|
-
|
|
236
217
|
dispatch((0, _actions.setEventIndicator)(L.layerGroup(eventParts)));
|
|
237
218
|
}
|
|
238
219
|
};
|
|
239
|
-
|
|
240
220
|
(0, _useUpdateEventBodyTail.default)(event !== null ? global_data.current_time : 0, event, edges_data, event.hovered);
|
|
241
221
|
(0, _react.useEffect)(function () {
|
|
242
222
|
renderEventIndicator();
|
|
243
223
|
}, [paths, global_data.current_time]);
|
|
244
224
|
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
245
225
|
};
|
|
246
|
-
|
|
247
226
|
var connector = (0, _reactRedux.connect)(mapStateToProps);
|
|
248
|
-
|
|
249
227
|
var _default = connector(EventIndicator);
|
|
250
|
-
|
|
251
228
|
exports.default = _default;
|
|
252
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3IudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsImVkZ2VzX2RhdGEiLCJFdmVudEluZGljYXRvciIsInByb3BzIiwiTCIsIm1hcCIsImV2ZW50IiwicGF0aHMiLCJldmVudEluZGljYXRvciIsImRpc3BhdGNoIiwiZXZlbnRQYXJ0cyIsInJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yIiwiZWFjaExheWVyIiwibGF5ZXIiLCJyZW1vdmVMYXllciIsIm1ha2VQYWlycyIsImFycmF5IiwicGFpcnMiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNhbGN1bGF0ZUJvZHlBbmRUYWlsIiwic2VnbWVudCIsImJvZHlTdGFydCIsImJvZHlFbmQiLCJ0YWlsUGF0aCIsImJvZHlQYXRoIiwiZm91bmRCb2R5U3RhcnQiLCJldmVudEJvZHlTdGFydE1hcmtlciIsIl9sYXRsbmciLCJldmVudEJvZHlFbmRNYXJrZXIiLCJzdWJTZWdtZW50cyIsIl9sYXRsbmdzIiwic2hvdWxkQ29udGludWUiLCJmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQiLCJiZWdpbm5pbmdPZkJvZHkiLCJyZW5kZXJFdmVudEluZGljYXRvciIsInBhdGgiLCJ1bmRlZmluZWQiLCJldmVudF9ib2R5X3BhcnQiLCJldmVudEJvZHlTdGFydCIsIm1hcmtlciIsImV2ZW50X3RhaWxfcGFydCIsImxhdExuZyIsImljb24iLCJkaXZJY29uIiwiaWNvbkFuY2hvciIsImljb25TaXplIiwib3BhY2l0eSIsImFkZFRvIiwiaWQiLCJldmVudEJvZHlFbmQiLCJldmVudFRhaWwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwiZXZlbnRCb2R5IiwiYnJpbmdUb0Zyb250IiwidGFpbERhc2giLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYm9keUxpbmUiLCJ0YWlsTGluZSIsImxheWVyR3JvdXAiLCJjdXJyZW50X3RpbWUiLCJob3ZlcmVkIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOzs7Ozs7QUFSQTtBQVVBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBaURELEtBQWpELENBQVFDLFdBQVI7QUFBQSxNQUFxQkMsV0FBckIsR0FBaURGLEtBQWpELENBQXFCRSxXQUFyQjtBQUFBLE1BQWtDQyxVQUFsQyxHQUFpREgsS0FBakQsQ0FBa0NHLFVBQWxDO0FBRUEsU0FBTztBQUNMRixJQUFBQSxXQUFXLEVBQVhBLFdBREs7QUFFTEMsSUFBQUEsV0FBVyxFQUFYQSxXQUZLO0FBR0xDLElBQUFBLFVBQVUsRUFBVkE7QUFISyxHQUFQO0FBS0Q7O0FBU0QsSUFBTUMsY0FBZ0MsR0FBRyxTQUFuQ0EsY0FBbUMsQ0FBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQVFDLENBQVIsR0FBdUVELEtBQXZFLENBQVFDLENBQVI7QUFBQSxNQUFXQyxHQUFYLEdBQXVFRixLQUF2RSxDQUFXRSxHQUFYO0FBQUEsTUFBZ0JOLFdBQWhCLEdBQXVFSSxLQUF2RSxDQUFnQkosV0FBaEI7QUFBQSxNQUE2QkUsVUFBN0IsR0FBdUVFLEtBQXZFLENBQTZCRixVQUE3QjtBQUFBLE1BQXlDRCxXQUF6QyxHQUF1RUcsS0FBdkUsQ0FBeUNILFdBQXpDO0FBQUEsTUFBc0RNLEtBQXRELEdBQXVFSCxLQUF2RSxDQUFzREcsS0FBdEQ7QUFBQSxNQUE2REMsS0FBN0QsR0FBdUVKLEtBQXZFLENBQTZESSxLQUE3RDtBQUNBLE1BQVFDLGNBQVIsR0FBMkJULFdBQTNCLENB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QUFnQmdDLFVBQWhCLEVBQTJCTyxRQUEzQixFQUFxQ2EsUUFBckM7QUFDRDtBQUNGOztBQUVEL0QsTUFBQUEsUUFBUSxDQUFDLGdDQUFrQkwsQ0FBQyxDQUFDcUUsVUFBRixDQUFhL0QsVUFBYixDQUFsQixDQUFELENBQVI7QUFDRDtBQUNGLEdBbExEOztBQW9MQSx1Q0FDRUosS0FBSyxLQUFLLElBQVYsR0FBaUJOLFdBQVcsQ0FBQzBFLFlBQTdCLEdBQTRDLENBRDlDLEVBRUVwRSxLQUZGLEVBR0VMLFVBSEYsRUFJRUssS0FBSyxDQUFDcUUsT0FKUjtBQU9BLHdCQUFVLFlBQU07QUFDZHZDLElBQUFBLG9CQUFvQjtBQUNyQixHQUZELEVBRUcsQ0FBQzdCLEtBQUQsRUFBUVAsV0FBVyxDQUFDMEUsWUFBcEIsQ0FGSDtBQUlBLHNCQUFPLHlDQUFQO0FBQ0QsQ0FyUkQ7O0FBdVJBLElBQU1FLFNBQVMsR0FBRyx5QkFBUS9FLGVBQVIsQ0FBbEI7O2VBQ2UrRSxTQUFTLENBQUMxRSxjQUFELEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZU9uTGluZSwgYmVsb25nc1NlZ21lbnQgfSBmcm9tICdsZWFmbGV0LWdlb21ldHJ5dXRpbCc7XG5pbXBvcnQgJ2xlYWZsZXQtcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIEw6IGFueTtcbiAgbWFwOiBhbnk7XG4gIHBhdGhzOiBhbnk7XG4gIGV2ZW50OiBJRXZlbnQ7XG59O1xuXG5jb25zdCBFdmVudEluZGljYXRvcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIGdsb2JhbF9kYXRhLCBldmVudCwgcGF0aHMgfSA9IHByb3BzO1xuICBjb25zdCB7IGV2ZW50SW5kaWNhdG9yIH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBsZXQgZXZlbnRQYXJ0czogYW55W10gPSBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGVcblxuICBjb25zdCByZW1vdmVFeGlzdGluZ0luZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnRJbmRpY2F0b3IgIT09IG51bGwpIHtcbiAgICAgIGV2ZW50SW5kaWNhdG9yLmVhY2hMYXllcigobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG1ha2VQYWlycyA9IChhcnJheTogW10pID0+IHtcbiAgICBsZXQgcGFpcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPCBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHBhaXJzLnB1c2goW2FycmF5W2ldLCBhcnJheVtpICsgMV1dKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFpcnM7XG4gIH07XG5cbiAgY29uc3QgY2FsY3VsYXRlQm9keUFuZFRhaWwgPSAoc2VnbWVudDogYW55LCBib2R5U3RhcnQ6IGFueSwgYm9keUVuZDogYW55KSA9PiB7XG4gICAgbGV0IHRhaWxQYXRoOiBhbnlbXSA9IFtdO1xuICAgIGxldCBib2R5UGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgZm91bmRCb2R5U3RhcnQgPSBmYWxzZTtcbiAgICBsZXQgZXZlbnRCb2R5U3RhcnRNYXJrZXIgPSBib2R5U3RhcnQuX2xhdGxuZztcbiAgICBsZXQgZXZlbnRCb2R5RW5kTWFya2VyID0gYm9keUVuZC5fbGF0bG5nO1xuICAgIGxldCBzdWJTZWdtZW50cyA9IG1ha2VQYWlycyhzZWdtZW50Ll9sYXRsbmdzKTtcbiAgICBsZXQgc2hvdWxkQ29udGludWUgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgIWZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIC8vIGlmIGJvZHlTdGFydE1hcmtlciBleGlzdCBvbiBzdWJTZWdtZW50XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJlbG9uZ3NTZWdtZW50KFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIGV2ZW50Qm9keVN0YXJ0TWFya2VyXSk7XG5cbiAgICAgICAgICBmb3VuZEJvZHlTdGFydCA9IHRydWU7XG4gICAgICAgICAgZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWlsUGF0aC5wdXNoKFtzdWJTZWdtZW50c1tpXVswXSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgZm91bmRCb2R5U3RhcnQpIHtcbiAgICAgICAgbGV0IGJlZ2lubmluZ09mQm9keSA9IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudFxuICAgICAgICAgID8gZXZlbnRCb2R5U3RhcnRNYXJrZXJcbiAgICAgICAgICA6IHN1YlNlZ21lbnRzW2ldWzBdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZE1hcmtlcixcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzBdLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMV0sXG4gICAgICAgICAgICAwLjAwMDAwMDEsXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBib2R5UGF0aC5wdXNoKFtiZWdpbm5pbmdPZkJvZHksIGV2ZW50Qm9keUVuZE1hcmtlcl0pO1xuICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBzdWJTZWdtZW50c1tpXVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhaWxQYXRoOiB0YWlsUGF0aCxcbiAgICAgIGJvZHlQYXRoOiBib2R5UGF0aCxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50SW5kaWNhdG9yID0gKCkgPT4ge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudC5wYXRoLmxlbmd0aCA+PSAxKSB7XG4gICAgICByZW1vdmVFeGlzdGluZ0luZGljYXRvcigpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA8PSAxMDAgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA+IDAgJiZcbiAgICAgICAgICBwYXRoc1tpXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBldmVudEJvZHlTdGFydCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgcGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0IC8gMTAwLFxuICAgICAgICAgICAgKS5sYXRMbmcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzAsIDBdLFxuICAgICAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keVN0YXJ0JztcblxuICAgICAgICAgIGxldCBldmVudEJvZHlFbmQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICAoZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgKyBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCkgL1xuICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keUVuZFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keUVuZCc7XG5cbiAgICAgICAgICBsZXQgcGF0aCA9IGNhbGN1bGF0ZUJvZHlBbmRUYWlsKFxuICAgICAgICAgICAgcGF0aHNbaV0sXG4gICAgICAgICAgICBldmVudEJvZHlTdGFydCxcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aC50YWlsUGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC10YWlsJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5ID0gTC5wb2x5bGluZShwYXRoLmJvZHlQYXRoLCB7XG4gICAgICAgICAgICBjb2xvcjogJyNmNTBiNTYnLFxuICAgICAgICAgICAgd2VpZ2h0OiAxMixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LWJvZHknLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5JztcbiAgICAgICAgICBldmVudEJvZHkuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICB2YXIgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGJvZHlMaW5lID0gTC5wb2x5bGluZShldmVudEJvZHkuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuNiknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgYm9keUxpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB2YXIgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGFycm93SGVhZCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDUsXG4gICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBhcnJvd0hlYWRbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goXG4gICAgICAgICAgICBldmVudEJvZHksXG4gICAgICAgICAgICBldmVudFRhaWwsXG4gICAgICAgICAgICB0YWlsRGFzaCxcbiAgICAgICAgICAgIGJvZHlMaW5lLFxuICAgICAgICAgICAgYXJyb3dIZWFkLFxuICAgICAgICAgICAgdGFpbExpbmUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA9PT0gMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRUYWlsLCB0YWlsRGFzaCwgdGFpbExpbmUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoKHNldEV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGV2ZW50ICE9PSBudWxsID8gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDogMCxcbiAgICBldmVudCxcbiAgICBlZGdlc19kYXRhLFxuICAgIGV2ZW50LmhvdmVyZWQsXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJFdmVudEluZGljYXRvcigpO1xuICB9LCBbcGF0aHMsIGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudEluZGljYXRvcik7XG4iXX0=
|
|
229
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldEdlb21ldHJ5dXRpbCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWFjdFJlZHV4IiwiX2FjdGlvbnMiLCJfdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsImVkZ2VzX2RhdGEiLCJFdmVudEluZGljYXRvciIsInByb3BzIiwiTCIsIm1hcCIsImV2ZW50IiwicGF0aHMiLCJldmVudEluZGljYXRvciIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJldmVudFBhcnRzIiwicmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IiLCJlYWNoTGF5ZXIiLCJsYXllciIsInJlbW92ZUxheWVyIiwibWFrZVBhaXJzIiwiYXJyYXkiLCJwYWlycyIsImkiLCJsZW5ndGgiLCJwdXNoIiwiY2FsY3VsYXRlQm9keUFuZFRhaWwiLCJzZWdtZW50IiwiYm9keVN0YXJ0IiwiYm9keUVuZCIsInRhaWxQYXRoIiwiYm9keVBhdGgiLCJmb3VuZEJvZHlTdGFydCIsImV2ZW50Qm9keVN0YXJ0TWFya2VyIiwiX2xhdGxuZyIsImV2ZW50Qm9keUVuZE1hcmtlciIsInN1YlNlZ21lbnRzIiwiX2xhdGxuZ3MiLCJzaG91bGRDb250aW51ZSIsImZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCIsImJlbG9uZ3NTZWdtZW50IiwiYmVnaW5uaW5nT2ZCb2R5IiwicmVuZGVyRXZlbnRJbmRpY2F0b3IiLCJwYXRoIiwidW5kZWZpbmVkIiwiZXZlbnRfYm9keV9wYXJ0IiwiZXZlbnRCb2R5U3RhcnQiLCJtYXJrZXIiLCJpbnRlcnBvbGF0ZU9uTGluZSIsImV2ZW50X3RhaWxfcGFydCIsImxhdExuZyIsImljb24iLCJkaXZJY29uIiwiaWNvbkFuY2hvciIsImljb25TaXplIiwib3BhY2l0eSIsImFkZFRvIiwiaWQiLCJldmVudEJvZHlFbmQiLCJldmVudFRhaWwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwiZXZlbnRCb2R5IiwiYnJpbmdUb0Zyb250IiwidGFpbERhc2giLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYm9keUxpbmUiLCJ0YWlsTGluZSIsInNldEV2ZW50SW5kaWNhdG9yIiwibGF5ZXJHcm91cCIsInVzZVVwZGF0ZUV2ZW50Qm9keVRhaWwiLCJjdXJyZW50X3RpbWUiLCJob3ZlcmVkIiwidXNlRWZmZWN0IiwiY3JlYXRlRWxlbWVudCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvZXZlbnRzL0V2ZW50SW5kaWNhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZU9uTGluZSwgYmVsb25nc1NlZ21lbnQgfSBmcm9tICdsZWFmbGV0LWdlb21ldHJ5dXRpbCc7XG5pbXBvcnQgJ2xlYWZsZXQtcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIEw6IGFueTtcbiAgbWFwOiBhbnk7XG4gIHBhdGhzOiBhbnk7XG4gIGV2ZW50OiBJRXZlbnQ7XG59O1xuXG5jb25zdCBFdmVudEluZGljYXRvcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIGdsb2JhbF9kYXRhLCBldmVudCwgcGF0aHMgfSA9IHByb3BzO1xuICBjb25zdCB7IGV2ZW50SW5kaWNhdG9yIH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBsZXQgZXZlbnRQYXJ0czogYW55W10gPSBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGVcblxuICBjb25zdCByZW1vdmVFeGlzdGluZ0luZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnRJbmRpY2F0b3IgIT09IG51bGwpIHtcbiAgICAgIGV2ZW50SW5kaWNhdG9yLmVhY2hMYXllcigobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG1ha2VQYWlycyA9IChhcnJheTogW10pID0+IHtcbiAgICBsZXQgcGFpcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPCBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHBhaXJzLnB1c2goW2FycmF5W2ldLCBhcnJheVtpICsgMV1dKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFpcnM7XG4gIH07XG5cbiAgY29uc3QgY2FsY3VsYXRlQm9keUFuZFRhaWwgPSAoc2VnbWVudDogYW55LCBib2R5U3RhcnQ6IGFueSwgYm9keUVuZDogYW55KSA9PiB7XG4gICAgbGV0IHRhaWxQYXRoOiBhbnlbXSA9IFtdO1xuICAgIGxldCBib2R5UGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgZm91bmRCb2R5U3RhcnQgPSBmYWxzZTtcbiAgICBsZXQgZXZlbnRCb2R5U3RhcnRNYXJrZXIgPSBib2R5U3RhcnQuX2xhdGxuZztcbiAgICBsZXQgZXZlbnRCb2R5RW5kTWFya2VyID0gYm9keUVuZC5fbGF0bG5nO1xuICAgIGxldCBzdWJTZWdtZW50cyA9IG1ha2VQYWlycyhzZWdtZW50Ll9sYXRsbmdzKTtcbiAgICBsZXQgc2hvdWxkQ29udGludWUgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgIWZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIC8vIGlmIGJvZHlTdGFydE1hcmtlciBleGlzdCBvbiBzdWJTZWdtZW50XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJlbG9uZ3NTZWdtZW50KFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIGV2ZW50Qm9keVN0YXJ0TWFya2VyXSk7XG5cbiAgICAgICAgICBmb3VuZEJvZHlTdGFydCA9IHRydWU7XG4gICAgICAgICAgZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWlsUGF0aC5wdXNoKFtzdWJTZWdtZW50c1tpXVswXSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgZm91bmRCb2R5U3RhcnQpIHtcbiAgICAgICAgbGV0IGJlZ2lubmluZ09mQm9keSA9IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudFxuICAgICAgICAgID8gZXZlbnRCb2R5U3RhcnRNYXJrZXJcbiAgICAgICAgICA6IHN1YlNlZ21lbnRzW2ldWzBdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZE1hcmtlcixcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzBdLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMV0sXG4gICAgICAgICAgICAwLjAwMDAwMDEsXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBib2R5UGF0aC5wdXNoKFtiZWdpbm5pbmdPZkJvZHksIGV2ZW50Qm9keUVuZE1hcmtlcl0pO1xuICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBzdWJTZWdtZW50c1tpXVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhaWxQYXRoOiB0YWlsUGF0aCxcbiAgICAgIGJvZHlQYXRoOiBib2R5UGF0aCxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50SW5kaWNhdG9yID0gKCkgPT4ge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudC5wYXRoLmxlbmd0aCA+PSAxKSB7XG4gICAgICByZW1vdmVFeGlzdGluZ0luZGljYXRvcigpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA8PSAxMDAgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA+IDAgJiZcbiAgICAgICAgICBwYXRoc1tpXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBldmVudEJvZHlTdGFydCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgcGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0IC8gMTAwLFxuICAgICAgICAgICAgKS5sYXRMbmcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzAsIDBdLFxuICAgICAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keVN0YXJ0JztcblxuICAgICAgICAgIGxldCBldmVudEJvZHlFbmQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICAoZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgKyBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCkgL1xuICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keUVuZFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keUVuZCc7XG5cbiAgICAgICAgICBsZXQgcGF0aCA9IGNhbGN1bGF0ZUJvZHlBbmRUYWlsKFxuICAgICAgICAgICAgcGF0aHNbaV0sXG4gICAgICAgICAgICBldmVudEJvZHlTdGFydCxcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aC50YWlsUGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC10YWlsJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5ID0gTC5wb2x5bGluZShwYXRoLmJvZHlQYXRoLCB7XG4gICAgICAgICAgICBjb2xvcjogJyNmNTBiNTYnLFxuICAgICAgICAgICAgd2VpZ2h0OiAxMixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LWJvZHknLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5JztcbiAgICAgICAgICBldmVudEJvZHkuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICB2YXIgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGJvZHlMaW5lID0gTC5wb2x5bGluZShldmVudEJvZHkuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuNiknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgYm9keUxpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB2YXIgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGFycm93SGVhZCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDUsXG4gICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBhcnJvd0hlYWRbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goXG4gICAgICAgICAgICBldmVudEJvZHksXG4gICAgICAgICAgICBldmVudFRhaWwsXG4gICAgICAgICAgICB0YWlsRGFzaCxcbiAgICAgICAgICAgIGJvZHlMaW5lLFxuICAgICAgICAgICAgYXJyb3dIZWFkLFxuICAgICAgICAgICAgdGFpbExpbmUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA9PT0gMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRUYWlsLCB0YWlsRGFzaCwgdGFpbExpbmUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoKHNldEV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGV2ZW50ICE9PSBudWxsID8gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDogMCxcbiAgICBldmVudCxcbiAgICBlZGdlc19kYXRhLFxuICAgIGV2ZW50LmhvdmVyZWQsXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJFdmVudEluZGljYXRvcigpO1xuICB9LCBbcGF0aHMsIGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudEluZGljYXRvcik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsb0JBQUEsR0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBR0EsSUFBQUssdUJBQUEsR0FBQUMsc0JBQUEsQ0FBQU4sT0FBQTtBQUFzRSxTQUFBTyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQU4sd0JBQUFVLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxN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
|
|
@@ -1,35 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = void 0;
|
|
11
|
-
|
|
12
9
|
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
-
|
|
16
11
|
var _reactRedux = require("react-redux");
|
|
17
|
-
|
|
18
12
|
var _actions = require("store/events/actions");
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
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; }
|
|
23
|
-
|
|
24
15
|
// @ts-ignore
|
|
16
|
+
|
|
25
17
|
var EventPath = function EventPath(_ref) {
|
|
26
18
|
var event = _ref.event,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
global_data = _ref.global_data,
|
|
20
|
+
_ref$eventPaths = _ref.eventPaths,
|
|
21
|
+
eventPaths = _ref$eventPaths === void 0 ? [] : _ref$eventPaths;
|
|
30
22
|
var map = global_data.map;
|
|
31
23
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
32
|
-
|
|
33
24
|
var drawPolyline = function drawPolyline(event, layerLatlngs, eventPathsAsMapObjects) {
|
|
34
25
|
var eventPath = _leaflet.default.polyline(layerLatlngs, {
|
|
35
26
|
color: 'rgba(0,0,0,0)',
|
|
@@ -37,18 +28,15 @@ var EventPath = function EventPath(_ref) {
|
|
|
37
28
|
className: 'event-path',
|
|
38
29
|
stroke: true
|
|
39
30
|
}).addTo(map);
|
|
40
|
-
|
|
41
31
|
eventPathsAsMapObjects.push(eventPath);
|
|
42
32
|
eventPath['kando_object_id'] = event.id;
|
|
43
33
|
eventPath['kando_object'] = 'EventPath';
|
|
44
|
-
|
|
45
34
|
if (event.hovered) {
|
|
46
35
|
dispatch((0, _actions.setHoveredEventPaths)(eventPathsAsMapObjects));
|
|
47
36
|
} else {
|
|
48
37
|
dispatch((0, _actions.setFocusedEventPaths)(eventPathsAsMapObjects));
|
|
49
38
|
}
|
|
50
39
|
};
|
|
51
|
-
|
|
52
40
|
var renderEventPath = function renderEventPath(event, isHover) {
|
|
53
41
|
if (map !== undefined) {
|
|
54
42
|
var eventPathsAsMapObjects = [];
|
|
@@ -61,13 +49,11 @@ var EventPath = function EventPath(_ref) {
|
|
|
61
49
|
}
|
|
62
50
|
}
|
|
63
51
|
});
|
|
64
|
-
|
|
65
52
|
if (!isHover && eventPaths.length === 0 && eventPathsAsMapObjects.length > 0) {
|
|
66
53
|
map.fitBounds(_leaflet.default.featureGroup(eventPathsAsMapObjects).getBounds().pad(0.1));
|
|
67
54
|
}
|
|
68
55
|
}
|
|
69
56
|
};
|
|
70
|
-
|
|
71
57
|
(0, _react.useEffect)(function () {
|
|
72
58
|
if (eventPaths) {
|
|
73
59
|
eventPaths.forEach(function (path) {
|
|
@@ -78,7 +64,6 @@ var EventPath = function EventPath(_ref) {
|
|
|
78
64
|
}, [event]);
|
|
79
65
|
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
80
66
|
};
|
|
81
|
-
|
|
82
67
|
var _default = EventPath;
|
|
83
68
|
exports.default = _default;
|
|
84
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJFdmVudFBhdGgiLCJfcmVmIiwiZXZlbnQiLCJnbG9iYWxfZGF0YSIsIl9yZWYkZXZlbnRQYXRocyIsImV2ZW50UGF0aHMiLCJtYXAiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiZXZlbnRQYXRoc0FzTWFwT2JqZWN0cyIsImV2ZW50UGF0aCIsIkwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwic3Ryb2tlIiwiYWRkVG8iLCJwdXNoIiwiaWQiLCJob3ZlcmVkIiwic2V0SG92ZXJlZEV2ZW50UGF0aHMiLCJzZXRGb2N1c2VkRXZlbnRQYXRocyIsInJlbmRlckV2ZW50UGF0aCIsImlzSG92ZXIiLCJ1bmRlZmluZWQiLCJsYXllcnMiLCJfbGF5ZXJzIiwicGF0aCIsImZvckVhY2giLCJwcm9wZXJ0eSIsImthbmRvX29iamVjdF9pZCIsImVkZ2VfaWQiLCJrYW5kb19vYmplY3QiLCJnZXRMYXRMbmdzIiwibGVuZ3RoIiwiZml0Qm91bmRzIiwiZmVhdHVyZUdyb3VwIiwiZ2V0Qm91bmRzIiwicGFkIiwidXNlRWZmZWN0IiwicmVtb3ZlTGF5ZXIiLCJjcmVhdGVFbGVtZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2V2ZW50cy9FdmVudFBhdGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgc2V0Rm9jdXNlZEV2ZW50UGF0aHMsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBldmVudFBhdGhzPzogYW55W107XG59O1xuXG5jb25zdCBFdmVudFBhdGg6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZ2xvYmFsX2RhdGEsXG4gIGV2ZW50UGF0aHMgPSBbXSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgZHJhd1BvbHlsaW5lID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgbGF5ZXJMYXRsbmdzOiBhbnksXG4gICAgZXZlbnRQYXRoc0FzTWFwT2JqZWN0czogYW55LFxuICApID0+IHtcbiAgICBsZXQgZXZlbnRQYXRoID0gTC5wb2x5bGluZShsYXllckxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiYSgwLDAsMCwwKScsXG4gICAgICB3ZWlnaHQ6IDEwLFxuICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtcGF0aCcsXG4gICAgICBzdHJva2U6IHRydWUsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIGV2ZW50UGF0aHNBc01hcE9iamVjdHMucHVzaChldmVudFBhdGgpO1xuICAgIGV2ZW50UGF0aFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICBldmVudFBhdGhbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50UGF0aCc7XG5cbiAgICBpZiAoZXZlbnQuaG92ZXJlZCkge1xuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50UGF0aHMoZXZlbnRQYXRoc0FzTWFwT2JqZWN0cykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChzZXRGb2N1c2VkRXZlbnRQYXRocyhldmVudFBhdGhzQXNNYXBPYmplY3RzKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aCA9IChldmVudDogSUV2ZW50LCBpc0hvdmVyOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKG1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgZXZlbnRQYXRoc0FzTWFwT2JqZWN0czogYW55W10gPSBbXTtcbiAgICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcblxuICAgICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdF9pZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdF9pZCA9PT0gcGF0aC5lZGdlX2lkICYmXG4gICAgICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0VkZ2UnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgbGF5ZXJMYXRsbmdzID0gbGF5ZXJzW3Byb3BlcnR5XS5nZXRMYXRMbmdzKCk7XG5cbiAgICAgICAgICAgIGRyYXdQb2x5bGluZShldmVudCwgbGF5ZXJMYXRsbmdzLCBldmVudFBhdGhzQXNNYXBPYmplY3RzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoXG4gICAgICAgICFpc0hvdmVyICYmXG4gICAgICAgIGV2ZW50UGF0aHMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGV2ZW50UGF0aHNBc01hcE9iamVjdHMubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIG1hcC5maXRCb3VuZHMoXG4gICAgICAgICAgTC5mZWF0dXJlR3JvdXAoZXZlbnRQYXRoc0FzTWFwT2JqZWN0cykuZ2V0Qm91bmRzKCkucGFkKDAuMSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGV2ZW50UGF0aHMpIHtcbiAgICAgIGV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgcmVuZGVyRXZlbnRQYXRoKGV2ZW50LCBldmVudC5ob3ZlcmVkKTtcbiAgICB9XG4gIH0sIFtldmVudF0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50UGF0aDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFHa0Ms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
|