@spotify/backstage-plugin-soundcheck 0.19.2 → 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 (290) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/config.d.ts +54 -1
  3. package/dist/alpha/integrations.esm.js +1 -1
  4. package/dist/alpha/pages.esm.js +1 -1
  5. package/dist/alpha.d.ts +2 -2
  6. package/dist/api.esm.js +1 -1
  7. package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
  8. package/dist/components/Badges/NoLevelBadge.esm.js +2 -2
  9. package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
  10. package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
  11. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
  12. package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
  13. package/dist/components/CampaignPage/CampaignPage.esm.js +2 -0
  14. package/dist/components/CampaignPage/CampaignPageBUI.esm.js +2 -0
  15. package/dist/components/CampaignPage/CampaignPageDeprecated.esm.js +2 -0
  16. package/dist/components/CampaignPage/CampaignStatusHistoryChart.esm.js +2 -0
  17. package/dist/components/CampaignPage/CampaignStatusHistoryTile.esm.js +2 -0
  18. package/dist/components/CampaignPage/CampaignStatusTile.esm.js +2 -0
  19. package/dist/components/CampaignPage/CampaignTechInsightsExplorerPage.esm.js +2 -0
  20. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js +2 -0
  21. package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
  22. package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +2 -0
  23. package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
  24. package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
  25. package/dist/components/Cards/CheckStatusCard/CheckStatusCard.esm.js +2 -0
  26. package/dist/components/Cards/DescriptionCard/DescriptionCard.esm.js +2 -0
  27. package/dist/components/Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js +2 -0
  28. package/dist/components/Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js +2 -0
  29. package/dist/components/Cards/TrackStatusCard/TrackStatusCard.esm.js +2 -0
  30. package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
  31. package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
  32. package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
  33. package/dist/components/CertificationSidebar/Check.esm.js +1 -1
  34. package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +1 -1
  35. package/dist/components/CertificationSidebar/LevelSummary.esm.js +1 -1
  36. package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
  37. package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
  38. package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
  39. package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +1 -1
  40. package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
  41. package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +1 -1
  42. package/dist/components/Charts/chartUtils.esm.js +1 -1
  43. package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
  44. package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
  45. package/dist/components/CheckDetails/JustificationDetails.esm.js +1 -1
  46. package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
  47. package/dist/components/CheckForm/CheckForm.esm.js +1 -1
  48. package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
  49. package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
  50. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
  51. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
  52. package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
  53. package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
  54. package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
  55. package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
  56. package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
  57. package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
  58. package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
  59. package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
  60. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +2 -0
  61. package/dist/components/CheckPage/CheckPage.esm.js +2 -0
  62. package/dist/components/CheckPage/CheckPageBUI.esm.js +2 -0
  63. package/dist/components/CheckPage/CheckPageDeprecated.esm.js +2 -0
  64. package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
  65. package/dist/components/CheckPage/CheckStatusHistoryChartBUI.esm.js +2 -0
  66. package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
  67. package/dist/components/CheckPage/CheckStatusTableBUI.esm.js +2 -0
  68. package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +2 -0
  69. package/dist/components/CheckPage/utils.esm.js +1 -1
  70. package/dist/components/CheckSelection/CheckPreview.esm.js +1 -1
  71. package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
  72. package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +1 -1
  73. package/dist/components/CheckStatusBar/CheckStatusBarBUI.esm.js +2 -0
  74. package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
  75. package/dist/components/CheckTemplatesPage/CheckTemplatesPageBUI.esm.js +2 -0
  76. package/dist/components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js +2 -0
  77. package/dist/components/CheckTemplatesPage/TemplateCategoryBUI.esm.js +2 -0
  78. package/dist/components/ChecksPage/CheckListPage/CheckListPageDeprecated.esm.js +2 -0
  79. package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
  80. package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +2 -0
  81. package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
  82. package/dist/components/ChecksTable/ChecksTable.esm.js +2 -0
  83. package/dist/components/ChipSelector/ChipSelector.esm.js +2 -0
  84. package/dist/components/CollapsablePanel/CollapsablePanel.esm.js +1 -1
  85. package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +1 -1
  86. package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +2 -0
  87. package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +2 -0
  88. package/dist/components/CollectorPage/CollectorFactTable.esm.js +1 -1
  89. package/dist/components/CollectorPage/CollectorFactTableBUI.esm.js +2 -0
  90. package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
  91. package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
  92. package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
  93. package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
  94. package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
  95. package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +1 -1
  96. package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js +1 -1
  97. package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
  98. package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js +1 -1
  99. package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js +1 -1
  100. package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
  101. package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
  102. package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
  103. package/dist/components/CollectorPage/Configurators/Jira/IssuesFactDetailsComponent.esm.js +2 -0
  104. package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
  105. package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +1 -1
  106. package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +1 -1
  107. package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
  108. package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
  109. package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
  110. package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
  111. package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
  112. package/dist/components/CollectorPage/DependantCheckCard.esm.js +2 -0
  113. package/dist/components/CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js +2 -0
  114. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
  115. package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
  116. package/dist/components/CollectorsPage/IntegrationLogoBUI.esm.js +2 -0
  117. package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +2 -0
  118. package/dist/components/CustomCell/CustomCell.esm.js +2 -0
  119. package/dist/components/DescriptionCell/DescriptionCell.esm.js +2 -0
  120. package/dist/components/DocLinkButton/DocLinkButton.esm.js +2 -0
  121. package/dist/components/EmptyState/EmptyStateBUI.esm.js +2 -0
  122. package/dist/components/EmptyState/EmptyStateNoCampaigns.esm.js +2 -0
  123. package/dist/components/EmptyState/EmptyStateNoChecks.esm.js +2 -0
  124. package/dist/components/EmptyState/EmptyStateNoTracks.esm.js +2 -0
  125. package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +1 -1
  126. package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
  127. package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
  128. package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
  129. package/dist/components/FactExplorer/FactExplorerDialogBUI.esm.js +2 -0
  130. package/dist/components/FactExplorer/useFactOptions.esm.js +1 -1
  131. package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
  132. package/dist/components/Filter/FilterComponent.esm.js +1 -1
  133. package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
  134. package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
  135. package/dist/components/FilterMenu/FilterMenu.esm.js +2 -0
  136. package/dist/components/FilterSidebar/FilterSidebar.esm.js +1 -1
  137. package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
  138. package/dist/components/FilterSidebar/useTrackFilterSidebar.esm.js +1 -1
  139. package/dist/components/FilterSidebar/util.esm.js +1 -1
  140. package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
  141. package/dist/components/FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js +1 -1
  142. package/dist/components/FormControlledAutocomplete/useLabelValueOptions.esm.js +2 -0
  143. package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +1 -1
  144. package/dist/components/FormattedPreview/FormattedPreview.esm.js +1 -1
  145. package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +1 -1
  146. package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +1 -1
  147. package/dist/components/GroupSelectorBUI/GroupSelectList.esm.js +2 -0
  148. package/dist/components/GroupSelectorBUI/GroupSelectionHistory.esm.js +2 -0
  149. package/dist/components/GroupSelectorBUI/GroupSelectorBUI.esm.js +2 -0
  150. package/dist/components/GroupSelectorBUI/GroupTag.esm.js +2 -0
  151. package/dist/components/GroupSelectorBUI/useGroupHistory.esm.js +2 -0
  152. package/dist/components/GroupSelectorBUI/usePreviousSelectedGroups.esm.js +2 -0
  153. package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +1 -1
  154. package/dist/components/HierarchicalTechInsightsPage/HierarchyTable.esm.js +1 -1
  155. package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +1 -1
  156. package/dist/components/HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js +1 -1
  157. package/dist/components/ImportExportPanel/ImportExportPanelBUI.esm.js +2 -0
  158. package/dist/components/ImportExportPanel/{ImportExportPanel.esm.js → ImportExportPanelDeprecated.esm.js} +2 -2
  159. package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
  160. package/dist/components/LevelsTable/CheckRowContent.esm.js +1 -1
  161. package/dist/components/LevelsTable/LevelsTable.esm.js +1 -1
  162. package/dist/components/ListPageCustomActions/ListPageCustomActions.esm.js +2 -0
  163. package/dist/components/LoadingTableSkeleton/LoadingTableSkeleton.esm.js +2 -0
  164. package/dist/components/Menus/SimpleMenu.esm.js +2 -0
  165. package/dist/components/Menus/useCampaignActions.esm.js +2 -0
  166. package/dist/components/Menus/useCheckActions.esm.js +2 -0
  167. package/dist/components/Menus/useTrackActions.esm.js +2 -0
  168. package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
  169. package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
  170. package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
  171. package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +1 -1
  172. package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
  173. package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
  174. package/dist/components/PageCustomActions/PageCustomActions.esm.js +2 -0
  175. package/dist/components/PassRateTable/PassRateTable.esm.js +1 -1
  176. package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -2
  177. package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
  178. package/dist/components/Router.esm.js +1 -1
  179. package/dist/components/RoutingPage/RoutingMainMenu.esm.js +2 -0
  180. package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
  181. package/dist/components/RoutingPage/RoutingPageBUI.esm.js +2 -0
  182. package/dist/components/RoutingPage/RoutingPageDeprecated.esm.js +2 -0
  183. package/dist/components/RoutingPage/RoutingPageWrapper.esm.js +2 -0
  184. package/dist/components/RoutingPage/RoutingPageWrapperBUI.esm.js +2 -0
  185. package/dist/components/RoutingPage/RoutingPageWrapperDeprecated.esm.js +2 -0
  186. package/dist/components/RoutingPage/index.esm.js +1 -1
  187. package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
  188. package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialog.esm.js +1 -1
  189. package/dist/components/SoundcheckHeader/SoundcheckHeaderBUI.esm.js +2 -0
  190. package/dist/components/SoundcheckMarkdownContent/ComponentRenders.esm.js +1 -1
  191. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js +2 -0
  192. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js +2 -0
  193. package/dist/components/StatusBar/StatusBar.esm.js +2 -0
  194. package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
  195. package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
  196. package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +2 -0
  197. package/dist/components/TeamStatusBar/TeamStatusBar.esm.js +1 -1
  198. package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
  199. package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
  200. package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
  201. package/dist/components/TechHealth/TechHealth.esm.js +1 -1
  202. package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
  203. package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
  204. package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
  205. package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
  206. package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
  207. package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
  208. package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
  209. package/dist/components/TechInsights/FilterControls.esm.js +1 -1
  210. package/dist/components/TechInsights/SummaryTiles.esm.js +1 -1
  211. package/dist/components/TechInsights/SummaryTilesBUI.esm.js +2 -0
  212. package/dist/components/TechInsights/TechInsightsPage.esm.js +1 -1
  213. package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +2 -0
  214. package/dist/components/TechInsights/TechInsightsPageDeprecated.esm.js +2 -0
  215. package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +2 -0
  216. package/dist/components/TechInsights/TechInsightsTableView.esm.js +1 -1
  217. package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +2 -0
  218. package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
  219. package/dist/components/TimePeriodBar/TimePeriodBar.esm.js +1 -1
  220. package/dist/components/TimePeriodBar/TimePeriodBarBUI.esm.js +2 -0
  221. package/dist/components/TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js +2 -0
  222. package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +2 -0
  223. package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
  224. package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
  225. package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
  226. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackBadgeTypeSelect/TrackBadgeTypeSelect.esm.js +1 -1
  227. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
  228. package/dist/components/TrackForm/TrackForm.esm.js +1 -1
  229. package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
  230. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
  231. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +2 -0
  232. package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
  233. package/dist/components/TrackPage/TrackHistoryChartBUI.esm.js +2 -0
  234. package/dist/components/TrackPage/TrackPage.esm.js +1 -1
  235. package/dist/components/TrackPage/TrackPageBUI.esm.js +2 -0
  236. package/dist/components/TrackPage/TrackPageDeprecated.esm.js +2 -0
  237. package/dist/components/TrackPage/TrackStatusBarBUI.esm.js +2 -0
  238. package/dist/components/TrackPage/TrackStatusTableBUI.esm.js +2 -0
  239. package/dist/components/TrackPage/TrackTechInsightsExplorerPage.esm.js +2 -0
  240. package/dist/components/TrackSelection/TrackSelection.esm.js +1 -1
  241. package/dist/components/TracksPage/TrackListPage/TrackListPageDeprecated.esm.js +2 -0
  242. package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
  243. package/dist/components/TracksPage/TracksListPageBUI.esm.js +2 -0
  244. package/dist/components/TracksPage/TracksPage.esm.js +1 -1
  245. package/dist/graphql/generated/index.esm.js +126 -117
  246. package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
  247. package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
  248. package/dist/hooks/catalog/useGetLimitedEntityRefs.esm.js +1 -1
  249. package/dist/hooks/catalog/useProfileImages.esm.js +2 -0
  250. package/dist/hooks/checks/useCheckDetails.esm.js +1 -1
  251. package/dist/hooks/entities/useTrackEntities.esm.js +1 -1
  252. package/dist/hooks/filters/useFilters.esm.js +2 -0
  253. package/dist/hooks/graphqlKeys.esm.js +1 -1
  254. package/dist/hooks/groups/useAllGroups.esm.js +1 -1
  255. package/dist/hooks/groups/useGroupOptions.esm.js +1 -1
  256. package/dist/hooks/groups/useUsersGroupClaims.esm.js +1 -1
  257. package/dist/hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js +1 -1
  258. package/dist/hooks/heirarchy/useGroupHierarchy.esm.js +1 -1
  259. package/dist/hooks/tracks/useRecertifyTrack.esm.js +2 -0
  260. package/dist/hooks/tracks/useTracksApplicableToGroup.esm.js +1 -1
  261. package/dist/hooks/useConfirmationModal.esm.js +1 -1
  262. package/dist/hooks/useLoadTimeReporting.esm.js +2 -0
  263. package/dist/hooks/usePagination.esm.js +2 -0
  264. package/dist/hooks/useSearchName.esm.js +2 -0
  265. package/dist/hooks/useSortTableLocalStorage.esm.js +2 -0
  266. package/dist/routes.esm.js +1 -1
  267. package/dist/utils/charts.esm.js +1 -1
  268. package/dist/utils/formStyles.esm.js +1 -1
  269. package/dist/utils/formatters.esm.js +1 -1
  270. package/dist/utils/helpers.esm.js +1 -1
  271. package/dist/utils/lcpReporting.esm.js +1 -1
  272. package/dist/utils/time.esm.js +1 -1
  273. package/package.json +25 -33
  274. package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +0 -2
  275. package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +0 -2
  276. package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +0 -2
  277. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +0 -2
  278. package/dist/components/CheckPage/CheckInsightsPage.esm.js +0 -2
  279. package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +0 -2
  280. package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +0 -2
  281. package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +0 -2
  282. package/dist/components/GroupHierarchySelector/usePreviousSelectedGroups.esm.js +0 -2
  283. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js +0 -2
  284. package/dist/components/TechInsights/TechInsightsCardsView.esm.js +0 -2
  285. package/dist/components/TechInsights/TrackStatusCard.esm.js +0 -2
  286. package/dist/components/TechInsights/ViewModeControls.esm.js +0 -2
  287. package/dist/components/TechInsights/convertToCommonTrackStatus.esm.js +0 -2
  288. package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +0 -2
  289. /package/dist/components/{CampaignInsightsPage → CampaignPage}/DaysRemainingTile.esm.js +0 -0
  290. /package/dist/{components/GroupHierarchySelector → utils}/getAllOwnedEntityCount.esm.js +0 -0
@@ -1,2 +1,2 @@
1
- import{jsxs as n,Fragment as r,jsx as e}from"react/jsx-runtime";import{Link as y}from"@backstage/core-components";import{useRouteRef as u}from"@backstage/core-plugin-api";import{TableCell as s,Box as c,Typography as d}from"@material-ui/core";import{makeStyles as N}from"@material-ui/core/styles";import{Skeleton as o}from"@material-ui/lab";import"react-circular-progressbar/dist/styles.css";import{useSearchParams as w}from"react-router-dom";import{trackCheckDetailsRouteRef as S}from"../../routes.esm.js";import{compactNumberFormatter as m}from"../../utils/formatters.esm.js";import{CheckStatusBar as B}from"../CheckStatusBar/CheckStatusBar.esm.js";import{PassPercentageProgressbar as C}from"../PassingPercentProgressbar/PassPercentageProgressbar.esm.js";const R=N(t=>({checkContent:{display:"flex",alignItems:"center",gap:t.spacing(2),width:"100%",paddingTop:t.spacing(1),paddingBottom:t.spacing(1)},checkStatus:{display:"flex",alignItems:"center",gap:t.spacing(1),minWidth:"fit-content"},checkName:{display:"flex",alignItems:"center"},checkNameLink:{color:"inherit",textDecoration:"none","&:hover":{textDecoration:"none"}},passingText:{color:t.palette.text.secondary,display:"flex",flexDirection:"column",alignItems:"flex-end",lineHeight:1.2,minWidth:"40px"},categoryBarSection:{display:"flex",flexDirection:"column",alignItems:"flex-end",width:"100%",justifyContent:"flex-end"},categoryBar:{"& .MuiBox-root > div":{height:"8px"},width:"100%"},skeleton:{backgroundColor:t.palette.action.hover},passingTextCell:{width:"100px",paddingRight:0,paddingTop:t.spacing(1),paddingBottom:t.spacing(1)}})),I=({check:t,status:a,theme:h,trackId:g})=>{const i=R(),x=u(S),[p]=w(),l=a?a.numberOfEntities-a.notApplicable-a.exempt:0,f=l>0?Math.round((a?.passed??0)/l*100):0,k=`${x({trackId:g,checkId:t.id})}${p.toString()?`?${p.toString()}`:""}`;return n(r,{children:[e(s,{style:{width:"120px",paddingRight:0},children:e(c,{className:i.checkStatus,children:a?e(C,{passPercentage:f}):n(r,{children:[e(o,{variant:"circle",width:24,height:24,className:i.skeleton}),e(o,{width:45,height:24,className:i.skeleton})]})})}),e(s,{style:{width:"300px",paddingRight:0},children:e(c,{className:i.checkName,children:e(y,{to:k,className:i.checkNameLink,children:e(d,{children:t.name})})})}),e(s,{style:{width:"250px",paddingRight:0},children:e(c,{className:i.categoryBarSection,children:a?e(c,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:e(B,{status:a,className:i.categoryBar})}):e(o,{variant:"rect",width:250,height:8,className:i.skeleton})})}),e(s,{style:{width:"100px",paddingRight:0,paddingTop:h.spacing(1),paddingBottom:h.spacing(1)},children:e(c,{className:i.passingText,children:a?n(r,{children:[n(d,{variant:"caption",children:[m(a.passed)," of"," ",m(l)]}),e(d,{variant:"caption",children:"passing"})]}):n(r,{children:[e(o,{width:60,height:16,className:i.skeleton}),e(o,{width:40,height:16,className:i.skeleton})]})})})]})};export{I as CheckRowContent};
1
+ import{jsxs as n,Fragment as r,jsx as e}from"react/jsx-runtime";import{Link as y}from"@backstage/core-components";import{useRouteRef as u}from"@backstage/core-plugin-api";import{TableCell as s,Box as c,Typography as d}from"@material-ui/core";import{makeStyles as N}from"@material-ui/core/styles";import{Skeleton as o}from"@material-ui/lab";import"react-circular-progressbar/dist/styles.css";import{useSearchParams as w}from"react-router-dom";import{trackCheckDetailsRouteRef as S}from"../../routes.esm.js";import{compactNumberFormatter as m}from"../../utils/formatters.esm.js";import{CheckStatusBar as B}from"../CheckStatusBar/CheckStatusBar.esm.js";import"../CheckStatusBar/CheckStatusBarBUI.esm.js";import{PassPercentageProgressbar as C}from"../PassingPercentProgressbar/PassPercentageProgressbar.esm.js";const R=N(t=>({checkContent:{display:"flex",alignItems:"center",gap:t.spacing(2),width:"100%",paddingTop:t.spacing(1),paddingBottom:t.spacing(1)},checkStatus:{display:"flex",alignItems:"center",gap:t.spacing(1),minWidth:"fit-content"},checkName:{display:"flex",alignItems:"center"},checkNameLink:{color:"inherit",textDecoration:"none","&:hover":{textDecoration:"none"}},passingText:{color:t.palette.text.secondary,display:"flex",flexDirection:"column",alignItems:"flex-end",lineHeight:1.2,minWidth:"40px"},categoryBarSection:{display:"flex",flexDirection:"column",alignItems:"flex-end",width:"100%",justifyContent:"flex-end"},categoryBar:{"& .MuiBox-root > div":{height:"8px"},width:"100%"},skeleton:{backgroundColor:t.palette.action.hover},passingTextCell:{width:"100px",paddingRight:0,paddingTop:t.spacing(1),paddingBottom:t.spacing(1)}})),I=({check:t,status:a,theme:h,trackId:g})=>{const i=R(),x=u(S),[p]=w(),l=a?a.numberOfEntities-a.notApplicable-a.exempt:0,f=l>0?Math.round((a?.passed??0)/l*100):0,k=`${x({trackId:g,checkId:t.id})}${p.toString()?`?${p.toString()}`:""}`;return n(r,{children:[e(s,{style:{width:"120px",paddingRight:0},children:e(c,{className:i.checkStatus,children:a?e(C,{passPercentage:f}):n(r,{children:[e(o,{variant:"circle",width:24,height:24,className:i.skeleton}),e(o,{width:45,height:24,className:i.skeleton})]})})}),e(s,{style:{width:"300px",paddingRight:0},children:e(c,{className:i.checkName,children:e(y,{to:k,className:i.checkNameLink,children:e(d,{children:t.name})})})}),e(s,{style:{width:"250px",paddingRight:0},children:e(c,{className:i.categoryBarSection,children:a?e(c,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:e(B,{status:a,className:i.categoryBar})}):e(o,{variant:"rect",width:250,height:8,className:i.skeleton})})}),e(s,{style:{width:"100px",paddingRight:0,paddingTop:h.spacing(1),paddingBottom:h.spacing(1)},children:e(c,{className:i.passingText,children:a?n(r,{children:[n(d,{variant:"caption",children:[m(a.passed)," of"," ",m(l)]}),e(d,{variant:"caption",children:"passing"})]}):n(r,{children:[e(o,{width:60,height:16,className:i.skeleton}),e(o,{width:40,height:16,className:i.skeleton})]})})})]})};export{I as CheckRowContent};
2
2
  //# sourceMappingURL=CheckRowContent.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e,Fragment as d,jsxs as s}from"react/jsx-runtime";import{TableRow as r,useTheme as k,TableContainer as C,Table as h,TableBody as m,TableCell as p,Box as x,IconButton as y,Typography as T,Collapse as L}from"@material-ui/core";import{makeStyles as b}from"@material-ui/core/styles";import w from"@material-ui/icons/KeyboardArrowDown";import N from"@material-ui/icons/KeyboardArrowUp";import{memo as S,useState as I,useCallback as R}from"react";import{CheckRowContent as B}from"./CheckRowContent.esm.js";const g=b(l=>({root:{width:"100%"},levelCell:{display:"flex",alignItems:"flex-start",width:"100%",padding:l.spacing(1)},levelContent:{display:"flex",flexDirection:"column",gap:l.spacing(2),width:"100%"},levelHeader:{display:"flex",alignItems:"center"},levelName:{fontSize:"1rem",fontWeight:500,lineHeight:1,marginLeft:l.spacing(1)},headerCell:{fontWeight:500,color:l.palette.text.secondary,padding:l.spacing(2)}})),v=S(({checks:l,checkStatuses:a,theme:c,trackId:t})=>e(d,{children:l.map(n=>{const i=a?.find(o=>o.id===n.id);return e(r,{children:e(B,{check:n,status:i,theme:c,trackId:t})})})}));v.displayName="CheckRows";const f=({level:l,children:a,hideLevel:c})=>{const t=g(),[n,i]=I(!0),o=R(()=>{i(u=>!u)},[]);return s(d,{children:[!c&&e(r,{children:e(p,{colSpan:4,className:t.levelCell,children:s(x,{className:t.levelHeader,children:[e(y,{size:"small",onClick:o,children:n?e(N,{}):e(w,{})}),e(T,{className:t.levelName,children:l.name??`Level ${l.ordinal}`})]})})}),e(r,{children:e(p,{style:{paddingTop:0,paddingBottom:0},children:e(L,{in:n,timeout:"auto",unmountOnExit:!0,children:e(h,{size:"small",padding:"none",children:e(m,{children:a})})})})})]})},z=({track:l,checkStatuses:a,hideLevel:c})=>{const t=g(),n=k();return l.levels?.length?e(C,{component:"div",className:t.root,children:e(h,{children:e(m,{children:l.levels.map(i=>e(f,{level:i,hideLevel:c,children:e(v,{checks:i.checks,checkStatuses:a,theme:n,trackId:l.id})},i.ordinal))})})}):null};export{f as LevelRow,z as LevelsTable};
1
+ import{jsx as e,Fragment as d,jsxs as s}from"react/jsx-runtime";import{TableRow as o,useTheme as k,TableContainer as C,Table as h,TableBody as m,TableCell as p,Box as x,IconButton as y,Typography as T,Collapse as L}from"@material-ui/core";import{makeStyles as b}from"@material-ui/core/styles";import w from"@material-ui/icons/KeyboardArrowDown";import N from"@material-ui/icons/KeyboardArrowUp";import{memo as S,useState as I,useCallback as R}from"react";import{CheckRowContent as B}from"./CheckRowContent.esm.js";const g=b(l=>({root:{width:"100%"},levelCell:{display:"flex",alignItems:"flex-start",width:"100%",padding:l.spacing(1)},levelContent:{display:"flex",flexDirection:"column",gap:l.spacing(2),width:"100%"},levelHeader:{display:"flex",alignItems:"center"},levelName:{fontSize:"1rem",fontWeight:500,lineHeight:1,marginLeft:l.spacing(1)},headerCell:{fontWeight:500,color:l.palette.text.secondary,padding:l.spacing(2)}})),v=S(({checks:l,checkStatuses:a,theme:c,trackId:n})=>e(d,{children:l.map(t=>{const i=a?.find(r=>r.id===t.id);return e(o,{children:e(B,{check:t,status:i,theme:c,trackId:n})},t.id)})}));v.displayName="CheckRows";const f=({level:l,children:a,hideLevel:c})=>{const n=g(),[t,i]=I(!0),r=R(()=>{i(u=>!u)},[]);return s(d,{children:[!c&&e(o,{children:e(p,{colSpan:4,className:n.levelCell,children:s(x,{className:n.levelHeader,children:[e(y,{size:"small",onClick:r,children:t?e(N,{}):e(w,{})}),e(T,{className:n.levelName,children:l.name??`Level ${l.ordinal}`})]})})}),e(o,{children:e(p,{style:{paddingTop:0,paddingBottom:0},children:e(L,{in:t,timeout:"auto",unmountOnExit:!0,children:e(h,{size:"small",padding:"none",children:e(m,{children:a})})})})})]})},z=({track:l,checkStatuses:a,hideLevel:c})=>{const n=g(),t=k();return l.levels?.length?e(C,{component:"div",className:n.root,children:e(h,{children:e(m,{children:l.levels.map(i=>e(f,{level:i,hideLevel:c,children:e(v,{checks:i.checks,checkStatuses:a,theme:t,trackId:l.id})},i.ordinal))})})}):null};export{f as LevelRow,z as LevelsTable};
2
2
  //# sourceMappingURL=LevelsTable.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as s,jsx as e}from"react/jsx-runtime";import{Box as c,SearchField as l,Button as m}from"@backstage/ui";import{makeStyles as p}from"@material-ui/core";import{RiAddLine as u}from"@remixicon/react";import{useNavigate as d}from"react-router-dom";const f=p(()=>({actionBar:{gap:"var(--bui-space-2)",display:"flex",alignItems:"center",justifyContent:"end"}})),h=({searchValue:a,setSearchValue:r,createHref:t,canCreate:i})=>{const o=f(),n=d();return s(c,{className:o.actionBar,children:[e(l,{value:a,onChange:r,"aria-label":"Search Name"}),e(m,{isDisabled:!i,onClick:()=>n(t),iconStart:e(u,{}),children:"Create"})]})};export{h as ListPageCustomActions};
2
+ //# sourceMappingURL=ListPageCustomActions.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{Box as i,Skeleton as a}from"@backstage/ui";import{makeStyles as l}from"@material-ui/core";const s=l(o=>({skeletonContainer:{gridGap:o.spacing(2),display:"flex",flexDirection:"column",margin:o.spacing(2,0)}})),m=({rowCount:o=5,rowHeight:t=32})=>{const n=s();return e(i,{className:n.skeletonContainer,children:[...Array(o).keys()].map((c,r)=>e(a,{height:t,width:"100%"},r))})};export{m as LoadingTableSkeleton};
2
+ //# sourceMappingURL=LoadingTableSkeleton.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as m,jsx as o}from"react/jsx-runtime";import{MenuTrigger as l,ButtonIcon as c,Menu as s,MenuItem as d}from"@backstage/ui";import{makeStyles as u}from"@material-ui/core";import{RiMore2Line as p}from"@remixicon/react";const b=u(()=>({menuButton:{boxShadow:"none !important",backgroundColor:"inherit !important"}})),M=({placement:t,menuActions:i,disabled:e,label:r})=>{const a=b();return m(l,{children:[o(c,{isDisabled:e,variant:"secondary",className:a.menuButton,icon:o(p,{})}),o(s,{placement:t,"aria-label":r,children:i.map(n=>o(d,{iconStart:n.iconStart,onClick:n.onClick,id:n.id,children:n.label},n.id))})]})};export{M as SimpleMenu};
2
+ //# sourceMappingURL=SimpleMenu.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{useRouteRef as y}from"@backstage/core-plugin-api";import{usePermission as w}from"@backstage/plugin-permission-react";import{RiEditBoxLine as A,RiArchiveLine as L,RiDeleteBinLine as b}from"@remixicon/react";import{soundcheckCampaignUpdatePermission as x,soundcheckCampaignDeletePermission as D}from"@spotify/backstage-plugin-soundcheck-common";import{useCallback as a,useMemo as E}from"react";import{useNavigate as M}from"react-router-dom";import{v4 as P}from"uuid";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{useArchiveCampaign as S}from"../../hooks/campaigns/useArchiveCampaign.esm.js";import{useDeleteCampaign as T}from"../../hooks/campaigns/useDeleteCampaign.esm.js";import{useCreateTrack as U}from"../../hooks/tracks/useCreateTrack.esm.js";import{useConfirmationModal as B}from"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{campaignEditRouteRef as N}from"../../routes.esm.js";import{useArchiveConfirmationModal as $}from"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";const j=i=>{const n=y(N),m=M(),s=i?.archived,{showModal:d}=B(),{showArchiveModal:c}=$(),{mutate:p}=U(),{mutate:l}=T(),{mutate:u}=S(),{loading:f,allowed:h}=w({permission:x,resourceRef:i?.id}),{loading:g,allowed:v}=w({permission:D,resourceRef:i?.id}),C=a(async()=>{i?.id&&await d({title:"Delete Campaign",message:`Are you sure you want to delete campaign ${i.name??i.id}?`})&&l(i.id)},[d,l,i?.id,i?.name]),R=a(()=>{if(!i)return;const{track:e}=i,r={id:P(),ownerEntityRef:e.ownerEntityRef,description:e.description??"",name:e.name,documentationURL:e.documentationURL,type:"standard",levels:e.levels.map(o=>({checks:o.checks,description:o.description,name:o.name,ordinal:o.ordinal})),filter:e.filter??void 0,exclude:e.exclude??void 0,badgeType:"status",draft:e.draft??!1};p(r)},[i,p]),k=a(async()=>{if(!i?.id)return;const{saveTrack:e,confirmed:r}=await c({title:"Archive Campaign",message:`Are you sure you want to archive campaign ${i.name??i.id}?`});r&&(e&&R(),u(i.id))},[u,i?.id,i?.name,R,c]);return E(()=>{if(!i?.id)return[];const e=[];return!f&&h&&e.push({label:"Edit",id:"edit",onClick:()=>m(n({campaignId:i.id})),iconStart:t(A,{})}),!g&&v&&(s||e.push({label:"Archive",id:"archive",onClick:k,iconStart:t(L,{})}),e.push({label:"Delete",id:"delete",onClick:C,iconStart:t(b,{})})),e},[i?.id,n,v,h,k,C,s,g,f,m])};export{j as useCampaignActions};
2
+ //# sourceMappingURL=useCampaignActions.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as i}from"react/jsx-runtime";import{useRouteRef as u}from"@backstage/core-plugin-api";import{usePermission as p}from"@backstage/plugin-permission-react";import{RiExportLine as f,RiEditBoxLine as h,RiDeleteBinLine as k}from"@remixicon/react";import{soundcheckCheckUpdatePermission as C,soundcheckCheckDeletePermission as R}from"@spotify/backstage-plugin-soundcheck-common";import{useCallback as x,useMemo as E}from"react";import{useNavigate as b}from"react-router-dom";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{useConfirmationModal as w}from"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useDeleteCheck as D}from"../../hooks/checks/useDeleteCheck.esm.js";import{checkEditRouteRef as g}from"../../routes.esm.js";import{exportCheck as y}from"../../utils/export.esm.js";const L=e=>{const t=b(),r=u(g),{loading:m,allowed:s}=p({permission:C,resourceRef:e?.id}),{loading:n,allowed:c}=p({permission:R,resourceRef:e?.id}),{showModal:a}=w(),{mutate:l}=D(),d=x(async()=>{e?.id&&await a({title:"Delete Check",message:`Are you sure you want to delete the check '${e.name??e.id}'?`})&&l(e.id)},[a,e?.name,l,e?.id]);return E(()=>{if(!e)return[];const o=[{label:"Export",id:"export",onClick:()=>y(e),iconStart:i(f,{})}];return e.isEditable&&!m&&s&&o.push({label:"Edit",id:"edit",onClick:()=>t(r({checkId:e.id})),iconStart:i(h,{})}),e.isEditable&&!n&&c&&o.push({label:"Delete",id:"delete",onClick:d,iconStart:i(k,{})}),o},[c,s,e,r,d,n,m,t])};export{L as useCheckActions};
2
+ //# sourceMappingURL=useCheckActions.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{useRouteRef as R,useApi as g,configApiRef as b}from"@backstage/core-plugin-api";import{usePermission as y}from"@backstage/plugin-permission-react";import{RiExportLine as w,RiEditBoxLine as T,RiDeleteBinLine as x,RiRefreshLine as C}from"@remixicon/react";import{soundcheckTrackDeletePermission as D,soundcheckTrackUpdatePermission as E}from"@spotify/backstage-plugin-soundcheck-common";import{useCallback as h,useMemo as A}from"react";import{useNavigate as I}from"react-router-dom";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{useConfirmationModal as L}from"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useDeleteTrack as M}from"../../hooks/tracks/useDeleteTrack.esm.js";import{useRecertifyTrack as N}from"../../hooks/tracks/useRecertifyTrack.esm.js";import{trackEditRouteRef as O}from"../../routes.esm.js";import{exportTrack as S}from"../../utils/export.esm.js";const B=e=>{const{loading:s,allowed:c}=y({permission:D,resourceRef:e?.id}),{loading:a,allowed:n}=y({permission:E,resourceRef:e?.id}),{showModal:t}=L(),{mutate:m}=N(),{mutate:l}=M(),d=I(),u=R(O),p=g(b).getOptionalConfig("soundcheck.certifications.history");let i=p?.getOptionalBoolean("enable")?p?.getOptionalNumber("retentionTimeInDays")??120:1;i=Math.min(i,365);const f=h(async()=>{e?.id&&await t({title:"Recertify Track",message:`Are you sure you want to recertify track ${e.name??e.id}? It will erase existing certification data, which cannot be undone. New data will be generated for the past ${i} day(s), reflecting the track's current configuration. This process may take some time, you will be notified upon completion.`})&&m({trackId:e.id,numberOfDays:i})},[t,e?.id,e?.name,m,i]),k=h(async()=>{e?.id&&await t({title:"Delete Track",message:`Are you sure you want to delete track ${e.name??e.id}?`})&&l(e.id)},[t,e?.id,e?.name,l]);return A(()=>{if(!e)return[];const o=[{label:"Export",id:"export",onClick:()=>S(e),iconStart:r(w,{})}];return e.isEditable&&!a&&n&&o.push({label:"Edit",id:"edit",onClick:()=>d(u({trackId:e.id})),iconStart:r(T,{})}),e.isEditable&&!s&&c&&o.push({label:"Delete",id:"delete",onClick:k,iconStart:r(x,{})}),!a&&n&&o.push({label:"Recertify",id:"recertify",onClick:f,iconStart:r(C,{})}),o},[c,n,k,f,s,a,d,e,u])};export{B as useTrackActions};
2
+ //# sourceMappingURL=useTrackActions.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Page as n,Header as m}from"@backstage/core-components";import{makeStyles as c}from"@material-ui/core";import{SpotifyLicenseBanner as s}from"@spotify/backstage-plugin-core";import{UserProvider as a}from"../../contexts/UserProvider.esm.js";import d from"../../hooks/useConfirmationModal.esm.js";import{useLCPReporting as p}from"../../hooks/useLCPReporting.esm.js";import{soundcheckBackend as v,invalidLicenseMessage as l}from"../../utils/license.esm.js";import{SoundcheckQueryClientProvider as f}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContent as h}from"./OverviewPageContent.esm.js";const g=c(r=>({overviewContainer:{padding:r.spacing(1,3)}})),u=r=>{const{title:i="Soundcheck"}=r,o=g();return p({routeName:"soundcheck-overview",additionalAttributes:{pageTitle:i}}),e(f,{children:e(a,{children:e(d,{children:t(n,{themeId:"website",children:[e(s,{backend:v,invalidLicenseMessage:l}),e(m,{title:i}),e("div",{className:o.overviewContainer,children:e(h,{})})]})})})})};export{u as OverviewPage};
1
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import{Page as t,Header as c}from"@backstage/core-components";import{makeStyles as m}from"@material-ui/core";import{SpotifyLicenseBanner as s}from"@spotify/backstage-plugin-core";import{UserProvider as d}from"../../contexts/UserProvider.esm.js";import a from"../../hooks/useConfirmationModal.esm.js";import{soundcheckBackend as l,invalidLicenseMessage as p}from"../../utils/license.esm.js";import{SoundcheckQueryClientProvider as v}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContent as f}from"./OverviewPageContent.esm.js";const h=m(r=>({overviewContainer:{padding:r.spacing(1,3)}})),g=r=>{const{title:i="Soundcheck"}=r,o=h();return e(v,{children:e(d,{children:e(a,{children:n(t,{themeId:"website",children:[e(s,{backend:l,invalidLicenseMessage:p}),e(c,{title:i}),e("div",{className:o.overviewContainer,children:e(f,{})})]})})})})};export{g as OverviewPage};
2
2
  //# sourceMappingURL=OverviewPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as L}from"react/jsx-runtime";import{makeStyles as G,Grid as m}from"@material-ui/core";import{createContext as D,useState as t,useEffect as $,useCallback as j}from"react";import{useSearchParams as H}from"react-router-dom";import N from"react-use/lib/useDebounce";import{useFacetsForOwner as B}from"../../hooks/facets/useFacetsForOwner.esm.js";import{LoadingIndicator as R}from"../LoadingIndicator/LoadingIndicator.esm.js";import{OverviewTable as z}from"../OverviewTable/OverviewTable.esm.js";import{RowHeights as A}from"../OverviewTable/resultsTableUtils.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as I}from"../SoundcheckHeader/useHeader.esm.js";import{OverviewPageHeader as T}from"./OverviewPageHeader.esm.js";const X=G(e=>({tableContainer:{padding:0,backgroundColor:"transparent",paddingBottom:A.paginationControl},campaignsGrid:{margin:`0 0 ${e.spacing(3)}px`,border:`1px solid ${e.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:e.spacing(2),gap:e.spacing(2)},campaignsLink:{textAlign:"center",margin:`${e.spacing(1)}rem 0 ${e.spacing(1)}`},tableLoading:{backgroundColor:e.palette.background.paper,padding:e.spacing(6)},noPadding:{padding:0},accordion:{boxShadow:"none"}})),b=D({searchValue:"",updateSearchValue:e=>{},debouncedSearchValue:"",updateDebouncedSearchValue:e=>{},pivot:!1,updatePivot:e=>{}}),q=({isFixedGroup:e=!1})=>{const[a,l]=H(),{group:g,kind:n,type:d}=Object.fromEntries(a.entries());I();const[i,u]=t(void 0),[k,x]=t(void 0),[y,C]=t(),[p,S]=t(""),[w,f]=t(""),[P,V]=t(!1);N(()=>{f(p)},800,[p]),$(()=>{(i?.kind!==n||i?.type!==d)&&u({kind:n,type:d})},[n,d,i]);const{data:h,isLoading:v}=B(g),E=k||y,O=j((o,c,F)=>{o&&(u({kind:o,type:c}),c?(a.set("kind",o),a.set("type",c)):(a.delete("type"),a.set("kind",o)),l(a,{replace:F}))},[a,l]),s=X();return r(b.Provider,{value:{searchValue:p,updateSearchValue:S,debouncedSearchValue:w,updateDebouncedSearchValue:f,pivot:P,updatePivot:V},children:L(m,{container:!0,spacing:0,children:[r(m,{item:!0,xs:12,className:s.noPadding,children:r(T,{unfilteredFacets:h,kind:i?.kind,type:i?.type,onChange:O,setError:C,isLoading:v,isFixedGroup:e})}),r(m,{item:!0,xs:12,className:s.tableContainer,children:v?r("div",{className:s.tableLoading,children:r(R,{size:80})}):r(z,{facets:h,kind:i?.kind,type:i?.type,setError:x,hasError:E,ownerEntityRef:g,isFixedGroup:e})})]})})};export{q as OverviewPageContent,b as OverviewPageContext};
1
+ import{jsx as a,jsxs as T}from"react/jsx-runtime";import{makeStyles as $,Grid as u}from"@material-ui/core";import{createContext as j,useMemo as H,useState as i,useEffect as y,useCallback as A}from"react";import{useSearchParams as z}from"react-router-dom";import B from"react-use/lib/useDebounce";import{useFacetsForOwner as I}from"../../hooks/facets/useFacetsForOwner.esm.js";import{useLCPReporting as K}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as M}from"../../hooks/useLoadTimeReporting.esm.js";import{LoadingIndicator as U}from"../LoadingIndicator/LoadingIndicator.esm.js";import{OverviewTable as q}from"../OverviewTable/OverviewTable.esm.js";import{RowHeights as J}from"../OverviewTable/resultsTableUtils.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as Q}from"../SoundcheckHeader/useHeader.esm.js";import{OverviewPageHeader as W}from"./OverviewPageHeader.esm.js";const X=$(e=>({tableContainer:{padding:0,backgroundColor:"transparent",paddingBottom:J.paginationControl},campaignsGrid:{margin:`0 0 ${e.spacing(3)}px`,border:`1px solid ${e.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:e.spacing(2),gap:e.spacing(2)},campaignsLink:{textAlign:"center",margin:`${e.spacing(1)}rem 0 ${e.spacing(1)}`},tableLoading:{backgroundColor:e.palette.background.paper,padding:e.spacing(6)},noPadding:{padding:0},accordion:{boxShadow:"none"}})),C=j({searchValue:"",updateSearchValue:e=>{},debouncedSearchValue:"",updateDebouncedSearchValue:e=>{},pivot:!1,updatePivot:e=>{}}),Y=({isFixedGroup:e=!1})=>{const[r,g]=z(),{group:d,kind:o,type:n}=Object.fromEntries(r.entries()),f=H(()=>({routeName:"soundcheck-overview",additionalAttributes:{group:d||"",selectedKind:o||"",selectedType:n||""}}),[d,o,n]),{reportContentLoaded:h}=M(f),{reporter:P}=K(f);Q();const[t,v]=i(void 0),[S,L]=i(void 0),[w,V]=i(),[c,E]=i(""),[O,b]=i(""),[F,G]=i(!1);B(()=>{b(c)},800,[c]),y(()=>{(t?.kind!==o||t?.type!==n)&&v({kind:o,type:n})},[o,n,t]);const{data:k,isLoading:p}=I(d),R=S||w,D=A((s,l,N)=>{s&&(v({kind:s,type:l}),l?(r.set("kind",s),r.set("type",l)):(r.delete("type"),r.set("kind",s)),g(r,{replace:N}))},[r,g]),m=X(),x=P?.getLCPValue();return y(()=>{p||h({lcp:x})},[p,h,x]),a(C.Provider,{value:{searchValue:c,updateSearchValue:E,debouncedSearchValue:O,updateDebouncedSearchValue:b,pivot:F,updatePivot:G},children:T(u,{container:!0,spacing:0,children:[a(u,{item:!0,xs:12,className:m.noPadding,children:a(W,{unfilteredFacets:k,kind:t?.kind,type:t?.type,onChange:D,setError:V,isLoading:p,isFixedGroup:e})}),a(u,{item:!0,xs:12,className:m.tableContainer,children:p?a("div",{className:m.tableLoading,children:a(U,{size:80})}):a(q,{facets:k,kind:t?.kind,type:t?.type,setError:L,hasError:R,ownerEntityRef:d,isFixedGroup:e})})]})})};export{Y as OverviewPageContent,C as OverviewPageContext};
2
2
  //# sourceMappingURL=OverviewPageContent.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as p}from"react/jsx-runtime";import{parseEntityRef as s}from"@backstage/catalog-model";import{humanizeEntityRef as d}from"@backstage/plugin-catalog-react";import{makeStyles as h,Grid as c,Typography as m}from"@material-ui/core";import{SoundcheckMarkdownContent as f}from"../../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{StyledTooltip as y}from"../../StyledTooltip/StyledTooltip.esm.js";const l=h(t=>({headerWrapper:{marginTop:t.spacing(.5)},entityRefName:{fontWeight:"bold"},iconWrapper:{padding:t.spacing(1,.5),display:"flex",alignItems:"center",justifyContent:"center"}})),g=({check:{name:t,description:i},icon:r,entityRef:n})=>{const o=l(),a=s(n);return p(c,{children:[p(c,{container:!0,direction:"row",spacing:1,wrap:"nowrap",children:[e("div",{className:o.iconWrapper,children:r}),e(m,{variant:"h6",className:o.headerWrapper,noWrap:!0,children:t})]}),e(c,{item:!0,children:e(m,{variant:"subtitle2",className:o.entityRefName,children:d(a,{defaultKind:a.kind})})}),e(f,{content:i})]})},k=({children:t,check:i,icon:r,entityRef:n})=>e(y,{arrow:!0,title:e(g,{check:i,icon:r,entityRef:n}),enterDelay:150,placement:"top",children:t});export{k as CheckCellTooltip,l as useStyles};
1
+ import{jsx as e,jsxs as p}from"react/jsx-runtime";import{parseEntityRef as d}from"@backstage/catalog-model";import{humanizeEntityRef as s}from"@backstage/plugin-catalog-react";import{makeStyles as h,Grid as c,Typography as m}from"@material-ui/core";import{SoundcheckMarkdownContentDeprecated as f}from"../../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import{StyledTooltip as y}from"../../StyledTooltip/StyledTooltip.esm.js";const l=h(t=>({headerWrapper:{marginTop:t.spacing(.5)},entityRefName:{fontWeight:"bold"},iconWrapper:{padding:t.spacing(1,.5),display:"flex",alignItems:"center",justifyContent:"center"}})),g=({check:{name:t,description:i},icon:r,entityRef:n})=>{const o=l(),a=d(n);return p(c,{children:[p(c,{container:!0,direction:"row",spacing:1,wrap:"nowrap",children:[e("div",{className:o.iconWrapper,children:r}),e(m,{variant:"h6",className:o.headerWrapper,noWrap:!0,children:t})]}),e(c,{item:!0,children:e(m,{variant:"subtitle2",className:o.entityRefName,children:s(a,{defaultKind:a.kind})})}),e(f,{content:i})]})},k=({children:t,check:i,icon:r,entityRef:n})=>e(y,{arrow:!0,title:e(g,{check:i,icon:r,entityRef:n}),enterDelay:150,placement:"top",children:t});export{k as CheckCellTooltip,l as useStyles};
2
2
  //# sourceMappingURL=CheckCellTooltip.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as l,jsxs as p,Fragment as o}from"react/jsx-runtime";import{makeStyles as s,Typography as d}from"@material-ui/core";import{SoundcheckMarkdownContent as h}from"../../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{StyledTooltip as m}from"../../StyledTooltip/StyledTooltip.esm.js";import{CellWidths as k}from"../resultsTableUtils.esm.js";const f=s(e=>({cellWrapper:{display:"flex",alignItems:"flex-end",height:"100%"},cellText:{textOrientation:"mixed",transform:`translateX(${k.checkResult*.4}px) rotate(-55deg)`,transformOrigin:"center left",wordBreak:"keep-all",fontWeight:"bold","&:hover":{cursor:"default"}},cellLink:{overflow:"hidden",textOverflow:"ellipsis",width:"125px",display:"inline-block"},trackCell:{fontSize:e.typography.subtitle1.fontSize},levelCell:{fontSize:e.typography.subtitle2.fontSize},checkCell:{fontWeight:"normal"}}));var c=(e=>(e.track="track",e.level="level",e.check="check",e))(c||{});const v=({label:e,description:r,cellType:i})=>{const t=f(),n={track:t.trackCell,level:t.levelCell,check:t.checkCell},a=e?l(m,{title:p(o,{children:[l(d,{variant:"subtitle1",component:"div",children:e}),r&&l(h,{content:r})]}),arrow:!0,placement:"left-end",children:l("div",{className:`${t.cellLink} ${i?n[i]:""}`,children:e})}):l(o,{});return l("div",{className:t.cellWrapper,children:l("div",{className:t.cellText,children:a})})};export{v as CheckLabelCell,c as CheckLabelCellType};
1
+ import{jsx as l,jsxs as p,Fragment as o}from"react/jsx-runtime";import{makeStyles as d,Typography as m}from"@material-ui/core";import{SoundcheckMarkdownContentDeprecated as s}from"../../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import{StyledTooltip as h}from"../../StyledTooltip/StyledTooltip.esm.js";import{CellWidths as k}from"../resultsTableUtils.esm.js";const f=d(e=>({cellWrapper:{display:"flex",alignItems:"flex-end",height:"100%"},cellText:{textOrientation:"mixed",transform:`translateX(${k.checkResult*.4}px) rotate(-55deg)`,transformOrigin:"center left",wordBreak:"keep-all",fontWeight:"bold","&:hover":{cursor:"default"}},cellLink:{overflow:"hidden",textOverflow:"ellipsis",width:"125px",display:"inline-block"},trackCell:{fontSize:e.typography.subtitle1.fontSize},levelCell:{fontSize:e.typography.subtitle2.fontSize},checkCell:{fontWeight:"normal"}}));var c=(e=>(e.track="track",e.level="level",e.check="check",e))(c||{});const v=({label:e,description:r,cellType:i})=>{const t=f(),n={track:t.trackCell,level:t.levelCell,check:t.checkCell},a=e?l(h,{title:p(o,{children:[l(m,{variant:"subtitle1",component:"div",children:e}),r&&l(s,{content:r})]}),arrow:!0,placement:"left-end",children:l("div",{className:`${t.cellLink} ${i?n[i]:""}`,children:e})}):l(o,{});return l("div",{className:t.cellWrapper,children:l("div",{className:t.cellText,children:a})})};export{v as CheckLabelCell,c as CheckLabelCellType};
2
2
  //# sourceMappingURL=CheckLabelCell.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{makeStyles as f}from"@material-ui/core";import{AlertPanel as m}from"../AlertPanel/AlertPanel.esm.js";import{NoCertifications as d,NoEntities as y}from"../EmptyState/EmptyState.esm.js";import{OverviewTableContent as u}from"./OverviewTableContent.esm.js";const w=f(()=>({scrollContainer:{overflow:"auto",paddingBottom:0,width:"100%"}})),E=({facets:t,ownerEntityRef:r,hasError:o,kind:n,type:s,setError:l,isFixedGroup:a})=>{const p=w();if(o)return e(m,{severity:"error",title:o.message});const i="Use the groups drop-down list to select another group.";return t&&(t.types?.length??0)>0?t.types?.find(c=>c.count>0)?e("div",{className:p.scrollContainer,children:e(u,{facets:t,kind:n,type:s,setError:l,ownerEntityRef:r,hasError:o})}):e(d,{ownerEntityRef:r,selectGroupHint:i}):e(y,{ownerEntityRef:r,selectGroupHint:a?void 0:i})};export{E as OverviewTable};
1
+ import{jsx as t}from"react/jsx-runtime";import{makeStyles as c}from"@material-ui/core";import{AlertPanel as f}from"../AlertPanel/AlertPanel.esm.js";import{NoCertifications as d,NoEntities as y}from"../EmptyState/EmptyState.esm.js";import"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@remixicon/react";import"@spotify/backstage-plugin-soundcheck-common";import"react-router-dom";import"../../routes.esm.js";import{OverviewTableContent as u}from"./OverviewTableContent.esm.js";const w=c(()=>({scrollContainer:{overflow:"auto",paddingBottom:0,width:"100%"}})),E=({facets:r,ownerEntityRef:e,hasError:o,kind:n,type:s,setError:p,isFixedGroup:m})=>{const l=w();if(o)return t(f,{severity:"error",title:o.message});const i="Use the groups drop-down list to select another group.";return r&&(r.types?.length??0)>0?r.types?.find(a=>a.count>0)?t("div",{className:l.scrollContainer,children:t(u,{facets:r,kind:n,type:s,setError:p,ownerEntityRef:e,hasError:o})}):t(d,{ownerEntityRef:e,selectGroupHint:i}):t(y,{ownerEntityRef:e,selectGroupHint:m?void 0:i})};export{E as OverviewTable};
2
2
  //# sourceMappingURL=OverviewTable.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as P,Fragment as D}from"react/jsx-runtime";import{useRouteRef as M}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{makeStyles as B,Grid as I}from"@material-ui/core";import{useContext as J,useEffect as y,useState as K,useRef as Q,useLayoutEffect as U,useMemo as X}from"react";import{VariableSizeGrid as Y}from"react-window";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useTrackOverviewForOwner as Z}from"../../hooks/certifications/useTrackOverviewForOwner.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{EmptyState as _}from"../EmptyState/EmptyState.esm.js";import"../OverviewPage/OverviewPage.esm.js";import"@spotify/backstage-plugin-core";import"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContext as ee}from"../OverviewPage/OverviewPageContent.esm.js";import"../Pagination/Pagination.esm.js";import{useCursorPagination as te,CursorPagination as re}from"../Pagination/CursorPagination.esm.js";import{cellRenderer as oe}from"./Cell/cellRenderer.esm.js";import{OverviewTableSkeleton as ie}from"./OverviewTableSkeleton.esm.js";import{ResultsTableHeader as ne}from"./ResultsTableHeader.esm.js";import{generateRowsPivoted as ae,generateRows as le,generateHeaderRowPivoted as se,generateHeaderRow as ue}from"./ResultsTableRow.esm.js";import{RowHeights as E,CellWidths as S,calculateTableWidth as me}from"./resultsTableUtils.esm.js";import ce from"./useWindowDimensions.esm.js";const W=25,pe=B(i=>({table:{backgroundColor:i.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left",overflow:"auto"},tableContainer:{backgroundColor:i.palette.background.paper}})),de=({setError:i,kind:c,type:l,ownerEntityRef:t})=>{const{cursor:x,pageSize:R,...p}=te({defaultPageSize:W,label:"entitiesPerPage"}),{debouncedSearchValue:s,pivot:u}=J(ee),{data:e,isLoading:d,isError:b}=Z(t,{kind:c,type:l==="all"?null:l},R,x,s);y(()=>{p.setCursor(""),p.setCurrentPage(0)},[s]);const k=pe(),g=M(q);y(()=>{i?.(b?new Error("Error loading track overview"):void 0)},[b,i]);const[H,z]=K(0),{height:T}=ce(),n=Q(null);U(()=>{e&&t&&n?.current&&z(n.current.clientWidth?n.current.clientWidth-16:100)},[n,e,t]);const{rows:h,headerRow:f,tableWidth:w,entityRefsWithPadding:N,getRowHeight:O,columnCount:V}=X(()=>{if(d||!e||!t)return{};const{tracks:a,entityRefs:r}=e;if(!r)return{};const m=r.length>=25?r:[...r,...Array.from({length:25-r.length},()=>{})],C=u?ae(a,r,g):le(a,m,g),v=C[0]?.cells?.length??m.length+1,G=u?se(a):ue(m),L=me(v-1)+60;return{rows:C,headerRow:G,tableWidth:L,entityRefsWithPadding:m,getRowHeight:j=>C[j]?.height??E.check,columnCount:v}},[e,g,d,t,u]);if(d)return o(ie,{});if(!e||!t)return null;const{totalCount:$,endCursor:A,prevCursor:F}=e;return!f||!w||!N||!h?.length?s?o(_,{title:"No Entities Found",description:`No entities found with name containing: '${s}'`}):null:P("div",{ref:n,children:[o(I,{"aria-label":`Check results for ${l??c}`,item:!0,xs:12,className:k.tableContainer,children:H>0&&P(D,{children:[o(ne,{headerRow:f,gridWidth:w}),o(Y,{className:k.table,columnCount:V,columnWidth:a=>a===0?S.trackTitle:S.checkResult,rowCount:h.length,rowHeight:O,height:T*.7-E.paginationControl-f.height,width:w,children:oe(h)},u?"entityView":"checkView")]})},`${c}|${l??""}`),o(re,{...p,totalCount:$,defaultPageSize:W,endCursor:A,prevCursor:F,pageSize:R,labelRowsPerPage:"Entities per page:"})]})};export{de as ResultsTable};
1
+ import{jsx as o,jsxs as P,Fragment as D}from"react/jsx-runtime";import{useRouteRef as M}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{makeStyles as B,Grid as I}from"@material-ui/core";import{useContext as J,useEffect as y,useState as K,useRef as Q,useLayoutEffect as U,useMemo as X}from"react";import{VariableSizeGrid as Y}from"react-window";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useTrackOverviewForOwner as Z}from"../../hooks/certifications/useTrackOverviewForOwner.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{EmptyState as _}from"../EmptyState/EmptyState.esm.js";import"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"../../routes.esm.js";import"../OverviewPage/OverviewPage.esm.js";import"@spotify/backstage-plugin-core";import"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContext as ee}from"../OverviewPage/OverviewPageContent.esm.js";import"../Pagination/Pagination.esm.js";import{useCursorPagination as te,CursorPagination as re}from"../Pagination/CursorPagination.esm.js";import{cellRenderer as oe}from"./Cell/cellRenderer.esm.js";import{OverviewTableSkeleton as ie}from"./OverviewTableSkeleton.esm.js";import{ResultsTableHeader as ne}from"./ResultsTableHeader.esm.js";import{generateRowsPivoted as ae,generateRows as le,generateHeaderRowPivoted as me,generateHeaderRow as se}from"./ResultsTableRow.esm.js";import{RowHeights as E,CellWidths as S,calculateTableWidth as ue}from"./resultsTableUtils.esm.js";import pe from"./useWindowDimensions.esm.js";const W=25,ce=B(i=>({table:{backgroundColor:i.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left",overflow:"auto"},tableContainer:{backgroundColor:i.palette.background.paper}})),de=({setError:i,kind:p,type:l,ownerEntityRef:t})=>{const{cursor:x,pageSize:R,...c}=te({defaultPageSize:W,label:"entitiesPerPage"}),{debouncedSearchValue:m,pivot:s}=J(ee),{data:e,isLoading:d,isError:b}=Z(t,{kind:p,type:l==="all"?null:l},R,x,m);y(()=>{c.setCursor(""),c.setCurrentPage(0)},[m]);const k=ce(),g=M(q);y(()=>{i?.(b?new Error("Error loading track overview"):void 0)},[b,i]);const[H,z]=K(0),{height:T}=pe(),n=Q(null);U(()=>{e&&t&&n?.current&&z(n.current.clientWidth?n.current.clientWidth-16:100)},[n,e,t]);const{rows:h,headerRow:f,tableWidth:w,entityRefsWithPadding:N,getRowHeight:O,columnCount:V}=X(()=>{if(d||!e||!t)return{};const{tracks:a,entityRefs:r}=e;if(!r)return{};const u=r.length>=25?r:[...r,...Array.from({length:25-r.length},()=>{})],C=s?ae(a,r,g):le(a,u,g),v=C[0]?.cells?.length??u.length+1,G=s?me(a):se(u),L=ue(v-1)+60;return{rows:C,headerRow:G,tableWidth:L,entityRefsWithPadding:u,getRowHeight:j=>C[j]?.height??E.check,columnCount:v}},[e,g,d,t,s]);if(d)return o(ie,{});if(!e||!t)return null;const{totalCount:$,endCursor:A,prevCursor:F}=e;return!f||!w||!N||!h?.length?m?o(_,{title:"No Entities Found",description:`No entities found with name containing: '${m}'`}):null:P("div",{ref:n,children:[o(I,{"aria-label":`Check results for ${l??p}`,item:!0,xs:12,className:k.tableContainer,children:H>0&&P(D,{children:[o(ne,{headerRow:f,gridWidth:w}),o(Y,{className:k.table,columnCount:V,columnWidth:a=>a===0?S.trackTitle:S.checkResult,rowCount:h.length,rowHeight:O,height:T*.7-E.paginationControl-f.height,width:w,children:oe(h)},s?"entityView":"checkView")]})},`${p}|${l??""}`),o(re,{...c,totalCount:$,defaultPageSize:W,endCursor:A,prevCursor:F,pageSize:R,labelRowsPerPage:"Entities per page:"})]})};export{de as ResultsTable};
2
2
  //# sourceMappingURL=ResultsTable.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as r,jsx as e}from"react/jsx-runtime";import{Flex as m,TagGroup as p,Tag as d,Box as g,SearchField as h}from"@backstage/ui";import{makeStyles as f}from"@material-ui/core";import{FilterMenu as b}from"../FilterMenu/FilterMenu.esm.js";const S=f(()=>({buttonGroup:{gap:"var(--bui-space-2)",display:"flex",alignItems:"center"},tagGroup:{"@global":{".bui-TagList":{justifyContent:"end !important"}}}})),v=({searchValue:s,setSearchValue:o,filters:i,selected:c,setSelected:n,selectedTags:a,onRemoveTag:u})=>{const l=S();return r(m,{align:"center",gap:"2",children:[a.length>0&&e(p,{"aria-label":"Selected Tags",items:a,onRemove:u,className:l.tagGroup,children:a.map(t=>e(d,{id:t.value,children:t.label},t.value))}),r(g,{className:l.buttonGroup,children:[e(b,{filters:i,selected:c,setSelected:n}),e(h,{value:s,onChange:o,"aria-label":"Search",style:{width:"auto"},placeholder:"Search"})]})]})};export{v as PageCustomActions};
2
+ //# sourceMappingURL=PageCustomActions.esm.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as r,jsxs as p}from"react/jsx-runtime";import{Paper as y,Table as R,TableHead as S,TableRow as h,TableCell as u,TableBody as $,TablePagination as H}from"@material-ui/core";import{makeStyles as N}from"@material-ui/core/styles";import{useState as b,useEffect as j}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useGetChecks as L}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{Loading as z}from"../TechHealth/Loading/Loading.esm.js";const B=N(o=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${o.palette.divider}`,borderRadius:o.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),D=({data:o,columns:d,showsCheckData:n})=>{const l=B(),[s,a]=b(0),[t,f]=b(10),{data:g,isLoading:C}=L({ids:n?o.map(e=>e.id):[]});if(j(()=>{a(0)},[o.length]),C)return r(z,{});const w=(e,i)=>{a(i)},P=e=>{f(+e.target.value),a(0)},m=s*t,T=m+t,k=e=>`Cannot view detail: Check exists in results data only. That is, a check
1
+ import{jsx as r,jsxs as p}from"react/jsx-runtime";import{Paper as y,Table as R,TableHead as S,TableRow as h,TableCell as u,TableBody as $,TablePagination as H}from"@material-ui/core";import{makeStyles as N}from"@material-ui/core/styles";import{useState as b,useEffect as j}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useGetChecks as L}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{Loading as z}from"../TechHealth/Loading/Loading.esm.js";const B=N(o=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${o.palette.divider}`,borderRadius:o.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),D=({data:o,columns:d,showsCheckData:n})=>{const l=B(),[s,a]=b(0),[t,f]=b(10),{data:g,isLoading:C}=L({ids:n?o.map(e=>e.id):[]});if(j(()=>{a(0)},[o.length]),C)return r(z,{});const w=(e,i)=>{a(i)},P=e=>{f(+e.target.value),a(0)},m=s*t,T=m+t,k=e=>`Cannot view detail: Check exists in results data only. That is, a check
2
2
  with the id '${e}' is not defined in any yaml files nor was such a
3
3
  check created through Soundcheck's UI.`,v=(e,i)=>{if(!e.renderCell)return i[e.id];if(e.id==="action"&&n){const c=g?.edges.find(x=>x.node.id===i.id)!==void 0;return e.renderCell(i,!c,c?void 0:k(i.id))}return e.renderCell(i)};return p(y,{className:l.paper,children:[p(R,{size:"small",children:[r(S,{children:r(h,{children:d.map(e=>r(u,{className:l.tableHeaderCell,children:e.label},`header-${e.id}`))})}),r($,{children:o.slice(m,T).map(e=>r(h,{children:d.map(i=>r(u,{children:v(i,e)},`cell-${i.id}`))},e.id))})]}),r(H,{rowsPerPageOptions:[10,25,50],component:"div",count:o.length,rowsPerPage:t,page:s,onPageChange:w,onRowsPerPageChange:P})]})};export{D as PassRateTable};
4
4
  //# sourceMappingURL=PassRateTable.esm.js.map
@@ -1,3 +1,3 @@
1
- import{jsxs as c,jsx as e}from"react/jsx-runtime";import{Content as A}from"@backstage/core-components";import{useApi as d,featureFlagsApiRef as C,configApiRef as P,useRouteRef as a}from"@backstage/core-plugin-api";import{usePermission as v}from"@backstage/plugin-permission-react";import{Typography as m,Grid as t,Accordion as w,AccordionSummary as S,AccordionDetails as H}from"@material-ui/core";import l from"@material-ui/icons/BarChart";import I from"@material-ui/icons/CheckCircle";import T from"@material-ui/icons/Computer";import z from"@material-ui/icons/ExpandMore";import j from"@material-ui/icons/Flag";import D from"@material-ui/icons/Timeline";import{soundcheckCollectorReadPermission as Q}from"@spotify/backstage-plugin-soundcheck-common";import{useLCPReporting as W}from"../../hooks/useLCPReporting.esm.js";import{integrationsPageRouteRef as q,tracksPageRouteRef as F,checksPageRouteRef as O,campaignsPageRouteRef as B,techHealthRouteRef as G,techInsightsPageRouteRef as L}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as V}from"../SoundcheckHeader/useHeader.esm.js";import{QuickstartCardBase as r}from"./QuickstartCardBase.esm.js";import{getQuickstartStyles as E}from"./styles.esm.js";import{WelcomeHelpSection as J}from"./WelcomeHelpSection.esm.js";const K=()=>{const o=E();V({title:"Welcome to Soundcheck!",description:"Soundcheck lets you define and monitor the tech health of your organization. What insights do you need today?"}),W({routeName:"soundcheck-quickstart"});const i=d(C),h=d(P).getOptionalStringArray("soundcheck.flags"),n=i.getRegisteredFlags(),{loading:u,allowed:p}=v({permission:Q}),g=(!n.find(s=>s.name==="soundcheck-enable-collectors")||i.isActive("soundcheck-enable-collectors"))&&!u&&p,f=(!n.find(s=>s.name==="soundcheck-enable-tech-health")||i.isActive("soundcheck-enable-tech-health"))&&!h?.includes("soundcheck-disable-tech-health"),k=a(q),R=a(F),y=a(O),x=a(B),b=a(G),N=a(L);return c(A,{className:o.introTitle,children:[e(m,{className:o.welcomeSection,children:"This is your starting point for exploring and managing your tech health initiatives. Here are some key areas to get you started:"}),c(t,{container:!0,direction:"row",justifyContent:"flex-start","aria-label":"getting-started-items",className:o.grid,spacing:2,children:[e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(r,{header:"Tech Insights",routeRef:N,icon:e(l,{}),description:`Visualize and analyze your technology landscape across teams and
2
- components.`})}),f&&e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(r,{header:"Tech Health",routeRef:b,icon:e(l,{}),description:"Detailed query and analysis tool across teams, components, tracks, and checks."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(r,{header:"Campaigns",routeRef:x,icon:e(j,{}),description:"Organize and manage coordinated initiatives across your organization."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(r,{header:"Checks",routeRef:y,icon:e(I,{}),description:"Checks are comparisons between defined acceptable fact values and actual fact values."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(r,{header:"Tracks",routeRef:R,icon:e(D,{}),description:"Tracks encourage alignment to architectural best practices and standards."})}),g&&e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(r,{header:"Integrations",routeRef:k,icon:e(T,{}),description:"Integrations collect raw data about your components for use in checks and tracks."})})]}),c(w,{className:o.accordion,children:[e(S,{expandIcon:e(z,{}),"aria-controls":"howdoi-content",id:"howdoi-header",children:e(m,{variant:"h5",children:"How Do I...?"})}),e(H,{children:e(J,{})})]})]})};export{K as QuickstartPage};
1
+ import{jsxs as n,jsx as e}from"react/jsx-runtime";import{Content as T}from"@backstage/core-components";import{useApi as u,featureFlagsApiRef as v,configApiRef as S,useRouteRef as r}from"@backstage/core-plugin-api";import{usePermission as z}from"@backstage/plugin-permission-react";import{Typography as p,Grid as t,Accordion as H,AccordionSummary as I,AccordionDetails as L}from"@material-ui/core";import f from"@material-ui/icons/BarChart";import j from"@material-ui/icons/CheckCircle";import D from"@material-ui/icons/Computer";import Q from"@material-ui/icons/ExpandMore";import V from"@material-ui/icons/Flag";import W from"@material-ui/icons/Timeline";import{soundcheckCollectorReadPermission as q}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as E,useEffect as F}from"react";import{useLCPReporting as G}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as O}from"../../hooks/useLoadTimeReporting.esm.js";import{integrationsPageRouteRef as B,tracksPageRouteRef as M,checksPageRouteRef as J,campaignsPageRouteRef as K,techHealthRouteRef as U,techInsightsPageRouteRef as X}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as Y}from"../SoundcheckHeader/useHeader.esm.js";import{QuickstartCardBase as a}from"./QuickstartCardBase.esm.js";import{getQuickstartStyles as Z}from"./styles.esm.js";import{WelcomeHelpSection as _}from"./WelcomeHelpSection.esm.js";const $=()=>{const d=E(()=>({routeName:"soundcheck-quickstart"}),[]),{reportContentLoaded:m}=O(d),{reporter:g}=G(d),o=Z();Y({title:"Welcome to Soundcheck!",description:"Soundcheck lets you define and monitor the tech health of your organization. What insights do you need today?"});const i=u(v),R=u(S).getOptionalStringArray("soundcheck.flags"),l=i.getRegisteredFlags(),{loading:s,allowed:k}=z({permission:q}),y=(!l.find(c=>c.name==="soundcheck-enable-collectors")||i.isActive("soundcheck-enable-collectors"))&&!s&&k,x=(!l.find(c=>c.name==="soundcheck-enable-tech-health")||i.isActive("soundcheck-enable-tech-health"))&&!R?.includes("soundcheck-disable-tech-health"),N=r(B),b=r(M),C=r(J),P=r(K),A=r(U),w=r(X),h=g?.getLCPValue();return F(()=>{s||m({lcp:h})},[s,m,h]),n(T,{className:o.introTitle,children:[e(p,{className:o.welcomeSection,children:"This is your starting point for exploring and managing your tech health initiatives. Here are some key areas to get you started:"}),n(t,{container:!0,direction:"row",justifyContent:"flex-start","aria-label":"getting-started-items",className:o.grid,spacing:2,children:[e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Tech Insights",routeRef:w,icon:e(f,{}),description:`Visualize and analyze your technology landscape across teams and
2
+ components.`})}),x&&e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Tech Health",routeRef:A,icon:e(f,{}),description:"Detailed query and analysis tool across teams, components, tracks, and checks."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Campaigns",routeRef:P,icon:e(V,{}),description:"Organize and manage coordinated initiatives across your organization."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Checks",routeRef:C,icon:e(j,{}),description:"Checks are comparisons between defined acceptable fact values and actual fact values."})}),e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Tracks",routeRef:b,icon:e(W,{}),description:"Tracks encourage alignment to architectural best practices and standards."})}),y&&e(t,{item:!0,xs:12,sm:12,md:6,lg:4,className:o.cards,children:e(a,{header:"Integrations",routeRef:N,icon:e(D,{}),description:"Integrations collect raw data about your components for use in checks and tracks."})})]}),n(H,{className:o.accordion,children:[e(I,{expandIcon:e(Q,{}),"aria-controls":"howdoi-content",id:"howdoi-header",children:e(p,{variant:"h5",children:"How Do I...?"})}),e(L,{children:e(_,{})})]})]})};export{$ as QuickstartPage};
3
3
  //# sourceMappingURL=QuickstartPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as i}from"react/jsx-runtime";import{makeStyles as n,LinearProgress as p}from"@material-ui/core";import{useState as a}from"react";import s from"react-use/lib/useDebounce";import d from"react-use/lib/useUnmount";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import{useIsFetching as c}from"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{FadeIn as f}from"../FadeIn/FadeIn.esm.js";const l=n(t=>({indicator:{position:"absolute",width:"100%",zIndex:t.zIndex.speedDial}})),h=()=>{const t=c(),r=l(),[o,e]=a(!!t),[u,m]=s(()=>{e(!!t)},250,[t]);return d(m),o?i(f,{children:i("div",{className:r.indicator,children:i(p,{variant:"indeterminate","data-testid":"refetching-indicator"})})}):null};export{h as RefetchingIndicator};
1
+ import{jsx as i}from"react/jsx-runtime";import{makeStyles as n,LinearProgress as p}from"@material-ui/core";import{useState as a}from"react";import s from"react-use/lib/useDebounce";import d from"react-use/lib/useUnmount";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import{useIsFetching as c}from"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{FadeIn as f}from"../FadeIn/FadeIn.esm.js";const l=n(t=>({indicator:{position:"absolute",width:"100%",zIndex:t.zIndex.speedDial}})),h=()=>{const t=c(),r=l(),[o,e]=a(!!t),[u,m]=s(()=>{e(!!t)},250,[t]);return d(m),o?i(f,{children:i("div",{className:r.indicator,children:i(p,{variant:"indeterminate","data-testid":"refetching-indicator"})})}):null};export{h as RefetchingIndicator};
2
2
  //# sourceMappingURL=RefetchingIndicator.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as s,Fragment as d}from"react/jsx-runtime";import{useRouteRef as p,useRouteRefParams as h}from"@backstage/core-plugin-api";import{useEntity as m}from"@backstage/plugin-catalog-react";import{SecretsContextProvider as L}from"@backstage/plugin-scaffolder-react";import{Routes as N,Route as l,Navigate as f}from"react-router-dom";import{ResultState as T}from"../graphql/generated/index.esm.js";import{useAllCertifications as S}from"../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../api.esm.js";import"../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as P}from"../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../hooks/useSoundcheckAlert.esm.js";import"../hooks/useConfirmationModal.esm.js";import{usePlaylists as C}from"../hooks/playlists/usePlaylists.esm.js";import{certificationPlaylistTrackCheckRouteRef as x,certificationPlaylistTrackRouteRef as k,certificationPlaylistRouteRef as R,certificationTrackRouteRef as y,certificationRouteRef as g}from"../routes.esm.js";import{EntityContent as n}from"./EntityContent/EntityContent.esm.js";const b=()=>{const{entity:i}=m(),e=p(R),a=p(y),{isLoading:r,data:o}=C(i),{isLoading:c,data:A}=S(i);if(r||c)return null;const u=o?.[0]?.id,I=A?.[0]?.track.id;return!u&&!I?null:t(f,{to:u?e({playlistId:u}):a({trackId:I}),replace:!0})},v=()=>{const{entity:i}=m(),{playlistId:e}=h(R),a=p(k),{data:r}=C(i),o=r?.find(c=>c.id===e)?.trackIds[0];return o?t(f,{to:a({playlistId:e,trackId:o}),replace:!0}):null},F=i=>(i?.levels?.flatMap(e=>e.checks??[])??[]).filter(e=>e.result!==T.Exempt&&e.result!==T.NotApplicable)[0],E=()=>{const{entity:i}=m(),{playlistId:e,trackId:a}=h(k),{data:r}=P(i,a),o=p(x),c=F(r)?.id??r?.levels[0]?.checks[0]?.id;return c?t(f,{to:o({playlistId:e,trackId:a,checkId:c}),replace:!0}):null},j=()=>{const{entity:i}=m(),{trackId:e}=h(y),a=p(g),{data:r}=P(i,e),o=F(r)?.id??r?.levels?.find(c=>c.checks.length>0)?.checks[0].id;return o?t(f,{to:a({trackId:e,checkId:o}),replace:!0}):null},D=()=>t(L,{children:s(N,{children:[t(l,{path:x.path,element:t(n,{})}),t(l,{path:k.path,element:s(d,{children:[t(n,{}),t(E,{})]})}),t(l,{path:R.path,element:s(d,{children:[t(n,{}),t(v,{})]})}),t(l,{path:y.path,element:s(d,{children:[t(n,{}),t(j,{})]})}),t(l,{path:g.path,element:t(n,{})}),t(l,{path:"/",element:s(d,{children:[t(n,{}),t(b,{})]})})]})});export{j as RedirectToFirstCheck,v as RedirectToFirstPlaylistTrack,E as RedirectToFirstPlaylistTrackCheck,D as Router};
1
+ import{jsx as t,jsxs as s,Fragment as d}from"react/jsx-runtime";import{useRouteRef as p,useRouteRefParams as h}from"@backstage/core-plugin-api";import{useEntity as m}from"@backstage/plugin-catalog-react";import{SecretsContextProvider as L}from"@backstage/plugin-scaffolder-react";import{Routes as N,Route as l,Navigate as f}from"react-router-dom";import{ResultState as T}from"../graphql/generated/index.esm.js";import{useAllCertifications as S}from"../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../api.esm.js";import"../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as C}from"../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../hooks/useSoundcheckAlert.esm.js";import"../hooks/useConfirmationModal.esm.js";import{usePlaylists as P}from"../hooks/playlists/usePlaylists.esm.js";import"react-use/lib/useLocalStorage";import{certificationPlaylistTrackCheckRouteRef as x,certificationPlaylistTrackRouteRef as k,certificationPlaylistRouteRef as R,certificationTrackRouteRef as y,certificationRouteRef as g}from"../routes.esm.js";import{EntityContent as n}from"./EntityContent/EntityContent.esm.js";const b=()=>{const{entity:i}=m(),e=p(R),a=p(y),{isLoading:r,data:o}=P(i),{isLoading:c,data:A}=S(i);if(r||c)return null;const u=o?.[0]?.id,I=A?.[0]?.track.id;return!u&&!I?null:t(f,{to:u?e({playlistId:u}):a({trackId:I}),replace:!0})},v=()=>{const{entity:i}=m(),{playlistId:e}=h(R),a=p(k),{data:r}=P(i),o=r?.find(c=>c.id===e)?.trackIds[0];return o?t(f,{to:a({playlistId:e,trackId:o}),replace:!0}):null},F=i=>(i?.levels?.flatMap(e=>e.checks??[])??[]).filter(e=>e.result!==T.Exempt&&e.result!==T.NotApplicable)[0],E=()=>{const{entity:i}=m(),{playlistId:e,trackId:a}=h(k),{data:r}=C(i,a),o=p(x),c=F(r)?.id??r?.levels[0]?.checks[0]?.id;return c?t(f,{to:o({playlistId:e,trackId:a,checkId:c}),replace:!0}):null},j=()=>{const{entity:i}=m(),{trackId:e}=h(y),a=p(g),{data:r}=C(i,e),o=F(r)?.id??r?.levels?.find(c=>c.checks.length>0)?.checks[0].id;return o?t(f,{to:a({trackId:e,checkId:o}),replace:!0}):null},D=()=>t(L,{children:s(N,{children:[t(l,{path:x.path,element:t(n,{})}),t(l,{path:k.path,element:s(d,{children:[t(n,{}),t(E,{})]})}),t(l,{path:R.path,element:s(d,{children:[t(n,{}),t(v,{})]})}),t(l,{path:y.path,element:s(d,{children:[t(n,{}),t(j,{})]})}),t(l,{path:g.path,element:t(n,{})}),t(l,{path:"/",element:s(d,{children:[t(n,{}),t(b,{})]})})]})});export{j as RedirectToFirstCheck,v as RedirectToFirstPlaylistTrack,E as RedirectToFirstPlaylistTrackCheck,D as Router};
2
2
  //# sourceMappingURL=Router.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as n,Fragment as b,jsx as e}from"react/jsx-runtime";import{useApi as t,featureFlagsApiRef as g,configApiRef as f}from"@backstage/core-plugin-api";import{usePermission as k}from"@backstage/plugin-permission-react";import{Tabs as v,TabList as x,Tab as i}from"@backstage/ui";import{makeStyles as w}from"@material-ui/core";import{soundcheckCollectorReadPermission as y}from"@spotify/backstage-plugin-soundcheck-common";const A=w(()=>({techHealth:{padding:"var(--bui-space-4) var(--bui-space-3) 0 var(--bui-space-4)"},overview:{padding:"var(--bui-space-4) var(--bui-space-3) 0 var(--bui-space-4)"},tabList:{display:"flex",flexDirection:"row","@media (max-width:768px)":{flexDirection:"column"},background:"var(--bui-bg-surface-1)",padding:"0 var(--bui-space-1)",margin:"0 var(--bui-space-2)",borderRadius:"var(--bui-space-1)",boxShadow:"1px 1px 1px var(--bui-bg-surface-2)"},tabs:{"& .bui-TabPanel":{paddingInline:"0 !important"},"@media (max-width:768px)":{"& .bui-TabActive":{display:"none"}}}})),S=({children:h})=>{const r=A(),c=t(g),d=t(f).getOptionalStringArray("soundcheck.flags"),s=c.getRegisteredFlags(),o=(!s.find(a=>a.name==="soundcheck-enable-tech-health")||c.isActive("soundcheck-enable-tech-health"))&&!d?.includes("soundcheck-disable-tech-health"),l=!s.find(a=>a.name==="soundcheck-enable-campaigns")||c.isActive("soundcheck-enable-campaigns"),{loading:p,allowed:u}=k({permission:y}),m=(!s.find(a=>a.name==="soundcheck-enable-collectors")||c.isActive("soundcheck-enable-collectors"))&&!p&&u;return n(b,{children:[e(v,{className:r.tabs,children:n(x,{className:r.tabList,children:[e(i,{id:"tech-insights",href:"/soundcheck/tech-insights",matchStrategy:"prefix",children:"Tech Insights"}),e(i,{id:"checks",href:"/soundcheck/checks",matchStrategy:"prefix",children:"Checks"}),e(i,{id:"tracks",href:"/soundcheck/tracks",matchStrategy:"prefix",children:"Tracks"}),l&&e(i,{id:"campaigns",href:"/soundcheck/campaigns",matchStrategy:"prefix",children:"Campaigns"}),m&&e(i,{id:"integrations",href:"/soundcheck/integrations",matchStrategy:"prefix",children:"Integrations"}),e(i,{id:"overview",href:"/soundcheck/overview",children:"Classic Overview"}),o&&e(i,{id:"tech-health",href:"/soundcheck/tech-health",children:"Tech Health"})]})}),h]})};export{S as RoutingMainMenu};
2
+ //# sourceMappingURL=RoutingMainMenu.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as a,Fragment as h}from"react/jsx-runtime";import{Page as j,TabbedLayout as r}from"@backstage/core-components";import{useApi as k,featureFlagsApiRef as G,configApiRef as Q}from"@backstage/core-plugin-api";import{usePermission as s}from"@backstage/plugin-permission-react";import{makeStyles as W,Box as d}from"@material-ui/core";import{SpotifyLicenseBanner as q}from"@spotify/backstage-plugin-core";import{soundcheckCampaignCreatePermission as M,soundcheckCollectorReadPermission as U,soundcheckCheckCreatePermission as V,soundcheckTrackCreatePermission as $}from"@spotify/backstage-plugin-soundcheck-common";import{Helmet as z}from"react-helmet";import{Routes as J,Route as t}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import{UserProvider as K}from"../../contexts/UserProvider.esm.js";import X from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as Y}from"../../hooks/useSoundcheckAlert.esm.js";import{CampaignInsightsPage as Z}from"../CampaignInsightsPage/CampaignInsightsPage.esm.js";import{CampaignsPage as _}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as ee}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as te}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as ie}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckEditPage as re}from"../CheckPage/CheckEditPage.esm.js";import{CheckInsightsPage as u}from"../CheckPage/CheckInsightsPage.esm.js";import{ChecksTab as ae}from"../ChecksTab/ChecksTab.esm.js";import{CheckTemplatesPage as oe}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import{CollectorPage as ce}from"../CollectorPage/CollectorPage.esm.js";import{CollectorDetailsPage as ne}from"../CollectorPage/CollectorDetailsPage.esm.js";import{CollectorsPage as le}from"../CollectorsPage/CollectorsPage.esm.js";import{HierarchicalTechInsightsPage as se}from"../HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js";import{OverviewPageContent as me}from"../OverviewPage/OverviewPageContent.esm.js";import{QuickstartPage as C}from"../QuickstartPage/QuickstartPage.esm.js";import{SoundcheckHeader as he}from"../SoundcheckHeader/SoundcheckHeader.esm.js";import{SoundcheckHeaderProvider as de}from"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{SoundcheckQueryClientProvider as pe}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{TechHealth as ge}from"../TechHealth/TechHealth.esm.js";import{TechInsightsPage as fe}from"../TechInsights/TechInsightsPage.esm.js";import{TrackCreatePage as ke}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as ue}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as Ce}from"../TrackPage/TrackPage.esm.js";import{TracksTab as Pe}from"../TracksTab/TracksTab.esm.js";import{NewFeatureTab as be}from"./NewFeatureTab.esm.js";const P=W(o=>({tabContent:{margin:0,padding:0},root:{"& > *":{display:"flex",flexDirection:"column",flexGrow:1}},pageContent:{display:"flex",flexDirection:"row",flexGrow:1},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",maxWidth:"100%","& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",padding:`${o.spacing(3)}px !important`}}})),b=({title:o="Soundcheck",children:m})=>{const n=P();return e(Y,{children:e(K,{children:e(pe,{children:e(de,{defaultTitle:o,children:e(X,{children:e(d,{className:n.root,children:a(j,{themeId:"website",children:[e(q,{backend:"soundcheck",invalidLicenseMessage:"Submitted facts and check results will still be stored, but it will not be possible to view certifications or individual results until a valid license is present."}),e(he,{documentTitle:o}),e(d,{className:n.pageContent,children:e(d,{className:n.pageLayout,children:m})})]})})})})})})})},ve=({title:o="Soundcheck",integrations:m})=>{const n=P(),c=k(G),p=k(Q).getOptionalStringArray("soundcheck.flags"),l=c.getRegisteredFlags(),v=(!l.find(i=>i.name==="soundcheck-enable-tech-health")||c.isActive("soundcheck-enable-tech-health"))&&!p?.includes("soundcheck-disable-tech-health"),T=!l.find(i=>i.name==="soundcheck-enable-collectors")||c.isActive("soundcheck-enable-collectors"),g=!l.find(i=>i.name==="soundcheck-enable-campaigns")||c.isActive("soundcheck-enable-campaigns"),{loading:x,allowed:I}=s({permission:M}),w=!x&&I,{loading:R,allowed:y}=s({permission:U}),{loading:A,allowed:S}=s({permission:V}),H=!l.find(i=>i.name==="soundcheck-enable-check-creation")||c.isActive("soundcheck-enable-check-creation"),D=!A&&S&&H,{loading:L,allowed:N}=s({permission:$}),F=!l.find(i=>i.name==="soundcheck-enable-track-creation")||c.isActive("soundcheck-enable-track-creation"),E=!L&&N&&F,B=T&&!R&&y,O=v,f=p?.includes("portal")??!1;return a(b,{title:o,children:[a(J,{children:[g&&a(h,{children:[e(t,{path:"/campaigns/:campaignId/edit",element:e(te,{})}),e(t,{path:"/campaigns/:campaignId",element:e(Z,{})}),w&&e(t,{path:"/campaigns/create",element:e(ee,{})})]}),e(t,{path:"/quickstart",element:e(C,{})}),e(t,{path:"/tech-insights/track",element:e(se,{})}),e(t,{path:"/tracks/:trackId/edit",element:e(ue,{})}),E&&e(t,{path:"/tracks/create",element:e(ke,{})}),e(t,{path:"/tracks/:trackId",element:e(Ce,{})}),e(t,{path:"/tracks/:trackId/checks/:checkId",element:e(u,{})}),e(t,{path:"/checks/:checkId",element:e(u,{})}),e(t,{path:"/checks/:checkId/edit",element:e(re,{})}),D&&a(h,{children:[e(t,{path:"/checks/create",element:e(ie,{})}),e(t,{path:"/checks/templates",element:e(oe,{})})]}),e(t,{path:"/integrations/:integrationId",element:e(ne,{})}),e(t,{path:"/integrations/:integrationId/edit",element:e(ce,{})}),f&&e(t,{path:"/",element:e(C,{})}),e(t,{path:"/*",element:a(r,{children:[e(r.Route,{title:"Overview",path:f?"/overview":"/",children:e("div",{className:n.tabContent,children:e(me,{})})}),e(r.Route,{title:e(be,{title:"Tech Insights"}),path:"/tech-insights",children:a(h,{children:[e(z,{title:"Tech Insights"}),e(fe,{})]})}),O&&e(r.Route,{title:"Tech Health",path:"/tech-health",children:e(ge,{})}),e(r.Route,{title:"Checks",path:"/checks",children:e(ae,{})}),e(r.Route,{title:"Tracks",path:"/tracks",children:e(Pe,{})}),g&&e(r.Route,{title:"Campaigns",path:"/campaigns",children:e(_,{})}),B&&e(r.Route,{title:"Integrations",path:"/integrations",children:e(le,{integrations:m})})]})})]})," "]})};export{ve as RoutingPage,b as RoutingPageWrapper};
1
+ import{jsx as e}from"react/jsx-runtime";import{useFeatureFlag as r}from"../../hooks/useFeatureFlag.esm.js";import{RoutingPageBUI as t}from"./RoutingPageBUI.esm.js";import{RoutingPageDeprecated as a}from"./RoutingPageDeprecated.esm.js";const g=o=>r("backstage-ui")?e(t,{...o}):e(a,{...o});export{g as RoutingPage};
2
2
  //# sourceMappingURL=RoutingPage.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as o,Fragment as m}from"react/jsx-runtime";import{useApi as x,featureFlagsApiRef as A,useRouteRef as p}from"@backstage/core-plugin-api";import{usePermission as s}from"@backstage/plugin-permission-react";import{Box as h}from"@backstage/ui";import{soundcheckCampaignCreatePermission as E,soundcheckCheckCreatePermission as B,soundcheckTrackCreatePermission as F}from"@spotify/backstage-plugin-soundcheck-common";import{Helmet as O}from"react-helmet";import{Routes as j,Route as t,useParams as g,Navigate as l}from"react-router-dom";import{trackOverviewRouteRef as y,campaignOverviewRouteRef as H,techInsightsPageRouteRef as M}from"../../routes.esm.js";import{CampaignPage as U}from"../CampaignPage/CampaignPage.esm.js";import{CampaignTechInsightsExplorerPage as D}from"../CampaignPage/CampaignTechInsightsExplorerPage.esm.js";import{CampaignsPage as N}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as S}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as V}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as W}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckEditPage as q}from"../CheckPage/CheckEditPage.esm.js";import{CheckPage as d}from"../CheckPage/CheckPage.esm.js";import{ChecksTab as z}from"../ChecksTab/ChecksTab.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageBUI.esm.js";import{CheckTemplatesPage as G}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js";import{CollectorPage as J}from"../CollectorPage/CollectorPage.esm.js";import{CollectorDetailsPage as K}from"../CollectorPage/CollectorDetailsPage.esm.js";import"../CollectorPage/CollectorDetailsPageBUI.esm.js";import"../CollectorPage/CollectorDetailsPageDeprecated.esm.js";import{CollectorsPage as L}from"../CollectorsPage/CollectorsPage.esm.js";import{OverviewPageContent as Q}from"../OverviewPage/OverviewPageContent.esm.js";import{TechHealth as X}from"../TechHealth/TechHealth.esm.js";import{TechInsightsPage as Y}from"../TechInsights/TechInsightsPage.esm.js";import{TrackCreatePage as Z}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as _}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as $}from"../TrackPage/TrackPage.esm.js";import{TrackTechInsightsExplorerPage as ee}from"../TrackPage/TrackTechInsightsExplorerPage.esm.js";import{TracksTab as te}from"../TracksTab/TracksTab.esm.js";import{RoutingMainMenu as ae}from"./RoutingMainMenu.esm.js";import{RoutingPageWrapperBUI as re}from"./RoutingPageWrapperBUI.esm.js";const ie=()=>{const{trackId:a}=g(),i=p(y);if(!a)return null;const r=i({trackId:a});return e(l,{to:r,replace:!0})},ne=()=>{const{campaignId:a}=g(),i=p(H);if(!a)return null;const r=i({campaignId:a});return e(l,{to:r,replace:!0})},oe=()=>{const a=p(M)();return e(l,{to:a,replace:!0})},ce=({title:a="Soundcheck",integrations:i})=>{const r=x(A),c=r.getRegisteredFlags(),k=!c.find(n=>n.name==="soundcheck-enable-campaigns")||r.isActive("soundcheck-enable-campaigns"),{loading:f,allowed:u}=s({permission:E}),I=!f&&u,{loading:P,allowed:C}=s({permission:B}),v=!c.find(n=>n.name==="soundcheck-enable-check-creation")||r.isActive("soundcheck-enable-check-creation"),R=!P&&C&&v,{loading:T,allowed:b}=s({permission:F}),w=!c.find(n=>n.name==="soundcheck-enable-track-creation")||r.isActive("soundcheck-enable-track-creation");return e(re,{title:a,children:e(ae,{children:o(j,{children:[k&&o(m,{children:[e(t,{path:"/campaigns",element:e(N,{})}),e(t,{path:"/campaigns/:campaignId/edit",element:e(V,{})}),e(t,{path:"/campaigns/:campaignId",element:e(ne,{})}),e(t,{path:"/campaigns/:campaignId/overview",element:e(U,{})}),e(t,{path:"/campaigns/:campaignId/explorer",element:e(D,{})}),I&&e(t,{path:"/campaigns/create",element:e(S,{})})]}),e(t,{path:"/tracks",element:e(te,{})}),e(t,{path:"/tracks/:trackId/edit",element:e(_,{})}),!T&&b&&w&&e(t,{path:"/tracks/create",element:e(Z,{})}),e(t,{path:"/tracks/:trackId",element:e(ie,{})}),e(t,{path:"/tracks/:trackId/overview",element:e($,{})}),e(t,{path:"/tracks/:trackId/explorer",element:e(ee,{})}),e(t,{path:"/tracks/:trackId/checks/:checkId",element:e(d,{})}),e(t,{path:"/checks",element:e(z,{})}),e(t,{path:"/checks/:checkId",element:e(d,{})}),e(t,{path:"/checks/:checkId/edit",element:e(q,{})}),R&&o(m,{children:[e(t,{path:"/checks/create",element:e(W,{})}),e(t,{path:"/checks/templates",element:e(G,{})})]}),e(t,{path:"/integrations",element:e(L,{integrations:i})}),e(t,{path:"/integrations/:integrationId",element:e(K,{integrations:i})}),e(t,{path:"/integrations/:integrationId/edit",element:e(J,{})}),e(t,{path:"/tech-insights",element:o(m,{children:[e(O,{title:"Tech Insights"}),e(Y,{})]})}),e(t,{path:"/tech-health",element:e(h,{style:{margin:"36px 32px"},children:e(X,{})})}),e(t,{path:"/overview",element:e(h,{style:{margin:"var(--bui-space-6) var(--bui-space-2)"},children:e(Q,{})})}),e(t,{path:"/",element:e(oe,{})})]})})})};export{ce as RoutingPageBUI};
2
+ //# sourceMappingURL=RoutingPageBUI.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as o,Fragment as m,jsx as e}from"react/jsx-runtime";import{TabbedLayout as a}from"@backstage/core-components";import{useApi as d,featureFlagsApiRef as j,configApiRef as L}from"@backstage/core-plugin-api";import{usePermission as n}from"@backstage/plugin-permission-react";import{makeStyles as N}from"@material-ui/core";import{soundcheckCampaignCreatePermission as q,soundcheckCollectorReadPermission as G,soundcheckCheckCreatePermission as Q,soundcheckTrackCreatePermission as V}from"@spotify/backstage-plugin-soundcheck-common";import{Helmet as W}from"react-helmet";import{Routes as z,Route as t}from"react-router-dom";import{CampaignPage as B}from"../CampaignPage/CampaignPage.esm.js";import{CampaignsPage as J}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as K}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as M}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as U}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckEditPage as X}from"../CheckPage/CheckEditPage.esm.js";import{CheckPage as g}from"../CheckPage/CheckPage.esm.js";import{ChecksTab as Y}from"../ChecksTab/ChecksTab.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageBUI.esm.js";import{CheckTemplatesPage as Z}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js";import{CollectorPage as _}from"../CollectorPage/CollectorPage.esm.js";import{CollectorDetailsPage as $}from"../CollectorPage/CollectorDetailsPage.esm.js";import"../CollectorPage/CollectorDetailsPageBUI.esm.js";import"../CollectorPage/CollectorDetailsPageDeprecated.esm.js";import{CollectorsPage as ee}from"../CollectorsPage/CollectorsPage.esm.js";import{HierarchicalTechInsightsPage as te}from"../HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js";import{OverviewPageContent as ie}from"../OverviewPage/OverviewPageContent.esm.js";import{QuickstartPage as k}from"../QuickstartPage/QuickstartPage.esm.js";import{TechHealth as ae}from"../TechHealth/TechHealth.esm.js";import{TechInsightsPage as re}from"../TechInsights/TechInsightsPage.esm.js";import{TrackCreatePage as oe}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as ce}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as ne}from"../TrackPage/TrackPage.esm.js";import{TracksTab as me}from"../TracksTab/TracksTab.esm.js";import{NewFeatureTab as se}from"./NewFeatureTab.esm.js";import{RoutingPageWrapperDeprecated as he}from"./RoutingPageWrapperDeprecated.esm.js";const le=N(()=>({tabContent:{margin:0,padding:0},root:{"& > *":{display:"flex",flexDirection:"column",flexGrow:1}}})),pe=({title:f="Soundcheck",integrations:s})=>{const u=le(),r=d(j),h=d(L).getOptionalStringArray("soundcheck.flags"),c=r.getRegisteredFlags(),C=(!c.find(i=>i.name==="soundcheck-enable-tech-health")||r.isActive("soundcheck-enable-tech-health"))&&!h?.includes("soundcheck-disable-tech-health"),P=!c.find(i=>i.name==="soundcheck-enable-collectors")||r.isActive("soundcheck-enable-collectors"),l=!c.find(i=>i.name==="soundcheck-enable-campaigns")||r.isActive("soundcheck-enable-campaigns"),{loading:b,allowed:T}=n({permission:q}),I=!b&&T,{loading:R,allowed:v}=n({permission:G}),{loading:w,allowed:A}=n({permission:Q}),x=!c.find(i=>i.name==="soundcheck-enable-check-creation")||r.isActive("soundcheck-enable-check-creation"),y=!w&&A&&x,{loading:D,allowed:F}=n({permission:V}),H=!c.find(i=>i.name==="soundcheck-enable-track-creation")||r.isActive("soundcheck-enable-track-creation"),E=!D&&F&&H,S=P&&!R&&v,O=C,p=h?.includes("portal")??!1;return o(he,{title:f,children:[o(z,{children:[l&&o(m,{children:[e(t,{path:"/campaigns/:campaignId/edit",element:e(M,{})}),e(t,{path:"/campaigns/:campaignId",element:e(B,{})}),I&&e(t,{path:"/campaigns/create",element:e(K,{})})]}),e(t,{path:"/quickstart",element:e(k,{})}),e(t,{path:"/tech-insights/track",element:e(te,{})}),e(t,{path:"/tracks/:trackId/edit",element:e(ce,{})}),E&&e(t,{path:"/tracks/create",element:e(oe,{})}),e(t,{path:"/tracks/:trackId",element:e(ne,{})}),e(t,{path:"/tracks/:trackId/checks/:checkId",element:e(g,{})}),e(t,{path:"/checks/:checkId",element:e(g,{})}),e(t,{path:"/checks/:checkId/edit",element:e(X,{})}),y&&o(m,{children:[e(t,{path:"/checks/create",element:e(U,{})}),e(t,{path:"/checks/templates",element:e(Z,{})})]}),e(t,{path:"/integrations/:integrationId",element:e($,{integrations:s})}),e(t,{path:"/integrations/:integrationId/edit",element:e(_,{})}),p&&e(t,{path:"/",element:e(k,{})}),e(t,{path:"/*",element:o(a,{children:[e(a.Route,{title:"Overview",path:p?"/overview":"/",children:e("div",{className:u.tabContent,children:e(ie,{})})}),e(a.Route,{title:e(se,{title:"Tech Insights"}),path:"/tech-insights",children:o(m,{children:[e(W,{title:"Tech Insights"}),e(re,{})]})}),O&&e(a.Route,{title:"Tech Health",path:"/tech-health",children:e(ae,{})}),e(a.Route,{title:"Checks",path:"/checks",children:e(Y,{})}),e(a.Route,{title:"Tracks",path:"/tracks",children:e(me,{})}),l&&e(a.Route,{title:"Campaigns",path:"/campaigns",children:e(J,{})}),S&&e(a.Route,{title:"Integrations",path:"/integrations",children:e(ee,{integrations:s})})]})})]})," "]})};export{pe as RoutingPageDeprecated};
2
+ //# sourceMappingURL=RoutingPageDeprecated.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{useFeatureFlag as i}from"../../hooks/useFeatureFlag.esm.js";import{RoutingPageWrapperBUI as o}from"./RoutingPageWrapperBUI.esm.js";import{RoutingPageWrapperDeprecated as p}from"./RoutingPageWrapperDeprecated.esm.js";const a=({title:e,children:r})=>i("backstage-ui")?t(o,{title:e,children:r}):t(p,{title:e,children:r});export{a as RoutingPageWrapper};
2
+ //# sourceMappingURL=RoutingPageWrapper.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as r,jsxs as o}from"react/jsx-runtime";import{Box as t}from"@backstage/ui";import{SpotifyLicenseBanner as n}from"@spotify/backstage-plugin-core";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import{UserProvider as c}from"../../contexts/UserProvider.esm.js";import d from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as l}from"../../hooks/useSoundcheckAlert.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import{SoundcheckHeaderProvider as m}from"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{SoundcheckHeaderBUI as s}from"../SoundcheckHeader/SoundcheckHeaderBUI.esm.js";import{SoundcheckQueryClientProvider as p}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";const a=({title:e="Soundcheck",children:i})=>r(l,{children:r(c,{children:r(p,{children:r(m,{defaultTitle:e,children:o(d,{children:[r(n,{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."}),r(s,{}),r(t,{children:i})]})})})})});export{a as RoutingPageWrapperBUI};
2
+ //# sourceMappingURL=RoutingPageWrapperBUI.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as l}from"react/jsx-runtime";import{Page as n}from"@backstage/core-components";import{makeStyles as c,Box as t}from"@material-ui/core";import{SpotifyLicenseBanner as a}from"@spotify/backstage-plugin-core";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import{UserProvider as d}from"../../contexts/UserProvider.esm.js";import s from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as m}from"../../hooks/useSoundcheckAlert.esm.js";import{SoundcheckHeader as p}from"../SoundcheckHeader/SoundcheckHeader.esm.js";import{SoundcheckHeaderProvider as f}from"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{SoundcheckQueryClientProvider as u}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";const h=c(i=>({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:`${i.spacing(3)}px !important`}}})),x=({title:i="Soundcheck",children:o})=>{const r=h();return e(m,{children:e(d,{children:e(u,{children:e(f,{defaultTitle:i,children:e(s,{children:e(t,{className:r.root,children:l(n,{themeId:"website",children:[e(a,{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(p,{documentTitle:i}),e(t,{className:r.pageContent,children:e(t,{className:r.pageLayout,children:o})})]})})})})})})})};export{x as RoutingPageWrapperDeprecated};
2
+ //# sourceMappingURL=RoutingPageWrapperDeprecated.esm.js.map
@@ -1,2 +1,2 @@
1
- import{RoutingPage as o,RoutingPageWrapper as r}from"./RoutingPage.esm.js";export{o as RoutingPage,r as RoutingPageWrapper};
1
+ import{RoutingPage as e}from"./RoutingPage.esm.js";import{RoutingPageWrapper as p}from"./RoutingPageWrapper.esm.js";export{e as RoutingPage,p as RoutingPageWrapper};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as i,jsx as a}from"react/jsx-runtime";import{parseEntityRef as F}from"@backstage/catalog-model";import{makeStyles as v,Grid as S,InputLabel as t,NativeSelect as s}from"@material-ui/core";import{Fragment as w}from"react";import"../CampaignsPage/CampaignListPage/CampaignListPage.esm.js";import{CampaignStatus as d}from"../CampaignsPage/CampaignListPage/CampaignTypes.esm.js";import{SearchBar as y}from"../SearchBar/SearchBar.esm.js";const x=v(r=>({searchbar:{maxWidth:"275px","& input":{paddingTop:r.spacing(1),paddingBottom:r.spacing(1)}},filters:{display:"flex",alignItems:"center",padding:0},dropdownFilters:{margin:"0 15px",alignItems:"center"},selectHolder:{minWidth:105,"& select":{paddingTop:r.spacing(1),paddingBottom:r.spacing(1)}},label:{marginBottom:r.spacing(.5)}})),B=({searchPlaceholder:r,isLoading:o,searchTerm:m,setSearchTerm:h,filterAlpha:p,handleAlphabeticalFilterChange:g,filterOwner:u,handleOwnerFilterChange:f,filterStatus:n,handleStatusFilterChange:c,owners:N})=>{const e=x();return i(S,{item:!0,xs:8,className:e.filters,children:[i("div",{children:[a(t,{className:e.label,htmlFor:"search-bar",children:r||"Search"}),a(y,{searchTerm:m,disabled:o,setSearchTerm:h,placeholder:"Name",variant:"outlined",size:"small",className:e.searchbar,id:"search-bar"})]}),i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"sort-by",children:"Sort By"}),i(s,{id:"sort-by",className:e.selectHolder,value:p,onChange:g,children:[a("option",{value:"ascending",children:"Name A-Z"}),a("option",{value:"descending",children:"Name Z-A"})]})]}),i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"filter-owner",children:"Filter By Owner"}),i(s,{id:"filter-owner",className:e.selectHolder,value:u,onChange:f,children:[a("option",{value:"all",children:"All"},"all"),N?.map((l,b)=>a("option",{value:l,children:F(l).name},l+b))]})]}),n&&c&&i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"filter-status",children:"Filter By Status"}),a(s,{id:"filter-status",className:e.selectHolder,value:n,onChange:c,children:Object.keys(d).map(l=>a(w,{children:a("option",{value:l,children:d[l]})},l))})]})]})};export{B as SearchFilters};
1
+ import{jsxs as i,jsx as a}from"react/jsx-runtime";import{parseEntityRef as F}from"@backstage/catalog-model";import{makeStyles as v,Grid as S,InputLabel as t,NativeSelect as s}from"@material-ui/core";import{Fragment as w}from"react";import"../CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js";import{CampaignStatus as d}from"../CampaignsPage/CampaignListPage/CampaignTypes.esm.js";import{SearchBar as y}from"../SearchBar/SearchBar.esm.js";const x=v(r=>({searchbar:{maxWidth:"275px","& input":{paddingTop:r.spacing(1),paddingBottom:r.spacing(1)}},filters:{display:"flex",alignItems:"center",padding:0},dropdownFilters:{margin:"0 15px",alignItems:"center"},selectHolder:{minWidth:105,"& select":{paddingTop:r.spacing(1),paddingBottom:r.spacing(1)}},label:{marginBottom:r.spacing(.5)}})),B=({searchPlaceholder:r,isLoading:o,searchTerm:m,setSearchTerm:h,filterAlpha:p,handleAlphabeticalFilterChange:g,filterOwner:u,handleOwnerFilterChange:f,filterStatus:n,handleStatusFilterChange:c,owners:N})=>{const e=x();return i(S,{item:!0,xs:8,className:e.filters,children:[i("div",{children:[a(t,{className:e.label,htmlFor:"search-bar",children:r||"Search"}),a(y,{searchTerm:m,disabled:o,setSearchTerm:h,placeholder:"Name",variant:"outlined",size:"small",className:e.searchbar,id:"search-bar"})]}),i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"sort-by",children:"Sort By"}),i(s,{id:"sort-by",className:e.selectHolder,value:p,onChange:g,children:[a("option",{value:"ascending",children:"Name A-Z"}),a("option",{value:"descending",children:"Name Z-A"})]})]}),i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"filter-owner",children:"Filter By Owner"}),i(s,{id:"filter-owner",className:e.selectHolder,value:u,onChange:f,children:[a("option",{value:"all",children:"All"},"all"),N?.map((l,b)=>a("option",{value:l,children:F(l).name},l+b))]})]}),n&&c&&i("div",{className:e.dropdownFilters,children:[a(t,{className:e.label,htmlFor:"filter-status",children:"Filter By Status"}),a(s,{id:"filter-status",className:e.selectHolder,value:n,onChange:c,children:Object.keys(d).map(l=>a(w,{children:a("option",{value:l,children:d[l]})},l))})]})]})};export{B as SearchFilters};
2
2
  //# sourceMappingURL=SearchFilters.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as t,Fragment as S,jsx as i}from"react/jsx-runtime";import{Button as u,Typography as e,Box as n,TextField as y}from"@material-ui/core";import W from"@material-ui/icons/AddAlert";import{capitalize as B}from"lodash";import{useState as d,useCallback as I}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import{useSendCampaignNotification as E}from"../../hooks/campaigns/useSendCampaignNotification.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as O}from"../../hooks/aggregations/useCertificationStatus.esm.js";import"react-router-dom";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../ListboxVirtualized/ListboxVirtualized.esm.js";import{ControlledAutocomplete as A}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{FormFieldLabel as g}from"../FormFieldLabel/FormFieldLabel.esm.js";import{LoadingIndicator as $}from"../LoadingIndicator/LoadingIndicator.esm.js";import{SoundcheckDialog as j}from"../SoundcheckDialog/SoundcheckDialog.esm.js";const q=["critical","high","normal","low"],z=({loading:s,notificationCount:o,reset:p,error:m,failingCount:r})=>t(n,{children:[s&&t(n,{textAlign:"center",children:[i(e,{variant:"body1",children:"Sending Notifications..."}),i(e,{variant:"caption",children:"Do not refresh or leave the page."}),i(n,{marginTop:2,marginBottom:1,children:i($,{size:48})})]}),!s&&t(n,{children:[t(e,{variant:"body1",children:[t("strong",{children:[o," Notification",o===1?"":"s"," "]}),"sent to entity owners."]}),m&&i(e,{variant:"body2",color:"error",children:m.message}),r&&o<r&&t(e,{variant:"caption",children:["Notifications are grouped by owner, so this number might be less than the total failing entity count of"," ",i("strong",{children:r}),"."]}),i(n,{marginTop:2,children:i(u,{onClick:p,variant:"outlined",color:"primary",children:"Send Again"})})]})]}),G=({buttonClass:s,campaign:o})=>{const[p,m]=d(!1),[r,x]=d(""),[f,N]=d(""),[h,w]=d("normal"),[a,T]=d(""),[k,v]=d(!1),{data:L}=O({trackId:o.track.id},p),{mutate:C,isLoading:b,notificationCount:D,error:R}=E(),F=I(()=>{C({campaignId:o.id,entityRefs:a?[a]:void 0,title:r,description:f,severity:h.toLowerCase()}),v(!0)},[o.id,f,a,C,h,r]),c=L?.certificationStatus?.statusByLevel[0]?.failed??0;return t(S,{children:[i(u,{className:s,variant:"contained",onClick:()=>m(!0),startIcon:i(W,{}),children:"Send"}),i(j,{handleClose:()=>m(!1),title:"Send a Campaign Reminder Notification",open:p,fullScreen:!1,maxWidth:"sm",children:k?i(z,{loading:b,notificationCount:D,reset:()=>v(!1),error:R,failingCount:c}):t(S,{children:[i(e,{variant:"body1",children:"Send a notification for all entities that are currently failing checks in this campaign. Notifications will be grouped by the owner of these entities."}),t(n,{marginTop:1,children:[i(n,{display:"flex",children:i(g,{title:"Severity"})}),i(A,{value:h,onChange:w,options:q,fullWidth:!1,getOptionLabel:l=>B(l)})]}),t(n,{marginTop:1,children:[i(g,{title:"Custom Notification Title (Optional)"}),i(y,{value:r,onChange:l=>x(l.target.value),placeholder:`Default: Entities Failing Campaign - ${o.name}`,type:"text",variant:"outlined",margin:"dense",fullWidth:!0})]}),t(n,{marginTop:1,children:[i(g,{title:"Custom Notification Description (Optional)"}),i(e,{variant:"caption",component:"div",children:"Templating for custom notification messages is currently not supported."}),i(y,{value:f,onChange:l=>N(l.target.value),placeholder:`Default: Entities owned by [ownerGroup] are failing checks required in Campaign - ${o.name}.`,type:"text",variant:"outlined",margin:"dense",multiline:!0,minRows:4,maxRows:8,fullWidth:!0})]}),t(n,{marginTop:1,children:[i(g,{title:"Entity Ref For Testing (Optional)"}),i(e,{variant:"caption",component:"div",children:"Select a specific entityRef to send a notification to - used for testing. Will bypass checking if the campaign is actually failing for this entity."}),i(y,{value:a,onChange:l=>T(l.target.value),placeholder:"example: component:default/test-component",type:"text",variant:"outlined",margin:"dense",fullWidth:!0})]}),t(n,{marginTop:2,display:"flex",alignItems:"center",children:[i(u,{disabled:!a&&c===0||b,variant:"outlined",color:"primary",onClick:F,children:"Send"}),a&&t(e,{style:{marginLeft:6},variant:"caption",children:["Notification will be sent to ",a,"."]}),!a&&!!c&&t(e,{style:{marginLeft:6},variant:"caption",children:["Notifications will be sent for the",i("strong",{children:` ~${c} `}),c===1?"entity":"entities"," failing this campaign"]}),!a&&c===0&&i(e,{color:"error",style:{marginLeft:6},variant:"caption",children:"No entities failing campaign."})]})]})})]})};export{G as SendCampaignNotificationDialog};
1
+ import{jsxs as t,Fragment as S,jsx as i}from"react/jsx-runtime";import{Button as u,Typography as e,Box as n,TextField as y}from"@material-ui/core";import W from"@material-ui/icons/AddAlert";import{capitalize as B}from"lodash";import{useState as m,useCallback as I}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import{useSendCampaignNotification as E}from"../../hooks/campaigns/useSendCampaignNotification.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as O}from"../../hooks/aggregations/useCertificationStatus.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../ListboxVirtualized/ListboxVirtualized.esm.js";import{ControlledAutocomplete as A}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{FormFieldLabel as g}from"../FormFieldLabel/FormFieldLabel.esm.js";import{LoadingIndicator as $}from"../LoadingIndicator/LoadingIndicator.esm.js";import{SoundcheckDialog as j}from"../SoundcheckDialog/SoundcheckDialog.esm.js";const q=["critical","high","normal","low"],z=({loading:s,notificationCount:o,reset:p,error:d,failingCount:r})=>t(n,{children:[s&&t(n,{textAlign:"center",children:[i(e,{variant:"body1",children:"Sending Notifications..."}),i(e,{variant:"caption",children:"Do not refresh or leave the page."}),i(n,{marginTop:2,marginBottom:1,children:i($,{size:48})})]}),!s&&t(n,{children:[t(e,{variant:"body1",children:[t("strong",{children:[o," Notification",o===1?"":"s"," "]}),"sent to entity owners."]}),d&&i(e,{variant:"body2",color:"error",children:d.message}),r&&o<r&&t(e,{variant:"caption",children:["Notifications are grouped by owner, so this number might be less than the total failing entity count of"," ",i("strong",{children:r}),"."]}),i(n,{marginTop:2,children:i(u,{onClick:p,variant:"outlined",color:"primary",children:"Send Again"})})]})]}),G=({buttonClass:s,campaign:o})=>{const[p,d]=m(!1),[r,x]=m(""),[f,N]=m(""),[h,w]=m("normal"),[a,T]=m(""),[k,v]=m(!1),{data:L}=O({trackId:o.track.id},p),{mutate:C,isLoading:b,notificationCount:D,error:R}=E(),F=I(()=>{C({campaignId:o.id,entityRefs:a?[a]:void 0,title:r,description:f,severity:h.toLowerCase()}),v(!0)},[o.id,f,a,C,h,r]),c=L?.certificationStatus?.statusByLevel[0]?.failed??0;return t(S,{children:[i(u,{className:s,variant:"contained",onClick:()=>d(!0),startIcon:i(W,{}),children:"Send"}),i(j,{handleClose:()=>d(!1),title:"Send a Campaign Reminder Notification",open:p,fullScreen:!1,maxWidth:"sm",children:k?i(z,{loading:b,notificationCount:D,reset:()=>v(!1),error:R,failingCount:c}):t(S,{children:[i(e,{variant:"body1",children:"Send a notification for all entities that are currently failing checks in this campaign. Notifications will be grouped by the owner of these entities."}),t(n,{marginTop:1,children:[i(n,{display:"flex",children:i(g,{title:"Severity"})}),i(A,{value:h,onChange:w,options:q,fullWidth:!1,getOptionLabel:l=>B(l)})]}),t(n,{marginTop:1,children:[i(g,{title:"Custom Notification Title (Optional)"}),i(y,{value:r,onChange:l=>x(l.target.value),placeholder:`Default: Entities Failing Campaign - ${o.name}`,type:"text",variant:"outlined",margin:"dense",fullWidth:!0})]}),t(n,{marginTop:1,children:[i(g,{title:"Custom Notification Description (Optional)"}),i(e,{variant:"caption",component:"div",children:"Templating for custom notification messages is currently not supported."}),i(y,{value:f,onChange:l=>N(l.target.value),placeholder:`Default: Entities owned by [ownerGroup] are failing checks required in Campaign - ${o.name}.`,type:"text",variant:"outlined",margin:"dense",multiline:!0,minRows:4,maxRows:8,fullWidth:!0})]}),t(n,{marginTop:1,children:[i(g,{title:"Entity Ref For Testing (Optional)"}),i(e,{variant:"caption",component:"div",children:"Select a specific entityRef to send a notification to - used for testing. Will bypass checking if the campaign is actually failing for this entity."}),i(y,{value:a,onChange:l=>T(l.target.value),placeholder:"example: component:default/test-component",type:"text",variant:"outlined",margin:"dense",fullWidth:!0})]}),t(n,{marginTop:2,display:"flex",alignItems:"center",children:[i(u,{disabled:!a&&c===0||b,variant:"outlined",color:"primary",onClick:F,children:"Send"}),a&&t(e,{style:{marginLeft:6},variant:"caption",children:["Notification will be sent to ",a,"."]}),!a&&!!c&&t(e,{style:{marginLeft:6},variant:"caption",children:["Notifications will be sent for the",i("strong",{children:` ~${c} `}),c===1?"entity":"entities"," failing this campaign"]}),!a&&c===0&&i(e,{color:"error",style:{marginLeft:6},variant:"caption",children:"No entities failing campaign."})]})]})})]})};export{G as SendCampaignNotificationDialog};
2
2
  //# sourceMappingURL=SendCampaignNotificationDialog.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Box as c,Flex as i,Link as t,ButtonLink as n}from"@backstage/ui";import{makeStyles as o}from"@material-ui/core";import{RiCheckDoubleLine as s,RiQuestionLine as d,RiSettings2Line as u}from"@remixicon/react";const p=o(()=>({header:{background:"var(--bui-bg-surface-1)",padding:"var(--bui-space-3)",margin:"var(--bui-space-2)",borderRadius:"var(--bui-space-1)",boxShadow:"1px 1px 1px var(--bui-bg-surface-2)"}})),h=()=>{const a=p();return e(c,{className:a.header,children:r(i,{align:"center",justify:"between",children:[r(i,{align:"center",gap:"2",children:[e(s,{size:18}),e(t,{href:"/soundcheck",variant:"body-medium",children:"Soundcheck"})]}),r(i,{align:"center",gap:"2",children:[e(n,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/",variant:"secondary",iconStart:e(d,{}),target:"_blank",rel:"noreferrer",children:"Help"}),e(n,{href:"/settings",variant:"secondary",iconStart:e(u,{})})]})]})})};export{h as SoundcheckHeaderBUI};
2
+ //# sourceMappingURL=SoundcheckHeaderBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as d}from"react/jsx-runtime";import{CodeSnippet as f}from"@backstage/core-components";import{Box as m}from"@material-ui/core";import{Children as l}from"react";import h from"react-markdown";import g from"rehype-raw";import u from"remark-gfm";import{ALLOWED_HTML_TAGS as y}from"./SoundcheckMarkdownContent.esm.js";const c=(r,e)=>e?typeof e=="string"?r+e:l.toArray(e.props?.children).reduce(c,r):r,s=r=>typeof r=="object"&&!(Symbol.iterator in Object(r))&&r.type==="summary",a={code:({className:r,children:e,...i})=>{const o=String(e).replace(/\n+$/,""),n=/language-(\w+)/.exec(r||"");return n?t(f,{language:n[1],text:o}):t("code",{className:r,...i,children:e})},details:({className:r,children:e})=>{const i=l.toArray(e),o=i.find(s),n=i.filter(p=>!s(p)).reduce(c,"");return t(m,{display:"flex",children:d("details",{className:r,children:[o??"",t(m,{marginLeft:1.5,children:t(h,{components:a,remarkPlugins:[u],rehypePlugins:[g],allowedElements:y,children:n})})]})})}};export{a as components};
1
+ import{jsx as t,jsxs as d}from"react/jsx-runtime";import{CodeSnippet as f}from"@backstage/core-components";import{Box as m}from"@material-ui/core";import{Children as l}from"react";import h from"react-markdown";import g from"rehype-raw";import u from"remark-gfm";import"./SoundcheckMarkdownContentDeprecated.esm.js";import{ALLOWED_HTML_TAGS as y}from"./SoundcheckMarkdownContentBUI.esm.js";const c=(r,e)=>e?typeof e=="string"?r+e:l.toArray(e.props?.children).reduce(c,r):r,s=r=>typeof r=="object"&&!(Symbol.iterator in Object(r))&&r.type==="summary",a={code:({className:r,children:e,...i})=>{const n=String(e).replace(/\n+$/,""),o=/language-(\w+)/.exec(r||"");return o?t(f,{language:o[1],text:n}):t("code",{className:r,...i,children:e})},details:({className:r,children:e})=>{const i=l.toArray(e),n=i.find(s),o=i.filter(p=>!s(p)).reduce(c,"");return t(m,{display:"flex",children:d("details",{className:r,children:[n??"",t(m,{marginLeft:1.5,children:t(h,{components:a,remarkPlugins:[u],rehypePlugins:[g],allowedElements:y,children:o})})]})})}};export{a as components};
2
2
  //# sourceMappingURL=ComponentRenders.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import n from"react-markdown";import d from"rehype-raw";import m from"remark-gfm";import"./SoundcheckMarkdownContentDeprecated.esm.js";import{components as l}from"./ComponentRenders.esm.js";const o=["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"],c=t(()=>({markdown:{"& table":{borderCollapse:"collapse",border:"1px solid var(--bui-border)"},"& th, & td":{border:"1px solid var(--bui-border)",padding:"var(--bui-space-2)"},"& td":{wordBreak:"break-word",overflow:"hidden",verticalAlign:"middle",lineHeight:"1",margin:0,padding:"var(--bui-space-3) var(--bui-space-2)",borderBottom:0},"& th":{backgroundColor:"var(--bui-bg-surface-1)"},"& tr":{backgroundColor:"inherit"},"& a":{color:"var(--bui-fg-link)"},"& img":{maxWidth:"100%"},"& ul":{marginTop:"var(--bui-space-2)"},"& ol":{marginTop:"var(--bui-space-2)"},"& pre":{padding:"var(--bui-space-2)",background:"var(--bui-bg-surface-2) !important"},"& details":{width:"100%",marginBottom:"var(--bui-space-2)"},"& h1,h2,h3,h4,h5,h6":{marginBottom:"var(--bui-space-2)"}}}),{name:"SoundcheckMarkdownContent"}),p=({content:a,className:e=""})=>{const i=c();return r("div",{className:`${i.markdown} ${e}`.trim(),children:r(n,{components:l,remarkPlugins:[m],rehypePlugins:[d],allowedElements:o,children:a})})};export{o as ALLOWED_HTML_TAGS,p as SoundcheckMarkdownContentBUI};
2
+ //# sourceMappingURL=SoundcheckMarkdownContentBUI.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{makeStyles as a}from"@material-ui/core";import n from"react-markdown";import d from"rehype-raw";import l from"remark-gfm";import{components as i}from"./ComponentRenders.esm.js";import{ALLOWED_HTML_TAGS as p}from"./SoundcheckMarkdownContentBUI.esm.js";const m=a(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:o=""})=>{const t=m();return e("div",{className:`${t.markdown} ${o}`.trim(),children:e(n,{components:i,remarkPlugins:[l],rehypePlugins:[d],allowedElements:p,children:r})})};export{c as SoundcheckMarkdownContentDeprecated};
2
+ //# sourceMappingURL=SoundcheckMarkdownContentDeprecated.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsx as a,jsxs as n}from"react/jsx-runtime";import{Box as e,Flex as l}from"@backstage/ui";import{makeStyles as v}from"@material-ui/core";const g=v(()=>({container:{gap:"var(--bui-space-1)",width:"100%"},passedBar:{height:"var(--bui-space-1_5)",background:"var(--bui-fg-success)",border:"var(--bui-space-0_5) solid var(--bui-fg-success)",borderRadius:"var(--bui-space-1)"},failedBar:{height:"var(--bui-space-1_5)",background:"var(--bui-fg-danger)",border:"var(--bui-space-0_5) solid var(--bui-fg-danger)",borderRadius:"var(--bui-space-1)"},warningBar:{height:"var(--bui-space-1_5)",background:"var(--bui-fg-warning)",border:"var(--bui-space-0_5) solid var(--bui-fg-warning)",borderRadius:"var(--bui-space-1)"},noneBar:{height:"var(--bui-space-1_5)",background:"var(--bui-fg-disabled)",border:"var(--bui-space-0_5) solid var(--bui-fg-disabled)",borderRadius:"var(--bui-space-1)"},notReportedBar:{height:"var(--bui-space-1_5)",background:"var(--bui-fg-disabled)",border:"var(--bui-space-0_5) solid var(--bui-fg-disabled)",borderRadius:"var(--bui-space-1)"},errorBar:{height:"var(--bui-space-1_5)",background:"rgb(246, 104, 94)",border:"var(--bui-space-0_5) solid rgb(246, 104, 94)",borderRadius:"var(--bui-space-1)"}})),p=({passedPercent:s,failedPercent:d,warningPercent:o,errorPercent:b,notReportedPercent:c})=>{const r=g(),u=[s,d,o,b,c].filter(t=>!!t),i=u.length===1;return u.every(t=>t===0)?a(e,{width:"100%",className:r.noneBar}):n(l,{className:r.container,children:[!!s&&a(e,{className:r.passedBar,style:{flexGrow:s,width:i?"100%":void 0}}),!!d&&a(e,{className:r.failedBar,style:{flexGrow:d,width:i?"100%":void 0}}),!!o&&a(e,{className:r.warningBar,style:{flexGrow:o,width:i?"100%":void 0}}),!!c&&a(e,{className:r.notReportedBar,style:{flexGrow:c,width:i?"100%":void 0}}),!!b&&a(e,{className:r.errorBar,style:{flexGrow:b,width:i?"100%":void 0}})]})};export{p as StatusBar};
2
+ //# sourceMappingURL=StatusBar.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as i,Fragment as b}from"react/jsx-runtime";import{withStyles as u,Card as w,makeStyles as v,CardHeader as C,CardContent as k,Divider as f,CardActions as S,Button as N}from"@material-ui/core";import{createStyles as A}from"@material-ui/core/styles";import{SoundcheckMarkdownContent as B}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{SummaryCardActionsMenu as D}from"./SummaryCardActionsMenu.esm.js";const c=u(e=>A({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:e.spacing(2),position:"relative",justifyContent:"start"}}))(w),h=v(e=>({root:{position:"relative",height:"100%"},summaryName:{fontSize:e.typography.pxToRem(24),color:e.palette.text.primary,maxHeight:"250px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{color:e.palette.text.primary,padding:0,maxHeight:"175px",overflow:"auto",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},card:{paddingTop:e.spacing(1),paddingBottom:0,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),borderColor:e.palette.divider},cardContent:{height:"100%",paddingTop:0},actionArea:{padding:e.spacing(1.5,2,1.5,4)},button:{minWidth:0,color:e.palette.text.primary,"&:disabled":{color:e.palette.text.disabled,opacity:1}}})),E=({title:e,description:x,viewLabel:n="View",editLabel:l="Edit",children:y,handleDelete:p,handleArchive:s,handleEdit:t,handleView:a,handleExport:m,viewIsPrimaryAction:g})=>{const r=h(),o=!g&&!!t;return d(c,{className:r.card,"data-testid":e,children:[i(C,{title:e,titleTypographyProps:{className:r.summaryName},action:(!!p||!!s||!!t||!!m)&&i(D,{handleView:a,handleDelete:p,handleArchive:s,handleEdit:t,handleExport:m})}),i(k,{className:r.cardContent,children:d(b,{children:[i(B,{className:r.summaryDescription,content:x??""}),y]})}),(a||t)&&d("div",{children:[i(f,{}),i(S,{className:r.actionArea,children:i(N,{"aria-label":o?l:n,"data-testid":`${e}-button`,size:"medium",role:"link",onClick:o?t:a,disabled:!a&&!t,className:r.button,variant:"outlined",children:o?l:n})})]})]})};export{c as Card,E as SummaryCard,h as useSummaryCardStyles};
1
+ import{jsxs as d,jsx as t,Fragment as u}from"react/jsx-runtime";import{withStyles as w,Card as v,makeStyles as f,CardHeader as C,CardContent as k,Divider as S,CardActions as N,Button as A}from"@material-ui/core";import{createStyles as D}from"@material-ui/core/styles";import{SoundcheckMarkdownContentDeprecated as B}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import{SummaryCardActionsMenu as E}from"./SummaryCardActionsMenu.esm.js";const h=w(e=>D({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:e.spacing(2),position:"relative",justifyContent:"start"}}))(v),y=f(e=>({root:{position:"relative",height:"100%"},summaryName:{fontSize:e.typography.pxToRem(24),color:e.palette.text.primary,maxHeight:"250px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{color:e.palette.text.primary,padding:0,maxHeight:"175px",overflow:"auto",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},card:{paddingTop:e.spacing(1),paddingBottom:0,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),borderColor:e.palette.divider},cardContent:{height:"100%",paddingTop:0},actionArea:{padding:e.spacing(1.5,2,1.5,4)},button:{minWidth:0,color:e.palette.text.primary,"&:disabled":{color:e.palette.text.disabled,opacity:1}}})),H=({title:e,description:x,viewLabel:n="View",editLabel:l="Edit",children:g,handleDelete:p,handleArchive:s,handleEdit:i,handleView:a,handleExport:c,handleRecertify:m,viewIsPrimaryAction:b})=>{const r=y(),o=!b&&!!i;return d(h,{className:r.card,"data-testid":e,children:[t(C,{title:e,titleTypographyProps:{className:r.summaryName},action:(!!p||!!s||!!i||!!c||!!m)&&t(E,{handleView:a,handleDelete:p,handleArchive:s,handleEdit:i,handleExport:c,handleRecertify:m})}),t(k,{className:r.cardContent,children:d(u,{children:[t(B,{className:r.summaryDescription,content:x??""}),g]})}),(a||i)&&d("div",{children:[t(S,{}),t(N,{className:r.actionArea,children:t(A,{"aria-label":o?l:n,"data-testid":`${e}-button`,size:"medium",role:"link",onClick:o?i:a,disabled:!a&&!i,className:r.button,variant:"outlined",children:o?l:n})})]})]})};export{h as Card,H as SummaryCard,y as useSummaryCardStyles};
2
2
  //# sourceMappingURL=SummaryCard.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as t,Fragment as y,jsx as n}from"react/jsx-runtime";import{makeStyles as S,IconButton as z,Menu as g,MenuItem as o,ListItemIcon as c,ListItemText as m}from"@material-ui/core";import x from"@material-ui/icons/Archive";import C from"@material-ui/icons/Delete";import N from"@material-ui/icons/Edit";import k from"@material-ui/icons/MoreVert";import v from"@material-ui/icons/OpenInBrowser";import b from"@material-ui/icons/SaveAlt";import{useState as E}from"react";const L=S(a=>({menuList:{backgroundColor:a.palette.background.paper,color:a.palette.text.primary},menuIcon:{color:a.palette.text.primary},menuIconSize:{minWidth:a.spacing(4)}})),M=({handleDelete:a,handleArchive:s,handleView:d,handleEdit:u,handleExport:h})=>{const r=L(),[p,f]=E(null),l=!!p,I=e=>{e.stopPropagation(),f(e.currentTarget)},i=e=>{e.stopPropagation(),f(null)};return t(y,{children:[n(z,{"aria-label":"summary-card-actions",id:"summary-card-action-menu-button","aria-controls":l?"summary-card-action-menu":void 0,"aria-expanded":l?"true":void 0,"aria-haspopup":"true",onClick:I,children:n(k,{})}),t(g,{id:"summary-card-action-menu",anchorEl:p,open:l,onClose:i,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{"aria-labelledby":"summary-card-action-menu-button",className:r.menuList},children:[d&&t(o,{"data-testid":"summary-card-action-view",onClick:e=>{d(e),i(e)},children:[n(c,{className:r.menuIconSize,children:n(v,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(m,{children:"View"})]}),u&&t(o,{"data-testid":"summary-card-action-edit",onClick:e=>{u(e),i(e)},children:[n(c,{className:r.menuIconSize,children:n(N,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(m,{children:"Edit"})]}),h&&t(o,{"data-testid":"summary-card-action-export",onClick:e=>{h(e),i(e)},children:[n(c,{className:r.menuIconSize,children:n(b,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(m,{children:"Export"})]}),s&&t(o,{"data-testid":"summary-card-action-archive",onClick:e=>{s(e),i(e)},children:[n(c,{className:r.menuIconSize,children:n(x,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(m,{children:"Archive"})]}),a&&t(o,{"data-testid":"summary-card-action-delete",onClick:e=>{a(e),i(e)},children:[n(c,{className:r.menuIconSize,children:n(C,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(m,{children:"Delete"})]})]})]})};export{M as SummaryCardActionsMenu};
1
+ import{jsxs as i,Fragment as z,jsx as n}from"react/jsx-runtime";import{makeStyles as S,IconButton as N,Menu as g,MenuItem as o,ListItemIcon as c,ListItemText as l}from"@material-ui/core";import k from"@material-ui/icons/Archive";import x from"@material-ui/icons/Delete";import C from"@material-ui/icons/Edit";import v from"@material-ui/icons/MoreVert";import b from"@material-ui/icons/OpenInBrowser";import E from"@material-ui/icons/Refresh";import L from"@material-ui/icons/SaveAlt";import{useState as M}from"react";const A=S(t=>({menuList:{backgroundColor:t.palette.background.paper,color:t.palette.text.primary},menuIcon:{color:t.palette.text.primary},menuIconSize:{minWidth:t.spacing(4)}})),T=({handleDelete:t,handleArchive:s,handleView:d,handleEdit:u,handleExport:h,handleRecertify:p})=>{const r=A(),[f,y]=M(null),m=!!f,I=e=>{e.stopPropagation(),y(e.currentTarget)},a=e=>{e.stopPropagation(),y(null)};return i(z,{children:[n(N,{"aria-label":"summary-card-actions",id:"summary-card-action-menu-button","aria-controls":m?"summary-card-action-menu":void 0,"aria-expanded":m?"true":void 0,"aria-haspopup":"true",onClick:I,children:n(v,{})}),i(g,{id:"summary-card-action-menu",anchorEl:f,open:m,onClose:a,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{"aria-labelledby":"summary-card-action-menu-button",className:r.menuList},children:[d&&i(o,{"data-testid":"summary-card-action-view",onClick:e=>{d(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(b,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"View"})]}),u&&i(o,{"data-testid":"summary-card-action-edit",onClick:e=>{u(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(C,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Edit"})]}),h&&i(o,{"data-testid":"summary-card-action-export",onClick:e=>{h(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(L,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Export"})]}),p&&i(o,{"data-testid":"summary-card-action-recertify",onClick:e=>{p(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(E,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Recertify"})]}),s&&i(o,{"data-testid":"summary-card-action-archive",onClick:e=>{s(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(k,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Archive"})]}),t&&i(o,{"data-testid":"summary-card-action-delete",onClick:e=>{t(e),a(e)},children:[n(c,{className:r.menuIconSize,children:n(x,{fontSize:"small",color:"inherit",className:r.menuIcon})}),n(l,{children:"Delete"})]})]})]})};export{T as SummaryCardActionsMenu};
2
2
  //# sourceMappingURL=SummaryCardActionsMenu.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as C,jsx as i}from"react/jsx-runtime";import{useApi as h}from"@backstage/core-plugin-api";import{entityPresentationApiRef as g}from"@backstage/plugin-catalog-react";import{Row as R,Cell as y,CellProfile as A}from"@backstage/ui";import{useNavigate as k}from"react-router-dom";import{CustomCell as w}from"../CustomCell/CustomCell.esm.js";import{DescriptionCell as P}from"../DescriptionCell/DescriptionCell.esm.js";import{SimpleMenu as x}from"../Menus/SimpleMenu.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import"../../routes.esm.js";import"js-yaml";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"uuid";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";const T=({ownerEntityRef:t,href:r,profileImageSrc:p,cells:n,menuActions:m,name:l,description:c,documentationURL:s})=>{const a=h(g),e=t?a.forEntity(t):void 0,f=k();return C(R,{onAction:()=>r&&f(r),children:[i(P,{title:l,description:c,documentationURL:s}),n.map((o,d)=>i(y,{title:o.title,leadingIcon:o.icon,onClick:u=>{o.onClick&&(u.stopPropagation(),o.onClick())}},`cell-${d}`)),i(A,{name:e?.snapshot.primaryTitle,src:p??e?.snapshot.primaryTitle}),i(w,{onClick:o=>o.stopPropagation(),children:i(x,{disabled:!m?.length,placement:"left top",menuActions:m??[]})})]})};export{T as TableRowWithOwner};
2
+ //# sourceMappingURL=TableRowWithOwner.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as a}from"react/jsx-runtime";import{useTheme as c,Box as d}from"@material-ui/core";import{makeStyles as g}from"@material-ui/core/styles";import{useMemo as s,useCallback as u}from"react";import{getCheckStatusColor as t}from"../../utils/colors.esm.js";import{CategoryBar as f}from"../CategoryBar/CategoryBar.esm.js";const h=g(e=>({categoryBar:{"& .MuiBox-root > div":{height:"8px"}}})),x=({status:e,className:p})=>{const i=h(),r=c(),m=s(()=>({passed:e?.passed??0,failed:e?.failed??0,warning:e?.warning??0,error:e?.error??0,exempt:e?.exempt??0,notReported:e?.notReported??0}),[e]),n=u(o=>{switch(o){case"notApplicable":return"Not Applicable";case"notReported":return"Not Reported";default:return o.charAt(0).toUpperCase()+o.slice(1)}},[]),l=s(()=>({passed:t(r,"passed"),failed:t(r,"failed"),warning:t(r,"warning"),error:t(r,"error"),exempt:t(r,"exempt"),notReported:t(r,"not-reported")}),[r]);return a(d,{className:p,style:{width:"100%"},children:a(f,{className:i.categoryBar,data:m,categories:["passed","failed","warning","error","exempt","notReported"],categoryColors:l,showTooltip:!0,valueFormatter:o=>o.toString(),categoryFormatter:n})})};export{x as TeamStatusBar};
1
+ import{jsx as m}from"react/jsx-runtime";import{useTheme as E,Box as d}from"@material-ui/core";import{makeStyles as g}from"@material-ui/core/styles";import{useMemo as i,useCallback as u}from"react";import{getCheckStatusColor as o}from"../../utils/colors.esm.js";import{CategoryBar as N}from"../CategoryBar/CategoryBar.esm.js";import{CheckStateCategories as t,CheckStateColors as a}from"../CheckPage/utils.esm.js";const C=g(e=>({categoryBar:{"& .MuiBox-root > div":{height:"8px"}}})),T=({status:e,className:p})=>{const c=C(),r=E(),l=i(()=>({passed:e?.passed??0,failed:e?.failed??0,warning:e?.warning??0,error:e?.error??0,exempt:e?.exempt??0,notReported:e?.notReported??0}),[e]),n=u(s=>{switch(s){case t.NOT_APPLICABLE:return"Not Applicable";case t.NOT_REPORTED:return"Not Reported";default:return s.charAt(0).toUpperCase()+s.slice(1)}},[]),R=i(()=>({passed:o(r,a.PASSED),failed:o(r,a.FAILED),warning:o(r,a.WARNING),error:o(r,a.ERROR),exempt:o(r,a.EXEMPT),notReported:o(r,a.NOT_REPORTED)}),[r]);return m(d,{className:p,style:{width:"100%"},children:m(N,{className:c.categoryBar,data:l,categories:[t.PASSED,t.FAILED,t.WARNING,t.ERROR,t.EXEMPT,t.NOT_REPORTED],categoryColors:R,showTooltip:!0,valueFormatter:s=>s.toString(),categoryFormatter:n})})};export{T as TeamStatusBar};
2
2
  //# sourceMappingURL=TeamStatusBar.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as n,jsxs as S}from"react/jsx-runtime";import{makeStyles as L,alpha as y,Box as h,Chip as I,TextField as O,FormControlLabel as w,Checkbox as E}from"@material-ui/core";import T from"@material-ui/icons/CheckBox";import z from"@material-ui/icons/CheckBoxOutlineBlank";import{Autocomplete as j}from"@material-ui/lab";import{remove as N}from"lodash";import{useState as m,useEffect as P,useCallback as g,useMemo as V}from"react";import{CollapsablePanel as W}from"../../CollapsablePanel/CollapsablePanel.esm.js";import{ListboxVirtualized as B}from"../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useFilterContext as D}from"./FilterProvider.esm.js";import{Facet as b,facetTooltips as H}from"./types.esm.js";const $=L(({palette:e,spacing:o})=>({chip:{maxWidth:"45%",textOverflow:"ellipsis",margin:o(.5,.5,.5,0),overflow:"hidden","& svg":{color:y(e.common.white,.7),"&:hover":{color:e.common.white}},backgroundColor:e.action.disabledBackground},autoCompleteInput:{"&& input":{margin:o(1,0,0,0),padding:`${o(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},"&& button":{"&:hover":{backgroundColor:"transparent"}}},autoComplete:{margin:o(.5,0,1,0)},selectionLabel:{lineHeight:"1em"}})),q=({facet:e})=>{const o=$(),{getFacetOptions:C,getFacetOptionLabel:r,getSelectedFacetValues:i,setSelectedFacetValues:p}=D(),[x,d]=m(!1),[k,u]=m(!1),[F,f]=m("");P(()=>{d(!!i(e)?.length)},[i,e]);const s=g(t=>{if(e===b.Entity&&t[t.length-1]){const l=t[t.length-1];if(!l.includes(":")||!l.includes("/")){u(!0),f("Custom entities require a valid kind and namespace such as: component:default/entity");return}}u(!1),f(""),p(e,t)},[e,p]),a=V(()=>i(e),[e,i]),v=g(t=>{const l=[...a];N(l,c=>c===t),s(l)},[a,s]);return n(W,{label:e,tooltip:H[e],isExpanded:x,setIsExpanded:d,children:S(h,{children:[n(h,{children:a.map(t=>n(I,{label:r(e,t),size:"small",className:o.chip,onDelete:()=>v(t),clickable:!1},t))}),n(j,{className:o.autoComplete,disableCloseOnSelect:!0,fullWidth:!0,multiple:!0,freeSolo:e===b.Entity,popupIcon:null,renderTags:()=>null,options:C(e),getOptionLabel:t=>r(e,t),value:a,onChange:(t,l)=>s(l),ListboxComponent:B,ListboxProps:{itemHeight:50},renderInput:t=>n(O,{...t,className:o.autoCompleteInput,placeholder:`Search for ${e}`,error:k,helperText:F}),renderOption:(t,{selected:l})=>n(w,{onClick:c=>c.preventDefault(),control:n(E,{icon:n(z,{fontSize:"small"}),checkedIcon:n(T,{fontSize:"small"}),checked:l}),classes:{label:o.selectionLabel},label:r(e,t)})})]})})};export{q as FacetFilter};
1
+ import{jsx as n,jsxs as S}from"react/jsx-runtime";import{makeStyles as L,alpha as y,Box as h,Chip as I,TextField as O,FormControlLabel as w,Checkbox as z}from"@material-ui/core";import E from"@material-ui/icons/CheckBox";import T from"@material-ui/icons/CheckBoxOutlineBlank";import{Autocomplete as j}from"@material-ui/lab";import{remove as N}from"lodash";import{useState as m,useEffect as V,useCallback as g,useMemo as W}from"react";import{CollapsablePanel as B}from"../../CollapsablePanel/CollapsablePanel.esm.js";import{ListboxVirtualized as D}from"../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useFilterContext as H}from"./FilterProvider.esm.js";import{Facet as b,facetTooltips as P}from"./types.esm.js";const $=L(({palette:e,spacing:o})=>({chip:{maxWidth:"45%",textOverflow:"ellipsis",margin:o(.5,.5,.5,0),overflow:"hidden","& svg":{color:y(e.common.white,.7),"&:hover":{color:e.common.white}},backgroundColor:e.action.disabledBackground},autoCompleteInput:{"&& input":{margin:o(1,0,0,0),padding:`${o(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},"&& button":{"&:hover":{backgroundColor:"transparent"}}},autoComplete:{margin:o(.5,0,1,0)},selectionLabel:{lineHeight:"1em"}})),q=({facet:e})=>{const o=$(),{getFacetOptions:C,getFacetOptionLabel:r,getSelectedFacetValues:i,setSelectedFacetValues:p}=H(),[x,d]=m(!1),[k,u]=m(!1),[F,f]=m("");V(()=>{d(!!i(e)?.length)},[i,e]);const s=g(t=>{if(e===b.Entity&&t[t.length-1]){const l=t[t.length-1];if(!l.includes(":")||!l.includes("/")){u(!0),f("Custom entities require a valid kind and namespace such as: component:default/entity");return}}u(!1),f(""),p(e,t)},[e,p]),a=W(()=>i(e),[e,i]),v=g(t=>{const l=[...a];N(l,c=>c===t),s(l)},[a,s]);return n(B,{label:e,tooltip:P[e],isExpanded:x,setIsExpanded:d,children:S(h,{children:[n(h,{children:a.map(t=>n(I,{label:r(e,t),size:"small",className:o.chip,onDelete:()=>v(t),clickable:!1},t))}),n(j,{className:o.autoComplete,disableCloseOnSelect:!0,fullWidth:!0,multiple:!0,freeSolo:e===b.Entity,popupIcon:null,renderTags:()=>null,options:C(e),getOptionLabel:t=>r(e,t),value:a,onChange:(t,l)=>s(l),ListboxComponent:D,ListboxProps:{itemHeight:50},renderInput:t=>n(O,{...t,className:o.autoCompleteInput,placeholder:`Search for ${e}`,error:k,helperText:F}),renderOption:(t,{selected:l})=>n(w,{onClick:c=>c.preventDefault(),control:n(z,{icon:n(T,{fontSize:"small"}),checkedIcon:n(E,{fontSize:"small"}),checked:l}),classes:{label:o.selectionLabel},label:r(e,t)})})]})})};export{q as FacetFilter};
2
2
  //# sourceMappingURL=FacetFilter.esm.js.map
@@ -1,2 +1,2 @@
1
- import{parseEntityRef as T}from"@backstage/catalog-model";import C from"lodash";import{useState as $,useMemo as l,useEffect as A}from"react";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"react/jsx-runtime";import{useLoggedInUser as S}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"@spotify/backstage-plugin-soundcheck-common";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]=$(!1),{userEntityRef:a}=S(),{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 A(()=>{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};
1
+ import{parseEntityRef as T}from"@backstage/catalog-model";import C from"lodash";import{useState as $,useMemo as l,useEffect as A}from"react";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"react/jsx-runtime";import{useLoggedInUser as S}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"@spotify/backstage-plugin-soundcheck-common";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"react-use/lib/useLocalStorage";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]=$(!1),{userEntityRef:a}=S(),{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 A(()=>{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