@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{useApi as
|
|
1
|
+
import{useApi as u,useAnalytics as f}from"@backstage/core-plugin-api";import{useQuery as d}from"@tanstack/react-query";import{soundcheckApiRef as l}from"../../api.esm.js";import{QueryKeys as m}from"../graphqlKeys.esm.js";const h=(t,r=!0)=>{const i=u(l),n=f();return d([m.CheckStatus,t],async()=>{const{checkId:s,entityRefs:a,filter:c,trackId:o}=t,p={checkId:s,entityRefs:a,filter:c,trackId:o},e=await i.getCheckStatus(p);return e&&n.captureEvent("page_details","Check Status",{attributes:{id:e.id,error:e.error,exempt:e.exempt,failed:e.failed,notApplicable:e.notApplicable,notReported:e.notReported,numberOfEntities:e.numberOfEntities,passed:e.passed,warning:e.warning,filter:t.filter}}),e},{enabled:r,staleTime:10*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{h as useCheckStatus};
|
|
2
2
|
//# sourceMappingURL=useCheckStatus.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useApi as t,alertApiRef as s}from"@backstage/core-plugin-api";import{catalogApiRef as n}from"@backstage/plugin-catalog-react";import{useQuery as m}from"@tanstack/react-query";import{QueryKeys as f}from"../graphqlKeys.esm.js";const p=(e,i,r=!0)=>{const a=t(s),o=t(n);return m([f.GetEntityRefs,e],async()=>o.getEntities({filter:e,limit:i,fields:["kind","metadata.name","metadata.description","metadata.namespace"]}),{enabled:r,refetchOnWindowFocus:!1,onError:()=>{a.post({message:"Failed to load entities",severity:"error"})}})};export{p as useGetEntityRefs};
|
|
2
2
|
//# sourceMappingURL=useGetEntityRefs.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{uniq as
|
|
1
|
+
import{stringifyEntityRef as m}from"@backstage/catalog-model";import{uniq as k}from"lodash";import{useMemo as E}from"react";import{useGetEntityRefs as s}from"./useGetEntityRefs.esm.js";const A=(t=500,e=!0,n=[])=>{const{data:y,isLoading:a}=s({kind:["Component"]},t,e&&!n.includes("Component")),o=y?.items.map(i=>m(i)),{data:g,isLoading:d}=s({kind:["System"]},t,e&&!n.includes("System")),r=g?.items.map(i=>m(i)),{data:L,isLoading:p}=s({kind:["Resource"]},t,e&&!n.includes("Resource")),u=L?.items.map(i=>m(i)),{data:R,isLoading:f}=s({kind:["API"]},t,e&&!n.includes("API")),c=R?.items.map(i=>m(i)),l=E(()=>k([...o??[],...r??[],...u??[],...c??[]]),[c,o,u,r]);return{allLoading:a&&d&&p&&f,anyLoading:a||d||p||f,entityRefs:l}};export{A as useGetLimitedEntityRefs};
|
|
2
2
|
//# sourceMappingURL=useGetLimitedEntityRefs.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{isUserEntity as o,isGroupEntity as a,stringifyEntityRef as p}from"@backstage/catalog-model";import{isEmpty as n}from"lodash";import{useMemo as f}from"react";import{useEntitiesByRefs as c}from"./useEntitiesByRefs.esm.js";const d=s=>{const{data:i,isLoading:r}=c({entityRefs:s,fields:["kind","metadata.name","metadata.namespace","spec.profile.picture"]}),m=f(()=>n(i?.items)?{}:i?.items.reduce((e,t)=>(t&&(o(t)||a(t))&&(e[p(t)]=t?.spec?.profile?.picture),e),{}),[i?.items]);return{isLoading:r,profileImageMap:m}};export{d as useProfileImages};
|
|
2
|
+
//# sourceMappingURL=useProfileImages.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringifyEntityRef as s}from"@backstage/catalog-model";import{useApi as m}from"@backstage/core-plugin-api";import{useQuery as f}from"@tanstack/react-query";import{soundcheckApiRef as n}from"../../api.esm.js";import{QueryKeys as u}from"../graphqlKeys.esm.js";function c(
|
|
1
|
+
import{stringifyEntityRef as s}from"@backstage/catalog-model";import{useApi as m}from"@backstage/core-plugin-api";import{useQuery as f}from"@tanstack/react-query";import{soundcheckApiRef as n}from"../../api.esm.js";import{QueryKeys as u}from"../graphqlKeys.esm.js";function c(o,e,r){const t=m(n),i=s(o);return f([u.CheckDetails,i,e,r],async()=>t.getCheckResultDetails(i,e,r),{enabled:!!e&&!!r})}export{c as useCheckDetails};
|
|
2
2
|
//# sourceMappingURL=useCheckDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function s(r){const e=t(o);return i([n.TrackEntities,r],async()=>e.getTrackEntities(r),
|
|
1
|
+
import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function s(r){const e=t(o);return i({queryKey:[n.TrackEntities,r],queryFn:async()=>e.getTrackEntities(r),refetchOnWindowFocus:!1})}export{s as useTrackEntities};
|
|
2
2
|
//# sourceMappingURL=useTrackEntities.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as I,parseEntityRef as b}from"@backstage/catalog-model";import{useApi as G,configApiRef as M}from"@backstage/core-plugin-api";import{combineEntityFilterQueries as N,getGroupFilterFromConfig as j}from"@spotify/backstage-plugin-soundcheck-common";import l from"lodash/startCase";import{useMemo as w,useCallback as B}from"react";import{useSearchParams as Q}from"react-router-dom";import{CheckState as r}from"../../components/CheckPage/utils.esm.js";import{useGetEntityFacets as f}from"../catalog/useGetEntityFacets.esm.js";import{useGetEntityRefs as _}from"../catalog/useGetEntityRefs.esm.js";function x({entityFilterQuery:m,hasStatusFilters:E=!1,hasCertificationStatusFilters:d=!1}){const R=G(M),[o,u]=Q(),A=N({kind:["group"]},j(R)),{data:y}=_(A),h=w(()=>y?.items.map(e=>({label:e.metadata.title??e.metadata.name,value:I(e)}))??[],[y]),{data:F}=f("spec.lifecycle",m),L=F?.map(e=>({label:e,value:e}))??[],{data:$}=f("spec.type",m),k=$?.map(e=>({label:e,value:e}))??[],{data:C}=f("relations.partOf",m),g=C?.map(e=>({label:b(e).name,value:e}))??[],O=[r.PASSED,r.FAILED,r.WARNING,r.EXEMPT,r.NOT_APPLICABLE,r.ERROR].map(e=>({label:l(e.toLowerCase()),value:e})),P=[r.PASSED,r.FAILED,r.NOT_REPORTED].map(e=>{const t=l(e.toLowerCase());return{label:t,value:t}}),v=(e,t)=>{const s=["owners","systems"];if(e==="certificationStatuses")return`statuses: ${l(t.toLowerCase())}`;const a=e.replace(/s$/,"");return s.includes(e)?`${a}: ${b(t).name}`:e==="states"?`${a}: ${l(t.toLowerCase())}`:`${a}: ${t}`},c=w(()=>{const e=["numberOfDays","search"],t={owners:new Set,lifecycles:new Set,types:new Set,systems:new Set,states:new Set,certificationStatuses:new Set};for(const[s,a]of o.entries())if(!e.includes(s)){const i=a.split(",").map(n=>n.trim()).filter(Boolean);t[s]=new Set(i)}return t},[o]),S=B((e,t)=>{const s=new URLSearchParams(o),a=Array.from(t);a.length>0?s.set(e,a.join(",")):s.delete(e),u(s,{replace:!0})},[o,u]),T=Object.entries(c).flatMap(([e,t])=>Array.from(t).map(s=>({label:v(e,s),value:`${e}:${s}`}))),D=e=>{e.forEach(t=>{if(typeof t!="string")return;const[s,a]=t.split(/:(.+)/),i=c[s];if(!i)return;const n=new Set(i);n.delete(a),S(s,n)})},p=[{key:"owners",label:"Owner",options:h},{key:"lifecycles",label:"Lifecycle",options:L},{key:"types",label:"Type",options:k},{key:"systems",label:"System",options:g}];return E&&p.push({key:"states",label:"States",options:O}),d&&p.push({key:"certificationStatuses",label:"Status",options:P}),{filters:p,selected:c,setSelected:S,selectedTags:T,onRemoveTag:D}}export{x as useFilters};
|
|
2
|
+
//# sourceMappingURL=useFilters.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t=(e=>(e.GetTrack="soundcheck/track",e.GetAllTracks="soundcheck/tracks",e.GetTracksApplicableEntityCount="soundcheck/tracks/applicableEntities",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetEntityRefs="soundcheck/catalog/entityRefs",e.ExecutableChecks="soundcheck/executableChecks",e.GetCampaigns="soundcheck/campaigns",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/track/entities",e.CheckEntities="soundcheck/check/entities",e.CertificationStatus="soundcheck/certificationStatus",e.CertificationStatuses="soundcheck/certificationStatuses",e.MultipleTrackStatuses="soundcheck/multipleTrackStatuses",e.CertificationStatusHistory="soundcheck/certificationStatusHistory",e.CertificationStatusHistories="soundcheck/certificationStatusHistories",e.CheckStatus="soundcheck/checkStatus",e.CheckStatuses="soundcheck/checkStatuses",e.SavedViews="soundcheck/savedViews",e.CheckStatusHistory="soundcheck/checkStatusHistory",e.CheckStatusHistories="soundcheck/checkStatusHistories",e.CheckStatusHistoriesMultiFilter="soundcheck/checkStatusHistoriesMultiFilter",e.TrackStatusHistory="soundcheck/trackStatusHistory",e.TrackStatusHistories="soundcheck/trackStatusHistories",e.Check="soundcheck/check",e.CheckDetails="soundcheck/checkDetails",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e.GetTrackRelatedGroups="soundcheck/track/getTrackRelatedGroups",e.CheckTemplates="soundcheck/checkTemplates",e.GetFacetsForOwner="soundcheck/facets-for-owner",e.GetTrackOverviewForOwner="soundcheck/track-overview-for-owner",e.GetExemption="soundcheck/getExemption",e.GetExemptions="soundcheck/getExemptions",e.GetExemptCheckIds="soundcheck/getExemptCheckIds",e))(t||{}),s=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.ExecuteCheck="soundcheck/executeCheck",e.ImportChecks="soundcheck/importChecks",e.SetResult="soundcheck/setResult",e.CreateExemption="soundcheck/createExemption",e.UpdateExemption="soundcheck/updateExemption",e.DeleteExemption="soundcheck/deleteExemption",e.SaveView="soundcheck/saveView",e.DeleteTrack="soundcheck/deleteTrack",e.CreateTrack="soundcheck/createTrack",e.UpdateTrack="soundcheck/updateTrack",e.ImportTracks="soundcheck/importTracks",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.DeleteCollectorConfig="soundcheck/deleteCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e.SendCampaignNotification="soundcheck/sendCampaignNotification",e))(s||{});export{s as MutationKeys,t as QueryKeys};
|
|
1
|
+
var t=(e=>(e.GetTrack="soundcheck/track",e.GetAllTracks="soundcheck/tracks",e.GetTracksApplicableEntityCount="soundcheck/tracks/applicableEntities",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetEntityRefs="soundcheck/catalog/entityRefs",e.ExecutableChecks="soundcheck/executableChecks",e.GetCampaigns="soundcheck/campaigns",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/track/entities",e.CheckEntities="soundcheck/check/entities",e.CertificationStatus="soundcheck/certificationStatus",e.CertificationStatuses="soundcheck/certificationStatuses",e.MultipleTrackStatuses="soundcheck/multipleTrackStatuses",e.CertificationStatusHistory="soundcheck/certificationStatusHistory",e.CertificationStatusHistories="soundcheck/certificationStatusHistories",e.CheckStatus="soundcheck/checkStatus",e.CheckStatuses="soundcheck/checkStatuses",e.SavedViews="soundcheck/savedViews",e.CheckStatusHistory="soundcheck/checkStatusHistory",e.CheckStatusHistories="soundcheck/checkStatusHistories",e.CheckStatusHistoriesMultiFilter="soundcheck/checkStatusHistoriesMultiFilter",e.TrackStatusHistory="soundcheck/trackStatusHistory",e.TrackStatusHistories="soundcheck/trackStatusHistories",e.Check="soundcheck/check",e.CheckDetails="soundcheck/checkDetails",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e.GetTrackRelatedGroups="soundcheck/track/getTrackRelatedGroups",e.CheckTemplates="soundcheck/checkTemplates",e.GetFacetsForOwner="soundcheck/facets-for-owner",e.GetTrackOverviewForOwner="soundcheck/track-overview-for-owner",e.GetExemption="soundcheck/getExemption",e.GetExemptions="soundcheck/getExemptions",e.GetExemptCheckIds="soundcheck/getExemptCheckIds",e))(t||{}),s=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.ExecuteCheck="soundcheck/executeCheck",e.ImportChecks="soundcheck/importChecks",e.SetResult="soundcheck/setResult",e.CreateExemption="soundcheck/createExemption",e.UpdateExemption="soundcheck/updateExemption",e.DeleteExemption="soundcheck/deleteExemption",e.SaveView="soundcheck/saveView",e.DeleteTrack="soundcheck/deleteTrack",e.CreateTrack="soundcheck/createTrack",e.UpdateTrack="soundcheck/updateTrack",e.ImportTracks="soundcheck/importTracks",e.RecertifyTrack="soundcheck/recertifyTrack",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.DeleteCollectorConfig="soundcheck/deleteCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e.SendCampaignNotification="soundcheck/sendCampaignNotification",e))(s||{});export{s as MutationKeys,t as QueryKeys};
|
|
2
2
|
//# sourceMappingURL=graphqlKeys.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringifyEntityRef as m}from"@backstage/catalog-model";import{useApi as t,configApiRef as n}from"@backstage/core-plugin-api";import{catalogApiRef as s}from"@backstage/plugin-catalog-react";import{getGroupFilterFromConfig as
|
|
1
|
+
import{stringifyEntityRef as m}from"@backstage/catalog-model";import{useApi as t,configApiRef as n}from"@backstage/core-plugin-api";import{catalogApiRef as s}from"@backstage/plugin-catalog-react";import{getGroupFilterFromConfig as c,combineEntityFilterQueries as f}from"@spotify/backstage-plugin-soundcheck-common";import{useQuery as d}from"@tanstack/react-query";function l(){const i=t(s),a=t(n);return d(["soundcheck/all-groups"],async()=>{const r=c(a),o=f({kind:"Group"},r),{items:p}=await i.getEntities({filter:o,fields:["spec.profile.displayName","metadata.title","metadata.name","metadata.description","metadata.namespace","kind","spec.type"]});return p.filter(e=>e?.kind==="Group").map(e=>({name:e.spec?.profile?.displayName??e.metadata.title??e.metadata.name,description:e.metadata.description,ref:m(e),type:e.spec?.type}))},{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{l as useAllGroups};
|
|
2
2
|
//# sourceMappingURL=useAllGroups.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useMemo as
|
|
1
|
+
import{useMemo as c}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../graphqlKeys.esm.js";import{useAllGroups as d}from"./useAllGroups.esm.js";import{useUsersGroupClaims as f}from"./useUsersGroupClaims.esm.js";import"../useSoundcheckAlert.esm.js";import"../useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";const y=()=>{const{data:i,isLoading:m,isError:n}=f(),{data:e,isLoading:a,isError:u}=d();return{options:c(()=>{const o=new Map;return i&&i.forEach(({name:t,description:s,ref:r,type:p})=>{o.set(`${r}`,{name:t,description:s,ref:r,type:p,key:"My Groups"})}),e&&e.forEach(({name:t,description:s,ref:r,type:p})=>{o.has(`${r}`)||o.set(`${r}`,{name:t,description:s,ref:r,type:p,key:"All Groups"})}),[...o.values()]},[i,e]),isLoading:m||a,isError:n||u}};export{y as useGroupOptions};
|
|
2
2
|
//# sourceMappingURL=useGroupOptions.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringifyEntityRef as n}from"@backstage/catalog-model";import{useApi as t,identityApiRef as p,configApiRef as
|
|
1
|
+
import{stringifyEntityRef as n}from"@backstage/catalog-model";import{useApi as t,identityApiRef as p,configApiRef as m}from"@backstage/core-plugin-api";import{catalogApiRef as f}from"@backstage/plugin-catalog-react";import{getGroupFilterFromConfig as c}from"@spotify/backstage-plugin-soundcheck-common";import{useQuery as u}from"@tanstack/react-query";function y(){const i=t(p),r=t(f),o=t(m);return u(["soundcheck/user-groups-claims"],async()=>{const{ownershipEntityRefs:s}=await i.getBackstageIdentity(),a=c(o);return(await r.getEntitiesByRefs({entityRefs:s,filter:a})).items.filter(e=>e?.kind==="Group").map(e=>({name:e.spec?.profile?.displayName??e.metadata.title??e.metadata.name,description:e.metadata.description,ref:n(e),type:e.spec?.type}))})}export{y as useUsersGroupClaims};
|
|
2
2
|
//# sourceMappingURL=useUsersGroupClaims.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useApi as T}from"@backstage/core-plugin-api";import{useQueryClient as A,useQueries as L}from"@tanstack/react-query";import{useMemo as c,useState as S,useEffect as k}from"react";import{soundcheckApiRef as q}from"../../api.esm.js";const I=({trackIds:d,groupRef:o,batchSize:n=4,skip:u})=>{const h=T(q),f=A(),s=c(()=>[...d].sort(),[d]),g=c(()=>{const r=[];for(let a=0;a<s.length;a+=n)r.push(s.slice(a,a+n));return r},[s,n]),y=c(()=>g.map((r,a)=>({queryKey:["hierarchicalTrackStatuses",r,o,a],queryFn:async()=>await h.getHierarchicalTrackStatuses(r,o),enabled:!u&&r.length>0,staleTime:1e3*60*60,cacheTime:1e3*60*60*4,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,refetchInterval:0})),[g,o,u,h]),t=L({queries:y}),[i,p]=S({loadedTracks:0,totalTracks:s.length,isLoading:!1,error:null}),m=c(()=>t.map(r=>[r.isLoading,r.error,Array.isArray(r.data)?r.data.length:0].join(":")).join("|"),[t]);return k(()=>{let r=0,a=!1,l=null;for(const e of t)e.isLoading&&(a=!0),e.error&&(l=e.error),e.data&&Array.isArray(e.data)&&(r+=e.data.length);p(e=>e.loadedTracks===r&&e.totalTracks===s.length&&e.isLoading===a&&e.error===l?e:{loadedTracks:r,totalTracks:s.length,isLoading:a,error:l})},[t,m,s.length]),k(()=>{for(const r of t)if(r.data&&Array.isArray(r.data))for(const a of r.data)f.setQueryData(["hierarchicalTrackStatus",a.trackId,o],a)},[t,f,o]),{data:c(()=>{if(t.length===0)return[];const r=[];for(const a of t)a.data&&Array.isArray(a.data)&&r.push(...a.data);return r},[t]),isLoading:i.isLoading,progress:i,error:i.error}};export{I as useBatchedHierarchicalTrackStatuses};
|
|
1
|
+
import{useApi as T}from"@backstage/core-plugin-api";import{useQueryClient as A,useQueries as L}from"@tanstack/react-query";import{useMemo as c,useState as S,useEffect as k}from"react";import{soundcheckApiRef as q}from"../../api.esm.js";const I=({trackIds:d,groupRef:o,batchSize:n=4,skip:u})=>{const h=T(q),f=A(),s=c(()=>[...d].sort(),[d]),g=c(()=>{const r=[];for(let a=0;a<s.length;a+=n)r.push(s.slice(a,a+n));return r},[s,n]),y=c(()=>g.map((r,a)=>({queryKey:["hierarchicalTrackStatuses",r,o,a],queryFn:async()=>await h.getHierarchicalTrackStatuses(r,o),enabled:!u&&r.length>0,staleTime:1e3*60*60,cacheTime:1e3*60*60*4,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,refetchInterval:0})),[g,o,u,h]),t=L({queries:y}),[i,p]=S({loadedTracks:0,totalTracks:s.length,isLoading:!1,error:null}),m=c(()=>t.map(r=>[r.isLoading,r.error,Array.isArray(r.data)?r.data.length:0].join(":")).join("|"),[t]);return k(()=>{let r=0,a=!1,l=null;for(const e of t)e.isLoading&&(a=!0),e.error&&(l=e.error),e.data&&Array.isArray(e.data)&&(r+=e.data.length);p(e=>e.loadedTracks===r&&e.totalTracks===s.length&&e.isLoading===a&&e.error===l?e:{loadedTracks:r,totalTracks:s.length,isLoading:a,error:l})},[t,m,s.length]),k(()=>{for(const r of t)if(r.data&&Array.isArray(r.data))for(const a of r.data)f.setQueryData(["hierarchicalTrackStatus",a.trackId,o],a)},[t,f,o]),{data:c(()=>{if(t.length===0)return[];const r=[];for(const a of t)a.data&&Array.isArray(a.data)&&r.push(...a.data);return r},[t])??[],isLoading:i.isLoading,progress:i,error:i.error}};export{I as useBatchedHierarchicalTrackStatuses};
|
|
2
2
|
//# sourceMappingURL=useBatchedHierarchicalTrackStatuses.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useApi as n}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";const o=(r,e)=>{const t=n(c);return i({queryKey:["groupHierarchy",r,e?.ownedEntitiesFilter,!!e?.includeParent],queryFn:async()=>(await t.getGroupHierarchy(r,e?.ownedEntitiesFilter,e?.includeParent)).hierarchy,staleTime:1e3*60*60,cacheTime:1e3*60*60*4,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,refetchInterval:!1})};export{o as useGroupHierarchy};
|
|
1
|
+
import{useApi as n}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";const o=(r,e)=>{const t=n(c);return i({queryKey:["groupHierarchy",r,e?.ownedEntitiesFilter,!!e?.includeParent],queryFn:async()=>(await t.getGroupHierarchy(r,e?.ownedEntitiesFilter,e?.includeParent)).hierarchy,staleTime:1e3*60*60,cacheTime:1e3*60*60*4,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,refetchInterval:!1,enabled:!!r&&r.trim()!==""&&e?.enabled!==!1})};export{o as useGroupHierarchy};
|
|
2
2
|
//# sourceMappingURL=useGroupHierarchy.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as m,useMutation as f}from"@tanstack/react-query";import{soundcheckApiRef as y}from"../../api.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react/jsx-runtime";import"react";import{useLoggedInUser as p}from"../../contexts/UserProvider.esm.js";import{MutationKeys as l,QueryKeys as i}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as d}from"../useSoundcheckAlert.esm.js";const k="Error Recertifying Track";function T(){const o=u(y),s=m(),{showAlert:a}=d(),{userEntityRef:n}=p(),c=async r=>{const{trackId:e,numberOfDays:t}=r;return await o.recertifyTrack(e,t,n)};return f([l.RecertifyTrack],c,{onSuccess:()=>{const r=[i.CertificationStatus,i.CertificationStatusHistory,i.GetOverallTrackPassRateTrends,i.GetIndividualTrackPassRateTrends];return Promise.all(r.map(e=>s.invalidateQueries({queryKey:[e]})))},onError:(r,e)=>{let t=`Failed to recertify track ${e}`;r instanceof Error&&(t=r.message),a({severity:"error",title:k,message:t})}})}export{T as useRecertifyTrack};
|
|
2
|
+
//# sourceMappingURL=useRecertifyTrack.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as G}from"@backstage/catalog-model";import{useMemo as
|
|
1
|
+
import{parseEntityRef as G}from"@backstage/catalog-model";import{useMemo as i}from"react";import{useGetCampaigns as T}from"../campaigns/useGetCampaigns.esm.js";import{useGetAllTracks as y}from"./useGetAllTracks.esm.js";import{useGetTracksApplicableEntityCount as E}from"./useGetTracksApplicableEntityCount.esm.js";function v(r){if(!r||r.trim()==="")return!1;try{return G(r).kind.toLowerCase()==="group"}catch{return!1}}function A(r,b={},h){const d=v(r)&&(h?.enabled??!0),{data:s,isLoading:p,error:c}=y(b,{enabled:d}),{data:o,isLoading:l,error:m}=T({},d),u=i(()=>o?.edges?new Set(o.edges.filter(({node:e})=>e.archived).map(({node:e})=>e.track.id)):new Set,[o]),a=i(()=>s?.edges?s.edges.map(({node:e})=>e).filter(e=>!u.has(e.id)).filter(e=>!e.draft).sort((e,n)=>e.id.localeCompare(n.id)):[],[s,u]),{data:t,isLoading:g,error:f}=E(r,{ids:a.map(e=>e.id)},{enabled:d&&a.length>0&&!p&&!l}),k=i(()=>t?new Map(t.map(e=>[e.id,e.applicableEntityCount])):new Map,[t]),C=i(()=>t?a.filter(e=>{const n=k.get(e.id);return n!==void 0&&n>0}):[],[a,k,t]),L=i(()=>p||l||g||!!r&&!t&&a.length>0,[p,l,g,r,t,a.length]),w=i(()=>c||m||f,[c,m,f]);return{tracks:C??[],campaigns:o,counts:t,isLoading:L,error:w,activeTrackCount:a?.length}}export{A as useTracksApplicableToGroup};
|
|
2
2
|
//# sourceMappingURL=useTracksApplicableToGroup.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as n,jsx as o}from"react/jsx-runtime";import{makeStyles as v,Modal as k,Box as B,Typography as s,Button as c}from"@material-ui/core";import{createContext as N,useState as m,useRef as M,useCallback as l,useContext as w}from"react";const T=v(e=>({modalContent:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.paper},modalButtons:{display:"flex",justifyContent:"flex-end","& button":{width:"40%",maxWidth:"185px"},padding:e.spacing(2,3),borderTop:`1px solid ${e.palette.divider}`},modalMessage:{margin:"15px 0 35px"},modalText:{padding:e.spacing(2,3,0,3)},cancelButton:{color:e.palette.text.primary}})),p=N({}),j=e=>{const a=T(),[u,i]=m(!1),[t,
|
|
1
|
+
import{jsxs as n,jsx as o}from"react/jsx-runtime";import{makeStyles as v,Modal as k,Box as B,Typography as s,Button as c}from"@material-ui/core";import{createContext as N,useState as m,useRef as M,useCallback as l,useContext as w}from"react";const T=v(e=>({modalContent:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.paper,maxWidth:"650px"},modalButtons:{display:"flex",justifyContent:"flex-end","& button":{width:"40%",maxWidth:"185px"},padding:e.spacing(2,3),borderTop:`1px solid ${e.palette.divider}`},modalMessage:{margin:"15px 0 35px"},modalText:{padding:e.spacing(2,3,0,3)},cancelButton:{color:e.palette.text.primary}})),p=N({}),j=e=>{const a=T(),[u,i]=m(!1),[t,x]=m(),r=M(),f=l(({title:C,message:b,error:g})=>(x({title:C,message:b,error:g}),i(!0),new Promise(y=>{r.current=y})),[]),h=l(()=>{r.current&&r.current(!0),i(!1)},[]),d=l(()=>{r.current&&r.current(!1),i(!1)},[]);return n(p.Provider,{value:{showModal:f},children:[e.children,t&&o(k,{open:u,onClose:d,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description",children:n(B,{className:a.modalContent,children:[n("div",{className:a.modalText,children:[o(s,{id:"confirmation-modal-title",variant:"h6",children:t.title}),o(s,{className:a.modalMessage,id:"confirmation-modal-description",variant:"body1",children:t.message})]}),n("div",{className:a.modalButtons,children:[!t.error&&o(c,{onClick:d,variant:"text","aria-label":"cancel",className:a.cancelButton,children:"Cancel"}),o(c,{color:"primary",onClick:h,variant:"contained","aria-label":"confirm",children:t.error?"Ok":"Confirm"})]})]})})]})},S=()=>w(p);export{j as default,S as useConfirmationModal};
|
|
2
2
|
//# sourceMappingURL=useConfirmationModal.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as k,useAnalytics as b}from"@backstage/core-plugin-api";import{useRef as v,useEffect as y,useCallback as $}from"react";import{useLocation as A}from"react-router-dom";import{soundcheckApiRef as E}from"../api.esm.js";import{useFeatureFlag as L}from"./useFeatureFlag.esm.js";function T(g={}){const t=L("enable-load-time-reporting"),{enabled:a=!0,routeName:n,additionalAttributes:m}=g,r=A(),e=v(""),p=k(E),f=b();return y(()=>{if(!a||!t)return;const c=n||r.pathname;return e.current=`loading-started-for-${c}`,performance.mark(e.current),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&(performance.clearMarks(e.current),performance.clearMeasures(`time-since-${e.current}`))}),()=>{e.current&&(performance.clearMarks(e.current),performance.clearMeasures(`time-since-${e.current}`))}},[a,t,n,m,r.pathname]),{reportContentLoaded:$(c=>{if(!a||!t||!e.current)return;const s=n||r.pathname;if(!e.current.includes(s)){performance.clearMarks(e.current),performance.clearMeasures(`time-since-${e.current}`);return}const o=`loading-ended-for-${r.pathname}`,i=`time-since-${e.current}`;try{performance.mark(o),performance.measure(i,e.current,o);const u=performance.getEntriesByName(i);if(u.length>0){const M=u[u.length-1],l=Math.round(M.duration),d=l/1e3;if(d>1e3*60*60){performance.clearMarks(o),performance.clearMeasures(i);return}const h={pathname:r.pathname,refresh:!!c?.lcp,...m,...c};p.recordLoadTime({metricType:"navigation",routeName:s,loadTimeMs:l,additionalAttributes:h}).catch(N=>{}),f.captureEvent("performance","navigation",{attributes:{metricType:"navigation",value:d,route:s,timestamp:Date.now().toString(),...h}})}}catch{}finally{performance.clearMarks(o),performance.clearMeasures(i)}},[a,t,n,m,r.pathname,p,f])}}export{T as useLoadTimeReporting};
|
|
2
|
+
//# sourceMappingURL=useLoadTimeReporting.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as g,useMemo as x}from"react";import{useSearchParams as M}from"react-router-dom";const z=({pageParam:p,defaultPageSize:l=10,items:r})=>{const[a,n]=M(),m=a.get(p),h=a.get("page"),s=m?parseInt(m,10):l,o=h?parseInt(h,10):1,c=(o-1)*s,i=g(e=>{const t=new URLSearchParams(a.toString());t.set("page",String(e)),n(t,{replace:!0})},[a,n]),P=g(e=>{const t=new URLSearchParams(a.toString());t.set(p,String(e)),t.set("page","1"),n(t,{replace:!0})},[p,a,n]),S=x(()=>r.length>s?r.slice(c,c+s):r,[r,c,s]),u=g(()=>{const e=Math.ceil(r.length/s),t=Math.min(o+1,e);i(t)},[o,r.length,s,i]),f=g(()=>{const e=Math.max(o-1,1);i(e)},[o,i]),w=g(()=>{const e=new URLSearchParams(a.toString());e.set("page","1"),n(e,{replace:!0})},[a,n]);return{paginationProps:{pageSize:s,rowCount:r.length,offset:c,onNextPage:u,onPreviousPage:f,onPageSizeChange:P},paginatedItems:S,reset:w}};export{z as usePagination};
|
|
2
|
+
//# sourceMappingURL=usePagination.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useMemo as a}from"react";const i=({items:t,searchTerm:o})=>a(()=>{let r=t;const s=o?.toLowerCase().trim()??"";return o&&o.length>1?r=t.filter(e=>e.name?e.name.toLowerCase().includes(s):e.id.toLowerCase().includes(s)):r=t.filter(e=>e.name?e.name.toLowerCase().startsWith(s):e.id.toLowerCase().startsWith(s)),r},[t,o]);export{i as useSearchName};
|
|
2
|
+
//# sourceMappingURL=useSearchName.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useEffect as B,useCallback as P}from"react";import{useSearchParams as h}from"react-router-dom";import u from"react-use/lib/useLocalStorage";const b=({localStoragePrefix:f,defaultSortBy:g,defaultDirection:p})=>{const[t,s]=h(),[a,n]=u(`${f}-sort-column`),[i,l]=u(`${f}-direction`),r=t.get("sortBy"),o=t.get("direction"),d=r||g,m=o||p||"desc";B(()=>{r&&r!==a&&n(r),o&&o!==i&&l(o);const e=new URLSearchParams(t.toString());let c=!1;!r&&a&&(e.set("sortBy",a),c=!0),!o&&i&&(e.set("direction",i),c=!0),c&&s(e,{replace:!0})},[a,i,t,n,l,s,o,r]);const y=P(e=>{const c=d===e&&m==="asc"?"desc":"asc",S=new URLSearchParams(t.toString());S.set("sortBy",e),S.set("direction",c),s(S,{replace:!0}),n(e),l(c)},[m,d,t,n,l,s]);return{orderBy:d,order:m,handleSort:y}};export{b as useSortTableLocalStorage};
|
|
2
|
+
//# sourceMappingURL=useSortTableLocalStorage.esm.js.map
|
package/dist/routes.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRouteRef as a,createSubRouteRef as
|
|
1
|
+
import{createRouteRef as a,createSubRouteRef as e}from"@backstage/core-plugin-api";const c=a({id:"soundcheck-entity"}),i=a({id:"soundcheck-group"}),r=e({id:"soundcheck-entity-certification-track-redirect",parent:c,path:"/tracks/:trackId"}),n=e({id:"soundcheck-entity-certification",parent:c,path:"/tracks/:trackId/checks/:checkId"}),s=e({id:"soundcheck-entity-playlist-redirect",parent:c,path:"/playlists/:playlistId"}),d=e({id:"soundcheck-entity-playlist-track-redirect",parent:c,path:"/playlists/:playlistId/tracks/:trackId"}),h=e({id:"soundcheck-entity-playlist-track-redirect",parent:c,path:"/playlists/:playlistId/tracks/:trackId/checks/:checkId"}),t=a({id:"soundcheck"}),o=e({id:"soundcheck-quickstart",parent:t,path:"/quickstart"}),k=e({id:"soundcheck-checks",parent:t,path:"/checks"}),p=e({id:"soundcheck-check-details",parent:t,path:"/checks/:checkId"}),u=e({id:"soundcheck-check-edit",parent:t,path:"/checks/:checkId/edit"}),R=e({id:"soundcheck-check-create",parent:t,path:"/checks/create"}),g=e({id:"soundcheck-check-templates",parent:t,path:"/checks/templates"}),l=e({id:"soundcheck-tracks",parent:t,path:"/tracks"}),f=e({id:"soundcheck-track-details",parent:t,path:"/tracks/:trackId"}),m=e({id:"soundcheck-track-edit",parent:t,path:"/tracks/:trackId/edit"}),I=e({id:"soundcheck-track-create",parent:t,path:"/tracks/create"}),y=e({id:"soundcheck-track-check-details",parent:t,path:"/tracks/:trackId/checks/:checkId"}),v=e({id:"soundcheck-campaigns",parent:t,path:"/campaigns"}),P=e({id:"soundcheck-campaign-details",parent:t,path:"/campaigns/:campaignId"}),x=e({id:"soundcheck-campaign-edit",parent:t,path:"/campaigns/:campaignId/edit"}),w=e({id:"soundcheck-campaign-create",parent:t,path:"/campaigns/create"}),E=e({id:"soundcheck-tech-health",parent:t,path:"/tech-health"}),C=e({id:"soundcheck-tech-insights",parent:t,path:"/tech-insights"}),D=e({id:"soundcheck-integrations-page",parent:t,path:"/integrations"}),T=e({id:"soundcheck-integration-details",parent:t,path:"/integrations/:integrationId"}),q=e({id:"soundcheck-integration-edit",parent:t,path:"/integrations/:integrationId/edit"}),O=e({id:"soundcheck-tech-insights-track",parent:t,path:"/tech-insights/track"}),b=e({id:"soundcheck-track-overview",parent:t,path:"/tracks/:trackId/overview"}),H=e({id:"soundcheck-track-explorer",parent:t,path:"/tracks/:trackId/explorer"}),S=e({id:"soundcheck-campaign-overview",parent:t,path:"/campaigns/:campaignId/overview"}),j=e({id:"soundcheck-campaign-explorer",parent:t,path:"/campaigns/:campaignId/explorer"});export{w as campaignCreateRouteRef,P as campaignDetailsRouteRef,x as campaignEditRouteRef,j as campaignExplorerRouteRef,S as campaignOverviewRouteRef,v as campaignsPageRouteRef,s as certificationPlaylistRouteRef,h as certificationPlaylistTrackCheckRouteRef,d as certificationPlaylistTrackRouteRef,n as certificationRouteRef,r as certificationTrackRouteRef,R as checkCreateRouteRef,p as checkDetailsRouteRef,u as checkEditRouteRef,g as checkTemplatesRouteRef,k as checksPageRouteRef,c as entityRootRouteRef,i as groupRootRouteRef,T as integrationDetailsRouteRef,q as integrationEditRouteRef,D as integrationsPageRouteRef,o as quickstartRouteRef,t as rootRouteRef,E as techHealthRouteRef,C as techInsightsPageRouteRef,O as techInsightsTrackRouteRef,y as trackCheckDetailsRouteRef,I as trackCreateRouteRef,f as trackDetailsRouteRef,m as trackEditRouteRef,H as trackExplorerRouteRef,b as trackOverviewRouteRef,l as tracksPageRouteRef};
|
|
2
2
|
//# sourceMappingURL=routes.esm.js.map
|
package/dist/utils/charts.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
import{sum as v}from"lodash";const g="check-pass-rates-summary.csv",y="track-pass-rates-summary.csv",C="entity-pass-rates-summary.csv",R="team-pass-rates-summary.csv",d="check-pass-rates.csv",f="track-pass-rates.csv",h="entity-pass-rates.csv",k="team-pass-rates.csv",F="campaign-track-pass-rates.csv",P=(a,e=2)=>{if(a.length===0)return[];const o=a.filter(s=>s>0),r=v(o);if(r===0)return a.map(()=>0);const t=a.map(s=>s>0?s/r*100:0),n=t.filter(s=>s>0&&s<e).length,m=n*e;if(n===0||m>=100)return t;const p=100-m,c=t.filter(s=>s>=e).reduce((s,l)=>s+l,0);return t.map(s=>s===0?0:s<e?e:c>0?s/c*p:s)},i=["Passed","Failed","Warning","Exempt","Error","Not Reported"];function u(a){return a==="Not Reported"?"notReported":a.toLowerCase()}function S(){return i.map(a=>u(a))}function b(a){return{passed:"rgb(76, 175, 80)",failed:"rgb(244, 67, 54)",warning:"rgb(255, 152, 0)",exempt:"rgb(33, 150, 243)",error:"rgb(246, 104, 94)",notReported:"rgb(97, 97, 97)"}[a]}export{P as calculateAdjustedBarWidths,F as campaignTrackPassRatesCsvFilename,i as chartStatuses,d as checkPassRatesCsvFilename,g as checkPassRatesSummaryCsvFilename,h as entityPassRatesCsvFilename,C as entityPassRatesSummaryCsvFilename,b as getChartStatusColor,u as getChartStatusKey,S as getChartStatusKeys,k as groupPassRatesCsvFilename,R as groupPassRatesSummaryCsvFilename,f as trackPassRatesCsvFilename,y as trackPassRatesSummaryCsvFilename};
|
|
2
2
|
//# sourceMappingURL=charts.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as t}from"@material-ui/core/styles";const i=t(a=>({root:{overflow:"hidden",display:"flex"},card:{padding:a.spacing(3),display:"flex",gap:a.spacing(2.5)},buttonChoices:{margin:"20px 0","& button":{marginRight:"10px"}},backButton:{color:a.palette.text.primary},filters:{display:"flex",gap:a.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"},stepper:{width:"100%"},formWrapper:{paddingTop:a.spacing(2),maxWidth:1920},formWrapperBUI:{padding:"0 var(--bui-space-4)",maxWidth:1920}}));export{i as formStyles};
|
|
2
2
|
//# sourceMappingURL=formStyles.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const o=Intl.NumberFormat("en",{notation:"compact"}),
|
|
1
|
+
const o=Intl.NumberFormat("en",{notation:"compact"}),r=t=>o.format(t);function e(t,n){return n<=0?0:Math.round((t??0)/n*100)}export{r as compactNumberFormatter,e as getPercentage};
|
|
2
2
|
//# sourceMappingURL=formatters.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const k=e=>{const{lifecycles:t,owners:s,types:c,systems:i}=e,n=t?.length?{"spec.lifecycle":t}:void 0,o=s?.length?{"relations.ownedBy":s}:void 0,l=c?.length?{"spec.type":c}:void 0,r=i?.length?{"relations.partOf":i}:void 0;if(n||o||l||r)return{...n,...o,...l,...r}},g=e=>e<1e4?"<10k":e<1e5?"[10k-100k)":e<1e6?"[100k-1M)":">=1M",p=e=>e<5?"<5":e<10?"[5-10)":e<50?"[10-50)":">=50",y=e=>e<10?"<10":e<50?"[10-50)":e<100?"[50-100)":">=100";export{y as getChecksBucket,g as getEntitiesBucket,p as getTracksBucket,k as toFilter};
|
|
2
2
|
//# sourceMappingURL=helpers.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
class
|
|
1
|
+
class n{#n;#e;#i;#s;#t=null;#r;constructor(t){this.#n=t.analytics,this.#e=t.routeName,this.#i=t.additionalAttributes||{},this.#s=t.soundcheckApi,this.#r=0}getLCPValue(){return this.#r}startMeasuring(){if("PerformanceObserver"in window){try{this.#t=new PerformanceObserver(t=>{const e=t.getEntries(),i=e[e.length-1];i&&i.renderTime!==void 0&&this.#o({value:i.renderTime,entry:i})}),this.#t.observe({type:"largest-contentful-paint"})}catch{}document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&this.stopMeasuring()})}}#o(t){this.#r=t.value;const e=t.value/1e3,i=this.#c(e);this.#s.recordLoadTime({metricType:"lcp",routeName:this.#e||"unknown",loadTimeMs:t.value,additionalAttributes:this.#i}).catch(o=>{}),this.#a(e,i)}#a(t,e){this.#n.captureEvent("performance","lcp",{attributes:{metricType:"lcp",value:t,rating:e,route:this.#e||"unknown",timestamp:Date.now().toString(),...this.#i}})}#c(t){return t<=2.5?"good":t<=4?"needs-improvement":"poor"}stopMeasuring(){this.#t&&(this.#t.disconnect(),this.#t=null)}}function s(r){return new n(r)}export{n as LCPReporter,s as createLCPReporter};
|
|
2
2
|
//# sourceMappingURL=lcpReporting.esm.js.map
|
package/dist/utils/time.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const i=1,
|
|
1
|
+
const i=1,n=31536e3,a=t=>{if(t){if(isNaN(t))return"Invalid value";if(t<1)return"Minimum of 1";if(t>31536e3)return"Maximum exceeded"}else return"Enter a value";return!0};function u(t){if(!t)return"";const r=!isNaN(t)&&!isNaN(parseFloat(t));let e;return r&&String(t).length>=10?e=new Date(Number(t)):e=new Date(t),isNaN(e.getTime())?String(t):e.toLocaleDateString()}export{n as MAX_TIME_UNIT_VALUE,i as MIN_TIME_UNIT_VALUE,u as formatTimestamp,a as validateTimeUnitValue};
|
|
2
2
|
//# sourceMappingURL=time.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spotify/backstage-plugin-soundcheck",
|
|
3
3
|
"description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
|
|
4
|
-
"version": "0.19.
|
|
4
|
+
"version": "0.19.4",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://backstage.spotify.com",
|
|
7
7
|
"main": "./dist/index.esm.js",
|
|
@@ -58,17 +58,18 @@
|
|
|
58
58
|
"prepare": "yarn generate"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@backstage/catalog-client": "^1.
|
|
61
|
+
"@backstage/catalog-client": "^1.12.0",
|
|
62
62
|
"@backstage/catalog-model": "^1.7.5",
|
|
63
|
-
"@backstage/config": "^1.3.
|
|
64
|
-
"@backstage/core-compat-api": "^0.5.
|
|
65
|
-
"@backstage/core-components": "^0.
|
|
66
|
-
"@backstage/core-plugin-api": "^1.
|
|
67
|
-
"@backstage/frontend-plugin-api": "^0.
|
|
68
|
-
"@backstage/plugin-catalog-react": "^1.
|
|
69
|
-
"@backstage/plugin-permission-react": "^0.4.
|
|
70
|
-
"@backstage/plugin-scaffolder-react": "^1.19.
|
|
71
|
-
"@backstage/types": "^1.2.
|
|
63
|
+
"@backstage/config": "^1.3.5",
|
|
64
|
+
"@backstage/core-compat-api": "^0.5.3",
|
|
65
|
+
"@backstage/core-components": "^0.18.2",
|
|
66
|
+
"@backstage/core-plugin-api": "^1.11.1",
|
|
67
|
+
"@backstage/frontend-plugin-api": "^0.12.1",
|
|
68
|
+
"@backstage/plugin-catalog-react": "^1.21.2",
|
|
69
|
+
"@backstage/plugin-permission-react": "^0.4.37",
|
|
70
|
+
"@backstage/plugin-scaffolder-react": "^1.19.2",
|
|
71
|
+
"@backstage/types": "^1.2.2",
|
|
72
|
+
"@backstage/ui": "^0.8.1",
|
|
72
73
|
"@date-io/luxon": "^1.0.0",
|
|
73
74
|
"@hookform/resolvers": "^4.0.0",
|
|
74
75
|
"@material-ui/core": "^4.12.2",
|
|
@@ -78,37 +79,32 @@
|
|
|
78
79
|
"@mui/styles": "^5.14.7",
|
|
79
80
|
"@nivo/circle-packing": "^0.99.0",
|
|
80
81
|
"@nivo/colors": "^0.99.0",
|
|
81
|
-
"@nivo/core": "^0.99.0",
|
|
82
82
|
"@nivo/heatmap": "^0.99.0",
|
|
83
83
|
"@nivo/icicle": "^0.99.0",
|
|
84
84
|
"@nivo/sunburst": "^0.99.0",
|
|
85
85
|
"@nivo/treemap": "^0.99.0",
|
|
86
86
|
"@remixicon/react": "^4.6.0",
|
|
87
|
-
"@spotify/backstage-plugin-core": "^0.8.
|
|
88
|
-
"@spotify/backstage-plugin-soundcheck-common": "^0.19.
|
|
87
|
+
"@spotify/backstage-plugin-core": "^0.8.11",
|
|
88
|
+
"@spotify/backstage-plugin-soundcheck-common": "^0.19.2",
|
|
89
89
|
"@tanstack/react-query": "^4.6.1",
|
|
90
|
-
"@tanstack/react-virtual": "^3.13.9",
|
|
91
|
-
"@types/react-csv": "^1.1.6",
|
|
92
90
|
"@uiw/react-md-editor": "3.20.10",
|
|
93
91
|
"classnames": "^2.3.2",
|
|
94
92
|
"copy-to-clipboard": "^3.3.3",
|
|
95
93
|
"cron-validate": "^1.4.5",
|
|
96
94
|
"cronstrue": "^2.28.0",
|
|
97
95
|
"d3-color": "^3.1.0",
|
|
98
|
-
"d3-hierarchy": "^3.1.2",
|
|
99
96
|
"d3-interpolate": "^3.0.1",
|
|
100
97
|
"d3-scale": "^4.0.2",
|
|
101
98
|
"d3-scale-chromatic": "^3.0.0",
|
|
102
|
-
"d3-shape": "^3.2.0",
|
|
103
99
|
"framer-motion": "^6.0.0",
|
|
104
100
|
"git-url-parse": "^16.0.0",
|
|
105
101
|
"graphql-request": "6.1.0",
|
|
106
|
-
"immer": "^10.1.1",
|
|
107
102
|
"js-yaml": "^4.1.0",
|
|
108
103
|
"lodash": "^4.17.21",
|
|
109
|
-
"lodash.debounce": "^4.0.8",
|
|
110
104
|
"luxon": "^3.1.1",
|
|
105
|
+
"pako": "^2.1.0",
|
|
111
106
|
"prismjs": "^1.27.0",
|
|
107
|
+
"react-aria-components": "^1.10.1",
|
|
112
108
|
"react-circular-progressbar": "^2.1.0",
|
|
113
109
|
"react-confetti": "^6.1.0",
|
|
114
110
|
"react-csv": "^2.2.2",
|
|
@@ -117,14 +113,11 @@
|
|
|
117
113
|
"react-markdown": "^10.1.0",
|
|
118
114
|
"react-simple-code-editor": "^0.14.1",
|
|
119
115
|
"react-use": "^17.2.4",
|
|
120
|
-
"react-virtuoso": "^4.0.0",
|
|
121
116
|
"react-window": "^1.8.8",
|
|
122
117
|
"recharts": "^2.8.0",
|
|
123
118
|
"rehype-raw": "^7.0.0",
|
|
124
119
|
"remark-gfm": "^4.0.0",
|
|
125
|
-
"slate": "^0.117.0",
|
|
126
120
|
"use-immer": "^0.11.0",
|
|
127
|
-
"use-resize-observer": "^9.1.0",
|
|
128
121
|
"uuid": "^11.0.0",
|
|
129
122
|
"zod": "^3.20.0"
|
|
130
123
|
},
|
|
@@ -134,34 +127,33 @@
|
|
|
134
127
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
135
128
|
},
|
|
136
129
|
"devDependencies": {
|
|
137
|
-
"@backstage/cli": "^0.34.
|
|
138
|
-
"@backstage/core-app-api": "^1.
|
|
139
|
-
"@backstage/dev-utils": "^1.1.
|
|
130
|
+
"@backstage/cli": "^0.34.4",
|
|
131
|
+
"@backstage/core-app-api": "^1.19.1",
|
|
132
|
+
"@backstage/dev-utils": "^1.1.16",
|
|
140
133
|
"@backstage/e2e-test-utils": "^0.1.1",
|
|
141
|
-
"@backstage/frontend-test-utils": "^0.
|
|
142
|
-
"@backstage/plugin-permission-common": "^0.9.
|
|
143
|
-
"@backstage/test-utils": "^1.7.
|
|
134
|
+
"@backstage/frontend-test-utils": "^0.4.0",
|
|
135
|
+
"@backstage/plugin-permission-common": "^0.9.2",
|
|
136
|
+
"@backstage/test-utils": "^1.7.12",
|
|
144
137
|
"@graphql-codegen/cli": "^5.0.0",
|
|
145
138
|
"@graphql-codegen/typescript": "^4.0.0",
|
|
146
139
|
"@graphql-codegen/typescript-graphql-request": "^6.0.0",
|
|
147
140
|
"@graphql-codegen/typescript-operations": "^4.0.0",
|
|
148
141
|
"@playwright/test": "^1.32.3",
|
|
149
142
|
"@sp4b-dev/test-utils": "^0.0.13",
|
|
150
|
-
"@spotify/backstage-plugin-core-common": "^0.6.
|
|
151
|
-
"@spotify/backstage-plugin-soundcheck-node": "^0.10.
|
|
143
|
+
"@spotify/backstage-plugin-core-common": "^0.6.10",
|
|
144
|
+
"@spotify/backstage-plugin-soundcheck-node": "^0.10.2",
|
|
152
145
|
"@testing-library/jest-dom": "^6.0.0",
|
|
153
146
|
"@testing-library/react": "^14.0.0",
|
|
154
147
|
"@testing-library/user-event": "^14.0.0",
|
|
155
148
|
"@types/d3-color": "^3.1.0",
|
|
156
|
-
"@types/d3-hierarchy": "^3",
|
|
157
149
|
"@types/d3-interpolate": "^3",
|
|
158
150
|
"@types/d3-scale": "^4",
|
|
159
151
|
"@types/d3-scale-chromatic": "^3.0.0",
|
|
160
|
-
"@types/d3-shape": "^3",
|
|
161
152
|
"@types/git-url-parse": "^16.0.0",
|
|
162
153
|
"@types/jest": "^30.0.0",
|
|
163
154
|
"@types/luxon": "^3.0.1",
|
|
164
155
|
"@types/node": "^22.0.0",
|
|
156
|
+
"@types/react-csv": "^1.1.6",
|
|
165
157
|
"@types/react-window": "^1.8.5",
|
|
166
158
|
"cross-fetch": "^4.0.0",
|
|
167
159
|
"msw": "^1.0.0"
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as i,jsxs as o,Fragment as X}from"react/jsx-runtime";import{useRouteRef as Y,useApi as Z,configApiRef as ee}from"@backstage/core-plugin-api";import{EntityRefLink as ie}from"@backstage/plugin-catalog-react";import{usePermission as u}from"@backstage/plugin-permission-react";import{makeStyles as te,Button as ae,Box as n,Typography as N,Divider as oe,Tabs as ne,Tab as y}from"@material-ui/core";import{soundcheckCampaignReadPermission as re,soundcheckCampaignUpdatePermission as se,soundcheckCampaignNotificationsCreatePermission as ce,toEntityFilterQuery as le}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as s,useState as me,useCallback as pe}from"react";import{useParams as de,useNavigate as ge}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as fe}from"../../hooks/campaigns/useGetCampaigns.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as he}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCheckStatuses as ue}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useLCPReporting as ye}from"../../hooks/useLCPReporting.esm.js";import{campaignEditRouteRef as ke}from"../../routes.esm.js";import{FilterSidebar as Ce}from"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import{useTrackFilterSidebar as Se}from"../FilterSidebar/useTrackFilterSidebar.esm.js";import{toFilter as be}from"../FilterSidebar/util.esm.js";import{LevelsTable as Te}from"../LevelsTable/LevelsTable.esm.js";import{LoadingIndicator as we}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as ve}from"../PageWarningMessage/PageWarningMessage.esm.js";import{SendCampaignNotificationDialog as xe}from"../SendCampaignNotificationDialog/SendCampaignNotificationDialog.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as Ne}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContent as Re}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import{TopFailingChecksTable as Fe}from"../TopFailingChecksTable/TopFailingChecksTable.esm.js";import{TrackEntitiesTable as Le}from"../TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js";import{CampaignStatusHistoryTile as Be}from"./CampaignStatusHistoryTile.esm.js";import{CampaignStatusTile as Ae}from"./CampaignStatusTile.esm.js";import{DaysRemainingTile as Ee}from"./DaysRemainingTile.esm.js";const De=te(e=>({root:{height:"100%",background:e.palette.background.default,display:"flex",width:"100%",borderTop:`1px solid ${e.palette.divider}`},progressContainer:{flex:1,borderBottom:`1px solid ${e.palette.divider}`,padding:e.spacing(2)},campaignContainerContent:{paddingTop:e.spacing(1),paddingBottom:e.spacing(1),backgroundColor:e.palette.background.paper},editButton:{marginLeft:"auto"},notificationButton:{marginRight:e.spacing(1)},checksContainer:{},entitiesContainer:{marginTop:e.spacing(3)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},content:{paddingTop:0,flex:1},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}},sectionTitle:{paddingBottom:e.spacing(1)},chartSection:{flex:1,flexBasis:"auto",minWidth:320,display:"flex",flexDirection:"column",height:"100%"},title:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${e.typography.h5.fontSize}px`,cursor:"default",marginBottom:e.spacing(2)},divider:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},tabs:{padding:e.spacing(2,2,0,2)},contentArea:{flex:1,padding:e.spacing(0,2)},tableArea:{margin:e.spacing(1,0,2)}})),Ie=()=>{const e=De(),{owners:c,lifecycles:l,types:m,systems:p,stagedLifecycles:R,setStagedLifecycles:F,stagedOwners:L,setStagedOwners:B,stagedTypes:A,setStagedTypes:E,stagedSystems:D,setStagedSystems:I,hasFilterChanges:P,handleApplyFilters:j,handleClearFilters:O}=Se(),d=s(()=>be({lifecycles:l,owners:c,types:m,systems:p}),[l,c,m,p]),[g,z]=me("checks"),H=pe((f,K)=>{z(K)},[]),{campaignId:r}=de();ye({routeName:"soundcheck-campaign-details",additionalAttributes:{campaignId:r??"",owners:c?.join(",")??"",lifecycles:l?.join(",")??"",types:m?.join(",")??"",systems:p?.join(",")??""}});const{data:M,isLoading:h}=fe({ids:[r],first:1}),a=M?.edges?.[0]?.node,t=a?.track,{loading:W,allowed:$}=u({permission:re,resourceRef:r}),{loading:k,allowed:C}=u({permission:se,resourceRef:r}),G=Array.from(new Set(t?.levels.flatMap(f=>f.checks).map(f=>f.id)??[])),{data:S,isLoading:Q}=ue({trackId:t?.id,checkIds:G,filter:d},!!t),b=ge(),T=Y(ke),U=s(()=>t?.ownerEntityRef?i(ie,{color:"inherit",entityRef:t.ownerEntityRef,className:e.ownerLink}):null,[t?.ownerEntityRef,e.ownerLink]),w=Z(ee).getOptionalBoolean("soundcheck.notifications.enabled"),{loading:v,allowed:x}=u({permission:ce}),{data:V}=he({trackId:t?.id??"",filter:d},!!a),q=s(()=>o(X,{children:[w&&!v&&x&&a&&i(xe,{campaign:a,buttonClass:e.notificationButton}),!k&&C&&t?.isEditable?i(ae,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{b(T({campaignId:r}))},children:"Edit Campaign"}):null]}),[w,v,x,a,e.notificationButton,e.editButton,k,C,t?.isEditable,b,T,r]),J=s(()=>t?.description?i(Re,{className:e.headerDescription,content:t.description}):null,[e.headerDescription,t?.description]);Ne({title:t?.name,description:J,customSubtitle:U,sectionRight:q});const _=s(()=>le(t?.filter),[t]);return o("div",{children:[i(ve,{entityName:"track",entityId:r,showNotFound:!h&&!a,showCannotView:!W&&!$}),h&&i(we,{}),t&&o("div",{className:e.root,children:[i(n,{children:i(Ce,{trackFilter:_,stagedTypes:A,stagedLifecycles:R,stagedOwners:L,stagedSystems:D,onTypesChange:E,onLifecyclesChange:F,onOwnersChange:B,onSystemsChange:I,onApplyFilters:j,onClearFilters:O,hasFilterChanges:P})}),o(n,{className:e.content,children:[i("div",{className:e.progressContainer,children:o(n,{display:"flex",marginTop:2,children:[o(n,{display:"flex",flexDirection:"column",marginRight:3,minWidth:320,children:[i(N,{className:e.title,children:"Current Status"}),i(Ae,{campaign:a,filter:d}),i(oe,{className:e.divider}),i(Ee,{campaign:a})]}),o(n,{className:e.chartSection,children:[i(N,{className:e.title,children:"Historical Status"}),i(Be,{campaign:a,filter:d})]})]})}),i(n,{className:e.tabs,children:o(ne,{value:g,onChange:H,indicatorColor:"primary",textColor:"primary",children:[i(y,{label:"Checks",value:"checks"}),i(y,{label:"Top Failing Checks",value:"topFailingChecks"}),i(y,{label:"Entities",value:"entities"})]})}),o(n,{className:e.contentArea,children:[g==="checks"&&i("div",{className:e.tableArea,children:i(Te,{track:t,checkStatuses:S,isLoading:h||Q,hideLevel:!0})}),g==="entities"&&i(n,{marginTop:1,children:i(Le,{track:t,lifecycles:l,owners:c,types:m,systems:p})}),g==="topFailingChecks"&&i("div",{className:e.tableArea,children:i(Fe,{track:t,checkStatuses:S,certificationStatus:V?.certificationStatus,hideLevel:!0})})]})]})]})]})};export{Ie as CampaignInsightsPage};
|
|
2
|
-
//# sourceMappingURL=CampaignInsightsPage.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{useTheme as h,Box as m}from"@material-ui/core";import{makeStyles as f}from"@material-ui/core/styles";import{DateTime as n}from"luxon";import{useMemo as u}from"react";import{ResponsiveContainer as g}from"recharts";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{useCertificationStatusHistory as y}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"react-router-dom";import{AreaChart as x}from"../AreaChart/AreaChart.esm.js";import{LineChartPlaceholder as S}from"../Charts/LineChart/LineChartPlaceholder.esm.js";const C=f(t=>({card:{display:"flex",flexDirection:"column",width:"100%",height:290},title:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${t.typography.h5.fontSize}px`,cursor:"default"},content:{padding:t.spacing(1,2,1,0),width:"100%",height:"100%"}}));function H({campaign:t,filter:p}){const c=h(),r=C(),d=n.fromISO(t.startDate),l=Math.max(Math.ceil(n.now().diff(d,"days").days),1),{data:o}=y({trackId:t.track.id,filter:p,numberOfDays:l},!!t),i=o?.certificationStatusHistory.numberOfEntities??0,a=u(()=>i>0?o?.certificationStatusHistory.history.map(s=>({date:s.date,Passed:Math.round(s.statusByLevel[0].passed/i*100)})):[],[i,o]);return e(g,{height:290,debounce:1,children:e(m,{className:r.card,children:e(m,{className:r.content,children:a?.length?e(x,{data:a,categories:["Passed"],categoryColors:{Passed:c.palette.success.main},index:"date",minValue:0,maxValue:100,showLegend:!1}):e(S,{height:290,text:i>0?"No Historical Data":"No Applicable Entities"})})})})}export{H as CampaignStatusHistoryTile};
|
|
2
|
-
//# sourceMappingURL=CampaignStatusHistoryTile.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as t,jsxs as s}from"react/jsx-runtime";import{useTheme as S,Box as i,Grid as b,Typography as f}from"@material-ui/core";import{makeStyles as B}from"@material-ui/core/styles";import I from"@material-ui/icons/TrendingDown";import k from"@material-ui/icons/TrendingFlat";import R from"@material-ui/icons/TrendingUp";import{DateTime as N}from"luxon";import{useMemo as T}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{useCertificationStatus as w}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as L}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"react-router-dom";import{compactNumberFormatter as g}from"../../utils/formatters.esm.js";import{CategoryBar as j}from"../CategoryBar/CategoryBar.esm.js";import{LoadingIndicator as M}from"../LoadingIndicator/LoadingIndicator.esm.js";const C=B(e=>({card:{display:"flex",flexDirection:"column"},content:{padding:0,display:"flex",margin:0,gap:e.spacing(1)},item:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},legendDash:{width:e.spacing(2),height:e.spacing(1),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,marginRight:e.spacing(2)}}));function v({label:e,value:l,total:a,color:m,valueFormatter:c}){const p=C();return s(b,{item:!0,xs:12,className:p.item,children:[s(i,{className:p.category,children:[t("span",{className:p.legendDash,style:{backgroundColor:m}}),t(f,{children:e})]}),a&&s(f,{children:[c(l)," of ",c(a)," (",Math.round(l/a*100),"%)"]})]})}function H({campaign:e,filter:l}){const a=S(),m=C(),{data:c,isLoading:p}=w({trackId:e.track.id,filter:l},!0),r=c?.certificationStatus.statusByLevel[0],D=Math.max(Math.ceil(N.now().diff(N.fromISO(e.startDate),"days").days),1),{data:u}=L({trackId:e.track.id,filter:l,numberOfDays:D},!!e),o=c?.certificationStatus.numberOfEntities??0,d=T(()=>{if(o===void 0||u===void 0||r===void 0)return;const x=(u.certificationStatusHistory.history[0]?.statusByLevel[0].passed??0)/o*100;return r.passed/o*100-x},[u,r,o]);let h=k,y="inherit",n;return d&&(n=`${d.toFixed(0)}% since campaign start`,d<=-1?(h=I,n=`-${n}`,y="error"):d>=1&&(h=R,n=`+${n}`,y="primary")),p?t(i,{className:m.card,children:t(M,{})}):t(i,{className:m.card,children:r?t(i,{className:m.content,children:s(i,{width:"100%",children:[t(j,{data:r,valueFormatter:g,categories:["passed","failed","notReported"],categoryFormatter:x=>x.replace(/\b\w/g,F=>F.toUpperCase()),colors:[a.palette.success.main,a.palette.error.main,a.palette.text.disabled]}),t(i,{paddingTop:"12px",children:s(b,{spacing:2,children:[t(v,{label:"Passing",value:r.passed,total:o,color:a.palette.success.main,valueFormatter:g}),t(v,{label:"Failing",value:r.failed,total:o,color:a.palette.error.main,valueFormatter:g}),t(v,{label:"Not Reported",value:r.notReported,total:o,color:a.palette.text.disabled,valueFormatter:g}),!!d&&s(i,{display:"flex",alignItems:"center",paddingTop:"12px",children:[t(h,{color:y}),t(f,{style:{marginLeft:a.spacing(1)},children:n})]})]})})]})}):t(i,{margin:"auto",minHeight:125,display:"flex",flexDirection:"column",justifyContent:"center",children:t(f,{style:{marginBottom:8},variant:"subtitle1",children:"No Data"})})})}export{H as CampaignStatusTile};
|
|
2
|
-
//# sourceMappingURL=CampaignStatusTile.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as a,jsxs as y}from"react/jsx-runtime";import{useRouteRef as M,useApi as X,featureFlagsApiRef as q}from"@backstage/core-plugin-api";import{usePermission as z}from"@backstage/plugin-permission-react";import{makeStyles as J,Grid as i,Button as K}from"@material-ui/core";import{soundcheckCampaignCreatePermission as Q}from"@spotify/backstage-plugin-soundcheck-common";import{useState as t,useEffect as U}from"react";import{useNavigate as V}from"react-router-dom";import Y from"react-use/lib/useDebounce";import{useGetCampaignOwners as Z}from"../../../hooks/campaigns/useGetCampaignOwners.esm.js";import{useGetCampaigns as _}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import{campaignCreateRouteRef as $}from"../../../routes.esm.js";import{FilterDefault as p}from"../../../utils/filters.esm.js";import{EmptyCampaignState as ee}from"../CampaignEmptyState.esm.js";import{EmptyState as ae}from"../../EmptyState/EmptyState.esm.js";import{Pagination as re}from"../../Pagination/Pagination.esm.js";import{SearchFilters as ie}from"../../SearchFilters/SearchFilters.esm.js";import{CampaignsOverviewSkeleton as te}from"./CampaignsOverviewSkeleton.esm.js";import{CampaignSummaryCard as ne}from"./CampaignSummaryCard.esm.js";import se from"./useArchiveConfirmationModal.esm.js";var N=(e=>(e.title="No campaigns found",e.description="No campaigns matched your search. Consider changing search term and filters.",e))(N||{});const oe=J(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:e.spacing(1.5),paddingBottom:e.spacing(1.5)}})),me=({campaignsPerPage:e,currentCursor:x})=>{const n=oe(),[g,d]=t(x),[o,w]=t(""),[h,b]=t(""),[u,B]=t(p.Alpha),[f,A]=t(p.Owner),[C,R]=t(p.Status),{data:F,isLoading:k}=Z();Y(()=>{b(o)},500,[o]);const{loading:O,allowed:L}=z({permission:Q}),{data:m,isLoading:l}=_({ids:void 0,first:e,after:g,orderAlphabetical:u,searchByOwner:f,searchByName:h,searchByStatus:C}),E=V(),G=M($),T=()=>E(G()),c=m?.edges.map(r=>r.node),[P,v]=t([]);U(()=>{d(void 0),v([])},[h]);const S=X(q),j=!S.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-campaigns")||S.isActive("soundcheck-enable-campaigns"),D=!L||!j,I=r=>{B(r.target.value)},H=r=>{A(r.target.value)},W=r=>{R(r.target.value)};if(!l&&!c)return a(ee,{});let s;return l?s=a(te,{}):c?.length?s=c.map(r=>a(i,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result",children:a(se,{children:a(ne,{campaign:r})})},r.id)):s=a(i,{xs:12,item:!0,role:"listitem","aria-label":"result",children:a(ae,{title:"No campaigns found",description:"No campaigns matched your search. Consider changing search term and filters."})}),y(i,{container:!0,direction:"row",className:n.container,children:[y(i,{container:!0,className:n.header,children:[a(ie,{searchPlaceholder:"Search Available Campaigns",isLoading:l||k,searchTerm:o,setSearchTerm:w,filterAlpha:u,handleAlphabeticalFilterChange:I,filterOwner:f,handleOwnerFilterChange:H,filterStatus:C,handleStatusFilterChange:W,owners:F}),a(i,{item:!0,xs:4,className:n.headerButtons,children:!O&&a(K,{disabled:D,variant:"contained",color:"primary",onClick:T,className:n.createButton,children:"Create Campaign"})})]}),a(i,{container:!0,spacing:4,role:"list","aria-label":"campaigns",children:s}),(m?.pageInfo.hasNextPage||P?.length>0)&&a(i,{item:!0,xs:12,children:a(re,{response:m,listingsPerPage:e,cursor:g,setCursor:d,prevCursors:P,setPrevCursors:v,labelPerPageDropdown:"Campaigns Per Page:",urlRoute:"campaigns?campaignsPerPage="})})]})};export{me as CampaignListPage,N as CampaignNoResults};
|
|
2
|
-
//# sourceMappingURL=CampaignListPage.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as i,jsxs as u}from"react/jsx-runtime";import{useRouteRef as ne}from"@backstage/core-plugin-api";import{EntityRefLink as se}from"@backstage/plugin-catalog-react";import{usePermission as Q}from"@backstage/plugin-permission-react";import{makeStyles as ae,useTheme as le,Button as ce,Typography as G,Tabs as de,Tab as K,Box as V}from"@material-ui/core";import{soundcheckCheckReadPermission as me,soundcheckCheckUpdatePermission as pe,toEntityFilterQuery as D,combineEntityFilterQueries as he}from"@spotify/backstage-plugin-soundcheck-common";import v from"lodash/isEqual";import{useMemo as a,useState as b,useEffect as fe,useCallback as X}from"react";import{useSearchParams as ue,useParams as ge,useNavigate as ye}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useCheck as ke}from"../../hooks/checks/useCheck.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as Ce}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCheckStatus as Se}from"../../hooks/aggregations/useCheckStatus.esm.js";import{useLCPReporting as xe}from"../../hooks/useLCPReporting.esm.js";import{checkEditRouteRef as we}from"../../routes.esm.js";import{toFilter as be}from"../../utils/helpers.esm.js";import{CheckStatusBar as ve}from"../CheckStatusBar/CheckStatusBar.esm.js";import{FilterSidebar as Ee}from"../FilterSidebar/FilterSidebar.esm.js";import{StateFilter as Ne}from"../FilterSidebar/StateFilter.esm.js";import{LoadingIndicator as Ie}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as Y}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as Re}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContent as Fe}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"lodash";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{parseNumberOfDays as Te}from"../TechHealth/Filters/utils.esm.js";import{CheckEntitiesTable as Le}from"./CheckEntitiesTable/CheckEntitiesTable.esm.js";import{CheckStatusHistoryChart as Ae}from"./CheckStatusHistoryChart.esm.js";import{CheckStatusTable as Be}from"./CheckStatusTable.esm.js";import{ExemptionsTable as De}from"./ExemptionsTable.esm.js";function Pe(e,r){for(const y of e.levels)for(const l of y.checks)if(l.id===r)return l;return null}const je=ae(e=>({root:{height:"100%"},pageContent:{display:"flex",minHeight:`calc(100vh - ${e.spacing(15)}px)`,borderTop:`1px solid ${e.palette.divider}`,height:"100%"},mainContentArea:{flex:1,display:"flex",flexDirection:"column",minWidth:0},editButton:{marginLeft:"auto"},statusContainer:{borderBottom:`1px solid ${e.palette.divider}`,padding:e.spacing(3,0,2,3)},statusCards:{display:"flex",gap:e.spacing(2)},currentStatusSection:{width:"325px",minWidth:"325px",flex:0,display:"flex",flexDirection:"column"},historicalStatusSection:{flex:1,flexShrink:1,flexGrow:1,flexBasis:"auto",minWidth:"150px",display:"flex",flexDirection:"column"},statusTitle:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${e.typography.h5.fontSize}px`,cursor:"default",marginBottom:e.spacing(2)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},entitiesContainer:{padding:e.spacing(2,3,3,3)},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}}})),Oe=()=>{const e=je(),[r,y]=ue(),{trackId:l,checkId:o}=ge(),s=a(()=>r.getAll("states"),[r]),m=a(()=>r.getAll("owners"),[r]),p=a(()=>r.getAll("lifecycles"),[r]),h=a(()=>r.getAll("types"),[r]),f=a(()=>r.getAll("systems"),[r]),P=a(()=>Te(r.get("numberOfDays")),[r]),[k,E]=b(p),[C,N]=b(m),[S,I]=b(h),[x,R]=b(f),[w,F]=b(s);fe(()=>{N(m),E(p),I(h),R(f),F(s)},[m,p,h,f,s]);const Z=a(()=>{const t={owners:!v(C,m),lifecycles:!v(k,p),types:!v(S,h),systems:!v(x,f),states:!v(w,s)};return Object.values(t).some(Boolean)},[C,m,k,p,S,h,x,f,w,s]),q=X(()=>{const t=new URLSearchParams(r);t.delete("lifecycles"),t.delete("owners"),t.delete("types"),t.delete("systems"),t.delete("states"),k.length>0&&k.forEach(n=>t.append("lifecycles",n)),C.length>0&&C.forEach(n=>t.append("owners",n)),S.length>0&&S.forEach(n=>t.append("types",n)),x.length>0&&x.forEach(n=>t.append("systems",n)),w.length>0&&w.forEach(n=>t.append("states",n)),y(t)},[r,k,C,S,x,w,y]),J=X(()=>{E([]),N([]),I([]),R([]),F([]);const t=new URLSearchParams(r);t.delete("lifecycles"),t.delete("owners"),t.delete("types"),t.delete("systems"),t.delete("states"),y(t)},[r,y]),T=be({lifecycles:p,owners:m,types:h,systems:f}),{data:g,isLoading:j}=Ce(l),{data:c,isLoading:O}=ke(o),{loading:H,allowed:L}=Q({permission:me,resourceRef:o}),d=a(()=>c??g?.levels.flatMap(t=>t.checks).find(t=>t.id===o),[c,o,g?.levels]),{loading:W,allowed:z}=Q({permission:pe,resourceRef:o}),M=ye(),U=ne(we),_=le();let A;if(o)if(g){const t=D(g.filter),n=D(Pe(g,o)?.filter);A=he(t,n)}else d?.filter&&(A=D(d.filter));const{data:$}=Se({checkId:o,trackId:l,filter:T,states:s?.length?s:void 0},!!o),ee=a(()=>c?.ownerEntityRef?i(se,{color:"inherit",entityRef:c.ownerEntityRef,className:e.ownerLink}):null,[c?.ownerEntityRef,e.ownerLink]),te=a(()=>!W&&z&&c?.isEditable?i(ce,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{M(U({checkId:c.id}))},children:"Edit Check"}):null,[z,c?.id,c?.isEditable,e.editButton,U,W,M]),ie=a(()=>d?.description?i(Fe,{className:e.headerDescription,content:d.description}):null,[e.headerDescription,d?.description]);Re({title:d?.name??o??"Soundcheck",description:ie,customSubtitle:ee,sectionRight:te}),xe({routeName:"soundcheck-check-details",additionalAttributes:{checkId:o||"unknown",trackId:l||"unknown",checkName:d?.name||"unknown",filtersApplied:(m.length+p.length+h.length+f.length+s.length).toString(),ownersFilter:m.join(",")||"none",lifecyclesFilter:p.join(",")||"none",typesFilter:h.join(",")||"none",systemsFilter:f.join(",")||"none",statesFilter:s.join(",")||"none",numberOfDays:P.toString()}});const re=a(()=>!!d&&!H&&!L,[L,d,H]),[B,oe]=b(0);return u("div",{children:[i(Y,{entityName:"track",entityId:l,showNotFound:!!l&&!j&&!g}),i(Y,{entityName:"check",entityId:o,showCannotView:re}),(O||!!l&&j)&&i(Ie,{}),!O&&L&&i("div",{className:e.root,children:u("div",{className:e.pageContent,children:[i(Ee,{trackFilter:A,stagedTypes:S,stagedLifecycles:k,stagedOwners:C,stagedSystems:x,onTypesChange:I,onLifecyclesChange:E,onOwnersChange:N,onSystemsChange:R,onApplyFilters:q,onClearFilters:J,hasFilterChanges:Z,children:i(Ne,{states:s,stagedStates:w,onStagedStatesChange:F})}),u("div",{className:e.mainContentArea,children:[i("div",{className:e.statusContainer,children:u("div",{className:e.statusCards,children:[u("div",{className:e.currentStatusSection,children:[i(G,{className:e.statusTitle,children:"Current Status"}),i("div",{style:{width:"100%",height:30,display:"flex",alignItems:"flex-start",marginBottom:_.spacing(2)},children:i(ve,{status:$})}),i("div",{children:i(Be,{checkStatus:$})})]}),u("div",{className:e.historicalStatusSection,children:[i(G,{className:e.statusTitle,children:"Historical Status"}),i("div",{style:{height:"100%"},children:i(Ae,{checkId:o,trackId:l,filter:T,states:s,numberOfDays:P})})]})]})}),u("div",{className:e.entitiesContainer,children:[u(de,{value:B,onChange:(t,n)=>oe(n),indicatorColor:"primary",textColor:"primary","aria-label":"Entities and Exemptions Tabs",children:[i(K,{label:"Entities"}),i(K,{label:"Exemptions"})]}),i(V,{hidden:B!==0,children:i(Le,{checkId:o,trackId:g?.id,filter:T,states:s})}),i(V,{hidden:B!==1,children:i(De,{checkId:o})})]})]})]})})]})};export{Oe as CheckInsightsPage};
|
|
2
|
-
//# sourceMappingURL=CheckInsightsPage.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as t,jsxs as u}from"react/jsx-runtime";import{useApi as w,featureFlagsApiRef as Y,useRouteRef as Z}from"@backstage/core-plugin-api";import{usePermission as _}from"@backstage/plugin-permission-react";import{makeStyles as ee,Button as A,Grid as o}from"@material-ui/core";import{soundcheckCheckCreatePermission as re}from"@spotify/backstage-plugin-soundcheck-common";import{useState as i,useEffect as N}from"react";import{useNavigate as te}from"react-router-dom";import ae from"react-use/lib/useDebounce";import{soundcheckApiRef as oe}from"../../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import{useGetChecks as ie}from"../../../hooks/checks/useGetChecks.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGetCheckOwners as se}from"../../../hooks/checks/useGetCheckOwners.esm.js";import{useImportChecks as ce}from"../../../hooks/checks/useImportChecks.esm.js";import ne from"../../../images/no-results.svg";import{checkTemplatesRouteRef as me}from"../../../routes.esm.js";import{exportChecks as le}from"../../../utils/export.esm.js";import{FilterDefault as I}from"../../../utils/filters.esm.js";import{EmptyState as S}from"../../EmptyState/EmptyState.esm.js";import{ImportExportPanel as pe}from"../../ImportExportPanel/ImportExportPanel.esm.js";import{Pagination as de}from"../../Pagination/Pagination.esm.js";import{SearchFilters as he}from"../../SearchFilters/SearchFilters.esm.js";import{ChecksOverviewSkeleton as ge}from"../skeletons/ChecksOverviewSkeleton.esm.js";import{CheckSummaryCard as ue}from"./CheckSummaryCard.esm.js";var B=(e=>(e.title="Create a check",e.description="A check is a comparison between a defined acceptable outcome and the actual outcome of a given process.",e.callToAction="Get started",e))(B||{}),R=(e=>(e.title="No checks found",e.description="No checks matched your search. Consider changing search term and filters.",e))(R||{});const fe=ee(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:e.spacing(1.5),paddingBottom:e.spacing(1.5)}})),ke=({checksPerPage:e,currentCursor:E})=>{const s=fe(),[f,k]=i(E),[l,F]=i(""),[p,O]=i(I.Alpha),[d,T]=i(I.Owner),[C,G]=i(""),{data:L,isLoading:j}=se();ae(()=>{G(l)},500,[l]);const{loading:P,allowed:D}=_({permission:re}),{data:a,isLoading:c}=ie({ids:void 0,first:e,after:f,orderAlphabetical:p,searchByOwner:d,searchByName:C}),[h,H]=i(a),n=h?.edges?.map(r=>r.node),[b,v]=i([]);N(()=>{k(void 0),v([])},[C,p,d]);const x=w(Y),W=!x.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-check-creation")||x.isActive("soundcheck-enable-check-creation"),g=!D||!W,$=r=>{O(r.target.value)},q=r=>{T(r.target.value)};N(()=>{a&&H(()=>({totalCount:a.totalCount,edges:a.edges,pageInfo:{startCursor:a.pageInfo.startCursor,endCursor:a.pageInfo.endCursor,hasNextPage:a?.pageInfo.hasNextPage??!1,hasPreviousPage:a?.pageInfo.hasPreviousPage??!1}}))},[a]);const z=te(),J=Z(me),y=()=>z(J()),M=w(oe),{mutateAsync:Q}=ce(),V=async r=>Q(r),X=async()=>{const r=await M.getChecks({orderAlphabetical:"asc"});return le(r.edges.map(U=>U.node))};if(!c&&!n)return t(S,{title:"Create a check",description:"A check is a comparison between a defined acceptable outcome and the actual outcome of a given process.",imgSrc:ne,action:!P&&t(A,{disabled:g,variant:"contained",color:"primary",onClick:y,children:"Get started"})});let m;c?m=t(ge,{}):n?.length?m=n?.map(r=>t(o,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`check card ${r.id}`,children:t(ue,{check:r})},r.id)):m=t(o,{xs:12,item:!0,role:"listitem","aria-label":"result",children:t(S,{title:"No checks found",description:"No checks matched your search. Consider changing search term and filters."})});const K=h?.pageInfo.hasNextPage||b?.length>0;return u(o,{container:!0,direction:"row",className:s.container,children:[u(o,{container:!0,className:s.header,children:[t(he,{searchPlaceholder:"Search Available Checks",isLoading:c||j,searchTerm:l,setSearchTerm:F,filterAlpha:p,handleAlphabeticalFilterChange:$,filterOwner:d,handleOwnerFilterChange:q,owners:L}),u(o,{item:!0,xs:4,className:s.headerButtons,children:[t(pe,{resourceType:"check",disableImport:g,disableExport:c||!n?.length,onImport:V,onExport:X}),!P&&t(A,{disabled:g,variant:"contained",color:"primary",onClick:y,className:s.createButton,children:"Create Check"})]})]}),t(o,{container:!0,spacing:4,role:"list","aria-label":"checks",children:m}),K&&t(o,{item:!0,xs:12,children:t(de,{response:h,listingsPerPage:e,cursor:f,setCursor:k,prevCursors:b,setPrevCursors:v,labelPerPageDropdown:"Checks Per Page:",urlRoute:"checks?checksPerPage="})})]})};export{B as CheckEmptyState,ke as CheckListPage,R as CheckNoResults};
|
|
2
|
-
//# sourceMappingURL=CheckListPage.esm.js.map
|
package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as i,jsx as e}from"react/jsx-runtime";import{makeStyles as h,Grid as s,Typography as d,TextField as c}from"@material-ui/core";import{useFormContext as T,Controller as x}from"react-hook-form";import{JIRA_COLLECTOR_FIELDS as f}from"./utils.esm.js";const u=h(a=>({root:{paddingTop:a.spacing(1)},textInput:{marginTop:0,width:"500px"},helperText:{marginLeft:0}})),g=({name:a,disabled:m})=>{const t=u(),{factName:l,jql:o}=f.factDetails,{control:p}=T();return i(s,{container:!0,spacing:1,direction:"column",className:t.root,children:[i(s,{item:!0,children:[e(d,{variant:"subtitle2",children:l.name}),e(x,{name:`${a}.factName`,control:p,render:({field:n,fieldState:{error:r}})=>e(c,{...n,type:"text",variant:"outlined",margin:"dense",placeholder:l.placeholder,className:t.textInput,disabled:m,error:!!r,helperText:r?.message??l.helperText,FormHelperTextProps:{className:t.helperText}})})]}),i(s,{item:!0,children:[e(d,{variant:"subtitle2",children:o.name}),e(x,{name:`${a}.jql`,control:p,render:({field:n,fieldState:{error:r}})=>e(c,{...n,type:"text",variant:"outlined",margin:"dense",placeholder:o.placeholder,className:t.textInput,disabled:m,error:!!r,helperText:r?.message??o.helperText,FormHelperTextProps:{className:t.helperText}})})]})]})};export{g as IssuesSearchFactDetailsComponent};
|
|
2
|
-
//# sourceMappingURL=IssuesSearchFactDetailsComponent.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{Grid as r}from"@material-ui/core";import{useGetCollectors as c}from"../../../hooks/collectors/useGetCollectors.esm.js";import{CollectorListSkeleton as s}from"./CollectorListSkeleton.esm.js";import{CollectorSummaryCard as m}from"./CollectorSummaryCard.esm.js";const a=["github","gitlab","scm","pagerduty","datadog","kubernetes","jira","sonarqube","newrelic","bigquery","catalog","azure","http","data-registry"],u=({integrations:l})=>{const{data:d,isLoading:n}=c(),o=l?.map(e=>e.integrationId)??a;return t(r,{container:!0,direction:"row",children:t(r,{container:!0,spacing:4,role:"list","aria-label":"checks",children:n?t(s,{}):d?.filter(e=>e.isConfigurable)?.sort((e,i)=>!o.includes(e.id)&&o.includes(i.id)?1:o.includes(e.id)&&!o.includes(i.id)?-1:(e.name??e.id).localeCompare(i.name??i.id))?.map(e=>t(r,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`collector card ${e.id}`,children:t(m,{collector:e,hasNoCodeUI:o.includes(e.id),routePath:l?.find(i=>i.integrationId===e.id)?.routePath})},e.id))})})};export{u as CollectorListPage,a as ConfigurableCollectorIds};
|
|
2
|
-
//# sourceMappingURL=CollectorListPage.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useCallback as n}from"react";import u from"react-use/lib/useLocalStorage";const c=10,i=l=>{const[o,s]=u("soundcheck-previously-selected-groups",[]),p=n(r=>{const e=o??[],t=e.indexOf(r);t>-1&&e.splice(t,1),e.unshift(r),e.length>c&&e.pop(),s(e)},[o,s]);return{groupEntityRefs:o,addGroup:p}};export{i as usePreviousSelectedGroups};
|
|
2
|
-
//# sourceMappingURL=usePreviousSelectedGroups.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{makeStyles as n}from"@material-ui/core";import l from"react-markdown";import i from"rehype-raw";import p from"remark-gfm";import{components as m}from"./ComponentRenders.esm.js";const t=["h1","h2","h3","h4","h5","h6","p","div","span","a","img","table","th","td","tr","thead","tbody","ol","li","ul","details","summary","br","hr","del","pre","code","strong","em","blockquote","input"],o=n(r=>({markdown:{"& table":{borderCollapse:"collapse",border:`1px solid ${r.palette.border}`},"& th, & td":{border:`1px solid ${r.palette.border}`,padding:r.spacing(1)},"& td":{wordBreak:"break-word",overflow:"hidden",verticalAlign:"middle",lineHeight:"1",margin:0,padding:r.spacing(3,2,3,2.5),borderBottom:0},"& th":{backgroundColor:r.palette.background.paper},"& tr":{backgroundColor:r.palette.background.paper},"& tr:nth-child(odd)":{backgroundColor:r.palette.background.default},"& a":{color:r.palette.link},"& img":{maxWidth:"100%"},"& ul":{marginTop:r.spacing(1)},"& ol":{marginTop:r.spacing(1)},"& pre":{background:`${r.palette.background.default} !important`},"& details":{width:"100%"},"& h1,h2,h3,h4,h5,h6":{marginBottom:r.spacing(1)}}}),{name:"SoundcheckMarkdownContent"}),c=({content:r,className:a=""})=>{const d=o();return e("div",{className:`${d.markdown} ${a}`.trim(),children:e(l,{components:m,remarkPlugins:[p],rehypePlugins:[i],allowedElements:t,children:r})})};export{t as ALLOWED_HTML_TAGS,c as SoundcheckMarkdownContent,o as useStyles};
|
|
2
|
-
//# sourceMappingURL=SoundcheckMarkdownContent.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as p,Fragment as P,jsx as e}from"react/jsx-runtime";import{Box as r,Typography as d,Divider as T}from"@material-ui/core";import{useCallback as x,useMemo as k}from"react";import"../Badges/LevelBadge.esm.js";import"../Badges/NoLevelBadge.esm.js";import{CampaignBadge as w}from"../Badges/CampaignBadge.esm.js";import{StatusBadge as G}from"../Badges/StatusBadge.esm.js";const I=({filteredCampaigns:g,filteredTracks:u,campaignTracks:B,TrackCard:h,classes:n,isTracksLoading:b,trackStatusMap:i,trackCountsMap:f})=>{const s=x(t=>i?[...t].sort((a,c)=>{const N=i.get(a.id),v=i.get(c.id),m=N?.status?.allPassPercentage,l=v?.status?.allPassPercentage;return typeof m=="number"&&typeof l=="number"?m-l:typeof m=="number"&&typeof l!="number"?-1:typeof m!="number"&&typeof l=="number"?1:0}):t,[i]),o=x(t=>{const a=i?.get(t.id)?.status,c=(a?.passed??0)+(a?.failed??0)+(a?.warning??0)+(a?.error??0)+(a?.notReported??0)+(a?.exempt??0);return!a||c>0},[i]),y=k(()=>s(g.filter(o)),[o,g,s]),C=k(()=>s(u.filter(o)),[o,u,s]);return b?null:p(P,{children:[p(r,{display:"flex",alignItems:"center",className:n.sectionHeader,marginBottom:.5,marginTop:4,gridGap:12,children:[e(w,{}),e(d,{variant:"h5",style:{marginBottom:0},children:"Campaigns"})]}),e(T,{style:{marginBottom:16}}),y.length>0?e(r,{className:n.gridContainer,style:{marginTop:0},children:e(r,{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",style:{gap:24},children:y.map(t=>e(h,{track:t,entityCount:f?.get(t.id)},t.id))})}):e(r,{className:n.emptyState,children:e(d,{variant:"h6",children:B.length>0?"No active campaigns matching the current filters":"No active campaigns."})}),C.length>0&&p(r,{className:n.gridContainer,children:[p(r,{display:"flex",alignItems:"center",className:n.sectionHeader,marginBottom:.5,gridGap:12,children:[e(G,{hideTooltip:!0,status:{passed:10,failed:10,error:0,exempt:0,notApplicable:0,notReported:10,passPercentage:50,warning:0},size:"small"}),e(d,{variant:"h5",style:{marginBottom:0},children:"Tracks"})]}),e(T,{style:{marginBottom:16}}),e(r,{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gridGap:24,marginBottom:.5,children:C.map(t=>e(h,{track:t,entityCount:f?.get(t.id)},t.id))})]})]})};export{I as TechInsightsCardsView};
|
|
2
|
-
//# sourceMappingURL=TechInsightsCardsView.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as a,jsx as t}from"react/jsx-runtime";import{useApi as x}from"@backstage/core-plugin-api";import{entityPresentationApiRef as u}from"@backstage/plugin-catalog-react";import{useTheme as v,Paper as N,Box as r,Typography as n}from"@material-ui/core";import{makeStyles as w}from"@material-ui/core/styles";import{Skeleton as h}from"@material-ui/lab";import{interpolateRgb as S}from"d3-interpolate";import{scaleLinear as b}from"d3-scale";import{TeamStatusBar as k}from"../TeamStatusBar/TeamStatusBar.esm.js";import{convertToCommonTrackStatus as T}from"./convertToCommonTrackStatus.esm.js";const B=w(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,height:"100%",maxWidth:"280px",padding:e.spacing(2),cursor:"pointer"},content:{display:"flex",flex:1},categoryBarContainer:{width:"100%",height:e.spacing(1),marginBottom:e.spacing(1),cursor:"pointer"},cardHeader:{lineHeight:1.2}})),C=(e,o)=>b().domain([0,50,100]).range([e.palette.error.main,e.palette.warning.main,e.palette.success.main]).interpolate(S.gamma(2.2))(o),D=({track:e,trackStatus:o,entityCount:l})=>{const p=v(),f=x(u),i=B(),s=e.ownerEntityRef?f.forEntity(e.ownerEntityRef):null,c=o?.allPassPercentage??0,m=!o,d=e.levels.reduce((g,y)=>g+y.checks.length,0);return a(N,{className:i.card,children:[a(r,{display:"flex",flexDirection:"column",alignItems:"flex-start",mb:1,children:[t(n,{variant:"h6",className:i.cardHeader,children:e.name}),s&&t(n,{variant:"caption",color:"textSecondary",children:s.snapshot.primaryTitle})]}),a(r,{display:"flex",flexDirection:"column",alignItems:"flex-start",mb:1,children:[a(n,{variant:"caption",color:"textSecondary",children:[d," check",d!==1?"s":""]}),l!==void 0&&a(n,{variant:"caption",color:"textSecondary",children:[new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:1}).format(l)," ","entit",l!==1?"ies":"y"]})]}),m&&t(r,{className:i.content,children:a(r,{width:"100%",children:[t(r,{mb:2,children:t(h,{variant:"text",width:"60%",height:48})}),t(r,{className:i.categoryBarContainer,children:t(h,{variant:"rect",width:"100%",height:8})})]})}),!m&&isNaN(c)&&t(r,{margin:"auto",children:t(n,{variant:"body2",children:"No Data"})}),!m&&!isNaN(c)&&t(r,{className:i.content,children:a(r,{width:"100%",children:[t(r,{mb:2,children:t(n,{variant:"h3",style:{color:C(p,Math.floor(c))},children:`${Math.floor(c)}%`})}),t(r,{className:i.categoryBarContainer,children:t(k,{status:T(o)})})]})})]})};export{D as TrackStatusCard};
|
|
2
|
-
//# sourceMappingURL=TrackStatusCard.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsxs as s,jsx as t}from"react/jsx-runtime";import{Box as l,Button as r}from"@material-ui/core";import{makeStyles as d}from"@material-ui/core/styles";import c from"@material-ui/icons/ViewList";import m from"@material-ui/icons/ViewModule";const C=d(()=>({viewModeButton:{marginRight:8},viewModeButtonLast:{marginRight:16}})),e={Cards:"cards",Table:"table"},o={Contained:"contained",Outlined:"outlined"},u=({viewMode:n,onViewModeChange:i})=>{const a=C();return s(l,{display:"flex",alignItems:"center",children:[t(r,{variant:n===e.Table?o.Contained:o.Outlined,startIcon:t(c,{}),onClick:()=>i(e.Table),size:"small",className:a.viewModeButton,children:"Table"}),t(r,{variant:n===e.Cards?o.Contained:o.Outlined,startIcon:t(m,{}),onClick:()=>i(e.Cards),size:"small",className:a.viewModeButton,children:"Cards"})]})};export{e as TECH_INSIGHTS_VIEW_MODE,u as ViewModeControls};
|
|
2
|
-
//# sourceMappingURL=ViewModeControls.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const a=e=>({passed:e.passed,failed:e.failed,warning:e.warning,error:e.error,exempt:e.exempt,notApplicable:e.notApplicable,notReported:e.notReported,allPassPercentage:e.allPassPercentage??0,statusByLevel:(e.statusByLevel||[]).map(t=>({ordinal:t.ordinal,passed:t.passed,failed:t.failed,warning:t.warning,error:t.error,notApplicable:t.notApplicable,notReported:t.notReported,passPercentage:t.passPercentage??0,exempt:t.exempt}))});export{a as convertToCommonTrackStatus};
|
|
2
|
-
//# sourceMappingURL=convertToCommonTrackStatus.esm.js.map
|