@spotify/backstage-plugin-soundcheck 0.12.8 → 0.12.10
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 +22 -0
- package/alpha/package.json +2 -2
- package/dist/api.esm.js +1 -1
- package/dist/components/CacheConfig/CacheConfigComponent.esm.js +1 -1
- package/dist/components/CacheConfig/utils.esm.js +1 -1
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignChecks.esm.js +1 -1
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailsPage.esm.js +1 -1
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignResultsTable.esm.js +1 -1
- package/dist/components/CampaignsTab/CampaignListPage/CampaignListPage.esm.js +1 -1
- package/dist/components/CampaignsTab/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
- package/dist/components/CampaignsTab/CampaignListPage/useArchiveConfirmationModal.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/EditCampaignView.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignNameField.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/CampaignScheduleField.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/EndDateChips.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignMilestonesStep.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignTrackStep.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/useCampaignForm.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/utils.esm.js +1 -1
- package/dist/components/CampaignsTab/MutateCampaignsViews/utils/validation.esm.js +1 -1
- package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationLevel.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistProgress.esm.js +1 -1
- package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +1 -1
- package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +1 -1
- package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +1 -1
- package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/CheckCard/CheckCard.esm.js +1 -1
- package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
- package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +1 -1
- package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +2 -0
- package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +2 -0
- package/dist/components/CheckPage/CheckEntitiesTable/utils.esm.js +2 -0
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +2 -0
- package/dist/components/CheckPage/CheckPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusBar.esm.js +2 -0
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +2 -0
- package/dist/components/CheckPage/CheckStatusTable.esm.js +2 -0
- package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +2 -0
- package/dist/components/CheckPage/StatusRow.esm.js +2 -0
- package/dist/components/CheckPage/utils.esm.js +2 -0
- package/dist/components/ChecksErrors/ChecksErrors.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/useRuleInputHandlers.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/ChecksPage/MutateCheckViews/utils/checkFormUtils.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/FactCollectionConfig.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/DraggableChip/DraggableChip.esm.js +1 -1
- package/dist/components/DroppableInput/DroppableInput.esm.js +1 -1
- package/dist/components/EditTrackPage/EditTrackPage.esm.js +1 -1
- package/dist/components/EmptyState/EmptyState.esm.js +1 -1
- package/dist/components/EntityContent/EntityContent.esm.js +1 -1
- package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/Filter/FilterComponent.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/utils.esm.js +1 -1
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +1 -1
- package/dist/components/FormFilterSection/FormFilterSection.esm.js +1 -1
- package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/Frequency/util.esm.js +1 -1
- package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +1 -1
- package/dist/components/GroupSelector/GroupSelector.esm.js +1 -1
- package/dist/components/LevelCard/LevelCard.esm.js +1 -1
- package/dist/components/LevelCard/LevelTooltip.esm.js +1 -1
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/LoadingIndicator/LoadingIndicator.esm.js +1 -1
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
- package/dist/components/OverviewPage/CampaignRow/CampaignRow.esm.js +1 -1
- package/dist/components/OverviewPage/CampaignRow/utils.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewTabs.esm.js +1 -1
- package/dist/components/OverviewPage/TableContent/TableContent.esm.js +1 -1
- package/dist/components/OverviewPage/TableContent/VirtualTableContent.esm.js +1 -1
- package/dist/components/Pagination/CursorPagination.esm.js +1 -1
- package/dist/components/Pagination/Pagination.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateGrid.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +1 -1
- package/dist/components/ResultsTable/CheckCell/CheckCell.esm.js +1 -1
- package/dist/components/ResultsTable/HighestLevelBadge.esm.js +1 -1
- package/dist/components/ResultsTable/ProgramCheckIndicator.esm.js +1 -1
- package/dist/components/ResultsTable/ProgramCheckRow.esm.js +1 -1
- package/dist/components/ResultsTable/ProgramTitleRow.esm.js +1 -1
- package/dist/components/ResultsTable/ResultsTableFooter.esm.js +1 -1
- package/dist/components/ResultsTable/skeletons/ResultsTableSkeleton.esm.js +1 -1
- package/dist/components/ResultsTable/virtualized/Row.esm.js +1 -1
- package/dist/components/ResultsTable/virtualized/VirtualizedResultsTable.esm.js +1 -1
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/SearchBar/SearchBar.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/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
- package/dist/components/TechHealth/Filters/Filters.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersSection.esm.js +1 -1
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
- package/dist/components/TechHealth/Filters/utils.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/OwnerColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +1 -1
- package/dist/components/TechHealthTabs/TechHealthExportFunctions.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +1 -1
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +1 -1
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelChipsSection.esm.js +1 -1
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelsSection.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
- package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +1 -1
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackLevelsChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +47 -27
- package/dist/hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
- package/dist/hooks/campaigns/useGetCampaigns.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityFacets.esm.js +1 -1
- package/dist/hooks/certifications/useProgramOverviewForOwner.esm.js +1 -1
- package/dist/hooks/checks/useCheckDetails.esm.js +1 -1
- package/dist/hooks/checks/useExecuteCheck.esm.js +2 -0
- package/dist/hooks/entities/useCheckEntities.esm.js +2 -0
- package/dist/hooks/entities/useEntityRefsForUser.esm.js +1 -1
- package/dist/hooks/facets/useFacetFilters.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/useUsersGroupClaims.esm.js +1 -1
- package/dist/hooks/tracks/useGetAllTracks.esm.js +1 -1
- package/dist/hooks/tracks/useGetChecksMap.esm.js +1 -1
- package/dist/hooks/useFeatureFlag.esm.js +2 -0
- package/dist/images/k8s_blue.svg +108 -0
- package/dist/images/k8s_white.svg +108 -0
- package/dist/routes.esm.js +1 -1
- package/dist/text.esm.js +1 -1
- package/package.json +26 -19
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as f}from"@backstage/catalog-model";import{Link as h}from"@backstage/core-components";import{makeStyles as u}from"@material-ui/core";import t,{memo as k}from"react";import{ResultState as s}from"../../../graphql/generated/index.esm.js";import{CheckIcon as v}from"../../CheckIcon/CheckIcon.esm.js";import{CheckCellTooltip as $}from"./CheckCellTooltip.esm.js";const E=u(r=>({root:{padding:0},iconWrapper:{padding:r.spacing(1.5),display:"flex",alignItems:"center",justifyContent:"center"},link:{"&:hover $iconWrapper, &:active $iconWrapper, &:focus $iconWrapper":{backgroundColor:r.palette.action.hover}},icon:{width:"17px",height:"17px"},virtualized:{borderBottom:`1px solid ${r.palette.divider}`,borderRight:`1px solid ${r.palette.divider}`}})),N=k(({programId:r,check:a,entityRef:o,result:i,entityRoute:d,isVirtualized:c})=>{const e=E();if(typeof o!="string"){const p=t.createElement("div",{className:e.iconWrapper},t.createElement("div",{className:e.icon}));return c?t.createElement("div",{className:`${e.root} ${e.virtualized}`,"aria-hidden":!0},p):t.createElement("td",{className:e.root,"aria-hidden":!0},p)}const n=t.createElement(v,{className:e.icon,result:i??s.NotReported}),l=t.createElement("div",{className:e.iconWrapper},n),m=i&&i===s.NotApplicable?l:t.createElement(h,{className:e.link,to:`${d(f(o))}/soundcheck/tracks/${r}/checks/${a.id}`},l);return c?t.createElement("div",{className:`${e.root} ${e.virtualized}`},t.createElement($,{check:a,icon:n,entityRef:o},m)):t.createElement("td",{className:`${e.root}`},m)});export{N as CheckCell};
|
|
2
2
|
//# sourceMappingURL=CheckCell.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as d}from"@material-ui/core";import
|
|
1
|
+
import{makeStyles as d}from"@material-ui/core";import e,{memo as c}from"react";import{LevelBadge as m}from"../Badges/LevelBadge.esm.js";import{NoLevelBadge as n}from"../Badges/NoLevelBadge.esm.js";import{CampaignBadge as g}from"../Badges/CampaignBadge.esm.js";import{RowHeights as s,NO_LEVEL_BADGE_NAME as p}from"./virtualized/virtualizedTableUtils.esm.js";const f=d(t=>({virtualized:{borderRight:`1px solid ${t.palette.divider}`,height:`${s.programTitle}px`,display:"flex",justifyContent:"center",alignItems:"center"}})),v=c(({entityRef:t,highestLevels:l,trackType:r})=>{const a=l.find(o=>o.entityRef===t);let i=a?.badge?e.createElement(m,{badge:a.badge}):e.createElement(n,null);return r==="campaign"&&(i=e.createElement(g,null)),i}),E=({highestLevel:t,trackType:l})=>{const r=f();if(!t?.badge)return e.createElement("div",{className:r.virtualized},"\xA0");let a=t.name!==p?e.createElement(m,{badge:t.badge}):e.createElement(n,null);return l==="campaign"&&(a=e.createElement(g,null)),e.createElement("div",{className:r.virtualized},a)};export{v as HighestLevelBadge,E as HighestLevelBadgeCell};
|
|
2
2
|
//# sourceMappingURL=HighestLevelBadge.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as p,Tooltip as
|
|
1
|
+
import{makeStyles as p,Tooltip as l,LinearProgress as m}from"@material-ui/core";import s,{useMemo as g}from"react";import{ResultState as a}from"../../graphql/generated/index.esm.js";const d=p(e=>({root:{height:"8px",minWidth:"64px",marginLeft:e.spacing(2),borderRadius:"100vh",backgroundColor:e.palette.action.hover},bar:{backgroundColor:e.palette.success.main,transition:"none"}})),u=e=>{const r=d(e),t=g(()=>Object.entries(e.progress).reduce((i,[,c])=>i+c,0),[e.progress]);if(t===0)return null;const o=e.progress[a.Passed]??0,n=Math.round(o/t*100);return s.createElement(l,{arrow:!0,title:`Check passing at ${n}%, ${o} of ${t} ${t===1?"entity":"entities"} passing.`,enterDelay:0,placement:"top"},s.createElement(m,{variant:"determinate",value:(e.progress[a.Passed]??0)/t*100,classes:{root:r.root,bar:r.bar}}))};export{u as ProgramCheckIndicator};
|
|
2
2
|
//# sourceMappingURL=ProgramCheckIndicator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as f,Typography as s}from"@material-ui/core";import t,{memo as u,useMemo as C}from"react";import{CheckCell as E}from"./CheckCell/CheckCell.esm.js";import{ProgramCheckIndicator as i}from"./ProgramCheckIndicator.esm.js";import{RowHeights as p}from"./virtualized/virtualizedTableUtils.esm.js";const h=f(e=>({checkNameCell:{padding:0,backgroundColor:e.palette.background.paper},checkNameContent:{padding:`0 ${e.spacing(2)}px`,display:"flex",justifyContent:"space-between",alignItems:"center"},checkNameTypography:{overflow:"hidden",textOverflow:"ellipsis",fontWeight:e.typography.body1.fontWeight},checkIndicator:{flexBasis:e.spacing(8)},checkNameCellVirtualized:{height:`${p.check}px`,lineHeight:`${p.check}px`,borderBottom:`1px solid ${e.palette.divider}`,borderRight:`1px solid ${e.palette.divider}`}}));u(({programId:e,programName:l,check:a,entityRefs:d,results:k,entityRoute:g,level:m})=>{const r=h(),y=C(()=>{let c=0,o=0;return m.checks.forEach(n=>{o+=n.totalCount-n.totalPassing,c+=n.totalPassing}),{PASSED:c,FAILED:o}},[m]),N=new Map(k.map(c=>[c.entityRef,c.result]));return t.createElement("tr",{"data-testid":"track-check-row"},t.createElement("th",{scope:"row",className:r.checkNameCell,"aria-label":`${a.name} check for ${l} track`},t.createElement("div",{className:r.checkNameContent},t.createElement(s,{className:r.checkNameTypography,variant:"subtitle2",component:"p"},a.name),t.createElement(i,{className:r.checkIndicator,progress:y}))),d.map((c,o)=>t.createElement(E,{key:o,programId:e,check:a,entityRef:c,result:typeof c=="string"?N.get(c):void 0,entityRoute:g})))});const v=({name:e,progress:l})=>{const a=h();return t.createElement("div",{className:a.checkNameCell,"aria-label":`${e} check`},t.createElement("div",{className:`${a.checkNameContent} ${a.checkNameCellVirtualized}`},t.createElement(s,{variant:"subtitle2",component:"p",className:a.checkNameTypography},e),t.createElement(i,{className:a.checkIndicator,progress:l})))};export{v as CheckNameCell};
|
|
2
2
|
//# sourceMappingURL=ProgramCheckRow.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as s,Typography as o}from"@material-ui/core";import e,{memo as n}from"react";import{HighestLevelBadge as c}from"./HighestLevelBadge.esm.js";const i=s(t=>({programNameCell:{padding:0,position:"sticky",backgroundColor:t.palette.background.paper},programNameContent:{padding:t.spacing(2)},programNameTypography:{overflow:"hidden",textOverflow:"ellipsis"},badgeCellContent:{display:"flex",justifyContent:"center",alignItems:"center"},programNameCellVirtualized:{borderRight:`1px solid ${t.palette.divider}`}}));n(({program:t,entityRefs:a,highestLevels:p})=>{const r=i();return e.createElement("tr",{"data-testid":"track-title-row"},e.createElement("th",{scope:"row",className:r.programNameCell},e.createElement("div",{className:r.programNameContent},e.createElement(o,{className:r.programNameTypography,variant:"h5",component:"p"},t.name))),a.map((m,l)=>typeof m!="string"?e.createElement("td",{key:l,"aria-hidden":!0}):e.createElement("td",{key:l,"data-testid":"track-certification-cell"},e.createElement("div",{className:r.badgeCellContent},e.createElement(c,{entityRef:m,highestLevels:p,trackType:t.type??void 0})))))});const d=n(({name:t})=>{const a=i();return e.createElement("div",{className:`${a.programNameCell} ${a.programNameCellVirtualized}`},e.createElement("div",{className:a.programNameContent},e.createElement(o,{className:a.programNameTypography,variant:"h5",component:"p"},t)))});export{d as ProgramTitleCell};
|
|
2
2
|
//# sourceMappingURL=ProgramTitleRow.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as n}from"@backstage/catalog-model";import{Link as d}from"@backstage/core-components";import{useRouteRef as m}from"@backstage/core-plugin-api";import{entityRouteRef as p,humanizeEntityRef as c}from"@backstage/plugin-catalog-react";import{makeStyles as f}from"@material-ui/core";import"lodash";import
|
|
1
|
+
import{parseEntityRef as n}from"@backstage/catalog-model";import{Link as d}from"@backstage/core-components";import{useRouteRef as m}from"@backstage/core-plugin-api";import{entityRouteRef as p,humanizeEntityRef as c}from"@backstage/plugin-catalog-react";import{makeStyles as f}from"@material-ui/core";import"lodash";import o from"react";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import{useEntityByRef as s}from"../../hooks/catalog/useEntityByRef.esm.js";const u=f(e=>({root:{position:"sticky",bottom:"-1px",backgroundColor:e.palette.background.default,boxShadow:`0 -1px ${e.palette.divider}`,"& td$cell, & th$cell":{border:0,padding:e.spacing(1)},"& td$cell":{backgroundColor:e.palette.background.default}},row:{boxShadow:`1px 0 ${e.palette.background.default}, -1px 0 ${e.palette.background.default}`},cell:{verticalAlign:"top"},cellInner:{textOrientation:"mixed",writingMode:"vertical-lr",transform:"rotate(-20deg)",transformOrigin:`100% ${e.spacing(1)}px`,wordBreak:"keep-all",fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",maxHeight:"max(15vh, 175px)"}})),g=({entityRef:e})=>{const{data:r}=s(e),l=m(p),a=u(),t=e?n(e):void 0,i=t?o.createElement(d,{"aria-label":`entity link to ${t.name}`,to:l(t)},r?.metadata.title?r.metadata.title:c(t,{defaultKind:t.kind})):o.createElement(o.Fragment,null);return o.createElement("div",{className:a.cell},o.createElement("div",{className:a.cellInner},i))};export{g as EntityRefCell};
|
|
2
2
|
//# sourceMappingURL=ResultsTableFooter.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as h}from"@material-ui/core";import{Skeleton as l}from"@material-ui/lab";import e from"react";const
|
|
1
|
+
import{makeStyles as h}from"@material-ui/core";import{Skeleton as l}from"@material-ui/lab";import e from"react";const E=h(t=>({table:{backgroundColor:t.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap","& th, & td":{border:`1px solid ${t.palette.divider}`,borderCollapse:"collapse"},paddingBottom:t.spacing(2)},programTitle:{padding:t.spacing(2)},checkResult:{padding:t.spacing(1.5)},title:{padding:`${t.spacing(1)}px ${t.spacing(2)}px`},header:{backgroundColor:t.palette.action.hover}})),b=({entityCount:t=25,levelCount:o=3,checkCount:i=5})=>{const a=E(),r=new Array(t).fill(void 0),m=new Array(i).fill(void 0),d=new Array(o).fill(void 0);return e.createElement("table",{"aria-label":"table loading",className:a.table},e.createElement("tbody",null,e.createElement("tr",null,e.createElement("td",{className:a.programTitle},e.createElement(l,{width:180,height:40})),r.map((p,n)=>e.createElement("td",{key:n}))),d.map((p,n)=>e.createElement(e.Fragment,{key:n},e.createElement("tr",{className:a.header},e.createElement("td",{className:a.title},e.createElement(l,{width:180})),r.map((s,c)=>e.createElement("td",{key:c}))),m.map((s,c)=>e.createElement("tr",{key:c},e.createElement("td",{className:a.title},e.createElement(l,{width:240})),r.map((k,g)=>e.createElement("td",{key:g,className:a.checkResult},e.createElement(l,{width:18,height:18,variant:"rect"})))))))))};export{b as ResultsTableSkeleton};
|
|
2
2
|
//# sourceMappingURL=ResultsTableSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ResultState as C}from"../../../graphql/generated/index.esm.js";import{programHeaderCell as k,levelBadgeCell as H,levelHeaderCell as c,checkTitleCell as T,checkResultCell as y,entityHeaderCell as h}from"./Cell.esm.js";import{RowHeights as i,generateNoLevelBadge as L,findLongestRefTitle as A,calculateHeightForRefTitle as S}from"./virtualizedTableUtils.esm.js";const w=(p,t,f)=>{const l=[];for(const{program:o,levels:m,highestLevels:u}of p){l.push({height:i.programTitle,cells:[k(o.name),...t.map(e=>{const r=e?u.find(s=>s.entityRef===e)||L(e):void 0;return H(r,o.type??void 0)})]});for(const e of m){l.push({height:i.levelTitle,cells:[c(e.name),...t.map(r=>c(""))]});for(const{check:r,results:s,totalCount:d,totalPassing:n}of e.checks){const R={PASSED:n,FAILED:d-n};l.push({height:i.check,cells:[T(r.name,R),...t.map(a=>y(o.id,r,a,s.find(v=>v.entityRef===a)?.result??C.NotApplicable,f))]})}}}const g=A(t??[]);return l.push({height:S(g.length??1),cells:[h(""),...t.map(o=>h(o||""))]}),l};export{w as generateRows};
|
|
2
2
|
//# sourceMappingURL=Row.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as z}from"@backstage/core-plugin-api";import{entityRouteRef as T}from"@backstage/plugin-catalog-react";import{makeStyles as x,Grid as H}from"@material-ui/core";import
|
|
1
|
+
import{useRouteRef as z}from"@backstage/core-plugin-api";import{entityRouteRef as T}from"@backstage/plugin-catalog-react";import{makeStyles as x,Grid as H}from"@material-ui/core";import e,{useEffect as W,useState as $,useRef as A,useLayoutEffect as G}from"react";import{VariableSizeGrid as L}from"react-window";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import{useProgramOverviewForOwner as N}from"../../../hooks/certifications/useProgramOverviewForOwner.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"../../Pagination/Pagination.esm.js";import{useCursorPagination as O,CursorPagination as V}from"../../Pagination/CursorPagination.esm.js";import{ResultsTableSkeleton as B}from"../skeletons/ResultsTableSkeleton.esm.js";import{getCellRenderer as F}from"./Cell.esm.js";import{generateRows as j}from"./Row.esm.js";import{CellWidths as c,calculateTableHeight as q,RowHeights as D}from"./virtualizedTableUtils.esm.js";const d=25,I=x(r=>({table:{backgroundColor:r.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left",overflow:"auto"}})),J=({setError:r,kind:n,type:m,ownerEntityRef:t})=>{const{cursor:h,pageSize:u,...C}=O({defaultPageSize:d,label:"entitiesPerPage"}),{data:o,isLoading:w,isError:p}=N(t,{kind:n,type:m},u,h),R=I(),E=z(T);W(()=>{r?.(p?new Error("Error loading program overview"):void 0)},[p,r]);const[g,b]=$(0),i=A(null);if(G(()=>{o&&t&&i?.current&&b(i.current.clientWidth)},[i,o,t]),w)return e.createElement(B,null);if(!o||!t)return null;const{programs:v,entityRefs:l,totalCount:y,endCursor:P,prevCursor:S}=o,f=l.length>=25?l:[...l,...Array.from({length:25-l.length},()=>{})],a=j(v,f,E),k=F(a);return e.createElement("div",{ref:i},e.createElement(H,{"aria-label":`Check results for ${m??n}`,key:`${n}|${m??""}`,item:!0,xs:12,style:{marginBottom:"1.5em"}},g>0&&e.createElement(L,{className:R.table,columnCount:f.length+1,columnWidth:s=>s===0?c.programTitle:c.checkResult,rowCount:a.length,rowHeight:s=>a[s].height,height:q(a)+D.paginationControl,width:g},k)),e.createElement(V,{...C,totalCount:y,defaultPageSize:d,endCursor:P,prevCursor:S,pageSize:u,labelRowsPerPage:"Entities per page:"}))};export{J as VirtualizedResultsTable};
|
|
2
2
|
//# sourceMappingURL=VirtualizedResultsTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{useRouteRef as m,useRouteRefParams as d}from"@backstage/core-plugin-api";import{useEntity as s}from"@backstage/plugin-catalog-react";import e from"react";import{Routes as $,Route as c,Navigate as u}from"react-router-dom";import{useAllCertifications as v}from"../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../api.esm.js";import"../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as h}from"../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@backstage/catalog-model";import"../hooks/useSoundcheckAlert.esm.js";import"../hooks/useConfirmationModal.esm.js";import{usePlaylists as y}from"../hooks/playlists/usePlaylists.esm.js";import{certificationPlaylistTrackCheckRouteRef as I,certificationPlaylistTrackRouteRef as E,certificationPlaylistRouteRef as f,certificationTrackRouteRef as k,certificationRouteRef as g}from"../routes.esm.js";import{EntityContent as o}from"./EntityContent/EntityContent.esm.js";const x=()=>{const{entity:r}=s(),t=m(f),a=m(k),{isLoading:n,data:l}=y(r),{isLoading:i,data:C}=v(r);if(n||i)return null;const p=l?.[0]?.id,R=C?.[0]?.program.id;return!p&&!R?null:e.createElement(u,{to:p?t({playlistId:p}):a({trackId:R}),replace:!0})},T=()=>{const{entity:r}=s(),{playlistId:t}=d(f),a=m(E),{data:n}=y(r),l=n?.find(i=>i.id===t)?.trackIds[0];return l?e.createElement(u,{to:a({playlistId:t,trackId:l}),replace:!0}):null},F=()=>{const{entity:r}=s(),{playlistId:t,trackId:a}=d(E),{data:n}=h(r,a),l=m(I),i=n?.levels[0]?.checks[0]?.id;return i?e.createElement(u,{to:l({playlistId:t,trackId:a,checkId:i}),replace:!0}):null},P=()=>{const{entity:r}=s(),{trackId:t}=d(k),a=m(g),{data:n}=h(r,t),l=n?.levels[0]?.checks[0]?.id;return l?e.createElement(u,{to:a({trackId:t,checkId:l}),replace:!0}):null},L=()=>e.createElement($,null,e.createElement(c,{path:I.path,element:e.createElement(o,null)}),e.createElement(c,{path:E.path,element:e.createElement(e.Fragment,null,e.createElement(o,null),e.createElement(F,null))}),e.createElement(c,{path:f.path,element:e.createElement(e.Fragment,null,e.createElement(o,null),e.createElement(T,null))}),e.createElement(c,{path:k.path,element:e.createElement(e.Fragment,null,e.createElement(o,null),e.createElement(P,null))}),e.createElement(c,{path:g.path,element:e.createElement(o,null)}),e.createElement(c,{path:"/",element:e.createElement(e.Fragment,null,e.createElement(o,null),e.createElement(x,null))}));export{P as RedirectToFirstCheck,T as RedirectToFirstPlaylistTrack,F as RedirectToFirstPlaylistTrackCheck,L as Router};
|
|
2
2
|
//# sourceMappingURL=Router.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Page as
|
|
1
|
+
import{Page as y,Header as I,TabbedLayout as l}from"@backstage/core-components";import{useRouteRef as w,useApi as s,configApiRef as T,featureFlagsApiRef as S}from"@backstage/core-plugin-api";import{usePermission as A}from"@backstage/plugin-permission-react";import{makeStyles as L,Box as o}from"@material-ui/core";import{SpotifyLicenseBanner as D}from"@spotify/backstage-plugin-core";import{soundcheckCollectorReadPermission as B}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as F}from"react";import{useLocation as N,Routes as G,Route as t}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import{UserProvider as H}from"../../contexts/UserProvider.esm.js";import O from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as $}from"../../hooks/useSoundcheckAlert.esm.js";import{rootRouteRef as M}from"../../routes.esm.js";import{CampaignsPage as Q}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignDetailsPage as U}from"../CampaignsTab/CampaignDetailsPage/CampaignDetailsPage.esm.js";import{EditCampaignView as V}from"../CampaignsTab/MutateCampaignsViews/EditCampaignView.esm.js";import{CheckPage as p}from"../CheckPage/CheckPage.esm.js";import{CheckInsightsPage as u}from"../CheckPage/CheckInsightsPage.esm.js";import{ChecksTab as j}from"../ChecksTab/ChecksTab.esm.js";import{CollectorPage as q}from"../CollectorPage/CollectorPage.esm.js";import{CollectorsPage as z}from"../CollectorsPage/CollectorsPage.esm.js";import{EditTrackPage as J}from"../EditTrackPage/EditTrackPage.esm.js";import{GroupSelector as K}from"../GroupSelector/GroupSelector.esm.js";import{OverviewPageContent as W}from"../OverviewPage/OverviewPageContent.esm.js";import{SoundcheckQueryClientProvider as X}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{TechHealth as Y}from"../TechHealth/TechHealth.esm.js";import{TrackPage as Z}from"../TrackPage/TrackPage.esm.js";import{TracksTab as _}from"../TracksTab/TracksTab.esm.js";import{Breadcrumbs as ee}from"./Breadcrumbs.esm.js";import{generateBreadcrumbs as te}from"./utils.esm.js";const le=L(n=>({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%","& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",padding:`${n.spacing(3)}px !important`}}})),re=({title:n="Soundcheck"})=>{const c=le(),d=w(M),m=s(T).getOptionalStringArray("soundcheck.flags")?.includes("enable-check-insights"),[h,f]=F(void 0),r=s(S),g=!r.getRegisteredFlags().find(a=>a.name==="soundcheck-enable-tech-health")||r.isActive("soundcheck-enable-tech-health"),E=!r.getRegisteredFlags().find(a=>a.name==="soundcheck-enable-collectors")||r.isActive("soundcheck-enable-collectors"),k=!r.getRegisteredFlags().find(a=>a.name==="soundcheck-enable-campaigns")||r.isActive("soundcheck-enable-campaigns"),{loading:b,allowed:C}=A({permission:B}),R=E&&!b&&C,v=g,i=N().pathname.replace(/\/+$/,""),P=i===d(),x=te(i);return e.createElement($,null,e.createElement(H,null,e.createElement(X,null,e.createElement(O,null,e.createElement(o,{className:c.root},e.createElement(y,{themeId:"tool"},e.createElement(D,{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.createElement(I,{title:n,subtitle:e.createElement(ee,{pages:x})},P&&e.createElement(K,{setError:f})),e.createElement(o,{className:c.pageContent},e.createElement(o,{className:c.pageLayout},e.createElement(G,null,e.createElement(t,{path:"/campaigns/:campaignId/edit",element:e.createElement(V,null)}),e.createElement(t,{path:"/campaigns/:campaignId",element:e.createElement(U,null)}),e.createElement(t,{path:"/tracks/:trackId/edit",element:e.createElement(J,null)}),e.createElement(t,{path:"/tracks/:trackId",element:e.createElement(Z,null)}),m&&e.createElement(t,{path:"/tracks/:trackId/checks/:checkId",element:e.createElement(u,null)}),m?e.createElement(t,{path:"/checks/:checkId",element:e.createElement(u,null)}):e.createElement(t,{path:"/checks/:checkId",element:e.createElement(p,null)}),e.createElement(t,{path:"/checks/:checkId/edit",element:e.createElement(p,null)}),e.createElement(t,{path:"/collectors/:collectorId",element:e.createElement(q,null)}),e.createElement(t,{path:"/*",element:e.createElement(l,null,e.createElement(l.Route,{title:"Overview",path:"/"},e.createElement("div",{className:c.tabContent},e.createElement(W,{groupSelectorError:h}))),v&&e.createElement(l.Route,{title:"Tech Health",path:"/tech-health"},e.createElement(Y,null)),e.createElement(l.Route,{title:"Checks",path:"/checks"},e.createElement(j,null)),e.createElement(l.Route,{title:"Tracks",path:"/tracks"},e.createElement(_,null)),k&&e.createElement(l.Route,{title:"Campaigns",path:"/campaigns"},e.createElement(Q,null)),R&&e.createElement(l.Route,{title:"Collectors",path:"/collectors"},e.createElement(z,null)))}))))))))))};export{re as RoutingPage};
|
|
2
2
|
//# sourceMappingURL=RoutingPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as u,TextField as h,InputAdornment as o,IconButton as f}from"@material-ui/core";import g from"@material-ui/icons/Close";import E from"@material-ui/icons/Search";import e,{useRef as x,useEffect as B}from"react";const I=u(t=>({searchIcon:{opacity:".5"},clearButton:{height:"36px",width:"36px"},searchBar:{color:t.palette.text.primary,paddingLeft:t.spacing(1)},iconWrapper:{marginLeft:0}})),N=({searchTerm:t,setSearchTerm:c,showClear:l=!0,placeholder:s="Search...",disabled:a,...
|
|
1
|
+
import{makeStyles as u,TextField as h,InputAdornment as o,IconButton as f}from"@material-ui/core";import g from"@material-ui/icons/Close";import E from"@material-ui/icons/Search";import e,{useRef as x,useEffect as B}from"react";const I=u(t=>({searchIcon:{opacity:".5"},clearButton:{height:"36px",width:"36px"},searchBar:{color:t.palette.text.primary,paddingLeft:t.spacing(1)},iconWrapper:{marginLeft:0}})),N=({searchTerm:t,setSearchTerm:c,showClear:l=!0,placeholder:s="Search...",disabled:a,...m})=>{const r=I(),n=x(null);B(()=>{!a&&n.current&&n.current.focus()},[a]);const i=d=>{c(d.target.value)},p=()=>{c("")};return e.createElement(h,{...m,disabled:a,inputRef:n,fullWidth:!0,placeholder:s,value:t,onChange:i,InputProps:{className:r.searchBar,startAdornment:e.createElement(o,{className:r.iconWrapper,position:"start"},e.createElement(E,{className:r.searchIcon,"data-testid":"search-icon"})),endAdornment:l&&t?e.createElement(o,{position:"end"},e.createElement(f,{edge:"end",onClick:p,className:r.clearButton},e.createElement(g,null))):null}})};export{N as SearchBar};
|
|
2
2
|
//# sourceMappingURL=SearchBar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as N}from"@backstage/catalog-model";import{makeStyles as b,Grid as v,InputLabel as r,NativeSelect as n}from"@material-ui/core";import e from"react";import{CampaignStatus as m}from"../CampaignsTab/CampaignTypes.esm.js";import{SearchBar as F}from"../SearchBar/SearchBar.esm.js";const y=b(t=>({searchbar:{maxWidth:"275px","& input":{paddingTop:t.spacing(1),paddingBottom:t.spacing(1)}},filters:{display:"flex",alignItems:"center",padding:0},dropdownFilters:{margin:"0 15px",alignItems:"center"},selectHolder:{minWidth:105,"& select":{paddingTop:t.spacing(1),paddingBottom:t.spacing(1)}},label:{marginBottom:t.spacing(.5)}})),S=({searchPlaceholder:t,isLoading:c,searchTerm:o,setSearchTerm:d,filterAlpha:p,handleAlphabeticalFilterChange:h,filterOwner:g,handleOwnerFilterChange:u,filterStatus:s,handleStatusFilterChange:i,owners:E})=>{const a=y();return e.createElement(v,{item:!0,xs:10,className:a.filters},e.createElement("div",null,e.createElement(r,{className:a.label,htmlFor:"search-bar"},t||"Search"),e.createElement(F,{searchTerm:o,disabled:c,setSearchTerm:d,placeholder:"Name",variant:"outlined",size:"small",className:a.searchbar,id:"search-bar"})),e.createElement("div",{className:a.dropdownFilters},e.createElement(r,{className:a.label,htmlFor:"sort-by"},"Sort By"),e.createElement(n,{id:"sort-by",className:a.selectHolder,value:p,onChange:h},e.createElement("option",{value:"default"},"Default"),e.createElement("option",{value:"ascending"},"Name A-Z"),e.createElement("option",{value:"descending"},"Name Z-A"))),e.createElement("div",{className:a.dropdownFilters},e.createElement(r,{className:a.label,htmlFor:"filter-owner"},"Filter By Owner"),e.createElement(n,{id:"filter-owner",className:a.selectHolder,value:g,onChange:u},e.createElement("option",{key:"all",value:"all"},"All"),E?.map((l,f)=>e.createElement("option",{key:l+f,value:l},N(l).name)))),s&&i&&e.createElement("div",{className:a.dropdownFilters},e.createElement(r,{className:a.label,htmlFor:"filter-status"},"Filter By Status"),e.createElement(n,{id:"filter-status",className:a.selectHolder,value:s,onChange:i},Object.keys(m).map(l=>e.createElement(e.Fragment,{key:l},e.createElement("option",{value:l},m[l]))))))};export{S as SearchFilters};
|
|
2
2
|
//# sourceMappingURL=SearchFilters.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{MarkdownContent as x}from"@backstage/core-components";import{withStyles as g,Card as u,makeStyles as w,CardHeader as C,CardContent as k,Divider as v,CardActions as f,Button as E}from"@material-ui/core";import{createStyles as N}from"@material-ui/core/styles";import t from"react";import{SummaryCardActionsMenu as S}from"./SummaryCardActionsMenu.esm.js";const
|
|
1
|
+
import{MarkdownContent as x}from"@backstage/core-components";import{withStyles as g,Card as u,makeStyles as w,CardHeader as C,CardContent as k,Divider as v,CardActions as f,Button as E}from"@material-ui/core";import{createStyles as N}from"@material-ui/core/styles";import t from"react";import{SummaryCardActionsMenu as S}from"./SummaryCardActionsMenu.esm.js";const s=g(e=>N({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:e.spacing(2),position:"relative",justifyContent:"start"}}))(u),p=w(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",WebkitLineClamp:5,WebkitBoxOrient:"vertical","-webkit-line-clamp":5,"-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{color:e.palette.text.primary,padding:0,maxHeight:"175px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"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%"},actionArea:{padding:e.spacing(1,2,1,4)},button:{minWidth:0,color:e.palette.text.primary,"&:disabled":{color:e.palette.text.disabled,opacity:1}}})),A=({title:e,description:h,viewLabel:l="View",editLabel:n="Edit",children:y,handleDelete:d,handleArchive:m,handleEdit:a,handleView:r,handleExport:c,viewIsPrimaryAction:b})=>{const i=p(),o=!b&&!!a;return t.createElement(s,{className:i.card,"data-testid":e},t.createElement(C,{title:e,titleTypographyProps:{className:i.summaryName},subheader:t.createElement(x,{className:i.summaryDescription,content:h??""}),action:(!!d||!!m||!!a||!!c)&&t.createElement(S,{handleView:r,handleDelete:d,handleArchive:m,handleEdit:a,handleExport:c})}),t.createElement(k,{className:i.cardContent},y),(r||a)&&t.createElement("div",null,t.createElement(v,null),t.createElement(f,{className:i.actionArea},t.createElement(E,{"aria-label":o?n:l,"data-testid":`${e}-button`,size:"medium",color:"primary",role:"link",onClick:o?a:r,disabled:!r&&!a,className:i.button},o?n:l))))};export{s as Card,A as SummaryCard,p as useSummaryCardStyles};
|
|
2
2
|
//# sourceMappingURL=SummaryCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as w,alpha as
|
|
1
|
+
import{makeStyles as w,alpha as O,Box as i,Typography as z,Tooltip as N,Icon as T,IconButton as D,Chip as j,TextField as B,FormControlLabel as L,Checkbox as $}from"@material-ui/core";import A from"@material-ui/icons/ArrowDropDown";import K from"@material-ui/icons/ArrowDropUp";import Q from"@material-ui/icons/CheckBox";import V from"@material-ui/icons/CheckBoxOutlineBlank";import W from"@material-ui/icons/HelpOutline";import{Autocomplete as q}from"@material-ui/lab";import{createFilterOptions as M}from"@material-ui/lab/Autocomplete";import{remove as X}from"lodash";import l,{useState as p,useEffect as G,useCallback as b,useMemo as H}from"react";import J from"../../Expand/Expand.esm.js";import{useFilterContext as P}from"./FilterProvider.esm.js";import{Facet as C,facetTooltips as x}from"./types.esm.js";const R=50,U=w(({palette:t,spacing:n})=>({header:{display:"flex",alignItems:"left",flexDirection:"row",cursor:"pointer",justifyContent:"space-between"},label:{display:"flex",alignItems:"center"},tooltipIcon:{display:"flex",alignItems:"center",justifyContent:"center",color:t.text.primary},chip:{maxWidth:"45%",textOverflow:"ellipsis",margin:n(.5,.5,.5,0),overflow:"hidden","& svg":{color:O(t.common.white,.7),"&:hover":{color:t.common.white}},backgroundColor:t.action.disabledBackground},autoCompleteInput:{"&& input":{margin:n(1,0,0,0),padding:`${n(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},"&& button":{"&:hover":{backgroundColor:"transparent"}}},autoComplete:{margin:n(.5,0,1,0)}})),Y=({facet:t})=>{const n=U(),{getFacetOptions:k,getFacetOptionLabel:c,getSelectedFacetValues:a,setSelectedFacetValues:u}=P(),[f,d]=p(!1),[v,h]=p(!1),[I,E]=p("");G(()=>{d(!!a(t)?.length)},[a,t]);const g=()=>{d(e=>!e)},y=e=>{(e.key==="Enter"||e.key===" ")&&g()},m=b(e=>{if(t===C.Entity&&e[e.length-1]){const o=e[e.length-1];if(!o.includes(":")||!o.includes("/")){h(!0),E("Custom entities require a valid kind and namespace such as: component:default/entity");return}}h(!1),E(""),u(t,e)},[t,u]),r=H(()=>a(t),[t,a]),F=b(e=>{const o=[...r];X(o,s=>s===e),m(o)},[r,m]),S=M({matchFrom:"any",limit:R});return l.createElement(i,null,l.createElement("div",{className:n.header,onClick:g,onKeyDown:y,role:"button",tabIndex:0},l.createElement("div",{className:n.label},l.createElement(i,null,l.createElement(z,{variant:"subtitle2"},t)),x[t]&&l.createElement(N,{title:x[t],className:n.tooltipIcon},l.createElement(T,null,l.createElement(W,{style:{fontSize:16,verticalAlign:"text-top"}})))),l.createElement(i,null,l.createElement(D,{size:"small",onKeyDown:y},f?l.createElement(K,{fontSize:"small"}):l.createElement(A,{fontSize:"small"})))),l.createElement(J,{visible:f},l.createElement(i,null,r.map(e=>l.createElement(j,{key:e,label:c(t,e),size:"small",className:n.chip,onDelete:()=>F(e),clickable:!1}))),l.createElement(q,{className:n.autoComplete,disableCloseOnSelect:!0,fullWidth:!0,multiple:!0,freeSolo:t===C.Entity,popupIcon:null,renderTags:()=>null,filterOptions:S,options:k(t),getOptionLabel:e=>c(t,e),value:r,onChange:(e,o)=>m(o),renderInput:e=>l.createElement(B,{...e,className:n.autoCompleteInput,placeholder:`Search for ${t}`,error:v,helperText:I}),renderOption:(e,{selected:o})=>l.createElement(L,{onClick:s=>s.preventDefault(),control:l.createElement($,{icon:l.createElement(V,{fontSize:"small"}),checkedIcon:l.createElement(Q,{fontSize:"small"}),checked:o}),label:c(t,e)})})))};export{Y as FacetFilter};
|
|
2
2
|
//# sourceMappingURL=FacetFilter.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as L}from"@backstage/catalog-model";import{humanizeEntityRef as E}from"@backstage/plugin-catalog-react";import{createFilterOptions as U}from"@material-ui/lab/Autocomplete";import c,{createContext as h,useCallback as x,useMemo as R,useContext as S}from"react";import k from"react-use/lib/useLocalStorage";import{useLoggedInUser as A}from"../../../contexts/UserProvider.esm.js";import{useFacetFilters as C}from"../../../hooks/facets/useFacetFilters.esm.js";import{TechHealthLoading as N}from"../Loading/TechHealthLoading.esm.js";import{useFacetOptions as V}from"./useFacetOptions.esm.js";import{emptyFacetFilters as w,DEFAULT_NUMBER_OF_DAYS as I,mapFacetFiltersToFilter as T}from"./utils.esm.js";const m=h({facetOptionsLoading:!1,getFacetOptions:()=>[],getFacetOptionLabel:()=>"",facetFilters:w(),clearAllFilters:()=>{},getSelectedFacetValues:()=>[],setSelectedFacetValues:()=>{},numberOfDays:I,setNumberOfDays:()=>{},filter:{},loggedInUser:"Unknown"}),_=()=>S(m),F=f=>{const{userEntityRef:s,loading:u}=A(),{isLoading:n,facetOptions:r}=V(),[p]=k("soundcheck.overview.groupRef",null),{facetFilters:a,numberOfDays:o,setFacetFilter:g,getFacetFilter:d,clearFacetFilters:O,setNumberOfDays:y}=C(r,p??void 0),b=x(e=>r[e].map(({value:t})=>t),[r]),v=R(()=>T(r,a,o,s),[a,r,o,s]),D={facetOptionsLoading:n,getFacetOptions:b,getFacetOptionLabel:(e,t)=>{let l=r[e].find(i=>i.value===t)?.label;if(!l)try{const i=L(t);l=E(i)}catch{}return U(),l??t},facetFilters:a,clearAllFilters:O,getSelectedFacetValues:e=>d(e),setSelectedFacetValues:(e,t)=>{g(e,t)},numberOfDays:o,setNumberOfDays:y,filter:v??{},loggedInUser:"Unknown"};return n||u?c.createElement(N,null):c.createElement(m.Provider,{...f,value:D})};export{F as FilterProvider,F as default,_ as useFilterContext};
|
|
2
2
|
//# sourceMappingURL=FilterProvider.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as c,Box as n}from"@material-ui/core";import e from"react";import{useLocation as s}from"react-router-dom";import{FacetFilter as p}from"./FacetFilter.esm.js";import{FiltersHeader as f}from"./FiltersHeader.esm.js";import{FiltersSection as m}from"./FiltersSection.esm.js";import{NumberOfDaysFilter as u}from"./NumberOfDaysFilter.esm.js";import{Facet as a}from"./types.esm.js";const d=c(r=>({filters:{maxWidth:"300px",width:"100%",backgroundColor:r.palette.background.paper}})),E=()=>{const r=d(),o=s().pathname.includes("campaigns");let l=Object.values(a);if(o){const t=[a.Track,a.Level];l=l.filter(i=>!t.includes(i))}return e.createElement(n,{className:r.filters},e.createElement(m,{
|
|
1
|
+
import{makeStyles as c,Box as n}from"@material-ui/core";import e from"react";import{useLocation as s}from"react-router-dom";import{FacetFilter as p}from"./FacetFilter.esm.js";import{FiltersHeader as f}from"./FiltersHeader.esm.js";import{FiltersSection as m}from"./FiltersSection.esm.js";import{NumberOfDaysFilter as u}from"./NumberOfDaysFilter.esm.js";import{Facet as a}from"./types.esm.js";const d=c(r=>({filters:{maxWidth:"300px",width:"100%",backgroundColor:r.palette.background.paper}})),E=()=>{const r=d(),o=s().pathname.includes("campaigns");let l=Object.values(a);if(o){const t=[a.Track,a.Level];l=l.filter(i=>!t.includes(i))}return e.createElement(n,{className:r.filters},e.createElement(m,{isHeader:!0},e.createElement(f,null)),e.createElement(m,null,e.createElement(u,null)),l.map(t=>e.createElement(m,{key:t,size:"small"},e.createElement(p,{facet:t}))))};export{E as Filters};
|
|
2
2
|
//# sourceMappingURL=Filters.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as i,Box as
|
|
1
|
+
import{makeStyles as i,Box as s}from"@material-ui/core";import a from"react";const d=i(({palette:o,spacing:e})=>({root:{padding:({size:r,isHeader:t})=>t?0:r==="small"?e(1.5,2):e(2),borderBottom:`1px solid ${o.divider}`}}));function m({children:o,size:e,isHeader:r}){const t=d({size:e,isHeader:r});return a.createElement(s,{className:t.root},o)}export{m as FiltersSection};
|
|
2
2
|
//# sourceMappingURL=FiltersSection.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as T}from"@backstage/catalog-model";import C from"lodash";import{useState as A,useMemo as l,useEffect as S}from"react";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import{useLoggedInUser as $}from"../../../contexts/UserProvider.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import{useAllGroups as x}from"../../../hooks/groups/useAllGroups.esm.js";import"@backstage/plugin-catalog-react";import{useGetChecks as U}from"../../../hooks/checks/useGetChecks.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as q}from"../../../hooks/tracks/useGetAllTracks.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetEntityFacets as f}from"../../../hooks/catalog/useGetEntityFacets.esm.js";import{useEntityRefsForUser as B}from"../../../hooks/entities/useEntityRefsForUser.esm.js";import{Facet as s}from"./types.esm.js";const I=(i,o)=>{const a=[];for(const r of i)a.push({label:r.name??r.id,value:r.id});const e=i.map(r=>r.id);for(const r of o)for(const m of r.levels??[])for(const n of m.checks??[])e.includes(n.id)||(e.push(n.id),a.push({label:n.name??n.id,value:n.id}));return a},K=i=>{const o=[];for(const a of i??[])for(const e of a.levels??[])o.includes(e.ordinal)||o.push(e.ordinal);return o.sort().map(a=>({label:`Level ${a}`,value:`${a}`}))},M=(i,o)=>{const a=new Set(i.filter(e=>e.ownerEntityRef).map(e=>e.ownerEntityRef));return Array.from(a).map(e=>({label:o[e]??e,value:e}))},d=i=>(i??[]).map(o=>({label:o,value:o})),V=()=>{const[i,o]=A(!1),{userEntityRef:a}=$(),{data:e,isLoading:r}=B(a),{data:m,isLoading:n}=x(),u=l(()=>C.mapValues(C.keyBy(m??[],"ref"),t=>t.name),[m]),{data:y,isLoading:g}=q({first:100}),p=l(()=>y?.edges.map(t=>t.node)??[],[y]),{data:L,isLoading:v}=U({first:100}),c=l(()=>L?.edges.map(t=>t.node)??[],[L]),{data:E,isLoading:b}=f("kind"),{data:h,isLoading:k}=f("spec.lifecycle"),{data:R,isLoading:w}=f("spec.type"),{data:F,isLoading:O}=f("spec.system"),G=l(()=>({[s.Kind]:d(E),[s.Lifecycle]:d(h),[s.Type]:d(R),[s.System]:d(F),[s.Entity]:e.map(t=>({label:T(t).name,value:t})),[s.EntityOwner]:m?.map(t=>({label:t.name,value:t.ref}))??[],[s.Track]:p.map(t=>({label:t.name,value:t.id})),[s.Level]:K(p),[s.Check]:I(c,p),[s.CheckOwner]:M(c,u)}),[E,h,R,e,m,u,p,c,F]);return S(()=>{o(b||k||w||r||n||g||v||O)},[b,k,w,r,n,g,v,O]),{facetOptions:G,isLoading:i}};export{V as useFacetOptions};
|
|
2
2
|
//# sourceMappingURL=useFacetOptions.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Facet as e}from"./types.esm.js";const
|
|
1
|
+
import{Facet as e}from"./types.esm.js";const i=30,l=2,y=90,o=r=>Object.fromEntries(Object.values(e).map(n=>r&&n===e.EntityOwner?[n,[r]]:[n,[]])),m=(r,n,c)=>{if(n.length)return n.map(s=>({trackId:s,levels:c.length?c.map(t=>parseInt(t,10)):void 0}));if(c.length)return r.map(s=>({trackId:s.value,levels:c.map(t=>parseInt(t,10))}))},p=(r,n,c,s)=>{const t=a=>n[a]?.length?{included:n[a]}:void 0;return{checkIds:t(e.Check),checkOwners:t(e.CheckOwner),entityOwners:t(e.EntityOwner),entityRefs:t(e.Entity),tracks:m(r[e.Track],n[e.Track],n[e.Level]),numberOfDays:c??i,context:s?{loggedInUser:s}:void 0,entityTypes:t(e.Type),entityKinds:t(e.Kind),entityLifecycles:t(e.Lifecycle),systems:t(e.System)}};export{i as DEFAULT_NUMBER_OF_DAYS,y as MAX_NUMBER_OF_DAYS,l as MIN_NUMBER_OF_DAYS,o as emptyFacetFilters,p as mapFacetFiltersToFilter};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TabbedLayout as r}from"@backstage/core-components";import{useApi as m,featureFlagsApiRef as i}from"@backstage/core-plugin-api";import{makeStyles as n,Box as p}from"@material-ui/core";import e from"react";import{Routes as c,Route as s}from"react-router-dom";import{TechHealthSummary as u}from"../TechHealthSummary/TechHealthSummary.esm.js";import"../TechHealthTabs/PassRateTabStyles.esm.js";import"../TechHealthTabs/OwnerColumn.esm.js";import{TrackResultsTab as d}from"../TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js";import{EntityResultsTab as f}from"../TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js";import{GroupResultsTab as
|
|
1
|
+
import{TabbedLayout as r}from"@backstage/core-components";import{useApi as m,featureFlagsApiRef as i}from"@backstage/core-plugin-api";import{makeStyles as n,Box as p}from"@material-ui/core";import e from"react";import{Routes as c,Route as s}from"react-router-dom";import{TechHealthSummary as u}from"../TechHealthSummary/TechHealthSummary.esm.js";import"../TechHealthTabs/PassRateTabStyles.esm.js";import"../TechHealthTabs/OwnerColumn.esm.js";import{TrackResultsTab as d}from"../TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js";import{EntityResultsTab as f}from"../TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js";import{GroupResultsTab as h}from"../TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js";import{CampaignResultsTab as x}from"../TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js";import{CheckResultsTab as b}from"../TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js";import"./Filters/types.esm.js";import"./Filters/FacetFilter.esm.js";import{FilterProvider as E}from"./Filters/FilterProvider.esm.js";import{Filters as g}from"./Filters/Filters.esm.js";import"./Filters/FiltersHeader.esm.js";import"./Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";const R=n(t=>({container:{display:"flex",margin:"-24px",backgroundColor:t.palette.background.paper,borderTop:`1px solid ${t.palette.border}`,flex:1},fixedColumn:{width:"300px",flex:"none",borderRight:`1px solid ${t.palette.divider}`},flexibleColumn:{display:"flex",flexDirection:"column",flex:1,backgroundColor:t.palette.background.paper,height:"100%",maxWidth:"100%"},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",backgroundColor:t.palette.background.default,"& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",borderTop:`1px solid ${t.palette.border}`,padding:`${t.spacing(3)}px !important`}}})),k=()=>{const t=R(),l=m(i),a=!l.getRegisteredFlags().find(o=>o.name==="soundcheck-enable-campaigns")||l.isActive("soundcheck-enable-campaigns");return e.createElement(E,null,e.createElement("div",{className:t.container},e.createElement("div",{className:t.fixedColumn},e.createElement(g,null)),e.createElement("div",{className:t.flexibleColumn},e.createElement(p,{className:t.pageLayout,"aria-label":"tech health tabs"},e.createElement(c,null,e.createElement(s,{path:"/*",element:e.createElement(r,null,e.createElement(r.Route,{title:"Summary",path:"/"},e.createElement(u,null)),a&&e.createElement(r.Route,{title:"Campaigns",path:"/campaigns"},e.createElement(x,null)),e.createElement(r.Route,{title:"Checks",path:"/checks"},e.createElement(b,null)),e.createElement(r.Route,{title:"Tracks",path:"/tracks"},e.createElement(d,null)),e.createElement(r.Route,{title:"Entities",path:"/entities"},e.createElement(f,null)),e.createElement(r.Route,{title:"Teams",path:"/teams"},e.createElement(h,null)))}))))))};export{k as TechHealth};
|
|
2
2
|
//# sourceMappingURL=TechHealth.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as I}from"@backstage/core-plugin-api";import{Typography as
|
|
1
|
+
import{useRouteRef as I}from"@backstage/core-plugin-api";import{Typography as T,Box as M,Grid as S}from"@material-ui/core";import a,{useState as i,useEffect as A,useMemo as B}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as D}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useTrackPassRateTrend as F}from"../../../hooks/aggregations/useTrackPassRateTrend.esm.js";import"react-router-dom";import{campaignDetailsRouteRef as x}from"../../../routes.esm.js";import{campaignTrackPassRatesCsvFilename as N}from"../../../utils/charts.esm.js";import{PassRateGrid as V}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as H}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as j}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as q}from"../../TechHealth/Loading/Loading.esm.js";import{PassRateTabHeader as z}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as J}from"../PassRateTabStyles.esm.js";import{trackPassRatesToCsv as K}from"../TechHealthExportFunctions.esm.js";import{ViewMode as u,generateTrackPassRateGridData as O}from"../techHealthTabUtils.esm.js";import{generateColumns as Q}from"../TrackResultsTab/TrackResultsTab.esm.js";const U=()=>{const k=J(),{filter:g}=j(),m=I(x),{data:P}=D({orderAlphabetical:"default",searchByStatus:"active"}),r=P?.edges.map(e=>e.node)?.map(({id:e,track:f})=>({campaignId:e,trackId:f.id})),v=r?.map(({trackId:e})=>({trackId:e})),{data:s,isLoading:R,isError:h}=F({...g,tracks:v,trackTypes:{included:["campaign"]}}),[c,C]=i(u.TABLE),[t,E]=i(""),[n,p]=i(0),[l,w]=i(10);A(()=>{p(0)},[g,t]);const b=B(()=>Q(s?.individualTrackPassRate??[],void 0,m,r),[s?.individualTrackPassRate,m,r]);if(R)return a.createElement(q,null);if(h)return a.createElement(T,{color:"error"},"Failed to load campaign tracks");const{individualTrackPassRate:d}=s;if(!d)return a.createElement(T,{color:"error"},"No available campaign tracks");const o=t.length?d.filter(({trackName:e})=>e?.toLowerCase()?.includes(t.toLowerCase())):d,L=async()=>K(o,r),y=(e,f)=>{p(()=>f)},G=e=>{w(+e.target.value),p(0)};return a.createElement(M,{className:k.root},a.createElement(S,{container:!0,direction:"row"},a.createElement(z,{viewMode:c,setViewMode:C,isLoading:R,searchTerm:t,setSearchTerm:E,searchPlaceholder:"Search Available Campaigns",fetchCsvData:L,csvFilename:N}),c===u.TABLE&&a.createElement(H,{data:o,columns:b}),c===u.GRID&&a.createElement(V,{data:O(o.slice(n*l,(n+1)*l),void 0,m,r),totalCount:o?.length??0,page:n,rowsPerPage:l,onPageChange:y,onRowsPerPageChange:G})))};export{U as CampaignResultsTab};
|
|
2
2
|
//# sourceMappingURL=CampaignResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{useRouteRef as v}from"@backstage/core-plugin-api";import{Typography as u,Box as L,Grid as N}from"@material-ui/core";import r,{useState as i,useEffect as A}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useCheckPassRateTrend as D}from"../../../hooks/aggregations/useCheckPassRateTrend.esm.js";import"react-router-dom";import{checkDetailsRouteRef as y}from"../../../routes.esm.js";import{checkPassRatesCsvFilename as M}from"../../../utils/charts.esm.js";import{PassRateGrid as O}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as S}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as F}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as G}from"../../TechHealth/Loading/Loading.esm.js";import{NameColumn as x}from"../NameColumn.esm.js";import{ActionColumn as B}from"../ActionColumn.esm.js";import{OwnerColumn as I}from"../OwnerColumn.esm.js";import{checkPassRatesToCsv as V}from"../TechHealthExportFunctions.esm.js";import{PassRateTabHeader as z}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as H}from"../PassRateTabStyles.esm.js";import{ViewMode as f,generateCheckPassRateGridData as W}from"../techHealthTabUtils.esm.js";import"recharts";import"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import"luxon";import"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"../../Charts/BarChart/BarChart.esm.js";import"../../PassRateTable/NewPassRateTable.esm.js";import{MostRecentColumn as j}from"../MostRecentColumn.esm.js";import{CheckTrendColumn as q}from"./CheckTrendColumn.esm.js";function J(m){return[{label:"NAME",id:"checkName",renderCell:e=>r.createElement(x,{name:e.checkName??e.id,description:e.checkDescription})},{label:"LATEST",id:"snapshotPassRate",renderCell:e=>r.createElement(j,{snapshot:e.snapshotPassRate})},{label:"TREND",id:"trendPassRate",renderCell:e=>r.createElement(q,{row:e})},{label:"OWNER",id:"checkOwner",renderCell:e=>r.createElement(I,{ownerEntityRef:e.checkOwnerRef??void 0})},{label:"ACTION",id:"action",renderCell:e=>r.createElement(B,{navigateTo:m({checkId:e.id})})}]}const K=()=>{const m=H(),{filter:e}=F(),h=v(y),{data:R,isLoading:C,isError:E}=D(e),[s,k]=i(f.TABLE),[t,P]=i(""),[n,c]=i(0),[l,T]=i(10);if(A(()=>{c(0)},[e,t]),C)return r.createElement(G,null);if(E)return r.createElement(u,{color:"error"},"Failed to load checks");const{individualCheckPassRates:p}=R;if(!p)return r.createElement(u,{color:"error"},"No available checks");const o=t.length?p.filter(({id:a,checkName:d})=>d?.toLowerCase()?.includes(t.toLowerCase())||a.toLowerCase().includes(t.toLowerCase())):p,g=async()=>V(o),w=(a,d)=>{c(()=>d)},b=a=>{T(+a.target.value),c(0)};return r.createElement(L,{className:m.root},r.createElement(N,{container:!0,direction:"row"},r.createElement(z,{viewMode:s,setViewMode:k,isLoading:C,searchTerm:t,setSearchTerm:P,searchPlaceholder:"Search Available Checks",fetchCsvData:g,csvFilename:M}),s===f.TABLE&&r.createElement(S,{data:o,columns:J(h)}),s===f.GRID&&r.createElement(O,{data:W(o.slice(n*l,(n+1)*l),h),totalCount:o?.length??0,page:n,rowsPerPage:l,onPageChange:w,onRowsPerPageChange:b})))};export{K as CheckResultsTab};
|
|
2
2
|
//# sourceMappingURL=CheckResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Box as m}from"@material-ui/core";import
|
|
1
|
+
import{Box as m}from"@material-ui/core";import t from"react";import"recharts";import{convertPassRateToDataPoints as a}from"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import{PassRateHistoryLineChart as s}from"../../Charts/LineChart/PassRateHistoryLineChart.esm.js";import"luxon";import"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../../Charts/BarChart/BarChart.esm.js";import{usePassRateTabStyles as i}from"../PassRateTabStyles.esm.js";const p=({row:r})=>{const o=i(),e=a(r.trendPassRates??[]);return t.createElement(m,{className:o.flexColumn},t.createElement(s,{chartData:e,tableChart:!0}))};export{p as CheckTrendColumn};
|
|
2
2
|
//# sourceMappingURL=CheckTrendColumn.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as N}from"@backstage/catalog-model";import{useApi as V,useRouteRef as H}from"@backstage/core-plugin-api";import{entityRouteRef as W}from"@backstage/plugin-catalog-react";import{Typography as L,Box as $,Grid as j}from"@material-ui/core";import t,{useState as i,useEffect as A}from"react";import{soundcheckApiRef as q}from"../../../api.esm.js";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useEntityPassRateTrend as z}from"../../../hooks/aggregations/useEntityPassRateTrend.esm.js";import"react-router-dom";import{entityPassRatesCsvFilename as J}from"../../../utils/charts.esm.js";import{PassRateGrid as K}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{NewPassRateTable as Q}from"../../PassRateTable/NewPassRateTable.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as U}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as X}from"../../TechHealth/Loading/Loading.esm.js";import{ActionColumn as Y}from"../ActionColumn.esm.js";import{MostRecentColumn as Z}from"../MostRecentColumn.esm.js";import{NameColumn as _}from"../NameColumn.esm.js";import{OwnerColumn as ee}from"../OwnerColumn.esm.js";import{PassRateTabHeader as te}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as re}from"../PassRateTabStyles.esm.js";import{entityPassRatesToCsv as oe}from"../TechHealthExportFunctions.esm.js";import{ViewMode as f,generateEntityPassRateGridData as ae}from"../techHealthTabUtils.esm.js";import{EntityTrendColumn as ie}from"./EntityTrendColumn.esm.js";function ne(d){return[{label:"NAME",id:"entityName",renderCell:({id:r,entityDescription:n})=>t.createElement(_,{name:N(r).name,description:n})},{label:"LATEST",id:"latest",renderCell:r=>t.createElement(Z,{snapshot:r.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:r=>t.createElement(ie,{row:r})},{label:"OWNER",id:"entityOwnerRef",renderCell:({entityOwnerRef:r})=>t.createElement(ee,{ownerEntityRef:r??void 0})},{label:"ACTION",id:"action",renderCell:({id:r})=>t.createElement(Y,{navigateTo:`${d(N(r))}/soundcheck`})}]}const se=()=>{const d=re(),r=V(q),{filter:n}=U(),g=H(W),[E,P]=i([]),[R,s]=i(void 0),[C,p]=i(0),[u,I]=i(10),{data:o,isLoading:y,isError:x}=z({filter:n,first:u,after:R}),[a,D]=i(o?.individualEntityPassRates),S=a?.edges?a?.edges[a?.edges.length-1]:{cursor:""};A(()=>{o&&D(()=>({totalCount:o.individualEntityPassRates.totalCount,edges:o.individualEntityPassRates.edges,pageInfo:{endCursor:o.individualEntityPassRates.pageInfo.endCursor,hasNextPage:o.individualEntityPassRates.pageInfo.hasNextPage??!1,hasPreviousPage:o.individualEntityPassRates.pageInfo.hasPreviousPage??!1}}))},[o]);const[c,F]=i(f.TABLE),[m,G]=i("");if(A(()=>{p(0),s("")},[n]),y)return t.createElement(X,null);if(x)return t.createElement(L,{color:"error"},"Failed to load entities");if(!a?.edges?.length)return t.createElement(L,{color:"error"},"No available entities");const h=m.length?{...a,edges:a.edges.filter(({node:e})=>e.id.toLowerCase().includes(m.toLowerCase())),totalCount:a.edges.filter(({node:e})=>e.id.toLowerCase().includes(m.toLowerCase())).length}:a,v=h?.edges.map(({node:e})=>e)??[],w=h?.totalCount??0,M=async()=>{const{individualEntityPassRates:e}=await r.getIndividualEntityPassRates({filter:n});return oe(e.edges.map(({node:l})=>l))},O=()=>{P(e=>[...e,R]),s(S?.cursor)},B=()=>{s(E[E.length-1]),P(e=>e.slice(0,-1))},T=(e,l)=>{p(k=>(l>k?O():B(),l))},b=e=>{s(void 0),I(+e.target.value),p(0)};return t.createElement($,{className:d.root},t.createElement(j,{container:!0,direction:"row"},t.createElement(te,{viewMode:c,setViewMode:F,isLoading:y,searchTerm:m,setSearchTerm:G,searchPlaceholder:"Search available entities",fetchCsvData:M,csvFilename:J}),c===f.TABLE&&t.createElement(Q,{data:v,totalCount:w,page:C,rowsPerPage:u,columns:ne(g),onPageChange:T,onRowsPerPageChange:b}),c===f.GRID&&t.createElement(K,{data:ae(v,g),totalCount:w,page:C,rowsPerPage:u,onPageChange:T,onRowsPerPageChange:b})))};export{se as EntityResultsTab};
|
|
2
2
|
//# sourceMappingURL=EntityResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Box as a}from"@material-ui/core";import
|
|
1
|
+
import{Box as a}from"@material-ui/core";import t from"react";import"recharts";import{convertPassRateToDataPoints as m}from"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import{PassRateHistoryLineChart as s}from"../../Charts/LineChart/PassRateHistoryLineChart.esm.js";import"luxon";import"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../../Charts/BarChart/BarChart.esm.js";import{usePassRateTabStyles as i}from"../PassRateTabStyles.esm.js";const n=({row:{trendPassRates:r}})=>{const o=i(),e=m(r??[]);return t.createElement(a,{className:o.flexColumn},t.createElement(s,{chartData:e,tableChart:!0}))};export{n as EntityTrendColumn};
|
|
2
2
|
//# sourceMappingURL=EntityTrendColumn.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as G}from"@backstage/catalog-model";import{useApi as H,useRouteRef as O}from"@backstage/core-plugin-api";import{entityRouteRef as j}from"@backstage/plugin-catalog-react";import{Typography as L,Box as q,Grid as z}from"@material-ui/core";import r,{useState as s,useEffect as A}from"react";import{soundcheckApiRef as J}from"../../../api.esm.js";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGroupPassRateTrend as K}from"../../../hooks/aggregations/useGroupPassRateTrend.esm.js";import"react-router-dom";import{groupPassRatesCsvFilename as Q}from"../../../utils/charts.esm.js";import{PassRateGrid as U}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{NewPassRateTable as W}from"../../PassRateTable/NewPassRateTable.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as X}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as Y}from"../../TechHealth/Loading/Loading.esm.js";import{ActionColumn as Z}from"../ActionColumn.esm.js";import{MostRecentColumn as _}from"../MostRecentColumn.esm.js";import{NameColumn as $}from"../NameColumn.esm.js";import{PassRateTabHeader as ee}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as re}from"../PassRateTabStyles.esm.js";import{groupPassRatesToCsv as te}from"../TechHealthExportFunctions.esm.js";import{ViewMode as c,generateGroupPassRateGridData as oe}from"../techHealthTabUtils.esm.js";import{GroupTrendColumn as ae}from"./GroupTrendColumn.esm.js";function se(p){return[{label:"NAME",id:"groupName",renderCell:({groupTitle:t,id:i})=>r.createElement($,{name:t??G(i).name})},{label:"LATEST",id:"latest",renderCell:t=>r.createElement(_,{snapshot:t.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:t=>r.createElement(ae,{row:t})},{label:"ACTION",id:"action",renderCell:({id:t})=>r.createElement(Z,{navigateTo:p(G(t))})}]}const ie=()=>{const p=re(),t=H(J),{filter:i}=X();i.context=void 0;const f=O(j),[P,R]=s([]),[C,n]=s(void 0),[h,u]=s(0),[g,I]=s(10),{data:o,isLoading:E,isError:x}=K({filter:i,first:g,after:C}),[a,y]=s(o?.groupPassRates),S=a?.edges?a?.edges[a?.edges.length-1]:{cursor:""};A(()=>{o&&y(()=>({totalCount:o.groupPassRates.totalCount,edges:o.groupPassRates.edges,pageInfo:{endCursor:o.groupPassRates.pageInfo.endCursor,hasNextPage:o.groupPassRates.pageInfo.hasNextPage??!1,hasPreviousPage:o.groupPassRates.pageInfo.hasPreviousPage??!1}}))},[o]);const[d,D]=s(c.TABLE),[m,F]=s("");if(A(()=>{u(0),n("")},[i]),E)return r.createElement(Y,null);if(x)return r.createElement(L,{color:"error"},"Failed to load groups");if(!a?.edges?.length)return r.createElement(L,{color:"error"},"No available groups");const T=m.length?{...a,edges:a.edges.filter(({node:e})=>e.groupTitle?.toLowerCase()?.includes(m.toLowerCase())||e.id.toLowerCase().includes(m.toLowerCase()))}:a,v=T?.edges.map(({node:e})=>e)??[],w=T?.totalCount??0,M=async()=>{const{groupPassRates:e}=await t.getIndividualGroupPassRates({filter:i});return te(e.edges.map(({node:l})=>l))},B=()=>{R(e=>[...e,C]),n(S?.cursor)},V=()=>{n(P[P.length-1]),R(e=>e.slice(0,-1))},b=(e,l)=>{u(k=>(l>k?B():V(),l))},N=e=>{n(void 0),I(+e.target.value),u(0)};return r.createElement(q,{className:p.root},r.createElement(z,{container:!0,direction:"row"},r.createElement(ee,{viewMode:d,setViewMode:D,isLoading:E,searchTerm:m,setSearchTerm:F,searchPlaceholder:"Search available teams",csvFilename:Q,fetchCsvData:M}),d===c.TABLE&&r.createElement(W,{data:v,totalCount:w,page:h,rowsPerPage:g,columns:se(f),onPageChange:b,onRowsPerPageChange:N}),d===c.GRID&&r.createElement(U,{data:oe(v,f),totalCount:w,page:h,rowsPerPage:g,onPageChange:b,onRowsPerPageChange:N})))};export{ie as GroupResultsTab};
|
|
2
2
|
//# sourceMappingURL=GroupResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Box as
|
|
1
|
+
import{Box as o,Typography as m}from"@material-ui/core";import t from"react";import"recharts";import{convertPassRateToDataPoints as s}from"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import{PassRateHistoryLineChart as n}from"../../Charts/LineChart/PassRateHistoryLineChart.esm.js";import"luxon";import"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../../Charts/BarChart/BarChart.esm.js";import{usePassRateTabStyles as l}from"../PassRateTabStyles.esm.js";const p=({row:{trendPassRates:a}})=>{const e=l(),r=s(a??[]);return r.length?t.createElement(o,{className:e.flexColumn},t.createElement(n,{chartData:r,tableChart:!0})):t.createElement(o,{className:e.flexColumn},t.createElement(m,null,"No data"))};export{p as GroupTrendColumn};
|
|
2
2
|
//# sourceMappingURL=GroupTrendColumn.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{MarkdownContent as r}from"@backstage/core-components";import{Box as
|
|
1
|
+
import{MarkdownContent as r}from"@backstage/core-components";import{Box as a,Typography as n}from"@material-ui/core";import t from"react";import{usePassRateTabStyles as s}from"./PassRateTabStyles.esm.js";const c=({name:o="",description:m=""})=>{const e=s();return t.createElement(a,{className:e.flexColumn},t.createElement(n,{className:e.boldText},o),t.createElement(r,{className:e.descriptionText,content:m??""}))};export{c as NameColumn};
|
|
2
2
|
//# sourceMappingURL=NameColumn.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringifyEntityRef as
|
|
1
|
+
import{stringifyEntityRef as a,parseEntityRef as l}from"@backstage/catalog-model";import{EntityRefLink as m}from"@backstage/plugin-catalog-react";import{makeStyles as f,Tooltip as p,Typography as y}from"@material-ui/core";import n from"react";import{useEntityByRef as s}from"../../hooks/catalog/useEntityByRef.esm.js";const c=e=>e?.kind==="Group",d=e=>e?.kind==="User",u=f(e=>({ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}},fontSize:e.typography.body1.fontSize}})),E=({ownerEntityRef:e})=>{const{data:t,error:o}=s(e??void 0),i=u();if(t){let r;return c(t)||d(t)?r=t.metadata.title??t.spec.profile?.displayName:r=t.metadata.name,n.createElement(m,{entityRef:a(t),title:r,className:i.ownerLink})}else if(o&&e)return n.createElement(p,{title:"Unable to pull owner reference from Catalog API"},n.createElement(y,{style:{color:"red"},variant:"body2"},(()=>{try{return l(e).name}catch{return e}})()));return null};export{E as OwnerColumn};
|
|
2
2
|
//# sourceMappingURL=OwnerColumn.esm.js.map
|