@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{Chip as C,Tooltip as g}from"@material-ui/core";import f from"@material-ui/icons/DragIndicator";import x from"@material-ui/icons/Visibility";import e from"react";import{useDrag as M}from"react-dnd";import{useContextMenu as h}from"../../hooks/useContextMenu.esm.js";import{ContextMenu as E}from"../ContextMenu/ContextMenu.esm.js";import{useChipStyles as b}from"./chipStyles.esm.js";const y=({chip:t,disabled:r,onContextMenuAdd:o})=>{var n;const[D,l]=M(()=>({type:"chip",item:t,collect:d=>({isDragging:d.isDragging()})})),m=b(),a=["Add check"],{contextMenu:i,onContextMenu:c,onContextMenuClose:s,onContextMenuClick:p}=h(),u=()=>{p(),o==null||o(t)};return e.createElement(e.Fragment,null,e.createElement(C,{ref:l,label:t.name,className:m.chip,icon:e.createElement(f,{"data-testid":"drag-indicator-icon"}),disabled:r,onDelete:()=>{},onContextMenu:o?c:void 0,deleteIcon:e.createElement(g,{title:(n=t.description)!=null?n:""},e.createElement(x,{"data-testid":"visibility-icon"}))}),e.createElement(E,{x:i.mouseX,y:i.mouseY,menuItems:a,onClose:s,onClick:u}))};export{y as DraggableChip};
|
|
2
|
+
//# sourceMappingURL=DraggableChip.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as d}from"@material-ui/core";const i=d(t=>{const r=t.palette.text.primary,e=t.palette.background.default,o=t.palette.divider,a=t.palette.border;return{chip:{width:"100%",height:"36px",color:r,justifyContent:"space-between",background:e,border:`1px solid ${o}`,borderRadius:4,boxShadow:"0px 2px 5px rgba(0, 0, 0, 0.1)",cursor:"move","& *":{fontWeight:700},"&:focus":{background:e,borderColor:a},marginBottom:0},deleteButton:{marginRight:"auto"}}});export{i as useChipStyles};
|
|
2
|
+
//# sourceMappingURL=chipStyles.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as y,Chip as M}from"@material-ui/core";import D from"@material-ui/icons/DragIndicator";import r,{useState as E}from"react";import{useDrop as S}from"react-dnd";import{useContextMenu as B}from"../../hooks/useContextMenu.esm.js";import{ContextMenu as N}from"../ContextMenu/ContextMenu.esm.js";import{useChipStyles as O}from"../DraggableChip/chipStyles.esm.js";const z=y(e=>({input:{border:`1px solid ${e.palette.divider}`,borderRadius:4,padding:e.spacing(1),minHeight:80},hoverBackground:{background:e.palette.action.hover},normalBackground:{background:e.palette.background.default},error:{border:"1px solid red"},chipContainer:{display:"flex",flexDirection:"column",fontSize:e.typography.body1.fontSize,color:e.palette.text.primary,gap:e.spacing(.75)}})),I=({chips:e,onDelete:i,onDrop:p,error:c=!1,placeholder:m="",disabled:s})=>{const o=z(),d=O(),[{isOver:u},g]=S(()=>({accept:"chip",drop:t=>{p(t)},collect:t=>({isOver:t.isOver()})})),h=["Remove check"],{contextMenu:a,onContextMenu:x,onContextMenuClose:C,onContextMenuClick:f}=B(),[l,b]=E(null),k=(t,n)=>{x(t),b(n)},v=()=>{f(),l&&i(l)};return r.createElement("div",{ref:g,className:`${o.input} ${c?o.error:""} ${u?o.hoverBackground:o.normalBackground}`,"data-testid":"droppable-input"},r.createElement("div",{className:o.chipContainer},e!=null&&e.length?e.map(t=>r.createElement(M,{key:t.id,label:t.name,className:d.chip,icon:r.createElement(D,null),style:{cursor:"pointer"},onDelete:()=>i(t),disabled:s,onContextMenu:n=>k(n,t)})):m),r.createElement(N,{x:a.mouseX,y:a.mouseY,menuItems:h,onClose:C,onClick:v}))};export{I as DroppableInput};
|
|
2
|
+
//# sourceMappingURL=DroppableInput.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{usePermission as d}from"@backstage/plugin-permission-react";import{soundcheckTrackUpdatePermission as c,soundcheckTrackReadPermission as u}from"@spotify/backstage-plugin-soundcheck-common";import r from"react";import{useParams as f}from"react-router-dom";import{TrackFormProvider as k}from"../../contexts/TrackFormContext.esm.js";import"../../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{useGetAllTracks as g}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{LoadingIndicator as E}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as P}from"../PageWarningMessage/PageWarningMessage.esm.js";import{EditTrackView as w}from"./EditTrackView.esm.js";const T=()=>{var t,i;const{trackId:o}=f(),{data:m,isLoading:n}=g({ids:[o!=null?o:""],first:1}),e=(i=(t=m==null?void 0:m.edges)==null?void 0:t[0])==null?void 0:i.node,{loading:a,allowed:p}=d({permission:c,resourceRef:o}),{loading:s,allowed:l}=d({permission:u,resourceRef:o});return r.createElement(r.Fragment,null,r.createElement(P,{entityName:"track",entityId:o,showNotFound:!n&&!e,showCannotView:!a&&!s&&!l}),n||a||s?r.createElement(E,null):l&&e&&r.createElement(k,null,r.createElement(w,{track:e,canEdit:p})))};export{T as EditTrackPage};
|
|
2
|
+
//# sourceMappingURL=EditTrackPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import u,{useEffect as i,useCallback as f}from"react";import{useTrackFormContext as k}from"../../contexts/TrackFormContext.esm.js";import"../../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 E}from"../../hooks/useNavigateBack.esm.js";import{useUpdateTrack as T}from"../../hooks/tracks/useUpdateTrack.esm.js";import{tracksPageRouteRef as g}from"../../routes.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const S=({track:t,canEdit:p})=>{const{setSelectedItem:m,setIsLoading:a,selectedItem:n,showReadOnlyModal:e}=k(),{mutateAsync:c,isLoading:s}=T();i(()=>a(s),[a,s]);const o=!p||!t.isEditable;i(()=>{o?e(t):m(t)},[t,m,o,e]);const[y,r]=E(g),l=f(async d=>{await c(d,{onSuccess:r})},[r,c]);return i(()=>{},[t,e,o]),n?u.createElement(w,{handleClose:r,title:`${o?"View":"Edit"} Track`,open:!0,onSave:l}):null};export{S as EditTrackView};
|
|
2
|
+
//# sourceMappingURL=EditTrackView.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{usePermission as e}from"@backstage/plugin-permission-react";import{Button as a}from"@material-ui/core";import{soundcheckCampaignCreatePermission as n}from"@spotify/backstage-plugin-soundcheck-common";import o from"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{useCampaignFormContext as p}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import c from"../../images/no-results.svg";import{CampaignEmptyState as t}from"../CampaignsTab/MutateCampaignsViews/types/CampaignFormTypes.esm.js";import{EmptyState as s}from"./EmptyState.esm.js";const l=()=>{const{setShowAddModal:i}=p(),{loading:r,allowed:m}=e({permission:n});return o.createElement(s,{title:t.title,description:t.description,imgSrc:c,action:!r&&o.createElement(a,{disabled:!m,variant:"contained",color:"primary",onClick:()=>i(!0)},t.callToAction)})};export{l as EmptyCampaignState};
|
|
2
|
+
//# sourceMappingURL=CampaignEmptyState.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseEntityRef as l}from"@backstage/catalog-model";import{humanizeEntityRef as c}from"@backstage/plugin-catalog-react";import{makeStyles as m,Card as u,Typography as s}from"@material-ui/core";import t from"react";import f from"../../images/empty-state.svg";const g=m(e=>({card:{backgroundColor:e.palette.background.paper,border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius,display:"flex",padding:e.spacing(5)},container:{margin:"0 auto",display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(5)},content:{width:"20rem",display:"flex",flexDirection:"column",gap:e.spacing(2)},header:{display:"flex",flexDirection:"column",gap:e.spacing(2)},action:{display:"inline-block"},img:{maxHeight:400}})),r=({title:e,description:n,imgSrc:a,action:o})=>{const i=g();return t.createElement(u,{className:i.card},t.createElement("div",{className:i.container},t.createElement("div",{className:i.content},t.createElement("header",{className:i.header},t.createElement(s,{variant:"h5"},e),t.createElement(s,{color:"textSecondary",variant:"body1"},n)),o&&t.createElement("div",{className:i.action},o)),t.createElement("div",null,t.createElement("img",{src:a!=null?a:f,className:i.img,alt:e}))))},p="No certifications available",y=({ownerEntityRef:e,selectGroupHint:n})=>{let a="There are no tracks configured that apply to this entity.";return e&&(a=`Looks like the group '${c(l(e),{defaultKind:"Group"})}' doesn't own any entities that have any applicable tracks configured. ${n}`),t.createElement(r,{title:p,description:a})},d="Missing entities",E=({ownerEntityRef:e,selectGroupHint:n})=>{if(!e)return null;const a=c(l(e),{defaultKind:"Group"});return t.createElement(r,{title:d,description:`The group '${a}' doesn't own any entities. ${n!=null?n:""}`})};export{r as EmptyState,y as NoCertifications,E as NoEntities,p as noCertificationsTitle,d as noEntitiesTitle};
|
|
2
|
+
//# sourceMappingURL=EmptyState.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as n}from"@material-ui/core";import{SpotifyLicenseBanner as o}from"@spotify/backstage-plugin-core";import e from"react";import{soundcheckBackend as i,invalidLicenseMessage as r}from"../../utils/license.esm.js";import{CertificationsPage as a}from"../CertificationsPage/CertificationsPage.esm.js";const m=n(t=>({root:{"&:not(:first-child)":{marginTop:t.spacing(2)}}})),c=()=>{const t=m();return e.createElement(e.Fragment,null,e.createElement(o,{backend:i,invalidLicenseMessage:r,inline:!0}),e.createElement("div",{className:t.root},e.createElement(a,null)))};export{c as EntityContent};
|
|
2
|
+
//# sourceMappingURL=EntityContent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import r from"react";import{entityPassRatesSummaryCsvFilename as n}from"../../utils/charts.esm.js";import"recharts";import"../Charts/ChartTypes.esm.js";import"../Charts/LineChart/LineChart.esm.js";import"@material-ui/core";import"../Charts/chartUtils.esm.js";import"luxon";import{useSummaryAggregationsContext as m}from"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import{EntityPassRateHistoryLineChart as l}from"../Charts/LineChart/EntityPassRateHistoryLineChart.esm.js";import"../Charts/BarChart/BarChart.esm.js";import"@backstage/catalog-model";import{OverviewChartCard as p}from"../OverviewChartCard/OverviewChartCard.esm.js";import"../OverviewChartCard/OverviewChartCardStyles.esm.js";import{overallEntityPassRatesToCsv as v}from"../TechHealthTabs/TechHealthExportFunctions.esm.js";const y=()=>{var e;const{entityPassRatesOverviewTrends:{data:t,isLoading:a,isError:i}}=m(),s=(e=t==null?void 0:t.overallEntityPassRates)==null?void 0:e.length,o=!(t!=null&&t.overallEntityPassRates)||!s||a||i;return r.createElement(p,{title:"Entity pass rate",subtitle:"By default, this chart shows the top 5 entities by pass rate for all teams with which you are associated. To see a different set of entities, use the filters.",chartSectionContent:r.createElement(l,null),disableDataExport:o,csvFilename:n,csvData:v(t)})};export{y as EntityPassRateCard};
|
|
2
|
+
//# sourceMappingURL=EntityPassRateCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Link as v,InfoCard as h}from"@backstage/core-components";import{useRouteRef as f}from"@backstage/core-plugin-api";import{useEntity as C}from"@backstage/plugin-catalog-react";import{Divider as I}from"@material-ui/core";import L from"@material-ui/core/styles/makeStyles";import{SpotifyLicenseBanner as R}from"@spotify/backstage-plugin-core";import e,{Fragment as S}from"react";import{useAllCertifications as w}from"../../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/catalog-model";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{usePlaylists as b}from"../../hooks/playlists/usePlaylists.esm.js";import{certificationTrackRouteRef as N,certificationPlaylistRouteRef as D}from"../../routes.esm.js";import{soundcheckBackend as P,invalidLicenseMessage as x}from"../../utils/license.esm.js";import{AlertPanel as A}from"../AlertPanel/AlertPanel.esm.js";import"../CertificationSidebar/CertificationSidebar.esm.js";import{CertificationSummary as B}from"../CertificationSidebar/CertificationSummary.esm.js";import"@material-ui/lab";import"../CertificationSidebar/Check.esm.js";import"../CertificationSidebar/LevelSummary.esm.js";import{NoCertifications as M}from"../EmptyState/EmptyState.esm.js";import{CardSkeleton as T}from"./skeletons/CardSkeleton.esm.js";const c=L(t=>({certificationWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center"},infoCard:{display:"grid",gridRowGap:t.spacing(2)},emptyState:{overflow:"hidden"}})),n=({children:t,title:a})=>{const i=c();return e.createElement(h,{title:a},e.createElement("div",{className:i.infoCard},e.createElement(R,{inline:!0,backend:P,invalidLicenseMessage:x}),t))},W=(t,a)=>{var i,o;return(o=(i=t.find(m=>m.trackIds.some(l=>l===a)))==null?void 0:i.id)!=null?o:""},$=({title:t="Soundcheck"})=>{const{entity:a}=C(),i=c(),{data:o,isError:m,isLoading:l}=w(a),{data:p,isError:u,isLoading:g}=b(a),y=f(N),E=f(D);return m||u?e.createElement(n,{title:t},e.createElement(A,{severity:"error",title:"Error loading certifications"})):l||g||!o||!p?e.createElement(n,{title:t},e.createElement(T,null)):o.length?e.createElement(n,{title:t},o.map((r,k)=>{var s,d;return e.createElement(S,{key:r.program.name},e.createElement("div",{className:i.certificationWrapper,"data-testid":"soundcheck-track-row"},e.createElement(B,{key:r.program.id,name:r.program.name,badge:(s=r.highestLevel)==null?void 0:s.badge,trackType:(d=r.program)==null?void 0:d.type}),e.createElement(v,{to:r.program.type==="playlist"?E({playlistId:W(p,r.program.id),trackId:r.program.id}):y({trackId:r.program.id})},"View Details")),k<o.length-1?e.createElement(I,null):null)})):e.createElement(n,{title:t},e.createElement("div",{className:i.emptyState},e.createElement(M,null)))};export{$ as Card,c as useStyles};
|
|
2
|
+
//# sourceMappingURL=Card.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{SoundcheckQueryClientProvider as r}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{Card as o}from"./Card.esm.js";const i=({title:t})=>e.createElement(r,null,e.createElement(o,{title:t}));export{i as EntitySoundcheckCard};
|
|
2
|
+
//# sourceMappingURL=EntitySoundcheckCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import"../../CertificationSidebar/CertificationSidebar.esm.js";import"../../CertificationSidebar/CertificationSummary.esm.js";import{CertificationSummarySkeleton as t}from"../../CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js";import"@material-ui/core";import"@material-ui/lab";import"../../CertificationSidebar/Check.esm.js";import"../../CertificationSidebar/LevelSummary.esm.js";const r=()=>e.createElement(e.Fragment,null,e.createElement(t,{hideDescription:!0}),e.createElement(t,{hideDescription:!0}));export{r as CardSkeleton};
|
|
2
|
+
//# sourceMappingURL=CardSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{Router as t}from"./Router.esm.js";import{SoundcheckQueryClientProvider as o}from"./SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";const r=()=>e.createElement(o,null,e.createElement(t,null));export{r as EntitySoundcheckContent};
|
|
2
|
+
//# sourceMappingURL=EntitySoundcheckContent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{motion as t}from"framer-motion";import o from"react";const n={hidden:{height:0,opacity:0,overflow:"hidden"},visible:{height:"auto",opacity:1,overflow:"visible"}};function r({visible:i,...e}){return o.createElement(t.div,{...e,animate:i?"visible":"hidden",initial:"hidden",variants:n})}export{r as default};
|
|
2
|
+
//# sourceMappingURL=Expand.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Fade as n}from"@material-ui/core";import m,{useState as c,useEffect as i}from"react";const u=({children:e})=>{const[t,o]=c(!1);return i(()=>{const r=setTimeout(()=>{o(!0)},250);return()=>clearTimeout(r)},[]),m.createElement(n,{in:t,timeout:250},e)};export{u as FadeIn};
|
|
2
|
+
//# sourceMappingURL=FadeIn.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as O,Typography as f,Box as w,FormControlLabel as z,Checkbox as A,TextField as F}from"@material-ui/core";import I from"@material-ui/icons/CheckBox";import T from"@material-ui/icons/CheckBoxOutlineBlank";import U from"@material-ui/icons/ExpandMore";import{Autocomplete as B}from"@material-ui/lab";import t,{useState as G,useMemo as N,useCallback as v}from"react";import{useGetEntityFacets as D}from"../../hooks/catalog/useGetEntityFacets.esm.js";const M=O({container:{padding:0},formControl:{flexGrow:1}}),P=({facet:m,label:s,values:n,onChange:a,disabled:C,filter:b})=>{var p;const u=M(),[E,i]=G(!1),{data:o,isLoading:g,error:h}=D(m,b),l=N(()=>o==null?void 0:o.map(e=>e.toLocaleLowerCase("en-US")),[o]),d=(p=n==null?void 0:n.map(e=>e.toLocaleLowerCase("en-US")))!=null?p:[],x=v((e,r)=>{a(r),l&&l.every(c=>r.includes(c))&&i(!1)},[l,a,i]),S=v(()=>{a(n!=null&&n.length?n:void 0)},[n,a]);if(!o||!l||h)return t.createElement(f,{color:"error"},"Failed to load facet: ",m);const k=C||g||!(n!=null&&n.length)&&(!(o!=null&&o.length)||!(l!=null&&l.length)),y=Array.from(new Set([...l,...d]));return t.createElement(w,{pb:1,pt:1,className:u.container},t.createElement(f,{variant:"subtitle2"},s),t.createElement(B,{open:E,onOpen:()=>i(!0),onClose:()=>i(!1),className:u.formControl,multiple:!0,limitTags:4,disableCloseOnSelect:!0,"aria-label":s,options:y,value:d,getOptionLabel:e=>{var r;return(r=o[l.indexOf(e)])!=null?r:e},onChange:x,onBlur:S,disabled:k,renderOption:(e,{selected:r})=>{var c;return t.createElement(z,{onClick:L=>L.preventDefault(),control:t.createElement(A,{icon:t.createElement(T,{fontSize:"small"}),checkedIcon:t.createElement(I,{fontSize:"small"}),checked:r}),label:(c=o[l.indexOf(e)])!=null?c:e})},size:"small",popupIcon:t.createElement(U,{"data-testid":"selected-facets-expand"}),renderInput:e=>t.createElement(F,{...e,variant:"outlined"})}))};export{P as EntityAutocompletePicker};
|
|
2
|
+
//# sourceMappingURL=EntityAutocompletePicker.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{EntityListProvider as c}from"@backstage/plugin-catalog-react";import{makeStyles as f,Grid as i}from"@material-ui/core";import t from"react";import{EntityAutocompletePicker as p}from"./EntityAutocompletePicker.esm.js";import{FilterPreviewTable as s}from"./FilterPreviewTable/FilterPreviewTable.esm.js";import{FILTER_OPTIONS as E}from"./types.esm.js";const d=f(()=>({title:{fontWeight:700},filterContainer:{display:"flex",flexWrap:"wrap"}})),y=10,g=({value:r,onChange:n,disabled:a})=>{const m=d(),o=e=>l=>{n({...r,[e]:l!=null?l:[]})};return t.createElement(i,{container:!0,spacing:6},t.createElement(i,{item:!0,container:!0,className:m.filterContainer,spacing:2},E.map(e=>t.createElement(i,{item:!0,xs:12,sm:6,md:4,key:e.key},t.createElement(p,{facet:e.facet,label:e.label,values:r==null?void 0:r[e.key],onChange:o(e.key),disabled:a,filter:e.filter})))),t.createElement(i,{item:!0,xs:12},t.createElement(c,{pagination:{limit:y}},t.createElement(s,{filter:r}))))};export{g as FilterComponent};
|
|
2
|
+
//# sourceMappingURL=FilterComponent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
class e{constructor(t){this.value=t}getSystems(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"spec.system":this.getSystems()}}toQueryValue(){return this.getSystems()}}export{e as EntitySystemsFilter};
|
|
2
|
+
//# sourceMappingURL=EntitySystemsFilter.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{EntitySearchBar as o}from"@backstage/plugin-catalog-react";import{Toolbar as r,Typography as i}from"@material-ui/core";import{makeStyles as n}from"@material-ui/core/styles";import t from"react";const l=n(e=>({root:{paddingTop:e.spacing(1.5),paddingLeft:e.spacing(4),paddingRight:e.spacing(4),paddingBottom:e.spacing(1),display:"flex",justifyContent:"space-between",marginRight:"0",marginLeft:"0"},text:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}),{name:"BackstageTableToolbar"});function p(e){const a=l();return t.createElement(r,{className:a.root,disableGutters:!0},t.createElement(i,{variant:"h5",className:a.text},e.title),t.createElement(o,null))}export{p as CatalogTableToolbar};
|
|
2
|
+
//# sourceMappingURL=EntityTableToolbar.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
class a{constructor(t){this.value=t}getTags(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"metadata.tags":this.getTags()}}toQueryValue(){return this.getTags()}}export{a as EntityTagFilter};
|
|
2
|
+
//# sourceMappingURL=EntityTagFilter.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Table as g}from"@backstage/core-components";import{EntityTable as a,useEntityList as u,EntityTypeFilter as f,EntityOwnerFilter as E,EntityLifecycleFilter as T}from"@backstage/plugin-catalog-react";import{makeStyles as w,Chip as b,useTheme as h}from"@material-ui/core";import l,{useEffect as v}from"react";import{EntityKindsFilter as S}from"./EntityKindsFilter.esm.js";import{EntitySystemsFilter as x}from"./EntitySystemsFilter.esm.js";import{CatalogTableToolbar as F}from"./EntityTableToolbar.esm.js";import{EntityTagFilter as C}from"./EntityTagFilter.esm.js";const L=w(()=>({entityTable:{'& span[class*="CatalogReactEntityDisplayName-root"]':{"&:hover":{textDecoration:"underline"}}}})),z=[a.columns.createEntityRefColumn({}),a.columns.createSystemColumn(),a.columns.createOwnerColumn(),a.columns.createSpecTypeColumn(),a.columns.createSpecLifecycleColumn(),{title:"Tags",field:"metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:e=>l.createElement(l.Fragment,null,e.metadata.tags&&e.metadata.tags.map(n=>l.createElement(b,{key:n,label:n,size:"small",variant:"outlined",style:{marginTop:"4px",marginBottom:"4px"}})))}],N=e=>({kinds:e.selectedKinds.length?new S(e.selectedKinds):void 0,systems:e.selectedSystems.length?new x(e.selectedSystems):void 0,type:e.selectedTypes.length?new f(e.selectedTypes):void 0,owners:e.selectedOwners.length?new E(e.selectedOwners):void 0,lifecycles:e.selectedLifecycles.length?new T(e.selectedLifecycles):void 0,tag:e.selectedTags.length?new C(e.selectedTags):void 0}),O=({filter:e})=>{const{updateFilters:n,entities:r,pageInfo:t,totalItems:c,loading:m}=u(),p=h(),d=L();v(()=>{const o=N(e);n(o)},[e,n]);const y=`All (${c||0})`;return l.createElement(l.Fragment,null,l.createElement("div",{className:d.entityTable},l.createElement(g,{title:y,columns:z,data:r,options:{padding:"dense",paging:!!(t!=null&&t.next)||!!(t!=null&&t.prev),toolbar:!0,draggable:!1,tableLayout:"fixed",search:!1,showTitle:!0,rowStyle:{fontSize:p.typography.body1.fontSize},showFirstLastPageButtons:!1,emptyRowsWhenPaging:!1,pageSizeOptions:[],loadingType:"linear",showEmptyDataSourceMessage:!m,pageSize:10},onPageChange:o=>{var i,s;o>0?(i=t==null?void 0:t.next)==null||i.call(t):(s=t==null?void 0:t.prev)==null||s.call(t)},components:{Toolbar:F},page:t!=null&&t.prev?1:0,totalCount:t!=null&&t.next?Number.MAX_VALUE:Number.MIN_SAFE_INTEGER,localization:{pagination:{labelDisplayedRows:""}}})))};export{O as FilterPreviewTable};
|
|
2
|
+
//# sourceMappingURL=FilterPreviewTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=()=>({selectedKinds:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[],selectedTypes:[]}),s=[{facet:"kind",label:"Kind",key:"selectedKinds"},{facet:"spec.type",label:"Type",key:"selectedTypes"},{facet:"spec.lifecycle",label:"Lifecycle",key:"selectedLifecycles"},{facet:"metadata.name",label:"Owner",key:"selectedOwners",filter:[{kind:"Group"}]},{facet:"spec.system",label:"System",key:"selectedSystems"},{facet:"metadata.tags",label:"Tags",key:"selectedTags"}];export{s as FILTER_OPTIONS,e as emptyFilters};
|
|
2
|
+
//# sourceMappingURL=types.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{asArray as c}from"@spotify/backstage-plugin-soundcheck-common";import{emptyFilters as o}from"./types.esm.js";const n={selectedKinds:"kind",selectedTypes:"spec.type",selectedLifecycles:"spec.lifecycle",selectedOwners:"spec.owner",selectedSystems:"spec.system",selectedTags:"metadata.tags"},a=e=>!e||Object.values(e).every(t=>t.length===0)?void 0:{catalog:Object.entries(e).reduce((t,[l,r])=>{const s=n[l];return r.length>0&&(t[s]=r),t},{})},i=e=>Object.keys(n).reduce((t,l)=>{var r,s;return t[l]=c((s=(r=e==null?void 0:e.catalog)==null?void 0:r[n[l]])!=null?s:[]),t},{}),u=e=>{if(!e||Object.values(e).every(l=>l.length===0))return;const t={};for(const[l,r]of Object.entries(e))(r==null?void 0:r.length)>0&&(t[n[l]]=r);return[t]},d=e=>{if(e&&Array.isArray(e)&&e.length){const t=e[0];return Object.keys(n).reduce((l,r)=>{var s;return l[r]=c((s=t==null?void 0:t[n[r]])!=null?s:[]),l},{})}return o()};export{d as mapCatalogFilterToFilters,u as mapFiltersToCatalogFilter,a as mapFiltersToInputFilter,i as mapInputFilterToFormFilters};
|
|
2
|
+
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Box as l,Paper as s,Grid as a,Button as r}from"@material-ui/core";import{makeStyles as p}from"@material-ui/core/styles";import e from"react";const d=p(t=>({box:{zIndex:9,position:"fixed",bottom:"0",width:"100%"},footer:{padding:t.spacing(2)},noMargin:{margin:0},cancelButton:{color:t.palette.text.primary}})),x=({onCancel:t,saveButtonText:i,isLoading:c,onSave:o,disableSave:m})=>{const n=d();return e.createElement(l,{className:n.box},e.createElement(s,{elevation:3,className:n.footer},e.createElement(a,{container:!0,item:!0,spacing:2,justifyContent:"space-between",className:n.noMargin},e.createElement(a,{item:!0},e.createElement(r,{variant:"text",color:"primary",onClick:t,className:n.cancelButton},"Cancel")),e.createElement(a,{item:!0},o&&e.createElement(r,{variant:"contained",color:"primary",disabled:c||m,onClick:o?()=>o():void 0},i)))))};export{x as FooterButtons};
|
|
2
|
+
//# sourceMappingURL=FooterButtons.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as y,FormControl as E,InputLabel as f,Select as h,MenuItem as u,FormHelperText as k}from"@material-ui/core";import e from"react";import{Controller as x}from"react-hook-form";const F=y(l=>({helperText:{marginLeft:0},selectField:{width:"100%",display:"flex",alignItems:"center"},menuBackground:{backgroundColor:l.palette.background.paper}})),C=({name:l,control:p,selectLabel:t,options:n,disabled:b,rules:v,style:o,helperText:s,placeholder:d})=>{const a=F();return e.createElement(x,{name:l,control:p,rules:v,render:({field:m,fieldState:r})=>{var c;return e.createElement(E,{variant:"outlined",style:o!=null?o:{minWidth:200},error:r.invalid},t&&e.createElement(f,{id:`${l}-select-label`},t),e.createElement(h,{...m,className:a.selectField,disabled:b,error:r.invalid,"data-testid":`${l}-select`,labelId:`${l}-select-label`,label:t,displayEmpty:!0,value:(c=m.value)!=null?c:"",MenuProps:{classes:{paper:a.menuBackground}},margin:"dense"},d&&e.createElement(u,{value:"",disabled:!0},d),n==null?void 0:n.map(({value:i,label:g})=>e.createElement(u,{key:i,value:i},g))),(s||r.error)&&e.createElement(k,{className:a.helperText},r.error?r.error.message:s))}})};export{C as FormControlledSelect};
|
|
2
|
+
//# sourceMappingURL=FormControlledSelect.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Typography as a}from"@material-ui/core";import e from"react";import{Controller as p}from"react-hook-form";import{formStyles as c}from"../../utils/formStyles.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import{emptyFilters as s}from"../Filter/types.esm.js";import{FilterComponent as d}from"../Filter/FilterComponent.esm.js";const f=({control:o,description:m,name:n,disabled:l})=>{const i=c();return e.createElement("div",{className:i.filters},e.createElement(a,{variant:"body2"},m),e.createElement(p,{name:n,control:o,render:({field:r})=>{var t;return e.createElement(d,{value:(t=r.value)!=null?t:s(),onChange:r.onChange,disabled:l})}}))};export{f as FormFilterSection};
|
|
2
|
+
//# sourceMappingURL=FormFilterSection.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useTheme as v,Typography as n}from"@material-ui/core";import{makeStyles as f}from"@material-ui/core/styles";import c from"@uiw/react-md-editor";import e from"react";import{Controller as g}from"react-hook-form";import x from"rehype-sanitize";const E=f(r=>({markdown:{whiteSpace:"pre-wrap",marginBottom:r.spacing(1)},container:{display:"flex",flexDirection:"column",gap:r.spacing(1)},helperText:{color:r.palette.grey[500]},errorText:{color:r.palette.error.main},errorBorder:{border:`1px solid ${r.palette.error.main}`}})),w=({name:r,control:d,label:m,description:i,disabled:o,rules:s,error:t,helperText:p,placeholder:u})=>{const h=v(),a=E();return e.createElement(g,{name:r,control:d,defaultValue:o?"No description provided.":"",rules:s,render:({field:l})=>e.createElement("div",{"data-color-mode":h.palette.type,className:a.container},e.createElement("div",null,m&&e.createElement(n,{variant:"subtitle2"},m),i&&!o&&e.createElement(n,{variant:"caption"},i)),e.createElement("div",null,o?e.createElement(c.Markdown,{className:a.markdown,source:l.value}):e.createElement(c,{textareaProps:{placeholder:u},value:l.value,className:t&&a.errorBorder,onChange:l.onChange,previewOptions:{rehypePlugins:[[x]]},"data-testid":`markdown-editor-${r}`}),(p||t)&&!o&&e.createElement(n,{variant:"caption",className:t?a.errorText:a.helperText},t?t.message:p)))})};export{w as FormMarkdownInput};
|
|
2
|
+
//# sourceMappingURL=FormMarkdownInput.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as N,Grid as o,Card as f,Stepper as h,Step as T,StepLabel as F,StepContent as L,Box as w,Button as s}from"@material-ui/core";import e from"react";import{useStepper as A}from"../../hooks/useStepper.esm.js";import{formStyles as R}from"../../utils/formStyles.esm.js";import{FooterButtons as P}from"../FooterButtons/FooterButtons.esm.js";const V=N(a=>({iconRoot:{color:a.palette.action.disabledBackground},iconText:{fill:a.palette.text.secondary},iconActive:{"& text":{fill:a.palette.primary.contrastText}}})),G=({onClose:a,handleSubmit:m,trigger:p,onSubmit:d,initialVisited:S,stepNameMap:u,steps:r,isLoading:E,isReadOnly:v,saveButtonText:x,detailsComponent:c})=>{const t=R(),l=V(),{activeStep:y,handleNext:b,handleBack:g,isPreviousStep:k,isVisitedStep:B,onStepClick:C}=A(S,u);return e.createElement(e.Fragment,null,e.createElement(o,{container:!0,spacing:2,className:t.root},e.createElement(o,{item:!0,style:{width:c?"80%":"100%"}},e.createElement(f,{className:t.card},e.createElement(h,{className:t.stepper,activeStep:y,orientation:"vertical"},r.map((i,n)=>e.createElement(T,{key:i.label},e.createElement(F,{className:k(n)||B(n)?t.stepLabel:void 0,onClick:()=>C(n),StepIconProps:{classes:{root:l.iconRoot,text:l.iconText,active:l.iconActive}}},i.label),e.createElement(L,null,i.content(),e.createElement(w,{className:t.buttonChoices,sx:{mb:2}},e.createElement("div",null,n!==0&&e.createElement(s,{className:t.backButton,onClick:g},"Back"),n!==r.length-1&&e.createElement(s,{variant:"contained",color:"primary",onClick:async()=>{await b(p)}},"Next"))))))))),c&&e.createElement(o,{item:!0,style:{width:"20%"}},c)),e.createElement(o,{container:!0,spacing:4,className:t.root},e.createElement(P,{onCancel:a,saveButtonText:x,isLoading:E,onSave:v?void 0:m(d)})))};export{G as FormStepper};
|
|
2
|
+
//# sourceMappingURL=FormStepper.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as y,TextField as g}from"@material-ui/core";import a from"react";import{Controller as F}from"react-hook-form";const P=y(e=>({helperText:{marginLeft:0},labelText:{color:`${e.palette.text.primary} !important`}})),I=({name:e,control:o,error:r,label:n,placeholder:m,disabled:s,numbersOnly:i,inputProps:p,rules:u,messages:l,helperText:d,multiline:c,minRows:x,variant:b="standard",size:T,margin:f="normal"})=>{const t=P();return a.createElement(F,{name:e,control:o,defaultValue:"",rules:u,render:({field:h})=>a.createElement(g,{...h,FormHelperTextProps:{className:t.helperText},InputLabelProps:{className:t.labelText},fullWidth:!0,multiline:c,minRows:x,placeholder:m,label:n,disabled:s,type:i?"number":"text",InputProps:p,margin:f,error:!!r,helperText:r&&l?l[r.type]:d,variant:b,size:T})})};export{I as FormTextInput};
|
|
2
|
+
//# sourceMappingURL=FormTextInput.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as $,Grid as i,RadioGroup as k,Radio as g,Typography as m,TextField as E,FormControl as D,InputLabel as M,Select as U,MenuItem as _,Divider as R}from"@material-ui/core";import e,{useState as v,useEffect as q}from"react";import{getCronDescription as w}from"../../utils/cron.esm.js";import{MIN_TIME_UNIT_VALUE as F,MAX_TIME_UNIT_VALUE as A}from"../../utils/time.esm.js";import{TimeUnit as H}from"./types.esm.js";import{VALID_TIME_UNITS as S,toTimeUnit as B}from"./util.esm.js";const O=$(n=>({divider:{marginTop:n.spacing(3),marginBottom:n.spacing(3)},title:{cursor:"pointer"},humanDurationContainer:{alignItems:"flex-start",marginTop:3},cronInput:{width:250,marginTop:3},noPaddingLeft:{paddingLeft:0},noPadding:{padding:0},fullWidth:{width:"100%"},radioOptions:{width:"80%",paddingLeft:n.spacing(1)},selectField:{paddingRight:n.spacing(2)},inputLabel:{color:`${n.palette.text.primary} !important`},menuBackground:{backgroundColor:n.palette.background.paper}})),f=32,y=12,h=n=>n?(Math.ceil(n.length/f)-1)*y:0,V=({value:n,onChange:d,disabled:s,errors:l})=>{var u;const a=O(),[t,c]=v(n),[N,b]=v(`${n.value}`);q(()=>{d&&d(t)},[t,d]);const I=r=>{c({...n,type:r.target.value})},L=r=>{b(r.target.value);const o=parseInt(r.target.value,10);c({...n,value:isNaN(o)?0:o})},P=r=>{var o;c({...t,unit:(o=B(r.target.value))!=null?o:H.Hours})},T=r=>{const o=r.target.value;c({...t,cron:o})},C=()=>{c({...t,type:"cron"})},x=()=>{c({...t,type:"HumanDuration"})},p=(u=l==null?void 0:l.message)!=null?u:w(t.cron);return e.createElement(i,{container:!0,direction:"row"},e.createElement(i,{item:!0,className:`${a.noPadding} ${a.fullWidth}`},e.createElement(k,{name:"frequencyType",value:t.type,onChange:I},e.createElement(i,{container:!0,alignItems:"flex-start",className:a.fullWidth},e.createElement(i,{item:!0,className:a.noPaddingLeft},e.createElement(g,{disabled:s,value:"HumanDuration"})),e.createElement(i,{item:!0,className:`${a.noPadding} ${a.radioOptions}`},e.createElement(m,{variant:"body1",className:a.title,onClick:x},"Run on a regular interval"),e.createElement(m,{variant:"caption"},"Run on a regular interval that you define"),t.type==="HumanDuration"&&e.createElement(i,{container:!0,className:a.humanDurationContainer,spacing:2},e.createElement(i,{item:!0,className:a.noPadding},e.createElement(E,{id:"every",type:"number",inputProps:{min:F,max:A},label:"Every",name:"every",disabled:s,value:N,error:!!(l!=null&&l.message),helperText:l==null?void 0:l.message,onChange:L,InputLabelProps:{className:a.inputLabel}})),e.createElement(i,{item:!0,className:a.noPadding},e.createElement(D,null,e.createElement(M,{className:a.inputLabel,id:"frequency-unit"},"Unit"),e.createElement(U,{labelId:"frequency-unit",disabled:s,value:t.unit,onChange:P,"data-testid":"frequency-unit",className:a.selectField,MenuProps:{classes:{paper:a.menuBackground}}},S.map(r=>e.createElement(_,{key:r,value:r},r)))))))),e.createElement(R,{className:a.divider}),e.createElement(i,{container:!0,alignItems:"flex-start"},e.createElement(i,{item:!0,className:a.noPaddingLeft},e.createElement(g,{disabled:s,value:"cron"})),e.createElement(i,{item:!0,className:`${a.noPadding} ${a.radioOptions}`},e.createElement(m,{variant:"body1",className:a.title,onClick:C},"Run on a schedule"),e.createElement(m,{variant:"caption"},"Run on a schedule defined via cron expression"),t.type==="cron"&&e.createElement(i,{item:!0,className:a.noPadding},e.createElement(E,{id:"cron-expression","data-testid":"cron-expression",className:a.cronInput,label:p,disabled:s,placeholder:"* * * * *",error:!!(l!=null&&l.message),value:t.cron,onChange:T,InputProps:{style:{paddingTop:`${h(p)}px`}}})))))))};export{V as FrequencyComponent,h as calculateCronLabelPadding,f as characterLimitPerLine,y as paddingPerExtraLine};
|
|
2
|
+
//# sourceMappingURL=FrequencyComponent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import m from"lodash";import{TimeUnit as n}from"./types.esm.js";const s=()=>({type:"HumanDuration",unit:n.Hours,value:1,cron:""}),i=[n.Months,n.Weeks,n.Days,n.Hours,n.Minutes,n.Seconds];function f(r){return i.includes(r)}function c(r){switch(r){case"months":return n.Months;case"weeks":return n.Weeks;case"days":return n.Days;case"hours":return n.Hours;case"minutes":return n.Minutes;case"seconds":return n.Seconds;default:return null}}function l(r){if(r){const{cron:e,type:t,unit:u,value:o}=r;return t==="HumanDuration"?{[u]:o}:{cron:e}}}function y(r){var e;const t=s();if(r&&m.isObject(r)){if("cron"in r)return{...t,type:"cron",cron:r.cron};const u=Object.entries(r);if(u.length){const[o,a]=u[0];return{...t,unit:(e=c(o))!=null?e:n.Hours,value:a}}}return t}export{i as VALID_TIME_UNITS,s as defaultFrequency,f as isTimeUnit,l as mapFrequencyToHumanDurationOrCron,y as mapHumanDurationOrCronToFrequency,c as toTimeUnit};
|
|
2
|
+
//# sourceMappingURL=util.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withStyles as n,Dialog as c,Slide as i,AppBar as p,Toolbar as d,Typography as m,IconButton as s,Box as f}from"@material-ui/core";import{makeStyles as u}from"@material-ui/core/styles";import g from"@material-ui/icons/Close";import t from"react";const h=u(e=>({appBar:{position:"relative",color:`${e.palette.text.primary} !important`,backgroundColor:`${e.palette.background.default} !important`},title:{flex:1,fontSize:e.typography.h6.fontSize},closeIcon:{marginRight:e.spacing(2)},content:{flex:"1 0 auto",padding:e.spacing(2),margin:"0 0 5rem",overflowX:"hidden",overflowY:"hidden","& .wmde-markdown-var":{"--color-canvas-default":e.palette.background.paper,"--color-border-default":e.palette.border},"& .wmde-markdown":{"--color-canvas-default":e.palette.background.paper}}})),b=n({paperFullScreen:{padding:0}})(c),S=t.forwardRef(function(e,r){return t.createElement(i,{direction:"up",ref:r,...e})}),k=({open:e,handleClose:r,title:o,children:l})=>{const a=h();return t.createElement(b,{fullScreen:!0,open:e,onClose:r,TransitionComponent:S,className:a.title},t.createElement(p,{className:a.appBar},t.createElement(d,null,t.createElement(m,{className:a.title,"data-testid":`dialog-${o}`},o),t.createElement(s,{"data-testid":"close-dialog",edge:"end",color:"inherit",onClick:r,"aria-label":"close",className:a.closeIcon},t.createElement(g,null)))),t.createElement(f,{className:a.content},l))};export{k as FullScreenDialog};
|
|
2
|
+
//# sourceMappingURL=FullScreenDialog.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"react";import{groupPassRatesSummaryCsvFilename as i}from"../../utils/charts.esm.js";import"recharts";import"../Charts/ChartTypes.esm.js";import"../Charts/LineChart/LineChart.esm.js";import"@material-ui/core";import"../Charts/chartUtils.esm.js";import"luxon";import{useSummaryAggregationsContext as p}from"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../Charts/BarChart/BarChart.esm.js";import{GroupPassRateHistoryBarChart as n}from"../Charts/BarChart/GroupPassRateHistoryBarChart.esm.js";import{OverviewChartCard as l}from"../OverviewChartCard/OverviewChartCard.esm.js";import"../OverviewChartCard/OverviewChartCardStyles.esm.js";import{overallGroupPassRatesToCsv as u}from"../TechHealthTabs/TechHealthExportFunctions.esm.js";const g=()=>{var t;const{groupPassRatesOverviewTrends:{data:r,isLoading:a,isError:o}}=p(),s=(t=r==null?void 0:r.groupPassRates)==null?void 0:t.edges.length,m=!(r!=null&&r.groupPassRates)||!s||a||o;return e.createElement(l,{title:"Team pass rate",subtitle:"Compare the aggregate pass rate for teams",chartSectionContent:e.createElement(n,null),disableDataExport:m,csvFilename:i,csvData:u(r)})};export{g as GroupPassRateCard};
|
|
2
|
+
//# sourceMappingURL=GroupPassRateCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useApi as E,configApiRef as b}from"@backstage/core-plugin-api";import{makeStyles as O,alpha as k,TextField as y,CircularProgress as F}from"@material-ui/core";import P from"@material-ui/lab/Autocomplete";import c,{useMemo as w,useCallback as v,useEffect as f}from"react";import{useSearchParams as x}from"react-router-dom";import A from"react-use/lib/useLocalStorage";import{useOptions as L}from"./useOptions.esm.js";const G=O(r=>({root:{width:"100%",minWidth:250},textField:{"& $notchedOutline":{borderColor:k(r.page.fontColor,.25)},"&:hover $notchedOutline":{borderColor:r.page.fontColor}},input:{backgroundColor:"transparent",color:r.page.fontColor},clearIndicator:{color:r.page.fontColor},popupIndicator:{color:r.page.fontColor},notchedOutline:{}}),{name:"SoundcheckGroupSelector"}),N=({setError:r})=>{const{options:o,isLoading:u,isError:d}=L(),l=G(),[p,h]=x(),[a,C]=A("soundcheck.overview.groupRef",null),i=p.get("group"),m=E(b).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),s=w(()=>{var e,t;if(!u&&o.length){if(i||a){const g=i!=null?i:a;return(e=o.find(S=>S.ref===g))!=null?e:o[0]}else if(m)return(t=o.find(g=>g.type===m))!=null?t:o[0];return o[0]}return null},[m,u,o,i,a]),n=v((e,t)=>{e&&p.get("group")!==e&&(p.set("group",e),h(p,{replace:t}),C(e))},[p,C,h]),I=v((e,t)=>{n==null||n(t==null?void 0:t.ref)},[n]);return f(()=>{a&&!i&&n(a,!0)},[a,i,n]),f(()=>{n(s==null?void 0:s.ref,!0)},[n,s]),f(()=>{r==null||r(d?new Error("Error loading groups"):void 0)},[d,r]),d?null:c.createElement(P,{"aria-label":"Current group",className:l.root,classes:{clearIndicator:l.clearIndicator,popupIndicator:l.popupIndicator},disableClearable:!0,options:o!=null?o:[],loading:u,groupBy:e=>e.key,value:s,freeSolo:!1,onChange:I,getOptionLabel:e=>e.name,renderInput:e=>c.createElement(y,{...e,variant:"outlined",placeholder:u?"Loading":"Select a group",className:l.textField,InputProps:{...e.InputProps,className:l.input,classes:{notchedOutline:l.notchedOutline},endAdornment:c.createElement(c.Fragment,null,u?c.createElement(F,{color:"inherit",size:20}):null,e.InputProps.endAdornment)}})})};export{N as GroupSelector};
|
|
2
|
+
//# sourceMappingURL=GroupSelector.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useMemo as u}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useAllGroups as f}from"../../hooks/groups/useAllGroups.esm.js";import{useUsersGroupClaims as l}from"../../hooks/groups/useUsersGroupClaims.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";const c=()=>{const{data:s,isLoading:i,isError:p}=l(),{data:t,isLoading:m,isError:a}=f();return{options:u(()=>{const o=new Map;return s&&s.forEach(({name:e,ref:r,type:n})=>{o.set(`${r}`,{name:e,ref:r,type:n,key:"My Groups"})}),t&&t.forEach(({name:e,ref:r})=>{o.has(`${r}`)||o.set(`${r}`,{name:e,ref:r,key:"All Groups"})}),[...o.values()]},[s,t]),isLoading:i||m,isError:p||a}};export{c as useOptions};
|
|
2
|
+
//# sourceMappingURL=useOptions.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{LinearGauge as b}from"@backstage/core-components";import{useTheme as w,Paper as x,Grid as c,Typography as y,Box as B}from"@material-ui/core";import{makeStyles as I}from"@material-ui/core/styles";import t from"react";import{LevelBadge as k}from"../Badges/LevelBadge.esm.js";import"../Badges/NoLevelBadge.esm.js";import"../Badges/CampaignBadge.esm.js";import{generateBadge as P}from"../Badges/badge.esm.js";import{getChartColors as R}from"../Charts/chartUtils.esm.js";import{CheckCard as O}from"../CheckCard/CheckCard.esm.js";import{LevelTooltip as T}from"./LevelTooltip.esm.js";const E=(e,a)=>{var l;if(!((l=e==null?void 0:e.certificationStatus)!=null&&l.numberOfEntities)||a===void 0)return;const n=e.certificationStatus.statusByLevel.findIndex(s=>s.ordinal===a);if(n===-1)return;const r=e.certificationStatus.numberOfEntities,i=[];for(const s of e.certificationStatus.statusByLevel){const m=s.cumulativelyPassed;i.push(r?Math.round(m/r*100):100)}return i[n]},C=(e,a)=>{var l;if(!((l=e==null?void 0:e.certificationStatus)!=null&&l.numberOfEntities)||a===void 0)return;const n=e.certificationStatus.statusByLevel.findIndex(i=>i.ordinal===a);if(n===-1)return 0;const r=[];for(const i of e.certificationStatus.statusByLevel){const s=i.cumulativelyPassed;r.push(s)}for(let i=r.length-2;i>=0;i--)r[i]=Math.min(r[i]+r[i+1],100);return r[n]},z=I(e=>({card:{border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"1.1rem",cursor:"default"},header:{borderBottom:`1px solid ${e.palette.divider}`,width:"100%",padding:e.spacing(1,2),margin:0},levelNameContainer:{gridGap:e.spacing(1),width:"fit-content",padding:0},passRate:{fontWeight:"bold",fontSize:e.typography.overline.fontSize,cursor:"default"},gaugeContainer:{width:200,paddingLeft:e.spacing(.75),paddingRight:e.spacing(.75),paddingTop:2},content:{padding:e.spacing(2.5,2),display:"flex",gap:e.spacing(2)},description:{padding:0},gridItem:{padding:0}})),G=({track:e,level:a,index:l,data:n,lifecycles:r,owners:i,types:s,systems:m,isLoading:L})=>{var p,f,g,v;const o=z(),N=R(w()),d=E(n,a.ordinal),h=C(n,a.ordinal),S=d!==void 0?`${d}%`:"";return t.createElement(x,{elevation:1,className:o.card},t.createElement(c,{container:!0,alignItems:"center",justifyContent:"space-between",direction:"row",className:o.header},t.createElement(c,{item:!0,container:!0,alignItems:"center",direction:"row",className:o.levelNameContainer},t.createElement(k,{badge:(p=a.badge)!=null?p:P(a.ordinal,e)}),t.createElement(T,{level:a,numerator:h!=null?h:0,denominator:(g=(f=n==null?void 0:n.certificationStatus)==null?void 0:f.numberOfEntities)!=null?g:0},t.createElement(y,{className:o.title},(v=a.name)!=null?v:`Level ${a.ordinal}`))),t.createElement(c,{item:!0,className:o.gridItem},t.createElement(c,{container:!0,item:!0,className:o.gridItem},t.createElement(y,{variant:"overline",className:o.passRate},S),t.createElement("div",{className:o.gaugeContainer},t.createElement(b,{value:(d!=null?d:0)/100,getColor:u=>N[l]}))))),t.createElement(B,{className:o.content},t.createElement(c,{container:!0,spacing:1},a.checks.map(u=>t.createElement(c,{item:!0,xs:12,sm:6,md:4,className:o.gridItem,key:u.id},t.createElement(O,{track:e,check:u,lifecycles:r,owners:i,types:s,systems:m,isLoading:L}))))))};export{G as LevelCard,E as calculateCumulativePassRate,C as calculateCumulativePassRateNumerator};
|
|
2
|
+
//# sourceMappingURL=LevelCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{MarkdownContent as s}from"@backstage/core-components";import{makeStyles as d,Typography as i}from"@material-ui/core";import e from"react";import{StyledTooltip as p}from"../StyledTooltip/StyledTooltip.esm.js";const c=d(()=>({root:{display:"flex"},boldCaption:{fontWeight:"bold"}})),v=({ordinal:o,name:a,description:r,numerator:l,denominator:n})=>{const t=c();return e.createElement("div",{className:t.root},e.createElement("div",null,a?e.createElement(e.Fragment,null,e.createElement("div",null,e.createElement(i,{variant:"caption",className:t.boldCaption},a)),e.createElement("div",null,e.createElement(i,{variant:"caption"},`Level ${o}`))):e.createElement(i,{variant:"caption",className:t.boldCaption},`Level ${o}`),r&&e.createElement(s,{content:r}),n&&n>0?`${l} of ${n} entities passing`:`${l} entities passing`))},u=({children:o,level:a,numerator:r,denominator:l})=>{const{ordinal:n,name:t,description:m}=a;return e.createElement(p,{arrow:!0,title:e.createElement(v,{ordinal:n,name:t!=null?t:void 0,description:m!=null?m:void 0,numerator:r,denominator:l}),enterDelay:500,placement:"bottom"},o)};export{u as LevelTooltip,c as useStyles};
|
|
2
|
+
//# sourceMappingURL=LevelTooltip.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useEntity as y}from"@backstage/plugin-catalog-react";import{makeStyles as g}from"@material-ui/core";import l,{useState as E,useEffect as w}from"react";import C from"react-confetti";import L from"react-use/lib/useMeasure";import a from"react-use/lib/usePrevious";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useCertificationDetailsForTrack as P}from"../../hooks/certifications/useCertificationDetailsForTrack.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";const b=g(()=>({root:{position:"absolute",width:"100%",height:"100%"}})),k=({programId:t})=>{var e,r;const f=b(),{entity:s}=y(),{data:m,isLoading:d}=P(s,t),[c,{width:u,height:h}]=L(),o=d?void 0:(r=(e=m==null?void 0:m.highestLevel)==null?void 0:e.ordinal)!=null?r:-1,i=a(o),n=a(t),[v,p]=E(!1);return w(()=>{typeof i!="undefined"&&typeof o!="undefined"&&t===n&&o>i&&p(!0)},[o,i,t,n]),v?l.createElement("div",{ref:c,className:f.root},l.createElement(C,{width:u,height:h,numberOfPieces:1e3,gravity:1,initialVelocityY:20,recycle:!1,onConfettiComplete:()=>p(!1)})):null};export{k as LevelUpParty};
|
|
2
|
+
//# sourceMappingURL=LevelUpParty.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as r,Grid as i,CircularProgress as o}from"@material-ui/core";import n from"react";const a=r(e=>({loadingContainer:{marginTop:e.spacing(1),display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}})),s=({size:e})=>{const t=a();return n.createElement(i,{container:!0,className:t.loadingContainer},n.createElement(o,{size:e}))};export{s as LoadingIndicator};
|
|
2
|
+
//# sourceMappingURL=LoadingIndicator.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{withStyles as v,Button as k,makeStyles as w,Popover as y,TextField as C,Checkbox as F}from"@material-ui/core";import P from"@material-ui/icons/ArrowDropDown";import{Autocomplete as O}from"@material-ui/lab";import t,{useState as T}from"react";const c=v(e=>({root:{color:e.palette.text.primary,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),textTransform:"initial"}}))(k),I=w(e=>({root:{borderBottom:`1px solid ${e.palette.grey.A100}`,padding:e.spacing(1.5),backgroundColor:e.palette.background.paper},popper:{width:300,height:400,overflow:"hidden"},paper:{boxShadow:"none",margin:0},popperDisablePortal:{width:"100% !important"},option:{padding:e.spacing(.5),'&[data-selected="true"]':{background:"inherit"}},chips:{display:"flex",flexWrap:"wrap"},chip:{margin:1},listbox:{margin:1,height:320}})),S=({name:e,options:s,label:a,icon:d,filters:m,setFilters:u,disabled:g,customRenderOption:n})=>{const r=I(),[i,p]=T(null),h=o=>{p(o.currentTarget)},f=()=>{p(null)},b=(o,l)=>{u(l)},x=o=>t.createElement(C,{...o,name:"filter",variant:"outlined",placeholder:"Filter",fullWidth:!0}),E=(o,{selected:l})=>t.createElement(t.Fragment,null,t.createElement(F,{value:o,checked:l,color:"primary"}),o);return t.createElement(t.Fragment,null,t.createElement(c,{startIcon:d,endIcon:t.createElement(P,null),onClick:h,disabled:g},a),t.createElement(y,{id:`${a}-filter-popover`,open:!!i,anchorEl:i,onClose:f,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{elevation:2,className:r.popper}},t.createElement(O,{multiple:!0,disablePortal:!0,classes:{root:r.root,paper:r.paper,popperDisablePortal:r.popperDisablePortal,option:r.option,listbox:r.listbox},renderOption:n!=null?n:E,id:`multi-select-filter-${e}--select`,value:m,options:s,limitTags:3,onChange:b,getOptionSelected:(o,l)=>o.toLowerCase()===l.toLowerCase(),renderInput:x,renderTags:()=>null,closeIcon:null,popupIcon:null,handleHomeEndKeys:!0,clearOnEscape:!0,open:!0})))};export{c as QuickFilterButton,S as default};
|
|
2
|
+
//# sourceMappingURL=MultiSelectFilter.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as r,Button as a}from"@material-ui/core";import n from"react";const l=r(t=>({button:{fontSize:t.typography.subtitle2.fontSize,color:t.palette.text.primary,textTransform:"none",padding:0}})),i=({label:t,...e})=>{const o=l();return n.createElement(a,{className:o.button,variant:"text",...e,"aria-label":t},t)};export{i as NoBorderButton};
|
|
2
|
+
//# sourceMappingURL=NoBorderButton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Card as E,Box as a,Typography as m,Tooltip as p,Button as d}from"@material-ui/core";import C from"@material-ui/icons/GetApp";import e from"react";import{CSVLink as h}from"react-csv";import{useOverviewChartCardStyles as N}from"./OverviewChartCardStyles.esm.js";const u=({title:c,subtitle:n,summaryCardContent:r,chartSectionContent:o,disableDataExport:l,csvData:s,csvFilename:i})=>{const t=N();return e.createElement(E,{className:t.card},e.createElement(a,{className:t.headerRow},e.createElement(a,{className:t.headerSection},e.createElement(m,{className:t.title},c),e.createElement(m,{variant:"caption"},n)),e.createElement(a,{className:t.headerExportSection},e.createElement(h,{data:s,filename:i,onClick:()=>!l},e.createElement(p,{title:"Export to CSV"},e.createElement("span",null,e.createElement(d,{disabled:l},e.createElement(C,null))))))),e.createElement(a,{className:t.contentRow},r&&e.createElement(a,{className:t.leftSection},e.createElement(a,{className:t.summaryCard},r)),e.createElement(a,{className:t.chartSection},o)))};export{u as OverviewChartCard};
|
|
2
|
+
//# sourceMappingURL=OverviewChartCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as t}from"@material-ui/core/styles";const i=t(e=>({card:{display:"flex",flexDirection:"column",gap:e.spacing(1),border:`1px solid ${e.palette.divider}`,boxShadow:"none",width:"99%"},title:{fontWeight:"bold",fontSize:e.typography.h5.fontSize,lineHeight:`${e.typography.h3.fontSize}px`},subtitle:{fontSize:e.typography.pxToRem(14),lineHeight:`${e.typography.h6.fontSize}px`,color:e.palette.grey[800]},headerRow:{display:"flex",padding:e.spacing(1,2),borderBottom:`1px solid ${e.palette.divider}`,gap:e.spacing(2)},headerSection:{display:"flex",flexDirection:"column",gap:e.spacing(.5)},headerExportSection:{display:"flex",alignItems:"center",marginLeft:"auto",marginRight:0},contentRow:{padding:e.spacing(2.5,2),display:"flex",gap:e.spacing(2)},leftSection:{width:"200px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"200px"},chartDisplaySummary:{flex:1,display:"flex",flexDirection:"row",gap:e.spacing(1),alignItems:"center",justifyContent:"end"}}));export{i as useOverviewChartCardStyles};
|
|
2
|
+
//# sourceMappingURL=OverviewChartCardStyles.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useRouteRef as p}from"@backstage/core-plugin-api";import{EntityRefLink as M}from"@backstage/plugin-catalog-react";import{Typography as t,Button as z,Menu as O,MenuItem as v}from"@material-ui/core";import j from"@material-ui/icons/ArrowDropDown";import A from"@material-ui/icons/ArrowDropUp";import e,{useState as B}from"react";import{useNavigate as F}from"react-router-dom";import{useEntityPassRateTrend as J}from"../../../hooks/aggregations/useEntityPassRateTrend.esm.js";import{campaignDetailsRouteRef as Q,campaignEditRouteRef as V}from"../../../routes.esm.js";import{convertToReadableDate as f}from"../../CampaignsTab/CampaignDetailsPage/CampaignDetails.esm.js";import{Loading as W}from"../../TechHealth/Loading/Loading.esm.js";import{useCampaignRowStyles as $}from"./useCampaignRowStyles.esm.js";import{calculateOverallPassPercent as q,calculatePassingEntities as G}from"./utils.esm.js";const H=l=>{if(l!=null&&l.edges.length){const n=G(l);return e.createElement(t,{variant:"body2"},n,"/",l.edges.length)}return e.createElement(t,{variant:"body2"},"No progress found.")},K=({campaign:l})=>{var n;const a=$(),g=p(Q),N=p(V),c=F(),[i,o]=B(null),d=150,b=l.track.levels.flatMap(({checks:m})=>m.map(({id:L})=>L)),{data:u,isLoading:y,isError:C}=J({filter:{tracks:[{trackId:l.track.id}],checkIds:{included:b},numberOfDays:void 0}}),r=(n=u==null?void 0:u.individualEntityPassRates)!=null?n:{totalCount:0,edges:[],pageInfo:{hasNextPage:!1,hasPreviousPage:!1}},R=m=>{o(m.currentTarget)},x=()=>{o(null)},h=()=>{c(N({campaignId:l.id}))},w=()=>{c(g({campaignId:l.id}))};if(y)return e.createElement("div",{"data-testid":"loading-indicator"},e.createElement(W,null));if(C)return e.createElement(t,{color:"error"},"Failed to load campaigns progress.");const k=r.edges.length?q(r):0,P=H(r),{name:D,description:s,ownerEntityRef:I,targetCompletionDate:S,startDate:T,supportChannel:E}=l;return e.createElement("div",{className:a.campaignCards},e.createElement("div",{className:a.campaignCard},e.createElement("div",{className:a.flexRow,style:{justifyContent:"space-between"}},e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"h5"},D),e.createElement(t,{variant:"body1",className:a.description},s.length>d?`${s.substring(0,d)}...`:s)),e.createElement("div",null,e.createElement(z,{variant:"text","aria-controls":"menu","aria-haspopup":"true",onClick:R},e.createElement("div",{className:a.actions},e.createElement("div",{className:a.actionsText},"Actions"),e.createElement("div",{className:a.flexRow},i?e.createElement(A,{fontSize:"small"}):e.createElement(j,{fontSize:"small"})))),e.createElement(O,{id:"campaign-menu",anchorEl:i,keepMounted:!0,open:!!i,onClose:x,classes:{list:a.menuList}},e.createElement(v,{onClick:w},"View"),e.createElement(v,{onClick:h},"Edit")))),e.createElement("div",{className:a.detailSection},e.createElement("div",{className:a.flexColumn},e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Owner:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},e.createElement(M,{className:a.ownerLink,entityRef:I}))),E&&e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Support Channel:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},E))),e.createElement("div",{className:a.flexColumn},e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Start Date:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},f(T))),e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Target Completion Date:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},f(S)))),e.createElement("div",{className:a.flexRow,style:{minWidth:"300px"}},e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"subtitle1",className:a.label},"Checks Passing"),e.createElement(t,{variant:"body2"},k,"%")),e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"subtitle1",className:a.label},"Entities Complete"),P)))))};export{K as CampaignRow};
|
|
2
|
+
//# sourceMappingURL=CampaignRow.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as i}from"@material-ui/core";const t=i(e=>({campaignCards:{display:"flex",flexDirection:"column"},campaignCard:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,padding:e.spacing(2),gap:e.spacing(5),borderRadius:e.shape.borderRadius},actions:{display:"flex",alignItems:"center",gap:e.spacing(1)},actionsText:{textTransform:"lowercase","&:first-letter":{textTransform:"uppercase"}},flexRow:{display:"flex",gap:e.spacing(1)},campaignDescription:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},progress:{display:"flex",alignItems:"center",gap:e.spacing(1),width:"90%"},flexColumn:{width:"100%",display:"flex",flexDirection:"column",gap:e.spacing(1)},detailSection:{display:"flex",flexDirection:"row",justifyContent:"space-between",gap:e.spacing(.5)},label:{fontWeight:"bold",color:e.palette.text.primary},value:{marginTop:"2px"},description:{maxWidth:"90%"},menuList:{backgroundColor:e.palette.background.paper},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}}));export{t as useCampaignRowStyles};
|
|
2
|
+
//# sourceMappingURL=useCampaignRowStyles.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const a=e=>{var l;let n=0;return e==null||e.edges.forEach(({node:s})=>{n+=s.snapshotPassRate}),Math.round(n/((l=e==null?void 0:e.edges.length)!=null?l:1))},t=e=>e==null?void 0:e.edges.filter(({node:l})=>l.snapshotPassRate===100).length;export{a as calculateOverallPassPercent,t as calculatePassingEntities};
|
|
2
|
+
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{stringifyEntityRef as i}from"@backstage/catalog-model";import{useEntity as o}from"@backstage/plugin-catalog-react";import{SpotifyLicenseBanner as m}from"@spotify/backstage-plugin-core";import e,{useEffect as a}from"react";import{useSearchParams as c,Routes as l,Route as s}from"react-router-dom";import{soundcheckBackend as p,invalidLicenseMessage as u}from"../../utils/license.esm.js";import{SoundcheckQueryClientProvider as f}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContent as d}from"./OverviewPageContent.esm.js";const g=()=>{const{entity:r}=o(),[t,n]=c();return a(()=>{!t.get("group")&&r&&(t.set("group",i(r)),n(t,{replace:!0}))},[t,n,r]),e.createElement(f,null,e.createElement(l,null,e.createElement(s,{path:"/*",element:e.createElement(e.Fragment,null,e.createElement(m,{backend:p,invalidLicenseMessage:u,inline:!0}),e.createElement(d,{isFixedGroup:!0}))})))};export{g as FixedGroupOverviewPage};
|
|
2
|
+
//# sourceMappingURL=FixedGroupOverviewPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Page as m,Header as a}from"@backstage/core-components";import{makeStyles as c}from"@material-ui/core";import{SpotifyLicenseBanner as l}from"@spotify/backstage-plugin-core";import e,{useState as s}from"react";import{UserProvider as p}from"../../contexts/UserProvider.esm.js";import d from"../../hooks/useConfirmationModal.esm.js";import{soundcheckBackend as v,invalidLicenseMessage as f}from"../../utils/license.esm.js";import{GroupSelector as u}from"../GroupSelector/GroupSelector.esm.js";import{SoundcheckQueryClientProvider as E}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContent as g}from"./OverviewPageContent.esm.js";const S=c(r=>({overviewContainer:{padding:r.spacing(1,3)}})),k=r=>{const{title:t="Soundcheck"}=r,o=S(),[n,i]=s(void 0);return e.createElement(E,null,e.createElement(p,null,e.createElement(d,null,e.createElement(m,{themeId:"website"},e.createElement(l,{backend:v,invalidLicenseMessage:f}),e.createElement(a,{title:t},e.createElement(u,{setError:i})),e.createElement("div",{className:o.overviewContainer},e.createElement(g,{groupSelectorError:n}))))))};export{k as OverviewPage};
|
|
2
|
+
//# sourceMappingURL=OverviewPage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Link as O}from"@backstage/core-components";import{useRouteRef as A}from"@backstage/core-plugin-api";import{makeStyles as G,Grid as m,Accordion as L,AccordionSummary as R,Typography as P,AccordionDetails as $}from"@material-ui/core";import F from"@material-ui/icons/ExpandMore";import e,{useState as k,useEffect as T,useCallback as I}from"react";import{useSearchParams as B}from"react-router-dom";import{useGetCampaigns as D}from"../../hooks/campaigns/useGetCampaigns.esm.js";import{useFacetsForOwner as M}from"../../hooks/facets/useFacetsForOwner.esm.js";import{campaignsPageRouteRef as V}from"../../routes.esm.js";import{LoadingIndicator as _}from"../LoadingIndicator/LoadingIndicator.esm.js";import{CampaignRow as j}from"./CampaignRow/CampaignRow.esm.js";import{OverviewTabs as z}from"./OverviewTabs.esm.js";import{OverviewTabsSkeleton as H}from"./skeletons/OverviewTabsSkeleton.esm.js";import{TableContent as U}from"./TableContent/TableContent.esm.js";const W=G(t=>({tableContainer:{padding:0,backgroundColor:"transparent"},campaignsGrid:{margin:`0 0 ${t.spacing(3)}px`,border:`1px solid ${t.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:t.spacing(2),gap:t.spacing(2)},campaignsLink:{textAlign:"center",margin:`${t.spacing(1)}rem 0 ${t.spacing(1)}`},tableLoading:{backgroundColor:t.palette.background.paper,padding:t.spacing(6)},noPadding:{padding:0},accordion:{boxShadow:"none"}})),p=3,q=({groupSelectorError:t,isFixedGroup:b=!1})=>{const[r,g]=B(),{group:l,kind:c,type:d}=Object.fromEntries(r.entries()),C=A(V),[a,u]=k(void 0),[x,h]=k(void 0);T(()=>{((a==null?void 0:a.kind)!==c||(a==null?void 0:a.type)!==d)&&u({kind:c,type:d})},[c,d,a]);const{data:E,isLoading:f}=M(l),{data:v}=D({orderAlphabetical:"default",searchByOwner:l,searchByStatus:"active"}),o=v==null?void 0:v.edges.map(n=>n.node),y=o==null?void 0:o.slice(0,p),w=x||t,S=I((n,s,N)=>{n&&(u({kind:n,type:s}),s?(r.set("kind",n),r.set("type",s)):(r.delete("type"),r.set("kind",n)),g(r,{replace:N}))},[r,g]),i=W();return e.createElement(m,{container:!0,spacing:0},o&&o.length>0&&e.createElement(m,{item:!0,xs:12,className:i.campaignsGrid},e.createElement(L,{style:{boxShadow:"none"}},e.createElement(R,{expandIcon:e.createElement(F,null)},e.createElement(P,{variant:"h6"},"Campaigns")),e.createElement($,null,e.createElement("div",{className:i.campaignsCard},y==null?void 0:y.map(n=>e.createElement("div",{key:n.id},e.createElement(j,{campaign:n})))),o.length>p&&e.createElement(O,{to:C(),className:i.campaignsLink},"More Campaigns")))),e.createElement(m,{item:!0,xs:12,className:i.noPadding},f?e.createElement(H,null):e.createElement(z,{unfilteredFacets:E,kind:a==null?void 0:a.kind,type:a==null?void 0:a.type,onChange:S})),e.createElement(m,{item:!0,xs:12,className:i.tableContainer},f?e.createElement("div",{className:i.tableLoading},e.createElement(_,{size:80})):e.createElement(U,{facets:E,kind:a==null?void 0:a.kind,type:a==null?void 0:a.type,setError:h,hasError:w,ownerEntityRef:l,isFixedGroup:b})))};export{p as OVERVIEW_CAMPAIGNS_COUNT,q as OverviewPageContent};
|
|
2
|
+
//# sourceMappingURL=OverviewPageContent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as T,Tabs as h,Tab as E}from"@material-ui/core";import d,{useCallback as C,useEffect as $}from"react";import{RefetchingIndicator as B}from"../RefetchingIndicator/RefetchingIndicator.esm.js";const F=T(o=>({root:{borderTop:`1px solid ${o.palette.divider}`,borderBottom:`1px solid ${o.palette.divider}`},tab:{textTransform:"uppercase",paddingTop:o.spacing(2),paddingBottom:o.spacing(2)}})),I=({unfilteredFacets:o,onChange:r,kind:i,type:p})=>{var s,u,c;const f=F(),e={types:(s=o==null?void 0:o.types.filter(({count:n})=>n>0))!=null?s:[]},b=C((n,l)=>{var t;r((t=e==null?void 0:e.types[l].kind)!=null?t:"",e==null?void 0:e.types[l].type)},[e==null?void 0:e.types,r]);$(()=>{var n,l,t;const a=(e==null?void 0:e.types)&&e.types.length>=0,g=!i&&a,k=i&&a&&!(e!=null&&e.types.find(({kind:x,type:m})=>i===x&&(!p&&!m||p===m)));(g||k)&&r((l=(n=e==null?void 0:e.types[0])==null?void 0:n.kind)!=null?l:"",(t=e==null?void 0:e.types[0])==null?void 0:t.type,!0)},[i,p,e==null?void 0:e.types,r]);const y=(u=e==null?void 0:e.types.map(({kind:n,type:l,count:t})=>{const a=`${n}|${l!=null?l:""}`;return{key:a,label:`${l!=null?l:n} (${t>50?"50+":t})`,id:a,className:f.tab}}))!=null?u:[];if(!y.length)return null;const v=(c=e==null?void 0:e.types.findIndex(n=>n.kind===i&&(!n.type&&!p||n.type===p)))!=null?c:-1;return d.createElement(d.Fragment,null,d.createElement(B,null),d.createElement(h,{onChange:b,indicatorColor:"primary",variant:"scrollable",value:v>-1?v:void 0},y.map(n=>d.createElement(E,{...n}))))};export{I as OverviewTabs};
|
|
2
|
+
//# sourceMappingURL=OverviewTabs.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as u}from"@material-ui/core";import e from"react";import{AlertPanel as d}from"../../AlertPanel/AlertPanel.esm.js";import{NoCertifications as y,NoEntities as h}from"../../EmptyState/EmptyState.esm.js";import{VirtualTableContent as v}from"./VirtualTableContent.esm.js";const g=u(()=>({scrollContainer:{overflow:"auto"}})),w=({facets:t,ownerEntityRef:r,hasError:o,kind:a,type:c,setError:m,isFixedGroup:p})=>{var n,i,l;const f=g();if(o)return e.createElement(d,{severity:"error",title:o.message});const s="Use the groups drop-down list at the top-right of the page to select another group.";return t&&((i=(n=t.types)==null?void 0:n.length)!=null?i:0)>0?(l=t.types)!=null&&l.find(E=>E.count>0)?e.createElement("div",{className:f.scrollContainer},e.createElement(v,{facets:t,kind:a,type:c,setError:m,ownerEntityRef:r,hasError:o})):e.createElement(y,{ownerEntityRef:r,selectGroupHint:s}):e.createElement(h,{ownerEntityRef:r,selectGroupHint:p?void 0:s})};export{w as TableContent};
|
|
2
|
+
//# sourceMappingURL=TableContent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import a,{useMemo as p}from"react";import{VirtualizedResultsTable as m}from"../../ResultsTable/virtualized/VirtualizedResultsTable.esm.js";const y=({facets:t,ownerEntityRef:n,kind:u,type:r,setError:o})=>{const c=p(()=>{const l=new Map;return t.types.forEach(({kind:s,type:e})=>{const i=`${s}|${e!=null?e:""}`;l.set(i,a.createElement(m,{key:i,ownerEntityRef:n,kind:s,type:e,setError:o}))}),l},[t,n,o]);return a.createElement("div",null,c.get(`${u}|${r!=null?r:""}`))};export{y as VirtualTableContent};
|
|
2
|
+
//# sourceMappingURL=VirtualTableContent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{HeaderTabs as r}from"@backstage/core-components";import o from"react";const n=e=>({key:`skeleton${e}`,label:"",id:`skeleton${e}`}),s=()=>{const e=Array.from({length:4},(a,t)=>n(t));return o.createElement(r,{tabs:e})};export{s as OverviewTabsSkeleton};
|
|
2
|
+
//# sourceMappingURL=OverviewTabsSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{WarningPanel as i}from"@backstage/core-components";import{makeStyles as m}from"@material-ui/core";import{capitalize as l}from"lodash";import e from"react";const d=m({warningPanel:{padding:"24px 24px 0 24px"}}),c=({entityName:t,entityId:n,showNotFound:o=!1,showCannotView:r=!1,showCannotEdit:s=!1})=>{const{warningPanel:a}=d();return e.createElement(e.Fragment,null,o&&e.createElement("div",{className:a},e.createElement(i,{title:`${l(t)} not found`,message:`There is no ${t} with the requested id: ${n}.`})),r&&e.createElement("div",{className:a},e.createElement(i,{title:`Cannot view ${t}`,message:`User does not have permission to view ${t} id: ${n}.`})),s&&e.createElement("div",{className:a},e.createElement(i,{title:`Cannot edit ${t}`,message:`Cannot edit ${t} id: ${n}.`})))};export{c as PageWarningMessage};
|
|
2
|
+
//# sourceMappingURL=PageWarningMessage.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as b,TablePagination as h}from"@material-ui/core";import v,{useState as m,useCallback as d}from"react";import{useSearchParams as S}from"react-router-dom";const k=b(a=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",left:"0",backgroundColor:a.palette.background.paper,borderTop:`1px solid ${a.palette.divider}`,zIndex:1e3}})),x=({defaultPageSize:a,label:r})=>{const[t,o]=m(),[e,n]=S(),s=e.get(r),P=s?parseInt(s,10):a,[i,l]=m(0),g=d(p=>{var u;e.set("entitiesPerPage",(u=p.target.value)!=null?u:a),n(e,{replace:!0}),l(0),o(void 0)},[a,e,n]);return{cursor:t,setCursor:o,pageSize:P,currentPage:i,setCurrentPage:l,onRowsPerPageChange:g}},z=({totalCount:a,setCursor:r,endCursor:t,prevCursor:o,defaultPageSize:e,currentPage:n,setCurrentPage:s,onRowsPerPageChange:P,pageSize:i,labelRowsPerPage:l,rowsPerPageOptions:g})=>{const p=k(),u=d(()=>{t&&r(t)},[t,r]),f=d(()=>{o&&r(o)},[o,r]),w=(R,c)=>{s(C=>(c>C?u():c<C&&f(),c))};return v.createElement(h,{className:p.pagination,component:"div",count:a,page:n,onPageChange:w,rowsPerPage:i!=null?i:e,onRowsPerPageChange:P,labelRowsPerPage:l,rowsPerPageOptions:g!=null?g:[e,e*2,e*4]})};export{z as CursorPagination,x as useCursorPagination};
|
|
2
|
+
//# sourceMappingURL=CursorPagination.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as h,TablePagination as k}from"@material-ui/core";import x,{useState as R}from"react";import{RESULTS_PER_PAGE as r}from"../../utils/filters.esm.js";const S=h(e=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",backgroundColor:e.palette.background.paper,borderTop:`1px solid ${e.palette.divider}`,marginRight:"40px"}})),E=({response:e,listingsPerPage:n,cursor:d,setCursor:a,prevCursors:l,setPrevCursors:s,labelPerPageDropdown:t,urlRoute:i})=>{var g;const P=S(),u=e!=null&&e.edges?e==null?void 0:e.edges[(e==null?void 0:e.edges.length)-1]:{cursor:""},[c,m]=R(0),v=()=>{s(o=>[...o,d]),a(u==null?void 0:u.cursor)},b=()=>{a(l[l.length-1]),s(o=>o.slice(0,-1))},f=(o,p)=>{m(C=>(p>C?v():b(),p))},w=o=>{window.open(`/soundcheck/${i!=null?i:"tracks?tracksPerPage="}${o.target.value}`,"_self")};return x.createElement(k,{className:P.pagination,component:"div",count:(g=e==null?void 0:e.totalCount)!=null?g:-1,rowsPerPage:n!=null?n:10,onPageChange:f,page:c,onRowsPerPageChange:w,labelRowsPerPage:t!=null?t:"Listings per page:",rowsPerPageOptions:[r,r*2,r*4]})};export{E as Pagination};
|
|
2
|
+
//# sourceMappingURL=Pagination.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Box as n,Grid as s,TablePagination as h}from"@material-ui/core";import{makeStyles as C}from"@material-ui/core/styles";import t from"react";import{useNavigate as u}from"react-router-dom";import"recharts";import"../Charts/ChartTypes.esm.js";import{LineChart as w}from"../Charts/LineChart/LineChart.esm.js";import"../Charts/chartUtils.esm.js";import"luxon";import"../TechHealthSummary/SummaryAggregationsProvider.esm.js";import"@backstage/catalog-model";import"../Charts/BarChart/BarChart.esm.js";import{SummaryCard as x}from"../SummaryCard/SummaryCard.esm.js";import{PassRateMetadata as y}from"./PassRateMetadata.esm.js";const E=C(a=>({root:{display:"flex",flexDirection:"column",width:"100%"},gridContainer:{flexGrow:1},cardContent:{display:"flex",flexDirection:"column",gap:a.spacing(1),height:"100%"},footer:{display:"flex",flexDirection:"column",gap:a.spacing(1),justifyContent:"end",marginTop:"auto"}})),R=({data:a,totalCount:m,rowsPerPage:l,page:p,onPageChange:c,onRowsPerPageChange:g})=>{const r=E(),d=u(),f=[{dataKey:"passRate",name:"Pass rate"}];return t.createElement(n,{className:r.root},t.createElement(s,{container:!0,spacing:2,className:r.gridContainer},a.map((e,P)=>{var o,i;return t.createElement(s,{item:!0,key:P,xs:12,sm:12,md:6,lg:4,xl:3},t.createElement(x,{title:(o=e.name)!=null?o:e.id,description:e.description,children:t.createElement(n,{className:r.cardContent},t.createElement(n,{className:r.footer},t.createElement(y,{ownerEntityRef:e.owner,passRates:e.lineChart.snapshotPassRates}),t.createElement(w,{data:e.lineChart.trendPassRates,lines:(i=e.lineChart.lineConfigs)!=null?i:f,height:150}))),handleView:()=>e.navigateTo?d(e.navigateTo):void 0}))})),t.createElement(h,{rowsPerPageOptions:[10,25,50],component:"div",count:m,rowsPerPage:l,page:p,onPageChange:c,onRowsPerPageChange:g,labelRowsPerPage:"Items per page:"}))};export{R as PassRateGrid};
|
|
2
|
+
//# sourceMappingURL=PassRateGrid.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{EntityRefLink as I}from"@backstage/plugin-catalog-react";import{makeStyles as f,List as y,Typography as l,ListItem as i,Tooltip as o,ListItemIcon as s,ListItemText as c}from"@material-ui/core";import h from"@material-ui/icons/Group";import N from"@material-ui/icons/TrendingDown";import g from"@material-ui/icons/TrendingFlat";import u from"@material-ui/icons/TrendingUp";import e from"react";import{Trend as n}from"./types.esm.js";const L=f(a=>({cardSection:{marginBottom:a.spacing(2)},listItem:{padding:0},listItemText:{margin:0},listItemIcon:{marginRight:a.spacing(1),minWidth:0},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),T=({ownerEntityRef:a,passRates:p})=>{const t=L();return e.createElement(y,{dense:!0,disablePadding:!0,className:t.cardSection},e.createElement(l,{variant:"overline",color:"textSecondary"},"Details"),a&&e.createElement(i,{disableGutters:!0,className:t.listItem},e.createElement(o,{title:"Owner"},e.createElement(s,{className:t.listItemIcon},e.createElement(h,{color:"inherit",fontSize:"small"}))),e.createElement(c,{className:t.listItemText,primary:e.createElement(I,{className:t.ownerLink,entityRef:a!=null?a:"No Owner",hideIcon:!0})})),p.map(({name:m,value:d,trend:r},E)=>e.createElement(i,{disableGutters:!0,className:t.listItem,key:E},e.createElement(o,{title:"The most recent pass rate."},e.createElement(s,{className:t.listItemIcon},r===n.UP&&e.createElement(u,{color:"inherit",fontSize:"small"}),r===n.DOWN&&e.createElement(N,{color:"inherit",fontSize:"small"}),r===n.FLAT&&e.createElement(g,{color:"inherit",fontSize:"small"}))),e.createElement(c,{className:t.listItemText,primary:e.createElement(l,{variant:"body2",color:"textPrimary"},m!=null?m:"Latest Pass Rate",": ",e.createElement("b",null,Math.round(d),"%"))}))))};export{T as PassRateMetadata};
|
|
2
|
+
//# sourceMappingURL=PassRateMetadata.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Paper as b,Table as g,TableHead as P,TableRow as o,TableCell as d,TableBody as w,TablePagination as C}from"@material-ui/core";import{makeStyles as h}from"@material-ui/core/styles";import e from"react";const u=h(l=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${l.palette.divider}`,borderRadius:l.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),E=({data:l,totalCount:m,columns:t,rowsPerPage:s,page:i,onPageChange:p,onRowsPerPageChange:c})=>{const n=u();return e.createElement(b,{className:n.paper},e.createElement(g,{size:"small"},e.createElement(P,null,e.createElement(o,null,t.map(a=>e.createElement(d,{key:`header-${a.id}`,className:n.tableHeaderCell},a.label)))),e.createElement(w,null,l.map(a=>e.createElement(o,{key:a.id},t.map(r=>e.createElement(d,{key:`cell-${r.id}`},r.renderCell?r.renderCell(a):a[r.id])))))),e.createElement(C,{rowsPerPageOptions:[10,25,50],count:m,component:"div",rowsPerPage:s,page:i,onPageChange:p,onRowsPerPageChange:c}))};export{E as NewPassRateTable};
|
|
2
|
+
//# sourceMappingURL=NewPassRateTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Paper as E,Table as h,TableHead as C,TableRow as c,TableCell as i,TableBody as T,TablePagination as f}from"@material-ui/core";import{makeStyles as w}from"@material-ui/core/styles";import a,{useState as p,useEffect as R}from"react";const k=w(t=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${t.palette.divider}`,borderRadius:t.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),y=({data:t,columns:o})=>{const m=k(),[d,r]=p(0),[n,b]=p(10);R(()=>{r(0)},[t.length]);const g=(e,l)=>{r(l)},u=e=>{b(+e.target.value),r(0)},s=d*n,P=s+n;return a.createElement(E,{className:m.paper},a.createElement(h,{size:"small"},a.createElement(C,null,a.createElement(c,null,o.map(e=>a.createElement(i,{key:`header-${e.id}`,className:m.tableHeaderCell},e.label)))),a.createElement(T,null,t.slice(s,P).map(e=>a.createElement(c,{key:e.id},o.map(l=>a.createElement(i,{key:`cell-${l.id}`},l.renderCell?l.renderCell(e):e[l.id])))))),a.createElement(f,{rowsPerPageOptions:[10,25,50],component:"div",count:t.length,rowsPerPage:n,page:d,onPageChange:g,onRowsPerPageChange:u}))};export{y as PassRateTable};
|
|
2
|
+
//# sourceMappingURL=PassRateTable.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as n,LinearProgress as a}from"@material-ui/core";import e,{useState as p}from"react";import s from"react-use/lib/useDebounce";import c from"react-use/lib/useUnmount";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import{useIsFetching as d}from"@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"react-router-dom";import{FadeIn as l}from"../FadeIn/FadeIn.esm.js";const f=n(t=>({indicator:{position:"absolute",width:"100%",zIndex:t.zIndex.speedDial}})),u=()=>{const t=d(),r=f(),[i,o]=p(!!t),[I,m]=s(()=>{o(!!t)},250,[t]);return c(m),i?e.createElement(l,null,e.createElement("div",{className:r.indicator},e.createElement(a,{variant:"indeterminate","data-testid":"refetching-indicator"}))):null};export{u as RefetchingIndicator};
|
|
2
|
+
//# sourceMappingURL=RefetchingIndicator.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as n,Tooltip as p,Typography as c}from"@material-ui/core";import s from"@material-ui/icons/Schedule";import{useAutoUpdatingRelativeTime as f}from"@spotify/backstage-plugin-core";import{DateTime as a}from"luxon";import t from"react";const T=n(e=>({root:{display:"inline-flex",alignItems:"center",gap:e.spacing(1)}})),g=({timestamp:e,description:i})=>{const r=T(),m=a.fromISO(e).toLocaleString(a.DATETIME_FULL),o=f(e),l=i?`${i}: ${o}`:void 0;return t.createElement("div",{className:r.root},t.createElement(p,{title:m},t.createElement(c,{variant:"caption","aria-label":l},o)),t.createElement(s,{fontSize:"small"}))};export{g as RelativeTime};
|
|
2
|
+
//# sourceMappingURL=RelativeTime.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseEntityRef as u}from"@backstage/catalog-model";import{Link as f}from"@backstage/core-components";import{makeStyles as h}from"@material-ui/core";import t,{memo as k}from"react";import{ResultState as p}from"../../../graphql/generated/index.esm.js";import{CheckIcon as v}from"../../CheckIcon/CheckIcon.esm.js";import{CheckCellTooltip as $}from"./CheckCellTooltip.esm.js";const E=h(r=>({root:{padding:0},iconWrapper:{padding:r.spacing(1.5),display:"flex",alignItems:"center",justifyContent:"center"},link:{"&:hover $iconWrapper, &:active $iconWrapper, &:focus $iconWrapper":{backgroundColor:r.palette.action.hover}},icon:{width:"17px",height:"17px"},virtualized:{borderBottom:`1px solid ${r.palette.divider}`,borderRight:`1px solid ${r.palette.divider}`}})),N=k(({programId:r,check:a,entityRef:i,result:o,entityRoute:d,isVirtualized:c})=>{const e=E();if(typeof i!="string"){const m=t.createElement("div",{className:e.iconWrapper},t.createElement("div",{className:e.icon}));return c?t.createElement("div",{className:`${e.root} ${e.virtualized}`,"aria-hidden":!0},m):t.createElement("td",{className:e.root,"aria-hidden":!0},m)}const n=t.createElement(v,{className:e.icon,result:o!=null?o:p.NotReported}),l=t.createElement("div",{className:e.iconWrapper},n),s=o&&o===p.NotApplicable?l:t.createElement(f,{className:e.link,to:`${d(u(i))}/soundcheck/tracks/${r}/checks/${a.id}`},l);return c?t.createElement("div",{className:`${e.root} ${e.virtualized}`},t.createElement($,{check:a,icon:n,entityRef:i},s)):t.createElement("td",{className:`${e.root}`},s)});export{N as CheckCell};
|
|
2
|
+
//# sourceMappingURL=CheckCell.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseEntityRef as l}from"@backstage/catalog-model";import{MarkdownContent as s}from"@backstage/core-components";import{humanizeEntityRef as f}from"@backstage/plugin-catalog-react";import{makeStyles as d,Grid as o,Typography as p}from"@material-ui/core";import e from"react";import{StyledTooltip as y}from"../../StyledTooltip/StyledTooltip.esm.js";const m=d(t=>({headerWrapper:{marginTop:t.spacing(.5)},entityRefName:{fontWeight:"bold"},iconWrapper:{padding:t.spacing(1.5,.5),display:"flex",alignItems:"center",justifyContent:"center"}})),h=({check:{name:t,description:n},icon:r,entityRef:a})=>{const i=m(),c=l(a);return e.createElement(o,{spacing:1},e.createElement(o,{container:!0,direction:"row",spacing:1,wrap:"nowrap"},e.createElement("div",{className:i.iconWrapper},r),e.createElement(p,{variant:"h6",className:i.headerWrapper,noWrap:!0},t)),e.createElement(o,{item:!0,wrap:"nowrap"},e.createElement(p,{variant:"subtitle2",className:i.entityRefName},f(c,{defaultKind:c.kind}))),e.createElement(s,{content:n}))},E=({children:t,check:n,icon:r,entityRef:a})=>e.createElement(y,{arrow:!0,title:e.createElement(h,{check:n,icon:r,entityRef:a}),enterDelay:150,placement:"top"},t);export{E as CheckCellTooltip,m as useStyles};
|
|
2
|
+
//# sourceMappingURL=CheckCellTooltip.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as d}from"@material-ui/core";import t,{memo as c}from"react";import{LevelBadge as n}from"../Badges/LevelBadge.esm.js";import{NoLevelBadge as m}from"../Badges/NoLevelBadge.esm.js";import{CampaignBadge as o}from"../Badges/CampaignBadge.esm.js";import{RowHeights as s,NO_LEVEL_BADGE_NAME as p}from"./virtualized/virtualizedTableUtils.esm.js";const u=d(e=>({virtualized:{borderRight:`1px solid ${e.palette.divider}`,height:`${s.programTitle}px`,display:"flex",justifyContent:"center",alignItems:"center"}})),v=c(({entityRef:e,highestLevels:r,trackType:a})=>{const l=r.find(g=>g.entityRef===e);let i=l!=null&&l.badge?t.createElement(n,{badge:l.badge}):t.createElement(m,null);return a==="campaign"&&(i=t.createElement(o,null)),i}),f=({highestLevel:e,trackType:r})=>{const a=u();if(!(e!=null&&e.badge))return t.createElement("div",{className:a.virtualized},"\xA0");let l=e.name!==p?t.createElement(n,{badge:e.badge}):t.createElement(m,null);return r==="campaign"&&(l=t.createElement(o,null)),t.createElement("div",{className:a.virtualized},l)};export{v as HighestLevelBadge,f as HighestLevelBadgeCell};
|
|
2
|
+
//# sourceMappingURL=HighestLevelBadge.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as p,Tooltip as m,LinearProgress as u}from"@material-ui/core";import a,{useMemo as g}from"react";import{ResultState as n}from"../../graphql/generated/index.esm.js";const d=p(e=>({root:{height:"8px",minWidth:"64px",marginLeft:e.spacing(2),borderRadius:"100vh",backgroundColor:e.palette.action.hover},bar:{backgroundColor:e.palette.success.main,transition:"none"}})),b=e=>{var r,o;const s=d(e),t=g(()=>Object.entries(e.progress).reduce((l,[,c])=>l+c,0),[e.progress]);if(t===0)return null;const i=(r=e.progress[n.Passed])!=null?r:0;return a.createElement(m,{arrow:!0,title:`Check passing for ${i} of ${t} ${t===1?"entity":"entities"}`,enterDelay:0,placement:"top"},a.createElement(u,{variant:"determinate",value:((o=e.progress[n.Passed])!=null?o:0)/t*100,classes:{root:s.root,bar:s.bar}}))};export{b as ProgramCheckIndicator};
|
|
2
|
+
//# sourceMappingURL=ProgramCheckIndicator.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as y,Typography as m}from"@material-ui/core";import{countBy as N}from"lodash";import t,{memo as f,useMemo as u}from"react";import{ResultState as C}from"../../graphql/generated/index.esm.js";import{CheckCell as b}from"./CheckCell/CheckCell.esm.js";import{ProgramCheckIndicator as n}from"./ProgramCheckIndicator.esm.js";import{RowHeights as i}from"./virtualized/virtualizedTableUtils.esm.js";const s=y(e=>({checkNameCell:{padding:0,backgroundColor:e.palette.background.paper},checkNameContent:{padding:`0 ${e.spacing(2)}px`,display:"flex",justifyContent:"space-between",alignItems:"center"},checkNameTypography:{overflow:"hidden",textOverflow:"ellipsis",fontWeight:e.typography.body1.fontWeight},checkIndicator:{flexBasis:e.spacing(8)},checkNameCellVirtualized:{height:`${i.check}px`,lineHeight:`${i.check}px`,borderBottom:`1px solid ${e.palette.divider}`,borderRight:`1px solid ${e.palette.divider}`}}));f(({programId:e,programName:o,check:a,entityRefs:p,results:l,entityRoute:h})=>{const r=s(),d=u(()=>N(l.filter(({result:c})=>c!==C.NotApplicable),"result"),[l]),k=new Map(l.map(c=>[c.entityRef,c.result]));return t.createElement("tr",{"data-testid":"track-check-row"},t.createElement("th",{scope:"row",className:r.checkNameCell,"aria-label":`${a.name} check for ${o} track`},t.createElement("div",{className:r.checkNameContent},t.createElement(m,{className:r.checkNameTypography,variant:"subtitle2",component:"p"},a.name),t.createElement(n,{className:r.checkIndicator,progress:d}))),p.map((c,g)=>t.createElement(b,{key:g,programId:e,check:a,entityRef:c,result:typeof c=="string"?k.get(c):void 0,entityRoute:h})))});const v=({name:e,progress:o})=>{const a=s();return t.createElement("div",{className:a.checkNameCell,"aria-label":`${e} check`},t.createElement("div",{className:`${a.checkNameContent} ${a.checkNameCellVirtualized}`},t.createElement(m,{variant:"subtitle2",component:"p",className:a.checkNameTypography},e),t.createElement(n,{className:a.checkIndicator,progress:o})))};export{v as CheckNameCell};
|
|
2
|
+
//# sourceMappingURL=ProgramCheckRow.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as p,Typography as o}from"@material-ui/core";import a,{memo as s}from"react";import{RowHeights as c}from"./virtualized/virtualizedTableUtils.esm.js";const l=p(e=>{const t=e.palette.action.hover;return{root:{color:e.palette.text.primary,backgroundColor:t},levelContent:{padding:`${e.spacing(.5)}px ${e.spacing(2)}px`,backgroundColor:t},levelTypography:{overflow:"hidden",textOverflow:"ellipsis"},levelHeaderCell:{padding:`${e.spacing(.5)}px ${e.spacing(2)}px`,borderRight:`1px solid ${e.palette.divider}`,height:`${c.levelTitle}px`}}});s(({level:e,entityRefs:t,programName:n})=>{const r=l();return a.createElement("tr",{className:r.root,"data-testid":"track-level-row"},a.createElement("th",{scope:"row",className:r.root},a.createElement("div",{className:r.levelContent},a.createElement(o,{className:r.levelTypography,variant:"subtitle2",component:"p","aria-label":`${e.name} for ${n} track`},e.name))),t.map((v,m)=>a.createElement("td",{key:m,className:r.root,"aria-hidden":!0})))});const i=({name:e})=>{const t=l();return a.createElement("div",{className:`${t.levelHeaderCell} ${t.root}`,"aria-label":`${e}`},a.createElement(o,{variant:"subtitle2",component:"p",className:t.levelTypography},e))},d=()=>{const e=l();return a.createElement("div",{className:`${e.levelHeaderCell} ${e.root}`},"\xA0")};export{i as ProgramLevelHeaderCell,d as ProgramLevelHeaderFill};
|
|
2
|
+
//# sourceMappingURL=ProgramLevelRow.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as c,Typography as n}from"@material-ui/core";import e,{memo as p}from"react";import{HighestLevelBadge as d}from"./HighestLevelBadge.esm.js";const i=c(t=>({programNameCell:{padding:0,position:"sticky",backgroundColor:t.palette.background.paper},programNameContent:{padding:t.spacing(2)},programNameTypography:{overflow:"hidden",textOverflow:"ellipsis"},badgeCellContent:{display:"flex",justifyContent:"center",alignItems:"center"},programNameCellVirtualized:{borderRight:`1px solid ${t.palette.divider}`}}));p(({program:t,entityRefs:a,highestLevels:s})=>{const r=i();return e.createElement("tr",{"data-testid":"track-title-row"},e.createElement("th",{scope:"row",className:r.programNameCell},e.createElement("div",{className:r.programNameContent},e.createElement(n,{className:r.programNameTypography,variant:"h5",component:"p"},t.name))),a.map((m,l)=>{var o;return typeof m!="string"?e.createElement("td",{key:l,"aria-hidden":!0}):e.createElement("td",{key:l,"data-testid":"track-certification-cell"},e.createElement("div",{className:r.badgeCellContent},e.createElement(d,{entityRef:m,highestLevels:s,trackType:(o=t.type)!=null?o:void 0})))}))});const g=p(({name:t})=>{const a=i();return e.createElement("div",{className:`${a.programNameCell} ${a.programNameCellVirtualized}`},e.createElement("div",{className:a.programNameContent},e.createElement(n,{className:a.programNameTypography,variant:"h5",component:"p"},t)))});export{g as ProgramTitleCell};
|
|
2
|
+
//# sourceMappingURL=ProgramTitleRow.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseEntityRef as n}from"@backstage/catalog-model";import{Link as d}from"@backstage/core-components";import{useRouteRef as m}from"@backstage/core-plugin-api";import{entityRouteRef as p,humanizeEntityRef as c}from"@backstage/plugin-catalog-react";import{makeStyles as f}from"@material-ui/core";import"lodash";import t from"react";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import{useEntityByRef as s}from"../../hooks/catalog/useEntityByRef.esm.js";const u=f(e=>({root:{position:"sticky",bottom:"-1px",backgroundColor:e.palette.background.default,boxShadow:`0 -1px ${e.palette.divider}`,"& td$cell, & th$cell":{border:0,padding:e.spacing(1)},"& td$cell":{backgroundColor:e.palette.background.default}},row:{boxShadow:`1px 0 ${e.palette.background.default}, -1px 0 ${e.palette.background.default}`},cell:{verticalAlign:"top"},cellInner:{textOrientation:"mixed",writingMode:"vertical-lr",transform:"rotate(-20deg)",transformOrigin:`100% ${e.spacing(1)}px`,wordBreak:"keep-all",fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",maxHeight:"max(15vh, 175px)"}})),g=({entityRef:e})=>{const{data:r}=s(e),a=m(p),l=u(),o=e?n(e):void 0,i=o?t.createElement(d,{to:a(o)},r!=null&&r.metadata.title?r.metadata.title:c(o,{defaultKind:o.kind})):t.createElement(t.Fragment,null);return t.createElement("div",{className:l.cell},t.createElement("div",{className:l.cellInner},i))};export{g as EntityRefCell};
|
|
2
|
+
//# sourceMappingURL=ResultsTableFooter.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as h}from"@material-ui/core";import{Skeleton as l}from"@material-ui/lab";import e from"react";const k=h(t=>({table:{backgroundColor:t.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap","& th, & td":{border:`1px solid ${t.palette.divider}`,borderCollapse:"collapse"},paddingBottom:t.spacing(2)},programTitle:{padding:t.spacing(2)},checkResult:{padding:t.spacing(1.5)},title:{padding:`${t.spacing(1)}px ${t.spacing(2)}px`},header:{backgroundColor:t.palette.action.hover}})),E=({entityCount:t=25,levelCount:o=3,checkCount:m=5})=>{const a=k(),r=new Array(t).fill(void 0),i=new Array(m).fill(void 0),p=new Array(o).fill(void 0);return e.createElement("table",{className:a.table},e.createElement("tbody",null,e.createElement("tr",null,e.createElement("td",{className:a.programTitle},e.createElement(l,{width:180,height:40})),r.map((d,n)=>e.createElement("td",{key:n}))),p.map((d,n)=>e.createElement(e.Fragment,{key:n},e.createElement("tr",{className:a.header},e.createElement("td",{className:a.title},e.createElement(l,{width:180})),r.map((s,c)=>e.createElement("td",{key:c}))),i.map((s,c)=>e.createElement("tr",{key:c},e.createElement("td",{className:a.title},e.createElement(l,{width:240})),r.map((u,g)=>e.createElement("td",{key:g,className:a.checkResult},e.createElement(l,{width:18,height:18,variant:"rect"})))))))))};export{E as ResultsTableSkeleton};
|
|
2
|
+
//# sourceMappingURL=ResultsTableSkeleton.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import r from"react";import{CheckCell as c}from"../CheckCell/CheckCell.esm.js";import{HighestLevelBadgeCell as m}from"../HighestLevelBadge.esm.js";import{CheckNameCell as a}from"../ProgramCheckRow.esm.js";import{ProgramLevelHeaderCell as s,ProgramLevelHeaderFill as d}from"../ProgramLevelRow.esm.js";import{ProgramTitleCell as i}from"../ProgramTitleRow.esm.js";import{EntityRefCell as p}from"../ResultsTableFooter.esm.js";const y=e=>r.createElement(i,{name:e}),C=e=>({type:"ProgramHeader",render:()=>y(e)}),g=e=>e?r.createElement(s,{name:e}):r.createElement(d,null),h=e=>({type:"LevelHeader",render:()=>g(e)}),E=(e,t)=>r.createElement(a,{name:e,progress:t}),f=(e,t)=>({type:"CheckTitle",render:()=>E(e,t)}),v=(e,t,l,n,o)=>r.createElement(c,{check:t,entityRef:l,entityRoute:o,programId:e,result:n,isVirtualized:!0}),H=(e,t,l,n,o)=>({type:"CheckResult",render:()=>v(e,t,l,n,o)}),k=e=>r.createElement(p,{entityRef:e}),u=e=>({type:"EntityHeader",render:()=>k(e)}),R=(e,t)=>r.createElement(m,{highestLevel:e,trackType:t}),L=(e,t)=>({type:"LevelBadge",render:()=>R(e,t)}),P=e=>t=>{const l=e[t.rowIndex].cells[t.columnIndex];return l?r.createElement("div",{style:t.style},l.render()):r.createElement("div",{style:t.style})};export{H as checkResultCell,f as checkTitleCell,u as entityHeaderCell,P as getCellRenderer,L as levelBadgeCell,h as levelHeaderCell,C as programHeaderCell};
|
|
2
|
+
//# sourceMappingURL=Cell.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{countBy as k}from"lodash";import{ResultState as p}from"../../../graphql/generated/index.esm.js";import{programHeaderCell as y,levelBadgeCell as H,levelHeaderCell as u,checkTitleCell as T,checkResultCell as B,entityHeaderCell as f}from"./Cell.esm.js";import{RowHeights as n,generateNoLevelBadge as L,findLongestRefTitle as N,calculateHeightForRefTitle as b}from"./virtualizedTableUtils.esm.js";const w=(m,e,g)=>{var a;const o=[];for(const{program:i,levels:d,highestLevels:R}of m){o.push({height:n.programTitle,cells:[y(i.name),...e.map(l=>{var t;const s=l?R.find(r=>r.entityRef===l)||L(l):void 0;return H(s,(t=i.type)!=null?t:void 0)})]});for(const l of d){o.push({height:n.levelTitle,cells:[u(l.name),...e.map(t=>u(""))]});for(const{check:t,results:s}of l.checks)o.push({height:n.check,cells:[T(t.name,k(s.filter(({result:r})=>r!==p.NotApplicable),"result")),...e.map(r=>{var c,h;return B(i.id,t,r,(h=(c=s.find(C=>C.entityRef===r))==null?void 0:c.result)!=null?h:p.NotApplicable,g)})]})}}const v=N(e!=null?e:[]);return o.push({height:b((a=v.length)!=null?a:1),cells:[f(""),...e.map(i=>f(i||""))]}),o};export{w as generateRows};
|
|
2
|
+
//# sourceMappingURL=Row.esm.js.map
|