@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
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as f,Fragment as $}from"react/jsx-runtime";import{stringifyEntityRef as T,parseEntityRef as X,RELATION_OWNED_BY as Z,RELATION_PART_OF as ee}from"@backstage/catalog-model";import{useRouteRef as te}from"@backstage/core-plugin-api";import{entityRouteRef as ie,getEntityRelations as v,humanizeEntityRef as w}from"@backstage/plugin-catalog-react";import{Table as re,TableHeader as oe,Column as l,TableBody as ne,TablePagination as ae,Row as se,Flex as le,Cell as y,CellProfile as me}from"@backstage/ui";import{RiCheckLine as de,RiCloseLine as ce,RiAlertLine as pe,RiErrorWarningFill as fe,RiProhibitedLine as ye,RiIndeterminateCircleLine as he,RiInformationOffLine as ge}from"@remixicon/react";import{compact as ue,uniq as Re,startCase as we}from"lodash";import{useState as k,useEffect as ke,useMemo as E,useCallback as Ee}from"react";import{useNavigate as be}from"react-router-dom";import{ResultState as s,CheckEntityField as m,Direction as I}from"../../../graphql/generated/index.esm.js";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useSearchName as Ce}from"../../../hooks/useSearchName.esm.js";import{usePagination as Se}from"../../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useEntitiesByRefs as Le}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useProfileImages as Ne}from"../../../hooks/catalog/useProfileImages.esm.js";import{useCheckEntities as Te}from"../../../hooks/entities/useCheckEntities.esm.js";import{CustomCell as ve}from"../../CustomCell/CustomCell.esm.js";import"../../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Ie}from"../../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"../../../routes.esm.js";import{LoadingTableSkeleton as Be}from"../../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{toResultState as B}from"../utils.esm.js";import{toCheckEntityRow as Pe}from"./utils.esm.js";const P=10,Ae=["kind","metadata.name","metadata.namespace","spec.profile.displayName","metadata.title","relations","spec.lifecycle","spec.type"],Oe={[s.Passed]:t(de,{style:{color:"var(--bui-fg-success)"}}),[s.Failed]:t(ce,{style:{color:"var(--bui-fg-danger)"}}),[s.Warning]:t(pe,{}),[s.Error]:t(fe,{}),[s.Exempt]:t(ye,{style:{color:"var(--bui-fg-disabled)"}}),[s.NotReported]:t(he,{style:{color:"var(--bui-fg-disabled)"}}),[s.NotApplicable]:t(ge,{style:{color:"var(--bui-fg-disabled)"}})},xe={name:m.Name,owner:m.Owner,system:m.System,type:m.Type,lifecycle:m.Lifecycle},Fe=({checkId:A,trackId:O,filter:h,states:g,searchValue:x})=>{const[u,F]=k("ascending"),[c,j]=k("name"),[p,D]=k({orderBy:void 0,filter:h,states:g?.map(B).filter(e=>e!==void 0)});ke(()=>{let e;c?e={field:xe[c]??m.Name,direction:u==="ascending"?I.Asc:I.Desc}:e=void 0,D(r=>({...r,orderBy:e,filter:h,states:g?.map(B).filter(n=>n!==void 0)}))},[h,g,c,u]);const{data:o,isLoading:_}=Te({checkId:A,trackId:O,orderBy:p.orderBy,filter:p.filter,states:p.states?.length?p.states:void 0}),K=o?.checkEntities.edges.map(e=>e.node.entityRef)??[],{data:R,isLoading:M}=Le({entityRefs:K,fields:Ae}),W=E(()=>o?.checkEntities.edges??[],[o]),z=E(()=>o?.checkEntities.totalCount??0,[o])>P,b=E(()=>!o?.checkEntities.edges?.length||!R?.items?.length?[]:ue(o.checkEntities.edges.map(e=>{const r=R.items.find(n=>!!n&&T(n)===e.node.entityRef);return r?Pe({checkDetails:e.node,entity:r}):void 0})),[o?.checkEntities.edges,R?.items]),C=Ce({items:b.map(e=>({id:e.entity.metadata.name,name:e.entity.metadata.name,row:e})),searchTerm:x}).map(({row:e})=>e),{paginatedItems:H,paginationProps:U}=Se({pageParam:"perPage",defaultPageSize:P,items:C}),q=({row:e})=>{const r=be(),n=te(ie),V=Ee(i=>{const a=X(T(i)),d=n(a);r(`${d}/soundcheck`)},[r,n]),Y=v(e.entity,Z).map(i=>w(i,{defaultKind:i.kind})).join(", "),G=v(e.entity,ee,{kind:"system"}).map(i=>w(i,{defaultKind:"system"})).join(", "),J=Re(b.flatMap(i=>i.entity.relations?.filter(({type:a,targetRef:d})=>a==="ownedBy"&&d).map(a=>a.targetRef)||[])),{profileImageMap:Q}=Ne(J),S=e.entity.relations?.find(({type:i})=>i==="ownedBy")?.targetRef;let L;S&&(L=Q?.[S]);const N=w(e.entity,{defaultKind:"Component"});return f(se,{onAction:()=>V(e.entity),children:[t(ve,{children:t(le,{children:(i=>{const a=Oe[i],d=we(i.toLowerCase());return t("span",{title:d,children:a})})(e.state)})}),t(y,{title:N}),t(y,{title:G}),t(me,{name:Y,src:L??N}),t(y,{title:e.entity.spec?.type}),t(y,{title:e.entity.spec?.lifecycle})]},e.id)};return _||M?t(Be,{}):!W.length||!C.length?t(Ie,{title:"No check entities found",body:"There are no check entities found."}):f($,{children:[f(re,{onSortChange:({direction:e,column:r})=>{j(String(r)),F(e)},sortDescriptor:{direction:u,column:c},children:[f(oe,{children:[t(l,{id:"state",style:{width:"5%"}}),t(l,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"35%"},children:"Name"}),t(l,{id:"system",allowsSorting:!0,style:{width:"20%"},children:"System"}),t(l,{id:"owner",allowsSorting:!0,style:{width:"20%"},children:"Owner"}),t(l,{id:"type",allowsSorting:!0,style:{width:"10%"},children:"Type"}),t(l,{id:"lifecycle",allowsSorting:!0,style:{width:"10%"},children:"Lifecycle"})]}),t(ne,{children:H.map(e=>t(q,{row:e},e.id))})]}),z&&t(ae,{...U})]})};export{Fe as CheckEntitiesTableBUI};
|
|
2
|
+
//# sourceMappingURL=CheckEntitiesTableBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useFeatureFlag as r}from"../../hooks/useFeatureFlag.esm.js";import{CheckPageBUI as o}from"./CheckPageBUI.esm.js";import{CheckPageDeprecated as t}from"./CheckPageDeprecated.esm.js";const a=()=>r("backstage-ui")?e(o,{}):e(t,{});export{a as CheckPage};
|
|
2
|
+
//# sourceMappingURL=CheckPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as l,Fragment as ie}from"react/jsx-runtime";import{parseEntityRef as oe}from"@backstage/catalog-model";import{useRouteRef as v}from"@backstage/core-plugin-api";import{usePermission as se}from"@backstage/plugin-permission-react";import{Box as f,HeaderPage as ae,Flex as U}from"@backstage/ui";import{makeStyles as me}from"@material-ui/core";import{toEntityFilterQuery as R,combineEntityFilterQueries as ne,soundcheckCheckReadPermission as ce}from"@spotify/backstage-plugin-soundcheck-common";import{useState as w,useMemo as s,useEffect as le}from"react";import{useSearchParams as pe,useParams as de}from"react-router-dom";import fe from"react-use/lib/useDebounce";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import{useCheck as he}from"../../hooks/checks/useCheck.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as ue}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCheckStatus as ge}from"../../hooks/aggregations/useCheckStatus.esm.js";import"react-use/lib/useLocalStorage";import{useFilters as ke}from"../../hooks/filters/useFilters.esm.js";import{useLCPReporting as be}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Ie}from"../../hooks/useLoadTimeReporting.esm.js";import{trackDetailsRouteRef as Se,checksPageRouteRef as ye,tracksPageRouteRef as Ee}from"../../routes.esm.js";import{DescriptionCard as Te}from"../Cards/DescriptionCard/DescriptionCard.esm.js";import"../Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js";import"../TrackPage/TrackStatusBarBUI.esm.js";import"../TrackPage/TrackStatusTableBUI.esm.js";import{CheckStatusCard as Ce}from"../Cards/CheckStatusCard/CheckStatusCard.esm.js";import{HistoricalCheckStatusCard as ve}from"../Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js";import{ChipSelector as Re}from"../ChipSelector/ChipSelector.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as V}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import"lodash";import{toFilter as we}from"../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as Pe}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as Ae}from"../Menus/SimpleMenu.esm.js";import{useCheckActions as Fe}from"../Menus/useCheckActions.esm.js";import{PageCustomActions as Le}from"../PageCustomActions/PageCustomActions.esm.js";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{parseNumberOfDays as Ne}from"../TechHealth/Filters/utils.esm.js";import{CheckEntitiesTableBUI as xe}from"./CheckEntitiesTable/CheckEntitiesTableBUI.esm.js";import{ExemptionsTableBUI as je}from"./ExemptionsTableBUI.esm.js";const De=me(()=>({headerDescription:{margin:"var(--bui-space-1) 0 0","& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}},editButton:{marginLeft:"auto"},container:{padding:"0 var(--bui-space-3) var(--bui-space-6)"},tables:{margin:"var(--bui-space-12) 0 0"},tableContent:{margin:"var(--bui-space-3) 0 0"}})),h={ENTITIES:"Entities",EXEMPTIONS:"Exemptions"},Be=(p,e)=>p.levels.flatMap(({checks:d})=>d).find(({id:d})=>d===e)||null,Oe=()=>{const p=De(),[e,d]=pe(),{trackId:i,checkId:t}=de(),{data:a,isLoading:u}=ue(i),{data:g,isLoading:y}=he(t),P=g?.ownerEntityRef,Q=P?oe(P).name:void 0,A=Fe(g??void 0),$=v(Se),H=v(ye),X=v(Ee),[F,q]=w(new Set([h.ENTITIES])),L=F.values().next().value??h.ENTITIES,[n,W]=w(e.get("search")||""),[N,z]=w(""),m=s(()=>e.getAll("states"),[e]),k=s(()=>e.getAll("owners"),[e]),b=s(()=>e.getAll("lifecycles"),[e]),I=s(()=>e.getAll("types"),[e]),S=s(()=>e.getAll("systems"),[e]),E=s(()=>Ne(e.get("numberOfDays")),[e]);fe(()=>{z(n);const o=new URLSearchParams(e.toString());n?o.set("search",n):o.delete("search"),d(o,{replace:!0})},300,[n]);const x=s(()=>({routeName:"soundcheck-check-insights",additionalAttributes:{checkId:t||"",trackId:i||"",filtersApplied:k.length+b.length+I.length+S.length+m.length,ownersFilter:k.join(",")||"",lifecyclesFilter:b.join(",")||"",typesFilter:I.join(",")||"",systemsFilter:S.join(",")||"",statesFilter:m.join(",")||"",numberOfDays:E,checkSearch:N}}),[t,i,k,b,I,S,m,E,N]),{reportContentLoaded:j}=Ie(x),{reporter:G}=be(x),c=s(()=>g??a?.levels.flatMap(o=>o.checks).find(o=>o.id===t),[g,t,a?.levels]),T=we({lifecycles:b,owners:k,types:I,systems:S}),{data:J,isLoading:D}=ge({checkId:t,trackId:i,filter:T,states:m?.length?m:void 0},!!t);let C;if(t)if(a){const o=R(a.filter),re=R(Be(a,t)?.filter);C=ne(o,re)}else c?.filter&&(C=R(c.filter));const{loading:B,allowed:O}=se({permission:ce,resourceRef:t}),K=s(()=>!!c&&!B&&!O,[O,c,B]),{filters:Y,selected:Z,setSelected:_,onRemoveTag:ee,selectedTags:te}=ke({entityFilterQuery:C,hasStatusFilters:!0}),M=G?.getLCPValue();return le(()=>{!y&&!D&&(!i||!u)&&j({lcp:M})},[y,D,u,i,j,M]),y||i&&u?r(Pe,{}):K?r(V,{title:"Cannot view check",body:`User does not have permission to view check with id: ${t}.`}):i&&!u&&!a?r(V,{title:"No track found",body:`There is no track with the requested id: ${i}.`}):l(ie,{children:[r(f,{children:r(ae,{title:c?.name??"",breadcrumbs:i?[{label:"Tracks",href:X()},{label:a?.name??"Track",href:$({trackId:i})}]:[{label:"Checks",href:H()}],customActions:r(Ae,{disabled:!A.length,placement:"left top",menuActions:A})})}),l(f,{className:p.container,children:[l(U,{children:[r(Te,{description:c?.description??void 0,owner:Q}),r(Ce,{states:m,status:J}),r(ve,{checkId:t,trackId:i,filter:T,states:m,numberOfDays:E})]}),l(f,{className:p.tables,children:[l(U,{justify:"between",children:[r(f,{minWidth:"12rem",children:r(Re,{options:Object.values(h),selected:F,ariaLabel:"Sections",onSelectionChange:q})}),r(Le,{searchValue:n,setSearchValue:o=>W(o),filters:Y,selected:Z,setSelected:_,onRemoveTag:ee,selectedTags:te})]}),l(f,{className:p.tableContent,children:[L===h.ENTITIES&&r(xe,{checkId:t,trackId:a?.id,filter:T,states:m,searchValue:n}),L===h.EXEMPTIONS&&r(je,{checkId:t,searchValue:n})]})]})]})]})};export{Oe as CheckPageBUI};
|
|
2
|
+
//# sourceMappingURL=CheckPageBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as i,jsxs as u}from"react/jsx-runtime";import{useRouteRef as pe}from"@backstage/core-plugin-api";import{EntityRefLink as he}from"@backstage/plugin-catalog-react";import{usePermission as K}from"@backstage/plugin-permission-react";import{makeStyles as fe,useTheme as ue,Button as ge,Typography as X,Tabs as ye,Tab as Y,Box as Z}from"@material-ui/core";import{soundcheckCheckReadPermission as ke,soundcheckCheckUpdatePermission as Ce,toEntityFilterQuery as M,combineEntityFilterQueries as Se}from"@spotify/backstage-plugin-soundcheck-common";import w from"lodash/isEqual";import{useMemo as a,useCallback as W,useState as v,useEffect as ee}from"react";import{useSearchParams as xe,useParams as be,useNavigate as ve}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useCheck as we}from"../../hooks/checks/useCheck.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as Ee}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCheckStatus as Ne}from"../../hooks/aggregations/useCheckStatus.esm.js";import"react-use/lib/useLocalStorage";import{useLCPReporting as Le}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Re}from"../../hooks/useLoadTimeReporting.esm.js";import{checkEditRouteRef as Ie}from"../../routes.esm.js";import{toFilter as Te}from"../../utils/helpers.esm.js";import{CheckStatusBar as Fe}from"../CheckStatusBar/CheckStatusBar.esm.js";import"../CheckStatusBar/CheckStatusBarBUI.esm.js";import{FilterSidebar as De}from"../FilterSidebar/FilterSidebar.esm.js";import{StateFilter as Be}from"../FilterSidebar/StateFilter.esm.js";import{LoadingIndicator as Pe}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as te}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as Ae}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContentDeprecated as je}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";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 Oe}from"../TechHealth/Filters/utils.esm.js";import{CheckEntitiesTable as Me}from"./CheckEntitiesTable/CheckEntitiesTable.esm.js";import{CheckStatusHistoryChart as We}from"./CheckStatusHistoryChart.esm.js";import{CheckStatusTable as ze}from"./CheckStatusTable.esm.js";import{ExemptionsTable as He}from"./ExemptionsTable.esm.js";function $e(t,y){for(const l of t.levels)for(const r of l.checks)if(r.id===y)return r;return null}const Qe=fe(t=>({root:{height:"100%"},pageContent:{display:"flex",minHeight:`calc(100vh - ${t.spacing(15)}px)`,borderTop:`1px solid ${t.palette.divider}`,height:"100%"},mainContentArea:{flex:1,display:"flex",flexDirection:"column",minWidth:0},editButton:{marginLeft:"auto"},statusContainer:{borderBottom:`1px solid ${t.palette.divider}`,padding:t.spacing(3,0,2,3)},statusCards:{display:"flex",gap:t.spacing(2)},currentStatusSection:{width:"325px",minWidth:"325px",flex:0,display:"flex",flexDirection:"column"},historicalStatusSection:{flex:1,flexShrink:1,flexGrow:1,flexBasis:"auto",minWidth:"150px",display:"flex",flexDirection:"column"},statusTitle:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${t.typography.h5.fontSize}px`,cursor:"default",marginBottom:t.spacing(2)},headerDescription:{fontSize:t.typography.body2.fontSize,margin:t.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},entitiesContainer:{padding:t.spacing(2,3,3,3)},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}}})),Ue=()=>{const[t,y]=xe(),{trackId:l,checkId:r}=be(),s=a(()=>t.getAll("states"),[t]),c=a(()=>t.getAll("owners"),[t]),d=a(()=>t.getAll("lifecycles"),[t]),m=a(()=>t.getAll("types"),[t]),p=a(()=>t.getAll("systems"),[t]),L=a(()=>Oe(t.get("numberOfDays")),[t]),z=a(()=>({routeName:"soundcheck-check-insights",additionalAttributes:{checkId:r||"",trackId:l||"",filtersApplied:c.length+d.length+m.length+p.length+s.length,ownersFilter:c.join(",")||"",lifecyclesFilter:d.join(",")||"",typesFilter:m.join(",")||"",systemsFilter:p.join(",")||"",statesFilter:s.join(",")||"",numberOfDays:L}}),[r,l,c,d,m,p,s,L]),{reportContentLoaded:H}=Re(z),{reporter:ie}=Le(z),o=Qe(),R=W(()=>c.map(e=>({label:e,value:e})),[c]),[k,I]=v(d),[C,T]=v(R()),[S,F]=v(m),[x,D]=v(p),[b,B]=v(s);ee(()=>{T(R()),I(d),F(m),D(p),B(s)},[c,d,m,p,s,R]);const re=a(()=>{const e={owners:!w(C,c),lifecycles:!w(k,d),types:!w(S,m),systems:!w(x,p),states:!w(b,s)};return Object.values(e).some(Boolean)},[C,c,k,d,S,m,x,p,b,s]),oe=W(()=>{const e=new URLSearchParams(t);e.delete("lifecycles"),e.delete("owners"),e.delete("types"),e.delete("systems"),e.delete("states"),k.length>0&&k.forEach(n=>e.append("lifecycles",n)),C.length>0&&C.forEach(n=>e.append("owners",typeof n=="string"?n:n.value)),S.length>0&&S.forEach(n=>e.append("types",n)),x.length>0&&x.forEach(n=>e.append("systems",n)),b.length>0&&b.forEach(n=>e.append("states",n)),y(e)},[t,k,C,S,x,b,y]),se=W(()=>{I([]),T([]),F([]),D([]),B([]);const e=new URLSearchParams(t);e.delete("lifecycles"),e.delete("owners"),e.delete("types"),e.delete("systems"),e.delete("states"),y(e)},[t,y]),P=Te({lifecycles:d,owners:c,types:m,systems:p}),{data:g,isLoading:E}=Ee(l),{data:h,isLoading:N}=we(r),{loading:$,allowed:A}=K({permission:ke,resourceRef:r}),f=a(()=>h??g?.levels.flatMap(e=>e.checks).find(e=>e.id===r),[h,r,g?.levels]),{loading:Q,allowed:U}=K({permission:Ce,resourceRef:r}),V=ve(),G=pe(Ie),ne=ue();let j;if(r)if(g){const e=M(g.filter),n=M($e(g,r)?.filter);j=Se(e,n)}else f?.filter&&(j=M(f.filter));const{data:q,isLoading:J}=Ne({checkId:r,trackId:l,filter:P,states:s?.length?s:void 0},!!r),ae=a(()=>h?.ownerEntityRef?i(he,{color:"inherit",entityRef:h.ownerEntityRef,className:o.ownerLink}):null,[h?.ownerEntityRef,o.ownerLink]),le=a(()=>!Q&&U&&h?.isEditable?i(ge,{className:o.editButton,variant:"contained",color:"primary",onClick:()=>{V(G({checkId:h.id}))},children:"Edit Check"}):null,[U,h?.id,h?.isEditable,o.editButton,G,Q,V]),ce=a(()=>f?.description?i(je,{className:o.headerDescription,content:f.description}):null,[o.headerDescription,f?.description]);Ae({title:f?.name??r??"Soundcheck",description:ce,customSubtitle:ae,sectionRight:le});const de=a(()=>!!f&&!$&&!A,[A,f,$]),[O,me]=v(0),_=ie?.getLCPValue();return ee(()=>{!N&&!J&&(!l||!E)&&H({lcp:_})},[N,J,E,l,H,_]),u("div",{children:[i(te,{entityName:"track",entityId:l,showNotFound:!!l&&!E&&!g}),i(te,{entityName:"check",entityId:r,showCannotView:de}),(N||!!l&&E)&&i(Pe,{}),!N&&A&&i("div",{className:o.root,children:u("div",{className:o.pageContent,children:[i(De,{trackFilter:j,stagedTypes:S,stagedLifecycles:k,stagedOwners:C,stagedSystems:x,onTypesChange:F,onLifecyclesChange:I,onOwnersChange:T,onSystemsChange:D,onApplyFilters:oe,onClearFilters:se,hasFilterChanges:re,children:i(Be,{states:s,stagedStates:b,onStagedStatesChange:B})}),u("div",{className:o.mainContentArea,children:[i("div",{className:o.statusContainer,children:u("div",{className:o.statusCards,children:[u("div",{className:o.currentStatusSection,children:[i(X,{className:o.statusTitle,children:"Current Status"}),i("div",{style:{width:"100%",height:30,display:"flex",alignItems:"flex-start",marginBottom:ne.spacing(2)},children:i(Fe,{status:q,states:s})}),i("div",{children:i(ze,{checkStatus:q,states:s})})]}),u("div",{className:o.historicalStatusSection,children:[i(X,{className:o.statusTitle,children:"Historical Status"}),i("div",{style:{height:"100%"},children:i(We,{checkId:r,trackId:l,filter:P,states:s,numberOfDays:L})})]})]})}),u("div",{className:o.entitiesContainer,children:[u(ye,{value:O,onChange:(e,n)=>me(n),indicatorColor:"primary",textColor:"primary","aria-label":"Entities and Exemptions Tabs",children:[i(Y,{label:"Entities"}),i(Y,{label:"Exemptions"})]}),i(Z,{hidden:O!==0,children:i(Me,{checkId:r,trackId:g?.id,filter:P,states:s})}),i(Z,{hidden:O!==1,children:i(He,{checkId:r})})]})]})]})})]})};export{Ue as CheckPageDeprecated};
|
|
2
|
+
//# sourceMappingURL=CheckPageDeprecated.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as m}from"react/jsx-runtime";import{makeStyles as
|
|
1
|
+
import{jsx as e,jsxs as m}from"react/jsx-runtime";import{useApi as A,configApiRef as v}from"@backstage/core-plugin-api";import{makeStyles as g,useTheme as I}from"@material-ui/core";import{DateTime as b}from"luxon";import{ResponsiveContainer as D,LineChart as L,CartesianGrid as C,XAxis as W,YAxis as c,Tooltip as K,Line as n}from"recharts";import{useCheckStatusHistory as O}from"../../hooks/aggregations/useCheckStatusHistory.esm.js";import{getCheckStatusColor as o}from"../../utils/colors.esm.js";import{compactNumberFormatter as S}from"../../utils/formatters.esm.js";import{LoadingChart as w}from"../Charts/LoadingChart.esm.js";import{TimePeriodBar as F}from"../TimePeriodBar/TimePeriodBar.esm.js";const R=g({root:{height:290,width:"100%",position:"relative",borderRadius:"4px"}}),T=({checkId:d,trackId:p,filter:l,states:k,numberOfDays:h})=>{const t=I(),y=R(),f=A(v).getOptionalNumber("soundcheck.results.history.retentionTimeInDays"),{data:s,isLoading:u}=O({checkId:d,trackId:p,filter:l,states:k,numberOfDays:h},!!d);if(u)return e(w,{type:"line",numLines:3});const r=i=>s?.history.some(x=>x[i]>0)??!1,a={stroke:t.palette.background.paper,strokeWidth:1,r:5};return m("div",{className:y.root,children:[e(F,{maxNumberOfDays:f}),e(D,{height:250,debounce:1,children:m(L,{data:s?.history??[],margin:{top:0,right:0,bottom:0,left:0},children:[e(C,{stroke:t.palette.divider,strokeWidth:1,horizontal:!0,vertical:!1}),e(W,{dataKey:"date",tickFormatter:i=>b.fromISO(i).toFormat("MMM d"),tickLine:!1,axisLine:!1}),e(c,{yAxisId:"percentage",domain:[0,100],axisLine:!1,tickLine:!1,tickFormatter:i=>`${i}%`,ticks:[0,25,50,75,100]}),e(c,{yAxisId:"count",orientation:"right",domain:[0,s?.numberOfEntities??0],axisLine:!1,tickLine:!1,tickFormatter:i=>S(i)}),e(K,{contentStyle:{backgroundColor:t.palette.background.paper,color:t.palette.text.primary,border:`1px solid ${t.palette.divider}`},cursor:{stroke:t.palette.divider,strokeWidth:1}}),r("passed")&&e(n,{type:"monotone",dataKey:"passed",stroke:o(t,"passed"),yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o(t,"passed"),...a}}),r("failed")&&e(n,{type:"monotone",dataKey:"failed",stroke:o(t,"failed"),yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o(t,"failed"),...a}}),r("warning")&&e(n,{type:"monotone",dataKey:"warning",stroke:o(t,"warning"),yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o(t,"warning"),...a}}),r("error")&&e(n,{type:"monotone",dataKey:"error",stroke:o(t,"error"),yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o(t,"error"),...a}}),r("exempt")&&e(n,{type:"monotone",dataKey:"exempt",stroke:o(t,"exempt"),yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o(t,"exempt"),...a}}),r("notReported")&&e(n,{type:"monotone",dataKey:"notReported",stroke:o(t,"not-reported"),yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o(t,"not-reported"),...a}})]})})]})};export{T as CheckStatusHistoryChart};
|
|
2
2
|
//# sourceMappingURL=CheckStatusHistoryChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as k}from"react/jsx-runtime";import{Box as p}from"@backstage/ui";import{makeStyles as b}from"@material-ui/core";import{DateTime as y}from"luxon";import{Line as g,ResponsiveContainer as x,LineChart as v,CartesianGrid as C,XAxis as L,YAxis as a,Tooltip as I}from"recharts";import{useCheckStatusHistory as A}from"../../hooks/aggregations/useCheckStatusHistory.esm.js";import{getChartStatusKeys as S,getChartStatusColor as F}from"../../utils/charts.esm.js";import{compactNumberFormatter as D}from"../../utils/formatters.esm.js";import{LoadingChart as O}from"../Charts/LoadingChart.esm.js";const W=b(()=>({container:{height:180,overflow:"hidden"},"@global":{".recharts-default-tooltip li":{margin:"0 !important",padding:"0 !important"}}})),H=({checkId:e,trackId:n,filter:s,states:m,numberOfDays:c})=>{const d=W(),{data:i,isLoading:u}=A({checkId:e,trackId:n,filter:s,states:m,numberOfDays:c},!!e);if(u)return r(O,{type:"line",numLines:3});const l=t=>i?.history.some(o=>o[t]>0)??!1,f={stroke:"var(--bui-fg-secondary)",strokeWidth:1,r:5},h=S().filter(t=>l(t)).map(t=>{const o=F(t);return r(g,{type:"monotone",dataKey:t,stroke:o,yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o,...f}},t)});return r(p,{className:d.container,children:r(x,{debounce:1,children:k(v,{data:i?.history??[],margin:{top:0,right:0,bottom:0,left:0},children:[r(C,{stroke:"var(--bui-border)",strokeWidth:1,horizontal:!0,vertical:!1}),r(L,{dataKey:"date",tickFormatter:t=>y.fromISO(t).toFormat("MMM d"),tickLine:!1,axisLine:!1}),r(a,{yAxisId:"percentage",domain:[0,100],axisLine:!1,tickLine:!1,tickFormatter:t=>`${t}%`,ticks:[0,25,50,75,100]}),r(a,{yAxisId:"count",orientation:"right",domain:[0,i?.numberOfEntities??0],axisLine:!1,tickLine:!1,tickFormatter:t=>D(t)}),r(I,{contentStyle:{backgroundColor:"var(--bui-bg)",color:"var(--bui-fg-secondary)",border:"1px solid var(--bui-border)",borderRadius:"var(--bui-radius-3)"},cursor:{stroke:"var(--bui-fg-secondary)",strokeWidth:1}}),h]})})})};export{H as CheckStatusHistoryChartBUI};
|
|
2
|
+
//# sourceMappingURL=CheckStatusHistoryChartBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as o,jsxs as m}from"react/jsx-runtime";import{useTheme as y,Typography as p}from"@material-ui/core";import{makeStyles as k,createStyles as x}from"@material-ui/core/styles";import{Skeleton as N}from"@material-ui/lab";import{memo as S,useMemo as C,Fragment as v}from"react";import{getCheckStatusColor as n}from"../../utils/colors.esm.js";import{compactNumberFormatter as d}from"../../utils/formatters.esm.js";import{CheckStateCategories as w,CheckState as T}from"./utils.esm.js";const b=k(e=>x({container:{display:"grid",gridTemplateColumns:"3fr 2fr",gap:e.spacing(1),minWidth:0},item:{display:"flex",alignItems:"center",fontSize:"0.875rem",minWidth:0},legendDash:{width:e.spacing(2),height:e.spacing(.75),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",fontSize:"0.875rem",minWidth:0,flex:1},categoryText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.875rem",minWidth:0,flex:1},value:{fontSize:"0.875rem",color:e.palette.text.primary},valueCell:{justifyContent:"flex-end",whiteSpace:"nowrap"},percentage:{color:e.palette.text.secondary,marginLeft:e.spacing(1)},skeleton:{backgroundColor:e.palette.action.hover}})),R=S(({checkStatus:e,states:l})=>{const r=y(),t=b(),g=C(()=>[{name:"Passed",key:"passed",color:n(r,"passed")},{name:"Failed",key:"failed",color:n(r,"failed")},{name:"Warning",key:"warning",color:n(r,"warning")},{name:"Exempt",key:"exempt",color:n(r,"exempt")},{name:"Error",key:"error",color:n(r,"error")},{name:"Not Reported",key:"notReported",color:n(r,"not-reported")}],[r]),s=e?e.numberOfEntities-e.notApplicable-e.exempt:-1,h=i=>{let a=!1;return l?.length&&(i===w.NOT_REPORTED?a=l.includes(T.NOT_REPORTED):a=l.includes(i.toUpperCase())),!l?.length||a?Number(e?.[i]??0)??0:0};return o("div",{className:t.container,children:g.map(({name:i,key:a,color:f})=>{const c=h(a),u=s>0?Math.round(c/s*100):0;return m(v,{children:[o("div",{className:t.item,children:m("div",{className:t.category,children:[o("span",{className:t.legendDash,style:{backgroundColor:f}}),o(p,{className:t.categoryText,children:i})]})}),o("div",{className:`${t.item} ${t.valueCell}`,children:e?m(p,{className:t.value,children:[d(c)," of"," ",d(s),m("span",{className:t.percentage,children:["(",u,"%)"]})]}):o(N,{width:120,height:20,className:t.skeleton})})]},a)})})});export{R as CheckStatusTable};
|
|
2
2
|
//# sourceMappingURL=CheckStatusTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as i,jsxs as n}from"react/jsx-runtime";import{Text as c}from"@backstage/ui";import{makeStyles as g,createStyles as f}from"@material-ui/core/styles";import{Skeleton as v}from"@material-ui/lab";import{memo as y,Fragment as b}from"react";import{chartStatuses as x,getChartStatusKey as C,getChartStatusColor as S}from"../../utils/charts.esm.js";import{compactNumberFormatter as d}from"../../utils/formatters.esm.js";import{CheckStateCategories as k,CheckState as N}from"./utils.esm.js";const T=g(()=>f({container:{display:"grid",gridTemplateColumns:"3fr 2fr",gap:"var(--bui-space-1)",minWidth:0},item:{display:"flex",alignItems:"center",minWidth:0},legendDash:{width:"var(--bui-space-3)",height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)",marginRight:"var(--bui-space-2)"},category:{display:"flex",alignItems:"center",minWidth:0,flex:1},categoryText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:1},valueCell:{justifyContent:"flex-end",whiteSpace:"nowrap"},percentage:{marginLeft:"var(--bui-space-1)"}})),w=y(({checkStatus:r,states:l})=>{const a=T(),p=x.map(t=>{const e=C(t),s=S(e);return{name:t,key:e,color:s}}),o=r?r.numberOfEntities-r.notApplicable-r.exempt:-1,h=t=>{let e=!1;return l?.length&&(t===k.NOT_REPORTED?e=l.includes(N.NOT_REPORTED):e=l.includes(t.toUpperCase())),!l?.length||e?Number(r?.[t]??0)??0:0};return i("div",{className:a.container,children:p.map(({name:t,key:e,color:s})=>{const m=h(e),u=o>0?Math.round(m/o*100):0;return n(b,{children:[i("div",{className:a.item,children:n("div",{className:a.category,children:[i("span",{className:a.legendDash,style:{backgroundColor:s}}),i(c,{className:a.categoryText,variant:"body-small",children:t})]})}),i("div",{className:`${a.item} ${a.valueCell}`,children:r?n(c,{variant:"body-small",children:[d(m)," of"," ",d(o)," (",u,"%)"]}):i(v,{width:120,height:20})})]},e)})})});export{w as CheckStatusTableBUI};
|
|
2
|
+
//# sourceMappingURL=CheckStatusTableBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as i,jsxs as m,Fragment as D}from"react/jsx-runtime";import{parseEntityRef as o}from"@backstage/catalog-model";import{useRouteRef as N,useApi as U}from"@backstage/core-plugin-api";import{entityRouteRef as $,entityPresentationApiRef as F}from"@backstage/plugin-catalog-react";import{Table as H,TableHeader as M,Column as d,TableBody as O,Row as z,Cell as y,TooltipTrigger as J,Button as V,Tooltip as q,TablePagination as G}from"@backstage/ui";import{makeStyles as K}from"@material-ui/core";import{useState as _,useMemo as l,useCallback as Q}from"react";import{useNavigate as X}from"react-router-dom";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as Y}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useExemptions as Z}from"../../hooks/exemptions/useExemptions.esm.js";import{formatTimestamp as ee}from"../../utils/time.esm.js";import{CustomCell as te}from"../CustomCell/CustomCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as C}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"../../routes.esm.js";import{LoadingTableSkeleton as ie}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";const S=10,re=K(f=>({justificationCell:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",whiteSpace:"pre-line",wordBreak:"break-word",fontWeight:"normal",textAlign:"left",background:"none !important",padding:0},emptyStateWrapper:{padding:f.spacing(2)}})),oe=({checkId:f,searchValue:u})=>{const j=re(),w=X(),b=N($),[c,R]=_("ascending"),[h,P]=_("entity"),{data:p,isLoading:B,error:E}=Z(f),v=l(()=>p?.totalCount??0,[p]),g=l(()=>p?.edges??[],[p]),L=Q(t=>{const e=o(t),r=b(e);w(`${r}/soundcheck`)},[w,b]),s=l(()=>{const t=(e,r)=>e<r?c==="ascending"?-1:1:e>r?c==="ascending"?1:-1:0;return[...g].sort((e,r)=>{const n=e.node,a=r.node;switch(h){case"entity":return t(o(n.entity_ref).name,o(a.entity_ref).name);case"justification":return t(n.justification??"",a.justification??"");case"user":return t(o(n.user_ref).name,o(a.user_ref).name);case"date":return t(n.timestamp,a.timestamp);default:return 0}})},[g,h,c]),k=U(F),x=l(()=>{const t=new Map;for(const{node:e}of s){const r=k.forEntity(e.entity_ref)?.snapshot?.primaryTitle;r&&t.set(e.entity_ref,r)}return t},[s,k]),T=l(()=>{if(!u?.length)return s;const t=u.toLowerCase().trim();return s.filter(({node:e})=>x.get(e.entity_ref)?.toLowerCase().includes(t))},[s,u,x]),A=v>S,{paginatedItems:I,paginationProps:W}=Y({pageParam:"perPage",defaultPageSize:S,items:T});return B?i(ie,{}):E?i(C,{title:"Exemptions failed",body:"Failed to load exemptions."}):!g.length||!T.length?i(C,{title:"No check exemptions found",body:"There are no check exemptions found."}):m(D,{children:[m(H,{onSortChange:({direction:t,column:e})=>{P(e),R(t)},sortDescriptor:{direction:c,column:h},children:[m(M,{children:[i(d,{id:"entity",allowsSorting:!0,isRowHeader:!0,style:{width:"35%"},children:"Entity"}),i(d,{id:"justification",style:{width:"40%"},children:"Justification"}),i(d,{id:"user",allowsSorting:!0,style:{width:"15%"},children:"User"}),i(d,{id:"date",allowsSorting:!0,style:{width:"10%"},children:"Date"})]}),i(O,{children:I.map(t=>{const e=t.node,r=ee(e.timestamp),n=o(e.user_ref),a=o(e.entity_ref);return m(z,{onAction:()=>L(e.entity_ref),children:[i(y,{title:a.name}),i(te,{children:m(J,{children:[i(V,{variant:"tertiary",className:j.justificationCell,children:e.justification}),i(q,{children:e.justification})]})}),i(y,{title:n.name}),i(y,{title:r})]},`${e.entity_ref}-${e.check_id}`)})})]}),A&&i(G,{...W})]})};export{oe as ExemptionsTableBUI};
|
|
2
|
+
//# sourceMappingURL=ExemptionsTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ResultState as
|
|
1
|
+
import{ResultState as E}from"../../graphql/generated/index.esm.js";const e={PASSED:"PASSED",FAILED:"FAILED",WARNING:"WARNING",EXEMPT:"EXEMPT",NOT_APPLICABLE:"NOT_APPLICABLE",NOT_REPORTED:"NOT_REPORTED",ERROR:"ERROR"},r={PASSED:"passed",FAILED:"failed",WARNING:"warning",EXEMPT:"exempt",ERROR:"error",NOT_APPLICABLE:"notApplicable",NOT_REPORTED:"notReported"},R={PASSED:"passed",FAILED:"failed",WARNING:"warning",EXEMPT:"exempt",ERROR:"error",NOT_REPORTED:"not-reported"},a=t=>{switch(t){case e.PASSED:return E.Passed;case e.FAILED:return E.Failed;case e.WARNING:return E.Warning;case e.NOT_APPLICABLE:return E.NotApplicable;case e.NOT_REPORTED:return E.NotReported;case e.EXEMPT:return E.Exempt;case e.ERROR:return E.Error;default:return}};export{e as CheckState,r as CheckStateCategories,R as CheckStateColors,a as toResultState};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{EntityRefLink as c}from"@backstage/plugin-catalog-react";import{makeStyles as o,Box as
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{EntityRefLink as c}from"@backstage/plugin-catalog-react";import{makeStyles as o,Box as r,Typography as n}from"@material-ui/core";import{dump as l}from"js-yaml";import{useContext as d}from"react";import{SoundcheckMarkdownContentDeprecated as m}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import{CheckPreviewContext as s}from"./CheckPreviewContext.esm.js";const h=o(i=>({checkPreview:{padding:i.spacing(1,2),border:`1px solid ${i.palette.divider}`,borderRadius:i.spacing(1),height:"99%",overflow:"auto"},markdownArea:{border:`1px solid ${i.palette.divider}`,borderRadius:i.spacing(1),padding:i.spacing(0,1.5),"& p":{margin:i.spacing(1,0)},maxHeight:300,overflow:"auto"},yamlArea:{margin:i.spacing(.5,0),marginLeft:i.spacing(1)}})),p=()=>{const i=h(),{check:t}=d(s);return a(r,{className:i.checkPreview,children:[t&&a(r,{children:[e(r,{marginBottom:1,children:e(n,{variant:"subtitle1",children:t.name})}),a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Id"}),e(n,{variant:"body2",children:t.id})]}),a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Description"}),e(m,{className:i.markdownArea,content:t.description??"N/A"})]}),t.ownerEntityRef&&a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Owner"}),e(r,{children:e(c,{target:"_blank",rel:"noreferrer",entityRef:t.ownerEntityRef})})]}),a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Type"}),e(r,{children:e(n,{variant:"body2",children:t.type??"default"})})]}),a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Check Rule"}),e(r,{children:e("pre",{className:i.yamlArea,children:l(t.rule)})})]}),t.filter&&a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Inclusion Filters"}),e(r,{children:e("pre",{className:i.yamlArea,children:l(t.filter)})})]}),t.exclude&&a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Exclusion Filters"}),e(r,{children:e("pre",{className:i.yamlArea,children:l(t.exclude)})})]}),t.applicable&&a(r,{marginBottom:2,children:[e(n,{variant:"subtitle2",children:"Applicability Rule"}),e(r,{children:e("pre",{className:i.yamlArea,children:l(t.applicable)})})]})]}),!t&&e(r,{textAlign:"center",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",children:e(n,{children:"Click a check to view it's properties."})})]})};export{p as CheckPreview};
|
|
2
2
|
//# sourceMappingURL=CheckPreview.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as n,Fragment as w,jsx as o}from"react/jsx-runtime";import{makeStyles as I,Box as c,Checkbox as $,Typography as B,FormHelperText as N,Button as T}from"@material-ui/core";import L from"@material-ui/icons/CheckCircleOutlined";import{isEmpty as O,last as A,difference as R}from"lodash";import{useContext as f,useMemo as u}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useGetChecks as z}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../ListboxVirtualized/ListboxVirtualized.esm.js";import{ControlledAutocomplete as E}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{CheckPreviewContext as x}from"./CheckPreviewContext.esm.js";const C=I(e=>({checkSelectCard:{padding:e.spacing(1,2),border:`1px solid ${e.palette.divider}`,borderRadius:e.spacing(.25),"&:hover":{cursor:"pointer"},display:"flex",alignItems:"center",background:e.palette.background.default,minWidth:200},selectedCard:{border:`1px solid ${e.palette.border}`},selectedIcon:{color:e.palette.text.secondary},checkCardInfo:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},selectArea:{display:"flex",flexDirection:"column",gap:e.spacing(.75)},removeButton:{margin:0,marginLeft:e.spacing(1),padding:0,color:e.palette.text.primary},wrapper:{padding:e.spacing(1),border:`1px solid ${e.palette.divider}`,borderRadius:e.spacing(1)},wrapperError:{border:`1px solid ${e.palette.error.main}`},checkSearch:{background:e.palette.background.paper}})),j=({check:e,removeCheck:h})=>{const i=C(),{updateCheck:d,check:p}=f(x),m=e&&p?.id===e.id;return e?n(c,{className:`${i.checkSelectCard} ${m?i.selectedCard:""}`,onClick:()=>d(e),children:[o(L,{className:m?i.selectedIcon:"",fontSize:"small"}),o(c,{className:i.checkCardInfo,flex:1,marginLeft:2,children:e.name}),o(T,{onClick:()=>{h(e.id)},className:i.removeButton,variant:"text",size:"small","aria-label":`remove check ${e.id}`,children:"Remove"})]}):null},F=({currentSectionCheckIds:e,addCheckToSelection:h,removeCheck:i,error:d,helperText:p,blankText:m})=>{const s=C(),{data:k,isLoading:b}=z({ids:void 0}),{updateCheck:v}=f(x),a=u(()=>k?.edges.map(r=>r.node)??[],[k]),S=u(()=>a.map(r=>r.id)??[],[a]),y=r=>{if(r.length>e.length){const t=A(r),l=a.find(g=>g.id===t);h(l),l&&v(l)}if(r.length<e.length){const t=R(e,r)?.[0];t&&i(t)}};return n(w,{children:[n(c,{className:`${s.wrapper} ${d?s.wrapperError:""}`,children:[o(c,{className:s.checkSearch,marginBottom:1,children:o(E,{multiple:!0,disableCloseOnSelect:!0,options:S,renderOption:(r,{selected:t})=>{const l=a.find(g=>g.id===r);return n(c,{display:"flex",alignItems:"center",gridGap:4,children:[o($,{checked:t,size:"small",color:"primary"}),o(c,{children:l?l.name:r})]})},getOptionLabel:r=>a.find(t=>t.id===r)?.name??r,multipleValue:e,onChange:y,isLoading:b,placeholder:"Check Search",autoSelect:!1,testId:"check-search",getOptionSelected:(r,t)=>t.includes(r)})}),n(c,{className:s.selectArea,children:[O(e)&&o(c,{marginTop:1,marginBottom:1,textAlign:"center",children:o(B,{children:m??"Select checks from the dropdown above."})}),e.map(r=>o(j,{removeCheck:i,check:a.find(t=>t.id===r)},r))]})]}),p&&o(N,{error:d,children:p})]})};export{F as CheckSelection};
|
|
1
|
+
import{jsxs as n,Fragment as w,jsx as o}from"react/jsx-runtime";import{makeStyles as I,Box as c,Checkbox as $,Typography as B,FormHelperText as N,Button as T}from"@material-ui/core";import L from"@material-ui/icons/CheckCircleOutlined";import{isEmpty as O,last as A,difference as R}from"lodash";import{useContext as f,useMemo as u}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useGetChecks as z}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../ListboxVirtualized/ListboxVirtualized.esm.js";import{ControlledAutocomplete as E}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{CheckPreviewContext as x}from"./CheckPreviewContext.esm.js";const C=I(e=>({checkSelectCard:{padding:e.spacing(1,2),border:`1px solid ${e.palette.divider}`,borderRadius:e.spacing(.25),"&:hover":{cursor:"pointer"},display:"flex",alignItems:"center",background:e.palette.background.default,minWidth:200},selectedCard:{border:`1px solid ${e.palette.border}`},selectedIcon:{color:e.palette.text.secondary},checkCardInfo:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},selectArea:{display:"flex",flexDirection:"column",gap:e.spacing(.75)},removeButton:{margin:0,marginLeft:e.spacing(1),padding:0,color:e.palette.text.primary},wrapper:{padding:e.spacing(1),border:`1px solid ${e.palette.divider}`,borderRadius:e.spacing(1)},wrapperError:{border:`1px solid ${e.palette.error.main}`},checkSearch:{background:e.palette.background.paper}})),j=({check:e,removeCheck:h})=>{const i=C(),{updateCheck:d,check:p}=f(x),m=e&&p?.id===e.id;return e?n(c,{className:`${i.checkSelectCard} ${m?i.selectedCard:""}`,onClick:()=>d(e),children:[o(L,{className:m?i.selectedIcon:"",fontSize:"small"}),o(c,{className:i.checkCardInfo,flex:1,marginLeft:2,children:e.name}),o(T,{onClick:()=>{h(e.id)},className:i.removeButton,variant:"text",size:"small","aria-label":`remove check ${e.id}`,children:"Remove"})]}):null},F=({currentSectionCheckIds:e,addCheckToSelection:h,removeCheck:i,error:d,helperText:p,blankText:m})=>{const s=C(),{data:k,isLoading:b}=z({ids:void 0}),{updateCheck:v}=f(x),a=u(()=>k?.edges.map(r=>r.node)??[],[k]),S=u(()=>a.map(r=>r.id)??[],[a]),y=r=>{if(r.length>e.length){const t=A(r),l=a.find(g=>g.id===t);h(l),l&&v(l)}if(r.length<e.length){const t=R(e,r)?.[0];t&&i(t)}};return n(w,{children:[n(c,{className:`${s.wrapper} ${d?s.wrapperError:""}`,children:[o(c,{className:s.checkSearch,marginBottom:1,children:o(E,{multiple:!0,disableCloseOnSelect:!0,options:S,renderOption:(r,{selected:t})=>{const l=a.find(g=>g.id===r);return n(c,{display:"flex",alignItems:"center",gridGap:4,children:[o($,{checked:t,size:"small",color:"primary"}),o(c,{children:l?l.name:r})]})},getOptionLabel:r=>a.find(t=>t.id===r)?.name??r,multipleValue:e,onChange:y,isLoading:b,placeholder:"Check Search",autoSelect:!1,testId:"check-search",getOptionSelected:(r,t)=>t.includes(r)})}),n(c,{className:s.selectArea,children:[O(e)&&o(c,{marginTop:1,marginBottom:1,textAlign:"center",children:o(B,{children:m??"Select checks from the dropdown above."})}),e.map(r=>o(j,{removeCheck:i,check:a.find(t=>t.id===r)},r))]})]}),p&&o(N,{error:d,children:p})]})};export{F as CheckSelection};
|
|
2
2
|
//# sourceMappingURL=CheckSelection.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import{useTheme as g,Box as h}from"@material-ui/core";import{makeStyles as u}from"@material-ui/core/styles";import{useMemo as i,useCallback as N}from"react";import{getCheckStatusColor as a}from"../../utils/colors.esm.js";import{CategoryBar as T}from"../CategoryBar/CategoryBar.esm.js";import{CheckState as s,CheckStateCategories as r,CheckStateColors as l}from"../CheckPage/utils.esm.js";const A=u(e=>({categoryBar:{"& .MuiBox-root > div":{height:"8px"}}})),C=({status:e,className:m,states:t})=>{const E=A(),o=g(),p=i(()=>({passed:!t?.length||t.includes(s.PASSED)?e?.passed??0:0,failed:!t?.length||t.includes(s.FAILED)?e?.failed??0:0,warning:!t?.length||t.includes(s.WARNING)?e?.warning??0:0,error:!t?.length||t.includes(s.ERROR)?e?.error??0:0,exempt:!t?.length||t.includes(s.EXEMPT)?e?.exempt??0:0,notReported:!t?.length||t.includes(s.NOT_REPORTED)?e?.notReported??0:0}),[e,t]),R=N(c=>{switch(c){case r.NOT_APPLICABLE:return"Not Applicable";case r.NOT_REPORTED:return"Not Reported";default:return c.charAt(0).toUpperCase()+c.slice(1)}},[]),d=i(()=>({passed:a(o,l.PASSED),failed:a(o,l.FAILED),warning:a(o,l.WARNING),error:a(o,l.ERROR),exempt:a(o,l.EXEMPT),notReported:a(o,l.NOT_REPORTED)}),[o]);return n(h,{className:m,style:{width:"100%"},children:n(T,{className:E.categoryBar,data:p,categories:[r.PASSED,r.FAILED,r.WARNING,r.ERROR,r.EXEMPT,r.NOT_REPORTED],categoryColors:d,showTooltip:!0,valueFormatter:c=>c.toString(),categoryFormatter:R})})};export{C as CheckStatusBar};
|
|
2
2
|
//# sourceMappingURL=CheckStatusBar.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as l}from"react/jsx-runtime";import{Box as m,Flex as R}from"@backstage/ui";import{makeStyles as S}from"@material-ui/core/styles";import{useMemo as u}from"react";import{getChartStatusKeys as y,calculateAdjustedBarWidths as E,getChartStatusColor as k}from"../../utils/charts.esm.js";import{CheckState as a}from"../CheckPage/utils.esm.js";const v=S(()=>({container:{gap:"var(--bui-space-1)",width:"100%"},barSegment:{height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)"},emptyBar:{width:"100%",background:"var(--bui-fg-disabled)"}})),x=({status:r,states:e})=>{const s=v(),n=u(()=>({passed:!e?.length||e.includes(a.PASSED)?r?.passed??0:0,failed:!e?.length||e.includes(a.FAILED)?r?.failed??0:0,warning:!e?.length||e.includes(a.WARNING)?r?.warning??0:0,error:!e?.length||e.includes(a.ERROR)?r?.error??0:0,exempt:!e?.length||e.includes(a.EXEMPT)?r?.exempt??0:0,notReported:!e?.length||e.includes(a.NOT_REPORTED)?r?.notReported??0:0}),[r,e]),o=y(),c=o.map(t=>n[t]).filter(t=>typeof t=="number"),p=o.every(t=>(n[t]||0)===0),g=u(()=>E(c),[c]);let i;return p?i=l(m,{className:`${s.barSegment} ${s.emptyBar}`}):i=o.map((t,d)=>{const h=n[t],b=k(t)||"var(--bui-fg-disabled)",f=g[d]||0;return h<=0?null:l(m,{className:s.barSegment,style:{backgroundColor:b,width:`${f}%`}},`check-status-bar-segment-${d}`)}),l(R,{className:s.container,children:i})};export{x as CheckStatusBarBUI};
|
|
2
|
+
//# sourceMappingURL=CheckStatusBarBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useFeatureFlag as t}from"../../hooks/useFeatureFlag.esm.js";import{CheckTemplatesPageBUI as a}from"./CheckTemplatesPageBUI.esm.js";import{CheckTemplatesPageDeprecated as m}from"./CheckTemplatesPageDeprecated.esm.js";const r=()=>t("backstage-ui")?e(a,{}):e(m,{});export{r as CheckTemplatesPage};
|
|
2
2
|
//# sourceMappingURL=CheckTemplatesPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as o,Fragment as m}from"react/jsx-runtime";import{useRouteRef as u}from"@backstage/core-plugin-api";import{Grid as f,Link as y,Card as R,CardHeader as x,Text as l,CardBody as L,Box as n,HeaderPage as B}from"@backstage/ui";import{makeStyles as N}from"@material-ui/core/styles";import{groupBy as T}from"lodash";import{useMemo as g,useEffect as v}from"react";import{useCheckTemplates as P}from"../../hooks/checks/useCheckTemplates.esm.js";import{useLCPReporting as H}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as I}from"../../hooks/useLoadTimeReporting.esm.js";import{checkCreateRouteRef as j,checksPageRouteRef as D}from"../../routes.esm.js";import{DocLinkButton as U}from"../DocLinkButton/DocLinkButton.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as A}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"@spotify/backstage-plugin-soundcheck-common";import"react-router-dom";import{LoadingIndicator as E}from"../LoadingIndicator/LoadingIndicator.esm.js";import{TemplateCategoryBUI as O}from"./TemplateCategoryBUI.esm.js";const S=N(()=>({container:{padding:"0 var(--bui-space-5) var(--bui-space-6)"},link:{"&:hover":{textDecoration:"none"}},fullHeightCard:{height:"100%",display:"flex",flexDirection:"column"}})),F=()=>{const s=g(()=>({routeName:"soundcheck-check-templates"}),[]),{reportContentLoaded:p}=I(s),{reporter:k}=H(s),r=S(),C=u(j),{data:c,isLoading:i}=P(),d=g(()=>T(c??[],"category"),[c]),h=k?.getLCPValue();v(()=>{i||p({lcp:h})},[i,p,h]);const b=u(D);let t;return i?t=e(E,{}):c?.length?t=o(m,{children:[e(f.Root,{columns:"5",gap:"3",mb:"6",children:e(y,{href:C(),className:r.link,children:o(R,{className:r.fullHeightCard,children:[e(x,{children:e(l,{variant:"body-large",style:{fontWeight:"bold"},children:"Custom Check"})}),e(L,{children:e(l,{children:"Create a custom check using the facts collected about your entities."})})]})})}),Object.keys(d).sort().map(a=>o(m,{children:[e(n,{mb:"3",children:e(l,{variant:"title-x-small",children:a})}),e(f.Root,{columns:"5",gap:"3",mb:"6",children:e(O,{templates:d[a]},a)})]}))]}):t=e(A,{title:"No check templates",body:"No check templates found."}),o(m,{children:[e(n,{children:e(B,{title:"Check Templates",breadcrumbs:[{label:"All Checks",href:b()}],customActions:e(U,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks/"})})}),e(n,{className:r.container,children:t})]})};export{F as CheckTemplatesPageBUI};
|
|
2
|
+
//# sourceMappingURL=CheckTemplatesPageBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as c,Fragment as C,jsx as e}from"react/jsx-runtime";import{Content as y,ItemCardGrid as b}from"@backstage/core-components";import{useRouteRef as p}from"@backstage/core-plugin-api";import{Box as L,HeaderPage as x}from"@backstage/ui";import{Typography as n,Box as d,Card as R,CardContent as v}from"@material-ui/core";import{makeStyles as N}from"@material-ui/core/styles";import T from"lodash";import{useMemo as h,useEffect as B}from"react";import{Link as P}from"react-router-dom";import{useCheckTemplates as D}from"../../hooks/checks/useCheckTemplates.esm.js";import{useFeatureFlag as j}from"../../hooks/useFeatureFlag.esm.js";import{useLCPReporting as F}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as A}from"../../hooks/useLoadTimeReporting.esm.js";import{checkCreateRouteRef as H,checksPageRouteRef as I}from"../../routes.esm.js";import{DocLinkButton as S}from"../DocLinkButton/DocLinkButton.esm.js";import{LoadingIndicator as W}from"../LoadingIndicator/LoadingIndicator.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as $}from"../SoundcheckHeader/useHeader.esm.js";import{TemplateCategory as w}from"./TemplateCategory.esm.js";const E=N(t=>({content:{display:"flex",flexDirection:"column",gap:t.spacing(2)},grid:{marginLeft:t.spacing(2)},cardContent:{"&:hover":{backgroundColor:t.palette.action.hover}},docsLink:{color:t.palette.text.primary},link:{textDecoration:"none"}})),G=()=>{const t=h(()=>({routeName:"soundcheck-check-templates"}),[]),{reportContentLoaded:m}=A(t),{reporter:u}=F(t),r=E(),f=p(H),{data:o,isLoading:i}=D(),s=h(()=>T.groupBy(o??[],"category"),[o]);$({title:"What would you like to check?",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks"});const l=u?.getLCPValue();B(()=>{i||m({lcp:l})},[i,m,l]);const g=j("backstage-ui"),k=p(I);return c(C,{children:[g&&e(L,{children:e(x,{title:"Check Templates",breadcrumbs:[{label:"All Checks",href:k()}],customActions:e(S,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks/"})})}),c("div",{children:[i&&e(W,{}),o&&o.length===0&&e(n,{children:"No check templates."}),o&&o.length&&c(y,{className:r.content,children:[e(d,{className:r.grid,children:e(b,{children:e(P,{to:f(),className:r.link,children:e(R,{children:c(v,{className:r.cardContent,children:[e(d,{mb:1,children:e(n,{variant:"subtitle1",style:{fontWeight:"bold"},component:"div",children:"Custom Check"})}),e(n,{variant:"body1",children:"Create a custom check using the facts collected about your entities."})]})})})})}),Object.keys(s).sort().map(a=>e(w,{name:a,templates:s[a]},a))]})]})]})};export{G as CheckTemplatesPageDeprecated};
|
|
2
|
+
//# sourceMappingURL=CheckTemplatesPageDeprecated.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,Fragment as a,jsxs as m}from"react/jsx-runtime";import{useRouteRef as n}from"@backstage/core-plugin-api";import{Link as d,Card as c,CardHeader as s,Text as i,CardBody as h}from"@backstage/ui";import{makeStyles as f}from"@material-ui/core/styles";import{sortBy as p}from"lodash";import{checkCreateRouteRef as u}from"../../routes.esm.js";const y=f(()=>({link:{"&:hover":{textDecoration:"none"}},fullHeightCard:{height:"100%",display:"flex",flexDirection:"column"}})),g=({templates:o})=>{const t=y(),l=n(u);return e(a,{children:p(o,"title").map(r=>e(d,{href:`${l()}?template=${r.id}`,className:t.link,children:m(c,{className:t.fullHeightCard,children:[e(s,{children:e(i,{variant:"body-large",style:{fontWeight:"bold"},children:r.title})}),e(h,{children:e(i,{children:r.summary})})]})},r.id))})};export{g as TemplateCategoryBUI};
|
|
2
|
+
//# sourceMappingURL=TemplateCategoryBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as C}from"react/jsx-runtime";import{useApi as I,featureFlagsApiRef as re,useRouteRef as te}from"@backstage/core-plugin-api";import{usePermission as oe}from"@backstage/plugin-permission-react";import{makeStyles as ae,Button as B,Grid as a}from"@material-ui/core";import{soundcheckCheckCreatePermission as ie}from"@spotify/backstage-plugin-soundcheck-common";import{useState as i,useMemo as se,useEffect as P}from"react";import{useNavigate as ce}from"react-router-dom";import ne from"react-use/lib/useDebounce";import{soundcheckApiRef as me}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 pe}from"../../../hooks/checks/useGetChecks.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useGetCheckOwners as le}from"../../../hooks/checks/useGetCheckOwners.esm.js";import{useImportChecks as de}from"../../../hooks/checks/useImportChecks.esm.js";import{useLCPReporting as he}from"../../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as ge}from"../../../hooks/useLoadTimeReporting.esm.js";import ue from"../../../images/no-results.svg";import{checkTemplatesRouteRef as fe}from"../../../routes.esm.js";import{exportChecks as ke}from"../../../utils/export.esm.js";import{FilterDefault as L}from"../../../utils/filters.esm.js";import{EmptyState as O}from"../../EmptyState/EmptyState.esm.js";import"../../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import{ImportExportPanelDeprecated as Ce}from"../../ImportExportPanel/ImportExportPanelDeprecated.esm.js";import{Pagination as Pe}from"../../Pagination/Pagination.esm.js";import{SearchFilters as be}from"../../SearchFilters/SearchFilters.esm.js";import{ChecksOverviewSkeleton as ve}from"../skeletons/ChecksOverviewSkeleton.esm.js";import{CheckSummaryCard as xe}from"./CheckSummaryCard.esm.js";var T=(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))(T||{}),F=(e=>(e.title="No checks found",e.description="No checks matched your search. Consider changing search term and filters.",e))(F||{});const ye=ae(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)}})),Ae=({checksPerPage:e,currentCursor:E})=>{const[m,b]=i(E),[g,G]=i(""),[c,j]=i(L.Alpha),[n,D]=i(L.Owner),[p,H]=i(""),v=se(()=>({routeName:"soundcheck-checks",additionalAttributes:{checksPerPage:e,pageCursor:m||"",sortOrder:c||"",ownerFilter:n||"",nameSearch:p||""}}),[e,m,c,n,p]),{reportContentLoaded:x}=ge(v),{reporter:M}=he(v),l=ye(),{data:V,isLoading:u}=le();ne(()=>{H(g)},500,[g]);const{loading:y,allowed:W}=oe({permission:ie}),{data:o,isLoading:s}=pe({ids:void 0,first:e,after:m,orderAlphabetical:c,searchByOwner:n,searchByName:p}),[f,$]=i(o),d=f?.edges?.map(r=>r.node),[A,w]=i([]);P(()=>{b(void 0),w([])},[p,c,n]);const N=I(re),q=!N.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-check-creation")||N.isActive("soundcheck-enable-check-creation"),k=!W||!q,z=r=>{j(r.target.value)},J=r=>{D(r.target.value)};P(()=>{o&&$(()=>({totalCount:o.totalCount,edges:o.edges,pageInfo:{startCursor:o.pageInfo.startCursor,endCursor:o.pageInfo.endCursor,hasNextPage:o?.pageInfo.hasNextPage??!1,hasPreviousPage:o?.pageInfo.hasPreviousPage??!1}}))},[o]);const K=ce(),Q=te(fe),R=()=>K(Q()),U=I(me),{mutateAsync:X}=de(),Y=async r=>X(r),Z=async()=>{const r=await U.getChecks({orderAlphabetical:"asc"});return ke(r.edges.map(ee=>ee.node))},S=M?.getLCPValue();if(P(()=>{!s&&!u&&x({lcp:S})},[s,u,x,S]),!s&&!d)return t(O,{title:"Create a check",description:"A check is a comparison between a defined acceptable outcome and the actual outcome of a given process.",imgSrc:ue,action:!y&&t(B,{disabled:k,variant:"contained",color:"primary",onClick:R,children:"Get started"})});let h;s?h=t(ve,{}):d?.length?h=d?.map(r=>t(a,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`check card ${r.id}`,children:t(xe,{check:r})},r.id)):h=t(a,{xs:12,item:!0,role:"listitem","aria-label":"result",children:t(O,{title:"No checks found",description:"No checks matched your search. Consider changing search term and filters."})});const _=f?.pageInfo.hasNextPage||A?.length>0;return C(a,{container:!0,direction:"row",className:l.container,children:[C(a,{container:!0,className:l.header,children:[t(be,{searchPlaceholder:"Search Available Checks",isLoading:s||u,searchTerm:g,setSearchTerm:G,filterAlpha:c,handleAlphabeticalFilterChange:z,filterOwner:n,handleOwnerFilterChange:J,owners:V}),C(a,{item:!0,xs:4,className:l.headerButtons,children:[t(Ce,{resourceType:"check",disableImport:k,disableExport:s||!d?.length,onImport:Y,onExport:Z}),!y&&t(B,{disabled:k,variant:"contained",color:"primary",onClick:R,className:l.createButton,children:"Create Check"})]})]}),t(a,{container:!0,spacing:4,role:"list","aria-label":"checks",children:h}),_&&t(a,{item:!0,xs:12,children:t(Pe,{response:f,listingsPerPage:e,cursor:m,setCursor:b,prevCursors:A,setPrevCursors:w,labelPerPageDropdown:"Checks Per Page:",urlRoute:"checks?checksPerPage="})})]})};export{T as CheckEmptyState,Ae as CheckListPage,F as CheckNoResults};
|
|
2
|
+
//# sourceMappingURL=CheckListPageDeprecated.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as n}from"react/jsx-runtime";import{useRouteRef as p}from"@backstage/core-plugin-api";import{usePermission as l}from"@backstage/plugin-permission-react";import{soundcheckCheckUpdatePermission as E,soundcheckCheckDeletePermission as P}from"@spotify/backstage-plugin-soundcheck-common";import{useCallback as t}from"react";import{useNavigate as v}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as x}from"../../../hooks/useConfirmationModal.esm.js";import{useDeleteCheck as I}from"../../../hooks/checks/useDeleteCheck.esm.js";import{checkDetailsRouteRef as M,checkEditRouteRef as b}from"../../../routes.esm.js";import{exportCheck as A}from"../../../utils/export.esm.js";import{SummaryCard as N}from"../../SummaryCard/SummaryCard.esm.js";import{CheckMetadata as S}from"./CheckMetadata.esm.js";const j=({check:o})=>{const{id:e,name:i,description:h,isEditable:m,ownerEntityRef:u}=o,r=v(),c=p(M),a=p(b),{loading:f,allowed:k}=l({permission:E,resourceRef:e}),{loading:C,allowed:R}=l({permission:P,resourceRef:e}),{showModal:s}=x(),{mutate:d}=I(),w=t(async()=>{await s({title:"Delete Check",message:`Are you sure you want to delete the check '${i??e}'?`})&&d(e)},[s,i,d,e]),y=t(()=>{r(c({checkId:e}))},[c,e,r]),D=t(()=>{r(a({checkId:e}))},[a,e,r]),g=t(()=>{A(o)},[o]);return n(N,{title:i??e,description:h,children:u&&n(S,{check:o}),handleView:y,handleEdit:m&&!f&&k?D:void 0,handleDelete:m&&!C&&R?w:void 0,handleExport:g,viewIsPrimaryAction:!0})};export{j as CheckSummaryCard};
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import{useRouteRef as p}from"@backstage/core-plugin-api";import{usePermission as l}from"@backstage/plugin-permission-react";import{soundcheckCheckUpdatePermission as E,soundcheckCheckDeletePermission as P}from"@spotify/backstage-plugin-soundcheck-common";import{useCallback as t}from"react";import{useNavigate as v}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as x}from"../../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useDeleteCheck as I}from"../../../hooks/checks/useDeleteCheck.esm.js";import{checkDetailsRouteRef as M,checkEditRouteRef as b}from"../../../routes.esm.js";import{exportCheck as A}from"../../../utils/export.esm.js";import{SummaryCard as N}from"../../SummaryCard/SummaryCard.esm.js";import{CheckMetadata as S}from"./CheckMetadata.esm.js";const j=({check:o})=>{const{id:e,name:i,description:h,isEditable:m,ownerEntityRef:u}=o,r=v(),c=p(M),a=p(b),{loading:f,allowed:k}=l({permission:E,resourceRef:e}),{loading:C,allowed:R}=l({permission:P,resourceRef:e}),{showModal:s}=x(),{mutate:d}=I(),w=t(async()=>{await s({title:"Delete Check",message:`Are you sure you want to delete the check '${i??e}'?`})&&d(e)},[s,i,d,e]),y=t(()=>{r(c({checkId:e}))},[c,e,r]),D=t(()=>{r(a({checkId:e}))},[a,e,r]),g=t(()=>{A(o)},[o]);return n(N,{title:i??e,description:h,children:u&&n(S,{check:o}),handleView:y,handleEdit:m&&!f&&k?D:void 0,handleDelete:m&&!C&&R?w:void 0,handleExport:g,viewIsPrimaryAction:!0})};export{j as CheckSummaryCard};
|
|
2
2
|
//# sourceMappingURL=CheckSummaryCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as m,Fragment as G}from"react/jsx-runtime";import{useRouteRef as P,useApi as E}from"@backstage/core-plugin-api";import{entityPresentationApiRef as O}from"@backstage/plugin-catalog-react";import{usePermission as z}from"@backstage/plugin-permission-react";import{Box as I,HeaderPage as W,Flex as Y,Table as q,TableHeader as J,Column as p,TableBody as K,TablePagination as Q}from"@backstage/ui";import{makeStyles as X}from"@material-ui/core";import{soundcheckCheckCreatePermission as Z}from"@spotify/backstage-plugin-soundcheck-common";import{sortBy as _,isEmpty as h,upperFirst as $}from"lodash";import{useState as u,useMemo as b}from"react";import{soundcheckApiRef as ee}from"../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import{useGetChecks as te}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useSearchName as re}from"../../hooks/useSearchName.esm.js";import{usePagination as oe}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useProfileImages as ie}from"../../hooks/catalog/useProfileImages.esm.js";import{useImportChecks as ne}from"../../hooks/checks/useImportChecks.esm.js";import{checkTemplatesRouteRef as ae,checkDetailsRouteRef as me}from"../../routes.esm.js";import{exportChecks as se}from"../../utils/export.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as pe}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import{EmptyStateNoChecks as ce}from"../EmptyState/EmptyStateNoChecks.esm.js";import{ImportExportPanelBUI as le}from"../ImportExportPanel/ImportExportPanelBUI.esm.js";import"../ImportExportPanel/ImportExportPanelDeprecated.esm.js";import{ListPageCustomActions as de}from"../ListPageCustomActions/ListPageCustomActions.esm.js";import{LoadingTableSkeleton as fe}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import"../Menus/SimpleMenu.esm.js";import{useCheckActions as he}from"../Menus/useCheckActions.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"uuid";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import{TableRowWithOwner as ue}from"../TableRowWithOwner/TableRowWithOwner.esm.js";const T=10,ge=X(()=>({container:{padding:"0 var(--bui-space-3) var(--bui-space-6)"},emptySpacing:{margin:"var(--bui-space-3) 0"}})),ye=({check:r,profileImageMap:i})=>{const c=P(me),n=he(r);return t(ue,{ownerEntityRef:r.ownerEntityRef??"",href:c({checkId:r.id}),profileImageSrc:i[r.ownerEntityRef??""],menuActions:n,name:r.name??r.id,description:r.description??"",cells:[{title:$(r.type??"Default")}]})},we=()=>{const r=ge(),[i,c]=u(""),[n,x]=u("ascending"),[a,A]=u(""),{isLoading:s,data:g}=te({}),l=b(()=>g?.edges?.map(e=>e.node)??[],[g?.edges]),{loading:y,allowed:w}=z({permission:Z}),B=P(ae),{profileImageMap:L}=ie(l.filter(e=>e.ownerEntityRef).map(e=>e.ownerEntityRef)),d=re({items:l,searchTerm:i}),k=E(O),C=b(()=>{if(!a)return d;const e=_(d,o=>a==="owner"?o.ownerEntityRef?k.forEntity(o.ownerEntityRef).snapshot.primaryTitle:-1:a==="type"?o.type?o.type:"default":o?.name?.toLowerCase()??o.id.toLowerCase());return n==="descending"&&e.reverse(),e},[a,d,n,k]),{mutateAsync:N}=ne(),v=async e=>N(e),H=E(ee),M=async()=>{const e=await H.getChecks({orderAlphabetical:"asc"});return se(e.edges.map(o=>o.node))},{paginatedItems:f,reset:D,paginationProps:F}=oe({pageParam:"perPage",defaultPageSize:T,items:C}),U=s,R=!s&&h(f),V=!s&&!h(f),j=C.length>T;let S=null;return R&&(S=i?t(pe,{title:"No checks found",body:"Your current search term did not return any checks. Please try a different search term."}):t(ce,{})),m(G,{children:[t(I,{children:t(W,{customActions:m(Y,{gap:"2",align:"center",children:[t(le,{resourceType:"check",disableImport:!y&&!w,disableExport:s||h(l),onImport:v,onExport:M}),t(de,{searchValue:i,setSearchValue:e=>{D(),c(e)},canCreate:!y&&w,createHref:B()})]}),title:"Checks"})}),m(I,{className:r.container,children:[U&&t(fe,{rowCount:10}),R&&t("div",{className:r.emptySpacing,children:S}),V&&m(q,{onSortChange:({direction:e,column:o})=>{A(String(o)),x(e)},sortDescriptor:{direction:n,column:a},children:[m(J,{children:[t(p,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"73%"},children:"Name"}),t(p,{id:"type",style:{width:"10%"},allowsSorting:!0,children:"Type"}),t(p,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Check Owner"}),t(p,{id:"actions",style:{width:"2%"}})]}),t(K,{children:f.map(e=>t(ye,{check:e,profileImageMap:L??{}},e.id))})]}),j&&t(Q,{...F})]})]})};export{we as ChecksListPageBUI};
|
|
2
|
+
//# sourceMappingURL=ChecksListPageBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useSearchParams as a}from"react-router-dom";import{useFeatureFlag as c}from"../../hooks/useFeatureFlag.esm.js";import{RESULTS_PER_PAGE as m}from"../../utils/filters.esm.js";import{CheckListPage as i}from"./CheckListPage/CheckListPageDeprecated.esm.js";import{ChecksListPageBUI as P}from"./ChecksListPageBUI.esm.js";const g=()=>{const[t]=a(),r=t.get("checksPerPage"),o=r?parseInt(r,10):m,s=c("backstage-ui");return e("div",{children:s?e(P,{}):e(i,{checksPerPage:o})})};export{g as ChecksPage};
|
|
2
2
|
//# sourceMappingURL=ChecksPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as n,jsx as e,Fragment as B}from"react/jsx-runtime";import{useRouteRef as x}from"@backstage/core-plugin-api";import{Row as R,Cell as C,Flex as N,Box as b,Text as L,Table as E,TableHeader as F,Column as g,TableBody as $,TablePagination as j}from"@backstage/ui";import{makeStyles as A}from"@material-ui/core";import{memo as D,useMemo as f,useState as P}from"react";import{CircularProgressbar as H}from"react-circular-progressbar";import{useNavigate as U,useLocation as z}from"react-router-dom";import{TrackEntityField as K}from"../../graphql/generated/index.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as M}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{trackCheckDetailsRouteRef as O}from"../../routes.esm.js";import{getPercentage as Q}from"../../utils/formatters.esm.js";import"../CheckStatusBar/CheckStatusBar.esm.js";import{CheckStatusBarBUI as V}from"../CheckStatusBar/CheckStatusBarBUI.esm.js";import{CustomCell as W}from"../CustomCell/CustomCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as q}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";const G=A(()=>({statusBar:{width:"30%"},customCell:{padding:"0 var(--bui-space-3)"},circularProgressbar:{width:"60%"}})),w=10;K.Name;const J=D(({trackId:d,check:i,checkStatuses:p,searchParams:s})=>{const c=G(),h=x(O),u=U(),t=p?.find(r=>r.id===i.id),{passPercent:m,applicableChecks:a}=f(()=>{const r=t?t.numberOfEntities-t.notApplicable-t.exempt:0;return{passPercent:Q(t?.passed,r),applicableChecks:r}},[t]);return n(R,{onAction:()=>{const r=h({trackId:d,checkId:i.id});u(s?`${r}${s}`:r)},children:[e(C,{leadingIcon:e("div",{className:c.circularProgressbar,children:e(H,{value:m,strokeWidth:12,styles:{path:{stroke:m===100?"var(--bui-fg-success)":"var(--bui-fg-danger)"},trail:{stroke:'rgba(var("--bui-fg-secondary"), 0.25)'}}})}),title:`${m}%`}),e(C,{title:i.name}),e(W,{children:n(N,{align:"center",gap:"3",children:[e(b,{children:n(L,{color:"secondary",children:[t?.passed??0," of ",a," checks passing"]})}),e(b,{className:c.statusBar,children:e(V,{status:t})})]})})]},i.id)}),X=({trackId:d,checks:i,checkStatuses:p,searchValue:s})=>{const[c,h]=P("ascending"),[u,t]=P("name"),m=z().search,a=f(()=>[...i??[]].sort((o,l)=>{const I=o.name.toLowerCase().trim(),T=l.name.toLowerCase().trim(),k=I.localeCompare(T,void 0,{sensitivity:"base"});return c==="ascending"?k:-k}),[i,c]),r=f(()=>{if(!s?.length)return a;const o=s.toLowerCase();return a.filter(({name:l})=>l.toLowerCase().includes(o))},[a,s]),{paginatedItems:y,paginationProps:S}=M({pageParam:"perPage",defaultPageSize:w,items:r}),v=a.length>w;return!a?.length||!r.length?e(q,{title:"No checks",body:"There are no checks found."}):n(B,{children:[n(E,{onSortChange:({direction:o,column:l})=>{t(String(l)),h(o)},sortDescriptor:{direction:c,column:u},children:[n(F,{children:[e(g,{id:"compliance",style:{width:"5%"},children:"Compliance"}),e(g,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"75%"},children:"Name"}),e(g,{id:"checks",style:{width:"20%"},children:"Checks"})]}),e($,{children:y.map(o=>e(J,{trackId:d,check:o,checkStatuses:p,searchParams:m},o.id))})]}),v&&e(j,{...S})]})};export{X as ChecksTable};
|
|
2
|
+
//# sourceMappingURL=ChecksTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{TagGroup as t,Tag as a}from"@backstage/ui";function c({options:i,selected:n,ariaLabel:r,onSelectionChange:l}){return o(t,{"aria-label":r,selectionMode:"single",selectedKeys:n,onSelectionChange:l,children:i.map(e=>o(a,{id:e,children:e},e))})}export{c as ChipSelector};
|
|
2
|
+
//# sourceMappingURL=ChipSelector.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as o,jsx as e}from"react/jsx-runtime";import{makeStyles as f,Box as i,Typography as h,Tooltip as x,Icon as y,IconButton as
|
|
1
|
+
import{jsxs as o,jsx as e}from"react/jsx-runtime";import{makeStyles as f,Box as i,Typography as h,Tooltip as x,Icon as y,IconButton as I}from"@material-ui/core";import b from"@material-ui/icons/ArrowDropDown";import u from"@material-ui/icons/ArrowDropUp";import g from"@material-ui/icons/HelpOutline";import v from"../Expand/Expand.esm.js";const D=f(({palette:l})=>({header:{display:"flex",alignItems:"left",flexDirection:"row",cursor:"pointer",justifyContent:"space-between"},label:{display:"flex",alignItems:"center"},tooltipIcon:{display:"flex",alignItems:"center",justifyContent:"center",color:l.text.primary}})),E=({label:l,tooltip:r,isExpanded:a,setIsExpanded:p,children:d,onExpandDone:m=()=>{}})=>{const n=D(),s=()=>{p(t=>!t)},c=t=>{(t.key==="Enter"||t.key===" ")&&s()};return o(i,{children:[o("div",{className:n.header,onClick:s,onKeyDown:c,role:"button",tabIndex:0,children:[o("div",{className:n.label,children:[e(i,{children:e(h,{variant:"subtitle2",children:l})}),r&&e(x,{title:r,className:n.tooltipIcon,children:e(y,{children:e(g,{style:{fontSize:16,verticalAlign:"text-top"}})})})]}),e(i,{children:e(I,{size:"small",onKeyDown:c,children:a?e(u,{fontSize:"small"}):e(b,{fontSize:"small"})})})]}),e(v,{visible:a,onExpandDone:m,children:d})]})};export{E as CollapsablePanel};
|
|
2
2
|
//# sourceMappingURL=CollapsablePanel.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{useFeatureFlag as o}from"../../hooks/useFeatureFlag.esm.js";import{CollectorDetailsPageBUI as r}from"./CollectorDetailsPageBUI.esm.js";import{CollectorDetailsPageDeprecated as a}from"./CollectorDetailsPageDeprecated.esm.js";const i=({integrations:t})=>o("backstage-ui")?e(r,{integrations:t}):e(a,{integrations:t});export{i as CollectorDetailsPage};
|
|
2
2
|
//# sourceMappingURL=CollectorDetailsPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as n,Fragment as k}from"react/jsx-runtime";import{useRouteRef as v}from"@backstage/core-plugin-api";import{usePermission as R}from"@backstage/plugin-permission-react";import{Box as r,Text as d,Grid as O,Flex as P,Button as w,HeaderPage as V}from"@backstage/ui";import{makeStyles as Y}from"@material-ui/core";import{soundcheckCollectorReadPermission as J,soundcheckCollectorUpdatePermission as K,parseFactRef as Q,asArray as X}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as Z}from"lodash";import{useMemo as _,useCallback as ee,useEffect as te}from"react";import{useParams as oe,useNavigate as ie}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as re}from"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useGetCollectors as ne}from"../../hooks/collectors/useGetCollectors.esm.js";import{useDeleteCollectorConfig as ae}from"../../hooks/collectors/useDeleteCollectorConfig.esm.js";import{useLCPReporting as se}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as le}from"../../hooks/useLoadTimeReporting.esm.js";import{integrationEditRouteRef as de,integrationsPageRouteRef as ce}from"../../routes.esm.js";import{mapRuleToExpression as me}from"../CheckForm/utils/checkFormUtils.esm.js";import{ConfigurableCollectorIds as pe}from"../CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js";import{DocLinkButton as fe}from"../DocLinkButton/DocLinkButton.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as f}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import"@material-ui/icons/Search";import"../SoundcheckDialog/SoundcheckDialog.esm.js";import"../FactExplorer/FactExplorer.esm.js";import{FactExplorerProvider as ge}from"../FactExplorer/FactExplorerContext.esm.js";import{LoadingIndicator as he}from"../LoadingIndicator/LoadingIndicator.esm.js";import{CollectorFactTableBUI as ue}from"./CollectorFactTableBUI.esm.js";import{DependantCheckCard as be}from"./DependantCheckCard.esm.js";const Ce=Y(()=>({container:{padding:"0 var(--bui-space-5) var(--bui-space-6)"}})),ye=({id:N,integrations:U})=>{const L=Ce(),x=oe(),o=N??x.integrationId,g=_(()=>({routeName:"soundcheck-integration-details",additionalAttributes:{integrationId:o||""}}),[o]),{reportContentLoaded:h}=le(g),{reporter:A}=se(g),{data:E,isLoading:D}=ne([o??""]),{loading:F,allowed:T}=R({permission:J}),{loading:u,allowed:b}=R({permission:K}),{showModal:C}=re(),{mutate:y,isPending:c}=ae(o??""),$=ee(async()=>{!await C({title:"Are you sure you want to delete stored UI config?",message:"This action cannot be undone and will remove any stored configs for this integration from the database."})||c||y()},[y,c,C]),t=E?.[0],m=D||u||F,B=U?.map(p=>p.integrationId)??pe,M=!u&&b&&t?.isEditable&&t?.isConfigurable&&B.includes(o??""),S=ie(),W=v(de),G=v(ce),j=t?.hasUIConfig;let a;if(m)a=e(he,{});else if(!T)a=e(f,{title:"Cannot view Integration",body:`User does not have permission to view Integration id: ${o}`});else if(!t)a=e(f,{title:"Integration not found",body:`There is no integration with the requested id: ${o}.`});else{const p=n(r,{mb:"6",children:[e(r,{mb:"3",children:e(d,{variant:"title-small",style:{fontWeight:"bold"},children:"Facts"})}),e(r,{children:e(ue,{facts:t.factNames.map(i=>{const l=(s=>{try{return Q(s).name}catch{return s}})(i),H=X(t.config?.collects).find(s=>s?.type===l||s?.factName===l);return{factRef:`${o}:default/${l}`,factName:l,config:H,uiConfig:!!t.hasUIConfig,parentConfig:t.config}})})})]}),q=n(r,{mb:"6",children:[e(r,{mb:"3",children:e(d,{variant:"title-small",style:{fontWeight:"bold"},children:"Dependant Checks"})}),Z(t.dependentChecks)?e(f,{title:"No dependant checks",body:"No dependant checks"}):e(O.Root,{columns:"5",gap:"3",children:t.dependentChecks.map(i=>e(be,{id:i.id,title:i.name??i.id,description:i.description??void 0,rules:me(i.rule),integrationId:o,hasSchedule:i.schedule},i.id))})]}),z=b&&j&&n(r,{mb:"6",children:[e(r,{mb:"3",children:e(d,{variant:"title-small",style:{fontWeight:"bold"},children:"Admin Actions"})}),t.hasUIConfig&&n(P,{align:"center",gap:"2",children:[e(w,{isDisabled:c,size:"small",variant:"secondary",onClick:$,children:"Remove Config"}),e(d,{color:"secondary",children:"Revert to using YAML to config this integration by deleting the stored UI config from the database."})]})]});a=n(k,{children:[p,q,z]})}const I=A?.getLCPValue();return te(()=>{m||h({lcp:I})},[m,h,I]),n(k,{children:[e(r,{children:e(V,{title:t?.name??t?.id??"Integration",breadcrumbs:[{label:"Integrations",href:G()}],customActions:n(P,{align:"center",children:[M?e(w,{onClick:()=>S(W({integrationId:o??""})),children:"Configure"}):void 0,e(fe,{href:`https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/${t?.id}`})]})})}),e(r,{className:L.container,children:e(ge,{hidePath:!0,children:a})})]})};export{ye as CollectorDetailsPageBUI};
|
|
2
|
+
//# sourceMappingURL=CollectorDetailsPageBUI.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as r,jsx as e,Fragment as O}from"react/jsx-runtime";import{Content as W,LinkButton as q}from"@backstage/core-components";import{useRouteRef as P}from"@backstage/core-plugin-api";import{usePermission as U}from"@backstage/plugin-permission-react";import{Box as z,HeaderPage as Y,Flex as _,Button as J}from"@backstage/ui";import{makeStyles as K,Box as n,Button as N,Typography as l,Card as Q,CardHeader as X,CardContent as Z,Tooltip as ee,CardActions as te}from"@material-ui/core";import{Alert as oe}from"@material-ui/lab";import{soundcheckCollectorReadPermission as ie,soundcheckCollectorUpdatePermission as re,parseFactRef as $,asArray as ne}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as E,uniq as ae}from"lodash";import{useMemo as A,useCallback as ce,useEffect as se}from"react";import{useParams as de,useNavigate as le}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as me}from"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{useGetCollectors as pe}from"../../hooks/collectors/useGetCollectors.esm.js";import{useDeleteCollectorConfig as fe}from"../../hooks/collectors/useDeleteCollectorConfig.esm.js";import{useFeatureFlag as ge}from"../../hooks/useFeatureFlag.esm.js";import{useLCPReporting as he}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as ue}from"../../hooks/useLoadTimeReporting.esm.js";import{integrationEditRouteRef as Ce,integrationsPageRouteRef as ye,checkDetailsRouteRef as ke}from"../../routes.esm.js";import{mapRuleToExpression as Ie}from"../CheckForm/utils/checkFormUtils.esm.js";import{ConfigurableCollectorIds as be}from"../CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js";import{DocLinkButton as ve}from"../DocLinkButton/DocLinkButton.esm.js";import"@material-ui/icons/Search";import"../SoundcheckDialog/SoundcheckDialog.esm.js";import"../FactExplorer/FactExplorer.esm.js";import{FactExplorerProvider as Re}from"../FactExplorer/FactExplorerContext.esm.js";import{LoadingIndicator as xe}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as we}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as Be}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContentDeprecated as Pe}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContentDeprecated.esm.js";import"react-markdown";import"rehype-raw";import"remark-gfm";import"../SoundcheckMarkdownContent/SoundcheckMarkdownContentBUI.esm.js";import{CollectorFactTable as Ne}from"./CollectorFactTable.esm.js";const Ae=K(d=>({card:{width:360},cardDescription:{"& p":{marginTop:d.spacing(.5),marginBottom:d.spacing(.5)}},cardContent:{flexGrow:1}})),De=({id:d,title:h,description:u,rules:o,integrationId:m,hasSchedule:C})=>{const p=Ae(),v=P(ke),y=A(()=>{const c=[],k=s=>{for(const a of s.conditions??[])c.push(a.factRef),typeof a.value=="object"&&Object.hasOwn(a.value,"factRef")&&c.push(a.value.factRef);for(const a of s.expressions??[])k(a)};return o&&k(o),ae(c).filter(s=>{try{return $(s).source===m}catch{return!1}})},[m,o]);return r(Q,{className:p.card,children:[e(X,{title:h}),r(Z,{className:p.cardContent,children:[u&&e(n,{overflow:"auto",maxHeight:200,children:e(Pe,{className:p.cardDescription,content:u})}),!E(y)&&r(n,{marginTop:1,overflow:"auto",maxHeight:120,children:[e(l,{variant:"subtitle2",children:"Used Fact Refs"}),y.map(c=>e(n,{children:c},"factRef"))]}),C&&e(n,{marginTop:1,children:e(ee,{title:"Configure this integration's collection schedule instead.",children:e(oe,{severity:"warning",children:"Check Schedule Detected"})})})]}),e(te,{children:e(q,{variant:"outlined",to:v({checkId:d}),target:"_blank",children:"View"})})]})},Fe=({id:d,integrations:h})=>{const u=de(),o=d??u.integrationId,m=A(()=>({routeName:"soundcheck-integration-details",additionalAttributes:{integrationId:o||""}}),[o]),{reportContentLoaded:C}=ue(m),{reporter:p}=he(m),{data:v,isLoading:y}=pe([o??""]),{loading:c,allowed:k}=U({permission:ie}),{loading:s,allowed:a}=U({permission:re}),{showModal:D}=me(),{mutate:F,isPending:R}=fe(o??""),M=ce(async()=>{!await D({title:"Are you sure you want to delete stored UI config?",message:"This action cannot be undone and will remove any stored configs for this integration from the database."})||R||F()},[F,R,D]),t=v?.[0],f=y||s||c,G=h?.map(i=>i.integrationId)??be,T=h?.find(i=>i.integrationId===o)?.routePath,x=!s&&a&&t?.isEditable&&t?.isConfigurable&&G.includes(o??""),I=le(),w=P(Ce),B=P(ye),H=t?.hasUIConfig,S=A(()=>r(n,{display:"flex",gridGap:12,children:[e(N,{variant:"contained",color:"primary",onClick:()=>{I(B())},children:"All Integrations"}),o&&x&&e(N,{variant:"contained",color:"primary",onClick:()=>{I(T??w({integrationId:o}))},children:"Edit Integration"})]}),[B,T,w,o,x,I]);Be({title:t?.name??o,description:t?t.description??"":"",docLink:t?`https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/${t.id}`:"",sectionRight:S});const L=p?.getLCPValue();se(()=>{f||C({lcp:L})},[f,C,L]);const j=ge("backstage-ui");return r(O,{children:[j&&e(z,{children:e(Y,{title:t?.name??t?.id??"Integration",breadcrumbs:[{label:"Integrations",href:B()}],customActions:r(_,{align:"center",children:[x?e(J,{onClick:()=>I(w({integrationId:o??""})),children:"Configure"}):void 0,e(ve,{href:`https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/${t?.id}`})]})})}),e(Re,{hidePath:!0,children:r(W,{children:[f&&e(xe,{}),e(we,{entityName:"Integration",entityId:o,showNotFound:!f&&!t,showCannotView:!f&&!k}),t&&r(n,{children:[r(n,{marginBottom:2,children:[e(l,{variant:"h6",children:"Facts"}),e(n,{marginBottom:2,children:e(Ne,{facts:t.factNames.map(i=>{const b=(g=>{try{return $(g).name}catch{return g}})(i),V=ne(t.config?.collects).find(g=>g?.type===b||g?.factName===b);return{factRef:`${o}:default/${b}`,factName:b,config:V,uiConfig:!!t.hasUIConfig,parentConfig:t.config}})})})]}),r(n,{marginBottom:2,children:[e(l,{variant:"h6",children:"Dependant Checks"}),E(t.dependentChecks)?e(l,{variant:"body2",children:"No dependant checks"}):e(n,{display:"flex",gridGap:12,flexWrap:"wrap",children:t.dependentChecks.map(i=>e(De,{id:i.id,title:i.name??i.id,description:i.description??void 0,rules:Ie(i.rule),integrationId:o,hasSchedule:i.schedule},i.id))})]}),a&&H&&r(n,{marginBottom:2,children:[e(l,{variant:"h6",children:"Admin Actions"}),t.hasUIConfig&&r(n,{marginTop:1,display:"flex",alignItems:"center",gridGap:16,children:[e(N,{disabled:R,size:"small",variant:"contained",color:"secondary",onClick:M,children:"Remove Config"}),e(l,{variant:"body2",color:"textSecondary",children:"Revert to using YAML to config this integration by deleting the stored UI config from the database."})]})]})]})]})})]})};export{Fe as CollectorDetailsPageDeprecated};
|
|
2
|
+
//# sourceMappingURL=CollectorDetailsPageDeprecated.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{makeStyles as m,TableContainer as g,Paper as p,Table as u,TableHead as b,TableRow as l,TableCell as n,TableBody as C,Box as t}from"@material-ui/core";import{isEmpty as T}from"lodash";import{getCronDescription as x}from"../../utils/cron.esm.js";import{FactExplorerDialogButton as y}from"../FactExplorer/FactExplorerDialog.esm.js";import"../FactExplorer/FactExplorerContext.esm.js";const N=m(c=>({noConfig:{color:c.palette.action.disabled}})),F=({facts:c})=>{const a=N();return e(g,{component:p,children:r(u,{size:"small",children:[e(b,{children:r(l,{children:[e(n,{children:"Fact Name"}),e(n,{align:"center",width:120,children:"Source"}),e(n,{children:"Schedule"}),e(n,{align:"center",width:150,children:"Test"})]})}),r(C,{children:[T(c)&&e(l,{children:e(n,{colSpan:10,children:"No Available Facts Found for Integration"})}),c.map(({factName:s,config:i,uiConfig:h,factRef:d,parentConfig:f})=>{const o=i?.frequency??f?.frequency;return r(l,{children:[e(n,{children:e("strong",{children:s})}),r(n,{className:i?void 0:a.noConfig,align:"center",children:[!i&&"No Config",i&&(h?"UI":"YAML")]}),r(n,{children:[o&&(o.cron?r(t,{children:["cron(",o.cron,")"," ",x(o.cron)]}):r(t,{children:["Every ",Object.values(o)[0]," ",Object.keys(o)[0]]})),!o&&e(t,{className:a.noConfig,children:"No Schedule Configured"})]}),e(n,{align:"center",children:e(y,{variant:"text",factRef:d,size:"small",text:"Test"})})]},d)})]})]})})};export{F as CollectorFactTable};
|
|
2
2
|
//# sourceMappingURL=CollectorFactTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as r,jsxs as i}from"react/jsx-runtime";import{Table as b,TableHeader as g,Row as m,Column as n,TableBody as C,Cell as s,Box as c,Text as a}from"@backstage/ui";import{makeStyles as v}from"@material-ui/core";import{isEmpty as N}from"lodash";import{getCronDescription as x}from"../../utils/cron.esm.js";import{CustomCell as f}from"../CustomCell/CustomCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as F}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@remixicon/react";import"@spotify/backstage-plugin-soundcheck-common";import"react-router-dom";import"../../routes.esm.js";import{FactExplorerDialogButtonBUI as T}from"../FactExplorer/FactExplorerDialogBUI.esm.js";const B=v(()=>({noConfig:{color:"var(--bui-fg-disabled)"}})),S=({frequency:o})=>{if(o){let e;return o.cron?e=r(c,{children:i(a,{variant:"body-small",children:["cron(",o.cron,") ",x(o.cron)]})}):e=r(c,{children:i(a,{variant:"body-small",color:"secondary",children:["Every ",Object.values(o)[0]," ",Object.keys(o)[0]]})}),r(c,{pt:"1",pb:"1",children:e})}return r(a,{color:"secondary",children:"No Schedule Configured"})},I=({facts:o})=>{const e=B(),p=(l,t)=>l?t?"UI":"YAML":"No Config";return N(o)?r(F,{title:"No Available Facts Found",body:"No Available Facts Found for Integration."}):i(b,{children:[r(g,{children:i(m,{children:[r(n,{id:"fact-name",allowsSorting:!0,isRowHeader:!0,style:{width:"35%"},children:"Fact Name"}),r(n,{children:"Source"}),r(n,{children:"Schedule"}),r(n,{children:"Test"})]})}),r(C,{children:o.map(({factName:l,config:t,uiConfig:h,factRef:d,parentConfig:u})=>{const y=t?.frequency??u?.frequency;return i(m,{children:[r(s,{title:l}),r(s,{className:t?void 0:e.noConfig,title:p(t,h)}),r(f,{children:r(S,{frequency:y})}),r(f,{children:r(T,{factRef:d,size:"small",text:"Test",variant:"secondary"})})]},d)})})]})};export{I as CollectorFactTableBUI};
|
|
2
|
+
//# sourceMappingURL=CollectorFactTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as a,Fragment as b,jsx as o}from"react/jsx-runtime";import{Content as C}from"@backstage/core-components";import{useRouteRef as m}from"@backstage/core-plugin-api";import{usePermission as R}from"@backstage/plugin-permission-react";import{Box as P,HeaderPage as k,ButtonLink as y}from"@backstage/ui";import{RiInformationLine as x}from"@remixicon/react";import{soundcheckCollectorUpdatePermission as F}from"@spotify/backstage-plugin-soundcheck-common";import{useParams as L}from"react-router-dom";import{useGetCollectors as w}from"../../hooks/collectors/useGetCollectors.esm.js";import{useFeatureFlag as B}from"../../hooks/useFeatureFlag.esm.js";import{integrationsPageRouteRef as M,integrationDetailsRouteRef as N}from"../../routes.esm.js";import{formStyles as j}from"../../utils/formStyles.esm.js";import{LoadingIndicator as E}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as H}from"../PageWarningMessage/PageWarningMessage.esm.js";import{RoutingMainMenu as S}from"../RoutingPage/RoutingMainMenu.esm.js";import{Configurator as U}from"./Configurators/Configurator.esm.js";const W=({collectorId:s,includeHeader:l})=>{const c=L(),r=s??c.integrationId,t=B("backstage-ui"),{data:f,isLoading:d}=w([r??""]),{loading:p,allowed:g}=R({permission:F}),u=m(M),h=m(N),e=f?.[0],i=d||p,n=g&&e?.isEditable,I=j();return a(b,{children:[t&&l&&o(S,{children:null}),t&&o(P,{children:o(k,{title:"Configuration",breadcrumbs:[{label:"Integrations",href:u()},{label:e?.name??e?.id??"Integration",href:h({integrationId:r??""})}],customActions:o(y,{iconStart:o(x,{}),href:`https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/fact-collectors/3p-integrations/${e?.id}`,target:"_blank",rel:"noopener noreferrer",variant:"secondary"})})}),a(C,{className:t?I.formWrapperBUI:"",children:[i&&o(E,{}),o(H,{entityName:"Integration",entityId:r,showNotFound:!i&&!e,showCannotEdit:!i&&!n}),e&&n&&o(U,{selectedCollector:e})]})]})};export{W as CollectorPage};
|
|
2
2
|
//# sourceMappingURL=CollectorPage.esm.js.map
|
package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as u,Fragment as S,jsx as e}from"react/jsx-runtime";import{zodResolver as k}from"@hookform/resolvers/zod";import{makeStyles as B,Paper as A,Divider as n}from"@material-ui/core";import{useCallback as F}from"react";import{useForm as N,FormProvider as R}from"react-hook-form";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{useConfirmationModal as I}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as W}from"../../../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useUpdateCollectorConfig as q}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as z}from"../../../../routes.esm.js";import{FooterButtons as w}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as x}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as r}from"../Common/FactCollectionConfig.esm.js";import"../Common/CollectorConfigAlert.esm.js";import{defaultCollectorOption as l}from"../Common/CollectorOption.esm.js";import{collectorHeaderContent as j,confirmationModalContent as M}from"../Common/utils.esm.js";import{NumberOfDaysComponent as b}from"./NumberOfDaysComponent.esm.js";import{NumberOfWorkItemsComponent as T}from"./NumberOfWorkItemsComponent.esm.js";import{mapConfigToAzureDevOpsCollectorConfig as H,defaultAzureDevOpsConfig as U,numberOfDaysCollectorConfig as d,numberOfWorkItemsCollectorConfig as V,mapAzureDevOpsCollectorConfigToConfig as L}from"./utils.esm.js";import{azureDevOpsCollectorFormSchema as E}from"./validation.esm.js";const G=B(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)}})),J=({disabled:t,selectedCollector:i})=>{const C=F(async(o,...s)=>{const a={enabled:!1,collectors:[]},P={repositoryDetails:o.repositoryDetails.enabled?o.repositoryDetails:l(),branchPolicies:o.branchPolicies.enabled?o.branchPolicies:l(),branchStatus:o.branchStatus.enabled?o.branchStatus:l(),numberOfBranches:o.numberOfBranches.enabled?o.numberOfBranches:a,numberOfActivePullRequests:o.numberOfActivePullRequests.enabled?o.numberOfActivePullRequests:a,numberOfWorkItems:o.numberOfWorkItems.enabled?o.numberOfWorkItems:a};return k(E)(P,...s)},[]),m=N({defaultValues:i?H(i.config):U(),mode:"onChange",resolver:C}),{formState:{isValid:h},handleSubmit:c}=m,f=G(),g=!h,{mutateAsync:O}=q(),[y,v]=W(z),{showModal:D}=I(),p=async o=>{if(!await D(M(i)))return;const s=L(o);await O({collectorId:i.id,config:s})&&v()};return x(j(i)),u(S,{children:[e(A,{className:f.section,children:e(R,{...m,children:u("form",{onSubmit:c(p),children:[e(r,{name:"repositoryDetails",label:"Repository Details",description:"Collects details about an entity's repository.",disabled:t}),e(n,{}),e(r,{name:"branchPolicies",label:"Branch Policies",description:"Collects branch policies information from an entity's repository.",disabled:t}),e(n,{}),e(r,{name:"branchStatus",label:"Branch Status",description:"Collects the latest branch status information from an entity's repository.",disabled:t}),e(n,{}),e(r,{name:"numberOfBranches",label:"Number Of Branches",description:"Collects the number of branches from an entity's repository.",disabled:t,FactDetailsComponent:b,multipleCollectors:{enable:!0,defaultConfig:d()}}),e(n,{}),e(r,{name:"numberOfActivePullRequests",label:"Number Of Active Pull Requests",description:"Collects the number of active pull requests from an entity's repository.",disabled:t,FactDetailsComponent:b,multipleCollectors:{enable:!0,defaultConfig:d()}}),e(n,{}),e(r,{name:"numberOfWorkItems",label:"Number Of Work Items",description:"Collects the number of work items from an entity's project.",disabled:t,FactDetailsComponent:T,multipleCollectors:{enable:!0,defaultConfig:V()}})]})})}),e("div",{className:f.section,children:e(w,{onCancel:y,saveButtonText:"Save",isLoading:!1,onSave:c(p),disableSave:g})})]})};export{J as AzureDevOpsConfigurator};
|
|
2
2
|
//# sourceMappingURL=AzureDevOpsConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as h,Fragment as b,jsx as o}from"react/jsx-runtime";import{zodResolver as B}from"@hookform/resolvers/zod";import{makeStyles as v,Paper as F}from"@material-ui/core";import{useCallback as Q}from"react";import{useForm as S,FormProvider as q}from"react-hook-form";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{useConfirmationModal as N}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as w}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as x}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as k}from"../../../../routes.esm.js";import{FooterButtons as I}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as M}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as P}from"../Common/FactCollectionConfig.esm.js";import{CollectorConfigAlert as R}from"../Common/CollectorConfigAlert.esm.js";import{collectorHeaderContent as T,confirmationModalContent as U}from"../Common/utils.esm.js";import{QueryFactDetailsComponent as j}from"./QueryFactDetailsComponent.esm.js";import{mapConfigToBigQueryCollectorConfig as A,defaultBigQueryConfig as D,queryCollectorConfig as H,mapBigQueryCollectorConfigToConfig as V}from"./utils.esm.js";import{bigQueryCollectorFormSchema as z}from"./validation.esm.js";const L=v(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)}})),O=({disabled:e,selectedCollector:r})=>{const c=Q(async(t,...i)=>{const C={enabled:!1,collectors:[]},y={query:t.query.enabled?t.query:C};return B(z)(y,...i)},[]),
|
|
1
|
+
import{jsxs as h,Fragment as b,jsx as o}from"react/jsx-runtime";import{zodResolver as B}from"@hookform/resolvers/zod";import{makeStyles as v,Paper as F}from"@material-ui/core";import{useCallback as Q}from"react";import{useForm as S,FormProvider as q}from"react-hook-form";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{useConfirmationModal as N}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as w}from"../../../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useUpdateCollectorConfig as x}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as k}from"../../../../routes.esm.js";import{FooterButtons as I}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as M}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as P}from"../Common/FactCollectionConfig.esm.js";import{CollectorConfigAlert as R}from"../Common/CollectorConfigAlert.esm.js";import{collectorHeaderContent as T,confirmationModalContent as U}from"../Common/utils.esm.js";import{QueryFactDetailsComponent as j}from"./QueryFactDetailsComponent.esm.js";import{mapConfigToBigQueryCollectorConfig as A,defaultBigQueryConfig as D,queryCollectorConfig as H,mapBigQueryCollectorConfigToConfig as V}from"./utils.esm.js";import{bigQueryCollectorFormSchema as z}from"./validation.esm.js";const L=v(e=>({spacer:{height:e.spacing(8),width:"100%"},section:{marginBottom:e.spacing(2)}})),O=({disabled:e,selectedCollector:r})=>{const c=Q(async(t,...i)=>{const C={enabled:!1,collectors:[]},y={query:t.query.enabled?t.query:C};return B(z)(y,...i)},[]),m=S({defaultValues:r?A(r.config):D(),mode:"onChange",resolver:c}),{formState:{isValid:s},handleSubmit:a}=m,n=L(),p=!s,{mutateAsync:f}=x(),[d,u]=w(k),{showModal:g}=N(),l=async t=>{if(!await g(U(r)))return;const i=V(t);await f({collectorId:r.id,config:i})&&u()};return M(T(r)),h(b,{children:[o(R,{collectorName:"Bigquery",collectorId:r.id,hasNonUIOptions:!0}),o(F,{className:n.section,children:o(q,{...m,children:o("form",{onSubmit:a(l),children:o(P,{name:"query",label:"Query",description:"Collects data from BigQuery.",disabled:e,FactDetailsComponent:j,multipleCollectors:{enable:!0,defaultConfig:H()}})})})}),o("div",{className:n.section,children:o(I,{onCancel:d,saveButtonText:"Save",isLoading:!1,onSave:a(l),disableSave:p})})]})};export{O as BigQueryConfigurator};
|
|
2
2
|
//# sourceMappingURL=BigQueryConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as C,Fragment as u,jsx as o}from"react/jsx-runtime";import{makeStyles as h,Paper as S}from"@material-ui/core";import{useForm as v,FormProvider as b}from"react-hook-form";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"react";import"../../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as y}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as B}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as w}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as x}from"../../../../routes.esm.js";import{FooterButtons as F}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as N}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as k}from"../Common/FactCollectionConfig.esm.js";import"../Common/CollectorConfigAlert.esm.js";import{collectorHeaderContent as D,confirmationModalContent as M}from"../Common/utils.esm.js";import{mapConfigToCatalogCollectorConfig as P,defaultCatalogConfig as T,mapCatalogCollectorConfigToConfig as j}from"./utils.esm.js";const H=h(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)},form:{marginBottom:t.spacing(2)}})),R=({disabled:t,selectedCollector:r})=>{const i=v({defaultValues:r?P(r.config):T(),mode:"onChange"}),{formState:{errors:n},handleSubmit:e}=i,a=H(),s=!!n.entityDescriptor,{mutateAsync:l}=w(),[c,p]=B(x),{showModal:f}=y(),m=async g=>{if(!await f(M(r)))return;const d=j(g);await l({collectorId:r.id,config:d})&&p()};return N(D(r)),C(u,{children:[o(S,{className:a.form,children:o(b,{...i,children:o("form",{onSubmit:e(m),children:o(k,{name:"entityDescriptor",label:"Entity Descriptor",description:"Collects entities from Backstage's Software Catalog.",disabled:t})})})}),o("div",{className:a.section,children:o(F,{onCancel:c,saveButtonText:"Save",isLoading:!1,onSave:e(m),disableSave:s})})]})};export{R as CatalogConfigurator};
|
|
1
|
+
import{jsxs as C,Fragment as u,jsx as o}from"react/jsx-runtime";import{makeStyles as h,Paper as S}from"@material-ui/core";import{useForm as v,FormProvider as b}from"react-hook-form";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"react";import"../../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as y}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as B}from"../../../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useUpdateCollectorConfig as w}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as x}from"../../../../routes.esm.js";import{FooterButtons as F}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as N}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as k}from"../Common/FactCollectionConfig.esm.js";import"../Common/CollectorConfigAlert.esm.js";import{collectorHeaderContent as D,confirmationModalContent as M}from"../Common/utils.esm.js";import{mapConfigToCatalogCollectorConfig as P,defaultCatalogConfig as T,mapCatalogCollectorConfigToConfig as j}from"./utils.esm.js";const H=h(t=>({spacer:{height:t.spacing(8),width:"100%"},section:{marginBottom:t.spacing(2)},form:{marginBottom:t.spacing(2)}})),R=({disabled:t,selectedCollector:r})=>{const i=v({defaultValues:r?P(r.config):T(),mode:"onChange"}),{formState:{errors:n},handleSubmit:e}=i,a=H(),s=!!n.entityDescriptor,{mutateAsync:l}=w(),[c,p]=B(x),{showModal:f}=y(),m=async g=>{if(!await f(M(r)))return;const d=j(g);await l({collectorId:r.id,config:d})&&p()};return N(D(r)),C(u,{children:[o(S,{className:a.form,children:o(b,{...i,children:o("form",{onSubmit:e(m),children:o(k,{name:"entityDescriptor",label:"Entity Descriptor",description:"Collects entities from Backstage's Software Catalog.",disabled:t})})})}),o("div",{className:a.section,children:o(F,{onCancel:c,saveButtonText:"Save",isLoading:!1,onSave:e(m),disableSave:s})})]})};export{R as CatalogConfigurator};
|
|
2
2
|
//# sourceMappingURL=CatalogConfigurator.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as c,Fragment as D,jsx as e}from"react/jsx-runtime";import{makeStyles as b,Paper as h,Divider as S}from"@material-ui/core";import{useForm as y,FormProvider as j}from"react-hook-form";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"react";import"../../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as N}from"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as F}from"../../../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useUpdateCollectorConfig as L}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{integrationsPageRouteRef as O}from"../../../../routes.esm.js";import{FooterButtons as k}from"../../../FooterButtons/FooterButtons.esm.js";import"../../../SoundcheckHeader/SoundcheckHeader.esm.js";import"../../../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as w}from"../../../SoundcheckHeader/useHeader.esm.js";import{FactCollectionConfig as l}from"../Common/FactCollectionConfig.esm.js";import{CollectorConfigAlert as x}from"../Common/CollectorConfigAlert.esm.js";import{collectorHeaderContent as B,confirmationModalContent as I}from"../Common/utils.esm.js";import{mapConfigToDataDogCollectorConfig as M,defaultDataDogConfig as P,mapDataDogCollectorConfigToConfig as T}from"./utils.esm.js";const A=b(i=>({spacer:{height:i.spacing(8),width:"100%"},section:{marginBottom:i.spacing(2)}})),H=({disabled:i,selectedCollector:o})=>{const t=y({defaultValues:o?M(o.config):P(),mode:"onChange"}),{formState:{errors:r},handleSubmit:a}=t,n=A(),s=!!r.serviceDefinition||!!r.serviceLevelObjective,{mutateAsync:d}=L(),[p,f]=F(O),{showModal:g}=N(),m=async C=>{if(!await g(I(o)))return;const u=T(C);await d({collectorId:o.id,config:u})&&f()};w(B(o));const v=!o.config?.apiKey||!o.config?.appKey;return c(D,{children:[e(x,{collectorName:"Datadog",collectorId:o.id,invalidConfig:v,hasNonUIOptions:!0}),e(h,{className:n.section,children:e(j,{...t,children:c("form",{onSubmit:a(m),children:[e(l,{name:"serviceDefinition",label:"Service Definition",description:"Collects details about Datadog service linked to an entity.",disabled:i}),e(S,{}),e(l,{name:"serviceLevelObjective",label:"Service Level Objective",description:"Collects details about SLOs configured for a Datadog service linked to an entity.",disabled:i})]})})}),e("div",{className:n.section,children:e(k,{onCancel:p,saveButtonText:"Save",isLoading:!1,onSave:a(m),disableSave:s})})]})};export{H as DataDogConfigurator};
|
|
2
2
|
//# sourceMappingURL=DataDogConfigurator.esm.js.map
|