@spotify/backstage-plugin-soundcheck 0.18.0 → 0.19.0
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/CHANGELOG.md +69 -0
- package/config.d.ts +21 -0
- package/dist/alpha/apis.esm.js +1 -1
- package/dist/alpha/entity-content.esm.js +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha/plugin.esm.js +1 -1
- package/dist/alpha.d.ts +83 -77
- package/dist/api.esm.js +1 -1
- package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
- package/dist/components/Badges/CampaignBadge.esm.js +1 -1
- package/dist/components/Badges/StatusBadge.esm.js +1 -1
- package/dist/components/CacheConfig/CacheConfigComponent.esm.js +1 -1
- package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignTrackStepNew.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/utils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +2 -2
- package/dist/components/CampaignForm/utils/validation.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/DaysRemainingTile.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
- package/dist/components/CategoryBar/CategoryBar.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
- package/dist/components/CheckDetails/FixMeDialog.esm.js +1 -1
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckScheduleSection/ScheduleSection.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -2
- package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
- package/dist/components/CollapsablePanel/CollapsablePanel.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorFactTable.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorConfigAlert.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/PortalConfigAlert.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/DependabotAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/IssuesFactDetailsInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/ColorChip/ColorChip.esm.js +2 -0
- package/dist/components/EmptyState/EmptyState.esm.js +1 -1
- package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +1 -1
- package/dist/components/Expand/Expand.esm.js +1 -1
- package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerDialog.esm.js +1 -1
- package/dist/components/FactExplorer/useFactOptions.esm.js +1 -1
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
- package/dist/components/FilterSidebar/useTrackFilterSidebar.esm.js +2 -0
- package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
- package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/Frequency/util.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchyCategorySelection.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/GroupHierarchyChip.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/getAllOwnedEntityCount.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/usePreviousSelectedGroups.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/ColorLegend.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/HierarchyTable.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/LowestPerformingTeams.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/TeamPerformanceCard.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/TopPerformingTeams.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/getLeafNodes.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/LoadingOverlay.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoCirclePacking.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoHeatmap.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoIcicle.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoSunburst.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoTreemap.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/VisualizationBreadcrumb.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/findNodePath.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js +2 -0
- package/dist/components/ImportExportPanel/ImportExportPanel.esm.js +1 -1
- package/dist/components/LevelsTable/LevelsTable.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +1 -1
- package/dist/components/QuickstartPage/HowDoIListItem.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -1
- package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +5 -5
- package/dist/components/QuickstartPage/styles.esm.js +1 -1
- package/dist/components/RoutingPage/NewFeatureTab.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/SearchBar/SearchBar.esm.js +1 -1
- package/dist/components/SoundcheckEntityLink/SoundcheckEntityLink.esm.js +2 -0
- package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
- package/dist/components/SoundcheckHeader/headerUtil.esm.js +1 -1
- package/dist/components/TeamStatusBar/TeamStatusBar.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
- package/dist/components/TechHealth/Loading/Loading.esm.js +1 -1
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +1 -1
- package/dist/components/TechInsights/FilterControls.esm.js +2 -0
- package/dist/components/TechInsights/SummaryTiles.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsCardsView.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsPage.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsTableView.esm.js +2 -0
- package/dist/components/TechInsights/TrackStatusCard.esm.js +2 -0
- package/dist/components/TechInsights/ViewModeControls.esm.js +2 -0
- package/dist/components/TechInsights/convertToCommonTrackStatus.esm.js +2 -0
- package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +2 -0
- package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackBadgeTypeSelect/TrackBadgeTypeSelect.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +1 -1
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackStatusBar.esm.js +1 -1
- package/dist/components/TrackPage/TrackStatusTable.esm.js +1 -1
- package/dist/components/TrackSelection/TrackSelection.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +202 -149
- package/dist/hooks/cache/useEntityCountCached.esm.js +2 -0
- package/dist/hooks/cache/useTrackCountCached.esm.js +2 -0
- package/dist/hooks/campaigns/useCreateCampaign.esm.js +1 -1
- package/dist/hooks/campaigns/useGetCampaigns.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityCount.esm.js +2 -0
- package/dist/hooks/catalog/useGetLimitedEntityRefs.esm.js +2 -0
- package/dist/hooks/checks/useUpdateCheck.esm.js +1 -1
- package/dist/hooks/collectors/useDeleteCollectorConfig.esm.js +2 -0
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/groups/useAllGroups.esm.js +1 -1
- package/dist/hooks/groups/useGroupOptions.esm.js +1 -1
- package/dist/hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js +2 -0
- package/dist/hooks/heirarchy/useGroupHierarchy.esm.js +1 -1
- package/dist/hooks/heirarchy/useGroupTypeHierarchy.esm.js +2 -0
- package/dist/hooks/heirarchy/useHierarchicalTrackStatus.esm.js +1 -1
- package/dist/hooks/tracks/useCreateTrack.esm.js +1 -1
- package/dist/hooks/tracks/useGetAllTracks.esm.js +1 -1
- package/dist/hooks/tracks/useGetTracksApplicableEntityCount.esm.js +2 -0
- package/dist/hooks/tracks/useTracksApplicableToGroup.esm.js +2 -0
- package/dist/hooks/useFeatureFlag.esm.js +1 -1
- package/dist/hooks/useLCPReporting.esm.js +2 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.esm.js +1 -1
- package/dist/routes.esm.js +1 -1
- package/dist/utils/colors.esm.js +1 -1
- package/dist/utils/lcpReporting.esm.js +2 -0
- package/package.json +27 -24
- package/dist/components/CheckCard/CheckCard.esm.js +0 -2
- package/dist/components/CheckCard/CheckHistoryChart.esm.js +0 -2
- package/dist/components/CheckCard/utils.esm.js +0 -2
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +0 -2
- package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +0 -2
- package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +0 -2
- package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +0 -2
- package/dist/components/QuickstartPage/WelcomeModal.esm.js +0 -2
- package/dist/components/TechHealth/Loading/Emoji.esm.js +0 -2
- package/dist/components/TechHealth/Loading/EmojiFountain.esm.js +0 -2
- package/dist/components/TechInsights/ColorLegend.esm.js +0 -2
- package/dist/components/TechInsights/LoadingOverlay.esm.js +0 -2
- package/dist/components/TechInsights/LowestPerformingTeams.esm.js +0 -2
- package/dist/components/TechInsights/NivoCirclePacking.esm.js +0 -2
- package/dist/components/TechInsights/NivoIcicle.esm.js +0 -2
- package/dist/components/TechInsights/NivoSunburst.esm.js +0 -2
- package/dist/components/TechInsights/NivoTreemap.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/CheckComparison.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/FailingComponentsTable.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/LineChartContainer.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/MultiCheckStatusHistoryChart.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/MultiTrackHistoryChart.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/TeamComparison.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/TrackComparison.esm.js +0 -2
- package/dist/components/TechInsights/TeamPerformanceCard.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsGroupSelector.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsPage2.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsSidebar.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsViewSelector.esm.js +0 -2
- package/dist/components/TechInsights/Tiles/CheckStatusTile.esm.js +0 -2
- package/dist/components/TechInsights/Tiles/TileUtils.esm.js +0 -2
- package/dist/components/TechInsights/Tiles/TrackStatusTile.esm.js +0 -2
- package/dist/components/TechInsights/TopPerformingTeams.esm.js +0 -2
- package/dist/components/TechInsights/TrackCardGrid.esm.js +0 -2
- package/dist/components/TechInsights/TrackCardGridBox.esm.js +0 -2
- package/dist/components/TechInsights/colorContrast.esm.js +0 -2
- package/dist/components/TechInsights/hierarchy/GroupNode.esm.js +0 -2
- package/dist/components/TechInsights/hierarchy/Hierarchy.esm.js +0 -2
- package/dist/components/TechInsights/hierarchy/VirtualRow.esm.js +0 -2
- package/dist/components/TechInsights/hierarchyToNivo.esm.js +0 -2
- package/dist/components/TechInsights/persistence/FavoriteViews.esm.js +0 -2
- package/dist/components/TechInsights/styles.esm.js +0 -2
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +0 -2
- package/dist/hooks/aggregations/useCertificationStatusHistories.esm.js +0 -2
- package/dist/hooks/aggregations/useCertificationStatuses.esm.js +0 -2
- package/dist/hooks/aggregations/useCheckStatusByGroups.esm.js +0 -2
- package/dist/hooks/aggregations/useCheckStatusHistories.esm.js +0 -2
- package/dist/hooks/aggregations/useCheckStatusHistoriesMultiFilter.esm.js +0 -2
- package/dist/hooks/heirarchy/useGetDescendentsOfGroups.esm.js +0 -2
- package/dist/hooks/heirarchy/useRootGroups.esm.js +0 -2
- package/dist/hooks/savedViews/useDeleteView.esm.js +0 -2
- package/dist/hooks/savedViews/useSaveView.esm.js +0 -2
- package/dist/hooks/savedViews/useSavedViews.esm.js +0 -2
- /package/dist/components/{TrackPage/FilterBar → FilterSidebar}/util.esm.js +0 -0
- /package/dist/components/{TechInsights → HierarchicalTechInsightsPage}/TeamPerformanceListCard.esm.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as r,jsxs as g}from"react/jsx-runtime";import{useTheme as N,Grid as i,Typography as l}from"@material-ui/core";import{useState as f,useEffect as u}from"react";import{useSearchParams as G}from"react-router-dom";import{useGroupOptions as M}from"../../../hooks/groups/useGroupOptions.esm.js";import{toFilter as O}from"../../../utils/helpers.esm.js";import{getChartColors as j}from"../../Charts/chartUtils.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as L}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{getTechInsightsStyles as R}from"../styles.esm.js";import{parseTogglesString as U}from"../TechInsightsPage.esm.js";import{TrackStatusTile as W}from"../Tiles/TrackStatusTile.esm.js";import{FailingComponentsTable as B}from"./FailingComponentsTable.esm.js";import{MultiTrackHistoryChart as H}from"./MultiTrackHistoryChart.esm.js";import{getGroupName as P}from"./TeamComparison.esm.js";const V=({tracksConnection:k})=>{const w=N(),n=R(),{options:T,isLoading:y,isError:E}=M(),[C]=G(),a=U(C.get("toggles")),{getSelectedFacetValues:d,facetFilters:m}=L(),[v,x]=f([]);u(()=>{x(m.Track)},[d,m]);const[h,S]=f([]);return u(()=>{S(m["Entity Owner"])},[d,m]),y?r(i,{item:!0,children:r(l,{variant:"h1",children:"Loading..."})},"tracks"):E?r(i,{item:!0,children:r(l,{variant:"h3",children:"Error loading groups."})},"tracks"):r(i,{item:!0,children:v?.map(o=>{const e=k?.edges.find(({node:t})=>t.id===o)?.node,b={id:e?.id??o,name:e?.name??o,description:e?.description??"None",isEditable:e?.isEditable??!1,levels:e?.levels??[],ownerEntityRef:e?.ownerEntityRef??"Unknown",type:e?.type??"Unknown"},s=j(w),p=h??[],c=new Map;return p.forEach((t,F)=>{const I=s[F%s.length];c.set(t,I)}),g(i,{container:!0,spacing:2,direction:"row",children:[r(i,{item:!0,className:n.header,xs:12,children:g(l,{variant:"h4",children:["Track: ",e?.name??o]})}),a?.showGraphs&&r(i,{item:!0,className:n.content,xs:12,children:r(H,{trackId:o,filters:h?.map(t=>O({owners:[t]})),colorMap:c})}),a?.showCards&&p.map(t=>r(i,{item:!0,className:n.gridItem,style:{minWidth:200},children:r(W,{existsWithinSoundcheck:!!e,titleOverride:`${P(t,T)}`,track:b,filter:t?{"relations.ownedBy":t}:void 0,color:c.get(t)??s[0]})},t)),a?.showTables&&r(i,{item:!0,className:n.gridItem,xs:12,children:r(B,{trackId:o,groupIds:p})},"failing-components-table")]})})},"tracks")};export{V as TrackComparison};
|
|
2
|
-
//# sourceMappingURL=TrackComparison.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as l,jsx as t}from"react/jsx-runtime";import{useApi as b}from"@backstage/core-plugin-api";import{entityPresentationApiRef as u}from"@backstage/plugin-catalog-react";import{Box as r,Typography as c,Chip as w}from"@material-ui/core";import{useTheme as k}from"@material-ui/core/styles";import{rgb as C}from"d3-color";import{getContrastTextColor as d}from"./colorContrast.esm.js";const v=({teamName:m,passPercentage:a,getColor:h,entityRef:i,onClick:e})=>{const s=k(),y=b(u),n=h(a),f=d(s.palette.background.paper),p=C(n);p.opacity=.4;const x=p.toString(),o=y.forEntity(i);return l(r,{display:"flex",alignItems:"center",justifyContent:"space-between",bgcolor:s.palette.background.paper,borderRadius:8,px:2,py:1,mb:0,boxShadow:0,width:"100%",style:{color:f,border:`1px solid ${n}`,boxShadow:`0 0 12px 2px ${x}`,cursor:e?"pointer":void 0,transition:"box-shadow 0.2s"},onClick:e?()=>e(i):void 0,onKeyPress:e?g=>{g.key==="Enter"&&e(i)}:void 0,tabIndex:e?0:-1,children:[l(r,{flex:1,minWidth:0,children:[l(r,{display:"flex",alignItems:"center",style:{gap:s.spacing(1)},children:[o?.snapshot.Icon&&t(r,{component:"span",style:{display:"flex",alignItems:"center"},children:t(o.snapshot.Icon,{})}),t(c,{variant:"subtitle1",style:{fontWeight:600},children:o?.snapshot.primaryTitle||m})]}),o?.snapshot.secondaryTitle&&t(c,{variant:"caption",color:"textSecondary",style:{display:"block",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},children:o.snapshot.secondaryTitle})]}),t(r,{ml:2,style:{flexShrink:0},children:t(w,{label:`${a}%`,style:{background:n,color:d(n),fontWeight:600,minWidth:48,textAlign:"center",fontSize:12,height:28},size:"small"})})]})};export{v as TeamPerformanceCard};
|
|
2
|
-
//# sourceMappingURL=TeamPerformanceCard.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as m}from"react/jsx-runtime";import{useApi as h,configApiRef as S}from"@backstage/core-plugin-api";import{FormControl as b,TextField as L}from"@material-ui/core";import v from"@material-ui/lab/Autocomplete";import{useMemo as w,useEffect as y}from"react";import{useSearchParams as k}from"react-router-dom";import C from"react-use/lib/useLocalStorage";import{useGroupOptions as G}from"../../hooks/groups/useGroupOptions.esm.js";const P=({margin:d,onChange:c})=>{const{options:r,isLoading:o}=G(),[p,s]=k(),[a,l]=C("soundcheck.overview.groupRef",null),t=p.get("group"),u=h(S).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),n=w(()=>{if(!o&&r.length){if(t||a){const e=t??a;return r.find(f=>f.ref===e)??r[0]}else if(u)return r.find(e=>e.type===u)??r[0];return r[0]}return null},[u,o,r,t,a]);return y(()=>{if(!o&&r.length&&!t&&n){const e=new URLSearchParams(p.toString());e.set("group",n.ref),s(e,{replace:!0}),l(n.ref),c?.(n.ref)}},[o,r,t,n,p,s,l]),m(b,{style:{minWidth:200},children:m(v,{disableClearable:!0,options:r??[],loading:o,value:n,getOptionLabel:e=>e.name,groupBy:e=>e.key,onChange:(e,f)=>{const i=f?.ref;if(i&&t!==i){const g=new URLSearchParams(p.toString());g.set("group",i),s(g),l(i),c?.(i)}},renderInput:e=>m(L,{...e,label:"Group",InputLabelProps:{shrink:!0},placeholder:o?"Loading":"Select a group",margin:d})})})};export{P as TechInsightsGroupSelector};
|
|
2
|
-
//# sourceMappingURL=TechInsightsGroupSelector.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as s,jsx as r,Fragment as ee}from"react/jsx-runtime";import{useRouteRef as re,useApi as te,configApiRef as ie}from"@backstage/core-plugin-api";import{useTheme as ae,Box as a,FormControl as T,InputLabel as B,Select as N,MenuItem as h,Tabs as le,Tab as A}from"@material-ui/core";import{makeStyles as ne}from"@material-ui/core/styles";import{sequentialColorInterpolators as u}from"@nivo/colors";import{useState as D,useMemo as oe,useEffect as U}from"react";import{useSearchParams as se,useNavigate as ce}from"react-router-dom";import me from"react-use/lib/useLocalStorage";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as ue}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useGroupOptions as de}from"../../hooks/groups/useGroupOptions.esm.js";import{useHierarchicalTrackStatus as pe}from"../../hooks/heirarchy/useHierarchicalTrackStatus.esm.js";import{useGroupHierarchy as he}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{trackDetailsRouteRef as fe}from"../../routes.esm.js";import{getPercentageColor as ge}from"../../utils/colors.esm.js";import{TrackEntitiesTable as ve}from"../TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js";import xe from"./ColorLegend.esm.js";import ye from"./LowestPerformingTeams.esm.js";import Ce from"./NivoCirclePacking.esm.js";import be from"./NivoIcicle.esm.js";import ke from"./NivoSunburst.esm.js";import E from"./NivoTreemap.esm.js";import{TechInsightsGroupSelector as Se}from"./TechInsightsGroupSelector.esm.js";import we from"./TopPerformingTeams.esm.js";const _=ne(t=>({root:{display:"flex",flexDirection:"column",height:"100%",padding:t.spacing(2)},mainContent:{flex:1,display:"flex",flexDirection:"column",minHeight:0},controlsContainer:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:t.spacing(2)},leftControls:{display:"flex",gap:t.spacing(2),alignItems:"center"},rightControls:{display:"flex",gap:t.spacing(2),alignItems:"center"},visualizationContainer:{flex:1,minHeight:400,display:"flex",flexDirection:"column",gap:t.spacing(2),width:"100%"},visualizationHeader:{display:"flex",justifyContent:"flex-end",alignItems:"center",marginBottom:t.spacing(2)},visualizationBox:{flex:1,minHeight:500},visualizationWrapper:{display:"flex",flexDirection:"row",height:"calc(100% - 56px)"},colorLegendContainer:{marginLeft:t.spacing(2),display:"flex",alignItems:"center"},summaryContainer:{display:"flex",flexDirection:"row",width:"100%",minHeight:300,padding:24},summaryBox:{flex:1,minWidth:0,display:"flex",flexDirection:"column"},summaryBoxLeft:{marginRight:t.spacing(1)},summaryBoxRight:{marginLeft:t.spacing(1)},entitiesContainer:{padding:24}}));function V({interpolator:t,width:f=100,height:l=16,steps:o=40,style:d={}}){const n=`linear-gradient(to right, ${Array.from({length:o},(S,c)=>{const x=c/(o-1);return t(x)}).join(",")})`;return r(a,{style:{width:f,height:l,background:n,borderRadius:4,...d}})}function F(t){const{children:f,value:l,index:o,...d}=t,n=_();return r("div",{role:"tabpanel",hidden:l!==o,id:`tabpanel-${o}`,"aria-labelledby":`tab-${o}`,className:n.mainContent,...d,children:l===o&&f})}const Ie=()=>{const t=_(),f=ae(),[l,o]=se(),d=l.get("track")||"",[n,S]=D(d),c=l.get("group"),[x,L]=D(null),[w,O]=D(0),Z=ce(),q=re(fe),{options:m,isLoading:y}=de(),[I,z]=me("soundcheck.overview.groupRef",null),g=c,R=te(ie).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),C=oe(()=>{if(!y&&m.length){if(g||I){const e=g??I;return m.find(i=>i.ref===e)??m[0]}else if(R)return m.find(e=>e.type===R)??m[0];return m[0]}return null},[R,y,m,g,I]);U(()=>{if(!y&&m.length&&!g&&C){const e=new URLSearchParams(l.toString());e.set("group",C.ref),o(e,{replace:!0}),z(C.ref)}},[y,m,g,C,l,o,z]);const P=l.get("visualization")||"treemap",G=l.get("colors")||"default",{data:W}=ue({}),{data:M}=he(c||void 0,{enabled:!!c}),{data:v}=pe({trackId:n,groupRef:c||"",skip:!n||!c}),b=W?.edges.find(e=>e.node.id===n)?.node,J=e=>{const i=e.target.value;S(i);const p=new URLSearchParams(l.toString());p.set("track",i),c&&p.delete("group"),o(p)};U(()=>{n!==d&&S(d)},[d]);const K=e=>{const i=e.target.value;if(i!==null){const p=new URLSearchParams(l.toString());p.set("visualization",i),o(p),L(null)}},Q=e=>{const i=new URLSearchParams(l.toString());i.set("colors",e.target.value),o(i)},X=(e,i)=>{O(i)},H=e=>{if(!n)return;const i=q({trackId:n});Z(`${i}?owners=${encodeURIComponent(e)}`,{replace:!0})},$=[{label:"Default",value:"default",interpolator:e=>ge(f,e*100)},{label:"Viridis",value:"viridis",interpolator:u.viridis},{label:"Inferno",value:"inferno",interpolator:u.inferno},{label:"Plasma",value:"plasma",interpolator:u.plasma},{label:"Cividis",value:"cividis",interpolator:u.cividis},{label:"Warm",value:"warm",interpolator:u.warm},{label:"Cool",value:"cool",interpolator:u.cool},{label:"Cubehelix Default",value:"cubehelix_default",interpolator:u.cubehelixDefault},{label:"Blue Green",value:"blue_green",interpolator:u.blue_green},{label:"Blue Purple",value:"blue_purple",interpolator:u.blue_purple}],j=$.find(e=>e.value===G)?.interpolator??(e=>"#ccc"),k=e=>j(e/100),Y=()=>{if(!c||!n||!b)return null;const e={trackId:n,groupRef:c,track:b,hierarchyData:M,trackStatus:v,getColor:k,onZoomChange:L};switch(P){case"treemap":return r(E,{...e});case"icicle":return r(be,{...e});case"sunburst":return r(ke,{...e});case"circlepack":return r(Ce,{...e});default:return r(E,{...e})}};return s(a,{className:t.root,children:[s(a,{className:t.controlsContainer,children:[s(a,{className:t.leftControls,children:[r(Se,{margin:"dense"}),s(T,{style:{minWidth:200},children:[r(B,{id:"track-label",shrink:!0,children:"Track"}),r(N,{labelId:"track-label",value:n,onChange:J,label:"Track",children:W?.edges.map(e=>r(h,{value:e.node.id,children:e.node.name},e.node.id))})]})]}),s(a,{className:t.rightControls,children:[s(T,{style:{minWidth:120},children:[r(B,{children:"Visualization"}),s(N,{value:P,onChange:K,displayEmpty:!0,children:[r(h,{value:"treemap",children:"Treemap"}),r(h,{value:"icicle",children:"Icicle"}),r(h,{value:"sunburst",children:"Sunburst"}),r(h,{value:"circlepack",children:"Circle Pack"})]})]}),s(T,{style:{minWidth:80},children:[r(B,{children:"Color Scheme"}),r(N,{value:G,onChange:Q,renderValue:e=>{const i=$.find(p=>p.value===e)?.interpolator;return r(a,{display:"flex",alignItems:"center",pr:3,children:typeof i=="function"&&r(V,{interpolator:i,width:90,height:20})})},children:$.map(e=>r(h,{value:e.value,children:r(a,{display:"flex",alignItems:"center",children:e.interpolator&&r(V,{interpolator:e.interpolator,width:90,height:20})})},e.value))})]})]})]}),r(a,{className:t.mainContent,children:n&&c&&s(ee,{children:[r(a,{className:t.visualizationContainer,children:s(a,{className:t.visualizationWrapper,children:[r(a,{className:t.visualizationBox,children:Y()}),r(a,{className:t.colorLegendContainer,children:r(xe,{interpolator:j})})]})}),s(a,{style:{width:"100%"},children:[s(le,{value:w,onChange:X,indicatorColor:"primary",textColor:"primary",children:[r(A,{label:"Summary"}),r(A,{label:"Entities"})]}),r(F,{value:w,index:0,children:s(a,{className:t.summaryContainer,children:[r(a,{className:`${t.summaryBox} ${t.summaryBoxLeft}`,children:v&&r(ye,{trackStatus:v,getColor:k,onTeamClick:H})}),r(a,{className:`${t.summaryBox} ${t.summaryBoxRight}`,children:v&&r(we,{trackStatus:v,getColor:k,onTeamClick:H})})]})}),r(F,{value:w,index:1,children:r(a,{className:t.entitiesContainer,children:b&&r(ve,{track:b,initialPageSize:10,owners:x?[x]:[c],getColor:k})})})]})]})})]})};export{Ie as TechInsightsPage2};
|
|
2
|
-
//# sourceMappingURL=TechInsightsPage2.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as i,Fragment as n,jsx as o}from"react/jsx-runtime";import{Divider as t,Box as h,Typography as d,FormControlLabel as s,Switch as m}from"@material-ui/core";import{Facet as l}from"../TechHealth/Filters/types.esm.js";import{FacetFilter as p}from"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import g from"./hierarchy/Hierarchy.esm.js";import C from"./persistence/FavoriteViews.esm.js";import{getTechInsightsStyles as w}from"./styles.esm.js";const T=({toggles:e,onToggleChange:a})=>i("div",{children:[o(d,{variant:"subtitle2",children:"Display"}),i("div",{children:[o(s,{control:o(m,{checked:e?.showCards,onChange:()=>a?.("showCards",!e?.showCards)}),label:"Cards"}),o(s,{control:o(m,{checked:e?.showGraphs,onChange:()=>a?.("showGraphs",!e?.showGraphs)}),label:"Graphs"}),o(s,{control:o(m,{checked:e.showTables,onChange:()=>a("showTables",!e.showTables)}),label:"Tables"})]})]}),b=({selectedView:e,toggles:a,onToggleChange:c})=>{const r=w();return i("div",{className:r.sidebar,style:{paddingTop:4},children:[e==="Comparison"&&i(n,{children:[o(t,{className:r.divider}),o(C,{onToggleChange:c})]}),i(h,{children:[o(t,{className:r.divider}),o(p,{facet:l.EntityOwner}),o(t,{className:r.divider}),o(g,{}),o(t,{className:r.divider})]}),e==="Comparison"&&i(n,{children:[o(p,{facet:l.Check}),o(t,{className:r.divider})]}),o(p,{facet:l.Track}),o(t,{className:r.divider}),e==="Comparison"&&o(T,{selectedView:e,toggles:a,onToggleChange:c})]})};export{b as TechInsightsSidebar};
|
|
2
|
-
//# sourceMappingURL=TechInsightsSidebar.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{makeStyles as m,alpha as p,FormControl as u,Select as g,MenuItem as f}from"@material-ui/core";import{useSearchParams as C}from"react-router-dom";const S=m(o=>({root:{width:"100%",minWidth:250},textField:{"& $notchedOutline":{borderColor:p(o.page.fontColor,.25)},"&:hover $notchedOutline":{borderColor:o.page.fontColor}},input:{backgroundColor:"transparent",color:o.page.fontColor},clearIndicator:{color:o.page.fontColor},popupIndicator:{color:o.page.fontColor},notchedOutline:{}}),{name:"SoundcheckTechInsightsViewSelector"}),b=({margin:o,baseClass:l,selectedView:n,setSelectedView:a})=>{const c=S(),[i,s]=C(),d=["Tracks","Comparison"];function h(e){if(e&&e!==n){a(e);const r={...Object.fromEntries(i.entries()),view:e};s(r)}}return t(u,{style:{margin:o},fullWidth:!0,children:t(g,{labelId:"view-selector-label",value:n||"",onChange:e=>{const r=e.target.value;h(r)},className:`${c.select} ${l}`,margin:"dense",children:d.map(e=>t(f,{value:e,children:e},e))})})};export{b as TechInsightsViewSelector};
|
|
2
|
-
//# sourceMappingURL=TechInsightsViewSelector.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as o,jsx as e}from"react/jsx-runtime";import{useRouteRef as R}from"@backstage/core-plugin-api";import{useTheme as T,Paper as b,Typography as a,Tooltip as w,Box as i,Grid as I}from"@material-ui/core";import P from"lodash";import{useCallback as j}from"react";import{useNavigate as B,useSearchParams as F}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useCheckStatus as G}from"../../../hooks/aggregations/useCheckStatus.esm.js";import{checkDetailsRouteRef as L}from"../../../routes.esm.js";import{CategoryBar as $}from"../../CategoryBar/CategoryBar.esm.js";import{LoadingIndicator as D}from"../../LoadingIndicator/LoadingIndicator.esm.js";import{parseTogglesString as M}from"../TechInsightsPage.esm.js";import{useStyles as O,getPercentageColor as U,formatValue as E,StatusItem as h,ColorSwatch as H}from"./TileUtils.esm.js";const V=({check:l,existsWithinSoundcheck:s,filter:k,titleOverride:x,color:g})=>{const t=T(),u=B(),f=R(L),[d]=F(),S=M(d.get("toggles")).showGraphs,{data:r,isLoading:N}=G({checkId:l.id,filter:k},!0),n=r?.numberOfEntities??0,y=r?.passed?r.passed/n*100:0,c=O(),v=j(()=>{s&&u(`${f({checkId:l.id})}?${d.toString()}`)},[s,u,f,l.id,d]),C=x??l.name;return N?o(b,{className:c.card,onClick:v,children:[e(a,{variant:"h6",children:C}),e(D,{})]}):e(w,{title:e(a,{children:"Cannot navigate to check details page: this check exists only in results, and is not present in any yaml files nor configured via the NCUI."}),disableHoverListener:s,children:o(b,{className:c.card,onClick:v,children:[e(a,{variant:"h6",children:C}),r?e(i,{className:c.content,children:o(i,{width:"100%",children:[o(i,{mb:2,children:[e(a,{variant:"caption",color:"textSecondary",display:"block",align:"left",children:"Current"}),o(a,{variant:"h1",style:{color:U(t,Math.floor(y))},children:[Math.floor(y),"%"]})]}),e(a,{variant:"caption",color:"textSecondary",display:"block",align:"left",children:"Check Summary"}),e(i,{className:c.categoryBarContainer,children:e($,{data:P.map(status,(m,p)=>({category:p,value:m})),valueFormatter:E,categories:["passed","failed","notReported"],categoryFormatter:m=>m.replace(/\b\w/g,p=>p.toUpperCase()),colors:[t.palette.success.main,t.palette.error.main,t.palette.text.disabled]})}),o(I,{container:!0,spacing:0,children:[e(h,{label:"Passing",value:r?.passed??0,total:n,color:t.palette.success.main}),e(h,{label:"Failing",value:r?.failed??0,total:n,color:t.palette.error.main}),e(h,{label:"Not Reported",value:r?.notReported??0,total:n,color:t.palette.text.disabled})]})]})}):e(i,{margin:"auto",children:e(a,{variant:"body2",children:"No Data"})}),e(i,{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"flex-end",style:{paddingTop:"1.5rem"},children:g&&S&&e(H,{color:g,style:{width:"80%",height:"1.5rem",borderRadius:4,border:"1px solid #ccc"}})})]})})};export{V as CheckStatusTile};
|
|
2
|
-
//# sourceMappingURL=CheckStatusTile.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as a,jsx as i}from"react/jsx-runtime";import{Grid as d,Box as g,Typography as l}from"@material-ui/core";import{makeStyles as p}from"@material-ui/core/styles";import{interpolateRgb as m}from"d3-interpolate";import{scaleLinear as h}from"d3-scale";const s=p(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,height:"100%",padding:e.spacing(2),cursor:"pointer","&:hover":{backgroundColor:e.palette.action.hover}},content:{display:"flex"},item:{display:"flex",justifyContent:"space-between",alignItems:"center"},legendDash:{width:e.spacing(2),height:e.spacing(1),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,marginRight:e.spacing(2)},categoryBarContainer:{width:"100%",height:e.spacing(1),marginBottom:e.spacing(1)}})),y=({color:e})=>a("div",{style:{display:"flex",alignItems:"center",marginBottom:4},children:[i("span",{style:{fontSize:12,marginRight:4},children:"Graph Color:"}),i("span",{style:{display:"inline-block",width:14,height:14,backgroundColor:e,borderRadius:3,border:"1px solid #ccc"}})]}),r=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString(),f=({label:e,value:t,total:o,color:c})=>{const n=s();return a(d,{item:!0,xs:12,className:n.item,children:[a(g,{className:n.category,children:[i("span",{className:n.legendDash,style:{backgroundColor:c}}),i(l,{variant:"body2",children:e})]}),o&&a(l,{variant:"body2",children:[r(t)," of ",r(o)," (",Math.round(t/o*100),"%)"]})]})},x=(e,t)=>h().domain([0,50,100]).range([e.palette.error.main,e.palette.warning.main,e.palette.success.main]).interpolate(m.gamma(2.2))(t);export{y as ColorSwatch,f as StatusItem,r as formatValue,x as getPercentageColor,s as useStyles};
|
|
2
|
-
//# sourceMappingURL=TileUtils.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as l,jsx as e}from"react/jsx-runtime";import{useRouteRef as v}from"@backstage/core-plugin-api";import{useTheme as T,Paper as x,Typography as r,Tooltip as D,Box as i,Grid as $}from"@material-ui/core";import{useCallback as B}from"react";import{useSearchParams as L}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as P}from"../../../hooks/aggregations/useCertificationStatus.esm.js";import{trackDetailsRouteRef as j,campaignDetailsRouteRef as F}from"../../../routes.esm.js";import{CategoryBar as G}from"../../CategoryBar/CategoryBar.esm.js";import{LoadingIndicator as M}from"../../LoadingIndicator/LoadingIndicator.esm.js";import{parseTogglesString as O}from"../TechInsightsPage.esm.js";import{useStyles as U,getPercentageColor as _,formatValue as E,StatusItem as h,ColorSwatch as H}from"./TileUtils.esm.js";const V=({track:n,existsWithinSoundcheck:p,filter:N,titleOverride:C,color:f,campaignId:m})=>{const a=T(),g=v(j),u=v(F),[s]=L(),S=O(s.get("toggles")).showGraphs,{data:y,isLoading:w}=P({trackId:n.id,filter:N},!0),t=y?.certificationStatus.statusByLevel[0],c=y?.certificationStatus.numberOfEntities??0,o=t?t.passed/c*100:0,d=U(),b=B(()=>{m?window.open(`${u({campaignId:m})}?${s.toString()}`,"_blank"):p&&window.open(`${g({trackId:n.id})}?${s.toString()}`,"_blank")},[m,p,g,n.id,s,u]),k=C??n.name;return w?l(x,{className:d.card,onClick:b,children:[e(r,{variant:"h6",children:k}),e(M,{})]}):e(D,{title:e(r,{children:"Cannot navigate to track details page: this track exists only in results, and is not present in any yaml files nor configured via the NCUI."}),disableHoverListener:p,children:l(x,{className:d.card,onClick:b,children:[e(i,{display:"flex",flexDirection:"column",alignItems:"flex-start",mb:1,children:e(r,{variant:"h6",children:k})}),!t||isNaN(o)?e(i,{margin:"auto",children:e(r,{variant:"body2",children:"No Data"})}):e(i,{className:d.content,children:l(i,{width:"100%",children:[l(i,{mb:2,children:[e(r,{variant:"caption",color:"textSecondary",display:"block",align:"left",children:"Current"}),l(r,{variant:"h1",style:{color:_(a,Math.floor(o))},children:[!isNaN(o)&&`${Math.floor(o)}%`,isNaN(o)&&"No Data"]})]}),e(r,{variant:"caption",color:"textSecondary",display:"block",align:"left",children:"Check Summary"}),e(i,{className:d.categoryBarContainer,children:e(G,{data:t,valueFormatter:E,categories:["passed","failed","notReported"],categoryFormatter:R=>R.replace(/\b\w/g,I=>I.toUpperCase()),colors:[a.palette.success.main,a.palette.error.main,a.palette.text.disabled]})}),l($,{container:!0,spacing:0,children:[e(h,{label:"Passing",value:t.passed,total:c,color:a.palette.success.main}),e(h,{label:"Failing",value:t.failed,total:c,color:a.palette.error.main}),e(h,{label:"Not Reported",value:t.notReported,total:c,color:a.palette.text.disabled})]})]})}),t&&!isNaN(o)&&e(i,{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"flex-end",style:{paddingTop:"1.5rem"},children:f&&S&&e(H,{color:f,style:{width:"80%",height:"1.5rem",borderRadius:4,border:"1px solid #ccc"}})})]})})};export{V as TrackStatusTile};
|
|
2
|
-
//# sourceMappingURL=TrackStatusTile.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as l}from"react/jsx-runtime";import{useApi as p}from"@backstage/core-plugin-api";import{entityPresentationApiRef as u}from"@backstage/plugin-catalog-react";import{useTheme as c}from"@material-ui/core";import{TeamPerformanceListCard as f}from"./TeamPerformanceListCard.esm.js";const g=({trackStatus:e,getColor:s,limit:a=3,onTeamClick:r})=>{const o=c(),i=p(u),m=(e.children||[]).filter(t=>t.status.passed+t.status.failed+t.status.warning+t.status.error+t.status.notReported>0&&(t.status.allPassPercentage??0)>80).sort((t,n)=>(n.status.allPassPercentage??0)-(t.status.allPassPercentage??0)).slice(0,a).map(t=>({groupRef:t.groupRef,teamName:i.forEntity(t.groupRef).snapshot.primaryTitle,passPercentage:t.status.allPassPercentage??0}));return l(f,{title:"Top Performing Teams",titleColor:o.palette.success.main,teams:m,getColor:s,onTeamClick:r,emptyMessage:"No teams have reached the 80% mark yet, keep pushing!"})};export{g as default};
|
|
2
|
-
//# sourceMappingURL=TopPerformingTeams.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as g,jsx as i}from"react/jsx-runtime";import{Typography as h,Grid as r}from"@material-ui/core";import{Skeleton as C}from"@material-ui/lab";import{useMemo as T}from"react";import{useSearchParams as G}from"react-router-dom";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as I}from"../../hooks/campaigns/useGetCampaigns.esm.js";import{useGetAllTracks as v}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{GroupSelector as b}from"../GroupSelector/GroupSelector.esm.js";import{Facet as w}from"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as L}from"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{getTechInsightsStyles as S}from"./styles.esm.js";import{TrackStatusTile as x}from"./Tiles/TrackStatusTile.esm.js";const F=({tracksConnection:e,campaignsConnection:c})=>{const o=S(),[m]=G(),d=c?.edges.map(({node:t})=>t.id)||[],{data:f,isLoading:s}=I({ids:d},!0,!0),a=m.get("entityOwner"),u=a?a.split(","):void 0,{getSelectedFacetValues:y}=L(),n=T(()=>y(w.Track),[y]);if(s)return i(r,{item:!0,className:o.content,children:i(h,{variant:"body1",color:"textSecondary",children:"Loading campaigns..."})});const N=f?.edges.map(t=>t.node),p=e?.edges.filter(({node:t})=>t.draft?!1:n.length===0?!0:n.includes(t.id)),l=N?.filter(t=>t.archived?!1:t&&n.length===0?!0:n.includes(t.id));return(p===void 0||p.length===0)&&(l===void 0||l.length===0)?i(r,{item:!0,className:o.content,children:i(h,{variant:"body1",color:"textSecondary",children:"No tracks or campaigns found."})}):g(r,{container:!0,spacing:2,children:[p?.map(({node:t})=>i(r,{item:!0,className:o.gridItem,children:i(x,{track:t,filter:a?{"relations.ownedBy":u}:void 0,existsWithinSoundcheck:!0})},t.id)),l?.map(({id:t,track:k})=>i(r,{item:!0,className:o.gridItem,children:i(x,{track:k,campaignId:t,filter:a?{"relations.ownedBy":u}:void 0,existsWithinSoundcheck:!0})},k.id))]})},j=()=>{const e=S(),{data:c,isLoading:o}=v({types:["standard"]}),{data:m,isLoading:d}=v({types:["campaign"]});return o||d?g("div",{className:e.root,children:[g("div",{className:e.sidebar,children:[i(h,{variant:"caption",color:"textSecondary",children:"Group"}),i(b,{margin:"dense",searchParam:"owners"})]}),i("div",{className:e.content,children:i(r,{container:!0,spacing:2,children:[...Array(12)].map((f,s)=>i(r,{item:!0,className:e.gridItem,children:i(C,{variant:"rect",height:200})},s))})})]}):i(F,{tracksConnection:c,campaignsConnection:m})};export{j as TrackCardGrid};
|
|
2
|
-
//# sourceMappingURL=TrackCardGrid.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import{Box as t}from"@material-ui/core";import{getTechInsightsStyles as m}from"./styles.esm.js";import{TrackCardGrid as c}from"./TrackCardGrid.esm.js";const e=()=>{const o=m();return r(t,{className:o.content,children:r(c,{})})};export{e as TrackCardGridBox};
|
|
2
|
-
//# sourceMappingURL=TrackCardGridBox.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{rgb as a}from"d3-color";function x(o){const r=a(o.formatHex());if(!r)return 0;const t=c=>{const f=c/255;return f<=.03928?f/12.92:Math.pow((f+.055)/1.055,2.4)},e=t(r.r),n=t(r.g),u=t(r.b);return .2126*e+.7152*n+.0722*u}function b(o,r){const t=x(a(o))+.05,e=x(a(r))+.05;return t>e?t/e:e/t}function p(o,r=4.5,t=10,e=.5){const n=a(o);if(!n)return"#222";const u=x(n)>.5;let c=n,f={color:n.formatHex(),ratio:0};for(let i=1;i<=t;i++){c=u?n.darker(i*e):n.brighter(i*e);const m=c.formatHex(),g=b(o,m);if(g>f.ratio&&(f={color:m,ratio:g}),g>=r)return m}const s=b(o,"#000"),l=b(o,"#fff");return s>=r&&s>l?"#000":l>=r&&l>s?"#fff":f.color}export{p as getContrastTextColor};
|
|
2
|
-
//# sourceMappingURL=colorContrast.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as d,jsx as t}from"react/jsx-runtime";import{useApi as C}from"@backstage/core-plugin-api";import{entityPresentationApiRef as E}from"@backstage/plugin-catalog-react";import{makeStyles as L,Box as l,IconButton as b}from"@material-ui/core";import w from"@material-ui/icons/ArrowDropDown";import z from"@material-ui/icons/ArrowDropUp";import{forwardRef as B,useState as G,useEffect as g}from"react";import{useDescendantsOfGroups as I}from"../../../hooks/heirarchy/useGetDescendentsOfGroups.esm.js";const N=L(e=>({nodeRow:{display:"flex",alignItems:"center",marginBottom:e.spacing(.5)},loading:{fontStyle:"italic",color:e.palette.text.secondary}})),y=B(({group:e,level:a=0,selected:c,onSelect:f,onExpandChange:n},h)=>{const m=N(),[o,u]=G(!1),x=C(E),{data:s,isLoading:r}=I([e.entityRef],o),R=()=>{u(i=>!i)};g(()=>{n&&n()},[o,r,s,n]),g(()=>{!r&&o&&n&&n()},[o,r,n]);const S=i=>{f(e.entityRef,i.target.checked)},k={marginLeft:`${a*20}px`};return d("div",{ref:h,"data-group-id":e.entityRef,children:[d(l,{className:m.nodeRow,style:k,children:[t(b,{size:"small",onClick:R,children:o?t(z,{fontSize:"small"}):t(w,{fontSize:"small"})}),t("input",{type:"checkbox",checked:c.has(e.entityRef),onChange:S}),t("label",{children:x.forEntity(e.entityRef).snapshot.primaryTitle})]}),o&&r&&t(l,{className:m.loading,style:{marginLeft:`${(a+1)*20}px`},children:"Loading..."}),o&&s&&s.map(({group:i,subGroups:v})=>t(l,{children:v.map(p=>t(y,{group:p,level:a+1,selected:c,onSelect:f,onExpandChange:n},p.entityRef))},i.entityRef))]})});export{y as GroupNode};
|
|
2
|
-
//# sourceMappingURL=GroupNode.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as i,jsxs as j}from"react/jsx-runtime";import{useApi as z}from"@backstage/core-plugin-api";import{entityPresentationApiRef as P}from"@backstage/plugin-catalog-react";import{makeStyles as H,Box as L,TextField as N}from"@material-ui/core";import{useVirtualizer as V}from"@tanstack/react-virtual";import{useState as l,useRef as A,useEffect as S,useCallback as I,useMemo as O}from"react";import{useSearchParams as k}from"react-router-dom";import{useRootGroups as B}from"../../../hooks/heirarchy/useRootGroups.esm.js";import{CollapsablePanel as G}from"../../CollapsablePanel/CollapsablePanel.esm.js";import{Facet as M}from"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as D}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{VirtualRow as Q}from"./VirtualRow.esm.js";const v=H(t=>({root:{display:"flex",flexDirection:"column",height:"100%"},searchField:{margin:t.spacing(.5,0,1,0),"&& input":{margin:t.spacing(1,0,0,0),padding:`${t.spacing(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"}},scrollPane:{maxHeight:300,overflowY:"auto",marginTop:t.spacing(1),position:"relative"},virtualRow:{margin:0,padding:0,boxSizing:"border-box"}}));function W(t,o){const[m,n]=l(t);return S(()=>{const a=setTimeout(()=>n(t),o);return()=>clearTimeout(a)},[t,o]),m}function Y(){const t=v(),{data:o,isLoading:m}=B(!0),[n,a]=k(),{setSelectedFacetValues:d}=D(),[C,f]=l(new Set),[E,R]=l(!1),[g,b]=l(""),h=W(g,300),y=z(P),x=A(null);S(()=>{const e=new Set;n.get("entityOwner")?.split(",").forEach(r=>{r&&e.add(r)}),f(e)},[n]);const T=I((e,r)=>{f(F=>{const s=new Set(F);r?s.add(e):s.delete(e);const c=Array.from(s);return d(M.EntityOwner,c),a(u=>(u.set("entityOwner",c.join(",")),u.set("owners",c.join(",")),u)),s})},[a,d]),w=O(()=>o?.filter(e=>y.forEntity(e.entityRef).snapshot.primaryTitle.toLowerCase().includes(h.toLowerCase()))??[],[o,h,y]),p=V({count:w.length,getScrollElement:()=>x.current,estimateSize:()=>32,measureElement:e=>e.getBoundingClientRect().height,overscan:3});return m?i("div",{children:"Loading root groups..."}):o?i(G,{label:"Hierarchy",tooltip:"Hierarchy of groups",isExpanded:E,setIsExpanded:R,children:j(L,{className:t.root,children:[i(N,{className:t.searchField,fullWidth:!0,placeholder:"Search for Group",value:g,onChange:e=>b(e.target.value)}),i("div",{ref:x,className:t.scrollPane,children:i("div",{style:{height:p.getTotalSize(),width:"100%",position:"relative"},children:p.getVirtualItems().map(e=>{const r=w[e.index];return i(Q,{index:e.index,group:r,start:e.start,selected:C,onSelect:T,virtualizer:p},r.entityRef)})})})]})}):i("div",{children:"No root groups found."})}export{Y as default,v as useHierarchyStyles};
|
|
2
|
-
//# sourceMappingURL=Hierarchy.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import{useRef as u}from"react";import{GroupNode as p}from"./GroupNode.esm.js";import{useHierarchyStyles as d}from"./Hierarchy.esm.js";function m({group:t,start:o,index:n,selected:i,onSelect:a,virtualizer:l}){const s=d(),e=u(null);return r("div",{ref:e,className:s.virtualRow,"data-index":n,"data-group-id":t.entityRef,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${o}px)`},children:r(p,{group:t,selected:i,onSelect:a,onExpandChange:()=>{e.current&&l.measureElement(e.current)}})})}export{m as VirtualRow};
|
|
2
|
-
//# sourceMappingURL=VirtualRow.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const g=(n,o,i,d)=>{const t=d.forEntity(n.entityRef).snapshot.primaryTitle,s=n.entityRef,c=o[s]?.status,p=i(c?.allPassPercentage||0),r=n.ownedEntityRefs?.length||0;if(!n.children||Object.keys(n.children).length===0){const e=r;return e===0?void 0:{id:t,name:t,entityRef:s,value:e,numberOfEntities:r,color:p,passPercentage:c?.allPassPercentage||0,children:[]}}const f=Object.values(n.children).map(e=>g(e,o,i,d)).filter(e=>e!==void 0),u=f.filter(e=>typeof e.passPercentage=="number"&&(e.value===void 0||e.value>0)),v=u.reduce((e,a)=>e+(a.passPercentage||0)*(a.value||0),0),l=u.reduce((e,a)=>e+(a.value||0),0),h=c?.allPassPercentage||0,P=l>0?(v+h*r)/l:h,y=l+r;return{id:t,name:t,entityRef:s,numberOfEntities:y,color:i(P),children:f,passPercentage:P}};export{g as hierarchyToNivo};
|
|
2
|
-
//# sourceMappingURL=hierarchyToNivo.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as r,jsx as a}from"react/jsx-runtime";import{Box as M,TextField as C,Typography as T,Table as ee,TableHead as ie,TableRow as A,TableCell as m,TableSortLabel as ae,TableBody as te,Tooltip as oe,Button as h,Menu as ne,MenuItem as re,Dialog as le,DialogTitle as se,DialogContent as ce,DialogActions as de}from"@material-ui/core";import{makeStyles as pe}from"@material-ui/core/styles";import{useState as s,useMemo as me,useCallback as he}from"react";import{useSearchParams as ge}from"react-router-dom";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useSavedViews as ue}from"../../../hooks/savedViews/useSavedViews.esm.js";import{useDeleteView as we}from"../../../hooks/savedViews/useDeleteView.esm.js";import{useSaveView as ve}from"../../../hooks/savedViews/useSaveView.esm.js";import{CollapsablePanel as fe}from"../../CollapsablePanel/CollapsablePanel.esm.js";import{Facet as l}from"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as Ce}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{parseTogglesString as Te}from"../TechInsightsPage.esm.js";const be=pe(e=>({root:{width:"100%",minWidth:250,position:"relative",display:"flex",flexDirection:"column",padding:e.spacing(0,0,0,0),margin:e.spacing(0,0,1,0)},searchField:{margin:e.spacing(.5,0,1,0),"&& input":{margin:e.spacing(1,0,0,0),padding:`${e.spacing(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"}},footer:{marginTop:e.spacing(1),borderTop:`1px solid ${e.palette.divider}`,padding:e.spacing(0),margin:e.spacing(1),textAlign:"center"},fullWidthButton:{width:"100%"},dialogTextField:{marginBottom:e.spacing(1)},tableWrapper:{marginTop:e.spacing(1)},tableButtonCell:{paddingTop:0,paddingBottom:0,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),"&:last-child":{paddingRight:e.spacing(.5)}},denseRow:{height:"32px","& td, & th":{paddingTop:e.spacing(1),paddingBottom:e.spacing(1),paddingLeft:e.spacing(1),paddingRight:e.spacing(1)}},errorText:{marginTop:e.spacing(1),color:e.palette.error.main}})),O="tech-insights",xe=({onToggleChange:e})=>{const n=be(),{views:b,isLoading:g}=ue(O),{saveView:z,isSavingView:I,saveError:x}=ve(),{deleteView:$}=we(),[G,H]=s(!1),[u,P]=s(""),[w,q]=s("asc"),[y,k]=s(null),[S,V]=s(null),[J,N]=s(!1),[B,F]=s(""),[D,E]=s(""),[K]=ge(),{setManySelectedFacetValues:L}=Ce(),Q=()=>{q(i=>i==="asc"?"desc":"asc")},U=(i,t)=>{i.preventDefault();const o=i.currentTarget;k(o),V(t)},R=()=>{k(null),V(null)},X=()=>{S&&$(S),R()},W=me(()=>{const i=u.toLowerCase();return b?.savedViews?.views.filter(t=>t.name.toLowerCase().includes(i))?.sort((t,o)=>w==="asc"?t.name.localeCompare(o.name):o.name.localeCompare(t.name))??[]},[b,u,w]),Y=()=>N(!0),v=()=>{N(!1),F(""),E("")},Z=he(i=>{const t=i.data??{};if(t.toggles){const d=Te(t.toggles);e("showGraphs",d.showGraphs),e("showCards",d.showCards),e("showTables",d.showTables)}const o=[],c=[];Object.entries(t).forEach(([d,j])=>{if(j){let p;switch(d){case"entityOwner":p=l.EntityOwner;break;case"track":p=l.Track;break;case"check":p=l.Check;break}p&&(o.push(p),c.push(String(j).split(",")))}});const f=Object.values(o);f.includes(l.Track)||(o.push(l.Track),c.push([])),f.includes(l.Check)||(o.push(l.Check),c.push([])),f.includes(l.EntityOwner)||(o.push(l.EntityOwner),c.push([])),L(o,c)},[e,L]),_=()=>{const i={};for(const[t,o]of K.entries())i[t]=o;z({data:i,name:B,description:D,type:O}),v()};return r(M,{className:n.root,children:[a(fe,{label:"Favorite Views",tooltip:"A list of favorite views",isExpanded:G,setIsExpanded:H,children:r(M,{children:[a(C,{placeholder:"Search for View",value:u,onChange:i=>P(i.target.value),className:n.searchField,size:"small",fullWidth:!0}),g&&a(T,{variant:"body2",color:"textSecondary",children:"Loading saved views..."}),!g&&W.length>0?a("div",{className:n.tableWrapper,children:r(ee,{size:"small",children:[a(ie,{children:r(A,{children:[a(m,{children:a(ae,{active:!0,direction:w,onClick:Q,children:"View Name"})}),a(m,{children:"Action"})]})}),a(te,{children:W.map(i=>a(oe,{title:i.description||"No description",arrow:!0,children:r(A,{onContextMenu:t=>U(t,i.id),hover:!0,className:n.denseRow,children:[a(m,{children:i.name}),a(m,{className:n.tableButtonCell,children:a(h,{size:"small",variant:"contained",onClick:()=>Z(i),children:"Load"})})]},i.id)},`${i.id}-tooltip`))})]})}):!g&&a(T,{variant:"body2",color:"textSecondary",children:"No saved views found."}),a(ne,{open:!!y,anchorEl:y,onClose:R,children:a(re,{onClick:X,children:"Delete View"})}),r("div",{className:n.footer,children:[a(h,{variant:"outlined",color:"primary",onClick:Y,className:n.fullWidthButton,children:"Save Current View"}),!!x&&a(T,{variant:"body2",className:n.errorText,children:x.message})]})]})}),r(le,{open:J,onClose:v,children:[a(se,{style:{marginBottom:0,paddingBottom:0},children:"Save Current View"}),r(ce,{children:[a(C,{label:"View Name",value:B,onChange:i=>F(i.target.value),className:n.dialogTextField,fullWidth:!0}),a(C,{label:"Description",value:D,onChange:i=>E(i.target.value),className:n.dialogTextField,fullWidth:!0,multiline:!0,minRows:1,maxRows:10,InputProps:{style:{overflow:"auto",maxHeight:300}}})]}),r(de,{children:[a(h,{onClick:v,children:"Cancel"}),a(h,{onClick:_,color:"primary",variant:"contained",disabled:I,children:"Save"})]})]})]})};export{xe as default};
|
|
2
|
-
//# sourceMappingURL=FavoriteViews.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{makeStyles as a}from"@material-ui/core";const o=a(e=>({root:{display:"flex",height:"100%"},header:{padding:e.spacing(2),borderBottom:`1px solid ${e.palette.divider}`,marginBottom:e.spacing(2)},filterSubsection:{border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius},sidebar:{width:"300px",padding:e.spacing(2)},content:{flexGrow:1,padding:e.spacing(2),overflow:"auto"},info:{fontSize:"1.2rem",marginTop:e.spacing(2),padding:e.spacing(2),backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadius,flexGrow:1,overflow:"auto",margin:e.spacing(2)},gridItem:{padding:e.spacing(1),width:"100%",[e.breakpoints.up("sm")]:{width:"50%"},[e.breakpoints.up("md")]:{width:"33.33%"},[e.breakpoints.up("lg")]:{width:"25%"},[e.breakpoints.up(1920)]:{width:"20%"}},divider:{marginTop:e.spacing(1),marginBottom:e.spacing(1)}}));export{o as getTechInsightsStyles};
|
|
2
|
-
//# sourceMappingURL=styles.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as f,jsx as e,Fragment as j}from"react/jsx-runtime";import{parseEntityRef as B}from"@backstage/catalog-model";import{EntityDisplayName as C}from"@backstage/plugin-catalog-react";import{makeStyles as D,Typography as G,Checkbox as N}from"@material-ui/core";import Q from"@material-ui/icons/Category";import A from"@material-ui/icons/Class";import M from"@material-ui/icons/Group";import P from"@material-ui/icons/Loop";import{toEntityFilterQuery as W}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as y}from"react";import{useGetEntityFacets as n}from"../../../hooks/catalog/useGetEntityFacets.esm.js";import{useGroupOptions as q}from"../../../hooks/groups/useGroupOptions.esm.js";import r from"../../MultiSelectFilter/MultiSelectFilter.esm.js";const z=D(t=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:t.spacing(2)}})),d=(t,{selected:i})=>f(j,{children:[e(N,{value:t,checked:i,color:"primary"}),e(C,{entityRef:t,hideIcon:!0})]}),H=({track:t,label:i,owners:g,setOwners:h,lifecycles:u,setLifecycles:b,types:F,setTypes:w,systems:x,setSystems:L})=>{const k=z(),o=W(t.filter),{options:l,isLoading:O}=q(),E=y(()=>l.map(s=>s.ref),[l]),{data:a,isLoading:R}=n("spec.lifecycle",o),{data:m,isLoading:T}=n("spec.type",o),{data:p,isLoading:S}=n("relations.partOf",o),c=y(()=>p?.filter(s=>{try{return B(s).kind.toLowerCase()==="system"}catch{return!1}}),[p]),v=(a||[]).length<=1,I=(m||[]).length<=1,$=(c||[]).length<=1;return f("div",{className:k.root,children:[i&&e(G,{variant:"caption",children:`${i}:`}),e(r,{name:"system",label:"System",icon:e(Q,{}),filters:x,setFilters:L,options:c??[],disabled:S||$,customRenderOption:d}),e(r,{name:"owner",label:"Owner",icon:e(M,{}),filters:g,setFilters:h,options:E??[],disabled:O,customRenderOption:d}),e(r,{name:"type",label:"Type",icon:e(A,{}),filters:F,setFilters:w,options:m??[],disabled:T||I}),e(r,{name:"lifecycle",label:"Lifecycle",icon:e(P,{}),filters:u,setFilters:b,options:a??[],disabled:R||v})]})};export{H as FilterBar};
|
|
2
|
-
//# sourceMappingURL=FilterBar.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as a}from"@backstage/core-plugin-api";import{useQuery as n}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";import{QueryKeys as u}from"../graphqlKeys.esm.js";const m=(t,i)=>{const o=a(c);return n([u.CertificationStatusHistories,t],async()=>{const e=new Map;return await Promise.all(t.map(async r=>{const s=await o.getCertificationStatusHistory(r);e.set(r,s)})),e},{enabled:i,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{m as useCertificationStatusHistories};
|
|
2
|
-
//# sourceMappingURL=useCertificationStatusHistories.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as n}from"@backstage/core-plugin-api";import{useQuery as a}from"@tanstack/react-query";import{soundcheckApiRef as u}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";const p=e=>{const s=n(u);return a([c.CertificationStatuses,e],async()=>{const r=[];return!e.trackId||!e.groups||e.groups.length===0||e.trackId==="-"?[]:(await Promise.all(e.groups.map(t=>{const o=s.getCertificationStatus({trackId:e.trackId,filter:{"relations.ownedBy":t}});return o.then(i=>{r.push({...i,group:t})}),o})),r)},{staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{p as useCertificationStatuses};
|
|
2
|
-
//# sourceMappingURL=useCertificationStatuses.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as c}from"@backstage/core-plugin-api";import{useQuery as n}from"@tanstack/react-query";import{soundcheckApiRef as p}from"../../api.esm.js";import{QueryKeys as a}from"../graphqlKeys.esm.js";const h=e=>{const s=c(p);return n([a.CheckStatuses,e],async()=>{const t=[];return!e.groupIds||e.groupIds.length===0||await Promise.all(e.groupIds.map(r=>{const o=s.getCheckStatus({checkId:e.checkId,filter:{"relations.ownedBy":r}});return o.then(u=>{t.push({checkStatus:u,group:r})}),o})),t},{enabled:!0,staleTime:10*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{h as useCheckStatusByGroups};
|
|
2
|
-
//# sourceMappingURL=useCheckStatusByGroups.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as o}from"@tanstack/react-query";import{soundcheckApiRef as i}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";const u=(e,t=!0)=>{const s=r(i);return o([c.CheckStatusHistories,e],async()=>s.getCheckStatusHistories(e),{enabled:t,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{u as useCheckStatusHistories};
|
|
2
|
-
//# sourceMappingURL=useCheckStatusHistories.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as c}from"@backstage/core-plugin-api";import{useQuery as a}from"@tanstack/react-query";import{soundcheckApiRef as l}from"../../api.esm.js";import{QueryKeys as m}from"../graphqlKeys.esm.js";const f=(e,i=!0)=>{const o=c(l);return a([m.CheckStatusHistoriesMultiFilter,e],async()=>{const t=[],u=e.map(async r=>{const s=o.getCheckStatusHistory(r);return s.then(n=>{t.push({...n,filter:r.filter})}),s});return await Promise.all(u),t},{enabled:i,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{f as useCheckStatusHistoriesMultiFilter};
|
|
2
|
-
//# sourceMappingURL=useCheckStatusHistoriesMultiFilter.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as r}from"@tanstack/react-query";import{soundcheckApiRef as t}from"../../api.esm.js";function u(e,s){const n=o(t);return r(["soundcheck/descendentsOfGroups",e],async()=>n.getDescendantsOfGroups(e),{enabled:s})}export{u as useDescendantsOfGroups};
|
|
2
|
-
//# sourceMappingURL=useGetDescendentsOfGroups.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";function n(e){const o=r(c);return t(["soundcheck/rootGroups"],async()=>o.getRootGroups(),{enabled:e,staleTime:1e3*60*60,cacheTime:1e3*60*60*4,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1})}export{n as useRootGroups};
|
|
2
|
-
//# sourceMappingURL=useRootGroups.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as i,identityApiRef as w}from"@backstage/core-plugin-api";import{useQueryClient as c,useMutation as l}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{QueryKeys as f}from"../graphqlKeys.esm.js";const p=()=>{const r=c(),o=i(m),n=i(w),{mutate:s,isLoading:a,error:u}=l(async e=>{const d=await n.getBackstageIdentity(),t=await o.deleteView({loggedInUser:d.userEntityRef,id:e});if(!t)throw new Error(`Failed to delete view with name ${e}.`);return t},{onSuccess:()=>r.invalidateQueries([f.SavedViews])});return{deleteView:s,isDeletingView:a,deletionError:u}};export{p as useDeleteView};
|
|
2
|
-
//# sourceMappingURL=useDeleteView.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as i,identityApiRef as w}from"@backstage/core-plugin-api";import{useQueryClient as v,useMutation as y}from"@tanstack/react-query";import{soundcheckApiRef as f}from"../../api.esm.js";import{QueryKeys as g}from"../graphqlKeys.esm.js";const V=()=>{const r=v(),a=i(f),s=i(w),{mutate:o,isLoading:n,error:u}=y(async({data:m,name:e,description:c,type:d})=>{const p=await s.getBackstageIdentity(),t=await a.saveView({loggedInUser:p.userEntityRef,name:e,description:c,data:m,type:d});if(!t)throw new Error(`Failed to save view with name ${e}.`);return t},{onSuccess:()=>r.invalidateQueries([g.SavedViews])});return{saveView:o,isSavingView:n,saveError:u}};export{V as useSaveView};
|
|
2
|
-
//# sourceMappingURL=useSaveView.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as e,identityApiRef as a}from"@backstage/core-plugin-api";import{useQuery as d}from"@tanstack/react-query";import{soundcheckApiRef as u}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";const m=t=>{const i=e(u),s=e(a),{data:o,isLoading:r}=d([c.SavedViews],async()=>{const n=await s.getBackstageIdentity();return i.getSavedViews({loggedInUser:n.userEntityRef,type:t})},{staleTime:10*60*1e3,refetchOnWindowFocus:!1});return{views:o,isLoading:r}};export{m as useSavedViews};
|
|
2
|
-
//# sourceMappingURL=useSavedViews.esm.js.map
|
|
File without changes
|
|
File without changes
|