@spotify/backstage-plugin-soundcheck 0.19.2 → 0.19.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/config.d.ts +54 -1
- package/dist/alpha/integrations.esm.js +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha.d.ts +2 -2
- package/dist/api.esm.js +1 -1
- package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
- package/dist/components/Badges/NoLevelBadge.esm.js +2 -2
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
- package/dist/components/CampaignPage/CampaignPage.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignPageBUI.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignPageDeprecated.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignStatusHistoryChart.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignStatusHistoryTile.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignStatusTile.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignTechInsightsExplorerPage.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
- package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
- package/dist/components/Cards/CheckStatusCard/CheckStatusCard.esm.js +2 -0
- package/dist/components/Cards/DescriptionCard/DescriptionCard.esm.js +2 -0
- package/dist/components/Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js +2 -0
- package/dist/components/Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js +2 -0
- package/dist/components/Cards/TrackStatusCard/TrackStatusCard.esm.js +2 -0
- package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +1 -1
- package/dist/components/CertificationSidebar/LevelSummary.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +1 -1
- package/dist/components/Charts/chartUtils.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
- package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
- package/dist/components/CheckDetails/JustificationDetails.esm.js +1 -1
- package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
- package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +2 -0
- package/dist/components/CheckPage/CheckPage.esm.js +2 -0
- package/dist/components/CheckPage/CheckPageBUI.esm.js +2 -0
- package/dist/components/CheckPage/CheckPageDeprecated.esm.js +2 -0
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChartBUI.esm.js +2 -0
- package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusTableBUI.esm.js +2 -0
- package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +2 -0
- package/dist/components/CheckPage/utils.esm.js +1 -1
- package/dist/components/CheckSelection/CheckPreview.esm.js +1 -1
- package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
- package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +1 -1
- package/dist/components/CheckStatusBar/CheckStatusBarBUI.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPageBUI.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/TemplateCategoryBUI.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckListPageDeprecated.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +2 -0
- package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
- package/dist/components/ChecksTable/ChecksTable.esm.js +2 -0
- package/dist/components/ChipSelector/ChipSelector.esm.js +2 -0
- package/dist/components/CollapsablePanel/CollapsablePanel.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorFactTable.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorFactTableBUI.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/IssuesFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/DependantCheckCard.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/CollectorsPage/IntegrationLogoBUI.esm.js +2 -0
- package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +2 -0
- package/dist/components/CustomCell/CustomCell.esm.js +2 -0
- package/dist/components/DescriptionCell/DescriptionCell.esm.js +2 -0
- package/dist/components/DocLinkButton/DocLinkButton.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateBUI.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoCampaigns.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoChecks.esm.js +2 -0
- package/dist/components/EmptyState/EmptyStateNoTracks.esm.js +2 -0
- package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerDialogBUI.esm.js +2 -0
- package/dist/components/FactExplorer/useFactOptions.esm.js +1 -1
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/Filter/FilterComponent.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
- package/dist/components/FilterMenu/FilterMenu.esm.js +2 -0
- package/dist/components/FilterSidebar/FilterSidebar.esm.js +1 -1
- package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
- package/dist/components/FilterSidebar/useTrackFilterSidebar.esm.js +1 -1
- package/dist/components/FilterSidebar/util.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/useLabelValueOptions.esm.js +2 -0
- package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +1 -1
- package/dist/components/FormattedPreview/FormattedPreview.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +1 -1
- package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +1 -1
- package/dist/components/GroupSelectorBUI/GroupSelectList.esm.js +2 -0
- package/dist/components/GroupSelectorBUI/GroupSelectionHistory.esm.js +2 -0
- package/dist/components/GroupSelectorBUI/GroupSelectorBUI.esm.js +2 -0
- package/dist/components/GroupSelectorBUI/GroupTag.esm.js +2 -0
- package/dist/components/GroupSelectorBUI/useGroupHistory.esm.js +2 -0
- package/dist/components/GroupSelectorBUI/usePreviousSelectedGroups.esm.js +2 -0
- package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/HierarchyTable.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js +1 -1
- package/dist/components/ImportExportPanel/ImportExportPanelBUI.esm.js +2 -0
- package/dist/components/ImportExportPanel/{ImportExportPanel.esm.js → ImportExportPanelDeprecated.esm.js} +2 -2
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/LevelsTable/CheckRowContent.esm.js +1 -1
- package/dist/components/LevelsTable/LevelsTable.esm.js +1 -1
- package/dist/components/ListPageCustomActions/ListPageCustomActions.esm.js +2 -0
- package/dist/components/LoadingTableSkeleton/LoadingTableSkeleton.esm.js +2 -0
- package/dist/components/Menus/SimpleMenu.esm.js +2 -0
- package/dist/components/Menus/useCampaignActions.esm.js +2 -0
- package/dist/components/Menus/useCheckActions.esm.js +2 -0
- package/dist/components/Menus/useTrackActions.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/PageCustomActions/PageCustomActions.esm.js +2 -0
- package/dist/components/PassRateTable/PassRateTable.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -2
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingMainMenu.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPageBUI.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPageDeprecated.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPageWrapper.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPageWrapperBUI.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPageWrapperDeprecated.esm.js +2 -0
- package/dist/components/RoutingPage/index.esm.js +1 -1
- package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
- package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialog.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeaderBUI.esm.js +2 -0
- package/dist/components/SoundcheckMarkdownContent/ComponentRenders.esm.js +1 -1
- package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js +2 -0
- package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js +2 -0
- package/dist/components/StatusBar/StatusBar.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
- package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +2 -0
- package/dist/components/TeamStatusBar/TeamStatusBar.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
- package/dist/components/TechInsights/FilterControls.esm.js +1 -1
- package/dist/components/TechInsights/SummaryTiles.esm.js +1 -1
- package/dist/components/TechInsights/SummaryTilesBUI.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsPage.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsPageDeprecated.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +2 -0
- package/dist/components/TechInsights/TechInsightsTableView.esm.js +1 -1
- package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +2 -0
- package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
- package/dist/components/TimePeriodBar/TimePeriodBar.esm.js +1 -1
- package/dist/components/TimePeriodBar/TimePeriodBarBUI.esm.js +2 -0
- package/dist/components/TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js +2 -0
- package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +2 -0
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackBadgeTypeSelect/TrackBadgeTypeSelect.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
- package/dist/components/TrackForm/TrackForm.esm.js +1 -1
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackHistoryChartBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackPageBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackPageDeprecated.esm.js +2 -0
- package/dist/components/TrackPage/TrackStatusBarBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackStatusTableBUI.esm.js +2 -0
- package/dist/components/TrackPage/TrackTechInsightsExplorerPage.esm.js +2 -0
- package/dist/components/TrackSelection/TrackSelection.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackListPageDeprecated.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
- package/dist/components/TracksPage/TracksListPageBUI.esm.js +2 -0
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +126 -117
- package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
- package/dist/hooks/catalog/useGetLimitedEntityRefs.esm.js +1 -1
- package/dist/hooks/catalog/useProfileImages.esm.js +2 -0
- package/dist/hooks/checks/useCheckDetails.esm.js +1 -1
- package/dist/hooks/entities/useTrackEntities.esm.js +1 -1
- package/dist/hooks/filters/useFilters.esm.js +2 -0
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/groups/useAllGroups.esm.js +1 -1
- package/dist/hooks/groups/useGroupOptions.esm.js +1 -1
- package/dist/hooks/groups/useUsersGroupClaims.esm.js +1 -1
- package/dist/hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js +1 -1
- package/dist/hooks/heirarchy/useGroupHierarchy.esm.js +1 -1
- package/dist/hooks/tracks/useRecertifyTrack.esm.js +2 -0
- package/dist/hooks/tracks/useTracksApplicableToGroup.esm.js +1 -1
- package/dist/hooks/useConfirmationModal.esm.js +1 -1
- package/dist/hooks/useLoadTimeReporting.esm.js +2 -0
- package/dist/hooks/usePagination.esm.js +2 -0
- package/dist/hooks/useSearchName.esm.js +2 -0
- package/dist/hooks/useSortTableLocalStorage.esm.js +2 -0
- package/dist/routes.esm.js +1 -1
- package/dist/utils/charts.esm.js +1 -1
- package/dist/utils/formStyles.esm.js +1 -1
- package/dist/utils/formatters.esm.js +1 -1
- package/dist/utils/helpers.esm.js +1 -1
- package/dist/utils/lcpReporting.esm.js +1 -1
- package/dist/utils/time.esm.js +1 -1
- package/package.json +25 -33
- package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +0 -2
- package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +0 -2
- package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +0 -2
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +0 -2
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +0 -2
- package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +0 -2
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +0 -2
- package/dist/components/GroupHierarchySelector/usePreviousSelectedGroups.esm.js +0 -2
- package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsCardsView.esm.js +0 -2
- package/dist/components/TechInsights/TrackStatusCard.esm.js +0 -2
- package/dist/components/TechInsights/ViewModeControls.esm.js +0 -2
- package/dist/components/TechInsights/convertToCommonTrackStatus.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +0 -2
- /package/dist/components/{CampaignInsightsPage → CampaignPage}/DaysRemainingTile.esm.js +0 -0
- /package/dist/{components/GroupHierarchySelector → utils}/getAllOwnedEntityCount.esm.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
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};
|
|
2
2
|
//# sourceMappingURL=TechHealthLoading.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as r,jsx as e}from"react/jsx-runtime";import{DismissableBanner as p,TabbedLayout as i}from"@backstage/core-components";import{useApi as m,featureFlagsApiRef as n}from"@backstage/core-plugin-api";import{makeStyles as s,Typography as c,Box as d}from"@material-ui/core";import{Routes as h,Route as u}from"react-router-dom";import{useLCPReporting as f}from"../../hooks/useLCPReporting.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as g}from"../SoundcheckHeader/useHeader.esm.js";import{TechHealthSummary as b}from"../TechHealthSummary/TechHealthSummary.esm.js";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import"../TechHealthTabs/PassRateTabStyles.esm.js";import"../StyledTooltip/StyledTooltip.esm.js";import"../TechHealthTabs/OwnerColumn.esm.js";import{TrackResultsTab as x}from"../TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js";import{EntityResultsTab as R}from"../TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js";import{GroupResultsTab as T}from"../TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js";import{CampaignResultsTab as k}from"../TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js";import{CheckResultsTab as y}from"../TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js";import"./Filters/types.esm.js";import"./Filters/FacetFilter.esm.js";import{FilterProvider as C}from"./Filters/FilterProvider.esm.js";import{Filters as v}from"./Filters/Filters.esm.js";import"./Filters/FiltersHeader.esm.js";import"./Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";const w=s(t=>({container:{display:"flex",margin:"-24px",backgroundColor:t.palette.background.paper,borderTop:`1px solid ${t.palette.border}`,flex:1},fixedColumn:{width:"300px",flex:"none",borderRight:`1px solid ${t.palette.divider}`},flexibleColumn:{display:"flex",flexDirection:"column",flex:1,backgroundColor:t.palette.background.paper,height:"100%",maxWidth:"100%"},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",backgroundColor:t.palette.background.default,"& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",borderTop:`1px solid ${t.palette.border}`,padding:`${t.spacing(3)}px !important`}},warning:{margin:"0 -24px"}})),N=()=>{g();const t=w(),o=m(n),a=!o.getRegisteredFlags().find(l=>l.name==="soundcheck-enable-campaigns")||o.isActive("soundcheck-enable-campaigns");return f({routeName:"soundcheck-tech-health",additionalAttributes:{campaignsEnabled:a.toString()}}),r(C,{children:[e("div",{className:t.warning,children:e(p,{id:"sunset-tech-health-banner",variant:"warning",message:e(c,{variant:"body2",children:"The Tech Health page will be retired in an upcoming release. Please use the new Tech Insights page for continued visibility into health data."})})}),r("div",{className:t.container,children:[e("div",{className:t.fixedColumn,children:e(v,{})}),e("div",{className:t.flexibleColumn,children:e(d,{className:t.pageLayout,"aria-label":"tech health tabs",children:e(h,{children:e(u,{path:"/*",element:r(i,{children:[e(i.Route,{title:"Summary",path:"/",children:e(b,{})}),a&&e(i.Route,{title:"Campaigns",path:"/campaigns",children:e(k,{})}),e(i.Route,{title:"Checks",path:"/checks",children:e(y,{})}),e(i.Route,{title:"Tracks",path:"/tracks",children:e(x,{})}),e(i.Route,{title:"Entities",path:"/entities",children:e(R,{})}),e(i.Route,{title:"Teams",path:"/teams",children:e(T,{})})]})})})})})]})]})};export{N as TechHealth};
|
|
2
2
|
//# sourceMappingURL=TechHealth.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as s}from"react/jsx-runtime";import{createContext as n,useMemo as p,useContext as g}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useAggregatedCheckPassRateTrend as v}from"../../hooks/aggregations/useAggregatedCheckPassRateTrend.esm.js";import{useAggregatedTrackPassRateTrend as u}from"../../hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js";import{useAggregatedEntityPassRateTrend as P}from"../../hooks/aggregations/useAggregatedEntityPassRateTrend.esm.js";import{useAggregatedGroupPassRateTrend as T}from"../../hooks/aggregations/useAggregatedGroupPassRateTrend.esm.js";import"react-router-dom";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as c}from"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{Loading as R}from"../TechHealth/Loading/Loading.esm.js";const a=n({checkPassRateTrend:{data:void 0,isLoading:!0,isError:!1},trackPassRateOverviewTrend:{data:void 0,isLoading:!0,isError:!1},entityPassRatesOverviewTrends:{data:void 0,isLoading:!0,isError:!1},groupPassRatesOverviewTrends:{data:void 0,isLoading:!0,isError:!1}}),f=()=>g(a),L=m=>{const{filter:r}=c(),t=v(r),e=u(r),i=P(r),o=T({filter:r,first:5}),d=p(()=>({checkPassRateTrend:t,trackPassRateOverviewTrend:e,entityPassRatesOverviewTrends:i,groupPassRatesOverviewTrends:o}),[t,e,i,o]);return t.isLoading||e.isLoading||i.isLoading||o.isLoading?s(R,{}):s(a.Provider,{...m,value:d})};export{L as SummaryAggregationsProvider,f as useSummaryAggregationsContext};
|
|
1
|
+
import{jsx as s}from"react/jsx-runtime";import{createContext as n,useMemo as p,useContext as g}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useAggregatedCheckPassRateTrend as v}from"../../hooks/aggregations/useAggregatedCheckPassRateTrend.esm.js";import{useAggregatedTrackPassRateTrend as u}from"../../hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js";import{useAggregatedEntityPassRateTrend as P}from"../../hooks/aggregations/useAggregatedEntityPassRateTrend.esm.js";import{useAggregatedGroupPassRateTrend as T}from"../../hooks/aggregations/useAggregatedGroupPassRateTrend.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as c}from"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{Loading as R}from"../TechHealth/Loading/Loading.esm.js";const a=n({checkPassRateTrend:{data:void 0,isLoading:!0,isError:!1},trackPassRateOverviewTrend:{data:void 0,isLoading:!0,isError:!1},entityPassRatesOverviewTrends:{data:void 0,isLoading:!0,isError:!1},groupPassRatesOverviewTrends:{data:void 0,isLoading:!0,isError:!1}}),f=()=>g(a),L=m=>{const{filter:r}=c(),t=v(r),e=u(r),i=P(r),o=T({filter:r,first:5}),d=p(()=>({checkPassRateTrend:t,trackPassRateOverviewTrend:e,entityPassRatesOverviewTrends:i,groupPassRatesOverviewTrends:o}),[t,e,i,o]);return t.isLoading||e.isLoading||i.isLoading||o.isLoading?s(R,{}):s(a.Provider,{...m,value:d})};export{L as SummaryAggregationsProvider,f as useSummaryAggregationsContext};
|
|
2
2
|
//# sourceMappingURL=SummaryAggregationsProvider.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as a,jsxs as G}from"react/jsx-runtime";import{useRouteRef as I}from"@backstage/core-plugin-api";import{Typography as T,Box as M,Grid as S}from"@material-ui/core";import{useState as i,useEffect as A,useMemo as B}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as D}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useTrackPassRateTrend as F}from"../../../hooks/aggregations/useTrackPassRateTrend.esm.js";import"react-router-dom";import{campaignDetailsRouteRef as N}from"../../../routes.esm.js";import{campaignTrackPassRatesCsvFilename as j}from"../../../utils/charts.esm.js";import{PassRateGrid as V}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as H}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as q}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as z}from"../../TechHealth/Loading/Loading.esm.js";import{PassRateTabHeader as J}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as K}from"../PassRateTabStyles.esm.js";import{trackPassRatesToCsv as O}from"../TechHealthExportFunctions.esm.js";import{ViewMode as u,generateTrackPassRateGridData as Q}from"../techHealthTabUtils.esm.js";import{generateColumns as U}from"../TrackResultsTab/TrackResultsTab.esm.js";const W=()=>{const h=K(),{filter:g}=q(),m=I(N),{data:k}=D({orderAlphabetical:"default",searchByStatus:"active"}),t=k?.edges.map(r=>r.node)?.map(({id:r,track:f})=>({campaignId:r,trackId:f.id})),P=t?.map(({trackId:r})=>({trackId:r})),{data:s,isLoading:R,isError:v}=F({...g,tracks:P,trackTypes:{included:["campaign"]}}),[p,C]=i(u.TABLE),[e,w]=i(""),[c,n]=i(0),[d,b]=i(10);A(()=>{n(0)},[g,e]);const L=B(()=>U(s?.individualTrackPassRate??[],void 0,m,t),[s?.individualTrackPassRate,m,t]);if(R)return a(z,{});if(v)return a(T,{color:"error",children:"Failed to load campaign tracks"});const{individualTrackPassRate:l}=s;if(!l)return a(T,{color:"error",children:"No available campaign tracks"});const o=e.length?l.filter(({trackName:r})=>r?.toLowerCase()?.includes(e.toLowerCase())):l,y=async()=>O(o,t),x=(r,f)=>{n(()=>f)},E=r=>{b(+r.target.value),n(0)};return a(M,{className:h.root,children:G(S,{container:!0,direction:"row",children:[a(J,{viewMode:p,setViewMode:C,isLoading:R,searchTerm:e,setSearchTerm:w,searchPlaceholder:"Search Available Campaigns",fetchCsvData:y,csvFilename:j}),p===u.TABLE&&a(H,{data:o,columns:L}),p===u.GRID&&a(V,{data:Q(o.slice(c*d,(c+1)*d),void 0,m,t),totalCount:o?.length??0,page:c,rowsPerPage:d,onPageChange:x,onRowsPerPageChange:E})]})})};export{W as CampaignResultsTab};
|
|
1
|
+
import{jsx as a,jsxs as G}from"react/jsx-runtime";import{useRouteRef as I}from"@backstage/core-plugin-api";import{Typography as T,Box as M,Grid as S}from"@material-ui/core";import{useState as i,useEffect as A,useMemo as B}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as D}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useTrackPassRateTrend as F}from"../../../hooks/aggregations/useTrackPassRateTrend.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{campaignDetailsRouteRef as N}from"../../../routes.esm.js";import{campaignTrackPassRatesCsvFilename as j}from"../../../utils/charts.esm.js";import{PassRateGrid as V}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as H}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as q}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as z}from"../../TechHealth/Loading/Loading.esm.js";import{PassRateTabHeader as J}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as K}from"../PassRateTabStyles.esm.js";import{trackPassRatesToCsv as O}from"../TechHealthExportFunctions.esm.js";import{ViewMode as u,generateTrackPassRateGridData as Q}from"../techHealthTabUtils.esm.js";import{generateColumns as U}from"../TrackResultsTab/TrackResultsTab.esm.js";const W=()=>{const h=K(),{filter:g}=q(),m=I(N),{data:k}=D({orderAlphabetical:"default",searchByStatus:"active"}),t=k?.edges.map(r=>r.node)?.map(({id:r,track:f})=>({campaignId:r,trackId:f.id})),P=t?.map(({trackId:r})=>({trackId:r})),{data:s,isLoading:R,isError:v}=F({...g,tracks:P,trackTypes:{included:["campaign"]}}),[p,C]=i(u.TABLE),[e,w]=i(""),[c,n]=i(0),[d,b]=i(10);A(()=>{n(0)},[g,e]);const L=B(()=>U(s?.individualTrackPassRate??[],void 0,m,t),[s?.individualTrackPassRate,m,t]);if(R)return a(z,{});if(v)return a(T,{color:"error",children:"Failed to load campaign tracks"});const{individualTrackPassRate:l}=s;if(!l)return a(T,{color:"error",children:"No available campaign tracks"});const o=e.length?l.filter(({trackName:r})=>r?.toLowerCase()?.includes(e.toLowerCase())):l,y=async()=>O(o,t),x=(r,f)=>{n(()=>f)},E=r=>{b(+r.target.value),n(0)};return a(M,{className:h.root,children:G(S,{container:!0,direction:"row",children:[a(J,{viewMode:p,setViewMode:C,isLoading:R,searchTerm:e,setSearchTerm:w,searchPlaceholder:"Search Available Campaigns",fetchCsvData:y,csvFilename:j}),p===u.TABLE&&a(H,{data:o,columns:L}),p===u.GRID&&a(V,{data:Q(o.slice(c*d,(c+1)*d),void 0,m,t),totalCount:o?.length??0,page:c,rowsPerPage:d,onPageChange:x,onRowsPerPageChange:E})]})})};export{W as CampaignResultsTab};
|
|
2
2
|
//# sourceMappingURL=CampaignResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r,jsxs as L}from"react/jsx-runtime";import{useRouteRef as N}from"@backstage/core-plugin-api";import{Typography as R,Box as E,Grid as A}from"@material-ui/core";import{useState as m,useEffect as D}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useCheckPassRateTrend as x}from"../../../hooks/aggregations/useCheckPassRateTrend.esm.js";import"react-router-dom";import{checkDetailsRouteRef as y}from"../../../routes.esm.js";import{checkPassRatesCsvFilename as M}from"../../../utils/charts.esm.js";import{PassRateGrid as O}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as S}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as F}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as G}from"../../TechHealth/Loading/Loading.esm.js";import{NameColumn as B}from"../NameColumn.esm.js";import{ActionColumn as I}from"../ActionColumn.esm.js";import{OwnerColumn as j}from"../OwnerColumn.esm.js";import{checkPassRatesToCsv as V}from"../TechHealthExportFunctions.esm.js";import{PassRateTabHeader as H}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as J}from"../PassRateTabStyles.esm.js";import{ViewMode as C,generateCheckPassRateGridData as W}from"../techHealthTabUtils.esm.js";import"recharts";import"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import"luxon";import"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"../../Charts/BarChart/BarChart.esm.js";import"../../PassRateTable/NewPassRateTable.esm.js";import{MostRecentColumn as q}from"../MostRecentColumn.esm.js";import{CheckTrendColumn as z}from"./CheckTrendColumn.esm.js";function K(s){return[{label:"NAME",id:"checkName",renderCell:e=>r(B,{name:e.checkName??e.id,description:e.checkDescription})},{label:"LATEST",id:"snapshotPassRate",renderCell:e=>r(q,{snapshot:e.snapshotPassRate})},{label:"TREND",id:"trendPassRate",renderCell:e=>r(z,{row:e})},{label:"OWNER",id:"checkOwner",renderCell:e=>r(j,{ownerEntityRef:e.checkOwnerRef??void 0})},{label:"ACTION",id:"action",renderCell:(e,t,n)=>r(I,{navigateTo:s({checkId:e.id}),disabled:t,toolTipText:n})}]}const Q=()=>{const s=J(),{filter:e}=F(),t=N(y),{data:n,isLoading:u,isError:k}=x(e),[c,P]=m(C.TABLE),[o,T]=m(""),[l,p]=m(0),[d,w]=m(10);if(D(()=>{p(0)},[e,o]),u)return r(G,{});if(k)return r(R,{color:"error",children:"Failed to load checks"});const{individualCheckPassRates:h}=n;if(!h)return r(R,{color:"error",children:"No available checks"});const i=o.length?h.filter(({id:a,checkName:f})=>f?.toLowerCase()?.includes(o.toLowerCase())||a.toLowerCase().includes(o.toLowerCase())):h,g=async()=>V(i),b=(a,f)=>{p(()=>f)},v=a=>{w(+a.target.value),p(0)};return r(E,{className:s.root,children:L(A,{container:!0,direction:"row",children:[r(H,{viewMode:c,setViewMode:P,isLoading:u,searchTerm:o,setSearchTerm:T,searchPlaceholder:"Search for Available Checks",fetchCsvData:g,csvFilename:M}),c===C.TABLE&&r(S,{data:i,columns:K(t),showsCheckData:!0}),c===C.GRID&&r(O,{data:W(i.slice(l*d,(l+1)*d),t),totalCount:i?.length??0,page:l,rowsPerPage:d,onPageChange:b,onRowsPerPageChange:v})]})})};export{Q as CheckResultsTab};
|
|
1
|
+
import{jsx as r,jsxs as L}from"react/jsx-runtime";import{useRouteRef as N}from"@backstage/core-plugin-api";import{Typography as R,Box as E,Grid as A}from"@material-ui/core";import{useState as m,useEffect as D}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useCheckPassRateTrend as x}from"../../../hooks/aggregations/useCheckPassRateTrend.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{checkDetailsRouteRef as y}from"../../../routes.esm.js";import{checkPassRatesCsvFilename as M}from"../../../utils/charts.esm.js";import{PassRateGrid as O}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as S}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as F}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as G}from"../../TechHealth/Loading/Loading.esm.js";import{NameColumn as B}from"../NameColumn.esm.js";import{ActionColumn as I}from"../ActionColumn.esm.js";import{OwnerColumn as j}from"../OwnerColumn.esm.js";import{checkPassRatesToCsv as V}from"../TechHealthExportFunctions.esm.js";import{PassRateTabHeader as H}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as J}from"../PassRateTabStyles.esm.js";import{ViewMode as C,generateCheckPassRateGridData as W}from"../techHealthTabUtils.esm.js";import"recharts";import"../../Charts/ChartTypes.esm.js";import"../../Charts/LineChart/LineChart.esm.js";import"../../Charts/chartUtils.esm.js";import"luxon";import"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"../../Charts/BarChart/BarChart.esm.js";import"../../PassRateTable/NewPassRateTable.esm.js";import{MostRecentColumn as q}from"../MostRecentColumn.esm.js";import{CheckTrendColumn as z}from"./CheckTrendColumn.esm.js";function K(s){return[{label:"NAME",id:"checkName",renderCell:e=>r(B,{name:e.checkName??e.id,description:e.checkDescription})},{label:"LATEST",id:"snapshotPassRate",renderCell:e=>r(q,{snapshot:e.snapshotPassRate})},{label:"TREND",id:"trendPassRate",renderCell:e=>r(z,{row:e})},{label:"OWNER",id:"checkOwner",renderCell:e=>r(j,{ownerEntityRef:e.checkOwnerRef??void 0})},{label:"ACTION",id:"action",renderCell:(e,t,n)=>r(I,{navigateTo:s({checkId:e.id}),disabled:t,toolTipText:n})}]}const Q=()=>{const s=J(),{filter:e}=F(),t=N(y),{data:n,isLoading:u,isError:k}=x(e),[c,P]=m(C.TABLE),[o,T]=m(""),[l,p]=m(0),[d,w]=m(10);if(D(()=>{p(0)},[e,o]),u)return r(G,{});if(k)return r(R,{color:"error",children:"Failed to load checks"});const{individualCheckPassRates:h}=n;if(!h)return r(R,{color:"error",children:"No available checks"});const i=o.length?h.filter(({id:a,checkName:f})=>f?.toLowerCase()?.includes(o.toLowerCase())||a.toLowerCase().includes(o.toLowerCase())):h,g=async()=>V(i),b=(a,f)=>{p(()=>f)},v=a=>{w(+a.target.value),p(0)};return r(E,{className:s.root,children:L(A,{container:!0,direction:"row",children:[r(H,{viewMode:c,setViewMode:P,isLoading:u,searchTerm:o,setSearchTerm:T,searchPlaceholder:"Search for Available Checks",fetchCsvData:g,csvFilename:M}),c===C.TABLE&&r(S,{data:i,columns:K(t),showsCheckData:!0}),c===C.GRID&&r(O,{data:W(i.slice(l*d,(l+1)*d),t),totalCount:i?.length??0,page:l,rowsPerPage:d,onPageChange:b,onRowsPerPageChange:v})]})})};export{Q as CheckResultsTab};
|
|
2
2
|
//# sourceMappingURL=CheckResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as j}from"react/jsx-runtime";import{parseEntityRef as N}from"@backstage/catalog-model";import{useApi as V,useRouteRef as H}from"@backstage/core-plugin-api";import{entityRouteRef as W}from"@backstage/plugin-catalog-react";import{Typography as L,Box as $,Grid as q}from"@material-ui/core";import{useState as a,useEffect as A}from"react";import{soundcheckApiRef as z}from"../../../api.esm.js";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useEntityPassRateTrend as J}from"../../../hooks/aggregations/useEntityPassRateTrend.esm.js";import"react-router-dom";import{entityPassRatesCsvFilename as K}from"../../../utils/charts.esm.js";import{PassRateGrid as Q}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{NewPassRateTable as U}from"../../PassRateTable/NewPassRateTable.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as X}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as Y}from"../../TechHealth/Loading/Loading.esm.js";import{ActionColumn as Z}from"../ActionColumn.esm.js";import{MostRecentColumn as _}from"../MostRecentColumn.esm.js";import{NameColumn as ee}from"../NameColumn.esm.js";import{OwnerColumn as te}from"../OwnerColumn.esm.js";import{PassRateTabHeader as oe}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as re}from"../PassRateTabStyles.esm.js";import{entityPassRatesToCsv as ie}from"../TechHealthExportFunctions.esm.js";import{ViewMode as g,generateEntityPassRateGridData as ae}from"../techHealthTabUtils.esm.js";import{EntityTrendColumn as se}from"./EntityTrendColumn.esm.js";function ne(l){return[{label:"NAME",id:"entityName",renderCell:({id:o,entityDescription:s})=>t(ee,{name:N(o).name,description:s})},{label:"LATEST",id:"latest",renderCell:o=>t(_,{snapshot:o.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:o=>t(se,{row:o})},{label:"OWNER",id:"entityOwnerRef",renderCell:({entityOwnerRef:o})=>t(te,{ownerEntityRef:o??void 0})},{label:"ACTION",id:"action",renderCell:({id:o})=>t(Z,{navigateTo:`${l(N(o))}/soundcheck`})}]}const de=()=>{const l=re(),o=V(z),{filter:s}=X(),c=H(W),[P,R]=a([]),[C,n]=a(void 0),[h,p]=a(0),[u,x]=a(10),{data:r,isLoading:y,isError:I}=J({filter:s,first:u,after:C}),[i,D]=a(r?.individualEntityPassRates),S=i?.edges?i?.edges[i?.edges.length-1]:{cursor:""};A(()=>{r&&D(()=>({totalCount:r.individualEntityPassRates.totalCount,edges:r.individualEntityPassRates.edges,pageInfo:{endCursor:r.individualEntityPassRates.pageInfo.endCursor,hasNextPage:r.individualEntityPassRates.pageInfo.hasNextPage??!1,hasPreviousPage:r.individualEntityPassRates.pageInfo.hasPreviousPage??!1}}))},[r]);const[f,F]=a(g.TABLE),[d,G]=a("");if(A(()=>{p(0),n("")},[s]),y)return t(Y,{});if(I)return t(L,{color:"error",children:"Failed to load entities"});if(!i?.edges?.length)return t(L,{color:"error",children:"No available entities"});const v=d.length?{...i,edges:i.edges.filter(({node:e})=>e.id.toLowerCase().includes(d.toLowerCase())),totalCount:i.edges.filter(({node:e})=>e.id.toLowerCase().includes(d.toLowerCase())).length}:i,E=v?.edges.map(({node:e})=>e)??[],w=v?.totalCount??0,M=async()=>{const{individualEntityPassRates:e}=await o.getIndividualEntityPassRates({filter:s});return ie(e.edges.map(({node:m})=>m))},O=()=>{R(e=>[...e,C]),n(S?.cursor)},B=()=>{n(P[P.length-1]),R(e=>e.slice(0,-1))},T=(e,m)=>{p(k=>(m>k?O():B(),m))},b=e=>{n(void 0),x(+e.target.value),p(0)};return t($,{className:l.root,children:j(q,{container:!0,direction:"row",children:[t(oe,{viewMode:f,setViewMode:F,isLoading:y,searchTerm:d,setSearchTerm:G,searchPlaceholder:"Search available entities",fetchCsvData:M,csvFilename:K}),f===g.TABLE&&t(U,{data:E,totalCount:w,page:h,rowsPerPage:u,columns:ne(c),onPageChange:T,onRowsPerPageChange:b}),f===g.GRID&&t(Q,{data:ae(E,c),totalCount:w,page:h,rowsPerPage:u,onPageChange:T,onRowsPerPageChange:b})]})})};export{de as EntityResultsTab};
|
|
1
|
+
import{jsx as t,jsxs as j}from"react/jsx-runtime";import{parseEntityRef as N}from"@backstage/catalog-model";import{useApi as V,useRouteRef as H}from"@backstage/core-plugin-api";import{entityRouteRef as W}from"@backstage/plugin-catalog-react";import{Typography as L,Box as $,Grid as q}from"@material-ui/core";import{useState as a,useEffect as A}from"react";import{soundcheckApiRef as z}from"../../../api.esm.js";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useEntityPassRateTrend as J}from"../../../hooks/aggregations/useEntityPassRateTrend.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{entityPassRatesCsvFilename as K}from"../../../utils/charts.esm.js";import{PassRateGrid as Q}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{NewPassRateTable as U}from"../../PassRateTable/NewPassRateTable.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as X}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as Y}from"../../TechHealth/Loading/Loading.esm.js";import{ActionColumn as Z}from"../ActionColumn.esm.js";import{MostRecentColumn as _}from"../MostRecentColumn.esm.js";import{NameColumn as ee}from"../NameColumn.esm.js";import{OwnerColumn as te}from"../OwnerColumn.esm.js";import{PassRateTabHeader as oe}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as re}from"../PassRateTabStyles.esm.js";import{entityPassRatesToCsv as ie}from"../TechHealthExportFunctions.esm.js";import{ViewMode as g,generateEntityPassRateGridData as ae}from"../techHealthTabUtils.esm.js";import{EntityTrendColumn as se}from"./EntityTrendColumn.esm.js";function ne(l){return[{label:"NAME",id:"entityName",renderCell:({id:o,entityDescription:s})=>t(ee,{name:N(o).name,description:s})},{label:"LATEST",id:"latest",renderCell:o=>t(_,{snapshot:o.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:o=>t(se,{row:o})},{label:"OWNER",id:"entityOwnerRef",renderCell:({entityOwnerRef:o})=>t(te,{ownerEntityRef:o??void 0})},{label:"ACTION",id:"action",renderCell:({id:o})=>t(Z,{navigateTo:`${l(N(o))}/soundcheck`})}]}const de=()=>{const l=re(),o=V(z),{filter:s}=X(),c=H(W),[P,R]=a([]),[C,n]=a(void 0),[h,p]=a(0),[u,x]=a(10),{data:r,isLoading:y,isError:I}=J({filter:s,first:u,after:C}),[i,D]=a(r?.individualEntityPassRates),S=i?.edges?i?.edges[i?.edges.length-1]:{cursor:""};A(()=>{r&&D(()=>({totalCount:r.individualEntityPassRates.totalCount,edges:r.individualEntityPassRates.edges,pageInfo:{endCursor:r.individualEntityPassRates.pageInfo.endCursor,hasNextPage:r.individualEntityPassRates.pageInfo.hasNextPage??!1,hasPreviousPage:r.individualEntityPassRates.pageInfo.hasPreviousPage??!1}}))},[r]);const[f,F]=a(g.TABLE),[d,G]=a("");if(A(()=>{p(0),n("")},[s]),y)return t(Y,{});if(I)return t(L,{color:"error",children:"Failed to load entities"});if(!i?.edges?.length)return t(L,{color:"error",children:"No available entities"});const v=d.length?{...i,edges:i.edges.filter(({node:e})=>e.id.toLowerCase().includes(d.toLowerCase())),totalCount:i.edges.filter(({node:e})=>e.id.toLowerCase().includes(d.toLowerCase())).length}:i,E=v?.edges.map(({node:e})=>e)??[],w=v?.totalCount??0,M=async()=>{const{individualEntityPassRates:e}=await o.getIndividualEntityPassRates({filter:s});return ie(e.edges.map(({node:m})=>m))},O=()=>{R(e=>[...e,C]),n(S?.cursor)},B=()=>{n(P[P.length-1]),R(e=>e.slice(0,-1))},T=(e,m)=>{p(k=>(m>k?O():B(),m))},b=e=>{n(void 0),x(+e.target.value),p(0)};return t($,{className:l.root,children:j(q,{container:!0,direction:"row",children:[t(oe,{viewMode:f,setViewMode:F,isLoading:y,searchTerm:d,setSearchTerm:G,searchPlaceholder:"Search available entities",fetchCsvData:M,csvFilename:K}),f===g.TABLE&&t(U,{data:E,totalCount:w,page:h,rowsPerPage:u,columns:ne(c),onPageChange:T,onRowsPerPageChange:b}),f===g.GRID&&t(Q,{data:ae(E,c),totalCount:w,page:h,rowsPerPage:u,onPageChange:T,onRowsPerPageChange:b})]})})};export{de as EntityResultsTab};
|
|
2
2
|
//# sourceMappingURL=EntityResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o,jsxs as k}from"react/jsx-runtime";import{parseEntityRef as L}from"@backstage/catalog-model";import{useApi as H,useRouteRef as O}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{Typography as x,Box as z,Grid as J}from"@material-ui/core";import{useState as s,useEffect as A}from"react";import{soundcheckApiRef as K}from"../../../api.esm.js";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGroupPassRateTrend as Q}from"../../../hooks/aggregations/useGroupPassRateTrend.esm.js";import"react-router-dom";import{groupPassRatesCsvFilename as U}from"../../../utils/charts.esm.js";import{PassRateGrid as W}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{NewPassRateTable as X}from"../../PassRateTable/NewPassRateTable.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as Y}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as Z}from"../../TechHealth/Loading/Loading.esm.js";import{ActionColumn as _}from"../ActionColumn.esm.js";import{MostRecentColumn as $}from"../MostRecentColumn.esm.js";import{NameColumn as ee}from"../NameColumn.esm.js";import{PassRateTabHeader as oe}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as re}from"../PassRateTabStyles.esm.js";import{groupPassRatesToCsv as te}from"../TechHealthExportFunctions.esm.js";import{ViewMode as f,generateGroupPassRateGridData as ae}from"../techHealthTabUtils.esm.js";import{GroupTrendColumn as se}from"./GroupTrendColumn.esm.js";function ie(l){return[{label:"NAME",id:"groupName",renderCell:({groupTitle:r,id:i})=>o(ee,{name:r??L(i).name})},{label:"LATEST",id:"latest",renderCell:r=>o($,{snapshot:r.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:r=>o(se,{row:r})},{label:"ACTION",id:"action",renderCell:({id:r})=>o(_,{navigateTo:l(L(r))})}]}const ne=()=>{const l=re(),r=H(K),{filter:i}=Y();i.context=void 0;const c=O(q),[P,R]=s([]),[C,n]=s(void 0),[h,d]=s(0),[u,E]=s(10),{data:t,isLoading:T,isError:I}=Q({filter:i,first:u,after:C}),[a,y]=s(t?.groupPassRates),S=a?.edges?a?.edges[a?.edges.length-1]:{cursor:""};A(()=>{t&&y(()=>({totalCount:t.groupPassRates.totalCount,edges:t.groupPassRates.edges,pageInfo:{endCursor:t.groupPassRates.pageInfo.endCursor,hasNextPage:t.groupPassRates.pageInfo.hasNextPage??!1,hasPreviousPage:t.groupPassRates.pageInfo.hasPreviousPage??!1}}))},[t]);const[g,D]=s(f.TABLE),[m,F]=s("");if(A(()=>{d(0),n("")},[i]),T)return o(Z,{});if(I)return o(x,{color:"error",children:"Failed to load groups"});if(!a?.edges?.length)return o(x,{color:"error",children:"No available groups"});const v=m.length?{...a,edges:a.edges.filter(({node:e})=>e.groupTitle?.toLowerCase()?.includes(m.toLowerCase())||e.id.toLowerCase().includes(m.toLowerCase()))}:a,w=v?.edges.map(({node:e})=>e)??[],b=v?.totalCount??0,M=async()=>{const{groupPassRates:e}=await r.getIndividualGroupPassRates({filter:i});return te(e.edges.map(({node:p})=>p))},B=()=>{R(e=>[...e,C]),n(S?.cursor)},V=()=>{n(P[P.length-1]),R(e=>e.slice(0,-1))},N=(e,p)=>{d(j=>(p>j?B():V(),p))},G=e=>{n(void 0),E(+e.target.value),d(0)};return o(z,{className:l.root,children:k(J,{container:!0,direction:"row",children:[o(oe,{viewMode:g,setViewMode:D,isLoading:T,searchTerm:m,setSearchTerm:F,searchPlaceholder:"Search available teams",csvFilename:U,fetchCsvData:M}),g===f.TABLE&&o(X,{data:w,totalCount:b,page:h,rowsPerPage:u,columns:ie(c),onPageChange:N,onRowsPerPageChange:G}),g===f.GRID&&o(W,{data:ae(w,c),totalCount:b,page:h,rowsPerPage:u,onPageChange:N,onRowsPerPageChange:G})]})})};export{ne as GroupResultsTab};
|
|
1
|
+
import{jsx as o,jsxs as k}from"react/jsx-runtime";import{parseEntityRef as L}from"@backstage/catalog-model";import{useApi as H,useRouteRef as O}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{Typography as x,Box as z,Grid as J}from"@material-ui/core";import{useState as s,useEffect as A}from"react";import{soundcheckApiRef as K}from"../../../api.esm.js";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGroupPassRateTrend as Q}from"../../../hooks/aggregations/useGroupPassRateTrend.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{groupPassRatesCsvFilename as U}from"../../../utils/charts.esm.js";import{PassRateGrid as W}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{NewPassRateTable as X}from"../../PassRateTable/NewPassRateTable.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as Y}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as Z}from"../../TechHealth/Loading/Loading.esm.js";import{ActionColumn as _}from"../ActionColumn.esm.js";import{MostRecentColumn as $}from"../MostRecentColumn.esm.js";import{NameColumn as ee}from"../NameColumn.esm.js";import{PassRateTabHeader as oe}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as re}from"../PassRateTabStyles.esm.js";import{groupPassRatesToCsv as te}from"../TechHealthExportFunctions.esm.js";import{ViewMode as f,generateGroupPassRateGridData as ae}from"../techHealthTabUtils.esm.js";import{GroupTrendColumn as se}from"./GroupTrendColumn.esm.js";function ie(l){return[{label:"NAME",id:"groupName",renderCell:({groupTitle:r,id:i})=>o(ee,{name:r??L(i).name})},{label:"LATEST",id:"latest",renderCell:r=>o($,{snapshot:r.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:r=>o(se,{row:r})},{label:"ACTION",id:"action",renderCell:({id:r})=>o(_,{navigateTo:l(L(r))})}]}const ne=()=>{const l=re(),r=H(K),{filter:i}=Y();i.context=void 0;const c=O(q),[P,R]=s([]),[C,n]=s(void 0),[h,d]=s(0),[u,E]=s(10),{data:t,isLoading:T,isError:I}=Q({filter:i,first:u,after:C}),[a,y]=s(t?.groupPassRates),S=a?.edges?a?.edges[a?.edges.length-1]:{cursor:""};A(()=>{t&&y(()=>({totalCount:t.groupPassRates.totalCount,edges:t.groupPassRates.edges,pageInfo:{endCursor:t.groupPassRates.pageInfo.endCursor,hasNextPage:t.groupPassRates.pageInfo.hasNextPage??!1,hasPreviousPage:t.groupPassRates.pageInfo.hasPreviousPage??!1}}))},[t]);const[g,D]=s(f.TABLE),[m,F]=s("");if(A(()=>{d(0),n("")},[i]),T)return o(Z,{});if(I)return o(x,{color:"error",children:"Failed to load groups"});if(!a?.edges?.length)return o(x,{color:"error",children:"No available groups"});const v=m.length?{...a,edges:a.edges.filter(({node:e})=>e.groupTitle?.toLowerCase()?.includes(m.toLowerCase())||e.id.toLowerCase().includes(m.toLowerCase()))}:a,w=v?.edges.map(({node:e})=>e)??[],b=v?.totalCount??0,M=async()=>{const{groupPassRates:e}=await r.getIndividualGroupPassRates({filter:i});return te(e.edges.map(({node:p})=>p))},B=()=>{R(e=>[...e,C]),n(S?.cursor)},V=()=>{n(P[P.length-1]),R(e=>e.slice(0,-1))},N=(e,p)=>{d(j=>(p>j?B():V(),p))},G=e=>{n(void 0),E(+e.target.value),d(0)};return o(z,{className:l.root,children:k(J,{container:!0,direction:"row",children:[o(oe,{viewMode:g,setViewMode:D,isLoading:T,searchTerm:m,setSearchTerm:F,searchPlaceholder:"Search available teams",csvFilename:U,fetchCsvData:M}),g===f.TABLE&&o(X,{data:w,totalCount:b,page:h,rowsPerPage:u,columns:ie(c),onPageChange:N,onRowsPerPageChange:G}),g===f.GRID&&o(W,{data:ae(w,c),totalCount:b,page:h,rowsPerPage:u,onPageChange:N,onRowsPerPageChange:G})]})})};export{ne as GroupResultsTab};
|
|
2
2
|
//# sourceMappingURL=GroupResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as m,jsx as t}from"react/jsx-runtime";import{Box as s,Typography as
|
|
1
|
+
import{jsxs as m,jsx as t}from"react/jsx-runtime";import{Box as s,Typography as i}from"@material-ui/core";import{SoundcheckMarkdownContentDeprecated as n}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{usePassRateTabStyles as p}from"./PassRateTabStyles.esm.js";const a=({name:r="",description:e=""})=>{const o=p();return m(s,{className:o.flexColumn,children:[t(i,{className:o.boldText,children:r}),t(n,{className:o.descriptionText,content:e??""})]})};export{a as NameColumn};
|
|
2
2
|
//# sourceMappingURL=NameColumn.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as N,Fragment as O}from"react/jsx-runtime";import{useRouteRef as A}from"@backstage/core-plugin-api";import{Typography as k,Box as x,Grid as y}from"@material-ui/core";import{useState as
|
|
1
|
+
import{jsx as e,jsxs as N,Fragment as O}from"react/jsx-runtime";import{useRouteRef as A}from"@backstage/core-plugin-api";import{Typography as k,Box as x,Grid as y}from"@material-ui/core";import{useState as d,useEffect as D,useMemo as S}from"react";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useTrackPassRateTrend as F}from"../../../hooks/aggregations/useTrackPassRateTrend.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{trackDetailsRouteRef as G}from"../../../routes.esm.js";import{trackPassRatesCsvFilename as B}from"../../../utils/charts.esm.js";import{PassRateGrid as V}from"../../PassRateGrid/PassRateGrid.esm.js";import"../../PassRateGrid/types.esm.js";import{PassRateTable as j}from"../../PassRateTable/PassRateTable.esm.js";import"../../PassRateTable/types.esm.js";import"../../TechHealth/Filters/types.esm.js";import"../../TechHealth/Filters/FacetFilter.esm.js";import{useFilterContext as I}from"../../TechHealth/Filters/FilterProvider.esm.js";import"../../TechHealth/Filters/Filters.esm.js";import"../../TechHealth/Filters/FiltersHeader.esm.js";import"../../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{Loading as $}from"../../TechHealth/Loading/Loading.esm.js";import{trackPassRatesToCsv as H}from"../TechHealthExportFunctions.esm.js";import{ActionColumn as W}from"../ActionColumn.esm.js";import{NameColumn as q}from"../NameColumn.esm.js";import{OwnerColumn as z}from"../OwnerColumn.esm.js";import{PassRateTabHeader as J}from"../PassRateTabHeader.esm.js";import{usePassRateTabStyles as K}from"../PassRateTabStyles.esm.js";import{ViewMode as h,generateTrackPassRateGridData as Q,getDetailsRoute as U}from"../techHealthTabUtils.esm.js";import{TrackTrendColumn as X}from"./TrackLevelTrendColumn.esm.js";const v=(m,s,o)=>{const i=Math.min(5,s-m+1);return Array.from({length:i}).map((n,l)=>{const a=m+l;return{label:o?"PROGRESS":`LEVEL ${a}`,id:`levels-${l}`,renderCell:r=>{const t=r.levels?.find(({levelOrdinal:f})=>f===a);return t?e(X,{row:t}):e(O,{})}}})},P=(m,s,o,i)=>{const n=m.flatMap(r=>r.levels?.map(t=>t.levelOrdinal)||[]),l=Math.min(...n),a=Math.max(...n);return[{label:"NAME",id:"trackName",renderCell:r=>e(q,{name:r.trackName??r.id,description:r.trackDescription})},...v(l,a,!!o),{label:"OWNER",id:"trackOwnerRef",renderCell:r=>e(z,{ownerEntityRef:r.trackOwnerRef??void 0})},{label:"ACTION",id:"action",renderCell:({id:r})=>e(W,{navigateTo:U(r,s,o,i)})}]},Y=()=>{const m=K(),{filter:s}=I(),o=A(G),{data:i,isLoading:n,isError:l}=F(s),[a,r]=d(h.TABLE),[t,f]=d(""),[u,R]=d(0),[T,w]=d(10);D(()=>{R(0)},[s,t]);const b=S(()=>P(i?.individualTrackPassRate??[],o),[i?.individualTrackPassRate,o]);if(n)return e($,{});if(l)return e(k,{color:"error",children:"Failed to load tracks"});const{individualTrackPassRate:C}=i;if(!C)return e(k,{color:"error",children:"No available tracks"});const c=t.length?C.filter(({id:p,trackName:g})=>g?.toLowerCase()?.includes(t.toLowerCase())||p.toLowerCase().includes(t.toLowerCase())):C,E=async()=>H(c),L=(p,g)=>{R(()=>g)},M=p=>{w(+p.target.value),R(0)};return e(x,{className:m.root,children:N(y,{container:!0,direction:"row",children:[e(J,{viewMode:a,setViewMode:r,isLoading:n,searchTerm:t,setSearchTerm:f,searchPlaceholder:"Search Available Tracks",fetchCsvData:E,csvFilename:B}),a===h.TABLE&&e(j,{data:c,columns:b}),a===h.GRID&&e(V,{data:Q(c.slice(u*T,(u+1)*T),o),totalCount:c?.length??0,page:u,rowsPerPage:T,onPageChange:L,onRowsPerPageChange:M})]})})};export{Y as TrackResultsTab,P as generateColumns,v as generateTrendColumns};
|
|
2
2
|
//# sourceMappingURL=TrackResultsTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as u,jsx as n}from"react/jsx-runtime";import{makeStyles as x,Box as c,TextField as m,InputAdornment as k,IconButton as y,Chip as C}from"@material-ui/core";import f from"@material-ui/icons/Clear";import{Autocomplete as I}from"@material-ui/lab";const T=x(l=>({input:{backgroundColor:l.palette.background.paper,minWidth:200}})),b=({searchText:l,onSearchTextChange:i,selectedTrackIds:r,onSelectedTrackIdsChange:h,trackOptions:s,applicableTracks:o,isLoading:d})=>{const p=T();return u(c,{display:"flex",maxWidth:720,alignItems:"center",style:{gap:"8px"},flex:1,children:[n(m,{placeholder:"Search tracks or campaigns...",variant:"outlined",size:"small",value:l,onChange:e=>i(e.target.value),style:{flex:1},disabled:d||o.length===0,InputProps:{className:p.input,endAdornment:l&&n(k,{position:"end",children:n(y,{size:"small",onClick:()=>i(""),edge:"end",children:n(f,{})})})}}),n(I,{multiple:!0,options:s,getOptionLabel:e=>e.name,value:s.filter(e=>r.includes(e.id)),onChange:(e,a)=>h(a.map(t=>t.id)),disabled:d||o.length===0,groupBy:e=>e.type,renderOption:e=>n(c,{display:"flex",alignItems:"center",style:{gap:8},children:n("span",{children:e.name})}),renderInput:e=>n(m,{...e,variant:"outlined",size:"small",placeholder:r.length===0?"All Tracks/Campaigns":"",className:p.input,style:{minWidth:300}}),renderTags:(e,a)=>e.length===0?null:e.map((t,g)=>n(C,{label:t.name,size:"small",...a({index:g})},t.id)),style:{minWidth:300}})]})};export{b as FilterControls};
|
|
2
2
|
//# sourceMappingURL=FilterControls.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as t,jsx as a,Fragment as d}from"react/jsx-runtime";import{makeStyles as p,Box as l,Card as c,Typography as e}from"@material-ui/core";import{Skeleton as g}from"@material-ui/lab";const s=p(i=>({summaryTilesContainer:{gap:24,display:"flex",marginBottom:32},summaryTile:{flex:1,padding:24,background:i.palette.background.paper},tile:{minHeight:90},container:{margin:"1.5rem 0 0"},box:{display:"flex",alignItems:"center",gap:"0.5rem"},avgCompliance:{fontSize:"2rem"}})),o=({title:i,content:r,isLoading:n})=>{const m=s();return t(l,{className:m.tile,children:[a(e,{children:i}),n?a(d,{children:a(g,{variant:"text",width:50,height:40})}):a(l,{children:r})]})},h=({summaryStats:i,isLoading:r=!1})=>{const n=s();return t(l,{className:n.summaryTilesContainer,children:[a(c,{className:n.summaryTile,children:a(o,{isLoading:r||i.numTeams===void 0||i.numEntities===void 0,title:"Group Information",content:t("div",{className:n.container,children:[t(l,{className:n.box,children:[a(e,{children:i.numTeams})," ",a(e,{color:"textSecondary",children:"Groups"})]}),t(l,{className:n.box,children:[a(e,{children:i.numEntities})," ",a(e,{color:"textSecondary",children:"Entities"})]})]})})}),a(c,{className:n.summaryTile,children:a(o,{isLoading:r||i.totalActiveTracksCampaigns===void 0||i.totalCampaigns===void 0||i.totalTracks===void 0,title:"Tracks & Campaigns",content:t("div",{className:n.container,children:[t(l,{className:n.box,children:[a(e,{children:i.totalActiveTracksCampaigns})," ",a(e,{color:"textSecondary",children:"Total Tracks & Campaigns"})]}),t(l,{className:n.box,children:[a(e,{children:(i.totalCampaigns??0)+(i.totalTracks??0)})," ",a(e,{color:"textSecondary",children:"Applicable Tracks & Campaigns"})]})]})})}),a(c,{className:n.summaryTile,children:a(o,{isLoading:r||i.avgCompliance===void 0||i.totalCampaigns===void 0||i.totalTracks===void 0,title:"Average Compliance",content:a("div",{className:n.container,children:a(l,{children:a(e,{className:n.avgCompliance,children:!i.totalTracks&&!i.totalCampaigns?"-":`${i.avgCompliance}%`})})})})})]})};export{h as SummaryTiles};
|
|
2
2
|
//# sourceMappingURL=SummaryTiles.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as a,jsx as i,Fragment as o}from"react/jsx-runtime";import{Box as t,Card as s,Text as n}from"@backstage/ui";import{makeStyles as h}from"@material-ui/core";import{Skeleton as p}from"@material-ui/lab";const m=h(()=>({summaryTilesContainer:{gap:"var(--bui-space-4)",display:"flex",marginBottom:"var(--bui-space-4)"},summaryTile:{padding:"var(--bui-space-3)"},tile:{minHeight:90,display:"flex",flexDirection:"column",justifyContent:"space-between"}})),c=({title:e,content:l,isLoading:r})=>{const d=m();return a(t,{className:d.tile,children:[i(n,{variant:"body-large",children:e}),r?i(o,{children:i(p,{variant:"text",width:50,height:40})}):i(t,{children:l})]})},g=({summaryStats:e,isLoading:l=!1})=>{const r=m();return a(t,{className:r.summaryTilesContainer,children:[i(s,{className:r.summaryTile,children:i(c,{isLoading:l||e.numTeams===void 0||e.numEntities===void 0,title:"Group Information",content:a(o,{children:[a(t,{children:[i(n,{children:e.numTeams})," ",i(n,{color:"secondary",children:"Groups"})]}),a(t,{children:[i(n,{children:e.numEntities})," ",i(n,{color:"secondary",children:"Entities"})]})]})})}),i(s,{className:r.summaryTile,children:i(c,{isLoading:l||e.totalActiveTracksCampaigns===void 0||e.totalCampaigns===void 0||e.totalTracks===void 0,title:"Tracks & Campaigns",content:a(o,{children:[a(t,{children:[i(n,{children:e.totalActiveTracksCampaigns})," ",i(n,{color:"secondary",children:"Total Tracks & Campaigns"})]}),a(t,{children:[i(n,{children:(e.totalCampaigns??0)+(e.totalTracks??0)})," ",i(n,{color:"secondary",children:"Applicable Tracks & Campaigns"})]})]})})}),i(s,{className:r.summaryTile,children:i(c,{isLoading:l||e.avgCompliance===void 0||e.totalCampaigns===void 0||e.totalTracks===void 0,title:"Average Compliance",content:i(o,{children:i(t,{children:i(n,{variant:"title-medium",children:!e.totalTracks&&!e.totalCampaigns?"-":`${e.avgCompliance}%`})})})})})]})};export{g as SummaryTilesBUI};
|
|
2
|
+
//# sourceMappingURL=SummaryTilesBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
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};
|
|
2
2
|
//# sourceMappingURL=TechInsightsPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as o,jsxs as M,Fragment as de}from"react/jsx-runtime";import{useApi as ue,useRouteRef as X}from"@backstage/core-plugin-api";import{entityPresentationApiRef as ge}from"@backstage/plugin-catalog-react";import{Box as g,HeaderPage as he,Flex as fe,SearchField as ke}from"@backstage/ui";import{makeStyles as ye,LinearProgress as Te}from"@material-ui/core";import{isEmpty as Se}from"lodash";import{useState as _,useMemo as s,useCallback as Ee,useEffect as Ce}from"react";import{useSearchParams as Le,useNavigate as Re}from"react-router-dom";import we from"react-use/lib/useDebounce";import"@backstage/catalog-model";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{useSortTableLocalStorage as ve}from"../../hooks/useSortTableLocalStorage.esm.js";import{useBatchedHierarchicalTrackStatuses as be}from"../../hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js";import{useGroupHierarchy as Ie}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{useTracksApplicableToGroup as Pe}from"../../hooks/tracks/useTracksApplicableToGroup.esm.js";import{useFeatureFlag as Be}from"../../hooks/useFeatureFlag.esm.js";import{useLCPReporting as Ae}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as xe}from"../../hooks/useLoadTimeReporting.esm.js";import{trackExplorerRouteRef as Me,campaignExplorerRouteRef as Ue}from"../../routes.esm.js";import{getAllOwnedEntityCount as Fe}from"../../utils/getAllOwnedEntityCount.esm.js";import{getEntitiesBucket as $e,getTracksBucket as De}from"../../utils/helpers.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Ge}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as He}from"../SoundcheckHeader/useHeader.esm.js";import{TechInsightsGroupSelector as Ne}from"../TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js";import{SummaryTiles as Oe}from"./SummaryTiles.esm.js";import{SummaryTilesBUI as je}from"./SummaryTilesBUI.esm.js";import{TechInsightsTableBUI as Ve}from"./TechInsightsTableBUI.esm.js";const ze=ye(()=>({container:{padding:"var(--bui-space-3)",paddingTop:0,position:"relative"}})),We=()=>{const Y=Be("backstage-ui"),[S,Z]=Le(),r=S.get("group")||"",[m,ee]=_(S.get("search")||""),[h,te]=_(""),U=s(()=>({routeName:"soundcheck-tech-insights",additionalAttributes:{group:r||"",tracksSearch:h||""}}),[r,h]),{reportContentLoaded:F}=xe({...U,enabled:!!r}),{reporter:re}=Ae(U),$=ze(),D=Re();He();const E=ue(ge),{order:ae,orderBy:oe,handleSort:ie}=ve({localStoragePrefix:"soundcheck-tech-insights",defaultSortBy:"entities",defaultDirection:"desc"});we(()=>{te(m);const e=new URLSearchParams(S.toString());m?e.set("search",m):e.delete("search"),Z(e,{replace:!0})},500,[m]);const{tracks:C,campaigns:G,counts:L,isLoading:l,error:R,activeTrackCount:w}=Pe(r,{},{enabled:!!r}),p=C.filter(e=>e.type==="campaign"),v=C.filter(e=>e.type!=="campaign"),f=p.filter(e=>{const t=h.toLowerCase(),n=(e.ownerEntityRef?E.forEntity(e.ownerEntityRef):void 0)?.snapshot.primaryTitle?.toLowerCase()||"";return t===""||e.name.toLowerCase().includes(t)||e.ownerEntityRef?.toLowerCase().includes(t)||n.includes(t)}),k=v.filter(e=>{const t=h.toLowerCase(),n=(e.ownerEntityRef?E.forEntity(e.ownerEntityRef):void 0)?.snapshot.primaryTitle?.toLowerCase()||"";return t===""||e.name.toLowerCase().includes(t)||e.ownerEntityRef?.toLowerCase().includes(t)||n.includes(t)}),b=s(()=>[...f,...k],[f,k]),c=s(()=>[...p.map(e=>e.id),...v.map(e=>e.id)],[p,v]),{data:I,isLoading:ne,error:se,progress:i}=be({trackIds:c,groupRef:r||"",skip:!r||c.length===0}),{data:H,isLoading:y}=Ie(r,{includeParent:!0}),P=s(()=>{const e=new Map;return Array.isArray(I)&&I.forEach(t=>{t&&t.trackId&&e.set(t.trackId,t)}),e},[I]),ce=s(()=>{const e=new Map;return Array.isArray(L)&&L.forEach(t=>{t&&t.id&&e.set(t.id,t.applicableEntityCount)}),e},[L]),N=l&&!R&&!!r,O=R||se,B=c.length>0&&ne&&!O&&!!r,j=s(()=>({totalCampaigns:f.length,totalTracks:k.length,totalActiveTracksCampaigns:w}),[w,f.length,k.length]),V=s(()=>{if(B)return{numTeams:void 0,avgCompliance:void 0};let e=0,t=0;const n=new Set;return b.forEach(T=>{const a=P.get(T.id);if(a){a.status&&typeof a.status.allPassPercentage=="number"&&(e+=a.status.allPassPercentage,t++),a.groupRef&&n.add(a.groupRef);const u=[a];for(;u.length>0;){const pe=u.pop();for(const x of pe.children)n.has(x.groupRef)||(n.add(x.groupRef),u.push(x))}}}),{numTeams:n.size,avgCompliance:t>0?Math.round(e/t):0}},[b,P,B]),d=s(()=>{if(y)return{numEntities:void 0};const e=H?.[r];return{numEntities:Fe(e)}},[H,y,r]),z=s(()=>({...j,...V,...d}),[j,V,d]),W=X(Me),q=X(Ue),me=Ee(e=>{if(!r)return;const t=new URLSearchParams;t.set("group",r),t.set("node",r);const n=p.find(({id:a})=>a===e);let T=W({trackId:e});if(n){const a=G?.edges.find(({node:u})=>u.track.id===e)?.node.id;a&&(T=q({campaignId:a}))}D(`${T}?${t.toString()}`)},[r,D,p,G,q,W]),J=r?E.forEntity(r).snapshot.primaryTitle:void 0,A=s(()=>!i||i.totalTracks===0?0:i.loadedTracks/i.totalTracks*100,[i]),K=l&&r&&!R||B&&i&&i.totalTracks>0,Q=re?.getLCPValue();Ce(()=>{if(!y&&!l&&(A===100||c.length===0)){const e=d.numEntities??0,t=c.length;F({lcp:Q,numberOfEntities:d.numEntities,entitiesBucket:$e(e),numberOfTracks:c.length,tracksBucket:De(t)})}},[y,l,A,c.length,d.numEntities,F,Q]);const le=Y?o(je,{summaryStats:z,isLoading:N}):o(Oe,{summaryStats:z,isLoading:l});return O?o(g,{mt:"6",className:$.container,children:o(Ge,{title:"No Tech Insights Data",body:"There was an error loading Tech Insights data."})}):M(de,{children:[o(g,{children:o(he,{title:`${J?`${J}'s `:""}Tech Insights`,customActions:M(fe,{align:"center",gap:"3",children:[o(Ne,{hideSelected:!0}),o(ke,{isDisabled:Se(C),value:m,onChange:ee,placeholder:"Search tracks or campaigns",style:{minWidth:250},"aria-label":"Search"})]})})}),M(g,{className:$.container,children:[o(g,{style:{marginTop:0},children:le}),K&&o(g,{style:{marginBottom:16},children:o(Te,{variant:i&&i.totalTracks>0?"determinate":"indeterminate",value:i&&i.totalTracks>0?A:void 0,"data-testid":"batch-loading-indicator"})}),o(Ve,{tracks:b,trackStatusMap:P,trackCountsMap:ce,sortColumn:oe,order:ae,handleSort:ie,handleTrackClick:me,isLoading:N||!!K,isSearch:!!m,activeTrackCount:w,hasGroupSelected:!!r})]})]})};export{We as TechInsightsPageBUI};
|
|
2
|
+
//# sourceMappingURL=TechInsightsPageBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as o,Fragment as ge,jsxs as Q}from"react/jsx-runtime";import{useApi as ue,useRouteRef as he}from"@backstage/core-plugin-api";import{entityPresentationApiRef as fe}from"@backstage/plugin-catalog-react";import{makeStyles as ke,Box as d,Typography as W,LinearProgress as ye}from"@material-ui/core";import{useTheme as Te}from"@material-ui/core/styles";import{useState as M,useMemo as s,useCallback as X,useEffect as Ce}from"react";import{useSearchParams as Se,useNavigate as we}from"react-router-dom";import Ee from"react-use/lib/useDebounce";import"@backstage/catalog-model";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{useSortTableLocalStorage as Le}from"../../hooks/useSortTableLocalStorage.esm.js";import{useBatchedHierarchicalTrackStatuses as Re}from"../../hooks/heirarchy/useBatchedHierarchicalTrackStatuses.esm.js";import{useGroupHierarchy as ve}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{useTracksApplicableToGroup as be}from"../../hooks/tracks/useTracksApplicableToGroup.esm.js";import{useLCPReporting as Pe}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Ie}from"../../hooks/useLoadTimeReporting.esm.js";import{techInsightsTrackRouteRef as xe}from"../../routes.esm.js";import{getAllOwnedEntityCount as Ae}from"../../utils/getAllOwnedEntityCount.esm.js";import{getEntitiesBucket as Be,getTracksBucket as Me}from"../../utils/helpers.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as Ne}from"../SoundcheckHeader/useHeader.esm.js";import{TechInsightsGroupSelector as je}from"../TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js";import{FilterControls as Ge}from"./FilterControls.esm.js";import{SummaryTiles as De}from"./SummaryTiles.esm.js";import{TechInsightsTableView as Fe}from"./TechInsightsTableView.esm.js";const Oe=ke(a=>({container:{padding:a.spacing(3,2),paddingTop:0,position:"relative"},gridContainer:{marginTop:a.spacing(3)},gridItem:{cursor:"pointer","&:hover":{transform:"scale(1.02)",transition:"transform 0.2s ease-in-out"}},emptyState:{textAlign:"center",padding:a.spacing(4)},errorState:{textAlign:"center",padding:a.spacing(4)},headerControls:{display:"flex",alignItems:"center"},progressIndicator:{position:"absolute",top:0,left:0,right:0,zIndex:a.zIndex.speedDial},tableRow:{"&:hover":{backgroundColor:a.palette.action.hover}}})),ze=()=>{const[a,L]=Se(),r=a.get("group")||"",[g,Y]=M(a.get("search")||""),[S,Z]=M(""),[c,_]=M(a.get("tracks")?.split(",").filter(Boolean)||[]),N=s(()=>({routeName:"soundcheck-tech-insights",additionalAttributes:{group:r||"",tracksFilter:c.join(",")||"",tracksFilterCount:c.length,tracksSearch:S||""}}),[r,S,c]),{reportContentLoaded:j}=Ie({...N,enabled:!!r}),{reporter:q}=Pe(N),u=Oe(),J=Te(),G=we();Ne();const D=ue(fe),{order:K,orderBy:ee,handleSort:te}=Le({localStoragePrefix:"soundcheck-tech-insights",defaultSortBy:"entities",defaultDirection:"desc"});Ee(()=>{Z(g);const e=new URLSearchParams(a.toString());g?e.set("search",g):e.delete("search"),L(e,{replace:!0})},500,[g]);const re=X(e=>{_(e);const t=new URLSearchParams(a.toString());e.length>0?t.set("tracks",e.join(",")):t.delete("tracks"),L(t,{replace:!0})},[a,L]),{tracks:w,counts:R,isLoading:m,error:v,activeTrackCount:F}=be(r,{},{enabled:!!r}),h=w.filter(e=>e.type==="campaign"),f=w.filter(e=>e.type!=="campaign"),ae=s(()=>[...h,...f].map(e=>({id:e.id,name:e.name,type:e.type==="campaign"?"Campaign":"Track"})),[h,f]),k=h.filter(e=>{const t=S.toLowerCase(),l=(e.ownerEntityRef?D.forEntity(e.ownerEntityRef):void 0)?.snapshot.primaryTitle?.toLowerCase()||"",C=t===""||e.name.toLowerCase().includes(t)||e.ownerEntityRef?.toLowerCase().includes(t)||l.includes(t),i=c.length===0||c.includes(e.id);return C&&i}),y=f.filter(e=>{const t=S.toLowerCase(),l=(e.ownerEntityRef?D.forEntity(e.ownerEntityRef):void 0)?.snapshot.primaryTitle?.toLowerCase()||"",C=t===""||e.name.toLowerCase().includes(t)||e.ownerEntityRef?.toLowerCase().includes(t)||l.includes(t),i=c.length===0||c.includes(e.id);return C&&i}),p=s(()=>[...h.map(e=>e.id),...f.map(e=>e.id)],[h,f]),{data:b,isLoading:oe,error:ne,progress:n}=Re({trackIds:p,groupRef:r||"",skip:!r||p.length===0}),{data:O,isLoading:E}=ve(r,{includeParent:!0}),P=s(()=>{const e=new Map;return Array.isArray(b)&&b.forEach(t=>{t&&t.trackId&&e.set(t.trackId,t)}),e},[b]),ie=s(()=>{const e=new Map;return Array.isArray(R)&&R.forEach(t=>{t&&t.id&&e.set(t.id,t.applicableEntityCount)}),e},[R]),se=m&&!v&&!!r,z=v||ne,I=p.length>0&&oe&&!z&&!!r,H=s(()=>({totalCampaigns:k.length,totalTracks:y.length,totalActiveTracksCampaigns:F}),[F,k.length,y.length]),U=s(()=>{if(I)return{numTeams:void 0,avgCompliance:void 0};let e=0,t=0;const l=new Set;return[...k,...y].forEach(C=>{const i=P.get(C.id);if(i){i.status&&typeof i.status.allPassPercentage=="number"&&(e+=i.status.allPassPercentage,t++),i.groupRef&&l.add(i.groupRef);const A=[i];for(;A.length>0;){const de=A.pop();for(const B of de.children)l.has(B.groupRef)||(l.add(B.groupRef),A.push(B))}}}),{numTeams:l.size,avgCompliance:t>0?Math.round(e/t):0}},[k,y,P,I]),T=s(()=>{if(E)return{numEntities:void 0};const e=O?.[r];return{numEntities:Ae(e)}},[O,E,r]),ce=s(()=>({...H,...U,...T}),[H,U,T]),$=he(xe),le=X(e=>{if(!r)return;const t=new URLSearchParams;t.set("group",r),t.set("track",e),t.set("node",r),G(`${$()}?${t.toString()}`)},[r,G,$]),x=s(()=>!n||n.totalTracks===0?0:n.loadedTracks/n.totalTracks*100,[n]),pe=m&&r&&!v||I&&n&&n.totalTracks>0,V=q?.getLCPValue();Ce(()=>{if(!E&&!m&&(x===100||p.length===0)){const e=T.numEntities??0,t=p.length;j({lcp:V,numberOfEntities:T.numEntities,entitiesBucket:Be(e),numberOfTracks:p.length,tracksBucket:Me(t)})}},[E,m,x,p.length,T.numEntities,j,V]);const me=o(De,{summaryStats:ce,isLoading:m});return z?o(d,{className:u.container,children:o(W,{variant:"h4",className:u.errorState,children:"Error loading tech insights data"})}):o(ge,{children:Q(d,{className:u.container,children:[Q(d,{display:"flex",justifyContent:"space-between",alignItems:"center",gridGap:12,marginBottom:3,children:[o(je,{}),o(Ge,{searchText:g,onSearchTextChange:Y,selectedTrackIds:c,onSelectedTrackIdsChange:re,trackOptions:ae,applicableTracks:w,isLoading:se})]}),o(d,{style:{marginTop:0},children:me}),pe&&o(d,{style:{marginBottom:16},children:o(ye,{variant:n&&n.totalTracks>0?"determinate":"indeterminate",value:n&&n.totalTracks>0?x:void 0,"data-testid":"batch-loading-indicator"})}),w.length===0&&!m?o(d,{className:u.emptyState,children:o(W,{variant:"h6",children:r?"No applicable tracks found for the selected group":"Please select a group to view applicable tracks"})}):o(Fe,{tracks:[...k,...y],trackStatusMap:P,trackCountsMap:ie,orderBy:ee,order:K,handleSort:te,handleTrackClick:le,theme:J,classes:u})]})})};export{ze as TechInsightsPageDeprecated};
|
|
2
|
+
//# sourceMappingURL=TechInsightsPageDeprecated.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as g,Fragment as A}from"react/jsx-runtime";import{useApi as B}from"@backstage/core-plugin-api";import{entityPresentationApiRef as $}from"@backstage/plugin-catalog-react";import{Table as j,TableHeader as D,Column as h,TableBody as F,Row as H,Cell as P,Flex as U,Text as q,CellProfile as G}from"@backstage/ui";import{uniq as O,isEmpty as x,isNumber as v}from"lodash";import{useMemo as p}from"react";import{useProfileImages as W}from"../../hooks/catalog/useProfileImages.esm.js";import{getPercentage as w}from"../../utils/formatters.esm.js";import{CustomCell as Y}from"../CustomCell/CustomCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as z}from"../EmptyState/EmptyStateBUI.esm.js";import{EmptyStateNoTracks as N}from"../EmptyState/EmptyStateNoTracks.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"@spotify/backstage-plugin-soundcheck-common";import"react-router-dom";import"../../routes.esm.js";import{LoadingTableSkeleton as L}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{StatusBar as J}from"../StatusBar/StatusBar.esm.js";const K=({track:n,trackStatus:e,entitiesCount:f,handleTrackClick:S,profileImageMap:y})=>{const l=B($).forEntity(n.ownerEntityRef),c=p(()=>n.levels.reduce((d,t)=>d+t.checks.length,0),[n.levels]),s=p(()=>(e?.passed??0)+(e?.failed??0)+(e?.warning??0)+(e?.error??0)+(e?.notReported??0)+(e?.exempt??0),[e]),m=p(()=>{let d;return e?.allPassPercentage!==null&&e?.allPassPercentage!==void 0?d=e.allPassPercentage:e&&(d=w(e.passed+e.exempt,s)),d},[e,s]),C=p(()=>w(e?.failed,s),[e,s]),T=p(()=>w(e?.warning,s),[e,s]),b=p(()=>w(e?.notReported,s),[e,s]),u=p(()=>w(e?.error,s),[e,s]),E=y[l.snapshot.entityRef];return g(H,{onAction:()=>{S(n.id)},children:[r(P,{title:n.name??n.id}),r(Y,{children:g(U,{align:"center",gap:"3",children:[g(q,{children:[m,"%"]}),r(J,{passedPercent:m,failedPercent:C,warningPercent:T,notReportedPercent:b,errorPercent:u})]})}),r(P,{title:n.type==="campaign"?"Campaign":"Track"}),r(P,{title:v(c)?`${c} Check${c===1?"":"s"}`:"N/A"}),r(P,{title:v(f)?`${f} ${f===1?"Entity":"Entities"}`:"N/A"}),r(G,{name:l.snapshot.primaryTitle,src:E??l.snapshot.primaryTitle})]})},Q=({order:n,sortColumn:e,handleSort:f,handleTrackClick:S,tracks:y,trackStatusMap:l,trackCountsMap:c,isSearch:s,isLoading:m,activeTrackCount:C,hasGroupSelected:T})=>{const b=p(()=>[...y].filter(t=>{const a=l.get(t.id)?.status,k=(a?.passed??0)+(a?.failed??0)+(a?.warning??0)+(a?.error??0)+(a?.notReported??0)+(a?.exempt??0);return!a||k>0}).sort((t,a)=>{const k=l.get(t.id),M=l.get(a.id);let o,i;switch(e){case"name":o=t.name?.toLowerCase()||"",i=a.name?.toLowerCase()||"";break;case"type":o=t.type||"",i=a.type||"";break;case"owner":o=t.ownerEntityRef?.toLowerCase()||"",i=a.ownerEntityRef?.toLowerCase()||"";break;case"compliance":o=k?.status?.allPassPercentage??null,i=M?.status?.allPassPercentage??null;break;case"checks":o=t.levels.reduce((R,I)=>R+I.checks.length,0),i=a.levels.reduce((R,I)=>R+I.checks.length,0);break;case"entities":o=c.get(t.id)??0,i=c.get(a.id)??0;break;default:return 0}return typeof o=="number"&&typeof i=="number"?n==="asc"?o-i:i-o:typeof o=="number"&&i===null?-1:o===null&&typeof i=="number"?1:typeof o=="string"&&typeof i=="string"?n==="asc"?o.localeCompare(i):i.localeCompare(o):0}),[y,l,e,c,n]),u=p(()=>b.map(t=>{const a=l.get(t.id)?.status,k=c.get(t.id)??0;return{track:t,trackStatus:a,entitiesCount:k}}),[b,c,l]),E=O(u.map(t=>t.track.ownerEntityRef)),{profileImageMap:d}=W(E);return!m&&x(y)?T?s&&C>0?r(z,{title:"No tracks or campaigns found.",body:"Your current search term did not return any tracks or campaigns. Please try a different search term. "}):r(N,{title:C>0?"No applicable tracks found for the selected group":void 0}):r(N,{title:"Select a group or create a new track"}):g(A,{children:[g(j,{sortDescriptor:{column:e,direction:n==="asc"?"ascending":"descending"},onSortChange:t=>f(t.column),children:[g(D,{children:[r(h,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"43%"},children:"Name"}),r(h,{id:"compliance",allowsSorting:!0,style:{width:"12%"},children:"Compliance"}),r(h,{id:"type",allowsSorting:!0,style:{width:"10%"},children:"Type"}),r(h,{id:"checks",allowsSorting:!0,style:{width:"10%"},children:"Checks"}),r(h,{id:"entities",allowsSorting:!0,style:{width:"10%"},children:"Entities"}),r(h,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Track Owner"})]}),r(F,{children:u.map(t=>r(K,{handleTrackClick:S,profileImageMap:d??{},...t},t.track.id))})]}),x(u)&&m&&r(L,{rowCount:10}),!x(u)&&m&&r(L,{rowCount:4})]})};export{Q as TechInsightsTableBUI};
|
|
2
|
+
//# sourceMappingURL=TechInsightsTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,
|
|
1
|
+
import{jsx as e,Fragment as N,jsxs as g}from"react/jsx-runtime";import{useApi as $}from"@backstage/core-plugin-api";import{entityPresentationApiRef as E}from"@backstage/plugin-catalog-react";import{TableContainer as H,Paper as L,Table as z,TableHead as A,TableRow as x,TableCell as c,TableSortLabel as f,TableBody as B,Typography as b,Box as w}from"@material-ui/core";import D from"@material-ui/icons/ArrowDownward";import F from"@material-ui/icons/ArrowUpward";import{useMemo as M}from"react";import{getColorInterpolator as j,getCheckStatusColor as I}from"../../utils/colors.esm.js";import{CategoryBar as V}from"../CategoryBar/CategoryBar.esm.js";import{CheckStateColors as P}from"../CheckPage/utils.esm.js";import{ColorChip as J}from"../ColorChip/ColorChip.esm.js";const O=({tracks:v,trackStatusMap:m,trackCountsMap:y,orderBy:o,order:s,handleSort:h,handleTrackClick:S,theme:u,classes:l})=>{const R=$(E),T=M(()=>[...v].filter(r=>{const t=m.get(r.id)?.status,d=(t?.passed??0)+(t?.failed??0)+(t?.warning??0)+(t?.error??0)+(t?.notReported??0)+(t?.exempt??0);return!t||d>0}).sort((r,t)=>{const d=m.get(r.id),k=m.get(t.id);let n,a;switch(o){case"name":n=r.name?.toLowerCase()||"",a=t.name?.toLowerCase()||"";break;case"type":n=r.type||"",a=t.type||"";break;case"owner":n=r.ownerEntityRef?.toLowerCase()||"",a=t.ownerEntityRef?.toLowerCase()||"";break;case"compliance":n=d?.status?.allPassPercentage??null,a=k?.status?.allPassPercentage??null;break;case"checks":n=r.levels.reduce((i,C)=>i+C.checks.length,0),a=t.levels.reduce((i,C)=>i+C.checks.length,0);break;case"entities":n=y.get(r.id)??0,a=y.get(t.id)??0;break;default:return 0}return typeof n=="number"&&typeof a=="number"?s==="asc"?n-a:a-n:typeof n=="number"&&a===null?-1:n===null&&typeof a=="number"?1:typeof n=="string"&&typeof a=="string"?s==="asc"?n.localeCompare(a):a.localeCompare(n):0}),[s,o,m,y,v]),p=r=>r.direction==="asc"?e(F,{...r,fontSize:"small"}):e(D,{...r,fontSize:"small"});return e(N,{children:e(H,{component:L,children:g(z,{className:l.table,size:"small",children:[e(A,{children:g(x,{children:[e(c,{width:"30%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="name",direction:o==="name"?s:"desc",onClick:()=>h("name"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Name"})})}),e(c,{width:"10%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="checks",direction:o==="checks"?s:"desc",onClick:()=>h("checks"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Checks"})})}),e(c,{width:"10%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="entities",direction:o==="entities"?s:"desc",onClick:()=>h("entities"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Entities"})})}),e(c,{width:"30%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="compliance",direction:o==="compliance"?s:"desc",onClick:()=>h("compliance"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Compliance"})})}),e(c,{width:"20%",className:`${l.tableHeaderCell} ${l.headerCell}`,children:e(f,{active:o==="owner",direction:o==="owner"?s:"desc",onClick:()=>h("owner"),IconComponent:p,children:e("div",{className:l.headerContent,children:"Track Owner"})})})]})}),e(B,{children:T.map(r=>{const t=m.get(r.id)?.status;let d=0;if(t?.allPassPercentage!==null&&t?.allPassPercentage!==void 0)d=t.allPassPercentage;else if(t){const i=(t.passed??0)+(t.failed??0)+(t.warning??0)+(t.error??0)+(t.notReported??0)+(t.exempt??0);d=i>0?((t.passed??0)+(t.exempt??0))/i*100:0}const k=r.levels.reduce((i,C)=>i+C.checks.length,0),n=y.get(r.id)??0,a=Math.round(d);return g(x,{onClick:()=>S(r.id),className:l.tableRow,style:{cursor:"pointer"},children:[e(c,{className:l.tableCell,children:e(b,{variant:"body2",style:{fontWeight:500},children:r.name})}),e(c,{className:l.tableCell,children:e(b,{variant:"body2",children:k})}),e(c,{className:l.tableCell,children:e(b,{variant:"body2",children:new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(n)})}),e(c,{className:l.tableCell,children:g("div",{style:{display:"flex",alignItems:"center",gap:8},children:[t&&e(J,{value:`${a}%`,getColor:j(u,"default"),numericValue:d/100}),e(w,{flex:1}),e("div",{style:{width:"100%"},children:e(V,{data:{compliant:a,nonCompliant:100-a},categories:["compliant","nonCompliant"],categoryColors:{compliant:I(u,P.PASSED),nonCompliant:I(u,P.FAILED)},showTooltip:!1})})]})}),e(c,{className:l.tableCell,style:{verticalAlign:"middle"},children:r.ownerEntityRef&&e(w,{display:"flex",alignItems:"center",children:(()=>{const i=R.forEntity(r.ownerEntityRef);return g(N,{children:[i.snapshot.Icon&&e(w,{marginRight:1,display:"flex",alignItems:"center",height:"20px",children:e(i.snapshot.Icon,{fontSize:"small"})}),e(b,{variant:"body2",style:{lineHeight:"20px"},children:i.snapshot.primaryTitle||r.ownerEntityRef})]})})()})})]},r.id)})})]})})})};export{O as TechInsightsTableView};
|
|
2
2
|
//# sourceMappingURL=TechInsightsTableView.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as m,Fragment as E}from"react/jsx-runtime";import{useRouteRef as P}from"@backstage/core-plugin-api";import{Table as x,TableHeader as C,Column as f,TableBody as k,TablePagination as v,Row as O,CellProfile as B,Cell as N,Flex as M,Text as D}from"@backstage/ui";import{sortBy as L}from"lodash";import{useMemo as u}from"react";import{useNavigate as $,createSearchParams as j}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useSearchName as F}from"../../hooks/useSearchName.esm.js";import{usePagination as H}from"../../hooks/usePagination.esm.js";import{useSortTableLocalStorage as z}from"../../hooks/useSortTableLocalStorage.esm.js";import{useProfileImages as A}from"../../hooks/catalog/useProfileImages.esm.js";import{trackOverviewRouteRef as G,campaignOverviewRouteRef as J}from"../../routes.esm.js";import{CustomCell as K}from"../CustomCell/CustomCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as U}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import{LoadingTableSkeleton as V}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{StatusBar as q}from"../StatusBar/StatusBar.esm.js";const w=10,Q=(e,a=[])=>{const o=[],i=r=>{!r.children||r.children.length===0?r.numberOfEntities>0&&o.push(r):(a.includes(r.entityRef)&&r.numberOfEntities>0&&o.push(r),r.children.forEach(s=>i(s)))};return i(e),o},W=({row:e,profileImageMap:a,trackId:o,campaignId:i})=>{const r=P(G),s=P(J),c=$();return m(O,{onAction:()=>{o&&c({pathname:i?s({campaignId:i}):r({trackId:o}),search:`?${j({owners:[e.entityRef]})}`})},children:[t(B,{name:e.name,src:a[e.entityRef]??e.name}),t(N,{title:`${e.numberOfEntities} ${e.numberOfEntities===1?"entity":"entities"}`}),t(K,{children:m(M,{align:"center",gap:"3",children:[m(D,{children:[e.passPercentage,"%"]}),t(q,{passedPercent:e.passPercentage,failedPercent:e.failPercentage,warningPercent:e.warningPercentage,notReportedPercent:e.notReportedPercentage,errorPercent:e.errorPercentage})]})})]})},X=({tableData:e,isLoading:a,trackId:o,selectedGroup:i,searchValue:r,campaignId:s})=>{const{order:c,orderBy:l,handleSort:y}=z({localStoragePrefix:"soundcheck-tech-insights-explorer",defaultSortBy:"entities",defaultDirection:"desc"}),p=u(()=>e?Q(e,i?[i]:[]):[],[i,e]),h=F({items:p,searchTerm:r}),d=u(()=>{const n=L(h??[],g=>l==="name"?g.name:l==="passPercentage"?g.passPercentage:l==="entities"?g.numberOfEntities:0);return c==="desc"&&n.reverse(),n},[h,c,l]),R=u(()=>p.map(n=>n.entityRef),[p]),{paginatedItems:S,paginationProps:b}=H({pageParam:"perPage",defaultPageSize:w,items:d}),I=d.length>w,{profileImageMap:T}=A(R);return a?t(V,{rowCount:10}):!a&&!d.length?t(U,{title:"No groups found",body:"No groups found for the current selection."}):m(E,{children:[m(x,{sortDescriptor:{column:l,direction:c==="asc"?"ascending":"descending"},onSortChange:n=>y(n.column),children:[m(C,{children:[t(f,{allowsSorting:!0,id:"name",isRowHeader:!0,style:{width:"65%"},children:"Name"}),t(f,{allowsSorting:!0,id:"entities",style:{width:"15%"},children:"Entities"}),t(f,{allowsSorting:!0,id:"passPercentage",style:{width:"20%"},children:"Compliance"})]}),t(k,{children:S.map(n=>t(W,{profileImageMap:T??{},row:n,trackId:o,campaignId:s},n.entityRef))})]}),I&&t(v,{...b})]})};export{X as TechInsightsExplorerTable};
|
|
2
|
+
//# sourceMappingURL=TechInsightsExplorerTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as p,jsxs as G}from"react/jsx-runtime";import{useApi as y,configApiRef as R}from"@backstage/core-plugin-api";import{EntityDisplayName as x}from"@backstage/plugin-catalog-react";import{Box as d,Chip as v}from"@material-ui/core";import{useMemo as b,useEffect as k,useCallback as w}from"react";import{useSearchParams as I}from"react-router-dom";import L from"react-use/lib/useLocalStorage";import{useGroupOptions as P}from"../../hooks/groups/useGroupOptions.esm.js";import{useFeatureFlag as B}from"../../hooks/useFeatureFlag.esm.js";import"../GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js";import{GroupHierarchySelector as C}from"../GroupHierarchySelector/GroupHierarchySelector.esm.js";import{GroupSelectorBUI as T}from"../GroupSelectorBUI/GroupSelectorBUI.esm.js";import{usePreviousSelectedGroups as U}from"../GroupSelectorBUI/usePreviousSelectedGroups.esm.js";const j=({onChange:l,hideSelected:h})=>{const S=B("backstage-ui"),{options:o,isLoading:n}=P(),[t,s]=I(),[m,f]=L("soundcheck.overview.groupRef",null),i=t.get("group"),c=y(R).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),{addGroup:a}=U(),e=b(()=>{if(!n&&o.length){if(i||m){const r=i??m;return o.find(u=>u.ref===r)??o[0]}else if(c)return o.find(r=>r.type===c)??o[0];return o[0]}return null},[c,n,o,i,m]);k(()=>{if(!n&&o.length&&!i&&e){const r=new URLSearchParams(t.toString());r.set("group",e.ref),s(r,{replace:!0}),f(e.ref),l?.(e.ref),a(e.ref)}},[n,o,i,e,t,s,f]);const g=w(r=>{const u=new URLSearchParams(t.toString());u.set("group",r),s(u),f(r),l?.(r),a(r)},[a,l,t,f,s]);return S?p(T,{selectedGroupRef:e?.ref,updateGroupRef:g}):G(d,{display:"flex",alignItems:"center",gridGap:12,children:[p(C,{currentSelectedGroup:e?.ref,applyGroup:g},e?.ref),!h&&e?.ref&&p(d,{display:"flex",alignItems:"center",marginLeft:1,children:p(v,{size:"small",color:"secondary",style:{marginBottom:4,marginTop:4},label:p(x,{entityRef:e.ref})})})]})};export{j as TechInsightsGroupSelector};
|
|
2
2
|
//# sourceMappingURL=TechInsightsGroupSelector.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{Grid as n,Button as
|
|
1
|
+
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{Grid as n,Button as f,Menu as M,Box as x,TextField as D}from"@material-ui/core";import{makeStyles as O}from"@material-ui/core/styles";import{useState as h}from"react";import{useSearchParams as B}from"react-router-dom";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{MIN_NUMBER_OF_DAYS as m,MAX_NUMBER_OF_DAYS as E}from"../TechHealth/Filters/utils.esm.js";const S=[{label:"7D",value:7},{label:"1M",value:30},{label:"2M",value:60},{label:"3M",value:90}],w=O(o=>({root:{width:"100%",paddingLeft:"60px",paddingBottom:o.spacing(1)},buttons:{paddingTop:"0 !important",paddingBottom:"0 !important"},customNumberOfDaysMenu:{width:"180px",padding:o.spacing(0,1)}})),C=({maxNumberOfDays:o=E})=>{const i=w(),[g,b]=B(),[l,p]=h(null),[a,s]=h(""),v=t=>{p(t.currentTarget)},y=()=>{p(null)},u=t=>{let r;if(typeof t=="string"){if(!t.length)return!0;r=parseInt(t,10)}else r=t;return!isNaN(r)&&r>=m&&r<=o},c=t=>{u(t)&&b(r=>(g.set("numberOfDays",t.toString()),r))},N=t=>{if(t.key==="Enter"){const r=parseInt(a,10);c(r),s("")}};return d(n,{container:!0,spacing:1,direction:"row",wrap:"nowrap",className:i.root,children:[S.filter(({value:t})=>t<=o).map(t=>e(n,{item:!0,className:i.buttons,children:e(f,{size:"small",onClick:()=>c(t.value),children:t.label})},t.value)),d(n,{item:!0,className:i.buttons,children:[e(f,{size:"small","aria-controls":"days-menu","aria-haspopup":"true",onClick:v,children:"Custom"}),e(M,{id:"days-menu",anchorEl:l,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},keepMounted:!0,open:!!l,onClose:y,children:e(x,{className:i.customNumberOfDaysMenu,children:e(D,{fullWidth:!0,variant:"outlined",size:"small",placeholder:"Number of days",helperText:`Enter value from ${m} to ${o}`,inputProps:{min:m,max:o},onKeyDown:N,value:a,type:"number",onChange:t=>s(t.target.value),error:!u(a)})})})]})]})};export{C as TimePeriodBar};
|
|
2
2
|
//# sourceMappingURL=TimePeriodBar.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,Fragment as y,jsxs as n}from"react/jsx-runtime";import{Flex as f,Text as h,Button as s,Box as d}from"@backstage/ui";import{makeStyles as z}from"@material-ui/core/styles";import{RiSubtractLine as O,RiAddLine as _}from"@remixicon/react";import{useState as v,useContext as M}from"react";import{DialogTrigger as P,Popover as F,Dialog as R,OverlayTriggerStateContext as C,NumberField as E,Label as U,Group as L,Input as j}from"react-aria-components";import{useSearchParams as k}from"react-router-dom";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{MAX_NUMBER_OF_DAYS as N,DEFAULT_NUMBER_OF_DAYS as x,MIN_NUMBER_OF_DAYS as g}from"../TechHealth/Filters/utils.esm.js";const V=[{label:"7D",value:7},{label:"1M",value:x},{label:"2M",value:60},{label:"3M",value:N}],Y=z(()=>({centerText:{textAlign:"center"},group:{display:"flex",alignItems:"center",justifyContent:"center"},inputButton:{display:"flex",alignItems:"center"},dialog:{background:"var(--bui-bg-surface-1)",padding:"var(--bui-space-3)",borderRadius:"var(--bui-radius-3)",border:"1px solid var(--bui-border)"},pointer:{cursor:"pointer"},dialogTriggerButton:{padding:"0 !important",fontWeight:"normal",height:"0 !important",color:"var(--bui-fg-secondary) !important",fontSize:"var(--bui-font-size-2) !important"}})),w=({maxNumberOfDays:l=N})=>{const i=Y(),[m,S]=k(),c=m.get("numberOfDays"),T=c!==null&&!isNaN(Number(c))?Number(c):x,[B,D]=v(T),u=t=>{if(D(t),m.get("numberOfDays")!==String(t)){const o=new URLSearchParams(m);o.set("numberOfDays",String(t)),S(o,{replace:!0})}},I=()=>{const t=M(C),[o,p]=v(String(B)),b=e=>{let a;if(typeof e=="string"){if(!e.length)return!0;a=parseInt(e,10)}else a=e;return!isNaN(a)&&a>=g&&a<=l},A=e=>{if(e.key==="Enter"){const a=parseInt(e.currentTarget.value,10);b(a)&&(u(a),t?.close())}};return n(y,{children:[n(E,{minValue:g,maxValue:l,value:parseInt(o,10),children:[n(d,{mb:"2",children:[r(d,{style:{textAlign:"center"},children:r(U,{className:i.centerText,id:"number-days",children:"Number of days"})}),r(d,{style:{textAlign:"center"},children:n(h,{variant:"body-small",color:"secondary","aria-labelledby":"number-days",children:["Enter a value from ",g," to ",l]})})]}),n(L,{className:i.group,children:[r(s,{slot:"decrement",variant:"tertiary",size:"small",className:i.inputButton,onPress:()=>{p(e=>String(parseInt(e,10)-1))},children:r(O,{size:8})}),r(j,{onKeyDown:A,size:5,className:i.centerText,onChange:e=>p(e.currentTarget.value)}),r(s,{slot:"increment",variant:"tertiary",size:"small",className:i.inputButton,onPress:()=>{p(e=>String(parseInt(e,10)+1))},children:r(_,{size:8})})]})]}),r(f,{align:"center",justify:"center",mt:"2",children:r(s,{style:{height:"auto"},variant:"tertiary",size:"small",onPress:()=>{const e=parseInt(o,10);b(e)&&(u(e),t?.close())},children:"Apply"})})]})};return r(y,{children:n(f,{align:"center",children:[V.filter(({value:t})=>t<=l).map(t=>r(h,{variant:"body-small",color:"secondary",className:i.pointer,onClick:()=>u(t.value),children:t.label},t.value)),n(P,{children:[r(s,{variant:"tertiary",size:"small",className:i.dialogTriggerButton,children:"Custom"}),r(F,{children:r(R,{className:i.dialog,children:r(I,{})})})]})]})})};export{w as TimePeriodBarBUI};
|
|
2
|
+
//# sourceMappingURL=TimePeriodBarBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as r,jsx as a}from"react/jsx-runtime";import{useMemo as f,useCallback as H,createElement as y}from"react";import{useApi as j,useRouteRef as N}from"@backstage/core-plugin-api";import{entityPresentationApiRef as D}from"@backstage/plugin-catalog-react";import{Flex as b,Card as k,Text as w,Box as x,Avatar as F,TooltipTrigger as O,ButtonLink as z,Tooltip as G}from"@backstage/ui";import{makeStyles as U}from"@material-ui/core";import{RiInformationLine as W}from"@remixicon/react";import{isEmpty as T}from"lodash";import{createSearchParams as q}from"react-router-dom";import{useProfileImages as J}from"../../hooks/catalog/useProfileImages.esm.js";import{trackOverviewRouteRef as K,campaignOverviewRouteRef as Q}from"../../routes.esm.js";import{getPercentage as v}from"../../utils/formatters.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as C}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@spotify/backstage-plugin-soundcheck-common";import{getLeafNodes as V}from"../HierarchicalTechInsightsPage/getLeafNodes.esm.js";import{LoadingTableSkeleton as B}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{StatusBar as X}from"../StatusBar/StatusBar.esm.js";const S=U(()=>({topTeamCard:{padding:"var(--bui-space-3) var(--bui-space-5)",minWidth:400},topTeamCardRows:{minHeight:"calc(var(--bui-space-6) * 6.5)"},topTeamCardRow:{display:"flex",flexDirection:"row",gridGap:1,alignItems:"center",width:"100%",padding:"var(--bui-space-2)",marginBottom:"var(--bui-space-2)",backgroundColor:"var(--bui-bg-surface-2)",border:"1px solid var(--bui-bg-surface-2)",borderRadius:"var(--bui-radius-2)"},infoButton:{"&:hover":{backgroundColor:"inherit !important"}},teamName:{width:"75%"},percentBar:{width:"25%"}})),A=({groupRef:o,teamName:i,passPercentage:u,failPercentage:c,warningPercentage:h,notReportedPercentage:P,errorPercentage:R,profileImageMap:g,trackId:n,campaignId:m})=>{const t=S(),l=N(K),I=N(Q);let p;return m?p=I({campaignId:m}):n&&(p=l({trackId:n})),r(k,{className:`${t.topTeamCardRow}`,children:[r(b,{align:"center",gap:"1",style:{flex:1},children:[r(b,{align:"center",gap:"2",className:t.teamName,children:[a(F,{name:i,size:"small",src:g[o]?g[o]:i}),a(w,{children:i})]}),r(b,{align:"center",gap:"1",className:t.percentBar,children:[r(w,{color:"secondary",children:[u,"%"]}),a(X,{passedPercent:u,failedPercent:c,warningPercent:h,notReportedPercent:P,errorPercent:R})]})]}),r(O,{delay:0,children:[a(z,{className:t.infoButton,variant:"tertiary",iconStart:a(W,{}),isDisabled:!n,href:p?`${p}?${q({owners:[o]})}`:void 0}),r(G,{children:["See insights for ",i]})]})]})},Y=({trackStatus:o,isLoading:i,campaignId:u})=>{const c=S(),h=80,P=50,R=j(D),g=f(()=>o?V(o):[],[o]),n=f(()=>g.filter(e=>{const{passed:s,failed:d,warning:M,error:$,notReported:L,exempt:E}=e.status;return s+d+M+$+L+E>0&&!e.children?.length}).sort((e,s)=>(e.status.allPassPercentage??0)-(s.status.allPassPercentage??0)),[g]),m=H(e=>{const s=R.forEntity(e.groupRef).snapshot,d=e.status.failed+e.status.passed+e.status.error+e.status.exempt+e.status.warning+e.status.notReported;return{groupRef:e.groupRef,teamName:s.primaryTitle,passPercentage:e.status.allPassPercentage??0,failPercentage:v(e.status.failed,d),warningPercentage:v(e.status.warning,d),notReportedPercentage:v(e.status.notReported,d),errorPercentage:v(e.status.warning,d),teamInfo:s.secondaryTitle}},[R]),t=f(()=>n.filter(e=>(e.status.allPassPercentage??0)<P).slice(0,3).map(m),[n,m]),l=f(()=>{const e=n.filter(s=>(s.status.allPassPercentage??0)>=h);return e.reverse(),e.slice(0,3).map(m)},[n,m]),I=f(()=>[...l.map(e=>e.groupRef),...t.map(e=>e.groupRef)],[t,l]),{profileImageMap:p}=J(I);return r(b,{children:[r(k,{className:c.topTeamCard,children:[a(w,{variant:"title-x-small",weight:"bold",children:"Teams Needing Attention"}),i&&a(B,{rowCount:3,rowHeight:40}),!i&&r(x,{className:c.topTeamCardRows,children:[!T(t)&&t.map(e=>y(A,{profileImageMap:p??{},...e,key:e.groupRef,trackId:o?.trackId,campaignId:u})),T(t)&&a(C,{title:"No teams eligible",body:`None of your teams are performing below ${P}% compliance.`})]})]}),r(k,{className:c.topTeamCard,children:[a(w,{variant:"title-x-small",weight:"bold",children:"Top Performing Teams"}),i&&a(B,{rowCount:3,rowHeight:40}),!i&&r(x,{className:c.topTeamCardRows,children:[!T(l)&&l.map(e=>y(A,{profileImageMap:p??{},...e,key:e.groupRef,trackId:o?.trackId})),T(l)&&a(C,{title:"No teams eligible",body:`None of your teams are performing above ${h}% compliance.`})]})]})]})};export{Y as TopAndBottomPerformingTeams};
|
|
2
|
+
//# sourceMappingURL=TopAndBottomPerformingTeams.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as s,Fragment as E}from"react/jsx-runtime";import{useRouteRef as L}from"@backstage/core-plugin-api";import{Table as x,TableHeader as B,Column as u,TableBody as O,Row as j,Cell as g,TablePagination as A}from"@backstage/ui";import{makeStyles as D}from"@material-ui/core";import{useState as b,useMemo as f}from"react";import{CircularProgressbar as H}from"react-circular-progressbar";import{useNavigate as M}from"react-router-dom";import{TrackEntityField as U}from"../../graphql/generated/index.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as $}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{trackCheckDetailsRouteRef as z}from"../../routes.esm.js";import{getPercentage as V}from"../../utils/formatters.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as W}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import{LoadingTableSkeleton as Z}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";const q=D(()=>({customCell:{padding:"0 var(--bui-space-3)"},circularProgressBg:{color:"var(--bui-fg-secondary)",opacity:.25},circularProgressOverlay:{position:"absolute",left:0,color:"var(--bui-fg-danger)"},circularProgressbar:{width:"60%"}})),k=10;U.Name;const G=({track:o,checkStatuses:a,certificationStatus:h,searchValue:c})=>{const v=q(),[m,C]=b("ascending"),[y,w]=b("name"),P=L(z),S=M(),n=f(()=>!o.levels||!a?[]:o.levels.flatMap(t=>t.checks.map(e=>{const i=a.find(({id:N})=>N===e.id),p=i?i.numberOfEntities-i.notApplicable-i.exempt:0,l=i?.failed??0;return{check:e,failedCount:l,applicableCount:p}}).filter(({failedCount:e})=>e>0)),[o.levels,a]),d=f(()=>{if(!c?.length)return n;const t=c.toLowerCase();return n.filter(({check:e})=>e.name.toLowerCase().includes(t))},[n,c]),T=f(()=>[...d].sort((t,e)=>{const i=t.check.name.toLowerCase().trim(),p=e.check.name.toLowerCase().trim(),l=i.localeCompare(p,void 0,{sensitivity:"base"});return m==="ascending"?l:-l}),[d,m]),{paginatedItems:I,paginationProps:R}=$({pageParam:"perPage",defaultPageSize:k,items:T}),F=o.levels.length>k;return a===void 0||h===void 0?r(Z,{}):!n.length||!d.length?r(W,{title:"No failing checks",body:"There are no failing checks found."}):s(E,{children:[s(x,{onSortChange:({direction:t,column:e})=>{w(String(e)),C(t)},sortDescriptor:{direction:m,column:y},children:[s(B,{children:[r(u,{id:"compliance",style:{width:"5%"},children:"Compliance"}),r(u,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"75%"},children:"Name"}),r(u,{id:"failures",style:{width:"20%"},children:"Failures"})]}),r(O,{children:I.map(({check:t,failedCount:e})=>{const i=V(e,h.numberOfEntities);return s(j,{onAction:()=>S(P({trackId:o.id,checkId:t.id})),children:[r(g,{leadingIcon:r("div",{className:v.circularProgressbar,children:r(H,{value:i,strokeWidth:12,styles:{path:{stroke:"var(--bui-fg-danger)"},trail:{stroke:'rgba(var("--bui-fg-secondary"), 0.25)'}}})}),title:`${i}%`}),r(g,{title:t.name}),r(g,{title:`${new Intl.NumberFormat().format(e??0)} failing`})]},t.id)})})]}),F&&r(A,{...R})]})};export{G as TopFailingChecksTableBUI};
|
|
2
|
+
//# sourceMappingURL=TopFailingChecksTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsxs as p,Fragment as u,jsx as r}from"react/jsx-runtime";import{useRouteRef as k}from"@backstage/core-plugin-api";import{Box as f,HeaderPage as l}from"@backstage/ui";import{useEffect as d}from"react";import{TrackFormProvider as g,useTrackFormContext as h}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import{useCreateTrack as T}from"../../hooks/tracks/useCreateTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as b}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useFeatureFlag as C}from"../../hooks/useFeatureFlag.esm.js";import{tracksPageRouteRef as i}from"../../routes.esm.js";import{DocLinkButton as y}from"../DocLinkButton/DocLinkButton.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as F}from"../SoundcheckHeader/useHeader.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const a=()=>{const{setIsLoading:t}=h(),{mutateAsync:o,isLoading:e}=T();d(()=>{t(e)},[t,e]);const[c,s]=b(i),m=async n=>{await o(n,{onSuccess:s})};return F({title:"Create Track",description:"Create a new track that aligns with your organization's long-term tech health initiatives by entering the details below.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks"}),r(w,{handleClose:c,onSave:m})},x=()=>{const t=C("backstage-ui"),o=k(i);return p(u,{children:[t&&r(f,{children:r(l,{title:"Create Track",breadcrumbs:[{label:"All Tracks",href:o()}],customActions:r(y,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks/"})})}),r(g,{children:r(a,{})})]})};export{x as TrackCreatePage,a as TrackCreateView};
|
|
2
2
|
//# sourceMappingURL=TrackCreatePage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as d,Fragment as f,jsx as r}from"react/jsx-runtime";import{useRouteRef as s}from"@backstage/core-plugin-api";import{usePermission as k}from"@backstage/plugin-permission-react";import{Box as u,HeaderPage as l}from"@backstage/ui";import{soundcheckTrackUpdatePermission as g}from"@spotify/backstage-plugin-soundcheck-common";import{useParams as h}from"react-router-dom";import{TrackFormProvider as P}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as b}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useFeatureFlag as R}from"../../hooks/useFeatureFlag.esm.js";import{trackDetailsRouteRef as T,tracksPageRouteRef as E}from"../../routes.esm.js";import{DocLinkButton as F}from"../DocLinkButton/DocLinkButton.esm.js";import{LoadingIndicator as w}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as x}from"../PageWarningMessage/PageWarningMessage.esm.js";import{TrackEditView as I}from"./TrackEditView.esm.js";const y=()=>{const{trackId:o}=h(),{data:t,isLoading:i}=b(o),{loading:e,allowed:m}=k({permission:g,resourceRef:o}),a=m&&t?.isEditable,c=R("backstage-ui"),p=s(T),n=s(E);return d(f,{children:[c&&r(u,{children:r(l,{title:`Edit ${t?.name??o??"Track"}`,breadcrumbs:[{label:"All Tracks",href:n()},{label:"Details",href:p({trackId:o??""})}],customActions:r(F,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks/"})})}),r(x,{entityName:"track",entityId:o,showNotFound:!i&&!t,showCannotEdit:!e&&!a}),i||e?r(w,{}):t&&a&&r(P,{children:r(I,{track:t,canEdit:m})})]})};export{y as TrackEditPage};
|
|
2
2
|
//# sourceMappingURL=TrackEditPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as l}from"react/jsx-runtime";import{useEffect as i,useCallback as f}from"react";import{useTrackFormContext as g}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as y}from"../../hooks/useNavigateBack.esm.js";import{useUpdateTrack as E}from"../../hooks/tracks/useUpdateTrack.esm.js";import{tracksPageRouteRef as h}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as T}from"../SoundcheckHeader/useHeader.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const b=({track:t,canEdit:p})=>{const{setSelectedItem:e,setIsLoading:m,selectedItem:n,showReadOnly:r}=g(),{mutateAsync:s,isLoading:c}=E();i(()=>m(c),[m,c]);const o=!p||!t.isEditable;i(()=>{o?r(t):e(t)},[t,e,o,r]);const[d,a]=y(h),k=f(async u=>{await s(u,{onSuccess:a})},[a,s]);return i(()=>{},[t,r,o]),T({title:`${o?"View":"Edit"} Track`,description:"Edit your track's details to match your needs.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks"}),n?l(w,{handleClose:d,onSave:k}):null};export{b as TrackEditView};
|
|
1
|
+
import{jsx as l}from"react/jsx-runtime";import{useEffect as i,useCallback as f}from"react";import{useTrackFormContext as g}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as y}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useUpdateTrack as E}from"../../hooks/tracks/useUpdateTrack.esm.js";import{tracksPageRouteRef as h}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as T}from"../SoundcheckHeader/useHeader.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const b=({track:t,canEdit:p})=>{const{setSelectedItem:e,setIsLoading:m,selectedItem:n,showReadOnly:r}=g(),{mutateAsync:s,isLoading:c}=E();i(()=>m(c),[m,c]);const o=!p||!t.isEditable;i(()=>{o?r(t):e(t)},[t,e,o,r]);const[d,a]=y(h),k=f(async u=>{await s(u,{onSuccess:a})},[a,s]);return i(()=>{},[t,r,o]),T({title:`${o?"View":"Edit"} Track`,description:"Edit your track's details to match your needs.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks"}),n?l(w,{handleClose:d,onSave:k}):null};export{b as TrackEditView};
|
|
2
2
|
//# sourceMappingURL=TrackEditView.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as i,Fragment as d}from"react/jsx-runtime";import{makeStyles as m}from"@material-ui/core/styles";import{useFormContext as g,Controller as b}from"react-hook-form";import{BadgeVariant as l}from"../../../../../graphql/generated/index.esm.js";import{LevelBadge as n}from"../../../../Badges/LevelBadge.esm.js";import"../../../../Badges/NoLevelBadge.esm.js";import"../../../../Badges/CampaignBadge.esm.js";import{FormControlledAutocomplete as f}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/core";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"../../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{
|
|
1
|
+
import{jsx as e,jsxs as i,Fragment as d}from"react/jsx-runtime";import{makeStyles as m}from"@material-ui/core/styles";import{useFormContext as g,Controller as b}from"react-hook-form";import{BadgeVariant as l}from"../../../../../graphql/generated/index.esm.js";import{LevelBadge as n}from"../../../../Badges/LevelBadge.esm.js";import"../../../../Badges/NoLevelBadge.esm.js";import"../../../../Badges/CampaignBadge.esm.js";import{FormControlledAutocomplete as f}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/core";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"../../../../ListboxVirtualized/ListboxVirtualized.esm.js";import"react";import{useLabelValueOptions as u}from"../../../../FormControlledAutocomplete/useLabelValueOptions.esm.js";import"../../../../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{FormFieldLabel as y}from"../../../../FormFieldLabel/FormFieldLabel.esm.js";const v=m(o=>({container:{display:"flex",flexDirection:"column",gap:o.spacing(1)},badgeTypeInput:{display:"flex",flexDirection:"row",gap:o.spacing(1)},badgeTypeIcon:{alignSelf:"center"}})),x=({disabled:o})=>{const t=v(),{control:a}=g(),r=[{value:"status",label:"Status",icon:e(n,{className:t.badgeTypeIcon,badge:{variant:l.Status,options:{status:{passed:3,failed:2,warning:0,exempt:0,error:0,notApplicable:0,notReported:0,passPercentage:60}}}})},{value:"medal",label:"Medal",icon:e(n,{className:t.badgeTypeIcon,badge:{variant:l.Medal,options:{color:"#FCE54F",level:3}}})}],p=u(r);return i("div",{className:t.container,children:[e("div",{children:e(y,{title:"Badge type",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks#certifications-and-badges"})}),i("div",{className:t.badgeTypeInput,children:[e(f,{name:"detailsStep.badgeType",disableClearable:!0,control:a,width:300,freeSolo:!1,disabled:o,placeholder:"Badge type",...p}),e(b,{name:"detailsStep.badgeType",control:a,render:({field:s})=>e(d,{children:r.find(c=>c.value===s.value)?.icon})})]})]})};export{x as TrackBadgeTypeSelect};
|
|
2
2
|
//# sourceMappingURL=TrackBadgeTypeSelect.esm.js.map
|