@spotify/backstage-plugin-soundcheck 0.19.3 → 0.19.4

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.
Files changed (224) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/alpha/integrations.esm.js +1 -1
  3. package/dist/alpha/pages.esm.js +1 -1
  4. package/dist/alpha.d.ts +2 -2
  5. package/dist/api.esm.js +1 -1
  6. package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
  7. package/dist/components/Badges/NoLevelBadge.esm.js +2 -2
  8. package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
  9. package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
  10. package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
  11. package/dist/components/CampaignPage/CampaignPageBUI.esm.js +1 -1
  12. package/dist/components/CampaignPage/CampaignPageDeprecated.esm.js +1 -1
  13. package/dist/components/CampaignPage/CampaignStatusHistoryChart.esm.js +2 -0
  14. package/dist/components/CampaignPage/CampaignStatusHistoryTile.esm.js +1 -1
  15. package/dist/components/CampaignPage/CampaignStatusTile.esm.js +1 -1
  16. package/dist/components/CampaignPage/CampaignTechInsightsExplorerPage.esm.js +2 -0
  17. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js +1 -1
  18. package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
  19. package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +1 -1
  20. package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
  21. package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
  22. package/dist/components/Cards/CheckStatusCard/CheckStatusCard.esm.js +2 -0
  23. package/dist/components/Cards/DescriptionCard/DescriptionCard.esm.js +1 -1
  24. package/dist/components/Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js +2 -0
  25. package/dist/components/Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js +2 -0
  26. package/dist/components/Cards/TrackStatusCard/TrackStatusCard.esm.js +2 -0
  27. package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
  28. package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
  29. package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
  30. package/dist/components/CertificationSidebar/Check.esm.js +1 -1
  31. package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +1 -1
  32. package/dist/components/CertificationSidebar/LevelSummary.esm.js +1 -1
  33. package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
  34. package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
  35. package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
  36. package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +1 -1
  37. package/dist/components/Charts/chartUtils.esm.js +1 -1
  38. package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
  39. package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
  40. package/dist/components/CheckDetails/JustificationDetails.esm.js +1 -1
  41. package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
  42. package/dist/components/CheckForm/CheckForm.esm.js +1 -1
  43. package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
  44. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
  45. package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
  46. package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
  47. package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
  48. package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
  49. package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
  50. package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
  51. package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
  52. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +2 -0
  53. package/dist/components/CheckPage/CheckPage.esm.js +2 -0
  54. package/dist/components/CheckPage/CheckPageBUI.esm.js +2 -0
  55. package/dist/components/CheckPage/CheckPageDeprecated.esm.js +2 -0
  56. package/dist/components/CheckPage/CheckStatusHistoryChartBUI.esm.js +2 -0
  57. package/dist/components/CheckPage/CheckStatusTableBUI.esm.js +2 -0
  58. package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +2 -0
  59. package/dist/components/CheckSelection/CheckPreview.esm.js +1 -1
  60. package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
  61. package/dist/components/CheckStatusBar/CheckStatusBarBUI.esm.js +1 -1
  62. package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
  63. package/dist/components/CheckTemplatesPage/CheckTemplatesPageBUI.esm.js +2 -0
  64. package/dist/components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js +2 -0
  65. package/dist/components/CheckTemplatesPage/TemplateCategoryBUI.esm.js +2 -0
  66. package/dist/components/ChecksPage/CheckListPage/CheckListPageDeprecated.esm.js +1 -1
  67. package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
  68. package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +1 -1
  69. package/dist/components/ChecksTable/ChecksTable.esm.js +1 -1
  70. package/dist/components/CollapsablePanel/CollapsablePanel.esm.js +1 -1
  71. package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +1 -1
  72. package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +2 -0
  73. package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +2 -0
  74. package/dist/components/CollectorPage/CollectorFactTableBUI.esm.js +2 -0
  75. package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
  76. package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
  77. package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
  78. package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
  79. package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
  80. package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +1 -1
  81. package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
  82. package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
  83. package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
  84. package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
  85. package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
  86. package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
  87. package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
  88. package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
  89. package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
  90. package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
  91. package/dist/components/CollectorPage/DependantCheckCard.esm.js +2 -0
  92. package/dist/components/CollectorsPage/CollectorListPage/{CollectorListPage.esm.js → CollectorListPageDeprecated.esm.js} +2 -2
  93. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
  94. package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
  95. package/dist/components/CollectorsPage/IntegrationLogoBUI.esm.js +2 -0
  96. package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +2 -0
  97. package/dist/components/CustomCell/CustomCell.esm.js +1 -1
  98. package/dist/components/DescriptionCell/DescriptionCell.esm.js +2 -0
  99. package/dist/components/DocLinkButton/DocLinkButton.esm.js +2 -0
  100. package/dist/components/EmptyState/EmptyStateBUI.esm.js +1 -1
  101. package/dist/components/EmptyState/EmptyStateNoCampaigns.esm.js +1 -1
  102. package/dist/components/EmptyState/EmptyStateNoChecks.esm.js +1 -1
  103. package/dist/components/EmptyState/EmptyStateNoTracks.esm.js +1 -1
  104. package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +1 -1
  105. package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
  106. package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
  107. package/dist/components/FactExplorer/FactExplorerDialogBUI.esm.js +2 -0
  108. package/dist/components/FactExplorer/useFactOptions.esm.js +1 -1
  109. package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
  110. package/dist/components/Filter/FilterComponent.esm.js +1 -1
  111. package/dist/components/FilterMenu/FilterMenu.esm.js +2 -0
  112. package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
  113. package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
  114. package/dist/components/FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js +1 -1
  115. package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +1 -1
  116. package/dist/components/FormattedPreview/FormattedPreview.esm.js +1 -1
  117. package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +1 -1
  118. package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +1 -1
  119. package/dist/components/GroupSelectorBUI/GroupSelectList.esm.js +2 -0
  120. package/dist/components/GroupSelectorBUI/GroupSelectionHistory.esm.js +2 -0
  121. package/dist/components/GroupSelectorBUI/GroupSelectorBUI.esm.js +2 -0
  122. package/dist/components/GroupSelectorBUI/GroupTag.esm.js +2 -0
  123. package/dist/components/GroupSelectorBUI/useGroupHistory.esm.js +2 -0
  124. package/dist/components/GroupSelectorBUI/usePreviousSelectedGroups.esm.js +2 -0
  125. package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +1 -1
  126. package/dist/components/HierarchicalTechInsightsPage/HierarchyTable.esm.js +1 -1
  127. package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +1 -1
  128. package/dist/components/HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js +1 -1
  129. package/dist/components/ImportExportPanel/ImportExportPanelBUI.esm.js +2 -0
  130. package/dist/components/ImportExportPanel/{ImportExportPanel.esm.js → ImportExportPanelDeprecated.esm.js} +2 -2
  131. package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
  132. package/dist/components/LevelsTable/CheckRowContent.esm.js +1 -1
  133. package/dist/components/ListPageCustomActions/ListPageCustomActions.esm.js +1 -1
  134. package/dist/components/Menus/SimpleMenu.esm.js +2 -0
  135. package/dist/components/Menus/useCampaignActions.esm.js +2 -0
  136. package/dist/components/Menus/useCheckActions.esm.js +2 -0
  137. package/dist/components/Menus/useTrackActions.esm.js +2 -0
  138. package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
  139. package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +1 -1
  140. package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
  141. package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
  142. package/dist/components/PageCustomActions/PageCustomActions.esm.js +1 -1
  143. package/dist/components/PassRateTable/PassRateTable.esm.js +1 -1
  144. package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -2
  145. package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
  146. package/dist/components/Router.esm.js +1 -1
  147. package/dist/components/RoutingPage/RoutingMainMenu.esm.js +2 -0
  148. package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
  149. package/dist/components/RoutingPage/RoutingPageBUI.esm.js +2 -0
  150. package/dist/components/RoutingPage/RoutingPageDeprecated.esm.js +2 -0
  151. package/dist/components/RoutingPage/RoutingPageWrapper.esm.js +2 -0
  152. package/dist/components/RoutingPage/RoutingPageWrapperBUI.esm.js +2 -0
  153. package/dist/components/RoutingPage/RoutingPageWrapperDeprecated.esm.js +2 -0
  154. package/dist/components/RoutingPage/index.esm.js +1 -1
  155. package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialog.esm.js +1 -1
  156. package/dist/components/SoundcheckHeader/SoundcheckHeaderBUI.esm.js +2 -0
  157. package/dist/components/SoundcheckMarkdownContent/ComponentRenders.esm.js +1 -1
  158. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js +2 -0
  159. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js +2 -0
  160. package/dist/components/StatusBar/StatusBar.esm.js +2 -0
  161. package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
  162. package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +1 -1
  163. package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
  164. package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
  165. package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
  166. package/dist/components/TechHealth/TechHealth.esm.js +1 -1
  167. package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
  168. package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
  169. package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
  170. package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
  171. package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
  172. package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
  173. package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
  174. package/dist/components/TechInsights/SummaryTiles.esm.js +1 -1
  175. package/dist/components/TechInsights/SummaryTilesBUI.esm.js +2 -0
  176. package/dist/components/TechInsights/TechInsightsPage.esm.js +1 -1
  177. package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +2 -0
  178. package/dist/components/TechInsights/TechInsightsPageDeprecated.esm.js +2 -0
  179. package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +1 -1
  180. package/dist/components/TechInsights/TechInsightsTableView.esm.js +1 -1
  181. package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +2 -0
  182. package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
  183. package/dist/components/TimePeriodBar/TimePeriodBar.esm.js +1 -1
  184. package/dist/components/TimePeriodBar/TimePeriodBarBUI.esm.js +2 -0
  185. package/dist/components/TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js +2 -0
  186. package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +1 -1
  187. package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
  188. package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
  189. package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
  190. package/dist/components/TrackForm/TrackForm.esm.js +1 -1
  191. package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
  192. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +1 -1
  193. package/dist/components/TrackPage/TrackHistoryChartBUI.esm.js +2 -0
  194. package/dist/components/TrackPage/TrackPageBUI.esm.js +1 -1
  195. package/dist/components/TrackPage/TrackPageDeprecated.esm.js +1 -1
  196. package/dist/components/TrackPage/TrackStatusBarBUI.esm.js +2 -0
  197. package/dist/components/TrackPage/TrackStatusTableBUI.esm.js +2 -0
  198. package/dist/components/TrackPage/TrackTechInsightsExplorerPage.esm.js +2 -0
  199. package/dist/components/TrackSelection/TrackSelection.esm.js +1 -1
  200. package/dist/components/TracksPage/TrackListPage/TrackListPageDeprecated.esm.js +1 -1
  201. package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
  202. package/dist/components/TracksPage/TracksListPageBUI.esm.js +1 -1
  203. package/dist/components/TracksPage/TracksPage.esm.js +1 -1
  204. package/dist/graphql/generated/index.esm.js +1 -0
  205. package/dist/hooks/filters/useFilters.esm.js +2 -0
  206. package/dist/hooks/groups/useGroupOptions.esm.js +1 -1
  207. package/dist/hooks/heirarchy/useGroupHierarchy.esm.js +1 -1
  208. package/dist/hooks/tracks/useTracksApplicableToGroup.esm.js +1 -1
  209. package/dist/hooks/usePagination.esm.js +1 -1
  210. package/dist/hooks/useSortTableLocalStorage.esm.js +2 -0
  211. package/dist/routes.esm.js +1 -1
  212. package/dist/utils/charts.esm.js +1 -1
  213. package/dist/utils/formStyles.esm.js +1 -1
  214. package/dist/utils/time.esm.js +1 -1
  215. package/package.json +21 -20
  216. package/dist/components/Cards/CurrentStatusCard/CurrentStatusCard.esm.js +0 -2
  217. package/dist/components/Cards/CurrentStatusCard/CurrentStatusCardRow.esm.js +0 -2
  218. package/dist/components/CheckPage/CheckInsightsPage.esm.js +0 -2
  219. package/dist/components/CheckStatusBar/CheckStatusBarCell.esm.js +0 -2
  220. package/dist/components/GroupHierarchySelector/usePreviousSelectedGroups.esm.js +0 -2
  221. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js +0 -2
  222. package/dist/hooks/checks/useCheckStatusTotals.esm.js +0 -2
  223. package/dist/utils/checks.esm.js +0 -2
  224. /package/dist/{components/GroupHierarchySelector → utils}/getAllOwnedEntityCount.esm.js +0 -0
@@ -1,2 +1,2 @@
1
- const s="check-pass-rates-summary.csv",a="track-pass-rates-summary.csv",e="entity-pass-rates-summary.csv",t="team-pass-rates-summary.csv",m="check-pass-rates.csv",c="track-pass-rates.csv",r="entity-pass-rates.csv",v="team-pass-rates.csv",n="campaign-track-pass-rates.csv";export{n as campaignTrackPassRatesCsvFilename,m as checkPassRatesCsvFilename,s as checkPassRatesSummaryCsvFilename,r as entityPassRatesCsvFilename,e as entityPassRatesSummaryCsvFilename,v as groupPassRatesCsvFilename,t as groupPassRatesSummaryCsvFilename,c as trackPassRatesCsvFilename,a as trackPassRatesSummaryCsvFilename};
1
+ import{sum as v}from"lodash";const g="check-pass-rates-summary.csv",y="track-pass-rates-summary.csv",C="entity-pass-rates-summary.csv",R="team-pass-rates-summary.csv",d="check-pass-rates.csv",f="track-pass-rates.csv",h="entity-pass-rates.csv",k="team-pass-rates.csv",F="campaign-track-pass-rates.csv",P=(a,e=2)=>{if(a.length===0)return[];const o=a.filter(s=>s>0),r=v(o);if(r===0)return a.map(()=>0);const t=a.map(s=>s>0?s/r*100:0),n=t.filter(s=>s>0&&s<e).length,m=n*e;if(n===0||m>=100)return t;const p=100-m,c=t.filter(s=>s>=e).reduce((s,l)=>s+l,0);return t.map(s=>s===0?0:s<e?e:c>0?s/c*p:s)},i=["Passed","Failed","Warning","Exempt","Error","Not Reported"];function u(a){return a==="Not Reported"?"notReported":a.toLowerCase()}function S(){return i.map(a=>u(a))}function b(a){return{passed:"rgb(76, 175, 80)",failed:"rgb(244, 67, 54)",warning:"rgb(255, 152, 0)",exempt:"rgb(33, 150, 243)",error:"rgb(246, 104, 94)",notReported:"rgb(97, 97, 97)"}[a]}export{P as calculateAdjustedBarWidths,F as campaignTrackPassRatesCsvFilename,i as chartStatuses,d as checkPassRatesCsvFilename,g as checkPassRatesSummaryCsvFilename,h as entityPassRatesCsvFilename,C as entityPassRatesSummaryCsvFilename,b as getChartStatusColor,u as getChartStatusKey,S as getChartStatusKeys,k as groupPassRatesCsvFilename,R as groupPassRatesSummaryCsvFilename,f as trackPassRatesCsvFilename,y as trackPassRatesSummaryCsvFilename};
2
2
  //# sourceMappingURL=charts.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as i}from"@material-ui/core/styles";const a=i(t=>({root:{overflow:"hidden",display:"flex"},card:{padding:t.spacing(3),display:"flex",gap:t.spacing(2.5)},buttonChoices:{margin:"20px 0","& button":{marginRight:"10px"}},backButton:{color:t.palette.text.primary},filters:{display:"flex",gap:t.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"},stepper:{width:"100%"},formWrapper:{paddingTop:t.spacing(2),maxWidth:1920}}));export{a as formStyles};
1
+ import{makeStyles as t}from"@material-ui/core/styles";const i=t(a=>({root:{overflow:"hidden",display:"flex"},card:{padding:a.spacing(3),display:"flex",gap:a.spacing(2.5)},buttonChoices:{margin:"20px 0","& button":{marginRight:"10px"}},backButton:{color:a.palette.text.primary},filters:{display:"flex",gap:a.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"},stepper:{width:"100%"},formWrapper:{paddingTop:a.spacing(2),maxWidth:1920},formWrapperBUI:{padding:"0 var(--bui-space-4)",maxWidth:1920}}));export{i as formStyles};
2
2
  //# sourceMappingURL=formStyles.esm.js.map
@@ -1,2 +1,2 @@
1
- const i=1,r=31536e3,n=e=>{if(e){if(isNaN(e))return"Invalid value";if(e<1)return"Minimum of 1";if(e>31536e3)return"Maximum exceeded"}else return"Enter a value";return!0};export{r as MAX_TIME_UNIT_VALUE,i as MIN_TIME_UNIT_VALUE,n as validateTimeUnitValue};
1
+ const i=1,n=31536e3,a=t=>{if(t){if(isNaN(t))return"Invalid value";if(t<1)return"Minimum of 1";if(t>31536e3)return"Maximum exceeded"}else return"Enter a value";return!0};function u(t){if(!t)return"";const r=!isNaN(t)&&!isNaN(parseFloat(t));let e;return r&&String(t).length>=10?e=new Date(Number(t)):e=new Date(t),isNaN(e.getTime())?String(t):e.toLocaleDateString()}export{n as MAX_TIME_UNIT_VALUE,i as MIN_TIME_UNIT_VALUE,u as formatTimestamp,a as validateTimeUnitValue};
2
2
  //# sourceMappingURL=time.esm.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spotify/backstage-plugin-soundcheck",
3
3
  "description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
4
- "version": "0.19.3",
4
+ "version": "0.19.4",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://backstage.spotify.com",
7
7
  "main": "./dist/index.esm.js",
@@ -60,16 +60,16 @@
60
60
  "dependencies": {
61
61
  "@backstage/catalog-client": "^1.12.0",
62
62
  "@backstage/catalog-model": "^1.7.5",
63
- "@backstage/config": "^1.3.3",
64
- "@backstage/core-compat-api": "^0.5.2",
65
- "@backstage/core-components": "^0.18.0",
66
- "@backstage/core-plugin-api": "^1.11.0",
67
- "@backstage/frontend-plugin-api": "^0.12.0",
68
- "@backstage/plugin-catalog-react": "^1.21.0",
69
- "@backstage/plugin-permission-react": "^0.4.36",
70
- "@backstage/plugin-scaffolder-react": "^1.19.1",
63
+ "@backstage/config": "^1.3.5",
64
+ "@backstage/core-compat-api": "^0.5.3",
65
+ "@backstage/core-components": "^0.18.2",
66
+ "@backstage/core-plugin-api": "^1.11.1",
67
+ "@backstage/frontend-plugin-api": "^0.12.1",
68
+ "@backstage/plugin-catalog-react": "^1.21.2",
69
+ "@backstage/plugin-permission-react": "^0.4.37",
70
+ "@backstage/plugin-scaffolder-react": "^1.19.2",
71
71
  "@backstage/types": "^1.2.2",
72
- "@backstage/ui": "^0.7.1",
72
+ "@backstage/ui": "^0.8.1",
73
73
  "@date-io/luxon": "^1.0.0",
74
74
  "@hookform/resolvers": "^4.0.0",
75
75
  "@material-ui/core": "^4.12.2",
@@ -84,8 +84,8 @@
84
84
  "@nivo/sunburst": "^0.99.0",
85
85
  "@nivo/treemap": "^0.99.0",
86
86
  "@remixicon/react": "^4.6.0",
87
- "@spotify/backstage-plugin-core": "^0.8.10",
88
- "@spotify/backstage-plugin-soundcheck-common": "^0.19.1",
87
+ "@spotify/backstage-plugin-core": "^0.8.11",
88
+ "@spotify/backstage-plugin-soundcheck-common": "^0.19.2",
89
89
  "@tanstack/react-query": "^4.6.1",
90
90
  "@uiw/react-md-editor": "3.20.10",
91
91
  "classnames": "^2.3.2",
@@ -102,6 +102,7 @@
102
102
  "js-yaml": "^4.1.0",
103
103
  "lodash": "^4.17.21",
104
104
  "luxon": "^3.1.1",
105
+ "pako": "^2.1.0",
105
106
  "prismjs": "^1.27.0",
106
107
  "react-aria-components": "^1.10.1",
107
108
  "react-circular-progressbar": "^2.1.0",
@@ -126,21 +127,21 @@
126
127
  "react-router-dom": "6.0.0-beta.0 || ^6.3.0"
127
128
  },
128
129
  "devDependencies": {
129
- "@backstage/cli": "^0.34.3",
130
- "@backstage/core-app-api": "^1.19.0",
131
- "@backstage/dev-utils": "^1.1.14",
130
+ "@backstage/cli": "^0.34.4",
131
+ "@backstage/core-app-api": "^1.19.1",
132
+ "@backstage/dev-utils": "^1.1.16",
132
133
  "@backstage/e2e-test-utils": "^0.1.1",
133
- "@backstage/frontend-test-utils": "^0.3.6",
134
- "@backstage/plugin-permission-common": "^0.9.1",
135
- "@backstage/test-utils": "^1.7.11",
134
+ "@backstage/frontend-test-utils": "^0.4.0",
135
+ "@backstage/plugin-permission-common": "^0.9.2",
136
+ "@backstage/test-utils": "^1.7.12",
136
137
  "@graphql-codegen/cli": "^5.0.0",
137
138
  "@graphql-codegen/typescript": "^4.0.0",
138
139
  "@graphql-codegen/typescript-graphql-request": "^6.0.0",
139
140
  "@graphql-codegen/typescript-operations": "^4.0.0",
140
141
  "@playwright/test": "^1.32.3",
141
142
  "@sp4b-dev/test-utils": "^0.0.13",
142
- "@spotify/backstage-plugin-core-common": "^0.6.9",
143
- "@spotify/backstage-plugin-soundcheck-node": "^0.10.1",
143
+ "@spotify/backstage-plugin-core-common": "^0.6.10",
144
+ "@spotify/backstage-plugin-soundcheck-node": "^0.10.2",
144
145
  "@testing-library/jest-dom": "^6.0.0",
145
146
  "@testing-library/react": "^14.0.0",
146
147
  "@testing-library/user-event": "^14.0.0",
@@ -1,2 +0,0 @@
1
- import{jsxs as a,jsx as t}from"react/jsx-runtime";import{Card as o,CardHeader as n,Text as d,CardBody as i,Box as c,Flex as s}from"@backstage/ui";import"../../CheckStatusBar/CheckStatusBar.esm.js";import{CheckStatusBarBUI as p}from"../../CheckStatusBar/CheckStatusBarBUI.esm.js";import"lodash";import"../../CustomCell/CustomCell.esm.js";import{CurrentStatusCardRow as e}from"./CurrentStatusCardRow.esm.js";const m=({totals:r,children:l})=>a(o,{children:[t(n,{children:t(d,{color:"secondary",children:"Current Status"})}),a(i,{children:[t(c,{mb:"6",children:t(p,{passedPercent:r.passedPercent,failedPercent:r.failedPercent,warningPercent:r.warningPercent})}),a(s,{direction:"column",gap:"1",mb:"3",children:[t(e,{label:"passed",percent:r.passedPercent,total:r.passedTotal,overallTotal:r.total}),t(e,{label:"failed",percent:r.failedPercent,total:r.failedTotal,overallTotal:r.total}),t(e,{label:"warning",percent:r.warningPercent,total:r.warningTotal,overallTotal:r.total})]}),l]})]});export{m as CurrentStatusCard};
2
- //# sourceMappingURL=CurrentStatusCard.esm.js.map
@@ -1,2 +0,0 @@
1
- import{jsxs as r,jsx as a}from"react/jsx-runtime";import{Flex as n,Box as i,Text as o}from"@backstage/ui";import{makeStyles as m}from"@material-ui/core";import"../../CheckStatusBar/CheckStatusBar.esm.js";import{CheckStatusBarBUI as p}from"../../CheckStatusBar/CheckStatusBarBUI.esm.js";import"lodash";import"../../CustomCell/CustomCell.esm.js";const h=m(()=>({checkStatusBar:{width:"var(--bui-space-6)"}})),f=({label:l,percent:t,total:c,overallTotal:s})=>{const d=h();let e;return l==="passed"?e={passedPercent:t}:l==="failed"?e={failedPercent:t}:e={warningPercent:t},r(n,{justify:"between",children:[r(n,{align:"center",children:[a(i,{className:d.checkStatusBar,children:a(p,{...e})}),a(i,{children:r(o,{variant:"body-small",children:[t,"% ",l]})})]}),a(i,{children:r(o,{variant:"body-small",children:[c," of ",s]})})]})};export{f as CurrentStatusCardRow};
2
- //# sourceMappingURL=CurrentStatusCardRow.esm.js.map
@@ -1,2 +0,0 @@
1
- import{jsx as i,jsxs as u}from"react/jsx-runtime";import{useRouteRef as pe}from"@backstage/core-plugin-api";import{EntityRefLink as he}from"@backstage/plugin-catalog-react";import{usePermission as K}from"@backstage/plugin-permission-react";import{makeStyles as fe,useTheme as ue,Button as ge,Typography as X,Tabs as ye,Tab as Y,Box as Z}from"@material-ui/core";import{soundcheckCheckReadPermission as ke,soundcheckCheckUpdatePermission as Ce,toEntityFilterQuery as M,combineEntityFilterQueries as Se}from"@spotify/backstage-plugin-soundcheck-common";import w from"lodash/isEqual";import{useMemo as a,useCallback as W,useState as v,useEffect as ee}from"react";import{useSearchParams as xe,useParams as be,useNavigate as ve}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useCheck as we}from"../../hooks/checks/useCheck.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as Ee}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCheckStatus as Ne}from"../../hooks/aggregations/useCheckStatus.esm.js";import{useLCPReporting as Ie}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Le}from"../../hooks/useLoadTimeReporting.esm.js";import{checkEditRouteRef as Re}from"../../routes.esm.js";import{toFilter as Te}from"../../utils/helpers.esm.js";import{CheckStatusBar as Fe}from"../CheckStatusBar/CheckStatusBar.esm.js";import"../CheckStatusBar/CheckStatusBarBUI.esm.js";import"@backstage/ui";import"lodash";import"../CustomCell/CustomCell.esm.js";import{FilterSidebar as De}from"../FilterSidebar/FilterSidebar.esm.js";import{StateFilter as Be}from"../FilterSidebar/StateFilter.esm.js";import{LoadingIndicator as Pe}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as te}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as Ae}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContent as je}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{parseNumberOfDays as Oe}from"../TechHealth/Filters/utils.esm.js";import{CheckEntitiesTable as Me}from"./CheckEntitiesTable/CheckEntitiesTable.esm.js";import{CheckStatusHistoryChart as We}from"./CheckStatusHistoryChart.esm.js";import{CheckStatusTable as ze}from"./CheckStatusTable.esm.js";import{ExemptionsTable as He}from"./ExemptionsTable.esm.js";function $e(t,y){for(const l of t.levels)for(const r of l.checks)if(r.id===y)return r;return null}const Qe=fe(t=>({root:{height:"100%"},pageContent:{display:"flex",minHeight:`calc(100vh - ${t.spacing(15)}px)`,borderTop:`1px solid ${t.palette.divider}`,height:"100%"},mainContentArea:{flex:1,display:"flex",flexDirection:"column",minWidth:0},editButton:{marginLeft:"auto"},statusContainer:{borderBottom:`1px solid ${t.palette.divider}`,padding:t.spacing(3,0,2,3)},statusCards:{display:"flex",gap:t.spacing(2)},currentStatusSection:{width:"325px",minWidth:"325px",flex:0,display:"flex",flexDirection:"column"},historicalStatusSection:{flex:1,flexShrink:1,flexGrow:1,flexBasis:"auto",minWidth:"150px",display:"flex",flexDirection:"column"},statusTitle:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${t.typography.h5.fontSize}px`,cursor:"default",marginBottom:t.spacing(2)},headerDescription:{fontSize:t.typography.body2.fontSize,margin:t.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},entitiesContainer:{padding:t.spacing(2,3,3,3)},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}}})),Ue=()=>{const[t,y]=xe(),{trackId:l,checkId:r}=be(),s=a(()=>t.getAll("states"),[t]),c=a(()=>t.getAll("owners"),[t]),m=a(()=>t.getAll("lifecycles"),[t]),d=a(()=>t.getAll("types"),[t]),p=a(()=>t.getAll("systems"),[t]),I=a(()=>Oe(t.get("numberOfDays")),[t]),z=a(()=>({routeName:"soundcheck-check-insights",additionalAttributes:{checkId:r||"",trackId:l||"",filtersApplied:c.length+m.length+d.length+p.length+s.length,ownersFilter:c.join(",")||"",lifecyclesFilter:m.join(",")||"",typesFilter:d.join(",")||"",systemsFilter:p.join(",")||"",statesFilter:s.join(",")||"",numberOfDays:I}}),[r,l,c,m,d,p,s,I]),{reportContentLoaded:H}=Le(z),{reporter:ie}=Ie(z),o=Qe(),L=W(()=>c.map(e=>({label:e,value:e})),[c]),[k,R]=v(m),[C,T]=v(L()),[S,F]=v(d),[x,D]=v(p),[b,B]=v(s);ee(()=>{T(L()),R(m),F(d),D(p),B(s)},[c,m,d,p,s,L]);const re=a(()=>{const e={owners:!w(C,c),lifecycles:!w(k,m),types:!w(S,d),systems:!w(x,p),states:!w(b,s)};return Object.values(e).some(Boolean)},[C,c,k,m,S,d,x,p,b,s]),oe=W(()=>{const e=new URLSearchParams(t);e.delete("lifecycles"),e.delete("owners"),e.delete("types"),e.delete("systems"),e.delete("states"),k.length>0&&k.forEach(n=>e.append("lifecycles",n)),C.length>0&&C.forEach(n=>e.append("owners",typeof n=="string"?n:n.value)),S.length>0&&S.forEach(n=>e.append("types",n)),x.length>0&&x.forEach(n=>e.append("systems",n)),b.length>0&&b.forEach(n=>e.append("states",n)),y(e)},[t,k,C,S,x,b,y]),se=W(()=>{R([]),T([]),F([]),D([]),B([]);const e=new URLSearchParams(t);e.delete("lifecycles"),e.delete("owners"),e.delete("types"),e.delete("systems"),e.delete("states"),y(e)},[t,y]),P=Te({lifecycles:m,owners:c,types:d,systems:p}),{data:g,isLoading:E}=Ee(l),{data:h,isLoading:N}=we(r),{loading:$,allowed:A}=K({permission:ke,resourceRef:r}),f=a(()=>h??g?.levels.flatMap(e=>e.checks).find(e=>e.id===r),[h,r,g?.levels]),{loading:Q,allowed:U}=K({permission:Ce,resourceRef:r}),V=ve(),G=pe(Re),ne=ue();let j;if(r)if(g){const e=M(g.filter),n=M($e(g,r)?.filter);j=Se(e,n)}else f?.filter&&(j=M(f.filter));const{data:q,isLoading:J}=Ne({checkId:r,trackId:l,filter:P,states:s?.length?s:void 0},!!r),ae=a(()=>h?.ownerEntityRef?i(he,{color:"inherit",entityRef:h.ownerEntityRef,className:o.ownerLink}):null,[h?.ownerEntityRef,o.ownerLink]),le=a(()=>!Q&&U&&h?.isEditable?i(ge,{className:o.editButton,variant:"contained",color:"primary",onClick:()=>{V(G({checkId:h.id}))},children:"Edit Check"}):null,[U,h?.id,h?.isEditable,o.editButton,G,Q,V]),ce=a(()=>f?.description?i(je,{className:o.headerDescription,content:f.description}):null,[o.headerDescription,f?.description]);Ae({title:f?.name??r??"Soundcheck",description:ce,customSubtitle:ae,sectionRight:le});const me=a(()=>!!f&&!$&&!A,[A,f,$]),[O,de]=v(0),_=ie?.getLCPValue();return ee(()=>{!N&&!J&&(!l||!E)&&H({lcp:_})},[N,J,E,l,H,_]),u("div",{children:[i(te,{entityName:"track",entityId:l,showNotFound:!!l&&!E&&!g}),i(te,{entityName:"check",entityId:r,showCannotView:me}),(N||!!l&&E)&&i(Pe,{}),!N&&A&&i("div",{className:o.root,children:u("div",{className:o.pageContent,children:[i(De,{trackFilter:j,stagedTypes:S,stagedLifecycles:k,stagedOwners:C,stagedSystems:x,onTypesChange:F,onLifecyclesChange:R,onOwnersChange:T,onSystemsChange:D,onApplyFilters:oe,onClearFilters:se,hasFilterChanges:re,children:i(Be,{states:s,stagedStates:b,onStagedStatesChange:B})}),u("div",{className:o.mainContentArea,children:[i("div",{className:o.statusContainer,children:u("div",{className:o.statusCards,children:[u("div",{className:o.currentStatusSection,children:[i(X,{className:o.statusTitle,children:"Current Status"}),i("div",{style:{width:"100%",height:30,display:"flex",alignItems:"flex-start",marginBottom:ne.spacing(2)},children:i(Fe,{status:q,states:s})}),i("div",{children:i(ze,{checkStatus:q,states:s})})]}),u("div",{className:o.historicalStatusSection,children:[i(X,{className:o.statusTitle,children:"Historical Status"}),i("div",{style:{height:"100%"},children:i(We,{checkId:r,trackId:l,filter:P,states:s,numberOfDays:I})})]})]})}),u("div",{className:o.entitiesContainer,children:[u(ye,{value:O,onChange:(e,n)=>de(n),indicatorColor:"primary",textColor:"primary","aria-label":"Entities and Exemptions Tabs",children:[i(Y,{label:"Entities"}),i(Y,{label:"Exemptions"})]}),i(Z,{hidden:O!==0,children:i(Me,{checkId:r,trackId:g?.id,filter:P,states:s})}),i(Z,{hidden:O!==1,children:i(He,{checkId:r})})]})]})]})})]})};export{Ue as CheckInsightsPage};
2
- //# sourceMappingURL=CheckInsightsPage.esm.js.map
@@ -1,2 +0,0 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Flex as n,Text as s}from"@backstage/ui";import{isNumber as c}from"lodash";import{CustomCell as i}from"../CustomCell/CustomCell.esm.js";import{CheckStatusBarBUI as m}from"./CheckStatusBarBUI.esm.js";const a=({passPercentage:r})=>{const o=c(r)?100-r:0;return e(i,{children:t(n,{align:"center",gap:"3",children:[t(s,{children:[r,"%"]}),e(m,{passedPercent:r,failedPercent:o,warningPercent:0})]})})};export{a as CheckStatusBarCell};
2
- //# sourceMappingURL=CheckStatusBarCell.esm.js.map
@@ -1,2 +0,0 @@
1
- import{useCallback as n}from"react";import u from"react-use/lib/useLocalStorage";const c=10,i=l=>{const[o,s]=u("soundcheck-previously-selected-groups",[]),p=n(r=>{const e=o??[],t=e.indexOf(r);t>-1&&e.splice(t,1),e.unshift(r),e.length>c&&e.pop(),s(e)},[o,s]);return{groupEntityRefs:o,addGroup:p}};export{i as usePreviousSelectedGroups};
2
- //# sourceMappingURL=usePreviousSelectedGroups.esm.js.map
@@ -1,2 +0,0 @@
1
- import{jsx as e}from"react/jsx-runtime";import{makeStyles as n}from"@material-ui/core";import l from"react-markdown";import i from"rehype-raw";import p from"remark-gfm";import{components as m}from"./ComponentRenders.esm.js";const t=["h1","h2","h3","h4","h5","h6","p","div","span","a","img","table","th","td","tr","thead","tbody","ol","li","ul","details","summary","br","hr","del","pre","code","strong","em","blockquote","input"],o=n(r=>({markdown:{"& table":{borderCollapse:"collapse",border:`1px solid ${r.palette.border}`},"& th, & td":{border:`1px solid ${r.palette.border}`,padding:r.spacing(1)},"& td":{wordBreak:"break-word",overflow:"hidden",verticalAlign:"middle",lineHeight:"1",margin:0,padding:r.spacing(3,2,3,2.5),borderBottom:0},"& th":{backgroundColor:r.palette.background.paper},"& tr":{backgroundColor:r.palette.background.paper},"& tr:nth-child(odd)":{backgroundColor:r.palette.background.default},"& a":{color:r.palette.link},"& img":{maxWidth:"100%"},"& ul":{marginTop:r.spacing(1)},"& ol":{marginTop:r.spacing(1)},"& pre":{background:`${r.palette.background.default} !important`},"& details":{width:"100%"},"& h1,h2,h3,h4,h5,h6":{marginBottom:r.spacing(1)}}}),{name:"SoundcheckMarkdownContent"}),c=({content:r,className:a=""})=>{const d=o();return e("div",{className:`${d.markdown} ${a}`.trim(),children:e(l,{components:m,remarkPlugins:[p],rehypePlugins:[i],allowedElements:t,children:r})})};export{t as ALLOWED_HTML_TAGS,c as SoundcheckMarkdownContent,o as useStyles};
2
- //# sourceMappingURL=SoundcheckMarkdownContent.esm.js.map
@@ -1,2 +0,0 @@
1
- function o(t){const a=(t??[]).reduce((e,{passed:s,failed:i,warning:d})=>(e.passed+=s,e.failed+=i,e.warning+=d,e),{passed:0,failed:0,warning:0}),r=t?.length??0,n=e=>Math.round(e/r*100)/100;return{passedPercent:n(a.passed),failedPercent:n(a.failed),warningPercent:n(a.warning),passedTotal:a.passed,failedTotal:a.failed,warningTotal:a.warning,total:new Intl.NumberFormat("en",{notation:"compact",compactDisplay:"short"}).format(r)}}export{o as useCheckStatusTotals};
2
- //# sourceMappingURL=useCheckStatusTotals.esm.js.map
@@ -1,2 +0,0 @@
1
- import{getPercentage as t}from"./formatters.esm.js";function g(r,n,a,e){return{passPercentage:t(r,e),failPercentage:t(n,e),warningPercentage:t(a,e)}}export{g as getCheckStatusPercentages};
2
- //# sourceMappingURL=checks.esm.js.map