@spotify/backstage-plugin-soundcheck 0.19.8 → 0.20.0

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 (295) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/alpha/entity-content.esm.js +1 -1
  3. package/dist/alpha.d.ts +3 -116
  4. package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
  5. package/dist/components/AreaChart/AreaChart.esm.js +1 -1
  6. package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
  7. package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
  8. package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +1 -1
  9. package/dist/components/CampaignForm/hooks/utils.esm.js +1 -1
  10. package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +2 -2
  11. package/dist/components/CampaignPage/CampaignPage.esm.js +1 -1
  12. package/dist/components/CampaignPage/CampaignPageBUI.esm.js +1 -1
  13. package/dist/components/CampaignPage/CampaignStatusBarBUI.esm.js +2 -0
  14. package/dist/components/CampaignPage/CampaignStatusCard.esm.js +2 -0
  15. package/dist/components/CampaignPage/CampaignStatusTableBUI.esm.js +2 -0
  16. package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +1 -1
  17. package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
  18. package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
  19. package/dist/components/Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js +1 -1
  20. package/dist/components/Cards/TrackStatusCard/TrackStatusCard.esm.js +1 -1
  21. package/dist/components/CategoryBar/CategoryBar.esm.js +1 -1
  22. package/dist/components/Charts/chartUtils.esm.js +1 -1
  23. package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
  24. package/dist/components/CheckForm/CheckForm.esm.js +1 -1
  25. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
  26. package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
  27. package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +1 -1
  28. package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -2
  29. package/dist/components/CheckForm/utils/validation.esm.js +1 -1
  30. package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
  31. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +1 -1
  32. package/dist/components/CheckPage/CheckPage.esm.js +1 -1
  33. package/dist/components/CheckPage/CheckPageBUI.esm.js +1 -1
  34. package/dist/components/CheckPage/CheckStatusHistoryChartBUI.esm.js +1 -1
  35. package/dist/components/CheckPage/CheckStatusTableBUI.esm.js +1 -1
  36. package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +1 -1
  37. package/dist/components/CheckPage/utils.esm.js +1 -1
  38. package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
  39. package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +1 -1
  40. package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
  41. package/dist/components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js +1 -1
  42. package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +1 -1
  43. package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +1 -1
  44. package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
  45. package/dist/components/ChecksTab/ChecksTab.esm.js +1 -1
  46. package/dist/components/ChecksTable/ChecksTable.esm.js +1 -1
  47. package/dist/components/CollapsablePanel/CollapsablePanel.esm.js +1 -1
  48. package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +1 -1
  49. package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +1 -1
  50. package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +1 -1
  51. package/dist/components/CollectorPage/CollectorFactTable.esm.js +1 -1
  52. package/dist/components/CollectorPage/CollectorFactTableBUI.esm.js +1 -1
  53. package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
  54. package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
  55. package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
  56. package/dist/components/CollectorPage/Configurators/Common/CollectorOption.esm.js +1 -1
  57. package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +1 -1
  58. package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
  59. package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
  60. package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +1 -1
  61. package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +1 -1
  62. package/dist/components/CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js +1 -1
  63. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
  64. package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
  65. package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +1 -1
  66. package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
  67. package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
  68. package/dist/components/FactExplorer/FactExplorerDialogBUI.esm.js +1 -1
  69. package/dist/components/Filter/FilterComponent.esm.js +1 -1
  70. package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
  71. package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
  72. package/dist/components/Filter/types.esm.js +1 -1
  73. package/dist/components/Filter/utils.esm.js +1 -1
  74. package/dist/components/FilterSidebar/FilterSidebar.esm.js +1 -1
  75. package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
  76. package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
  77. package/dist/components/FormFilterSection/FormFilterSection.esm.js +1 -1
  78. package/dist/components/FormStepper/FormStepper.esm.js +1 -1
  79. package/dist/components/HierarchicalTechInsightsPage/visualizations/LoadingOverlay.esm.js +1 -1
  80. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoCirclePacking.esm.js +1 -1
  81. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoIcicle.esm.js +1 -1
  82. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoSunburst.esm.js +1 -1
  83. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoTreemap.esm.js +1 -1
  84. package/dist/components/HierarchicalTechInsightsPage/visualizations/VisualizationBreadcrumb.esm.js +1 -1
  85. package/dist/components/ImportExportPanel/ImportExportPanelBUI.esm.js +1 -1
  86. package/dist/components/ImportExportPanel/ImportExportPanelDeprecated.esm.js +1 -1
  87. package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
  88. package/dist/components/OverviewPage/OverviewPageHeader.esm.js +1 -1
  89. package/dist/components/Pagination/Pagination.esm.js +1 -1
  90. package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
  91. package/dist/components/RoutingPage/RoutingPageBUI.esm.js +1 -1
  92. package/dist/components/RoutingPage/RoutingPageWrapper.esm.js +1 -1
  93. package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +1 -1
  94. package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
  95. package/dist/components/SoundcheckHeader/SoundcheckHeaderBUI.esm.js +1 -1
  96. package/dist/components/SoundcheckHeader/useHeader.esm.js +1 -1
  97. package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
  98. package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
  99. package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +1 -1
  100. package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
  101. package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
  102. package/dist/components/TechHealth/Filters/Filters.esm.js +1 -1
  103. package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +1 -1
  104. package/dist/components/TechHealth/Filters/FiltersSection.esm.js +1 -1
  105. package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +1 -1
  106. package/dist/components/TechHealth/Filters/types.esm.js +1 -1
  107. package/dist/components/TechHealth/Filters/utils.esm.js +1 -1
  108. package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
  109. package/dist/components/TechInsights/TechInsightsPage.esm.js +1 -1
  110. package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +1 -1
  111. package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +1 -1
  112. package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +1 -1
  113. package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
  114. package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +1 -1
  115. package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
  116. package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
  117. package/dist/components/TrackForm/Steps/LevelsStep/LevelsStepNew.esm.js +1 -1
  118. package/dist/components/TrackForm/TrackForm.esm.js +1 -1
  119. package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
  120. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +1 -1
  121. package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
  122. package/dist/components/TrackPage/TrackPage.esm.js +1 -1
  123. package/dist/components/TrackPage/TrackPageBUI.esm.js +1 -1
  124. package/dist/components/TrackPage/TrackStatusTableBUI.esm.js +1 -1
  125. package/dist/components/TracksPage/TracksListPageBUI.esm.js +1 -1
  126. package/dist/components/TracksPage/TracksPage.esm.js +1 -1
  127. package/dist/components/TracksTab/TracksTab.esm.js +1 -1
  128. package/dist/hooks/aggregations/useCertificationStatus.esm.js +1 -1
  129. package/dist/hooks/aggregations/useCertificationStatusHistory.esm.js +1 -1
  130. package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
  131. package/dist/hooks/aggregations/useCheckStatusHistory.esm.js +1 -1
  132. package/dist/hooks/aggregations/useCheckStatuses.esm.js +1 -1
  133. package/dist/hooks/campaigns/useGetCampaign.esm.js +1 -1
  134. package/dist/hooks/checks/useCheck.esm.js +1 -1
  135. package/dist/hooks/checks/useExecutableChecks.esm.js +1 -1
  136. package/dist/hooks/checks/useGetChecks.esm.js +1 -1
  137. package/dist/hooks/collectors/useGetCollectors.esm.js +1 -1
  138. package/dist/hooks/collectors/useGetFactSchema.esm.js +1 -1
  139. package/dist/hooks/collectors/useUpdateCollectorConfig.esm.js +1 -1
  140. package/dist/hooks/exemptions/useExemptions.esm.js +1 -1
  141. package/dist/hooks/facets/useFacetsForOwner.esm.js +1 -1
  142. package/dist/hooks/filters/useFilters.esm.js +1 -1
  143. package/dist/hooks/groups/useAllGroups.esm.js +1 -1
  144. package/dist/hooks/tracks/useGetTracksApplicableEntityCount.esm.js +1 -1
  145. package/dist/hooks/tracks/useTrack.esm.js +1 -1
  146. package/dist/hooks/useSortSearchParams.esm.js +2 -0
  147. package/dist/index.d.ts +11 -11
  148. package/dist/routes.esm.js +1 -1
  149. package/dist/utils/charts.esm.js +1 -1
  150. package/dist/utils/filters.esm.js +1 -1
  151. package/dist/utils/formStyles.esm.js +1 -1
  152. package/dist/utils/helpers.esm.js +1 -1
  153. package/dist/utils/json.esm.js +2 -0
  154. package/dist/utils/validation.esm.js +1 -1
  155. package/package.json +19 -19
  156. package/dist/components/CampaignPage/CampaignPageDeprecated.esm.js +0 -2
  157. package/dist/components/CampaignPage/CampaignStatusHistoryTile.esm.js +0 -2
  158. package/dist/components/CampaignPage/CampaignStatusTile.esm.js +0 -2
  159. package/dist/components/CampaignPage/DaysRemainingTile.esm.js +0 -2
  160. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js +0 -2
  161. package/dist/components/CampaignsPage/CampaignListPage/CampaignMetadata.esm.js +0 -2
  162. package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +0 -2
  163. package/dist/components/CampaignsPage/CampaignListPage/CampaignTypes.esm.js +0 -2
  164. package/dist/components/CampaignsPage/CampaignListPage/CampaignsOverviewSkeleton.esm.js +0 -2
  165. package/dist/components/Charts/BarChart/BarChart.esm.js +0 -2
  166. package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +0 -2
  167. package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +0 -2
  168. package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +0 -2
  169. package/dist/components/Charts/ChartTypes.esm.js +0 -2
  170. package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +0 -2
  171. package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +0 -2
  172. package/dist/components/Charts/LineChart/LineChart.esm.js +0 -2
  173. package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +0 -2
  174. package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +0 -2
  175. package/dist/components/Charts/LineChart/TableLineChart.esm.js +0 -2
  176. package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +0 -2
  177. package/dist/components/Charts/LoadingChart.esm.js +0 -2
  178. package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +0 -2
  179. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +0 -2
  180. package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +0 -2
  181. package/dist/components/CheckPage/CheckPageDeprecated.esm.js +0 -2
  182. package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +0 -2
  183. package/dist/components/CheckPage/CheckStatusTable.esm.js +0 -2
  184. package/dist/components/CheckPage/ExemptionsTable.esm.js +0 -2
  185. package/dist/components/ChecksPage/CheckListPage/CheckListPageDeprecated.esm.js +0 -2
  186. package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +0 -2
  187. package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +0 -2
  188. package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +0 -2
  189. package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +0 -2
  190. package/dist/components/ColorChip/ColorChip.esm.js +0 -2
  191. package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +0 -2
  192. package/dist/components/Expand/Expand.esm.js +0 -2
  193. package/dist/components/GroupHierarchySelector/GroupHierarchyCategorySelection.esm.js +0 -2
  194. package/dist/components/GroupHierarchySelector/GroupHierarchyChip.esm.js +0 -2
  195. package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +0 -2
  196. package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +0 -2
  197. package/dist/components/GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js +0 -2
  198. package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +0 -2
  199. package/dist/components/HierarchicalTechInsightsPage/ColorLegend.esm.js +0 -2
  200. package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +0 -2
  201. package/dist/components/HierarchicalTechInsightsPage/HierarchyTable.esm.js +0 -2
  202. package/dist/components/HierarchicalTechInsightsPage/LowestPerformingTeams.esm.js +0 -2
  203. package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +0 -2
  204. package/dist/components/HierarchicalTechInsightsPage/TeamPerformanceCard.esm.js +0 -2
  205. package/dist/components/HierarchicalTechInsightsPage/TeamPerformanceListCard.esm.js +0 -2
  206. package/dist/components/HierarchicalTechInsightsPage/TopPerformingTeams.esm.js +0 -2
  207. package/dist/components/HierarchicalTechInsightsPage/visualizations/findNodePath.esm.js +0 -2
  208. package/dist/components/LevelsTable/CheckRowContent.esm.js +0 -2
  209. package/dist/components/LevelsTable/LevelsTable.esm.js +0 -2
  210. package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +0 -2
  211. package/dist/components/OverviewChartCard/OverviewChartCardStyles.esm.js +0 -2
  212. package/dist/components/PassRateGrid/PassRateGrid.esm.js +0 -2
  213. package/dist/components/PassRateGrid/PassRateMetadata.esm.js +0 -2
  214. package/dist/components/PassRateGrid/types.esm.js +0 -2
  215. package/dist/components/PassRateTable/NewPassRateTable.esm.js +0 -2
  216. package/dist/components/PassRateTable/PassRateTable.esm.js +0 -4
  217. package/dist/components/PassRateTable/types.esm.js +0 -2
  218. package/dist/components/PassingPercentProgressbar/PassPercentageProgressbar.esm.js +0 -2
  219. package/dist/components/QuickstartPage/HowDoIListItem.esm.js +0 -2
  220. package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +0 -2
  221. package/dist/components/QuickstartPage/QuickstartPage.esm.js +0 -3
  222. package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +0 -7
  223. package/dist/components/QuickstartPage/styles.esm.js +0 -2
  224. package/dist/components/RichTooltip/RichTooltip.esm.js +0 -2
  225. package/dist/components/RoutingPage/NewFeatureTab.esm.js +0 -2
  226. package/dist/components/RoutingPage/RoutingPageDeprecated.esm.js +0 -2
  227. package/dist/components/RoutingPage/RoutingPageWrapperDeprecated.esm.js +0 -2
  228. package/dist/components/SearchBar/SearchBar.esm.js +0 -2
  229. package/dist/components/SearchFilters/SearchFilters.esm.js +0 -2
  230. package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialog.esm.js +0 -2
  231. package/dist/components/SoundcheckEntityLink/SoundcheckEntityLink.esm.js +0 -2
  232. package/dist/components/SoundcheckHeader/headerUtil.esm.js +0 -2
  233. package/dist/components/TeamStatusBar/TeamStatusBar.esm.js +0 -2
  234. package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +0 -2
  235. package/dist/components/TechHealth/TechHealth.esm.js +0 -2
  236. package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +0 -2
  237. package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +0 -2
  238. package/dist/components/TechHealthTabs/ActionColumn.esm.js +0 -2
  239. package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +0 -2
  240. package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +0 -2
  241. package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +0 -2
  242. package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +0 -2
  243. package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +0 -2
  244. package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +0 -2
  245. package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +0 -2
  246. package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +0 -2
  247. package/dist/components/TechHealthTabs/NameColumn.esm.js +0 -2
  248. package/dist/components/TechHealthTabs/OwnerColumn.esm.js +0 -2
  249. package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +0 -2
  250. package/dist/components/TechHealthTabs/PassRateTabStyles.esm.js +0 -2
  251. package/dist/components/TechHealthTabs/TechHealthExportFunctions.esm.js +0 -2
  252. package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +0 -2
  253. package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +0 -2
  254. package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +0 -2
  255. package/dist/components/TechInsights/FilterControls.esm.js +0 -2
  256. package/dist/components/TechInsights/SummaryTiles.esm.js +0 -2
  257. package/dist/components/TechInsights/TechInsightsPageDeprecated.esm.js +0 -2
  258. package/dist/components/TechInsights/TechInsightsTableView.esm.js +0 -2
  259. package/dist/components/TimePeriodBar/TimePeriodBar.esm.js +0 -2
  260. package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +0 -2
  261. package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +0 -2
  262. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +0 -2
  263. package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +0 -2
  264. package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +0 -2
  265. package/dist/components/TrackPage/TrackHistoryChart.esm.js +0 -2
  266. package/dist/components/TrackPage/TrackPageDeprecated.esm.js +0 -2
  267. package/dist/components/TrackPage/TrackProgressCard.esm.js +0 -2
  268. package/dist/components/TrackPage/TrackStatus.esm.js +0 -2
  269. package/dist/components/TrackPage/TrackStatusBar.esm.js +0 -2
  270. package/dist/components/TrackPage/TrackStatusTable.esm.js +0 -2
  271. package/dist/components/TrackPage/utils.esm.js +0 -2
  272. package/dist/components/TrackSelection/TrackSelection.esm.js +0 -2
  273. package/dist/components/TracksPage/TrackListPage/TrackEmptyState.esm.js +0 -2
  274. package/dist/components/TracksPage/TrackListPage/TrackListPageDeprecated.esm.js +0 -2
  275. package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +0 -2
  276. package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +0 -2
  277. package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +0 -2
  278. package/dist/hooks/aggregations/useAggregatedCheckPassRateTrend.esm.js +0 -2
  279. package/dist/hooks/aggregations/useAggregatedEntityPassRateTrend.esm.js +0 -2
  280. package/dist/hooks/aggregations/useAggregatedGroupPassRateTrend.esm.js +0 -2
  281. package/dist/hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js +0 -2
  282. package/dist/hooks/aggregations/useCheckPassRateTrend.esm.js +0 -2
  283. package/dist/hooks/aggregations/useEntityPassRateTrend.esm.js +0 -2
  284. package/dist/hooks/aggregations/useGroupPassRateTrend.esm.js +0 -2
  285. package/dist/hooks/aggregations/useTrackPassRateTrend.esm.js +0 -2
  286. package/dist/hooks/cache/useEntityCountCached.esm.js +0 -2
  287. package/dist/hooks/cache/useTrackCountCached.esm.js +0 -2
  288. package/dist/hooks/campaigns/useGetCampaignOwners.esm.js +0 -2
  289. package/dist/hooks/catalog/useGetEntityCount.esm.js +0 -2
  290. package/dist/hooks/checks/useGetCheckOwners.esm.js +0 -2
  291. package/dist/hooks/entities/useEntityRefsForUser.esm.js +0 -2
  292. package/dist/hooks/facets/useFacetFilters.esm.js +0 -2
  293. package/dist/hooks/heirarchy/useGroupTypeHierarchy.esm.js +0 -2
  294. package/dist/hooks/tracks/useGetTrackOwners.esm.js +0 -2
  295. package/dist/utils/colors.esm.js +0 -2
@@ -1,2 +1,2 @@
1
- import{jsx as F,Fragment as j}from"react/jsx-runtime";import{parseEntityRef as k,stringifyEntityRef as b}from"@backstage/catalog-model";import{Table as D}from"@backstage/core-components";import{makeStyles as K,useTheme as O}from"@material-ui/core";import{combineEntityFilterQueries as N,difference as A}from"@spotify/backstage-plugin-soundcheck-common";import{useState as C,useMemo as u}from"react";import{useEntitiesByRefs as B}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useGetEntityRefs as z}from"../../../hooks/catalog/useGetEntityRefs.esm.js";import{mapFiltersToCatalogFilter as R}from"../utils.esm.js";import{createEntityRefColumn as M,createSystemColumn as W,createOwnerColumn as G,createKindColumn as I,createSpecTypeColumn as Q,createSpecLifecycleColumn as X,createTagsColumn as Y}from"./EntityTableColumns.esm.js";const $=K(()=>({entityTable:{'& span[class*="CatalogReactEntityDisplayName-root"]':{"&:hover":{textDecoration:"underline"}}}})),w=[M(),W(),G(),I(),Q(),X(),Y()],q=15e3,H=({filter:y,excludeFilter:p,keyValueFilter:f,excludeKeyValueFilter:m})=>{const a=R(y,f),r=!!a?.[0]&&Object.values(a[0]).some(t=>!!t),l=p||m?R(p,m):[],e=!!l?.[0]&&Object.values(l[0]).some(t=>!!t),{data:g,isFetching:c}=z(a,e&&!r?q:void 0,r),d=g?.items.map(t=>b(t)),n=e?N(a,l):void 0,{data:h,isFetching:s}=z(n??{},void 0,r&&!!n),o=h?.items.map(t=>b(t));return{allEntityRefs:u(()=>A(d??[],o??[]),[o,d]),isLoading:c||s}},J=({filter:y,excludeFilter:p,keyValueFilter:f,excludeKeyValueFilter:m,additionalColumns:a=[],title:r,hideTags:l=!1})=>{const[e,g]=C({page:0,pageSize:10}),[c,d]=C(""),{allEntityRefs:n,isLoading:h}=H({filter:y,excludeFilter:p,keyValueFilter:f,excludeKeyValueFilter:m}),s=u(()=>{const i=new RegExp(c,"i");return n.filter(V=>k(V).name.match(i))},[n,c]),o=s.length,t=O(),x=$(),E=u(()=>s.slice(e.page*e.pageSize,(e.page+1)*e.pageSize),[s,e.page,e.pageSize]),{data:T,isLoading:S}=B({entityRefs:E}),v=u(()=>l?[...w.slice(0,-1),...a]:[...w,...a],[a,l]),L=o>0?`All (${o||0}) `:"No Items",P=r||L;return F(j,{children:F("div",{className:x.entityTable,children:F(D,{title:P,columns:v,subtitle:o===0?"Add or adjust filters to see preview.":"",data:T?.items?.filter(i=>!!i)??[],isLoading:S||h,options:{padding:"dense",paging:o>e.pageSize,toolbar:!0,draggable:!1,tableLayout:"fixed",search:!0,showTitle:!0,rowStyle:{fontSize:t.typography.body1.fontSize},showFirstLastPageButtons:!1,emptyRowsWhenPaging:!0,pageSizeOptions:[10,25,50],loadingType:"linear",showEmptyDataSourceMessage:!S,pageSize:e.pageSize,sorting:!1},onPageChange:i=>{g({...e,page:i})},onSearchChange:i=>{d(i)},onRowsPerPageChange:i=>{g({...e,pageSize:i})},page:e.page,totalCount:o,localization:{pagination:{labelDisplayedRows:""}}})})})};export{J as FilterPreviewTable};
1
+ import{jsx as f,Fragment as P}from"react/jsx-runtime";import{parseEntityRef as j,stringifyEntityRef as S}from"@backstage/catalog-model";import{Table as D}from"@backstage/core-components";import{makeStyles as O,useTheme as N}from"@material-ui/core";import{combineEntityFilterQueries as A,difference as B}from"@spotify/backstage-plugin-soundcheck-common";import{useState as C,useMemo as d}from"react";import{useEntitiesByRefs as M}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useGetEntityRefs as F}from"../../../hooks/catalog/useGetEntityRefs.esm.js";import{mapFiltersToCatalogFilter as b}from"../utils.esm.js";import{createEntityRefColumn as W,createSystemColumn as k,createOwnerColumn as G,createKindColumn as I,createSpecTypeColumn as K,createSpecLifecycleColumn as Q,createTagsColumn as U}from"./EntityTableColumns.esm.js";const X=O(()=>({entityTable:{'& span[class*="CatalogReactEntityDisplayName-root"]':{"&:hover":{textDecoration:"underline"}}}})),z=[W(),k(),G(),I(),K(),Q(),U()],$=15e3,q=({includeFilter:u,excludeFilter:p})=>{const a=b(u),r=!!a?.[0]&&Object.values(a[0]).some(t=>!!t),n=p?.length?b(p):[],e=!!n?.[0]&&Object.values(n[0]).some(t=>!!t),{data:m,isFetching:g}=F(a,e&&!r?$:void 0,r),c=m?.items.map(t=>S(t)),l=e?A(a,n):void 0,{data:y,isFetching:s}=F(l??{},void 0,r&&!!l),o=y?.items.map(t=>S(t));return{allEntityRefs:d(()=>B(c??[],o??[]),[o,c]),isLoading:g||s}},H=({includeFilter:u,excludeFilter:p,additionalColumns:a=[],title:r,hideTags:n=!1})=>{const[e,m]=C({page:0,pageSize:10}),[g,c]=C(""),{allEntityRefs:l,isLoading:y}=q({includeFilter:u,excludeFilter:p}),s=d(()=>{const i=new RegExp(g,"i");return l.filter(L=>j(L).name.match(i))},[l,g]),o=s.length,t=N(),R=X(),w=d(()=>s.slice(e.page*e.pageSize,(e.page+1)*e.pageSize),[s,e.page,e.pageSize]),{data:E,isLoading:h}=M({entityRefs:w}),T=d(()=>n?[...z.slice(0,-1),...a]:[...z,...a],[a,n]),v=o>0?`All (${o||0}) `:"No Items",x=r||v;return f(P,{children:f("div",{className:R.entityTable,children:f(D,{title:x,columns:T,subtitle:o===0?"Add or adjust filters to see preview.":"",data:E?.items?.filter(i=>!!i)??[],isLoading:h||y,options:{padding:"dense",paging:o>e.pageSize,toolbar:!0,draggable:!1,tableLayout:"fixed",search:!0,showTitle:!0,rowStyle:{fontSize:t.typography.body1.fontSize},showFirstLastPageButtons:!1,emptyRowsWhenPaging:!0,pageSizeOptions:[10,25,50],loadingType:"linear",showEmptyDataSourceMessage:!h,pageSize:e.pageSize,sorting:!1},onPageChange:i=>{m({...e,page:i})},onSearchChange:i=>{c(i)},onRowsPerPageChange:i=>{m({...e,pageSize:i})},page:e.page,totalCount:o,localization:{pagination:{labelDisplayedRows:""}}})})})};export{H as FilterPreviewTable};
2
2
  //# sourceMappingURL=FilterPreviewTable.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as v,Fragment as z}from"react/jsx-runtime";import{Box as i,IconButton as T,Divider as V,Button as B,FormHelperText as A,TextField as W,Chip as E}from"@material-ui/core";import F from"@material-ui/icons/Add";import G from"@material-ui/icons/Delete";import{useEffect as j,useCallback as f,useMemo as L,useState as M}from"react";import{useImmer as w}from"use-immer";import{SoundcheckDialog as $}from"../SoundcheckDialog/SoundcheckDialog.esm.js";const D=({value:h,onChange:c,onKeyDown:u,placeholder:o,endAdornment:m,error:r,helperText:t})=>v(z,{children:[t&&e(A,{error:r,children:t}),e(i,{display:"flex",alignItems:"center",children:e(W,{value:h,onChange:c,variant:"outlined",margin:"dense",fullWidth:!0,onKeyDown:u,placeholder:o,InputProps:{endAdornment:m},error:r})})]}),H=({values:h,addValue:c,deleteValue:u})=>{const[o,m]=M("");return v(i,{width:"100%",children:[e(i,{marginTop:1,marginBottom:1,display:"flex",gridGap:1,flexWrap:"wrap",children:h.map(r=>e(E,{label:r,size:"small",onDelete:()=>u(r),style:{marginBottom:4}},r))}),e(D,{value:o,onChange:r=>m(r.currentTarget.value),onKeyDown:r=>{r.key==="Enter"&&(c(o),m(""))},placeholder:"Type a value and press enter to add to value list.",endAdornment:e(i,{display:"flex",alignItems:"center",children:e(B,{onClick:()=>c(o),style:{padding:0},size:"small",variant:"text",disabled:!o?.length,children:"Add"})})})]})},P=({title:h,open:c,handleClose:u,values:o,onSave:m,validateKey:r})=>{const[t,d]=w([{key:"",value:[]}]);j(()=>{o?.length>0?d(o):d([{key:"",value:[]}])},[o]);const[y,g]=w({}),x=f(({key:a,value:l,idx:n})=>{d(p=>{const s=p[n];s.key=a===void 0?s.key:a,s.value=l===void 0?s.value:l,a&&y[n]&&g(k=>{k[n]=""})})},[y,g,d]),I=f(a=>{d(l=>{l.splice(a,1),l.length===0&&l.push({key:"",value:[]})})},[d]),b=f(a=>{d(l=>{l.splice(a+1,0,{key:"",value:[]})})},[d]),K=f(()=>{let a=!1;if(r){const n=t.map(s=>s.key);let p=0;g(s=>{for(const k of n){const{errorMessage:C}=r(k);C&&(a=!0),s[p]=C??"",p++}})}if(a)return;const l=t.filter(n=>n.key&&n.value);m(l),u()},[r,t,m,u,g]),S=L(()=>t.every(a=>!!a.key&&a.value?.length||!a.key&&!a.value?.length),[t]);return e($,{title:h,open:c,handleClose:u,fullScreen:!1,children:v(i,{marginLeft:1,minWidth:640,children:[t.map((a,l)=>v(i,{children:[v(i,{display:"flex",alignItems:"flex-end",gridGap:12,marginBottom:2,children:[e(i,{flexGrow:1,children:e(D,{value:a.key,onChange:n=>x({key:n.target.value,idx:l}),placeholder:"Key",error:!!y[l],helperText:y[l]})}),e(i,{width:480,children:e(H,{values:a.value,addValue:n=>{x({idx:l,value:[...a.value,n]})},deleteValue:n=>{x({idx:l,value:a.value.filter(p=>p!==n)})}})}),e(i,{marginBottom:.75,children:e(T,{"aria-label":`remove index ${l} key value pair`,size:"small",onClick:()=>b(l),children:e(F,{})})}),e(i,{marginBottom:.75,children:e(T,{"aria-label":`remove index ${l} key value pair`,size:"small",onClick:()=>I(l),children:e(G,{})})})]}),e(V,{})]},l)),e(i,{display:"flex",paddingTop:2,marginTop:1,children:e(B,{variant:"contained",size:"medium",color:"primary",onClick:K,disabled:!S,children:"Save"})})]})})};export{P as KeyValueInputDialog};
1
+ import{jsx as e,jsxs as v,Fragment as z}from"react/jsx-runtime";import{Box as i,IconButton as B,Divider as A,Button as T,FormHelperText as V,TextField as W,Chip as E}from"@material-ui/core";import F from"@material-ui/icons/Add";import G from"@material-ui/icons/Delete";import{useEffect as j,useCallback as f,useMemo as L,useState as M}from"react";import{useImmer as w}from"use-immer";import{SoundcheckDialog as $}from"../SoundcheckDialog/SoundcheckDialog.esm.js";const D=({value:h,onChange:c,onKeyDown:u,placeholder:o,endAdornment:m,error:r,helperText:t})=>v(z,{children:[t&&e(V,{error:r,children:t}),e(i,{display:"flex",alignItems:"center",children:e(W,{value:h,onChange:c,variant:"outlined",margin:"dense",fullWidth:!0,onKeyDown:u,placeholder:o,InputProps:{endAdornment:m},error:r})})]}),H=({values:h,addValue:c,deleteValue:u})=>{const[o,m]=M("");return v(i,{width:"100%",children:[e(i,{marginTop:1,marginBottom:1,display:"flex",gridGap:1,flexWrap:"wrap",children:h.map(r=>e(E,{label:r,size:"small",onDelete:()=>u(r),style:{marginBottom:4}},r))}),e(D,{value:o,onChange:r=>m(r.currentTarget.value),onKeyDown:r=>{r.key==="Enter"&&(c(o),m(""))},placeholder:"Type a value and press enter to add to value list.",endAdornment:e(i,{display:"flex",alignItems:"center",children:e(T,{onClick:()=>c(o),style:{padding:0},size:"small",variant:"text",disabled:!o?.length,children:"Add"})})})]})},P=({title:h,open:c,handleClose:u,values:o,onSave:m,validateKey:r})=>{const[t,d]=w([{key:"",value:[]}]);j(()=>{o?.length>0?d(o):d([{key:"",value:[]}])},[o]);const[y,g]=w({}),x=f(({key:a,value:l,idx:n})=>{d(p=>{const s=p[n];s.key=a===void 0?s.key:a,s.value=l===void 0?s.value:l,a&&y[n]&&g(k=>{k[n]=""})})},[y,g,d]),I=f(a=>{d(l=>{l.splice(a,1),l.length===0&&l.push({key:"",value:[]})})},[d]),b=f(a=>{d(l=>{l.splice(a+1,0,{key:"",value:[]})})},[d]),K=f(()=>{let a=!1;if(r){const n=t.map(s=>s.key);let p=0;g(s=>{for(const k of n){const{errorMessage:C}=r(k);C&&(a=!0),s[p]=C??"",p++}})}if(a)return;const l=t.filter(n=>n.key&&n.value);m(l),u()},[r,t,m,u,g]),S=L(()=>t.every(a=>!!a.key&&a.value?.length||!a.key&&!a.value?.length),[t]);return e($,{title:h,open:c,handleClose:u,fullScreen:!1,children:v(i,{marginLeft:1,minWidth:640,children:[t.map((a,l)=>v(i,{children:[v(i,{display:"flex",alignItems:"flex-end",gridGap:12,marginBottom:2,children:[e(i,{flexGrow:1,children:e(D,{value:a.key,onChange:n=>x({key:n.target.value,idx:l}),placeholder:"Key",error:!!y[l],helperText:y[l]})}),e(i,{width:480,children:e(H,{values:a.value,addValue:n=>{x({idx:l,value:[...a.value,n]})},deleteValue:n=>{x({idx:l,value:a.value.filter(p=>p!==n)})}})}),e(i,{marginBottom:.75,children:e(B,{"aria-label":`remove index ${l} key value pair`,size:"small",onClick:()=>b(l),children:e(F,{})})}),e(i,{marginBottom:.75,children:e(B,{"aria-label":`remove index ${l} key value pair`,size:"small",onClick:()=>I(l),children:e(G,{})})})]}),e(A,{})]},l)),e(i,{display:"flex",paddingTop:2,marginTop:1,children:e(T,{variant:"contained",size:"medium",color:"primary",onClick:K,disabled:!S,children:"Save"})})]})})};export{P as KeyValueInputDialog};
2
2
  //# sourceMappingURL=KeyValueInputDialog.esm.js.map
@@ -1,2 +1,2 @@
1
- const e=()=>({selectedLabels:[],selectedAnnotations:[],selectedOtherFilters:[]}),s=()=>({selectedKinds:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[],selectedTypes:[]}),t=[{facet:"kind",label:"Kind",key:"selectedKinds"},{facet:"spec.type",label:"Type",key:"selectedTypes"},{facet:"spec.lifecycle",label:"Lifecycle",key:"selectedLifecycles"},{facet:"relations.ownedBy",label:"Owner",key:"selectedOwners",isOwnerSelect:!0},{facet:"spec.system",label:"System",key:"selectedSystems"},{facet:"metadata.tags",label:"Tags",key:"selectedTags"}];export{t as FILTER_OPTIONS,s as emptyFilters,e as emptyKeyValueFilters};
1
+ const e=()=>({selectedKinds:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[],selectedTypes:[],selectedLabels:[],selectedAnnotations:[],selectedOtherFilters:[]}),s=[{facet:"kind",label:"Kind",key:"selectedKinds"},{facet:"spec.type",label:"Type",key:"selectedTypes"},{facet:"spec.lifecycle",label:"Lifecycle",key:"selectedLifecycles"},{facet:"relations.ownedBy",label:"Owner",key:"selectedOwners",isOwnerSelect:!0},{facet:"spec.system",label:"System",key:"selectedSystems"},{facet:"metadata.tags",label:"Tags",key:"selectedTags"}];export{s as FILTER_OPTIONS,e as emptyFilters};
2
2
  //# sourceMappingURL=types.esm.js.map
@@ -1,2 +1,2 @@
1
- import{stringifyEntityRef as g,parseEntityRef as h,DEFAULT_NAMESPACE as O}from"@backstage/catalog-model";import{asArray as n}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as d}from"lodash";import{emptyFilters as u,emptyKeyValueFilters as f}from"./types.esm.js";const c="spec.owner",i={selectedKinds:"kind",selectedTypes:"spec.type",selectedLifecycles:"spec.lifecycle",selectedOwners:"relations.ownedBy",selectedSystems:"spec.system",selectedTags:"metadata.tags"},m=e=>{for(const s of Object.values(i)){if(e===s)return{isValid:!1,errorMessage:`Filter key ${e} is part of the standard key selection.`};if(["metadata.annotations","metadata.labels"].some(a=>e.startsWith(a)))return{isValid:!1,errorMessage:`Filter key ${e} is part of the standard key value selection.`}}return{isValid:!0}},p=e=>e?e.map(s=>g(h(s,{defaultKind:"group",defaultNamespace:O}))):[],y=e=>{const s=e?n(e):[];if(s.length){const a=s[0],t=Object.keys(i).reduce((o,l)=>l===c?(o[i.selectedOwners]=p(n(a?.[c]??[])),o):(o[l]=n(a?.[i[l]]??[]),o),{}),r=a?.[c];return r?.length&&(t.selectedOwners=[...t.selectedOwners,...p(r)]),t}return u()},F=e=>{if(!e||e&&e.hasOwnProperty("catalog"))return f();const s=f(),a=n(e);if(a.length>0){const t=a[0];for(const[r,o]of Object.entries(t)){if(r.startsWith("metadata.labels")){let l=r.replace(/^metadata.labels/,"");l=l.replace(/^\.|^\[\'|^\[\"|\'\]/,""),l=l.replace(/\'\]$|\"\]$/,""),s.selectedLabels.push({key:l,value:n(o)})}else if(r.startsWith("metadata.annotations")){let l=r.replace(/^metadata.annotations/,"");l=l.replace(/^\.|^\[\'|^\[\"|\'\]/,""),l=l.replace(/\'\]$|\"\]$/,""),s.selectedAnnotations.push({key:l,value:n(o)})}m(r).isValid&&s.selectedOtherFilters.push({key:r,value:n(o)})}}return s},b=e=>{if(e&&!e.hasOwnProperty("catalog"))return y(e);const s=Object.keys(i).reduce((t,r)=>(t[r]=n(e?.catalog?.[i[r]]??[]),t),{}),a=e?.catalog?.[c];return a?.length&&(s.selectedOwners=[...s.selectedOwners,...p(a)]),s},v=(e,s)=>{const a={};if(e&&Object.values(e).some(t=>t.length>0))for(const[t,r]of Object.entries(e))r?.length>0&&(a[i[t]]=r);if(s){for(const t of s.selectedLabels)t.value?.length>0&&(a[`metadata.labels.${t.key}`]=t.value);for(const t of s.selectedAnnotations)t.value?.length>0&&(a[`metadata.annotations.${t.key}`]=t.value);for(const t of s.selectedOtherFilters)t.value?.length>0&&(a[t.key]=t.value)}if(!d(a))return[a]},k=(e=u(),s=f())=>Object.values(e).some(a=>!d(a))||Object.values(s).some(a=>!d(a));export{k as filterPresent,m as isValidOtherFilterKey,y as mapCatalogFilterToFilters,F as mapCatalogFilterToFormKeyValueFilters,v as mapFiltersToCatalogFilter,b as mapInputFilterToFormFilters};
1
+ import{stringifyEntityRef as b,parseEntityRef as F,DEFAULT_NAMESPACE as k}from"@backstage/catalog-model";import{asArray as i}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as m}from"lodash";import{emptyFilters as f}from"./types.esm.js";const p="spec.owner",n={selectedKinds:"kind",selectedTypes:"spec.type",selectedLifecycles:"spec.lifecycle",selectedOwners:"relations.ownedBy",selectedSystems:"spec.system",selectedTags:"metadata.tags"},h=t=>Object.values(n).includes(t)||t===p||["metadata.annotations","metadata.labels"].some(s=>t.startsWith(s))?{isValid:!1,errorMessage:`Filter key ${t} is already part of the standard key selection.`}:t==="catalog"?{isValid:!1,errorMessage:"Legacy catalog filters are not supported"}:{isValid:!0},u=t=>t?t.map(s=>b(F(s,{defaultKind:"group",defaultNamespace:k}))):[],O=t=>{const s=t?i(t):[];if(s.length){const a=[];for(const l of s){const e=Object.keys(n).reduce((r,c)=>c===p?(r[n.selectedOwners]=u(i(l?.[p]??[])),r):(r[c]=i(l?.[n[c]]??[]),r),f()),d=l?.[p];d?.length&&(e.selectedOwners=[...e.selectedOwners,...u(d)]);const y=new RegExp(/^\.|^\['|^\["/),g=new RegExp(/']$|"]$/);for(const[r,c]of Object.entries(l)){if(r.startsWith("metadata.labels")){let o=r.replace(/^metadata.labels/,"");o=o.replace(y,""),o=o.replace(g,""),e.selectedLabels.push({key:o,value:i(c)})}else if(r.startsWith("metadata.annotations")){let o=r.replace(/^metadata.annotations/,"");o=o.replace(y,""),o=o.replace(g,""),e.selectedAnnotations.push({key:o,value:i(c)})}h(r).isValid&&e.selectedOtherFilters.push({key:r,value:i(c)})}a.push(e)}return a}return[f()]},v=t=>{if(t&&!t.hasOwnProperty("catalog"))return O(t);const s=Object.keys(n).reduce((l,e)=>(l[e]=i(t?.catalog?.[n[e]]??[]),l),f()),a=t?.catalog?.[p];return a?.length&&(s.selectedOwners=[...s.selectedOwners,...u(a)]),[s]},w=t=>{const s=[];for(const a of t??[]){const l={};if(a&&Object.values(a).some(e=>e.length>0))for(const[e,d]of Object.entries(a))Object.keys(n).includes(e)&&d?.length>0&&(l[n[e]]=d);for(const e of a.selectedLabels??[])e.value?.length>0&&(l[`metadata.labels.${e.key}`]=e.value);for(const e of a.selectedAnnotations??[])e.value?.length>0&&(l[`metadata.annotations.${e.key}`]=e.value);for(const e of a.selectedOtherFilters??[])e.value?.length>0&&(l[e.key]=e.value);m(l)||s.push(l)}if(!m(s))return s},j=(t=[f()])=>t.some(s=>Object.values(s).some(a=>!m(a)));export{j as filterPresent,h as isValidOtherFilterKey,O as mapCatalogFilterToFilters,w as mapFiltersToCatalogFilter,v as mapInputFilterToFormFilters};
2
2
  //# sourceMappingURL=utils.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as a,jsx as e,Fragment as d}from"react/jsx-runtime";import{createElement as w}from"react";import{parseEntityRef as R}from"@backstage/catalog-model";import{useApi as N,configApiRef as B}from"@backstage/core-plugin-api";import{EntityDisplayName as f}from"@backstage/plugin-catalog-react";import{makeStyles as j,Box as m,Typography as y,Button as u,Grid as r,TextField as z,Checkbox as P,Chip as W}from"@material-ui/core";import{Autocomplete as D}from"@material-ui/lab";import{combineEntityFilterQueries as G,getGroupFilterFromConfig as I}from"@spotify/backstage-plugin-soundcheck-common";import{EntitiesAutocompletePicker as Q}from"../EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js";import{EntityAutocompletePicker as p}from"../Filter/EntityAutocompletePicker.esm.js";import{FormFieldLabel as X}from"../FormFieldLabel/FormFieldLabel.esm.js";const b=(i,{selected:l})=>a(d,{children:[e(P,{value:i,checked:l,color:"primary"}),e(f,{entityRef:typeof i=="string"?i:i.value})]}),C=(i,l)=>e(d,{children:i.map((n,s)=>{const o=typeof n=="string"?n:n.value;return w(W,{...l({index:s}),key:o,label:e(f,{entityRef:o}),size:"small"})})}),_=i=>{try{return R(i).kind.toLowerCase()==="system"}catch{return!1}},$=j(i=>({sidebar:{width:"275px",flexShrink:0,height:"100%",padding:i.spacing(3),display:"flex",flexDirection:"column",borderRight:`1px solid ${i.palette.divider}`},filterLabel:{fontWeight:"bold",marginBottom:i.spacing(1)},entityFilterLabel:{fontWeight:"bold",marginTop:i.spacing(2)},additionalFilters:{marginTop:i.spacing(2)}})),q=({trackFilter:i,stagedTypes:l,stagedLifecycles:n,stagedOwners:s,stagedSystems:o,stagedCertificationStatus:F,onTypesChange:x,onLifecyclesChange:v,onOwnersChange:k,onSystemsChange:T,onCertificationStatusChange:h,onApplyFilters:S,onClearFilters:A,hasFilterChanges:L,children:g})=>{const c=$(),E=N(B);return a("div",{className:c.sidebar,children:[a(m,{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1,children:[e(y,{variant:"subtitle2",children:"Filters"}),(l.length>0||n.length>0||s.length>0||o.length>0)&&e(u,{size:"small",onClick:A,children:"Clear All"})]}),a(r,{container:!0,spacing:1,children:[e(r,{item:!0,xs:12,children:e(p,{facet:"spec.type",label:"Type",values:l,onChange:t=>x(t??[]),filter:i})}),e(r,{item:!0,xs:12,children:e(p,{facet:"spec.lifecycle",label:"Lifecycle",values:n,onChange:t=>v(t??[]),filter:i})}),e(r,{item:!0,xs:12,children:e(Q,{label:"Owner",values:s,onChange:t=>k(t??[]),filter:G({kind:["group"]},I(E)),renderOption:b,renderTags:C})}),e(r,{item:!0,xs:12,children:e(p,{facet:"relations.partOf",label:"System",values:o,onChange:t=>T(t??[]),filter:i,renderOption:b,renderTags:C,facetFilter:_})}),h&&a(d,{children:[e(r,{item:!0,xs:12,children:e(y,{variant:"subtitle2",className:c.entityFilterLabel,children:"Entity Table Filters"})}),e(r,{item:!0,xs:12,children:a(m,{padding:0,marginBottom:1,children:[e(X,{title:"Status"}),e(D,{value:F,renderInput:t=>e(z,{...t,variant:"outlined"}),onChange:(t,O)=>h(O??""),options:["Passed","Failed","Not Reported"]})]})})]})]}),g&&e("div",{className:c.additionalFilters,children:g}),e(m,{mt:2,children:e(u,{variant:"contained",color:"primary",size:"small",fullWidth:!0,onClick:S,disabled:!L,children:"Apply Filters"})})]})};export{q as FilterSidebar};
1
+ import"react/jsx-runtime";import"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import{makeStyles as t}from"@material-ui/core";import"@material-ui/lab";import"@spotify/backstage-plugin-soundcheck-common";import"../EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js";import"../Filter/EntityAutocompletePicker.esm.js";import"../FormFieldLabel/FormFieldLabel.esm.js";t(i=>({sidebar:{width:"275px",flexShrink:0,height:"100%",padding:i.spacing(3),display:"flex",flexDirection:"column",borderRight:`1px solid ${i.palette.divider}`},filterLabel:{fontWeight:"bold",marginBottom:i.spacing(1)},entityFilterLabel:{fontWeight:"bold",marginTop:i.spacing(2)},additionalFilters:{marginTop:i.spacing(2)}}));
2
2
  //# sourceMappingURL=FilterSidebar.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as c,jsx as e}from"react/jsx-runtime";import{makeStyles as C,Box as a,TextField as S,FormControlLabel as b,Checkbox as g,Typography as k}from"@material-ui/core";import x from"@material-ui/icons/CheckBox";import L from"@material-ui/icons/CheckBoxOutlineBlank";import I from"@material-ui/icons/ExpandMore";import{Autocomplete as A}from"@material-ui/lab";import{useState as E,useEffect as F,useCallback as m}from"react";import{CheckIcon as O}from"../CheckIcon/CheckIcon.esm.js";import{CheckState as r}from"../CheckPage/utils.esm.js";import{FormFieldLabel as T}from"../FormFieldLabel/FormFieldLabel.esm.js";import{ListboxVirtualized as y}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const z=[r.PASSED,r.FAILED,r.WARNING,r.EXEMPT,r.NOT_APPLICABLE,r.ERROR],N=C({container:{padding:0},formControl:{flexGrow:1},label:{lineHeight:"1em"}}),p=l=>l.toLowerCase().split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" "),P=(l,{selected:t})=>e(b,{onClick:o=>o.preventDefault(),control:e(g,{icon:e(L,{fontSize:"small"}),checkedIcon:e(x,{fontSize:"small"}),checked:t}),label:c(a,{display:"flex",alignItems:"center",children:[e(O,{result:l}),e(a,{mr:1}),e(k,{children:p(l)})]})}),R=({states:l,stagedStates:t,onStagedStatesChange:o})=>{const i=N(),[d,n]=E(!1);F(()=>{o(l)},[l,o]);const f=m((s,h)=>{o(h)},[o]),u=m(()=>{o(t?.length?t:[])},[t,o]);return c(a,{pb:1,pt:1,className:i.container,children:[e(T,{title:"State",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/filters"}),e(A,{open:d,onOpen:()=>n(!0),onClose:()=>n(!1),className:i.formControl,multiple:!0,limitTags:4,disableCloseOnSelect:!0,"aria-label":"State",options:z,value:t,getOptionLabel:p,onChange:f,onBlur:u,ListboxComponent:y,renderOption:P,size:"small",popupIcon:e(I,{"data-testid":"selected-facets-expand"}),renderInput:s=>e(S,{...s,variant:"outlined"})})]})};export{R as StateFilter};
1
+ import"react/jsx-runtime";import{makeStyles as o}from"@material-ui/core";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/icons/ExpandMore";import"@material-ui/lab";import"react";import"../CheckIcon/CheckIcon.esm.js";import"../../graphql/generated/index.esm.js";import"../FormFieldLabel/FormFieldLabel.esm.js";import"../ListboxVirtualized/ListboxVirtualized.esm.js";o({container:{padding:0},formControl:{flexGrow:1},label:{lineHeight:"1em"}});
2
2
  //# sourceMappingURL=StateFilter.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as n,jsxs as P,Fragment as T}from"react/jsx-runtime";import{makeStyles as V,TextField as v,IconButton as z}from"@material-ui/core";import j from"@material-ui/icons/Clear";import{Autocomplete as k}from"@material-ui/lab";import{useState as F,useMemo as W}from"react";import{ListboxVirtualized as y}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const B=V(l=>({clearIndicator:{marginRight:l.spacing(.5)}})),D=({options:l,onChange:r,value:t,placeholder:d,getOptionLabel:s,disabled:p,fullWidth:u,noOptionsText:m,freeSolo:c=!1,isLoading:g=!1,autoSelect:I=!0,renderOption:f,testId:h,disableCloseOnSelect:S,multiple:o,multipleValue:a,getOptionSelected:b})=>{const[C,O]=F(t??""),x=B(),A=W(()=>o?a||[]:t||null,[o,a,t]),L=!o&&t;return n(k,{multiple:o,disableCloseOnSelect:S,options:l,inputValue:C,classes:{clearIndicator:x.clearIndicator},onInputChange:(e,i)=>O(i),onChange:(e,i)=>r(i),value:A,getOptionLabel:s,ListboxComponent:y,disabled:p,fullWidth:u,noOptionsText:m,freeSolo:c,loading:g,closeIcon:null,disableClearable:!0,getOptionSelected:b,autoSelect:I,renderOption:f,renderTags:()=>null,"data-testid":h,renderInput:e=>n(v,{...e,placeholder:d,variant:"outlined",margin:"dense",InputProps:{...e.InputProps,endAdornment:L?P(T,{children:[n(z,{onClick:()=>r(""),size:"small",children:n(j,{fontSize:"small"})}),e.InputProps.endAdornment]}):e.InputProps.endAdornment}})})};export{D as ControlledAutocomplete};
1
+ import{jsx as n,jsxs as T,Fragment as V}from"react/jsx-runtime";import{makeStyles as v,TextField as z,IconButton as j}from"@material-ui/core";import k from"@material-ui/icons/Clear";import{Autocomplete as D}from"@material-ui/lab";import{useState as F,useMemo as W}from"react";import{ListboxVirtualized as y}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const B=v(l=>({clearIndicator:{marginRight:l.spacing(.5)}})),M=({options:l,onChange:r,value:t,placeholder:d,getOptionLabel:s,disabled:p,fullWidth:u,noOptionsText:m,freeSolo:c=!1,isLoading:g=!1,autoSelect:b=!0,renderOption:I,testId:O,disableCloseOnSelect:f,multiple:o,multipleValue:a,getOptionSelected:S,getOptionDisabled:h})=>{const[C,x]=F(t??""),A=B(),L=W(()=>o?a||[]:t||null,[o,a,t]),P=!o&&t;return n(D,{multiple:o,disableCloseOnSelect:f,options:l,inputValue:C,classes:{clearIndicator:A.clearIndicator},onInputChange:(e,i)=>x(i),onChange:(e,i)=>r(i),value:L,getOptionLabel:s,ListboxComponent:y,disabled:p,fullWidth:u,noOptionsText:m,freeSolo:c,loading:g,closeIcon:null,disableClearable:!0,getOptionSelected:S,getOptionDisabled:h,autoSelect:b,renderOption:I,renderTags:()=>null,"data-testid":O,renderInput:e=>n(z,{...e,placeholder:d,variant:"outlined",margin:"dense",InputProps:{...e.InputProps,endAdornment:P?T(V,{children:[n(j,{onClick:()=>r(""),size:"small",children:n(k,{fontSize:"small"})}),e.InputProps.endAdornment]}):e.InputProps.endAdornment}})})};export{M as ControlledAutocomplete};
2
2
  //# sourceMappingURL=ControlledAutocomplete.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as e}from"react/jsx-runtime";import{Typography as p}from"@material-ui/core";import{formStyles as s}from"../../utils/formStyles.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"lodash";import{FilterComponent as c}from"../Filter/FilterComponent.esm.js";const n=({description:r,name:i,keyValueFilterName:t,excludeFilterName:l,excludeKeyValueFilterName:m,disabled:o})=>{const a=s();return d("div",{className:a.filters,children:[e(p,{variant:"body2",children:r}),e(c,{filterName:i,keyValueFilterName:t,disabled:o,excludeFilterName:l,excludeKeyValueFilterName:m})]})};export{n as FormFilterSection};
1
+ import{jsxs as l,jsx as e}from"react/jsx-runtime";import{Typography as d}from"@material-ui/core";import{formStyles as n}from"../../utils/formStyles.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"lodash";import{FilterComponent as p}from"../Filter/FilterComponent.esm.js";const s=({description:r,includeFilterName:i,excludeFilterName:t,disabled:o})=>{const m=n();return l("div",{className:m.filters,children:[e(d,{variant:"body2",children:r}),e(p,{includeFilterName:i,excludeFilterName:t,disabled:o})]})};export{s as FormFilterSection};
2
2
  //# sourceMappingURL=FormFilterSection.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e,Fragment as C,jsxs as n}from"react/jsx-runtime";import{makeStyles as N,Grid as r,Card as T,Stepper as F,Step as L,StepLabel as w,StepContent as R,Box as j,Button as s}from"@material-ui/core";import{useStepper as A}from"../../hooks/useStepper.esm.js";import{formStyles as P}from"../../utils/formStyles.esm.js";import{FooterButtons as V}from"../FooterButtons/FooterButtons.esm.js";const G=N(i=>({iconRoot:{color:i.palette.action.disabledBackground},iconText:{fill:i.palette.text.secondary},iconActive:{"& text":{fill:i.palette.primary.contrastText}}})),I=({onClose:i,handleSubmit:p,trigger:d,onSubmit:m,initialVisited:h,stepNameMap:x,steps:l,isLoading:S,isReadOnly:v,saveButtonText:u})=>{const t=P(),a=G(),{activeStep:b,handleNext:B,handleBack:f,isPreviousStep:g,isVisitedStep:k,onStepClick:y}=A(h,x);return e(C,{children:n(r,{container:!0,spacing:2,className:t.root,children:[e(r,{item:!0,style:{width:"100%"},children:e(T,{className:t.card,children:e(F,{className:t.stepper,activeStep:b,orientation:"vertical",children:l.map((c,o)=>n(L,{children:[e(w,{className:g(o)||k(o)?t.stepLabel:void 0,onClick:()=>y(o),StepIconProps:{classes:{root:a.iconRoot,text:a.iconText,active:a.iconActive}},children:c.label}),n(R,{children:[c.content(),e(j,{className:t.buttonChoices,sx:{mb:2},children:n("div",{children:[o!==0&&e(s,{className:t.backButton,onClick:f,children:"Back"}),o!==l.length-1&&e(s,{variant:"contained",color:"primary",onClick:async()=>{await B(d)},children:"Next"})]})})]})]},c.label))})})}),e(r,{item:!0,xs:12,children:e(V,{onCancel:i,saveButtonText:u,isLoading:S,onSave:v?void 0:p(m)})})]})})};export{I as FormStepper};
1
+ import{jsx as e,Fragment as N,jsxs as n}from"react/jsx-runtime";import{makeStyles as f,Grid as r,Card as T,Stepper as F,Step as L,StepLabel as w,StepContent as R,Box as j,Button as s}from"@material-ui/core";import{useStepper as A}from"../../hooks/useStepper.esm.js";import{formStyles as P}from"../../utils/formStyles.esm.js";import{FooterButtons as V}from"../FooterButtons/FooterButtons.esm.js";const G=f(i=>({iconRoot:{color:i.palette.action.disabledBackground},iconText:{fill:i.palette.text.secondary},iconActive:{"& text":{fill:i.palette.primary.contrastText}}})),I=({onClose:i,handleSubmit:p,trigger:d,onSubmit:m,initialVisited:h,stepNameMap:x,steps:l,isLoading:S,isReadOnly:v,saveButtonText:u})=>{const t=P(),a=G(),{activeStep:b,handleNext:B,handleBack:C,isPreviousStep:g,isVisitedStep:k,onStepClick:y}=A(h,x);return e(N,{children:n(r,{container:!0,spacing:2,className:t.root,children:[e(r,{item:!0,style:{width:"100%"},children:e(T,{className:t.card,children:e(F,{className:t.stepper,activeStep:b,orientation:"vertical",children:l.map((c,o)=>n(L,{children:[e(w,{className:g(o)||k(o)?t.stepLabel:void 0,onClick:()=>y(o),StepIconProps:{classes:{root:a.iconRoot,text:a.iconText,active:a.iconActive}},children:c.label}),n(R,{children:[c.content(),e(j,{className:t.buttonChoices,sx:{mb:2},children:n("div",{children:[o!==0&&e(s,{className:t.backButton,onClick:C,children:"Back"}),o!==l.length-1&&e(s,{variant:"contained",color:"primary",onClick:async()=>{await B(d)},children:"Next"})]})})]})]},c.label))})})}),e(r,{item:!0,xs:12,children:e(V,{onCancel:i,saveButtonText:u,isLoading:S,onSave:v?void 0:p(m)})})]})})};export{I as FormStepper};
2
2
  //# sourceMappingURL=FormStepper.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as g,jsxs as h}from"react/jsx-runtime";import{makeStyles as d,Box as u,Typography as p}from"@material-ui/core";const f=d(e=>({overlay:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},messageContainer:{textAlign:"center",padding:e.spacing(2)},mainMessage:{color:e.palette.common.white,fontSize:"1.5rem",marginBottom:e.spacing(2)},statsMessage:{color:e.palette.common.white,fontSize:"0.875rem",opacity:.8}})),l=e=>new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(e),m=(e,a,s)=>e===1?a:s,y=(e,a)=>{if(!e)return{teams:0,entities:0,checks:0};let s=0,t=0;const n=i=>{s+=1,t+=i.ownedEntityRefs?.length||0,Object.values(i.children||{}).forEach(c=>{n(c)})},o=Object.values(e)[0];o&&n(o);const r=a?.levels?.reduce((i,c)=>i+(c.checks?.length||0),0)||0;return{teams:s,entities:t,results:r*t}},x=({isLoading:e,hierarchyData:a,track:s})=>{const t=f();if(!e)return null;const{teams:n,entities:o,results:r}=y(a,s);return g(u,{className:t.overlay,children:h(u,{className:t.messageContainer,children:[g(p,{className:t.mainMessage,children:"Calculating..."}),h(p,{className:t.statsMessage,children:["Aggregating the statuses for ",l(n||0)," ",m(n||0,"team","teams")," owning"," ",l(o||0)," ",m(o||0,"entity","entities")," across"," ",l(r||0)," check"," ",m(r||0,"result","results")]})]})})};export{x as LoadingOverlay};
1
+ import"react/jsx-runtime";import{makeStyles as e}from"@material-ui/core";e(t=>({overlay:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},messageContainer:{textAlign:"center",padding:t.spacing(2)},mainMessage:{color:t.palette.common.white,fontSize:"1.5rem",marginBottom:t.spacing(2)},statsMessage:{color:t.palette.common.white,fontSize:"0.875rem",opacity:.8}}));
2
2
  //# sourceMappingURL=LoadingOverlay.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as I,jsx as n,Fragment as S}from"react/jsx-runtime";import{useApi as w}from"@backstage/core-plugin-api";import{entityPresentationApiRef as P}from"@backstage/plugin-catalog-react";import{useTheme as E}from"@material-ui/core";import{makeStyles as L}from"@material-ui/core/styles";import{ResponsiveCirclePacking as T}from"@nivo/circle-packing";import{useState as j,useEffect as z,useMemo as M}from"react";import{getContrastTextColor as b}from"../../../utils/colors.esm.js";import{findNodePath as C}from"./findNodePath.esm.js";import{hierarchyToNivo as A}from"./hierarchyToNivo.esm.js";import{LoadingOverlay as D}from"./LoadingOverlay.esm.js";const O=L(e=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:e.palette.background.paper,padding:e.spacing(1),borderRadius:e.shape.borderRadius,boxShadow:e.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:e.palette.common.white}}})),F=({groupRef:e,hierarchyData:r,trackStatus:l,getColor:c,onZoomChange:v,track:k,onNodeHover:m,selectedNode:d,onNodeSelect:y})=>{const[t,p]=j(null),f=O(),x=E(),u=w(P);z(()=>{p(d?d.id:null)},[d]);const a=M(()=>{if(!r||!e)return null;const o=r[e];return o?A(o,l||null,c,u,void 0):null},[r,l,e,c,u]),N=o=>{if(t===o.data.id)return;const i=t===o.data.id?null:o.data.id;p(i),v?.(o.data.entityRef),y?.(o.data)};if(!a)return null;const s=!l,h=x.palette.text.disabled,R=b(h);return I("div",{className:f.root,children:[n("div",{className:f.nivoContainer,children:n(T,{data:a,margin:{top:20,right:20,bottom:20,left:20},borderWidth:1,borderColor:{from:"color",modifiers:[["darker",1.25]]},colors:o=>s?h:o.data.color,childColor:{from:"color"},enableLabels:!0,label:o=>{if(!t)return o.data.name;const i=C(a,o.data.id),g=C(a,t);return!i||!g?"":i.length>=g.length?o.data.name:""},labelsSkipRadius:14,labelTextColor:o=>s?R:b(o.data.color||"#fff"),zoomedId:t,motionConfig:"default",isInteractive:!0,tooltip:()=>n(S,{}),onClick:N,onMouseEnter:o=>m?.(o.data),onMouseLeave:()=>m?.(null)})}),n(D,{isLoading:s,hierarchyData:r,track:k})]})};export{F as NivoCirclePacking};
1
+ import"react/jsx-runtime";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import"@material-ui/core";import{makeStyles as t}from"@material-ui/core/styles";import"@nivo/circle-packing";import"react";import"@nivo/colors";import"d3-color";import"d3-interpolate";import"d3-scale";import"./LoadingOverlay.esm.js";t(o=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:o.palette.background.paper,padding:o.spacing(1),borderRadius:o.shape.borderRadius,boxShadow:o.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:o.palette.common.white}}}));
2
2
  //# sourceMappingURL=NivoCirclePacking.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as T,jsx as a,Fragment as L}from"react/jsx-runtime";import{useApi as M}from"@backstage/core-plugin-api";import{entityPresentationApiRef as j}from"@backstage/plugin-catalog-react";import{useTheme as E}from"@material-ui/core";import{makeStyles as O}from"@material-ui/core/styles";import{ResponsiveIcicle as z}from"@nivo/icicle";import{useState as A,useEffect as D,useMemo as H}from"react";import{getContrastTextColor as k}from"../../../utils/colors.esm.js";import{hierarchyToNivo as P}from"./hierarchyToNivo.esm.js";import{LoadingOverlay as W}from"./LoadingOverlay.esm.js";const F=O(e=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:e.palette.background.paper,padding:e.spacing(1),borderRadius:e.shape.borderRadius,boxShadow:e.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:e.palette.common.white}}})),Z=({groupRef:e,hierarchyData:r,trackStatus:l,getColor:c,onZoomChange:x,track:y,onNodeHover:m,selectedNode:s,onNodeSelect:S})=>{const[i,f]=A(null),p=F(),R=E(),u=M(j);D(()=>{f(s?s.id:null)},[s]);const h=H(()=>{if(!r||!e)return null;const o=r[e];if(!o)return null;const t=P(o,l||null,c,u,void 0);if(i&&t){const b=(n,v)=>{if(n.id===v)return n;if(n.children)for(const N of n.children){const C=b(N,v);if(C)return C}return null};return b(t,i)||t}return t},[r,l,e,c,u,i]),w=o=>{const t=i===o.data.id?null:o.data.id;f(t),x?.(o.data.entityRef),S?.(o.data)};if(!h)return null;const d=!l,g=R.palette.text.disabled,I=k(g);return T("div",{className:p.root,children:[a("div",{className:p.nivoContainer,children:a(z,{data:h,margin:{top:20,right:20,bottom:20,left:20},borderWidth:1,borderColor:{from:"color",modifiers:[["darker",1.25]]},animateOnMount:!1,colors:o=>d?g:o.data.color,enableLabels:!0,label:o=>o.data.name,labelRotation:270,labelSkipWidth:12,labelSkipHeight:32,labelTextColor:o=>d?I:k(o.data.color||"#fff"),motionConfig:"default",isInteractive:!0,tooltip:()=>a(L,{}),onClick:w,onMouseEnter:o=>m?.(o.data),onMouseLeave:()=>m?.(null)})}),a(W,{isLoading:d,hierarchyData:r,track:y})]})};export{Z as NivoIcicle};
1
+ import"react/jsx-runtime";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import"@material-ui/core";import{makeStyles as t}from"@material-ui/core/styles";import"@nivo/icicle";import"react";import"@nivo/colors";import"d3-color";import"d3-interpolate";import"d3-scale";import"./LoadingOverlay.esm.js";t(o=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:o.palette.background.paper,padding:o.spacing(1),borderRadius:o.shape.borderRadius,boxShadow:o.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:o.palette.common.white}}}));
2
2
  //# sourceMappingURL=NivoIcicle.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as g,jsx as r,Fragment as v}from"react/jsx-runtime";import{useApi as C}from"@backstage/core-plugin-api";import{entityPresentationApiRef as k}from"@backstage/plugin-catalog-react";import{useTheme as x}from"@material-ui/core";import{makeStyles as y}from"@material-ui/core/styles";import{ResponsiveSunburst as L}from"@nivo/sunburst";import{useMemo as S}from"react";import{getContrastTextColor as p}from"../../../utils/colors.esm.js";import{hierarchyToNivo as N}from"./hierarchyToNivo.esm.js";import{LoadingOverlay as w}from"./LoadingOverlay.esm.js";const R=y(t=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:t.palette.background.paper,padding:t.spacing(1),borderRadius:t.shape.borderRadius,boxShadow:t.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:t.palette.common.white}}})),T=({groupRef:t,hierarchyData:e,trackStatus:a,getColor:n,track:u,onNodeHover:l,onNodeSelect:f})=>{const s=R(),h=x(),d=C(k),m=S(()=>{if(!e||!t)return null;const o=e[t];return o?N(o,a||null,n,d,void 0):null},[e,a,t,n,d]);if(!m)return null;const i=!a,c=h.palette.text.disabled,b=p(c);return g("div",{className:s.root,children:[r("div",{className:s.nivoContainer,children:r(L,{data:m,margin:{top:20,right:20,bottom:20,left:20},borderWidth:1,borderColor:{from:"color",modifiers:[["darker",1.25]]},colors:o=>i?c:o.data.color,childColor:{from:"color"},animate:!1,enableArcLabels:!0,arcLabel:o=>o.data.name,arcLabelsTextColor:o=>i?b:p(o.data.color||"#fff"),motionConfig:"default",isInteractive:!0,tooltip:()=>r(v,{}),arcLabelsSkipAngle:20,onMouseEnter:o=>l?.(o.data),onMouseLeave:()=>l?.(null),onClick:o=>f?.(o.data)})}),r(w,{isLoading:i,hierarchyData:e,track:u})]})};export{T as NivoSunburst};
1
+ import"react/jsx-runtime";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import"@material-ui/core";import{makeStyles as t}from"@material-ui/core/styles";import"@nivo/sunburst";import"react";import"@nivo/colors";import"d3-color";import"d3-interpolate";import"d3-scale";import"./LoadingOverlay.esm.js";t(o=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:o.palette.background.paper,padding:o.spacing(1),borderRadius:o.shape.borderRadius,boxShadow:o.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:o.palette.common.white}}}));
2
2
  //# sourceMappingURL=NivoSunburst.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as k,jsx as a,Fragment as N}from"react/jsx-runtime";import{useApi as S}from"@backstage/core-plugin-api";import{entityPresentationApiRef as T}from"@backstage/plugin-catalog-react";import{useTheme as L}from"@material-ui/core";import{makeStyles as R}from"@material-ui/core/styles";import{ResponsiveTreeMap as w}from"@nivo/treemap";import{useState as I,useMemo as M}from"react";import{getContrastTextColor as i}from"../../../utils/colors.esm.js";import{hierarchyToNivo as j}from"./hierarchyToNivo.esm.js";import{LoadingOverlay as z}from"./LoadingOverlay.esm.js";const O=R(t=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:t.palette.background.paper,padding:t.spacing(1),borderRadius:t.shape.borderRadius,boxShadow:t.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:t.palette.common.white}}})),A=({groupRef:t,hierarchyData:e,trackStatus:n,getColor:l,onZoomChange:f,track:h,onNodeHover:d,onNodeSelect:b})=>{const[g,v]=I(null),s=O(),C=L(),p=S(T),m=M(()=>{if(!e||!t)return null;const o=e[t];return o?j(o,n||null,l,p,void 0):null},[e,n,t,l,p]),y=o=>{const x=g===o.data.id?null:o.data.id;v(x),f?.(o.data.entityRef),b?.(o.data)};if(!m)return null;const r=!n,c=C.palette.text.disabled,u=i(c);return k("div",{className:s.root,children:[a("div",{className:s.nivoContainer,children:a(w,{data:m,label:o=>o.data.name,margin:{top:20,right:20,bottom:20,left:20},labelSkipSize:24,labelTextColor:o=>r?u:i(o.data.color||"#fff"),nodeOpacity:1,parentLabel:o=>o.data.name,parentLabelPosition:"top",parentLabelTextColor:o=>r?u:i(o.data.color||"#fff"),colors:o=>r?c:o.data.color,borderColor:{from:"color",modifiers:[["darker",1.25]]},isInteractive:!0,animate:!1,tooltip:()=>a(N,{}),onClick:y,onMouseEnter:o=>d?.(o.data),onMouseLeave:()=>d?.(null)})}),a(z,{isLoading:r,hierarchyData:e,track:h})]})};export{A as NivoTreemap};
1
+ import"react/jsx-runtime";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import"@material-ui/core";import{makeStyles as t}from"@material-ui/core/styles";import"@nivo/treemap";import"react";import"@nivo/colors";import"d3-color";import"d3-interpolate";import"d3-scale";import"./LoadingOverlay.esm.js";t(o=>({root:{position:"relative",width:"100%",height:"100%"},nivoContainer:{width:"100%",height:"100%"},tooltip:{position:"absolute",pointerEvents:"none",zIndex:1e3},tooltipContent:{backgroundColor:o.palette.background.paper,padding:o.spacing(1),borderRadius:o.shape.borderRadius,boxShadow:o.shadows[1]},loadingOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:1e3,"& > *":{color:o.palette.common.white}}}));
2
2
  //# sourceMappingURL=NivoTreemap.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as m}from"react/jsx-runtime";import{makeStyles as d,Box as s,Link as l,Typography as b}from"@material-ui/core";import p from"@material-ui/icons/ChevronRight";import{Fragment as h}from"react";const u=d(e=>({breadcrumbContainer:{display:"flex",alignItems:"center",height:24},chevronIcon:{color:e.palette.text.secondary,marginLeft:4,marginRight:4},breadcrumbLink:{color:e.palette.text.secondary,fontWeight:400,cursor:"pointer",background:"none",border:"none",padding:0,font:"inherit",textDecoration:"none","&:hover":{textDecoration:"underline"},"&.active":{color:e.palette.text.primary,fontWeight:600},"&.disabled":{cursor:"default","&:hover":{textDecoration:"none"}}},breadcrumbText:{color:"inherit",fontWeight:"inherit"}})),f=({node:e,onNodeClick:i})=>{const n=u();if(!e)return t("div",{className:n.breadcrumbContainer});const c=(r=>{const o=[r];let a=r.parent;for(;a;)o.unshift(a),a=a.parent;return o})(e);return t(s,{className:n.breadcrumbContainer,children:c.map((r,o)=>m(h,{children:[o>0&&t(p,{fontSize:"small",className:n.chevronIcon}),t(l,{component:"button",variant:"body2",onClick:()=>i?.(r),className:`${n.breadcrumbLink} ${r===e?"active":""} ${i?"":"disabled"}`,children:t(b,{variant:"body2",component:"span",className:n.breadcrumbText,children:r.name})})]},r.id))})};export{f as VisualizationBreadcrumb};
1
+ import"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import"@material-ui/icons/ChevronRight";import"react";t(e=>({breadcrumbContainer:{display:"flex",alignItems:"center",height:24},chevronIcon:{color:e.palette.text.secondary,marginLeft:4,marginRight:4},breadcrumbLink:{color:e.palette.text.secondary,fontWeight:400,cursor:"pointer",background:"none",border:"none",padding:0,font:"inherit",textDecoration:"none","&:hover":{textDecoration:"underline"},"&.active":{color:e.palette.text.primary,fontWeight:600},"&.disabled":{cursor:"default","&:hover":{textDecoration:"none"}}},breadcrumbText:{color:"inherit",fontWeight:"inherit"}}));
2
2
  //# sourceMappingURL=VisualizationBreadcrumb.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as Y,jsx as t}from"react/jsx-runtime";import{TooltipTrigger as x,ButtonLink as $,Tooltip as E}from"@backstage/ui";import{RiExportLine as B,RiImportLine as j}from"@remixicon/react";import D from"js-yaml";import{capitalize as a}from"lodash";import{useState as A,useRef as F}from"react";import{useSoundcheckAlert as P}from"../../hooks/useSoundcheckAlert.esm.js";const z=({resourceType:r,disableImport:I,disableExport:S,onImport:k,onExport:v})=>{const w=`${a(r)} Import Success`,l=`Error Importing ${a(r)}s`,L=`Error Exporting ${a(r)}s`,{showAlert:n}=P(),[b,c]=A(!1),[M,p]=A(!1),m=F(null);return e(Y,{children:[e(x,{children:[t($,{isDisabled:S||M,onClick:async()=>{try{p(!0),await v()}catch(o){n({title:L,message:`An error occurred while exporting ${r}s: ${o.message}`,severity:"error"})}finally{p(!1)}},"aria-label":"Export All to YAML",iconStart:t(B,{}),variant:"secondary",children:"Export"}),e(E,{children:["Export all ",r,"s to YAML"]})]}),e(x,{children:[t($,{isDisabled:I||b,"aria-label":"Import from YAML",iconStart:t(j,{}),variant:"secondary",onClick:()=>m?.current?.click(),children:"Import"}),e(E,{children:["Import ",r,"s from YAML"]})]}),t("input",{type:"file",hidden:!0,onChange:async o=>{try{c(!0);const i=o.target?.files?.[0],d=new FileReader;i&&(d.readAsText(i,"utf-8"),d.onload=async T=>{const g=T.target?.result?.toString();if(g){const C=D.load(g);try{const{created:f,skipped:R,failed:s}=await k(C);let h=w,u="success",y=`Successfully imported ${f.length} ${r}(s), failed ${s.length} ${r}(s), ${R.length} ${r}(s) already existed.`;s.length&&(h=l,u=f.length?"warning":"error",y+=` Errors: ${JSON.stringify(s)}.`),n({title:h,message:y,severity:u})}catch{}}})}catch(i){n({title:l,message:`An error occurred while importing ${r}s: ${i.message}`,severity:"error"})}finally{o.target.value="",c(!1)}},accept:".yaml",ref:m})]})};export{z as ImportExportPanelBUI};
1
+ import{jsxs as e,Fragment as Y,jsx as t}from"react/jsx-runtime";import{TooltipTrigger as x,ButtonLink as $,Tooltip as E}from"@backstage/ui";import{RiExportLine as j,RiImportLine as B}from"@remixicon/react";import D from"js-yaml";import{capitalize as a}from"lodash";import{useState as A,useRef as F}from"react";import{useSoundcheckAlert as O}from"../../hooks/useSoundcheckAlert.esm.js";const P=({resourceType:r,disableImport:I,disableExport:S,onImport:k,onExport:v})=>{const w=`${a(r)} Import Success`,l=`Error Importing ${a(r)}s`,L=`Error Exporting ${a(r)}s`,{showAlert:n}=O(),[b,c]=A(!1),[M,p]=A(!1),m=F(null);return e(Y,{children:[e(x,{children:[t($,{isDisabled:S||M,onClick:async()=>{try{p(!0),await v()}catch(o){n({title:L,message:`An error occurred while exporting ${r}s: ${o.message}`,severity:"error"})}finally{p(!1)}},"aria-label":"Export All to YAML",iconStart:t(j,{}),variant:"secondary",children:"Export"}),e(E,{children:["Export all ",r,"s to YAML"]})]}),e(x,{children:[t($,{isDisabled:I||b,"aria-label":"Import from YAML",iconStart:t(B,{}),variant:"secondary",onClick:()=>m?.current?.click(),children:"Import"}),e(E,{children:["Import ",r,"s from YAML"]})]}),t("input",{type:"file",hidden:!0,onChange:async o=>{try{c(!0);const i=o.target?.files?.[0],d=new FileReader;i&&(d.readAsText(i,"utf-8"),d.onload=async T=>{const g=T.target?.result?.toString();if(g){const C=D.load(g);try{const{created:f,skipped:R,failed:s}=await k(C);let h=w,u="success",y=`Successfully imported ${f.length} ${r}(s), failed ${s.length} ${r}(s), ${R.length} ${r}(s) already existed.`;s.length&&(h=l,u=f.length?"warning":"error",y+=` Errors: ${JSON.stringify(s)}.`),n({title:h,message:y,severity:u})}catch{}}})}catch(i){n({title:l,message:`An error occurred while importing ${r}s: ${i.message}`,severity:"error"})}finally{o.target.value="",c(!1)}},accept:".yaml",ref:m})]})};export{P as ImportExportPanelBUI};
2
2
  //# sourceMappingURL=ImportExportPanelBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as y,Fragment as F,jsx as r}from"react/jsx-runtime";import{makeStyles as L,Tooltip as $,IconButton as x,CircularProgress as b}from"@material-ui/core";import M from"@material-ui/icons/GetApp";import O from"@material-ui/icons/Publish";import P from"js-yaml";import{capitalize as a}from"lodash";import{useState as E}from"react";import{useSoundcheckAlert as D}from"../../hooks/useSoundcheckAlert.esm.js";const H=L(e=>({button:{height:"44px",lineHeight:"1.25rem",padding:e.spacing(1.5,1),marginRight:e.spacing(.5),borderRadius:"12px",color:e.palette.text.primary}})),J=({resourceType:e,disableImport:w,disableExport:I,onImport:A,onExport:S})=>{const k=`${a(e)} Import Success`,n=`Error Importing ${a(e)}s`,v=`Error Exporting ${a(e)}s`,l=H(),{showAlert:s}=D(),[z,c]=E(!1),[C,p]=E(!1),N=async()=>{try{p(!0),await S()}catch(t){s({title:v,message:`An error occurred while exporting ${e}s: ${t.message}`,severity:"error"})}finally{p(!1)}},R=async t=>{try{c(!0);const o=t.target?.files?.[0],m=new FileReader;o&&(m.readAsText(o,"utf-8"),m.onload=async T=>{const d=T.target?.result?.toString();if(d){const j=P.load(d);try{const{created:g,skipped:B,failed:i}=await A(j);let h=k,u="success",f=`Successfully imported ${g.length} ${e}(s), failed ${i.length} ${e}(s), ${B.length} ${e}(s) already existed.`;i.length&&(h=n,u=g.length?"warning":"error",f+=` Errors: ${JSON.stringify(i)}.`),s({title:h,message:f,severity:u})}catch{}}})}catch(o){s({title:n,message:`An error occurred while importing ${e}s: ${o.message}`,severity:"error"})}finally{t.target.value="",c(!1)}};return y(F,{children:[r($,{title:`Export all ${e}s`,children:r(x,{className:l.button,disabled:I,onClick:N,children:C?r(b,{size:24}):r(M,{})})}),r($,{title:`Import YAML ${e}(s)`,children:y(x,{className:l.button,disabled:w,component:"label",children:[z?r(b,{size:24}):r(O,{}),r("input",{type:"file",hidden:!0,onChange:R,accept:".yaml"})]})})]})};export{J as ImportExportPanelDeprecated};
1
+ import"react/jsx-runtime";import{makeStyles as r}from"@material-ui/core";import"@material-ui/icons/GetApp";import"@material-ui/icons/Publish";import"js-yaml";import"lodash";import"react";import"../../hooks/useSoundcheckAlert.esm.js";r(i=>({button:{height:"44px",lineHeight:"1.25rem",padding:i.spacing(1.5,1),marginRight:i.spacing(.5),borderRadius:"12px",color:i.palette.text.primary}}));
2
2
  //# sourceMappingURL=ImportExportPanelDeprecated.esm.js.map
@@ -1,2 +1,2 @@
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};
1
+ import{jsx as i,jsxs as $}from"react/jsx-runtime";import{makeStyles as j,Grid as g}from"@material-ui/core";import{createContext as D,useMemo as A,useState as t,useEffect as y,useCallback as H}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 Q}from"../LoadingIndicator/LoadingIndicator.esm.js";import{OverviewTable as q}from"../OverviewTable/OverviewTable.esm.js";import{RowHeights as J}from"../OverviewTable/resultsTableUtils.esm.js";import{OverviewPageHeader as U}from"./OverviewPageHeader.esm.js";const W=j(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=D({searchValue:"",updateSearchValue:e=>{},debouncedSearchValue:"",updateDebouncedSearchValue:e=>{},pivot:!1,updatePivot:e=>{}}),X=({isFixedGroup:e=!1})=>{const[r,u]=z(),{group:d,kind:o,type:n}=Object.fromEntries(r.entries()),f=A(()=>({routeName:"soundcheck-overview",additionalAttributes:{group:d||"",selectedKind:o||"",selectedType:n||""}}),[d,o,n]),{reportContentLoaded:h}=M(f),{reporter:P}=K(f),[a,v]=t(void 0),[L,S]=t(void 0),[w,V]=t(),[c,E]=t(""),[O,b]=t(""),[F,G]=t(!1);B(()=>{b(c)},800,[c]),y(()=>{(a?.kind!==o||a?.type!==n)&&v({kind:o,type:n})},[o,n,a]);const{data:k,isLoading:p}=I(d),R=L||w,N=H((s,m,T)=>{s&&(v({kind:s,type:m}),m?(r.set("kind",s),r.set("type",m)):(r.delete("type"),r.set("kind",s)),u(r,{replace:T}))},[r,u]),l=W(),x=P?.getLCPValue();return y(()=>{p||h({lcp:x})},[p,h,x]),i(C.Provider,{value:{searchValue:c,updateSearchValue:E,debouncedSearchValue:O,updateDebouncedSearchValue:b,pivot:F,updatePivot:G},children:$(g,{container:!0,spacing:0,children:[i(g,{item:!0,xs:12,className:l.noPadding,children:i(U,{unfilteredFacets:k,kind:a?.kind,type:a?.type,onChange:N,setError:V,isLoading:p,isFixedGroup:e})}),i(g,{item:!0,xs:12,className:l.tableContainer,children:p?i("div",{className:l.tableLoading,children:i(Q,{size:80})}):i(q,{facets:k,kind:a?.kind,type:a?.type,setError:S,hasError:R,ownerEntityRef:d,isFixedGroup:e})})]})})};export{X as OverviewPageContent,C as OverviewPageContext};
2
2
  //# sourceMappingURL=OverviewPageContent.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as p,jsx as n,Fragment as S}from"react/jsx-runtime";import{makeStyles as j,Typography as g,TextField as w,CircularProgress as R,Switch as V}from"@material-ui/core";import c from"@material-ui/core/Box";import z from"@material-ui/icons/Search";import{Autocomplete as D}from"@material-ui/lab";import{groupBy as H,sortBy as M,maxBy as N}from"lodash";import{useContext as X,useEffect as $,useMemo as v}from"react";import{useSearchParams as q}from"react-router-dom";import J from"react-use/lib/useLocalStorage";import{GroupSelector as Q}from"../GroupSelector/GroupSelector.esm.js";import{OverviewPageContext as U}from"./OverviewPageContent.esm.js";const Y=j(r=>({wrapper:{background:r.palette.background.default,paddingTop:r.spacing(0),paddingBottom:r.spacing(2),paddingRight:r.spacing(3),display:"flex",gap:r.spacing(3)},switchLabel:{marginLeft:r.spacing(1.5)}})),Z=({setError:r,unfilteredFacets:I,kind:h,type:d,onChange:x,isLoading:y,isFixedGroup:E})=>{const L=Y(),o={types:I?.types.filter(({count:e})=>e>0)??[]},[b,B]=J("soundcheck-overview-pivot-status",!1),[k]=q(),P=k.get("kind"),W=k.get("type"),{searchValue:A,updateSearchValue:F,pivot:m,updatePivot:T}=X(U);$(()=>{b!==m&&T(!!b)},[]);const s=v(()=>o?.types.map(({kind:e,type:t,count:a})=>{const i=`${e}|${t??""}`;return{facetKind:e,facetType:t,key:i,label:`${t??e} (${a>50?"50+":a})`,id:i,count:a}}).sort((e,t)=>e.key.localeCompare(t.key))??[],[o?.types]),C=v(()=>{const e=H(s,t=>t.facetKind);return Object.values(e).map(t=>t.reduce((a,i)=>{const u=a.count+i.count,l=`${i.facetKind}|all`;return{facetKind:i.facetKind,facetType:"all",count:u,key:l,id:l,label:`all ${i.facetKind.toLowerCase()}s (${u>50?"50+":u})`}},{count:0,facetType:"all",facetKind:"",key:"",label:"",id:""}))},[s]),K=v(()=>M([...s,...C],"facetKind"),[C,s]);$(()=>{if(y)return;const e=h??P,t=d??W,a=o?.types&&o.types.length>=0,i=!e&&a,u=!!e&&t!=="all"&&a&&!o?.types.find(({kind:l,type:f})=>e===l&&(!d&&!f||d===f));if(i||u){const l=N(s,f=>f.count);x(l?.facetKind??"",l?.facetType??"",!0)}},[h,P,d,y]);const G=K.find(e=>e.key===`${h}|${d??""}`)??null,O=o&&(o.types?.length??0)>0;return p(c,{className:L.wrapper,children:[!E&&p(c,{flex:1,maxWidth:364,children:[n(g,{variant:"subtitle2",component:"div",children:"Group"}),n(Q,{baseClass:!0,margin:"dense",setError:r})]}),O&&p(S,{children:[p(c,{flex:1,maxWidth:500,children:[n(g,{variant:"subtitle2",component:"div",children:"Entity Type"}),n(D,{"aria-label":"Entity Type Selection",disableClearable:!0,options:K??[],freeSolo:!1,groupBy:e=>e.facetKind,getOptionLabel:e=>e.label,value:G,onChange:(e,t)=>x(t.facetKind,t.facetType,!0),renderInput:e=>n(w,{...e,variant:"outlined",placeholder:"Select entity type",margin:"dense",fullWidth:!0,InputProps:{...e.InputProps,endAdornment:p(S,{children:[y?n(R,{color:"inherit",size:20}):null,e.InputProps.endAdornment]})}})})]}),p(c,{maxWidth:580,flex:1,children:[n(g,{variant:"subtitle2",component:"div",children:"Search Entities"}),n(w,{margin:"dense",placeholder:"Search entities",variant:"outlined",fullWidth:!0,value:A,onChange:e=>F(e.currentTarget.value),InputProps:{startAdornment:n(c,{marginRight:.75,display:"flex",alignItems:"center",children:n(z,{color:"inherit"})})}})]}),p(c,{display:"flex",flexDirection:"column",children:[n(g,{style:{marginLeft:10},variant:"subtitle2",component:"div",children:"Pivot"}),n(c,{flex:1,display:"flex",alignItems:"center",children:n(V,{checked:m,onChange:()=>{B(!m),T(!m)},inputProps:{"aria-label":"pivot overview table"}})})]})]})]})};export{Z as OverviewPageHeader};
1
+ import{jsxs as p,jsx as n,Fragment as S}from"react/jsx-runtime";import{makeStyles as j,Typography as h,TextField as $,CircularProgress as R,Switch as V}from"@material-ui/core";import c from"@material-ui/core/Box";import z from"@material-ui/icons/Search";import{Autocomplete as D}from"@material-ui/lab";import{groupBy as H,sortBy as M,maxBy as N}from"lodash";import{useContext as X,useEffect as w,useMemo as v}from"react";import{useSearchParams as q}from"react-router-dom";import J from"react-use/lib/useLocalStorage";import{GroupSelector as Q}from"../GroupSelector/GroupSelector.esm.js";import{OverviewPageContext as U}from"./OverviewPageContent.esm.js";const Y=j(r=>({wrapper:{background:r.palette.background.default,paddingTop:r.spacing(0),paddingBottom:r.spacing(2),paddingRight:r.spacing(3),display:"flex",gap:r.spacing(3)},switchLabel:{marginLeft:r.spacing(1.5)}})),Z=({setError:r,unfilteredFacets:I,kind:y,type:d,onChange:x,isLoading:g,isFixedGroup:E})=>{const L=Y(),o={types:I?.types.filter(({count:e})=>e>0)??[]},[b,B]=J("soundcheck-overview-pivot-status",!1),[k]=q(),P=k.get("kind"),F=k.get("type"),{searchValue:W,updateSearchValue:A,pivot:m,updatePivot:T}=X(U);w(()=>{b!==m&&T(!!b)},[]);const s=v(()=>o?.types.map(({kind:e,type:t,count:a})=>{const i=`${e}|${t??""}`;return{facetKind:e,facetType:t,key:i,label:`${t??e} (${a>50?"50+":a})`,id:i,count:a}}).sort((e,t)=>e.key.localeCompare(t.key))??[],[o?.types]),C=v(()=>{const e=H(s,t=>t.facetKind);return Object.values(e).map(t=>t.reduce((a,i)=>{const u=a.count+i.count,l=`${i.facetKind}|all`;return{facetKind:i.facetKind,facetType:"all",count:u,key:l,id:l,label:`all ${i.facetKind.toLowerCase()}s (${u>50?"50+":u})`}},{count:0,facetType:"all",facetKind:"",key:"",label:"",id:""}))},[s]),K=v(()=>M([...s,...C],"facetKind"),[C,s]);w(()=>{if(g)return;const e=y??P,t=d??F,a=o?.types&&o.types.length>=0,i=!e&&a,u=!!e&&t!=="all"&&a&&!o?.types.find(({kind:l,type:f})=>e===l&&(!d&&!f||d===f));if(i||u){const l=N(s,f=>f.count);x(l?.facetKind??"",l?.facetType??"",!0)}},[y,P,d,g]);const G=K.find(e=>e.key===`${y}|${d??""}`)??null,O=o&&(o.types?.length??0)>0;return p(c,{className:L.wrapper,children:[!E&&p(c,{flex:1,maxWidth:364,children:[n(h,{variant:"subtitle2",component:"div",children:"Group"}),n(Q,{baseClass:!0,margin:"dense",setError:r})]}),O&&p(S,{children:[p(c,{flex:1,maxWidth:500,children:[n(h,{variant:"subtitle2",component:"div",children:"Entity Type"}),n(D,{"aria-label":"Entity Type Selection",disableClearable:!0,options:K??[],freeSolo:!1,groupBy:e=>e.facetKind,getOptionLabel:e=>e.label,value:G,onChange:(e,t)=>x(t.facetKind,t.facetType,!0),renderInput:e=>n($,{...e,variant:"outlined",placeholder:"Select entity type",margin:"dense",fullWidth:!0,InputProps:{...e.InputProps,endAdornment:p(S,{children:[g?n(R,{color:"inherit",size:20}):null,e.InputProps.endAdornment]})}})})]}),p(c,{maxWidth:580,flex:1,children:[n(h,{variant:"subtitle2",component:"div",children:"Search Entities"}),n($,{margin:"dense",placeholder:"Search entities",variant:"outlined",fullWidth:!0,value:W,onChange:e=>A(e.currentTarget.value),InputProps:{startAdornment:n(c,{marginRight:.75,display:"flex",alignItems:"center",children:n(z,{color:"inherit"})})}})]}),p(c,{display:"flex",flexDirection:"column",children:[n(h,{style:{marginLeft:10},variant:"subtitle2",component:"div",children:"Pivot"}),n(c,{flex:1,display:"flex",alignItems:"center",children:n(V,{checked:m,onChange:()=>{B(!m),T(!m)},inputProps:{"aria-label":"pivot overview table"}})})]})]})]})};export{Z as OverviewPageHeader};
2
2
  //# sourceMappingURL=OverviewPageHeader.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as C}from"react/jsx-runtime";import{makeStyles as k,TablePagination as v}from"@material-ui/core";import{useState as x}from"react";import{RESULTS_PER_PAGE as r}from"../../utils/filters.esm.js";const R=k(e=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",backgroundColor:e.palette.background.paper,borderTop:`1px solid ${e.palette.divider}`,marginRight:"40px"}})),E=({response:e,listingsPerPage:i,cursor:g,setCursor:t,prevCursors:a,setPrevCursors:s,labelPerPageDropdown:p,urlRoute:l})=>{const P=R(),u=e?.edges?e?.edges[e?.edges.length-1]:{cursor:""},[c,d]=x(0),m=()=>{s(o=>[...o,g]),t(u?.cursor)},b=()=>{t(a[a.length-1]),s(o=>o.slice(0,-1))},f=(o,n)=>{d(h=>(n>h?m():b(),n))},w=o=>{window.open(`/soundcheck/${l??"tracks?tracksPerPage="}${o.target.value}`,"_self")};return C(v,{className:P.pagination,component:"div",count:e?.totalCount??-1,rowsPerPage:i??10,onPageChange:f,page:c,onRowsPerPageChange:w,labelRowsPerPage:p??"Listings per page:",rowsPerPageOptions:[r,r*2,r*4]})};export{E as Pagination};
1
+ import"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import"react";import"../../utils/filters.esm.js";t(i=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",backgroundColor:i.palette.background.paper,borderTop:`1px solid ${i.palette.divider}`,marginRight:"40px"}}));
2
2
  //# sourceMappingURL=Pagination.esm.js.map
@@ -1,2 +1,2 @@
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};
1
+ import{jsx as t}from"react/jsx-runtime";import{RoutingPageBUI as r}from"./RoutingPageBUI.esm.js";const g=o=>t(r,{...o});export{g as RoutingPage};
2
2
  //# sourceMappingURL=RoutingPage.esm.js.map
@@ -1,2 +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 U}from"../../routes.esm.js";import{CampaignPage as D}from"../CampaignPage/CampaignPage.esm.js";import{CampaignTechInsightsExplorerPage as N}from"../CampaignPage/CampaignTechInsightsExplorerPage.esm.js";import{CampaignsPage as S}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as V}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as W}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as q}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckEditPage as z}from"../CheckPage/CheckEditPage.esm.js";import{CheckPage as d}from"../CheckPage/CheckPage.esm.js";import{ChecksTab as G}from"../ChecksTab/ChecksTab.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageBUI.esm.js";import{CheckTemplatesPage as J}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js";import{CollectorPage as K}from"../CollectorPage/CollectorPage.esm.js";import{CollectorDetailsPage as L}from"../CollectorPage/CollectorDetailsPage.esm.js";import"../CollectorPage/CollectorDetailsPageBUI.esm.js";import"../CollectorPage/CollectorDetailsPageDeprecated.esm.js";import{CollectorsPage as M}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{RoutingPageWrapperBUI as ae}from"./RoutingPageWrapperBUI.esm.js";const re=()=>{const{trackId:a}=g(),i=p(y);if(!a)return null;const r=i({trackId:a});return e(l,{to:r,replace:!0})},ie=()=>{const{campaignId:a}=g(),i=p(H);if(!a)return null;const r=i({campaignId:a});return e(l,{to:r,replace:!0})},ne=()=>{const a=p(U)();return e(l,{to:a,replace:!0})},oe=({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(ae,{title:a,children:o(j,{children:[k&&o(m,{children:[e(t,{path:"/campaigns",element:e(S,{})}),e(t,{path:"/campaigns/:campaignId/edit",element:e(W,{})}),e(t,{path:"/campaigns/:campaignId",element:e(ie,{})}),e(t,{path:"/campaigns/:campaignId/overview",element:e(D,{})}),e(t,{path:"/campaigns/:campaignId/explorer",element:e(N,{})}),I&&e(t,{path:"/campaigns/create",element:e(V,{})})]}),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(re,{})}),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(G,{})}),e(t,{path:"/checks/:checkId",element:e(d,{})}),e(t,{path:"/checks/:checkId/edit",element:e(z,{})}),R&&o(m,{children:[e(t,{path:"/checks/create",element:e(q,{})}),e(t,{path:"/checks/templates",element:e(J,{})})]}),e(t,{path:"/integrations",element:e(M,{integrations:i})}),e(t,{path:"/integrations/:integrationId",element:e(L,{integrations:i})}),e(t,{path:"/integrations/:integrationId/edit",element:e(K,{})}),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 24px"},children:e(X,{})})}),e(t,{path:"/overview",element:e(h,{style:{margin:"var(--bui-space-6) var(--bui-space-6)"},children:e(Q,{})})}),e(t,{path:"/",element:e(ne,{})})]})})};export{oe as RoutingPageBUI};
1
+ import{jsx as e,jsxs as n,Fragment as m}from"react/jsx-runtime";import{useApi as w,featureFlagsApiRef as x,useRouteRef as p}from"@backstage/core-plugin-api";import{usePermission as s}from"@backstage/plugin-permission-react";import{Box as A}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 h,Navigate as l}from"react-router-dom";import{trackOverviewRouteRef as U,campaignOverviewRouteRef as y,techInsightsPageRouteRef as D}from"../../routes.esm.js";import{CampaignPage as H}from"../CampaignPage/CampaignPage.esm.js";import{CampaignTechInsightsExplorerPage as N}from"../CampaignPage/CampaignTechInsightsExplorerPage.esm.js";import{CampaignsPage as S}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as V}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as W}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as q}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckEditPage as z}from"../CheckPage/CheckEditPage.esm.js";import{CheckPage as g}from"../CheckPage/CheckPage.esm.js";import{ChecksTab as G}from"../ChecksTab/ChecksTab.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageBUI.esm.js";import{CheckTemplatesPage as J}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import"../CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js";import{CollectorPage as K}from"../CollectorPage/CollectorPage.esm.js";import{CollectorDetailsPage as L}from"../CollectorPage/CollectorDetailsPage.esm.js";import"../CollectorPage/CollectorDetailsPageBUI.esm.js";import"../CollectorPage/CollectorDetailsPageDeprecated.esm.js";import{CollectorsPage as M}from"../CollectorsPage/CollectorsPage.esm.js";import{OverviewPageContent as Q}from"../OverviewPage/OverviewPageContent.esm.js";import{TechInsightsPage as X}from"../TechInsights/TechInsightsPage.esm.js";import{TrackCreatePage as Y}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as Z}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as _}from"../TrackPage/TrackPage.esm.js";import{TrackTechInsightsExplorerPage as $}from"../TrackPage/TrackTechInsightsExplorerPage.esm.js";import{TracksTab as ee}from"../TracksTab/TracksTab.esm.js";import{RoutingPageWrapperBUI as te}from"./RoutingPageWrapperBUI.esm.js";const ae=()=>{const{trackId:a}=h(),i=p(U);if(!a)return null;const r=i({trackId:a});return e(l,{to:r,replace:!0})},re=()=>{const{campaignId:a}=h(),i=p(y);if(!a)return null;const r=i({campaignId:a});return e(l,{to:r,replace:!0})},ie=()=>{const a=p(D)();return e(l,{to:a,replace:!0})},oe=({title:a="Soundcheck",integrations:i})=>{const r=w(x),c=r.getRegisteredFlags(),d=!c.find(o=>o.name==="soundcheck-enable-campaigns")||r.isActive("soundcheck-enable-campaigns"),{loading:k,allowed:f}=s({permission:E}),u=!k&&f,{loading:I,allowed:P}=s({permission:B}),C=!c.find(o=>o.name==="soundcheck-enable-check-creation")||r.isActive("soundcheck-enable-check-creation"),v=!I&&P&&C,{loading:R,allowed:T}=s({permission:F}),b=!c.find(o=>o.name==="soundcheck-enable-track-creation")||r.isActive("soundcheck-enable-track-creation");return e(te,{title:a,children:n(j,{children:[d&&n(m,{children:[e(t,{path:"/campaigns",element:e(S,{})}),e(t,{path:"/campaigns/:campaignId/edit",element:e(W,{})}),e(t,{path:"/campaigns/:campaignId",element:e(re,{})}),e(t,{path:"/campaigns/:campaignId/overview",element:e(H,{})}),e(t,{path:"/campaigns/:campaignId/explorer",element:e(N,{})}),u&&e(t,{path:"/campaigns/create",element:e(V,{})})]}),e(t,{path:"/tracks",element:e(ee,{})}),e(t,{path:"/tracks/:trackId/edit",element:e(Z,{})}),!R&&T&&b&&e(t,{path:"/tracks/create",element:e(Y,{})}),e(t,{path:"/tracks/:trackId",element:e(ae,{})}),e(t,{path:"/tracks/:trackId/overview",element:e(_,{})}),e(t,{path:"/tracks/:trackId/explorer",element:e($,{})}),e(t,{path:"/tracks/:trackId/checks/:checkId",element:e(g,{})}),e(t,{path:"/checks",element:e(G,{})}),e(t,{path:"/checks/:checkId",element:e(g,{})}),e(t,{path:"/checks/:checkId/edit",element:e(z,{})}),v&&n(m,{children:[e(t,{path:"/checks/create",element:e(q,{})}),e(t,{path:"/checks/templates",element:e(J,{})})]}),e(t,{path:"/integrations",element:e(M,{integrations:i})}),e(t,{path:"/integrations/:integrationId",element:e(L,{integrations:i})}),e(t,{path:"/integrations/:integrationId/edit",element:e(K,{})}),e(t,{path:"/tech-insights",element:n(m,{children:[e(O,{title:"Tech Insights"}),e(X,{})]})}),e(t,{path:"/overview",element:e(A,{style:{margin:"var(--bui-space-6) var(--bui-space-6)"},children:e(Q,{})})}),e(t,{path:"/",element:e(ie,{})})]})})};export{oe as RoutingPageBUI};
2
2
  //# sourceMappingURL=RoutingPageBUI.esm.js.map
@@ -1,2 +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};
1
+ import{jsx as e}from"react/jsx-runtime";import{RoutingPageWrapperBUI as i}from"./RoutingPageWrapperBUI.esm.js";const o=({title:r,children:t})=>e(i,{title:r,children:t});export{o as RoutingPageWrapper};
2
2
  //# sourceMappingURL=RoutingPageWrapper.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as p,jsx as o}from"react/jsx-runtime";import{Link as c}from"@backstage/core-components";import{useRouteRef as b}from"@backstage/core-plugin-api";import{makeStyles as u,Breadcrumbs as h,Typography as i}from"@material-ui/core";import{useLocation as f}from"react-router-dom";import{rootRouteRef as y}from"../../routes.esm.js";const n=u(e=>({breadcrumbs:{marginBottom:e.spacing(1),color:e.page.fontColor,fontSize:e.typography.body2.fontSize},link:{color:"inherit"},endText:{fontWeight:"bold"}})),g=({pages:e,className:l=""})=>{const t=b(y),r=n(),s=f().pathname===t();return p(h,{className:`${r.breadcrumbs} ${l}`,"aria-label":"breadcrumb",children:[!!s&&o(i,{variant:"body2",className:r.endText,children:"Soundcheck"}),!s&&o(c,{className:r.link,to:t(),children:"Soundcheck"}),e.map(({title:m,path:a},d)=>a?o(c,{className:r.link,to:a,relative:"path",children:m},a):o(i,{variant:"body2",className:r.endText,children:m},`${d}`))]})};export{g as Breadcrumbs,n as useBreadcrumbStyles};
1
+ import"react/jsx-runtime";import"@backstage/core-components";import"@backstage/core-plugin-api";import{makeStyles as t}from"@material-ui/core";import"react-router-dom";import"../../routes.esm.js";t(o=>({breadcrumbs:{marginBottom:o.spacing(1),color:o.page.fontColor,fontSize:o.typography.body2.fontSize},link:{color:"inherit"},endText:{fontWeight:"bold"}}));
2
2
  //# sourceMappingURL=Breadcrumbs.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as o,jsx as i,Fragment as S}from"react/jsx-runtime";import{Header as R}from"@backstage/core-components";import{useRouteRef as d,useApi as v,configApiRef as y}from"@backstage/core-plugin-api";import{makeStyles as N,Link as x,Typography as p,Button as C}from"@material-ui/core";import T from"@material-ui/icons/InfoOutlined";import L from"@material-ui/icons/MenuBook";import{useContext as B}from"react";import{useLocation as H,useNavigate as w}from"react-router-dom";import{rootRouteRef as z,quickstartRouteRef as A}from"../../routes.esm.js";import{Breadcrumbs as I}from"./Breadcrumbs.esm.js";import{generateBreadcrumbs as O}from"./headerUtil.esm.js";import{SoundcheckHeaderContext as j}from"./SoundcheckHeaderContext.esm.js";const q=N(e=>({subtitle:{maxWidth:"75%",marginTop:e.spacing(.5),whiteSpace:"pre-line"},docLink:{display:"flex",alignItems:"center",marginTop:e.spacing(.5),marginBottom:e.spacing(0),width:"fit-content",fontSize:e.typography.body2.fontSize,color:"inherit"},descriptionIcon:{marginRight:e.spacing(.25)},headerContent:{color:e.page.fontColor},link:{},button:{textTransform:"none",marginRight:e.spacing(2),color:e.page.fontColor},icon:{paddingRight:e.spacing(1)},title:{},breadcrumbs:{}}),{name:"SoundcheckHeader"}),D=({documentTitle:e})=>{const{title:n,description:r,docLink:a,customSubtitle:c,sectionRight:s}=B(j),t=q(),l=H().pathname?.replace(/\/+$/,"")??"",h=O(l),g=d(z),m=l===g(),u=v(y).getOptionalStringArray("soundcheck.flags")?.includes("portal")??!1,f=d(A),b=w(),k=f();return o(R,{pageTitleOverride:e,title:i(S,{children:m?i("div",{className:t.title,children:n}):o("div",{className:t.title,children:[i(I,{className:t.breadcrumbs,pages:h}),n]})}),subtitle:o("div",{className:t.headerContent,children:[a&&o(x,{target:"_blank",href:a,className:t.docLink,children:[i(T,{className:t.descriptionIcon,fontSize:"inherit"}),"Documentation"]}),!!c&&i("div",{children:c}),typeof r=="string"?i(p,{className:t.subtitle,variant:"body2",color:"inherit",children:r}):i("div",{children:r})]}),children:[m&&!u&&o(C,{className:t.button,onClick:()=>b(k),color:"inherit",variant:"outlined",children:[i(L,{className:t.icon}),i(p,{children:"Get Started with Soundcheck"})]}),!!s&&i("div",{children:s})]})};export{D as SoundcheckHeader};
1
+ import"react/jsx-runtime";import"@backstage/core-components";import"@backstage/core-plugin-api";import{makeStyles as o}from"@material-ui/core";import"@material-ui/icons/InfoOutlined";import"@material-ui/icons/MenuBook";import"react";import"react-router-dom";import"../../routes.esm.js";import"./Breadcrumbs.esm.js";import"./SoundcheckHeaderContext.esm.js";o(i=>({subtitle:{maxWidth:"75%",marginTop:i.spacing(.5),whiteSpace:"pre-line"},docLink:{display:"flex",alignItems:"center",marginTop:i.spacing(.5),marginBottom:i.spacing(0),width:"fit-content",fontSize:i.typography.body2.fontSize,color:"inherit"},descriptionIcon:{marginRight:i.spacing(.25)},headerContent:{color:i.page.fontColor},link:{},button:{textTransform:"none",marginRight:i.spacing(2),color:i.page.fontColor},icon:{paddingRight:i.spacing(1)},title:{},breadcrumbs:{}}),{name:"SoundcheckHeader"});
2
2
  //# sourceMappingURL=SoundcheckHeader.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as i,Fragment as v}from"react/jsx-runtime";import{useRouteRef as e,useApi as r,featureFlagsApiRef as x,configApiRef as y}from"@backstage/core-plugin-api";import{usePermission as A}from"@backstage/plugin-permission-react";import{Header as P,ButtonLink as C}from"@backstage/ui";import{RiCheckDoubleLine as w,RiSettings2Line as H}from"@remixicon/react";import{soundcheckCollectorReadPermission as I}from"@spotify/backstage-plugin-soundcheck-common";import{rootRouteRef as L,tracksPageRouteRef as F,checksPageRouteRef as T,campaignsPageRouteRef as B,integrationsPageRouteRef as O,overviewRouteRef as j,techHealthRouteRef as z,techInsightsPageRouteRef as D}from"../../routes.esm.js";const U=()=>{const s=e(L)(),o=e(F)(),n=e(T)(),h=e(B)(),l=e(O)(),f=e(j)(),g=e(z)(),m=e(D)(),a=r(x),d=r(y).getOptionalStringArray("soundcheck.flags"),c=a.getRegisteredFlags(),u=(!c.find(t=>t.name==="soundcheck-enable-tech-health")||a.isActive("soundcheck-enable-tech-health"))&&!d?.includes("soundcheck-disable-tech-health"),R=!c.find(t=>t.name==="soundcheck-enable-campaigns")||a.isActive("soundcheck-enable-campaigns"),{loading:p,allowed:k}=A({permission:I}),b=(!c.find(t=>t.name==="soundcheck-enable-collectors")||a.isActive("soundcheck-enable-collectors"))&&!p&&k,S=[{id:"tech-insights",label:"Tech Insights",href:m,matchStrategy:"prefix"},{id:"checks",label:"Checks",href:n,matchStrategy:"prefix"},{id:"tracks",label:"Tracks",href:o,matchStrategy:"prefix"},...R?[{id:"campaigns",label:"Campaigns",href:h,matchStrategy:"prefix"}]:[],...b?[{id:"integrations",label:"Integrations",href:l,matchStrategy:"prefix"}]:[],{id:"classic-overview",label:"Classic Overview",href:f,matchStrategy:"exact"},...u?[{id:"tech-health",label:"Tech Health",href:g,matchStrategy:"exact"}]:[]];return i(P,{title:"Soundcheck",icon:i(w,{size:18}),titleLink:s,tabs:S,customActions:i(v,{children:i(C,{href:"/settings",variant:"secondary",iconStart:i(H,{})})})})};export{U as SoundcheckHeaderBUI};
1
+ import{jsx as t,Fragment as R}from"react/jsx-runtime";import{useRouteRef as e,useApi as k,featureFlagsApiRef as b}from"@backstage/core-plugin-api";import{usePermission as S}from"@backstage/plugin-permission-react";import{Header as v,ButtonLink as x}from"@backstage/ui";import{RiCheckDoubleLine as y,RiSettings2Line as P}from"@remixicon/react";import{soundcheckCollectorReadPermission as A}from"@spotify/backstage-plugin-soundcheck-common";import{rootRouteRef as C,tracksPageRouteRef as w,checksPageRouteRef as I,campaignsPageRouteRef as L,integrationsPageRouteRef as F,overviewRouteRef as B,techInsightsPageRouteRef as H}from"../../routes.esm.js";const T=()=>{const o=e(C)(),c=e(w)(),s=e(I)(),n=e(L)(),l=e(F)(),m=e(B)(),f=e(H)(),i=k(b),r=i.getRegisteredFlags(),h=!r.find(a=>a.name==="soundcheck-enable-campaigns")||i.isActive("soundcheck-enable-campaigns"),{loading:g,allowed:d}=S({permission:A}),u=(!r.find(a=>a.name==="soundcheck-enable-collectors")||i.isActive("soundcheck-enable-collectors"))&&!g&&d,p=[{id:"tech-insights",label:"Tech Insights",href:f,matchStrategy:"prefix"},{id:"checks",label:"Checks",href:s,matchStrategy:"prefix"},{id:"tracks",label:"Tracks",href:c,matchStrategy:"prefix"},...h?[{id:"campaigns",label:"Campaigns",href:n,matchStrategy:"prefix"}]:[],...u?[{id:"integrations",label:"Integrations",href:l,matchStrategy:"prefix"}]:[],{id:"classic-overview",label:"Classic Overview",href:m,matchStrategy:"exact"}];return t(v,{title:"Soundcheck",icon:t(y,{size:18}),titleLink:o,tabs:p,customActions:t(R,{children:t(x,{href:"/settings",variant:"secondary",iconStart:t(P,{})})})})};export{T as SoundcheckHeaderBUI};
2
2
  //# sourceMappingURL=SoundcheckHeaderBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useContext as h,useEffect as k}from"react";import{SoundcheckHeaderContext as L}from"./SoundcheckHeaderContext.esm.js";const S={description:void 0,docLink:void 0,customSubtitle:void 0,sectionRight:void 0},R=({title:t,description:e,docLink:i,customSubtitle:o,sectionRight:c})=>{const{updateTitle:u,title:d,updateDescription:s,description:n,docLink:p,updateDocLink:r,customSubtitle:a,updateCustomSubtitle:l,sectionRight:m,updateSectionRight:f,setDefaultTitle:D}=h(L);k(()=>{t?d!==t&&u(t):D(),n!==e&&s(e),p!==i&&r(i),a!==o&&l(o),m!==c&&f(c)},[t,e,u,s,d,n,p,i,r,a,l,o,m,c,f,D])},b=()=>{R(S)};export{S as DEFAULT_HEADER,R as useHeader,b as useSetHeaderDefault};
1
+ import{useContext as h,useEffect as k}from"react";import{SoundcheckHeaderContext as D}from"./SoundcheckHeaderContext.esm.js";const R=({title:t,description:e,docLink:i,customSubtitle:o,sectionRight:c})=>{const{updateTitle:u,title:s,updateDescription:d,description:n,docLink:p,updateDocLink:r,customSubtitle:a,updateCustomSubtitle:l,sectionRight:m,updateSectionRight:f,setDefaultTitle:S}=h(D);k(()=>{t?s!==t&&u(t):S(),n!==e&&d(e),p!==i&&r(i),a!==o&&l(o),m!==c&&f(c)},[t,e,u,d,s,n,p,i,r,a,l,o,m,c,f,S])};export{R as useHeader};
2
2
  //# sourceMappingURL=useHeader.esm.js.map
@@ -1,2 +1,2 @@
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};
1
+ import"react/jsx-runtime";import{withStyles as t,Card as e,makeStyles as o}from"@material-ui/core";import{createStyles as r}from"@material-ui/core/styles";import"../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.esm.js";t(i=>r({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:i.spacing(2),position:"relative",justifyContent:"start"}}))(e),o(i=>({root:{position:"relative",height:"100%"},summaryName:{fontSize:i.typography.pxToRem(24),color:i.palette.text.primary,maxHeight:"250px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitBoxOrient:"vertical","-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{color:i.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:i.spacing(1),paddingBottom:0,paddingLeft:i.spacing(1),paddingRight:i.spacing(1),borderColor:i.palette.divider},cardContent:{height:"100%",paddingTop:0},actionArea:{padding:i.spacing(1.5,2,1.5,4)},button:{minWidth:0,color:i.palette.text.primary,"&:disabled":{color:i.palette.text.disabled,opacity:1}}}));
2
2
  //# sourceMappingURL=SummaryCard.esm.js.map
@@ -1,2 +1,2 @@
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};
1
+ import"react/jsx-runtime";import{makeStyles as o}from"@material-ui/core";import"@material-ui/icons/Archive";import"@material-ui/icons/Delete";import"@material-ui/icons/Edit";import"@material-ui/icons/MoreVert";import"@material-ui/icons/OpenInBrowser";import"@material-ui/icons/Refresh";import"@material-ui/icons/SaveAlt";import"react";o(t=>({menuList:{backgroundColor:t.palette.background.paper,color:t.palette.text.primary},menuIcon:{color:t.palette.text.primary},menuIconSize:{minWidth:t.spacing(4)}}));
2
2
  //# sourceMappingURL=SummaryCardActionsMenu.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as u,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 k,CellProfile as y}from"@backstage/ui";import{useNavigate as A}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 b}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 x=({ownerEntityRef:r,href:t,profileImageSrc:l,cells:c,menuActions:e,name:m,description:s,documentationURL:a})=>{const f=h(g),p=r?f.forEntity(r):void 0,n=A();return u(R,{onAction:()=>t&&n(t),children:[i(P,{title:m,description:s,onClick:()=>t&&n(t)}),c.map((o,d)=>i(k,{title:o.title,leadingIcon:o.icon,onClick:C=>{o.onClick&&(C.stopPropagation(),o.onClick())}},`cell-${d}`)),i(y,{name:p?.snapshot.primaryTitle,src:l??p?.snapshot.primaryTitle}),i(w,{onClick:o=>o.stopPropagation(),children:i(b,{label:`${m} actions`,disabled:!e?.length,placement:"left top",menuActions:e??[],documentationURL:a,isHeaderMenu:!1})})]})};export{x as TableRowWithOwner};
1
+ import{jsxs as u,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,CellText as k,CellProfile as y}from"@backstage/ui";import{useNavigate as A}from"react-router-dom";import{CustomCell as w}from"../CustomCell/CustomCell.esm.js";import{DescriptionCell as x}from"../DescriptionCell/DescriptionCell.esm.js";import{SimpleMenu as P}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:r,href:t,profileImageSrc:l,cells:c,menuActions:e,name:m,description:s,documentationURL:a})=>{const f=h(g),p=r?f.forEntity(r):void 0,n=A();return u(R,{onAction:()=>t&&n(t),children:[i(x,{title:m,description:s,onClick:()=>t&&n(t)}),c.map((o,d)=>i(k,{title:o.title,leadingIcon:o.icon,onClick:C=>{o.onClick&&(C.stopPropagation(),o.onClick())}},`cell-${d}`)),i(y,{name:p?.snapshot.primaryTitle,src:l??p?.snapshot.primaryTitle}),i(w,{onClick:o=>o.stopPropagation(),children:i(P,{label:`${m} actions`,disabled:!e?.length,placement:"left top",menuActions:e??[],documentationURL:a,isHeaderMenu:!1})})]})};export{T as TableRowWithOwner};
2
2
  //# sourceMappingURL=TableRowWithOwner.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 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};
1
+ import"react/jsx-runtime";import{makeStyles as i,alpha as r}from"@material-ui/core";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"lodash";import"react";import"../../CollapsablePanel/CollapsablePanel.esm.js";import"../../ListboxVirtualized/ListboxVirtualized.esm.js";import"./FilterProvider.esm.js";import"./types.esm.js";i(({palette:o,spacing:t})=>({chip:{maxWidth:"45%",textOverflow:"ellipsis",margin:t(.5,.5,.5,0),overflow:"hidden","& svg":{color:r(o.common.white,.7),"&:hover":{color:o.common.white}},backgroundColor:o.action.disabledBackground},autoCompleteInput:{"&& input":{margin:t(1,0,0,0),padding:`${t(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},"&& button":{"&:hover":{backgroundColor:"transparent"}}},autoComplete:{margin:t(.5,0,1,0)},selectionLabel:{lineHeight:"1em"}}));
2
2
  //# sourceMappingURL=FacetFilter.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as F}from"react/jsx-runtime";import{parseEntityRef as L}from"@backstage/catalog-model";import{humanizeEntityRef as S}from"@backstage/plugin-catalog-react";import{createFilterOptions as U}from"@material-ui/lab/Autocomplete";import{createContext as V,useCallback as h,useMemo as E,useContext as M}from"react";import R from"react-use/lib/useLocalStorage";import{useLoggedInUser as T}from"../../../contexts/UserProvider.esm.js";import{useFacetFilters as k}from"../../../hooks/facets/useFacetFilters.esm.js";import{TechHealthLoading as A}from"../Loading/TechHealthLoading.esm.js";import{useFacetOptions as C}from"./useFacetOptions.esm.js";import{emptyFacetFilters as N,DEFAULT_NUMBER_OF_DAYS as w,mapFacetFiltersToFilter as I}from"./utils.esm.js";const m=V({facetOptionsLoading:!1,getFacetOptions:()=>[],getFacetOptionLabel:()=>"",facetFilters:N(),clearAllFilters:()=>{},getSelectedFacetValues:()=>[],setSelectedFacetValues:()=>{},setManySelectedFacetValues:()=>{},numberOfDays:w,setNumberOfDays:()=>{},filter:{},loggedInUser:"Unknown"}),_=()=>M(m),f=l=>{const{userEntityRef:c,loading:u}=T(),{isLoading:n,facetOptions:r}=C(),[p]=R("soundcheck.overview.groupRef",null),{facetFilters:a,numberOfDays:o,setFacetFilter:d,setManyFacetFilters:g,getFacetFilter:O,clearFacetFilters:y,setNumberOfDays:b}=k(r,p??void 0),v=h(e=>r[e].map(({value:t})=>t),[r]),x=E(()=>I(r,a,o,c),[a,r,o,c]),D={facetOptionsLoading:n,getFacetOptions:v,getFacetOptionLabel:(e,t)=>{let s=r[e].find(i=>i.value===t)?.label;if(!s)try{const i=L(t);s=S(i)}catch{}return U(),s??t},facetFilters:a,clearAllFilters:y,getSelectedFacetValues:e=>O(e),setSelectedFacetValues:(e,t)=>{d(e,t)},setManySelectedFacetValues:(e,t)=>{g(e,t)},numberOfDays:o,setNumberOfDays:b,filter:x??{},loggedInUser:"Unknown"};return n||u?F(A,{loadingText:l.loadingText}):F(m.Provider,{...l,value:D})};export{f as FilterProvider,f as default,_ as useFilterContext};
1
+ import"react/jsx-runtime";import"@backstage/catalog-model";import"@backstage/plugin-catalog-react";import"@material-ui/lab/Autocomplete";import{createContext as t}from"react";import"react-use/lib/useLocalStorage";import"../../../contexts/UserProvider.esm.js";import"lodash";import"react-router-dom";import"./types.esm.js";import"./FacetFilter.esm.js";import"./Filters.esm.js";import"./FiltersHeader.esm.js";import"./FiltersSection.esm.js";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{emptyFacetFilters as e,DEFAULT_NUMBER_OF_DAYS as r}from"./utils.esm.js";import"../Loading/TechHealthLoading.esm.js";t({facetOptionsLoading:!1,getFacetOptions:()=>[],getFacetOptionLabel:()=>"",facetFilters:e(),clearAllFilters:()=>{},getSelectedFacetValues:()=>[],setSelectedFacetValues:()=>{},setManySelectedFacetValues:()=>{},numberOfDays:r,setNumberOfDays:()=>{},filter:{},loggedInUser:"Unknown"});
2
2
  //# sourceMappingURL=FilterProvider.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as l,jsx as e}from"react/jsx-runtime";import{makeStyles as c,Box as n}from"@material-ui/core";import{useLocation as p}from"react-router-dom";import{FacetFilter as f}from"./FacetFilter.esm.js";import{FiltersHeader as d}from"./FiltersHeader.esm.js";import{FiltersSection as o}from"./FiltersSection.esm.js";import{NumberOfDaysFilter as u}from"./NumberOfDaysFilter.esm.js";import{Facet as a}from"./types.esm.js";const h=c(t=>({filters:{maxWidth:"300px",width:"100%",backgroundColor:t.palette.background.paper}})),F=()=>{const t=h(),m=p().pathname.includes("campaigns");let i=Object.values(a);if(m){const r=[a.Track,a.Level];i=i.filter(s=>!r.includes(s))}return l(n,{className:t.filters,children:[e(o,{isHeader:!0,children:e(d,{})}),e(o,{children:e(u,{})}),i.map(r=>e(o,{size:"small",children:e(f,{facet:r})},r))]})};export{F as Filters};
1
+ import"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import"react-router-dom";import"./FacetFilter.esm.js";import"./FiltersHeader.esm.js";import"./FiltersSection.esm.js";import"./NumberOfDaysFilter.esm.js";import"./types.esm.js";t(r=>({filters:{maxWidth:"300px",width:"100%",backgroundColor:r.palette.background.paper}}));
2
2
  //# sourceMappingURL=Filters.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as c,jsx as t}from"react/jsx-runtime";import{makeStyles as m,Box as i,Typography as p,Button as d}from"@material-ui/core";import{useFilterContext as h}from"./FilterProvider.esm.js";import{Facet as r}from"./types.esm.js";import{DEFAULT_NUMBER_OF_DAYS as g}from"./utils.esm.js";const f=m(e=>({root:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},clearButton:{lineHeight:e.typography.caption.lineHeight,fontSize:e.typography.caption.fontSize,padding:e.spacing(1),margin:e.spacing(2),marginBottom:e.spacing(2)-1},hidden:{visibility:"hidden"},headerText:{marginLeft:e.spacing(3)}}));function y(){const e=f(),{numberOfDays:n,facetFilters:a,clearAllFilters:o}=h(),l=Object.keys(r).some(s=>a[r[s]].length)||n!==g;return c(i,{className:e.root,children:[t(i,{className:e.headerText,children:t(p,{variant:"h6",children:"Filters"})}),t(i,{children:t(d,{className:l?e.clearButton:`${e.clearButton} ${e.hidden}`,onClick:o,size:"small",variant:"outlined",color:"primary",children:"Clear all"})})]})}export{y as FiltersHeader};
1
+ import"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import"./FilterProvider.esm.js";import"./types.esm.js";t(i=>({root:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},clearButton:{lineHeight:i.typography.caption.lineHeight,fontSize:i.typography.caption.fontSize,padding:i.spacing(1),margin:i.spacing(2),marginBottom:i.spacing(2)-1},hidden:{visibility:"hidden"},headerText:{marginLeft:i.spacing(3)}}));
2
2
  //# sourceMappingURL=FiltersHeader.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as s}from"react/jsx-runtime";import{makeStyles as t,Box as d}from"@material-ui/core";const a=t(({palette:i,spacing:e})=>({root:{padding:({size:r,isHeader:o})=>o?0:r==="small"?e(1.5,2):e(2),borderBottom:`1px solid ${i.divider}`}}));function l({children:i,size:e,isHeader:r}){const o=a({size:e,isHeader:r});return s(d,{className:o.root,children:i})}export{l as FiltersSection};
1
+ import"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";t(({palette:i,spacing:e})=>({root:{padding:({size:o,isHeader:r})=>r?0:o==="small"?e(1.5,2):e(2),borderBottom:`1px solid ${i.divider}`}}));
2
2
  //# sourceMappingURL=FiltersSection.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as v,jsx as n}from"react/jsx-runtime";import{makeStyles as $,Box as m,Chip as N,TextField as B}from"@material-ui/core";import{useState as d}from"react";import{useFilterContext as D}from"./FilterProvider.esm.js";import{MIN_NUMBER_OF_DAYS as r,MAX_NUMBER_OF_DAYS as l}from"./utils.esm.js";const M=$(t=>({select:{width:"100%",margin:t.spacing(1,0)},chipPadding:{marginBottom:t.spacing(1)},chipSelected:{border:`1px solid ${t.palette.text.primary}`}})),u=[7,30,90].map(t=>({value:t,label:`Last ${t} days`}));function S(){const t=M(),{numberOfDays:s,setNumberOfDays:p}=D(),c=[...u];u.map(e=>e.value).includes(s)||c.push({value:s,label:`Last ${s} days`});const[f,h]=d(c),[i,o]=d(""),y=()=>{if(i.length){const e=parseInt(i,10);return!isNaN(e)&&(e<r||e>l)}return!1},b=()=>{const e=parseInt(i,10);if(e<r)return`Minimum of ${r} days`;if(e>l)return`Maximum of ${l} days`},x=e=>{if(e.key==="Enter"){const a=parseInt(i,10);a>=r&&a<=l?(u.map(g=>g.value).includes(a)||h([...u,{value:a,label:`Last ${a} days`}]),p(a),o("")):a<r?o(`${r}`):o(`${l}`)}};return v(m,{children:[n(m,{marginBottom:1,children:n(m,{children:f.sort((e,a)=>e.value-a.value).map(({label:e,value:a})=>n(N,{label:e,className:`${t.chipPadding} ${s===a?t.chipSelected:""}`,size:"small",onClick:()=>p(a)},a))})}),n(m,{children:n(B,{fullWidth:!0,placeholder:"Number of days",inputProps:{min:r,max:l},onKeyDown:x,helperText:b(),value:i,type:"number",error:y(),onChange:e=>o(e.target.value)})})]})}export{S as NumberOfDaysFilter};
1
+ import"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import"react";import"./FilterProvider.esm.js";import"./types.esm.js";t(i=>({select:{width:"100%",margin:i.spacing(1,0)},chipPadding:{marginBottom:i.spacing(1)},chipSelected:{border:`1px solid ${i.palette.text.primary}`}}));
2
2
  //# sourceMappingURL=NumberOfDaysFilter.esm.js.map
@@ -1,2 +1,2 @@
1
- var t=(e=>(e.Entity="Entity",e.Kind="Entity Kind",e.Type="Entity Type",e.EntityOwner="Entity Owner",e.Lifecycle="Entity Lifecycle",e.System="System",e.Track="Track",e.Level="Track Level",e.Check="Check",e.CheckOwner="Check Owner",e))(t||{});const i={Entity:"Entities are software components, like a system, service, or library. They are the entities/components that Soundcheck runs checks against. Choosing entities will filter the results to only show those that are associated with the selected entity/entities.","Entity Kind":"The 'kind' of the Entity as defined by Catalog, e.g. Component, System, User, Group, etc. This will filter results to only show those for Entities with the selected kind(s).","Entity Type":"The type of Entity as defined by Catalog, e.g. Database, Team, Service, Website, etc. This will filter results to only show those related to Entities with the selected type(s).","Entity Owner":"The owner of the Entity, typically a team or and individual. This will filter results to only those Entities that are owned by the selected owner(s).","Entity Lifecycle":"The lifecycle of the entity: e.g. experimental, production, etc. This will filter results to only show those related to Entities with the selected lifecycle(s).",System:"This System filter will filter results to only show those for Entities that are part of the selected System(s).",Track:"This Track filter will filter results to only show those related to the selected Track(s).","Track Level":"This Track level filter will filter results to only show those related to the selected Track level(s).",Check:"This Check filter will filter results to only show those related to the selected Check(s).","Check Owner":"The owner of the Check, typically a team or an individual. This will limit results to only be results from Checks that are owned by the selected owner(s)."};export{t as Facet,i as facetTooltips};
1
+ var n=(t=>(t.Entity="Entity",t.Kind="Entity Kind",t.Type="Entity Type",t.EntityOwner="Entity Owner",t.Lifecycle="Entity Lifecycle",t.System="System",t.Track="Track",t.Level="Track Level",t.Check="Check",t.CheckOwner="Check Owner",t))(n||{});export{n as Facet};
2
2
  //# sourceMappingURL=types.esm.js.map
@@ -1,2 +1,2 @@
1
- import{Facet as t}from"./types.esm.js";const a=30,l=2,y=90,o=r=>{if(r?.length){const e=parseInt(r,10);if(!isNaN(e)&&e>=l&&e<=y)return e}return a},p=r=>Object.fromEntries(Object.values(t).map(e=>r&&e===t.EntityOwner?[e,[r]]:[e,[]])),m=(r,e,s)=>{if(e.length)return e.map(c=>({trackId:c,levels:s.length?s.map(n=>parseInt(n,10)):void 0}));if(s.length)return r.map(c=>({trackId:c.value,levels:s.map(n=>parseInt(n,10))}))},O=(r,e,s,c)=>{const n=i=>e[i]?.length?{included:e[i]}:void 0;return{checkIds:n(t.Check),checkOwners:n(t.CheckOwner),entityOwners:n(t.EntityOwner),entityRefs:n(t.Entity),tracks:m(r[t.Track],e[t.Track],e[t.Level]),numberOfDays:s??a,context:c?{loggedInUser:c}:void 0,entityTypes:n(t.Type),entityKinds:n(t.Kind),entityLifecycles:n(t.Lifecycle),systems:n(t.System)}};export{a as DEFAULT_NUMBER_OF_DAYS,y as MAX_NUMBER_OF_DAYS,l as MIN_NUMBER_OF_DAYS,p as emptyFacetFilters,O as mapFacetFiltersToFilter,o as parseNumberOfDays};
1
+ import{Facet as a}from"./types.esm.js";const r=30,s=2,_=90,n=e=>{if(e?.length){const t=parseInt(e,10);if(!isNaN(t)&&t>=s&&t<=_)return t}return r},F=e=>Object.fromEntries(Object.values(a).map(t=>[t,[]]));export{r as DEFAULT_NUMBER_OF_DAYS,_ as MAX_NUMBER_OF_DAYS,s as MIN_NUMBER_OF_DAYS,F as emptyFacetFilters,n as parseNumberOfDays};
2
2
  //# sourceMappingURL=utils.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as i,jsx as o}from"react/jsx-runtime";import{makeStyles as a,Typography as l}from"@material-ui/core";import{useEntityCountCached as c}from"../../../hooks/cache/useEntityCountCached.esm.js";import{useTrackCountCached as d}from"../../../hooks/cache/useTrackCountCached.esm.js";import{Loading as s}from"./Loading.esm.js";const u=a(e=>({container:{display:"flex",margin:"-24px",backgroundColor:e.palette.background.paper,borderTop:`1px solid ${e.palette.border}`,flex:1},fixedColumn:{width:"300px",flex:"none",borderRight:`1px solid ${e.palette.border}`},flexibleColumn:{display:"flex",flexDirection:"column",flex:1,backgroundColor:e.palette.background.default,height:"100%",maxWidth:"100%"},tabsPlaceholder:{height:"36.5px",backgroundColor:e.palette.background.paper}})),p=({text:e,entityCount:r,trackCount:n})=>{const t=[];return t.push(o(l,{style:{fontSize:"1.1rem"},children:e??"Loading..."},"text")),r!==null&&(t.push(o("div",{},"spacer-entity")),t.push(i(l,{style:{fontSize:"1.1rem"},children:["Processing ",r," entities..."]},"entityCount"))),n!==null&&(t.push(o("div",{},"spacer-track")),t.push(i(l,{style:{fontSize:"1.1rem"},children:["Processing ",n," tracks..."]},"trackCount"))),o("div",{children:t})},h=({loadingText:e})=>{const r=u(),{entityCount:n}=c(),{trackCount:t}=d();return i("div",{className:r.container,children:[o("div",{className:r.fixedColumn}),i("div",{className:r.flexibleColumn,children:[o("div",{className:r.tabsPlaceholder}),o(s,{children:o(p,{text:e,entityCount:n,trackCount:t})})]})]})};export{h as TechHealthLoading};
1
+ import"react/jsx-runtime";import{makeStyles as r}from"@material-ui/core";import"react";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"./Loading.esm.js";r(o=>({container:{display:"flex",margin:"-24px",backgroundColor:o.palette.background.paper,borderTop:`1px solid ${o.palette.border}`,flex:1},fixedColumn:{width:"300px",flex:"none",borderRight:`1px solid ${o.palette.border}`},flexibleColumn:{display:"flex",flexDirection:"column",flex:1,backgroundColor:o.palette.background.default,height:"100%",maxWidth:"100%"},tabsPlaceholder:{height:"36.5px",backgroundColor:o.palette.background.paper}}));
2
2
  //# sourceMappingURL=TechHealthLoading.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{useFeatureFlag as t}from"../../hooks/useFeatureFlag.esm.js";import{TechInsightsPageBUI as r}from"./TechInsightsPageBUI.esm.js";import{TechInsightsPageDeprecated as o}from"./TechInsightsPageDeprecated.esm.js";const s=()=>t("backstage-ui")?e(r,{}):e(o,{});export{s as TechInsightsPage};
1
+ import{jsx as o}from"react/jsx-runtime";import{TechInsightsPageBUI as s}from"./TechInsightsPageBUI.esm.js";const t=()=>o(s,{});export{t as TechInsightsPage};
2
2
  //# sourceMappingURL=TechInsightsPage.esm.js.map