@spotify/backstage-plugin-soundcheck 0.12.7 → 0.12.8
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 +25 -11
- package/alpha/package.json +1 -1
- package/dist/alpha/apis.esm.js +2 -0
- package/dist/alpha/entity-content.esm.js +2 -0
- package/dist/alpha/pages.esm.js +2 -0
- package/dist/alpha/plugin.esm.js +2 -0
- package/dist/alpha/sidebar-item.esm.js +2 -0
- package/dist/alpha.esm.js +1 -1
- package/dist/api.esm.js +2 -0
- package/dist/components/AlertPanel/AlertPanel.esm.js +2 -0
- package/dist/components/Badges/BaseBadge.esm.js +2 -0
- package/dist/components/Badges/CampaignBadge.esm.js +2 -0
- package/dist/components/Badges/CertificationBadge.esm.js +2 -0
- package/dist/components/Badges/LevelBadge.esm.js +2 -0
- package/dist/components/Badges/NoLevelBadge.esm.js +2 -0
- package/dist/components/Badges/PlaylistBadge.esm.js +2 -0
- package/dist/components/Badges/badge.esm.js +2 -0
- package/dist/components/CacheConfig/CacheConfigComponent.esm.js +2 -0
- package/dist/components/CacheConfig/utils.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignChecks.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailRow.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetails.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailsPage.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignMilestones.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignProgress.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignResultsTable.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/CampaignListPage.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/CampaignMetadata.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/CampaignSummaryCard.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/useArchiveConfirmationModal.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignTypes.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/AddCampaignView.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignForm.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignFormDescription.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/EditCampaignView.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignNameField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/CampaignScheduleField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/EndDateChips.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignMilestonesStep.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignTrackStep.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/useCampaignForm.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/utils.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/types/CampaignFormTypes.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/utils/campaignFormUtils.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/utils/validation.esm.js +2 -0
- package/dist/components/CampaignsTab/skeletons/CampaignsOverviewSkeleton.esm.js +2 -0
- package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +2 -0
- package/dist/components/CertificationSidebar/CertificationLevel.esm.js +2 -0
- package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +2 -0
- package/dist/components/CertificationSidebar/CertificationSummary.esm.js +2 -0
- package/dist/components/CertificationSidebar/Check.esm.js +2 -0
- package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +2 -0
- package/dist/components/CertificationSidebar/LevelSummary.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/CertificationSidebarSkeleton.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/CheckSkeleton.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/LevelSummarySkeleton.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationTab.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistProgress.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +2 -0
- package/dist/components/CertificationsPage/PlaylistCertificationTab.esm.js +2 -0
- package/dist/components/CertificationsPage/skeletons/CertificationTabSkeleton.esm.js +2 -0
- package/dist/components/CertificationsPage/skeletons/CertificationTabsSkeleton.esm.js +2 -0
- package/dist/components/Charts/BarChart/BarChart.esm.js +2 -0
- package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +2 -0
- package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +2 -0
- package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +2 -0
- package/dist/components/Charts/ChartTypes.esm.js +2 -0
- package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +2 -0
- package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/LineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +2 -0
- package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/TableLineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +2 -0
- package/dist/components/Charts/chartUtils.esm.js +2 -0
- package/dist/components/CheckCard/CheckCard.esm.js +2 -0
- package/dist/components/CheckCard/CheckHistoryChart.esm.js +2 -0
- package/dist/components/CheckCard/utils.esm.js +2 -0
- package/dist/components/CheckDetails/CheckDetails.esm.js +2 -0
- package/dist/components/CheckDetails/ResultStateBox.esm.js +2 -0
- package/dist/components/CheckDetails/skeletons/CheckDetailsSkeleton.esm.js +2 -0
- package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +2 -0
- package/dist/components/CheckIcon/CheckIcon.esm.js +2 -0
- package/dist/components/CheckPage/CheckDetailsView.esm.js +2 -0
- package/dist/components/CheckPage/CheckEditView.esm.js +2 -0
- package/dist/components/CheckPage/CheckPage.esm.js +2 -0
- package/dist/components/ChecksErrors/ChecksErrors.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +2 -0
- package/dist/components/ChecksPage/ChecksPage.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/AddCheckView.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/CheckForm.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/CheckFormDescription.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckScheduleSection/ScheduleSection.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/AddMenuButton.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ConditionList.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/styles.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionBox.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/RuleInputBox.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/useRuleInputHandlers.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/hooks/useCheckForm.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/CheckFormTypes.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/ExpressionType.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/Path.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/Schedule.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/utils/checkFormUtils.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/utils/validation.esm.js +2 -0
- package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +2 -0
- package/dist/components/ChecksTab/ChecksTab.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorPage.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/FactCollectionConfig.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +2 -0
- package/dist/components/ContextMenu/ContextMenu.esm.js +2 -0
- package/dist/components/DraggableChip/DraggableChip.esm.js +2 -0
- package/dist/components/DraggableChip/chipStyles.esm.js +2 -0
- package/dist/components/DroppableInput/DroppableInput.esm.js +2 -0
- package/dist/components/EditTrackPage/EditTrackPage.esm.js +2 -0
- package/dist/components/EditTrackPage/EditTrackView.esm.js +2 -0
- package/dist/components/EmptyState/CampaignEmptyState.esm.js +2 -0
- package/dist/components/EmptyState/EmptyState.esm.js +2 -0
- package/dist/components/EntityContent/EntityContent.esm.js +2 -0
- package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/Card.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/EntitySoundcheckCard.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/index.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/skeletons/CardSkeleton.esm.js +2 -0
- package/dist/components/EntitySoundcheckContent.esm.js +2 -0
- package/dist/components/Expand/Expand.esm.js +2 -0
- package/dist/components/FadeIn/FadeIn.esm.js +2 -0
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +2 -0
- package/dist/components/Filter/FilterComponent.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntityKindsFilter.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntitySystemsFilter.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntityTableToolbar.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntityTagFilter.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +2 -0
- package/dist/components/Filter/types.esm.js +2 -0
- package/dist/components/Filter/utils.esm.js +2 -0
- package/dist/components/FooterButtons/FooterButtons.esm.js +2 -0
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +2 -0
- package/dist/components/FormFilterSection/FormFilterSection.esm.js +2 -0
- package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +2 -0
- package/dist/components/FormStepper/FormStepper.esm.js +2 -0
- package/dist/components/FormTextInput/FormTextInput.esm.js +2 -0
- package/dist/components/Frequency/FrequencyComponent.esm.js +2 -0
- package/dist/components/Frequency/types.esm.js +2 -0
- package/dist/components/Frequency/util.esm.js +2 -0
- package/dist/components/FullScreenDialog/FullScreenDialog.esm.js +2 -0
- package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +2 -0
- package/dist/components/GroupSelector/GroupSelector.esm.js +2 -0
- package/dist/components/GroupSelector/useOptions.esm.js +2 -0
- package/dist/components/LevelCard/LevelCard.esm.js +2 -0
- package/dist/components/LevelCard/LevelTooltip.esm.js +2 -0
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +2 -0
- package/dist/components/LoadingIndicator/LoadingIndicator.esm.js +2 -0
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +2 -0
- package/dist/components/NoBorderButton/NoBorderButton.esm.js +2 -0
- package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +2 -0
- package/dist/components/OverviewChartCard/OverviewChartCardStyles.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignRow/CampaignRow.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignRow/useCampaignRowStyles.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignRow/utils.esm.js +2 -0
- package/dist/components/OverviewPage/FixedGroupOverviewPage.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewPage.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewTabs.esm.js +2 -0
- package/dist/components/OverviewPage/TableContent/TableContent.esm.js +2 -0
- package/dist/components/OverviewPage/TableContent/VirtualTableContent.esm.js +2 -0
- package/dist/components/OverviewPage/index.esm.js +2 -0
- package/dist/components/OverviewPage/skeletons/OverviewTabsSkeleton.esm.js +2 -0
- package/dist/components/PageWarningMessage/PageWarningMessage.esm.js +2 -0
- package/dist/components/Pagination/CursorPagination.esm.js +2 -0
- package/dist/components/Pagination/Pagination.esm.js +2 -0
- package/dist/components/PassRateGrid/PassRateGrid.esm.js +2 -0
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +2 -0
- package/dist/components/PassRateGrid/types.esm.js +2 -0
- package/dist/components/PassRateTable/NewPassRateTable.esm.js +2 -0
- package/dist/components/PassRateTable/PassRateTable.esm.js +2 -0
- package/dist/components/PassRateTable/types.esm.js +2 -0
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +2 -0
- package/dist/components/RelativeTime/RelativeTime.esm.js +2 -0
- package/dist/components/ResultsTable/CheckCell/CheckCell.esm.js +2 -0
- package/dist/components/ResultsTable/CheckCell/CheckCellTooltip.esm.js +2 -0
- package/dist/components/ResultsTable/HighestLevelBadge.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramCheckIndicator.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramCheckRow.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramLevelRow.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramTitleRow.esm.js +2 -0
- package/dist/components/ResultsTable/ResultsTableFooter.esm.js +2 -0
- package/dist/components/ResultsTable/skeletons/ResultsTableSkeleton.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/Cell.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/Row.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/VirtualizedResultsTable.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/virtualizedTableUtils.esm.js +2 -0
- package/dist/components/RichTooltip/RichTooltip.esm.js +2 -0
- package/dist/components/Router.esm.js +2 -0
- package/dist/components/RoutingPage/Breadcrumbs.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPage.esm.js +2 -0
- package/dist/components/RoutingPage/index.esm.js +2 -0
- package/dist/components/RoutingPage/utils.esm.js +2 -0
- package/dist/components/SearchBar/SearchBar.esm.js +2 -0
- package/dist/components/SearchFilters/SearchFilters.esm.js +2 -0
- package/dist/components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js +2 -0
- package/dist/components/StyledTooltip/StyledTooltip.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCard.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +2 -0
- package/dist/components/TechHealth/Filters/Filters.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FiltersSection.esm.js +2 -0
- package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +2 -0
- package/dist/components/TechHealth/Filters/types.esm.js +2 -0
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +2 -0
- package/dist/components/TechHealth/Filters/utils.esm.js +2 -0
- package/dist/components/TechHealth/Loading/Emoji.esm.js +2 -0
- package/dist/components/TechHealth/Loading/EmojiFountain.esm.js +2 -0
- package/dist/components/TechHealth/Loading/Loading.esm.js +2 -0
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +2 -0
- package/dist/components/TechHealth/TechHealth.esm.js +2 -0
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +2 -0
- package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +2 -0
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/NameColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/OwnerColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +2 -0
- package/dist/components/TechHealthTabs/PassRateTabStyles.esm.js +2 -0
- package/dist/components/TechHealthTabs/TechHealthExportFunctions.esm.js +2 -0
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelChipsSection.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelsSection.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStep.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +2 -0
- package/dist/components/TrackForm/TrackForm.esm.js +2 -0
- package/dist/components/TrackForm/utils/trackFormUtils.esm.js +2 -0
- package/dist/components/TrackForm/utils/types.esm.js +2 -0
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +2 -0
- package/dist/components/TrackForm/utils/validation.esm.js +2 -0
- package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +2 -0
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +2 -0
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +2 -0
- package/dist/components/TrackPage/TrackLevelsChart.esm.js +2 -0
- package/dist/components/TrackPage/TrackPage.esm.js +2 -0
- package/dist/components/TrackPage/TrackProgressCard.esm.js +2 -0
- package/dist/components/TrackPage/utils.esm.js +2 -0
- package/dist/components/TracksPage/AddTrackView.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackEmptyState.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +2 -0
- package/dist/components/TracksPage/TracksPage.esm.js +2 -0
- package/dist/components/TracksTab/TracksTab.esm.js +2 -0
- package/dist/contexts/CampaignFormContext.esm.js +2 -0
- package/dist/contexts/CheckFormContext.esm.js +2 -0
- package/dist/contexts/GenericFormContext.esm.js +2 -0
- package/dist/contexts/TrackFormContext.esm.js +2 -0
- package/dist/contexts/UserProvider.esm.js +2 -0
- package/dist/graphql/generated/index.esm.js +717 -0
- package/dist/hooks/aggregations/useAggregatedCheckPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useAggregatedEntityPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useAggregatedGroupPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useCertificationStatus.esm.js +2 -0
- package/dist/hooks/aggregations/useCertificationStatusHistory.esm.js +2 -0
- package/dist/hooks/aggregations/useCheckPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useCheckStatus.esm.js +2 -0
- package/dist/hooks/aggregations/useCheckStatusHistory.esm.js +2 -0
- package/dist/hooks/aggregations/useEntityPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useGroupPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useTrackPassRateTrend.esm.js +2 -0
- package/dist/hooks/campaigns/useArchiveCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useCreateCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useDeleteCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaignOwners.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaignProgress.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaigns.esm.js +2 -0
- package/dist/hooks/campaigns/useUpdateCampaign.esm.js +2 -0
- package/dist/hooks/catalog/useEntitiesByRefs.esm.js +2 -0
- package/dist/hooks/catalog/useEntityByRef.esm.js +2 -0
- package/dist/hooks/catalog/useGetEntityFacets.esm.js +2 -0
- package/dist/hooks/certifications/useAllCertifications.esm.js +2 -0
- package/dist/hooks/certifications/useCertificationDetails.esm.js +2 -0
- package/dist/hooks/certifications/useCertificationDetailsForTrack.esm.js +2 -0
- package/dist/hooks/certifications/useProgramOverviewForOwner.esm.js +2 -0
- package/dist/hooks/checks/useCheckDetails.esm.js +2 -0
- package/dist/hooks/checks/useCreateCheck.esm.js +2 -0
- package/dist/hooks/checks/useDeleteCheck.esm.js +2 -0
- package/dist/hooks/checks/useGetCheckOwners.esm.js +2 -0
- package/dist/hooks/checks/useGetChecks.esm.js +2 -0
- package/dist/hooks/checks/useUpdateCheck.esm.js +2 -0
- package/dist/hooks/collectors/useGetCollectors.esm.js +2 -0
- package/dist/hooks/collectors/useGetFactSchema.esm.js +2 -0
- package/dist/hooks/collectors/useUpdateCollectorConfig.esm.js +2 -0
- package/dist/hooks/entities/useEntityRefsForUser.esm.js +2 -0
- package/dist/hooks/entities/useTrackEntities.esm.js +2 -0
- package/dist/hooks/facets/useFacetFilters.esm.js +2 -0
- package/dist/hooks/facets/useFacetsForOwner.esm.js +2 -0
- package/dist/hooks/graphqlKeys.esm.js +2 -0
- package/dist/hooks/groups/useAllGroups.esm.js +2 -0
- package/dist/hooks/groups/useUsersGroupClaims.esm.js +2 -0
- package/dist/hooks/operators/useOperators.esm.js +2 -0
- package/dist/hooks/playlists/usePlaylists.esm.js +2 -0
- package/dist/hooks/tracks/useCreateTrack.esm.js +2 -0
- package/dist/hooks/tracks/useDeleteTrack.esm.js +2 -0
- package/dist/hooks/tracks/useGetAllTracks.esm.js +2 -0
- package/dist/hooks/tracks/useGetChecksMap.esm.js +2 -0
- package/dist/hooks/tracks/useGetTrackOwners.esm.js +2 -0
- package/dist/hooks/tracks/useUpdateTrack.esm.js +2 -0
- package/dist/hooks/useConfirmationModal.esm.js +2 -0
- package/dist/hooks/useContextMenu.esm.js +2 -0
- package/dist/hooks/useNavigateBack.esm.js +2 -0
- package/dist/hooks/useSearchParam.esm.js +2 -0
- package/dist/hooks/useSoundcheckAlert.esm.js +2 -0
- package/dist/hooks/useStepper.esm.js +2 -0
- package/dist/index.esm.js +1 -1
- package/dist/plugin.esm.js +2 -0
- package/dist/routes.esm.js +2 -0
- package/dist/text.esm.js +2 -0
- package/dist/utils/charts.esm.js +2 -0
- package/dist/utils/collectors.esm.js +2 -0
- package/dist/utils/cron.esm.js +2 -0
- package/dist/utils/export.esm.js +6 -0
- package/dist/utils/filters.esm.js +2 -0
- package/dist/utils/formStyles.esm.js +2 -0
- package/dist/utils/frequency.esm.js +2 -0
- package/dist/utils/license.esm.js +2 -0
- package/dist/utils/time.esm.js +2 -0
- package/dist/utils/validation.esm.js +2 -0
- package/package.json +14 -13
- package/dist/esm/Card-BU6-9YfF.esm.js +0 -2
- package/dist/esm/CertificationSidebar-DB4UqW7X.esm.js +0 -2
- package/dist/esm/EmptyState-C2zsaDrr.esm.js +0 -2
- package/dist/esm/EntitySoundcheckContent-DAnk6B9A.esm.js +0 -2
- package/dist/esm/OverviewPageContent-CBL-e1xr.esm.js +0 -2
- package/dist/esm/RefetchingIndicator-BrP7yEiB.esm.js +0 -2
- package/dist/esm/chartUtils-CD083K30.esm.js +0 -2
- package/dist/esm/index-1faKkIS7.esm.js +0 -2
- package/dist/esm/index-B3L_axCg.esm.js +0 -2
- package/dist/esm/index-GRR9jOE3.esm.js +0 -2
- package/dist/esm/license-CQErZDIh.esm.js +0 -2
- package/dist/esm/routes-DcGwdXHX.esm.js +0 -699
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as a}from"../graphqlKeys.esm.js";const u=e=>{const r=s(o);return t([a.GetOverallGroupPassRateTrends,e],async()=>r.getOverallGroupPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{u as useAggregatedGroupPassRateTrend};
|
|
2
|
+
//# sourceMappingURL=useAggregatedGroupPassRateTrend.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as a}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";const c=(e,r)=>{const t=s(o);return a([n.GetOverallTrackPassRateTrends,e],async()=>t.getOverallTrackPassRate(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:r!=null?r:!0})};export{c as useAggregatedTrackPassRateTrend};
|
|
2
|
+
//# sourceMappingURL=useAggregatedTrackPassRateTrend.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as u}from"../graphqlKeys.esm.js";const n=(t,e)=>{const o=r(s);return i([u.CertificationStatus,t],async()=>o.getCertificationStatus(t),{enabled:e})};export{n as useCertificationStatus};
|
|
2
|
+
//# sourceMappingURL=useCertificationStatus.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";const c=(t,e)=>{const r=o(s);return i([n.CertificationStatusHistory,t],async()=>r.getCertificationStatusHistory(t),{enabled:e,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{c as useCertificationStatusHistory};
|
|
2
|
+
//# sourceMappingURL=useCertificationStatusHistory.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as i}from"../graphqlKeys.esm.js";const n=e=>{const r=s(o);return t([i.GetIndividualCheckPassRateTrends,e],async()=>r.getIndividualCheckPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{n as useCheckPassRateTrend};
|
|
2
|
+
//# sourceMappingURL=useCheckPassRateTrend.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as s}from"@tanstack/react-query";import{soundcheckApiRef as u}from"../../api.esm.js";import{QueryKeys as i}from"../graphqlKeys.esm.js";const c=(e,t=!0)=>{const o=r(u);return s([i.CertificationStatus,e],async()=>o.getCheckStatus(e),{enabled:t})};export{c as useCheckStatus};
|
|
2
|
+
//# sourceMappingURL=useCheckStatus.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as s}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";import{QueryKeys as i}from"../graphqlKeys.esm.js";const u=(e,t=!0)=>{const r=o(c);return s([i.CheckStatusHistory,e],async()=>r.getCheckStatusHistory(e),{enabled:t,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{u as useCheckStatusHistory};
|
|
2
|
+
//# sourceMappingURL=useCheckStatusHistory.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as r}from"@tanstack/react-query";import{soundcheckApiRef as i}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";const o=e=>{const t=s(i);return r([n.GetIndividualEntityPassRateTrends,e],async()=>t.getIndividualEntityPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{o as useEntityPassRateTrend};
|
|
2
|
+
//# sourceMappingURL=useEntityPassRateTrend.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as o}from"@tanstack/react-query";import{soundcheckApiRef as t}from"../../api.esm.js";import{QueryKeys as u}from"../graphqlKeys.esm.js";const i=e=>{const r=s(t);return o([u.GetIndividualGroupPassRateTrends,e],async()=>r.getIndividualGroupPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{i as useGroupPassRateTrend};
|
|
2
|
+
//# sourceMappingURL=useGroupPassRateTrend.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as a}from"../../api.esm.js";import{QueryKeys as o}from"../graphqlKeys.esm.js";const i=e=>{const r=s(a);return t([o.GetIndividualTrackPassRateTrends,e],async()=>r.getIndividualTrackPassRate(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})};export{i as useTrackPassRateTrend};
|
|
2
|
+
//# sourceMappingURL=useTrackPassRateTrend.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as m}from"@backstage/core-plugin-api";import{useQueryClient as c,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as p}from"../../api.esm.js";import{MutationKeys as g,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as h}from"../useSoundcheckAlert.esm.js";const l="Error Archiving Campaign";function y(){const t=m(p),i=c(),{showAlert:n}=h(),s=async e=>{const r=await t.archiveCampaign(e);if(!r)throw new Error(`Failed to archive campaign ${e}`);return r};return u([g.ArchiveCampaign],s,{onSuccess:()=>{Promise.all([i.invalidateQueries({queryKey:[o.GetCampaigns]}),i.invalidateQueries({queryKey:[o.GetCampaignOwners]})])},onError:(e,r)=>{let a=`Failed to archive campaign ${r}`;e instanceof Error&&(a=e.message),n({severity:"error",title:l,message:a})}})}export{y as useArchiveCampaign};
|
|
2
|
+
//# sourceMappingURL=useArchiveCampaign.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as m}from"@backstage/core-plugin-api";import{useQueryClient as u,useMutation as c}from"@tanstack/react-query";import{soundcheckApiRef as p}from"../../api.esm.js";import{MutationKeys as l,QueryKeys as a}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as g}from"../useSoundcheckAlert.esm.js";const y="Error Creating Campaign",i="Failed to create campaign.";function C(){const o=m(p),t=u(),{showAlert:n}=g(),s=async r=>{const e=await o.createCampaign(r);if(!e)throw new Error(i);return e};return c([l.CreateCampaign],s,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[a.GetCampaigns]}),t.invalidateQueries({queryKey:[a.GetCampaignOwners]})])},onError:r=>{let e=i;r instanceof Error&&(e=r.message),n({severity:"error",title:y,message:e})}})}export{C as useCreateCampaign};
|
|
2
|
+
//# sourceMappingURL=useCreateCampaign.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as m}from"@backstage/core-plugin-api";import{useQueryClient as u,useMutation as l}from"@tanstack/react-query";import{soundcheckApiRef as p}from"../../api.esm.js";import{MutationKeys as c,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as g}from"../useSoundcheckAlert.esm.js";const y="Error Deleting Campaign";function d(){const a=m(p),t=u(),{showAlert:n}=g(),s=async e=>{const r=await a.deleteCampaign(e);if(!r)throw new Error(`Failed to delete campaign ${e}`);return r};return l([c.DeleteCampaign],s,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetCampaigns]}),t.invalidateQueries({queryKey:[o.GetCampaignOwners]})])},onError:(e,r)=>{let i=`Failed to delete campaign ${r}`;e instanceof Error&&(i=e.message),n({severity:"error",title:y,message:i})}})}export{d as useDeleteCampaign};
|
|
2
|
+
//# sourceMappingURL=useDeleteCampaign.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as i}from"@backstage/core-plugin-api";import{useQuery as o}from"@tanstack/react-query";import{soundcheckApiRef as n}from"../../api.esm.js";import{QueryKeys as s}from"../graphqlKeys.esm.js";function m(r){const t=i(n),e={ids:[r]};return o([s.GetCampaigns,JSON.stringify(e)],async()=>t.getCampaigns(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{m as useGetCampaign};
|
|
2
|
+
//# sourceMappingURL=useGetCampaign.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as n}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as t}from"../graphqlKeys.esm.js";function i(){const e=r(o);return n([t.GetCampaignOwners],async()=>e.getCampaignOwners(),{refetchInterval:!1,refetchOnWindowFocus:!1})}export{i as useGetCampaignOwners};
|
|
2
|
+
//# sourceMappingURL=useGetCampaignOwners.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function p(e,r,o){const t=s(m);return i([n.GetCampaignProgress,e,r,o],async()=>t.getCampaignProgress(e,r,o),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{p as useGetCampaignProgress};
|
|
2
|
+
//# sourceMappingURL=useGetCampaignProgress.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function s(e){const r=t(o);return i([n.GetCampaigns,JSON.stringify(e)],async()=>r.getCampaigns(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{s as useGetCampaigns};
|
|
2
|
+
//# sourceMappingURL=useGetCampaigns.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as m,useMutation as p}from"@tanstack/react-query";import{soundcheckApiRef as d}from"../../api.esm.js";import{MutationKeys as c,QueryKeys as a}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as l}from"../useSoundcheckAlert.esm.js";const y="Error Updating Campaign",i="Failed to update campaign.";function g(){const n=u(d),t=m(),{showAlert:o}=l(),s=async r=>{const e=await n.updateCampaign(r);if(!e)throw new Error(i);return e};return p([c.UpdateCampaign],s,{onSuccess:()=>Promise.all([t.invalidateQueries({queryKey:[a.GetCampaigns]}),t.invalidateQueries({queryKey:[a.GetIndividualEntityPassRateTrends]}),t.invalidateQueries({queryKey:[a.GetCampaignOwners]})]),onError:r=>{let e=i;r instanceof Error&&(e=r.message),o({severity:"error",title:y,message:e})}})}export{g as useUpdateCampaign};
|
|
2
|
+
//# sourceMappingURL=useUpdateCampaign.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as s}from"@backstage/core-plugin-api";import{catalogApiRef as i}from"@backstage/plugin-catalog-react";import{useQuery as r}from"@tanstack/react-query";import{QueryKeys as o}from"../graphqlKeys.esm.js";const f=e=>{const t=s(i);return r([o.EntitiesByRefs,e],async()=>t.getEntitiesByRefs({entityRefs:e.entityRefs,fields:e.fields}),{refetchOnWindowFocus:!1,onError:()=>{},enabled:!!e.entityRefs})};export{f as useEntitiesByRefs};
|
|
2
|
+
//# sourceMappingURL=useEntitiesByRefs.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as o}from"@backstage/core-plugin-api";import{catalogApiRef as r}from"@backstage/plugin-catalog-react";import{useQuery as y}from"@tanstack/react-query";import{QueryKeys as i}from"../graphqlKeys.esm.js";const n=t=>{const e=o(r);return y([i.EntityByRef,t],async()=>e.getEntityByRef(t),{onError:()=>{},enabled:!!t})};export{n as useEntityByRef};
|
|
2
|
+
//# sourceMappingURL=useEntityByRef.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as o,alertApiRef as c}from"@backstage/core-plugin-api";import{catalogApiRef as f}from"@backstage/plugin-catalog-react";import{useQuery as m}from"@tanstack/react-query";import{QueryKeys as n}from"../graphqlKeys.esm.js";const p=(t,e)=>{const a=o(c),s=o(f);return m([n.GetEntityFacets,t,e],async()=>{var r;return((r=(await s.getEntityFacets({facets:[t],filter:e})).facets[t])==null?void 0:r.map(i=>i.value).sort())||[]},{onError:()=>{a.post({message:`Failed to load facet: ${t}`,severity:"error"})}})};export{p as useGetEntityFacets};
|
|
2
|
+
//# sourceMappingURL=useGetEntityFacets.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as o}from"@backstage/catalog-model";import{useApi as e}from"@backstage/core-plugin-api";import{useQuery as f}from"@tanstack/react-query";import{soundcheckApiRef as n}from"../../api.esm.js";import{QueryKeys as s}from"../graphqlKeys.esm.js";function m(t){const r=e(n),i=o(t);return f([s.Certifications,i],async()=>r.getAllCertifications(i))}export{m as useAllCertifications};
|
|
2
|
+
//# sourceMappingURL=useAllCertifications.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as e}from"@backstage/core-plugin-api";import{useQuery as r}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as s}from"../graphqlKeys.esm.js";function f(t){const i=e(o);return r([s.CertificationDetails,t],async()=>i.getCertificationDetails(t))}export{f as useCertificationDetails};
|
|
2
|
+
//# sourceMappingURL=useCertificationDetails.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as o}from"@backstage/catalog-model";import{useApi as f}from"@backstage/core-plugin-api";import{useQuery as n}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as a}from"../graphqlKeys.esm.js";function c(e,i){const t=f(s),r=o(e);return n([a.CertificationDetails,r,i],async()=>t.getCertificationDetailsForTrack(r,i),{enabled:!!i})}export{c as useCertificationDetailsForTrack};
|
|
2
|
+
//# sourceMappingURL=useCertificationDetailsForTrack.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as c}from"@tanstack/react-query";import{soundcheckApiRef as u}from"../../api.esm.js";function m(r,e,o,n){const i=t(u);return c(["soundcheck/track-overview-for-owner",r,e,o,n],async()=>i.getProgramOverviewForOwner(r,e,o,n),{enabled:!!r&&!!(e!=null&&e.kind),staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{m as useProgramOverviewForOwner};
|
|
2
|
+
//# sourceMappingURL=useProgramOverviewForOwner.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as s}from"@backstage/catalog-model";import{useApi as c}from"@backstage/core-plugin-api";import{useQuery as n}from"@tanstack/react-query";import{soundcheckApiRef as u}from"../../api.esm.js";function f(o,e,i){const r=c(u),t=s(o);return n(["soundcheck/check-details",t,e,i],async()=>r.getCheckResultDetails(t,e,i),{enabled:!!e&&!!i})}export{f as useCheckDetails};
|
|
2
|
+
//# sourceMappingURL=useCheckDetails.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as n}from"@backstage/core-plugin-api";import{useQueryClient as a,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as h,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as l}from"../useSoundcheckAlert.esm.js";const C="Error Creating Check";function k(){const i=n(m),t=a(),{showAlert:s}=l(),c=async r=>{const e=await i.createCheck(r);if(!e)throw new Error("Failed to create check.");return e};return u([h.CreateCheck],c,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]})])},onError:r=>{let e="Failed to create check.";r instanceof Error&&(e=r.message),s({severity:"error",title:C,message:e})}})}export{k as useCreateCheck};
|
|
2
|
+
//# sourceMappingURL=useCreateCheck.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as l,useMutation as a}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as h,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as y}from"../useSoundcheckAlert.esm.js";const d="Error Deleting Check";function k(){const s=u(m),t=l(),{showAlert:n}=y(),c=async e=>{const r=await s.deleteCheck(e);if(!r)throw new Error(`Failed to delete check ${e}`);return r};return a([h.DeleteCheck],c,{onSuccess:()=>Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetAllPrograms]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]})]),onError:(e,r)=>{let i=`Failed to delete check ${r}`;e instanceof Error&&(i=e.message),n({severity:"error",title:d,message:i})}})}export{k as useDeleteCheck};
|
|
2
|
+
//# sourceMappingURL=useDeleteCheck.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as o}from"@tanstack/react-query";import{soundcheckApiRef as t}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function c(){const e=r(t);return o([n.GetCheckOwners],async()=>e.getCheckOwners(),{refetchInterval:!1,refetchOnWindowFocus:!1})}export{c as useGetCheckOwners};
|
|
2
|
+
//# sourceMappingURL=useGetCheckOwners.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as o}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";function i(e){const r=t(s);return o([c.GetChecks,JSON.stringify(e)],async()=>r.getChecks(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{i as useGetChecks};
|
|
2
|
+
//# sourceMappingURL=useGetChecks.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as n}from"@backstage/core-plugin-api";import{useQueryClient as u,useMutation as a}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as p,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as h}from"../useSoundcheckAlert.esm.js";const d="Error Creating Check";function k(){const i=n(m),t=u(),{showAlert:s}=h(),c=async r=>{const e=await i.updateCheck(r);if(!e)throw new Error("Failed to update check.");return e};return a([p.UpdateCheck],c,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]})])},onError:r=>{let e="Failed to update check.";r instanceof Error&&(e=r.message),s({severity:"error",title:d,message:e})}})}export{k as useUpdateCheck};
|
|
2
|
+
//# sourceMappingURL=useUpdateCheck.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";function i(e){const o=r(s);return t([c.GetCollectors,e],async()=>o.getCollectors(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{i as useGetCollectors};
|
|
2
|
+
//# sourceMappingURL=useGetCollectors.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as c}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{QueryKeys as a}from"../graphqlKeys.esm.js";function i(e,t){const o=r(m);return c([a.GetFactSchema,e,t],()=>o.getFactSchema(e,t),{enabled:!!e&&!!t,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{i as useGetFactSchema};
|
|
2
|
+
//# sourceMappingURL=useGetFactSchema.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as c}from"@backstage/core-plugin-api";import{useQueryClient as s,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as l}from"../../api.esm.js";import{MutationKeys as a,QueryKeys as f}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as p}from"../useSoundcheckAlert.esm.js";const m="Error Configuring Collector";function C(){const r=c(l),t=s(),{showAlert:i}=p(),n=async e=>{const o=await r.updateCollectorConfig(e);if(!o)throw new Error("Failed to update collector configuration.");return o};return u([a.UpdateCollectorConfig],n,{onSuccess:()=>{t.invalidateQueries({queryKey:[f.GetCollectors]})},onError:e=>{let o="Failed to update collector configuration.";e instanceof Error&&(o=e.message),i({severity:"error",title:m,message:o})}})}export{C as useUpdateCollectorConfig};
|
|
2
|
+
//# sourceMappingURL=useUpdateCollectorConfig.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as a}from"@backstage/core-plugin-api";import{useQuery as f}from"@tanstack/react-query";import{useState as l}from"react";import{soundcheckApiRef as u}from"../../api.esm.js";import{QueryKeys as m}from"../graphqlKeys.esm.js";function c(e){var r;const o=a(u),[i,n]=l(null),s=async()=>(await o.getEntityRefsForTechHealthFilter(e)).entityRefsForTechHealthFilter,t=f([m.GetSoftwareEntityRefsForUser,e],s,{retry:!1,onError:n,enabled:e!==null,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1});return{data:(r=t.data)!=null?r:[],isLoading:t.isLoading,error:i}}export{c as useEntityRefsForUser};
|
|
2
|
+
//# sourceMappingURL=useEntityRefsForUser.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function s(r){const e=t(o);return i([n.TrackEntities,r],async()=>e.getTrackEntities(r),{refetchOnWindowFocus:!1})}export{s as useTrackEntities};
|
|
2
|
+
//# sourceMappingURL=useTrackEntities.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{camelCase as m}from"lodash";import{useCallback as b,useEffect as p}from"react";import{useSearchParams as v,useLocation as N,useNavigate as j}from"react-router-dom";import E from"react-use/lib/useLocalStorage";import{Facet as n}from"../../components/TechHealth/Filters/types.esm.js";import"../../components/TechHealth/Filters/FacetFilter.esm.js";import"../../components/TechHealth/Filters/FilterProvider.esm.js";import"../../components/TechHealth/Filters/Filters.esm.js";import"../../components/TechHealth/Filters/FiltersHeader.esm.js";import"../../components/TechHealth/Filters/FiltersSection.esm.js";import"@backstage/catalog-model";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../useSoundcheckAlert.esm.js";import"../useConfirmationModal.esm.js";import{emptyFacetFilters as l,DEFAULT_NUMBER_OF_DAYS as h,MIN_NUMBER_OF_DAYS as D,MAX_NUMBER_OF_DAYS as A}from"../../components/TechHealth/Filters/utils.esm.js";const M=(y,F)=>{var O;const[e]=v(),s=N(),i=j(),f=F!=null?F:(O=y[n.EntityOwner][0])==null?void 0:O.value,[a=l(f),u]=E("soundcheck.techHealth.facetFilters",l(f));a&&Object.values(n).forEach(t=>{a[t]||(a[t]=[])});const[c=h,g]=E("soundcheck.techHealth.numberOfDays",h),_=t=>!isNaN(t)&&t>=D&&t<=A,S=b((t,r)=>{const o={...a!=null?a:l()};o[t]=r,u(o)},[a,u]);return p(()=>{const t=e.get("days");if(t&&t!==c.toString()){const r=parseInt(t,10);g(_(r)?r:h)}},[]),p(()=>{const t=e.get("days");(!t||t!==c.toString())&&(e.set("days",c.toString()),i({pathname:s.pathname,search:`?${e.toString()}`}))},[c,e,s,i]),p(()=>{Object.values(n).forEach(t=>{const r=e.get(m(t));r&&r!==a[t].join(",")&&S(t,r.split(","))})},[]),p(()=>{Object.values(n).forEach(t=>{const r=a[t].join(","),o=m(t);r.length&&e.get(o)!==r&&(e.set(o,r),i({pathname:s.pathname,search:`?${e.toString()}`}))})},[a,e,s,i,f]),{setFacetFilter:(t,r)=>{S(t,r);const o=m(t);if(r.length){const d=r.join(",");e.get(o)!==d&&e.set(o,d)}else e.delete(o);i({pathname:s.pathname,search:`?${e.toString()}`})},getFacetFilter:t=>a?a[t]:[],clearFacetFilters:()=>{g(h),u(l()),e.delete("days"),Object.values(n).forEach(t=>{e.delete(m(t))}),i({pathname:s.pathname,search:`?${e.toString()}`})},facetFilters:a,numberOfDays:c,setNumberOfDays:g}};export{M as useFacetFilters};
|
|
2
|
+
//# sourceMappingURL=useFacetFilters.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as n}from"../../api.esm.js";function c(e){const r=o(n);return t(["soundcheck/facets-for-owner",e],async()=>r.getFacetsForOwner(e),{enabled:!!e,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{c as useFacetsForOwner};
|
|
2
|
+
//# sourceMappingURL=useFacetsForOwner.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var t=(e=>(e.GetAllPrograms="soundcheck/programs",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetCampaigns="soundcheck/campaigns",e.GetCampaignProgress="soundcheck/campaigns/getCampaignProgress",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/track/entities",e.CheckEntities="soundcheck/check/entities",e.CertificationStatus="soundcheck/certificationStatus",e.CertificationStatusHistory="soundcheck/certificationStatusHistory",e.CheckStatus="soundcheck/checkStatus",e.CheckStatusHistory="soundcheck/checkStatusHistory",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e))(t||{}),s=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.DeleteProgram="soundcheck/deleteProgram",e.CreateProgram="soundcheck/createProgram",e.UpdateProgram="soundcheck/updateProgram",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e))(s||{});export{s as MutationKeys,t as QueryKeys};
|
|
2
|
+
//# sourceMappingURL=graphqlKeys.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as o}from"@backstage/catalog-model";import{useApi as m}from"@backstage/core-plugin-api";import{catalogApiRef as s}from"@backstage/plugin-catalog-react";import{useQuery as p}from"@tanstack/react-query";function u(){const n=m(s);return p(["soundcheck/all-groups"],async()=>{const{items:l}=await n.getEntities({filter:{kind:"Group"},fields:["spec.profile.displayName","metadata.title","metadata.name","metadata.namespace","kind"]});return l.filter(t=>(t==null?void 0:t.kind)==="Group").map(t=>{var e,a,i,r;return{name:(r=(i=(a=(e=t.spec)==null?void 0:e.profile)==null?void 0:a.displayName)!=null?i:t.metadata.title)!=null?r:t.metadata.name,ref:o(t)}})},{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{u as useAllGroups};
|
|
2
|
+
//# sourceMappingURL=useAllGroups.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as u}from"@backstage/catalog-model";import{useApi as a,identityApiRef as m}from"@backstage/core-plugin-api";import{catalogApiRef as f}from"@backstage/plugin-catalog-react";import{useQuery as y}from"@tanstack/react-query";function c(){const o=a(m),p=a(f);return y(["soundcheck/user-groups-claims"],async()=>{const{ownershipEntityRefs:l}=await o.getBackstageIdentity();return(await p.getEntitiesByRefs({entityRefs:l})).items.filter(e=>(e==null?void 0:e.kind)==="Group").map(e=>{var t,i,r,n,s;return{name:(n=(r=(i=(t=e.spec)==null?void 0:t.profile)==null?void 0:i.displayName)!=null?r:e.metadata.title)!=null?n:e.metadata.name,ref:u(e),type:(s=e.spec)==null?void 0:s.type}})})}export{c as useUsersGroupClaims};
|
|
2
|
+
//# sourceMappingURL=useUsersGroupClaims.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as r}from"@tanstack/react-query";import{soundcheckApiRef as t}from"../../api.esm.js";function c(){const e=o(t);return r(["soundcheck/operators"],async()=>e.getOperators(),{cacheTime:1/0,staleTime:1/0,refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1})}export{c as useOperators};
|
|
2
|
+
//# sourceMappingURL=useOperators.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as o}from"@backstage/catalog-model";import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as e}from"@tanstack/react-query";import{soundcheckApiRef as n}from"../../api.esm.js";function f(s){const i=r(n),t=o(s);return e(["soundcheck/playlists",t],async()=>i.getPlaylists(t))}export{f as usePlaylists};
|
|
2
|
+
//# sourceMappingURL=usePlaylists.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as c}from"@backstage/core-plugin-api";import{useQueryClient as i,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as l,QueryKeys as t}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as f}from"../useSoundcheckAlert.esm.js";const k="Error Creating Track";function d(){const o=c(m),a=i(),{showAlert:s}=f(),n=async e=>{const r=await o.createProgram(e);if(!r)throw new Error("Failed to create track.");return r};return u([l.CreateProgram],n,{onSuccess:async()=>{const e=[t.GetAllPrograms,t.GetOverallTrackPassRateTrends,t.GetIndividualTrackPassRateTrends,t.GetTrackOwners];for(const r of e)a.invalidateQueries({queryKey:[r]})},onError:e=>{let r="Failed to create track.";e instanceof Error&&(r=e.message),s({severity:"error",title:k,message:r})}})}export{d as useCreateTrack};
|
|
2
|
+
//# sourceMappingURL=useCreateTrack.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as c}from"@backstage/core-plugin-api";import{useQueryClient as l,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as d,QueryKeys as t}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as f}from"../useSoundcheckAlert.esm.js";const k="Error Deleting Track";function p(){const s=c(m),a=l(),{showAlert:n}=f(),i=async e=>{const r=await s.deleteProgram(e);if(!r)throw new Error(`Failed to delete track ${e}`);return r};return u([d.DeleteProgram],i,{onSuccess:()=>{const e=[t.GetAllPrograms,t.GetOverallTrackPassRateTrends,t.GetIndividualTrackPassRateTrends,t.GetTrackOwners];for(const r of e)a.invalidateQueries({queryKey:[r]})},onError:(e,r)=>{let o=`Failed to delete track ${r}`;e instanceof Error&&(o=e.message),n({severity:"error",title:k,message:o})}})}export{p as useDeleteTrack};
|
|
2
|
+
//# sourceMappingURL=useDeleteTrack.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as n}from"@backstage/core-plugin-api";import{useQuery as l}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as i}from"../graphqlKeys.esm.js";function u(e,r){var o;const t=n(s);return l([i.GetAllPrograms,e],async()=>t.getTracks(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:(o=r==null?void 0:r.enabled)!=null?o:!0})}export{u as useGetAllTracks};
|
|
2
|
+
//# sourceMappingURL=useGetAllTracks.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useMemo as t}from"react";import{useGetChecks as c}from"../checks/useGetChecks.esm.js";const p=()=>{const{data:i,isLoading:u}=c({}),d=t(()=>i==null?void 0:i.edges.map(n=>n.node),[i==null?void 0:i.edges]),s=t(()=>{var n;return(n=d==null?void 0:d.filter(e=>!!e).map(e=>{var l,r,o;return{id:(l=e.id)!=null?l:"",name:(r=e.name)!=null?r:e.id,description:(o=e.description)!=null?o:""}}))!=null?n:[]},[d]),a=t(()=>d==null?void 0:d.reduce((n,e)=>{var l,r,o;return n[e.id]={id:e.id,name:(l=e.name)!=null?l:e.id,description:(r=e.description)!=null?r:"",filter:(o=e.filter)!=null?o:void 0},n},{}),[d]);return{checkChips:s,checksMap:a,checksLoading:u}};export{p as useGetChecksMap};
|
|
2
|
+
//# sourceMappingURL=useGetChecksMap.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as o}from"@tanstack/react-query";import{soundcheckApiRef as t}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function c(){const e=r(t);return o([n.GetTrackOwners],async()=>e.getTrackOwners(),{refetchInterval:!1,refetchOnWindowFocus:!1})}export{c as useGetTrackOwners};
|
|
2
|
+
//# sourceMappingURL=useGetTrackOwners.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as n}from"@backstage/core-plugin-api";import{useQueryClient as u,useMutation as c}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as p,QueryKeys as a}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as d}from"../useSoundcheckAlert.esm.js";const l="Error Updating Track";function y(){const o=n(m),t=u(),{showAlert:i}=d(),s=async e=>{const r=await o.updateProgram(e);if(!r)throw new Error("Failed to update track.");return r};return c([p.UpdateProgram],s,{onSuccess:async()=>{await t.invalidateQueries({queryKey:[a.GetAllPrograms]}),await t.invalidateQueries({queryKey:[a.GetTrackOwners]})},onError:e=>{let r="Failed to update track.";e instanceof Error&&(r=e.message),i({severity:"error",title:l,message:r})}})}export{y as useUpdateTrack};
|
|
2
|
+
//# sourceMappingURL=useUpdateTrack.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as v,Modal as E,Box as k,Typography as c,Button as m}from"@material-ui/core";import e,{createContext as h,useState as s,useRef as B,useCallback as l,useContext as M}from"react";const N=v(t=>({modalContent:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:t.palette.background.paper},modalButtons:{display:"flex",justifyContent:"flex-end","& button":{width:"40%",maxWidth:"185px"},padding:t.spacing(2,3),borderTop:`1px solid ${t.palette.divider}`},modalMessage:{margin:"15px 0 35px"},modalText:{padding:t.spacing(2,3,0,3)},cancelButton:{color:t.palette.text.primary}})),d=h({}),w=t=>{const a=N(),[p,n]=s(!1),[r,u]=s(),o=B(),f=l(({title:C,message:b,error:g})=>(u({title:C,message:b,error:g}),n(!0),new Promise(y=>{o.current=y})),[]),x=l(()=>{o.current&&o.current(!0),n(!1)},[]),i=l(()=>{o.current&&o.current(!1),n(!1)},[]);return e.createElement(d.Provider,{value:{showModal:f}},t.children,r&&e.createElement(E,{open:p,onClose:i,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description"},e.createElement(k,{className:a.modalContent},e.createElement("div",{className:a.modalText},e.createElement(c,{id:"confirmation-modal-title",variant:"h6"},r.title),e.createElement(c,{className:a.modalMessage,id:"confirmation-modal-description",variant:"body1"},r.message)),e.createElement("div",{className:a.modalButtons},!r.error&&e.createElement(m,{onClick:i,variant:"text","aria-label":"cancel",className:a.cancelButton},"Cancel"),e.createElement(m,{color:"primary",onClick:x,variant:"contained","aria-label":"confirm"},r.error?"Ok":"Confirm")))))},T=()=>M(d);export{w as default,T as useConfirmationModal};
|
|
2
|
+
//# sourceMappingURL=useConfirmationModal.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useState as l}from"react";const o={mouseX:null,mouseY:null},c=()=>{const[u,n]=l(o),s=e=>{e.preventDefault(),n({mouseX:e.clientX-2,mouseY:e.clientY-4})},t=()=>{n(o)};return{contextMenu:u,onContextMenu:s,onContextMenuClick:()=>{t()},onContextMenuClose:t}};export{c as useContextMenu};
|
|
2
|
+
//# sourceMappingURL=useContextMenu.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useRouteRef as s}from"@backstage/core-plugin-api";import{useCallback as r}from"react";import{useNavigate as u,useLocation as i}from"react-router-dom";const m=a=>{const e=s(a),o=u(),{key:t}=i();return[r(()=>{o(t?-1:e())},[o,e,t]),r(()=>o(e()),[o,e])]};export{m as useNavigateBack};
|
|
2
|
+
//# sourceMappingURL=useNavigateBack.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useState as c,useEffect as f}from"react";import{useSearchParams as m}from"react-router-dom";function u(r){const[e,a]=m(),[s,t]=c([]);return f(()=>{const o=e.getAll(r);t(o)},[e,r]),[s,o=>{e.delete(r);for(const n of o)e.append(r,n);a(e),t(o)}]}export{u as useSearchParam};
|
|
2
|
+
//# sourceMappingURL=useSearchParam.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import l,{createContext as i,useState as u,useCallback as o,useContext as m}from"react";import{AlertPanel as v}from"../components/AlertPanel/AlertPanel.esm.js";const n=i({}),A=s=>{const[e,t]=u(),c=o(a=>{t(a)},[]),r=o(()=>{t(null)},[]);return l.createElement(n.Provider,{value:{showAlert:c,clearAlert:r}},e&&l.createElement(v,{severity:e.severity,title:e.title,onClose:r},e.message),s.children)},d=()=>m(n);export{A as AlertProvider,d as useSoundcheckAlert};
|
|
2
|
+
//# sourceMappingURL=useSoundcheckAlert.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useState as a}from"react";const m=(p,r)=>{const[e,i]=a(0),[n,d]=a(p),u=async t=>{const l=r[e];if(await t(l)){const s=e+1;i(s),n.indexOf(s)===-1&&d(f=>[...f,s])}},S=()=>{i(t=>t-1)},o=t=>t<e,c=t=>t!==e&&n.includes(t);return{activeStep:e,handleNext:u,handleBack:S,isPreviousStep:o,isVisitedStep:c,onStepClick:t=>{(o(t)||c(t))&&i(t)}}};export{m as useStepper};
|
|
2
|
+
//# sourceMappingURL=useStepper.esm.js.map
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{EntitySoundcheckCard as u,EntitySoundcheckContent as i,GroupSoundcheckContent as r,SoundcheckOverviewPage as d,SoundcheckRoutingPage as h,soundcheckPlugin as k}from"./plugin.esm.js";import"react";import"./components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import"./components/EntitySoundcheckCard/Card.esm.js";export{u as EntitySoundcheckCard,i as EntitySoundcheckContent,r as GroupSoundcheckContent,d as SoundcheckOverviewPage,h as SoundcheckRoutingPage,k as soundcheckPlugin};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createPlugin as i,createApiFactory as c,discoveryApiRef as r,fetchApiRef as u,createRoutableExtension as t,createComponentExtension as p}from"@backstage/core-plugin-api";import{soundcheckApiRef as d,SoundcheckApi as a}from"./api.esm.js";import{entityRootRouteRef as n,certificationRouteRef as m,groupRootRouteRef as h,overviewRouteRef as R,rootRouteRef as v}from"./routes.esm.js";const o=i({id:"soundcheck",apis:[c({api:d,deps:{discoveryApi:r,fetchApi:u},factory:e=>new a(e)})],routes:{entityContent:n,entityCertification:m}}),f=o.provide(t({name:"EntitySoundcheckContent",component:()=>import("./components/EntitySoundcheckContent.esm.js").then(e=>e.EntitySoundcheckContent),mountPoint:n})),k=o.provide(p({name:"EntitySoundcheckCard",component:{lazy:()=>import("./components/EntitySoundcheckCard/index.esm.js").then(e=>e.EntitySoundcheckCard)}})),y=o.provide(t({name:"GroupSoundcheckContent",component:()=>import("./components/OverviewPage/index.esm.js").then(e=>e.FixedGroupOverviewPage),mountPoint:h})),g=o.provide(t({name:"SoundcheckOverviewPage",component:()=>import("./components/OverviewPage/index.esm.js").then(e=>e.OverviewPage),mountPoint:R})),P=o.provide(t({name:"SoundcheckRoutingPage",component:()=>import("./components/RoutingPage/index.esm.js").then(e=>e.RoutingPage),mountPoint:v}));export{k as EntitySoundcheckCard,f as EntitySoundcheckContent,y as GroupSoundcheckContent,g as SoundcheckOverviewPage,P as SoundcheckRoutingPage,o as soundcheckPlugin};
|
|
2
|
+
//# sourceMappingURL=plugin.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{convertLegacyRouteRef as o}from"@backstage/core-compat-api";import{createRouteRef as a,createSubRouteRef as r}from"@backstage/core-plugin-api";const t=i=>o(r(i)),c=a({id:"soundcheck-entity"}),d=a({id:"soundcheck-group"}),s=t({id:"soundcheck-entity-certification-track-redirect",parent:c,path:"/tracks/:trackId"}),n=t({id:"soundcheck-entity-certification",parent:c,path:"/tracks/:trackId/checks/:checkId"}),p=t({id:"soundcheck-entity-playlist-redirect",parent:c,path:"/playlists/:playlistId"}),k=t({id:"soundcheck-entity-playlist-track-redirect",parent:c,path:"/playlists/:playlistId/tracks/:trackId"}),h=t({id:"soundcheck-entity-playlist-track-redirect",parent:c,path:"/playlists/:playlistId/tracks/:trackId/checks/:checkId"}),l=a({id:"soundcheck-overview"}),e=a({id:"soundcheck"}),R=t({id:"soundcheck-checks",parent:e,path:"/checks"}),u=t({id:"soundcheck-check-details",parent:e,path:"/checks/:checkId"}),f=t({id:"soundcheck-tracks",parent:e,path:"/tracks"}),y=t({id:"soundcheck-track-details",parent:e,path:"/tracks/:trackId"}),g=t({id:"soundcheck-track-edit",parent:e,path:"/tracks/:trackId/edit"}),m=t({id:"soundcheck-campaigns",parent:e,path:"/campaigns"}),I=t({id:"soundcheck-campaign-details",parent:e,path:"/campaigns/:campaignId"}),P=t({id:"soundcheck-campaign-edit",parent:e,path:"/campaigns/:campaignId/edit"}),v=t({id:"soundcheck-tech-health",parent:e,path:"/tech-health"}),D=t({id:"soundcheck-collectors-page",parent:e,path:"/collectors"}),T=t({id:"soundcheck-collector-details",parent:e,path:"/collectors/:collectorId"});export{I as campaignDetailsRouteRef,P as campaignEditRouteRef,m as campaignsPageRouteRef,p as certificationPlaylistRouteRef,h as certificationPlaylistTrackCheckRouteRef,k as certificationPlaylistTrackRouteRef,n as certificationRouteRef,s as certificationTrackRouteRef,u as checkDetailsRouteRef,R as checksPageRouteRef,T as collectorDetailsRouteRef,D as collectorsPageRouteRef,c as entityRootRouteRef,d as groupRootRouteRef,l as overviewRouteRef,e as rootRouteRef,v as techHealthRouteRef,y as trackDetailsRouteRef,g as trackEditRouteRef,f as tracksPageRouteRef};
|
|
2
|
+
//# sourceMappingURL=routes.esm.js.map
|
package/dist/text.esm.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ResultState as e}from"./graphql/generated/index.esm.js";const o=t=>({[e.Passed]:"Check passed",[e.NotReported]:"Check not reported",[e.Failed]:"Check failed",[e.Warning]:"Check produced warning(s)",[e.NotApplicable]:"Check not applicable"})[t];export{o as resultToText};
|
|
2
|
+
//# sourceMappingURL=text.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const s="check-pass-rates-summary.csv",a="track-pass-rates-summary.csv",e="entity-pass-rates-summary.csv",t="team-pass-rates-summary.csv",m="check-pass-rates.csv",c="track-pass-rates.csv",r="entity-pass-rates.csv",v="team-pass-rates.csv",n="campaign-track-pass-rates.csv";export{n as campaignTrackPassRatesCsvFilename,m as checkPassRatesCsvFilename,s as checkPassRatesSummaryCsvFilename,r as entityPassRatesCsvFilename,e as entityPassRatesSummaryCsvFilename,v as groupPassRatesCsvFilename,t as groupPassRatesSummaryCsvFilename,c as trackPassRatesCsvFilename,a as trackPassRatesSummaryCsvFilename};
|
|
2
|
+
//# sourceMappingURL=charts.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import t from"cron-validate";import i from"cronstrue";const e=r=>t(r).isValid(),n=r=>{try{return i.toString(r)}catch(o){return typeof o=="string"?o.replace(/^Error:\s*/,""):"Invalid cron expression"}};export{n as getCronDescription,e as isValidCron};
|
|
2
|
+
//# sourceMappingURL=cron.esm.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{dump as a}from"js-yaml";const r=e=>{const t={ordinal:e.ordinal,checks:e.checks};return e.name&&(t.name=e.name),e.description&&(e.description=e.description),t},i=(e,t)=>{const n=new Blob([e],{type:"text/plain"}),s=window.document.createElement("a");s.href=window.URL.createObjectURL(n),s.download=t,s.click(),s.remove()},o=e=>{const t={id:e.id,name:e.name,ownerEntityRef:e.ownerEntityRef,levels:e.levels.map(r)};e.description&&(t.description=e.description),e.documentationURL&&(t.documentationURL=e.documentationURL),e.filter&&(t.filter=e.filter);const n=`# Exported YAML Track. You can rename the track id if needed.
|
|
2
|
+
# Please ensure you have also exported the associated checks and that the ids match.
|
|
3
|
+
`+a(t);return i(n,`track-${e.id}.yaml`),n},c=e=>{const t={id:e.id,rule:e.rule};e.ownerEntityRef&&(t.ownerEntityRef=e.ownerEntityRef),e.name&&(t.name=e.name),e.description&&(t.description=e.description),e.filter&&(t.filter=e.filter),e.warning&&(t.warning=e.warning),e.passedMessage&&(t.passedMessage=e.passedMessage),e.failedMessage&&(t.failedMessage=e.failedMessage),e.passedMessage&&(t.passedMessage=e.passedMessage);const n=`# Exported YAML Check. You can rename the check id if needed.
|
|
4
|
+
# Please ensure the ids match in the associated tracks.
|
|
5
|
+
`+a(t);return i(n,`check-${e.id}.yaml`),n};export{c as exportCheck,o as exportTrack};
|
|
6
|
+
//# sourceMappingURL=export.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as o}from"@material-ui/core/styles";const e=o(t=>({root:{overflow:"hidden",display:"flex",marginBottom:"53px"},card:{padding:t.spacing(3),display:"flex",gap:t.spacing(2.5)},buttonChoices:{margin:"20px 0","& button":{marginRight:"10px"}},backButton:{color:t.palette.text.primary},filters:{display:"flex",gap:t.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"},stepper:{width:"100%"}}));export{e as formStyles};
|
|
2
|
+
//# sourceMappingURL=formStyles.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{isValidCron as t,getCronDescription as n}from"./cron.esm.js";import{validateTimeUnitValue as o}from"./time.esm.js";const a=({type:r,cron:e,value:i})=>{if(r==="cron"){if(!t(e))return n(e)}else if(r==="HumanDuration")return o(i);return!0};export{a as validateFrequency};
|
|
2
|
+
//# sourceMappingURL=frequency.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e="soundcheck",i="Submitted check results will still be stored, but it will not be possible to view certifications or individual results until a valid license is present.";export{i as invalidLicenseMessage,e as soundcheckBackend};
|
|
2
|
+
//# sourceMappingURL=license.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const i=1,r=31536e3,n=e=>{if(e){if(isNaN(e))return"Invalid value";if(e<1)return"Minimum of 1";if(e>31536e3)return"Maximum exceeded"}else return"Enter a value";return!0};export{r as MAX_TIME_UNIT_VALUE,i as MIN_TIME_UNIT_VALUE,n as validateTimeUnitValue};
|
|
2
|
+
//# sourceMappingURL=time.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spotify/backstage-plugin-soundcheck",
|
|
3
3
|
"description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
|
|
4
|
-
"version": "0.12.
|
|
4
|
+
"version": "0.12.8",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://backstage.spotify.com",
|
|
7
7
|
"main": "./dist/index.esm.js",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"prepare": "yarn generate"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@backstage/catalog-client": "^1.6.
|
|
41
|
-
"@backstage/catalog-model": "^1.
|
|
42
|
-
"@backstage/core-compat-api": "^0.2.
|
|
43
|
-
"@backstage/core-components": "^0.14.
|
|
40
|
+
"@backstage/catalog-client": "^1.6.5",
|
|
41
|
+
"@backstage/catalog-model": "^1.5.0",
|
|
42
|
+
"@backstage/core-compat-api": "^0.2.5",
|
|
43
|
+
"@backstage/core-components": "^0.14.7",
|
|
44
44
|
"@backstage/core-plugin-api": "^1.9.2",
|
|
45
|
-
"@backstage/frontend-plugin-api": "^0.6.
|
|
46
|
-
"@backstage/plugin-catalog-react": "^1.
|
|
45
|
+
"@backstage/frontend-plugin-api": "^0.6.5",
|
|
46
|
+
"@backstage/plugin-catalog-react": "^1.12.0",
|
|
47
47
|
"@backstage/plugin-permission-react": "^0.4.22",
|
|
48
48
|
"@backstage/types": "^1.1.1",
|
|
49
49
|
"@date-io/luxon": "^1.0.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
54
54
|
"@material-ui/pickers": "3.3.11",
|
|
55
55
|
"@spotify/backstage-plugin-core": "^0.7.1",
|
|
56
|
-
"@spotify/backstage-plugin-soundcheck-common": "^0.13.
|
|
56
|
+
"@spotify/backstage-plugin-soundcheck-common": "^0.13.2",
|
|
57
57
|
"@tanstack/react-query": "^4.6.1",
|
|
58
58
|
"@types/react-csv": "^1.1.6",
|
|
59
59
|
"@uiw/react-md-editor": "3.20.10",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"cronstrue": "^2.28.0",
|
|
63
63
|
"framer-motion": "^6.0.0",
|
|
64
64
|
"graphql-request": "6.1.0",
|
|
65
|
+
"js-yaml": "^4.1.0",
|
|
65
66
|
"lodash": "^4.17.21",
|
|
66
67
|
"luxon": "^3.1.1",
|
|
67
68
|
"react-circular-progressbar": "^2.1.0",
|
|
@@ -83,12 +84,12 @@
|
|
|
83
84
|
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
|
84
85
|
},
|
|
85
86
|
"devDependencies": {
|
|
86
|
-
"@backstage/cli": "^0.26.
|
|
87
|
-
"@backstage/core-app-api": "^1.12.
|
|
88
|
-
"@backstage/dev-utils": "^1.0.
|
|
87
|
+
"@backstage/cli": "^0.26.5",
|
|
88
|
+
"@backstage/core-app-api": "^1.12.5",
|
|
89
|
+
"@backstage/dev-utils": "^1.0.32",
|
|
89
90
|
"@backstage/e2e-test-utils": "^0.1.1",
|
|
90
|
-
"@backstage/frontend-test-utils": "^0.1.
|
|
91
|
-
"@backstage/test-utils": "^1.5.
|
|
91
|
+
"@backstage/frontend-test-utils": "^0.1.7",
|
|
92
|
+
"@backstage/test-utils": "^1.5.5",
|
|
92
93
|
"@graphql-codegen/cli": "^5.0.0",
|
|
93
94
|
"@graphql-codegen/typescript": "^4.0.0",
|
|
94
95
|
"@graphql-codegen/typescript-graphql-request": "^6.0.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Link as h,InfoCard as C}from"@backstage/core-components";import{useRouteRef as p}from"@backstage/core-plugin-api";import{useEntity as S}from"@backstage/plugin-catalog-react";import{Divider as I}from"@material-ui/core";import L from"@material-ui/core/styles/makeStyles";import{SpotifyLicenseBanner as R}from"@spotify/backstage-plugin-core";import e,{Fragment as b}from"react";import{g as f,a as w,b as D,d as N}from"./CertificationSidebar-DB4UqW7X.esm.js";import"@tanstack/react-query";import{b as A,a as P}from"./routes-DcGwdXHX.esm.js";import{A as x,a as B}from"./EmptyState-C2zsaDrr.esm.js";import"@backstage/catalog-model";import"react-router-dom";import{s as F,i as M}from"./license-CQErZDIh.esm.js";import"@material-ui/lab";const T=()=>e.createElement(e.Fragment,null,e.createElement(f,{hideDescription:!0}),e.createElement(f,{hideDescription:!0})),u=L(t=>({certificationWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center"},infoCard:{display:"grid",gridRowGap:t.spacing(2)},emptyState:{overflow:"hidden"}})),o=({children:t,title:n})=>{const a=u();return e.createElement(C,{title:n},e.createElement("div",{className:a.infoCard},e.createElement(R,{inline:!0,backend:F,invalidLicenseMessage:M}),t))},W=(t,n)=>{var a,i;return(i=(a=t.find(l=>l.trackIds.some(m=>m===n)))==null?void 0:a.id)!=null?i:""},$=({title:t="Soundcheck"})=>{const{entity:n}=S(),a=u(),{data:i,isError:l,isLoading:m}=w(n),{data:c,isError:g,isLoading:E}=D(n),y=p(A),k=p(P);return l||g?e.createElement(o,{title:t},e.createElement(x,{severity:"error",title:"Error loading certifications"})):m||E||!i||!c?e.createElement(o,{title:t},e.createElement(T,null)):i.length?e.createElement(o,{title:t},i.map((r,v)=>{var s,d;return e.createElement(b,{key:r.program.name},e.createElement("div",{className:a.certificationWrapper,"data-testid":"soundcheck-track-row"},e.createElement(N,{key:r.program.id,name:r.program.name,badge:(s=r.highestLevel)==null?void 0:s.badge,trackType:(d=r.program)==null?void 0:d.type}),e.createElement(h,{to:r.program.type==="playlist"?k({playlistId:W(c,r.program.id),trackId:r.program.id}):y({trackId:r.program.id})},"View Details")),v<i.length-1?e.createElement(I,null):null)})):e.createElement(o,{title:t},e.createElement("div",{className:a.emptyState},e.createElement(B,null)))};export{$ as C};
|
|
2
|
-
//# sourceMappingURL=Card-BU6-9YfF.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{stringifyEntityRef as p}from"@backstage/catalog-model";import{useApi as g,useRouteRef as b}from"@backstage/core-plugin-api";import{useQuery as u}from"@tanstack/react-query";import{s as E,c as F,d as U}from"./routes-DcGwdXHX.esm.js";import{Q as C,C as P,L as S,N as H,b as Q,F as f,A as W}from"./EmptyState-C2zsaDrr.esm.js";import{useEntity as $}from"@backstage/plugin-catalog-react";import{makeStyles as m,Tooltip as G,Typography as c,Box as M}from"@material-ui/core";import t from"react";import{Link as j}from"react-router-dom";import K from"classnames";import O from"@material-ui/icons/Schedule";import{useAutoUpdatingRelativeTime as _}from"@spotify/backstage-plugin-core";import{DateTime as N}from"luxon";import{MarkdownContent as y,Link as q}from"@backstage/core-components";import{Skeleton as o}from"@material-ui/lab";function J(e){const a=g(E),r=p(e);return u([C.Certifications,r],async()=>a.getAllCertifications(r))}function I(e,a){const r=g(E),l=p(e);return u([C.CertificationDetails,l,a],async()=>r.getCertificationDetailsForTrack(l,a),{enabled:!!a})}function V(e){const a=g(E),r=p(e);return u(["soundcheck/playlists",r],async()=>a.getPlaylists(r))}const X=m(e=>({root:{display:"inline-flex",alignItems:"center",gap:e.spacing(1)}})),T=({timestamp:e,description:a})=>{const r=X(),l=N.fromISO(e).toLocaleString(N.DATETIME_FULL),i=_(e),n=a?`${a}: ${i}`:void 0;return t.createElement("div",{className:r.root},t.createElement(G,{title:l},t.createElement(c,{variant:"caption","aria-label":n},i)),t.createElement(O,{fontSize:"small"}))},x=m(e=>({root:{display:"grid",width:"100%",gridTemplateColumns:"auto 1fr auto",gridColumnGap:e.spacing(1),padding:e.spacing(1),alignItems:"center","&.selected":{backgroundColor:e.palette.action.hover},"&:hover, &:active, &:focus":{backgroundColor:e.palette.action.hover}}})),Y=({className:e,href:a,children:r})=>a?t.createElement(j,{to:a,className:e},r):t.createElement("div",{className:e},r),Z=({result:e,name:a,timestamp:r,selected:l=!1,href:i})=>{const n=x(),d=K(n.root,{selected:l});return t.createElement(Y,{href:i,className:d},t.createElement(P,{result:e}),t.createElement(c,{variant:"body2"},a),r?t.createElement(T,{timestamp:r}):null)},ee=m(e=>({noChecks:{padding:e.spacing(1)},checks:{padding:0,margin:0,flex:1,listStyle:"none"},checkItem:{borderBottom:`1px solid ${e.palette.divider}`,"&:last-of-type":{borderBottom:"0"},color:e.palette.text.primary,"& a":{color:e.palette.text.primary,textDecoration:"none"}}})),te=({checks:e,playlistId:a,trackId:r,checkId:l})=>{const i=ee(),n=b(F),d=b(U);return e.length?t.createElement("ul",{className:i.checks},e.map(s=>t.createElement("li",{key:s.id,className:i.checkItem},t.createElement(Z,{...s,selected:s.id===l,href:a?d({playlistId:a,trackId:r,checkId:s.id}):n({trackId:r,checkId:s.id})})))):t.createElement(c,{variant:"body2",className:i.noChecks},"No applicable checks at this level.")},L=m(e=>({wrapper:{backgroundColor:e.palette.background.default,color:e.palette.text.primary,fontSize:e.typography.caption.fontSize,minHeight:"auto",borderTop:`1px solid ${e.palette.divider}`,borderBottom:`1px solid ${e.palette.divider}`,padding:e.spacing(1),display:"grid",gridTemplateAreas:({badge:a})=>[`"${a?"badge":"title"} title"`,`"${a?".":"description"} description"`].join(" "),gridTemplateColumns:"auto 1fr"},title:{gridArea:"title",textTransform:"uppercase",fontWeight:"bold",color:e.palette.text.primary,fontSize:e.typography.body2.fontSize,paddingTop:e.spacing(.5),paddingBottom:e.spacing(.5),lineHeight:1},badge:{gridArea:"badge",marginRight:e.spacing(1)},description:{gridArea:"description",color:e.palette.text.primary,fontSize:e.typography.subtitle2.fontSize,"& p":{marginBlockStart:0,marginBlockEnd:0}}})),ae=e=>{const a=L({badge:e.badge});return t.createElement("div",{className:a.wrapper},e.badge?t.createElement(S,{className:a.badge,badge:e.badge}):null,t.createElement(c,{className:a.title},e.title),e.description?t.createElement(y,{className:a.description,content:e.description}):null)},R=({level:e,checkId:a,trackId:r,playlistId:l,isCampaign:i})=>{var n;return t.createElement(t.Fragment,null,!i&&t.createElement(ae,{badge:e.badge,title:e.name,description:e.description}),t.createElement(te,{checks:(n=e.checks)!=null?n:[],playlistId:l,trackId:r,checkId:a}))},z=({badge:e,className:a,size:r="small",trackType:l})=>{const i=a||"";let n=t.createElement(H,{className:i,size:r});return l==="campaign"?n=t.createElement(Q,{className:i,size:r}):e&&(n=t.createElement(S,{className:i,size:r,badge:e})),n},h=m(e=>({description:{padding:0,margin:0,display:"block","& p":{margin:0}},root:{padding:e.spacing(2),margin:0,display:"grid",gridTemplateColumns:"min-content auto",gridGap:e.spacing(2)},title:{fontSize:e.typography.pxToRem(18),fontWeight:700,lineHeight:1.235,marginBottom:"6px"},level:{textTransform:"uppercase",color:e.palette.text.secondary,fontWeight:700,letterSpacing:"1px"}}));function re({description:e,documentationUrl:a}){const r=h();return a?t.createElement("div",{className:r.description},t.createElement(y,{content:e}),t.createElement(q,{to:a},"Learn more")):t.createElement("div",{className:r.description},t.createElement(y,{content:e}))}const A=({name:e,badge:a,description:r,documentationUrl:l,trackType:i="standard"})=>{const n=h();return t.createElement("div",{className:n.root},t.createElement(z,{badge:a,trackType:i,size:"large"}),t.createElement("div",null,t.createElement(c,{className:n.title},e),r&&t.createElement(re,{description:r,documentationUrl:l})))},B=({hideDescription:e=!1})=>{const a=h();return t.createElement(f,null,t.createElement("div",{className:a.root},t.createElement(o,{width:44,height:44}),t.createElement("div",null,t.createElement(c,{variant:"caption",className:a.level},t.createElement(o,{width:100})),t.createElement(c,{variant:"h4",className:a.title},t.createElement(o,{width:300})),!e&&t.createElement(c,{variant:"body2"},t.createElement(o,null)))))},k=()=>{const e=x();return t.createElement(f,null,t.createElement("div",{className:e.root},t.createElement(o,{width:24,height:24}),t.createElement(c,{variant:"body2"},t.createElement(o,null)),t.createElement(o,{width:100,height:24})))},ne=()=>{const e=L({});return t.createElement(f,null,t.createElement("div",{className:e.wrapper},t.createElement(o,{className:e.title}),t.createElement(c,{className:e.description},t.createElement(o,null))))},w=()=>{const e=ie();return t.createElement("div",null,t.createElement(B,null),new Array(3).fill(null).map((a,r)=>t.createElement(t.Fragment,{key:`skeleton-level-${r}`},t.createElement(ne,null),t.createElement("ul",{className:e.checks},t.createElement(k,null),t.createElement(k,null),t.createElement(k,null)))))},ie=m(()=>({checks:{padding:0,margin:0,flex:1,listStyle:"none"}})),le=({playlistId:e,trackId:a,checkId:r})=>{var l;const{entity:i}=$(),{data:n,isLoading:d,isError:s}=I(i,a);if(s)return t.createElement("div",null,t.createElement(M,{padding:2},t.createElement(W,{severity:"error",title:"Error loading certification"})));if(d||!a)return t.createElement(w,null);if(!n)return null;const D=n.program.type==="campaign";return t.createElement("div",null,t.createElement(A,{name:n.program.name,badge:(l=n.highestLevel)==null?void 0:l.badge,description:n.program.description,documentationUrl:n.program.documentationURL,trackType:n.program.type}),n==null?void 0:n.levels.map(v=>t.createElement(R,{key:v.ordinal,level:v,checkId:r,trackId:a,playlistId:e,isCampaign:D})))};export{z as C,T as R,J as a,V as b,w as c,A as d,R as e,le as f,B as g,I as u};
|
|
2
|
-
//# sourceMappingURL=CertificationSidebar-DB4UqW7X.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{useApi as A,errorApiRef as F}from"@backstage/core-plugin-api";import{QueryClient as M,QueryClientProvider as D}from"@tanstack/react-query";import{memoize as H}from"lodash";import a,{createContext as y,useState as m,useCallback as l,useContext as v,useRef as L,useEffect as U}from"react";import{makeStyles as c,Modal as W,Box as Q,Typography as p,Button as E,withStyles as d,alpha as K,Fade as j,Card as q}from"@material-ui/core";import{Alert as J,AlertTitle as V}from"@material-ui/lab";import X from"@material-ui/icons/Check";import Y from"@material-ui/icons/Close";import Z from"@material-ui/icons/HelpOutline";import _ from"@material-ui/icons/RemoveCircleOutline";import ee from"@material-ui/icons/ReportProblemOutlined";import{R as n}from"./routes-DcGwdXHX.esm.js";import u from"classnames";import{parseEntityRef as b}from"@backstage/catalog-model";import{humanizeEntityRef as R}from"@backstage/plugin-catalog-react";import te from"../images/empty-state.svg";const ae=H(e=>new M({defaultOptions:{queries:{refetchInterval:6e4,refetchIntervalInBackground:!1,refetchOnWindowFocus:"always",retry:2,retryDelay:t=>{const r=450+Math.ceil(Math.random()*100);return Math.min(r*2**t,3e4)},onError:t=>e.post(t)}}})),re=e=>{const t=A(F),r=ae(t);return a.createElement(D,{client:r},e.children)};var P=(e=>(e.GetAllPrograms="soundcheck/programs",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetCampaigns="soundcheck/campaigns",e.GetCampaignProgress="soundcheck/campaigns/getCampaignProgress",e.GetOverallCheckPassRateSnapshots="soundcheck/charts/overallCheckPassRateSnapshots",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateSnapshots="soundcheck/charts/getIndividualCheckPassRateSnapshots",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateSnapshots="soundcheck/charts/overallTrackPassRateSnapshots",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateSnapshots="soundcheck/charts/individualTrackPassRateSnapshots",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateSnapshots="soundcheck/charts/individualEntityPassRateSnapshots",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateSnapshots="soundcheck/charts/individualGroupPassRateSnapshots",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/tracks/entities",e.CertificationStatus="soundcheck/certificationStatus",e.CertificationStatusHistory="soundcheck/certificationStatusHistory",e.CheckStatus="soundcheck/checkStatus",e.CheckStatusHistory="soundcheck/checkStatusHistory",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e))(P||{}),x=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.DeleteProgram="soundcheck/deleteProgram",e.CreateProgram="soundcheck/createProgram",e.UpdateProgram="soundcheck/updateProgram",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e))(x||{});const se=c(e=>({root:{alignItems:"flex-start",padding:e.spacing(2)},alertTitle:{marginBottom:0}})),T=e=>{const t=se();return a.createElement(J,{severity:e.severity,elevation:1,classes:{...t},onClose:e.onClose,variant:"filled"},a.createElement(V,{className:t.alertTitle},e.title),e.children)},S=y({}),oe=e=>{const[t,r]=m(),s=l(k=>{r(k)},[]),o=l(()=>{r(null)},[]);return a.createElement(S.Provider,{value:{showAlert:s,clearAlert:o}},t&&a.createElement(T,{severity:t.severity,title:t.title,onClose:o},t.message),e.children)},ne=()=>v(S),ce=c(e=>({modalContent:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.paper},modalButtons:{display:"flex",justifyContent:"flex-end","& button":{width:"40%",maxWidth:"185px"},padding:e.spacing(2,3),borderTop:`1px solid ${e.palette.divider}`},modalMessage:{margin:"15px 0 35px"},modalText:{padding:e.spacing(2,3,0,3)},cancelButton:{color:e.palette.text.primary}})),G=y({}),ie=e=>{const t=ce(),[r,s]=m(!1),[o,k]=m(),i=L(),w=l(({title:B,message:$,error:z})=>(k({title:B,message:$,error:z}),s(!0),new Promise(O=>{i.current=O})),[]),I=l(()=>{i.current&&i.current(!0),s(!1)},[]),C=l(()=>{i.current&&i.current(!1),s(!1)},[]);return a.createElement(G.Provider,{value:{showModal:w}},e.children,o&&a.createElement(W,{open:r,onClose:C,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description"},a.createElement(Q,{className:t.modalContent},a.createElement("div",{className:t.modalText},a.createElement(p,{id:"confirmation-modal-title",variant:"h6"},o.title),a.createElement(p,{className:t.modalMessage,id:"confirmation-modal-description",variant:"body1"},o.message)),a.createElement("div",{className:t.modalButtons},!o.error&&a.createElement(E,{onClick:C,variant:"text","aria-label":"cancel",className:t.cancelButton},"Cancel"),a.createElement(E,{color:"primary",onClick:I,variant:"contained","aria-label":"confirm"},o.error?"Ok":"Confirm")))))},le=()=>v(G),de=e=>({[n.Passed]:"Check passed",[n.NotReported]:"Check not reported",[n.Failed]:"Check failed",[n.Warning]:"Check produced warning(s)",[n.NotApplicable]:"Check not applicable"})[e],me=d(e=>({root:{color:e.palette.success.main}}))(X),pe=d(e=>({root:{color:e.palette.error.main}}))(Y),ue=d(e=>({root:{color:e.palette.warning.main}}))(ee),he=d(e=>({root:{color:e.palette.info.main}}))(Z),ke=d(e=>({root:{color:e.palette.text.disabled}}))(_),ge=({result:e,className:t})=>{const r={className:t,"aria-label":de(e),"aria-hidden":!1};return e===n.Passed?a.createElement(me,{...r}):e===n.NotReported?a.createElement(he,{...r}):e===n.Failed?a.createElement(pe,{...r}):e===n.Warning?a.createElement(ue,{...r}):e===n.NotApplicable?a.createElement(ke,{...r}):null},N=24,fe=11,g=e=>e==="small"?1:2,Ce=c({root:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",borderWidth:"2px",fontWeight:700,width:({size:e})=>`${N*g(e)}px`,height:({size:e})=>`${N*g(e)}px`,fontSize:({size:e})=>`${fe*g(e)}px`}}),h=({className:e,label:t,size:r="small"})=>{const s=Ce({size:r});return a.createElement("span",{className:u(e,s.root),role:"img","aria-label":`${t} badge`},t)},ye=c(e=>({root:{background:({color:t})=>t,color:({color:t})=>t?e.palette.getContrastText(t):e.palette.text.primary,border:({size:t})=>e.palette.type==="dark"?void 0:`${t==="small"?"1px":"2px"} solid ${K(e.palette.text.primary,.8)}`,"&::after":{position:"absolute",display:"block",content:'""',top:0,left:0,width:"100%",height:"100%",borderRadius:"50%",boxShadow:["inset 0 -0.10em 0 0 rgba(0, 0, 0, 0.15)","inset 0px 0.10em 0px 0px rgba(255, 255, 255, 0.4)","inset 0px 0.9em 0px -0.4em rgba(255, 255, 255, 0.1)"].join(",")}},borderTheme:{borderColor:e.palette.text.primary,borderStyle:"solid",color:e.palette.text.primary}})),ve=({className:e,badge:t,size:r="small"})=>{const s=ye({color:t.options.color,size:r});return a.createElement(h,{className:u(e,t.options.color?s.root:s.borderTheme),size:r,label:`L${t.options.level}`})},Ee=c({root:{borderColor:"currentColor",borderStyle:"dashed"}}),be=({className:e,size:t="small"})=>{const r=Ee();return a.createElement(h,{className:u(e,r.root),size:t,label:"NL"})},Re=c({root:{borderColor:"currentColor",borderStyle:"solid"}}),Pe=({className:e,size:t="small"})=>{const r=Re();return a.createElement(h,{className:u(e,r.root),size:t,label:"C"})},xe=({children:e})=>{const[t,r]=m(!1);return U(()=>{const s=setTimeout(()=>{r(!0)},250);return()=>clearTimeout(s)},[]),a.createElement(j,{in:t,timeout:250},e)},Te=c(e=>({card:{backgroundColor:e.palette.background.paper,border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius,display:"flex",padding:e.spacing(5)},container:{margin:"0 auto",display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(5)},content:{width:"20rem",display:"flex",flexDirection:"column",gap:e.spacing(2)},header:{display:"flex",flexDirection:"column",gap:e.spacing(2)},action:{display:"inline-block"},img:{maxHeight:400}})),f=({title:e,description:t,imgSrc:r,action:s})=>{const o=Te();return a.createElement(q,{className:o.card},a.createElement("div",{className:o.container},a.createElement("div",{className:o.content},a.createElement("header",{className:o.header},a.createElement(p,{variant:"h5"},e),a.createElement(p,{color:"textSecondary",variant:"body1"},t)),s&&a.createElement("div",{className:o.action},s)),a.createElement("div",null,a.createElement("img",{src:r!=null?r:te,className:o.img,alt:e}))))},Se="No certifications available",Ge=({ownerEntityRef:e,selectGroupHint:t})=>{let r="There are no tracks configured that apply to this entity.";return e&&(r=`Looks like the group '${R(b(e),{defaultKind:"Group"})}' doesn't own any entities that have any applicable tracks configured. ${t}`),a.createElement(f,{title:Se,description:r})},Ne="Missing entities",we=({ownerEntityRef:e,selectGroupHint:t})=>{if(!e)return null;const r=R(b(e),{defaultKind:"Group"});return a.createElement(f,{title:Ne,description:`The group '${r}' doesn't own any entities. ${t!=null?t:""}`})};export{T as A,h as B,ge as C,f as E,xe as F,ve as L,x as M,be as N,P as Q,re as S,Ge as a,Pe as b,le as c,oe as d,we as e,ne as u,ie as w};
|
|
2
|
-
//# sourceMappingURL=EmptyState-C2zsaDrr.esm.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e,{useState as ne,useEffect as ie,useRef as le,createContext as oe,useContext as ce,useMemo as se}from"react";import{useApi as z,useRouteRef as v,useRouteRefParams as S}from"@backstage/core-plugin-api";import{useEntity as f}from"@backstage/plugin-catalog-react";import{Link as M,useParams as U,Routes as de,Route as k,Navigate as R}from"react-router-dom";import{R as me,u as C,C as pe,a as L,b as I,c as ue,d as ge,e as fe,f as Ee}from"./CertificationSidebar-DB4UqW7X.esm.js";import{useQuery as Q}from"@tanstack/react-query";import{s as O,R as d,a as N,b as x,d as j,f as B,c as G}from"./routes-DcGwdXHX.esm.js";import{Q as he,F as H,A as w,B as ve,L as ye,N as ke,a as be,S as Ce}from"./EmptyState-C2zsaDrr.esm.js";import{stringifyEntityRef as K}from"@backstage/catalog-model";import{makeStyles as g,useTheme as V,Paper as Y,Typography as y,Box as q,Tab as $,Tabs as J,styled as A,Accordion as Re,AccordionSummary as Ie,AccordionDetails as Ne,Divider as xe}from"@material-ui/core";import{SpotifyLicenseBanner as we}from"@spotify/backstage-plugin-core";import{s as Te,i as Pe}from"./license-CQErZDIh.esm.js";import{Skeleton as E}from"@material-ui/lab";import{i as Se}from"./chartUtils-CD083K30.esm.js";import{MarkdownContent as T,LinearGauge as Le,Link as Be}from"@backstage/core-components";import $e from"@material-ui/icons/CheckCircleOutlined";import Ae from"@material-ui/icons/ErrorOutline";import F from"@material-ui/icons/InfoOutlined";import Fe from"@material-ui/icons/WarningOutlined";import De from"react-confetti";import We from"react-use/lib/useMeasure";import X from"react-use/lib/usePrevious";import{R as ze}from"./RefetchingIndicator-BrP7yEiB.esm.js";import Me from"classnames";import Ue from"@material-ui/icons/ExpandMore";import P from"lodash";import"@material-ui/icons/Schedule";import"luxon";import"graphql-request";import"graphql-tag";import"@backstage/core-compat-api";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/HelpOutline";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/ReportProblemOutlined";import"../images/empty-state.svg";import"react-use/lib/useDebounce";import"react-use/lib/useUnmount";function Qe(t){const a=z(O);return Q([he.CertificationDetails,t],async()=>a.getCertificationDetails(t))}function Oe(t,a,r){const i=z(O),n=K(t);return Q(["soundcheck/check-details",n,a,r],async()=>i.getCheckResultDetails(n,a,r),{enabled:!!a&&!!r})}const je=g(t=>({markdownContent:{"& :last-child":{marginBottom:0}},resultBox:{padding:t.spacing(2),display:"flex",gap:t.spacing(1.5)},iconContainer:{marginTop:1}})),Ge={[d.Passed]:$e,[d.Failed]:Ae,[d.Warning]:Fe,[d.NotReported]:F,[d.NotApplicable]:F},He={[d.Passed]:"Check passed",[d.Failed]:"Check did not pass",[d.Warning]:"Check produced warning(s)",[d.NotReported]:"Check not reported",[d.NotApplicable]:"Check not applicable"},Ke=(t,a)=>({[d.Passed]:a.palette.success.main,[d.Failed]:a.palette.error.main,[d.Warning]:a.palette.warning.main,[d.NotReported]:a.palette.info.main,[d.NotApplicable]:a.palette.info.main})[t],Ve=({state:t,notes:a})=>{var r;const i=je(),n=V(),l=(r=Ge[t])!=null?r:F;return e.createElement(Y,{variant:"outlined",className:i.resultBox},e.createElement("div",{className:i.iconContainer},e.createElement(l,{htmlColor:Ke(t,n)})),e.createElement("div",null,e.createElement(y,{variant:"subtitle1"},He[t]),a?e.createElement(T,{className:i.markdownContent,content:a}):null))},Ye=()=>{const t=Z();return e.createElement(H,null,e.createElement("div",{className:t.root,"data-testid":"check-details-view"},e.createElement("div",{className:t.topBar},e.createElement(y,{variant:"h2",className:t.title},e.createElement(E,{width:300,height:32})),e.createElement(E,{width:100,height:32})),e.createElement(E,{variant:"rect",height:120}),e.createElement("div",{"data-testid":"soundcheck-check-details-description"},e.createElement(y,{variant:"h3"},e.createElement(E,null)),e.createElement(E,null),e.createElement(E,null),e.createElement(E,null))))},Z=g(t=>({root:{padding:`${t.spacing(3)}px ${t.spacing(5)}px`},title:{fontWeight:"normal",fontSize:t.typography.h5.fontSize},description:{padding:`${t.spacing(3)}px 0`},subtitle:{fontWeight:"normal",fontSize:t.typography.h6.fontSize},topBar:{display:"flex",justifyContent:"space-between",marginBottom:t.spacing(2)}})),_=({programId:t,checkId:a})=>{const r=Z(),{entity:i}=f(),{data:n,isLoading:l,isError:o}=Oe(i,t,a);if(o)return e.createElement(q,{padding:2},e.createElement(w,{severity:"error",title:"Error loading check details"}));if(l||!t||!a)return e.createElement(Ye,null);if(!n)return null;const{name:c,description:p,result:m,timestamp:s,notes:u}=n;return e.createElement("div",{className:r.root,"data-testid":"check-details-view"},e.createElement("div",{className:r.topBar},e.createElement(y,{variant:"h2",className:r.title},c),s?e.createElement(me,{timestamp:s,description:"Last updated"}):null),e.createElement(Ve,{state:m,notes:u}),e.createElement("div",{className:r.description,"data-testid":"soundcheck-check-details-description"},e.createElement(y,{variant:"h3",className:r.subtitle},"Description"),e.createElement(T,{content:p})))},qe=g(()=>({root:{position:"absolute",width:"100%",height:"100%"}})),Je=({programId:t})=>{var a,r;const i=qe(),{entity:n}=f(),{data:l,isLoading:o}=C(n,t),[c,{width:p,height:m}]=We(),s=o?void 0:(r=(a=l==null?void 0:l.highestLevel)==null?void 0:a.ordinal)!=null?r:-1,u=X(s),h=X(t),[re,W]=ne(!1);return ie(()=>{typeof u!="undefined"&&typeof s!="undefined"&&t===h&&s>u&&W(!0)},[s,u,t,h]),re?e.createElement("div",{ref:c,className:i.root},e.createElement(De,{width:p,height:m,numberOfPieces:1e3,gravity:1,initialVelocityY:20,recycle:!1,onConfettiComplete:()=>W(!1)})):null},ee=g(t=>({root:{maxWidth:"80ch",textTransform:"uppercase",paddingTop:t.spacing(2),paddingBottom:t.spacing(2)},wrapper:{display:"inline-block",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},badge:{marginRight:t.spacing(1)}})),Xe=({id:t,name:a,badge:r,href:i,selected:n=!1})=>{const l=ee(),{entity:o}=f(),{data:c}=C(o,t);return e.createElement($,{className:l.root,classes:{wrapper:l.wrapper},value:t,label:e.createElement(e.Fragment,null,e.createElement(pe,{badge:r,trackType:c==null?void 0:c.program.type,className:l.badge}),a),component:M,to:i,selected:n})},Ze=g({root:{borderColor:"currentColor",borderStyle:"solid"}}),_e=({className:t,size:a="small"})=>{const r=Ze();return e.createElement(ve,{className:Me(t,r.root),size:a,label:"\u25BA"})},et=g(t=>({root:{maxWidth:"80ch",textTransform:"uppercase",paddingTop:t.spacing(2),paddingBottom:t.spacing(2)},wrapper:{display:"inline-block",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},badge:{marginRight:t.spacing(1)}})),tt=({id:t,name:a,href:r,selected:i=!1})=>{const n=et();return e.createElement($,{className:n.root,classes:{wrapper:n.wrapper},value:t,label:e.createElement(e.Fragment,null,e.createElement(_e,{className:n.badge}),a),component:M,to:r,selected:i})},D=()=>{const t=ee();return e.createElement($,{className:t.root,classes:{wrapper:t.wrapper},label:e.createElement(E,{width:180})})},at=()=>e.createElement(H,null,e.createElement(J,{value:!1,indicatorColor:"primary"},e.createElement(D,null),e.createElement(D,null),e.createElement(D,null)));function rt(t=[],a=[],r,i){if(r){const l=t.findIndex(o=>o.id===r);return l<0?!1:l}const n=a.findIndex(l=>l.program.id===i);return n<0?!1:n+t.length}const nt=({playlistId:t,trackId:a})=>{const{entity:r}=f(),{isLoading:i,data:n}=L(r),{isLoading:l,data:o}=I(r),c=v(N),p=v(x);if(l||i||!a)return e.createElement(at,null);const m=rt(o,n,t,a);return e.createElement(J,{value:m,indicatorColor:"primary","aria-label":"Certifications",variant:"scrollable"},(o==null?void 0:o.length)&&o.map(({id:s,name:u})=>e.createElement(tt,{key:s,id:s,name:u,selected:s===a,href:c({playlistId:s})})),n&&n.filter(({program:{type:s}})=>s!=="playlist").map(({program:{id:s,name:u},highestLevel:h})=>e.createElement(Xe,{key:s,id:s,name:u,badge:h==null?void 0:h.badge,selected:s===a,href:p({trackId:s})})))},it=A(Re)(({theme:t})=>({margin:"0",border:`1px solid ${t.palette.divider}`,borderRadius:0,"&.Mui-expanded":{borderRadius:0},"&:first-child":{borderTopLeftRadius:0,borderTopRightRadius:0},"&:last-child":{borderBottomLeftRadius:0,borderBottomRightRadius:0},"&:not(:first-child)":{borderTop:`1px solid ${t.palette.divider}`},"&:not(:last-child)":{marginBottom:t.spacing(1)}})),lt=A(({...t})=>e.createElement(Ie,{classes:{content:"content",expanded:"expanded"},...t}))(({theme:t})=>({borderRadius:0,paddingTop:0,paddingLeft:0,paddingRight:t.spacing(1),"& > .content":{margin:"0 !important",padding:"0 !important"},"& > .content.expanded":{margin:"0 !important",padding:"0 !important"}})),ot=A(Ne)(()=>({margin:"0 !important",borderRadius:0,padding:0})),ct=g(()=>({sidebar:{width:"100%"}})),st=({playlistId:t,trackId:a,checkId:r})=>{var i;const n=ct(),{entity:l}=f(),o=le(null),{data:c,isLoading:p,isError:m}=C(l,a);if(m)return e.createElement("div",null,e.createElement(q,{padding:2},e.createElement(w,{severity:"error",title:"Error loading certification"})));if(p||!a)return e.createElement(ue,null);if(!c)return null;const s=c.program.type==="campaign";return e.createElement(it,{ref:o,defaultExpanded:!0,elevation:0},e.createElement(lt,{expandIcon:e.createElement(Ue,null),"aria-controls":"certification-content",id:"certification-summary"},e.createElement(ge,{name:c.program.name,badge:(i=c.highestLevel)==null?void 0:i.badge,description:c.program.description,documentationUrl:c.program.documentationURL,trackType:c.program.type})),e.createElement(ot,null,e.createElement("div",{className:n.sidebar},c==null?void 0:c.levels.map(u=>e.createElement(fe,{key:u.ordinal,level:u,checkId:r,trackId:a,playlistId:t,isCampaign:s})))))},te=oe(void 0),dt=()=>{const t=ce(te);if(!t)throw new Error("useAPlaylistCertificationContext must be used within an PlaylistCertificationProvider");return t},mt=t=>{const{children:a,entityRef:r}=t,i=Qe(r);return e.createElement(te.Provider,{value:i},a)},pt=(t,a)=>{if(a)return a.filter(r=>t.trackIds.includes(r.program.id)).map(r=>{const i=P.sumBy(r.levels,o=>P.filter(o.checks,{result:d.Passed}).length),n=P.sumBy(r.levels,o=>P.reject(o.checks,{result:d.NotApplicable}).length),l=n===0?0:i/n;return{id:r.program.id,name:r.program.name,checkPassRate:l}})},ut=g(()=>({root:{margin:0,width:"250px"},trackItem:{display:"flex",flexDirection:"column",alignItems:"flex-start"},badgeAndName:{display:"flex",flexDirection:"row",alignItems:"center"},trackName:{marginLeft:"8px"}})),gt=({playlist:t})=>{const a=ut(),{data:r}=dt(),i=V(),n=se(()=>pt(t,r),[r,t]);return e.createElement("div",{className:a.root},n&&n.map(l=>{var o,c;const p=(c=(o=r==null?void 0:r.find(m=>m.program.id===l.id))==null?void 0:o.highestLevel)==null?void 0:c.badge;return e.createElement("div",{className:a.trackItem,key:l.id},e.createElement("div",{className:a.badgeAndName},p?e.createElement(ye,{badge:p}):e.createElement(ke,null),e.createElement(y,{variant:"caption",color:"textSecondary",className:a.trackName},l.name)),e.createElement("div",{style:{width:"100%",marginBottom:"8px"}},e.createElement(Le,{value:l.checkPassRate,getColor:()=>i.palette.status.ok})))}))},ae=g(t=>({description:{padding:0,margin:0,display:"block","& p":{margin:0}},root:{padding:t.spacing(2),margin:0,display:"grid",gridTemplateColumns:"min-content auto",gridGap:t.spacing(2)},title:{fontSize:t.typography.pxToRem(18),fontWeight:700,lineHeight:1.235,marginBottom:"6px"},level:{textTransform:"uppercase",color:t.palette.text.secondary,fontWeight:700,letterSpacing:"1px"}}));function ft({description:t,documentationUrl:a}){const r=ae();return a?e.createElement("div",{className:r.description},e.createElement(T,{content:t}),e.createElement(Be,{to:a},"Learn more")):e.createElement("div",{className:r.description},e.createElement(T,{content:t}))}const Et=({playlist:t})=>{const a=ae(),{name:r,description:i}=t;return e.createElement("div",{className:a.root},e.createElement(gt,{playlist:t}),e.createElement("div",null,e.createElement(y,{className:a.title},r),i&&e.createElement(ft,{description:i,documentationUrl:void 0})))},ht=g(t=>({root:{margin:0,display:"grid",gridTemplateColumns:"1fr",backgroundColor:t.palette.background.default},header:{backgroundColor:t.palette.background.paper,borderBottom:`1px solid ${t.palette.divider}`},section:{backgroundColor:t.palette.background.paper,border:`1px solid ${t.palette.divider}`,padding:0,marginTop:t.spacing(1),marginBottom:t.spacing(1),marginLeft:0,marginRight:t.spacing(1)},twoColumns:{display:"grid",gridTemplateColumns:"1fr 2fr"},sidebar:{display:"grid",gridTemplateColumns:"1fr",margin:t.spacing(1)}})),vt=({playlist:t,entityRef:a})=>{const r=ht(),{trackId:i,checkId:n}=U();return e.createElement("div",{className:r.root},e.createElement(mt,{entityRef:a},e.createElement("div",{className:r.header},e.createElement(Et,{playlist:t,entityRef:a})),e.createElement("div",{className:r.twoColumns},e.createElement("div",{className:r.sidebar},t.trackIds.map(l=>e.createElement(st,{key:l,playlistId:t.id,trackId:l,checkId:n}))),e.createElement("div",{className:r.section},e.createElement(_,{programId:i,checkId:n})))))},yt=g(t=>({paper:{overflow:"hidden",position:"relative",border:Se(t)?`1px solid ${t.palette.divider}`:void 0},view:{display:"grid",gridTemplateColumns:"1fr 2fr"},sidebar:{borderRight:`1px solid ${t.palette.divider}`}})),kt=()=>{const{playlistId:t,trackId:a,checkId:r}=U(),i=yt(),{entity:n}=f(),{isError:l,isFetched:o,data:c}=L(n),{isError:p,data:m}=I(n);if(l||p)return e.createElement(w,{severity:"error",title:"Error loading certifications"});const s=t&&(m==null?void 0:m.find(h=>h.id===t));if(t&&!s)return e.createElement(w,{severity:"error",title:"Playlist ${playlistId} not found."});if(o&&!(c!=null&&c.length))return e.createElement(be,null);const u=n?K(n):void 0;return e.createElement(Y,{className:i.paper},e.createElement(ze,null),e.createElement(nt,{playlistId:t,trackId:a}),e.createElement(xe,null),s&&e.createElement(vt,{playlist:s,entityRef:u}),!s&&a&&e.createElement("div",{"data-testid":"soundcheck-certification-view",className:i.view},e.createElement("div",{className:i.sidebar},e.createElement(Ee,{trackId:a,checkId:r})),e.createElement(_,{programId:a,checkId:r}),e.createElement(Je,{programId:a})))},bt=g(t=>({root:{"&:not(:first-child)":{marginTop:t.spacing(2)}}})),b=()=>{const t=bt();return e.createElement(e.Fragment,null,e.createElement(we,{backend:Te,invalidLicenseMessage:Pe,inline:!0}),e.createElement("div",{className:t.root},e.createElement(kt,null)))},Ct=()=>{var t,a;const{entity:r}=f(),i=v(N),n=v(x),{isLoading:l,data:o}=I(r),{isLoading:c,data:p}=L(r);if(l||c)return null;const m=(t=o==null?void 0:o[0])==null?void 0:t.id,s=(a=p==null?void 0:p[0])==null?void 0:a.program.id;return!m&&!s?null:e.createElement(R,{to:m?i({playlistId:m}):n({trackId:s}),replace:!0})},Rt=()=>{var t;const{entity:a}=f(),{playlistId:r}=S(N),i=v(B),{data:n}=I(a),l=(t=n==null?void 0:n.find(o=>o.id===r))==null?void 0:t.trackIds[0];return l?e.createElement(R,{to:i({playlistId:r,trackId:l}),replace:!0}):null},It=()=>{var t,a;const{entity:r}=f(),{playlistId:i,trackId:n}=S(B),{data:l}=C(r,n),o=v(j),c=(a=(t=l==null?void 0:l.levels[0])==null?void 0:t.checks[0])==null?void 0:a.id;return c?e.createElement(R,{to:o({playlistId:i,trackId:n,checkId:c}),replace:!0}):null},Nt=()=>{var t,a;const{entity:r}=f(),{trackId:i}=S(x),n=v(G),{data:l}=C(r,i),o=(a=(t=l==null?void 0:l.levels[0])==null?void 0:t.checks[0])==null?void 0:a.id;return o?e.createElement(R,{to:n({trackId:i,checkId:o}),replace:!0}):null},xt=()=>e.createElement(de,null,e.createElement(k,{path:j.path,element:e.createElement(b,null)}),e.createElement(k,{path:B.path,element:e.createElement(e.Fragment,null,e.createElement(b,null),e.createElement(It,null))}),e.createElement(k,{path:N.path,element:e.createElement(e.Fragment,null,e.createElement(b,null),e.createElement(Rt,null))}),e.createElement(k,{path:x.path,element:e.createElement(e.Fragment,null,e.createElement(b,null),e.createElement(Nt,null))}),e.createElement(k,{path:G.path,element:e.createElement(b,null)}),e.createElement(k,{path:"/",element:e.createElement(e.Fragment,null,e.createElement(b,null),e.createElement(Ct,null))})),wt=()=>e.createElement(Ce,null,e.createElement(xt,null));export{wt as EntitySoundcheckContent};
|
|
2
|
-
//# sourceMappingURL=EntitySoundcheckContent-DAnk6B9A.esm.js.map
|