@spotify/backstage-plugin-soundcheck 0.12.7 → 0.12.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -11
- package/alpha/package.json +1 -1
- package/dist/alpha/apis.esm.js +2 -0
- package/dist/alpha/entity-content.esm.js +2 -0
- package/dist/alpha/pages.esm.js +2 -0
- package/dist/alpha/plugin.esm.js +2 -0
- package/dist/alpha/sidebar-item.esm.js +2 -0
- package/dist/alpha.esm.js +1 -1
- package/dist/api.esm.js +2 -0
- package/dist/components/AlertPanel/AlertPanel.esm.js +2 -0
- package/dist/components/Badges/BaseBadge.esm.js +2 -0
- package/dist/components/Badges/CampaignBadge.esm.js +2 -0
- package/dist/components/Badges/CertificationBadge.esm.js +2 -0
- package/dist/components/Badges/LevelBadge.esm.js +2 -0
- package/dist/components/Badges/NoLevelBadge.esm.js +2 -0
- package/dist/components/Badges/PlaylistBadge.esm.js +2 -0
- package/dist/components/Badges/badge.esm.js +2 -0
- package/dist/components/CacheConfig/CacheConfigComponent.esm.js +2 -0
- package/dist/components/CacheConfig/utils.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignChecks.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailRow.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetails.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailsPage.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignMilestones.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignProgress.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignResultsTable.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/CampaignListPage.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/CampaignMetadata.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/CampaignSummaryCard.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignListPage/useArchiveConfirmationModal.esm.js +2 -0
- package/dist/components/CampaignsTab/CampaignTypes.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/AddCampaignView.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignForm.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignFormDescription.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/EditCampaignView.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignNameField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/CampaignScheduleField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/EndDateChips.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignMilestonesStep.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignTrackStep.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/useCampaignForm.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/utils.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/types/CampaignFormTypes.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/utils/campaignFormUtils.esm.js +2 -0
- package/dist/components/CampaignsTab/MutateCampaignsViews/utils/validation.esm.js +2 -0
- package/dist/components/CampaignsTab/skeletons/CampaignsOverviewSkeleton.esm.js +2 -0
- package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +2 -0
- package/dist/components/CertificationSidebar/CertificationLevel.esm.js +2 -0
- package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +2 -0
- package/dist/components/CertificationSidebar/CertificationSummary.esm.js +2 -0
- package/dist/components/CertificationSidebar/Check.esm.js +2 -0
- package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +2 -0
- package/dist/components/CertificationSidebar/LevelSummary.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/CertificationSidebarSkeleton.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/CheckSkeleton.esm.js +2 -0
- package/dist/components/CertificationSidebar/skeletons/LevelSummarySkeleton.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationTab.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationTabs.esm.js +2 -0
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistProgress.esm.js +2 -0
- package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +2 -0
- package/dist/components/CertificationsPage/PlaylistCertificationTab.esm.js +2 -0
- package/dist/components/CertificationsPage/skeletons/CertificationTabSkeleton.esm.js +2 -0
- package/dist/components/CertificationsPage/skeletons/CertificationTabsSkeleton.esm.js +2 -0
- package/dist/components/Charts/BarChart/BarChart.esm.js +2 -0
- package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +2 -0
- package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +2 -0
- package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +2 -0
- package/dist/components/Charts/ChartTypes.esm.js +2 -0
- package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +2 -0
- package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/LineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +2 -0
- package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/TableLineChart.esm.js +2 -0
- package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +2 -0
- package/dist/components/Charts/chartUtils.esm.js +2 -0
- package/dist/components/CheckCard/CheckCard.esm.js +2 -0
- package/dist/components/CheckCard/CheckHistoryChart.esm.js +2 -0
- package/dist/components/CheckCard/utils.esm.js +2 -0
- package/dist/components/CheckDetails/CheckDetails.esm.js +2 -0
- package/dist/components/CheckDetails/ResultStateBox.esm.js +2 -0
- package/dist/components/CheckDetails/skeletons/CheckDetailsSkeleton.esm.js +2 -0
- package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +2 -0
- package/dist/components/CheckIcon/CheckIcon.esm.js +2 -0
- package/dist/components/CheckPage/CheckDetailsView.esm.js +2 -0
- package/dist/components/CheckPage/CheckEditView.esm.js +2 -0
- package/dist/components/CheckPage/CheckPage.esm.js +2 -0
- package/dist/components/ChecksErrors/ChecksErrors.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +2 -0
- package/dist/components/ChecksPage/ChecksPage.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/AddCheckView.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/CheckForm.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/CheckFormDescription.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckScheduleSection/ScheduleSection.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/AddMenuButton.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ConditionList.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/styles.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionBox.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/RuleInputBox.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/useRuleInputHandlers.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/hooks/useCheckForm.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/CheckFormTypes.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/ExpressionType.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/Path.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/types/Schedule.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/utils/checkFormUtils.esm.js +2 -0
- package/dist/components/ChecksPage/MutateCheckViews/utils/validation.esm.js +2 -0
- package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +2 -0
- package/dist/components/ChecksTab/ChecksTab.esm.js +2 -0
- package/dist/components/CollectorPage/CollectorPage.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/FactCollectionConfig.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +2 -0
- package/dist/components/ContextMenu/ContextMenu.esm.js +2 -0
- package/dist/components/DraggableChip/DraggableChip.esm.js +2 -0
- package/dist/components/DraggableChip/chipStyles.esm.js +2 -0
- package/dist/components/DroppableInput/DroppableInput.esm.js +2 -0
- package/dist/components/EditTrackPage/EditTrackPage.esm.js +2 -0
- package/dist/components/EditTrackPage/EditTrackView.esm.js +2 -0
- package/dist/components/EmptyState/CampaignEmptyState.esm.js +2 -0
- package/dist/components/EmptyState/EmptyState.esm.js +2 -0
- package/dist/components/EntityContent/EntityContent.esm.js +2 -0
- package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/Card.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/EntitySoundcheckCard.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/index.esm.js +2 -0
- package/dist/components/EntitySoundcheckCard/skeletons/CardSkeleton.esm.js +2 -0
- package/dist/components/EntitySoundcheckContent.esm.js +2 -0
- package/dist/components/Expand/Expand.esm.js +2 -0
- package/dist/components/FadeIn/FadeIn.esm.js +2 -0
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +2 -0
- package/dist/components/Filter/FilterComponent.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntityKindsFilter.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntitySystemsFilter.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntityTableToolbar.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/EntityTagFilter.esm.js +2 -0
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +2 -0
- package/dist/components/Filter/types.esm.js +2 -0
- package/dist/components/Filter/utils.esm.js +2 -0
- package/dist/components/FooterButtons/FooterButtons.esm.js +2 -0
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +2 -0
- package/dist/components/FormFilterSection/FormFilterSection.esm.js +2 -0
- package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +2 -0
- package/dist/components/FormStepper/FormStepper.esm.js +2 -0
- package/dist/components/FormTextInput/FormTextInput.esm.js +2 -0
- package/dist/components/Frequency/FrequencyComponent.esm.js +2 -0
- package/dist/components/Frequency/types.esm.js +2 -0
- package/dist/components/Frequency/util.esm.js +2 -0
- package/dist/components/FullScreenDialog/FullScreenDialog.esm.js +2 -0
- package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +2 -0
- package/dist/components/GroupSelector/GroupSelector.esm.js +2 -0
- package/dist/components/GroupSelector/useOptions.esm.js +2 -0
- package/dist/components/LevelCard/LevelCard.esm.js +2 -0
- package/dist/components/LevelCard/LevelTooltip.esm.js +2 -0
- package/dist/components/LevelUpParty/LevelUpParty.esm.js +2 -0
- package/dist/components/LoadingIndicator/LoadingIndicator.esm.js +2 -0
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +2 -0
- package/dist/components/NoBorderButton/NoBorderButton.esm.js +2 -0
- package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +2 -0
- package/dist/components/OverviewChartCard/OverviewChartCardStyles.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignRow/CampaignRow.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignRow/useCampaignRowStyles.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignRow/utils.esm.js +2 -0
- package/dist/components/OverviewPage/FixedGroupOverviewPage.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewPage.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +2 -0
- package/dist/components/OverviewPage/OverviewTabs.esm.js +2 -0
- package/dist/components/OverviewPage/TableContent/TableContent.esm.js +2 -0
- package/dist/components/OverviewPage/TableContent/VirtualTableContent.esm.js +2 -0
- package/dist/components/OverviewPage/index.esm.js +2 -0
- package/dist/components/OverviewPage/skeletons/OverviewTabsSkeleton.esm.js +2 -0
- package/dist/components/PageWarningMessage/PageWarningMessage.esm.js +2 -0
- package/dist/components/Pagination/CursorPagination.esm.js +2 -0
- package/dist/components/Pagination/Pagination.esm.js +2 -0
- package/dist/components/PassRateGrid/PassRateGrid.esm.js +2 -0
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +2 -0
- package/dist/components/PassRateGrid/types.esm.js +2 -0
- package/dist/components/PassRateTable/NewPassRateTable.esm.js +2 -0
- package/dist/components/PassRateTable/PassRateTable.esm.js +2 -0
- package/dist/components/PassRateTable/types.esm.js +2 -0
- package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +2 -0
- package/dist/components/RelativeTime/RelativeTime.esm.js +2 -0
- package/dist/components/ResultsTable/CheckCell/CheckCell.esm.js +2 -0
- package/dist/components/ResultsTable/CheckCell/CheckCellTooltip.esm.js +2 -0
- package/dist/components/ResultsTable/HighestLevelBadge.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramCheckIndicator.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramCheckRow.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramLevelRow.esm.js +2 -0
- package/dist/components/ResultsTable/ProgramTitleRow.esm.js +2 -0
- package/dist/components/ResultsTable/ResultsTableFooter.esm.js +2 -0
- package/dist/components/ResultsTable/skeletons/ResultsTableSkeleton.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/Cell.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/Row.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/VirtualizedResultsTable.esm.js +2 -0
- package/dist/components/ResultsTable/virtualized/virtualizedTableUtils.esm.js +2 -0
- package/dist/components/RichTooltip/RichTooltip.esm.js +2 -0
- package/dist/components/Router.esm.js +2 -0
- package/dist/components/RoutingPage/Breadcrumbs.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPage.esm.js +2 -0
- package/dist/components/RoutingPage/index.esm.js +2 -0
- package/dist/components/RoutingPage/utils.esm.js +2 -0
- package/dist/components/SearchBar/SearchBar.esm.js +2 -0
- package/dist/components/SearchFilters/SearchFilters.esm.js +2 -0
- package/dist/components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js +2 -0
- package/dist/components/StyledTooltip/StyledTooltip.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCard.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +2 -0
- package/dist/components/TechHealth/Filters/Filters.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +2 -0
- package/dist/components/TechHealth/Filters/FiltersSection.esm.js +2 -0
- package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +2 -0
- package/dist/components/TechHealth/Filters/types.esm.js +2 -0
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +2 -0
- package/dist/components/TechHealth/Filters/utils.esm.js +2 -0
- package/dist/components/TechHealth/Loading/Emoji.esm.js +2 -0
- package/dist/components/TechHealth/Loading/EmojiFountain.esm.js +2 -0
- package/dist/components/TechHealth/Loading/Loading.esm.js +2 -0
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +2 -0
- package/dist/components/TechHealth/TechHealth.esm.js +2 -0
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +2 -0
- package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +2 -0
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/NameColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/OwnerColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +2 -0
- package/dist/components/TechHealthTabs/PassRateTabStyles.esm.js +2 -0
- package/dist/components/TechHealthTabs/TechHealthExportFunctions.esm.js +2 -0
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +2 -0
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +2 -0
- package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelChipsSection.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelsSection.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStep.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +2 -0
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +2 -0
- package/dist/components/TrackForm/TrackForm.esm.js +2 -0
- package/dist/components/TrackForm/utils/trackFormUtils.esm.js +2 -0
- package/dist/components/TrackForm/utils/types.esm.js +2 -0
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +2 -0
- package/dist/components/TrackForm/utils/validation.esm.js +2 -0
- package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +2 -0
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +2 -0
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +2 -0
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +2 -0
- package/dist/components/TrackPage/TrackLevelsChart.esm.js +2 -0
- package/dist/components/TrackPage/TrackPage.esm.js +2 -0
- package/dist/components/TrackPage/TrackProgressCard.esm.js +2 -0
- package/dist/components/TrackPage/utils.esm.js +2 -0
- package/dist/components/TracksPage/AddTrackView.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackEmptyState.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +2 -0
- package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +2 -0
- package/dist/components/TracksPage/TracksPage.esm.js +2 -0
- package/dist/components/TracksTab/TracksTab.esm.js +2 -0
- package/dist/contexts/CampaignFormContext.esm.js +2 -0
- package/dist/contexts/CheckFormContext.esm.js +2 -0
- package/dist/contexts/GenericFormContext.esm.js +2 -0
- package/dist/contexts/TrackFormContext.esm.js +2 -0
- package/dist/contexts/UserProvider.esm.js +2 -0
- package/dist/graphql/generated/index.esm.js +717 -0
- package/dist/hooks/aggregations/useAggregatedCheckPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useAggregatedEntityPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useAggregatedGroupPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useCertificationStatus.esm.js +2 -0
- package/dist/hooks/aggregations/useCertificationStatusHistory.esm.js +2 -0
- package/dist/hooks/aggregations/useCheckPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useCheckStatus.esm.js +2 -0
- package/dist/hooks/aggregations/useCheckStatusHistory.esm.js +2 -0
- package/dist/hooks/aggregations/useEntityPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useGroupPassRateTrend.esm.js +2 -0
- package/dist/hooks/aggregations/useTrackPassRateTrend.esm.js +2 -0
- package/dist/hooks/campaigns/useArchiveCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useCreateCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useDeleteCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaign.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaignOwners.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaignProgress.esm.js +2 -0
- package/dist/hooks/campaigns/useGetCampaigns.esm.js +2 -0
- package/dist/hooks/campaigns/useUpdateCampaign.esm.js +2 -0
- package/dist/hooks/catalog/useEntitiesByRefs.esm.js +2 -0
- package/dist/hooks/catalog/useEntityByRef.esm.js +2 -0
- package/dist/hooks/catalog/useGetEntityFacets.esm.js +2 -0
- package/dist/hooks/certifications/useAllCertifications.esm.js +2 -0
- package/dist/hooks/certifications/useCertificationDetails.esm.js +2 -0
- package/dist/hooks/certifications/useCertificationDetailsForTrack.esm.js +2 -0
- package/dist/hooks/certifications/useProgramOverviewForOwner.esm.js +2 -0
- package/dist/hooks/checks/useCheckDetails.esm.js +2 -0
- package/dist/hooks/checks/useCreateCheck.esm.js +2 -0
- package/dist/hooks/checks/useDeleteCheck.esm.js +2 -0
- package/dist/hooks/checks/useGetCheckOwners.esm.js +2 -0
- package/dist/hooks/checks/useGetChecks.esm.js +2 -0
- package/dist/hooks/checks/useUpdateCheck.esm.js +2 -0
- package/dist/hooks/collectors/useGetCollectors.esm.js +2 -0
- package/dist/hooks/collectors/useGetFactSchema.esm.js +2 -0
- package/dist/hooks/collectors/useUpdateCollectorConfig.esm.js +2 -0
- package/dist/hooks/entities/useEntityRefsForUser.esm.js +2 -0
- package/dist/hooks/entities/useTrackEntities.esm.js +2 -0
- package/dist/hooks/facets/useFacetFilters.esm.js +2 -0
- package/dist/hooks/facets/useFacetsForOwner.esm.js +2 -0
- package/dist/hooks/graphqlKeys.esm.js +2 -0
- package/dist/hooks/groups/useAllGroups.esm.js +2 -0
- package/dist/hooks/groups/useUsersGroupClaims.esm.js +2 -0
- package/dist/hooks/operators/useOperators.esm.js +2 -0
- package/dist/hooks/playlists/usePlaylists.esm.js +2 -0
- package/dist/hooks/tracks/useCreateTrack.esm.js +2 -0
- package/dist/hooks/tracks/useDeleteTrack.esm.js +2 -0
- package/dist/hooks/tracks/useGetAllTracks.esm.js +2 -0
- package/dist/hooks/tracks/useGetChecksMap.esm.js +2 -0
- package/dist/hooks/tracks/useGetTrackOwners.esm.js +2 -0
- package/dist/hooks/tracks/useUpdateTrack.esm.js +2 -0
- package/dist/hooks/useConfirmationModal.esm.js +2 -0
- package/dist/hooks/useContextMenu.esm.js +2 -0
- package/dist/hooks/useNavigateBack.esm.js +2 -0
- package/dist/hooks/useSearchParam.esm.js +2 -0
- package/dist/hooks/useSoundcheckAlert.esm.js +2 -0
- package/dist/hooks/useStepper.esm.js +2 -0
- package/dist/index.esm.js +1 -1
- package/dist/plugin.esm.js +2 -0
- package/dist/routes.esm.js +2 -0
- package/dist/text.esm.js +2 -0
- package/dist/utils/charts.esm.js +2 -0
- package/dist/utils/collectors.esm.js +2 -0
- package/dist/utils/cron.esm.js +2 -0
- package/dist/utils/export.esm.js +6 -0
- package/dist/utils/filters.esm.js +2 -0
- package/dist/utils/formStyles.esm.js +2 -0
- package/dist/utils/frequency.esm.js +2 -0
- package/dist/utils/license.esm.js +2 -0
- package/dist/utils/time.esm.js +2 -0
- package/dist/utils/validation.esm.js +2 -0
- package/package.json +14 -13
- package/dist/esm/Card-BU6-9YfF.esm.js +0 -2
- package/dist/esm/CertificationSidebar-DB4UqW7X.esm.js +0 -2
- package/dist/esm/EmptyState-C2zsaDrr.esm.js +0 -2
- package/dist/esm/EntitySoundcheckContent-DAnk6B9A.esm.js +0 -2
- package/dist/esm/OverviewPageContent-CBL-e1xr.esm.js +0 -2
- package/dist/esm/RefetchingIndicator-BrP7yEiB.esm.js +0 -2
- package/dist/esm/chartUtils-CD083K30.esm.js +0 -2
- package/dist/esm/index-1faKkIS7.esm.js +0 -2
- package/dist/esm/index-B3L_axCg.esm.js +0 -2
- package/dist/esm/index-GRR9jOE3.esm.js +0 -2
- package/dist/esm/license-CQErZDIh.esm.js +0 -2
- package/dist/esm/routes-DcGwdXHX.esm.js +0 -699
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as n,Tab as p}from"@material-ui/core";import a from"react";import{Link as s}from"react-router-dom";import{PlaylistBadge as m}from"../Badges/PlaylistBadge.esm.js";const r=n(e=>({root:{maxWidth:"80ch",textTransform:"uppercase",paddingTop:e.spacing(2),paddingBottom:e.spacing(2)},wrapper:{display:"inline-block",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},badge:{marginRight:e.spacing(1)}})),c=({id:e,name:o,href:i,selected:l=!1})=>{const t=r();return a.createElement(p,{className:t.root,classes:{wrapper:t.wrapper},value:e,label:a.createElement(a.Fragment,null,a.createElement(m,{className:t.badge}),o),component:s,to:i,selected:l})};export{c as PlaylistCertificationTab,r as useStyles};
|
|
2
|
+
//# sourceMappingURL=PlaylistCertificationTab.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Tab as t}from"@material-ui/core";import{Skeleton as o}from"@material-ui/lab";import r from"react";import{useStyles as a}from"../CertificationTab.esm.js";const m=()=>{const e=a();return r.createElement(t,{className:e.root,classes:{wrapper:e.wrapper},label:r.createElement(o,{width:180})})};export{m as CertificationTabSkeleton};
|
|
2
|
+
//# sourceMappingURL=CertificationTabSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Tabs as r}from"@material-ui/core";import e from"react";import{FadeIn as l}from"../../FadeIn/FadeIn.esm.js";import{CertificationTabSkeleton as t}from"./CertificationTabSkeleton.esm.js";const o=()=>e.createElement(l,null,e.createElement(r,{value:!1,indicatorColor:"primary"},e.createElement(t,null),e.createElement(t,null),e.createElement(t,null)));export{o as CertificationTabsSkeleton};
|
|
2
|
+
//# sourceMappingURL=CertificationTabsSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as _,useTheme as I}from"@material-ui/core";import a,{memo as g}from"react";import{BarChart as T,CartesianGrid as u,XAxis as S,YAxis as f,Tooltip as v,Legend as N,Bar as R,Cell as B}from"recharts";import{CARTESIAN_GRID_OPACITY as b,CHART_DATA_KEY as p,AXIS_DOMAIN as s,VERTICAL_Y_AXIS_WIDTH as L,HORIZONTAL_Y_AXIS_WIDTH as O,LEGEND_ICON_TYPE as k,LEGEND_ICON_SIZE as D}from"../ChartTypes.esm.js";import{getChartFontColor as i,getChartColors as H}from"../chartUtils.esm.js";import{ChartWrapper as K}from"../ChartWrapper/ChartWrapper.esm.js";import{BarChartPlaceholder as Y}from"./BarChartPlaceholder.esm.js";const z=_(e=>({legend:{color:i(e)}}));var d=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(d||{});const y=20,E=50;var C=(e=>(e.Category="category",e.Number="number",e))(C||{});const h={dataKey:"passRate",name:"Pass rate"},Z=g(({data:e,layout:l})=>{const t=l==="vertical",o=I(),n=H(o),c=i(o),A=z();return e.length?a.createElement(K,{"aria-label":"Bar chart representing data points."},a.createElement(T,{data:e,layout:l},a.createElement(u,{vertical:t,horizontal:!t,opacity:b}),a.createElement(S,{dataKey:t?void 0:p,type:t?"number":"category",domain:t?s:void 0,stroke:c}),a.createElement(f,{width:t?L:O,dataKey:t?p:void 0,type:t?"category":"number",domain:t?void 0:s,stroke:c}),a.createElement(v,{contentStyle:{backgroundColor:o.palette.background.paper},itemStyle:{color:i(o)},cursor:{fill:"transparent"}}),a.createElement(N,{iconType:k,iconSize:D,formatter:r=>a.createElement("span",{className:A.legend},r),payload:e.map(({name:r},m)=>({id:r,value:r,color:n[m%n.length]}))}),a.createElement(R,{barSize:t?y:E,dataKey:h.dataKey,name:h.name},e.map(({name:r},m)=>a.createElement(B,{key:r,fill:n[m%n.length]}))))):a.createElement(Y,{layout:l,theme:o})});export{C as AxisType,Z as BarChart,d as BarChartLayout,E as HORIZONTAL_BAR_SIZE,y as VERTICAL_BAR_SIZE};
|
|
2
|
+
//# sourceMappingURL=BarChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as d}from"@material-ui/core";import{makeStyles as s}from"@material-ui/core/styles";import t from"react";import{BarChart as c,CartesianGrid as y,XAxis as p,YAxis as A,Bar as x}from"recharts";import{CARTESIAN_GRID_OPACITY as h,AXIS_DOMAIN as i,VERTICAL_Y_AXIS_WIDTH as C,HORIZONTAL_Y_AXIS_WIDTH as I}from"../ChartTypes.esm.js";import{ChartWrapper as f}from"../ChartWrapper/ChartWrapper.esm.js";import{BarChartLayout as E,AxisType as r,VERTICAL_BAR_SIZE as _,HORIZONTAL_BAR_SIZE as g}from"./BarChart.esm.js";const u=s(a=>({container:{position:"relative"},chartMessage:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",backgroundColor:a.palette.background.default,padding:a.spacing(1),borderRadius:"5px",textAlign:"center",width:"50%",zIndex:2}})),T=({layout:a,theme:n})=>{const e=a===E.Vertical,l=[{x:"A",y:25},{x:"B",y:50},{x:"C",y:75}],m=[{x:"A",y:100},{x:"B",y:90},{x:"C",y:80},{x:"C",y:70},{x:"C",y:60}],o=u();return t.createElement("div",{className:o.container},t.createElement(f,null,t.createElement(c,{data:e?m:l,margin:{left:0},layout:a},t.createElement(y,{strokeDasharray:"3 3",vertical:e,horizontal:!e,opacity:h}),t.createElement(p,{dataKey:e?void 0:"x",type:e?r.Number:r.Category,domain:e?i:void 0,hide:!0}),t.createElement(A,{width:e?C:I,dataKey:e?"x":void 0,type:e?r.Category:r.Number,domain:e?void 0:i,hide:!0}),t.createElement(x,{dataKey:"y",fill:n.palette.divider,barSize:e?_:g}))),t.createElement(d,{className:o.chartMessage},"No Data"))};export{T as BarChartPlaceholder};
|
|
2
|
+
//# sourceMappingURL=BarChartPlaceholder.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseEntityRef as u}from"@backstage/catalog-model";import l from"react";import{useSummaryAggregationsContext as i}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{BarChart as p,BarChartLayout as m}from"./BarChart.esm.js";const d=a=>{var t;return(t=a==null?void 0:a.map(({node:r})=>{const{id:e,groupTitle:o,snapshotPassRate:s}=r;return{name:o!=null?o:u(e).name,passRate:s}}))!=null?t:[]},v=()=>{var a,t;const{groupPassRatesOverviewTrends:{data:r}}=i(),e=(t=(a=r==null?void 0:r.groupPassRates)==null?void 0:a.edges)==null?void 0:t.sort((s,n)=>n.node.snapshotPassRate-s.node.snapshotPassRate),o=d(e);return l.createElement(p,{data:o,layout:m.Vertical})};export{v as GroupPassRateHistoryBarChart};
|
|
2
|
+
//# sourceMappingURL=GroupPassRateHistoryBarChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as n}from"@material-ui/core";import e from"react";import{useSummaryAggregationsContext as s}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{BarChart as m,BarChartLayout as i}from"./BarChart.esm.js";const c=r=>{var a,t;return(t=(a=r==null?void 0:r.overallTrackPassRate)==null?void 0:a.map(({levelOrdinal:o,snapshotPassRate:l})=>({name:`Level ${o}`,passRate:l})))!=null?t:[]},u=()=>{const{trackPassRateOverviewTrend:{data:r,isError:a}}=s();if(a)return e.createElement(n,{color:"error"},"Failed to load track data.");const t=c(r);return e.createElement(m,{data:t,layout:i.Horizontal})};export{u as TrackSummaryBarChart};
|
|
2
|
+
//# sourceMappingURL=TrackSummaryBarChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{DateTime as e}from"luxon";import{formatDate as n}from"./chartUtils.esm.js";function o(_){const I=e.utc();return _.map((t,a)=>({name:n(I,_.length-a-1),passRate:t}))}var T=(_=>(_.Bar="bar",_.Line="line",_))(T||{});const r=-25,A=[0,100],E=85,m=25,D="name",C=250,N=.5,O="circle",R=8,i="monotone";export{A as AXIS_DOMAIN,N as CARTESIAN_GRID_OPACITY,D as CHART_DATA_KEY,T as ChartType,m as HORIZONTAL_Y_AXIS_WIDTH,R as LEGEND_ICON_SIZE,O as LEGEND_ICON_TYPE,i as LINE_CHART_TYPE,C as MIN_CHART_HEIGHT,r as TOOLTIP_Y_OFFSET,E as VERTICAL_Y_AXIS_WIDTH,o as convertPassRateToDataPoints};
|
|
2
|
+
//# sourceMappingURL=ChartTypes.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"react";import{ResponsiveContainer as r}from"recharts";import{MIN_CHART_HEIGHT as i}from"../ChartTypes.esm.js";const n=({children:t,height:e})=>o.createElement(r,{height:e,minHeight:e!=null?e:i,debounce:1},t);export{n as ChartWrapper};
|
|
2
|
+
//# sourceMappingURL=ChartWrapper.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseEntityRef as d}from"@backstage/catalog-model";import{DateTime as p}from"luxon";import v from"react";import{useSummaryAggregationsContext as f}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{formatDate as c}from"../chartUtils.esm.js";import{LineChart as y}from"./LineChart.esm.js";const R=t=>{const e=(t==null?void 0:t.overallEntityPassRates)||[];if(!e.length)return[];const a=p.utc();return e.reduce((o,{trendPassRates:r,id:n},u)=>{var m;const l=(m=r==null?void 0:r.map((s,i)=>({name:c(a,r.length-i-1),[n]:s})))!=null?m:[];return u===0?l:o.map((s,i)=>({...s,...l[i]}))},[])},g=()=>{var t,e;const{entityPassRatesOverviewTrends:{data:a}}=f(),o=(e=(t=a==null?void 0:a.overallEntityPassRates)==null?void 0:t.map(({id:n})=>({dataKey:n,name:d(n).name})))!=null?e:[],r=R(a);return v.createElement(y,{data:r,lines:o})};export{g as EntityPassRateHistoryLineChart};
|
|
2
|
+
//# sourceMappingURL=EntityPassRateHistoryLineChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as p,useTheme as s}from"@material-ui/core";import e from"react";import{LineChart as h,CartesianGrid as C,XAxis as d,YAxis as _,Tooltip as T,Legend as A,Line as I}from"recharts";import{CARTESIAN_GRID_OPACITY as g,CHART_DATA_KEY as y,HORIZONTAL_Y_AXIS_WIDTH as L,AXIS_DOMAIN as N,TOOLTIP_Y_OFFSET as O,LEGEND_ICON_TYPE as f,LEGEND_ICON_SIZE as k,LINE_CHART_TYPE as S}from"../ChartTypes.esm.js";import{getChartFontColor as i,getChartColors as Y}from"../chartUtils.esm.js";import{ChartWrapper as D}from"../ChartWrapper/ChartWrapper.esm.js";import{LineChartPlaceholder as u}from"./LineChartPlaceholder.esm.js";const K=p(r=>({legend:{color:i(r)}})),P=({data:r,lines:o,height:l})=>{const a=s(),n=Y(a),m=i(a),c=K();return r.length?e.createElement(D,{height:l},e.createElement(h,{data:r},e.createElement(C,{vertical:!1,opacity:g}),e.createElement(d,{dataKey:y,stroke:m}),e.createElement(_,{width:L,domain:N,stroke:m}),e.createElement(T,{position:{y:O},contentStyle:{backgroundColor:a.palette.background.paper}}),o.length>1&&e.createElement(A,{iconType:f,iconSize:k,formatter:t=>e.createElement("span",{className:c.legend},t)}),o.map((t,E)=>e.createElement(I,{key:t.dataKey,dataKey:t.dataKey,stroke:n[E%n.length],strokeWidth:2,dot:!1,name:t.name,type:S})))):e.createElement(u,null)};export{P as LineChart};
|
|
2
|
+
//# sourceMappingURL=LineChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as r}from"@material-ui/core";import{makeStyles as o}from"@material-ui/core/styles";import e from"react";import{LineChart as n,CartesianGrid as c,XAxis as i,YAxis as s,Line as m}from"recharts";import{CARTESIAN_GRID_OPACITY as l,AXIS_DOMAIN as d}from"../ChartTypes.esm.js";import{ChartWrapper as p}from"../ChartWrapper/ChartWrapper.esm.js";const h=o(t=>({container:{position:"relative"},chartMessage:{position:"absolute",top:"50%",left:"50%",fontWeight:"bold",transform:"translate(-50%, -50%)",backgroundColor:t.palette.background.default,padding:t.spacing(1),borderRadius:"5px",textAlign:"center",width:"50%",zIndex:2}})),y=()=>{const t=[{x:"A",y:25},{x:"B",y:50},{x:"C",y:75}],a=h();return e.createElement("div",{className:a.container},e.createElement(p,null,e.createElement(n,{data:t},e.createElement(c,{strokeDasharray:"3 3",vertical:!1,opacity:l}),e.createElement(i,{dataKey:"x",stroke:"#ccc",hide:!0}),e.createElement(s,{domain:d,stroke:"#ccc",hide:!0}),e.createElement(m,{type:"monotone",dataKey:"y",stroke:"#ccc",dot:!1}))),e.createElement(r,{className:a.chartMessage},"No Data"))};export{y as LineChartPlaceholder};
|
|
2
|
+
//# sourceMappingURL=LineChartPlaceholder.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{LineChart as n}from"./LineChart.esm.js";import{TableLineChart as s}from"./TableLineChart.esm.js";const o=({chartData:a,tableChart:r})=>{const t=[{dataKey:"passRate",name:"Pass rate"}];return r?e.createElement(s,{data:a,lines:t}):e.createElement(n,{data:a,lines:t})};export{o as PassRateHistoryLineChart};
|
|
2
|
+
//# sourceMappingURL=PassRateHistoryLineChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useTheme as n}from"@material-ui/core";import e from"react";import{ResponsiveContainer as d,LineChart as h,XAxis as s,YAxis as l,Line as p}from"recharts";import{CHART_DATA_KEY as A,AXIS_DOMAIN as E,LINE_CHART_TYPE as c}from"../ChartTypes.esm.js";import{getChartColors as C}from"../chartUtils.esm.js";const y=({data:r,lines:o})=>{const m=n(),a=C(m);return e.createElement(d,{height:50,width:100},e.createElement(h,{data:r},e.createElement(s,{hide:!0,dataKey:A}),e.createElement(l,{width:0,domain:E}),o.map((t,i)=>e.createElement(p,{key:t.dataKey,dataKey:t.dataKey,stroke:a[i%a.length],strokeWidth:2,dot:!1,name:t.name,type:c}))))};export{y as TableLineChart};
|
|
2
|
+
//# sourceMappingURL=TableLineChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as v}from"@material-ui/core";import{DateTime as p}from"luxon";import d from"react";import{useSummaryAggregationsContext as f}from"../../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{formatDate as g}from"../chartUtils.esm.js";import{LineChart as h}from"./LineChart.esm.js";const u=e=>{const r=(e==null?void 0:e.overallTrackPassRate)||[];if(!r.length)return[];const t=p.utc();return r.reduce((l,{trendPassRates:a,levelOrdinal:n},o)=>{var s;const c=(s=a==null?void 0:a.map((i,m)=>({name:g(t,a.length-m-1),[`Level${n}`]:i})))!=null?s:[];return o===0?c:l.map((i,m)=>({...i,...c[m]}))},[])},L=()=>{var e,r;const{trackPassRateOverviewTrend:{data:t,isError:l}}=f();if(l)return d.createElement(v,{color:"error"},"Failed to load track data.");const a=u(t),n=(r=(e=t==null?void 0:t.overallTrackPassRate)==null?void 0:e.map(({levelOrdinal:o})=>({dataKey:`Level${o}`,name:`Level ${o}`})))!=null?r:[];return d.createElement(h,{data:a,lines:n})};export{L as TrackPassRateHistoryLineChart,u as formatLineChartData};
|
|
2
|
+
//# sourceMappingURL=TrackPassRateHistoryLineChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const n=["#59A0F6","#95C90D","#FFA42C","#C87DFF","#7358FF","#F036A4"],C=["#59A0F6","#1BB552","#FFA42C","#C87DFF","#7358FF","#F036A4"];var F=(e=>(e.RED="red",e.GREEN="green",e))(F||{});const a={red:"#FF4834",green:"#1BB552"},d={red:"#FF001A",green:"#1CD760"},o=e=>e?e.palette.type:"",t=e=>o(e).toLowerCase()==="dark",g=e=>t(e)?e.palette.grey[200]:e.palette.grey[800],s=e=>t(e)?C:n;function l(e,r){return(r?e.minus({days:r}):e).toFormat("MMM dd")}const A=(e,r)=>t(e)?d[r]:a[r];export{F as TrendLineColor,l as formatDate,s as getChartColors,g as getChartFontColor,o as getThemeType,A as getTrendLineColor,t as isDarkTheme};
|
|
2
|
+
//# sourceMappingURL=chartUtils.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as P,useTheme as T,Box as r,Paper as H,Typography as I,Tooltip as L}from"@material-ui/core";import w from"@material-ui/lab/Skeleton";import{DateTime as W}from"luxon";import t from"react";import{CircularProgressbar as j,buildStyles as z}from"react-circular-progressbar";import{useCheckStatus as M}from"../../hooks/aggregations/useCheckStatus.esm.js";import{useCheckStatusHistory as A}from"../../hooks/aggregations/useCheckStatusHistory.esm.js";import{getChartFontColor as v,formatDate as F}from"../Charts/chartUtils.esm.js";import{getProgressColor as N}from"../TrackPage/utils.esm.js";import{CheckHistoryChart as G}from"./CheckHistoryChart.esm.js";import{getCheckName as J}from"./utils.esm.js";const b=P(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"0.9rem",cursor:"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},headerRow:{display:"flex",padding:e.spacing(1,1),borderBottom:`1px solid ${e.palette.divider}`,width:"100%"},headerSection:{display:"flex",flexDirection:"column",gap:e.spacing(.5),flexGrow:1,width:"100%"},contentRow:{padding:e.spacing(1,1,0),display:"flex"},leftSection:{width:"75px",minWidth:"75px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"150px"},chartSkeletonSection:{flex:1,width:"100%",minWidth:"150px",padding:e.spacing(0,0,1,1)},overallSummaryBox:{display:"flex",flexDirection:"column",height:"100%",color:v(e),textAlign:"center",gap:e.spacing(2)}})),K=()=>{const e=b();return t.createElement(r,{className:e.contentRow},t.createElement(r,{className:e.leftSection},t.createElement(r,{className:e.summaryCard},t.createElement(w,{variant:"circle",height:75}))),t.createElement(r,{className:e.chartSkeletonSection},t.createElement(w,{variant:"rect",height:92})))};function U(e){if(!e)return[];const{checkStatusHistory:{history:n,numberOfEntities:a}}=e,l=W.utc();return n.map((c,s)=>({name:F(l,n.length-s-1),passRate:a?Math.round(c.passed/a*100):100}))}function V(e){if(!e)return 0;const{checkStatus:{passed:n,numberOfEntities:a}}=e;return a?Math.round(n/a*100):100}function X(e){if(!e)return{numerator:0,denominator:0};const{checkStatus:{passed:n,numberOfEntities:a}}=e;return{numerator:n,denominator:a}}const q=({check:e,track:n,lifecycles:a,owners:l,types:c,systems:s,isLoading:g})=>{var y,x,S;const o=b(),m=T();let i={};a!=null&&a.length&&(i["spec.lifecycle"]=a),l!=null&&l.length&&(i["relations.ownedBy"]=l),c!=null&&c.length&&(i["spec.type"]=c),s!=null&&s.length&&(i["relations.partOf"]=s),Object.keys(i).length===0&&(i=void 0);const{data:d,isLoading:D}=M({checkId:e.id,trackId:n.id,filter:i},!g),{data:u,isLoading:O}=A({checkId:e.id,trackId:n.id,numberOfDays:30,filter:i},!g),R={dataKey:"passRate",name:"Pass rate"},B=(S=(x=(y=u==null?void 0:u.checkStatusHistory)==null?void 0:y.history)==null?void 0:x.length)!=null?S:0,$=U(u),p=V(d);let f;d?f=`${p}%`:f="No Data";let h;if(!d)h="No Data";else{const{numerator:k,denominator:C}=X(d);C>0?h=`${k} of ${C} entities passing`:h=`${k} entities passing`}const E=t.createElement(r,{className:o.overallSummaryBox},t.createElement(j,{value:p,text:f,styles:z({textColor:v(m),pathColor:N(m,p),trailColor:m.palette.divider,textSize:B?void 0:10})}));return t.createElement(H,{className:o.card,elevation:0},t.createElement(r,{className:o.headerRow},t.createElement(r,{className:o.headerSection},t.createElement(I,{className:o.title},J(n,e)))),O||D?t.createElement(K,null):t.createElement(L,{title:h},t.createElement(r,{className:o.contentRow},E&&t.createElement(r,{className:o.leftSection},t.createElement(r,{className:o.summaryCard},E)),t.createElement(r,{className:o.chartSection},t.createElement(G,{data:$,lineConfig:R,color:N(m,p)})))))};export{q as CheckCard};
|
|
2
|
+
//# sourceMappingURL=CheckCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useTheme as m}from"@material-ui/core";import e from"react";import{ResponsiveContainer as n,AreaChart as l,CartesianGrid as c,XAxis as s,YAxis as p,Area as A}from"recharts";import{CARTESIAN_GRID_OPACITY as d,CHART_DATA_KEY as C,HORIZONTAL_Y_AXIS_WIDTH as h,AXIS_DOMAIN as f}from"../Charts/ChartTypes.esm.js";import"../Charts/LineChart/LineChart.esm.js";import{getChartFontColor as y}from"../Charts/chartUtils.esm.js";import"luxon";import"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../Charts/BarChart/BarChart.esm.js";import{LineChartPlaceholder as E}from"../Charts/LineChart/LineChartPlaceholder.esm.js";const I=({data:r,lineConfig:t,color:o})=>{const i=m(),a=y(i);return r.length?e.createElement(n,{minHeight:100,debounce:1},e.createElement(l,{data:r},e.createElement(c,{vertical:!1,opacity:d}),e.createElement(s,{dataKey:C,stroke:a,style:{fontSize:"0.7rem"}}),e.createElement(p,{width:h,domain:f,stroke:a,style:{fontSize:"0.7rem"}}),e.createElement(A,{key:t.dataKey,dataKey:t.dataKey,name:t.name,stackId:"1",type:"monotone",stroke:o,strokeWidth:1.2,fill:o}))):e.createElement(E,null)};export{I as CheckHistoryChart};
|
|
2
|
+
//# sourceMappingURL=CheckHistoryChart.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{MarkdownContent as u}from"@backstage/core-components";import{useEntity as g}from"@backstage/plugin-catalog-react";import{makeStyles as E,Box as y,Typography as n}from"@material-ui/core";import 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{useCheckDetails as k}from"../../hooks/checks/useCheckDetails.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{AlertPanel as v}from"../AlertPanel/AlertPanel.esm.js";import{RelativeTime as S}from"../RelativeTime/RelativeTime.esm.js";import{ResultStateBox as x}from"./ResultStateBox.esm.js";import{CheckDetailsSkeleton as B}from"./skeletons/CheckDetailsSkeleton.esm.js";const m=E(e=>({root:{padding:`${e.spacing(3)}px ${e.spacing(5)}px`},title:{fontWeight:"normal",fontSize:e.typography.h5.fontSize},description:{padding:`${e.spacing(3)}px 0`},subtitle:{fontWeight:"normal",fontSize:e.typography.h6.fontSize},topBar:{display:"flex",justifyContent:"space-between",marginBottom:e.spacing(2)}})),C=({programId:e,checkId:i})=>{const r=m(),{entity:s}=g(),{data:o,isLoading:p,isError:l}=k(s,e,i);if(l)return t.createElement(y,{padding:2},t.createElement(v,{severity:"error",title:"Error loading check details"}));if(p||!e||!i)return t.createElement(B,null);if(!o)return null;const{name:c,description:d,result:f,timestamp:a,notes:h}=o;return t.createElement("div",{className:r.root,"data-testid":"check-details-view"},t.createElement("div",{className:r.topBar},t.createElement(n,{variant:"h2",className:r.title},c),a?t.createElement(S,{timestamp:a,description:"Last updated"}):null),t.createElement(x,{state:f,notes:h}),t.createElement("div",{className:r.description,"data-testid":"soundcheck-check-details-description"},t.createElement(n,{variant:"h3",className:r.subtitle},"Description"),t.createElement(u,{content:d})))};export{C as CheckDetails,m as useStyles};
|
|
2
|
+
//# sourceMappingURL=CheckDetails.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{MarkdownContent as s}from"@backstage/core-components";import{makeStyles as m,useTheme as c,Paper as d,Typography as g}from"@material-ui/core";import f from"@material-ui/icons/CheckCircleOutlined";import u from"@material-ui/icons/ErrorOutline";import r from"@material-ui/icons/InfoOutlined";import C from"@material-ui/icons/WarningOutlined";import n from"react";import{ResultState as e}from"../../graphql/generated/index.esm.js";const N=m(t=>({markdownContent:{"& :last-child":{marginBottom:0}},root:{padding:t.spacing(2),display:"flex",gap:t.spacing(1.5)},iconContainer:{marginTop:1},passed:{},failed:{},warning:{},notReported:{},notApplicable:{},icon:{}}),{name:"CheckResultStateBox"}),k={[e.Passed]:f,[e.Failed]:u,[e.Warning]:C,[e.NotReported]:r,[e.NotApplicable]:r},h={[e.Passed]:"Check passed",[e.Failed]:"Check did not pass",[e.Warning]:"Check produced warning(s)",[e.NotReported]:"Check not reported",[e.NotApplicable]:"Check not applicable"},b={[e.Passed]:"passed",[e.Failed]:"failed",[e.Warning]:"warning",[e.NotReported]:"notReported",[e.NotApplicable]:"notApplicable"},R=(t,a)=>({[e.Passed]:a.palette.success.main,[e.Failed]:a.palette.error.main,[e.Warning]:a.palette.warning.main,[e.NotReported]:a.palette.info.main,[e.NotApplicable]:a.palette.info.main})[t],w=({state:t,notes:a})=>{var i;const o=N(),l=c(),p=(i=k[t])!=null?i:r;return n.createElement(d,{variant:"outlined",className:`${o.root} ${o[b[t]]}`},n.createElement("div",{className:o.iconContainer},n.createElement(p,{className:o.icon,htmlColor:R(t,l)})),n.createElement("div",null,n.createElement(g,{variant:"subtitle1"},h[t]),a?n.createElement(s,{className:o.markdownContent,content:a}):null))};export{w as ResultStateBox};
|
|
2
|
+
//# sourceMappingURL=ResultStateBox.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as r}from"@material-ui/core";import{Skeleton as t}from"@material-ui/lab";import e from"react";import{FadeIn as l}from"../../FadeIn/FadeIn.esm.js";import{useStyles as n}from"../CheckDetails.esm.js";const c=()=>{const a=n();return e.createElement(l,null,e.createElement("div",{className:a.root,"data-testid":"check-details-view"},e.createElement("div",{className:a.topBar},e.createElement(r,{variant:"h2",className:a.title},e.createElement(t,{width:300,height:32})),e.createElement(t,{width:100,height:32})),e.createElement(t,{variant:"rect",height:120}),e.createElement("div",{"data-testid":"soundcheck-check-details-description"},e.createElement(r,{variant:"h3"},e.createElement(t,null)),e.createElement(t,null),e.createElement(t,null),e.createElement(t,null))))};export{c as CheckDetailsSkeleton};
|
|
2
|
+
//# sourceMappingURL=CheckDetailsSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as y,useTheme as x,Box as d,Typography as f}from"@material-ui/core";import r from"react";import{CircularProgressbar as R,buildStyles as k}from"react-circular-progressbar";import{checkPassRatesSummaryCsvFilename as P}from"../../utils/charts.esm.js";import"recharts";import{convertPassRateToDataPoints as T}from"../Charts/ChartTypes.esm.js";import"../Charts/LineChart/LineChart.esm.js";import{getChartFontColor as c,getChartColors as S}from"../Charts/chartUtils.esm.js";import{PassRateHistoryLineChart as E}from"../Charts/LineChart/PassRateHistoryLineChart.esm.js";import"luxon";import{useSummaryAggregationsContext as D}from"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../Charts/BarChart/BarChart.esm.js";import{OverviewChartCard as b}from"../OverviewChartCard/OverviewChartCard.esm.js";import"../OverviewChartCard/OverviewChartCardStyles.esm.js";import"react-circular-progressbar/dist/styles.css";import{overallCheckPassRateToCsv as H}from"../TechHealthTabs/TechHealthExportFunctions.esm.js";const z=y(e=>({chartHeader:{marginBottom:e.spacing(2)},overallSummaryBox:{display:"flex",flexDirection:"column",height:"100%",color:c(e),textAlign:"center",gap:e.spacing(2)},percentage:{fontSize:e.typography.pxToRem(65),lineHeight:`${e.typography.pxToRem(88)}px`,fontWeight:"bold"},summaryText:{fontSize:e.typography.pxToRem(14),lineHeight:`${e.typography.pxToRem(14)}px`}})),B=()=>{var e,i,m,n;const l=x(),p=z(),{checkPassRateTrend:{data:t,isLoading:h,isError:C}}=D(),a=(i=(e=t==null?void 0:t.overallCheckPassRates)==null?void 0:e.length)!=null?i:0,g=T((m=t==null?void 0:t.overallCheckPassRates)!=null?m:[]),o=a?(n=t==null?void 0:t.overallCheckPassRates)==null?void 0:n[a-1]:void 0;let s;o?s=`${o}%`:s="No Data";const u=r.createElement(d,{className:p.overallSummaryBox},r.createElement(R,{value:o!=null?o:0,text:s,styles:k({textColor:c(l),pathColor:S(l)[0],trailColor:l.palette.divider,textSize:a?void 0:8})}),r.createElement(f,{className:p.summaryText},"Current check pass rate")),v=!(t!=null&&t.overallCheckPassRates)||!a||h||C;return r.createElement(b,{title:"Check pass rate",subtitle:"Aggregate pass rate for checks",summaryCardContent:u,chartSectionContent:r.createElement(E,{chartData:g}),disableDataExport:v,csvFilename:P,csvData:H(t)})};export{B as CheckHistoryChartCard};
|
|
2
|
+
//# sourceMappingURL=CheckHistoryChartCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withStyles as r}from"@material-ui/core";import m from"@material-ui/icons/Check";import i from"@material-ui/icons/Close";import c from"@material-ui/icons/HelpOutline";import n from"@material-ui/icons/RemoveCircleOutline";import p from"@material-ui/icons/ReportProblemOutlined";import o from"react";import{ResultState as a}from"../../graphql/generated/index.esm.js";import{resultToText as s}from"../../text.esm.js";const f=r(e=>({root:{color:e.palette.success.main}}))(m),d=r(e=>({root:{color:e.palette.error.main}}))(i),u=r(e=>({root:{color:e.palette.warning.main}}))(p),E=r(e=>({root:{color:e.palette.info.main}}))(c),b=r(e=>({root:{color:e.palette.text.disabled}}))(n),N=({result:e,className:l})=>{const t={className:l,"aria-label":s(e),"aria-hidden":!1};return e===a.Passed?o.createElement(f,{...t}):e===a.NotReported?o.createElement(E,{...t}):e===a.Failed?o.createElement(d,{...t}):e===a.Warning?o.createElement(u,{...t}):e===a.NotApplicable?o.createElement(b,{...t}):null};export{N as CheckIcon};
|
|
2
|
+
//# sourceMappingURL=CheckIcon.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e,{useEffect as i}from"react";import"../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as p}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as c}from"../../hooks/useNavigateBack.esm.js";import{checksPageRouteRef as s}from"../../routes.esm.js";import{CheckForm as a}from"../ChecksPage/MutateCheckViews/CheckForm/CheckForm.esm.js";import"@material-ui/core";import"../ChecksPage/MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js";import"../ChecksPage/MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js";import"../ChecksPage/MutateCheckViews/types/ExpressionType.esm.js";import"../ChecksPage/MutateCheckViews/types/CheckFormTypes.esm.js";import"../Frequency/types.esm.js";import"../Frequency/util.esm.js";import"../Frequency/FrequencyComponent.esm.js";import"../ChecksPage/MutateCheckViews/types/Path.esm.js";const n=({check:o})=>{const{selectedItem:r,showReadOnlyModal:t}=p();i(()=>{t(o)},[o,t]);const[m]=c(s);return r&&e.createElement(a,{title:"Check Details",open:!0,onClose:m,onSave:()=>{}})};export{n as CheckDetailsView};
|
|
2
|
+
//# sourceMappingURL=CheckDetailsView.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import f,{useEffect as r}from"react";import"../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as i}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as k}from"../../hooks/useNavigateBack.esm.js";import{useUpdateCheck as u}from"../../hooks/checks/useUpdateCheck.esm.js";import{checksPageRouteRef as d}from"../../routes.esm.js";import{CheckForm as h}from"../ChecksPage/MutateCheckViews/CheckForm/CheckForm.esm.js";import"@material-ui/core";import"../ChecksPage/MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js";import"../ChecksPage/MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js";import"../ChecksPage/MutateCheckViews/types/ExpressionType.esm.js";import"../ChecksPage/MutateCheckViews/types/CheckFormTypes.esm.js";import"../Frequency/types.esm.js";import"../Frequency/util.esm.js";import"../Frequency/FrequencyComponent.esm.js";import"../ChecksPage/MutateCheckViews/types/Path.esm.js";const C=({check:t})=>{const{selectedItem:p,setSelectedItem:o}=i(),{setIsLoading:e}=i(),{mutateAsync:c,isLoading:m}=u();r(()=>{e(m)},[e,m]),r(()=>{o(t)},[t,o]);const[s,a]=k(d);return p&&f.createElement(h,{title:"Edit a Check",open:!0,onClose:s,onSave:async n=>{await c(n,{onSuccess:a})}})};export{C as CheckEditView};
|
|
2
|
+
//# sourceMappingURL=CheckEditView.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{usePermission as s}from"@backstage/plugin-permission-react";import{soundcheckCheckUpdatePermission as h,soundcheckCheckReadPermission as k}from"@spotify/backstage-plugin-soundcheck-common";import e from"react";import{useParams as f}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as g}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import{useGetChecks as E}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{LoadingIndicator as C}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as w}from"../PageWarningMessage/PageWarningMessage.esm.js";import{CheckDetailsView as P}from"./CheckDetailsView.esm.js";import{CheckEditView as v}from"./CheckEditView.esm.js";const F=()=>{var m,n;const{checkId:r}=f(),{data:l,isLoading:c}=E({ids:[r!=null?r:""],first:1}),o=(n=(m=l==null?void 0:l.edges)==null?void 0:m[0])==null?void 0:n.node,{loading:d,allowed:p}=s({permission:h,resourceRef:r}),{loading:u,allowed:i}=s({permission:k,resourceRef:r}),t=d||u||c,a=p&&(o==null?void 0:o.isEditable);return e.createElement(e.Fragment,null,e.createElement(w,{entityName:"check",entityId:r,showCannotView:!t&&!i,showNotFound:!t&&!o}),t&&e.createElement(C,null),e.createElement(g,null,!t&&!!o&&e.createElement(e.Fragment,null,a&&i&&e.createElement(v,{check:o}),!a&&i&&e.createElement(P,{check:o}))))};export{F as CheckPage};
|
|
2
|
+
//# sourceMappingURL=CheckPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{FormHelperText as s}from"@material-ui/core";import i from"react";const u=l=>{var t,r,o;let n,e;return l!=null&&l.name?(n="Check name",e=(t=l==null?void 0:l.name)==null?void 0:t.message):l!=null&&l.description?(n="Check description",e=(r=l==null?void 0:l.description)==null?void 0:r.message):l!=null&&l.id&&(n="Check ID",e=(o=l==null?void 0:l.id)==null?void 0:o.message),`${n}: ${e}`},m=({checksErrors:l})=>{var t;let r=null;return l!=null&&l.message?r=i.createElement(s,{error:!0},l.message):l!=null&&l.length&&l.length>0&&(r=i.createElement(i.Fragment,null,(t=l.map)==null?void 0:t.call(l,(o,n)=>{if(o){const e=u(o);return i.createElement(s,{key:n,error:!0},e)}return null}))),r};export{m as ChecksErrors};
|
|
2
|
+
//# sourceMappingURL=ChecksErrors.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as Q,featureFlagsApiRef as Y}from"@backstage/core-plugin-api";import{usePermission as z}from"@backstage/plugin-permission-react";import{makeStyles as J,Button as x,Grid as i}from"@material-ui/core";import{soundcheckCheckCreatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as a,useEffect as U}from"react";import V from"react-use/lib/useDebounce";import"../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as X}from"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.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{useGetChecks as Z}from"../../../hooks/checks/useGetChecks.esm.js";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetCheckOwners as _}from"../../../hooks/checks/useGetCheckOwners.esm.js";import $ from"../../../images/no-results.svg";import{FilterDefault as b}from"../../../utils/filters.esm.js";import{EmptyState as S}from"../../EmptyState/EmptyState.esm.js";import{Pagination as ee}from"../../Pagination/Pagination.esm.js";import{SearchFilters as te}from"../../SearchFilters/SearchFilters.esm.js";import"react-hook-form";import"../../../utils/formStyles.esm.js";import"../../Filter/FilterComponent.esm.js";import"../../FormStepper/FormStepper.esm.js";import"../../FullScreenDialog/FullScreenDialog.esm.js";import"../MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js";import"../MutateCheckViews/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import"../../FormMarkdownInput/FormMarkdownInput.esm.js";import"../MutateCheckViews/utils/checkFormUtils.esm.js";import"../MutateCheckViews/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"../MutateCheckViews/FormFields/RuleInput/AddMenuButton.esm.js";import"../MutateCheckViews/FormFields/RuleInput/RuleInputBox.esm.js";import"../MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"../MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/icons/Delete";import"../../FormControlledSelect/FormControlledSelect.esm.js";import"../MutateCheckViews/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js";import"../MutateCheckViews/FormFields/RuleInput/Conditions/styles.esm.js";import"../MutateCheckViews/FormFields/RuleInput/Conditions/ConditionList.esm.js";import"../MutateCheckViews/FormFields/CheckScheduleSection/ScheduleSection.esm.js";import"@hookform/resolvers/zod";import"../MutateCheckViews/utils/validation.esm.js";import"../MutateCheckViews/types/ExpressionType.esm.js";import{CheckEmptyState as u,CheckNoResults as y}from"../MutateCheckViews/types/CheckFormTypes.esm.js";import"../../Frequency/types.esm.js";import"../../Frequency/util.esm.js";import"../../Frequency/FrequencyComponent.esm.js";import"../MutateCheckViews/types/Path.esm.js";import"../MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js";import"../MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js";import{ChecksOverviewSkeleton as re}from"../skeletons/ChecksOverviewSkeleton.esm.js";import{CheckSummaryCard as oe}from"./CheckSummaryCard.esm.js";const ie=J(o=>({headerButtons:{display:"flex",gap:o.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:o.spacing(0,0,1)},container:{padding:o.spacing(3),gap:o.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:o.spacing(1.5),paddingBottom:o.spacing(1.5)}})),ae=({checksPerPage:o,currentCursor:A})=>{var g;const s=ie(),[h,N]=a(A),[c,B]=a(""),[f,I]=a(b.Alpha),[C,F]=a(b.Owner),[O,L]=a(""),{data:R,isLoading:T}=_();V(()=>{L(c)},500,[c]);const{loading:k,allowed:D}=z({permission:K}),{data:r,isLoading:p}=Z({ids:void 0,first:o,after:h,orderAlphabetical:f,searchByOwner:C,searchByName:O}),[n,G]=a(r),m=(g=n==null?void 0:n.edges)==null?void 0:g.map(t=>t.node),[d,j]=a([]),P=Q(Y),H=!P.getRegisteredFlags().find(t=>t.name==="soundcheck-enable-check-creation")||P.isActive("soundcheck-enable-check-creation"),v=!D||!H,M=t=>{I(t.target.value)},W=t=>{F(t.target.value)};U(()=>{r&&G(()=>{var t,w;return{totalCount:r.totalCount,edges:r.edges,pageInfo:{startCursor:r.pageInfo.startCursor,endCursor:r.pageInfo.endCursor,hasNextPage:(t=r==null?void 0:r.pageInfo.hasNextPage)!=null?t:!1,hasPreviousPage:(w=r==null?void 0:r.pageInfo.hasPreviousPage)!=null?w:!1}}})},[r]);const{setShowAddModal:E}=X();if(!p&&!m)return e.createElement(S,{title:u.title,description:u.description,imgSrc:$,action:!k&&e.createElement(x,{disabled:v,variant:"contained",color:"primary",onClick:()=>E(!0)},u.callToAction)});let l;p?l=e.createElement(re,null):m!=null&&m.length?l=m==null?void 0:m.map(t=>e.createElement(i,{key:t.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},e.createElement(oe,{check:t}))):l=e.createElement(i,{xs:12,item:!0,role:"listitem","aria-label":"result"},e.createElement(S,{title:y.title,description:y.description}));const q=(n==null?void 0:n.pageInfo.hasNextPage)||(d==null?void 0:d.length)>0;return e.createElement(i,{container:!0,direction:"row",className:s.container},e.createElement(i,{container:!0,className:s.header},e.createElement(te,{searchPlaceholder:"Search Available Checks",isLoading:p||T,searchTerm:c,setSearchTerm:B,filterAlpha:f,handleAlphabeticalFilterChange:M,filterOwner:C,handleOwnerFilterChange:W,owners:R}),e.createElement(i,{item:!0,xs:2,className:s.headerButtons},!k&&e.createElement(x,{disabled:v,variant:"contained",color:"primary",onClick:()=>E(!0),className:s.createButton},"Create Check"))),e.createElement(i,{container:!0,spacing:4,role:"list","aria-label":"checks"},l),q&&e.createElement(i,{item:!0,xs:12},e.createElement(ee,{response:n,listingsPerPage:o,cursor:h,setCursor:N,prevCursors:d,setPrevCursors:j,labelPerPageDropdown:"Checks Per Page:",urlRoute:"checks?checksPerPage="})))};export{ae as CheckListPage};
|
|
2
|
+
//# sourceMappingURL=CheckListPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{EntityRefLink as a}from"@backstage/plugin-catalog-react";import{makeStyles as r,List as o,Typography as c,ListItem as m,Tooltip as l,ListItemIcon as s,ListItemText as d}from"@material-ui/core";import p from"@material-ui/icons/Group";import e from"react";const h=r(n=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:n.spacing(2)},listItem:{padding:0},listItemText:{margin:0},iconContainer:{minWidth:"auto",paddingRight:n.spacing(1)},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),g=({check:n})=>{var i;const t=h();return e.createElement(o,{dense:!0,disablePadding:!0,className:t.cardSection},e.createElement(c,{variant:"overline",color:"textSecondary"},"Check Details"),e.createElement(m,{disableGutters:!0,className:t.listItem},e.createElement(l,{title:"Owner"},e.createElement(s,{className:t.iconContainer},e.createElement(p,{color:"inherit",fontSize:"small"}))),e.createElement(d,{className:t.listItemText,primary:e.createElement(a,{entityRef:(i=n.ownerEntityRef)!=null?i:"No Owner",hideIcon:!0,className:t.ownerLink})})))};export{g as CheckMetadata};
|
|
2
|
+
//# sourceMappingURL=CheckMetadata.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useRouteRef as R}from"@backstage/core-plugin-api";import{usePermission as l}from"@backstage/plugin-permission-react";import{soundcheckCheckUpdatePermission as E,soundcheckCheckDeletePermission as g}from"@spotify/backstage-plugin-soundcheck-common";import d,{useCallback as t}from"react";import{useNavigate as D}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as v}from"../../../hooks/useConfirmationModal.esm.js";import{useDeleteCheck as x}from"../../../hooks/checks/useDeleteCheck.esm.js";import{checkDetailsRouteRef as M}from"../../../routes.esm.js";import{exportCheck as P}from"../../../utils/export.esm.js";import{SummaryCard as S}from"../../SummaryCard/SummaryCard.esm.js";import{CheckMetadata as b}from"./CheckMetadata.esm.js";const $=({check:r})=>{const{id:e,name:o,description:p,isEditable:i,ownerEntityRef:h}=r,m=D(),a=R(M),{loading:u,allowed:f}=l({permission:E,resourceRef:e}),{loading:k,allowed:C}=l({permission:g,resourceRef:e}),{showModal:c}=v(),{mutate:s}=x(),w=t(async()=>{await c({title:"Delete Check",message:`Are you sure you want to delete the check '${o!=null?o:e}'?`})&&s(e)},[c,o,s,e]),n=t(()=>{m(a({checkId:e}))},[a,e,m]),y=t(()=>{P(r)},[r]);return d.createElement(S,{title:o!=null?o:e,description:p,children:h&&d.createElement(b,{check:r}),handleView:n,handleEdit:i&&!u&&f?n:void 0,handleDelete:i&&!k&&C?w:void 0,handleExport:y})};export{$ as CheckSummaryCard};
|
|
2
|
+
//# sourceMappingURL=CheckSummaryCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import r from"react";import{useSearchParams as p}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as e}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{RESULTS_PER_PAGE as c}from"../../utils/filters.esm.js";import{CheckListPage as a}from"./CheckListPage/CheckListPage.esm.js";import"react-hook-form";import"@material-ui/core";import"../../utils/formStyles.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../Filter/FilterComponent.esm.js";import"../FormStepper/FormStepper.esm.js";import"../FullScreenDialog/FullScreenDialog.esm.js";import"./MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js";import"./MutateCheckViews/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import"../FormMarkdownInput/FormMarkdownInput.esm.js";import"./MutateCheckViews/utils/checkFormUtils.esm.js";import"./MutateCheckViews/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"./MutateCheckViews/FormFields/RuleInput/AddMenuButton.esm.js";import"./MutateCheckViews/FormFields/RuleInput/RuleInputBox.esm.js";import"./MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"./MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/icons/Delete";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../FormControlledSelect/FormControlledSelect.esm.js";import"./MutateCheckViews/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js";import"./MutateCheckViews/FormFields/RuleInput/Conditions/styles.esm.js";import"../../hooks/graphqlKeys.esm.js";import"./MutateCheckViews/FormFields/RuleInput/Conditions/ConditionList.esm.js";import"./MutateCheckViews/FormFields/CheckScheduleSection/ScheduleSection.esm.js";import"@hookform/resolvers/zod";import"@backstage/catalog-model";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"./MutateCheckViews/utils/validation.esm.js";import"./MutateCheckViews/types/ExpressionType.esm.js";import"./MutateCheckViews/types/CheckFormTypes.esm.js";import"../Frequency/types.esm.js";import"../Frequency/util.esm.js";import"../Frequency/FrequencyComponent.esm.js";import"./MutateCheckViews/types/Path.esm.js";import"./MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js";import"./MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js";import{AddCheckView as s}from"./MutateCheckViews/AddCheckView.esm.js";const n=()=>{const[o]=p(),t=o.get("checksPerPage"),m=t?parseInt(t,10):c,{showAddModal:i}=e();return r.createElement("div",null,r.createElement(a,{checksPerPage:m}),i&&r.createElement(s,null))};export{n as ChecksPage};
|
|
2
|
+
//# sourceMappingURL=ChecksPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import c,{useEffect as s}from"react";import"../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as a}from"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{useCreateCheck as n}from"../../../hooks/checks/useCreateCheck.esm.js";import{CheckForm as p}from"./CheckForm/CheckForm.esm.js";import"@material-ui/core";import"./CheckForm/Steps/CheckDetailsStep.esm.js";import"./CheckForm/Steps/CheckRulesStep.esm.js";const d=()=>{const{hideModal:e,showAddModal:r,setIsLoading:o}=a(),{mutateAsync:m,isLoading:t}=n();return s(()=>{o(t)},[o,t]),c.createElement(p,{title:"Create a Check",open:r,onSave:async i=>{await m(i,{onSuccess:()=>e()})},onClose:()=>e()})};export{d as AddCheckView};
|
|
2
|
+
//# sourceMappingURL=AddCheckView.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{FormProvider as h}from"react-hook-form";import"../../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as f}from"../../../../contexts/CheckFormContext.esm.js";import"../../../../contexts/CampaignFormContext.esm.js";import"../../../../contexts/UserProvider.esm.js";import{FormFilterSection as S}from"../../../FormFilterSection/FormFilterSection.esm.js";import{FormStepper as u}from"../../../FormStepper/FormStepper.esm.js";import{FullScreenDialog as C}from"../../../FullScreenDialog/FullScreenDialog.esm.js";import"../FormFields/CheckNameInput/CheckNameInput.esm.js";import"../FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import"../../../FormMarkdownInput/FormMarkdownInput.esm.js";import{CHECK_FIELDS as b}from"../utils/checkFormUtils.esm.js";import"../FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"../FormFields/RuleInput/AddMenuButton.esm.js";import"../FormFields/RuleInput/RuleInputBox.esm.js";import"../FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"../FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/core";import"@material-ui/icons/Delete";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../api.esm.js";import"../../../FormControlledSelect/FormControlledSelect.esm.js";import"../FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js";import"../FormFields/RuleInput/Conditions/styles.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../../hooks/graphqlKeys.esm.js";import"../FormFields/RuleInput/Conditions/ConditionList.esm.js";import{ScheduleSection as E}from"../FormFields/CheckScheduleSection/ScheduleSection.esm.js";import{useCheckForm as k}from"../hooks/useCheckForm.esm.js";import"../types/ExpressionType.esm.js";import{CheckStepNameMapping as F}from"../types/CheckFormTypes.esm.js";import"../../../Frequency/types.esm.js";import"../../../Frequency/util.esm.js";import"../../../Frequency/FrequencyComponent.esm.js";import"../types/Path.esm.js";import{CheckFormDescription as g}from"./CheckFormDescription.esm.js";import{CheckDetailsStep as v}from"./Steps/CheckDetailsStep.esm.js";import{CheckRulesStep as y}from"./Steps/CheckRulesStep.esm.js";const D=({title:l,open:p,onSave:a,onClose:o})=>{const{hideModal:i,isLoading:c,isReadOnly:r,selectedItem:s}=f(),{formMethods:t,onSubmit:m}=k(a),n=[{label:"Enter check details",content:()=>e.createElement(v,null)},{label:"Add rules",content:()=>e.createElement(y,null)},{label:"Choose the affected entities (Optional)",content:()=>e.createElement(S,{name:"filtersStep.filter",control:t.control,disabled:r,description:b.filter.description})},{label:"Set the check schedule (Optional)",content:()=>e.createElement(E,{control:t.control,disabled:r})}],d=s?[...Array(n.length).keys()]:[0];return e.createElement(C,{handleClose:o?()=>o():i,title:l,open:p},e.createElement(h,{...t},e.createElement("form",{onSubmit:t.handleSubmit(m)},e.createElement(u,{onClose:o?()=>o():i,handleSubmit:t.handleSubmit,trigger:t.trigger,onSubmit:m,initialVisited:d,stepNameMap:F,steps:n,isLoading:c,isReadOnly:r,saveButtonText:"Save Check",detailsComponent:e.createElement(g,null)}))))};export{D as CheckForm};
|
|
2
|
+
//# sourceMappingURL=CheckForm.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as a}from"@material-ui/core";import e from"react";const t=()=>e.createElement("div",{style:{display:"flex",gap:"10px",flexDirection:"column"}},e.createElement(a,{variant:"h6"},"Creating and managing checks"),e.createElement(a,{variant:"body1"},"Checks are entities created from four components: facts, paths, operators and values. These components are then organized via a boolean calculator in the UI."),e.createElement(a,{variant:"body1"},"To create a check, select the components that you want to use, organize them into rules and give your check a meaningful name and a description."),e.createElement(a,{variant:"body1"},"Once created, you will be able to manage and edit your track on its detail page."));export{t as CheckFormDescription};
|
|
2
|
+
//# sourceMappingURL=CheckFormDescription.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as a}from"@material-ui/core/styles";import r from"react";import{useFormContext as s}from"react-hook-form";import"../../../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as c}from"../../../../../contexts/CheckFormContext.esm.js";import"../../../../../contexts/CampaignFormContext.esm.js";import"../../../../../contexts/UserProvider.esm.js";import{CheckNameInput as d}from"../../FormFields/CheckNameInput/CheckNameInput.esm.js";import"../../FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import{CheckDescriptionInput as u}from"../../FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js";import{TeamDetailsInput as f}from"../../FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"../../FormFields/RuleInput/AddMenuButton.esm.js";import"../../FormFields/RuleInput/RuleInputBox.esm.js";import"../../FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"../../FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/core";import"@material-ui/icons/Delete";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../../api.esm.js";import"../../../../FormControlledSelect/FormControlledSelect.esm.js";import"../../FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js";import"../../FormFields/RuleInput/Conditions/styles.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../../../hooks/graphqlKeys.esm.js";import"../../utils/checkFormUtils.esm.js";import"../../FormFields/RuleInput/Conditions/ConditionList.esm.js";import"../../FormFields/CheckScheduleSection/ScheduleSection.esm.js";const v=a(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(1)}})),C=()=>{var t,m,p;const l=v(),{isLoading:n,isReadOnly:i}=c(),{control:e,formState:{errors:o}}=s();return r.createElement("div",{className:l.container},r.createElement(d,{control:e,error:(t=o==null?void 0:o.detailsStep)==null?void 0:t.name,isLoading:n,disabled:i}),r.createElement(u,{control:e,error:(m=o==null?void 0:o.detailsStep)==null?void 0:m.description,isLoading:n,disabled:i}),r.createElement(f,{control:e,disabled:i,error:(p=o==null?void 0:o.detailsStep)==null?void 0:p.ownerEntityRef}))};export{C as CheckDetailsStep};
|
|
2
|
+
//# sourceMappingURL=CheckDetailsStep.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as r,FormControlLabel as p,Checkbox as c}from"@material-ui/core";import{makeStyles as s}from"@material-ui/core/styles";import e from"react";import{useFormContext as d,Controller as u}from"react-hook-form";import"../../../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as E}from"../../../../../contexts/CheckFormContext.esm.js";import"../../../../../contexts/CampaignFormContext.esm.js";import"../../../../../contexts/UserProvider.esm.js";import"../../FormFields/CheckNameInput/CheckNameInput.esm.js";import{PassFailMessageInput as C}from"../../FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import"../../../../FormMarkdownInput/FormMarkdownInput.esm.js";import{CHECK_FIELDS as f}from"../../utils/checkFormUtils.esm.js";import"../../FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"../../FormFields/RuleInput/AddMenuButton.esm.js";import{RuleInputBox as v}from"../../FormFields/RuleInput/RuleInputBox.esm.js";import"../../FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"../../FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/icons/Delete";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../../api.esm.js";import"../../../../FormControlledSelect/FormControlledSelect.esm.js";import"../../FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js";import"../../FormFields/RuleInput/Conditions/styles.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../../../hooks/graphqlKeys.esm.js";import"../../FormFields/RuleInput/Conditions/ConditionList.esm.js";import"../../FormFields/CheckScheduleSection/ScheduleSection.esm.js";const g=s(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(2)},innerContainer:{display:"flex",flexDirection:"column"}})),x=()=>{const t=g(),{isLoading:l,isReadOnly:n}=E(),{control:i}=d(),{rules:a,warnings:o}=f.rulesStep;return e.createElement("div",{className:t.container},e.createElement("div",{className:t.innerContainer},e.createElement("div",null,e.createElement(r,{variant:"subtitle2"},a.name),e.createElement(r,{variant:"caption"},a.description)),e.createElement(v,{disabled:n,name:"rulesStep.expressions",depth:0})),e.createElement(C,{control:i,isLoading:l,disabled:n}),e.createElement("div",{className:t.container},e.createElement("div",{className:t.innerContainer},e.createElement("div",null,e.createElement(r,{variant:"subtitle2"},o.name),e.createElement(r,{variant:"caption"},o.description)),e.createElement(u,{name:"rulesStep.warning",control:i,render:({field:m})=>e.createElement(p,{disabled:n,control:e.createElement(c,{checked:m.value,onChange:m.onChange}),label:o.label})}))))};export{x as CheckRulesStep};
|
|
2
|
+
//# sourceMappingURL=CheckRulesStep.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import n from"react";import{FormMarkdownInput as d}from"../../../../FormMarkdownInput/FormMarkdownInput.esm.js";import{CHECK_FIELDS as p}from"../../utils/checkFormUtils.esm.js";const c=({control:r,isLoading:t,disabled:o,error:i})=>{const{description:e}=p.details;return n.createElement(d,{name:"detailsStep.description",control:r,error:i,label:e.name,description:e.description,placeholder:o?void 0:e.placeholder,disabled:o||t})};export{c as CheckDescriptionInput};
|
|
2
|
+
//# sourceMappingURL=CheckDescriptionInput.esm.js.map
|
package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as o,TextField as c}from"@material-ui/core";import{makeStyles as d}from"@material-ui/core/styles";import e from"react";import{Controller as s}from"react-hook-form";import{CHECK_FIELDS as u}from"../../utils/checkFormUtils.esm.js";const f=d(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(1)},helperText:{marginLeft:0}})),x=({control:t,error:l,isLoading:i,disabled:m})=>{const a=f(),{name:r}=u.details;return e.createElement("div",{className:a.container},e.createElement("div",null,e.createElement(o,{variant:"subtitle2"},r.name),e.createElement(o,{variant:"caption"},r.description)),e.createElement(s,{name:"detailsStep.name",control:t,defaultValue:"",render:({field:p})=>{var n;return e.createElement(c,{...p,FormHelperTextProps:{className:a.helperText},variant:"outlined",fullWidth:!0,placeholder:r.placeholder,disabled:i||m,type:"text",margin:"dense",error:!!l,helperText:(n=l==null?void 0:l.message)!=null?n:r.helperText})}}))};export{x as CheckNameInput};
|
|
2
|
+
//# sourceMappingURL=CheckNameInput.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as s,Typography as p,Grid as n,FormControlLabel as h,Checkbox as u}from"@material-ui/core";import e from"react";import{useWatch as E,Controller as l}from"react-hook-form";import"../../../../Frequency/types.esm.js";import"../../../../Frequency/util.esm.js";import{FrequencyComponent as b}from"../../../../Frequency/FrequencyComponent.esm.js";import{CHECK_FIELDS as f}from"../../utils/checkFormUtils.esm.js";const C=s(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(1)}})),y=({control:t,disabled:o})=>{const c=C(),a=E({control:t,name:"scheduleStep.schedule"}),{description:m,checkboxLabel:i}=f.schedule;return e.createElement("div",{className:c.container},e.createElement(p,{variant:"body2"},m),e.createElement(n,{item:!0,xs:12},e.createElement(n,{item:!0},e.createElement(l,{name:"scheduleStep.schedule.enabled",control:t,render:({field:r})=>e.createElement(h,{disabled:o,control:e.createElement(u,{checked:r.value,onChange:r.onChange}),label:i})})),e.createElement(n,{item:!0},e.createElement(l,{name:"scheduleStep.schedule.frequency",control:t,render:({field:r,fieldState:d})=>e.createElement(b,{disabled:o||!a.enabled,value:r.value,onChange:r.onChange,errors:d.error})}))))};export{y as ScheduleSection};
|
|
2
|
+
//# sourceMappingURL=ScheduleSection.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as s,Tabs as v,Tab as o}from"@material-ui/core";import{makeStyles as h}from"@material-ui/core/styles";import e,{useState as M}from"react";import{FormMarkdownInput as i}from"../../../../FormMarkdownInput/FormMarkdownInput.esm.js";import{CHECK_FIELDS as S}from"../../utils/checkFormUtils.esm.js";const C=h(a=>({container:{display:"flex",flexDirection:"column",gap:a.spacing(1)},tabContent:{padding:a.spacing(1)}})),T=({control:a,isLoading:l,disabled:n})=>{const r=C(),[t,c]=M(0),{name:m,description:p,passMessagePlaceholder:d,failMessagePlaceholder:b,passedTabName:g,failedTabName:u}=S.rulesStep.messages,E=(y,f)=>{c(f)};return e.createElement("div",{className:r.container},e.createElement("div",null,e.createElement(s,{variant:"subtitle2"},m),e.createElement(s,{variant:"caption"},p)),e.createElement(v,{orientation:"horizontal",variant:"scrollable",value:t,onChange:E},e.createElement(o,{label:g}),e.createElement(o,{label:u})),e.createElement("div",{className:r.tabContent},t===0&&e.createElement(i,{name:"rulesStep.passedMessage",control:a,placeholder:d,disabled:l||n}),t===1&&e.createElement(i,{name:"rulesStep.failedMessage",control:a,placeholder:b,disabled:l||n})))};export{T as PassFailMessageInput};
|
|
2
|
+
//# sourceMappingURL=PassFailMessageInput.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as m,Box as o,ButtonGroup as p,Button as E,Menu as b,MenuItem as l}from"@material-ui/core";import g from"@material-ui/icons/ArrowDropDown";import e,{useState as x}from"react";const A=m(t=>({label:{paddingRight:t.spacing(2)},icon:{borderLeft:`1px solid ${t.palette.divider}`,display:"flex",alignItems:"center"},menu:{margin:0,backgroundColor:t.palette.background.paper}})),C=({onAddCondition:t,onAddExpression:s})=>{const n=A(),[r,i]=x(null),a=!!r,c=u=>{i(u.currentTarget)},d=()=>{i(null)};return e.createElement(o,null,e.createElement(p,{color:"primary"},e.createElement(E,{"data-testid":"add-button",id:"add-button","aria-controls":a?"add-menu":void 0,"aria-haspopup":"true","aria-expanded":a?"true":void 0,onClick:c,size:"medium"},e.createElement(o,{className:n.label},"Add"),e.createElement(o,{className:n.icon},e.createElement(g,null)))),e.createElement(b,{id:"add-menu",anchorEl:r,open:a,onClose:d,classes:{paper:n.menu},MenuListProps:{"aria-labelledby":"add-button"}},e.createElement(l,{"data-testid":"add-condition",onClick:()=>{t(),d()}},"Add Condition"),e.createElement(l,{"data-testid":"add-expression",onClick:()=>{s(),d()}},"Add Expression")))};export{C as AddMenuButton};
|
|
2
|
+
//# sourceMappingURL=AddMenuButton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Grid as r}from"@material-ui/core";import{makeStyles as s}from"@material-ui/core/styles";import t from"react";import{RuleConditionInput as c}from"./RuleConditionInput.esm.js";const p=s(()=>({noPadding:{padding:0}})),u=({conditions:i,name:n,handleDelete:d,disabled:a,disableDelete:o,depth:l})=>{const m=p();return t.createElement(t.Fragment,null,i.map((b,e)=>t.createElement(r,{item:!0,key:e,className:m.noPadding},t.createElement(c,{name:`${n}.conditions[${e}]`,"data-testid":`${n}-condition-input`,handleDelete:()=>d(e),disabled:a,disableDelete:l===0&&e===0?!0:o}))))};export{u as ConditionList};
|
|
2
|
+
//# sourceMappingURL=ConditionList.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as x,TextField as C}from"@material-ui/core";import{Autocomplete as I}from"@material-ui/lab";import m from"react";import{Controller as S}from"react-hook-form";const s=x(t=>({clearIndicator:{marginRight:t.spacing(1)},helperText:{marginLeft:0},noMargin:{margin:0}})),T=({name:t,rules:p,label:d,control:g,options:u,getOptionLabel:h,getOptionValue:l,onChange:o,disabled:f,placeholder:b})=>{const n=s();return m.createElement(S,{name:t,control:g,rules:p,render:({field:c,fieldState:a})=>m.createElement(I,{...c,freeSolo:!0,autoSelect:!0,"data-testid":`${t}-autocomplete`,style:{minWidth:250},disabled:f,options:u,getOptionLabel:h,classes:{clearIndicator:n.clearIndicator},renderInput:i=>m.createElement(C,{...i,variant:"outlined",label:d,error:a.invalid,placeholder:b,FormHelperTextProps:{className:n.helperText},margin:"dense",className:n.noMargin,helperText:a.error?a.error.message:null}),onChange:(i,e)=>{const r=l?l(e):e;o==null||o(r),c.onChange(r)},onInputChange:(i,e)=>{const r=l?l(e):e;o==null||o(r)}})})};export{T as ControlledAutocomplete,s as useStyles};
|
|
2
|
+
//# sourceMappingURL=ControlledAutocomplete.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Box as a,TextField as I,IconButton as S}from"@material-ui/core";import T from"@material-ui/icons/Delete";import t,{useMemo as h}from"react";import{useFormContext as V,Controller as B}from"react-hook-form";import{useOperators as L}from"../../../../../../hooks/operators/useOperators.esm.js";import{FormControlledSelect as D}from"../../../../../FormControlledSelect/FormControlledSelect.esm.js";import{ControlledAutocomplete as b}from"./ControlledAutocomplete.esm.js";import{useRuleConditionStyles as M}from"./styles.esm.js";import{useRuleOptions as P}from"./useRuleOptions.esm.js";const k=({name:n,handleDelete:C,disabled:i,disableDelete:$})=>{var p;const r=M(),{control:m,getValues:g,setValue:c}=V(),{data:d,isLoading:x}=L(),f=h(()=>{var e;return(e=d==null?void 0:d.map(l=>({value:l.name,label:l.title})))!=null?e:[]},[d]),{pathOptions:N,factRefOptions:o,isLoading:v}=P(n,m),O=h(()=>{var e;return(e=o==null?void 0:o.map(l=>l.value))!=null?e:[]},[o]),E=(p=g("rulesStep.expressions.conditions"))==null?void 0:p.map(({factRef:e})=>e),F=e=>{e&&!(E!=null&&E.includes(e))&&(c(`${n}.path`,""),c(`${n}.operator`,""),c(`${n}.value`,""))};return t.createElement(a,{className:r.container},t.createElement(a,{className:r.connector}),t.createElement(a,{className:r.innerContainer},t.createElement(a,{className:r.inputsContainer},o&&t.createElement(a,null,t.createElement(b,{name:`${n}.factRef`,control:m,placeholder:"Fact",options:O,getOptionLabel:e=>{var l,s;return(s=(l=o==null?void 0:o.find(u=>e===u.value))==null?void 0:l.label)!=null?s:e},getOptionValue:e=>{var l,s,u;return(u=(s=(l=o==null?void 0:o.find(R=>e===R.label))==null?void 0:l.value)!=null?s:e)!=null?u:""},disabled:i||v,onChange:F})),t.createElement(a,null,t.createElement(b,{name:`${n}.path`,placeholder:"Path",control:m,disabled:i||v,options:N})),f&&t.createElement(a,null,t.createElement(D,{name:`${n}.operator`,control:m,placeholder:"Operator",options:f,disabled:x||i})),t.createElement(a,null,t.createElement(B,{name:`${n}.value`,control:m,defaultValue:"",render:({field:e,fieldState:l})=>t.createElement(I,{...e,variant:"outlined",placeholder:"Enter a value",FormHelperTextProps:{className:r.helperText},error:l.invalid,helperText:l.error?l.error.message:null,margin:"dense",disabled:i,className:r.noMargin})})))),!i&&!$&&t.createElement(S,{onClick:C,className:r.deleteButton,"data-test-id":`${n}-delete-button`},t.createElement(T,{className:r.deleteIcon})))};export{k as RuleConditionInput};
|
|
2
|
+
//# sourceMappingURL=RuleConditionInput.esm.js.map
|
package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/styles.esm.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as t}from"@material-ui/core";const n=t(e=>({container:{borderLeft:`1px solid ${e.palette.border}`,marginLeft:e.spacing(2),padding:e.spacing(2,0,2,0),display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(0)},connector:{borderBottom:`1px solid ${e.palette.border}`,padding:e.spacing(0),width:"15px",height:"45px"},innerContainer:{border:`1px solid ${e.palette.border}`,display:"flex",flexDirection:"column"},inputsContainer:{padding:e.spacing(2),display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"flex-start",gap:e.spacing(1)},deleteButton:{marginLeft:e.spacing(1),width:"45px",height:"45px"},deleteIcon:{color:e.palette.text.primary},helperText:{marginLeft:0},noMargin:{margin:0}}));export{n as useRuleConditionStyles};
|
|
2
|
+
//# sourceMappingURL=styles.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseFactRef as c,stringifyFactRef as S}from"@spotify/backstage-plugin-soundcheck-common";import{useState as R,useEffect as g,useMemo as f}from"react";import{useWatch as v}from"react-hook-form";import{useGetCollectors as F}from"../../../../../../hooks/collectors/useGetCollectors.esm.js";import{useGetFactSchema as O}from"../../../../../../hooks/collectors/useGetFactSchema.esm.js";import{generateJsonPaths as y}from"../../../utils/checkFormUtils.esm.js";const G=(t,s)=>{const{data:o,isLoading:i}=F(),a=v({control:s,name:`${t}.factRef`}),[e,m]=R(()=>l(a));g(()=>{m(l(a))},[a]);const{data:n}=O(e==null?void 0:e.source,e==null?void 0:e.name),p=f(()=>n?y(n.schema):[],[n]),d=f(()=>o==null?void 0:o.flatMap(r=>r.factNames.map(h=>{const u=c(h,{defaultSource:r.id,defaultScope:"default"});return{label:u.name,value:S(u)}})),[o]);return{isLoading:i,pathOptions:p,factRefOptions:d}};function l(t){if(t)try{return c(t,{defaultSource:"unknown",defaultScope:"default"})}catch{return null}return null}export{G as useRuleOptions};
|
|
2
|
+
//# sourceMappingURL=useRuleOptions.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Grid as d}from"@material-ui/core";import{makeStyles as i}from"@material-ui/core/styles";import e from"react";import{RuleInputBox as a}from"../RuleInputBox.esm.js";const s=i(()=>({noPadding:{padding:0}})),p=({expression:o,name:t,depth:n,disabled:r})=>{const m=s();return o?e.createElement(d,{item:!0,className:m.noPadding},e.createElement(a,{name:`${t}`,depth:n+1,disabled:r})):null};export{p as ExpressionBox};
|
|
2
|
+
//# sourceMappingURL=ExpressionBox.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as b,ButtonGroup as f,Button as g}from"@material-ui/core";import n,{useState as E}from"react";import{useFormContext as k,Controller as y}from"react-hook-form";import{ExpressionType as l,ExpressionTypeReadableMap as C}from"../../../types/ExpressionType.esm.js";import"../../../types/CheckFormTypes.esm.js";import"../../../../../Frequency/types.esm.js";import"../../../../../Frequency/util.esm.js";import"../../../../../Frequency/FrequencyComponent.esm.js";import"../../../types/Path.esm.js";const x=b(e=>({button:{backgroundColor:e.palette.background.default},selectedButton:{backgroundColor:e.palette.action.hover}})),B=({name:e,disabled:a})=>{const o=x(),{control:m,getValues:p}=k(),s=`${e}`,c=p(s),[i,u]=E(c||l.AllOf),d=r=>{u(r)};return n.createElement(y,{control:m,name:e,render:({field:{onChange:r}})=>n.createElement(f,{color:"primary"},Object.values(l).map(t=>n.createElement(g,{key:t,className:i===t?`${o.selectedButton} ${o.button}`:`${o.button}`,onClick:()=>{d(t),r(t)},disabled:a},C[t])))})};export{B as ExpressionTypeToggle};
|
|
2
|
+
//# sourceMappingURL=ExpressionTypeToggle.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Box as l,Grid as d}from"@material-ui/core";import{makeStyles as b}from"@material-ui/core/styles";import t from"react";import{useFormContext as B}from"react-hook-form";import{AddMenuButton as N}from"./AddMenuButton.esm.js";import"@material-ui/icons/Delete";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../../../api.esm.js";import"../../../../FormControlledSelect/FormControlledSelect.esm.js";import"./Conditions/ControlledAutocomplete.esm.js";import"./Conditions/styles.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../../../hooks/graphqlKeys.esm.js";import"../../utils/checkFormUtils.esm.js";import{ConditionList as y}from"./Conditions/ConditionList.esm.js";import{ExpressionBox as A}from"./Expressions/ExpressionBox.esm.js";import{ExpressionTypeToggle as C}from"./Expressions/ExpressionTypeToggle.esm.js";import{useRuleInputHandlers as P}from"./useRuleInputHandlers.esm.js";const $=b(e=>({root:{padding:0},inner:{marginLeft:e.spacing(2),paddingBottom:e.spacing(2),borderLeft:`1px solid ${e.palette.border}`,display:"flex",flexDirection:"row",gap:0},connector:{borderBottom:`1px solid ${e.palette.border}`,padding:e.spacing(0),width:"15px",height:"20px"},noPadding:{padding:0}})),k=({name:e,depth:o,disabled:i})=>{const n=$(),{getValues:m,setValue:c,trigger:g}=B(),{handleAddCondition:x,handleAddExpression:u,handleDeleteCondition:f}=P(e,m,c,g),E=`${e}`,r=m(E),h=(r==null?void 0:r.conditions)||[],s=r==null?void 0:r.expressions;return t.createElement(l,{className:o>0?n.inner:n.root},o>0&&t.createElement(l,{className:n.connector}),t.createElement(d,{container:!0,spacing:0,direction:"column",className:n.noPadding},t.createElement(d,{item:!0,className:n.noPadding},t.createElement(C,{disabled:i,name:`${e}.expressionType`})),t.createElement(d,{item:!0,container:!0,spacing:0,direction:"column",className:n.noPadding},t.createElement(y,{depth:o,handleDelete:a=>f(a,e),disabled:i,conditions:h,name:e}),s==null?void 0:s.map((a,p)=>t.createElement(A,{key:p,expression:a,name:`${e}.expressions[${p}]`,depth:o,disabled:i}))),!i&&t.createElement(d,{item:!0,className:n.noPadding},t.createElement(N,{onAddCondition:x,onAddExpression:u}))))};export{k as RuleInputBox};
|
|
2
|
+
//# sourceMappingURL=RuleInputBox.esm.js.map
|
package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/useRuleInputHandlers.esm.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ExpressionType as v}from"../../types/ExpressionType.esm.js";import"../../types/CheckFormTypes.esm.js";import"../../../../Frequency/types.esm.js";import"../../../../Frequency/util.esm.js";import"../../../../Frequency/FrequencyComponent.esm.js";import"../../types/Path.esm.js";const h=(a,e,i,t)=>({handleAddCondition:async()=>{const n=`${a}`,o=e(n),l=[...(o==null?void 0:o.conditions)||[],{factRef:"",path:"",operator:"",value:""}],s=`${a}.conditions`;i(s,l),await t(s)},handleAddExpression:async()=>{const n=`${a}.expressions`,o=e(n)||[];o.push({expressionType:v.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",value:""}]}),i(n,o),await t(n)},handleDeleteCondition:async(n,o)=>{var l,s,x,f;const r=((l=o.match(/(.*\.expressions)(?=\[\d+])/))==null?void 0:l[0])||o,p=`${o}.conditions`,d=e(p);if(d.splice(n,1),d.length===0){i(p,void 0);const c=parseInt(o.slice(o.lastIndexOf("[")+1,o.lastIndexOf("]")),10),u=e(r);(x=(s=u[c])==null?void 0:s.expressions)==null||x.splice(c,1),i(r,(f=u[c])!=null&&f.expressions?u:void 0),await t(r)}else i(p,d),await t(p)}});export{h as useRuleInputHandlers};
|
|
2
|
+
//# sourceMappingURL=useRuleInputHandlers.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as a}from"@material-ui/core";import{makeStyles as u}from"@material-ui/core/styles";import{uniqBy as v}from"lodash";import e from"react";import{FormControlledSelect as E}from"../../../../FormControlledSelect/FormControlledSelect.esm.js";import{useOptions as y}from"../../../../GroupSelector/useOptions.esm.js";import{CHECK_FIELDS as b}from"../../utils/checkFormUtils.esm.js";const g=u(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(1)}})),x=({control:t,disabled:n,error:o})=>{var r;const i=g(),{options:m,isLoading:p}=y(),c=v(m.map(l=>({value:l.ref,label:l.name})),"value"),{owner:{name:s,description:d,selectLabel:f}}=b.details;return e.createElement("div",{className:i.container},e.createElement("div",null,e.createElement(a,{variant:"subtitle2"},s),e.createElement(a,{variant:"caption"},d)),e.createElement("div",null,e.createElement(E,{name:"detailsStep.ownerEntityRef",control:t,options:c,placeholder:f,disabled:n||p,helperText:(r=o==null?void 0:o.message)!=null?r:void 0})))};export{x as TeamDetailsInput};
|
|
2
|
+
//# sourceMappingURL=TeamDetailsInput.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{zodResolver as s}from"@hookform/resolvers/zod";import{useForm as a}from"react-hook-form";import"../../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as c}from"../../../../contexts/CheckFormContext.esm.js";import"../../../../contexts/CampaignFormContext.esm.js";import"react";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{useConfirmationModal as n}from"../../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{mapCheckerToFormValues as u,mapToCheckerInput as h,DEFAULT_FORM_VALUES as l}from"../utils/checkFormUtils.esm.js";import{checkFormSchema as f}from"../utils/validation.esm.js";const d=t=>{const{selectedItem:o}=c();let e=l;o&&(e=u(o));const m=a({defaultValues:e,mode:"onChange",resolver:s(f)}),{showModal:i}=n();return{formMethods:m,onSubmit:async r=>{if(!await i({title:"Save Check",message:`Are you sure you want to save check: ${r.detailsStep.name}?`,error:!1}))return;const p=h(r,o);t(p)}}};export{d as useCheckForm};
|
|
2
|
+
//# sourceMappingURL=useCheckForm.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const a={0:"detailsStep",1:"rulesStep",2:"filtersStep",3:"scheduleStep"};var t=(e=>(e.title="Create a check",e.description="A check is a comparison between a defined acceptable outcome and the actual outcome of a given process.",e.callToAction="Get started",e))(t||{}),c=(e=>(e.title="No checks found",e.description="No checks matched your search. Consider changing search term and filters.",e))(c||{});export{t as CheckEmptyState,c as CheckNoResults,a as CheckStepNameMapping};
|
|
2
|
+
//# sourceMappingURL=CheckFormTypes.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const t={COMMON_RELATIONS:{relations:"Relations"},COMMON_STATUS:{status:"Status"},METADATA:{metadata:"Metadata","metadata.name":"Metadata: Name","metadata.namespace":"Metadata: Namespace","metadata.uid":"Metadata: UID","metadata.title":"Metadata: Title","metadata.description":"Metadata: Description","metadata.labels":"Metadata: Labels","metadata.annotations":"Metadata: Annotations","metadata.tags":"Metadata: Tags","metadata.links":"Metadata: Links"},COMPONENT:{component:"Component","component.apiVersion":"Component: API Version","component.kind":"Component: Kind","component.spec.type":"Component: Type","component.spec.lifecycle":"Component: Lifecycle","component.spec.owner":"Component: Owner","component.spec.system":"Component: System","component.spec.subcomponentOf":"Component: Subcomponent Of","component.spec.providesApis":"Component: Provides APIs","component.spec.consumesApis":"Component: Consumes APIs","component.spec.dependsOn":"Component: Depends On"},TEMPLATE:{template:"Template","template.apiVersion":"Template: API Version","template.kind":"Template: Kind","template.metadata.tags":"Template: Metadata Tags","template.spec.type":"Template: Type","template.spec.parameters":"Template: Parameters","template.spec.steps":"Template: Steps","template.spec.owner":"Template: Owner"},API:{api:"API","api.apiVersion":"API: API Version","api.kind":"API: Kind","api.spec.type":"API: Type","api.spec.lifecycle":"API: Lifecycle","api.spec.owner":"API: Owner","api.spec.system":"API: System","api.spec.definition":"API: Definition"},GROUP:{group:"Group","group.apiVersion":"Group: API Version","group.kind":"Group: Kind","group.spec.type":"Group: Type","group.spec.profile":"Group: Profile","group.spec.parent":"Group: Parent","group.spec.children":"Group: Children","group.spec.members":"Group: Members"},USER:{user:"User","user.apiVersion":"User: API Version","user.kind":"User: Kind","user.spec.profile":"User: Profile","user.spec.memberOf":"User: Member Of"},RESOURCE:{resource:"Resource","resource.apiVersion":"Resource: API Version","resource.kind":"Resource: Kind","resource.spec.owner":"Resource: Owner","resource.spec.type":"Resource: Type","resource.spec.system":"Resource: System","resource.spec.dependsOn":"Resource: Depends On","resource.spec.dependencyOf":"Resource: Dependency Of"},SYSTEM:{system:"System","system.apiVersion":"System: API Version","system.kind":"System: Kind","system.spec.owner":"System: Owner","system.spec.domain":"System: Domain"},DOMAIN:{domain:"Domain","domain.apiVersion":"Domain: API Version","domain.kind":"Domain: Kind","domain.spec.owner":"Domain: Owner"},LOCATION:{location:"Location","location.apiVersion":"Location: API Version","location.kind":"Location: Kind","location.spec":"Location: Spec","location.spec.type":"Location: Type","location.spec.target":"Location: Target","location.spec.targets":"Location: Targets","location.spec.presence":"Location: Presence"}},n=e=>Object.keys(e).map(o=>({value:o,label:e[o]}));Object.values(t).flatMap(n);
|
|
2
|
+
//# sourceMappingURL=Path.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{FrequencySchema as v}from"@spotify/backstage-plugin-soundcheck-common";import{isObject as w}from"lodash";import{v4 as k}from"uuid";import{mapInputFilterToFormFilters as x,mapFiltersToInputFilter as E,mapFiltersToCatalogFilter as b}from"../../../Filter/utils.esm.js";import"../../../Filter/FilterComponent.esm.js";import{emptyFilters as T}from"../../../Filter/types.esm.js";import{TimeUnit as d}from"../../../Frequency/types.esm.js";import{isTimeUnit as S}from"../../../Frequency/util.esm.js";import"../../../Frequency/FrequencyComponent.esm.js";import{ExpressionType as c}from"../types/ExpressionType.esm.js";import"../types/CheckFormTypes.esm.js";import{defaultSchedule as C}from"../types/Schedule.esm.js";import"../types/Path.esm.js";import{CHECK_NAME_MAX_LENGTH as R}from"./validation.esm.js";const h=e=>{var r;if(w(e)&&"frequency"in e){const s=v.safeParse(e.frequency);if(s.success){const t=s.data;if("cron"in t)return{enabled:!0,frequency:{type:"cron",unit:d.Hours,value:1,cron:t.cron}};const n=Object.keys(t);if(n.length){const i=n[0];if(S(i))return{enabled:!0,frequency:{type:"HumanDuration",unit:i,value:(r=t[i])!=null?r:1,cron:""}}}}}return{enabled:!1,frequency:{type:"HumanDuration",unit:d.Hours,value:1,cron:""}}},m=(e,r)=>{const{enabled:s,frequency:t}=e;if(s){const{cron:n,type:i,unit:o,value:a}=t;return i==="HumanDuration"?{frequency:{[o]:a},filter:b(r)}:{frequency:{cron:n}}}},y=e=>{if(typeof e=="string"){if(e==="true")return!0;if(e==="false")return!1;const r=Number(e);if(!isNaN(r))return r}return e},p=e=>{var r;if(!e)return{};if(e.expressionType){const s={[e.expressionType]:(r=e.conditions)==null?void 0:r.map(t=>({factRef:t.factRef,path:t.path,operator:t.operator,value:y(t.value)}))};return e.expressions&&e.expressions.forEach(t=>{var n;(n=s[e.expressionType])==null||n.push(p(t))}),s}if(e.expressions)return e.expressions.map(p);if(e.conditions&&e.conditions.length===1){const s=e.conditions[0];return{factRef:s.factRef,path:s.path,operator:s.operator,value:y(s.value)}}return{}},u=(e,r=!0)=>{if(!e)return{conditions:[]};const s=Object.keys(e),t=s.includes("all")||r&&!s.includes("any")?c.AllOf:c.AnyOf;if(s.includes(t)||r){const n=e[t]||[e],i=[],o=[];return n.forEach(a=>{const l=Object.keys(a);l.includes("all")||l.includes("any")?o.push(u(a,!1)):i.push({factRef:a.factRef,path:a.path,operator:a.operator,value:a.value})}),{expressions:o.length>0?o:void 0,conditions:i,expressionType:t}}return{expressionType:c.AllOf,conditions:[{factRef:e.factRef,path:e.path,operator:e.operator,value:e.value}]}},M=e=>{var r,s,t,n,i,o;return{detailsStep:{name:(r=e.name)!=null?r:"",description:(s=e.description)!=null?s:"",ownerEntityRef:(t=e.ownerEntityRef)!=null?t:""},rulesStep:{expressions:u(e.rule),passedMessage:(n=e.passedMessage)!=null?n:void 0,failedMessage:(i=e.failedMessage)!=null?i:void 0,warning:(o=e.warning)!=null?o:!1},filtersStep:{filter:x(e.filter)},scheduleStep:{schedule:h(e.schedule)}}},A=(e,r)=>{var s,t,n,i;const{detailsStep:o,rulesStep:a,filtersStep:l,scheduleStep:g}=e;return{id:r?r.id:k(),ownerEntityRef:(s=o.ownerEntityRef)!=null?s:void 0,name:o.name,description:o.description,passedMessage:(t=a.passedMessage)!=null?t:void 0,failedMessage:(n=a.failedMessage)!=null?n:void 0,rule:p(a.expressions),warning:(i=a.warning)!=null?i:!1,filter:l.filter?E(l.filter):void 0,schedule:m(g.schedule,l.filter)}},f=(e,r="$")=>{const s=[];if(e.type==="object"&&e.properties){const t=e.properties;for(const n in t)if(t.hasOwnProperty(n)){const i=`${r}.${n}`;s.push(i);const o=t[n];s.push(...f(o,i))}}if(e.type==="array"&&e.items){const t=`${r}[*]`;s.push(t);const n=Array.isArray(e.items)?e.items:[e.items];for(const i of n)s.push(...f(i,t))}return s},F={detailsStep:{name:"",description:"",ownerEntityRef:""},rulesStep:{expressions:{expressionType:c.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",value:"",conditions:[]}]},warning:!1},filtersStep:{filter:T()},scheduleStep:{schedule:C()}},O={details:{name:{name:"Check name",description:"Give your check a meaningful name so it's easy to remember",helperText:`Max ${R} characters`,placeholder:"Example: Code Coverage Check"},description:{name:"Check description",description:"Give your check a meaningful description so others know what it's for",placeholder:"Example: Ensure code coverage meets the minimum threshold"},owner:{name:"Check owner",description:"Add yourself, or a team, as the owner of this check",selectLabel:"Owner"}},rulesStep:{rules:{name:"Check rules",description:"Add the rules you want your check to enforce"},messages:{name:"Pass/Fail messages (Optional)",description:"Add the messages that will appear to you when checks either pass or fail",passMessagePlaceholder:"Enter pass message...",failMessagePlaceholder:"Enter fail message...",passedTabName:"Passed Message",failedTabName:"Failed Message"},warnings:{name:"Enable warnings",description:"Enable if the check should emit warning check results if it fails",label:"Warning"}},filter:{description:'Setting the filters below will limit the scope of the Check so that only those Entities that match the filter will be monitored by the Check. As an example, choosing a "Kind" of "Component" will make this Check only apply to Entities whose Kind is indeed set to "Component". This would exclude Entities like Groups, Users, APIs, etc. from being impacted by the Check.'},schedule:{description:"By default, checks are executed when any fact they depend on is updated. However, you may also schedule a check to run on a schedule.",checkboxLabel:"Schedule check"}};export{O as CHECK_FIELDS,F as DEFAULT_FORM_VALUES,f as generateJsonPaths,M as mapCheckerToFormValues,p as mapExpressionToRule,h as mapInputScheduleToSchedule,u as mapRuleToExpression,m as mapScheduleToInputSchedule,A as mapToCheckerInput};
|
|
2
|
+
//# sourceMappingURL=checkFormUtils.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{CheckMessagingSchema as c,CheckDetailsSchema as l,parseFactRef as m}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{isValidCron as p}from"../../../../utils/cron.esm.js";import{validateTimeUnitValue as u}from"../../../../utils/time.esm.js";import{TimeUnit as f}from"../../../Frequency/types.esm.js";import"../../../Frequency/util.esm.js";import"../../../Frequency/FrequencyComponent.esm.js";import{ExpressionType as r}from"../types/ExpressionType.esm.js";import"../types/CheckFormTypes.esm.js";import"../types/Path.esm.js";const i=t=>{try{return m(t),!0}catch{return"Invalid fact reference. [source]:[scope]/[name]."}},d=100,y=async t=>{if(!await i(t))throw new Error("Fact reference validation failed");return t},a=e.lazy(()=>e.strictObject({factRef:e.string().refine(y,{message:"Valid format: [source]:[scope]/[name]"}),path:e.string().min(1,"Required"),operator:e.string().min(1,"Required"),value:e.union([e.string().min(1,"Required"),e.number(),e.boolean()]),conditions:e.array(a).optional()})),n=e.lazy(()=>e.strictObject({expressionType:e.enum([r.AllOf,r.AnyOf]).optional(),expressions:e.array(n).optional(),conditions:e.array(a).optional()})),g=e.strictObject({expressions:n}).merge(c),b=e.strictObject({filter:e.strictObject({selectedKinds:e.string().array(),selectedTypes:e.string().array(),selectedLifecycles:e.string().array(),selectedOwners:e.string().array(),selectedSystems:e.string().array(),selectedTags:e.string().array()}).optional()}),h=e.nativeEnum(f),O=({type:t,cron:o,value:s})=>t==="cron"?p(o):t==="HumanDuration"?u(s)===!0:!0,j=e.strictObject({type:e.enum(["HumanDuration","cron"]),unit:h.optional(),value:e.number().min(1,"Value must be greater than 0.").optional(),cron:e.string().optional()}).refine(O,{message:"Invalid frequency configuration"}),v=e.strictObject({enabled:e.boolean(),frequency:j}),S=e.strictObject({schedule:v.optional()}),T=e.strictObject({detailsStep:l,rulesStep:g,filtersStep:b,scheduleStep:S});export{d as CHECK_NAME_MAX_LENGTH,T as checkFormSchema,i as validateFactRef};
|
|
2
|
+
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Grid as t}from"@material-ui/core";import{Skeleton as o}from"@material-ui/lab";import e from"react";const m=()=>e.createElement(t,{item:!0,container:!0,"data-testid":"checks-skeleton"},Array.from({length:10},(i,r)=>e.createElement(t,{key:`loading-${r}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},e.createElement(o,{variant:"rect",height:385}))));export{m as ChecksOverviewSkeleton};
|
|
2
|
+
//# sourceMappingURL=ChecksOverviewSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as r}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{ChecksPage as o}from"../ChecksPage/ChecksPage.esm.js";const m=()=>e.createElement(r,null,e.createElement(o,null));export{m as ChecksTab};
|
|
2
|
+
//# sourceMappingURL=ChecksTab.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{usePermission as c}from"@backstage/plugin-permission-react";import{soundcheckCollectorUpdatePermission as d}from"@spotify/backstage-plugin-soundcheck-common";import e from"react";import{useParams as u}from"react-router-dom";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as f}from"../../hooks/useNavigateBack.esm.js";import{useGetCollectors as g}from"../../hooks/collectors/useGetCollectors.esm.js";import{collectorsPageRouteRef as C}from"../../routes.esm.js";import{LoadingIndicator as E}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as P}from"../PageWarningMessage/PageWarningMessage.esm.js";import{Configurator as v}from"./Configurators/Configurator.esm.js";const h=()=>{var i;const{collectorId:t}=u(),{data:l,isLoading:n}=g([t!=null?t:""]),{loading:a,allowed:s}=c({permission:d}),[p]=f(C),o=l==null?void 0:l[0],r=n||a,m=s&&(o==null?void 0:o.isEditable);return e.createElement("div",null,r&&e.createElement(E,null),e.createElement(P,{entityName:"Collector",entityId:t,showNotFound:!r&&!o,showCannotEdit:!r&&!m}),o&&m&&e.createElement(v,{title:o?(i=o.name)!=null?i:o.id:"",open:!0,handleClose:p,selectedCollector:o}))};export{h as CollectorPage};
|
|
2
|
+
//# sourceMappingURL=CollectorPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"react";import{FullScreenDialog as i}from"../../FullScreenDialog/FullScreenDialog.esm.js";import{GithubConfigurator as n}from"./Github/GithubConfigurator.esm.js";const c=({title:t,open:l,handleClose:r,selectedCollector:e})=>o.createElement(i,{handleClose:r,title:t,open:l},(e==null?void 0:e.id)==="github"&&o.createElement(n,{selectedCollector:e}));export{c as Configurator};
|
|
2
|
+
//# sourceMappingURL=Configurator.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as b,FormControlLabel as h,Switch as f,Box as E,Typography as d,Tabs as y,Tab as m}from"@material-ui/core";import e,{useState as $}from"react";import{useWatch as x,Controller as c}from"react-hook-form";import{validateCacheConfig as F}from"../../../../utils/collectors.esm.js";import{validateFrequency as k}from"../../../../utils/frequency.esm.js";import"lodash";import"../../../Frequency/types.esm.js";import"../../../Frequency/util.esm.js";import{FrequencyComponent as N}from"../../../Frequency/FrequencyComponent.esm.js";import{CacheConfigComponent as T}from"../../../CacheConfig/CacheConfigComponent.esm.js";import{FilterComponent as q}from"../../../Filter/FilterComponent.esm.js";const w=b(n=>({root:{padding:n.spacing(1)},tabsContainer:{marginRight:16},tab:{height:"64px",textAlign:"left"},contentContainer:{width:"100%",padding:n.spacing(1)},divider:{marginTop:n.spacing(8),marginBottom:n.spacing(8)},switchTrack:{backgroundColor:`${n.palette.primary.main} !important`}})),S=({name:n,label:s,description:p,control:l,disabled:i,errors:r})=>{const[o,g]=$(0),u=x({control:l,name:`${n}.enabled`}),v=(t,C)=>{g(C)},a=w();return e.createElement("div",{className:a.root},e.createElement(c,{name:`${n}.enabled`,control:l,render:({field:t})=>e.createElement(h,{control:e.createElement(f,{...t,checked:t.value,"data-testid":`${n}-switch`,classes:{track:t.value?a.switchTrack:void 0}}),label:e.createElement(E,{display:"flex",flexDirection:"column"},e.createElement(d,{variant:"body1",component:"span"},e.createElement("b",null,`${s}`)),e.createElement(d,{variant:"caption",color:"textSecondary",component:"p"},`${p}`))})}),u&&e.createElement("div",null,e.createElement(y,{orientation:"horizontal",variant:"scrollable",value:o,onChange:v,className:a.tabsContainer},e.createElement(m,{label:"Frequency",className:a.tab}),e.createElement(m,{label:"Filters",className:a.tab}),e.createElement(m,{label:"Caching",className:a.tab})),e.createElement("div",{className:a.contentContainer},o===0&&e.createElement("div",null,e.createElement(c,{name:`${n}.frequency`,control:l,rules:{validate:k},render:({field:t})=>e.createElement(N,{disabled:i,value:t.value,onChange:t.onChange,errors:r==null?void 0:r.frequency})})),o===1&&e.createElement("div",null,e.createElement(c,{name:`${n}.filters`,control:l,render:({field:t})=>e.createElement(q,{disabled:i,value:t.value,onChange:t.onChange})})),o===2&&e.createElement("div",null,e.createElement(c,{name:`${n}.cacheConfig`,control:l,rules:{validate:F},render:({field:t})=>e.createElement(T,{disabled:i,value:t.value,onChange:t.onChange,errors:r==null?void 0:r.cacheConfig})})))))};export{S as FactCollectionConfig};
|
|
2
|
+
//# sourceMappingURL=FactCollectionConfig.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as b,Divider as l,Grid as C}from"@material-ui/core";import e from"react";import{useForm as h}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"../../../../hooks/useSoundcheckAlert.esm.js";import"../../../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as y}from"../../../../hooks/useNavigateBack.esm.js";import{useUpdateCollectorConfig as E}from"../../../../hooks/collectors/useUpdateCollectorConfig.esm.js";import{collectorsPageRouteRef as v}from"../../../../routes.esm.js";import{FooterButtons as S}from"../../../FooterButtons/FooterButtons.esm.js";import{FactCollectionConfig as i}from"./FactCollectionConfig.esm.js";import{mapConfigToGithubCollectorConfig as L,defaultGithubConfig as D,mapGithubCollectorConfigToConfig as G}from"./utils.esm.js";const P=b(t=>({spacer:{height:t.spacing(8),width:"100%"}})),B=({disabled:t,selectedCollector:a})=>{const{control:r,formState:{errors:o},handleSubmit:n}=h({defaultValues:a?L(a.config):D(),mode:"onChange"}),c=P(),m=!!o.branchProtections||!!o.repositoryDetails||!!o.repositoryLanguages,{mutateAsync:p}=E(),[u,g]=y(v),s=async d=>{const f=G(d);await p({collectorId:"github",config:f})&&g()};return e.createElement("form",{onSubmit:n(s)},e.createElement(i,{name:"branchProtections",label:"Branch Protections",description:"Collects branch protection information from an entity's repository.",control:r,disabled:t,errors:o.branchProtections}),e.createElement(l,null),e.createElement(i,{name:"repositoryDetails",label:"Repository Details",description:"Collects details about the an entity's repository.",control:r,disabled:t,errors:o.repositoryDetails}),e.createElement(l,null),e.createElement(i,{name:"repositoryLanguages",label:"Repository Languages",description:"Collects details about the languages used in an entity's repository.",control:r,disabled:t,errors:o.repositoryLanguages}),e.createElement("div",{className:c.spacer}),e.createElement(C,{container:!0,spacing:4},e.createElement(S,{onCancel:u,saveButtonText:"Save",isLoading:!1,onSave:n(s),disableSave:m})))};export{B as GithubConfigurator};
|
|
2
|
+
//# sourceMappingURL=GithubConfigurator.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{asArray as b}from"@spotify/backstage-plugin-soundcheck-common";import{mapToCacheConfig as u,defaultCacheConfig as d,mapCacheConfigToHumanDurationOrBoolean as p}from"../../../CacheConfig/utils.esm.js";import"../../../CacheConfig/CacheConfigComponent.esm.js";import{mapCatalogFilterToFilters as y,mapFiltersToCatalogFilter as m}from"../../../Filter/utils.esm.js";import"../../../Filter/FilterComponent.esm.js";import{emptyFilters as D}from"../../../Filter/types.esm.js";import"../../../Frequency/types.esm.js";import{mapHumanDurationOrCronToFrequency as g,defaultFrequency as F,mapFrequencyToHumanDurationOrCron as h}from"../../../Frequency/util.esm.js";import"../../../Frequency/FrequencyComponent.esm.js";const C=()=>({enabled:!1,filters:{...D(),selectedKinds:["Component"]},frequency:F(),cacheConfig:d()}),q=()=>({branchProtections:C(),repositoryDetails:C(),repositoryLanguages:C()});function T(e){const{branchProtections:c,repositoryDetails:a,repositoryLanguages:f}=e;if(c.enabled||a.enabled||f.enabled){const l={},i=[];if(l.collects=i,c.enabled){const{cacheConfig:t,frequency:r,filters:n}=c;i.push({factName:"branch_protections",type:"BranchProtections",frequency:h(r),filter:m(n),cache:p(t)})}if(a.enabled){const{cacheConfig:t,frequency:r,filters:n}=a;i.push({factName:"repository_details",type:"RepositoryDetails",frequency:h(r),filter:m(n),cache:p(t)})}if(f.enabled){const{cacheConfig:t,frequency:r,filters:n}=f;i.push({factName:"repository_languages",type:"RepositoryLanguages",frequency:h(r),filter:m(n),cache:p(t)})}return l}return[]}function L(e){var c,a,f,l,i,t;const r=q();if(e){const n=e.collects;if(n)for(const o of b(n)){const s=o.type;s==="BranchProtections"&&(r.branchProtections={enabled:!0,frequency:g((c=o.frequency)!=null?c:e.frequency),filters:y((a=o.filter)!=null?a:e.filter),cacheConfig:u(o.cache)}),s==="RepositoryDetails"&&(r.repositoryDetails={enabled:!0,frequency:g((f=o.frequency)!=null?f:e.frequency),filters:y((l=o.filter)!=null?l:e.filter),cacheConfig:u(o.cache)}),s==="RepositoryLanguages"&&(r.repositoryLanguages={enabled:!0,frequency:g((i=o.frequency)!=null?i:e.frequency),filters:y((t=o.filter)!=null?t:e.filter),cacheConfig:u(o.cache)})}}return r}export{q as defaultGithubConfig,L as mapConfigToGithubCollectorConfig,T as mapGithubCollectorConfigToConfig};
|
|
2
|
+
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Grid as o}from"@material-ui/core";import l from"react";import{useGetCollectors as c}from"../../../hooks/collectors/useGetCollectors.esm.js";import{CollectorListSkeleton as s}from"./CollectorListSkeleton.esm.js";import{ConfigurableCollectorIds as r,CollectorSummaryCard as d}from"./CollectorSummaryCard.esm.js";const u=()=>{const{data:i,isLoading:m}=c();return l.createElement(o,{container:!0,direction:"row"},l.createElement(o,{container:!0,spacing:4,role:"list","aria-label":"checks"},m?l.createElement(s,null):i==null?void 0:i.sort((e,t)=>{var n,a;return!r.includes(e.id)&&r.includes(t.id)?1:r.includes(e.id)&&!r.includes(t.id)?-1:((n=e.name)!=null?n:e.id).localeCompare((a=t.name)!=null?a:t.id)}).map(e=>l.createElement(o,{key:e.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},l.createElement(d,{collector:e})))))};export{u as CollectorListPage};
|
|
2
|
+
//# sourceMappingURL=CollectorListPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Grid as r}from"@material-ui/core";import{Skeleton as l}from"@material-ui/lab";import e from"react";const m=()=>e.createElement(e.Fragment,null,Array.from({length:6},(o,t)=>e.createElement(r,{key:`loading-${t}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},e.createElement(l,{variant:"rect",height:385}))));export{m as CollectorListSkeleton};
|
|
2
|
+
//# sourceMappingURL=CollectorListSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as a,useTheme as c}from"@material-ui/core";import g from"react";import s from"../../../images/cat-blk.svg";import p from"../../../images/cat-wht.svg";import h from"../../../images/dd_logo_h_rgb.svg";import n from"../../../images/dd_logo_h_white.svg";import l from"../../../images/GitHub_Logo.svg";import f from"../../../images/GitHub_Logo_White.svg";import d from"../../../images/pd-black.svg";import u from"../../../images/pd-white.svg";import k from"../../../images/SCM_DARK.svg";import y from"../../../images/SCM_LIGHT.svg";import b from"../../../images/soundcheck-black.svg";import I from"../../../images/soundcheck-white.svg";import L from"../../../images/tech-black.svg";import T from"../../../images/tech-white.svg";import{isDarkTheme as $}from"../../Charts/chartUtils.esm.js";const r={github:l,datadog:h,scm:y,pagerduty:d,catalog:s,soundcheck:b,techinsights:L},i={github:f,datadog:n,scm:k,pagerduty:u,catalog:p,soundcheck:I,techinsights:T},w=new Set(["catalog","soundcheck","techinsights"]),x=a(o=>({image:{objectFit:"contain",color:"white",height:o.spacing(5),maxWidth:"100%",marginBottom:o.spacing(1.5)},tallImage:{height:o.spacing(6.5),marginBottom:o.spacing(0)}})),B=o=>!!r[o]&&!!i[o],D=({collectorId:o})=>{const m=x(),e=c(),t=$(e)?i[o]:r[o];return t?g.createElement("img",{src:t,alt:o,className:`${m.image} ${w.has(o)?m.tallImage:""}`}):null};export{D as CollectorLogo,B as hasLogo};
|
|
2
|
+
//# sourceMappingURL=CollectorLogo.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{MarkdownContent as b}from"@backstage/core-components";import{useRouteRef as N}from"@backstage/core-plugin-api";import{usePermission as v}from"@backstage/plugin-permission-react";import{makeStyles as k,CardContent as g,CardHeader as x,Typography as f,Divider as I,CardActions as S,Button as T}from"@material-ui/core";import{soundcheckCollectorUpdatePermission as $}from"@spotify/backstage-plugin-soundcheck-common";import e from"react";import{useNavigate as A}from"react-router-dom";import{collectorDetailsRouteRef as B}from"../../../routes.esm.js";import{useSummaryCardStyles as L,Card as M}from"../../SummaryCard/SummaryCard.esm.js";import{hasLogo as R,CollectorLogo as D}from"./CollectorLogo.esm.js";const H=k(o=>({cardContent:{flex:1,paddingTop:o.spacing(1)},logoHeader:{paddingBottom:0,flex:0},headerContent:{display:"flex",alignItems:"center",height:o.spacing(5),marginBottom:o.spacing(1.5)},headerTypography:{marginBottom:0}})),i=["github"],P=({collector:o})=>{const{description:c,id:t,isConfigurable:m,isEditable:s,name:d}=o,{loading:p,allowed:u}=v({permission:$}),C=A(),y=N(B),r=L(),n=H(),h=i.includes(t)&&m&&s&&!p&&u,E=()=>{C(y({collectorId:t}))};let a;p||!u?a="You don't have permissions to configure this collector.":m?s?i.includes(t)||(a="Collector can only be configured through YAML"):a="Collector is already configured via YAML and cannot be configured through the UI.":a="Collector is not configurable.";const l=d!=null?d:t;return e.createElement(M,{"data-testid":t,className:r.card},R(t)?e.createElement(g,{className:n.logoHeader},e.createElement(D,{collectorId:t})):e.createElement(x,{title:l,titleTypographyProps:{className:`${r.summaryName} ${n.headerTypography}`},classes:{content:n.headerContent}}),e.createElement(g,{className:n.cardContent},e.createElement(f,{variant:"body1",component:"div"},e.createElement(b,{className:r.summaryDescription,content:c!=null?c:""})),e.createElement(f,{color:"textSecondary",variant:"body2"},a)),h&&e.createElement("div",null,e.createElement(I,null),e.createElement(S,{className:r.actionArea},e.createElement(T,{"aria-label":`${l}-edit`,"data-testid":`${l}-button`,size:"medium",color:"primary",role:"link",onClick:E,className:r.button},"Configure"))))};export{P as CollectorSummaryCard,i as ConfigurableCollectorIds};
|
|
2
|
+
//# sourceMappingURL=CollectorSummaryCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as o}from"@material-ui/core";import t from"react";import{CollectorListPage as r}from"./CollectorListPage/CollectorListPage.esm.js";const n=o(e=>({container:{padding:e.spacing(3)}})),a=()=>{const e=n();return t.createElement("div",{className:e.container},t.createElement(r,null))};export{a as CollectorsPage};
|
|
2
|
+
//# sourceMappingURL=CollectorsPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Menu as i,MenuItem as l}from"@material-ui/core";import t from"react";const p=({x:e,y:n,menuItems:r,onClose:m,onClick:c})=>t.createElement(i,{keepMounted:!0,open:!!e,onClose:m,anchorReference:"anchorPosition",anchorPosition:n&&e?{top:n,left:e}:void 0},r.map(o=>t.createElement(l,{key:o,onClick:()=>c(o)},o)));export{p as ContextMenu};
|
|
2
|
+
//# sourceMappingURL=ContextMenu.esm.js.map
|