@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{makeStyles as
|
|
1
|
+
import{jsxs as l,jsx as o}from"react/jsx-runtime";import{makeStyles as g,Typography as m}from"@material-ui/core";import{uniqBy as h}from"lodash";import"../../../../contexts/TrackFormContext.esm.js";import"../../../../contexts/CheckFormContext.esm.js";import"../../../../contexts/CampaignFormContext.esm.js";import"react";import{useLoggedInUser as v}from"../../../../contexts/UserProvider.esm.js";import{useGroupOptions as x}from"../../../../hooks/groups/useGroupOptions.esm.js";import{FormControlledAutocomplete as y}from"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useLabelOptions as w}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import{CAMPAIGN_FIELDS as b}from"../../utils/campaignFormUtils.esm.js";const C=g(e=>({helperText:{marginLeft:0},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1),marginBottom:e.spacing(2)},fieldContainer:{width:"250px"}})),F=({control:e,errors:p,isLoading:s,disabled:d})=>{const i=C(),{owner:t}=b.details,{options:c}=x(),{user:f,userEntityRef:n}=v();let r=h(c?.map(a=>({value:a.ref,label:a.name})),"value");const u=w(r);return n&&(r=[{value:n,label:f?.metadata.name},...r]),l("div",{className:i.selectField,children:[l("header",{children:[o(m,{variant:"subtitle2",children:t.name}),o(m,{variant:"caption",children:t.description})]}),o("div",{className:i.fieldContainer,children:o(y,{name:"detailsStep.ownerEntityRef",control:e,placeholder:"Owner",freeSolo:!1,disabled:d||s,helperText:p?.ownerEntityRef?.message??void 0,...u})})]})};export{F as CampaignOwnerField};
|
|
2
2
|
//# sourceMappingURL=CampaignOwnerField.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{jsxs as m,jsx as a}from"react/jsx-runtime";import C from"@date-io/luxon";import{makeStyles as F,Typography as g}from"@material-ui/core";import{KeyboardDatePicker as x}from"@material-ui/pickers/DatePicker";import{MuiPickersUtilsProvider as D}from"@material-ui/pickers/MuiPickersUtilsProvider";import{useState as l}from"react";import{Controller as b}from"react-hook-form";import{CAMPAIGN_FIELDS as S}from"../../utils/campaignFormUtils.esm.js";import{EndDateChips as O}from"./EndDateChips.esm.js";const B=F(e=>({helperText:{margin:e.spacing(.5,0)},selectFieldGroup:{display:"flex",flexDirection:"column",gap:e.spacing(2),marginBottom:e.spacing(2)},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1),padding:0},scheduleTitle:{fontWeight:"bold"},fieldContainer:{width:"250px"},select:{width:"100%",height:"100%",paddingRight:e.spacing(.5),"& button":{paddingTop:0,paddingBottom:0,"&:hover":{backgroundColor:"transparent"}}},dialog:{padding:0,"& [class*=MuiToolbar-root]":{backgroundColor:e.palette.background.paper,borderBottom:`1px solid ${e.palette.divider}`,"& [class*=MuiPickersToolbarText]":{color:e.palette.text.primary}},"& [class*=MuiDialogActions-root]":{borderTop:`1px solid ${e.palette.divider}`,padding:e.spacing(1),"& [class*=MuiButton-label]":{color:e.palette.text.primary}}}})),I=({control:e,errors:i,isLoading:s,disabled:n,startDate:y})=>{const t=B(),[v,d]=l(!1),[T,p]=l(!1),[P,M]=l(y),[N,u]=l(void 0),{startingDate:h,endingDate:f}=S.details;return m("div",{className:t.selectFieldGroup,children:[a(g,{variant:"subtitle1",className:t.scheduleTitle,children:"Campaign schedule"}),m("div",{className:t.selectField,children:[a(g,{variant:"subtitle2",children:h.name}),a("div",{className:t.fieldContainer,children:a(b,{control:e,name:"detailsStep.startDate",render:({field:o})=>{const{ref:k,...c}=o;return a(D,{utils:C,children:a(x,{inputRef:o.ref,...c,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:t.helperText},inputVariant:"outlined",className:t.select,error:!!i?.startDate,helperText:i?.startDate?.message??void 0,onChange:r=>{M(r),o.onChange(r)},open:v,disabled:s||n,DialogProps:{PaperProps:{className:t.dialog}},margin:"dense",size:"small",InputProps:{readOnly:!0,placeholder:h.placeholder,onClick:()=>d(!0),className:t.select},onOpen:()=>d(!0),onClose:()=>d(!1)})})}})})]}),m("div",{className:t.selectField,children:[a(g,{variant:"subtitle2",children:f.name}),a("div",{className:t.fieldContainer,children:a(b,{name:"detailsStep.targetCompletionDate",control:e,render:({field:o})=>{const{ref:k,...c}=o;return a(D,{utils:C,children:a(x,{inputRef:o.ref,...c,disablePast:!0,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:t.helperText},inputVariant:"outlined",className:t.select,error:!!i?.targetCompletionDate,helperText:i?.targetCompletionDate?.message??void 0,onChange:r=>{o.onChange(r)},open:T,disabled:s||n,DialogProps:{PaperProps:{className:t.dialog}},InputProps:{readOnly:!0,placeholder:f.placeholder,onClick:()=>p(!0),className:t.select,margin:"dense"},margin:"dense",onOpen:()=>{u(void 0),p(!0)},onClose:()=>p(!1),ToolbarComponent:r=>a(O,{props:r,isLoading:s,disabled:!!n,startDate:P,selectedDuration:N,setSelectedDuration:u})})})}})})]})]})};export{I as CampaignScheduleField};
|
|
2
2
|
//# sourceMappingURL=CampaignScheduleField.esm.js.map
|
package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as l,jsx as e}from"react/jsx-runtime";import{makeStyles as s,Typography as i}from"@material-ui/core";import{FormTextInput as d}from"../../../FormTextInput/FormTextInput.esm.js";import{CAMPAIGN_FIELDS as m}from"../../utils/campaignFormUtils.esm.js";const c=s(r=>({fieldContainer:{width:"250px"},container:{marginBottom:r.spacing(2)}})),h=({control:r,errors:t,isLoading:a,disabled:p})=>{const o=c(),{support:n}=m.details;return l("div",{className:o.container,children:[e(i,{variant:"subtitle2",children:n.name}),e(i,{variant:"caption",children:n.description}),e("div",{className:o.fieldContainer,children:e(d,{name:"detailsStep.supportChannel",control:r,placeholder:n.placeholder,disabled:p||a,variant:"outlined",margin:"dense",error:t?.supportChannel,helperText:t?.supportChannel?.message??void 0})})]})};export{h as CampaignSupportChannelField};
|
|
2
2
|
//# sourceMappingURL=CampaignSupportChannelField.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as d,jsx as e}from"react/jsx-runtime";import{makeStyles as h,Grid as t,Chip as g}from"@material-ui/core";import{DatePickerToolbar as b}from"@material-ui/pickers/DatePicker/DatePickerToolbar";import{DateTime as u}from"luxon";const v=h(a=>({chip:{backgroundColor:a.palette.primary.main,color:a.palette.primary.contrastText},chips:{width:"310px",marginLeft:a.spacing(1)},chipContainer:{paddingBottom:"0 !important",paddingTop:"0 !important",marginBottom:a.spacing(.75)},noPadding:{padding:a.spacing(0)}})),y=[{value:{days:7},label:"1 week"},{value:{days:14},label:"2 weeks"},{value:{month:1},label:"1 month"},{value:{months:3},label:"3 months"},{value:{months:6},label:"6 months"},{value:{year:1},label:"1 year"}],f=({props:a,startDate:n,selectedDuration:l,setSelectedDuration:s,isLoading:m,disabled:c})=>{const i=v();return d(t,{container:!0,direction:"column",children:[e(t,{item:!0,className:i.noPadding,children:e(b,{...a})}),e(t,{container:!0,item:!0,className:i.chips,children:y.map(({value:o,label:r})=>e(t,{item:!0,className:i.chipContainer,children:e(g,{label:r,className:l===o?i.chip:void 0,color:l===o?"primary":void 0,size:"small",onClick:()=>{if(n){s(o);const p=u.fromISO(n.toString()).plus(o);a.onChange(p,!1)}},disabled:m||c})},r))})]})};export{f as EndDateChips};
|
|
2
2
|
//# sourceMappingURL=EndDateChips.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as l,Fragment as y,jsx as e}from"react/jsx-runtime";import{makeStyles as S,Divider as C,Grid as h,Typography as o,TextField as x}from"@material-ui/core";import F from"@material-ui/icons/Remove";import{useFieldArray as R,Controller as u}from"react-hook-form";import{NoBorderButton as f}from"../../NoBorderButton/NoBorderButton.esm.js";import{CAMPAIGN_FIELDS as H}from"../utils/campaignFormUtils.esm.js";const A=S(s=>({milestoneHeader:{display:"flex",alignItems:"center",marginBottom:s.spacing(1)},divider:{margin:"20px 0"},helperText:{marginLeft:0},selectContainer:{width:"250px"},section:{marginBottom:s.spacing(2)}})),B=({control:s,errors:n,isLoading:d,disabled:t})=>{const r=A(),{name:m,description:p,passrate:c}=H.milestones,{fields:g,append:v,remove:T}=R({control:s,name:"milestonesStep.milestones"}),b=()=>v({name:"",description:"",passRate:"0"});return l(y,{children:[g.map((N,i)=>l("div",{children:[i!==0&&e(C,{className:r.divider}),l(h,{container:!0,spacing:1,className:r.milestoneHeader,children:[l(h,{item:!0,xs:!0,children:[e(o,{variant:"subtitle2",children:m.name}),e(u,{name:`milestonesStep.milestones.${i}.name`,control:s,defaultValue:"",render:({field:a})=>e(x,{...a,FormHelperTextProps:{className:r.helperText},variant:"outlined",fullWidth:!0,placeholder:m.placeholder,disabled:d||t,type:"text",margin:"dense",error:!!n?.milestones?.[i]?.name,helperText:n?.milestones?.[i]?.name?.message??m.helperText})})]}),i!==0&&!t&&e(h,{item:!0,children:e(f,{label:"Remove Milestone",startIcon:e(F,{}),onClick:()=>T(i),disabled:t})})]}),l("div",{className:r.section,children:[e(o,{variant:"subtitle2",children:p.name}),e(o,{variant:"caption",children:p.description}),e(u,{name:`milestonesStep.milestones.${i}.description`,control:s,defaultValue:"",render:({field:a})=>e(x,{...a,FormHelperTextProps:{className:r.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:p.placeholder,disabled:d||t,type:"text",margin:"dense",error:!!n?.milestones?.[i]?.description,helperText:n?.milestones?.[i]?.description?.message})})]}),l("div",{className:r.section,children:[e(o,{variant:"subtitle2",children:c.name}),e(o,{variant:"caption",children:c.description}),e("div",{className:r.selectContainer,children:e(u,{name:`milestonesStep.milestones.${i}.passRate`,control:s,defaultValue:"",render:({field:a})=>e(x,{...a,FormHelperTextProps:{className:r.helperText},variant:"outlined",fullWidth:!0,placeholder:c.placeholder,disabled:d||t,type:"number",margin:"dense",error:!!n?.milestones?.[i]?.passRate,helperText:n?.milestones?.[i]?.passRate?.message??void 0})})})]})]},N.id)),e(f,{label:"Add Milestone",onClick:()=>b(),disabled:t})]})};export{B as CampaignMilestonesStep};
|
|
2
2
|
//# sourceMappingURL=CampaignMilestonesStep.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as t,jsx as r}from"react/jsx-runtime";import{Box as i,Typography as C}from"@material-ui/core";import{get as x}from"lodash";import{useCallback as l}from"react";import{useFormContext as g,useFieldArray as v}from"react-hook-form";import{CheckSelection as S}from"../../CheckSelection/CheckSelection.esm.js";import{CheckPreview as u}from"../../CheckSelection/CheckPreview.esm.js";import{CheckPreviewProvider as w}from"../../CheckSelection/CheckPreviewContext.esm.js";import{FormFieldLabel as p}from"../../FormFieldLabel/FormFieldLabel.esm.js";const y=()=>{const{control:s,formState:{errors:d},watch:h}=g(),{append:c,remove:m}=v({control:s,name:"tracksStep.checks"}),n=x(d,"tracksStep.checks"),o=h("tracksStep.checks").map(e=>e.id),k=l(e=>{e&&!o.includes(e.id)&&c({id:e.id,name:e.name??"",description:e.description??""})},[c,o]),f=l(e=>{const a=o.indexOf(e);a>-1&&m(a)},[m,o]);return t(i,{children:[r(C,{variant:"body2",children:"Select relevant checks for your campaign below."}),r(w,{children:t(i,{display:"flex",alignItems:"top",gridGap:16,marginTop:1,maxHeight:"75vh",minHeight:300,children:[t(i,{flex:1,children:[r(p,{title:"Checks"}),r(S,{currentSectionCheckIds:o,addCheckToSelection:k,removeCheck:f,error:!!n,helperText:n?.message})]}),t(i,{flex:1,children:[r(p,{title:"Check Preview"}),r(u,{})]})]})})]})};export{y as CampaignTrackStepNew};
|
|
2
|
+
//# sourceMappingURL=CampaignTrackStepNew.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{zodResolver as
|
|
1
|
+
import{zodResolver as s}from"@hookform/resolvers/zod";import{useMemo as n}from"react";import{useForm as u}from"react-hook-form";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as f}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetChecksMap as c}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{DEFAULT_FORM_VALUES as g}from"../utils/campaignFormUtils.esm.js";import{campaignFormSchema as l}from"../utils/validation.esm.js";import{mapCampaignToFormValues as C,mapCampaignFormDataToCampaignInput as d}from"./utils.esm.js";const F=(r,o)=>{const a=n(()=>o?C(o):g,[o]),t=u({defaultValues:a,mode:"onChange",resolver:s(l)}),{showModal:e}=f(),{checksMap:i}=c();return{formMethods:t,onSubmit:async m=>{if(!await e({title:"Save Campaign",message:`Are you sure you want to save campaign: ${m.detailsStep.name}?`,error:!1}))return;const p=d(m,o,i);r(p)}}};export{F as useCampaignForm};
|
|
2
2
|
//# sourceMappingURL=useCampaignForm.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{v4 as
|
|
1
|
+
import{v4 as S}from"uuid";import{mapInputFilterToFormFilters as d,mapCatalogFilterToFormKeyValueFilters as u}from"../../Filter/utils.esm.js";import"../../Filter/FilterComponent.esm.js";import{mapTrackFormToInput as h}from"../../TrackForm/utils/useTrackForm.esm.js";const D=({name:l,ownerEntityRef:r,description:p,targetCompletionDate:o,supportChannel:a,milestones:s,startDate:i,track:t})=>({detailsStep:{name:l,description:p,ownerEntityRef:r,supportChannel:a,startDate:i,targetCompletionDate:o,draft:t.draft??!1},tracksStep:{checks:t?.levels?.[0].checks.map(e=>({id:e.id,name:e.name??e.id,description:e.description}))},filtersStep:{filter:d(t.filter),keyValueFilter:u(t.filter),excludeFilter:d(t.exclude),excludeKeyValueFilter:u(t.exclude)},milestonesStep:{milestones:s.map(e=>({id:Number(e.id),name:e.name,description:e.description,passRate:e.targetPercent.toString()}))}}),x=(l,r,p)=>{const{tracksStep:{checks:o},detailsStep:{name:a,description:s,ownerEntityRef:i,supportChannel:t,startDate:e,targetCompletionDate:m,draft:f},filtersStep:n,milestonesStep:{milestones:F}}=l,c=h({detailsStep:{name:`${a}`,description:`The checks for the ${a} campaign.`,ownerEntityRef:i,draft:f},levelsStep:{levels:[{name:"Level 1",checks:o,description:""}]},filtersStep:{filter:n.filter,keyValueFilter:n.keyValueFilter,excludeFilter:n.excludeFilter,excludeKeyValueFilter:n.excludeKeyValueFilter}},p??{},r?.track);return{id:r?.id??S(),track:{...c,type:"campaign"},name:a,description:s,ownerEntityRef:i,supportChannel:t,startDate:e,targetCompletionDate:m,milestones:F.map(({id:k,name:g,description:y,passRate:C})=>({id:k,trackId:c.id,name:g,description:y,targetPercent:parseInt(C,10),targetCompletionDate:m}))}};export{x as mapCampaignFormDataToCampaignInput,D as mapCampaignToFormValues};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{emptyFilters as e,emptyKeyValueFilters as t}from"../../Filter/types.esm.js";import{CAMPAIGN_NAME_MAX_LENGTH as a,MILESTONE_NAME_MAX_LENGTH as i}from"./validation.esm.js";const n={detailsStep:{name:"",description:"",ownerEntityRef:"",supportChannel:"",startDate:null,targetCompletionDate:null},tracksStep:{checks:[]},filtersStep:{filter:e(),keyValueFilter:t(),excludeFilter:e(),excludeKeyValueFilter:t()},milestonesStep:{milestones:[{name:"",description:"",passRate:"0"}]}},l={details:{name:{name:"Campaign name",helperText:`Max ${a} characters`,placeholder:"Example: Check for latest version of javascript and Readme files"},description:{name:"Campaign description",placeholder:"Example: Check for the latest versions of JavaScript and README files to meet this quarter's quality standards."},owner:{name:"Campaign owner",description:"Add a team as the owner of this Campaign."},support:{name:"Support channel (Optional)",description:"Set up a Slack channel for notifications.",placeholder:"Channel name"},startingDate:{name:"Starting date",placeholder:"Starting date"},endingDate:{name:"Ending date",placeholder:"Ending date"}},milestones:{name:{name:"Milestone name",helperText:`Max ${i} characters`,placeholder:"Example: 80% pass rate"},description:{name:"Milestone description",description:"Provide a detailed description of this milestone, outlining its objectives.",placeholder:"Example: The track in my campaign expects a pass rate of 80% or above"},passrate:{name:"Milestone pass rate",description:"Enter the pass rate that your tracks have to meet.",placeholder:"Example: 80%"}},filter:{description:`Use the filters below to narrow the scope of the Campaign. Only Entities that match the selected include and exclude filters will be monitored. Exclude filters must be used with with an include filter.
|
|
1
|
+
import{emptyFilters as e,emptyKeyValueFilters as t}from"../../Filter/types.esm.js";import{CAMPAIGN_NAME_MAX_LENGTH as a,MILESTONE_NAME_MAX_LENGTH as i}from"./validation.esm.js";const n={detailsStep:{name:"",description:"",ownerEntityRef:"",supportChannel:"",startDate:null,targetCompletionDate:null,draft:!1},tracksStep:{checks:[]},filtersStep:{filter:e(),keyValueFilter:t(),excludeFilter:e(),excludeKeyValueFilter:t()},milestonesStep:{milestones:[{name:"",description:"",passRate:"0"}]}},l={details:{name:{name:"Campaign name",helperText:`Max ${a} characters`,placeholder:"Example: Check for latest version of javascript and Readme files"},description:{name:"Campaign description",placeholder:"Example: Check for the latest versions of JavaScript and README files to meet this quarter's quality standards."},owner:{name:"Campaign owner",description:"Add a team as the owner of this Campaign."},support:{name:"Support channel (Optional)",description:"Set up a Slack channel for notifications.",placeholder:"Channel name"},startingDate:{name:"Starting date",placeholder:"Starting date"},endingDate:{name:"Ending date",placeholder:"Ending date"}},milestones:{name:{name:"Milestone name",helperText:`Max ${i} characters`,placeholder:"Example: 80% pass rate"},description:{name:"Milestone description",description:"Provide a detailed description of this milestone, outlining its objectives.",placeholder:"Example: The track in my campaign expects a pass rate of 80% or above"},passrate:{name:"Milestone pass rate",description:"Enter the pass rate that your tracks have to meet.",placeholder:"Example: 80%"}},filter:{description:`Use the filters below to narrow the scope of the Campaign. Only Entities that match the selected include and exclude filters will be monitored. Exclude filters must be used with with an include filter.
|
|
2
2
|
For example, selecting an include filter of 'Kind' as 'Component' and an exclude filter of 'Type' as 'Service' will select all entities with kind Component where type is NOT Service.`}};export{l as CAMPAIGN_FIELDS,n as DEFAULT_FORM_VALUES};
|
|
3
3
|
//# sourceMappingURL=campaignFormUtils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TrackCheckSchema as o,CampaignDetailsSchema as
|
|
1
|
+
import{TrackCheckSchema as o,CampaignDetailsSchema as p}from"@spotify/backstage-plugin-soundcheck-common";import{z as t}from"zod";import{CHECK_IS_REQUIRED_MSG as S,FIELD_IS_REQUIRED_MSG as a,formFiltersSchema as E}from"../../../utils/validation.esm.js";const r=0,i=100,_=100,s=100,c="Ending date must come after the Starting Date",l=t.strictObject({checks:t.array(o.extend({key:t.string().optional()})).min(1,S)}),g=t.strictObject({id:t.number().optional(),name:t.string().min(1,a).max(s,`Input must be less than ${s} characters`),description:t.string().min(1,a),passRate:t.coerce.number().min(r,`Minimum pass rate is ${r}%`).max(i,`Maximum pass rate is ${i}%`)}),D=t.strictObject({milestones:t.array(g).min(1,a)}),m=t.coerce.string().nullable().refine(e=>e!==null,{message:a}),M=t.strictObject({startDate:m,targetCompletionDate:m}),A=t.strictObject({draft:t.boolean().optional()}),T=({startDate:e,targetCompletionDate:n})=>e&&n?new Date(e)<new Date(n):!0,b=p.merge(M).merge(A),h=e=>e.refine(T,{message:c,path:["targetCompletionDate"]}),I=t.strictObject({detailsStep:h(b),tracksStep:l,filtersStep:E,milestonesStep:D});export{_ as CAMPAIGN_NAME_MAX_LENGTH,c as END_AFTER_START_DATE_MSG,i as MILESTONE_MAX_PASS_RATE,r as MILESTONE_MIN_PASS_RATE,s as MILESTONE_NAME_MAX_LENGTH,m as campaignDateTimeSchema,I as campaignFormSchema};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsx as i,jsxs as a}from"react/jsx-runtime";import{Content as S}from"@backstage/core-components";import{useRouteRef as U}from"@backstage/core-plugin-api";import{EntityRefLink as A}from"@backstage/plugin-catalog-react";import{usePermission as b}from"@backstage/plugin-permission-react";import{makeStyles as V,Button as W,Paper as q,Grid as s,Typography as T,Box as J}from"@material-ui/core";import{soundcheckCampaignReadPermission as K,soundcheckCampaignUpdatePermission as Q}from"@spotify/backstage-plugin-soundcheck-common";import{DateTime as x}from"luxon";import{useMemo as g}from"react";import{useParams as X,useNavigate as Y}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as Z}from"../../hooks/campaigns/useGetCampaigns.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCheckStatuses as _}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useCheckStatusHistories as $}from"../../hooks/aggregations/useCheckStatusHistories.esm.js";import{useSearchParam as f}from"../../hooks/useSearchParam.esm.js";import{campaignEditRouteRef as ee}from"../../routes.esm.js";import{CheckCard as ie}from"../CheckCard/CheckCard.esm.js";import{LoadingIndicator as te}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as re}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as oe}from"../SoundcheckHeader/useHeader.esm.js";import{SoundcheckMarkdownContent as ne}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"react-markdown";import"rehype-raw";import"remark-gfm";import{FilterBar as ae}from"../TrackPage/FilterBar/FilterBar.esm.js";import{toFilter as se}from"../TrackPage/FilterBar/util.esm.js";import{TrackEntitiesTable as me}from"../TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js";import{CampaignStatusHistoryTile as ce}from"./CampaignStatusHistoryTile.esm.js";import{CampaignStatusTile as de}from"./CampaignStatusTile.esm.js";import{DaysRemainingTile as pe}from"./DaysRemainingTile.esm.js";const le=V(e=>({root:{height:"100%",background:e.palette.background.default},header:{backgroundColor:e.palette.background.paper,borderRadius:0,marginBottom:e.spacing(2),paddingLeft:e.spacing(1),borderLeft:"none",borderRight:"none"},progressContainer:{display:"flex",marginBottom:e.spacing(3)},campaignContainerContent:{paddingTop:e.spacing(1),paddingBottom:e.spacing(1),backgroundColor:e.palette.background.paper},editButton:{marginLeft:"auto"},checksContainer:{},entitiesContainer:{marginTop:e.spacing(3)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},content:{paddingTop:0},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}},sectionTitle:{paddingBottom:e.spacing(1)}})),ge=()=>{const e=le(),[m,I]=f("owners"),[c,L]=f("lifecycles"),[d,B]=f("types"),[p,D]=f("systems"),l=g(()=>se({lifecycles:c,owners:m,types:d,systems:p}),[c,m,d,p]),{campaignId:n}=X(),{data:E,isLoading:u}=Z({ids:[n],first:1}),o=E?.edges?.[0]?.node,t=o?.track,y=t?.levels?.[0],{loading:P,allowed:M}=b({permission:K,resourceRef:n}),{loading:k,allowed:C}=b({permission:Q,resourceRef:n}),w=o?x.fromISO(o.startDate):void 0,z=w?Math.max(Math.ceil(x.now().diff(w,"days").days),1):void 0,R=Array.from(new Set(t?.levels.flatMap(r=>r.checks).map(r=>r.id)??[])),{data:F}=_({trackId:t?.id,checkIds:R,filter:l},!!t),{data:H}=$({trackId:t?.id,checkIds:R,numberOfDays:z??30,filter:l},!!t),v=Y(),N=U(ee),O=g(()=>t?.ownerEntityRef?i(A,{color:"inherit",entityRef:t.ownerEntityRef,className:e.ownerLink}):null,[t?.ownerEntityRef,e.ownerLink]),G=g(()=>!k&&C&&t?.isEditable?i(W,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{v(N({campaignId:n}))},children:"Edit Campaign"}):null,[C,e.editButton,N,k,v,t,n]),j=g(()=>t?.description?i(ne,{className:e.headerDescription,content:t.description}):null,[e.headerDescription,t?.description]);return oe({title:t?.name,description:j,customSubtitle:O,sectionRight:G}),a("div",{children:[i(re,{entityName:"track",entityId:n,showNotFound:!u&&!o,showCannotView:!P&&!M}),u&&i(te,{}),t&&a("div",{className:e.root,children:[i(q,{elevation:1,className:e.header,children:i(S,{className:e.campaignContainerContent,children:i(ae,{track:t,owners:m,setOwners:I,lifecycles:c,setLifecycles:L,types:d,setTypes:B,systems:p,setSystems:D})})}),a(S,{className:e.content,children:[i("div",{className:e.progressContainer,children:a(s,{container:!0,spacing:2,children:[i(s,{item:!0,xs:2,children:i(pe,{campaign:o})}),i(s,{item:!0,xs:4,children:i(de,{campaign:o,filter:l})}),i(s,{item:!0,xs:6,children:i(ce,{campaign:o,filter:l})})]})}),a("div",{className:e.checksContainer,children:[i(T,{variant:"h3",className:e.sectionTitle,children:"Checks"}),y&&i(J,{className:e.content,children:i(s,{container:!0,spacing:1,children:y.checks.map(r=>i(s,{item:!0,xs:12,sm:6,md:4,children:i(ie,{track:t,check:r,status:F?.find(h=>h.id===r.id),history:H?.find(h=>h.id===r.id)})},r.id))})}),t&&a("div",{className:e.entitiesContainer,children:[i(T,{variant:"h3",className:e.sectionTitle,children:"Entities"}),i(me,{track:t,initialPageSize:10,lifecycles:c,owners:m,types:d,systems:p})]})]})]})]})]})};export{ge as CampaignInsightsPage};
|
|
2
2
|
//# sourceMappingURL=CampaignInsightsPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useTheme as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{useTheme as l,Paper as f,Box as h}from"@material-ui/core";import{makeStyles as u}from"@material-ui/core/styles";import{DateTime as m}from"luxon";import{useMemo as g}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatusHistory as y}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"react-router-dom";import{AreaChart as x}from"../AreaChart/AreaChart.esm.js";import{LineChartPlaceholder as S}from"../Charts/LineChart/LineChartPlaceholder.esm.js";const C=u(t=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${t.palette.divider}`,height:"100%",width:"100%"},title:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${t.typography.h5.fontSize}px`,cursor:"default"},content:{padding:t.spacing(1,2,1,0),width:"100%",height:"100%"}}));function H({campaign:t,filter:p}){const n=l(),a=C(),c=m.fromISO(t.startDate),d=Math.max(Math.ceil(m.now().diff(c,"days").days),1),{data:r}=y({trackId:t.track.id,filter:p,numberOfDays:d},!!t),e=r?.certificationStatusHistory.numberOfEntities??0,o=g(()=>e>0?r?.certificationStatusHistory.history.map(s=>({date:s.date,Passed:s.statusByLevel[0].passed/e*100})):[],[e,r]);return i(f,{className:a.card,children:i(h,{className:a.content,children:o?.length?i(x,{data:o,categories:["Passed"],categoryColors:{Passed:n.palette.success.main},index:"date",minValue:0,maxValue:100,showLegend:!1}):i(S,{height:200,text:e>0?"No Historical Data":"No Applicable Entities"})})})}export{H as CampaignStatusHistoryTile};
|
|
2
2
|
//# sourceMappingURL=CampaignStatusHistoryTile.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useTheme as
|
|
1
|
+
import{jsx as t,jsxs as s}from"react/jsx-runtime";import{useTheme as C,Paper as v,Box as l,Grid as b,Typography as g}from"@material-ui/core";import{makeStyles as I}from"@material-ui/core/styles";import k from"@material-ui/icons/TrendingDown";import B from"@material-ui/icons/TrendingFlat";import R from"@material-ui/icons/TrendingUp";import{DateTime as N}from"luxon";import{useMemo as T}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as w}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as L}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"react-router-dom";import{compactNumberFormatter as f}from"../../utils/formatters.esm.js";import{CategoryBar as M}from"../CategoryBar/CategoryBar.esm.js";import{LoadingIndicator as $}from"../LoadingIndicator/LoadingIndicator.esm.js";const F=I(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,height:"100%"},content:{padding:e.spacing(1),display:"flex",margin:e.spacing(1),gap:e.spacing(1)},item:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},legendDash:{width:e.spacing(2),height:e.spacing(1),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,marginRight:e.spacing(2)}}));function x({label:e,value:n,total:a,color:m,valueFormatter:c}){const p=F();return s(b,{item:!0,xs:12,className:p.item,children:[s(l,{className:p.category,children:[t("span",{className:p.legendDash,style:{backgroundColor:m}}),t(g,{children:e})]}),a&&s(g,{children:[c(n)," of ",c(a)," (",Math.round(n/a*100),"%)"]})]})}function j({campaign:e,filter:n}){const a=C(),m=F(),{data:c,isLoading:p}=w({trackId:e.track.id,filter:n},!0),r=c?.certificationStatus.statusByLevel[0],D=Math.max(Math.ceil(N.now().diff(N.fromISO(e.startDate),"days").days),1),{data:u}=L({trackId:e.track.id,filter:n,numberOfDays:D},!!e),i=c?.certificationStatus.numberOfEntities??0,d=T(()=>{if(i===void 0||u===void 0||r===void 0)return;const y=(u.certificationStatusHistory.history[0]?.statusByLevel[0].passed??0)/i*100;return r.passed/i*100-y},[u,r,i]);let h=B,o;return d&&(o=`${d.toFixed(0)}% since campaign start`,d<=-1?(h=k,o=`-${o}`):d>=1&&(h=R,o=`+${o}`)),p?t(v,{className:m.card,children:t($,{})}):t(v,{className:m.card,children:r?t(l,{className:m.content,children:s(l,{width:"100%",children:[t(M,{data:r,valueFormatter:f,categories:["passed","failed","notReported"],categoryFormatter:y=>y.replace(/\b\w/g,S=>S.toUpperCase()),colors:[a.palette.success.main,a.palette.error.main,a.palette.text.disabled]}),t(l,{paddingTop:"12px",children:s(b,{spacing:2,children:[t(x,{label:"Passing",value:r.passed,total:i,color:a.palette.success.main,valueFormatter:f}),t(x,{label:"Failing",value:r.failed,total:i,color:a.palette.error.main,valueFormatter:f}),t(x,{label:"Not Reported",value:r.notReported,total:i,color:a.palette.text.disabled,valueFormatter:f}),!!d&&s(l,{display:"flex",alignItems:"center",paddingTop:"12px",children:[t(h,{}),t(g,{style:{marginLeft:a.spacing(1)},children:o})]})]})})]})}):t(l,{margin:"auto",children:t(g,{variant:"subtitle1",children:"No Data"})})})}export{j as CampaignStatusTile};
|
|
2
2
|
//# sourceMappingURL=CampaignStatusTile.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Paper as
|
|
1
|
+
import{jsxs as n,jsx as a}from"react/jsx-runtime";import{Paper as c,Typography as i,Divider as m}from"@material-ui/core";import{makeStyles as p}from"@material-ui/core/styles";import{DateTime as r}from"luxon";const h=p(t=>({root:{display:"flex",flexDirection:"column",alignItems:"center",overflow:"hidden",width:"100%",height:"100%",padding:0},textWrapper:{display:"flex",flexDirection:"column",flexGrow:1,alignItems:"center",justifyContent:"center",padding:t.spacing(1)},daysRemaining:{textAlign:"center",marginBottom:t.spacing(.5)},daysRemainingText:{textAlign:"center",fontWeight:"bold"},divider:{width:"100%"},dateContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",width:"100%",padding:t.spacing(1),flexGrow:0},dateSection:{width:"100%",paddingLeft:t.spacing(.5)},dateLabel:{fontSize:t.typography.caption.fontSize,color:t.palette.text.secondary},dateValue:{fontSize:t.typography.subtitle2.fontSize,color:t.palette.text.primary},verticalDivider:{height:"100%"}}));function g({campaign:t}){const e=h(),d=r.fromISO(t.startDate),o=r.fromISO(t.targetCompletionDate),s=r.now(),l=Math.max(Math.ceil(o.diff(s,"days").days),0);return n(c,{className:e.root,children:[n("div",{className:e.textWrapper,children:[a(i,{variant:"h1",className:e.daysRemaining,children:l}),a(i,{variant:"subtitle2",className:e.daysRemainingText,children:l===1?"DAY REMAINING":"DAYS REMAINING"})]}),a(m,{className:e.divider}),n("div",{className:e.dateContainer,children:[n("div",{className:e.dateSection,children:[a(i,{className:e.dateLabel,children:"START"}),a(i,{className:e.dateValue,children:d.toLocaleString({month:"short",day:"numeric"}).toLocaleUpperCase()})]}),n("div",{className:`${e.dateSection}`,children:[a(i,{className:e.dateLabel,children:"END"}),a(i,{className:e.dateValue,children:o.toLocaleString({month:"short",day:"numeric"}).toLocaleUpperCase()})]})]})]})}export{g as DaysRemainingTile};
|
|
2
2
|
//# sourceMappingURL=DaysRemainingTile.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as m}from"@backstage/core-plugin-api";import{usePermission as n}from"@backstage/plugin-permission-react";import{Button as s}from"@material-ui/core";import{soundcheckCampaignCreatePermission as p}from"@spotify/backstage-plugin-soundcheck-common";import
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{useRouteRef as m}from"@backstage/core-plugin-api";import{usePermission as n}from"@backstage/plugin-permission-react";import{Button as s}from"@material-ui/core";import{soundcheckCampaignCreatePermission as p}from"@spotify/backstage-plugin-soundcheck-common";import{useNavigate as c}from"react-router-dom";import l from"../../images/no-results.svg";import{campaignCreateRouteRef as d}from"../../routes.esm.js";import{EmptyState as g}from"../EmptyState/EmptyState.esm.js";var a=(t=>(t.title="Create a campaign",t.description="A soundcheck campaign allows you to define a tech health goal, assign it to a team and monitor progress.",t.callToAction="Get started",t))(a||{});const f=()=>{const{loading:t,allowed:e}=n({permission:p}),i=c(),r=m(d);return o(g,{title:"Create a campaign",description:"A soundcheck campaign allows you to define a tech health goal, assign it to a team and monitor progress.",imgSrc:l,action:!t&&o(s,{disabled:!e,variant:"contained",color:"primary",onClick:()=>i(r()),children:"Get started"})})};export{a as CampaignEmptyState,f as EmptyCampaignState};
|
|
2
2
|
//# sourceMappingURL=CampaignEmptyState.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{jsx as a,jsxs as S}from"react/jsx-runtime";import{useRouteRef as $,useApi as z,featureFlagsApiRef as J}from"@backstage/core-plugin-api";import{usePermission as K}from"@backstage/plugin-permission-react";import{makeStyles as Q,Grid as n,Button as U}from"@material-ui/core";import{soundcheckCampaignCreatePermission as V}from"@spotify/backstage-plugin-soundcheck-common";import{useState as t,useEffect as y}from"react";import{useNavigate as X}from"react-router-dom";import Y from"react-use/lib/useDebounce";import{useGetCampaignOwners as _}from"../../../hooks/campaigns/useGetCampaignOwners.esm.js";import{useGetCampaigns as ee}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import{campaignCreateRouteRef as ae}from"../../../routes.esm.js";import{FilterDefault as c}from"../../../utils/filters.esm.js";import{EmptyCampaignState as re}from"../CampaignEmptyState.esm.js";import{EmptyState as ie}from"../../EmptyState/EmptyState.esm.js";import{Pagination as te}from"../../Pagination/Pagination.esm.js";import{SearchFilters as ne}from"../../SearchFilters/SearchFilters.esm.js";import{CampaignsOverviewSkeleton as se}from"./CampaignsOverviewSkeleton.esm.js";import{CampaignSummaryCard as oe}from"./CampaignSummaryCard.esm.js";import me from"./useArchiveConfirmationModal.esm.js";var b=(e=>(e.title="No campaigns found",e.description="No campaigns matched your search. Consider changing search term and filters.",e))(b||{});const le=Q(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:e.spacing(1.5),paddingBottom:e.spacing(1.5)}})),ge=({campaignsPerPage:e,currentCursor:w})=>{const s=le(),[d,u]=t(w),[m,B]=t(""),[h,R]=t(""),[f,A]=t(c.Alpha),[C,I]=t(c.Owner),[P,k]=t(c.Status),{data:F,isLoading:O}=_();Y(()=>{R(m)},500,[m]);const{loading:L,allowed:j}=K({permission:V}),{data:i,isLoading:l}=ee({ids:void 0,first:e,after:d,orderAlphabetical:f,searchByOwner:C,searchByName:h,searchByStatus:P}),E=X(),G=$(ae),T=()=>E(G()),[g,D]=t(i),p=g?.edges.map(r=>r.node),[v,N]=t([]);y(()=>{u(void 0),N([])},[h]);const x=z(J),W=!x.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-campaigns")||x.isActive("soundcheck-enable-campaigns"),H=!j||!W,q=r=>{A(r.target.value)},M=r=>{I(r.target.value)},Z=r=>{k(r.target.value)};if(y(()=>{i&&D(()=>({totalCount:i.totalCount,edges:i.edges,pageInfo:{startCursor:i.pageInfo.startCursor,endCursor:i.pageInfo.endCursor,hasNextPage:i?.pageInfo.hasNextPage??!1,hasPreviousPage:i?.pageInfo.hasPreviousPage??!1}}))},[i]),!l&&!p)return a(re,{});let o;return l?o=a(se,{}):p?.length?o=p.map(r=>a(n,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result",children:a(me,{children:a(oe,{campaign:r})})},r.id)):o=a(n,{xs:12,item:!0,role:"listitem","aria-label":"result",children:a(ie,{title:"No campaigns found",description:"No campaigns matched your search. Consider changing search term and filters."})}),S(n,{container:!0,direction:"row",className:s.container,children:[S(n,{container:!0,className:s.header,children:[a(ne,{searchPlaceholder:"Search Available Campaigns",isLoading:l||O,searchTerm:m,setSearchTerm:B,filterAlpha:f,handleAlphabeticalFilterChange:q,filterOwner:C,handleOwnerFilterChange:M,filterStatus:P,handleStatusFilterChange:Z,owners:F}),a(n,{item:!0,xs:2,className:s.headerButtons,children:!L&&a(U,{disabled:H,variant:"contained",color:"primary",onClick:T,className:s.createButton,children:"Create Campaign"})})]}),a(n,{container:!0,spacing:4,role:"list","aria-label":"campaigns",children:o}),(g?.pageInfo.hasNextPage||v?.length>0)&&a(n,{item:!0,xs:12,children:a(te,{response:g,listingsPerPage:e,cursor:d,setCursor:u,prevCursors:v,setPrevCursors:N,labelPerPageDropdown:"Campaigns Per Page:",urlRoute:"campaigns?campaignsPerPage="})})]})};export{ge as CampaignListPage,b as CampaignNoResults};
|
|
2
2
|
//# sourceMappingURL=CampaignListPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{EntityRefLink as
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{EntityRefLink as s}from"@backstage/plugin-catalog-react";import{makeStyles as o,List as l,Typography as c,ListItem as n,Tooltip as m,ListItemIcon as d,ListItemText as g,Badge as r}from"@material-ui/core";import p from"@material-ui/icons/Group";const h=o(i=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:i.spacing(2)},listItem:{padding:0},listItemText:{margin:0},campaignDetails:{display:"flex",flexDirection:"column",gap:i.spacing(1)},badge:{"& span":{position:"relative",transform:"none",transformOrigin:"unset",backgroundColor:i.palette.action.disabledBackground}},iconContainer:{minWidth:"auto",paddingRight:i.spacing(1)},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),f=({campaign:i})=>{const t=h();return a(l,{dense:!0,disablePadding:!0,className:t.cardSection,children:[e(c,{variant:"overline",color:"textSecondary",children:"Campaign Details"}),a("div",{className:t.campaignDetails,children:[i.ownerEntityRef&&a(n,{disableGutters:!0,className:t.listItem,children:[e(m,{title:"Owner",children:e(d,{className:t.iconContainer,children:e(p,{color:"inherit",fontSize:"small"})})}),e(g,{className:t.listItemText,primary:e(s,{entityRef:i.ownerEntityRef,className:t.ownerLink,hideIcon:!0})})]}),i.archived&&e(n,{disableGutters:!0,className:t.listItem,children:e(r,{badgeContent:"Archived",className:t.badge})}),i.track.draft&&e(n,{disableGutters:!0,className:t.listItem,children:e(r,{badgeContent:"Draft",className:t.badge})})]})]})};export{f as CampaignMetadata};
|
|
2
2
|
//# sourceMappingURL=CampaignMetadata.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{jsx as p}from"react/jsx-runtime";import{useRouteRef as c}from"@backstage/core-plugin-api";import{usePermission as l}from"@backstage/plugin-permission-react";import{soundcheckCampaignUpdatePermission as P,soundcheckCampaignDeletePermission as x}from"@spotify/backstage-plugin-soundcheck-common";import{useCallback as b}from"react";import{useNavigate as I}from"react-router-dom";import{v4 as L}from"uuid";import{BadgeVariant as S}from"../../../graphql/generated/index.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useArchiveCampaign as T}from"../../../hooks/campaigns/useArchiveCampaign.esm.js";import{useDeleteCampaign as U}from"../../../hooks/campaigns/useDeleteCampaign.esm.js";import{useCreateTrack as N}from"../../../hooks/tracks/useCreateTrack.esm.js";import{useConfirmationModal as V}from"../../../hooks/useConfirmationModal.esm.js";import{campaignDetailsRouteRef as $,campaignEditRouteRef as j}from"../../../routes.esm.js";import{SummaryCard as B}from"../../SummaryCard/SummaryCard.esm.js";import{CampaignMetadata as q}from"./CampaignMetadata.esm.js";import{useArchiveConfirmationModal as z}from"./useArchiveConfirmationModal.esm.js";const F=({campaign:a})=>{const{id:u,name:f,description:g,ownerEntityRef:v,archived:h}=a,y=c($),C=c(j),r=I(),t=a.archived,{showModal:m}=V(),{showArchiveModal:w}=z(),{mutate:R}=N(),{mutate:n}=U(),{mutate:k}=T(),{loading:A,allowed:D}=l({permission:P,resourceRef:a.id}),{loading:d,allowed:s}=l({permission:x,resourceRef:a.id}),E=b(async()=>{await m({title:"Delete Campaign",message:`Are you sure you want to delete campaign ${a.name}?`})&&n(a.id)},[m,n,a.id,a.name]),M=()=>{const{track:e}=a,o={id:L(),ownerEntityRef:e.ownerEntityRef,description:e.description??"",name:e.name,documentationURL:e.documentationURL,type:"standard",levels:e.levels.map(i=>({checks:i.checks,description:i.description,name:i.name,ordinal:i.ordinal})),filter:e.filter??void 0,exclude:e.exclude??void 0,badgeType:e.badge?.variant===S.Status?"status":"medal",draft:e.draft??!1};R(o)};return p(B,{title:f??u,description:g,viewIsPrimaryAction:!0,children:(v||h)&&p(q,{campaign:a}),handleView:()=>r(y({campaignId:a.id})),handleEdit:!A&&D&&!t?()=>r(C({campaignId:a.id})):void 0,handleDelete:!d&&s?E:void 0,handleArchive:!d&&s&&!t?async()=>{const{saveTrack:e,confirmed:o}=await w({title:"Archive Campaign",message:`Are you sure you want to archive campaign ${a.name}?`});o&&(e&&M(),k(a.id))}:void 0})};export{F as CampaignSummaryCard};
|
|
2
2
|
//# sourceMappingURL=CampaignSummaryCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Grid as t}from"@material-ui/core";import{Skeleton as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{Grid as t}from"@material-ui/core";import{Skeleton as r}from"@material-ui/lab";const o=()=>e(t,{item:!0,container:!0,"data-testid":"campaigns-skeleton",children:Array.from({length:6},(m,i)=>e(t,{xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem",children:e(r,{variant:"rect",height:385})},`loading-${i}`))});export{o as CampaignsOverviewSkeleton};
|
|
2
2
|
//# sourceMappingURL=CampaignsOverviewSkeleton.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{jsxs as t,jsx as a}from"react/jsx-runtime";import{makeStyles as N,Modal as w,Box as u,Typography as d,FormControlLabel as M,Checkbox as j,Button as f}from"@material-ui/core";import{createContext as A,useState as s,useRef as P,useCallback as m,useContext as S}from"react";const L=N(e=>({modalContent:{position:"absolute",display:"flex",flexDirection:"column",gap:e.spacing(1),top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.paper},modalButtons:{display:"flex",justifyContent:"flex-end","& button":{width:"40%",maxWidth:"185px"},padding:e.spacing(2,3),borderTop:`1px solid ${e.palette.divider}`},checkbox:{marginBottom:e.spacing(2)},cancelButton:{color:e.palette.text.primary},modalText:{padding:e.spacing(2,3,0,3)},modalTop:{marginBottom:e.spacing(1)}})),x=A({showArchiveModal:()=>Promise.resolve({confirmed:!1,saveTrack:!1})}),W=e=>{const o=L(),[b,n]=s(!1),[r,g]=s(null),[i,p]=s(!1),l=P(),k=m(({title:c,message:y,error:T})=>(g({title:c,message:y,error:T}),p(!1),n(!0),new Promise(B=>{l.current=B})),[]),v=m(()=>{l.current?.({confirmed:!0,saveTrack:i}),n(!1)},[i]),h=m(()=>{l.current?.({confirmed:!1,saveTrack:i}),n(!1)},[i]),C=c=>{p(c.target.checked)};return t(x.Provider,{value:{showArchiveModal:k},children:[e.children,r&&a(w,{open:b,onClose:h,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description",children:t(u,{className:o.modalContent,children:[t("div",{className:o.modalText,children:[t("div",{className:o.modalTop,children:[a(d,{id:"confirmation-modal-title",variant:"h6",children:r.title}),a(d,{id:"confirmation-modal-description",variant:"body1",children:r.message})]}),t(u,{className:o.checkbox,children:[a(M,{control:a(j,{"data-testid":"save-track-checkbox",checked:i,onChange:C,size:"small"}),label:"Create Track"}),a(d,{id:"confirmation-modal-check-box-description",variant:"subtitle2",color:"textSecondary",children:"Create a track from this campaign if you wish to promote it to a long term health initiative."})]})]}),t("div",{className:o.modalButtons,children:[!r.error&&a(f,{onClick:h,variant:"text","aria-label":"cancel",className:o.cancelButton,children:"Cancel"}),a(f,{color:"primary",onClick:v,variant:"contained","aria-label":"confirm",children:r.error?"Ok":"Confirm"})]})]})})]})},z=()=>S(x);export{W as default,z as useArchiveConfirmationModal};
|
|
2
2
|
//# sourceMappingURL=useArchiveConfirmationModal.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import r
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{useSearchParams as t}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{CampaignFormProvider as e}from"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import{RESULTS_PER_PAGE as a}from"../../utils/filters.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as p}from"../SoundcheckHeader/useHeader.esm.js";import{CampaignListPage as n}from"./CampaignListPage/CampaignListPage.esm.js";import"./CampaignListPage/CampaignTypes.esm.js";const s=()=>{const[o]=t(),m=o.get("campaignsPerPage"),i=m?parseInt(m,10):a;return p(),r(e,{children:r("div",{children:r(n,{campaignsPerPage:i})})})};export{s as CampaignsPage};
|
|
2
2
|
//# sourceMappingURL=CampaignsPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{usePermission as
|
|
1
|
+
import{jsx as i,jsxs as l,Fragment as r}from"react/jsx-runtime";import{usePermission as C}from"@backstage/plugin-permission-react";import{soundcheckCampaignUpdatePermission as h}from"@spotify/backstage-plugin-soundcheck-common";import{useEffect as y}from"react";import{useParams as k}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{useCampaignFormContext as L}from"../../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"../../hooks/useSoundcheckAlert.esm.js";import{useUpdateCampaign as P}from"../../hooks/campaigns/useUpdateCampaign.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as w}from"../../hooks/useNavigateBack.esm.js";import{useGetCampaign as x}from"../../hooks/campaigns/useGetCampaign.esm.js";import{campaignsPageRouteRef as E}from"../../routes.esm.js";import{CampaignForm as U}from"../CampaignForm/CampaignForm.esm.js";import{PageWarningMessage as F}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as I}from"../SoundcheckHeader/useHeader.esm.js";import{Loading as R}from"../TechHealth/Loading/Loading.esm.js";import{EmptyCampaignState as S}from"./CampaignEmptyState.esm.js";const j=()=>{I({title:"Update Campaign",description:"Update your campaign, including schedule, milestones, and other associated details.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/campaigns"});const[n,p]=w(E),{campaignId:s}=k(),{setIsLoading:t}=L(),{mutateAsync:c,isLoading:e}=P(),{data:d,isLoading:m}=x(s??""),o=d?.edges?.[0]?.node,{loading:g,allowed:a}=C({permission:h,resourceRef:o?.id});if(y(()=>t(e),[t,e]),!m&&!o)return i(S,{});const f=async u=>{await c(u,{onSuccess:p})};return l(r,{children:[i(F,{entityId:o?.id,entityName:o?.name??"",showCannotEdit:!g&&!a}),m?i(R,{}):i(r,{children:a&&i(U,{onSave:f,onCancel:n,selectedCampaign:o})})]})};export{j as EditCampaignView};
|
|
2
2
|
//# sourceMappingURL=EditCampaignView.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Typography as w,useTheme as
|
|
1
|
+
import{jsxs as v,jsx as i}from"react/jsx-runtime";import{Typography as w,useTheme as U,Tooltip as M}from"@material-ui/core";import{makeStyles as q,createStyles as A}from"@material-ui/core/styles";import{schemeCategory10 as G}from"d3-scale-chromatic";import x from"lodash";import{memo as W,useRef as H,useState as X,useEffect as J,useMemo as $}from"react";const z=t=>{let n=t;for(;n;){const e=window.getComputedStyle(n).backgroundColor;if(e&&e!=="rgba(0, 0, 0, 0)"&&e!=="transparent")return e;n=n.parentElement}return"transparent"},K=(t,n,e,l,s)=>{if(x.isUndefined(t))return"";if(t===0){for(let r=0;r<n.length;r++)if(n[r]>0)return s?.[e[r]]??l[r]}let c=0;for(let r=0;r<n.length;r++)if(c+=n[r],c>=t)return s?.[e[r]]??l[r];return s?.[e[n.length-1]]??l[n.length-1]},L=(t,n)=>t?t/n*100:0,P=q(t=>A({container:{display:"flex",flexDirection:"column",width:"100%"},barWrapper:{position:"relative",width:"100%"},barContainer:{display:"flex",height:t.spacing(1),overflow:"hidden",borderRadius:4,width:"100%"},barSegment:{height:"100%"},barLabel:{position:"absolute",fontSize:"0.875rem",whiteSpace:"nowrap",transform:"translateX(-50%)"},marker:{position:"absolute",width:6,height:16,top:0,bottom:0,borderRadius:4,transform:"translate(-50%, -25%)"},tooltip:{color:t.palette.text.primary,fontSize:12,borderRadius:t.shape.borderRadius,padding:t.spacing(1)},item:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:t.spacing(.5)},legendDash:{width:t.spacing(2),height:t.spacing(.75),borderRadius:t.spacing(.375),marginRight:t.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,fontSize:"0.875rem",marginRight:t.spacing(2)},value:{fontWeight:t.typography.fontWeightMedium,fontSize:"0.875rem",color:t.palette.text.primary}})),B=W(({data:t,categories:n,valueFormatter:e,type:l,labelPosition:s})=>{const c=P(),r=n.map(d=>t[d]),o=x.sum(r);let p=0,f=0;return v("div",{className:c.barWrapper,children:[r.map((d,S)=>{p+=d;const b=(d>=.1*o||f>=.09*o)&&o-p>=.1*o&&p>=.1*o&&p<.9*o;f=b?0:f+=d;const h=L(p,o),k=l==="percent"?`${Math.round(p/o*100)}%`:e(p);return i("div",{className:c.barLabel,style:{left:`${h}%`,top:s==="top"?"-1.5rem":"1.5rem"},children:b&&i(w,{variant:"caption",children:k})},`item-${S}`)}),i(w,{variant:"caption",style:{position:"absolute",bottom:0,left:0},children:l==="percent"?"0%":e(0)}),i(w,{variant:"caption",style:{position:"absolute",bottom:0,right:0},children:l==="percent"?"100%":e(o)})]})}),O=W(t=>{const n=U(),e=P(),{data:l={},categories:s=[],colors:c=G,categoryColors:r,marker:o,showLabels:p=!1,showTooltip:f=!0,valueFormatter:d=a=>a.toString(),categoryFormatter:S=a=>a,type:b="value",labelPosition:h="top",className:k,...D}=t,N=s.map(a=>l[a]).filter(a=>typeof a=="number"),C=H(null),[E,T]=X("transparent");J(()=>{if(C.current){const a=z(C.current);T(a)}},[C]);const j=$(()=>K(o?.value,N,s,c,r),[o,N,s,c,r]),m=$(()=>x.sum(N),[N]),F=$(()=>{if(!x.isUndefined(o))return o.value<0?0:o.value>m?m:o.value},[o,m]),I=$(()=>L(F,m),[F,m]);return i("div",{ref:C,className:`${k} ${e.container}`,...D,children:v("div",{className:e.barWrapper,children:[p&&h==="top"&&i(B,{data:l,categories:s,valueFormatter:d,type:b,labelPosition:h}),i("div",{className:e.barContainer,children:f?i(M,{title:i("div",{className:e.tooltip,children:s.filter(a=>l[a]>0).map((a,g)=>{const u=l[a],y=r?.[a]??c[g]??"gray";return v("div",{className:e.item,children:[v("div",{className:e.category,children:[i("span",{className:e.legendDash,style:{backgroundColor:y}}),i(w,{variant:"caption",children:S(a)})]}),i("div",{className:e.value,children:v(w,{variant:"caption",children:[d(u)," of ",d(m)," ","(",Math.round(u/m*100),"%)"]})})]},`tooltip-item-${g}`)})}),placement:"top",arrow:!0,classes:{tooltip:e.tooltip},children:i("div",{className:e.barContainer,children:s.map((a,g)=>{const u=l[a],y=r?.[a]??c[g]??"gray",R=u/m*100;return i("div",{className:e.barSegment,style:{backgroundColor:y,width:`${R}%`}},`item-${g}`)})})}):i("div",{className:e.barContainer,children:s.map((a,g)=>{const u=l[a],y=r?.[a]??c[g]??n.palette.text.disabled,R=u/m*100;return i("div",{className:e.barSegment,style:{backgroundColor:y,width:`${R}%`}},`item-${g}`)})})}),o!==void 0&&i(M,{title:o.tooltip||"",arrow:!0,children:i("div",{className:e.marker,style:{left:`${I}%`,backgroundColor:j,border:`1px solid ${E}`,transition:o.showAnimation?"all 0.3s ease-in-out":"none"}})}),p&&h==="bottom"&&i(B,{data:l,categories:s,valueFormatter:d,type:b,labelPosition:h})]})})});export{O as CategoryBar,z as getEffectiveBackgroundColor};
|
|
2
2
|
//# sourceMappingURL=CategoryBar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useEntity as
|
|
1
|
+
import{jsx as i,jsxs as u}from"react/jsx-runtime";import{useEntity as g}from"@backstage/plugin-catalog-react";import{styled as o,Accordion as h,AccordionSummary as b,AccordionDetails as k,makeStyles as y,Box as R}from"@material-ui/core";import x from"@material-ui/icons/ExpandMore";import{useRef as v}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{useCertificationDetailsForTrack as I}from"../../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{AlertPanel as L}from"../AlertPanel/AlertPanel.esm.js";import"../CertificationSidebar/CertificationSidebar.esm.js";import{CertificationSummary as T}from"../CertificationSidebar/CertificationSummary.esm.js";import{CertificationSidebarSkeleton as C}from"../CertificationSidebar/skeletons/CertificationSidebarSkeleton.esm.js";import"@material-ui/lab";import{CertificationLevel as S}from"../CertificationSidebar/CertificationLevel.esm.js";const A=o(h)(({theme:t})=>({margin:"0",border:`1px solid ${t.palette.divider}`,borderRadius:0,"&.Mui-expanded":{borderRadius:0},"&:first-child":{borderTopLeftRadius:0,borderTopRightRadius:0},"&:last-child":{borderBottomLeftRadius:0,borderBottomRightRadius:0},"&:not(:first-child)":{borderTop:`1px solid ${t.palette.divider}`},"&:not(:last-child)":{marginBottom:t.spacing(1)}})),B=o(({...t})=>i(b,{classes:{content:"content",expanded:"expanded"},...t}))(({theme:t})=>({borderRadius:0,paddingTop:0,paddingLeft:0,paddingRight:t.spacing(1),"& > .content":{margin:"0 !important",padding:"0 !important"},"& > .content.expanded":{margin:"0 !important",padding:"0 !important"}})),E=o(k)(()=>({margin:"0 !important",borderRadius:0,padding:0})),d=y(()=>({sidebar:{width:"100%"}})),D=({playlistId:t,trackId:e,checkId:n})=>{const c=d(),{entity:m}=g(),p=v(null),{data:r,isLoading:s,isError:l}=I(m,e);if(l)return i("div",{children:i(R,{padding:2,children:i(L,{severity:"error",title:"Error loading certification"})})});if(s||!e)return i(C,{});if(!r)return null;const f=r.track.type==="campaign";return u(A,{ref:p,defaultExpanded:!0,elevation:0,children:[i(B,{expandIcon:i(x,{}),"aria-controls":"certification-content",id:"certification-summary",children:i(T,{name:r.track.name,badge:r.track.badge,description:r.track.description,documentationUrl:r.track.documentationURL,trackType:r.track.type})}),i(E,{children:i("div",{className:c.sidebar,children:r?.levels.map(a=>i(S,{level:a,checkId:n,trackId:e,playlistId:t,isCampaign:f},a.ordinal))})})]})};export{D as CertificationAccordion,d as useStyles};
|
|
2
2
|
//# sourceMappingURL=CertificationAccordion.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t
|
|
1
|
+
import{jsxs as m,Fragment as s,jsx as t}from"react/jsx-runtime";import{CheckResultSummaryList as d}from"./CheckResultSummaryList.esm.js";import{LevelSummary as l}from"./LevelSummary.esm.js";const o=({level:e,checkId:i,trackId:c,playlistId:r,isCampaign:a})=>m(s,{children:[!a&&t(l,{badge:e.badge,title:e.name,description:e.description}),t(d,{checks:e.checks??[],playlistId:r,trackId:c,checkId:i})]});export{o as CertificationLevel};
|
|
2
2
|
//# sourceMappingURL=CertificationLevel.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useEntity as
|
|
1
|
+
import{jsx as i,jsxs as y}from"react/jsx-runtime";import{stringifyEntityRef as h}from"@backstage/catalog-model";import{useEntity as g}from"@backstage/plugin-catalog-react";import{makeStyles as x,Box as C}from"@material-ui/core";import{ResultState as I}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{useCertificationDetailsForTrack as S}from"../../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"react";import"../../hooks/useSoundcheckAlert.esm.js";import{useExemptCheckIds as b}from"../../hooks/exemptions/useExemptCheckIds.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{AlertPanel as v}from"../AlertPanel/AlertPanel.esm.js";import{CertificationLevel as E}from"./CertificationLevel.esm.js";import{CertificationSummary as L}from"./CertificationSummary.esm.js";import{CertificationSidebarSkeleton as A}from"./skeletons/CertificationSidebarSkeleton.esm.js";import"@material-ui/lab";const R=x(()=>({checks:{padding:0,margin:0,flex:1,listStyle:"none"}})),j=({playlistId:m,trackId:e,checkId:c,showNotApplicable:n,showExempt:p})=>{const{entity:o}=g(),{data:t,isLoading:l,isError:s}=S(o,e),{data:d,isLoading:f}=b(h(o),e);if(s)return i("div",{children:i(C,{padding:2,children:i(v,{severity:"error",title:"Error loading certification"})})});if(l||f||!e)return i(A,{});if(!t)return null;const k=t.track.type==="campaign",u=t.levels.map(r=>({...r,checks:r.checks?.filter(a=>a.result===I.NotApplicable?n:d?.exemptCheckIds.includes(a.id)?p:!0)}));return y("div",{children:[i(L,{name:t.track.name,badge:t.track.badge,description:t.track.description,documentationUrl:t.track.documentationURL,trackType:t.track.type}),u.map(r=>i(E,{level:r,checkId:c,trackId:e,playlistId:m,isCampaign:k},r.ordinal))]})};export{j as CertificationSidebar,R as useStyles};
|
|
2
2
|
//# sourceMappingURL=CertificationSidebar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as n,jsx as t}from"react/jsx-runtime";import{Link as s}from"@backstage/core-components";import{makeStyles as l,Typography as g,Grid as c}from"@material-ui/core";import{CertificationBadge as h}from"../Badges/CertificationBadge.esm.js";import{SoundcheckMarkdownContent as d}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{StatusDetails as f}from"./StatusDetails.esm.js";const r=l(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 u({description:i,documentationUrl:e}){const o=r();return e?n("div",{className:o.description,children:[t(d,{content:i}),t(s,{to:e,children:"Learn more"})]}):t("div",{className:o.description,children:t(d,{content:i})})}const y=({name:i,badge:e,description:o,documentationUrl:p,trackType:m="standard"})=>{const a=r();return n("div",{className:a.root,children:[t(h,{badge:e,trackType:m,size:"large",showTooltip:!0}),n("div",{children:[t(g,{className:a.title,children:i}),n(c,{container:!0,direction:"column",spacing:0,children:[o&&t(c,{item:!0,children:t(u,{description:o,documentationUrl:p})}),t(f,{badge:e})]})]})]})};export{y as CertificationSummary,r as useStyles};
|
|
2
2
|
//# sourceMappingURL=CertificationSummary.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringifyEntityRef as
|
|
1
|
+
import{jsxs as C,jsx as e,Fragment as $}from"react/jsx-runtime";import{stringifyEntityRef as p}from"@backstage/catalog-model";import{useEntity as v}from"@backstage/plugin-catalog-react";import{makeStyles as E,Box as N,Typography as I,Tooltip as R,IconButton as S,CircularProgress as T}from"@material-ui/core";import z from"@material-ui/icons/Refresh";import A from"classnames";import{Link as L}from"react-router-dom";import{ResultState as h}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"react";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetExemption as j}from"../../hooks/exemptions/useGetExemption.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useExecuteCheck as w}from"../../hooks/checks/useExecuteCheck.esm.js";import{CheckIcon as B}from"../CheckIcon/CheckIcon.esm.js";import{RelativeTime as F}from"../RelativeTime/RelativeTime.esm.js";const d=E(t=>({root:{display:"flex",width:"100%",gridTemplateColumns:"auto 1fr auto auto auto auto",gridColumnGap:t.spacing(.5),padding:t.spacing(1),alignItems:"center","&.selected":{backgroundColor:t.palette.action.hover},"&:hover, &:active, &:focus":{backgroundColor:t.palette.action.hover}},checkIcon:{height:20}})),G=({className:t,href:r,name:o,children:c})=>r?e(L,{"aria-label":`select check ${o}`,to:r,className:t,children:c}):e("div",{className:t,children:c}),P=({result:t,name:r,id:o,timestamp:c,isExecutable:l=!1,selected:u=!1,href:f})=>{const s=d(),k=A(s.root,{selected:u}),{entity:a}=v(),{mutateAsync:y,isLoading:n}=w(),{data:m}=j(p(a),o),x=async()=>{if(!(!a||!o))try{await y({checkerId:o,entityRef:p(a),shouldRefreshFacts:!0})}catch{}},g=!a||!o||!l||n||!!m?.exemption||t===h.NotApplicable,b=()=>{const i="Cannot execute check";return a?o?l?n?`${i} - check is already executing.`:m?.exemption?`${i} - entity has been exempted from this check.`:t===h.NotApplicable?`${i} - check is not applicable to entity.`:"Execute Check":`${i} - check is not executable by Soundcheck`:`${i} - no check id.`:`${i} - no entity.`};return C(G,{href:f,className:k,name:r,children:[e(B,{className:s.checkIcon,result:t}),e(N,{flex:1,children:e(I,{variant:"body2",children:r})}),c&&!n?e(F,{timestamp:c}):null,!n&&e($,{children:e(R,{title:b(),children:e("span",{children:e(S,{size:"small",color:"inherit",onClick:x,disabled:g,"aria-label":"Execute Check",children:e(z,{fontSize:"small"})})})})}),n&&e(T,{color:"inherit",size:"1em"})]})};export{P as Check,d as useStyles};
|
|
2
2
|
//# sourceMappingURL=Check.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as a,jsx as e}from"react/jsx-runtime";import{makeStyles as f,DialogContent as S,Box as C,Typography as b,Select as v,MenuItem as k,TextField as x,DialogActions as y,Button as c}from"@material-ui/core";import{useState as d}from"react";import{ResultState as l}from"../../graphql/generated/index.esm.js";import{FormFieldLabel as p}from"../FormFieldLabel/FormFieldLabel.esm.js";import{SoundcheckDialog as j}from"../SoundcheckDialog/SoundcheckDialog.esm.js";const u=f(n=>({buttonArea:{paddingLeft:n.spacing(1),paddingBottom:0,justifyContent:"flex-start"},content:{minWidth:600,width:"61.8%",marginTop:n.spacing(0),paddingLeft:n.spacing(1),paddingTop:n.spacing(0)}})),B=({isOpen:n,setIsOpen:i,setCallback:m})=>{const o=u(),[r,h]=d(l.Passed),[s,g]=d("");return a(j,{title:"Set Check Status",open:n,handleClose:()=>i(!1),fullScreen:!1,children:[a(S,{className:o.content,children:[a(C,{marginBottom:2,children:[e(p,{title:"State"}),e(b,{variant:"caption",children:"Set the state of the check for this entity."}),e(v,{labelId:"result-state-label",value:r,onChange:t=>h(t.target.value),label:"Select State",variant:"outlined",fullWidth:!0,margin:"dense",children:Object.values(l).filter(t=>t!==l.Exempt).map(t=>e(k,{value:t,children:t},t))})]}),e(p,{title:"Justification"}),e(x,{margin:"dense",fullWidth:!0,value:s,variant:"outlined",multiline:!0,rows:3,maxRows:6,inputProps:{"aria-label":"Check Status Justification"},onChange:t=>g(t.target.value)})]}),a(y,{className:o.buttonArea,children:[e(c,{onClick:()=>{i(!1),m(r,s)},color:"primary",variant:"contained",children:"Submit"}),e(c,{onClick:()=>i(!1),color:"primary",children:"Cancel"})]})]})};export{B as CheckResultInputPopup,u as useStyles};
|
|
2
|
+
//# sourceMappingURL=CheckResultInputPopup.esm.js.map
|