@spotify/backstage-plugin-soundcheck 0.19.2 → 0.19.3
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 +34 -0
- package/config.d.ts +54 -1
- package/dist/api.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignPage/CampaignPage.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignPageBUI.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignPageDeprecated.esm.js +2 -0
- package/dist/components/{CampaignInsightsPage → CampaignPage}/CampaignStatusTile.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
- package/dist/components/Cards/CurrentStatusCard/CurrentStatusCard.esm.js +2 -0
- package/dist/components/Cards/CurrentStatusCard/CurrentStatusCardRow.esm.js +2 -0
- package/dist/components/Cards/DescriptionCard/DescriptionCard.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
- package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
- package/dist/components/CheckPage/utils.esm.js +1 -1
- package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +1 -1
- package/dist/components/CheckStatusBar/CheckStatusBarBUI.esm.js +2 -0
- package/dist/components/CheckStatusBar/CheckStatusBarCell.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckListPageDeprecated.esm.js +2 -0
- package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +2 -0
- package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
- package/dist/components/ChecksTable/ChecksTable.esm.js +2 -0
- package/dist/components/ChipSelector/ChipSelector.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorFactTable.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/BigQuery/BigQueryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.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/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/Jira/IssuesFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/validation.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/CollectorListPage/CollectorListPage.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/CustomCell/CustomCell.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateBUI.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoCampaigns.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoChecks.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoTracks.esm.js +2 -0
- package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.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/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
- package/dist/components/FilterSidebar/FilterSidebar.esm.js +1 -1
- package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
- package/dist/components/FilterSidebar/useTrackFilterSidebar.esm.js +1 -1
- package/dist/components/FilterSidebar/util.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/useLabelValueOptions.esm.js +2 -0
- package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +1 -1
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/LevelsTable/CheckRowContent.esm.js +1 -1
- package/dist/components/LevelsTable/LevelsTable.esm.js +1 -1
- package/dist/components/ListPageCustomActions/ListPageCustomActions.esm.js +2 -0
- package/dist/components/LoadingTableSkeleton/LoadingTableSkeleton.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/PageCustomActions/PageCustomActions.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -2
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
- package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +2 -0
- package/dist/components/TeamStatusBar/TeamStatusBar.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/TechInsightsPage.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsTableView.esm.js +1 -1
- package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
- package/dist/components/TimePeriodBar/TimePeriodBar.esm.js +1 -1
- package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +2 -0
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditView.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/TrackEntitiesTableBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackPageBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackPageDeprecated.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackListPageDeprecated.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
- package/dist/components/TracksPage/TracksListPageBUI.esm.js +2 -0
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +125 -117
- package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
- package/dist/hooks/catalog/useGetLimitedEntityRefs.esm.js +1 -1
- package/dist/hooks/catalog/useProfileImages.esm.js +2 -0
- package/dist/hooks/checks/useCheckDetails.esm.js +1 -1
- package/dist/hooks/checks/useCheckStatusTotals.esm.js +2 -0
- package/dist/hooks/entities/useTrackEntities.esm.js +1 -1
- 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/groups/useUsersGroupClaims.esm.js +1 -1
- package/dist/hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js +1 -1
- package/dist/hooks/tracks/useRecertifyTrack.esm.js +2 -0
- package/dist/hooks/tracks/useTracksApplicableToGroup.esm.js +1 -1
- package/dist/hooks/useConfirmationModal.esm.js +1 -1
- package/dist/hooks/useLoadTimeReporting.esm.js +2 -0
- package/dist/hooks/usePagination.esm.js +2 -0
- package/dist/hooks/useSearchName.esm.js +2 -0
- package/dist/utils/checks.esm.js +2 -0
- package/dist/utils/formatters.esm.js +1 -1
- package/dist/utils/helpers.esm.js +1 -1
- package/dist/utils/lcpReporting.esm.js +1 -1
- package/package.json +18 -27
- package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +0 -2
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +0 -2
- package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsCardsView.esm.js +0 -2
- package/dist/components/TechInsights/TrackStatusCard.esm.js +0 -2
- package/dist/components/TechInsights/ViewModeControls.esm.js +0 -2
- package/dist/components/TechInsights/convertToCommonTrackStatus.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +0 -2
- /package/dist/components/{CampaignInsightsPage → CampaignPage}/CampaignStatusHistoryTile.esm.js +0 -0
- /package/dist/components/{CampaignInsightsPage → CampaignPage}/DaysRemainingTile.esm.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as r,jsx as t}from"react/jsx-runtime";import{Link as U}from"@backstage/core-components";import{useApi as F,useRouteRef as Y}from"@backstage/core-plugin-api";import{entityPresentationApiRef as _}from"@backstage/plugin-catalog-react";import{makeStyles as q,useTheme as G,Box as i,Link as J,Typography as l,Chip as K,IconButton as z,CircularProgress as T,Tooltip as Q}from"@material-ui/core";import X from"@material-ui/icons/Close";import Z from"@material-ui/icons/ExpandLess";import ee from"@material-ui/icons/ExpandMore";import{useState as te,useEffect as oe,useCallback as ae}from"react";import{useSearchParams as ie}from"react-router-dom";import{useCheckStatuses as ne}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{trackCheckDetailsRouteRef as re}from"../../routes.esm.js";import{getContrastTextColor as R,getCheckStatusColor as le}from"../../utils/colors.esm.js";import{ColorChip as B}from"../ColorChip/ColorChip.esm.js";const se=q(e=>({checkLinkText:{color:"inherit",textDecoration:"none"},emptyStateIcon:{fontSize:e.typography.h3.fontSize,color:e.palette.text.secondary,opacity:.4,marginBottom:12},emptyStateText:{color:e.palette.text.secondary,textAlign:"center"},checksContainer:{flex:1,overflowY:"auto",minHeight:0},checksTitle:{fontWeight:"bold",marginBottom:4},levelHeader:{display:"flex",alignItems:"center",cursor:"pointer"},levelLabel:{fontWeight:"bold",letterSpacing:1,color:e.palette.text.secondary,marginBottom:2,flex:1},expandIcon:{fontSize:e.typography.body2.fontSize,color:e.palette.text.secondary},progressContainer:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginBottom:16},progressWrapper:{position:"relative",display:"inline-flex"},progressBackground:{position:"absolute",color:e.palette.divider},progressText:{position:"absolute",top:0,left:0,bottom:0,right:0,display:"flex",alignItems:"center",justifyContent:"center",fontSize:e.typography.body1.fontSize,fontWeight:"bold"},checkName:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","&:hover":{textDecoration:"underline"}},checkMessage:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},statusChip:{fontSize:e.typography.caption.fontSize,height:22,borderRadius:12,marginLeft:8,marginBottom:0},secondaryTitle:{display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",marginBottom:8,marginTop:2,lineHeight:1.4,paddingBottom:4},entityCount:{fontSize:e.typography.caption.fontSize},entityLabel:{fontSize:e.typography.caption.fontSize},entityContainer:{display:"flex",alignItems:"center",marginBottom:16},titleContainer:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:.5},titleContent:{display:"flex",alignItems:"center",minWidth:0},titleStatus:{display:"flex",alignItems:"center"},titleIcon:{display:"flex",alignItems:"center",marginRight:8},titleText:{minWidth:0,fontWeight:"bold"},emptyStateContainer:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",marginTop:2,marginBottom:1},tooltip:{color:e.palette.text.primary,fontSize:e.typography.caption.fontSize,borderRadius:e.shape.borderRadius,padding:e.spacing(1)},tooltipItem:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},tooltipCategory:{display:"flex",alignItems:"center",flex:1,fontSize:e.typography.body2.fontSize,marginRight:e.spacing(2)},tooltipValue:{fontSize:e.typography.body2.fontSize,color:e.palette.text.primary}})),L=e=>new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e),ce=({node:e,clearSelectedNode:W,checkIds:h,track:c,getColor:k,onTeamClick:A})=>{const f=G(),o=se(),P=F(_),S=Y(re),[j]=ie(),[O,N]=te(()=>c?.levels?new Set(c.levels.map(a=>a.ordinal)):new Set),g=e?P.forEntity(e.entityRef):void 0;oe(()=>{if(c?.levels){const a=new Set(c.levels.map(m=>m.ordinal));N(a)}},[c?.levels]);const D=a=>{N(m=>{const n=new Set(m);return n.has(a)?n.delete(a):n.add(a),n})},E=a=>a<50?{label:"Needs Attention",color:f.palette.error.main,textColor:R(f.palette.error.main)}:a<80?null:{label:"Healthy",color:f.palette.success.main,textColor:R(f.palette.success.main)},H=ae(a=>{switch(a){case"not-applicable":case"notApplicable":return"Not Applicable";case"not-reported":case"notReported":return"Not Reported";default:return a.charAt(0).toUpperCase()+a.slice(1)}},[])
|
|
1
|
+
import{jsxs as r,jsx as t}from"react/jsx-runtime";import{Link as U}from"@backstage/core-components";import{useApi as F,useRouteRef as Y}from"@backstage/core-plugin-api";import{entityPresentationApiRef as _}from"@backstage/plugin-catalog-react";import{makeStyles as q,useTheme as G,Box as i,Link as J,Typography as l,Chip as K,IconButton as z,CircularProgress as T,Tooltip as Q}from"@material-ui/core";import X from"@material-ui/icons/Close";import Z from"@material-ui/icons/ExpandLess";import ee from"@material-ui/icons/ExpandMore";import{useState as te,useEffect as oe,useCallback as ae}from"react";import{useSearchParams as ie}from"react-router-dom";import{useCheckStatuses as ne}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{trackCheckDetailsRouteRef as re}from"../../routes.esm.js";import{getContrastTextColor as R,getCheckStatusColor as le}from"../../utils/colors.esm.js";import{ColorChip as B}from"../ColorChip/ColorChip.esm.js";const se=q(e=>({checkLinkText:{color:"inherit",textDecoration:"none"},emptyStateIcon:{fontSize:e.typography.h3.fontSize,color:e.palette.text.secondary,opacity:.4,marginBottom:12},emptyStateText:{color:e.palette.text.secondary,textAlign:"center"},checksContainer:{flex:1,overflowY:"auto",minHeight:0},checksTitle:{fontWeight:"bold",marginBottom:4},levelHeader:{display:"flex",alignItems:"center",cursor:"pointer"},levelLabel:{fontWeight:"bold",letterSpacing:1,color:e.palette.text.secondary,marginBottom:2,flex:1},expandIcon:{fontSize:e.typography.body2.fontSize,color:e.palette.text.secondary},progressContainer:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginBottom:16},progressWrapper:{position:"relative",display:"inline-flex"},progressBackground:{position:"absolute",color:e.palette.divider},progressText:{position:"absolute",top:0,left:0,bottom:0,right:0,display:"flex",alignItems:"center",justifyContent:"center",fontSize:e.typography.body1.fontSize,fontWeight:"bold"},checkName:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","&:hover":{textDecoration:"underline"}},checkMessage:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},statusChip:{fontSize:e.typography.caption.fontSize,height:22,borderRadius:12,marginLeft:8,marginBottom:0},secondaryTitle:{display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",marginBottom:8,marginTop:2,lineHeight:1.4,paddingBottom:4},entityCount:{fontSize:e.typography.caption.fontSize},entityLabel:{fontSize:e.typography.caption.fontSize},entityContainer:{display:"flex",alignItems:"center",marginBottom:16},titleContainer:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:.5},titleContent:{display:"flex",alignItems:"center",minWidth:0},titleStatus:{display:"flex",alignItems:"center"},titleIcon:{display:"flex",alignItems:"center",marginRight:8},titleText:{minWidth:0,fontWeight:"bold"},emptyStateContainer:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",marginTop:2,marginBottom:1},tooltip:{color:e.palette.text.primary,fontSize:e.typography.caption.fontSize,borderRadius:e.shape.borderRadius,padding:e.spacing(1)},tooltipItem:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},tooltipCategory:{display:"flex",alignItems:"center",flex:1,fontSize:e.typography.body2.fontSize,marginRight:e.spacing(2)},tooltipValue:{fontSize:e.typography.body2.fontSize,color:e.palette.text.primary}})),L=e=>new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e),ce=({node:e,clearSelectedNode:W,checkIds:h,track:c,getColor:k,onTeamClick:A})=>{const f=G(),o=se(),P=F(_),S=Y(re),[j]=ie(),[O,N]=te(()=>c?.levels?new Set(c.levels.map(a=>a.ordinal)):new Set),g=e?P.forEntity(e.entityRef):void 0;oe(()=>{if(c?.levels){const a=new Set(c.levels.map(m=>m.ordinal));N(a)}},[c?.levels]);const D=a=>{N(m=>{const n=new Set(m);return n.has(a)?n.delete(a):n.add(a),n})},E=a=>a<50?{label:"Needs Attention",color:f.palette.error.main,textColor:R(f.palette.error.main)}:a<80?null:{label:"Healthy",color:f.palette.success.main,textColor:R(f.palette.success.main)},H=ae(a=>{switch(a){case"not-applicable":case"notApplicable":return"Not Applicable";case"not-reported":case"notReported":return"Not Reported";default:return a.charAt(0).toUpperCase()+a.slice(1)}},[]),M=(a,m)=>{const n=a.numberOfEntities-a.notApplicable-a.exempt,y=a.passed,u=a.failed,C=a.warning,d=a.error,s=a.notReported,x=[{name:"passed",value:y},{name:"failed",value:u},{name:"warning",value:C},{name:"error",value:d},{name:"not-reported",value:s}].filter(p=>p.value>0);return r("div",{className:o.tooltip,children:[t(l,{variant:"caption",style:{fontWeight:"bold",marginBottom:8,display:"block"},children:m.name}),x.map((p,v)=>r("div",{className:o.tooltipItem,children:[r("div",{className:o.tooltipCategory,children:[t("span",{style:{width:12,height:4,borderRadius:2,backgroundColor:le(f,p.name),marginRight:8}}),t(l,{variant:"caption",children:H(p.name)})]}),t("div",{className:o.tooltipValue,children:r(l,{variant:"caption",children:[p.value," of ",L(n)," (",Math.round(p.value/n*100),"%)"]})})]},v))]})},I=ne(e&&h&&h.length?{checkIds:h,trackId:c?.id,filter:{"relations.ownedBy":[e.entityRef]}}:{checkIds:[]},!!(e&&h&&h.length)),b=E(e.passPercentage),V=()=>{if(!c?.levels||h.length===0)return t(i,{mt:2,children:t(l,{variant:"body2",color:"textSecondary",children:"No checks found for this entity."})});const a=c.levels,m=(I.data||[]).reduce((n,y)=>(n[y.id]=y,n),{});return r(i,{mt:2,className:o.checksContainer,children:[t(l,{variant:"subtitle2",className:o.checksTitle,children:"Checks"}),a.map(n=>{const y=n.name??`Level ${n.ordinal}`,u=n.ordinal,C=O.has(u);return r(i,{mb:1,children:[r(i,{className:o.levelHeader,onClick:()=>D(u),children:[t(l,{variant:"overline",className:o.levelLabel,children:y}),t(z,{size:"small",className:o.expandIcon,children:C?t(Z,{}):t(ee,{})})]}),C&&n.checks.map(d=>{const s=m[d.id],x=s?s.numberOfEntities-s.notApplicable-s.exempt:0,p=s&&x>0?Math.round(s.passed/x*100):0;let v;if(c&&S&&e){const $=S({trackId:c.id,checkId:d.id}),w=new URLSearchParams(j.toString());w.set("owners",e.entityRef),v=`${$}?${w.toString()}`}return r(i,{display:"flex",alignItems:"center",mb:.5,children:[t(i,{mr:1,display:"flex",children:I.isLoading?t(B,{value:"",getColor:()=>f.palette.divider,numericValue:0,size:"small"}):t(Q,{title:s?M(s,d):"",placement:"top",arrow:!0,classes:{tooltip:o.tooltip},children:t(i,{children:t(B,{value:s&&x>0?`${p}%`:"N/A",getColor:k,numericValue:p,size:"small"})})})}),t(i,{flex:1,minWidth:0,children:v?t(U,{to:v,style:{color:"inherit",textDecoration:"none"},className:o.checkLinkText,children:t(l,{variant:"body2",className:o.checkName,children:d.name})}):t(l,{variant:"body2",className:o.checkName,children:d.name})})]},d.id)})]},u)})]})};return r(i,{children:[r(i,{className:o.titleContainer,children:[r(i,{className:o.titleContent,children:[g?.snapshot.Icon&&t(i,{component:"span",className:o.titleIcon,children:t(g.snapshot.Icon,{fontSize:"small"})}),t(J,{component:"button",onClick:()=>A?.(e.entityRef),noWrap:!0,children:t(l,{variant:"h6",noWrap:!0,className:o.titleText,children:g?.snapshot.primaryTitle||e.name})})]}),r(i,{className:o.titleStatus,children:[b&&t(K,{label:b.label,style:{background:b.color,color:b.textColor},className:o.statusChip,size:"small"}),t(z,{onClick:W,size:"small",children:t(X,{})})]})]}),g?.snapshot.secondaryTitle&&t(l,{variant:"caption",color:"textSecondary",className:o.secondaryTitle,children:g.snapshot.secondaryTitle}),t(i,{className:o.entityContainer,children:r(l,{variant:"body2",color:"textSecondary",className:o.entityLabel,children:["Entities:"," ",t("span",{className:o.entityCount,children:L(e.numberOfEntities)})]})}),t(i,{className:o.progressContainer,children:r(i,{className:o.progressWrapper,children:[t(T,{variant:"determinate",value:100,size:80,thickness:6,className:o.progressBackground}),t(T,{variant:"determinate",value:e.passPercentage,size:80,thickness:6,style:{color:k(e.passPercentage)}}),r(l,{className:o.progressText,children:[Math.round(e.passPercentage),"%"]})]})}),t(V,{})]})};export{ce as SelectedNodeSidebar};
|
|
2
2
|
//# sourceMappingURL=SelectedNodeSidebar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as m}from"react/jsx-runtime";import{useEntity as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import{useEntity as d}from"@backstage/plugin-catalog-react";import{makeStyles as y}from"@material-ui/core";import{useState as g,useEffect as v}from"react";import C from"react-confetti";import L from"react-use/lib/useMeasure";import p from"react-use/lib/usePrevious";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as k}from"../../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";const w=y(()=>({root:{position:"absolute",width:"100%",height:"100%"}})),S=({trackId:t})=>{const s=w(),{entity:a}=d(),{data:f,isLoading:n}=k(a,t),[l,{width:c,height:h}]=L(),o=n?void 0:f?.highestLevel?.ordinal??-1,i=p(o),r=p(t),[u,e]=g(!1);return v(()=>{typeof i<"u"&&typeof o<"u"&&t===r&&o>i&&e(!0)},[o,i,t,r]),u?m("div",{ref:l,className:s.root,children:m(C,{width:c,height:h,numberOfPieces:1e3,gravity:1,initialVelocityY:20,recycle:!1,onConfettiComplete:()=>e(!1)})}):null};export{S as LevelUpParty};
|
|
2
2
|
//# sourceMappingURL=LevelUpParty.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as n,Fragment as
|
|
1
|
+
import{jsxs as n,Fragment as c,jsx as e}from"react/jsx-runtime";import{Link as y}from"@backstage/core-components";import{useRouteRef as u}from"@backstage/core-plugin-api";import{TableCell as s,Box as o,Typography as d}from"@material-ui/core";import{makeStyles as N}from"@material-ui/core/styles";import{Skeleton as r}from"@material-ui/lab";import"react-circular-progressbar/dist/styles.css";import{useSearchParams as w}from"react-router-dom";import{trackCheckDetailsRouteRef as S}from"../../routes.esm.js";import{compactNumberFormatter as m}from"../../utils/formatters.esm.js";import{CheckStatusBar as B}from"../CheckStatusBar/CheckStatusBar.esm.js";import"../CheckStatusBar/CheckStatusBarBUI.esm.js";import"@backstage/ui";import"lodash";import"../CustomCell/CustomCell.esm.js";import{PassPercentageProgressbar as C}from"../PassingPercentProgressbar/PassPercentageProgressbar.esm.js";const R=N(t=>({checkContent:{display:"flex",alignItems:"center",gap:t.spacing(2),width:"100%",paddingTop:t.spacing(1),paddingBottom:t.spacing(1)},checkStatus:{display:"flex",alignItems:"center",gap:t.spacing(1),minWidth:"fit-content"},checkName:{display:"flex",alignItems:"center"},checkNameLink:{color:"inherit",textDecoration:"none","&:hover":{textDecoration:"none"}},passingText:{color:t.palette.text.secondary,display:"flex",flexDirection:"column",alignItems:"flex-end",lineHeight:1.2,minWidth:"40px"},categoryBarSection:{display:"flex",flexDirection:"column",alignItems:"flex-end",width:"100%",justifyContent:"flex-end"},categoryBar:{"& .MuiBox-root > div":{height:"8px"},width:"100%"},skeleton:{backgroundColor:t.palette.action.hover},passingTextCell:{width:"100px",paddingRight:0,paddingTop:t.spacing(1),paddingBottom:t.spacing(1)}})),I=({check:t,status:a,theme:p,trackId:g})=>{const i=R(),x=u(S),[h]=w(),l=a?a.numberOfEntities-a.notApplicable-a.exempt:0,f=l>0?Math.round((a?.passed??0)/l*100):0,k=`${x({trackId:g,checkId:t.id})}${h.toString()?`?${h.toString()}`:""}`;return n(c,{children:[e(s,{style:{width:"120px",paddingRight:0},children:e(o,{className:i.checkStatus,children:a?e(C,{passPercentage:f}):n(c,{children:[e(r,{variant:"circle",width:24,height:24,className:i.skeleton}),e(r,{width:45,height:24,className:i.skeleton})]})})}),e(s,{style:{width:"300px",paddingRight:0},children:e(o,{className:i.checkName,children:e(y,{to:k,className:i.checkNameLink,children:e(d,{children:t.name})})})}),e(s,{style:{width:"250px",paddingRight:0},children:e(o,{className:i.categoryBarSection,children:a?e(o,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:e(B,{status:a,className:i.categoryBar})}):e(r,{variant:"rect",width:250,height:8,className:i.skeleton})})}),e(s,{style:{width:"100px",paddingRight:0,paddingTop:p.spacing(1),paddingBottom:p.spacing(1)},children:e(o,{className:i.passingText,children:a?n(c,{children:[n(d,{variant:"caption",children:[m(a.passed)," of"," ",m(l)]}),e(d,{variant:"caption",children:"passing"})]}):n(c,{children:[e(r,{width:60,height:16,className:i.skeleton}),e(r,{width:40,height:16,className:i.skeleton})]})})})]})};export{I as CheckRowContent};
|
|
2
2
|
//# sourceMappingURL=CheckRowContent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,Fragment as d,jsxs as s}from"react/jsx-runtime";import{TableRow as
|
|
1
|
+
import{jsx as e,Fragment as d,jsxs as s}from"react/jsx-runtime";import{TableRow as o,useTheme as k,TableContainer as C,Table as h,TableBody as m,TableCell as p,Box as x,IconButton as y,Typography as T,Collapse as L}from"@material-ui/core";import{makeStyles as b}from"@material-ui/core/styles";import w from"@material-ui/icons/KeyboardArrowDown";import N from"@material-ui/icons/KeyboardArrowUp";import{memo as S,useState as I,useCallback as R}from"react";import{CheckRowContent as B}from"./CheckRowContent.esm.js";const g=b(l=>({root:{width:"100%"},levelCell:{display:"flex",alignItems:"flex-start",width:"100%",padding:l.spacing(1)},levelContent:{display:"flex",flexDirection:"column",gap:l.spacing(2),width:"100%"},levelHeader:{display:"flex",alignItems:"center"},levelName:{fontSize:"1rem",fontWeight:500,lineHeight:1,marginLeft:l.spacing(1)},headerCell:{fontWeight:500,color:l.palette.text.secondary,padding:l.spacing(2)}})),v=S(({checks:l,checkStatuses:a,theme:c,trackId:n})=>e(d,{children:l.map(t=>{const i=a?.find(r=>r.id===t.id);return e(o,{children:e(B,{check:t,status:i,theme:c,trackId:n})},t.id)})}));v.displayName="CheckRows";const f=({level:l,children:a,hideLevel:c})=>{const n=g(),[t,i]=I(!0),r=R(()=>{i(u=>!u)},[]);return s(d,{children:[!c&&e(o,{children:e(p,{colSpan:4,className:n.levelCell,children:s(x,{className:n.levelHeader,children:[e(y,{size:"small",onClick:r,children:t?e(N,{}):e(w,{})}),e(T,{className:n.levelName,children:l.name??`Level ${l.ordinal}`})]})})}),e(o,{children:e(p,{style:{paddingTop:0,paddingBottom:0},children:e(L,{in:t,timeout:"auto",unmountOnExit:!0,children:e(h,{size:"small",padding:"none",children:e(m,{children:a})})})})})]})},z=({track:l,checkStatuses:a,hideLevel:c})=>{const n=g(),t=k();return l.levels?.length?e(C,{component:"div",className:n.root,children:e(h,{children:e(m,{children:l.levels.map(i=>e(f,{level:i,hideLevel:c,children:e(v,{checks:i.checks,checkStatuses:a,theme:t,trackId:l.id})},i.ordinal))})})}):null};export{f as LevelRow,z as LevelsTable};
|
|
2
2
|
//# sourceMappingURL=LevelsTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as c,jsx as a}from"react/jsx-runtime";import{Box as n,SearchField as l,Button as m,Icon as p}from"@backstage/ui";import{makeStyles as u}from"@material-ui/core";import{useNavigate as d}from"react-router-dom";const h=u(e=>({actionBar:{gridGap:e.spacing(1),display:"flex",alignItems:"center"}})),f=({searchValue:e,setSearchValue:r,createHref:t,canCreate:o})=>{const s=h(),i=d();return c(n,{className:s.actionBar,children:[a(l,{startCollapsed:!0,value:e,onChange:r,"aria-label":"Search Name"}),a(m,{isDisabled:!o,onClick:()=>i(t),iconStart:a(p,{name:"plus"}),children:"Create"})]})};export{f as ListPageCustomActions};
|
|
2
|
+
//# sourceMappingURL=ListPageCustomActions.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{Box as i,Skeleton as a}from"@backstage/ui";import{makeStyles as l}from"@material-ui/core";const s=l(o=>({skeletonContainer:{gridGap:o.spacing(2),display:"flex",flexDirection:"column",margin:o.spacing(2,0)}})),m=({rowCount:o=5,rowHeight:t=32})=>{const n=s();return e(i,{className:n.skeletonContainer,children:[...Array(o).keys()].map((c,r)=>e(a,{height:t,width:"100%"},r))})};export{m as LoadingTableSkeleton};
|
|
2
|
+
//# sourceMappingURL=LoadingTableSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as n}from"react/jsx-runtime";import{Page as t,Header as c}from"@backstage/core-components";import{makeStyles as m}from"@material-ui/core";import{SpotifyLicenseBanner as s}from"@spotify/backstage-plugin-core";import{UserProvider as d}from"../../contexts/UserProvider.esm.js";import a from"../../hooks/useConfirmationModal.esm.js";import{soundcheckBackend as l,invalidLicenseMessage as p}from"../../utils/license.esm.js";import{SoundcheckQueryClientProvider as v}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContent as f}from"./OverviewPageContent.esm.js";const h=m(r=>({overviewContainer:{padding:r.spacing(1,3)}})),g=r=>{const{title:i="Soundcheck"}=r,o=h();return e(v,{children:e(d,{children:e(a,{children:n(t,{themeId:"website",children:[e(s,{backend:l,invalidLicenseMessage:p}),e(c,{title:i}),e("div",{className:o.overviewContainer,children:e(f,{})})]})})})})};export{g as OverviewPage};
|
|
2
2
|
//# sourceMappingURL=OverviewPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as a,jsxs as T}from"react/jsx-runtime";import{makeStyles as $,Grid as u}from"@material-ui/core";import{createContext as j,useMemo as H,useState as i,useEffect as y,useCallback as A}from"react";import{useSearchParams as z}from"react-router-dom";import B from"react-use/lib/useDebounce";import{useFacetsForOwner as I}from"../../hooks/facets/useFacetsForOwner.esm.js";import{useLCPReporting as K}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as M}from"../../hooks/useLoadTimeReporting.esm.js";import{LoadingIndicator as U}from"../LoadingIndicator/LoadingIndicator.esm.js";import{OverviewTable as q}from"../OverviewTable/OverviewTable.esm.js";import{RowHeights as J}from"../OverviewTable/resultsTableUtils.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as Q}from"../SoundcheckHeader/useHeader.esm.js";import{OverviewPageHeader as W}from"./OverviewPageHeader.esm.js";const X=$(e=>({tableContainer:{padding:0,backgroundColor:"transparent",paddingBottom:J.paginationControl},campaignsGrid:{margin:`0 0 ${e.spacing(3)}px`,border:`1px solid ${e.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:e.spacing(2),gap:e.spacing(2)},campaignsLink:{textAlign:"center",margin:`${e.spacing(1)}rem 0 ${e.spacing(1)}`},tableLoading:{backgroundColor:e.palette.background.paper,padding:e.spacing(6)},noPadding:{padding:0},accordion:{boxShadow:"none"}})),C=j({searchValue:"",updateSearchValue:e=>{},debouncedSearchValue:"",updateDebouncedSearchValue:e=>{},pivot:!1,updatePivot:e=>{}}),Y=({isFixedGroup:e=!1})=>{const[r,g]=z(),{group:d,kind:o,type:n}=Object.fromEntries(r.entries()),f=H(()=>({routeName:"soundcheck-overview",additionalAttributes:{group:d||"",selectedKind:o||"",selectedType:n||""}}),[d,o,n]),{reportContentLoaded:h}=M(f),{reporter:P}=K(f);Q();const[t,v]=i(void 0),[S,L]=i(void 0),[w,V]=i(),[c,E]=i(""),[O,b]=i(""),[F,G]=i(!1);B(()=>{b(c)},800,[c]),y(()=>{(t?.kind!==o||t?.type!==n)&&v({kind:o,type:n})},[o,n,t]);const{data:k,isLoading:p}=I(d),R=S||w,D=A((s,l,N)=>{s&&(v({kind:s,type:l}),l?(r.set("kind",s),r.set("type",l)):(r.delete("type"),r.set("kind",s)),g(r,{replace:N}))},[r,g]),m=X(),x=P?.getLCPValue();return y(()=>{p||h({lcp:x})},[p,h,x]),a(C.Provider,{value:{searchValue:c,updateSearchValue:E,debouncedSearchValue:O,updateDebouncedSearchValue:b,pivot:F,updatePivot:G},children:T(u,{container:!0,spacing:0,children:[a(u,{item:!0,xs:12,className:m.noPadding,children:a(W,{unfilteredFacets:k,kind:t?.kind,type:t?.type,onChange:D,setError:V,isLoading:p,isFixedGroup:e})}),a(u,{item:!0,xs:12,className:m.tableContainer,children:p?a("div",{className:m.tableLoading,children:a(U,{size:80})}):a(q,{facets:k,kind:t?.kind,type:t?.type,setError:L,hasError:R,ownerEntityRef:d,isFixedGroup:e})})]})})};export{Y as OverviewPageContent,C as OverviewPageContext};
|
|
2
2
|
//# sourceMappingURL=OverviewPageContent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{makeStyles as c}from"@material-ui/core";import{AlertPanel as f}from"../AlertPanel/AlertPanel.esm.js";import{NoCertifications as d,NoEntities as y}from"../EmptyState/EmptyState.esm.js";import"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@backstage/ui";import"@spotify/backstage-plugin-soundcheck-common";import"react-router-dom";import"../../routes.esm.js";import{OverviewTableContent as u}from"./OverviewTableContent.esm.js";const w=c(()=>({scrollContainer:{overflow:"auto",paddingBottom:0,width:"100%"}})),E=({facets:r,ownerEntityRef:e,hasError:o,kind:n,type:s,setError:p,isFixedGroup:m})=>{const l=w();if(o)return t(f,{severity:"error",title:o.message});const i="Use the groups drop-down list to select another group.";return r&&(r.types?.length??0)>0?r.types?.find(a=>a.count>0)?t("div",{className:l.scrollContainer,children:t(u,{facets:r,kind:n,type:s,setError:p,ownerEntityRef:e,hasError:o})}):t(d,{ownerEntityRef:e,selectGroupHint:i}):t(y,{ownerEntityRef:e,selectGroupHint:m?void 0:i})};export{E as OverviewTable};
|
|
2
2
|
//# sourceMappingURL=OverviewTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o,jsxs as P,Fragment as D}from"react/jsx-runtime";import{useRouteRef as M}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{makeStyles as B,Grid as I}from"@material-ui/core";import{useContext as J,useEffect as y,useState as K,useRef as Q,useLayoutEffect as U,useMemo as X}from"react";import{VariableSizeGrid as Y}from"react-window";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useTrackOverviewForOwner as Z}from"../../hooks/certifications/useTrackOverviewForOwner.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{EmptyState as _}from"../EmptyState/EmptyState.esm.js";import"../OverviewPage/OverviewPage.esm.js";import"@spotify/backstage-plugin-core";import"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContext as ee}from"../OverviewPage/OverviewPageContent.esm.js";import"../Pagination/Pagination.esm.js";import{useCursorPagination as te,CursorPagination as re}from"../Pagination/CursorPagination.esm.js";import{cellRenderer as oe}from"./Cell/cellRenderer.esm.js";import{OverviewTableSkeleton as ie}from"./OverviewTableSkeleton.esm.js";import{ResultsTableHeader as ne}from"./ResultsTableHeader.esm.js";import{generateRowsPivoted as ae,generateRows as le,generateHeaderRowPivoted as se,generateHeaderRow as
|
|
1
|
+
import{jsx as o,jsxs as P,Fragment as D}from"react/jsx-runtime";import{useRouteRef as M}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{makeStyles as B,Grid as I}from"@material-ui/core";import{useContext as J,useEffect as y,useState as K,useRef as Q,useLayoutEffect as U,useMemo as X}from"react";import{VariableSizeGrid as Y}from"react-window";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useTrackOverviewForOwner as Z}from"../../hooks/certifications/useTrackOverviewForOwner.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{EmptyState as _}from"../EmptyState/EmptyState.esm.js";import"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@backstage/ui";import"../../routes.esm.js";import"../OverviewPage/OverviewPage.esm.js";import"@spotify/backstage-plugin-core";import"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContext as ee}from"../OverviewPage/OverviewPageContent.esm.js";import"../Pagination/Pagination.esm.js";import{useCursorPagination as te,CursorPagination as re}from"../Pagination/CursorPagination.esm.js";import{cellRenderer as oe}from"./Cell/cellRenderer.esm.js";import{OverviewTableSkeleton as ie}from"./OverviewTableSkeleton.esm.js";import{ResultsTableHeader as ne}from"./ResultsTableHeader.esm.js";import{generateRowsPivoted as ae,generateRows as le,generateHeaderRowPivoted as se,generateHeaderRow as me}from"./ResultsTableRow.esm.js";import{RowHeights as E,CellWidths as S,calculateTableWidth as ue}from"./resultsTableUtils.esm.js";import pe from"./useWindowDimensions.esm.js";const W=25,ce=B(i=>({table:{backgroundColor:i.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left",overflow:"auto"},tableContainer:{backgroundColor:i.palette.background.paper}})),de=({setError:i,kind:p,type:l,ownerEntityRef:t})=>{const{cursor:x,pageSize:R,...c}=te({defaultPageSize:W,label:"entitiesPerPage"}),{debouncedSearchValue:s,pivot:m}=J(ee),{data:e,isLoading:d,isError:b}=Z(t,{kind:p,type:l==="all"?null:l},R,x,s);y(()=>{c.setCursor(""),c.setCurrentPage(0)},[s]);const k=ce(),g=M(q);y(()=>{i?.(b?new Error("Error loading track overview"):void 0)},[b,i]);const[H,z]=K(0),{height:T}=pe(),n=Q(null);U(()=>{e&&t&&n?.current&&z(n.current.clientWidth?n.current.clientWidth-16:100)},[n,e,t]);const{rows:h,headerRow:f,tableWidth:w,entityRefsWithPadding:N,getRowHeight:O,columnCount:V}=X(()=>{if(d||!e||!t)return{};const{tracks:a,entityRefs:r}=e;if(!r)return{};const u=r.length>=25?r:[...r,...Array.from({length:25-r.length},()=>{})],C=m?ae(a,r,g):le(a,u,g),v=C[0]?.cells?.length??u.length+1,G=m?se(a):me(u),L=ue(v-1)+60;return{rows:C,headerRow:G,tableWidth:L,entityRefsWithPadding:u,getRowHeight:j=>C[j]?.height??E.check,columnCount:v}},[e,g,d,t,m]);if(d)return o(ie,{});if(!e||!t)return null;const{totalCount:$,endCursor:A,prevCursor:F}=e;return!f||!w||!N||!h?.length?s?o(_,{title:"No Entities Found",description:`No entities found with name containing: '${s}'`}):null:P("div",{ref:n,children:[o(I,{"aria-label":`Check results for ${l??p}`,item:!0,xs:12,className:k.tableContainer,children:H>0&&P(D,{children:[o(ne,{headerRow:f,gridWidth:w}),o(Y,{className:k.table,columnCount:V,columnWidth:a=>a===0?S.trackTitle:S.checkResult,rowCount:h.length,rowHeight:O,height:T*.7-E.paginationControl-f.height,width:w,children:oe(h)},m?"entityView":"checkView")]})},`${p}|${l??""}`),o(re,{...c,totalCount:$,defaultPageSize:W,endCursor:A,prevCursor:F,pageSize:R,labelRowsPerPage:"Entities per page:"})]})};export{de as ResultsTable};
|
|
2
2
|
//# sourceMappingURL=ResultsTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as o,jsx as e}from"react/jsx-runtime";import{Box as n,Button as s,Icon as c,SearchField as i}from"@backstage/ui";import{makeStyles as l}from"@material-ui/core";const u=l(()=>({buttonGroup:{gap:"var(--bui-space-2)",display:"flex",alignItems:"center"}})),m=({searchValue:t,setSearchValue:a})=>{const r=u();return o(n,{className:r.buttonGroup,children:[e(s,{iconStart:e(c,{name:"filter"}),variant:"secondary",children:"Filter"}),e(i,{value:t,onChange:a,"aria-label":"Search",style:{width:"auto"}})]})};export{m as PageCustomActions};
|
|
2
|
+
//# sourceMappingURL=PageCustomActions.esm.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{jsxs as
|
|
2
|
-
components.`})}),
|
|
1
|
+
import{jsxs as n,jsx as e}from"react/jsx-runtime";import{Content as T}from"@backstage/core-components";import{useApi as u,featureFlagsApiRef as v,configApiRef as z,useRouteRef as r}from"@backstage/core-plugin-api";import{usePermission as S}from"@backstage/plugin-permission-react";import{Typography as p,Grid as t,Accordion as H,AccordionSummary as I,AccordionDetails as L}from"@material-ui/core";import f from"@material-ui/icons/BarChart";import j from"@material-ui/icons/CheckCircle";import D from"@material-ui/icons/Computer";import Q from"@material-ui/icons/ExpandMore";import V from"@material-ui/icons/Flag";import W from"@material-ui/icons/Timeline";import{soundcheckCollectorReadPermission as q}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as E,useEffect as F}from"react";import{useLCPReporting as O}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as B}from"../../hooks/useLoadTimeReporting.esm.js";import{integrationsPageRouteRef as G,tracksPageRouteRef as M,checksPageRouteRef as $,campaignsPageRouteRef as J,techHealthRouteRef as K,techInsightsPageRouteRef as U}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as X}from"../SoundcheckHeader/useHeader.esm.js";import{QuickstartCardBase as a}from"./QuickstartCardBase.esm.js";import{getQuickstartStyles as Y}from"./styles.esm.js";import{WelcomeHelpSection as Z}from"./WelcomeHelpSection.esm.js";const _=()=>{const d=E(()=>({routeName:"soundcheck-quickstart"}),[]),{reportContentLoaded:m}=B(d),{reporter:g}=O(d),o=Y();X({title:"Welcome to Soundcheck!",description:"Soundcheck lets you define and monitor the tech health of your organization. What insights do you need today?"});const i=u(v),R=u(z).getOptionalStringArray("soundcheck.flags"),l=i.getRegisteredFlags(),{loading:s,allowed:k}=S({permission:q}),y=(!l.find(c=>c.name==="soundcheck-enable-collectors")||i.isActive("soundcheck-enable-collectors"))&&!s&&k,x=(!l.find(c=>c.name==="soundcheck-enable-tech-health")||i.isActive("soundcheck-enable-tech-health"))&&!R?.includes("soundcheck-disable-tech-health"),N=r(G),b=r(M),C=r($),P=r(J),A=r(K),w=r(U),h=g?.getLCPValue();return F(()=>{s||m({lcp:h})},[s,m,h]),n(T,{className:o.introTitle,children:[e(p,{className:o.welcomeSection,children:"This is your starting point for exploring and managing your tech health initiatives. Here are some key areas to get you started:"}),n(t,{container:!0,direction:"row",justifyContent:"flex-start","aria-label":"getting-started-items",className:o.grid,spacing:2,children:[e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Tech Insights",routeRef:w,icon:e(f,{}),description:`Visualize and analyze your technology landscape across teams and
|
|
2
|
+
components.`})}),x&&e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Tech Health",routeRef:A,icon:e(f,{}),description:"Detailed query and analysis tool across teams, components, tracks, and checks."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Campaigns",routeRef:P,icon:e(V,{}),description:"Organize and manage coordinated initiatives across your organization."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Checks",routeRef:C,icon:e(j,{}),description:"Checks are comparisons between defined acceptable fact values and actual fact values."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Tracks",routeRef:b,icon:e(W,{}),description:"Tracks encourage alignment to architectural best practices and standards."})}),y&&e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Integrations",routeRef:N,icon:e(D,{}),description:"Integrations collect raw data about your components for use in checks and tracks."})})]}),n(H,{className:o.accordion,children:[e(I,{expandIcon:e(Q,{}),"aria-controls":"howdoi-content",id:"howdoi-header",children:e(p,{variant:"h5",children:"How Do I...?"})}),e(L,{children:e(Z,{})})]})]})};export{_ as QuickstartPage};
|
|
3
3
|
//# sourceMappingURL=QuickstartPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as s,Fragment as d}from"react/jsx-runtime";import{useRouteRef as p,useRouteRefParams as h}from"@backstage/core-plugin-api";import{useEntity as m}from"@backstage/plugin-catalog-react";import{SecretsContextProvider as L}from"@backstage/plugin-scaffolder-react";import{Routes as N,Route as l,Navigate as f}from"react-router-dom";import{ResultState as T}from"../graphql/generated/index.esm.js";import{useAllCertifications as S}from"../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../api.esm.js";import"../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as
|
|
1
|
+
import{jsx as t,jsxs as s,Fragment as d}from"react/jsx-runtime";import{useRouteRef as p,useRouteRefParams as h}from"@backstage/core-plugin-api";import{useEntity as m}from"@backstage/plugin-catalog-react";import{SecretsContextProvider as L}from"@backstage/plugin-scaffolder-react";import{Routes as N,Route as l,Navigate as f}from"react-router-dom";import{ResultState as T}from"../graphql/generated/index.esm.js";import{useAllCertifications as S}from"../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../api.esm.js";import"../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as C}from"../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../hooks/useSoundcheckAlert.esm.js";import"../hooks/useConfirmationModal.esm.js";import{usePlaylists as P}from"../hooks/playlists/usePlaylists.esm.js";import{certificationPlaylistTrackCheckRouteRef as x,certificationPlaylistTrackRouteRef as k,certificationPlaylistRouteRef as R,certificationTrackRouteRef as y,certificationRouteRef as g}from"../routes.esm.js";import{EntityContent as n}from"./EntityContent/EntityContent.esm.js";const b=()=>{const{entity:i}=m(),e=p(R),a=p(y),{isLoading:r,data:o}=P(i),{isLoading:c,data:A}=S(i);if(r||c)return null;const u=o?.[0]?.id,I=A?.[0]?.track.id;return!u&&!I?null:t(f,{to:u?e({playlistId:u}):a({trackId:I}),replace:!0})},v=()=>{const{entity:i}=m(),{playlistId:e}=h(R),a=p(k),{data:r}=P(i),o=r?.find(c=>c.id===e)?.trackIds[0];return o?t(f,{to:a({playlistId:e,trackId:o}),replace:!0}):null},F=i=>(i?.levels?.flatMap(e=>e.checks??[])??[]).filter(e=>e.result!==T.Exempt&&e.result!==T.NotApplicable)[0],E=()=>{const{entity:i}=m(),{playlistId:e,trackId:a}=h(k),{data:r}=C(i,a),o=p(x),c=F(r)?.id??r?.levels[0]?.checks[0]?.id;return c?t(f,{to:o({playlistId:e,trackId:a,checkId:c}),replace:!0}):null},j=()=>{const{entity:i}=m(),{trackId:e}=h(y),a=p(g),{data:r}=C(i,e),o=F(r)?.id??r?.levels?.find(c=>c.checks.length>0)?.checks[0].id;return o?t(f,{to:a({trackId:e,checkId:o}),replace:!0}):null},D=()=>t(L,{children:s(N,{children:[t(l,{path:x.path,element:t(n,{})}),t(l,{path:k.path,element:s(d,{children:[t(n,{}),t(E,{})]})}),t(l,{path:R.path,element:s(d,{children:[t(n,{}),t(v,{})]})}),t(l,{path:y.path,element:s(d,{children:[t(n,{}),t(j,{})]})}),t(l,{path:g.path,element:t(n,{})}),t(l,{path:"/",element:s(d,{children:[t(n,{}),t(b,{})]})})]})});export{j as RedirectToFirstCheck,v as RedirectToFirstPlaylistTrack,E as RedirectToFirstPlaylistTrackCheck,D as Router};
|
|
2
2
|
//# sourceMappingURL=Router.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as a,Fragment as h}from"react/jsx-runtime";import{Page as j,TabbedLayout as r}from"@backstage/core-components";import{useApi as k,featureFlagsApiRef as G,configApiRef as Q}from"@backstage/core-plugin-api";import{usePermission as
|
|
1
|
+
import{jsx as e,jsxs as a,Fragment as h}from"react/jsx-runtime";import{Page as j,TabbedLayout as r}from"@backstage/core-components";import{useApi as k,featureFlagsApiRef as G,configApiRef as Q}from"@backstage/core-plugin-api";import{usePermission as m}from"@backstage/plugin-permission-react";import{makeStyles as W,Box as d}from"@material-ui/core";import{SpotifyLicenseBanner as q}from"@spotify/backstage-plugin-core";import{soundcheckCampaignCreatePermission as M,soundcheckCollectorReadPermission as U,soundcheckCheckCreatePermission as V,soundcheckTrackCreatePermission as $}from"@spotify/backstage-plugin-soundcheck-common";import{Helmet as z}from"react-helmet";import{Routes as J,Route as t}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import{UserProvider as K}from"../../contexts/UserProvider.esm.js";import X from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as Y}from"../../hooks/useSoundcheckAlert.esm.js";import{CampaignPage as Z}from"../CampaignPage/CampaignPage.esm.js";import{CampaignsPage as _}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as ee}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as te}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as ie}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckEditPage as re}from"../CheckPage/CheckEditPage.esm.js";import{CheckInsightsPage as u}from"../CheckPage/CheckInsightsPage.esm.js";import{ChecksTab as ae}from"../ChecksTab/ChecksTab.esm.js";import{CheckTemplatesPage as oe}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import{CollectorPage as ne}from"../CollectorPage/CollectorPage.esm.js";import{CollectorDetailsPage as ce}from"../CollectorPage/CollectorDetailsPage.esm.js";import{CollectorsPage as le}from"../CollectorsPage/CollectorsPage.esm.js";import{HierarchicalTechInsightsPage as se}from"../HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js";import{OverviewPageContent as me}from"../OverviewPage/OverviewPageContent.esm.js";import{QuickstartPage as C}from"../QuickstartPage/QuickstartPage.esm.js";import{SoundcheckHeader as he}from"../SoundcheckHeader/SoundcheckHeader.esm.js";import{SoundcheckHeaderProvider as de}from"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{SoundcheckQueryClientProvider as pe}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{TechHealth as ge}from"../TechHealth/TechHealth.esm.js";import{TechInsightsPage as fe}from"../TechInsights/TechInsightsPage.esm.js";import{TrackCreatePage as ke}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as ue}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as Ce}from"../TrackPage/TrackPage.esm.js";import{TracksTab as Pe}from"../TracksTab/TracksTab.esm.js";import{NewFeatureTab as be}from"./NewFeatureTab.esm.js";const P=W(o=>({tabContent:{margin:0,padding:0},root:{"& > *":{display:"flex",flexDirection:"column",flexGrow:1}},pageContent:{display:"flex",flexDirection:"row",flexGrow:1},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",maxWidth:"100%","& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",padding:`${o.spacing(3)}px !important`}}})),b=({title:o="Soundcheck",children:s})=>{const c=P();return e(Y,{children:e(K,{children:e(pe,{children:e(de,{defaultTitle:o,children:e(X,{children:e(d,{className:c.root,children:a(j,{themeId:"website",children:[e(q,{backend:"soundcheck",invalidLicenseMessage:"Submitted facts and check results will still be stored, but it will not be possible to view certifications or individual results until a valid license is present."}),e(he,{documentTitle:o}),e(d,{className:c.pageContent,children:e(d,{className:c.pageLayout,children:s})})]})})})})})})})},ve=({title:o="Soundcheck",integrations:s})=>{const c=P(),n=k(G),p=k(Q).getOptionalStringArray("soundcheck.flags"),l=n.getRegisteredFlags(),v=(!l.find(i=>i.name==="soundcheck-enable-tech-health")||n.isActive("soundcheck-enable-tech-health"))&&!p?.includes("soundcheck-disable-tech-health"),T=!l.find(i=>i.name==="soundcheck-enable-collectors")||n.isActive("soundcheck-enable-collectors"),g=!l.find(i=>i.name==="soundcheck-enable-campaigns")||n.isActive("soundcheck-enable-campaigns"),{loading:x,allowed:I}=m({permission:M}),w=!x&&I,{loading:R,allowed:y}=m({permission:U}),{loading:A,allowed:S}=m({permission:V}),H=!l.find(i=>i.name==="soundcheck-enable-check-creation")||n.isActive("soundcheck-enable-check-creation"),D=!A&&S&&H,{loading:L,allowed:N}=m({permission:$}),F=!l.find(i=>i.name==="soundcheck-enable-track-creation")||n.isActive("soundcheck-enable-track-creation"),E=!L&&N&&F,B=T&&!R&&y,O=v,f=p?.includes("portal")??!1;return a(b,{title:o,children:[a(J,{children:[g&&a(h,{children:[e(t,{path:"/campaigns/:campaignId/edit",element:e(te,{})}),e(t,{path:"/campaigns/:campaignId",element:e(Z,{})}),w&&e(t,{path:"/campaigns/create",element:e(ee,{})})]}),e(t,{path:"/quickstart",element:e(C,{})}),e(t,{path:"/tech-insights/track",element:e(se,{})}),e(t,{path:"/tracks/:trackId/edit",element:e(ue,{})}),E&&e(t,{path:"/tracks/create",element:e(ke,{})}),e(t,{path:"/tracks/:trackId",element:e(Ce,{})}),e(t,{path:"/tracks/:trackId/checks/:checkId",element:e(u,{})}),e(t,{path:"/checks/:checkId",element:e(u,{})}),e(t,{path:"/checks/:checkId/edit",element:e(re,{})}),D&&a(h,{children:[e(t,{path:"/checks/create",element:e(ie,{})}),e(t,{path:"/checks/templates",element:e(oe,{})})]}),e(t,{path:"/integrations/:integrationId",element:e(ce,{integrations:s})}),e(t,{path:"/integrations/:integrationId/edit",element:e(ne,{})}),f&&e(t,{path:"/",element:e(C,{})}),e(t,{path:"/*",element:a(r,{children:[e(r.Route,{title:"Overview",path:f?"/overview":"/",children:e("div",{className:c.tabContent,children:e(me,{})})}),e(r.Route,{title:e(be,{title:"Tech Insights"}),path:"/tech-insights",children:a(h,{children:[e(z,{title:"Tech Insights"}),e(fe,{})]})}),O&&e(r.Route,{title:"Tech Health",path:"/tech-health",children:e(ge,{})}),e(r.Route,{title:"Checks",path:"/checks",children:e(ae,{})}),e(r.Route,{title:"Tracks",path:"/tracks",children:e(Pe,{})}),g&&e(r.Route,{title:"Campaigns",path:"/campaigns",children:e(_,{})}),B&&e(r.Route,{title:"Integrations",path:"/integrations",children:e(le,{integrations:s})})]})})]})," "]})};export{ve as RoutingPage,b as RoutingPageWrapper};
|
|
2
2
|
//# sourceMappingURL=RoutingPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as i,jsx as a}from"react/jsx-runtime";import{parseEntityRef as F}from"@backstage/catalog-model";import{makeStyles as v,Grid as S,InputLabel as t,NativeSelect as s}from"@material-ui/core";import{Fragment as w}from"react";import"../CampaignsPage/CampaignListPage/
|
|
1
|
+
import{jsxs as i,jsx as a}from"react/jsx-runtime";import{parseEntityRef as F}from"@backstage/catalog-model";import{makeStyles as v,Grid as S,InputLabel as t,NativeSelect as s}from"@material-ui/core";import{Fragment as w}from"react";import"../CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js";import{CampaignStatus as d}from"../CampaignsPage/CampaignListPage/CampaignTypes.esm.js";import{SearchBar as y}from"../SearchBar/SearchBar.esm.js";const x=v(r=>({searchbar:{maxWidth:"275px","& input":{paddingTop:r.spacing(1),paddingBottom:r.spacing(1)}},filters:{display:"flex",alignItems:"center",padding:0},dropdownFilters:{margin:"0 15px",alignItems:"center"},selectHolder:{minWidth:105,"& select":{paddingTop:r.spacing(1),paddingBottom:r.spacing(1)}},label:{marginBottom:r.spacing(.5)}})),B=({searchPlaceholder:r,isLoading:o,searchTerm:m,setSearchTerm:h,filterAlpha:p,handleAlphabeticalFilterChange:g,filterOwner:u,handleOwnerFilterChange:f,filterStatus:n,handleStatusFilterChange:c,owners:N})=>{const e=x();return i(S,{item:!0,xs:8,className:e.filters,children:[i("div",{children:[a(t,{className:e.label,htmlFor:"search-bar",children:r||"Search"}),a(y,{searchTerm:m,disabled:o,setSearchTerm:h,placeholder:"Name",variant:"outlined",size:"small",className:e.searchbar,id:"search-bar"})]}),i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"sort-by",children:"Sort By"}),i(s,{id:"sort-by",className:e.selectHolder,value:p,onChange:g,children:[a("option",{value:"ascending",children:"Name A-Z"}),a("option",{value:"descending",children:"Name Z-A"})]})]}),i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"filter-owner",children:"Filter By Owner"}),i(s,{id:"filter-owner",className:e.selectHolder,value:u,onChange:f,children:[a("option",{value:"all",children:"All"},"all"),N?.map((l,b)=>a("option",{value:l,children:F(l).name},l+b))]})]}),n&&c&&i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"filter-status",children:"Filter By Status"}),a(s,{id:"filter-status",className:e.selectHolder,value:n,onChange:c,children:Object.keys(d).map(l=>a(w,{children:a("option",{value:l,children:d[l]})},l))})]})]})};export{B as SearchFilters};
|
|
2
2
|
//# sourceMappingURL=SearchFilters.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as d,jsx as i,Fragment as
|
|
1
|
+
import{jsxs as d,jsx as i,Fragment as u}from"react/jsx-runtime";import{withStyles as w,Card as v,makeStyles as f,CardHeader as C,CardContent as k,Divider as S,CardActions as N,Button as A}from"@material-ui/core";import{createStyles as B}from"@material-ui/core/styles";import{SoundcheckMarkdownContent as D}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{SummaryCardActionsMenu as E}from"./SummaryCardActionsMenu.esm.js";const h=w(e=>B({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:e.spacing(2),position:"relative",justifyContent:"start"}}))(v),y=f(e=>({root:{position:"relative",height:"100%"},summaryName:{fontSize:e.typography.pxToRem(24),color:e.palette.text.primary,maxHeight:"250px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{color:e.palette.text.primary,padding:0,maxHeight:"175px",overflow:"auto",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},card:{paddingTop:e.spacing(1),paddingBottom:0,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),borderColor:e.palette.divider},cardContent:{height:"100%",paddingTop:0},actionArea:{padding:e.spacing(1.5,2,1.5,4)},button:{minWidth:0,color:e.palette.text.primary,"&:disabled":{color:e.palette.text.disabled,opacity:1}}})),H=({title:e,description:x,viewLabel:n="View",editLabel:l="Edit",children:g,handleDelete:p,handleArchive:s,handleEdit:t,handleView:a,handleExport:c,handleRecertify:m,viewIsPrimaryAction:b})=>{const r=y(),o=!b&&!!t;return d(h,{className:r.card,"data-testid":e,children:[i(C,{title:e,titleTypographyProps:{className:r.summaryName},action:(!!p||!!s||!!t||!!c||!!m)&&i(E,{handleView:a,handleDelete:p,handleArchive:s,handleEdit:t,handleExport:c,handleRecertify:m})}),i(k,{className:r.cardContent,children:d(u,{children:[i(D,{className:r.summaryDescription,content:x??""}),g]})}),(a||t)&&d("div",{children:[i(S,{}),i(N,{className:r.actionArea,children:i(A,{"aria-label":o?l:n,"data-testid":`${e}-button`,size:"medium",role:"link",onClick:o?t:a,disabled:!a&&!t,className:r.button,variant:"outlined",children:o?l:n})})]})]})};export{h as Card,H as SummaryCard,y as useSummaryCardStyles};
|
|
2
2
|
//# sourceMappingURL=SummaryCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as i,Fragment as z,jsx as n}from"react/jsx-runtime";import{makeStyles as S,IconButton as N,Menu as g,MenuItem as o,ListItemIcon as c,ListItemText as l}from"@material-ui/core";import k from"@material-ui/icons/Archive";import x from"@material-ui/icons/Delete";import C from"@material-ui/icons/Edit";import v from"@material-ui/icons/MoreVert";import b from"@material-ui/icons/OpenInBrowser";import E from"@material-ui/icons/Refresh";import L from"@material-ui/icons/SaveAlt";import{useState as M}from"react";const A=S(t=>({menuList:{backgroundColor:t.palette.background.paper,color:t.palette.text.primary},menuIcon:{color:t.palette.text.primary},menuIconSize:{minWidth:t.spacing(4)}})),T=({handleDelete:t,handleArchive:s,handleView:d,handleEdit:u,handleExport:h,handleRecertify:p})=>{const r=A(),[f,y]=M(null),m=!!f,I=e=>{e.stopPropagation(),y(e.currentTarget)},a=e=>{e.stopPropagation(),y(null)};return i(z,{children:[n(N,{"aria-label":"summary-card-actions",id:"summary-card-action-menu-button","aria-controls":m?"summary-card-action-menu":void 0,"aria-expanded":m?"true":void 0,"aria-haspopup":"true",onClick:I,children:n(v,{})}),i(g,{id:"summary-card-action-menu",anchorEl:f,open:m,onClose:a,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{"aria-labelledby":"summary-card-action-menu-button",className:r.menuList},children:[d&&i(o,{"data-testid":"summary-card-action-view",onClick:e=>{d(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(b,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"View"})]}),u&&i(o,{"data-testid":"summary-card-action-edit",onClick:e=>{u(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(C,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Edit"})]}),h&&i(o,{"data-testid":"summary-card-action-export",onClick:e=>{h(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(L,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Export"})]}),p&&i(o,{"data-testid":"summary-card-action-recertify",onClick:e=>{p(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(E,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Recertify"})]}),s&&i(o,{"data-testid":"summary-card-action-archive",onClick:e=>{s(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(k,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Archive"})]}),t&&i(o,{"data-testid":"summary-card-action-delete",onClick:e=>{t(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(x,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Delete"})]})]})]})};export{T as SummaryCardActionsMenu};
|
|
2
2
|
//# sourceMappingURL=SummaryCardActionsMenu.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as g,jsx as i}from"react/jsx-runtime";import{useApi as y}from"@backstage/core-plugin-api";import{entityPresentationApiRef as C}from"@backstage/plugin-catalog-react";import{Row as h,Cell as n,CellProfile as R}from"@backstage/ui";import{RiMore2Line as d}from"@remixicon/react";import{isEmpty as k}from"lodash";import{useNavigate as w}from"react-router-dom";const P=({ownerEntityRef:t,href:r,profileImageSrc:l,cells:m,actions:p})=>{const s=y(C),e=t?s.forEntity(t):void 0,a=w();return g(h,{onAction:()=>r&&a(r),children:[m.map((o,c)=>i(n,{title:o.title,leadingIcon:o.icon,onClick:f=>{o.onClick&&(f.stopPropagation(),o.onClick())}},`cell-${c}`)),i(R,{name:e?.snapshot.primaryTitle,src:l??e?.snapshot.primaryTitle}),!k(p)&&i(n,{title:"",onClick:o=>o.stopPropagation(),leadingIcon:i(d,{size:16})})]})};export{P as TableRowWithOwner};
|
|
2
|
+
//# sourceMappingURL=TableRowWithOwner.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import{useTheme as E,Box as d}from"@material-ui/core";import{makeStyles as g}from"@material-ui/core/styles";import{useMemo as i,useCallback as u}from"react";import{getCheckStatusColor as o}from"../../utils/colors.esm.js";import{CategoryBar as N}from"../CategoryBar/CategoryBar.esm.js";import{CheckStateCategories as t,CheckStateColors as a}from"../CheckPage/utils.esm.js";const C=g(e=>({categoryBar:{"& .MuiBox-root > div":{height:"8px"}}})),T=({status:e,className:p})=>{const c=C(),r=E(),l=i(()=>({passed:e?.passed??0,failed:e?.failed??0,warning:e?.warning??0,error:e?.error??0,exempt:e?.exempt??0,notReported:e?.notReported??0}),[e]),n=u(s=>{switch(s){case t.NOT_APPLICABLE:return"Not Applicable";case t.NOT_REPORTED:return"Not Reported";default:return s.charAt(0).toUpperCase()+s.slice(1)}},[]),R=i(()=>({passed:o(r,a.PASSED),failed:o(r,a.FAILED),warning:o(r,a.WARNING),error:o(r,a.ERROR),exempt:o(r,a.EXEMPT),notReported:o(r,a.NOT_REPORTED)}),[r]);return m(d,{className:p,style:{width:"100%"},children:m(N,{className:c.categoryBar,data:l,categories:[t.PASSED,t.FAILED,t.WARNING,t.ERROR,t.EXEMPT,t.NOT_REPORTED],categoryColors:R,showTooltip:!0,valueFormatter:s=>s.toString(),categoryFormatter:n})})};export{T as TeamStatusBar};
|
|
2
2
|
//# sourceMappingURL=TeamStatusBar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as u,jsx as n}from"react/jsx-runtime";import{makeStyles as x,Box as c,TextField as m,InputAdornment as k,IconButton as y,Chip as C}from"@material-ui/core";import f from"@material-ui/icons/Clear";import{Autocomplete as I}from"@material-ui/lab";const T=x(l=>({input:{backgroundColor:l.palette.background.paper,minWidth:200}})),b=({searchText:l,onSearchTextChange:i,selectedTrackIds:r,onSelectedTrackIdsChange:h,trackOptions:s,applicableTracks:o,isLoading:d})=>{const p=T();return u(c,{display:"flex",maxWidth:720,alignItems:"center",style:{gap:"8px"},flex:1,children:[n(m,{placeholder:"Search tracks or campaigns...",variant:"outlined",size:"small",value:l,onChange:e=>i(e.target.value),style:{flex:1},disabled:d||o.length===0,InputProps:{className:p.input,endAdornment:l&&n(k,{position:"end",children:n(y,{size:"small",onClick:()=>i(""),edge:"end",children:n(f,{})})})}}),n(I,{multiple:!0,options:s,getOptionLabel:e=>e.name,value:s.filter(e=>r.includes(e.id)),onChange:(e,a)=>h(a.map(t=>t.id)),disabled:d||o.length===0,groupBy:e=>e.type,renderOption:e=>n(c,{display:"flex",alignItems:"center",style:{gap:8},children:n("span",{children:e.name})}),renderInput:e=>n(m,{...e,variant:"outlined",size:"small",placeholder:r.length===0?"All Tracks/Campaigns":"",className:p.input,style:{minWidth:300}}),renderTags:(e,a)=>e.length===0?null:e.map((t,g)=>n(C,{label:t.name,size:"small",...a({index:g})},t.id)),style:{minWidth:300}})]})};export{b as FilterControls};
|
|
2
2
|
//# sourceMappingURL=FilterControls.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as a,jsx as i,Fragment as o}from"react/jsx-runtime";import{Box as t,Card as s,Text as n}from"@backstage/ui";import{makeStyles as h}from"@material-ui/core";import{Skeleton as p}from"@material-ui/lab";const m=h(()=>({summaryTilesContainer:{gap:"var(--bui-space-4)",display:"flex",marginBottom:"var(--bui-space-4)"},summaryTile:{padding:"var(--bui-space-3)"},tile:{minHeight:90,display:"flex",flexDirection:"column",justifyContent:"space-between"}})),c=({title:e,content:l,isLoading:r})=>{const d=m();return a(t,{className:d.tile,children:[i(n,{variant:"body-large",children:e}),r?i(o,{children:i(p,{variant:"text",width:50,height:40})}):i(t,{children:l})]})},g=({summaryStats:e,isLoading:l=!1})=>{const r=m();return a(t,{className:r.summaryTilesContainer,children:[i(s,{className:r.summaryTile,children:i(c,{isLoading:l||e.numTeams===void 0||e.numEntities===void 0,title:"Group Information",content:a(o,{children:[a(t,{children:[i(n,{children:e.numTeams})," ",i(n,{color:"secondary",children:"Groups"})]}),a(t,{children:[i(n,{children:e.numEntities})," ",i(n,{color:"secondary",children:"Entities"})]})]})})}),i(s,{className:r.summaryTile,children:i(c,{isLoading:l||e.totalActiveTracksCampaigns===void 0||e.totalCampaigns===void 0||e.totalTracks===void 0,title:"Tracks & Campaigns",content:a(o,{children:[a(t,{children:[i(n,{children:e.totalActiveTracksCampaigns})," ",i(n,{color:"secondary",children:"Total Tracks & Campaigns"})]}),a(t,{children:[i(n,{children:(e.totalCampaigns??0)+(e.totalTracks??0)})," ",i(n,{color:"secondary",children:"Applicable Tracks & Campaigns"})]})]})})}),i(s,{className:r.summaryTile,children:i(c,{isLoading:l||e.avgCompliance===void 0||e.totalCampaigns===void 0||e.totalTracks===void 0,title:"Average Compliance",content:i(o,{children:i(t,{children:i(n,{variant:"title-medium",children:!e.totalTracks&&!e.totalCampaigns?"-":`${e.avgCompliance}%`})})})})})]})};export{g as SummaryTiles};
|
|
2
2
|
//# sourceMappingURL=SummaryTiles.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as a,jsxs as B,Fragment as Ee}from"react/jsx-runtime";import{useApi as Re,useRouteRef as be}from"@backstage/core-plugin-api";import{entityPresentationApiRef as ve}from"@backstage/plugin-catalog-react";import{Box as Z,HeaderPage as Ie,Flex as Pe,SearchField as Be}from"@backstage/ui";import{makeStyles as xe,Box as x,Typography as le,LinearProgress as Ae}from"@material-ui/core";import{useTheme as Fe}from"@material-ui/core/styles";import{isEmpty as Me}from"lodash";import{useState as K,useMemo as l,useEffect as pe,useCallback as me}from"react";import{useSearchParams as Ne,useNavigate as $e}from"react-router-dom";import je from"react-use/lib/useDebounce";import de from"react-use/lib/useLocalStorage";import"@tanstack/react-query";import"../../api.esm.js";import{useBatchedHierarchicalTrackStatuses as Ue}from"../../hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js";import{useGroupHierarchy as Ge}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{useTracksApplicableToGroup as He}from"../../hooks/tracks/useTracksApplicableToGroup.esm.js";import{useFeatureFlag as Oe}from"../../hooks/useFeatureFlag.esm.js";import{useLCPReporting as ze}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as De}from"../../hooks/useLoadTimeReporting.esm.js";import{techInsightsTrackRouteRef as Ve}from"../../routes.esm.js";import{getEntitiesBucket as We,getTracksBucket as Ze}from"../../utils/helpers.esm.js";import"../GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js";import"@remixicon/react";import{getAllOwnedEntityCount as Ke}from"../GroupHierarchySelector/getAllOwnedEntityCount.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as Qe}from"../SoundcheckHeader/useHeader.esm.js";import{TechInsightsGroupSelector as ge}from"../TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js";import{FilterControls as Xe}from"./FilterControls.esm.js";import{SummaryTiles as Ye}from"./SummaryTiles.esm.js";import{TechInsightsTableBUI as _e}from"./TechInsightsTableBUI.esm.js";import{TechInsightsTableView as qe}from"./TechInsightsTableView.esm.js";const Je=xe(o=>({container:{padding:o.spacing(3,2),paddingTop:0,position:"relative"},gridContainer:{marginTop:o.spacing(3)},gridItem:{cursor:"pointer","&:hover":{transform:"scale(1.02)",transition:"transform 0.2s ease-in-out"}},emptyState:{textAlign:"center",padding:o.spacing(4)},errorState:{textAlign:"center",padding:o.spacing(4)},headerControls:{display:"flex",alignItems:"center"},progressIndicator:{position:"absolute",top:0,left:0,right:0,zIndex:o.zIndex.speedDial},tableRow:{"&:hover":{backgroundColor:o.palette.action.hover}}})),et=()=>{const o=Oe("backstage-ui"),[n,g]=Ne(),r=n.get("group")||"",[R,A]=de("soundcheck-tech-insights-sort-column"),[b,F]=de("soundcheck-tech-insights-sort-direction"),[m,Q]=K(n.get("search")||""),[v,ue]=K(""),[p,he]=K(n.get("tracks")?.split(",").filter(Boolean)||[]),X=l(()=>({routeName:"soundcheck-tech-insights",additionalAttributes:{group:r||"",tracksFilter:p.join(",")||"",tracksFilterCount:p.length,tracksSearch:v||""}}),[r,v,p]),{reportContentLoaded:Y}=De({...X,enabled:!!r}),{reporter:fe}=ze(X),y=Je(),ke=Fe(),_=$e();Qe();const M=Re(ve),u=n.get("sortBy"),h=n.get("direction"),N=u||"entities",$=h||"desc";pe(()=>{u&&u!==R&&A(u),h&&h!==b&&F(h);const e=new URLSearchParams(n.toString());let t=!1;!u&&R&&(e.set("sortBy",R),t=!0),!h&&b&&(e.set("direction",b),t=!0),t&&g(e,{replace:!0})},[R,b,n,A,F,g,h,u]),je(()=>{ue(m);const e=new URLSearchParams(n.toString());m?e.set("search",m):e.delete("search"),g(e,{replace:!0})},500,[m]);const ye=me(e=>{he(e);const t=new URLSearchParams(n.toString());e.length>0?t.set("tracks",e.join(",")):t.delete("tracks"),g(t,{replace:!0})},[n,g]),q=e=>{const t=N===e&&$==="asc"?"desc":"asc",i=new URLSearchParams(n.toString());i.set("sortBy",e),i.set("direction",t),g(i,{replace:!0}),A(e),F(t)},{tracks:T,counts:j,isLoading:C,error:U,activeTrackCount:G}=He(r,{},{enabled:!!r}),S=T.filter(e=>e.type==="campaign"),w=T.filter(e=>e.type!=="campaign"),Te=l(()=>[...S,...w].map(e=>({id:e.id,name:e.name,type:e.type==="campaign"?"Campaign":"Track"})),[S,w]),f=S.filter(e=>{const t=v.toLowerCase(),i=(e.ownerEntityRef?M.forEntity(e.ownerEntityRef):void 0)?.snapshot.primaryTitle?.toLowerCase()||"",E=t===""||e.name.toLowerCase().includes(t)||e.ownerEntityRef?.toLowerCase().includes(t)||i.includes(t),c=p.length===0||p.includes(e.id);return E&&c}),k=w.filter(e=>{const t=v.toLowerCase(),i=(e.ownerEntityRef?M.forEntity(e.ownerEntityRef):void 0)?.snapshot.primaryTitle?.toLowerCase()||"",E=t===""||e.name.toLowerCase().includes(t)||e.ownerEntityRef?.toLowerCase().includes(t)||i.includes(t),c=p.length===0||p.includes(e.id);return E&&c}),d=l(()=>[...S.map(e=>e.id),...w.map(e=>e.id)],[S,w]),{data:H,isLoading:Ce,error:Se,progress:s}=Ue({trackIds:d,groupRef:r||"",skip:!r||d.length===0}),{data:J,isLoading:I}=Ge(r,{includeParent:!0}),P=l(()=>{const e=new Map;return Array.isArray(H)&&H.forEach(t=>{t&&t.trackId&&e.set(t.trackId,t)}),e},[H]),ee=l(()=>{const e=new Map;return Array.isArray(j)&&j.forEach(t=>{t&&t.id&&e.set(t.id,t.applicableEntityCount)}),e},[j]),O=C&&!U&&!!r,te=U||Se,z=d.length>0&&Ce&&!te&&!!r,re=l(()=>({totalCampaigns:f.length,totalTracks:k.length,totalActiveTracksCampaigns:G}),[G,f.length,k.length]),ae=l(()=>{if(z)return{numTeams:void 0,avgCompliance:void 0};let e=0,t=0;const i=new Set;return[...f,...k].forEach(E=>{const c=P.get(E.id);if(c){c.status&&typeof c.status.allPassPercentage=="number"&&(e+=c.status.allPassPercentage,t++),c.groupRef&&i.add(c.groupRef);const V=[c];for(;V.length>0;){const Le=V.pop();for(const W of Le.children)i.has(W.groupRef)||(i.add(W.groupRef),V.push(W))}}}),{numTeams:i.size,avgCompliance:t>0?Math.round(e/t):0}},[f,k,P,z]),L=l(()=>{if(I)return{numEntities:void 0};const e=J?.[r];return{numEntities:Ke(e)}},[J,I,r]),we=l(()=>({...re,...ae,...L}),[re,ae,L]),oe=be(Ve),ie=me(e=>{if(!r)return;const t=new URLSearchParams;t.set("group",r),t.set("track",e),t.set("node",r),_(`${oe()}?${t.toString()}`)},[r,_,oe]),ne=r?M.forEntity(r).snapshot.primaryTitle:void 0,D=l(()=>!s||s.totalTracks===0?0:s.loadedTracks/s.totalTracks*100,[s]),se=C&&r&&!U||z&&s&&s.totalTracks>0,ce=fe?.getLCPValue();return pe(()=>{if(!I&&!C&&(D===100||d.length===0)){const e=L.numEntities??0,t=d.length;Y({lcp:ce,numberOfEntities:L.numEntities,entitiesBucket:We(e),numberOfTracks:d.length,tracksBucket:Ze(t)})}},[I,C,D,d.length,L.numEntities,Y,ce]),te&&!o?a(x,{className:y.container,children:a(le,{variant:"h4",className:y.errorState,children:"Error loading tech insights data"})}):B(Ee,{children:[o&&a(Z,{children:a(Ie,{title:`${ne?`${ne}'s `:""}Tech Insights`,customActions:B(Pe,{justify:"between",align:"center",gap:"3",children:[a(ge,{hideSelected:!0}),a(Be,{isDisabled:Me(T),value:m,onChange:Q,placeholder:"Search tracks or campaigns",style:{minWidth:250}})]})})}),B(Z,{className:y.container,children:[!o&&B(x,{display:"flex",justifyContent:"space-between",alignItems:"center",gridGap:12,marginBottom:3,children:[a(ge,{}),a(Xe,{searchText:m,onSearchTextChange:Q,selectedTrackIds:p,onSelectedTrackIdsChange:ye,trackOptions:Te,applicableTracks:T,isLoading:O})]}),a(Z,{style:{marginTop:0},children:a(Ye,{summaryStats:we,isLoading:O})}),se&&a(x,{style:{marginBottom:16},children:a(Ae,{variant:s&&s.totalTracks>0?"determinate":"indeterminate",value:s&&s.totalTracks>0?D:void 0,"data-testid":"batch-loading-indicator"})}),o&&a(_e,{tracks:[...f,...k],trackStatusMap:P,trackCountsMap:ee,sortColumn:N,order:$,handleSort:q,handleTrackClick:ie,isLoading:O||!!se,isSearch:!!m,activeTrackCount:G,hasGroupSelected:!!r}),!o&&(T.length===0&&!C?a(x,{className:y.emptyState,children:a(le,{variant:"h6",children:r?"No applicable tracks found for the selected group":"Please select a group to view applicable tracks"})}):a(qe,{tracks:[...f,...k],trackStatusMap:P,trackCountsMap:ee,orderBy:N,order:$,handleSort:q,handleTrackClick:ie,theme:ke,classes:y}))]})]})};export{et as TechInsightsPage};
|
|
2
2
|
//# sourceMappingURL=TechInsightsPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as k,Fragment as M}from"react/jsx-runtime";import{useApi as A}from"@backstage/core-plugin-api";import{entityPresentationApiRef as B}from"@backstage/plugin-catalog-react";import{Table as $,TableHeader as j,Column as m,TableBody as H,Row as U,Cell as y,CellProfile as q}from"@backstage/ui";import{uniq as z,isEmpty as P,isNumber as R}from"lodash";import{useMemo as w}from"react";import{useProfileImages as D}from"../../hooks/catalog/useProfileImages.esm.js";import"../CheckStatusBar/CheckStatusBar.esm.js";import"../CheckStatusBar/CheckStatusBarBUI.esm.js";import{CheckStatusBarCell as F}from"../CheckStatusBar/CheckStatusBarCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as G}from"../EmptyState/EmptyStateBUI.esm.js";import{EmptyStateNoTracks as N}from"../EmptyState/EmptyStateNoTracks.esm.js";import"@backstage/plugin-permission-react";import"@spotify/backstage-plugin-soundcheck-common";import"react-router-dom";import"../../routes.esm.js";import{LoadingTableSkeleton as v}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";const O=({track:s,trackStatus:r,entitiesCount:d,handleTrackClick:C,profileImageMap:u})=>{const n=A(B).forEntity(s.ownerEntityRef),l=w(()=>s.levels.reduce((c,p)=>c+p.checks.length,0),[s.levels]),S=w(()=>{let c;if(r?.allPassPercentage!==null&&r?.allPassPercentage!==void 0)c=r.allPassPercentage;else if(r){const p=(r.passed??0)+(r.failed??0)+(r.warning??0)+(r.error??0)+(r.notReported??0)+(r.exempt??0);c=p>0?((r.passed??0)+(r.exempt??0))/p*100:0}return c},[r]),g=u[n.snapshot.entityRef];return k(U,{onAction:()=>{C(s.id)},children:[t(y,{title:s.name??s.id}),t(F,{passPercentage:S}),t(y,{title:s.type==="campaign"?"Campaign":"Track"}),t(y,{title:R(l)?`${l} Check${l===1?"":"s"}`:"N/A"}),t(y,{title:R(d)?`${d} ${d===1?"Entity":"Entities"}`:"N/A"}),t(q,{name:n.snapshot.primaryTitle,src:g??n.snapshot.primaryTitle})]})},Y=({order:s,sortColumn:r,handleSort:d,handleTrackClick:C,tracks:u,trackStatusMap:n,trackCountsMap:l,isSearch:S,isLoading:g,activeTrackCount:c,hasGroupSelected:p})=>{const E=w(()=>[...u].filter(e=>{const a=n.get(e.id)?.status,h=(a?.passed??0)+(a?.failed??0)+(a?.warning??0)+(a?.error??0)+(a?.notReported??0)+(a?.exempt??0);return!a||h>0}).sort((e,a)=>{const h=n.get(e.id),L=n.get(a.id);let o,i;switch(r){case"name":o=e.name?.toLowerCase()||"",i=a.name?.toLowerCase()||"";break;case"type":o=e.type||"",i=a.type||"";break;case"owner":o=e.ownerEntityRef?.toLowerCase()||"",i=a.ownerEntityRef?.toLowerCase()||"";break;case"compliance":o=h?.status?.allPassPercentage??null,i=L?.status?.allPassPercentage??null;break;case"checks":o=e.levels.reduce((b,T)=>b+T.checks.length,0),i=a.levels.reduce((b,T)=>b+T.checks.length,0);break;case"entities":o=l.get(e.id)??0,i=l.get(a.id)??0;break;default:return 0}return typeof o=="number"&&typeof i=="number"?s==="asc"?o-i:i-o:typeof o=="number"&&i===null?-1:o===null&&typeof i=="number"?1:typeof o=="string"&&typeof i=="string"?s==="asc"?o.localeCompare(i):i.localeCompare(o):0}),[u,n,r,l,s]),f=w(()=>E.map(e=>{const a=n.get(e.id)?.status,h=l.get(e.id)??0;return{track:e,trackStatus:a,entitiesCount:h}}),[E,l,n]),x=z(f.map(e=>e.track.ownerEntityRef)),{profileImageMap:I}=D(x);return!g&&P(u)?p?S&&c>0?t(G,{title:"No tracks or campaigns found.",body:"Your current search term did not return any tracks or campaigns. Please try a different search term. "}):t(N,{title:c>0?"No applicable tracks found for the selected group":void 0}):t(N,{title:"Select a group or create a new track"}):k(M,{children:[k($,{sortDescriptor:{column:r,direction:s==="asc"?"ascending":"descending"},onSortChange:e=>d(e.column),children:[k(j,{children:[t(m,{id:"name",allowsSorting:!0,isRowHeader:!0,children:"Name"}),t(m,{id:"compliance",allowsSorting:!0,children:"Compliance"}),t(m,{style:{width:130},id:"type",allowsSorting:!0,children:"Type"}),t(m,{style:{width:150},id:"checks",allowsSorting:!0,children:"Checks"}),t(m,{style:{width:150},id:"entities",allowsSorting:!0,children:"Entities"}),t(m,{id:"owner",allowsSorting:!0,children:"Track Owner"})]}),t(H,{children:f.map(e=>t(O,{handleTrackClick:C,profileImageMap:I??{},...e},e.track.id))})]}),P(f)&&g&&t(v,{rowCount:10}),!P(f)&&g&&t(v,{rowCount:4})]})};export{Y as TechInsightsTableBUI};
|
|
2
|
+
//# sourceMappingURL=TechInsightsTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,
|
|
1
|
+
import{jsx as e,Fragment as N,jsxs as g}from"react/jsx-runtime";import{useApi as $}from"@backstage/core-plugin-api";import{entityPresentationApiRef as E}from"@backstage/plugin-catalog-react";import{TableContainer as H,Paper as L,Table as A,TableHead as z,TableRow as x,TableCell as c,TableSortLabel as f,TableBody as B,Typography as b,Box as w}from"@material-ui/core";import F from"@material-ui/icons/ArrowDownward";import M from"@material-ui/icons/ArrowUpward";import{useMemo as D}from"react";import{getColorInterpolator as j,getCheckStatusColor as I}from"../../utils/colors.esm.js";import{CategoryBar as V}from"../CategoryBar/CategoryBar.esm.js";import{CheckStateColors as P}from"../CheckPage/utils.esm.js";import{ColorChip as J}from"../ColorChip/ColorChip.esm.js";const O=({tracks:v,trackStatusMap:m,trackCountsMap:y,orderBy:o,order:s,handleSort:h,handleTrackClick:S,theme:u,classes:l})=>{const R=$(E),T=D(()=>[...v].filter(r=>{const t=m.get(r.id)?.status,d=(t?.passed??0)+(t?.failed??0)+(t?.warning??0)+(t?.error??0)+(t?.notReported??0)+(t?.exempt??0);return!t||d>0}).sort((r,t)=>{const d=m.get(r.id),k=m.get(t.id);let n,a;switch(o){case"name":n=r.name?.toLowerCase()||"",a=t.name?.toLowerCase()||"";break;case"type":n=r.type||"",a=t.type||"";break;case"owner":n=r.ownerEntityRef?.toLowerCase()||"",a=t.ownerEntityRef?.toLowerCase()||"";break;case"compliance":n=d?.status?.allPassPercentage??null,a=k?.status?.allPassPercentage??null;break;case"checks":n=r.levels.reduce((i,C)=>i+C.checks.length,0),a=t.levels.reduce((i,C)=>i+C.checks.length,0);break;case"entities":n=y.get(r.id)??0,a=y.get(t.id)??0;break;default:return 0}return typeof n=="number"&&typeof a=="number"?s==="asc"?n-a:a-n:typeof n=="number"&&a===null?-1:n===null&&typeof a=="number"?1:typeof n=="string"&&typeof a=="string"?s==="asc"?n.localeCompare(a):a.localeCompare(n):0}),[s,o,m,y,v]),p=r=>r.direction==="asc"?e(M,{...r,fontSize:"small"}):e(F,{...r,fontSize:"small"});return e(N,{children:e(H,{component:L,children:g(A,{className:l.table,size:"small",children:[e(z,{children:g(x,{children:[e(c,{width:"30%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="name",direction:o==="name"?s:"desc",onClick:()=>h("name"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Name"})})}),e(c,{width:"10%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="checks",direction:o==="checks"?s:"desc",onClick:()=>h("checks"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Checks"})})}),e(c,{width:"10%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="entities",direction:o==="entities"?s:"desc",onClick:()=>h("entities"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Entities"})})}),e(c,{width:"30%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="compliance",direction:o==="compliance"?s:"desc",onClick:()=>h("compliance"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Compliance"})})}),e(c,{width:"20%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="owner",direction:o==="owner"?s:"desc",onClick:()=>h("owner"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Track Owner"})})})]})}),e(B,{children:T.map(r=>{const t=m.get(r.id)?.status;let d=0;if(t?.allPassPercentage!==null&&t?.allPassPercentage!==void 0)d=t.allPassPercentage;else if(t){const i=(t.passed??0)+(t.failed??0)+(t.warning??0)+(t.error??0)+(t.notReported??0)+(t.exempt??0);d=i>0?((t.passed??0)+(t.exempt??0))/i*100:0}const k=r.levels.reduce((i,C)=>i+C.checks.length,0),n=y.get(r.id)??0,a=Math.round(d);return g(x,{onClick:()=>S(r.id),className:l.tableRow,style:{cursor:"pointer"},children:[e(c,{className:l.tableCell,children:e(b,{variant:"body2",style:{fontWeight:500},children:r.name})}),e(c,{className:l.tableCell,children:e(b,{variant:"body2",children:k})}),e(c,{className:l.tableCell,children:e(b,{variant:"body2",children:new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(n)})}),e(c,{className:l.tableCell,children:g("div",{style:{display:"flex",alignItems:"center",gap:8},children:[t&&e(J,{value:`${a}%`,getColor:j(u,"default"),numericValue:d/100}),e(w,{flex:1}),e("div",{style:{width:"100%"},children:e(V,{data:{compliant:a,nonCompliant:100-a},categories:["compliant","nonCompliant"],categoryColors:{compliant:I(u,P.PASSED),nonCompliant:I(u,P.FAILED)},showTooltip:!1})})]})}),e(c,{className:l.tableCell,style:{verticalAlign:"middle"},children:r.ownerEntityRef&&e(w,{display:"flex",alignItems:"center",children:(()=>{const i=R.forEntity(r.ownerEntityRef);return g(N,{children:[i.snapshot.Icon&&e(w,{marginRight:1,display:"flex",alignItems:"center",height:"20px",children:e(i.snapshot.Icon,{fontSize:"small"})}),e(b,{variant:"body2",style:{lineHeight:"20px"},children:i.snapshot.primaryTitle||r.ownerEntityRef})]})})()})})]},r.id)})})]})})})};export{O as TechInsightsTableView};
|
|
2
2
|
//# sourceMappingURL=TechInsightsTableView.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as S,jsx as l}from"react/jsx-runtime";import{useApi as y,configApiRef as G}from"@backstage/core-plugin-api";import{EntityDisplayName as x}from"@backstage/plugin-catalog-react";import{Box as g,Chip as v}from"@material-ui/core";import{useMemo as R,useEffect as w,useCallback as L}from"react";import{useSearchParams as P}from"react-router-dom";import b from"react-use/lib/useLocalStorage";import{useGroupOptions as k}from"../../hooks/groups/useGroupOptions.esm.js";import"../GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js";import{GroupHierarchySelector as C}from"../GroupHierarchySelector/GroupHierarchySelector.esm.js";import{usePreviousSelectedGroups as I}from"../GroupHierarchySelector/usePreviousSelectedGroups.esm.js";const T=({onChange:c,hideSelected:d})=>{const{options:o,isLoading:n}=k(),[t,s]=P(),[m,p]=b("soundcheck.overview.groupRef",null),i=t.get("group"),a=y(G).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),{addGroup:u}=I(),r=R(()=>{if(!n&&o.length){if(i||m){const e=i??m;return o.find(f=>f.ref===e)??o[0]}else if(a)return o.find(e=>e.type===a)??o[0];return o[0]}return null},[a,n,o,i,m]);w(()=>{if(!n&&o.length&&!i&&r){const e=new URLSearchParams(t.toString());e.set("group",r.ref),s(e,{replace:!0}),p(r.ref),c?.(r.ref),u(r.ref)}},[n,o,i,r,t,s,p]);const h=L(e=>{const f=new URLSearchParams(t.toString());f.set("group",e),s(f),p(e),c?.(e),u(e)},[u,c,t,p,s]);return S(g,{display:"flex",alignItems:"center",children:[l(C,{currentSelectedGroup:r?.ref,applyGroup:h},r?.ref),!d&&r?.ref&&l(g,{display:"flex",alignItems:"center",marginLeft:1,children:l(v,{size:"small",color:"secondary",style:{marginBottom:4,marginTop:4},label:l(x,{entityRef:r.ref})})})]})};export{T as TechInsightsGroupSelector};
|
|
2
2
|
//# sourceMappingURL=TechInsightsGroupSelector.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{Grid as n,Button as
|
|
1
|
+
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{Grid as n,Button as f,Menu as M,Box as x,TextField as D}from"@material-ui/core";import{makeStyles as O}from"@material-ui/core/styles";import{useState as h}from"react";import{useSearchParams as B}from"react-router-dom";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"@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{MIN_NUMBER_OF_DAYS as l,MAX_NUMBER_OF_DAYS as E}from"../TechHealth/Filters/utils.esm.js";const S=[{label:"7D",value:7},{label:"1M",value:30},{label:"2M",value:60},{label:"3M",value:90}],w=O(o=>({root:{width:"100%",paddingLeft:"60px",paddingBottom:o.spacing(1)},buttons:{paddingTop:"0 !important",paddingBottom:"0 !important"},customNumberOfDaysMenu:{width:"180px",padding:o.spacing(0,1)}})),C=({maxNumberOfDays:o=E})=>{const i=w(),[g,b]=B(),[m,p]=h(null),[a,s]=h(""),v=t=>{p(t.currentTarget)},y=()=>{p(null)},u=t=>{let r;if(typeof t=="string"){if(!t.length)return!0;r=parseInt(t,10)}else r=t;return!isNaN(r)&&r>=l&&r<=o},c=t=>{u(t)&&b(r=>(g.set("numberOfDays",t.toString()),r))},N=t=>{if(t.key==="Enter"){const r=parseInt(a,10);c(r),s("")}};return d(n,{container:!0,spacing:1,direction:"row",wrap:"nowrap",className:i.root,children:[S.filter(({value:t})=>t<=o).map(t=>e(n,{item:!0,className:i.buttons,children:e(f,{size:"small",onClick:()=>c(t.value),children:t.label})},t.value)),d(n,{item:!0,className:i.buttons,children:[e(f,{size:"small","aria-controls":"days-menu","aria-haspopup":"true",onClick:v,children:"Custom"}),e(M,{id:"days-menu",anchorEl:m,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},keepMounted:!0,open:!!m,onClose:y,children:e(x,{className:i.customNumberOfDaysMenu,children:e(D,{fullWidth:!0,variant:"outlined",size:"small",placeholder:"Number of days",helperText:`Enter value from ${l} to ${o}`,inputProps:{min:l,max:o},onKeyDown:N,value:a,type:"number",onChange:t=>s(t.target.value),error:!u(a)})})})]})]})};export{C as TimePeriodBar};
|
|
2
2
|
//# sourceMappingURL=TimePeriodBar.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as s}from"react/jsx-runtime";import{useRouteRef as T}from"@backstage/core-plugin-api";import{Box as N,Table as R,TableHeader as x,Column as m,TableBody as F,Row as P,Cell as d}from"@backstage/ui";import{makeStyles as B}from"@material-ui/core";import{useState as h,useMemo as g}from"react";import{CircularProgressbar as I}from"react-circular-progressbar";import{useNavigate as E}from"react-router-dom";import{TrackEntityField as H}from"../../graphql/generated/index.esm.js";import{checkDetailsRouteRef as L}from"../../routes.esm.js";import{LoadingTableSkeleton as O}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";const j=B(()=>({customCell:{padding:"0 var(--bui-space-3)"},circularProgressBg:{color:"var(--bui-fg-secondary)",opacity:.25},circularProgressOverlay:{position:"absolute",left:0,color:"var(--bui-fg-danger)"},circularProgressbar:{width:"60%"}}));H.Name;const A=({track:o,checkStatuses:a,certificationStatus:u})=>{const b=j(),[c,k]=h("ascending"),[v,C]=h("name"),y=T(L),w=E(),f=g(()=>!o.levels||!a?[]:o.levels.flatMap(t=>t.checks.map(e=>{const i=a.find(({id:S})=>S===e.id),n=i?i.numberOfEntities-i.notApplicable-i.exempt:0,l=i?.failed??0;return{check:e,failedCount:l,applicableCount:n}}).filter(({failedCount:e})=>e>0)),[o.levels,a]),p=g(()=>[...f].sort((t,e)=>{const i=t.check.name.toLowerCase().trim(),n=e.check.name.toLowerCase().trim(),l=i.localeCompare(n,void 0,{sensitivity:"base"});return c==="ascending"?l:-l}),[f,c]);return a===void 0||u===void 0?r(O,{}):!o.levels?.length||!p.length?r(N,{children:"No Failing Checks"}):s(R,{onSortChange:({direction:t,column:e})=>{C(String(e)),k(t)},sortDescriptor:{direction:c,column:v},children:[s(x,{children:[r(m,{id:"compliance",style:{width:"5%"},children:"Compliance"}),r(m,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"75%"},children:"Name"}),r(m,{id:"failures",style:{width:"20%"},children:"Failures"})]}),r(F,{children:p.map(({check:t,failedCount:e})=>{const i=(e??0)/u.numberOfEntities*100;return s(P,{onAction:()=>w(y({checkId:t.id})),children:[r(d,{leadingIcon:r("div",{className:b.circularProgressbar,children:r(I,{value:i,strokeWidth:12,styles:{path:{stroke:"var(--bui-fg-danger)"},trail:{stroke:'rgba(var("--bui-fg-secondary"), 0.25)'}}})}),title:`${i}%`}),r(d,{title:t.name}),r(d,{title:`${new Intl.NumberFormat().format(e??0)} failing`})]},t.id)})})]})};export{A as TopFailingChecksTableBUI};
|
|
2
|
+
//# sourceMappingURL=TopFailingChecksTableBUI.esm.js.map
|