@spotify/backstage-plugin-soundcheck 0.19.8 → 0.20.0
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 +28 -0
- package/dist/alpha/entity-content.esm.js +1 -1
- package/dist/alpha.d.ts +3 -116
- package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
- package/dist/components/AreaChart/AreaChart.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
- package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +1 -1
- package/dist/components/CampaignForm/hooks/utils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +2 -2
- package/dist/components/CampaignPage/CampaignPage.esm.js +1 -1
- package/dist/components/CampaignPage/CampaignPageBUI.esm.js +1 -1
- package/dist/components/CampaignPage/CampaignStatusBarBUI.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignStatusCard.esm.js +2 -0
- package/dist/components/CampaignPage/CampaignStatusTableBUI.esm.js +2 -0
- package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
- package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
- package/dist/components/Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js +1 -1
- package/dist/components/Cards/TrackStatusCard/TrackStatusCard.esm.js +1 -1
- package/dist/components/CategoryBar/CategoryBar.esm.js +1 -1
- package/dist/components/Charts/chartUtils.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -2
- package/dist/components/CheckForm/utils/validation.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +1 -1
- package/dist/components/CheckPage/CheckPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckPageBUI.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChartBUI.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusTableBUI.esm.js +1 -1
- package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +1 -1
- package/dist/components/CheckPage/utils.esm.js +1 -1
- package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
- package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +1 -1
- package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
- package/dist/components/ChecksTab/ChecksTab.esm.js +1 -1
- package/dist/components/ChecksTable/ChecksTable.esm.js +1 -1
- package/dist/components/CollapsablePanel/CollapsablePanel.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPage.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorFactTable.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorFactTableBUI.esm.js +1 -1
- package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorOption.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
- package/dist/components/FactExplorer/FactExplorerDialogBUI.esm.js +1 -1
- package/dist/components/Filter/FilterComponent.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
- package/dist/components/Filter/types.esm.js +1 -1
- package/dist/components/Filter/utils.esm.js +1 -1
- package/dist/components/FilterSidebar/FilterSidebar.esm.js +1 -1
- package/dist/components/FilterSidebar/StateFilter.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
- package/dist/components/FormFilterSection/FormFilterSection.esm.js +1 -1
- package/dist/components/FormStepper/FormStepper.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/LoadingOverlay.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoCirclePacking.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoIcicle.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoSunburst.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoTreemap.esm.js +1 -1
- package/dist/components/HierarchicalTechInsightsPage/visualizations/VisualizationBreadcrumb.esm.js +1 -1
- package/dist/components/ImportExportPanel/ImportExportPanelBUI.esm.js +1 -1
- package/dist/components/ImportExportPanel/ImportExportPanelDeprecated.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageHeader.esm.js +1 -1
- package/dist/components/Pagination/Pagination.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPageBUI.esm.js +1 -1
- package/dist/components/RoutingPage/RoutingPageWrapper.esm.js +1 -1
- package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
- package/dist/components/SoundcheckHeader/SoundcheckHeaderBUI.esm.js +1 -1
- package/dist/components/SoundcheckHeader/useHeader.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
- package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
- package/dist/components/TechHealth/Filters/Filters.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FiltersSection.esm.js +1 -1
- package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +1 -1
- package/dist/components/TechHealth/Filters/types.esm.js +1 -1
- package/dist/components/TechHealth/Filters/utils.esm.js +1 -1
- package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsPage.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +1 -1
- package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +1 -1
- package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +1 -1
- package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
- package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +1 -1
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
- package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
- package/dist/components/TrackForm/Steps/LevelsStep/LevelsStepNew.esm.js +1 -1
- package/dist/components/TrackForm/TrackForm.esm.js +1 -1
- package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackPageBUI.esm.js +1 -1
- package/dist/components/TrackPage/TrackStatusTableBUI.esm.js +1 -1
- package/dist/components/TracksPage/TracksListPageBUI.esm.js +1 -1
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/components/TracksTab/TracksTab.esm.js +1 -1
- package/dist/hooks/aggregations/useCertificationStatus.esm.js +1 -1
- package/dist/hooks/aggregations/useCertificationStatusHistory.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatusHistory.esm.js +1 -1
- package/dist/hooks/aggregations/useCheckStatuses.esm.js +1 -1
- package/dist/hooks/campaigns/useGetCampaign.esm.js +1 -1
- package/dist/hooks/checks/useCheck.esm.js +1 -1
- package/dist/hooks/checks/useExecutableChecks.esm.js +1 -1
- package/dist/hooks/checks/useGetChecks.esm.js +1 -1
- package/dist/hooks/collectors/useGetCollectors.esm.js +1 -1
- package/dist/hooks/collectors/useGetFactSchema.esm.js +1 -1
- package/dist/hooks/collectors/useUpdateCollectorConfig.esm.js +1 -1
- package/dist/hooks/exemptions/useExemptions.esm.js +1 -1
- package/dist/hooks/facets/useFacetsForOwner.esm.js +1 -1
- package/dist/hooks/filters/useFilters.esm.js +1 -1
- package/dist/hooks/groups/useAllGroups.esm.js +1 -1
- package/dist/hooks/tracks/useGetTracksApplicableEntityCount.esm.js +1 -1
- package/dist/hooks/tracks/useTrack.esm.js +1 -1
- package/dist/hooks/useSortSearchParams.esm.js +2 -0
- package/dist/index.d.ts +11 -11
- package/dist/routes.esm.js +1 -1
- package/dist/utils/charts.esm.js +1 -1
- package/dist/utils/filters.esm.js +1 -1
- package/dist/utils/formStyles.esm.js +1 -1
- package/dist/utils/helpers.esm.js +1 -1
- package/dist/utils/json.esm.js +2 -0
- package/dist/utils/validation.esm.js +1 -1
- package/package.json +19 -19
- package/dist/components/CampaignPage/CampaignPageDeprecated.esm.js +0 -2
- package/dist/components/CampaignPage/CampaignStatusHistoryTile.esm.js +0 -2
- package/dist/components/CampaignPage/CampaignStatusTile.esm.js +0 -2
- package/dist/components/CampaignPage/DaysRemainingTile.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPageDeprecated.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignMetadata.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignTypes.esm.js +0 -2
- package/dist/components/CampaignsPage/CampaignListPage/CampaignsOverviewSkeleton.esm.js +0 -2
- package/dist/components/Charts/BarChart/BarChart.esm.js +0 -2
- package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +0 -2
- package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +0 -2
- package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +0 -2
- package/dist/components/Charts/ChartTypes.esm.js +0 -2
- package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +0 -2
- package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +0 -2
- package/dist/components/Charts/LineChart/LineChart.esm.js +0 -2
- package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +0 -2
- package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +0 -2
- package/dist/components/Charts/LineChart/TableLineChart.esm.js +0 -2
- package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +0 -2
- package/dist/components/Charts/LoadingChart.esm.js +0 -2
- package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +0 -2
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +0 -2
- package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +0 -2
- package/dist/components/CheckPage/CheckPageDeprecated.esm.js +0 -2
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +0 -2
- package/dist/components/CheckPage/CheckStatusTable.esm.js +0 -2
- package/dist/components/CheckPage/ExemptionsTable.esm.js +0 -2
- package/dist/components/ChecksPage/CheckListPage/CheckListPageDeprecated.esm.js +0 -2
- package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +0 -2
- package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +0 -2
- package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +0 -2
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +0 -2
- package/dist/components/ColorChip/ColorChip.esm.js +0 -2
- package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +0 -2
- package/dist/components/Expand/Expand.esm.js +0 -2
- package/dist/components/GroupHierarchySelector/GroupHierarchyCategorySelection.esm.js +0 -2
- package/dist/components/GroupHierarchySelector/GroupHierarchyChip.esm.js +0 -2
- package/dist/components/GroupHierarchySelector/GroupHierarchyGroupInfo.esm.js +0 -2
- package/dist/components/GroupHierarchySelector/GroupHierarchySelector.esm.js +0 -2
- package/dist/components/GroupHierarchySelector/GroupHierarchySelectorDialog.esm.js +0 -2
- package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/ColorLegend.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/HierarchicalTechInsightsPage.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/HierarchyTable.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/LowestPerformingTeams.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/SelectedNodeSidebar.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/TeamPerformanceCard.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/TeamPerformanceListCard.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/TopPerformingTeams.esm.js +0 -2
- package/dist/components/HierarchicalTechInsightsPage/visualizations/findNodePath.esm.js +0 -2
- package/dist/components/LevelsTable/CheckRowContent.esm.js +0 -2
- package/dist/components/LevelsTable/LevelsTable.esm.js +0 -2
- package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +0 -2
- package/dist/components/OverviewChartCard/OverviewChartCardStyles.esm.js +0 -2
- package/dist/components/PassRateGrid/PassRateGrid.esm.js +0 -2
- package/dist/components/PassRateGrid/PassRateMetadata.esm.js +0 -2
- package/dist/components/PassRateGrid/types.esm.js +0 -2
- package/dist/components/PassRateTable/NewPassRateTable.esm.js +0 -2
- package/dist/components/PassRateTable/PassRateTable.esm.js +0 -4
- package/dist/components/PassRateTable/types.esm.js +0 -2
- package/dist/components/PassingPercentProgressbar/PassPercentageProgressbar.esm.js +0 -2
- package/dist/components/QuickstartPage/HowDoIListItem.esm.js +0 -2
- package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +0 -2
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +0 -3
- package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +0 -7
- package/dist/components/QuickstartPage/styles.esm.js +0 -2
- package/dist/components/RichTooltip/RichTooltip.esm.js +0 -2
- package/dist/components/RoutingPage/NewFeatureTab.esm.js +0 -2
- package/dist/components/RoutingPage/RoutingPageDeprecated.esm.js +0 -2
- package/dist/components/RoutingPage/RoutingPageWrapperDeprecated.esm.js +0 -2
- package/dist/components/SearchBar/SearchBar.esm.js +0 -2
- package/dist/components/SearchFilters/SearchFilters.esm.js +0 -2
- package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialog.esm.js +0 -2
- package/dist/components/SoundcheckEntityLink/SoundcheckEntityLink.esm.js +0 -2
- package/dist/components/SoundcheckHeader/headerUtil.esm.js +0 -2
- package/dist/components/TeamStatusBar/TeamStatusBar.esm.js +0 -2
- package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +0 -2
- package/dist/components/TechHealth/TechHealth.esm.js +0 -2
- package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +0 -2
- package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +0 -2
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +0 -2
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +0 -2
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +0 -2
- package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +0 -2
- package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/NameColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/OwnerColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +0 -2
- package/dist/components/TechHealthTabs/PassRateTabStyles.esm.js +0 -2
- package/dist/components/TechHealthTabs/TechHealthExportFunctions.esm.js +0 -2
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +0 -2
- package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +0 -2
- package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +0 -2
- package/dist/components/TechInsights/FilterControls.esm.js +0 -2
- package/dist/components/TechInsights/SummaryTiles.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsPageDeprecated.esm.js +0 -2
- package/dist/components/TechInsights/TechInsightsTableView.esm.js +0 -2
- package/dist/components/TimePeriodBar/TimePeriodBar.esm.js +0 -2
- package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +0 -2
- package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +0 -2
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +0 -2
- package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +0 -2
- package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +0 -2
- package/dist/components/TrackPage/TrackHistoryChart.esm.js +0 -2
- package/dist/components/TrackPage/TrackPageDeprecated.esm.js +0 -2
- package/dist/components/TrackPage/TrackProgressCard.esm.js +0 -2
- package/dist/components/TrackPage/TrackStatus.esm.js +0 -2
- package/dist/components/TrackPage/TrackStatusBar.esm.js +0 -2
- package/dist/components/TrackPage/TrackStatusTable.esm.js +0 -2
- package/dist/components/TrackPage/utils.esm.js +0 -2
- package/dist/components/TrackSelection/TrackSelection.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TrackEmptyState.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TrackListPageDeprecated.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +0 -2
- package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +0 -2
- package/dist/hooks/aggregations/useAggregatedCheckPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useAggregatedEntityPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useAggregatedGroupPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useCheckPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useEntityPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useGroupPassRateTrend.esm.js +0 -2
- package/dist/hooks/aggregations/useTrackPassRateTrend.esm.js +0 -2
- package/dist/hooks/cache/useEntityCountCached.esm.js +0 -2
- package/dist/hooks/cache/useTrackCountCached.esm.js +0 -2
- package/dist/hooks/campaigns/useGetCampaignOwners.esm.js +0 -2
- package/dist/hooks/catalog/useGetEntityCount.esm.js +0 -2
- package/dist/hooks/checks/useGetCheckOwners.esm.js +0 -2
- package/dist/hooks/entities/useEntityRefsForUser.esm.js +0 -2
- package/dist/hooks/facets/useFacetFilters.esm.js +0 -2
- package/dist/hooks/heirarchy/useGroupTypeHierarchy.esm.js +0 -2
- package/dist/hooks/tracks/useGetTrackOwners.esm.js +0 -2
- package/dist/utils/colors.esm.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as w,jsx as s}from"react/jsx-runtime";import{Typography as N,useTheme as U,Tooltip as M}from"@material-ui/core";import{makeStyles as q,createStyles as G}from"@material-ui/core/styles";import{schemeCategory10 as H}from"d3-scale-chromatic";import $ from"lodash";import{memo as L,useRef as
|
|
1
|
+
import{jsxs as w,jsx as s}from"react/jsx-runtime";import{Typography as N,useTheme as U,Tooltip as M}from"@material-ui/core";import{makeStyles as q,createStyles as G}from"@material-ui/core/styles";import{schemeCategory10 as H}from"d3-scale-chromatic";import $ from"lodash";import{memo as L,useRef as X,useState as J,useEffect as K,useMemo as C}from"react";const P=e=>{let r=e;for(;r;){const t=window.getComputedStyle(r).backgroundColor;if(t&&t!=="rgba(0, 0, 0, 0)"&&t!=="transparent")return t;r=r.parentElement}return"transparent"},O=(e,r,t,c,l)=>{if($.isUndefined(e))return"";if(e===0){for(let a=0;a<r.length;a++)if(r[a]>0)return l?.[t[a]]??c[a]}let p=0;for(let a=0;a<r.length;a++)if(p+=r[a],p>=e)return l?.[t[a]]??c[a];return l?.[t[r.length-1]]??c[r.length-1]},j=(e,r)=>e?e/r*100:0,Q=(e,r=2)=>{if(e.length===0)return[];const t=e.filter(i=>i>0),c=$.sum(t);if(c===0)return e.map(()=>0);const l=e.map(i=>i>0?i/c*100:0),p=l.filter(i=>i>0&&i<r).length,a=p*r;if(p===0||a>=100)return l;const o=100-a,m=l.filter(i=>i>=r).reduce((i,d)=>i+d,0);return l.map(i=>i===0?0:i<r?r:m>0?i/m*o:i)},z=q(e=>G({container:{display:"flex",flexDirection:"column",width:"100%"},barWrapper:{position:"relative",width:"100%"},barContainer:{display:"flex",height:e.spacing(1),overflow:"hidden",borderRadius:4,width:"100%",gap:1},barSegment:{height:"100%",minWidth:8},barLabel:{position:"absolute",fontSize:"0.875rem",whiteSpace:"nowrap",transform:"translateX(-50%)"},marker:{position:"absolute",width:6,height:16,top:0,bottom:0,borderRadius:4,transform:"translate(-50%, -25%)"},tooltip:{color:e.palette.text.primary,fontSize:12,borderRadius:e.shape.borderRadius,padding:e.spacing(1)},item:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},legendDash:{width:e.spacing(2),height:e.spacing(.75),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,fontSize:"0.875rem",marginRight:e.spacing(2)},value:{fontWeight:e.typography.fontWeightMedium,fontSize:"0.875rem",color:e.palette.text.primary}})),D=L(({data:e,categories:r,valueFormatter:t,type:c,labelPosition:l})=>{const p=z(),a=r.map(d=>e[d]),o=$.sum(a);let m=0,i=0;return w("div",{className:p.barWrapper,children:[a.map((d,x)=>{m+=d;const v=(d>=.1*o||i>=.09*o)&&o-m>=.1*o&&m>=.1*o&&m<.9*o;i=v?0:i+=d;const g=j(m,o),k=c==="percent"?`${Math.round(m/o*100)}%`:t(m);return s("div",{className:p.barLabel,style:{left:`${g}%`,top:l==="top"?"-1.5rem":"1.5rem"},children:v&&s(N,{variant:"caption",children:k})},`item-${x}`)}),s(N,{variant:"caption",style:{position:"absolute",bottom:0,left:0},children:c==="percent"?"0%":t(0)}),s(N,{variant:"caption",style:{position:"absolute",bottom:0,right:0},children:c==="percent"?"100%":t(o)})]})});L(e=>{const r=U(),t=z(),{data:c={},categories:l=[],colors:p=H,categoryColors:a,marker:o,showLabels:m=!1,showTooltip:i=!0,valueFormatter:d=n=>n.toString(),categoryFormatter:x=n=>n,type:v="value",labelPosition:g="top",className:k,...E}=e,f=l.map(n=>c[n]).filter(n=>typeof n=="number"),S=X(null),[T,A]=J("transparent");K(()=>{if(S.current){const n=P(S.current);A(n)}},[S]);const B=C(()=>O(o?.value,f,l,p,a),[o,f,l,p,a]),h=C(()=>$.sum(f),[f]),W=C(()=>Q(f),[f]),F=C(()=>{if(!$.isUndefined(o))return o.value<0?0:o.value>h?h:o.value},[o,h]),I=C(()=>j(F,h),[F,h]);return h<=0?null:s("div",{ref:S,className:`${k} ${t.container}`,...E,children:w("div",{className:t.barWrapper,children:[m&&g==="top"&&s(D,{data:c,categories:l,valueFormatter:d,type:v,labelPosition:g}),s("div",{className:t.barContainer,children:i?s(M,{title:s("div",{className:t.tooltip,children:l.filter(n=>c[n]>0).map((n,u)=>{const b=c[n],y=a?.[n]??p[u]??"gray";return w("div",{className:t.item,children:[w("div",{className:t.category,children:[s("span",{className:t.legendDash,style:{backgroundColor:y}}),s(N,{variant:"caption",children:x(n)})]}),s("div",{className:t.value,children:w(N,{variant:"caption",children:[d(b)," of ",d(h)," ","(",Math.round(b/h*100),"%)"]})})]},`tooltip-item-${u}`)})}),placement:"top",arrow:!0,classes:{tooltip:t.tooltip},children:s("div",{className:t.barContainer,children:l.map((n,u)=>{const b=c[n],y=a?.[n]??p[u]??"gray",R=W[u]||0;return b<=0?null:s("div",{className:t.barSegment,style:{backgroundColor:y,width:`${R}%`}},`item-${u}`)})})}):s("div",{className:t.barContainer,children:l.map((n,u)=>{const b=c[n],y=a?.[n]??p[u]??r.palette.text.disabled,R=W[u]||0;return b<=0?null:s("div",{className:t.barSegment,style:{backgroundColor:y,width:`${R}%`}},`item-${u}`)})})}),o!==void 0&&s(M,{title:o.tooltip||"",arrow:!0,children:s("div",{className:t.marker,style:{left:`${I}%`,backgroundColor:B,border:`1px solid ${T}`,transition:o.showAnimation?"all 0.3s ease-in-out":"none"}})}),m&&g==="bottom"&&s(D,{data:c,categories:l,valueFormatter:d,type:v,labelPosition:g})]})})});export{P as getEffectiveBackgroundColor};
|
|
2
2
|
//# sourceMappingURL=CategoryBar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{map as p}from"lodash";import{DateTime as
|
|
1
|
+
import{map as p}from"lodash";import{DateTime as h}from"luxon";import{compactNumberFormatter as u}from"../../utils/formatters.esm.js";const D=["#59A0F6","#95C90D","#FFA42C","#C87DFF","#7358FF","#F036A4"],E=["#3B82F6","#10B981","#8B5CF6","#F59E0B","#6B7280","#06B6D4","#EC4899","#84CC16","#D946EF"];var l=(t=>(t.RED="red",t.GREEN="green",t))(l||{});const f=t=>t?t.palette.type:"",y=t=>f(t).toLowerCase()==="dark",T=t=>y(t)?E:D;function F(t,e){return(e?t.minus({days:e}):t).toFormat("MMM dd")}const v=(t,e)=>{if(typeof t=="number"){const r=e.certificationStatusHistory.numberOfEntities??0,s=r>0?Math.round(t/r*100):0;return`${u(t)} of ${u(r)} (${s}%)`}return t},B=t=>{const e=t?.certificationStatusHistory.history??[],r=t?.certificationStatusHistory.numberOfEntities??0,s=h.utc();return p(e,(n,C)=>{let o={name:F(s,e.length-C-1)},m=0,c=0;n.statusByLevel.sort((a,i)=>i.ordinal-a.ordinal).forEach(a=>{const i=a.cumulativelyPassed-c;o={...o,[`Level ${a.ordinal}`]:i},m+=i,c=a.cumulativelyPassed}),n.statusByLevel.reverse();const d=Math.max(0,r-m);return o={...o,"No Level":d},o})};export{l as TrendLineColor,F as formatDate,v as formatTrackHistoryChartTooltip,T as getChartColors,f as getThemeType,B as getTrackHistoryLineChartData,y as isDarkTheme};
|
|
2
2
|
//# sourceMappingURL=chartUtils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as d,Fragment as h,jsx as t}from"react/jsx-runtime";import{useRouteRef as
|
|
1
|
+
import{jsxs as d,Fragment as h,jsx as t}from"react/jsx-runtime";import{useRouteRef as a}from"@backstage/core-plugin-api";import{HeaderPage as k}from"@backstage/ui";import{useEffect as p}from"react";import{v4 as g}from"uuid";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as C,useCheckFormContext as y}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as b}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import{useCheckTemplates as F}from"../../hooks/checks/useCheckTemplates.esm.js";import{useCreateCheck as I}from"../../hooks/checks/useCreateCheck.esm.js";import{useSearchParam as L}from"../../hooks/useSearchParam.esm.js";import{checkTemplatesRouteRef as P,checksPageRouteRef as n}from"../../routes.esm.js";import{CheckForm as R}from"../CheckForm/CheckForm.esm.js";import"../CheckForm/Steps/CheckDetailsStep.esm.js";import"../CheckForm/Steps/CheckRulesStep.esm.js";import{DocLinkButton as v}from"../DocLinkButton/DocLinkButton.esm.js";import{LoadingIndicator as x}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as S}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as w}from"../SoundcheckHeader/useHeader.esm.js";const A=({template:e})=>{const{setIsLoading:o,selectedItem:m,setSelectedItem:r}=y(),{mutateAsync:c,isLoading:i}=I();p(()=>{r(e?{...e,id:g()}:null)},[e,r]),p(()=>{o(i)},[o,i]);const[s,l]=b(n),f=async u=>{await c(u,{onSuccess:l})};return w({title:"Create a Check",description:"Identify if your software meets organizational standards by setting up a check.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks"}),e&&!m?null:t(R,{onSave:f,onClose:s})},N=()=>{const[[e]]=L("template"),{isLoading:o,data:m}=F(),r=e&&m?m.find(s=>s.id===e)??null:null,c=a(P),i=a(n);return d(h,{children:[t(k,{title:"Create Check",breadcrumbs:[{label:"All Checks",href:i()},{label:"Templates",href:c()}],customActions:t(v,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks/"})}),t(S,{entityName:"check template",entityId:e,showNotFound:!!e&&!o&&!r}),o&&t(x,{}),t(C,{children:!o&&(!e||r)&&t(A,{template:r})})]})};export{N as CheckCreatePage};
|
|
2
2
|
//# sourceMappingURL=CheckCreatePage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{Content as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import{Content as s}from"@backstage/core-components";import{FormProvider as d}from"react-hook-form";import"../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as h}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import{formStyles as f}from"../../utils/formStyles.esm.js";import"@material-ui/core";import"@material-ui/icons/Search";import"../SoundcheckDialog/SoundcheckDialog.esm.js";import"../FactExplorer/FactExplorer.esm.js";import{FactExplorerProvider as S}from"../FactExplorer/FactExplorerContext.esm.js";import{FormStepper as u}from"../FormStepper/FormStepper.esm.js";import"./FormFields/CheckNameInput/CheckNameInput.esm.js";import"./FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import"../FormMarkdownInput/FormMarkdownInput.esm.js";import"./utils/checkFormUtils.esm.js";import"./FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"./FormFields/RuleInput/AddMenuButton.esm.js";import"./FormFields/RuleInput/RuleInputBox.esm.js";import"./FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"./FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/icons/Close";import"@material-ui/icons/Delete";import"@material-ui/icons/List";import"@spotify/backstage-plugin-soundcheck-common";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"./FormFields/RuleInput/Conditions/styles.esm.js";import"@backstage/catalog-model";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"react-use/lib/useLocalStorage";import"./FormFields/RuleInput/Conditions/ValueListInput.esm.js";import"./FormFields/RuleInput/Conditions/ConditionList.esm.js";import{ScheduleSection as C}from"./FormFields/CheckScheduleSection/ScheduleSection.esm.js";import"./FormFields/CheckPathResolverInput.esm.js";import{CheckDetailsStep as b}from"./Steps/CheckDetailsStep.esm.js";import{CheckRulesStep as k}from"./Steps/CheckRulesStep.esm.js";import{CheckApplicabilityStep as g}from"./Steps/CheckApplicabilityStep.esm.js";import{CheckReviewStep as v}from"./Steps/CheckReviewStep.esm.js";import"./types/ExpressionType.esm.js";import{CheckStepNameMapping as y}from"./types/CheckFormTypes.esm.js";import"../Frequency/types.esm.js";import"../Frequency/util.esm.js";import"../Frequency/FrequencyComponent.esm.js";import"./types/Path.esm.js";import{useCheckForm as F}from"./useCheckForm.esm.js";const R=({onSave:p,onClose:r})=>{const{isLoading:n,isReadOnly:e,selectedItem:l}=h(),{formMethods:o,onSubmit:i}=F(p),c=f(),m=[{label:"Enter check details",content:()=>t(b,{})},{label:"Add rules",content:()=>t(k,{})},{label:"Choose the affected entities (Optional)",content:()=>t(g,{})},{label:"Review and test (Optional)",content:()=>t(v,{})},{label:"Set the check schedule (Not Recommended)",content:()=>t(C,{control:o.control,disabled:e})}],a=l?[...Array(m.length).keys()]:[0];return t(s,{className:c.formWrapper,children:t(d,{...o,children:t(S,{children:t("form",{onSubmit:o.handleSubmit(i),children:t(u,{onClose:()=>r?r():void 0,handleSubmit:o.handleSubmit,trigger:o.trigger,onSubmit:i,initialVisited:a,stepNameMap:y,steps:m,isLoading:n,isReadOnly:e,saveButtonText:"Save Check"})})})})})};export{R as CheckForm};
|
|
2
2
|
//# sourceMappingURL=CheckForm.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as n,jsx as a,Fragment as G}from"react/jsx-runtime";import{Box as o,FormLabel as p,TextField as H,IconButton as S}from"@material-ui/core";import M from"@material-ui/icons/Close";import W from"@material-ui/icons/Delete";import z from"@material-ui/icons/List";import{asArray as q}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as u,useCallback as b}from"react";import{useFormContext as J,Controller as K}from"react-hook-form";import{useOperators as Q}from"../../../../../hooks/operators/useOperators.esm.js";import{FactExplorerDialogButton as V}from"../../../../FactExplorer/FactExplorerDialog.esm.js";import"../../../../FactExplorer/FactExplorerContext.esm.js";import{FormControlledAutocomplete as v}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{FactValueDisplay as U}from"./FactValueDisplay.esm.js";import{useRuleConditionStyles as X}from"./styles.esm.js";import{useRuleOptions as Y}from"./useRuleOptions.esm.js";import{ValueListInputDialogButton as j}from"./ValueListInput.esm.js";const Z=({name:l,handleDelete:w,disabled:d,disableDelete:y})=>{const t=X(),{control:c,setValue:s,watch:m,clearErrors:f}=J(),{data:L,isLoading:O}=Q(),B=m("rulesStep.pathResolver")==="jsonpath",h=u(()=>L?.map(e=>({value:e.name,label:e.title})).sort((e,r)=>e.label.localeCompare(r.label))??[],[L]),I=u(()=>h.map(({value:e})=>({label:e,value:e})),[h]),{pathOptions
|
|
1
|
+
import{jsxs as n,jsx as a,Fragment as G}from"react/jsx-runtime";import{Box as o,FormLabel as p,TextField as H,IconButton as S}from"@material-ui/core";import M from"@material-ui/icons/Close";import W from"@material-ui/icons/Delete";import z from"@material-ui/icons/List";import{asArray as q}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as u,useCallback as b}from"react";import{useFormContext as J,Controller as K}from"react-hook-form";import{useOperators as Q}from"../../../../../hooks/operators/useOperators.esm.js";import{FactExplorerDialogButton as V}from"../../../../FactExplorer/FactExplorerDialog.esm.js";import"../../../../FactExplorer/FactExplorerContext.esm.js";import{FormControlledAutocomplete as v}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{FactValueDisplay as U}from"./FactValueDisplay.esm.js";import{useRuleConditionStyles as X}from"./styles.esm.js";import{useRuleOptions as Y}from"./useRuleOptions.esm.js";import{ValueListInputDialogButton as j}from"./ValueListInput.esm.js";const Z=({name:l,handleDelete:w,disabled:d,disableDelete:y})=>{const t=X(),{control:c,setValue:s,watch:m,clearErrors:f}=J(),{data:L,isLoading:O}=Q(),B=m("rulesStep.pathResolver")==="jsonpath",h=u(()=>L?.map(e=>({value:e.name,label:e.title})).sort((e,r)=>e.label.localeCompare(r.label))??[],[L]),I=u(()=>h.map(({value:e})=>({label:e,value:e})),[h]),{pathOptions:C,factRefOptions:g,isLoading:$}=Y(l,c),P=u(()=>g?.map(({value:e})=>({label:e,value:e}))??[],[g]),D=u(()=>C?.map(e=>({label:e,value:e}))??[],[C]),T=["all","any","none"].map(e=>({label:e,value:e})),E=b(({factRef:e,path:r})=>{s(`${l}.factRef`,e),s(`${l}.path`,r),f()},[f,l,s]),k=b(({factRef:e,path:r})=>{s(`${l}.value`,{factRef:e,path:r}),f()},[f,l,s]),A=b(e=>{s(`${l}.value`,e.length>0?e:""),f()},[f,l,s]),i=m(`${l}.value`),F=b(()=>{s(`${l}.value`,"")},[l,s]),x=e=>typeof e=="string"?e:e.label??"",R=e=>typeof e=="string"?e:e?.value??"";return n(o,{className:t.container,children:[a(o,{className:t.connector}),n(o,{paddingTop:2,paddingLeft:2,paddingRight:2,paddingBottom:2,width:"100%",className:t.innerContainer,children:[n(o,{className:t.inputsContainer,children:[g&&n(o,{children:[a(p,{className:t.formLabel,children:"Fact"}),a(v,{name:`${l}.factRef`,control:c,placeholder:"Fact",options:P,getOptionLabel:x,getOptionValue:R,disabled:d||$,width:428})]}),n(o,{flexGrow:1,children:[a(p,{className:t.formLabel,children:"Path"}),a(v,{name:`${l}.path`,placeholder:"Path",control:c,disabled:d||$,options:B?D:[],fullWidth:!0,getOptionLabel:x,getOptionValue:R})]}),n(o,{children:[a(p,{className:t.formLabel,style:{visibility:"hidden"},children:"Explore"}),a(o,{width:150,children:a(V,{factRef:m(`${l}.factRef`),path:m(`${l}.path`),onSave:E,pathResolver:m("rulesStep.pathResolver"),className:t.exploreButton,hideIcon:!0})})]})]}),n(o,{className:t.inputsContainer,children:[h&&n(G,{children:[n(o,{children:[a(p,{className:t.formLabel,children:"Prefix (Optional)"}),a(v,{name:`${l}.operatorPrefix`,control:c,placeholder:"Prefix",options:T,disabled:O||d,width:120,getOptionLabel:x,getOptionValue:R})]}),n(o,{children:[a(p,{className:t.formLabel,children:"Operator"}),a(v,{name:`${l}.operator`,control:c,placeholder:"Operator",options:I,disabled:O||d,getOptionLabel:e=>(r=>h?.find(N=>r===N.value)?.label??r??"")(typeof e=="string"?e:e.label),getOptionValue:e=>(r=>h?.find(N=>r===N.label)?.value??r??"")(typeof e=="string"?e:e?.label??""),width:300})]})]}),n(o,{flexGrow:1,children:[a(p,{className:t.formLabel,children:"Value"}),typeof i=="object"&&!Array.isArray(i)?a(U,{value:i,handleClear:F}):a(K,{name:`${l}.value`,control:c,defaultValue:"",render:({field:e,fieldState:r})=>a(H,{...e,variant:"outlined",placeholder:"Enter a value",FormHelperTextProps:{className:t.helperText},error:r.invalid,helperText:r.error?r.error.message:null,margin:"dense",disabled:d||typeof i=="object",className:t.noMargin,fullWidth:!0,InputProps:{endAdornment:a(S,{onClick:F,size:"small",children:a(M,{})}),startAdornment:Array.isArray(i)?a(j,{values:i,onSave:A,iconButton:a(z,{})}):null}})})]}),n(o,{children:[a(p,{className:t.formLabel,style:{visibility:"hidden"},children:"Alternative Input"}),n(o,{display:"flex",width:150,children:[a(V,{factRef:typeof i=="object"?i?.factRef:void 0,path:typeof i=="object"?i?.path:void 0,onSave:k,pathResolver:m("rulesStep.pathResolver"),className:t.exploreButton,text:"Fact",hideIcon:!0}),a(j,{values:typeof i=="object"&&!Array.isArray(i)?void 0:q(i),onSave:A})]})]})]})]}),a(S,{onClick:w,className:t.deleteButton,"data-testid":`${l}-delete-button`,disabled:d||y,hidden:d||y,style:{visibility:d||y?"hidden":void 0},children:a(W,{className:t.deleteIcon})})]})};export{Z as RuleConditionInput};
|
|
2
2
|
//# sourceMappingURL=RuleConditionInput.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as i,jsx as e}from"react/jsx-runtime";import{FormControlLabel as
|
|
1
|
+
import{jsxs as i,jsx as e}from"react/jsx-runtime";import{FormControlLabel as b,Switch as y,Typography as m}from"@material-ui/core";import{makeStyles as x}from"@material-ui/core/styles";import{useFormContext as g}from"react-hook-form";import"../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as k}from"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"react";import"../../../contexts/UserProvider.esm.js";import{FormFieldLabel as s}from"../../FormFieldLabel/FormFieldLabel.esm.js";import{FormFilterSection as v}from"../../FormFilterSection/FormFilterSection.esm.js";import{FormMarkdownInput as C}from"../../FormMarkdownInput/FormMarkdownInput.esm.js";import"../FormFields/CheckNameInput/CheckNameInput.esm.js";import"../FormFields/PassFailMessageInput/PassFailMessageInput.esm.js";import{CHECK_FIELDS as F}from"../utils/checkFormUtils.esm.js";import"../FormFields/TeamDetailsInput/TeamDetailsInput.esm.js";import"../FormFields/RuleInput/AddMenuButton.esm.js";import{RuleInputBox as N}from"../FormFields/RuleInput/RuleInputBox.esm.js";import"../FormFields/RuleInput/Expressions/ExpressionBox.esm.js";import"../FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js";import"@material-ui/icons/Close";import"@material-ui/icons/Delete";import"@material-ui/icons/List";import"@spotify/backstage-plugin-soundcheck-common";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"@material-ui/icons/Search";import"../../SoundcheckDialog/SoundcheckDialog.esm.js";import"../../FactExplorer/FactExplorer.esm.js";import"../../FactExplorer/FactExplorerContext.esm.js";import"../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"../FormFields/RuleInput/Conditions/styles.esm.js";import"@backstage/catalog-model";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"react-use/lib/useLocalStorage";import"../FormFields/RuleInput/Conditions/ValueListInput.esm.js";import"../FormFields/RuleInput/Conditions/ConditionList.esm.js";import"../FormFields/CheckScheduleSection/ScheduleSection.esm.js";import"../FormFields/CheckPathResolverInput.esm.js";import{ExpressionType as S}from"../types/ExpressionType.esm.js";import"../../Frequency/types.esm.js";import"../../Frequency/util.esm.js";import"../../Frequency/FrequencyComponent.esm.js";import"../types/Path.esm.js";const w=x(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(2)},innerContainer:{display:"flex",flexDirection:"column"}})),A=()=>{const t=w(),{isLoading:o,isReadOnly:r}=k(),{control:d,watch:c,setValue:a}=g(),p="filtersStep.applicabilityExpressions",n="filtersStep.notApplicableMessage",h=c("detailsStep.type"),l=c(p),f=u=>{u.target.checked?(a(p,{expressionType:S.AllOf,conditions:[{factRef:"",path:"",operator:"",operatorPrefix:"",value:""}]}),a(n,"")):(a(p,void 0),a(n,void 0))};return i("div",{className:t.container,children:[e(v,{includeFilterName:"filtersStep.include",excludeFilterName:"filtersStep.exclude",disabled:o||r,description:F.filter.description}),h!=="manual"&&i("div",{className:t.container,children:[i("div",{className:t.innerContainer,children:[e(b,{label:e(s,{title:"Applicability rule (Optional)",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks/#applicability-rule"}),disabled:o||r,control:e(y,{checked:!!l?.conditions||!!l?.expressions,onChange:f})}),e(m,{variant:"caption",children:"The check applies to all entities that match the catalog filters above. If you want to add an extra fact-based applicability rule, turn on the toggle and define the fact-based rule. With this rule enabled, the check will only apply to entities that match both the catalog filters and the fact-based rule. The fact-based rule is re-checked every time the check runs."})]}),(!!l?.conditions||!!l?.expressions)&&i("div",{className:t.container,children:[e("div",{className:t.innerContainer,children:e(N,{disabled:o||r,name:p,depth:0})}),i("div",{className:t.innerContainer,children:[e(s,{title:"Not applicable message (Optional)"}),e(m,{variant:"caption",children:"Add a message explaining why the check doesn't apply if an entity fails the fact-based rule."}),e(C,{name:n,control:d,placeholder:"Enter not applicable message...",disabled:o||r})]})]})]})]})};export{A as CheckApplicabilityStep};
|
|
2
2
|
//# sourceMappingURL=CheckApplicabilityStep.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as l,jsx as t,Fragment as h}from"react/jsx-runtime";import{stringifyEntityRef as g}from"@backstage/catalog-model";import{EntityListProvider as x}from"@backstage/plugin-catalog-react";import{makeStyles as v,Typography as k}from"@material-ui/core";import{isEqual as S,pickBy as b}from"lodash";import{useMemo as E}from"react";import{useFormContext as c}from"react-hook-form";import"../../../contexts/TrackFormContext.esm.js";import{useCheckFormContext as w}from"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import{CheckDryRun as T}from"../../CheckDryRun/CheckDryRun.esm.js";import"../../SoundcheckDialog/SoundcheckDialog.esm.js";import"../../CheckDryRun/CheckDryRunDetails.esm.js";import{CheckDryRunProvider as C}from"../../CheckDryRun/CheckDryRunContext.esm.js";import{mapToCheckerInput as F}from"../utils/checkFormUtils.esm.js";import{ExpandableSection as A}from"../../ExpandableSection/ExpandableSection.esm.js";import{FilterPreviewTable as D}from"../../Filter/FilterPreviewTable/FilterPreviewTable.esm.js";import{emptyFilters as p}from"../../Filter/types.esm.js";import{FormattedPreview as R}from"../../FormattedPreview/FormattedPreview.esm.js";const I=v(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(2)},preview:{color:e.palette.text.primary,fontSize:e.typography.body1.fontSize,borderTop:`1px solid ${e.palette.divider}`,overflow:"auto",padding:e.spacing(1,2),maxHeight:420,"& pre":{marginTop:0,background:`${e.palette.background.paper} !important`}},previewSection:{marginBottom:e.spacing(2)}})),N=()=>{const e=I(),{getValues:i}=c(),{selectedItem:o}=w(),r=F(i(),o),m=i("filtersStep.include"),s=i("filtersStep.exclude"),d=S(m,[p()]),{watch:u}=c(),n=u("detailsStep.type")==="manual";n&&(r.rule={});const y=E(()=>{const a={...r,id:o?r.id:"<ID WILL BE GENERATED WHEN CHECK IS SAVED>"};return b(a,f=>!!f)},[r,o]);return l(C,{children:[t(k,{variant:"body2",children:n?"Manual checks cannot be dry-run. These types of checks are meant to be executed manually by users.":"Take a moment to review your check and perform dry runs to ensure everything is working as expected before you save."}),l("div",{className:e.container,children:[t(A,{className:e.previewSection,title:"YAML",children:t("div",{className:e.preview,children:t(R,{data:y,dataType:"yaml"})})}),!n&&t(x,{pagination:{limit:10},children:t(D,{title:`Test Against ${d?"Select Filters to Dry Run Against Applicable Entities":"Applicable Entities"}`,includeFilter:m??[p()],excludeFilter:s??[p()],hideTags:!0,additionalColumns:[{title:"Dry Run",cellStyle:{padding:"0px 16px 0px 20px"},id:"dry-run",render:a=>t(h,{children:t(T,{check:r,entityRef:g(a)})})}]})})]})]})};export{N as CheckReviewStep};
|
|
2
2
|
//# sourceMappingURL=CheckReviewStep.esm.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{FrequencySchema as
|
|
2
|
-
For example, selecting an include filter of 'Kind' as 'Component' and an exclude filter of 'Type' as 'Service' will select all entities with kind Component where type is NOT Service.`},schedule:{description:"Checks are automatically triggered whenever a dependent fact is updated. When collectors are scheduled, there is generally no need to schedule checks.",checkboxLabel:"Schedule check"}};export{
|
|
1
|
+
import{FrequencySchema as k}from"@spotify/backstage-plugin-soundcheck-common";import{isObject as A}from"lodash";import{v4 as O}from"uuid";import{appendToJSONPath as R}from"../../../utils/json.esm.js";import{mapInputFilterToFormFilters as g,mapFiltersToCatalogFilter as m}from"../../Filter/utils.esm.js";import"../../Filter/FilterComponent.esm.js";import{emptyFilters as x}from"../../Filter/types.esm.js";import{TimeUnit as b}from"../../Frequency/types.esm.js";import{isTimeUnit as M}from"../../Frequency/util.esm.js";import"../../Frequency/FrequencyComponent.esm.js";import{ExpressionType as a}from"../types/ExpressionType.esm.js";import{defaultSchedule as C}from"../types/Schedule.esm.js";import"../types/Path.esm.js";import{CHECK_NAME_MAX_LENGTH as P}from"./validation.esm.js";const v=e=>{if(A(e)&&"frequency"in e){const t=k.safeParse(e.frequency);if(t.success){const r=t.data;if("cron"in r)return{enabled:!0,frequency:{type:"cron",unit:b.Days,value:1,cron:r.cron}};const o=Object.keys(r);if(o.length){const s=o[0];if(M(s))return{enabled:!0,frequency:{type:"HumanDuration",unit:s,value:r[s]??1,cron:""}}}}}return{enabled:!1,frequency:{type:"HumanDuration",unit:b.Days,value:1,cron:""}}},E=(e,t)=>{const{enabled:r,frequency:o}=e;if(r){const{cron:s,type:i,unit:f,value:c}=o;return i==="HumanDuration"?{frequency:{[f]:c},filter:m(t)}:{frequency:{cron:s}}}},y=e=>{if(Array.isArray(e))return e.map(t=>y(t));if(typeof e=="string"){if(e==="true")return!0;if(e==="false")return!1;const t=Number(e);if(!isNaN(t))return t}return e},l=e=>{if(!e)return{};if(e.expressionType){const t={[e.expressionType]:e.conditions?.map(r=>({factRef:r.factRef,path:r.path,operator:r.operatorPrefix?`${r.operatorPrefix}:${r.operator}`:r.operator,value:y(r.value)}))};return e.expressions&&e.expressions.forEach(r=>{t[e.expressionType]?.push(l(r))}),t}if(e.expressions)return e.expressions.map(l);if(e.conditions&&e.conditions.length===1){const t=e.conditions[0];return{factRef:t.factRef,path:t.path,operator:t.operatorPrefix?`${t.operatorPrefix}:${t.operator}`:t.operator,value:y(t.value)}}return{}},w=e=>{if(e?.match(/.:./)){const t=e.split(":");if(["all","any","none"].includes(t[0]))return{operator:t[1],operatorPrefix:t[0]}}return{}},u=(e,t=!0)=>{if(!e)return{conditions:[]};const r=Object.keys(e);let o=r.includes("all")||t&&!r.includes("any")?a.AllOf:a.AnyOf;if(r.includes("not")&&(o=a.Not),r.includes(o)||t){const f=e[o]||[e],c=[],d=[];return f.forEach(n=>{const h=Object.keys(n);if(h.includes("all")||h.includes("any")||h.includes("not"))d.push(u(n,!1));else{const{operator:S,operatorPrefix:T}=w(n.operator);c.push({factRef:n.factRef,path:n.path,operator:S??n.operator,value:n.value,operatorPrefix:T})}}),{expressions:d.length>0?d:void 0,conditions:c,expressionType:o}}const{operator:s,operatorPrefix:i}=w(e.operator);return{expressionType:a.AllOf,conditions:[{factRef:e.factRef,path:e.path,operator:s??e.operator,value:e.value,operatorPrefix:i}]}},F=e=>({detailsStep:{name:e.name??"",description:e.description??"",ownerEntityRef:e.ownerEntityRef??"",type:e.type??"default"},rulesStep:{pathResolver:e.pathResolver??"jsonpath",expressions:u(e.rule),passedMessage:e.passedMessage??void 0,failedMessage:e.failedMessage??void 0,warning:e.warning??!1},filtersStep:{include:g(e.filter),exclude:g(e.exclude),applicabilityExpressions:e.applicable?u(e.applicable):void 0,notApplicableMessage:e.notApplicableMessage??void 0},scheduleStep:{schedule:v(e.schedule)}}),N=(e,t)=>{const{detailsStep:r,rulesStep:o,filtersStep:s,scheduleStep:i}=e;return{id:t?t.id:O(),ownerEntityRef:r.ownerEntityRef??void 0,name:r.name,description:r.description,pathResolver:o.pathResolver,passedMessage:o.passedMessage??void 0,failedMessage:o.failedMessage??void 0,rule:r.type==="manual"?void 0:l(o.expressions),warning:o.warning??!1,filter:s.include?.length?m(s.include):void 0,exclude:s.exclude?.length?m(s.exclude):void 0,applicable:r.type!=="manual"&&(s.applicabilityExpressions?.conditions?.length||s.applicabilityExpressions?.expressions?.length)?l(s.applicabilityExpressions):void 0,notApplicableMessage:s.notApplicableMessage&&r.type!=="manual"&&s.applicabilityExpressions?.conditions?.length?s.notApplicableMessage:void 0,schedule:E(i.schedule,s.include),type:r.type}},p=(e,t="$")=>{const r=[];if(e?.type==="object"&&e.properties&&typeof e.properties=="object")for(const o of Object.keys(e.properties)){const s=R(t,o);r.push(s),r.push(...p(e.properties[o],s))}if(e.type==="array"&&e.items){const o=`${t}[*]`;r.push(o);const s=Array.isArray(e.items)?e.items:[e.items];for(const i of s)r.push(...p(i,o))}if(e.oneOf){const o=Array.isArray(e.oneOf)?e.oneOf:[e.oneOf];for(const s of o)r.push(...p(s,t))}if(e.allOf){const o=Array.isArray(e.allOf)?e.allOf:[e.allOf];for(const s of o)r.push(...p(s,t))}return[...new Set(r)]},j={detailsStep:{name:"",description:"",ownerEntityRef:"",type:"default"},rulesStep:{pathResolver:"jsonpath",expressions:{expressionType:a.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",operatorPrefix:"",value:"",conditions:[]}]},warning:!1},filtersStep:{include:[x()],exclude:[x()]},scheduleStep:{schedule:C()}},q={details:{name:{name:"Check name",helperText:`Max ${P} characters`,placeholder:"Name your check (e.g., 'Code Coverage\u2019)"},description:{name:"Check description",placeholder:"Describe your check clearly so others understand its purpose. e.g., 'Ensure code coverage meets the minimum threshold.'"},owner:{name:"Check owner",selectLabel:"Assign an owner"},type:{name:"Check Type",selectLabel:"Choose the type of check."}},rulesStep:{rules:{name:"Check rules",description:"Define the rules the check will verify."},messages:{name:"Pass/Fail messages (Optional)",description:"Add the messages for check success and failure.",passMessagePlaceholder:"Enter pass message...",failMessagePlaceholder:"Enter fail message...",passedTabName:"Passed Message",failedTabName:"Failed Message"},warnings:{name:"Enable warnings",description:"Enable to classify failures as warnings, so they don\u2019t impact certification.",label:"Warning"}},filter:{description:`Use the filters below to narrow the scope of the Check. Only Entities that match the selected include and exclude filters will be applicable to the Check. Exclude filters must be used with with an include filter.
|
|
2
|
+
For example, selecting an include filter of 'Kind' as 'Component' and an exclude filter of 'Type' as 'Service' will select all entities with kind Component where type is NOT Service.`},schedule:{description:"Checks are automatically triggered whenever a dependent fact is updated. When collectors are scheduled, there is generally no need to schedule checks.",checkboxLabel:"Schedule check"}};export{q as CHECK_FIELDS,j as DEFAULT_FORM_VALUES,p as generateJsonPaths,F as mapCheckerToFormValues,l as mapExpressionToRule,v as mapInputScheduleToSchedule,u as mapRuleToExpression,E as mapScheduleToInputSchedule,N as mapToCheckerInput};
|
|
3
3
|
//# sourceMappingURL=checkFormUtils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{CheckMessagingSchema as f,DefaultCheckDetailsSchema as u,ManualCheckDetailsSchema as
|
|
1
|
+
import{CheckMessagingSchema as f,DefaultCheckDetailsSchema as u,ManualCheckDetailsSchema as S,parseFactRef as d}from"@spotify/backstage-plugin-soundcheck-common";import{isEmpty as o}from"lodash";import{z as e}from"zod";import{baseFiltersSchema as E,refineFilters as h,EXCLUDE_WITHOUT_INCLUDE_FILTERS_MESSAGE as y,ensureNoEmptyFilterBlocks as b,EMPTY_FILTER_BLOCKS_MESSAGE as g,ensureNoConflictingFilters as O,CONFLICTING_FILTER_ERROR_MESSAGE as R,FrequencySchema as C}from"../../../utils/validation.esm.js";import{ExpressionType as r}from"../types/ExpressionType.esm.js";import"../../Frequency/types.esm.js";import"../../Frequency/util.esm.js";import"../../Frequency/FrequencyComponent.esm.js";import"../types/Path.esm.js";const a=t=>{try{return d(t),!0}catch{return"Invalid fact reference. [source]:[scope]/[name]."}},F=100,n=async t=>{if(!await a(t))throw new Error("Fact reference validation failed");return t},s=e.union([e.string().min(1,"Required"),e.number(),e.boolean()]),c=e.lazy(()=>e.strictObject({factRef:e.string().refine(n,{message:"Valid format: [source]:[scope]/[name]"}),path:e.string().min(1,"Required"),operator:e.string().min(1,"Required"),operatorPrefix:e.string().optional().nullable(),value:s.or(e.array(s).min(1,"Required")).or(e.strictObject({factRef:e.string().refine(n,{message:"Valid format: [source]:[scope]/[name]"}),path:e.string().min(1,"Required")})),conditions:e.array(c).optional()})),i=e.lazy(()=>e.strictObject({expressionType:e.enum([r.AllOf,r.AnyOf,r.Not]).optional(),expressions:e.array(i).optional(),conditions:e.array(c).optional()}).refine(({expressions:t,conditions:m})=>!o(t)||!o(m),"Must contain either a condition or an expression.")),_=e.strictObject({expressions:i,pathResolver:e.string().optional()}).merge(f),l=e.lazy(()=>e.strictObject({applicabilityExpressions:i.optional(),notApplicableMessage:e.string().optional()}).merge(E).refine(h,y).refine(b,g).refine(O,R)),M=e.strictObject({enabled:e.boolean(),frequency:C}),p=e.strictObject({schedule:M.optional()}),T=e.strictObject({detailsStep:u,rulesStep:_,filtersStep:l,scheduleStep:p}),j=e.strictObject({detailsStep:S,rulesStep:e.any(),filtersStep:l,scheduleStep:p});export{F as CHECK_NAME_MAX_LENGTH,T as defaultCheckFormSchema,j as manualCheckFormSchema,a as validateFactRef};
|
|
2
2
|
//# sourceMappingURL=validation.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as d,Fragment as h,jsx as o}from"react/jsx-runtime";import{useRouteRef as m}from"@backstage/core-plugin-api";import{usePermission as f}from"@backstage/plugin-permission-react";import{HeaderPage as k}from"@backstage/ui";import{soundcheckCheckUpdatePermission as l}from"@spotify/backstage-plugin-soundcheck-common";import{useParams as u}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as g}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import{useCheck as C}from"../../hooks/checks/useCheck.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import{checkDetailsRouteRef as P,checksPageRouteRef as R}from"../../routes.esm.js";import{DocLinkButton as b}from"../DocLinkButton/DocLinkButton.esm.js";import{LoadingIndicator as E}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as w}from"../PageWarningMessage/PageWarningMessage.esm.js";import{CheckEditView as I}from"./CheckEditView.esm.js";const x=()=>{const{checkId:e}=u(),{data:r,isLoading:c}=C(e),{loading:s,allowed:p}=f({permission:l,resourceRef:e}),t=s||c,i=p&&r?.isEditable,a=m(P),n=m(R);return d(h,{children:[o(k,{title:`Edit ${r?.name??e??"Check"}`,breadcrumbs:[{label:"All Checks",href:n()},{label:"Details",href:a({checkId:e??""})}],customActions:o(b,{href:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/checks/"})}),o(w,{entityName:"check",entityId:e,showCannotEdit:!t&&!i,showNotFound:!t&&!r}),t&&o(E,{}),o(g,{children:!t&&!!r&&i&&o(I,{check:r})})]})};export{x as CheckEditPage};
|
|
2
2
|
//# sourceMappingURL=CheckEditPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as
|
|
1
|
+
import{jsx as t,jsxs as y,Fragment as te}from"react/jsx-runtime";import{stringifyEntityRef as x,parseEntityRef as ie,RELATION_OWNED_BY as oe,RELATION_PART_OF as ne}from"@backstage/catalog-model";import{useRouteRef as re}from"@backstage/core-plugin-api";import{entityRouteRef as ae,getEntityRelations as F,humanizeEntityRef as S}from"@backstage/plugin-catalog-react";import{Table as se,TableHeader as ce,Column as d,TableBody as le,TablePagination as de,Row as pe,Flex as fe,CellText as u,CellProfile as ge}from"@backstage/ui";import{RiCheckLine as me,RiCloseLine as ye,RiAlertLine as ue,RiErrorWarningFill as he,RiProhibitedLine as Ie,RiIndeterminateCircleLine as Re,RiInformationOffLine as we}from"@remixicon/react";import{compact as ke,uniq as Ee,startCase as Se}from"lodash";import{useState as C,useEffect as j,useMemo as b,useCallback as L}from"react";import{useNavigate as Ce}from"react-router-dom";import{ResultState as l,CheckEntityField as p,Direction as s}from"../../../graphql/generated/index.esm.js";import{useEntitiesByRefs as be}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useProfileImages as Le}from"../../../hooks/catalog/useProfileImages.esm.js";import{useCheckEntities as Pe}from"../../../hooks/entities/useCheckEntities.esm.js";import{useSortSearchParams as Ne}from"../../../hooks/useSortSearchParams.esm.js";import{CustomCell as ve}from"../../CustomCell/CustomCell.esm.js";import"../../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Te}from"../../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../routes.esm.js";import{LoadingTableSkeleton as ze}from"../../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{toResultState as M}from"../utils.esm.js";import{toCheckEntityRow as Ae}from"./utils.esm.js";const W=10,Be=["kind","metadata.name","metadata.namespace","spec.profile.displayName","metadata.title","relations","spec.lifecycle","spec.type"],De={[l.Passed]:t(me,{style:{color:"var(--bui-fg-success)"}}),[l.Failed]:t(ye,{style:{color:"var(--bui-fg-danger)"}}),[l.Warning]:t(ue,{}),[l.Error]:t(he,{}),[l.Exempt]:t(Ie,{style:{color:"var(--bui-fg-disabled)"}}),[l.NotReported]:t(Re,{style:{color:"var(--bui-fg-disabled)"}}),[l.NotApplicable]:t(we,{style:{color:"var(--bui-fg-disabled)"}})},P={name:p.Name,owner:p.Owner,system:p.System,type:p.Type,lifecycle:p.Lifecycle},Oe=({checkId:_,trackId:H,filter:h,states:I})=>{const{updateSortParams:N,searchParams:f}=Ne(),[R,v]=C(()=>{const e=f.get("sortDirection");return e==="ascending"?s.Asc:e==="descending"?s.Desc:s.Asc}),[m,T]=C(()=>{const e=f.get("sort");return e&&P[e]?e:"name"}),K=R===s.Asc?"ascending":"descending",[i,z]=C({orderBy:void 0,filter:h,states:I?.map(M).filter(e=>e!==void 0),pageInfo:{page:0,pageSize:W,direction:"forward",cursor:null}});j(()=>{const e=f.get("sortDirection");(e==="ascending"||e==="descending")&&v(e==="ascending"?s.Asc:s.Desc);const o=f.get("sort");o&&P[o]&&T(o)},[f]),j(()=>{let e;m?e={field:P[m]??p.Name,direction:R}:e=void 0,z(o=>({...o,orderBy:e,pageInfo:{...o.pageInfo,page:0,cursor:null},filter:h,states:I?.map(M).filter(a=>a!==void 0)}))},[h,I,m,R]);const{data:r,isLoading:q}=Pe({checkId:_,trackId:H,orderBy:i.orderBy,filter:i.filter,states:i.states?.length?i.states:void 0,[i.pageInfo.direction==="forward"?"first":"last"]:i.pageInfo.pageSize,[i.pageInfo.direction==="forward"?"after":"before"]:i.pageInfo.cursor}),U=r?.checkEntities.edges.map(e=>e.node.entityRef)??[],{data:w,isLoading:Y}=be({entityRefs:U,fields:Be}),$=b(()=>r?.checkEntities.edges??[],[r]),G=b(()=>r?.checkEntities.totalCount??0,[r])>W,k=L((e,o)=>{const a=e>i.pageInfo.page?"forward":"backward",E=a==="forward"?r?.checkEntities.pageInfo.endCursor??null:r?.checkEntities.pageInfo.startCursor??null;z({...i,pageInfo:{page:e,pageSize:o,direction:a,cursor:E}})},[r,i]),J=L(({direction:e,column:o})=>{T(String(o)),v(e==="ascending"?s.Desc:s.Asc),N({sort:String(o),sortDirection:e})},[N]),A=b(()=>!r?.checkEntities.edges?.length||!w?.items?.length?[]:ke(r.checkEntities.edges.map(e=>{const o=w.items.find(a=>!!a&&x(a)===e.node.entityRef);return o?Ae({checkDetails:e.node,entity:o}):void 0})),[r?.checkEntities.edges,w?.items]),V=({row:e})=>{const o=Ce(),a=re(ae),E=L(n=>{const c=ie(x(n)),g=a(c);o(`${g}/soundcheck`)},[o,a]),X=F(e.entity,oe).map(n=>S(n,{defaultKind:n.kind})).join(", "),Z=F(e.entity,ne,{kind:"system"}).map(n=>S(n,{defaultKind:"system"})).join(", "),Q=Ee(A.flatMap(n=>n.entity.relations?.filter(({type:c,targetRef:g})=>c==="ownedBy"&&g).map(c=>c.targetRef)||[])),{profileImageMap:ee}=Le(Q),B=e.entity.relations?.find(({type:n})=>n==="ownedBy")?.targetRef;let D;B&&(D=ee?.[B]);const O=S(e.entity,{defaultKind:"Component"});return y(pe,{onAction:()=>E(e.entity),children:[t(ve,{children:t(fe,{children:(n=>{const c=De[n],g=Se(n.toLowerCase());return t("span",{title:g,children:c})})(e.state)})}),t(u,{title:O}),t(u,{title:Z}),t(ge,{name:X,src:D??O}),t(u,{title:e.entity.spec?.type}),t(u,{title:e.entity.spec?.lifecycle})]},e.id)};return q||Y?t(ze,{}):$.length?y(te,{children:[y(se,{onSortChange:J,sortDescriptor:{direction:K,column:m},children:[y(ce,{children:[t(d,{id:"state",style:{width:"5%"}}),t(d,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"35%"},children:"Name"}),t(d,{id:"system",allowsSorting:!0,style:{width:"20%"},children:"System"}),t(d,{id:"owner",allowsSorting:!0,style:{width:"20%"},children:"Owner"}),t(d,{id:"type",allowsSorting:!0,style:{width:"10%"},children:"Type"}),t(d,{id:"lifecycle",allowsSorting:!0,style:{width:"10%"},children:"Lifecycle"})]}),t(le,{children:A.map(e=>t(V,{row:e},e.id))})]}),G&&t(de,{showPageSizeOptions:!0,tabIndex:i.pageInfo.page,pageSize:i.pageInfo.pageSize,rowCount:r?.checkEntities.totalCount,offset:i.pageInfo.page*i.pageInfo.pageSize,onPreviousPage:()=>{const e=i.pageInfo.page-1;k(e,i.pageInfo.pageSize)},onNextPage:()=>{const e=i.pageInfo.page+1;k(e,i.pageInfo.pageSize)},onPageSizeChange:e=>{k(i.pageInfo.page,e)}})]}):t(Te,{title:"No check entities found",body:"There are no check entities found."})};export{Oe as CheckEntitiesTableBUI};
|
|
2
2
|
//# sourceMappingURL=CheckEntitiesTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{CheckPageBUI as e}from"./CheckPageBUI.esm.js";const r=()=>o(e,{});export{r as CheckPage};
|
|
2
2
|
//# sourceMappingURL=CheckPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r,jsxs as
|
|
1
|
+
import{jsx as r,jsxs as d,Fragment as le}from"react/jsx-runtime";import{parseEntityRef as ne}from"@backstage/catalog-model";import{useRouteRef as R}from"@backstage/core-plugin-api";import{usePermission as pe}from"@backstage/plugin-permission-react";import{Container as X,HeaderPage as de,Flex as $,Box as w}from"@backstage/ui";import{makeStyles as he}from"@material-ui/core";import{toEntityFilterQuery as N,combineEntityFilterQueries as fe,soundcheckCheckReadPermission as ue}from"@spotify/backstage-plugin-soundcheck-common";import{useState as P,useMemo as s,useEffect as ke}from"react";import{useSearchParams as ge,useParams as be}from"react-router-dom";import Ee from"react-use/lib/useDebounce";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import{useCheck as Se}from"../../hooks/checks/useCheck.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as Ie}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCheckStatus as ye}from"../../hooks/aggregations/useCheckStatus.esm.js";import"react-use/lib/useLocalStorage";import{useFilters as Te}from"../../hooks/filters/useFilters.esm.js";import{useLCPReporting as Ce}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as ve}from"../../hooks/useLoadTimeReporting.esm.js";import{trackDetailsRouteRef as Re,checksPageRouteRef as we,tracksPageRouteRef as Ne}from"../../routes.esm.js";import{DescriptionCard as Pe}from"../Cards/DescriptionCard/DescriptionCard.esm.js";import"../Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js";import"../Cards/TrackStatusCard/TrackStatusCard.esm.js";import{CheckStatusCard as Ae}from"../Cards/CheckStatusCard/CheckStatusCard.esm.js";import{HistoricalCheckStatusCard as Fe}from"../Cards/HistoricalCheckStatusCard/HistoricalCheckStatusCard.esm.js";import{ChipSelector as Le}from"../ChipSelector/ChipSelector.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as A}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import"lodash";import{toFilter as je}from"../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as xe}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as Oe}from"../Menus/SimpleMenu.esm.js";import{useCheckActions as Be}from"../Menus/useCheckActions.esm.js";import{PageCustomActions as De}from"../PageCustomActions/PageCustomActions.esm.js";import"../TechHealth/Filters/types.esm.js";import"../TechHealth/Filters/FacetFilter.esm.js";import"../TechHealth/Filters/FilterProvider.esm.js";import"../TechHealth/Filters/Filters.esm.js";import"../TechHealth/Filters/FiltersHeader.esm.js";import"../TechHealth/Filters/FiltersSection.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{parseNumberOfDays as Me}from"../TechHealth/Filters/utils.esm.js";import{CheckEntitiesTableBUI as Ue}from"./CheckEntitiesTable/CheckEntitiesTableBUI.esm.js";import{ExemptionsTableBUI as Qe}from"./ExemptionsTableBUI.esm.js";const Ve=he(()=>({container:{marginBottom:"var(--bui-space-12)"},tables:{margin:"var(--bui-space-12) 0 0"},tableContent:{margin:"var(--bui-space-3) 0 0"}})),h={ENTITIES:"Entities",EXEMPTIONS:"Exemptions"},qe=(l,e)=>l.levels.flatMap(({checks:n})=>n).find(({id:n})=>n===e)||null,Xe=()=>{const l=Ve(),[e,n]=ge(),{trackId:o,checkId:t}=be(),{data:a,isLoading:u,isError:H}=Ie(o),{data:k,isLoading:f,isError:W}=Se(t),F=k?.ownerEntityRef,z=F?ne(F).name:void 0,L=Be(k??void 0),G=R(Re),J=R(we),K=R(Ne),[j,Y]=P(new Set([h.ENTITIES])),I=j.values().next().value??h.ENTITIES,[p,x]=P(e.get("search")||""),[O,Z]=P(""),_=i=>{Y(i),x(""),n({},{replace:!0})},c=s(()=>e.getAll("states"),[e]),g=s(()=>e.getAll("owners"),[e]),b=s(()=>e.getAll("lifecycles"),[e]),E=s(()=>e.getAll("types"),[e]),S=s(()=>e.getAll("systems"),[e]),y=s(()=>Me(e.get("numberOfDays")),[e]);Ee(()=>{Z(p);const i=new URLSearchParams(e.toString());p?i.set("search",p):i.delete("search"),n(i,{replace:!0})},300,[p]);const B=s(()=>({routeName:"soundcheck-check-insights",additionalAttributes:{checkId:t||"",trackId:o||"",filtersApplied:g.length+b.length+E.length+S.length+c.length,ownersFilter:g.join(",")||"",lifecyclesFilter:b.join(",")||"",typesFilter:E.join(",")||"",systemsFilter:S.join(",")||"",statesFilter:c.join(",")||"",numberOfDays:y,checkSearch:O}}),[t,o,g,b,E,S,c,y,O]),{reportContentLoaded:D}=ve(B),{reporter:ee}=Ce(B),m=s(()=>k??a?.levels.flatMap(i=>i.checks).find(i=>i.id===t),[k,t,a?.levels]),T=je({lifecycles:b,owners:g,types:E,systems:S}),{data:M,isLoading:C,isError:te}=ye({checkId:t,trackId:o,filter:T,states:c?.length?c:void 0},!!t);let v;if(t)if(a){const i=N(a.filter),me=N(qe(a,t)?.filter);v=fe(i,me)}else m?.filter&&(v=N(m.filter));const{loading:U,allowed:Q}=pe({permission:ue,resourceRef:t}),re=s(()=>!!m&&!U&&!Q,[Q,m,U]),{filters:ie,selected:oe,setSelected:se,onRemoveTag:ae,selectedTags:ce}=Te({entityFilterQuery:v,hasStatusFilters:!0}),V=H||W||te,q=ee?.getLCPValue();return ke(()=>{!f&&!C&&(!o||!u)&&D({lcp:q})},[f,C,u,o,D,q]),f||o&&u?r(xe,{}):!f&&!m?r(X,{className:l.container,children:r(A,{title:"Check not found",body:`There is no check with the requested id: ${t}.`})}):re?r(A,{title:"Cannot view check",body:`No permission to view check with the requested id: ${t}.`}):o&&!u&&!a?r(A,{title:"No track found",body:`There is no track with the requested id: ${o}.`}):d(le,{children:[r(de,{title:m?.name??"",breadcrumbs:o?[{label:"Tracks",href:K()},{label:a?.name??"Track",href:G({trackId:o})}]:[{label:"Checks",href:J()}],customActions:r(Oe,{label:"Check Actions",disabled:!L.length,placement:"left top",menuActions:L})}),d(X,{className:l.container,children:[d($,{children:[r(Pe,{description:m?.description??void 0,owner:z,isError:V,isLoading:f}),r(Ae,{states:c,status:M,isLoading:C,isError:V}),r(Fe,{checkId:t,trackId:o,filter:T,states:c,checkStatus:M,numberOfDays:y})]}),d(w,{className:l.tables,children:[d($,{justify:"between",children:[r(w,{minWidth:"12rem",children:r(Le,{options:Object.values(h),selected:j,ariaLabel:"Sections",onSelectionChange:_})}),r(De,{searchValue:p,setSearchValue:i=>x(i),filters:ie,selected:oe,setSelected:se,onRemoveTag:ae,selectedTags:ce,showSearch:I!==h.ENTITIES})]}),d(w,{className:l.tableContent,children:[I===h.ENTITIES&&r(Ue,{checkId:t,trackId:a?.id,filter:T,states:c}),I===h.EXEMPTIONS&&r(Qe,{checkId:t,searchValue:p})]})]})]})]})};export{Xe as CheckPageBUI};
|
|
2
2
|
//# sourceMappingURL=CheckPageBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r,jsxs as
|
|
1
|
+
import{jsx as r,jsxs as g}from"react/jsx-runtime";import{Text as y,Box as x}from"@backstage/ui";import{makeStyles as v}from"@material-ui/core";import{DateTime as C}from"luxon";import{Line as L,ResponsiveContainer as I,LineChart as S,CartesianGrid as A,XAxis as F,YAxis as a,Tooltip as D}from"recharts";import{useCheckStatusHistory as T}from"../../hooks/aggregations/useCheckStatusHistory.esm.js";import{getChartStatusKeys as W,getChartStatusColor as w}from"../../utils/charts.esm.js";import{compactNumberFormatter as K}from"../../utils/formatters.esm.js";import{LoadingTableSkeleton as M}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{getApplicableEntitiesCount as O}from"./utils.esm.js";const R=v(()=>({container:{height:180,overflow:"hidden"},"@global":{".recharts-default-tooltip li":{margin:"0 !important",padding:"0 !important"}}})),j=({checkId:i,trackId:n,filter:s,states:c,numberOfDays:d,checkStatus:m})=>{const l=R(),{data:e,isLoading:u,isError:h}=T({checkId:i,trackId:n,filter:s,states:c,numberOfDays:d},!!i);if(u)return r(M,{rowCount:3});if(h)return r(y,{color:"warning",children:"Failed to load check data."});const k=t=>e?.history.some(o=>o[t]>0)??!1,f=O(m),p={stroke:"var(--bui-fg-secondary)",strokeWidth:1,r:5},b=W().filter(t=>k(t)).map(t=>{const o=w(t);return r(L,{type:"monotone",dataKey:t,stroke:o,yAxisId:"count",strokeWidth:2,dot:!1,isAnimationActive:!1,activeDot:{fill:o,...p}},t)});return r(x,{className:l.container,children:r(I,{debounce:1,children:g(S,{data:e?.history??[],margin:{top:0,right:0,bottom:0,left:0},children:[r(A,{stroke:"var(--bui-border)",strokeWidth:1,horizontal:!0,vertical:!1}),r(F,{dataKey:"date",tickFormatter:t=>C.fromISO(t).toFormat("MMM d"),tickLine:!1,axisLine:!1}),r(a,{yAxisId:"percentage",domain:[0,100],axisLine:!1,tickLine:!1,tickFormatter:t=>`${t}%`,ticks:[0,25,50,75,100]}),r(a,{yAxisId:"count",orientation:"right",domain:[0,f],axisLine:!1,tickLine:!1,tickFormatter:t=>K(t)}),r(D,{contentStyle:{backgroundColor:"var(--bui-bg)",color:"var(--bui-fg-secondary)",border:"1px solid var(--bui-border)",borderRadius:"var(--bui-radius-3)"},cursor:{stroke:"var(--bui-fg-secondary)",strokeWidth:1}}),b]})})})};export{j as CheckStatusHistoryChartBUI};
|
|
2
2
|
//# sourceMappingURL=CheckStatusHistoryChartBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r,jsxs as o}from"react/jsx-runtime";import{Text as m}from"@backstage/ui";import{makeStyles as g,createStyles as f}from"@material-ui/core/styles";import{Skeleton as v}from"@material-ui/lab";import{memo as y,Fragment as b}from"react";import{chartStatuses as C,getChartStatusKey as x,getChartStatusColor as S}from"../../utils/charts.esm.js";import{compactNumberFormatter as d}from"../../utils/formatters.esm.js";import{getApplicableEntitiesCount as N,CheckStateCategories as k,CheckState as w}from"./utils.esm.js";const T=g(()=>f({container:{display:"grid",gridTemplateColumns:"3fr 2fr",gap:"var(--bui-space-1)",minWidth:0},item:{display:"flex",alignItems:"center",minWidth:0},legendDash:{width:"var(--bui-space-3)",height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)",marginRight:"var(--bui-space-2)"},category:{display:"flex",alignItems:"center",minWidth:0,flex:1},categoryText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:1},valueCell:{justifyContent:"flex-end",whiteSpace:"nowrap"},percentage:{marginLeft:"var(--bui-space-1)"}})),R=y(({checkStatus:l,states:i})=>{const a=T(),p=C.map(t=>{const e=x(t),n=S(e);return{name:t,key:e,color:n}}),s=N(l),h=t=>{let e=!1;return i?.length&&(t===k.NOT_REPORTED?e=i.includes(w.NOT_REPORTED):e=i.includes(t.toUpperCase())),!i?.length||e?Number(l?.[t]??0)??0:0};return r("div",{className:a.container,children:p.map(({name:t,key:e,color:n})=>{const c=h(e),u=s>0?Math.round(c/s*100):0;return o(b,{children:[r("div",{className:a.item,children:o("div",{className:a.category,children:[r("span",{className:a.legendDash,style:{backgroundColor:n}}),r(m,{className:a.categoryText,variant:"body-small",children:t})]})}),r("div",{className:`${a.item} ${a.valueCell}`,children:l?o(m,{variant:"body-small",children:[d(c)," of"," ",d(s)," (",u,"%)"]}):r(v,{width:120,height:20})})]},e)})})});export{R as CheckStatusTableBUI};
|
|
2
2
|
//# sourceMappingURL=CheckStatusTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as i,jsxs as m,Fragment as D}from"react/jsx-runtime";import{parseEntityRef as o}from"@backstage/catalog-model";import{useRouteRef as N,useApi as U}from"@backstage/core-plugin-api";import{entityRouteRef as $,entityPresentationApiRef as F}from"@backstage/plugin-catalog-react";import{Table as H,TableHeader as M,Column as d,TableBody as O,Row as z,
|
|
1
|
+
import{jsx as i,jsxs as m,Fragment as D}from"react/jsx-runtime";import{parseEntityRef as o}from"@backstage/catalog-model";import{useRouteRef as N,useApi as U}from"@backstage/core-plugin-api";import{entityRouteRef as $,entityPresentationApiRef as F}from"@backstage/plugin-catalog-react";import{Table as H,TableHeader as M,Column as d,TableBody as O,Row as z,CellText as y,TooltipTrigger as J,Button as V,Tooltip as q,TablePagination as G}from"@backstage/ui";import{makeStyles as K}from"@material-ui/core";import{useState as _,useMemo as l,useCallback as Q}from"react";import{useNavigate as X}from"react-router-dom";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as Y}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useExemptions as Z}from"../../hooks/exemptions/useExemptions.esm.js";import{formatTimestamp as ee}from"../../utils/time.esm.js";import{CustomCell as te}from"../CustomCell/CustomCell.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as C}from"../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"../../routes.esm.js";import{LoadingTableSkeleton as ie}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";const S=10,re=K(f=>({justificationCell:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",whiteSpace:"pre-line",wordBreak:"break-word",fontWeight:"normal",textAlign:"left",background:"none !important",padding:0},emptyStateWrapper:{padding:f.spacing(2)}})),oe=({checkId:f,searchValue:u})=>{const j=re(),w=X(),b=N($),[c,R]=_("ascending"),[h,E]=_("entity"),{data:p,isLoading:P,error:B}=Z(f),v=l(()=>p?.totalCount??0,[p]),g=l(()=>p?.edges??[],[p]),L=Q(t=>{const e=o(t),r=b(e);w(`${r}/soundcheck`)},[w,b]),s=l(()=>{const t=(e,r)=>e<r?c==="ascending"?-1:1:e>r?c==="ascending"?1:-1:0;return[...g].sort((e,r)=>{const n=e.node,a=r.node;switch(h){case"entity":return t(o(n.entity_ref).name,o(a.entity_ref).name);case"justification":return t(n.justification??"",a.justification??"");case"user":return t(o(n.user_ref).name,o(a.user_ref).name);case"date":return t(n.timestamp,a.timestamp);default:return 0}})},[g,h,c]),k=U(F),x=l(()=>{const t=new Map;for(const{node:e}of s){const r=k.forEntity(e.entity_ref)?.snapshot?.primaryTitle;r&&t.set(e.entity_ref,r)}return t},[s,k]),T=l(()=>{if(!u?.length)return s;const t=u.toLowerCase().trim();return s.filter(({node:e})=>x.get(e.entity_ref)?.toLowerCase().includes(t))},[s,u,x]),A=v>S,{paginatedItems:I,paginationProps:W}=Y({pageParam:"perPage",defaultPageSize:S,items:T});return P?i(ie,{}):B?i(C,{title:"Exemptions failed",body:"Failed to load exemptions."}):!g.length||!T.length?i(C,{title:"No check exemptions found",body:"There are no check exemptions found."}):m(D,{children:[m(H,{onSortChange:({direction:t,column:e})=>{E(e),R(t)},sortDescriptor:{direction:c,column:h},children:[m(M,{children:[i(d,{id:"entity",allowsSorting:!0,isRowHeader:!0,style:{width:"35%"},children:"Entity"}),i(d,{id:"justification",style:{width:"40%"},children:"Justification"}),i(d,{id:"user",allowsSorting:!0,style:{width:"15%"},children:"User"}),i(d,{id:"date",allowsSorting:!0,style:{width:"10%"},children:"Date"})]}),i(O,{children:I.map(t=>{const e=t.node,r=ee(e.timestamp),n=o(e.user_ref),a=o(e.entity_ref);return m(z,{onAction:()=>L(e.entity_ref),children:[i(y,{title:a.name}),i(te,{children:m(J,{children:[i(V,{variant:"tertiary",className:j.justificationCell,children:e.justification}),i(q,{children:e.justification})]})}),i(y,{title:n.name}),i(y,{title:r})]},`${e.entity_ref}-${e.check_id}`)})})]}),A&&i(G,{...W})]})};export{oe as ExemptionsTableBUI};
|
|
2
2
|
//# sourceMappingURL=ExemptionsTableBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ResultState as
|
|
1
|
+
import{ResultState as t}from"../../graphql/generated/index.esm.js";const e={PASSED:"PASSED",FAILED:"FAILED",WARNING:"WARNING",EXEMPT:"EXEMPT",NOT_APPLICABLE:"NOT_APPLICABLE",NOT_REPORTED:"NOT_REPORTED",ERROR:"ERROR"},r={PASSED:"passed",FAILED:"failed",WARNING:"warning",EXEMPT:"exempt",ERROR:"error",NOT_APPLICABLE:"notApplicable",NOT_REPORTED:"notReported"},R=E=>{switch(E){case e.PASSED:return t.Passed;case e.FAILED:return t.Failed;case e.WARNING:return t.Warning;case e.NOT_APPLICABLE:return t.NotApplicable;case e.NOT_REPORTED:return t.NotReported;case e.EXEMPT:return t.Exempt;case e.ERROR:return t.Error;default:return}};function A(E){return E?E.numberOfEntities-E.notApplicable-E.exempt:0}export{e as CheckState,r as CheckStateCategories,A as getApplicableEntitiesCount,R as toResultState};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as n,Fragment as
|
|
1
|
+
import{jsxs as n,Fragment as B,jsx as o}from"react/jsx-runtime";import{makeStyles as E,Box as i,Checkbox as N,Typography as O,FormHelperText as A,Tooltip as L,Button as z}from"@material-ui/core";import R from"@material-ui/icons/CheckCircleOutlined";import P from"@material-ui/icons/InfoOutlined";import{isEmpty as j,last as D,difference as F}from"lodash";import{useContext as v,useMemo as g}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useGetChecks as G}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../ListboxVirtualized/ListboxVirtualized.esm.js";import{ControlledAutocomplete as M}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{CheckPreviewContext as S}from"./CheckPreviewContext.esm.js";const y=E(e=>({checkSelectCard:{padding:e.spacing(1,2),border:`1px solid ${e.palette.divider}`,borderRadius:e.spacing(.25),"&:hover":{cursor:"pointer"},display:"flex",alignItems:"center",background:e.palette.background.default,minWidth:200},selectedCard:{border:`1px solid ${e.palette.border}`},selectedIcon:{color:e.palette.text.secondary},checkCardInfo:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},selectArea:{display:"flex",flexDirection:"column",gap:e.spacing(.75)},removeButton:{margin:0,marginLeft:e.spacing(1),padding:0,color:e.palette.text.primary},wrapper:{padding:e.spacing(1),border:`1px solid ${e.palette.divider}`,borderRadius:e.spacing(1)},wrapperError:{border:`1px solid ${e.palette.error.main}`},checkSearch:{background:e.palette.background.paper}})),H=({check:e,removeCheck:f,isExternal:p})=>{const c=y(),{updateCheck:k,check:x}=v(S),d=e&&x?.id===e.id;return e?n(i,{className:`${c.checkSelectCard} ${d?c.selectedCard:""}`,onClick:()=>k(e),children:[o(R,{className:d?c.selectedIcon:"",fontSize:"small"}),o(i,{className:c.checkCardInfo,flex:1,marginLeft:2,children:e.name}),p&&o(i,{display:"flex",alignItems:"center",marginRight:1,children:o(L,{title:"Externally submitted check",placement:"top",arrow:!0,children:o(P,{fontSize:"small",color:"action",style:{cursor:"help"}})})}),!p&&o(z,{onClick:l=>{l.stopPropagation(),f(e.id)},className:c.removeButton,variant:"text",size:"small","aria-label":`remove check ${e.id}`,children:"Remove"})]}):null},V=({currentSectionCheckIds:e,addCheckToSelection:f,removeCheck:p,error:c,helperText:k,blankText:x,selectedChecks:d})=>{const l=y(),{data:b,isLoading:w}=G({ids:void 0}),{updateCheck:I}=v(S),u=g(()=>b?.edges.map(r=>r.node)??[],[b]),s=g(()=>new Set(u.map(r=>r.id)),[u]),m=g(()=>{const r=(d??[]).filter(t=>!s.has(t.id)).map(t=>({...t,description:t.description??""}));return[...u,...r]},[u,s,d]),C=g(()=>new Map(m.map(r=>[r.id,r])),[m]),$=g(()=>m.map(r=>r.id)??[],[m]),T=r=>{if(r.length>e.length){const t=D(r),a=m.find(h=>h.id===t);f(a),a&&I(a)}if(r.length<e.length){const t=F(e,r)?.[0];t&&p(t)}};return n(B,{children:[n(i,{className:`${l.wrapper} ${c?l.wrapperError:""}`,children:[o(i,{className:l.checkSearch,marginBottom:1,children:o(M,{multiple:!0,disableCloseOnSelect:!0,options:$,getOptionDisabled:r=>!s.has(r),renderOption:(r,{selected:t})=>{const a=C.get(r),h=!s.has(r);return n(i,{display:"flex",alignItems:"center",gridGap:4,style:{opacity:h?.5:1},children:[o(N,{checked:t,size:"small",color:"primary",disabled:h}),n(i,{children:[a?a.name:r,h&&" (External)"]})]})},getOptionLabel:r=>C.get(r)?.name??r,multipleValue:e,onChange:T,isLoading:w,placeholder:"Check Search",autoSelect:!1,testId:"check-search",getOptionSelected:(r,t)=>t.includes(r)})}),n(i,{className:l.selectArea,children:[j(e)&&o(i,{marginTop:1,marginBottom:1,textAlign:"center",children:o(O,{children:x??"Select checks from the dropdown above."})}),e.map(r=>{const t=C.get(r),a=t?!s.has(t.id):!1;return o(H,{removeCheck:p,check:t,isExternal:a},r)})]})]}),k&&o(A,{error:c,children:k})]})};export{V as CheckSelection};
|
|
2
2
|
//# sourceMappingURL=CheckSelection.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"react/jsx-runtime";import"@material-ui/core";import{makeStyles as o}from"@material-ui/core/styles";import"react";import"@nivo/colors";import"d3-color";import"d3-interpolate";import"d3-scale";import"../CategoryBar/CategoryBar.esm.js";import"../../graphql/generated/index.esm.js";o(r=>({categoryBar:{"& .MuiBox-root > div":{height:"8px"}}}));
|
|
2
2
|
//# sourceMappingURL=CheckStatusBar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{CheckTemplatesPageBUI as m}from"./CheckTemplatesPageBUI.esm.js";const o=()=>e(m,{});export{o as CheckTemplatesPage};
|
|
2
2
|
//# sourceMappingURL=CheckTemplatesPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"react/jsx-runtime";import"@backstage/core-components";import"@backstage/core-plugin-api";import"@material-ui/core";import{makeStyles as t}from"@material-ui/core/styles";import"lodash";import"react";import"react-router-dom";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../routes.esm.js";import"../LoadingIndicator/LoadingIndicator.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import"./TemplateCategory.esm.js";t(o=>({content:{display:"flex",flexDirection:"column",gap:o.spacing(2)},grid:{marginLeft:o.spacing(2)},cardContent:{"&:hover":{backgroundColor:o.palette.action.hover}},docsLink:{color:o.palette.text.primary},link:{textDecoration:"none"}}));
|
|
2
2
|
//# sourceMappingURL=CheckTemplatesPageDeprecated.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"react/jsx-runtime";import"@backstage/core-components";import"@backstage/core-plugin-api";import"@material-ui/core";import{makeStyles as t}from"@material-ui/core/styles";import"lodash";import"react-router-dom";import"../../routes.esm.js";t(o=>({content:{marginLeft:o.spacing(2)},link:{textDecoration:"none"},cardContent:{"&:hover":{backgroundColor:o.palette.action.hover}}}));
|
|
2
2
|
//# sourceMappingURL=TemplateCategory.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t,jsxs as m,Fragment as K}from"react/jsx-runtime";import{useRouteRef as x,useApi as A}from"@backstage/core-plugin-api";import{entityPresentationApiRef as W}from"@backstage/plugin-catalog-react";import{usePermission as Y}from"@backstage/plugin-permission-react";import{HeaderPage as _,Flex as q,Container as Q,Table as X,TableHeader as Z,Column as g,TableBody as $,TablePagination as ee}from"@backstage/ui";import{makeStyles as te}from"@material-ui/core";import{soundcheckCheckCreatePermission as re}from"@spotify/backstage-plugin-soundcheck-common";import{sortBy as oe,isEmpty as y}from"lodash";import{useState as w,useMemo as T}from"react";import{useSearchParams as ie}from"react-router-dom";import ne from"react-use/lib/useDebounce";import{soundcheckApiRef as ae}from"../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import{useGetChecks as me}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as se}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useProfileImages as ce}from"../../hooks/catalog/useProfileImages.esm.js";import{useImportChecks as pe}from"../../hooks/checks/useImportChecks.esm.js";import{useSearchNameOwner as le}from"../../hooks/useSearchNameOwner.esm.js";import{checkTemplatesRouteRef as de,checkDetailsRouteRef as fe}from"../../routes.esm.js";import{exportChecks as he}from"../../utils/export.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as ue}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import{EmptyStateNoChecks as ge}from"../EmptyState/EmptyStateNoChecks.esm.js";import{ImportExportPanelBUI as ye}from"../ImportExportPanel/ImportExportPanelBUI.esm.js";import"../ImportExportPanel/ImportExportPanelDeprecated.esm.js";import{ListPageCustomActions as we}from"../ListPageCustomActions/ListPageCustomActions.esm.js";import{LoadingTableSkeleton as ke}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import"../Menus/SimpleMenu.esm.js";import{useCheckActions as Re}from"../Menus/useCheckActions.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"uuid";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import{TableRowWithOwner as Pe}from"../TableRowWithOwner/TableRowWithOwner.esm.js";const L=10,Ce=["name","owner"],Se=({check:o,profileImageMap:n})=>{const s=x(fe),i=Re(o);return t(Pe,{ownerEntityRef:o.ownerEntityRef??"",href:s({checkId:o.id}),profileImageSrc:n[o.ownerEntityRef??""],menuActions:i,name:o.name??o.id,description:o.description??"",cells:[]})},Ee=te(()=>({container:{marginBottom:"var(--bui-space-12)"}})),Ie=()=>{const o=Ee(),[n,s]=ie(),[i,B]=w(()=>n.get("search")??""),[l,N]=w(()=>n.get("sortDirection")==="descending"?"descending":"ascending"),[a,U]=w(()=>{const e=n.get("sort");return e&&Ce.includes(e)?e:""}),{isLoading:c,data:k}=me({}),d=T(()=>k?.edges?.map(e=>e.node)??[],[k?.edges]),{loading:R,allowed:P}=Y({permission:re}),D=x(de),{profileImageMap:H}=ce(d.filter(e=>e.ownerEntityRef).map(e=>e.ownerEntityRef)),C=A(W),f=le(d,i),S=T(()=>{if(!a)return f;const e=oe(f,r=>a==="owner"?r.ownerEntityRef?C.forEntity(r.ownerEntityRef).snapshot.primaryTitle:-1:a==="type"?r.type?r.type:"default":r?.name?.toLowerCase()??r.id.toLowerCase());return l==="descending"&&e.reverse(),e},[a,f,l,C]),{mutateAsync:M}=pe(),O=async e=>M(e),v=A(ae),F=async()=>{const e=await v.getChecks({orderAlphabetical:"asc"});return he(e.edges.map(r=>r.node))},{paginatedItems:h,reset:E,paginationProps:V}=se({pageParam:"perPage",defaultPageSize:L,items:S});ne(()=>{E();const e=new URLSearchParams(n.toString());i?e.set("search",i):e.delete("search"),s(e,{replace:!0})},300,[i]);const j=({direction:e,column:r})=>{const u=String(r);U(u),N(e),E();const p=new URLSearchParams(n);u?p.set("sort",u):p.delete("sort"),p.set("sortDirection",e),s(p,{replace:!0})},G=c,I=!c&&y(h),z=!c&&!y(h),J=S.length>L;let b=null;return I&&(b=i?t(ue,{title:"No checks found",body:"Your current search term did not return any checks. Please try a different search term."}):t(ge,{})),m(K,{children:[t(_,{customActions:m(q,{gap:"2",align:"center",children:[t(ye,{resourceType:"check",disableImport:!R&&!P,disableExport:c||y(d),onImport:O,onExport:F}),t(we,{searchValue:i,setSearchValue:B,canCreate:!R&&P,createHref:D()})]}),title:"Checks"}),m(Q,{className:o.container,children:[G&&t(ke,{rowCount:10}),I&&b,z&&m(X,{onSortChange:j,sortDescriptor:{direction:l,column:a},children:[m(Z,{children:[t(g,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"
|
|
1
|
+
import{jsx as t,jsxs as m,Fragment as K}from"react/jsx-runtime";import{useRouteRef as x,useApi as A}from"@backstage/core-plugin-api";import{entityPresentationApiRef as W}from"@backstage/plugin-catalog-react";import{usePermission as Y}from"@backstage/plugin-permission-react";import{HeaderPage as _,Flex as q,Container as Q,Table as X,TableHeader as Z,Column as g,TableBody as $,TablePagination as ee}from"@backstage/ui";import{makeStyles as te}from"@material-ui/core";import{soundcheckCheckCreatePermission as re}from"@spotify/backstage-plugin-soundcheck-common";import{sortBy as oe,isEmpty as y}from"lodash";import{useState as w,useMemo as T}from"react";import{useSearchParams as ie}from"react-router-dom";import ne from"react-use/lib/useDebounce";import{soundcheckApiRef as ae}from"../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import{useGetChecks as me}from"../../hooks/checks/useGetChecks.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as se}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useProfileImages as ce}from"../../hooks/catalog/useProfileImages.esm.js";import{useImportChecks as pe}from"../../hooks/checks/useImportChecks.esm.js";import{useSearchNameOwner as le}from"../../hooks/useSearchNameOwner.esm.js";import{checkTemplatesRouteRef as de,checkDetailsRouteRef as fe}from"../../routes.esm.js";import{exportChecks as he}from"../../utils/export.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as ue}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import{EmptyStateNoChecks as ge}from"../EmptyState/EmptyStateNoChecks.esm.js";import{ImportExportPanelBUI as ye}from"../ImportExportPanel/ImportExportPanelBUI.esm.js";import"../ImportExportPanel/ImportExportPanelDeprecated.esm.js";import{ListPageCustomActions as we}from"../ListPageCustomActions/ListPageCustomActions.esm.js";import{LoadingTableSkeleton as ke}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import"../Menus/SimpleMenu.esm.js";import{useCheckActions as Re}from"../Menus/useCheckActions.esm.js";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"uuid";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import{TableRowWithOwner as Pe}from"../TableRowWithOwner/TableRowWithOwner.esm.js";const L=10,Ce=["name","owner"],Se=({check:o,profileImageMap:n})=>{const s=x(fe),i=Re(o);return t(Pe,{ownerEntityRef:o.ownerEntityRef??"",href:s({checkId:o.id}),profileImageSrc:n[o.ownerEntityRef??""],menuActions:i,name:o.name??o.id,description:o.description??"",cells:[]})},Ee=te(()=>({container:{marginBottom:"var(--bui-space-12)"}})),Ie=()=>{const o=Ee(),[n,s]=ie(),[i,B]=w(()=>n.get("search")??""),[l,N]=w(()=>n.get("sortDirection")==="descending"?"descending":"ascending"),[a,U]=w(()=>{const e=n.get("sort");return e&&Ce.includes(e)?e:""}),{isLoading:c,data:k}=me({}),d=T(()=>k?.edges?.map(e=>e.node)??[],[k?.edges]),{loading:R,allowed:P}=Y({permission:re}),D=x(de),{profileImageMap:H}=ce(d.filter(e=>e.ownerEntityRef).map(e=>e.ownerEntityRef)),C=A(W),f=le(d,i),S=T(()=>{if(!a)return f;const e=oe(f,r=>a==="owner"?r.ownerEntityRef?C.forEntity(r.ownerEntityRef).snapshot.primaryTitle:-1:a==="type"?r.type?r.type:"default":r?.name?.toLowerCase()??r.id.toLowerCase());return l==="descending"&&e.reverse(),e},[a,f,l,C]),{mutateAsync:M}=pe(),O=async e=>M(e),v=A(ae),F=async()=>{const e=await v.getChecks({orderAlphabetical:"asc"});return he(e.edges.map(r=>r.node))},{paginatedItems:h,reset:E,paginationProps:V}=se({pageParam:"perPage",defaultPageSize:L,items:S});ne(()=>{E();const e=new URLSearchParams(n.toString());i?e.set("search",i):e.delete("search"),s(e,{replace:!0})},300,[i]);const j=({direction:e,column:r})=>{const u=String(r);U(u),N(e),E();const p=new URLSearchParams(n);u?p.set("sort",u):p.delete("sort"),p.set("sortDirection",e),s(p,{replace:!0})},G=c,I=!c&&y(h),z=!c&&!y(h),J=S.length>L;let b=null;return I&&(b=i?t(ue,{title:"No checks found",body:"Your current search term did not return any checks. Please try a different search term."}):t(ge,{})),m(K,{children:[t(_,{customActions:m(q,{gap:"2",align:"center",children:[t(ye,{resourceType:"check",disableImport:!R&&!P,disableExport:c||y(d),onImport:O,onExport:F}),t(we,{searchValue:i,setSearchValue:B,canCreate:!R&&P,createHref:D()})]}),title:"Checks"}),m(Q,{className:o.container,children:[G&&t(ke,{rowCount:10}),I&&b,z&&m(X,{onSortChange:j,sortDescriptor:{direction:l,column:a},children:[m(Z,{children:[t(g,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"82%"},children:"Name"}),t(g,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Check Owner"}),t(g,{id:"actions",style:{width:"3%"}})]}),t($,{children:h.map(e=>t(Se,{check:e,profileImageMap:H??{}},e.id))})]}),J&&t(ee,{...V})]})]})};export{Ie as ChecksListPageBUI};
|
|
2
2
|
//# sourceMappingURL=ChecksListPageBUI.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{ChecksListPageBUI as o}from"./ChecksListPageBUI.esm.js";const r=()=>e("div",{children:e(o,{})});export{r as ChecksPage};
|
|
2
2
|
//# sourceMappingURL=ChecksPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as o}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import{ChecksPage as m}from"../ChecksPage/ChecksPage.esm.js";
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import"../../contexts/TrackFormContext.esm.js";import{CheckFormProvider as o}from"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import{ChecksPage as m}from"../ChecksPage/ChecksPage.esm.js";const i=()=>r(o,{children:r(m,{})});export{i as ChecksTab};
|
|
2
2
|
//# sourceMappingURL=ChecksTab.esm.js.map
|