@spotify/backstage-plugin-soundcheck 0.16.0 → 0.16.2
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 +67 -0
- package/dist/alpha/entity-content.esm.js +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha.d.ts +62 -47
- package/dist/api.esm.js +1 -1
- package/dist/components/AlertPanel/AlertPanel.esm.js +1 -1
- package/dist/components/AreaChart/AreaChart.esm.js +1 -1
- package/dist/components/AreaChart/ChartTooltip.esm.js +1 -1
- package/dist/components/AreaChart/Legend.esm.js +1 -1
- package/dist/components/AreaChart/LegendItem.esm.js +1 -1
- package/dist/components/Badges/BaseBadge.esm.js +1 -1
- package/dist/components/Badges/CampaignBadge.esm.js +1 -1
- package/dist/components/Badges/CertificationBadge.esm.js +1 -1
- package/dist/components/Badges/LevelBadge.esm.js +1 -1
- package/dist/components/Badges/NoLevelBadge.esm.js +2 -2
- package/dist/components/Badges/PlaylistBadge.esm.js +1 -1
- package/dist/components/Badges/StatusBadge.esm.js +1 -1
- package/dist/components/CacheConfig/CacheConfigComponent.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDraftField.esm.js +2 -0
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignNameField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignScheduleField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/EndDateChips.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignTrackStepNew.esm.js +2 -0
- package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/utils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/validation.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +1 -1
- package/dist/components/CampaignInsightsPage/DaysRemainingTile.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignEmptyState.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignMetadata.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignsOverviewSkeleton.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
- package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
- package/dist/components/CategoryBar/CategoryBar.esm.js +1 -1
- package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationLevel.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationSidebar/CheckResultInputPopup.esm.js +2 -0
- package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +1 -1
- package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +2 -0
- package/dist/components/CertificationSidebar/LevelSummary.esm.js +1 -1
- package/dist/components/CertificationSidebar/StatusDetails.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/CertificationSidebarSkeleton.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/CheckSkeleton.esm.js +1 -1
- package/dist/components/CertificationSidebar/skeletons/LevelSummarySkeleton.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistProgress.esm.js +1 -1
- package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +1 -1
- package/dist/components/CertificationsPage/PlaylistCertificationTab.esm.js +1 -1
- package/dist/components/CertificationsPage/skeletons/CertificationTabSkeleton.esm.js +1 -1
- package/dist/components/CertificationsPage/skeletons/CertificationTabsSkeleton.esm.js +1 -1
- package/dist/components/Charts/BarChart/BarChart.esm.js +1 -1
- package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +1 -1
- package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +1 -1
- package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +1 -1
- package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +1 -1
- package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/LineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +1 -1
- package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/TableLineChart.esm.js +1 -1
- package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +1 -1
- package/dist/components/Charts/LoadingChart.esm.js +2 -0
- package/dist/components/Charts/chartUtils.esm.js +1 -1
- package/dist/components/CheckCard/CheckCard.esm.js +1 -1
- package/dist/components/CheckCard/CheckHistoryChart.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
- package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
- package/dist/components/CheckDetails/CheckResultDetails.esm.js +1 -1
- package/dist/components/CheckDetails/CollapseRow.esm.js +1 -1
- package/dist/components/CheckDetails/FactTable.esm.js +1 -1
- package/dist/components/CheckDetails/FixMeDialog.esm.js +1 -1
- package/dist/components/CheckDetails/JustificationDetails.esm.js +2 -0
- package/dist/components/CheckDetails/OngoingTaskComponent.esm.js +1 -1
- package/dist/components/CheckDetails/ResolvedValueTable.esm.js +1 -1
- package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
- package/dist/components/CheckDetails/ReviewStateComponent.esm.js +1 -1
- package/dist/components/CheckDetails/SelectedValueContext.esm.js +1 -1
- package/dist/components/CheckDetails/skeletons/CheckDetailsSkeleton.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRun.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunContext.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunDialog.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRunDialogButton.esm.js +1 -1
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckNameInput/CheckNameInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckScheduleSection/ScheduleSection.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckTypeInput/CheckTypeInput.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ConditionList.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/FactValueDisplay.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListContext.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionBox.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +2 -0
- package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
- package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -2
- package/dist/components/CheckForm/utils/validation.esm.js +1 -1
- package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +1 -1
- package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
- package/dist/components/CheckSelection/CheckPreview.esm.js +2 -0
- package/dist/components/CheckSelection/CheckPreviewContext.esm.js +2 -0
- package/dist/components/CheckSelection/CheckSelection.esm.js +2 -0
- package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +1 -1
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
- package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +1 -1
- package/dist/components/ChecksTab/ChecksTab.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfDaysComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorSchedulingOptions.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/DataRegistry/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/DependabotAlertsFactDetails.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/types.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpResponseComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRetriesComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/RequestFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesFactDetails.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Kubernetes/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/StatusesComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ExistsFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/FactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/IssuesFactDetailsInput.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/MetricsInput.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/EmptyState/EmptyState.esm.js +1 -1
- package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +2 -0
- package/dist/components/EntityChip/EntityChip.esm.js +1 -1
- package/dist/components/EntityContent/EntityContent.esm.js +1 -1
- package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/EntitySoundcheckCard.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/skeletons/CardSkeleton.esm.js +1 -1
- package/dist/components/EntitySoundcheckContent.esm.js +1 -1
- package/dist/components/Expand/Expand.esm.js +1 -1
- package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerDialog.esm.js +1 -1
- package/dist/components/FadeIn/FadeIn.esm.js +1 -1
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/Filter/FilterComponent.esm.js +1 -1
- package/dist/components/Filter/FilterKeyValueInput.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/EntityTableColumns.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
- package/dist/components/FilterSidebar/FilterSidebar.esm.js +2 -0
- package/dist/components/FilterSidebar/StateFilter.esm.js +2 -0
- package/dist/components/FooterButtons/FooterButtons.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js +2 -0
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +1 -1
- package/dist/components/FormControlledTextField/FormControlledTextField.esm.js +1 -1
- package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +1 -1
- package/dist/components/FormFilterSection/FormFilterSection.esm.js +1 -1
- package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +1 -1
- package/dist/components/FormStepper/FormStepper.esm.js +1 -1
- package/dist/components/FormTextInput/FormTextInput.esm.js +1 -1
- package/dist/components/FormattedPreview/FormattedPreview.esm.js +2 -2
- package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +1 -1
- package/dist/components/GroupSelector/GroupSelector.esm.js +1 -1
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
- package/dist/components/LevelsTable/CheckRowContent.esm.js +2 -0
- package/dist/components/LevelsTable/LevelsTable.esm.js +2 -0
- package/dist/components/ListboxVirtualized/ListboxVirtualized.esm.js +1 -1
- package/dist/components/LoadingIndicator/LoadingIndicator.esm.js +1 -1
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
- package/dist/components/NoBorderButton/NoBorderButton.esm.js +1 -1
- package/dist/components/OrgHealth/OrgHealthPage.esm.js +2 -0
- package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +1 -1
- package/dist/components/OverviewPage/FixedGroupOverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageHeader.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckNameCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackBadgeCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackCheckIndicator.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackLevelHeaderCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackTitleCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/cellRenderer.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTableContent.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTableSkeleton.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableHeader.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableRow.esm.js +1 -1
- package/dist/components/PageWarningMessage/PageWarningMessage.esm.js +1 -1
- package/dist/components/Pagination/CursorPagination.esm.js +1 -1
- package/dist/components/Pagination/Pagination.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateGrid.esm.js +1 -1
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +1 -1
- package/dist/components/PassRateTable/NewPassRateTable.esm.js +1 -1
- package/dist/components/PassRateTable/PassRateTable.esm.js +2 -2
- package/dist/components/QuickstartPage/HowDoIListItem.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +1 -1
- package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +1 -1
- package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +6 -6
- package/dist/components/QuickstartPage/WelcomeModal.esm.js +1 -1
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
- package/dist/components/RelativeTime/RelativeTime.esm.js +1 -1
- package/dist/components/RichTooltip/RichTooltip.esm.js +1 -1
- package/dist/components/Router.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/RuleResult/BranchResultComponent.esm.js +1 -1
- package/dist/components/RuleResult/ConditionResultComponent.esm.js +1 -1
- package/dist/components/RuleResult/RuleResultComponent.esm.js +1 -1
- package/dist/components/SearchBar/SearchBar.esm.js +1 -1
- package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
- package/dist/components/SoundcheckDialog/SoundcheckDialog.esm.js +1 -1
- package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +1 -1
- package/dist/components/SoundcheckHeader/headerUtil.esm.js +1 -1
- package/dist/components/SoundcheckMarkdownContent/ComponentRenders.esm.js +2 -0
- package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js +2 -0
- package/dist/components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
- package/dist/components/TechHealth/Filters/Filters.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersSection.esm.js +1 -1
- package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
- package/dist/components/TechHealth/Loading/Emoji.esm.js +1 -1
- package/dist/components/TechHealth/Loading/EmojiFountain.esm.js +1 -1
- package/dist/components/TechHealth/Loading/Loading.esm.js +1 -1
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
- package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +1 -1
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/OwnerColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
- package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +1 -1
- package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +2 -0
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStepNew.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackBadgeTypeSelect/TrackBadgeTypeSelect.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDraftInput/TrackDraftInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
- package/dist/components/TrackForm/TrackForm.esm.js +1 -1
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
- package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +1 -1
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackProgressCard.esm.js +1 -1
- package/dist/components/TrackPage/TrackStatus.esm.js +2 -0
- package/dist/components/TrackPage/TrackStatusBar.esm.js +2 -0
- package/dist/components/TrackPage/TrackStatusTable.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +1 -1
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/components/TracksTab/TracksTab.esm.js +1 -1
- package/dist/contexts/GenericFormContext.esm.js +1 -1
- package/dist/contexts/UserProvider.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +152 -65
- package/dist/hooks/aggregations/useCertificationStatus.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatuses.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityFacets.esm.js +1 -1
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
- package/dist/hooks/certifications/useAllCertifications.esm.js +1 -1
- package/dist/hooks/certifications/useCertificationDetails.esm.js +1 -1
- package/dist/hooks/certifications/useCertificationDetailsForTrack.esm.js +1 -1
- package/dist/hooks/checks/useCheck.esm.js +2 -0
- package/dist/hooks/checks/useDeleteCheck.esm.js +1 -1
- package/dist/hooks/checks/useGetChecks.esm.js +1 -1
- package/dist/hooks/checks/useSetManualResult.esm.js +2 -0
- package/dist/hooks/checks/useUpdateCheck.esm.js +1 -1
- package/dist/hooks/exemptions/useDeleteExemption.esm.js +2 -0
- package/dist/hooks/exemptions/useExemptCheckIds.esm.js +2 -0
- package/dist/hooks/exemptions/useGetExemption.esm.js +2 -0
- package/dist/hooks/exemptions/useSetEntityExempt.esm.js +2 -0
- package/dist/hooks/facets/useFacetFilters.esm.js +1 -1
- package/dist/hooks/graphqlKeys.esm.js +1 -1
- package/dist/hooks/tracks/useGetAllTracks.esm.js +1 -1
- package/dist/hooks/tracks/useTrack.esm.js +2 -0
- package/dist/hooks/tracks/useUpdateTrack.esm.js +1 -1
- package/dist/hooks/useConfirmationModal.esm.js +1 -1
- package/dist/hooks/useSoundcheckAlert.esm.js +1 -1
- package/dist/images/data-registry-blk.svg +36 -0
- package/dist/images/data-registry-wht.svg +36 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.esm.js +1 -1
- package/dist/routes.esm.js +1 -1
- package/dist/utils/colors.esm.js +2 -0
- package/dist/utils/export.esm.js +3 -3
- package/dist/utils/formatters.esm.js +2 -0
- package/dist/utils/validation.esm.js +1 -1
- package/package.json +30 -26
- package/dist/components/Badges/badge.esm.js +0 -2
- package/dist/components/CampaignForm/Steps/CampaignTrackStep.esm.js +0 -2
- package/dist/components/CheckDetails/ExemptionDetails.esm.js +0 -2
- package/dist/components/CheckDryRun/checkDryRunUtils.esm.js +0 -2
- package/dist/components/CheckPage/CheckStatusBar.esm.js +0 -2
- package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +0 -2
- package/dist/components/CheckPage/StatusRow.esm.js +0 -2
- package/dist/components/ChecksErrors/ChecksErrors.esm.js +0 -2
- package/dist/components/ContextMenu/ContextMenu.esm.js +0 -2
- package/dist/components/DraggableChip/DraggableChip.esm.js +0 -2
- package/dist/components/DraggableChip/chipStyles.esm.js +0 -2
- package/dist/components/DroppableInput/DroppableInput.esm.js +0 -2
- package/dist/components/LevelCard/LevelCard.esm.js +0 -2
- package/dist/components/LevelCard/LevelTooltip.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelChipsSection.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelsSection.esm.js +0 -2
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStep.esm.js +0 -2
- package/dist/components/TrackPage/TrackLevelsChart.esm.js +0 -2
- package/dist/hooks/useContextMenu.esm.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{jsx as c}from"react/jsx-runtime";import{useRouteRef as l}from"@backstage/core-plugin-api";import{makeStyles as h,Typography as k}from"@material-ui/core";import{useExecutableChecks as y}from"../../hooks/checks/useExecutableChecks.esm.js";import{certificationRouteRef as f,certificationPlaylistTrackCheckRouteRef as u}from"../../routes.esm.js";import{Check as g}from"./Check.esm.js";const r=h(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"}}})),I=({checks:e,playlistId:o,trackId:a,checkId:s})=>{const i=r(),d=l(f),m=l(u),{data:p,isLoading:n}=y();return e.length?c("ul",{className:i.checks,children:e.map(t=>c("li",{className:i.checkItem,children:c(g,{...t,isExecutable:!n&&p?.includes(t.id),selected:t.id===s,href:o?m({playlistId:o,trackId:a,checkId:t.id}):d({trackId:a,checkId:t.id})})},t.id))}):c(k,{variant:"body2",className:i.noChecks,children:"No applicable checks at this level. Toggle your visibility settings to see not applicable checks."})};export{I as CheckResultSummaryList,r as useStyles};
|
|
2
2
|
//# sourceMappingURL=CheckResultSummaryList.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as a,Fragment as k,jsx as n}from"react/jsx-runtime";import{makeStyles as R,DialogContent as S,Box as b,Typography as C,TextField as A,FormHelperText as F,DialogActions as T,Button as x}from"@material-ui/core";import{useState as f,useEffect as j,useCallback as h}from"react";import{ResultState as D}from"../../graphql/generated/index.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useSoundcheckAlert as L}from"../../hooks/useSoundcheckAlert.esm.js";import{useGetExemption as I}from"../../hooks/exemptions/useGetExemption.esm.js";import{useSetEntityExempt as J}from"../../hooks/exemptions/useSetEntityExempt.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useDeleteExemption as B}from"../../hooks/exemptions/useDeleteExemption.esm.js";import{FormFieldLabel as N}from"../FormFieldLabel/FormFieldLabel.esm.js";import{SoundcheckDialog as H}from"../SoundcheckDialog/SoundcheckDialog.esm.js";const g=R(e=>({buttonArea:{paddingLeft:e.spacing(1),paddingBottom:0,justifyContent:"flex-start"},content:{minWidth:480,width:"61.8%",marginTop:e.spacing(0),paddingLeft:e.spacing(1),paddingTop:e.spacing(0)}})),O=({entityRef:e,checkId:i,isOpen:y,setIsOpen:r})=>{const[P,m]=f(),{showAlert:s}=L(),p=g(),[o,l]=f(""),{mutateAsync:d}=J(),{mutateAsync:c}=B(),{data:t,isLoading:u}=I(e,i);j(()=>{t?.exemption&&l(t.exemption.justification)},[t?.exemption]);const v=h(async()=>{!e||!i||await d({checkId:i,entityRef:e,justification:o})&&m({id:i,entityRef:e,result:D.Exempt,details:{notes:{type:"notes",data:o,version:1}},facts:[],ruleResults:[]})},[e,i,o,d,m]),E=h(async()=>{if(!(!e||!i))try{await c({checkId:i,entityRef:e})}catch{s({severity:"error",title:"Failure",message:"Failed to delete exemption."})}},[e,i,c,s]);return a(k,{children:[u&&n("div",{children:"Loading..."}),!u&&a(H,{open:y,handleClose:()=>r(!1),title:t?.exemption?"Remove Exemption?":"Justify Exemption",fullScreen:!1,children:[n(S,{className:p.content,children:a(b,{children:[n(N,{title:t?.exemption?"Existing Justification":"Exemption Justification"}),!t?.exemption&&n(C,{variant:"caption",children:"Please explain why this exemption is necessary. Supports limited markdown."}),n(A,{disabled:!!t?.exemption,variant:"outlined",margin:"dense",fullWidth:!0,value:o,inputProps:{"aria-label":"Exemption Reason"},multiline:!0,rows:3,maxRows:6,onChange:w=>l(w.target.value)}),n(F,{children:"Note: The act of adding or removing an exemption is tied to your user id and is monitored and recorded. Exemptions should only be added or removed with proper cause."})]})}),a(T,{className:p.buttonArea,children:[n(x,{variant:"contained",onClick:async()=>{r(!1),t?.exemption?await E():await v()},color:"primary",disabled:!t?.exemption&&(!o||o?.length===0),children:t?.exemption?"Remove":"Submit"}),n(x,{onClick:()=>r(!1),color:"primary",children:"Cancel"})]})]})]})};export{O as ExemptionJustificationDialog,g as useStyles};
|
|
2
|
+
//# sourceMappingURL=ExemptionJustificationDialog.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as t,jsx as r}from"react/jsx-runtime";import{makeStyles as p,Typography as d,Grid as o}from"@material-ui/core";import{LevelBadge as n}from"../Badges/LevelBadge.esm.js";import"../Badges/NoLevelBadge.esm.js";import"../Badges/CampaignBadge.esm.js";import{SoundcheckMarkdownContent as l}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{StatusDetails as g}from"./StatusDetails.esm.js";const a=p(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:i})=>[`"${i?"badge":"title"} title"`,`"${i?".":"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}}})),m=e=>{const i=a({badge:e.badge});return t("div",{className:i.wrapper,children:[e.badge?r(n,{className:i.badge,badge:e.badge}):null,r(d,{className:i.title,children:e.title}),t(o,{container:!0,direction:"column",spacing:0,className:i.description,children:[e.description?r(o,{item:!0,children:r(l,{content:e.description})}):null,r(g,{badge:e.badge})]})]})};export{m as LevelSummary,a as useStyles};
|
|
2
2
|
//# sourceMappingURL=LevelSummary.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsx as r,Fragment as a}from"react/jsx-runtime";import{makeStyles as p,Grid as d,Typography as c}from"@material-ui/core";import{BadgeVariant as m}from"../../graphql/generated/index.esm.js";const o=p(e=>({status:{fontSize:"12px",color:e.palette.text.secondary}})),u=e=>{const n=o();if(e.badge?.variant!==m.Status)return r(a,{});const t=e.badge.options.status;if(!t)return r(a,{});const s=t.passed+t.failed+t.warning+t.error+t.notReported,i=s?t.passed/s*100:0;return r(d,{item:!0,children:r(c,{variant:"caption",className:n.status,children:`${t.passed}/${s} checks passed (${Math.round(i)}%)`})})};export{u as StatusDetails,o as useStyles};
|
|
2
2
|
//# sourceMappingURL=StatusDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{useStyles as
|
|
1
|
+
import{jsxs as r,jsx as e}from"react/jsx-runtime";import{Fragment as i}from"react";import{useStyles as l}from"../CertificationSidebar.esm.js";import{CertificationSummarySkeleton as n}from"./CertificationSummarySkeleton.esm.js";import{CheckSkeleton as o}from"./CheckSkeleton.esm.js";import{LevelSummarySkeleton as s}from"./LevelSummarySkeleton.esm.js";const c=()=>{const t=l();return r("div",{children:[e(n,{}),new Array(3).fill(null).map((a,m)=>r(i,{children:[e(s,{}),r("ul",{className:t.checks,children:[e(o,{}),e(o,{}),e(o,{})]})]},`skeleton-level-${m}`))]})};export{c as CertificationSidebarSkeleton};
|
|
2
2
|
//# sourceMappingURL=CertificationSidebarSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsx as i,jsxs as o}from"react/jsx-runtime";import{Typography as e}from"@material-ui/core";import{Skeleton as r}from"@material-ui/lab";import{FadeIn as a}from"../../FadeIn/FadeIn.esm.js";import{useStyles as l}from"../CertificationSummary.esm.js";const m=({hideDescription:n=!1})=>{const t=l();return i(a,{children:o("div",{className:t.root,children:[i(r,{width:44,height:44}),o("div",{children:[i(e,{variant:"caption",className:t.level,children:i(r,{width:100})}),i(e,{variant:"h4",className:t.title,children:i(r,{width:300})}),!n&&i(e,{variant:"body2",children:i(r,{})})]})]})})};export{m as CertificationSummarySkeleton};
|
|
2
2
|
//# sourceMappingURL=CertificationSummarySkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as o,jsxs as e}from"react/jsx-runtime";import{Typography as i}from"@material-ui/core";import{Skeleton as r}from"@material-ui/lab";import{FadeIn as h}from"../../FadeIn/FadeIn.esm.js";import{useStyles as m}from"../Check.esm.js";const n=()=>{const t=m();return o(h,{children:e("div",{className:t.root,children:[o(r,{width:24,height:24}),o(i,{variant:"body2",children:o(r,{})}),o(r,{width:100,height:24})]})})};export{n as CheckSkeleton};
|
|
2
2
|
//# sourceMappingURL=CheckSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as r,jsxs as m}from"react/jsx-runtime";import{Typography as t}from"@material-ui/core";import{Skeleton as o}from"@material-ui/lab";import{FadeIn as s}from"../../FadeIn/FadeIn.esm.js";import{useStyles as i}from"../LevelSummary.esm.js";const l=()=>{const e=i({});return r(s,{children:m("div",{className:e.wrapper,children:[r(o,{className:e.title}),r(t,{className:e.description,children:r(o,{})})]})})};export{l as LevelSummarySkeleton};
|
|
2
2
|
//# sourceMappingURL=LevelSummarySkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as e,jsxs as c,Fragment as l}from"react/jsx-runtime";import{useEntity as d}from"@backstage/plugin-catalog-react";import{makeStyles as f,Tab as g}from"@material-ui/core";import{Link as b}from"react-router-dom";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as h}from"../../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{CertificationBadge as w}from"../Badges/CertificationBadge.esm.js";const i=f(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)}})),y=({id:t,name:o,badge:a,href:p,selected:m=!1})=>{const r=i(),{entity:s}=d(),{data:n}=h(s,t);return e(g,{className:r.root,classes:{wrapper:r.wrapper},value:t,label:c(l,{children:[e(w,{badge:a,trackType:n?.track.type,className:r.badge}),o]}),component:b,to:p,selected:m})};export{y as CertificationTab,i as useStyles};
|
|
2
2
|
//# sourceMappingURL=CertificationTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{jsx as i,jsxs as o}from"react/jsx-runtime";import{useRouteRef as b}from"@backstage/core-plugin-api";import{useEntity as N}from"@backstage/plugin-catalog-react";import{makeStyles as B,Tabs as M,IconButton as P,Menu as j,MenuItem as u,Switch as k}from"@material-ui/core";import D from"@material-ui/icons/ArrowDropDown";import L from"@material-ui/icons/Settings.js";import{useState as O,useEffect as V}from"react";import g from"react-use/lib/useLocalStorage";import{useAllCertifications as W}from"../../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/catalog-model";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{usePlaylists as X}from"../../hooks/playlists/usePlaylists.esm.js";import{certificationPlaylistRouteRef as q,certificationTrackRouteRef as F}from"../../routes.esm.js";import{CertificationTab as G}from"./CertificationTab.esm.js";import{PlaylistCertificationTab as H}from"./PlaylistCertificationTab.esm.js";import{CertificationTabsSkeleton as J}from"./skeletons/CertificationTabsSkeleton.esm.js";function K(r=[],n=[],s,c){if(s){const e=r.findIndex(a=>a.id===s);return e<0?!1:e}const l=n.findIndex(e=>e.track.id===c);return l<0?!1:l+r.length}const Q=B(r=>({tabsContainer:{display:"flex",alignItems:"center"},tabs:{flex:1},settingsButton:{display:"flex",alignItems:"center",marginRight:r.spacing(1)}})),U=({playlistId:r,trackId:n,onSettingsChange:s})=>{const c=Q(),[l,e]=O(null),[a,y]=g("soundcheck.certifications.showNotApplicable",!1),[m,x]=g("soundcheck.certifications.showExempt",!0),[f,I]=g("soundcheck.certifications.showDraftTracksAndCampaigns",!1);V(()=>{s?.({showNotApplicable:!!a,showExempt:!!m})},[a,m,s]);const S=t=>{e(t.currentTarget)},w=()=>{e(null)},{entity:C}=N(),{isLoading:T,data:p}=W(C,!1,f),{isLoading:z,data:d}=X(C),E=b(q),R=b(F);if(z||T||!n)return i(J,{});const v=K(d,p,r,n);return o("div",{className:c.tabsContainer,children:[o(M,{className:c.tabs,value:v,indicatorColor:"primary","aria-label":"Certifications",variant:"scrollable",children:[d?.length&&d.map(({id:t,name:h})=>i(H,{id:t,name:h,selected:t===n,href:E({playlistId:t})},t)),p&&p.filter(({track:{type:t}})=>t!=="playlist").map(({track:{id:t,name:h,badge:A}})=>i(G,{id:t,name:h,badge:A,selected:t===n,href:R({trackId:t})},t))]}),o(P,{className:c.settingsButton,onClick:S,size:"small",children:[i(L,{fontSize:"small"}),i(D,{fontSize:"small"})]}),o(j,{anchorEl:l,open:!!l,onClose:w,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[o(u,{onClick:()=>{y(!a)},dense:!0,children:[i(k,{size:"small",checked:a}),"Show Not Applicable Checks"]}),o(u,{onClick:()=>{x(!m)},dense:!0,children:[i(k,{size:"small",checked:m}),"Show Exempt Checks"]}),o(u,{onClick:()=>{I(!f)},dense:!0,children:[i(k,{size:"small",checked:f}),"Show Draft Tracks and Campaigns"]})]})]})};export{U as CertificationTabs};
|
|
2
2
|
//# sourceMappingURL=CertificationTabs.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringifyEntityRef as
|
|
1
|
+
import{jsx as r,jsxs as d}from"react/jsx-runtime";import{stringifyEntityRef as k}from"@backstage/catalog-model";import{useEntity as I}from"@backstage/plugin-catalog-react";import{makeStyles as C,Paper as x,Divider as E}from"@material-ui/core";import{useState as N,useCallback as P}from"react";import{useParams as A}from"react-router-dom";import{useAllCertifications as R}from"../../hooks/certifications/useAllCertifications.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePlaylists as S}from"../../hooks/playlists/usePlaylists.esm.js";import{AlertPanel as n}from"../AlertPanel/AlertPanel.esm.js";import{CertificationSidebar as D}from"../CertificationSidebar/CertificationSidebar.esm.js";import"../CertificationSidebar/CertificationSummary.esm.js";import"@material-ui/lab";import"../CertificationSidebar/Check.esm.js";import"../CertificationSidebar/LevelSummary.esm.js";import{isDarkTheme as T}from"../Charts/chartUtils.esm.js";import{CheckDetails as $}from"../CheckDetails/CheckDetails.esm.js";import"../CheckDryRun/CheckDryRun.esm.js";import"../SoundcheckDialog/SoundcheckDialog.esm.js";import"../CheckDryRun/CheckDryRunDetails.esm.js";import{CheckDryRunProvider as j}from"../CheckDryRun/CheckDryRunContext.esm.js";import"../CheckForm/utils/checkFormUtils.esm.js";import{NoCertifications as F}from"../EmptyState/EmptyState.esm.js";import{LevelUpParty as L}from"../LevelUpParty/LevelUpParty.esm.js";import{RefetchingIndicator as U}from"../RefetchingIndicator/RefetchingIndicator.esm.js";import{CertificationTabs as q}from"./CertificationTabs.esm.js";import{PlaylistComponent as z}from"./Playlist/PlaylistComponent.esm.js";const c=C(i=>({paper:{overflow:"hidden",position:"relative",border:T(i)?`1px solid ${i.palette.divider}`:void 0},view:{display:"grid",gridTemplateColumns:"1fr 2fr"},sidebar:{borderRight:`1px solid ${i.palette.divider}`}})),B=()=>{const{playlistId:i,trackId:t,checkId:s}=A(),p=c(),{entity:o}=I(),{isError:f,isFetched:h,data:y}=R(o),{isError:v,data:u}=S(o),[a,l]=N({showNotApplicable:!1,showExempt:!1}),w=P(({showNotApplicable:m,showExempt:b})=>{l({showNotApplicable:m,showExempt:b})},[l]);if(f||v)return r(n,{severity:"error",title:"Error loading certifications"});const e=i&&u?.find(m=>m.id===i);if(i&&!e)return r(n,{severity:"error",title:"Playlist ${playlistId} not found."});if(h&&!y?.length)return r(F,{});const g=o?k(o):void 0;return r(j,{children:d(x,{className:p.paper,children:[r(U,{}),r(q,{playlistId:i,trackId:t,onSettingsChange:w}),r(E,{}),e&&r(z,{playlist:e,entityRef:g}),!e&&t&&d("div",{"data-testid":"soundcheck-certification-view",className:p.view,children:[r("div",{className:p.sidebar,children:r(D,{trackId:t,checkId:s,showNotApplicable:a.showNotApplicable,showExempt:a.showExempt})}),r($,{programId:t,checkId:s}),r(L,{programId:t})]})]})})};export{B as CertificationsPage,c as useStyles};
|
|
2
2
|
//# sourceMappingURL=CertificationsPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as r,jsxs as d}from"react/jsx-runtime";import{makeStyles as s}from"@material-ui/core";import{useParams as m}from"react-router-dom";import{CertificationAccordion as n}from"../../CertificationAccordion/CertificationAccordion.esm.js";import{CheckDetails as c}from"../../CheckDetails/CheckDetails.esm.js";import{PlaylistCertificationProvider as p}from"./PlaylistContext.esm.js";import{PlaylistSummary as g}from"./PlaylistSummary.esm.js";const f=s(i=>({root:{margin:0,display:"grid",gridTemplateColumns:"1fr",backgroundColor:i.palette.background.default},header:{backgroundColor:i.palette.background.paper,borderBottom:`1px solid ${i.palette.divider}`},section:{backgroundColor:i.palette.background.paper,border:`1px solid ${i.palette.divider}`,padding:0,marginTop:i.spacing(1),marginBottom:i.spacing(1),marginLeft:0,marginRight:i.spacing(1)},twoColumns:{display:"grid",gridTemplateColumns:"1fr 2fr"},sidebar:{display:"grid",gridTemplateColumns:"1fr",margin:i.spacing(1)}})),u=({playlist:i,entityRef:a})=>{const e=f(),{trackId:l,checkId:o}=m();return r("div",{className:e.root,children:d(p,{entityRef:a,children:[r("div",{className:e.header,children:r(g,{playlist:i,entityRef:a})}),d("div",{className:e.twoColumns,children:[r("div",{className:e.sidebar,children:i.trackIds.map(t=>r(n,{playlistId:i.id,trackId:t,checkId:o},t))}),r("div",{className:e.section,children:r(c,{programId:l,checkId:o})})]})]})})};export{u as PlaylistComponent};
|
|
2
2
|
//# sourceMappingURL=PlaylistComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import n
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import{createContext as m,useContext as s}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import{useCertificationDetails as p}from"../../../hooks/certifications/useCertificationDetails.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";const i=m(void 0),a=()=>{const t=s(i);if(!t)throw new Error("useAPlaylistCertificationContext must be used within an PlaylistCertificationProvider");return t},c=t=>{const{children:r,entityRef:o}=t,e=p(o);return n(i.Provider,{value:e,children:r})};export{c as PlaylistCertificationProvider,a as usePlaylistCertificationContext};
|
|
2
2
|
//# sourceMappingURL=PlaylistContext.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{LinearGauge as
|
|
1
|
+
import{jsx as i,jsxs as n}from"react/jsx-runtime";import{LinearGauge as f}from"@backstage/core-components";import{makeStyles as u,useTheme as g,Typography as k}from"@material-ui/core";import l from"lodash";import{useMemo as h}from"react";import{ResultState as c}from"../../../graphql/generated/index.esm.js";import{LevelBadge as x}from"../../Badges/LevelBadge.esm.js";import{NoLevelBadge as y}from"../../Badges/NoLevelBadge.esm.js";import"../../Badges/CampaignBadge.esm.js";import{usePlaylistCertificationContext as v}from"./PlaylistContext.esm.js";const N=(o,t)=>{if(t)return t.filter(e=>o.trackIds.includes(e.track.id)).map(e=>{const m=l.sumBy(e.levels,a=>l.filter(a.checks,{result:c.Passed}).length),s=l.sumBy(e.levels,a=>l.reject(a.checks,{result:c.NotApplicable||c.Exempt}).length),r=s===0?0:m/s;return{id:e.track.id,name:e.track.name,checkPassRate:r}})},d=u(()=>({root:{margin:0,width:"250px"},trackItem:{display:"flex",flexDirection:"column",alignItems:"flex-start"},badgeAndName:{display:"flex",flexDirection:"row",alignItems:"center"},trackName:{marginLeft:"8px"}})),P=({playlist:o})=>{const t=d(),{data:e}=v(),m=g(),s=h(()=>N(o,e),[e,o]);return i("div",{className:t.root,children:s&&s.map(r=>{const a=e?.find(p=>p.track.id===r.id)?.track?.badge;return n("div",{className:t.trackItem,children:[n("div",{className:t.badgeAndName,children:[a?i(x,{badge:a}):i(y,{}),i(k,{variant:"caption",color:"textSecondary",className:t.trackName,children:r.name})]}),i("div",{style:{width:"100%",marginBottom:"8px"},children:i(f,{value:r.checkPassRate,getColor:()=>m.palette.status.ok})})]},r.id)})})};export{P as PlaylistProgress,d as useStyles};
|
|
2
2
|
//# sourceMappingURL=PlaylistProgress.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{Link as s}from"@backstage/core-components";import{makeStyles as c,Typography as l}from"@material-ui/core";import{SoundcheckMarkdownContent as p}from"../../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{PlaylistProgress as m}from"./PlaylistProgress.esm.js";const n=c(i=>({description:{padding:0,margin:0,display:"block","& p":{margin:0}},root:{padding:i.spacing(2),margin:0,display:"grid",gridTemplateColumns:"min-content auto",gridGap:i.spacing(2)},title:{fontSize:i.typography.pxToRem(18),fontWeight:700,lineHeight:1.235,marginBottom:"6px"},level:{textTransform:"uppercase",color:i.palette.text.secondary,fontWeight:700,letterSpacing:"1px"}}));function d({description:i,documentationUrl:o}){const r=n();return o?e("div",{className:r.description,children:[t(p,{content:i}),t(s,{to:o,children:"Learn more"})]}):t("div",{className:r.description,children:t(p,{content:i})})}const g=({playlist:i})=>{const o=n(),{name:r,description:a}=i;return e("div",{className:o.root,children:[t(m,{playlist:i}),e("div",{children:[t(l,{className:o.title,children:r}),a&&t(d,{description:a,documentationUrl:void 0})]})]})};export{g as PlaylistSummary,n as useStyles};
|
|
2
2
|
//# sourceMappingURL=PlaylistSummary.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as n,Tab as
|
|
1
|
+
import{jsx as r,jsxs as p,Fragment as l}from"react/jsx-runtime";import{makeStyles as n,Tab as m}from"@material-ui/core";import{Link as c}from"react-router-dom";import{PlaylistBadge as d}from"../Badges/PlaylistBadge.esm.js";const t=n(e=>({root:{maxWidth:"80ch",textTransform:"uppercase",paddingTop:e.spacing(2),paddingBottom:e.spacing(2)},wrapper:{display:"inline-block",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},badge:{marginRight:e.spacing(1)}})),g=({id:e,name:o,href:i,selected:s=!1})=>{const a=t();return r(m,{className:a.root,classes:{wrapper:a.wrapper},value:e,label:p(l,{children:[r(d,{className:a.badge}),o]}),component:c,to:i,selected:s})};export{g as PlaylistCertificationTab,t as useStyles};
|
|
2
2
|
//# sourceMappingURL=PlaylistCertificationTab.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Tab as t}from"@material-ui/core";import{Skeleton as
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{Tab as t}from"@material-ui/core";import{Skeleton as e}from"@material-ui/lab";import{useStyles as s}from"../CertificationTab.esm.js";const a=()=>{const o=s();return r(t,{className:o.root,classes:{wrapper:o.wrapper},label:r(e,{width:180})})};export{a as CertificationTabSkeleton};
|
|
2
2
|
//# sourceMappingURL=CertificationTabSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as o,jsxs as i}from"react/jsx-runtime";import{Tabs as t}from"@material-ui/core";import{FadeIn as e}from"../../FadeIn/FadeIn.esm.js";import{CertificationTabSkeleton as r}from"./CertificationTabSkeleton.esm.js";const a=()=>o(e,{children:i(t,{value:!1,indicatorColor:"primary",children:[o(r,{}),o(r,{}),o(r,{})]})});export{a as CertificationTabsSkeleton};
|
|
2
2
|
//# sourceMappingURL=CertificationTabsSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsx as t,jsxs as I}from"react/jsx-runtime";import{makeStyles as g,useTheme as T}from"@material-ui/core";import{memo as u}from"react";import{BarChart as E,CartesianGrid as S,XAxis as f,YAxis as v,Tooltip as N,Legend as R,Bar as B,Cell as L}from"recharts";import{CARTESIAN_GRID_OPACITY as b,CHART_DATA_KEY as d,AXIS_DOMAIN as p,VERTICAL_Y_AXIS_WIDTH as O,HORIZONTAL_Y_AXIS_WIDTH as D,LEGEND_ICON_TYPE as x,LEGEND_ICON_SIZE as H}from"../ChartTypes.esm.js";import{getChartFontColor as m,getChartColors as K}from"../chartUtils.esm.js";import{ChartWrapper as Y}from"../ChartWrapper/ChartWrapper.esm.js";import{BarChartPlaceholder as k}from"./BarChartPlaceholder.esm.js";const z=g(a=>({legend:{color:m(a)}}));var s=(a=>(a.Horizontal="horizontal",a.Vertical="vertical",a))(s||{});const h=20,y=50;var C=(a=>(a.Category="category",a.Number="number",a))(C||{});const A={dataKey:"passRate",name:"Pass rate"},Z=u(({data:a,layout:l})=>{const r=l==="vertical",o=T(),n=K(o),c=m(o),_=z();return a.length?t(Y,{"aria-label":"Bar chart representing data points.",children:I(E,{data:a,layout:l,children:[t(S,{vertical:r,horizontal:!r,opacity:b}),t(f,{dataKey:r?void 0:d,type:r?"number":"category",domain:r?p:void 0,stroke:c}),t(v,{width:r?O:D,dataKey:r?d:void 0,type:r?"category":"number",domain:r?void 0:p,stroke:c}),t(N,{contentStyle:{backgroundColor:o.palette.background.paper},itemStyle:{color:m(o)},cursor:{fill:"transparent"}}),t(R,{iconType:x,iconSize:H,formatter:e=>t("span",{className:_.legend,children:e}),payload:a.map(({name:e},i)=>({id:e,value:e,color:n[i%n.length]}))}),t(B,{barSize:r?h:y,dataKey:A.dataKey,name:A.name,children:a.map(({name:e},i)=>t(L,{fill:n[i%n.length]},e))})]})}):t(k,{layout:l,theme:o})});export{C as AxisType,Z as BarChart,s as BarChartLayout,y as HORIZONTAL_BAR_SIZE,h as VERTICAL_BAR_SIZE};
|
|
2
2
|
//# sourceMappingURL=BarChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsxs as i,jsx as r}from"react/jsx-runtime";import{Typography as y}from"@material-ui/core";import{makeStyles as m}from"@material-ui/core/styles";import{BarChart as p,CartesianGrid as c,XAxis as h,YAxis as x,Bar as A}from"recharts";import{CARTESIAN_GRID_OPACITY as C,AXIS_DOMAIN as d,VERTICAL_Y_AXIS_WIDTH as I,HORIZONTAL_Y_AXIS_WIDTH as _}from"../ChartTypes.esm.js";import{ChartWrapper as f}from"../ChartWrapper/ChartWrapper.esm.js";import{BarChartLayout as g,AxisType as e,VERTICAL_BAR_SIZE as u,HORIZONTAL_BAR_SIZE as T}from"./BarChart.esm.js";const N=m(t=>({container:{position:"relative"},chartMessage:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",backgroundColor:t.palette.background.default,padding:t.spacing(1),borderRadius:"5px",textAlign:"center",width:"50%",zIndex:2}})),R=({layout:t,theme:n})=>{const a=t===g.Vertical,l=[{x:"A",y:25},{x:"B",y:50},{x:"C",y:75}],s=[{x:"A",y:100},{x:"B",y:90},{x:"C",y:80},{x:"C",y:70},{x:"C",y:60}],o=N();return i("div",{className:o.container,children:[r(f,{children:i(p,{data:a?s:l,margin:{left:0},layout:t,children:[r(c,{strokeDasharray:"3 3",vertical:a,horizontal:!a,opacity:C}),r(h,{dataKey:a?void 0:"x",type:a?e.Number:e.Category,domain:a?d:void 0,hide:!0}),r(x,{width:a?I:_,dataKey:a?"x":void 0,type:a?e.Category:e.Number,domain:a?void 0:d,hide:!0}),r(A,{dataKey:"y",fill:n.palette.divider,barSize:a?u:T})]})}),r(y,{className:o.chartMessage,children:"No Data"})]})};export{R as BarChartPlaceholder};
|
|
2
2
|
//# sourceMappingURL=BarChartPlaceholder.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{parseEntityRef as n}from"@backstage/catalog-model";import{useSummaryAggregationsContext as p}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{BarChart as m,BarChartLayout as i}from"./BarChart.esm.js";const u=t=>t?.map(({node:a})=>{const{id:s,groupTitle:r,snapshotPassRate:o}=a;return{name:r??n(s).name,passRate:o}})??[],d=()=>{const{groupPassRatesOverviewTrends:{data:t}}=p(),a=t?.groupPassRates?.edges?.sort((r,o)=>o.node.snapshotPassRate-r.node.snapshotPassRate),s=u(a);return e(m,{data:s,layout:i.Vertical})};export{d as GroupPassRateHistoryBarChart};
|
|
2
2
|
//# sourceMappingURL=GroupPassRateHistoryBarChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{Typography as e}from"@material-ui/core";import{useSummaryAggregationsContext as s}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{BarChart as m,BarChartLayout as n}from"./BarChart.esm.js";const i=r=>r?.overallTrackPassRate?.map(({levelOrdinal:a,snapshotPassRate:t})=>({name:`Level ${a}`,passRate:t}))??[],l=()=>{const{trackPassRateOverviewTrend:{data:r,isError:a}}=s();if(a)return o(e,{color:"error",children:"Failed to load track data."});const t=i(r);return o(m,{data:t,layout:n.Horizontal})};export{l as TrackSummaryBarChart};
|
|
2
2
|
//# sourceMappingURL=TrackSummaryBarChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{ResponsiveContainer as o}from"recharts";import{MIN_CHART_HEIGHT as t}from"../ChartTypes.esm.js";const h=({children:e,height:r})=>i(o,{height:r,minHeight:r??t,debounce:1,children:e});export{h as ChartWrapper};
|
|
2
2
|
//# sourceMappingURL=ChartWrapper.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as c}from"@backstage/catalog-model";import{DateTime as d}from"luxon";import
|
|
1
|
+
import{jsx as f}from"react/jsx-runtime";import{parseEntityRef as c}from"@backstage/catalog-model";import{DateTime as d}from"luxon";import{useSummaryAggregationsContext as u}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{formatDate as y}from"../chartUtils.esm.js";import{LineChart as l}from"./LineChart.esm.js";const P=t=>{const r=t?.overallEntityPassRates||[];if(!r.length)return[];const a=d.utc();return r.reduce((e,{trendPassRates:o,id:i},p)=>{const m=o?.map((s,n)=>({name:y(a,o.length-n-1),[i]:s}))??[];return p===0?m:e.map((s,n)=>({...s,...m[n]}))},[])},R=()=>{const{entityPassRatesOverviewTrends:{data:t}}=u(),r=t?.overallEntityPassRates?.map(({id:e})=>({dataKey:e,name:c(e).name}))??[],a=P(t);return f(l,{data:a,lines:r})};export{R as EntityPassRateHistoryLineChart};
|
|
2
2
|
//# sourceMappingURL=EntityPassRateHistoryLineChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as p,useTheme as
|
|
1
|
+
import{jsx as t,jsxs as d}from"react/jsx-runtime";import{makeStyles as p,useTheme as C}from"@material-ui/core";import{LineChart as c,CartesianGrid as _,XAxis as T,YAxis as A,Tooltip as I,Legend as g,Line as E}from"recharts";import{CARTESIAN_GRID_OPACITY as L,CHART_DATA_KEY as y,HORIZONTAL_Y_AXIS_WIDTH as N,AXIS_DOMAIN as O,TOOLTIP_Y_OFFSET as f,LEGEND_ICON_TYPE as S,LEGEND_ICON_SIZE as k,LINE_CHART_TYPE as Y}from"../ChartTypes.esm.js";import{getChartFontColor as m,getChartColors as D}from"../chartUtils.esm.js";import{ChartWrapper as u}from"../ChartWrapper/ChartWrapper.esm.js";import{LineChartPlaceholder as x}from"./LineChartPlaceholder.esm.js";const K=p(r=>({legend:{color:m(r)}})),P=({data:r,lines:a,height:s})=>{const o=C(),i=D(o),n=m(o),h=K();return r.length?t(u,{height:s,children:d(c,{data:r,children:[t(_,{vertical:!1,opacity:L}),t(T,{dataKey:y,stroke:n}),t(A,{width:N,domain:O,stroke:n}),t(I,{position:{y:f},contentStyle:{backgroundColor:o.palette.background.paper}}),a.length>1&&t(g,{iconType:S,iconSize:k,formatter:e=>t("span",{className:h.legend,children:e})}),a.map((e,l)=>t(E,{dataKey:e.dataKey,stroke:i[l%i.length],strokeWidth:2,dot:!1,name:e.name,type:Y},e.dataKey))]})}):t(x,{})};export{P as LineChart};
|
|
2
2
|
//# sourceMappingURL=LineChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as n}from"@material-ui/core";import{makeStyles as
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import{Typography as n}from"@material-ui/core";import{makeStyles as s}from"@material-ui/core/styles";import{LineChart as c,CartesianGrid as d,XAxis as h,YAxis as p,Line as l}from"recharts";import{CARTESIAN_GRID_OPACITY as m,AXIS_DOMAIN as x}from"../ChartTypes.esm.js";import{ChartWrapper as y}from"../ChartWrapper/ChartWrapper.esm.js";const g=s(e=>({container:{position:"relative"},chartMessage:{position:"absolute",top:"50%",left:"50%",fontWeight:"bold",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.default,padding:e.spacing(1),borderRadius:"5px",textAlign:"center",width:"50%",zIndex:2}})),f=({height:e,text:a})=>{const i=[{x:"A",y:0},{x:"B",y:50},{x:"C",y:100}],r=g();return o("div",{className:r.container,children:[t(y,{height:e,children:o(c,{data:i,children:[t(d,{strokeDasharray:"3 3",vertical:!1,opacity:m}),t(h,{dataKey:"x",stroke:"#ccc",hide:!0}),t(p,{domain:x,stroke:"#ccc",hide:!0}),t(l,{type:"monotone",dataKey:"y",stroke:"#ccc",dot:!1})]})}),t(n,{className:r.chartMessage,children:a??"No Data"})]})};export{f as LineChartPlaceholder};
|
|
2
2
|
//# sourceMappingURL=LineChartPlaceholder.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{LineChart as s}from"./LineChart.esm.js";import{TableLineChart as o}from"./TableLineChart.esm.js";const i=({chartData:t,tableChart:e})=>{const a=[{dataKey:"passRate",name:"Pass rate"}];return e?r(o,{data:t,lines:a}):r(s,{data:t,lines:a})};export{i as PassRateHistoryLineChart};
|
|
2
2
|
//# sourceMappingURL=PassRateHistoryLineChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as t,jsxs as m}from"react/jsx-runtime";import{useTheme as d}from"@material-ui/core";import{ResponsiveContainer as s,LineChart as h,XAxis as p,YAxis as A,Line as C}from"recharts";import{CHART_DATA_KEY as l,AXIS_DOMAIN as T,LINE_CHART_TYPE as f}from"../ChartTypes.esm.js";import{getChartColors as x}from"../chartUtils.esm.js";const y=({data:i,lines:r})=>{const o=d(),a=x(o);return t(s,{height:50,width:100,children:m(h,{data:i,children:[t(p,{hide:!0,dataKey:l}),t(A,{width:0,domain:T}),r.map((e,n)=>t(C,{dataKey:e.dataKey,stroke:a[n%a.length],strokeWidth:2,dot:!1,name:e.name,type:f},e.dataKey))]})})};export{y as TableLineChart};
|
|
2
2
|
//# sourceMappingURL=TableLineChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{Typography as p}from"@material-ui/core";import{DateTime as f}from"luxon";import{useSummaryAggregationsContext as u}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{formatDate as v}from"../chartUtils.esm.js";import{LineChart as h}from"./LineChart.esm.js";const l=e=>{const t=e?.overallTrackPassRate||[];if(!t.length)return[];const a=f.utc();return t.reduce((o,{trendPassRates:r,levelOrdinal:c},d)=>{const m=r?.map((n,s)=>({name:v(a,r.length-s-1),[`Level${c}`]:n}))??[];return d===0?m:o.map((n,s)=>({...n,...m[s]}))},[])},g=()=>{const{trackPassRateOverviewTrend:{data:e,isError:t}}=u();if(t)return i(p,{color:"error",children:"Failed to load track data."});const a=l(e),o=e?.overallTrackPassRate?.map(({levelOrdinal:r})=>({dataKey:`Level${r}`,name:`Level ${r}`}))??[];return i(h,{data:a,lines:o})};export{g as TrackPassRateHistoryLineChart,l as formatLineChartData};
|
|
2
2
|
//# sourceMappingURL=TrackPassRateHistoryLineChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as t,jsxs as o}from"react/jsx-runtime";import{useTheme as v,Typography as h}from"@material-ui/core";import b from"@material-ui/icons/Timer";import{useState as y,useEffect as C}from"react";import{ResponsiveContainer as L,CartesianGrid as $,XAxis as A,YAxis as I,Area as E,Line as W,AreaChart as z,LineChart as O}from"recharts";import{ChartWrapper as S}from"./ChartWrapper/ChartWrapper.esm.js";const j=({type:r="area",numLines:a=3,height:l=250})=>{const e=v(),[m,d]=y([]),[x,f]=y(0);C(()=>{const n=()=>Array.from({length:7},(p,k)=>{const c={name:`Day ${k+1}`,totalEntities:1e3};for(let s=1;s<=a;s++)c[`Line ${s}`]=r==="area"?Math.random()*(100/a):Math.random()*100;return c});d(n());const i=setInterval(()=>{d(n())},1500),u=setInterval(()=>{f(p=>p+1)},1e3);return()=>{clearInterval(i),clearInterval(u)}},[a,r]);const g=r==="area"?z:O;return t(S,{children:o("div",{style:{height:l,width:"100%",position:"relative",borderRadius:"4px"},children:[t("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,boxShadow:`inset 0 0 70px 100px ${e.palette.background.default}`,borderRadius:"4px",pointerEvents:"none",zIndex:1}}),t(L,{height:l,debounce:1,children:o(g,{data:m,margin:{top:0,right:0,bottom:0,left:0},children:[t("defs",{children:Array.from({length:a},(n,i)=>o("linearGradient",{id:`gradient-${i+1}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[t("stop",{offset:"5%",stopColor:e.palette.text.secondary,stopOpacity:.4}),t("stop",{offset:"95%",stopColor:e.palette.text.secondary,stopOpacity:0})]},`gradient-${i+1}`))}),t($,{stroke:e.palette.divider,strokeWidth:1,horizontal:!0,vertical:!1}),t(A,{dataKey:"name",tickLine:!1,axisLine:!1,tick:{fill:e.palette.text.secondary}}),t(I,{tickLine:!1,axisLine:!1,tick:{fill:e.palette.text.secondary}}),Array.from({length:a},(n,i)=>r==="area"?t(E,{type:"monotone",dataKey:`Line ${i+1}`,stackId:"1",stroke:e.palette.text.secondary,strokeWidth:2,strokeOpacity:.3,fill:`url(#gradient-${i+1})`,animationDuration:1200,animationEasing:"ease-in-out",dot:!1},`line-${i+1}`):t(W,{type:"monotone",dataKey:`Line ${i+1}`,stroke:e.palette.text.secondary,strokeWidth:2,strokeOpacity:.3,animationDuration:1200,animationEasing:"ease-in-out",dot:!1},`line-${i+1}`))]})}),o("div",{style:{position:"absolute",top:"16px",left:"50%",transform:"translateX(-50%)",textAlign:"center",width:"100%",padding:"8px 0",zIndex:2},children:[t(h,{variant:"subtitle1",style:{color:e.palette.text.secondary,fontWeight:500,letterSpacing:"0.5px"},children:"Calculating..."}),o(h,{variant:"subtitle1",style:{color:e.palette.text.secondary,opacity:.8,display:"flex",alignItems:"center",justifyContent:"center",gap:"4px"},children:[t(b,{style:{fontSize:16}}),x,"s"]})]})]})})};export{j as LoadingChart};
|
|
2
|
+
//# sourceMappingURL=LoadingChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const n=["#59A0F6","#95C90D","#FFA42C","#C87DFF","#7358FF","#F036A4"],C=["#
|
|
1
|
+
const n=["#59A0F6","#95C90D","#FFA42C","#C87DFF","#7358FF","#F036A4"],C=["#3B82F6","#10B981","#8B5CF6","#F59E0B","#6B7280","#06B6D4","#EC4899","#84CC16","#D946EF"];var o=(e=>(e.RED="red",e.GREEN="green",e))(o||{});const a={red:"#FF4834",green:"#1BB552"},d={red:"#FF001A",green:"#1CD760"},F=e=>e?e.palette.type:"",t=e=>F(e).toLowerCase()==="dark",g=e=>t(e)?e.palette.grey[200]:e.palette.grey[800],s=e=>t(e)?C:n;function B(e,r){return(r?e.minus({days:r}):e).toFormat("MMM dd")}const D=(e,r)=>t(e)?d[r]:a[r];export{o as TrendLineColor,B as formatDate,s as getChartColors,g as getChartFontColor,F as getThemeType,D as getTrendLineColor,t as isDarkTheme};
|
|
2
2
|
//# sourceMappingURL=chartUtils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsx as t,jsxs as p}from"react/jsx-runtime";import{makeStyles as b,useTheme as v,Box as a,Paper as k,Typography as D,Tooltip as R}from"@material-ui/core";import u from"@material-ui/lab/Skeleton";import{DateTime as A}from"luxon";import{CircularProgressbar as $,buildStyles as B}from"react-circular-progressbar";import{getChartFontColor as x,formatDate as O}from"../Charts/chartUtils.esm.js";import{getApplicableCheckCount as P}from"../TrackPage/TrackEntitiesTable/utils.esm.js";import{getProgressColor as g}from"../TrackPage/utils.esm.js";import{CheckHistoryChart as T}from"./CheckHistoryChart.esm.js";import{getCheckName as W}from"./utils.esm.js";const y=b(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"0.9rem",cursor:"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},headerRow:{display:"flex",padding:e.spacing(1.5,2),borderBottom:`1px solid ${e.palette.divider}`,width:"100%"},headerSection:{display:"flex",flexDirection:"column",gap:e.spacing(.5),flexGrow:1,width:"100%"},contentRow:{padding:e.spacing(1.5,2,.5),display:"flex"},leftSection:{width:"75px",minWidth:"75px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"150px"},chartSkeletonSection:{flex:1,width:"100%",minWidth:"150px",padding:e.spacing(0,0,1,1)},overallSummaryBox:{display:"flex",flexDirection:"column",height:"100%",color:x(e),textAlign:"center",gap:e.spacing(2)}})),j=()=>{const e=y();return p(a,{className:e.contentRow,children:[t(a,{className:e.leftSection,children:t(a,{className:e.summaryCard,children:t(u,{variant:"circle",height:75})})}),t(a,{className:e.chartSkeletonSection,children:t(u,{variant:"rect",height:92})})]})};function z(e){if(!e)return[];const{history:n}=e,r=A.utc();return n.map((i,o)=>{const l=P(i);return{name:O(r,n.length-o-1),passRate:l?Math.round(i.passed/l*100):0}})}function E(e){if(!e)return 0;const{passed:n,exempt:r}=e,i=e.numberOfEntities-e.notApplicable-e.exempt;return i?Math.round((n+r)/i*100):0}function H(e){if(!e)return{numerator:0,denominator:0};const{passed:n,exempt:r}=e,i=e.numberOfEntities-e.notApplicable-e.exempt;return{numerator:n+r,denominator:i}}const M=({check:e,track:n,status:r,history:i})=>{const o=y(),l=v(),C={dataKey:"passRate",name:"Pass rate"},S=i?.history?.length??0,N=z(i),s=E(r);let m;r?m=`${s}%`:m="No Data";let d=!1,c;if(!r)c="No Data";else{const{numerator:w,denominator:f}=H(r);f>0?(d=!0,c=`${w} of ${f} entities passing`):c="No Applicable Entities"}const h=d?t(a,{className:o.overallSummaryBox,children:t($,{value:s,text:m,styles:B({textColor:x(l),pathColor:g(l,s),trailColor:l.palette.divider,textSize:S?void 0:10})})}):null;return p(k,{className:o.card,elevation:0,children:[t(a,{className:o.headerRow,children:t(a,{className:o.headerSection,children:t(D,{className:o.title,children:W(n,e)})})}),!r||!i?t(j,{}):t(R,{title:c,children:p(a,{className:o.contentRow,children:[h&&t(a,{className:o.leftSection,children:t(a,{className:o.summaryCard,children:h})}),t(a,{className:o.chartSection,children:t(T,{data:d?N:[],lineConfig:C,color:g(l,s)})})]})})]})};export{M as CheckCard};
|
|
2
2
|
//# sourceMappingURL=CheckCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as t,jsxs as m}from"react/jsx-runtime";import{useTheme as n}from"@material-ui/core";import{ResponsiveContainer as s,AreaChart as d,CartesianGrid as h,XAxis as p,YAxis as A,Area as l}from"recharts";import{CARTESIAN_GRID_OPACITY as C,CHART_DATA_KEY as c,HORIZONTAL_Y_AXIS_WIDTH as f,AXIS_DOMAIN as y}from"../Charts/ChartTypes.esm.js";import"../Charts/LineChart/LineChart.esm.js";import{getChartFontColor as I}from"../Charts/chartUtils.esm.js";import"luxon";import"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../Charts/BarChart/BarChart.esm.js";import{LineChartPlaceholder as _}from"../Charts/LineChart/LineChartPlaceholder.esm.js";const T=({data:o,lineConfig:e,color:r})=>{const a=n(),i=I(a);return o.length?t(s,{minHeight:100,debounce:1,children:m(d,{data:o,children:[t(h,{vertical:!1,opacity:C}),t(p,{dataKey:c,stroke:i,style:{fontSize:"0.7rem"}}),t(A,{width:f,domain:y,stroke:i,style:{fontSize:"0.7rem"}}),t(l,{dataKey:e.dataKey,name:e.name,stackId:"1",type:"monotone",stroke:r,strokeWidth:1.2,fill:r},e.dataKey)]})}):t(_,{height:100})};export{T as CheckHistoryChart};
|
|
2
2
|
//# sourceMappingURL=CheckHistoryChart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsxs as f,Fragment as l,jsx as r}from"react/jsx-runtime";import{useEffect as s}from"react";import{v4 as u}from"uuid";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as h,useCheckFormContext as g}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as k}from"../../hooks/useNavigateBack.esm.js";import{useCheckTemplates as C}from"../../hooks/checks/useCheckTemplates.esm.js";import{useCreateCheck as y}from"../../hooks/checks/useCreateCheck.esm.js";import{useSearchParam as I}from"../../hooks/useSearchParam.esm.js";import{checksPageRouteRef as L}from"../../routes.esm.js";import{CheckForm as F}from"../CheckForm/CheckForm.esm.js";import"../CheckForm/Steps/CheckDetailsStep.esm.js";import"../CheckForm/Steps/CheckRulesStep.esm.js";import{LoadingIndicator as P}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as v}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as x}from"../SoundcheckHeader/useHeader.esm.js";const S=({template:t})=>{const{setIsLoading:e,selectedItem:m,setSelectedItem:o}=g(),{mutateAsync:i,isLoading:a}=y();s(()=>{o(t?{...t,id:u()}:null)},[t,o]),s(()=>{e(a)},[e,a]);const[c,n]=k(L),p=async d=>{await i(d,{onSuccess:n})};return x({title:"Create a Check",description:"Identify if your software meets organizational standards by setting up a check.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks"}),t&&!m?null:r(F,{onSave:p,onClose:c})},w=()=>{const[[t]]=I("template"),{isLoading:e,data:m}=C(),o=t&&m?m.find(i=>i.id===t)??null:null;return f(l,{children:[r(v,{entityName:"check template",entityId:t,showNotFound:!!t&&!e&&!o}),e&&r(P,{}),r(h,{children:!e&&(!t||o)&&r(S,{template:o})})]})};export{w as CheckCreatePage};
|
|
2
2
|
//# sourceMappingURL=CheckCreatePage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as t,jsxs as o,Fragment as M}from"react/jsx-runtime";import{stringifyEntityRef as h}from"@backstage/catalog-model";import{useEntity as O}from"@backstage/plugin-catalog-react";import{makeStyles as F,Box as p,Typography as m,Button as u,Tooltip as $}from"@material-ui/core";import{Alert as C}from"@material-ui/lab";import{useState as v}from"react";import{CheckerType as W,ResultState as l}from"../../graphql/generated/index.esm.js";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import{useCheck as G}from"../../hooks/checks/useCheck.esm.js";import{useCheckDetails as J}from"../../hooks/checks/useCheckDetails.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetExemption as q}from"../../hooks/exemptions/useGetExemption.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useSetManualResult as H}from"../../hooks/checks/useSetManualResult.esm.js";import{AlertPanel as K}from"../AlertPanel/AlertPanel.esm.js";import{CheckResultInputPopup as Q}from"../CertificationSidebar/CheckResultInputPopup.esm.js";import{ExemptionJustificationDialog as U}from"../CertificationSidebar/ExemptionJustificationDialog.esm.js";import{RelativeTime as V}from"../RelativeTime/RelativeTime.esm.js";import{SoundcheckMarkdownContent as X}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react-markdown";import"rehype-raw";import"remark-gfm";import{ResultStateBox as Y}from"./ResultStateBox.esm.js";import{CheckDetailsSkeleton as Z}from"./skeletons/CheckDetailsSkeleton.esm.js";const c=F(e=>({root:{padding:`${e.spacing(3)}px ${e.spacing(5)}px`},title:{fontWeight:"normal",fontSize:e.typography.h5.fontSize},description:{padding:`${e.spacing(3)}px 0`},subtitle:{fontWeight:"normal",fontSize:e.typography.h6.fontSize},topBar:{display:"flex",justifyContent:"space-between",marginBottom:e.spacing(2)},exemptButton:{marginLeft:e.spacing(1)},exemptAlert:{marginBottom:e.spacing(2)}})),R=({setPopupDisplayed:e})=>{const i=c();return t(u,{className:i.exemptButton,size:"small",onClick:()=>e(!0),"aria-label":"Set Check Status Button",children:"Set Check Status"})},E=({isExempt:e,setPopupDisplayed:i})=>{const r=c();return t($,{title:e?"Remove Exemption":"Set Exempt From Check",children:t(u,{className:r.exemptButton,size:"small",color:"inherit",onClick:()=>i(!0),"aria-label":"Exempt From Check",children:e?"Remove Exemption":"Add Exemption"})})},_=({programId:e,checkId:i})=>{const r=c(),{entity:a}=O(),{data:f,isLoading:B,isError:N}=J(a,e,i),[b,x]=v(!1),[D,d]=v(!1),{data:n,isLoading:T}=q(h(a),i??""),{data:y}=G(i),{mutateAsync:w}=H();if(N)return t(p,{padding:2,children:t(K,{severity:"error",title:"Error loading check details"})});if(B||!e||!i)return t(Z,{});if(!f)return null;const k=y?.type===W.Manual,{name:g,description:z,result:s,timestamp:S,details:A}=f,I=async(P,j)=>{if(!a||!i)return;const L=h(a);await w({checkId:i,entityRef:L,justification:j,state:P})};return o("div",{className:r.root,"data-testid":"check-details-view",children:[o("div",{className:r.topBar,children:[t(m,{variant:"h2",className:r.title,children:g}),o(p,{display:"flex",alignItems:"center",children:[S?t(V,{timestamp:S,description:"Last updated"}):null,k&&!n?.exemption&&s!==l.NotReported&&t(R,{setPopupDisplayed:d}),!T&&s!==l.NotApplicable&&t(E,{isExempt:!!n?.exemption,setPopupDisplayed:x})]})]}),t(U,{entityRef:h(a),checkId:i,isOpen:b,setIsOpen:x}),t(Q,{isOpen:D,setIsOpen:d,setCallback:I}),!n?.exemption&&s===l.Exempt&&t(C,{className:r.exemptAlert,severity:"warning",variant:"outlined",children:"This check's exemption for this entity was recently removed. The recent exemption state will clear once the check has been run."}),!!n?.exemption&&t(p,{marginBottom:2,children:t(C,{className:r.exemptAlert,severity:"warning",variant:"outlined",children:"This entity has been exempted from this check."})}),k&&!n?.exemption&&s===l.NotReported?o(p,{children:[t(m,{children:"This check is manual and must have its state set by a user."}),t(p,{marginTop:1,children:t(u,{variant:"contained",color:"primary",onClick:()=>d(!0),"aria-label":"Set Check Status",size:"small",children:"Set Check Status"})})]}):o(M,{children:[t(m,{className:r.subtitle,children:"Most Recent Result:"}),t(Y,{name:g,state:s,details:A,templateRef:y?.templateRef??void 0})]}),o("div",{className:r.description,"data-testid":"soundcheck-check-details-description",children:[t(m,{variant:"h3",className:r.subtitle,children:"Description"}),t(X,{content:z})]})]})};export{_ as CheckDetails,E as ExemptDialogButton,R as SetCheckStatusButton,c as useStyles};
|
|
2
2
|
//# sourceMappingURL=CheckDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Box as
|
|
1
|
+
import{jsxs as r,Fragment as a,jsx as e}from"react/jsx-runtime";import{Box as l,Typography as i}from"@material-ui/core";import{RuleResultComponent as h}from"../RuleResult/RuleResultComponent.esm.js";import{FactTable as u}from"./FactTable.esm.js";const c=({ruleResult:t,applicabilityResult:n})=>r(a,{children:[n&&r(a,{children:[r(l,{mt:2,children:[e(i,{variant:"h3",children:"Applicability Rule Evaluation"}),e(l,{p:2,children:e(h,{ruleResult:n})})]}),e(i,{variant:"h3",children:"Resolved Values"}),e(l,{p:2,children:e(u,{ruleResult:n})})]}),t&&r(a,{children:[r(l,{mt:2,children:[e(i,{variant:"h3",children:"Check Rule Evaluation"}),e(l,{p:2,children:e(h,{ruleResult:t})})]}),e(i,{variant:"h3",children:"Resolved Values"}),e(l,{p:2,children:e(u,{ruleResult:t})})]})]});export{c as CheckResultDetails};
|
|
2
2
|
//# sourceMappingURL=CheckResultDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TableRow as
|
|
1
|
+
import{jsxs as o,Fragment as m,jsx as l}from"react/jsx-runtime";import{TableRow as e,TableCell as i,IconButton as p,Collapse as s}from"@material-ui/core";import c from"@material-ui/icons/KeyboardArrowDown";import h from"@material-ui/icons/KeyboardArrowUp";import{useState as f}from"react";const g=({title:r,children:t,defaultOpen:a=!0})=>{const[n,d]=f(a);return o(m,{children:[l(e,{children:o(i,{colSpan:2,padding:"normal",align:"left",size:"small",children:[l(p,{"aria-label":"expand row",size:"small",onClick:()=>d(!n),children:n?l(h,{}):l(c,{})}),l("strong",{children:r})]})}),l(e,{children:l(i,{style:{paddingBottom:0,paddingTop:0},colSpan:2,padding:"normal",align:"left",size:"small",children:l(s,{in:n,timeout:"auto",unmountOnExit:!0,children:t})})})]})};export{g as CollapseRow};
|
|
2
2
|
//# sourceMappingURL=CollapseRow.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TableContainer as
|
|
1
|
+
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{TableContainer as f,Paper as u,Table as h,TableBody as g,TableRow as i,TableCell as c,IconButton as b,Collapse as C,Box as T}from"@material-ui/core";import{makeStyles as w}from"@material-ui/core/styles";import x from"@material-ui/icons/KeyboardArrowDown";import R from"@material-ui/icons/KeyboardArrowUp";import{groupBy as v}from"lodash";import{useState as B,useMemo as k,Fragment as y}from"react";import{findUniqueFacts as N}from"./findUniqueFacts.esm.js";import{ResolvedValueTable as S}from"./ResolvedValueTable.esm.js";const j=w(t=>({tableCell:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:200},selectedRow:{backgroundColor:t.palette.action.hover},factRow:{backgroundColor:t.palette.background.default},factCell:{paddingTop:t.spacing(1.5),paddingBottom:t.spacing(1.5),paddingLeft:`${t.spacing(2)}px !important`},dataCell:{"&::after":{display:"none"}}})),F=({ruleResult:t})=>{const l=j(),[n,d]=B({}),m=k(()=>v(N(t),"factRef"),[t]),p=o=>{d(a=>({...a,[o]:a[o]!==void 0?!a[o]:!1}))};return e(f,{component:u,children:e(h,{children:e(g,{children:Object.entries(m).map(([o,a],s)=>r(y,{children:[e(i,{className:l.factRow,children:r(c,{className:l.factCell,children:[e(b,{size:"small",onClick:()=>p(o),children:n[o]?e(R,{}):e(x,{})}),o]})}),e(i,{children:e(c,{className:l.dataCell,style:{paddingBottom:0,paddingTop:0},colSpan:4,children:e(C,{in:n[o]===void 0||n[o],timeout:"auto",unmountOnExit:!0,children:e(T,{margin:1,children:e(S,{values:a})})})})})]},s))})})})};export{F as FactTable};
|
|
2
2
|
//# sourceMappingURL=FactTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Progress as
|
|
1
|
+
import{jsxs as l,jsx as o}from"react/jsx-runtime";import{Progress as R}from"@backstage/core-components";import{useApi as u,errorApiRef as T}from"@backstage/core-plugin-api";import{useEntity as b}from"@backstage/plugin-catalog-react";import{scaffolderApiRef as D,useTemplateSecrets as I,useCustomFieldExtensions as B}from"@backstage/plugin-scaffolder-react";import{useTemplateParameterSchema as F,useFilteredSchemaProperties as O,Stepper as U}from"@backstage/plugin-scaffolder-react/alpha";import{makeStyles as j,Dialog as A,DialogTitle as P,Typography as J,IconButton as N,DialogContent as W}from"@material-ui/core";import M from"@material-ui/icons/Close";import Q from"git-url-parse";import{useState as V,useEffect as q}from"react";import{useOutlet as z}from"react-router-dom";import{OngoingTaskComponent as G}from"./OngoingTaskComponent.esm.js";import{ReviewStateComponent as H}from"./ReviewStateComponent.esm.js";class h{type;name;owner;lifecycle;title;description;sourceLocation;managedByLocation;slackChannel;entity;constructor(e){this.lifecycle=e.spec?.lifecycle||"unknown",this.name=e.metadata.name,this.owner=e.spec?.owner||"unknown",this.type=e.spec?.type||"unknown",this.title=e.metadata.title,this.description=e.metadata.description||"",this.sourceLocation=e.metadata.annotations?.["backstage.io/source-location"]?.replace("url:",""),this.managedByLocation=e.metadata.annotations?.["backstage.io/managed-by-location"],this.slackChannel=e.metadata.annotations?.["spotify.net/slack-channel"],this.entity=e}}const K=t=>{const e={};if(e.componentId=t.name,t.sourceLocation){const{name:n,owner:a,protocol:r,source:i}=Q(t.sourceLocation);e.repoUrl=`${r}://${i}/${a}/${n}`,e.repo={host:i,org:a,repo:n,url:e.repoUrl,gitUrl:`git@${i}:${a}/${n}.git`,paramUrl:`${r}://${i}?owner=${a}&repo=${n}`}}e.facts=JSON.parse(t.entity.metadata.annotations?.["sysmodel.spotify.net/raw-component-facts"]||"{}");const s=t;return delete s.entity,{...e,...s}},X=j({titleContent:{display:"flex",justifyContent:"space-between",alignItems:"center"}}),Y=t=>{const{title:e,open:s,setOpen:n,onClose:a,templateRef:r}=t,i=X(),m=u(T),y=u(D),{loading:g,manifest:w,error:c}=F(r),{secrets:k}=I(),C=z(),$=B(C),p=O(w),{entity:S}=b(),[d,f]=V(void 0),x=async E=>{const{taskId:L}=await y.scaffold({templateRef:r,values:E,secrets:k});f(L)},v=()=>{n(!1),f(void 0)};return q(()=>{c&&m.post(new Error(`Failed to load template, ${c}`))},[c,m]),l(A,{open:s,onClose:a,fullWidth:!0,maxWidth:"md",children:[o(P,{children:l("div",{className:i.titleContent,children:[o(J,{variant:"h5",children:e}),o(N,{onClick:v,children:o(M,{})})]})}),l(W,{children:[g&&o(R,{}),d?o(G,{taskId:d}):p&&o(U,{manifest:p,onCreate:x,extensions:$,components:{createButtonText:"Execute",ReviewStateComponent:H},initialState:{backstage:K(new h(S))},...t})]})]})};export{Y as FixMeDialog,h as SimplifiedEntity};
|
|
2
2
|
//# sourceMappingURL=FixMeDialog.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as r,jsx as t}from"react/jsx-runtime";import{Divider as p,Typography as a,Box as l}from"@material-ui/core";import{JustificationDetailsSchema as c}from"@spotify/backstage-plugin-soundcheck-common";import{DateTime as u}from"luxon";import{EntityChip as d}from"../EntityChip/EntityChip.esm.js";import{SoundcheckMarkdownContent as f}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";const h=({justification:m,type:i})=>{const n=c.safeParse(m);if(!n.success)return null;const o=n.data,s=u.fromISO(o.timestamp).toFormat("MM/dd/yyyy");let e;switch(i){case"exemption":e="Exemption Details:";break;case"manual":e="Manually Submitted Check Result Details:";break;default:e="Unknown Justification Type";break}return r("div",{children:[t(p,{}),t(a,{variant:"h6",children:e}),t("br",{}),r(a,{children:[t(d,{entityOrRef:o.submittedBy,style:{}}),"submitted ",i==="exemption"?"an exemption":"a manual result"," on ",s,"."]}),t("br",{}),r(a,{children:["Reasoning for the ",i==="exemption"?"exemption":"manual result"," ","was:"]}),t(l,{maxHeight:"400px",overflow:"auto",style:{wordWrap:"break-word",wordBreak:"break-word"},children:t(f,{content:o.justification})})]})};export{h as JustificationDetails};
|
|
2
|
+
//# sourceMappingURL=JustificationDetails.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Content as l,ErrorPanel as
|
|
1
|
+
import{jsxs as i,jsx as e}from"react/jsx-runtime";import{Content as l,ErrorPanel as u}from"@backstage/core-components";import{useTaskEventStream as c}from"@backstage/plugin-scaffolder-react";import{TaskSteps as d,DefaultTemplateOutputs as f}from"@backstage/plugin-scaffolder-react/alpha";import{makeStyles as k,Box as s}from"@material-ui/core";import{useMemo as p}from"react";const g=k({contentWrapper:{display:"flex",flexDirection:"column"}}),x=n=>{const t=c(n.taskId),o=p(()=>t.task?.spec.steps.map(r=>({...r,...t?.steps?.[r.id]}))??[],[t]),m=p(()=>{for(let r=o.length-1;r>=0;r--)if(o[r].status!=="open")return r;return 0},[o]),a=g();return i(l,{className:a.contentWrapper,children:[t.error?e(s,{paddingBottom:2,children:e(u,{error:t.error,title:t.error.message})}):null,e(s,{paddingBottom:2,children:e(d,{steps:o,activeStep:m,isComplete:t.completed,isError:!!t.error})}),e(f,{output:t.output})]})};export{x as OngoingTaskComponent};
|
|
2
2
|
//# sourceMappingURL=OngoingTaskComponent.esm.js.map
|