@spotify/backstage-plugin-soundcheck 0.12.9 → 0.12.11
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/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/utils.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/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{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 W}from"../ChecksTab/ChecksTab.esm.js";import{CollectorPage as j}from"../CollectorPage/CollectorPage.esm.js";import{CollectorsPage as q}from"../CollectorsPage/CollectorsPage.esm.js";import{EditTrackPage as z}from"../EditTrackPage/EditTrackPage.esm.js";import{GroupSelector as J}from"../GroupSelector/GroupSelector.esm.js";import{OverviewPageContent as K}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%",maxWidth:"100%","& > 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(/\/+$/,""),x=i===d(),P=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:P})},x&&e.createElement(J,{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(z,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(j,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(K,{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(W,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(q,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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Grid as
|
|
1
|
+
import{Grid as l,Button as B,Menu as I,MenuItem as L,ListItemIcon as w,ListItemText as z}from"@material-ui/core";import{makeStyles as M}from"@material-ui/core/styles";import N from"@material-ui/icons/Apps";import G from"@material-ui/icons/GridOn";import P from"@material-ui/icons/KeyboardArrowDown";import V from"@material-ui/icons/Reorder";import{ToggleButtonGroup as R,ToggleButton as d}from"@material-ui/lab";import e,{useRef as A,useState as u,useEffect as D}from"react";import{CSVLink as O}from"react-csv";import{SearchBar as W}from"../SearchBar/SearchBar.esm.js";import{ViewMode as h}from"./techHealthTabUtils.esm.js";const _=M(t=>({header:{padding:t.spacing(0,0,1),display:"flex"},headerButtons:{display:"flex",gap:t.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},exportButton:{height:"40px",width:"112px"},csvLink:{display:"none"},menuIconSize:{minWidth:t.spacing(4),color:t.palette.text.primary},menuList:{backgroundColor:t.palette.background.paper,color:t.palette.text.primary}})),j=({viewMode:t,setViewMode:g,isLoading:m,searchTerm:f,setSearchTerm:E,searchPlaceholder:x,fetchCsvData:v,csvFilename:b})=>{const r=_(),c=A(),S=(a,p)=>{p!==null&&g(p)},[s,n]=u(null),[o,k]=u([]),i=!!s,C=a=>{n(a.currentTarget)},T=()=>{n(null)},y=async()=>{n(null);const a=await v();k(a)};return D(()=>{o.length&&c?.current?.link.click()},[o]),e.createElement(l,{container:!0,spacing:2,className:r.header},e.createElement(l,{item:!0,xs:6},e.createElement(W,{searchTerm:f,setSearchTerm:E,disabled:m,placeholder:x||"Search",variant:"outlined",size:"small"})),e.createElement(l,{item:!0,xs:6,className:r.headerButtons},e.createElement(B,{id:"export-button",className:r.exportButton,disabled:m,variant:"contained",color:"primary","aria-controls":i?"export-menu":void 0,"aria-haspopup":"true","aria-expanded":i?"true":void 0,onClick:C,endIcon:e.createElement(P,null)},"Export"),e.createElement(O,{data:o,filename:b,className:r.csvLink,ref:c,target:"_blank"}),e.createElement(I,{id:"export-menu",anchorEl:s,getContentAnchorEl:null,open:i,onClose:T,MenuListProps:{"aria-labelledby":"export-button",disablePadding:!0,className:r.menuList},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},e.createElement(L,{onClick:y},e.createElement(w,{color:"inherit",className:r.menuIconSize},e.createElement(G,{fontSize:"small"})),e.createElement(z,null,"CSV"))),e.createElement(R,{size:"small",value:t,exclusive:!0,onChange:S},e.createElement(d,{value:h.TABLE,title:"Table view"},e.createElement(V,{color:"inherit"})),e.createElement(d,{value:h.GRID,title:"Grid view"},e.createElement(N,{color:"inherit"})))))};export{j as PassRateTabHeader};
|
|
2
2
|
//# sourceMappingURL=PassRateTabHeader.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as c}from"@backstage/catalog-model";import{DateTime as h}from"luxon";function s(a,t){const e=a;if(t){const n=h.utc();for(let o=t-1;o>=0;o--)e.push(n.minus({day:o}).toISODate())}return e}function r(a){if(!a)return 0;const t=a.map(e=>e.trendPassRates?.length??1);return Math.max(1,...t)}function u(a){const t=[];return t.push(s(["check_id","check_name","check_owner_ref"],r(a))),a?.length&&a.map(e=>{t.push([e.id,e.checkName,e.checkOwnerRef,...e.trendPassRates??[e.snapshotPassRate]])}),t}function p(a){const t=[];if(t.push(s(["entity_ref","entity_name","entity_owner_ref"],r(a))),a?.length)for(const e of a){const n=e.trendPassRates?.length?e.trendPassRates:[e.snapshotPassRate];t.push([e.id,c(e.id).name,e.entityOwnerRef??"",...n])}return t}function m(a){const t=[];return t.push(s(["team_ref","team_name"],r(a))),a?.length&&a.map(e=>{t.push([e.id,e.groupTitle??c(e.id).name,...e.trendPassRates??[e.snapshotPassRate]])}),t}function R(a,t,e){return e?[e.find(({trackId:n})=>n===a.id)?.campaignId??"",a.trackName,a.trackOwnerRef]:[a.id,a.trackName,a.trackOwnerRef,t.levelOrdinal,t.levelName??`Level ${t.levelOrdinal}`,...t.trendPassRates??[t.snapshotPassRate]]}function d(a,t){const e=[],n=a?.length?Math.max(...a.map(l=>r(l.levels))):0,o=t?["campaign_id","campaign_name","campaign_owner"]:["track_id","track_name","track_owner_ref","level_ordinal","level_name"];return e.push(s(o,n)),a?.length&&a.map(l=>{l.levels?.map(i=>{e.push(R(l,i,t))})}),e}function v(a){const t=[];return t.push(s(["name"],a?.overallCheckPassRates?.length??0)),a?.overallCheckPassRates?.length&&t.push(["Check Pass Rate",...a.overallCheckPassRates]),t}function P(a){const t=[];return t.push(s(["level_ordinal","level_name"],r(a?.overallTrackPassRate))),a?.overallTrackPassRate?.length&&a.overallTrackPassRate.map(e=>{t.push([e.levelOrdinal,`Level ${e.levelOrdinal}`,...e.trendPassRates??[e.snapshotPassRate]])}),t}function f(a){const t=[];return t.push(s(["entity_ref","entity_name"],r(a?.overallEntityPassRates))),a?.overallEntityPassRates?.length&&a.overallEntityPassRates.map(e=>{t.push([e.id,c(e.id).name,...e.trendPassRates??[0]])}),t}function g(a){const t=[];return t.push(s(["team_ref","team_name"],1)),a?.groupPassRates?.edges.length&&a?.groupPassRates?.edges.map(({node:e})=>{t.push([e.id,e.groupTitle??c(e.id).name,e.snapshotPassRate])}),t}export{u as checkPassRatesToCsv,p as entityPassRatesToCsv,s as getHeaderRowWithDates,r as getHistoryLength,m as groupPassRatesToCsv,v as overallCheckPassRateToCsv,f as overallEntityPassRatesToCsv,g as overallGroupPassRatesToCsv,P as overallTrackPassRatesToCsv,d as trackPassRatesToCsv};
|
|
2
2
|
//# sourceMappingURL=TechHealthExportFunctions.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Box as m,Typography as s}from"@material-ui/core";import t from"react";import"recharts";import{convertPassRateToDataPoints as n}from"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import{PassRateHistoryLineChart as p}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 l=({row:{trendPassRates:r,snapshotPassRate:
|
|
1
|
+
import{Box as m,Typography as s}from"@material-ui/core";import t from"react";import"recharts";import{convertPassRateToDataPoints as n}from"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import{PassRateHistoryLineChart as p}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 l=({row:{trendPassRates:r,snapshotPassRate:o}})=>{const e=i(),a=n(r??[]);return t.createElement(m,{className:e.flexColumn},t.createElement(s,null,Math.round(o),"%"),t.createElement(p,{chartData:a,tableChart:!0}))};export{l as TrackTrendColumn};
|
|
2
2
|
//# sourceMappingURL=TrackLevelTrendColumn.esm.js.map
|