@kando-env/kando-ui 1.2.382 → 1.2.383
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Router.js +36 -73
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +25 -35
- package/lib/Widgets/EventsRow/EventsRow.js +27 -39
- package/lib/Widgets/Map/GraphUtils.js +3 -3
- package/lib/Widgets/Map/Map.js +86 -122
- package/lib/Widgets/Map/MapUtils.js +81 -95
- package/lib/Widgets/Map/areas/AreaPolygon.js +53 -77
- package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
- package/lib/Widgets/Map/areas/AreaUtils.js +47 -46
- package/lib/Widgets/Map/areas/Patterns.js +4 -4
- package/lib/Widgets/Map/edges/Edge.js +33 -37
- package/lib/Widgets/Map/edges/Edges.js +21 -26
- package/lib/Widgets/Map/edges/arrows/Arrows.js +23 -44
- package/lib/Widgets/Map/events/Event.js +18 -21
- package/lib/Widgets/Map/events/EventIndicator.js +65 -60
- package/lib/Widgets/Map/events/EventPath.js +49 -24
- package/lib/Widgets/Map/events/EventUtils.js +60 -80
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -18
- package/lib/Widgets/Map/events/PointOfEvent.js +29 -34
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +30 -37
- package/lib/Widgets/Map/events/Snail.js +21 -22
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +93 -86
- package/lib/Widgets/Map/map/FloatingGraph.js +22 -18
- package/lib/Widgets/Map/map/GraphDateButton.js +25 -17
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +13 -12
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -15
- package/lib/Widgets/Map/points/PointIcon.js +22 -15
- package/lib/Widgets/Map/points/PointMarker.js +71 -87
- package/lib/Widgets/Map/points/PointMarkers.js +45 -66
- package/lib/Widgets/Map/points/PointUtils.js +145 -83
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +30 -47
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -10
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -12
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/Areas.js +31 -60
- package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
- package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +11 -8
- package/lib/Widgets/MostPolluting/Factories/Factories.js +39 -70
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -18
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +12 -10
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
- package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
- package/lib/Widgets/MostPolluting/MostPolluting.js +25 -35
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +18 -22
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +6 -4
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -4
- package/lib/Widgets/MostPolluting/assets/index.js +10 -10
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +19 -13
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +35 -30
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +45 -35
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +54 -50
- package/lib/Widgets/MostPolluting/styles.js +3 -3
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +7 -5
- package/lib/Widgets/PotentialImpactSummary/Icon.js +8 -6
- package/lib/Widgets/PotentialImpactSummary/index.js +19 -27
- package/lib/Widgets/PotentialImpactSummary/index.test.js +47 -52
- package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +9 -7
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +22 -17
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +35 -32
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -24
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -37
- package/lib/Widgets/QualitySummary/QualitySummary.js +9 -13
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
- package/lib/Widgets/QualitySummary/styles.js +23 -15
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -13
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +27 -26
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -37
- package/lib/Widgets/UtilityInformation/styles.js +34 -25
- package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
- package/lib/assets/icons/TopNavbar/index.js +6 -6
- package/lib/assets/icons/TrendSvg.js +6 -6
- package/lib/assets/icons/index.js +15 -15
- package/lib/assets/icons/kandoStepper/index.js +5 -5
- package/lib/assets/icons/siteTypes/index.js +1 -1
- package/lib/components/ApplyButton/ApplyButton.js +9 -9
- package/lib/components/Backdrop/Backdrop.js +6 -4
- package/lib/components/ContentLoader/ContentLoader.js +11 -9
- package/lib/components/ContentLoader/index.js +1 -1
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +13 -12
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
- package/lib/components/CustomInputs/DoubleTabs/styles.js +20 -12
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +13 -20
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
- package/lib/components/CustomInputs/Search/Search.js +42 -63
- package/lib/components/CustomInputs/Select/Select.js +45 -58
- package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
- package/lib/components/DamageType/DamageType.js +35 -57
- package/lib/components/DataLoaderError/DataLoaderError.js +8 -6
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +9 -10
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +70 -71
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +27 -37
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +10 -12
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
- package/lib/components/DischargeHeatmap/popupText.js +10 -10
- package/lib/components/DischargeHeatmap/titles.js +3 -3
- package/lib/components/ErrorBoundary.js +27 -41
- package/lib/components/Events/Events.js +41 -58
- package/lib/components/Graph/Graph.js +77 -96
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +25 -33
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
- package/lib/components/Header/DoubleTabs/styles.js +4 -4
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.stories.js +3 -5
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +22 -34
- package/lib/components/Header/InfoBar/InfoBar.js +74 -103
- package/lib/components/Header/InfoBar/Search/Control.js +9 -9
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -5
- package/lib/components/Header/InfoBar/Search/Search.js +16 -21
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -33
- package/lib/components/Header/InfoBar/Search/searchStyle.js +41 -49
- package/lib/components/Header/InfoBar/TimeFilter.js +11 -14
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +64 -89
- package/lib/components/Header/Slideshow/Slideshow.js +68 -90
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +6 -4
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +21 -23
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +37 -43
- package/lib/components/Header/Toolbar/Toolbar.js +55 -74
- package/lib/components/InfoBar/InfoBar.js +10 -23
- package/lib/components/InfoBar/InfoBar.stories.js +3 -5
- package/lib/components/KandoModal/KandoModal.js +27 -41
- package/lib/components/Link.js +8 -7
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -8
- package/lib/components/Links/StyledLink/StyledLink.js +12 -12
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +11 -10
- package/lib/components/LiveEvents/CarouselSlide.js +9 -7
- package/lib/components/LiveEvents/LiveEvents.js +5 -3
- package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -29
- package/lib/components/Map/Map.js +20 -23
- package/lib/components/Modal/Modal.js +9 -9
- package/lib/components/NarrowHeader.js +17 -31
- package/lib/components/PointInfo/PointInfo.js +19 -17
- package/lib/components/PopupModal/PopupModal.js +12 -16
- package/lib/components/PopupModal/PopupModal.stories.js +15 -19
- package/lib/components/Sector/Sector.js +8 -6
- package/lib/components/Sector/Sector.test.js +19 -20
- package/lib/components/Sector/sectorIcons.js +2 -2
- package/lib/components/SevereEvent/Eta/Eta.js +49 -52
- package/lib/components/SevereEvent/Eta/styles.js +10 -6
- package/lib/components/SevereEvent/SevereEvent.js +30 -37
- package/lib/components/Spinner/Spinner.js +8 -8
- package/lib/components/Spinner/Spinner.stories.js +4 -6
- package/lib/components/Spinner/styles.js +22 -14
- package/lib/components/Tabs/Tabs.js +21 -29
- package/lib/components/Tabs/Tabs.stories.js +4 -6
- package/lib/components/Tabs/assets/index.js +5 -5
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -15
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +40 -51
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +20 -25
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
- package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -25
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -32
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
- package/lib/components/TimeRangeSelector/constants.js +3 -3
- package/lib/components/Toggle/Toggle.js +12 -17
- package/lib/components/TrendGraph/TrendGraph.js +23 -39
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
- package/lib/development-environment/index.js +8 -12
- package/lib/development-environment/mock/browser.js +2 -4
- package/lib/development-environment/mock/get.js +8 -10
- package/lib/development-environment/mock/handlers.js +2 -2
- package/lib/development-environment/mock/mockBus.js +4 -4
- package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
- package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
- package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
- package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
- package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
- package/lib/development-environment/togly/ToglyDashboard.js +13 -22
- package/lib/development-environment/togly/ToglyItem.js +36 -31
- package/lib/development-environment/togly/init.js +2 -2
- package/lib/development-environment/togly/macro.js +14 -10
- package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
- package/lib/development-environment/togly/useLocalStorage.js +13 -18
- package/lib/hooks/useApi.js +19 -55
- package/lib/hooks/useApiWithDashboardQuery.js +30 -49
- package/lib/hooks/useClickOutside.js +3 -3
- package/lib/hooks/useInitializeHeaders.js +5 -5
- package/lib/hooks/useKandoFetch.js +16 -29
- package/lib/hooks/useMap.js +22 -34
- package/lib/hooks/useNavContext.js +22 -26
- package/lib/hooks/useRemoveExistingLayers.js +6 -6
- package/lib/hooks/useUpdateEventBodyTail.js +13 -17
- package/lib/hooks/useUserTimeZone.js +33 -30
- package/lib/hooks/useUserTimeZone.test.js +19 -22
- package/lib/hooks/useWindowSize.js +7 -14
- package/lib/index.js +11 -12
- package/lib/macros/getVersion.js +3 -3
- package/lib/pages/AreaPage/AreaPage.js +34 -67
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -17
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +30 -31
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +17 -25
- package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
- package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
- package/lib/pages/AssessmentPage/AssessmentPage.js +40 -46
- package/lib/pages/CannyWidget/Feedback.js +13 -13
- package/lib/pages/CovidPage/CovidPage.js +8 -13
- package/lib/pages/CovidPage/components/Body.js +25 -27
- package/lib/pages/CovidPage/components/Map.js +29 -39
- package/lib/pages/CovidPage/components/Sidebar.js +16 -15
- package/lib/pages/CovidPage/components/Summary.js +20 -27
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
- package/lib/pages/CovidPage/components/areas/Area.js +29 -40
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +55 -46
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
- package/lib/pages/CovidPage/components/areas/AreasList.js +34 -46
- package/lib/pages/CovidPage/components/areas/Sort.js +11 -14
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
- package/lib/pages/DashboardMap/AreaCard.js +28 -28
- package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
- package/lib/pages/DashboardMap/Capacity.js +31 -80
- package/lib/pages/DashboardMap/FactoryCard.js +31 -26
- package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
- package/lib/pages/DashboardMap/List.js +74 -105
- 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 +48 -60
- package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
- package/lib/pages/DashboardMap/Widget.js +54 -71
- package/lib/pages/DashboardMap/utils.js +48 -65
- package/lib/pages/EventsPage/Body/Body.js +20 -15
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -19
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -35
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +8 -6
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -7
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +21 -30
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +53 -64
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +19 -31
- package/lib/pages/EventsPage/EventsPage.js +7 -10
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -38
- package/lib/pages/EventsPage/events/MoreInfo.js +17 -16
- package/lib/pages/EventsPage/events/Sidebar.js +21 -16
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
- package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +17 -20
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +30 -35
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +40 -37
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +44 -43
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
- package/lib/pages/EventsPage/events/event_info/EventSection.js +17 -19
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -47
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -33
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +29 -36
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +4 -6
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +10 -10
- package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +7 -9
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +22 -21
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +12 -19
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +5 -3
- package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +11 -9
- package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -26
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +12 -8
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +6 -4
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +12 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +10 -8
- package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +10 -12
- package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +5 -3
- package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +7 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +7 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +6 -4
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +11 -9
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
- package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
- package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +7 -5
- package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +17 -15
- package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
- package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +10 -8
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +16 -11
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +9 -8
- package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
- package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +25 -38
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +29 -36
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +11 -9
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +15 -17
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -30
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +23 -26
- package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
- package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -19
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
- package/lib/pages/EventsPage/events/events_list/EventsList.js +124 -145
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +40 -55
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +79 -115
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +60 -77
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +38 -41
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +29 -36
- package/lib/pages/EventsPage/events/events_list/Sort.js +13 -16
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +13 -20
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +6 -4
- package/lib/pages/ImportFileWizard/ImportFile.js +20 -22
- package/lib/pages/ImportFileWizard/ResponseBody.js +24 -33
- package/lib/pages/ImportFileWizard/ValidationForm.js +23 -22
- package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
- package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
- package/lib/pages/ImportGisPage/ImportGisContainer.js +21 -24
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +21 -23
- package/lib/pages/ImportGisPage/importGisUtils.js +13 -21
- package/lib/pages/ImportGisProcess/index.js +12 -15
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -12
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +17 -19
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +56 -65
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +6 -8
- package/lib/pages/NotificationsPage/Notification/Notification.js +16 -12
- package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
- package/lib/pages/NotificationsPage/Notifications.stories.js +4 -6
- package/lib/pages/NotificationsPage/NotificationsPage.js +18 -36
- package/lib/pages/NotificationsPage/assets/index.js +9 -9
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +71 -97
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +94 -63
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +14 -16
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +18 -16
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +17 -21
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +17 -21
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +18 -22
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +83 -69
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +18 -22
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -74
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +97 -95
- package/lib/pages/NotificationsPageV2/notificationUtils.js +54 -48
- package/lib/pages/OldSitePage/OldSitePage.js +57 -132
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -6
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -20
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -18
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -63
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -53
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -11
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +32 -28
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +27 -29
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +18 -12
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +28 -44
- package/lib/pages/ProfilePage/ProfilePage.js +121 -214
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +19 -16
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +28 -30
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -117
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +17 -20
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +12 -10
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +39 -41
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -26
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -15
- package/lib/pages/SamplingsPage/NavigationDropdown.js +45 -32
- package/lib/pages/SamplingsPage/NewSamplingAction.js +76 -100
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +129 -101
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +21 -22
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +34 -22
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -59
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -7
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +110 -194
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +49 -55
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +47 -43
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +49 -45
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +19 -20
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +10 -6
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +58 -54
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
- package/lib/pages/SamplingsPage/SamplingsPage.js +27 -33
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +50 -58
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +68 -76
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -4
- package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +14 -13
- package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +10 -13
- package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +14 -10
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -8
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +26 -23
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +14 -17
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +36 -32
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -24
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -70
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -26
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
- package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
- package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +29 -37
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -11
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +60 -59
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +30 -39
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +18 -12
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -30
- package/lib/pages/SitePage/SitePage.js +42 -81
- package/lib/pages/UploadLabResult/index.js +13 -13
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +26 -35
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +6 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +9 -8
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -48
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +13 -12
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -12
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +21 -29
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +26 -30
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +16 -17
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +27 -31
- package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
- package/lib/pages/WbeDashboard/GraphWrapper.js +30 -36
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +17 -19
- package/lib/pages/WbeDashboard/SearchInput.js +15 -20
- package/lib/pages/WbeDashboard/SummaryGraph.js +50 -76
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +19 -17
- package/lib/pages/WbeDashboard/Tabs.js +11 -11
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +151 -213
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +40 -48
- package/lib/pages/WwtpPage/DashboardCard.js +26 -23
- package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +26 -22
- package/lib/pages/WwtpPage/InletsCard/InletsCard.js +19 -18
- package/lib/pages/WwtpPage/Map.js +5 -3
- package/lib/pages/WwtpPage/OrganicCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -6
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +9 -8
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +18 -14
- package/lib/pages/WwtpPage/PredictionCard.js +2 -2
- package/lib/pages/WwtpPage/TrendCard.js +18 -19
- package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
- package/lib/pages/WwtpPage/WwtpPage.js +8 -8
- package/lib/pages/WwtpPage/WwtpPageContainer.js +21 -16
- package/lib/providers/Slideshow/SlideshowContext.js +11 -9
- package/lib/providers/Slideshow/SlideshowProvider.js +22 -38
- package/lib/providers/Slideshow/SlideshowRunner.js +17 -19
- package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -4
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -11
- package/lib/providers/UrlHistory/index.js +2 -2
- package/lib/providers/UrlHistory/useLastVisited.js +5 -5
- package/lib/store/ImportGis/actionTypes.js +1 -1
- package/lib/store/ImportGis/actionsCreator.js +7 -5
- package/lib/store/ImportGis/reducer.js +40 -29
- package/lib/store/WBE/actionTypes.js +2 -2
- package/lib/store/WBE/reducer.js +13 -9
- package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -14
- package/lib/store/areas/actionTypes.js +4 -4
- package/lib/store/areas/actions.js +7 -13
- package/lib/store/areas/reducer.js +8 -6
- package/lib/store/context/actionTypes.js +3 -3
- package/lib/store/context/actions.js +3 -3
- package/lib/store/context/contextMiddlewares.js +14 -16
- package/lib/store/context/reducer.js +13 -9
- package/lib/store/dashboard/dashboardSlice.js +18 -10
- package/lib/store/edges/actionTypes.js +5 -5
- package/lib/store/edges/actions.js +4 -8
- package/lib/store/edges/reducer.js +13 -17
- package/lib/store/events/actionTypes.js +17 -17
- package/lib/store/events/actions.js +3 -7
- package/lib/store/events/models/IEvent.js +1 -1
- package/lib/store/events/reducer.js +42 -49
- package/lib/store/global/actionTypes.js +11 -11
- package/lib/store/global/actions.js +8 -6
- package/lib/store/global/reducer.js +11 -10
- package/lib/store/permissions/permissionsSlice.js +12 -8
- package/lib/store/points/actionTypes.js +3 -3
- package/lib/store/points/actions.js +4 -8
- package/lib/store/points/reducer.js +7 -5
- package/lib/store/rootActionTypes.js +2 -2
- package/lib/store/rootReducer.js +17 -12
- package/lib/store/rootStore.js +5 -5
- package/lib/store/samplings/actionTypes.js +1 -1
- package/lib/store/samplings/reducer.js +16 -14
- package/lib/styles/StylesLayout.js +5 -3
- package/lib/styles/theme/theme.js +26 -27
- package/lib/test/mocks/browser.js +2 -4
- package/lib/test/test-utils.js +17 -15
- package/lib/ui-kit/Button/Button.js +128 -80
- package/lib/ui-kit/Button/Button.test.js +24 -29
- package/lib/ui-kit/Checkbox/Checkbox.js +30 -20
- package/lib/ui-kit/ContentCard/ContentCard.js +15 -18
- package/lib/ui-kit/Dashboard/Dashboard.js +25 -22
- package/lib/ui-kit/DropDown/DropDown.js +23 -24
- package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
- package/lib/ui-kit/DropDown/DropDownItem.js +24 -21
- package/lib/ui-kit/DropDown/DropdownToggle.js +12 -8
- package/lib/ui-kit/EmptyState/EmptyState.js +6 -4
- package/lib/ui-kit/IconAction/IconAction.js +7 -5
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +48 -64
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +69 -52
- package/lib/ui-kit/InletsPie/InletsPie.js +15 -13
- package/lib/ui-kit/InletsPie/options.js +6 -6
- package/lib/ui-kit/KandoList/KandoList.js +14 -12
- package/lib/ui-kit/KandoTable/KandoTable.js +48 -40
- package/lib/ui-kit/KandoTable/KandoTable.test.js +16 -22
- package/lib/ui-kit/Layout/Layout.js +6 -4
- package/lib/ui-kit/MobileInput/MobileInput.js +60 -50
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -6
- package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
- package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +27 -20
- package/lib/ui-kit/OrganicEvents/TextInfo.js +15 -10
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -8
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +14 -17
- package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
- package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
- package/lib/ui-kit/ScoreGauge/constant.js +3 -3
- package/lib/ui-kit/TimeLineChart/TrendChart.js +54 -42
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +8 -7
- package/lib/ui-kit/Tooltip/Tooltip.js +14 -8
- package/lib/ui-kit/index.js +8 -8
- package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
- package/lib/ui-kit/siteName/SiteName.js +11 -8
- package/lib/utilities/ActionUtility.js +7 -7
- package/lib/utilities/Alert.js +21 -17
- package/lib/utilities/Analytics.js +11 -11
- package/lib/utilities/Array.js +4 -5
- package/lib/utilities/Enum.js +15 -51
- package/lib/utilities/ErrorBoundary.js +27 -41
- package/lib/utilities/File.js +40 -69
- package/lib/utilities/GetDir.js +8 -7
- package/lib/utilities/KandoDate.js +7 -15
- package/lib/utilities/KandoModal.js +16 -26
- package/lib/utilities/LocalStorage.js +8 -10
- package/lib/utilities/ThousandsToK.js +3 -3
- package/lib/utilities/TimeFormat.js +21 -20
- package/lib/utilities/Truncate.js +17 -25
- package/lib/utilities/edgesMath.js +14 -15
- package/lib/utilities/i18n.js +3 -3
- package/lib/utilities/kql.js +12 -14
- package/lib/utilities/map/icons.js +3 -3
- package/lib/utilities/polylinedecorator.js +87 -112
- package/lib/utilities/scoreToData.js +17 -17
- package/lib/utilities/scoreToData.test.js +5 -5
- package/lib/utilities/time.js +8 -8
- package/lib/utilities/uploadToS3.js +11 -11
- package/lib/utilities/urls.js +61 -59
- package/package.json +1 -1
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
8
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
11
9
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
12
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -22,90 +20,73 @@ var _actions = require("store/global/actions");
|
|
|
22
20
|
var _ErrorBoundary = _interopRequireDefault(require("utilities/ErrorBoundary"));
|
|
23
21
|
var _i18n = _interopRequireDefault(require("utilities/i18n"));
|
|
24
22
|
require("./NavbarStyle.scss");
|
|
25
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
|
26
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
};
|
|
30
|
-
var defaultProps = {
|
|
23
|
+
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); }
|
|
24
|
+
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; }
|
|
25
|
+
const updatePageTitle = title => document.title = `Kando - ${title}`;
|
|
26
|
+
const defaultProps = {
|
|
31
27
|
selectedLabel: '',
|
|
32
28
|
hasSearch: false
|
|
33
29
|
};
|
|
34
30
|
function replaceURL(key, value) {
|
|
35
|
-
|
|
31
|
+
let params = new URLSearchParams(window.location.search);
|
|
36
32
|
params.set(key, value);
|
|
37
33
|
return window.location.protocol + '//' + window.location.host + window.location.pathname + '?' + params.toString();
|
|
38
34
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var _useState5 = (0, _react.useState)(waterAuthorityId),
|
|
55
|
-
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
56
|
-
waId = _useState6[0],
|
|
57
|
-
setWaId = _useState6[1];
|
|
58
|
-
var _useState7 = (0, _react.useState)({}),
|
|
59
|
-
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
60
|
-
menu = _useState8[0],
|
|
61
|
-
setMenu = _useState8[1];
|
|
62
|
-
var dispatch = (0, _reactRedux.useDispatch)();
|
|
63
|
-
var useQuery = function useQuery() {
|
|
35
|
+
const KandoNavbar = _ref => {
|
|
36
|
+
let {
|
|
37
|
+
waterAuthorityId,
|
|
38
|
+
selectedLabel,
|
|
39
|
+
hasSearch
|
|
40
|
+
} = _ref;
|
|
41
|
+
const [waterAuthorities, setWaterAuthorities] = (0, _react.useState)([]);
|
|
42
|
+
const [localWaterAuthority, setLocalWaterAuthority] = (0, _react.useState)({
|
|
43
|
+
photo_url: 'missing',
|
|
44
|
+
label: ''
|
|
45
|
+
});
|
|
46
|
+
const [waId, setWaId] = (0, _react.useState)(waterAuthorityId);
|
|
47
|
+
const [menu, setMenu] = (0, _react.useState)({});
|
|
48
|
+
const dispatch = (0, _reactRedux.useDispatch)();
|
|
49
|
+
const useQuery = () => {
|
|
64
50
|
return new URLSearchParams((0, _reactRouterDom.useLocation)().search);
|
|
65
51
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}),
|
|
91
|
-
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
92
|
-
customerMenu = _useState10[0],
|
|
93
|
-
setCustomerMenu = _useState10[1];
|
|
94
|
-
var navContext = (0, _reactRedux.useSelector)(function (state) {
|
|
95
|
-
return state.nav_context_data.navContext;
|
|
52
|
+
const query = useQuery();
|
|
53
|
+
const [customerMenu, setCustomerMenu] = (0, _react.useState)({
|
|
54
|
+
edit: {
|
|
55
|
+
link: '',
|
|
56
|
+
label: 'main_screen.edit_account'
|
|
57
|
+
},
|
|
58
|
+
feedback: {
|
|
59
|
+
link: '',
|
|
60
|
+
label: 'main_screen.feedback'
|
|
61
|
+
},
|
|
62
|
+
help: {
|
|
63
|
+
link: '',
|
|
64
|
+
label: 'main_screen.help'
|
|
65
|
+
},
|
|
66
|
+
my_profile: {
|
|
67
|
+
link: '',
|
|
68
|
+
label: 'main_screen.my_profile'
|
|
69
|
+
},
|
|
70
|
+
name: undefined,
|
|
71
|
+
sign_out: {
|
|
72
|
+
link: '',
|
|
73
|
+
label: 'main_screen.sign_out',
|
|
74
|
+
method: ''
|
|
75
|
+
}
|
|
96
76
|
});
|
|
97
|
-
|
|
98
|
-
|
|
77
|
+
const navContext = (0, _reactRedux.useSelector)(state => state.nav_context_data.navContext);
|
|
78
|
+
const history = (0, _reactRouterDom.useHistory)();
|
|
79
|
+
const handleChange = selectedOption => {
|
|
99
80
|
setWaId(selectedOption.value);
|
|
100
81
|
dispatch((0, _actions.setWaterAuthority)({
|
|
101
82
|
id: selectedOption.value,
|
|
102
83
|
name: ''
|
|
103
84
|
}));
|
|
104
|
-
history.push(
|
|
85
|
+
history.push(`/${navContext.name}/index?locale=${navContext.locale}&water_authority_id=${selectedOption.value}`);
|
|
105
86
|
};
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
for (
|
|
87
|
+
const iterate = obj => {
|
|
88
|
+
let items = [];
|
|
89
|
+
for (const property in obj) {
|
|
109
90
|
if (obj[property].expandable) {
|
|
110
91
|
items.push( /*#__PURE__*/_react.default.createElement(_reactBootstrap.NavDropdown, {
|
|
111
92
|
key: obj[property].label,
|
|
@@ -130,9 +111,9 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
130
111
|
}
|
|
131
112
|
return items;
|
|
132
113
|
};
|
|
133
|
-
|
|
114
|
+
const renderClientsPhoto = () => {
|
|
134
115
|
if (localWaterAuthority !== undefined) {
|
|
135
|
-
|
|
116
|
+
let url = localWaterAuthority.photo_url;
|
|
136
117
|
return /*#__PURE__*/_react.default.createElement("img", {
|
|
137
118
|
alt: "missing",
|
|
138
119
|
src: url.startsWith('missing') ? _authority.default : url,
|
|
@@ -145,7 +126,7 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
145
126
|
return;
|
|
146
127
|
}
|
|
147
128
|
};
|
|
148
|
-
|
|
129
|
+
const buildSwitchClient = () => {
|
|
149
130
|
if (waterAuthorities !== undefined && waterAuthorities.length !== 0) {
|
|
150
131
|
if (waterAuthorities.length === 1) {
|
|
151
132
|
return /*#__PURE__*/_react.default.createElement("p", {
|
|
@@ -164,25 +145,21 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
164
145
|
classNamePrefix: "select",
|
|
165
146
|
isSearchable: true,
|
|
166
147
|
name: "color",
|
|
167
|
-
options: waterAuthorities.map(
|
|
148
|
+
options: waterAuthorities.map(localWaterAuthority => {
|
|
168
149
|
return {
|
|
169
150
|
value: localWaterAuthority.id,
|
|
170
151
|
label: localWaterAuthority.name
|
|
171
152
|
};
|
|
172
153
|
}),
|
|
173
|
-
getOptionLabel:
|
|
174
|
-
return localWaterAuthority.label;
|
|
175
|
-
}
|
|
154
|
+
getOptionLabel: localWaterAuthority => localWaterAuthority.label
|
|
176
155
|
// @ts-ignore
|
|
177
156
|
,
|
|
178
|
-
onChange:
|
|
179
|
-
return handleChange(e);
|
|
180
|
-
}
|
|
157
|
+
onChange: e => handleChange(e)
|
|
181
158
|
})));
|
|
182
159
|
}
|
|
183
160
|
return;
|
|
184
161
|
};
|
|
185
|
-
|
|
162
|
+
const buildCustomerMenu = contextName => {
|
|
186
163
|
if (customerMenu !== undefined) {
|
|
187
164
|
// @ts-ignore
|
|
188
165
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.NavDropdown, {
|
|
@@ -196,7 +173,7 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
196
173
|
alt: "avatar"
|
|
197
174
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
198
175
|
className: 'greeting'
|
|
199
|
-
},
|
|
176
|
+
}, `${_i18n.default.t('main_screen.hello')} ${customerMenu.name === undefined ? _i18n.default.t('main_screen.there') : ', ' + customerMenu.name}`))
|
|
200
177
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.NavDropdown.Item, {
|
|
201
178
|
href: customerMenu.my_profile.link
|
|
202
179
|
}, _i18n.default.t('main_screen.my_profile')), /*#__PURE__*/_react.default.createElement(_reactBootstrap.NavDropdown.Item, {
|
|
@@ -225,11 +202,9 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
225
202
|
}
|
|
226
203
|
return;
|
|
227
204
|
};
|
|
228
|
-
(0, _react.useEffect)(
|
|
229
|
-
|
|
230
|
-
fetch(
|
|
231
|
-
return response.json();
|
|
232
|
-
}).then(function (json) {
|
|
205
|
+
(0, _react.useEffect)(() => {
|
|
206
|
+
let locale = query.get('locale') || 'en';
|
|
207
|
+
fetch(`/data/menu_data.json?water_authority_id=${waId}&locale=${locale}`).then(response => response.json()).then(json => {
|
|
233
208
|
setWaterAuthorities(json.water_authorities);
|
|
234
209
|
setMenu(json.menu);
|
|
235
210
|
dispatch((0, _actions.setWaterAuthority)({
|
|
@@ -264,7 +239,7 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
264
239
|
style: {
|
|
265
240
|
color: 'blue'
|
|
266
241
|
}
|
|
267
|
-
}, iterate(menu).map(
|
|
242
|
+
}, iterate(menu).map(item => {
|
|
268
243
|
return item;
|
|
269
244
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
270
245
|
className: 'switch-client-container'
|
|
@@ -275,4 +250,4 @@ var KandoNavbar = function KandoNavbar(_ref) {
|
|
|
275
250
|
KandoNavbar.defaultProps = defaultProps;
|
|
276
251
|
var _default = KandoNavbar;
|
|
277
252
|
exports.default = _default;
|
|
278
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJyZXF1aXJlIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWFjdEJvb3RzdHJhcCIsIl9yZWFjdFJlZHV4IiwiX3JlYWN0Um91dGVyRG9tIiwiX3JlYWN0U2VsZWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9rYW5kb19sb2dvIiwiX2F1dGhvcml0eSIsIl91c2VyIiwiX1N0eWxlZExpbmsiLCJfYWN0aW9ucyIsIl9FcnJvckJvdW5kYXJ5IiwiX2kxOG4iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsInVwZGF0ZVBhZ2VUaXRsZSIsInRpdGxlIiwiZG9jdW1lbnQiLCJjb25jYXQiLCJkZWZhdWx0UHJvcHMiLCJzZWxlY3RlZExhYmVsIiwiaGFzU2VhcmNoIiwicmVwbGFjZVVSTCIsInZhbHVlIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJwcm90b2NvbCIsImhvc3QiLCJwYXRobmFtZSIsInRvU3RyaW5nIiwiS2FuZG9OYXZiYXIiLCJfcmVmIiwid2F0ZXJBdXRob3JpdHlJZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIndhdGVyQXV0aG9yaXRpZXMiLCJzZXRXYXRlckF1dGhvcml0aWVzIiwiX3VzZVN0YXRlMyIsInBob3RvX3VybCIsImxhYmVsIiwiX3VzZVN0YXRlNCIsImxvY2FsV2F0ZXJBdXRob3JpdHkiLCJzZXRMb2NhbFdhdGVyQXV0aG9yaXR5IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ3YUlkIiwic2V0V2FJZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwibWVudSIsInNldE1lbnUiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwidXNlUXVlcnkiLCJ1c2VMb2NhdGlvbiIsInF1ZXJ5IiwiX3VzZVN0YXRlOSIsImVkaXQiLCJsaW5rIiwiZmVlZGJhY2siLCJoZWxwIiwibXlfcHJvZmlsZSIsIm5hbWUiLCJ1bmRlZmluZWQiLCJzaWduX291dCIsIm1ldGhvZCIsIl91c2VTdGF0ZTEwIiwiY3VzdG9tZXJNZW51Iiwic2V0Q3VzdG9tZXJNZW51IiwibmF2Q29udGV4dCIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJuYXZfY29udGV4dF9kYXRhIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJoYW5kbGVDaGFuZ2UiLCJzZWxlY3RlZE9wdGlvbiIsInNldFdhdGVyQXV0aG9yaXR5IiwiaWQiLCJwdXNoIiwibG9jYWxlIiwiaXRlcmF0ZSIsIml0ZW1zIiwicHJvcGVydHkiLCJleHBhbmRhYmxlIiwiY3JlYXRlRWxlbWVudCIsIk5hdkRyb3Bkb3duIiwiaTE4biIsInQiLCJleHBhbnNpb24iLCJjbGFzcyIsIkxpbmsiLCJjbGFzc05hbWUiLCJ0byIsIkl0ZW0iLCJocmVmIiwicmVuZGVyQ2xpZW50c1Bob3RvIiwidXJsIiwiYWx0Iiwic3JjIiwic3RhcnRzV2l0aCIsIldhdGVyQXV0aG9yaXR5TWlzc2luZ0ljb24iLCJzdHlsZSIsImhlaWdodCIsIndpZHRoIiwiYnVpbGRTd2l0Y2hDbGllbnQiLCJsZW5ndGgiLCJJdGVtVGV4dCIsImNsYXNzTmFtZVByZWZpeCIsImlzU2VhcmNoYWJsZSIsIm9wdGlvbnMiLCJtYXAiLCJnZXRPcHRpb25MYWJlbCIsIm9uQ2hhbmdlIiwiZSIsImJ1aWxkQ3VzdG9tZXJNZW51IiwiY29udGV4dE5hbWUiLCJhbGlnblJpZ2h0IiwiQXZhdGFyIiwiRGl2aWRlciIsInVzZUVmZmVjdCIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwianNvbiIsIndhdGVyX2F1dGhvcml0aWVzIiwid2F0ZXJfYXV0aG9yaXR5IiwiaXNfY2FwYWNpdHkiLCJjdXN0b21lcl9tZW51IiwiY2xlYW51cCIsIkZyYWdtZW50IiwiTmF2YmFyIiwiZXhwYW5kIiwiVG9nZ2xlIiwiQnJhbmQiLCJLYW5kb0xvZ28iLCJDb2xsYXBzZSIsIk5hdiIsImNvbG9yIiwiaXRlbSIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYVRpbnQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9IZWFkZXIvS2FuZG9OYXZiYXIvS2FuZG9OYXZiYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhVGludCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvcmVhY3QtZm9udGF3ZXNvbWUnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOYXYsIE5hdmJhciwgTmF2RHJvcGRvd24gfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBTZWxlY3QgZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCBLYW5kb0xvZ28gZnJvbSAnc3JjL2Fzc2V0cy9rYW5kb19sb2dvLnBuZyc7XG5pbXBvcnQgV2F0ZXJBdXRob3JpdHlNaXNzaW5nSWNvbiBmcm9tICdzcmMvYXNzZXRzL21pc3NpbmcvYXV0aG9yaXR5LnBuZyc7XG5pbXBvcnQgQXZhdGFyIGZyb20gJ3NyYy9hc3NldHMvdXNlci5zdmcnO1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3NyYy9jb21wb25lbnRzL0xpbmtzL1N0eWxlZExpbmsvU3R5bGVkTGluayc7XG5pbXBvcnQgeyBzZXRXYXRlckF1dGhvcml0eSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnc3JjL3N0b3JlL3Jvb3RSZWR1Y2VyJztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0ICcuL05hdmJhclN0eWxlLnNjc3MnO1xuXG5jb25zdCB1cGRhdGVQYWdlVGl0bGUgPSAodGl0bGU6IHN0cmluZykgPT5cbiAgKGRvY3VtZW50LnRpdGxlID0gYEthbmRvIC0gJHt0aXRsZX1gKTtcblxudHlwZSBJUHJvcHMgPSB7XG4gIHdhdGVyQXV0aG9yaXR5SWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWRMYWJlbD86IHN0cmluZztcbiAgaGFzU2VhcmNoPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgc2VsZWN0ZWRMYWJlbDogJycsXG4gIGhhc1NlYXJjaDogZmFsc2UsXG59O1xuXG5mdW5jdGlvbiByZXBsYWNlVVJMKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIGxldCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICBwYXJhbXMuc2V0KGtleSwgdmFsdWUpO1xuICByZXR1cm4gKFxuICAgIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArXG4gICAgJy8vJyArXG4gICAgd2luZG93LmxvY2F0aW9uLmhvc3QgK1xuICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArXG4gICAgJz8nICtcbiAgICBwYXJhbXMudG9TdHJpbmcoKVxuICApO1xufVxuXG5jb25zdCBLYW5kb05hdmJhciA9ICh7XG4gIHdhdGVyQXV0aG9yaXR5SWQsXG4gIHNlbGVjdGVkTGFiZWwsXG4gIGhhc1NlYXJjaCxcbn06IElQcm9wcykgPT4ge1xuICBjb25zdCBbd2F0ZXJBdXRob3JpdGllcywgc2V0V2F0ZXJBdXRob3JpdGllc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtsb2NhbFdhdGVyQXV0aG9yaXR5LCBzZXRMb2NhbFdhdGVyQXV0aG9yaXR5XSA9IHVzZVN0YXRlKHtcbiAgICBwaG90b191cmw6ICdtaXNzaW5nJyxcbiAgICBsYWJlbDogJycsXG4gIH0pO1xuICBjb25zdCBbd2FJZCwgc2V0V2FJZF0gPSB1c2VTdGF0ZSh3YXRlckF1dGhvcml0eUlkKTtcbiAgY29uc3QgW21lbnUsIHNldE1lbnVdID0gdXNlU3RhdGUoe30pO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgdXNlUXVlcnkgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXModXNlTG9jYXRpb24oKS5zZWFyY2gpO1xuICB9O1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5KCk7XG5cbiAgY29uc3QgW2N1c3RvbWVyTWVudSwgc2V0Q3VzdG9tZXJNZW51XSA9IHVzZVN0YXRlKHtcbiAgICBlZGl0OiB7XG4gICAgICBsaW5rOiAnJyxcbiAgICAgIGxhYmVsOiAnbWFpbl9zY3JlZW4uZWRpdF9hY2NvdW50JyxcbiAgICB9LFxuICAgIGZlZWRiYWNrOiB7XG4gICAgICBsaW5rOiAnJyxcbiAgICAgIGxhYmVsOiAnbWFpbl9zY3JlZW4uZmVlZGJhY2snLFxuICAgIH0sXG4gICAgaGVscDoge1xuICAgICAgbGluazogJycsXG4gICAgICBsYWJlbDogJ21haW5fc2NyZWVuLmhlbHAnLFxuICAgIH0sXG4gICAgbXlfcHJvZmlsZToge1xuICAgICAgbGluazogJycsXG4gICAgICBsYWJlbDogJ21haW5fc2NyZWVuLm15X3Byb2ZpbGUnLFxuICAgIH0sXG4gICAgbmFtZTogdW5kZWZpbmVkLFxuICAgIHNpZ25fb3V0OiB7XG4gICAgICBsaW5rOiAnJyxcbiAgICAgIGxhYmVsOiAnbWFpbl9zY3JlZW4uc2lnbl9vdXQnLFxuICAgICAgbWV0aG9kOiAnJyxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgbmF2Q29udGV4dCA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLm5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dCxcbiAgKTtcblxuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChzZWxlY3RlZE9wdGlvbjogYW55KSA9PiB7XG4gICAgc2V0V2FJZChzZWxlY3RlZE9wdGlvbi52YWx1ZSk7XG4gICAgZGlzcGF0Y2goc2V0V2F0ZXJBdXRob3JpdHkoeyBpZDogc2VsZWN0ZWRPcHRpb24udmFsdWUsIG5hbWU6ICcnIH0pKTtcbiAgICBoaXN0b3J5LnB1c2goXG4gICAgICBgLyR7bmF2Q29udGV4dC5uYW1lfS9pbmRleD9sb2NhbGU9JHtuYXZDb250ZXh0LmxvY2FsZX0md2F0ZXJfYXV0aG9yaXR5X2lkPSR7c2VsZWN0ZWRPcHRpb24udmFsdWV9YCxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGl0ZXJhdGUgPSAob2JqOiBhbnkpID0+IHtcbiAgICBsZXQgaXRlbXM6IGFueVtdID0gW107XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvYmopIHtcbiAgICAgIGlmIChvYmpbcHJvcGVydHldLmV4cGFuZGFibGUpIHtcbiAgICAgICAgaXRlbXMucHVzaChcbiAgICAgICAgICA8TmF2RHJvcGRvd25cbiAgICAgICAgICAgIGtleT17b2JqW3Byb3BlcnR5XS5sYWJlbH1cbiAgICAgICAgICAgIHRpdGxlPXtpMThuLnQob2JqW3Byb3BlcnR5XS5sYWJlbCl9XG4gICAgICAgICAgICBpZD1cImJhc2ljLW5hdi1kcm9wZG93blwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2l0ZXJhdGUob2JqW3Byb3BlcnR5XS5leHBhbnNpb24pfVxuICAgICAgICAgIDwvTmF2RHJvcGRvd24+LFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG9ialtwcm9wZXJ0eV0uY2xhc3MgPT09ICdqcy1pcy1yZWFjdCcpIHtcbiAgICAgICAgICBpdGVtcy5wdXNoKFxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAga2V5PXtvYmpbcHJvcGVydHldLmxpbmt9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImRyb3Bkb3duLWl0ZW1cIlxuICAgICAgICAgICAgICB0bz17b2JqW3Byb3BlcnR5XS5saW5rfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi50KG9ialtwcm9wZXJ0eV0ubGFiZWwpfVxuICAgICAgICAgICAgPC9MaW5rPixcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zLnB1c2goXG4gICAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgICBrZXk9e29ialtwcm9wZXJ0eV0ubGlua31cbiAgICAgICAgICAgICAgaHJlZj17b2JqW3Byb3BlcnR5XS5saW5rfVxuICAgICAgICAgICAgICBpZD1cImJhc2ljLW5hdmJhci1uYXZcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi50KG9ialtwcm9wZXJ0eV0ubGFiZWwpfVxuICAgICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPixcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckNsaWVudHNQaG90byA9ICgpID0+IHtcbiAgICBpZiAobG9jYWxXYXRlckF1dGhvcml0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgdXJsID0gbG9jYWxXYXRlckF1dGhvcml0eS5waG90b191cmwhIGFzIHN0cmluZztcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICBhbHQ9XCJtaXNzaW5nXCJcbiAgICAgICAgICBzcmM9e3VybC5zdGFydHNXaXRoKCdtaXNzaW5nJykgPyBXYXRlckF1dGhvcml0eU1pc3NpbmdJY29uIDogdXJsfVxuICAgICAgICAgIHN0eWxlPXt7IGhlaWdodDogJzQwcHgnLCB3aWR0aDogJ2F1dG8nIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGJ1aWxkU3dpdGNoQ2xpZW50ID0gKCkgPT4ge1xuICAgIGlmICh3YXRlckF1dGhvcml0aWVzICE9PSB1bmRlZmluZWQgJiYgd2F0ZXJBdXRob3JpdGllcy5sZW5ndGggIT09IDApIHtcbiAgICAgIGlmICh3YXRlckF1dGhvcml0aWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT17J3dhdGVyLWF1dGhvcml0eS1zaW5nbGUtbGFiZWwnfT5cbiAgICAgICAgICAgIHtsb2NhbFdhdGVyQXV0aG9yaXR5LmxhYmVsfVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE5hdkRyb3Bkb3duXG4gICAgICAgICAgdGl0bGU9e2xvY2FsV2F0ZXJBdXRob3JpdHkgIT09IG51bGwgPyBsb2NhbFdhdGVyQXV0aG9yaXR5LmxhYmVsIDogJyd9XG4gICAgICAgICAgaWQ9XCJiYXNpYy1uYXYtZHJvcGRvd25cIlxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW1UZXh0IHN0eWxlPXt7IHdpZHRoOiAnMzAwcHgnIH19PlxuICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiYXNpYy1zaW5nbGVcIlxuICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgIG5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgICAgIG9wdGlvbnM9e3dhdGVyQXV0aG9yaXRpZXMubWFwKChsb2NhbFdhdGVyQXV0aG9yaXR5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IGxvY2FsV2F0ZXJBdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogbG9jYWxXYXRlckF1dGhvcml0eS5uYW1lLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBnZXRPcHRpb25MYWJlbD17KGxvY2FsV2F0ZXJBdXRob3JpdHk6IGFueSkgPT5cbiAgICAgICAgICAgICAgICBsb2NhbFdhdGVyQXV0aG9yaXR5LmxhYmVsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGU6IE9iamVjdCkgPT4gaGFuZGxlQ2hhbmdlKGUpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW1UZXh0PlxuICAgICAgICA8L05hdkRyb3Bkb3duPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH07XG5cbiAgY29uc3QgYnVpbGRDdXN0b21lck1lbnUgPSAoY29udGV4dE5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChjdXN0b21lck1lbnUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE5hdkRyb3Bkb3duXG4gICAgICAgICAgYWxpZ25SaWdodFxuICAgICAgICAgIGNsYXNzTmFtZT17J2N1c3RvbWVyLW1lbnUgb3JkZXItc20tMyd9XG4gICAgICAgICAgaWQ9XCJiYXNpYy1uYXYtZHJvcGRvd25cIlxuICAgICAgICAgIHRpdGxlPXtcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY3VzdG9tZXItbWVudV9fY29udGVudCd9PlxuICAgICAgICAgICAgICA8aW1nIHNyYz17QXZhdGFyfSBhbHQ9XCJhdmF0YXJcIj48L2ltZz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZ3JlZXRpbmcnfT5cbiAgICAgICAgICAgICAgICB7YCR7aTE4bi50KCdtYWluX3NjcmVlbi5oZWxsbycpfSAke1xuICAgICAgICAgICAgICAgICAgY3VzdG9tZXJNZW51Lm5hbWUgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICA/IGkxOG4udCgnbWFpbl9zY3JlZW4udGhlcmUnKVxuICAgICAgICAgICAgICAgICAgICA6ICcsICcgKyBjdXN0b21lck1lbnUubmFtZVxuICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbSBocmVmPXtjdXN0b21lck1lbnUubXlfcHJvZmlsZS5saW5rfT5cbiAgICAgICAgICAgIHtpMThuLnQoJ21haW5fc2NyZWVuLm15X3Byb2ZpbGUnKX1cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW1cbiAgICAgICAgICAgIGhyZWY9e2N1c3RvbWVyTWVudS5lZGl0Lmxpbmt9XG4gICAgICAgICAgICBrZXk9e2N1c3RvbWVyTWVudS5lZGl0Lmxpbmt9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4udCgnbWFpbl9zY3JlZW4uZWRpdF9hY2NvdW50Jyl9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtXG4gICAgICAgICAgICBocmVmPXtjdXN0b21lck1lbnUuZmVlZGJhY2subGlua31cbiAgICAgICAgICAgIGtleT17Y3VzdG9tZXJNZW51LmZlZWRiYWNrLmxpbmt9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4udCgnbWFpbl9zY3JlZW4uZmVlZGJhY2snKX1cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW1cbiAgICAgICAgICAgIGhyZWY9e2N1c3RvbWVyTWVudS5oZWxwLmxpbmt9XG4gICAgICAgICAgICBrZXk9e2N1c3RvbWVyTWVudS5oZWxwLmxpbmt9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4udCgnbWFpbl9zY3JlZW4uaGVscCcpfVxuICAgICAgICAgIDwvTmF2RHJvcGRvd24uSXRlbT5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uRGl2aWRlciAvPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9e3JlcGxhY2VVUkwoJ2xvY2FsZScsICdlbicpfT5cbiAgICAgICAgICAgIHsnRW5nbGlzaCd9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9e3JlcGxhY2VVUkwoJ2xvY2FsZScsICdlbl91aycpfT5cbiAgICAgICAgICAgIHsnRW5nbGlzaCAoVUspJ31cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW0gaHJlZj17cmVwbGFjZVVSTCgnbG9jYWxlJywgJ2hlJyl9PlxuICAgICAgICAgICAgeyfXoteR16jXmdeqJ31cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW0gaHJlZj17cmVwbGFjZVVSTCgnbG9jYWxlJywgJ2ZyJyl9PlxuICAgICAgICAgICAgeydGcmFuw6dhaXMnfVxuICAgICAgICAgIDwvTmF2RHJvcGRvd24uSXRlbT5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbSBocmVmPXtyZXBsYWNlVVJMKCdsb2NhbGUnLCAnaXQnKX0+XG4gICAgICAgICAgICB7J0l0YWxpYW5vJ31cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkRpdmlkZXIgLz5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgaHJlZj17Y3VzdG9tZXJNZW51LnNpZ25fb3V0Lmxpbmt9XG4gICAgICAgICAgICBkYXRhLW1ldGhvZD17Y3VzdG9tZXJNZW51LnNpZ25fb3V0Lm1ldGhvZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aTE4bi50KGN1c3RvbWVyTWVudS5zaWduX291dC5sYWJlbCl9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICA8L05hdkRyb3Bkb3duPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgbG9jYWxlID0gcXVlcnkuZ2V0KCdsb2NhbGUnKSB8fCAnZW4nO1xuICAgIGZldGNoKGAvZGF0YS9tZW51X2RhdGEuanNvbj93YXRlcl9hdXRob3JpdHlfaWQ9JHt3YUlkfSZsb2NhbGU9JHtsb2NhbGV9YClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgc2V0V2F0ZXJBdXRob3JpdGllcyhqc29uLndhdGVyX2F1dGhvcml0aWVzKTtcbiAgICAgICAgc2V0TWVudShqc29uLm1lbnUpO1xuICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICBzZXRXYXRlckF1dGhvcml0eSh7XG4gICAgICAgICAgICBpZDoganNvbi53YXRlcl9hdXRob3JpdHkudmFsdWUsXG4gICAgICAgICAgICBuYW1lOiBqc29uLndhdGVyX2F1dGhvcml0eS5sYWJlbCxcbiAgICAgICAgICAgIGlzX2NhcGFjaXR5OiBqc29uLndhdGVyX2F1dGhvcml0eS5pc19jYXBhY2l0eSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgc2V0TG9jYWxXYXRlckF1dGhvcml0eShqc29uLndhdGVyX2F1dGhvcml0eSk7IC8vIGFkZCB0byBTdG9yZVxuICAgICAgICB1cGRhdGVQYWdlVGl0bGUoanNvbi53YXRlcl9hdXRob3JpdHkubGFiZWwpO1xuICAgICAgICBzZXRDdXN0b21lck1lbnUoanNvbi5jdXN0b21lcl9tZW51KTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBzZXRXYXRlckF1dGhvcml0aWVzKFtdKTtcbiAgICAgIHNldE1lbnUoe30pO1xuICAgIH07XG4gIH0sIFt3YUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgPE5hdmJhciBleHBhbmQ9XCJzbVwiIGNsYXNzTmFtZT17J2p1c3RpZnktY29udGVudC1iZXR3ZWVuJ30+XG4gICAgICAgICAgPE5hdmJhci5Ub2dnbGUgYXJpYS1jb250cm9scz1cImJhc2ljLW5hdmJhci1uYXZcIiAvPlxuICAgICAgICAgIDxOYXZiYXIuQnJhbmQgY2xhc3NOYW1lPXsnbG9nbyd9PlxuICAgICAgICAgICAgPGltZyBzcmM9e0thbmRvTG9nb30gYWx0PVwia2FuZG8tbG9nb1wiPjwvaW1nPlxuICAgICAgICAgIDwvTmF2YmFyLkJyYW5kPlxuICAgICAgICAgIDxOYXZiYXIuQnJhbmQgY2xhc3NOYW1lPXsnY2xpZW50LWxvZ28nfT5cbiAgICAgICAgICAgIHtyZW5kZXJDbGllbnRzUGhvdG8oKX1cbiAgICAgICAgICA8L05hdmJhci5CcmFuZD5cbiAgICAgICAgICB7YnVpbGRDdXN0b21lck1lbnUobmF2Q29udGV4dC5uYW1lKX1cbiAgICAgICAgICA8TmF2YmFyLkNvbGxhcHNlIGlkPVwiYmFzaWMtbmF2YmFyLW5hdlwiPlxuICAgICAgICAgICAgPE5hdiBzdHlsZT17eyBjb2xvcjogJ2JsdWUnIH19PlxuICAgICAgICAgICAgICB7aXRlcmF0ZShtZW51KS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnc3dpdGNoLWNsaWVudC1jb250YWluZXInfT5cbiAgICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhVGludH0gLz5cbiAgICAgICAgICAgICAgICB7YnVpbGRTd2l0Y2hDbGllbnQoKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L05hdj5cbiAgICAgICAgICA8L05hdmJhci5Db2xsYXBzZT5cbiAgICAgICAgICB7fVxuICAgICAgICA8L05hdmJhcj5cbiAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcbkthbmRvTmF2YmFyLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcblxuZXhwb3J0IGRlZmF1bHQgS2FuZG9OYXZiYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLGtCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBQyxzQkFBQSxDQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBRCxzQkFBQSxDQUFBUixPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBRixz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
|
|
253
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJyZXF1aXJlIiwiX3JlYWN0Rm9udGF3ZXNvbWUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9yZWFjdEJvb3RzdHJhcCIsIl9yZWFjdFJlZHV4IiwiX3JlYWN0Um91dGVyRG9tIiwiX3JlYWN0U2VsZWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9rYW5kb19sb2dvIiwiX2F1dGhvcml0eSIsIl91c2VyIiwiX1N0eWxlZExpbmsiLCJfYWN0aW9ucyIsIl9FcnJvckJvdW5kYXJ5IiwiX2kxOG4iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBkYXRlUGFnZVRpdGxlIiwidGl0bGUiLCJkb2N1bWVudCIsImRlZmF1bHRQcm9wcyIsInNlbGVjdGVkTGFiZWwiLCJoYXNTZWFyY2giLCJyZXBsYWNlVVJMIiwidmFsdWUiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsInByb3RvY29sIiwiaG9zdCIsInBhdGhuYW1lIiwidG9TdHJpbmciLCJLYW5kb05hdmJhciIsIl9yZWYiLCJ3YXRlckF1dGhvcml0eUlkIiwid2F0ZXJBdXRob3JpdGllcyIsInNldFdhdGVyQXV0aG9yaXRpZXMiLCJ1c2VTdGF0ZSIsImxvY2FsV2F0ZXJBdXRob3JpdHkiLCJzZXRMb2NhbFdhdGVyQXV0aG9yaXR5IiwicGhvdG9fdXJsIiwibGFiZWwiLCJ3YUlkIiwic2V0V2FJZCIsIm1lbnUiLCJzZXRNZW51IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInVzZVF1ZXJ5IiwidXNlTG9jYXRpb24iLCJxdWVyeSIsImN1c3RvbWVyTWVudSIsInNldEN1c3RvbWVyTWVudSIsImVkaXQiLCJsaW5rIiwiZmVlZGJhY2siLCJoZWxwIiwibXlfcHJvZmlsZSIsIm5hbWUiLCJ1bmRlZmluZWQiLCJzaWduX291dCIsIm1ldGhvZCIsIm5hdkNvbnRleHQiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwibmF2X2NvbnRleHRfZGF0YSIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiaGFuZGxlQ2hhbmdlIiwic2VsZWN0ZWRPcHRpb24iLCJzZXRXYXRlckF1dGhvcml0eSIsImlkIiwicHVzaCIsImxvY2FsZSIsIml0ZXJhdGUiLCJpdGVtcyIsInByb3BlcnR5IiwiZXhwYW5kYWJsZSIsImNyZWF0ZUVsZW1lbnQiLCJOYXZEcm9wZG93biIsImkxOG4iLCJ0IiwiZXhwYW5zaW9uIiwiY2xhc3MiLCJMaW5rIiwiY2xhc3NOYW1lIiwidG8iLCJJdGVtIiwiaHJlZiIsInJlbmRlckNsaWVudHNQaG90byIsInVybCIsImFsdCIsInNyYyIsInN0YXJ0c1dpdGgiLCJXYXRlckF1dGhvcml0eU1pc3NpbmdJY29uIiwic3R5bGUiLCJoZWlnaHQiLCJ3aWR0aCIsImJ1aWxkU3dpdGNoQ2xpZW50IiwibGVuZ3RoIiwiSXRlbVRleHQiLCJjbGFzc05hbWVQcmVmaXgiLCJpc1NlYXJjaGFibGUiLCJvcHRpb25zIiwibWFwIiwiZ2V0T3B0aW9uTGFiZWwiLCJvbkNoYW5nZSIsImUiLCJidWlsZEN1c3RvbWVyTWVudSIsImNvbnRleHROYW1lIiwiYWxpZ25SaWdodCIsIkF2YXRhciIsIkRpdmlkZXIiLCJ1c2VFZmZlY3QiLCJmZXRjaCIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJ3YXRlcl9hdXRob3JpdGllcyIsIndhdGVyX2F1dGhvcml0eSIsImlzX2NhcGFjaXR5IiwiY3VzdG9tZXJfbWVudSIsImNsZWFudXAiLCJGcmFnbWVudCIsIk5hdmJhciIsImV4cGFuZCIsIlRvZ2dsZSIsIkJyYW5kIiwiS2FuZG9Mb2dvIiwiQ29sbGFwc2UiLCJOYXYiLCJjb2xvciIsIml0ZW0iLCJGb250QXdlc29tZUljb24iLCJpY29uIiwiZmFUaW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSGVhZGVyL0thbmRvTmF2YmFyL0thbmRvTmF2YmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmYVRpbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTmF2LCBOYXZiYXIsIE5hdkRyb3Bkb3duIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVzZUhpc3RvcnksIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgS2FuZG9Mb2dvIGZyb20gJ3NyYy9hc3NldHMva2FuZG9fbG9nby5wbmcnO1xuaW1wb3J0IFdhdGVyQXV0aG9yaXR5TWlzc2luZ0ljb24gZnJvbSAnc3JjL2Fzc2V0cy9taXNzaW5nL2F1dGhvcml0eS5wbmcnO1xuaW1wb3J0IEF2YXRhciBmcm9tICdzcmMvYXNzZXRzL3VzZXIuc3ZnJztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdzcmMvY29tcG9uZW50cy9MaW5rcy9TdHlsZWRMaW5rL1N0eWxlZExpbmsnO1xuaW1wb3J0IHsgc2V0V2F0ZXJBdXRob3JpdHkgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgYXBwUmVkdWNlciB9IGZyb20gJ3NyYy9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdzcmMvdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCAnLi9OYXZiYXJTdHlsZS5zY3NzJztcblxuY29uc3QgdXBkYXRlUGFnZVRpdGxlID0gKHRpdGxlOiBzdHJpbmcpID0+XG4gIChkb2N1bWVudC50aXRsZSA9IGBLYW5kbyAtICR7dGl0bGV9YCk7XG5cbnR5cGUgSVByb3BzID0ge1xuICB3YXRlckF1dGhvcml0eUlkOiBudW1iZXI7XG4gIHNlbGVjdGVkTGFiZWw/OiBzdHJpbmc7XG4gIGhhc1NlYXJjaD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIHNlbGVjdGVkTGFiZWw6ICcnLFxuICBoYXNTZWFyY2g6IGZhbHNlLFxufTtcblxuZnVuY3Rpb24gcmVwbGFjZVVSTChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICBsZXQgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgcGFyYW1zLnNldChrZXksIHZhbHVlKTtcbiAgcmV0dXJuIChcbiAgICB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgK1xuICAgICcvLycgK1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICtcbiAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgK1xuICAgICc/JyArXG4gICAgcGFyYW1zLnRvU3RyaW5nKClcbiAgKTtcbn1cblxuY29uc3QgS2FuZG9OYXZiYXIgPSAoe1xuICB3YXRlckF1dGhvcml0eUlkLFxuICBzZWxlY3RlZExhYmVsLFxuICBoYXNTZWFyY2gsXG59OiBJUHJvcHMpID0+IHtcbiAgY29uc3QgW3dhdGVyQXV0aG9yaXRpZXMsIHNldFdhdGVyQXV0aG9yaXRpZXNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbbG9jYWxXYXRlckF1dGhvcml0eSwgc2V0TG9jYWxXYXRlckF1dGhvcml0eV0gPSB1c2VTdGF0ZSh7XG4gICAgcGhvdG9fdXJsOiAnbWlzc2luZycsXG4gICAgbGFiZWw6ICcnLFxuICB9KTtcbiAgY29uc3QgW3dhSWQsIHNldFdhSWRdID0gdXNlU3RhdGUod2F0ZXJBdXRob3JpdHlJZCk7XG4gIGNvbnN0IFttZW51LCBzZXRNZW51XSA9IHVzZVN0YXRlKHt9KTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IHVzZVF1ZXJ5ID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKHVzZUxvY2F0aW9uKCkuc2VhcmNoKTtcbiAgfTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeSgpO1xuXG4gIGNvbnN0IFtjdXN0b21lck1lbnUsIHNldEN1c3RvbWVyTWVudV0gPSB1c2VTdGF0ZSh7XG4gICAgZWRpdDoge1xuICAgICAgbGluazogJycsXG4gICAgICBsYWJlbDogJ21haW5fc2NyZWVuLmVkaXRfYWNjb3VudCcsXG4gICAgfSxcbiAgICBmZWVkYmFjazoge1xuICAgICAgbGluazogJycsXG4gICAgICBsYWJlbDogJ21haW5fc2NyZWVuLmZlZWRiYWNrJyxcbiAgICB9LFxuICAgIGhlbHA6IHtcbiAgICAgIGxpbms6ICcnLFxuICAgICAgbGFiZWw6ICdtYWluX3NjcmVlbi5oZWxwJyxcbiAgICB9LFxuICAgIG15X3Byb2ZpbGU6IHtcbiAgICAgIGxpbms6ICcnLFxuICAgICAgbGFiZWw6ICdtYWluX3NjcmVlbi5teV9wcm9maWxlJyxcbiAgICB9LFxuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICBzaWduX291dDoge1xuICAgICAgbGluazogJycsXG4gICAgICBsYWJlbDogJ21haW5fc2NyZWVuLnNpZ25fb3V0JyxcbiAgICAgIG1ldGhvZDogJycsXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IG5hdkNvbnRleHQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5uYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQsXG4gICk7XG5cbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoc2VsZWN0ZWRPcHRpb246IGFueSkgPT4ge1xuICAgIHNldFdhSWQoc2VsZWN0ZWRPcHRpb24udmFsdWUpO1xuICAgIGRpc3BhdGNoKHNldFdhdGVyQXV0aG9yaXR5KHsgaWQ6IHNlbGVjdGVkT3B0aW9uLnZhbHVlLCBuYW1lOiAnJyB9KSk7XG4gICAgaGlzdG9yeS5wdXNoKFxuICAgICAgYC8ke25hdkNvbnRleHQubmFtZX0vaW5kZXg/bG9jYWxlPSR7bmF2Q29udGV4dC5sb2NhbGV9JndhdGVyX2F1dGhvcml0eV9pZD0ke3NlbGVjdGVkT3B0aW9uLnZhbHVlfWAsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBpdGVyYXRlID0gKG9iajogYW55KSA9PiB7XG4gICAgbGV0IGl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqW3Byb3BlcnR5XS5leHBhbmRhYmxlKSB7XG4gICAgICAgIGl0ZW1zLnB1c2goXG4gICAgICAgICAgPE5hdkRyb3Bkb3duXG4gICAgICAgICAgICBrZXk9e29ialtwcm9wZXJ0eV0ubGFiZWx9XG4gICAgICAgICAgICB0aXRsZT17aTE4bi50KG9ialtwcm9wZXJ0eV0ubGFiZWwpfVxuICAgICAgICAgICAgaWQ9XCJiYXNpYy1uYXYtZHJvcGRvd25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpdGVyYXRlKG9ialtwcm9wZXJ0eV0uZXhwYW5zaW9uKX1cbiAgICAgICAgICA8L05hdkRyb3Bkb3duPixcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChvYmpbcHJvcGVydHldLmNsYXNzID09PSAnanMtaXMtcmVhY3QnKSB7XG4gICAgICAgICAgaXRlbXMucHVzaChcbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGtleT17b2JqW3Byb3BlcnR5XS5saW5rfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkcm9wZG93bi1pdGVtXCJcbiAgICAgICAgICAgICAgdG89e29ialtwcm9wZXJ0eV0ubGlua31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2kxOG4udChvYmpbcHJvcGVydHldLmxhYmVsKX1cbiAgICAgICAgICAgIDwvTGluaz4sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtcy5wdXNoKFxuICAgICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW1cbiAgICAgICAgICAgICAga2V5PXtvYmpbcHJvcGVydHldLmxpbmt9XG4gICAgICAgICAgICAgIGhyZWY9e29ialtwcm9wZXJ0eV0ubGlua31cbiAgICAgICAgICAgICAgaWQ9XCJiYXNpYy1uYXZiYXItbmF2XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2kxOG4udChvYmpbcHJvcGVydHldLmxhYmVsKX1cbiAgICAgICAgICAgIDwvTmF2RHJvcGRvd24uSXRlbT4sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfTtcblxuICBjb25zdCByZW5kZXJDbGllbnRzUGhvdG8gPSAoKSA9PiB7XG4gICAgaWYgKGxvY2FsV2F0ZXJBdXRob3JpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHVybCA9IGxvY2FsV2F0ZXJBdXRob3JpdHkucGhvdG9fdXJsISBhcyBzdHJpbmc7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8aW1nXG4gICAgICAgICAgYWx0PVwibWlzc2luZ1wiXG4gICAgICAgICAgc3JjPXt1cmwuc3RhcnRzV2l0aCgnbWlzc2luZycpID8gV2F0ZXJBdXRob3JpdHlNaXNzaW5nSWNvbiA6IHVybH1cbiAgICAgICAgICBzdHlsZT17eyBoZWlnaHQ6ICc0MHB4Jywgd2lkdGg6ICdhdXRvJyB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBidWlsZFN3aXRjaENsaWVudCA9ICgpID0+IHtcbiAgICBpZiAod2F0ZXJBdXRob3JpdGllcyAhPT0gdW5kZWZpbmVkICYmIHdhdGVyQXV0aG9yaXRpZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBpZiAod2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8cCBjbGFzc05hbWU9eyd3YXRlci1hdXRob3JpdHktc2luZ2xlLWxhYmVsJ30+XG4gICAgICAgICAgICB7bG9jYWxXYXRlckF1dGhvcml0eS5sYWJlbH1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxOYXZEcm9wZG93blxuICAgICAgICAgIHRpdGxlPXtsb2NhbFdhdGVyQXV0aG9yaXR5ICE9PSBudWxsID8gbG9jYWxXYXRlckF1dGhvcml0eS5sYWJlbCA6ICcnfVxuICAgICAgICAgIGlkPVwiYmFzaWMtbmF2LWRyb3Bkb3duXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtVGV4dCBzdHlsZT17eyB3aWR0aDogJzMwMHB4JyB9fT5cbiAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmFzaWMtc2luZ2xlXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lUHJlZml4PVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29sb3JcIlxuICAgICAgICAgICAgICBvcHRpb25zPXt3YXRlckF1dGhvcml0aWVzLm1hcCgobG9jYWxXYXRlckF1dGhvcml0eTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBsb2NhbFdhdGVyQXV0aG9yaXR5LmlkLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGxvY2FsV2F0ZXJBdXRob3JpdHkubmFtZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgZ2V0T3B0aW9uTGFiZWw9eyhsb2NhbFdhdGVyQXV0aG9yaXR5OiBhbnkpID0+XG4gICAgICAgICAgICAgICAgbG9jYWxXYXRlckF1dGhvcml0eS5sYWJlbFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlOiBPYmplY3QpID0+IGhhbmRsZUNoYW5nZShlKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtVGV4dD5cbiAgICAgICAgPC9OYXZEcm9wZG93bj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9O1xuXG4gIGNvbnN0IGJ1aWxkQ3VzdG9tZXJNZW51ID0gKGNvbnRleHROYW1lOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoY3VzdG9tZXJNZW51ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxOYXZEcm9wZG93blxuICAgICAgICAgIGFsaWduUmlnaHRcbiAgICAgICAgICBjbGFzc05hbWU9eydjdXN0b21lci1tZW51IG9yZGVyLXNtLTMnfVxuICAgICAgICAgIGlkPVwiYmFzaWMtbmF2LWRyb3Bkb3duXCJcbiAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2N1c3RvbWVyLW1lbnVfX2NvbnRlbnQnfT5cbiAgICAgICAgICAgICAgPGltZyBzcmM9e0F2YXRhcn0gYWx0PVwiYXZhdGFyXCI+PC9pbWc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17J2dyZWV0aW5nJ30+XG4gICAgICAgICAgICAgICAge2Ake2kxOG4udCgnbWFpbl9zY3JlZW4uaGVsbG8nKX0gJHtcbiAgICAgICAgICAgICAgICAgIGN1c3RvbWVyTWVudS5uYW1lID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyBpMThuLnQoJ21haW5fc2NyZWVuLnRoZXJlJylcbiAgICAgICAgICAgICAgICAgICAgOiAnLCAnICsgY3VzdG9tZXJNZW51Lm5hbWVcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW0gaHJlZj17Y3VzdG9tZXJNZW51Lm15X3Byb2ZpbGUubGlua30+XG4gICAgICAgICAgICB7aTE4bi50KCdtYWluX3NjcmVlbi5teV9wcm9maWxlJyl9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtXG4gICAgICAgICAgICBocmVmPXtjdXN0b21lck1lbnUuZWRpdC5saW5rfVxuICAgICAgICAgICAga2V5PXtjdXN0b21lck1lbnUuZWRpdC5saW5rfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpMThuLnQoJ21haW5fc2NyZWVuLmVkaXRfYWNjb3VudCcpfVxuICAgICAgICAgIDwvTmF2RHJvcGRvd24uSXRlbT5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgaHJlZj17Y3VzdG9tZXJNZW51LmZlZWRiYWNrLmxpbmt9XG4gICAgICAgICAgICBrZXk9e2N1c3RvbWVyTWVudS5mZWVkYmFjay5saW5rfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpMThuLnQoJ21haW5fc2NyZWVuLmZlZWRiYWNrJyl9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtXG4gICAgICAgICAgICBocmVmPXtjdXN0b21lck1lbnUuaGVscC5saW5rfVxuICAgICAgICAgICAga2V5PXtjdXN0b21lck1lbnUuaGVscC5saW5rfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpMThuLnQoJ21haW5fc2NyZWVuLmhlbHAnKX1cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkRpdmlkZXIgLz5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbSBocmVmPXtyZXBsYWNlVVJMKCdsb2NhbGUnLCAnZW4nKX0+XG4gICAgICAgICAgICB7J0VuZ2xpc2gnfVxuICAgICAgICAgIDwvTmF2RHJvcGRvd24uSXRlbT5cbiAgICAgICAgICA8TmF2RHJvcGRvd24uSXRlbSBocmVmPXtyZXBsYWNlVVJMKCdsb2NhbGUnLCAnZW5fdWsnKX0+XG4gICAgICAgICAgICB7J0VuZ2xpc2ggKFVLKSd9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9e3JlcGxhY2VVUkwoJ2xvY2FsZScsICdoZScpfT5cbiAgICAgICAgICAgIHsn16LXkdeo15nXqid9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9e3JlcGxhY2VVUkwoJ2xvY2FsZScsICdmcicpfT5cbiAgICAgICAgICAgIHsnRnJhbsOnYWlzJ31cbiAgICAgICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW0gaHJlZj17cmVwbGFjZVVSTCgnbG9jYWxlJywgJ2l0Jyl9PlxuICAgICAgICAgICAgeydJdGFsaWFubyd9XG4gICAgICAgICAgPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgICAgIDxOYXZEcm9wZG93bi5EaXZpZGVyIC8+XG4gICAgICAgICAgPE5hdkRyb3Bkb3duLkl0ZW1cbiAgICAgICAgICAgIGhyZWY9e2N1c3RvbWVyTWVudS5zaWduX291dC5saW5rfVxuICAgICAgICAgICAgZGF0YS1tZXRob2Q9e2N1c3RvbWVyTWVudS5zaWduX291dC5tZXRob2R9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4udChjdXN0b21lck1lbnUuc2lnbl9vdXQubGFiZWwpfVxuICAgICAgICAgIDwvTmF2RHJvcGRvd24uSXRlbT5cbiAgICAgICAgPC9OYXZEcm9wZG93bj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGxvY2FsZSA9IHF1ZXJ5LmdldCgnbG9jYWxlJykgfHwgJ2VuJztcbiAgICBmZXRjaChgL2RhdGEvbWVudV9kYXRhLmpzb24/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7d2FJZH0mbG9jYWxlPSR7bG9jYWxlfWApXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgIHNldFdhdGVyQXV0aG9yaXRpZXMoanNvbi53YXRlcl9hdXRob3JpdGllcyk7XG4gICAgICAgIHNldE1lbnUoanNvbi5tZW51KTtcbiAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgc2V0V2F0ZXJBdXRob3JpdHkoe1xuICAgICAgICAgICAgaWQ6IGpzb24ud2F0ZXJfYXV0aG9yaXR5LnZhbHVlLFxuICAgICAgICAgICAgbmFtZToganNvbi53YXRlcl9hdXRob3JpdHkubGFiZWwsXG4gICAgICAgICAgICBpc19jYXBhY2l0eToganNvbi53YXRlcl9hdXRob3JpdHkuaXNfY2FwYWNpdHksXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIHNldExvY2FsV2F0ZXJBdXRob3JpdHkoanNvbi53YXRlcl9hdXRob3JpdHkpOyAvLyBhZGQgdG8gU3RvcmVcbiAgICAgICAgdXBkYXRlUGFnZVRpdGxlKGpzb24ud2F0ZXJfYXV0aG9yaXR5LmxhYmVsKTtcbiAgICAgICAgc2V0Q3VzdG9tZXJNZW51KGpzb24uY3VzdG9tZXJfbWVudSk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0V2F0ZXJBdXRob3JpdGllcyhbXSk7XG4gICAgICBzZXRNZW51KHt9KTtcbiAgICB9O1xuICB9LCBbd2FJZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgIDxOYXZiYXIgZXhwYW5kPVwic21cIiBjbGFzc05hbWU9eydqdXN0aWZ5LWNvbnRlbnQtYmV0d2Vlbid9PlxuICAgICAgICAgIDxOYXZiYXIuVG9nZ2xlIGFyaWEtY29udHJvbHM9XCJiYXNpYy1uYXZiYXItbmF2XCIgLz5cbiAgICAgICAgICA8TmF2YmFyLkJyYW5kIGNsYXNzTmFtZT17J2xvZ28nfT5cbiAgICAgICAgICAgIDxpbWcgc3JjPXtLYW5kb0xvZ299IGFsdD1cImthbmRvLWxvZ29cIj48L2ltZz5cbiAgICAgICAgICA8L05hdmJhci5CcmFuZD5cbiAgICAgICAgICA8TmF2YmFyLkJyYW5kIGNsYXNzTmFtZT17J2NsaWVudC1sb2dvJ30+XG4gICAgICAgICAgICB7cmVuZGVyQ2xpZW50c1Bob3RvKCl9XG4gICAgICAgICAgPC9OYXZiYXIuQnJhbmQ+XG4gICAgICAgICAge2J1aWxkQ3VzdG9tZXJNZW51KG5hdkNvbnRleHQubmFtZSl9XG4gICAgICAgICAgPE5hdmJhci5Db2xsYXBzZSBpZD1cImJhc2ljLW5hdmJhci1uYXZcIj5cbiAgICAgICAgICAgIDxOYXYgc3R5bGU9e3sgY29sb3I6ICdibHVlJyB9fT5cbiAgICAgICAgICAgICAge2l0ZXJhdGUobWVudSkubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3N3aXRjaC1jbGllbnQtY29udGFpbmVyJ30+XG4gICAgICAgICAgICAgICAgPEZvbnRBd2Vzb21lSWNvbiBpY29uPXtmYVRpbnR9IC8+XG4gICAgICAgICAgICAgICAge2J1aWxkU3dpdGNoQ2xpZW50KCl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9OYXY+XG4gICAgICAgICAgPC9OYXZiYXIuQ29sbGFwc2U+XG4gICAgICAgICAge31cbiAgICAgICAgPC9OYXZiYXI+XG4gICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5LYW5kb05hdmJhci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IEthbmRvTmF2YmFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsa0JBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxlQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFDLHNCQUFBLENBQUFSLE9BQUE7QUFDQSxJQUFBUyxXQUFBLEdBQUFELHNCQUFBLENBQUFSLE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFGLHNCQUFBLENBQUFSLE9BQUE7QUFBeUUsSUFBQVcsS0FBQSxHQUFBSCxzQkFBQSxDQUFBUixPQUFBO0FBRXpFLElBQUFZLFdBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLFFBQUEsR0FBQWIsT0FBQTtBQUVBLElBQUFjLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFlLEtBQUEsR0FB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
|