@spotify/backstage-plugin-soundcheck 0.18.1 → 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 +40 -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/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/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/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.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 +1 -1
- 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/GithubConfigurator.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/SonarQubeConfigurator.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/ColorChip/ColorChip.esm.js +1 -1
- package/dist/components/EmptyState/EmptyState.esm.js +1 -1
- package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.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/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/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/Frequency/util.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchyChip.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/getAllOwnedEntityCount.esm.js +2 -0
- package/dist/components/{TechInsights → HierarchicalTechInsightsPage}/ColorLegend.esm.js +1 -1
- 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/QuickstartPage.esm.js +2 -2
- 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/headerUtil.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.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 +1 -1
- package/dist/components/TechInsights/SummaryTiles.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsCardsView.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsPage.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsTableView.esm.js +1 -1
- package/dist/components/TechInsights/TrackStatusCard.esm.js +2 -0
- package/dist/components/TechInsights/ViewModeControls.esm.js +1 -1
- package/dist/components/TechInsights/convertToCommonTrackStatus.esm.js +2 -0
- package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.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 +1 -1
- 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 +113 -115
- package/dist/hooks/campaigns/useCreateCampaign.esm.js +1 -1
- package/dist/hooks/campaigns/useGetCampaigns.esm.js +1 -1
- package/dist/hooks/catalog/useGetLimitedEntityRefs.esm.js +2 -0
- package/dist/hooks/collectors/useDeleteCollectorConfig.esm.js +2 -0
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js +1 -1
- package/dist/hooks/heirarchy/useGroupHierarchy.esm.js +1 -1
- package/dist/hooks/heirarchy/useGroupTypeHierarchy.esm.js +1 -1
- 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/useFeatureFlag.esm.js +1 -1
- package/dist/hooks/useLCPReporting.esm.js +2 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.esm.js +1 -1
- package/dist/utils/colors.esm.js +1 -1
- package/dist/utils/lcpReporting.esm.js +2 -0
- package/package.json +17 -15
- 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/WelcomeModal.esm.js +0 -2
- package/dist/components/TechInsights/ColorSchemeSelector.esm.js +0 -2
- package/dist/components/TechInsights/HierarchicalTechInsightsPage.esm.js +0 -2
- package/dist/components/TechInsights/HierarchyTable.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/SelectedNodeSidebar.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/FailingComponentsTable.esm.js +0 -2
- package/dist/components/TechInsights/TeamComparison/MultiCheckStatusHistoryChart.esm.js +0 -2
- package/dist/components/TechInsights/TeamPerformanceCard.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsChartView.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsPage2.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsViewSelector.esm.js +0 -2
- package/dist/components/TechInsights/Tiles/TileUtils.esm.js +0 -2
- package/dist/components/TechInsights/Tiles/TrackStatusCard.esm.js +0 -2
- package/dist/components/TechInsights/TopPerformingTeams.esm.js +0 -2
- package/dist/components/TechInsights/VisualizationBreadcrumb.esm.js +0 -2
- package/dist/components/TechInsights/colorContrast.esm.js +0 -2
- package/dist/components/TechInsights/findNodePath.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/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/useCheckStatusHistories.esm.js +0 -2
- package/dist/hooks/heirarchy/useGetDescendentsOfGroups.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
- /package/dist/components/{TechInsights → TeamStatusBar}/TeamStatusBar.esm.js +0 -0
- /package/dist/components/{TechInsights → TechInsightsGroupSelector}/TechInsightsGroupSelector.esm.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as i,jsxs as
|
|
1
|
+
import{jsx as i,jsxs as m,Fragment as G}from"react/jsx-runtime";import{useRouteRef as K}from"@backstage/core-plugin-api";import{EntityRefLink as Y}from"@backstage/plugin-catalog-react";import{usePermission as w}from"@backstage/plugin-permission-react";import{makeStyles as Z,Button as ee,Box as te,Tabs as ie,Tab as f}from"@material-ui/core";import{soundcheckTrackReadPermission as re,soundcheckTrackUpdatePermission as oe,toEntityFilterQuery as ae}from"@spotify/backstage-plugin-soundcheck-common";import{useState as se,useMemo as o,useCallback as ne}from"react";import{useNavigate as ce,useSearchParams as le,useParams as me}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as de}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as pe}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as ge}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import{useCheckStatuses as fe}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useLCPReporting as he}from"../../hooks/useLCPReporting.esm.js";import{trackEditRouteRef as ue}from"../../routes.esm.js";import{FilterSidebar as ke}from"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import{useTrackFilterSidebar as ye}from"../FilterSidebar/useTrackFilterSidebar.esm.js";import{toFilter as Ce}from"../FilterSidebar/util.esm.js";import{LevelsTable as ve}from"../LevelsTable/LevelsTable.esm.js";import{LoadingIndicator as Se}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as be}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as we}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContent as Fe}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../TechHealth/Filters/types.esm.js";import"../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"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{parseNumberOfDays as Te}from"../TechHealth/Filters/utils.esm.js";import{TopFailingChecksTable as Le}from"../TopFailingChecksTable/TopFailingChecksTable.esm.js";import{TrackEntitiesTable as Ne}from"./TrackEntitiesTable/TrackEntitiesTable.esm.js";import{TrackProgressCard as Ee}from"./TrackProgressCard.esm.js";const xe=Z(e=>({root:{height:"100%",background:e.palette.background.default},pageContent:{display:"flex",minHeight:`calc(100vh - ${e.spacing(15)}px)`,borderTop:`1px solid ${e.palette.divider}`,height:"100%"},mainContentArea:{flex:1,display:"flex",flexDirection:"column",minWidth:0},trackProgressContainer:{padding:e.spacing(2,0,2,2),borderBottom:`1px solid ${e.palette.divider}`},levelCard:{margin:e.spacing(1,0,2)},editButton:{marginLeft:"auto"},contentArea:{flex:1,padding:e.spacing(0,2)},trackEntitiesContainer:{marginTop:e.spacing(1)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}},tabs:{padding:e.spacing(2,2,0,2)}})),Re=()=>{const e=xe(),[a,F]=se("checksByLevel"),h=ce(),u=K(ue),[k]=le(),y=o(()=>Te(k.get("numberOfDays")),[k]),{owners:s,lifecycles:n,types:c,systems:l,stagedLifecycles:T,setStagedLifecycles:L,stagedOwners:N,setStagedOwners:E,stagedTypes:x,setStagedTypes:R,stagedSystems:P,setStagedSystems:B,hasFilterChanges:D,handleApplyFilters:I,handleClearFilters:A}=ye(),O=ne((d,q)=>{F(q)},[]),{trackId:r}=me(),p=o(()=>Ce({lifecycles:n,owners:s,types:c,systems:l}),[n,s,c,l]),{data:t,isLoading:g,isError:j}=de(r),{data:C,isLoading:M,isError:H}=pe({trackId:r,filter:p},!!r),{data:$,isError:z}=ge({trackId:r,filter:p,numberOfDays:y},!!r),{loading:V,allowed:W}=w({permission:re,resourceRef:r}),{loading:v,allowed:S}=w({permission:oe,resourceRef:r}),Q=o(()=>t?.ownerEntityRef?i(Y,{color:"inherit",entityRef:t.ownerEntityRef,className:e.ownerLink}):null,[t?.ownerEntityRef,e.ownerLink]),U=o(()=>!v&&S&&t?.isEditable?i(ee,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{h(u({trackId:t.id}))},children:"Edit Track"}):null,[S,e.editButton,u,v,h,t]),J=o(()=>t?.description?i(Fe,{className:e.headerDescription,content:t.description}):null,[e.headerDescription,t?.description]);we({title:t?.name,description:J,customSubtitle:Q,sectionRight:U}),he({routeName:"soundcheck-track-details",additionalAttributes:{trackId:r||"unknown",trackName:t?.name||"unknown",selectedView:a,filtersApplied:(s.length+n.length+c.length+l.length).toString(),ownersFilter:s.join(",")||"none",lifecyclesFilter:n.join(",")||"none",typesFilter:c.join(",")||"none",systemsFilter:l.join(",")||"none",numberOfDays:y.toString()}});const X=t?.levels?.flatMap(d=>d.checks)??[],{data:b}=fe({trackId:r,checkIds:X.map(d=>d.id),filter:p},!!t),_=o(()=>ae(t?.filter),[t]);return m(G,{children:[i(be,{entityName:"track",entityId:r,showNotFound:!g&&!t,showCannotView:!V&&!W}),g&&i(Se,{}),t&&i("div",{className:e.root,children:m("div",{className:e.pageContent,children:[i(ke,{trackFilter:_,stagedTypes:x,stagedLifecycles:T,stagedOwners:N,stagedSystems:P,onTypesChange:R,onLifecyclesChange:L,onOwnersChange:E,onSystemsChange:B,onApplyFilters:I,onClearFilters:A,hasFilterChanges:D}),m("div",{className:e.mainContentArea,children:[i("div",{className:e.trackProgressContainer,children:i(Ee,{track:t,status:C,history:$,isError:j||H||z})}),i(te,{className:e.tabs,children:m(ie,{value:a,onChange:O,indicatorColor:"primary",textColor:"primary",children:[i(f,{label:"Checks By Level",value:"checksByLevel"}),i(f,{label:"Top Failing Checks",value:"topFailingChecks"}),i(f,{label:"Entities",value:"entities"})]})}),m("div",{className:e.contentArea,children:[a==="checksByLevel"&&i("div",{className:e.levelCard,children:i(ve,{track:t,checkStatuses:b,isLoading:g||M})}),a==="entities"&&i("div",{className:e.trackEntitiesContainer,children:i(Ne,{track:t,lifecycles:n,owners:s,types:c,systems:l})}),a==="topFailingChecks"&&i("div",{className:e.levelCard,children:i(Le,{track:t,checkStatuses:b,certificationStatus:C?.certificationStatus})})]})]})]})})]})};export{Re as TrackPage};
|
|
2
2
|
//# sourceMappingURL=TrackPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as n}from"react/jsx-runtime";import{useTheme as
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import{useTheme as B,Box as L}from"@material-ui/core";import{makeStyles as x}from"@material-ui/core/styles";import{Skeleton as k}from"@material-ui/lab";import{useMemo as f}from"react";import{CategoryBar as N}from"../CategoryBar/CategoryBar.esm.js";import{getChartColors as $}from"../Charts/chartUtils.esm.js";const C=x(t=>({categoryBar:{"& .MuiBox-root > div":{height:"8px"}},skeleton:{height:"8px",width:"100%",margin:0,padding:0,display:"block"}})),S=({track:t,status:r,className:m})=>{const c=C(),i=B(),p=f(()=>{if(!r||!t)return{};const e={};let a=0,o=0;return(r.statusByLevel||[]).sort((s,l)=>l.ordinal-s.ordinal).forEach(({ordinal:s,cumulativelyPassed:l})=>{const g=t.levels.find(y=>y.ordinal===s)?.name??`Level ${s}`,u=l-o;e[g]=u,a+=u,o=l}),(r.statusByLevel||[]).reverse(),e["No Level"]=Math.max(0,r.numberOfEntities-a),e},[r,t]),v=f(()=>{if(!r||!t)return{};const e=$(i),a={};return(r.statusByLevel||[]).forEach(({ordinal:o})=>{const s=t.levels.find(l=>l.ordinal===o)?.name??`Level ${o}`;a[s]=e[o%e.length]}),a["No Level"]=i.palette.action.disabled,a},[i,r,t]);if(!t||!r)return n(k,{className:`${c.skeleton} ${m}`});const h=e=>e,d=(r.statusByLevel||[]).map(({ordinal:e})=>t.levels.find(a=>a.ordinal===e)?.name??`Level ${e}`);return d.push("No Level"),n(L,{className:m,style:{width:"100%"},children:n(N,{className:c.categoryBar,data:p,categories:d,categoryColors:v,showTooltip:!1,valueFormatter:e=>e.toString(),categoryFormatter:h})})};export{S as TrackStatusBar};
|
|
2
2
|
//# sourceMappingURL=TrackStatusBar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as a,jsxs as
|
|
1
|
+
import{jsx as a,jsxs as m}from"react/jsx-runtime";import{useTheme as w,Typography as v}from"@material-ui/core";import{makeStyles as b,createStyles as C}from"@material-ui/core/styles";import{Skeleton as f}from"@material-ui/lab";import{memo as T,useMemo as z,Fragment as L}from"react";import{compactNumberFormatter as y}from"../../utils/formatters.esm.js";import{getChartColors as O}from"../Charts/chartUtils.esm.js";const W=b(e=>C({container:{display:"grid",gridTemplateColumns:"3fr 2fr",gap:e.spacing(1),minWidth:0},item:{display:"flex",alignItems:"center",fontSize:"0.875rem",minWidth:0},legendDash:{width:e.spacing(2),height:e.spacing(.75),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",fontSize:"0.875rem",minWidth:0,flex:1},categoryText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.875rem",minWidth:0,flex:1},value:{fontSize:"0.875rem",color:e.palette.text.primary},valueCell:{justifyContent:"flex-end",whiteSpace:"nowrap"},percentage:{color:e.palette.text.secondary,marginLeft:e.spacing(1)},skeleton:{backgroundColor:e.palette.action.hover}})),j=T(({track:e,status:l})=>{const r=w(),t=W(),k=z(()=>{if(!e)return[{name:"",key:1,color:r.palette.action.hover,value:0},{name:"",key:2,color:r.palette.action.hover,value:0},{name:"",key:3,color:r.palette.action.hover,value:0}];const i=O(r);let s=0,c=0;const n=e.levels.sort((h,o)=>o.ordinal-h.ordinal).map(({name:h,ordinal:o})=>{const g=l?.statusByLevel.find(S=>S.ordinal===o)?.cumulativelyPassed??0,u=g-c,N={name:h??`Level ${o}`,key:o,color:i[o%i.length],value:u};return s+=u,c=g,N}).reverse();e.levels.reverse();const p=l?.numberOfEntities??0,x=Math.max(0,p-s);return n.push({name:"No Level",key:-1,color:r.palette.action.disabled,value:x}),n},[r,e,l]),d=l?.numberOfEntities??0;return a("div",{className:t.container,children:k.map(({name:i,key:s,color:c,value:n})=>{const p=d>0?Math.round(n/d*100):0;return m(L,{children:[a("div",{className:t.item,children:m("div",{className:t.category,children:[a("span",{className:t.legendDash,style:{backgroundColor:c}}),e?a(v,{className:t.categoryText,children:i}):a(f,{width:80,height:20,className:t.skeleton})]})}),a("div",{className:`${t.item} ${t.valueCell}`,children:e&&l?m(v,{className:t.value,children:[y(n)," of"," ",y(d),m("span",{className:t.percentage,children:["(",p,"%)"]})]}):a(f,{width:120,height:20,className:t.skeleton})})]},s)})})});export{j as TrackStatusTable};
|
|
2
2
|
//# sourceMappingURL=TrackStatusTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as y}from"react/jsx-runtime";import{TextField as G}from"@material-ui/core";import{Autocomplete as
|
|
1
|
+
import{jsx as y}from"react/jsx-runtime";import{makeStyles as A,TextField as G}from"@material-ui/core";import{Autocomplete as w}from"@material-ui/lab";import{sortBy as x,isEmpty as E}from"lodash";import{useState as I,useMemo as o}from"react";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 $}from"../../hooks/campaigns/useGetCampaigns.esm.js";import{useGetAllTracks as B}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetTracksApplicableEntityCount as F}from"../../hooks/tracks/useGetTracksApplicableEntityCount.esm.js";const j=A(a=>({input:{backgroundColor:a.palette.background.paper}})),D=({selectTrack:a,selectedTrackId:n,showArchived:d,showDraft:m,selectedGroupRef:h})=>{const T=j(),{data:s,isLoading:C}=B({}),{data:l,isLoading:v}=$({}),[S,b]=I(n??""),u=o(()=>new Set(l?.edges.filter(({node:t})=>t.archived).map(({node:t})=>t.track.id)??[]),[l?.edges]),r=o(()=>{let t=s?.edges?.map(({node:e})=>({id:e.id,name:e.name,type:e.type==="campaign"?"Campaign":"Track",draft:!!e.draft}))??[];return t=t?.filter(e=>(d||!u.has(e.id))&&(m||!e.draft)),x(t,"type")},[u,d,m,s?.edges]),{data:c,isLoading:f}=F(h??"",{ids:r.map(t=>t.id)}),p=o(()=>{if(f)return r;const t=c??[],e=r.map(i=>{const k=t.find(({id:L})=>L===i.id);return{...i,count:k?k.applicableEntityCount:void 0}}).filter(i=>i.count!==0);return E(e)?r:e},[c,f,r]),g=o(()=>p?.find(t=>t.id===n),[n,p]);return y(w,{loading:C||v,options:p,onChange:(t,e)=>a(e?.id??""),inputValue:S,value:g??null,getOptionLabel:t=>`${t.name}${t.count?` (${t.count})`:""}`,groupBy:t=>t.type,fullWidth:!0,onInputChange:(t,e)=>b(e),renderInput:t=>y(G,{...t,placeholder:"Select Track",className:T.input,style:{margin:0},margin:"dense",variant:"outlined"})},g?.id??"no-value")};export{D as TrackSelection};
|
|
2
2
|
//# sourceMappingURL=TrackSelection.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r,jsxs as
|
|
1
|
+
import{jsx as r,jsxs as d}from"react/jsx-runtime";import{useRouteRef as K,useApi as C,featureFlagsApiRef as Q}from"@backstage/core-plugin-api";import{usePermission as U}from"@backstage/plugin-permission-react";import{makeStyles as Y,Button as v,Grid as a}from"@material-ui/core";import{soundcheckTrackCreatePermission as Z}from"@spotify/backstage-plugin-soundcheck-common";import{useState as i,useEffect as _}from"react";import{useNavigate as ee}from"react-router-dom";import re from"react-use/lib/useDebounce";import{soundcheckApiRef as te}from"../../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as ae}from"../../../hooks/tracks/useGetAllTracks.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGetTrackOwners as ie}from"../../../hooks/tracks/useGetTrackOwners.esm.js";import{useImportTracks as oe}from"../../../hooks/tracks/useImportTracks.esm.js";import se from"../../../images/no-results.svg";import{trackCreateRouteRef as ne}from"../../../routes.esm.js";import{exportTracks as ce}from"../../../utils/export.esm.js";import{FilterDefault as w}from"../../../utils/filters.esm.js";import{EmptyState as S}from"../../EmptyState/EmptyState.esm.js";import{ImportExportPanel as le}from"../../ImportExportPanel/ImportExportPanel.esm.js";import{Pagination as me}from"../../Pagination/Pagination.esm.js";import{SearchFilters as pe}from"../../SearchFilters/SearchFilters.esm.js";import{TrackEmptyState as g,TrackNoResults as B}from"./TrackEmptyState.esm.js";import{TracksOverviewSkeleton as de}from"./TracksOverviewSkeleton.esm.js";import{TrackSummaryCard as ge}from"./TrackSummaryCard.esm.js";const ue=Y(t=>({headerButtons:{display:"flex",gap:t.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:t.spacing(0,0,1)},container:{padding:t.spacing(3),gap:t.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:t.spacing(1.5),paddingBottom:t.spacing(1.5)}})),fe=({tracksPerPage:t,currentCursor:N})=>{const o=ue(),[u,f]=i(N),[l,R]=i(""),[h,F]=i(w.Alpha),[k,I]=i(w.Owner),[T,O]=i(""),{data:E,isLoading:L}=ie();re(()=>{O(l)},500,[l]);const{loading:P,allowed:j}=U({permission:Z}),G=ee(),D=K(ne),y=()=>G(D()),{data:m,isLoading:s}=ae({ids:void 0,types:["standard","playlist"],first:t,after:u,orderAlphabetical:h,searchByOwner:k,searchByName:T}),n=m?.edges?.map(e=>e.node),[b,x]=i([]);_(()=>{f(void 0),x([])},[T]);const A=C(Q),H=!A.getRegisteredFlags().find(e=>e.name==="soundcheck-enable-track-creation")||A.isActive("soundcheck-enable-track-creation"),p=!j||!H,W=e=>{F(e.target.value)},$=e=>{I(e.target.value)},q=C(te),{mutateAsync:z}=oe(),J=async e=>z(e),M=async()=>{const e=await q.getTracks({orderAlphabetical:"asc"});return ce(e.edges.map(X=>X.node))};if(!s&&!n)return r(S,{title:g.title,description:g.description,imgSrc:se,action:!P&&r(v,{disabled:p,variant:"contained",color:"primary",onClick:y,children:g.callToAction})});let c;s?c=r(de,{}):n?.length?c=n?.map(e=>r(a,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`track card ${e.id}`,children:r(ge,{summary:e})},e.id)):c=r(a,{xs:12,item:!0,role:"listitem","aria-label":"result",children:r(S,{title:B.title,description:B.description})});const V=m?.pageInfo.hasNextPage||b?.length>0;return d(a,{container:!0,direction:"row",className:o.container,children:[d(a,{container:!0,className:o.header,children:[r(pe,{searchPlaceholder:"Search Available Tracks",isLoading:s||L,searchTerm:l,setSearchTerm:R,filterAlpha:h,handleAlphabeticalFilterChange:W,filterOwner:k,handleOwnerFilterChange:$,owners:E}),d(a,{item:!0,xs:4,className:o.headerButtons,children:[r(le,{resourceType:"track",disableImport:p,disableExport:s||!n?.length,onImport:J,onExport:M}),!P&&r(v,{disabled:p,variant:"contained",color:"primary",onClick:y,className:o.createButton,children:"Create Track"})]})]}),r(a,{container:!0,spacing:4,role:"list","aria-label":"tracks",children:c}),V&&r(a,{item:!0,xs:12,children:r(me,{response:m,listingsPerPage:t,cursor:u,setCursor:f,prevCursors:b,setPrevCursors:x,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})})]})};export{fe as TrackListPage};
|
|
2
2
|
//# sourceMappingURL=TrackListPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as m}from"react/jsx-runtime";import{useSearchParams as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import{useSearchParams as i}from"react-router-dom";import{useLCPReporting as p}from"../../hooks/useLCPReporting.esm.js";import{RESULTS_PER_PAGE as e}from"../../utils/filters.esm.js";import{TrackListPage as a}from"./TrackListPage/TrackListPage.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"../../routes.esm.js";import"js-yaml";import"lodash";import"../SummaryCard/SummaryCard.esm.js";import"./TrackListPage/TrackMetadata.esm.js";const s=()=>{const[o]=i(),r=o.get("tracksPerPage"),t=r?parseInt(r,10):e;return p({routeName:"soundcheck-tracks",additionalAttributes:{tracksPerPage:t.toString()}}),m(a,{tracksPerPage:t})};export{s as TracksPage};
|
|
2
2
|
//# sourceMappingURL=TracksPage.esm.js.map
|