@spotify/backstage-plugin-soundcheck 0.13.0 → 0.14.1
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 +65 -0
- package/alpha/package.json +1 -1
- package/dist/alpha/apis.esm.js +1 -1
- package/dist/alpha/entity-content.esm.js +1 -1
- package/dist/alpha/pages.esm.js +1 -1
- package/dist/alpha/plugin.esm.js +1 -1
- package/dist/alpha/sidebar-item.esm.js +1 -1
- package/dist/alpha.d.ts +121 -1
- package/dist/api.esm.js +1 -1
- package/dist/components/Badges/BaseBadge.esm.js +1 -1
- package/dist/components/Badges/CampaignBadge.esm.js +1 -1
- package/dist/components/Badges/CertificationBadge.esm.js +1 -1
- package/dist/components/Badges/NoLevelBadge.esm.js +5 -1
- package/dist/components/Badges/PlaylistBadge.esm.js +1 -1
- package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +2 -0
- package/dist/components/CampaignDetailsPage/CampaignChecks.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignDetailRow.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignDetails.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignDetailsPage.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignMilestones.esm.js +1 -1
- package/dist/components/CampaignDetailsPage/CampaignProgress.esm.js +1 -1
- package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignNameField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignScheduleField.esm.js +1 -1
- package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +1 -1
- package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +1 -1
- package/dist/components/CampaignForm/utils/validation.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignEmptyState.esm.js +1 -1
- package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.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/CertificationAccordion/CertificationAccordion.esm.js +1 -1
- package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
- package/dist/components/CertificationSidebar/Check.esm.js +1 -1
- package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
- package/dist/components/CheckCard/CheckCard.esm.js +1 -1
- package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +2 -0
- package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
- package/dist/components/CheckDryRun/CheckDryRun.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunContext.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunDialog.esm.js +2 -0
- package/dist/components/CheckDryRun/CheckDryRunDialogButton.esm.js +2 -0
- package/dist/components/CheckDryRun/checkDryRunUtils.esm.js +2 -0
- package/dist/components/CheckForm/CheckForm.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckNameInput/CheckNameInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ConditionList.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/FactValueDisplay.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListContext.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js +2 -0
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/styles.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/RuleInput/useRuleInputHandlers.esm.js +1 -1
- package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
- package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +2 -0
- package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
- package/dist/components/CheckForm/types/ExpressionType.esm.js +1 -1
- package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
- package/dist/components/CheckForm/utils/checkFormUtils.esm.js +1 -1
- package/dist/components/CheckForm/utils/validation.esm.js +1 -1
- package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
- package/dist/components/CheckPage/CheckDetailsView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
- package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
- package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusBar.esm.js +1 -1
- package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
- package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +1 -1
- package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +2 -0
- package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +2 -0
- package/dist/components/ChecksPage/CheckListPage/CheckListPage.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/CollectorPage/CollectorPage.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Common/CollectorOption.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/DataDog/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +1 -1
- package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/Kubernetes/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/StatusesComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/ExistsFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/FactCollectionConfig.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/FactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/MetricsInput.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/utils.esm.js +2 -0
- package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +2 -0
- package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
- package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
- package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
- package/dist/components/ExpandableSection/ExpandableSection.esm.js +2 -0
- package/dist/components/FactExplorer/FactExplorer.esm.js +2 -0
- package/dist/components/FactExplorer/FactExplorerContext.esm.js +2 -0
- package/dist/components/FactExplorer/FactExplorerDialog.esm.js +2 -0
- package/dist/components/FactExplorer/useFactOptions.esm.js +2 -0
- package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/EntityTableToolbar.esm.js +1 -1
- package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
- package/dist/components/Filter/utils.esm.js +1 -1
- package/dist/components/FooterButtons/FooterButtons.esm.js +1 -1
- package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +2 -0
- package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +2 -0
- package/dist/components/FormControlledAutocomplete/useLabelOptions.esm.js +2 -0
- package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +2 -0
- package/dist/components/FormStepper/FormStepper.esm.js +1 -1
- package/dist/components/FormattedPreview/FormattedPreview.esm.js +4 -0
- package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
- package/dist/components/GroupSelector/GroupSelector.esm.js +1 -1
- package/dist/components/LevelCard/LevelCard.esm.js +1 -1
- package/dist/components/ListboxVirtualized/ListboxVirtualized.esm.js +2 -0
- package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
- package/dist/components/OverviewPage/CampaignBanner/CampaignArea.esm.js +2 -0
- package/dist/components/OverviewPage/CampaignBanner/CampaignBanner.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
- package/dist/components/OverviewPage/OverviewPageHeader.esm.js +2 -0
- package/dist/components/OverviewPage/index.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +2 -0
- package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/HighestLevelBadge.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/TrackLevelHeaderCell.esm.js +1 -1
- package/dist/components/OverviewTable/Cell/cellRenderer.esm.js +1 -1
- package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableHeader.esm.js +1 -1
- package/dist/components/OverviewTable/ResultsTableRow.esm.js +1 -1
- package/dist/components/PassRateTable/PassRateTable.esm.js +3 -1
- package/dist/components/QuickstartPage/HowDoIListItem.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -0
- package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +2 -0
- package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +7 -0
- package/dist/components/QuickstartPage/WelcomeModal.esm.js +2 -0
- package/dist/components/QuickstartPage/styles.esm.js +2 -0
- package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
- package/dist/components/SearchBar/SearchBar.esm.js +1 -1
- package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
- package/dist/components/SoundcheckDialog/SoundcheckDialog.esm.js +2 -0
- package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +2 -0
- package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +2 -0
- package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +2 -0
- package/dist/components/SoundcheckHeader/headerUtil.esm.js +2 -0
- package/dist/components/SoundcheckHeader/useHeader.esm.js +2 -0
- package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
- package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
- package/dist/components/TechHealth/TechHealth.esm.js +1 -1
- package/dist/components/TechHealthTabs/ActionColumn.esm.js +1 -1
- package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
- package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +2 -0
- package/dist/components/{EditTrackPage/EditTrackPage.esm.js → TrackEditPage/TrackEditPage.esm.js} +2 -2
- package/dist/components/TrackEditPage/TrackEditView.esm.js +2 -0
- package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +1 -1
- package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
- package/dist/components/TrackForm/TrackForm.esm.js +1 -1
- package/dist/components/TrackForm/utils/trackFormUtils.esm.js +1 -1
- package/dist/components/TrackForm/utils/validation.esm.js +1 -1
- package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
- package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
- package/dist/components/TrackPage/TrackPage.esm.js +1 -1
- package/dist/components/TrackPage/TrackProgressCard.esm.js +1 -1
- package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
- package/dist/components/TracksPage/TracksPage.esm.js +1 -1
- package/dist/components/TracksTab/TracksTab.esm.js +1 -1
- package/dist/contexts/GenericFormContext.esm.js +1 -1
- package/dist/graphql/generated/index.esm.js +104 -36
- package/dist/hooks/catalog/useGetEntityRefs.esm.js +2 -0
- package/dist/hooks/certifications/useProgramOverviewForOwner.esm.js +1 -1
- package/dist/hooks/checks/useCheckTemplates.esm.js +2 -0
- package/dist/hooks/checks/useExecuteCheck.esm.js +1 -1
- package/dist/hooks/checks/useGetChecks.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/graphqlKeys.esm.js +1 -1
- package/dist/hooks/useGetFact.esm.js +2 -0
- package/dist/hooks/useGetPathResolvers.esm.js +2 -0
- package/dist/images/gitlab-rgb.svg +1 -0
- package/dist/images/gitlab-white.svg +1 -0
- package/dist/images/jira-rgb.svg +25 -0
- package/dist/images/jira-white.svg +25 -0
- package/dist/images/sonarqube-rgb.svg +14 -0
- package/dist/images/sonarqube-white.svg +14 -0
- package/dist/index.d.ts +5 -5
- package/dist/plugin.esm.js +1 -1
- package/dist/routes.esm.js +1 -1
- package/dist/utils/export.esm.js +3 -3
- package/dist/utils/filters.esm.js +1 -1
- package/dist/utils/formStyles.esm.js +1 -1
- package/dist/utils/validation.esm.js +1 -1
- package/package.json +20 -18
- package/dist/components/CampaignForm/CampaignFormDescription.esm.js +0 -2
- package/dist/components/CampaignsPage/AddCampaignView.esm.js +0 -2
- package/dist/components/CheckForm/CheckFormDescription.esm.js +0 -2
- package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js +0 -2
- package/dist/components/ChecksPage/AddCheckView.esm.js +0 -2
- package/dist/components/CollectorPage/Configurators/Github/FactCollectionConfig.esm.js +0 -2
- package/dist/components/EditTrackPage/EditTrackView.esm.js +0 -2
- package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +0 -2
- package/dist/components/FullScreenDialog/FullScreenDialog.esm.js +0 -2
- package/dist/components/OverviewPage/OverviewTabs.esm.js +0 -2
- package/dist/components/OverviewPage/OverviewTabsSkeleton.esm.js +0 -2
- package/dist/components/RoutingPage/Breadcrumbs.esm.js +0 -2
- package/dist/components/RoutingPage/utils.esm.js +0 -2
- package/dist/components/TracksPage/AddTrackView.esm.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Grid as
|
|
1
|
+
import{Grid as o}from"@material-ui/core";import l from"react";import{useGetCollectors as c}from"../../../hooks/collectors/useGetCollectors.esm.js";import{CollectorListSkeleton as m}from"./CollectorListSkeleton.esm.js";import{ConfigurableCollectorIds as i,CollectorSummaryCard as n}from"./CollectorSummaryCard.esm.js";const d=()=>{const{data:r,isLoading:a}=c();return l.createElement(o,{container:!0,direction:"row"},l.createElement(o,{container:!0,spacing:4,role:"list","aria-label":"checks"},a?l.createElement(m,null):r?.filter(e=>e.isConfigurable)?.sort((e,t)=>!i.includes(e.id)&&i.includes(t.id)?1:i.includes(e.id)&&!i.includes(t.id)?-1:(e.name??e.id).localeCompare(t.name??t.id))?.map(e=>l.createElement(o,{key:e.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`collector card ${e.id}`},l.createElement(n,{collector:e})))))};export{d as CollectorListPage};
|
|
2
2
|
//# sourceMappingURL=CollectorListPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as p,useTheme as s}from"@material-ui/core";import c from"react";import g from"../../../images/cat-blk.svg";import n from"../../../images/cat-wht.svg";import f from"../../../images/dd_logo_h_rgb.svg";import h from"../../../images/dd_logo_h_white.svg";import l from"../../../images/GitHub_Logo.svg";import u from"../../../images/GitHub_Logo_White.svg";import d from"../../../images/gitlab-rgb.svg";import b from"../../../images/gitlab-white.svg";import k from"../../../images/jira-rgb.svg";import y from"../../../images/jira-white.svg";import j from"../../../images/k8s_blue.svg";import q from"../../../images/k8s_white.svg";import B from"../../../images/pd-black.svg";import w from"../../../images/pd-white.svg";import x from"../../../images/SCM_DARK.svg";import I from"../../../images/SCM_LIGHT.svg";import L from"../../../images/sonarqube-rgb.svg";import S from"../../../images/sonarqube-white.svg";import T from"../../../images/soundcheck-black.svg";import D from"../../../images/soundcheck-white.svg";import E from"../../../images/tech-black.svg";import M from"../../../images/tech-white.svg";import{isDarkTheme as $}from"../../Charts/chartUtils.esm.js";const t={github:l,gitlab:d,datadog:f,scm:I,pagerduty:B,catalog:g,soundcheck:T,techinsights:E,kubernetes:j,jira:k,sonarqube:L},i={github:u,gitlab:b,datadog:h,scm:x,pagerduty:w,catalog:n,soundcheck:D,techinsights:M,kubernetes:q,jira:y,sonarqube:S},C=new Set(["catalog","soundcheck","techinsights","sonarqube"]),F=p(o=>({image:{objectFit:"contain",color:"white",height:o.spacing(5)-4,maxWidth:"100%",marginBottom:o.spacing(1.5)},tallImage:{height:o.spacing(6.5),marginBottom:o.spacing(0)}})),G=o=>!!t[o]&&!!i[o],N=({collectorId:o,noMargin:e})=>{const r=F(),a=s(),m=$(a)?i[o]:t[o];return m?c.createElement("img",{src:m,alt:o,style:e?{marginBottom:0}:{},className:`${r.image} ${C.has(o)?r.tallImage:""}`}):null};export{N as CollectorLogo,G as hasLogo};
|
|
2
2
|
//# sourceMappingURL=CollectorLogo.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{MarkdownContent as
|
|
1
|
+
import{MarkdownContent as E}from"@backstage/core-components";import{useRouteRef as v}from"@backstage/core-plugin-api";import{usePermission as N}from"@backstage/plugin-permission-react";import{makeStyles as I,CardContent as g,CardHeader as k,Typography as u,Divider as x,CardActions as S,Button as T}from"@material-ui/core";import{soundcheckCollectorUpdatePermission as $}from"@spotify/backstage-plugin-soundcheck-common";import e from"react";import{useNavigate as A}from"react-router-dom";import{integrationDetailsRouteRef as B}from"../../../routes.esm.js";import{useSummaryCardStyles as L,Card as M}from"../../SummaryCard/SummaryCard.esm.js";import{hasLogo as R,CollectorLogo as D}from"./CollectorLogo.esm.js";const H=I(o=>({cardContent:{flex:1,paddingTop:o.spacing(1)},logoHeader:{paddingBottom:0,flex:0},headerContent:{display:"flex",alignItems:"center",height:o.spacing(5),marginBottom:o.spacing(1.5)},headerTypography:{marginBottom:0}})),l=["github","scm","pagerduty","datadog","kubernetes","jira","sonarqube"],P=({collector:o})=>{const{description:p,id:t,isConfigurable:s,isEditable:m,name:f}=o,{loading:c,allowed:d}=N({permission:$}),y=A(),h=v(B),a=L(),n=H(),C=l.includes(t)&&s&&m&&!c&&d,b=()=>{y(h({integrationId:t}))};let r;c||!d?r="You don't have permissions to configure this integration.":s?m?l.includes(t)||(r="Integration can only be configured through YAML"):r="Integration is already configured via YAML and cannot be configured through the UI.":r="Integration is not configurable.";const i=f??t;return e.createElement(M,{"data-testid":t,className:a.card},R(t)?e.createElement(g,{className:n.logoHeader},e.createElement(D,{collectorId:t})):e.createElement(k,{title:i,titleTypographyProps:{className:`${a.summaryName} ${n.headerTypography}`},classes:{content:n.headerContent}}),e.createElement(g,{className:n.cardContent},e.createElement(u,{variant:"body1",component:"div"},e.createElement(E,{className:a.summaryDescription,content:p??""})),e.createElement(u,{color:"textSecondary",variant:"body2"},r)),C&&e.createElement("div",null,e.createElement(x,null),e.createElement(S,{className:a.actionArea},e.createElement(T,{"aria-label":`${i}-edit`,"data-testid":`${i}-button`,size:"medium",role:"link",onClick:b,className:a.button,variant:"outlined"},"Configure"))))};export{P as CollectorSummaryCard,l as ConfigurableCollectorIds};
|
|
2
2
|
//# sourceMappingURL=CollectorSummaryCard.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as o}from"@material-ui/core";import t from"react";import{
|
|
1
|
+
import{makeStyles as o}from"@material-ui/core";import t from"react";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as r}from"../SoundcheckHeader/useHeader.esm.js";import{CollectorListPage as a}from"./CollectorListPage/CollectorListPage.esm.js";const m=o(e=>({container:{padding:e.spacing(3)}})),n=()=>{const e=m();return r(),t.createElement("div",{className:e.container},t.createElement(a,null))};export{n as CollectorsPage};
|
|
2
2
|
//# sourceMappingURL=CollectorsPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Link as u,InfoCard as k}from"@backstage/core-components";import{useRouteRef as c}from"@backstage/core-plugin-api";import{useEntity as h}from"@backstage/plugin-catalog-react";import{Divider as v}from"@material-ui/core";import C from"@material-ui/core/styles/makeStyles";import{SpotifyLicenseBanner as L}from"@spotify/backstage-plugin-core";import e,{Fragment as R}from"react";import{useAllCertifications as S}from"../../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/catalog-model";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{usePlaylists as I}from"../../hooks/playlists/usePlaylists.esm.js";import{certificationTrackRouteRef as w,
|
|
1
|
+
import{Link as u,InfoCard as k}from"@backstage/core-components";import{useRouteRef as c}from"@backstage/core-plugin-api";import{useEntity as h}from"@backstage/plugin-catalog-react";import{Divider as v}from"@material-ui/core";import C from"@material-ui/core/styles/makeStyles";import{SpotifyLicenseBanner as L}from"@spotify/backstage-plugin-core";import e,{Fragment as R}from"react";import{useAllCertifications as S}from"../../hooks/certifications/useAllCertifications.esm.js";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/catalog-model";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{usePlaylists as I}from"../../hooks/playlists/usePlaylists.esm.js";import{certificationTrackRouteRef as w,certificationPlaylistTrackRouteRef as b}from"../../routes.esm.js";import{soundcheckBackend as N,invalidLicenseMessage as A}from"../../utils/license.esm.js";import{AlertPanel as P}from"../AlertPanel/AlertPanel.esm.js";import"../CertificationSidebar/CertificationSidebar.esm.js";import{CertificationSummary as T}from"../CertificationSidebar/CertificationSummary.esm.js";import"@material-ui/lab";import"../CertificationSidebar/Check.esm.js";import"../CertificationSidebar/LevelSummary.esm.js";import{NoCertifications as x}from"../EmptyState/EmptyState.esm.js";import{CardSkeleton as B}from"./skeletons/CardSkeleton.esm.js";const n=C(t=>({certificationWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center"},infoCard:{display:"grid",gridRowGap:t.spacing(2)},emptyState:{overflow:"hidden"}})),m=({children:t,title:i})=>{const a=n();return e.createElement(k,{title:i},e.createElement("div",{className:a.infoCard},e.createElement(L,{inline:!0,backend:N,invalidLicenseMessage:A}),t))},D=(t,i)=>t.find(a=>a.trackIds.some(o=>o===i))?.id??"",M=({title:t="Soundcheck"})=>{const{entity:i}=h(),a=n(),{data:o,isError:p,isLoading:s}=S(i),{data:l,isError:d,isLoading:f}=I(i),g=c(w),y=c(b);return p||d?e.createElement(m,{title:t},e.createElement(P,{severity:"error",title:"Error loading certifications"})):s||f||!o||!l?e.createElement(m,{title:t},e.createElement(B,null)):o.length?e.createElement(m,{title:t},o.map((r,E)=>e.createElement(R,{key:r.program.name},e.createElement("div",{className:a.certificationWrapper,"data-testid":"soundcheck-track-row"},e.createElement(T,{key:r.program.id,name:r.program.name,badge:r.highestLevel?.badge,trackType:r.program?.type}),e.createElement(u,{to:r.program.type==="playlist"?y({playlistId:D(l,r.program.id),trackId:r.program.id}):g({trackId:r.program.id})},"View Details")),E<o.length-1?e.createElement(v,null):null))):e.createElement(m,{title:t},e.createElement("div",{className:a.emptyState},e.createElement(x,null)))};export{M as Card,n as useStyles};
|
|
2
2
|
//# sourceMappingURL=Card.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Paper as p,Grid as o,IconButton as f,Typography as E,Collapse as g}from"@material-ui/core";import{makeStyles as u}from"@material-ui/core/styles";import x from"@material-ui/icons/ArrowDropDown";import d from"@material-ui/icons/ArrowRight";import e,{useState as y}from"react";const S=u(t=>({root:{display:"flex",flexDirection:"column",gap:0},button:{marginLeft:-t.spacing(1)},title:{fontWeight:700,color:t.palette.text.primary,cursor:"pointer"}})),h=({title:t,alwaysExpanded:r=!1,children:i,className:c,elevation:m=1})=>{const[a,s]=y(r),n=S(),l=()=>{r||s(!a)};return e.createElement(p,{elevation:m,className:`${n.root} ${c??""}`},e.createElement(o,{container:!0,alignItems:"center",spacing:0},e.createElement(o,{item:!0},!r&&e.createElement(f,{onClick:l,className:n.button},a?e.createElement(x,{fontSize:"large"}):e.createElement(d,{fontSize:"large"}))),e.createElement(o,{item:!0},e.createElement(E,{onClick:l,className:n.title},t))),e.createElement(g,{in:a},i))};export{h as ExpandableSection};
|
|
2
|
+
//# sourceMappingURL=ExpandableSection.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as Q,Box as n,Typography as o,Button as w}from"@material-ui/core";import{parseFactRef as U}from"@spotify/backstage-plugin-soundcheck-common";import e,{useMemo as E,useState as g,useEffect as q,useCallback as X}from"react";import{useGetEntityRefs as Y}from"../../hooks/catalog/useGetEntityRefs.esm.js";import{useGetCollectors as Z}from"../../hooks/collectors/useGetCollectors.esm.js";import{useGetFactSchema as _}from"../../hooks/collectors/useGetFactSchema.esm.js";import{useGetFact as ee}from"../../hooks/useGetFact.esm.js";import{useGetPathResolvers as te}from"../../hooks/useGetPathResolvers.esm.js";import{generateJsonPaths as ae}from"../CheckForm/utils/checkFormUtils.esm.js";import{hasLogo as oe,CollectorLogo as ne}from"../CollectorsPage/CollectorListPage/CollectorLogo.esm.js";import{ExpandableSection as O}from"../ExpandableSection/ExpandableSection.esm.js";import{mapFiltersToCatalogFilter as le}from"../Filter/utils.esm.js";import"../Filter/FilterComponent.esm.js";import{emptyFilters as re}from"../Filter/types.esm.js";import{FormattedPreview as N}from"../FormattedPreview/FormattedPreview.esm.js";import"../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{useLabelOptions as ie}from"../FormControlledAutocomplete/useLabelOptions.esm.js";import{ControlledAutocomplete as h}from"../FormControlledAutocomplete/ControlledAutocomplete.esm.js";import{LoadingIndicator as ce}from"../LoadingIndicator/LoadingIndicator.esm.js";import{useFactOptions as se}from"./useFactOptions.esm.js";const me=800,de=Q(t=>({content:{padding:t.spacing(2,3),width:me},section:{margin:t.spacing(2,0)},expandedSection:{borderTop:`1px solid ${t.palette.divider}`,padding:t.spacing(0,2)},loading:{margin:t.spacing(2)},preview:{maxHeight:500,overflow:"auto",border:`1px solid ${t.palette.divider}`},pathSection:{display:"flex",alignItems:"center",margin:t.spacing(1,0)},testPathButton:{margin:t.spacing(1,1,.5,0)},collectorName:{fontSize:24}})),k=t=>{const f=!t||Object.values(t).every(s=>!s?.length)?{...re(),selectedKinds:["Component","System"]}:t;return le(f)},pe=({factRef:t,updateFactRef:f,path:s,updatePath:B,entityRef:d,updateEntityRef:G,pathResolver:c,filters:I,onSave:C})=>{const a=de(),m=E(()=>{if(t)return U(t)},[t]),[y,R]=g(m?.source??null);q(()=>{m?.source&&R(m.source)},[m?.source]);const[v,T]=g("jsonpath"),[b,x]=g(),[S,j]=g(),{data:P}=te(),V=E(()=>P?.map(i=>i.id)??[],[P]),{data:p}=_(m?.source,m?.name,!0),W=E(()=>p?ae(p.schema):[],[p]),{data:F,isLoading:M}=Z(),$=F?.map(i=>i.id)?.sort()??[],{data:D,isLoading:J}=Y(k(I),500),l=E(()=>F?.find(i=>i.id===y),[F,y]),{factOptions:z}=se({selectedCollector:l}),{options:A,getOptionLabel:L}=ie(z),{data:r,isLoading:u}=ee({factRef:t||"",entityRef:S||"",path:b,pathResolver:c??v??void 0},!!t&&!!S),H=X(()=>{x(s),j(d)},[d,s]),K=E(()=>!!l?.config?.cache,[l]);return e.createElement(n,{className:a.content,"data-testid":"fact-explorer"},e.createElement(n,null,e.createElement(n,null,e.createElement(o,{variant:"subtitle1"},"Select an Integration"),e.createElement(h,{options:$,onChange:i=>{R(i),f("")},value:y,placeholder:"Integration",disabled:M,fullWidth:!0})),!!l&&e.createElement(e.Fragment,null,e.createElement(n,{className:a.section},oe(l.id)?e.createElement(ne,{noMargin:!0,collectorId:l.id}):e.createElement(o,{variant:"h5",className:a.collectorName,component:"div"},l.name??l.id," "),!!l.description&&e.createElement(o,{variant:"body2"},l.description),e.createElement(h,{options:A,onChange:f,value:t??null,placeholder:"Select Fact",getOptionLabel:L,noOptionsText:"No Facts",fullWidth:!0}))),!!t&&e.createElement(e.Fragment,null,!!p?.schema&&e.createElement(n,{className:a.section},e.createElement(O,{elevation:1,title:"JSON Schema"},e.createElement("div",{className:a.preview},e.createElement(N,{data:p.schema})))),e.createElement(n,{className:a.section},e.createElement(o,{variant:"subtitle1"},"Path Resolver"),!c&&e.createElement(o,{variant:"caption"},"Defaults to jsonpath"),c?e.createElement(o,{variant:"body1"},c):e.createElement(h,{options:V,onChange:T,value:c??v,placeholder:"Path Resolver (Optional)",getOptionLabel:L,fullWidth:!0,disabled:!!c})),e.createElement(n,{className:a.section},e.createElement(o,{variant:"subtitle1"},"Path"),e.createElement(h,{options:(c??v)==="jsonpath"?W:[],onChange:i=>{b&&x(void 0),B(i)},value:s??null,placeholder:"Path",fullWidth:!0,freeSolo:!0}),e.createElement("div",{className:a.pathSection},!!C&&e.createElement(w,{className:a.testPathButton,variant:"contained",onClick:()=>C({factRef:t,path:s??"",pathResolver:v??c??""}),disabled:!s,color:"primary"},"Save")))),!!t&&e.createElement(O,{elevation:0,title:"Sample Fact and Test Path"},e.createElement(n,{className:a.expandedSection},e.createElement(n,{marginBottom:1},e.createElement(o,{variant:"subtitle1"},"Select an Entity"),e.createElement(o,{variant:"caption"},"Fact will be sampled from this entity.",e.createElement("br",null),"If you don't see the entity in the drop-down list, you can type its reference in the format ","<kind>:<namespace>/<name>","."),e.createElement(h,{options:D??[],onChange:G,value:d??null,placeholder:"Entity Selection",isLoading:J,freeSolo:!0,fullWidth:!0})),e.createElement(n,null,e.createElement(w,{className:a.testPathButton,variant:"contained",onClick:H,disabled:!d,color:"primary"},"Sample Fact")),e.createElement(e.Fragment,null,!!b&&!u&&e.createElement(n,{className:a.section},e.createElement(o,{variant:"subtitle1"},"Resolved Value"),r?.resolvedValue!==null&&r?.resolvedValue!==void 0?e.createElement(n,{className:a.preview},e.createElement(N,{data:r?.resolvedValue})):e.createElement(o,{color:"textSecondary",variant:"body2"},"Could not resolve path")),!!S&&e.createElement(n,{className:a.section},e.createElement(o,{variant:"subtitle1"},"Fact Data"),K&&e.createElement(o,{variant:"caption"},"Uses cache when available."),!!u&&e.createElement("div",{className:a.loading},e.createElement(ce,null)),!u&&!!r?.fact&&e.createElement(n,{className:a.preview},e.createElement(N,{data:r?.fact?.data})),!u&&!!r?.collectionError&&e.createElement(o,{color:"textSecondary",variant:"body2"},"Failed to collect:"," ",r?.collectionError?.errorMessage),!u&&!r?.fact&&!r?.collectionError&&e.createElement(o,{color:"textSecondary",variant:"body2"},"Fact ",t," unavailable for entity ",d)))))))};export{pe as FactExplorer,k as toEntityFilterQuery};
|
|
2
|
+
//# sourceMappingURL=FactExplorer.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import t,{createContext as h,useState as e}from"react";import{useFormContext as E}from"react-hook-form";import{FactExplorerDialog as x}from"./FactExplorerDialog.esm.js";const a=h({open:!1,updateOpen:()=>{},updateOnSave:()=>{},updateFactRef:()=>{},updatePath:()=>{},updateEntityRef:()=>{},updatePathResolver:()=>{}}),F=({children:r})=>{const[p,o]=e(!1),[n,l]=e(),[u,d]=e(),[c,f]=e(),[i,m]=e(),[s,v]=e(),R=E()?.getValues("filtersStep.filter");return t.createElement(a.Provider,{value:{open:p,updateOpen:o,onSave:n,updateOnSave:l,factRef:u,updateFactRef:d,path:c,updatePath:f,entityRef:i,updateEntityRef:m,pathResolver:s,updatePathResolver:v,filters:R}},t.createElement(t.Fragment,null,r,t.createElement(x,null)))};export{a as FactExplorerContext,F as FactExplorerProvider};
|
|
2
|
+
//# sourceMappingURL=FactExplorerContext.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Button as R}from"@material-ui/core";import E from"@material-ui/icons/Search";import a,{useContext as s}from"react";import{SoundcheckDialog as x}from"../SoundcheckDialog/SoundcheckDialog.esm.js";import{FactExplorer as v}from"./FactExplorer.esm.js";import{FactExplorerContext as m}from"./FactExplorerContext.esm.js";const F=()=>{const{open:e,updateOpen:o,onSave:r,factRef:p,updateFactRef:n,path:l,updatePath:c,entityRef:t,updateEntityRef:f,pathResolver:i,filters:u}=s(m);return a.createElement(x,{open:e,handleClose:()=>o(!1),title:"Fact Explorer",fullScreen:!1},a.createElement(v,{onSave:r,factRef:p,updateFactRef:n,path:l,updatePath:c,entityRef:t,updateEntityRef:f,pathResolver:i,filters:u}))},S=({onSave:e,factRef:o,path:r,pathResolver:p,className:n,text:l="Explore Facts",hideIcon:c})=>{const{updateOpen:t,updateOnSave:f,updateFactRef:i,updatePath:u,updatePathResolver:d}=s(m);return a.createElement(R,{onClick:()=>{t(!0),i(o??""),u(r??""),d(p??""),f(()=>h=>{e&&e(h),t(!1)})},className:n,variant:"text",startIcon:c?void 0:a.createElement(E,null)},l)};export{F as FactExplorerDialog,S as FactExplorerDialogButton};
|
|
2
|
+
//# sourceMappingURL=FactExplorerDialog.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{parseFactRef as p,stringifyFactRef as c}from"@spotify/backstage-plugin-soundcheck-common";import{useMemo as n}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"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as l}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";const s=({selectedCollector:o})=>{const{data:r}=l({});return{factOptions:n(()=>o?.factNames?.map(t=>{const e=p(t,{defaultSource:o.id,defaultScope:"default"});let m=e.name;if(o?.id==="soundcheck"){const a=r?.edges.find(i=>i.node.id===e.name)?.node;m=a?`${a.type==="campaign"?"Campaign: ":"Track: "}${a.name}`:e.name}return{label:m,value:c(e)}})?.sort((t,e)=>t.label.localeCompare(e.label))??[],[o?.factNames,o?.id,r])}};export{s as useFactOptions};
|
|
2
|
+
//# sourceMappingURL=useFactOptions.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as v,Typography as f,Box as y,FormControlLabel as O,Checkbox as w,TextField as z}from"@material-ui/core";import F from"@material-ui/icons/CheckBox";import T from"@material-ui/icons/CheckBoxOutlineBlank";import A from"@material-ui/icons/ExpandMore";import{Autocomplete as I}from"@material-ui/lab";import t,{useState as N,useMemo as B,useCallback as u}from"react";import{useGetEntityFacets as G}from"../../hooks/catalog/useGetEntityFacets.esm.js";import{ListboxVirtualized as U}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const D=v({container:{padding:0},formControl:{flexGrow:1},label:{lineHeight:"1em"}}),H=({facet:s,label:p,values:a,onChange:n,disabled:b,filter:C})=>{const m=D(),[g,r]=N(!1),{data:l,isLoading:E,error:h}=G(s,C),o=B(()=>l?.map(e=>e.toLocaleLowerCase("en-US")),[l]),d=a?.map(e=>e.toLocaleLowerCase("en-US"))??[],x=u((e,i)=>{n(i),o&&o.every(c=>i.includes(c))&&r(!1)},[o,n,r]),L=u(()=>{n(a?.length?a:void 0)},[a,n]);if(!l||!o||h)return t.createElement(f,{color:"error"},"Failed to load facet: ",s);const k=b||E||!a?.length&&(!l?.length||!o?.length),S=Array.from(new Set([...o,...d]));return t.createElement(y,{pb:1,pt:1,className:m.container},t.createElement(f,{variant:"subtitle2"},p),t.createElement(I,{open:g,onOpen:()=>r(!0),onClose:()=>r(!1),className:m.formControl,multiple:!0,limitTags:4,disableCloseOnSelect:!0,"aria-label":p,options:S,value:d,getOptionLabel:e=>l[o.indexOf(e)]??e,onChange:x,onBlur:L,disabled:k,ListboxComponent:U,renderOption:(e,{selected:i})=>t.createElement(O,{onClick:c=>c.preventDefault(),control:t.createElement(w,{icon:t.createElement(T,{fontSize:"small"}),checkedIcon:t.createElement(F,{fontSize:"small"}),checked:i}),label:l[o.indexOf(e)]??e,classes:{label:m.label}}),size:"small",popupIcon:t.createElement(A,{"data-testid":"selected-facets-expand"}),renderInput:e=>t.createElement(z,{...e,variant:"outlined"})}))};export{H as EntityAutocompletePicker};
|
|
2
2
|
//# sourceMappingURL=EntityAutocompletePicker.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{EntitySearchBar as o}from"@backstage/plugin-catalog-react";import{Toolbar as
|
|
1
|
+
import{EntitySearchBar as o}from"@backstage/plugin-catalog-react";import{Toolbar as n,Typography as r}from"@material-ui/core";import{makeStyles as i}from"@material-ui/core/styles";import t from"react";const p=i(e=>({root:{paddingTop:e.spacing(1.5),paddingLeft:e.spacing(4),paddingRight:e.spacing(4),paddingBottom:e.spacing(1),display:"flex",justifyContent:"space-between",marginRight:"0",marginLeft:"0"},text:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}),{name:"BackstageTableToolbar"});function l(e){const a=p();return t.createElement(n,{className:a.root,disableGutters:!0},t.createElement(r,{variant:"h5",component:"div",className:a.text},e.title),t.createElement(o,null))}export{l as CatalogTableToolbar};
|
|
2
2
|
//# sourceMappingURL=EntityTableToolbar.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Table as
|
|
1
|
+
import{Table as f}from"@backstage/core-components";import{EntityTable as n,useEntityList as E,EntityTypeFilter as w,EntityOwnerFilter as h,EntityLifecycleFilter as b}from"@backstage/plugin-catalog-react";import{makeStyles as S,Chip as v,useTheme as x}from"@material-ui/core";import t,{useEffect as F,useMemo as C}from"react";import{EntityKindsFilter as L}from"./EntityKindsFilter.esm.js";import{EntitySystemsFilter as N}from"./EntitySystemsFilter.esm.js";import{CatalogTableToolbar as z}from"./EntityTableToolbar.esm.js";import{EntityTagFilter as O}from"./EntityTagFilter.esm.js";const R=S(()=>({entityTable:{'& span[class*="CatalogReactEntityDisplayName-root"]':{"&:hover":{textDecoration:"underline"}}}})),r=[n.columns.createEntityRefColumn({}),n.columns.createSystemColumn(),n.columns.createOwnerColumn(),n.columns.createSpecTypeColumn(),n.columns.createSpecLifecycleColumn(),{title:"Tags",field:"metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:e=>t.createElement(t.Fragment,null,e.metadata.tags&&e.metadata.tags.map(l=>t.createElement(v,{key:l,label:l,size:"small",variant:"outlined",style:{marginTop:"4px",marginBottom:"4px"}})))}],A=e=>({kinds:e.selectedKinds.length?new L(e.selectedKinds):void 0,systems:e.selectedSystems.length?new N(e.selectedSystems):void 0,type:e.selectedTypes.length?new w(e.selectedTypes):void 0,owners:e.selectedOwners.length?new h(e.selectedOwners):void 0,lifecycles:e.selectedLifecycles.length?new b(e.selectedLifecycles):void 0,tag:e.selectedTags.length?new O(e.selectedTags):void 0}),D=({filter:e,additionalColumns:l=[],title:m,hideTags:i=!1})=>{const{updateFilters:o,entities:c,pageInfo:a,totalItems:p,loading:d}=E(),g=x(),y=R();F(()=>{const s=A(e);o(s)},[e,o]);const u=C(()=>i?[...r.slice(0,-1),...l]:[...r,...l],[l,i]),T=m||`All (${p||0})`;return t.createElement(t.Fragment,null,t.createElement("div",{className:y.entityTable},t.createElement(f,{title:T,columns:u,data:c,options:{padding:"dense",paging:!!a?.next||!!a?.prev,toolbar:!0,draggable:!1,tableLayout:"fixed",search:!1,showTitle:!0,rowStyle:{fontSize:g.typography.body1.fontSize},showFirstLastPageButtons:!1,emptyRowsWhenPaging:!1,pageSizeOptions:[],loadingType:"linear",showEmptyDataSourceMessage:!d,pageSize:10},onPageChange:s=>{s>0?a?.next?.():a?.prev?.()},components:{Toolbar:z},page:a?.prev?1:0,totalCount:a?.next?Number.MAX_VALUE:Number.MIN_SAFE_INTEGER,localization:{pagination:{labelDisplayedRows:""}}})))};export{D as FilterPreviewTable};
|
|
2
2
|
//# sourceMappingURL=FilterPreviewTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{asArray as
|
|
1
|
+
import{asArray as n}from"@spotify/backstage-plugin-soundcheck-common";import{emptyFilters as o}from"./types.esm.js";const c={selectedKinds:"kind",selectedTypes:"spec.type",selectedLifecycles:"spec.lifecycle",selectedOwners:"spec.owner",selectedSystems:"spec.system",selectedTags:"metadata.tags"},a=t=>!t||Object.values(t).every(e=>e.length===0)?void 0:{catalog:Object.entries(t).reduce((e,[s,r])=>{const l=c[s];return r.length>0&&(e[l]=r),e},{})},i=t=>Object.keys(c).reduce((e,s)=>(e[s]=n(t?.catalog?.[c[s]]??[]),e),{}),p=t=>{if(!t||Object.values(t).every(s=>s.length===0))return;const e={};for(const[s,r]of Object.entries(t))r?.length>0&&(e[c[s]]=r);return[e]},d=t=>{const e=t?n(t):[];if(e.length){const s=e[0];return Object.keys(c).reduce((r,l)=>(r[l]=n(s?.[c[l]]??[]),r),{})}return o()};export{d as mapCatalogFilterToFilters,p as mapFiltersToCatalogFilter,a as mapFiltersToInputFilter,i as mapInputFilterToFormFilters};
|
|
2
2
|
//# sourceMappingURL=utils.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Box as
|
|
1
|
+
import{Box as s,Paper as g,Grid as o,Button as r}from"@material-ui/core";import{makeStyles as p}from"@material-ui/core/styles";import e from"react";const d=p(t=>({box:{zIndex:9,bottom:"0"},footer:{padding:t.spacing(1,2)},noMargin:{margin:0},cancelButton:{color:t.palette.text.primary},saveButton:{marginRight:t.spacing(2),marginLeft:t.spacing(3)},noLeftMargin:{marginLeft:0}})),f=({onCancel:t,saveButtonText:i,isLoading:c,onSave:n,disableSave:m,noMargin:l})=>{const a=d();return e.createElement(s,{className:a.box},e.createElement(g,{elevation:3,className:a.footer},e.createElement(o,{container:!0,item:!0,spacing:2,justifyContent:"flex-start",className:a.noMargin},e.createElement(o,{item:!0},n&&e.createElement(r,{variant:"contained",color:"primary",disabled:c||m,onClick:n?()=>n():void 0,className:`${a.saveButton} ${l?a.noLeftMargin:""}`},i)),e.createElement(o,{item:!0},e.createElement(r,{variant:"text",color:"primary",onClick:t,className:a.cancelButton},"Cancel")))))};export{f as FooterButtons};
|
|
2
2
|
//# sourceMappingURL=FooterButtons.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{TextField as g}from"@material-ui/core";import{Autocomplete as b}from"@material-ui/lab";import n,{useState as h}from"react";import{ListboxVirtualized as x}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const C=({options:l,onChange:i,value:e,placeholder:r,getOptionLabel:a,disabled:p,fullWidth:d,noOptionsText:u,freeSolo:m=!1,isLoading:s=!1})=>{const[c,f]=h(e??"");return n.createElement(b,{options:l,inputValue:c,onInputChange:(t,o)=>f(o),onChange:(t,o)=>i(o),value:e===""?null:e,getOptionLabel:a,ListboxComponent:x,disabled:p,fullWidth:d,noOptionsText:u,freeSolo:m,loading:s,autoSelect:!0,renderInput:t=>n.createElement(g,{...t,placeholder:r,variant:"outlined",margin:"dense"})})};export{C as ControlledAutocomplete};
|
|
2
|
+
//# sourceMappingURL=ControlledAutocomplete.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as I,TextField as L}from"@material-ui/core";import{Autocomplete as y}from"@material-ui/lab";import d from"react";import{Controller as E}from"react-hook-form";import{ListboxVirtualized as F}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const p=I(t=>({clearIndicator:{marginRight:t.spacing(1)},helperText:{marginLeft:0},noMargin:{margin:0}})),O=({name:t,rules:u,label:h,control:g,options:b,getOptionLabel:f,getOptionValue:l,onChange:m,disabled:x,placeholder:C,freeSolo:v=!0,width:s,helperText:S,disableClearable:T,fullWidth:c})=>{const a=p();return d.createElement(E,{name:t,control:g,rules:u,render:({field:o,fieldState:n})=>d.createElement(y,{...o,value:o.value===""?null:o.value,freeSolo:v,autoSelect:!0,"data-testid":`${t}-autocomplete`,style:s?{width:s}:{minWidth:c?void 0:250},disabled:x,options:b,getOptionLabel:f,classes:{clearIndicator:a.clearIndicator},disableClearable:T,fullWidth:c,renderInput:i=>d.createElement(L,{...i,variant:"outlined",label:h,error:n.invalid,placeholder:C,FormHelperTextProps:{className:a.helperText},margin:"dense",className:a.noMargin,helperText:S??(n.error?n.error.message:null)}),onChange:(i,e)=>{const r=l?l(e):e;m?.(r),o.onChange(r)},onInputChange:(i,e)=>{const r=l?l(e):e;m?.(r)},ListboxComponent:F})})};export{O as FormControlledAutocomplete,p as useStyles};
|
|
2
|
+
//# sourceMappingURL=FormControlledAutocomplete.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useMemo as t,useCallback as n}from"react";const c=l=>{const u=t(()=>l.reduce((e,o)=>(e[o.label]=o.value,e),{}),[l]),a=t(()=>l.reduce((e,o)=>(e[o.value]=o.label,e),{}),[l]),s=t(()=>l.map(e=>e.value),[l]),p=n(e=>a[e]??e,[a]),b=n(e=>e?u[e]??e:"",[u]);return{getOptionLabel:p,getOptionValue:b,options:s}};export{c as useLabelOptions};
|
|
2
|
+
//# sourceMappingURL=useLabelOptions.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as l,Typography as m,Link as a}from"@material-ui/core";import i from"@material-ui/icons/InfoOutlined";import e from"react";const o=l(()=>({centerAlignment:{display:"flex",alignItems:"center"}})),c=({title:n,docLink:t})=>{const r=o();return e.createElement(m,{variant:"subtitle2",className:r.centerAlignment},n,t&&e.createElement(a,{className:r.centerAlignment,target:"_blank",rel:"noopener noreferrer",href:t},e.createElement(i,{style:{marginLeft:4},fontSize:"inherit"})))};export{c as FormFieldLabel};
|
|
2
|
+
//# sourceMappingURL=FormFieldLabel.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as B,Grid as c,Card as C,Stepper as N,Step as h,StepLabel as T,StepContent as F,Box as L,Button as i}from"@material-ui/core";import e from"react";import{useStepper as w}from"../../hooks/useStepper.esm.js";import{formStyles as R}from"../../utils/formStyles.esm.js";import{FooterButtons as A}from"../FooterButtons/FooterButtons.esm.js";const P=B(a=>({iconRoot:{color:a.palette.action.disabledBackground},iconText:{fill:a.palette.text.secondary},iconActive:{"& text":{fill:a.palette.primary.contrastText}}})),V=({onClose:a,handleSubmit:s,trigger:m,onSubmit:p,initialVisited:d,stepNameMap:S,steps:r,isLoading:u,isReadOnly:x,saveButtonText:v})=>{const t=R(),n=P(),{activeStep:E,handleNext:b,handleBack:k,isPreviousStep:y,isVisitedStep:f,onStepClick:g}=w(d,S);return e.createElement(e.Fragment,null,e.createElement(c,{container:!0,spacing:2,className:t.root},e.createElement(c,{item:!0,style:{width:"100%"}},e.createElement(C,{className:t.card},e.createElement(N,{className:t.stepper,activeStep:E,orientation:"vertical"},r.map((l,o)=>e.createElement(h,{key:l.label},e.createElement(T,{className:y(o)||f(o)?t.stepLabel:void 0,onClick:()=>g(o),StepIconProps:{classes:{root:n.iconRoot,text:n.iconText,active:n.iconActive}}},l.label),e.createElement(F,null,l.content(),e.createElement(L,{className:t.buttonChoices,sx:{mb:2}},e.createElement("div",null,o!==0&&e.createElement(i,{className:t.backButton,onClick:k},"Back"),o!==r.length-1&&e.createElement(i,{variant:"contained",color:"primary",onClick:async()=>{await b(m)}},"Next"))))))))),e.createElement(c,{item:!0,xs:12},e.createElement(A,{onCancel:a,saveButtonText:v,isLoading:u,onSave:x?void 0:s(p)}))))};export{V as FormStepper};
|
|
2
2
|
//# sourceMappingURL=FormStepper.esm.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{MarkdownContent as r}from"@backstage/core-components";import{makeStyles as p}from"@material-ui/core";import{dump as m}from"js-yaml";import n,{useMemo as i}from"react";const d=p(e=>({markdownBox:{padding:0,margin:0,fontSize:e.typography.body2.fontSize,"& pre":{margin:0,background:`${e.palette.background.paper} !important`}},preBox:{padding:e.spacing(1),fontSize:e.typography.body2.fontSize,margin:0,background:e.palette.background.paper}})),g=({data:e,dataType:o="json"})=>{const a=d(),t=i(()=>o==="json"?JSON.stringify(e,null,2):o==="yaml"?m(e,{noRefs:!0}):"",[e,o]);return t?.length&&t.length>15e4?n.createElement("pre",{className:a.preBox},t):n.createElement(r,{className:a.markdownBox,content:`\`\`\`${o}
|
|
2
|
+
${t}
|
|
3
|
+
\`\`\``})};export{g as FormattedPreview};
|
|
4
|
+
//# sourceMappingURL=FormattedPreview.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as x,Grid as
|
|
1
|
+
import{makeStyles as x,Grid as r,RadioGroup as _,Radio as u,Typography as s,TextField as g,FormControl as $,InputLabel as k,Select as D,MenuItem as M,Divider as U}from"@material-ui/core";import e,{useState as E,useEffect as S}from"react";import{getCronDescription as q}from"../../utils/cron.esm.js";import{MIN_TIME_UNIT_VALUE as F,MAX_TIME_UNIT_VALUE as R}from"../../utils/time.esm.js";import{TimeUnit as w}from"./types.esm.js";import{VALID_TIME_UNITS as A,toTimeUnit as H}from"./util.esm.js";const B=x(t=>({divider:{marginTop:t.spacing(3),marginBottom:t.spacing(3)},title:{cursor:"pointer"},humanDurationContainer:{alignItems:"flex-start",marginTop:3},cronInput:{width:250,marginTop:3},noPaddingLeft:{paddingLeft:0},noPadding:{padding:0},fullWidth:{width:"100%"},radioOptions:{width:"80%",paddingLeft:t.spacing(1)},selectField:{paddingRight:t.spacing(2)},inputLabel:{color:`${t.palette.text.primary} !important`},menuBackground:{backgroundColor:t.palette.background.paper}})),v=32,f=12,y=t=>t?(Math.ceil(t.length/v)-1)*f:0,O=({value:t,onChange:d,disabled:o,errors:c})=>{const a=B(),[n,l]=E(t),[N,h]=E(`${t.value}`);S(()=>{d&&d(n)},[n,d]);const b=i=>{l({...t,type:i.target.value})},I=i=>{h(i.target.value);const m=parseInt(i.target.value,10);l({...t,value:isNaN(m)?0:m})},L=i=>{l({...n,unit:H(i.target.value)??w.Hours})},P=i=>{const m=i.target.value;l({...n,cron:m})},T=()=>{l({...n,type:"cron"})},C=()=>{l({...n,type:"HumanDuration"})},p=c?.message??q(n.cron);return e.createElement(r,{container:!0,direction:"row"},e.createElement(r,{item:!0,className:`${a.noPadding} ${a.fullWidth}`},e.createElement(_,{name:"frequencyType",value:n.type,onChange:b},e.createElement(r,{container:!0,alignItems:"flex-start",className:a.fullWidth},e.createElement(r,{item:!0,className:a.noPaddingLeft},e.createElement(u,{disabled:o,value:"HumanDuration"})),e.createElement(r,{item:!0,className:`${a.noPadding} ${a.radioOptions}`},e.createElement(s,{variant:"body1",className:a.title,onClick:C},"Run on a regular interval"),e.createElement(s,{variant:"caption"},"Set consistent time intervals."),n.type==="HumanDuration"&&e.createElement(r,{container:!0,className:a.humanDurationContainer,spacing:2},e.createElement(r,{item:!0,className:a.noPadding},e.createElement(g,{id:"every",type:"number",inputProps:{min:F,max:R},label:"Every",name:"every",disabled:o,value:N,error:!!c?.message,helperText:c?.message,onChange:I,InputLabelProps:{className:a.inputLabel}})),e.createElement(r,{item:!0,className:a.noPadding},e.createElement($,null,e.createElement(k,{className:a.inputLabel,id:"frequency-unit"},"Unit"),e.createElement(D,{labelId:"frequency-unit",disabled:o,value:n.unit,onChange:L,"data-testid":"frequency-unit",className:a.selectField,MenuProps:{classes:{paper:a.menuBackground}}},A.map(i=>e.createElement(M,{key:i,value:i},i)))))))),e.createElement(U,{className:a.divider}),e.createElement(r,{container:!0,alignItems:"flex-start"},e.createElement(r,{item:!0,className:a.noPaddingLeft},e.createElement(u,{disabled:o,value:"cron"})),e.createElement(r,{item:!0,className:`${a.noPadding} ${a.radioOptions}`},e.createElement(s,{variant:"body1",className:a.title,onClick:T},"Run on a schedule"),e.createElement(s,{variant:"caption"},"Set a specific schedule using a cron expression."),n.type==="cron"&&e.createElement(r,{item:!0,className:a.noPadding},e.createElement(g,{id:"cron-expression","data-testid":"cron-expression",className:a.cronInput,label:p,disabled:o,placeholder:"* * * * *",error:!!c?.message,value:n.cron,onChange:P,InputProps:{style:{paddingTop:`${y(p)}px`}}})))))))};export{O as FrequencyComponent,y as calculateCronLabelPadding,v as characterLimitPerLine,f as paddingPerExtraLine};
|
|
2
2
|
//# sourceMappingURL=FrequencyComponent.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useApi as
|
|
1
|
+
import{useApi as E,configApiRef as v}from"@backstage/core-plugin-api";import{makeStyles as O,alpha as k,TextField as w,CircularProgress as y}from"@material-ui/core";import P from"@material-ui/lab/Autocomplete";import s,{useMemo as x,useCallback as I,useEffect as f}from"react";import{useSearchParams as A}from"react-router-dom";import F from"react-use/lib/useLocalStorage";import{useOptions as G}from"./useOptions.esm.js";const L=O(r=>({root:{width:"100%",minWidth:250},textField:{"& $notchedOutline":{borderColor:k(r.page.fontColor,.25)},"&:hover $notchedOutline":{borderColor:r.page.fontColor}},input:{backgroundColor:"transparent",color:r.page.fontColor},clearIndicator:{color:r.page.fontColor},popupIndicator:{color:r.page.fontColor},notchedOutline:{}}),{name:"SoundcheckGroupSelector"}),N=({setError:r,margin:S,baseClass:a})=>{const{options:o,isLoading:i,isError:d}=G(),t=L(),[p,h]=A(),[n,C]=F("soundcheck.overview.groupRef",null),u=p.get("group"),m=E(v).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),g=x(()=>{if(!i&&o.length){if(u||n){const e=u??n;return o.find(c=>c.ref===e)??o[0]}else if(m)return o.find(e=>e.type===m)??o[0];return o[0]}return null},[m,i,o,u,n]),l=I((e,c)=>{e&&p.get("group")!==e&&(p.set("group",e),h(p,{replace:c}),C(e))},[p,C,h]),b=I((e,c)=>{l?.(c?.ref)},[l]);return f(()=>{n&&!u&&l(n,!0)},[n,u,l]),f(()=>{l(g?.ref,!0)},[l,g]),f(()=>{r?.(d?new Error("Error loading groups"):void 0)},[d,r]),d?null:s.createElement(P,{"aria-label":"Current group",className:a?"":t.root,classes:{clearIndicator:a?"":t.clearIndicator,popupIndicator:a?"":t.popupIndicator},disableClearable:!0,options:o??[],loading:i,groupBy:e=>e.key,value:g,freeSolo:!1,onChange:b,getOptionLabel:e=>e.name,renderInput:e=>s.createElement(w,{...e,variant:"outlined",placeholder:i?"Loading":"Select a group",className:t.textField,margin:S,InputProps:{...e.InputProps,className:a?"":t.input,classes:{notchedOutline:a?"":t.notchedOutline},endAdornment:s.createElement(s.Fragment,null,i?s.createElement(y,{color:"inherit",size:20}):null,e.InputProps.endAdornment)}})})};export{N as GroupSelector};
|
|
2
2
|
//# sourceMappingURL=GroupSelector.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{LinearGauge as E}from"@backstage/core-components";import{useTheme as C,Paper as N,Grid as c,Typography as p,Box as S}from"@material-ui/core";import{makeStyles as b}from"@material-ui/core/styles";import t from"react";import{LevelBadge as L}from"../Badges/LevelBadge.esm.js";import"../Badges/NoLevelBadge.esm.js";import"../Badges/CampaignBadge.esm.js";import{generateBadge as
|
|
1
|
+
import{LinearGauge as E}from"@backstage/core-components";import{useTheme as C,Paper as N,Grid as c,Typography as p,Box as S}from"@material-ui/core";import{makeStyles as b}from"@material-ui/core/styles";import t from"react";import{LevelBadge as L}from"../Badges/LevelBadge.esm.js";import"../Badges/NoLevelBadge.esm.js";import"../Badges/CampaignBadge.esm.js";import{generateBadge as x}from"../Badges/badge.esm.js";import{getChartColors as w}from"../Charts/chartUtils.esm.js";import{CheckCard as B}from"../CheckCard/CheckCard.esm.js";import{LevelTooltip as I}from"./LevelTooltip.esm.js";const u=(e,a)=>{if(!e?.certificationStatus?.numberOfEntities||a===void 0)return;const o=e.certificationStatus.statusByLevel.findIndex(s=>s.ordinal===a);if(o===-1)return;const r=e.certificationStatus.numberOfEntities,n=[];for(const s of e.certificationStatus.statusByLevel){const l=s.cumulativelyPassed;n.push(r?Math.round(l/r*100):100)}return n[o]},f=(e,a)=>{if(!e?.certificationStatus?.numberOfEntities||a===void 0)return;const o=e.certificationStatus.statusByLevel.findIndex(n=>n.ordinal===a);if(o===-1)return 0;const r=[];for(const n of e.certificationStatus.statusByLevel){const s=n.cumulativelyPassed;r.push(s)}for(let n=r.length-2;n>=0;n--)r[n]=Math.min(r[n]+r[n+1],100);return r[o]},k=b(e=>({card:{border:`1px solid ${e.palette.divider}`},title:{fontWeight:"bold",fontSize:"1.1rem",cursor:"default"},header:{borderBottom:`1px solid ${e.palette.divider}`,width:"100%",padding:e.spacing(1,2),margin:0},levelNameContainer:{gridGap:e.spacing(1),width:"fit-content",padding:0},passRate:{fontWeight:"bold",fontSize:e.typography.overline.fontSize,cursor:"default"},gaugeContainer:{width:200,paddingLeft:e.spacing(.75),paddingRight:e.spacing(.75),paddingTop:2},content:{padding:e.spacing(2.5,2),display:"flex",gap:e.spacing(2)},description:{padding:0},gridItem:{padding:0}})),P=({track:e,level:a,index:o,data:r,lifecycles:n,owners:s,types:l,systems:g})=>{const i=k(),v=w(C()),m=u(r,a.ordinal),y=f(r,a.ordinal),h=m!==void 0?`${m}%`:"";return t.createElement(N,{elevation:1,className:i.card},t.createElement(c,{container:!0,alignItems:"center",justifyContent:"space-between",direction:"row",className:i.header},t.createElement(c,{item:!0,container:!0,alignItems:"center",direction:"row",className:i.levelNameContainer},t.createElement(L,{badge:a.badge??x(a.ordinal,e)}),t.createElement(I,{level:a,numerator:y??0,denominator:r?.certificationStatus?.numberOfEntities??0},t.createElement(p,{className:i.title},a.name??`Level ${a.ordinal}`))),t.createElement(c,{item:!0,className:i.gridItem},t.createElement(c,{container:!0,item:!0,className:i.gridItem},t.createElement(p,{variant:"overline",className:i.passRate},h),t.createElement("div",{className:i.gaugeContainer},t.createElement(E,{value:(m??0)/100,getColor:d=>v[o]}))))),t.createElement(S,{className:i.content},t.createElement(c,{container:!0,spacing:1},a.checks.map(d=>t.createElement(c,{item:!0,xs:12,sm:6,md:4,className:i.gridItem,key:d.id},t.createElement(B,{track:e,check:d,lifecycles:n,owners:s,types:l,systems:g}))))))};export{P as LevelCard,u as calculateCumulativePassRate,f as calculateCumulativePassRateNumerator};
|
|
2
2
|
//# sourceMappingURL=LevelCard.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import x from"@material-ui/core/ListSubheader";import{useTheme as v}from"@material-ui/core/styles";import C from"@material-ui/core/useMediaQuery";import e from"react";import{VariableSizeList as b}from"react-window";const c=8,z=r=>{const{data:t,index:i,style:l}=r;return e.cloneElement(t[i],{style:{...l,top:l.top+c,lineHeight:"1em"}})},p=e.createContext({}),w=e.forwardRef((r,t)=>{const i=e.useContext(p);return e.createElement("div",{ref:t,...r,...i})}),R=r=>{const t=e.useRef(null);return e.useEffect(()=>{t.current!==null&&t.current.resetAfterIndex(0,!0)},[r]),t},S=e.forwardRef((r,t)=>{const{children:i,height:l,itemHeight:f,...d}=r,m=e.Children.toArray(i),h=v(),E=C(h.breakpoints.up("sm"),{noSsr:!0}),s=m.length,u=E?42:48,a=n=>{if(f)return f;if(e.isValidElement(n)){if(n.type===x)return 48;const o=n.props.children;if(o&&typeof o=="string")return o.length>40?54:u}return u},g=()=>s>8?8*u:m.map(a).reduce((n,o)=>n+o,0),y=R(s);return e.createElement("div",{ref:t},e.createElement(p.Provider,{value:d},e.createElement(b,{itemData:m,height:l??g()+2*c,width:"100%",ref:y,outerElementType:w,innerElementType:"ul",itemSize:n=>a(m[n]),overscanCount:5,itemCount:s},z)))});export{S as ListboxVirtualized};
|
|
2
|
+
//# sourceMappingURL=ListboxVirtualized.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{withStyles as
|
|
1
|
+
import{withStyles as y,Button as v,makeStyles as k,Popover as w,TextField as C,Checkbox as O}from"@material-ui/core";import P from"@material-ui/icons/ArrowDropDown";import{Autocomplete as S}from"@material-ui/lab";import t,{useState as F}from"react";import{ListboxVirtualized as L}from"../ListboxVirtualized/ListboxVirtualized.esm.js";const p=y(e=>({root:{color:e.palette.text.primary,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),textTransform:"initial",fontSize:e.typography.body1.fontSize}}))(v),z=k(e=>({root:{borderBottom:`1px solid ${e.palette.grey.A100}`,padding:e.spacing(1.5),backgroundColor:e.palette.background.paper},popper:{width:300,height:400,overflow:"hidden"},paper:{boxShadow:"none",margin:0},popperDisablePortal:{width:"100% !important"},listbox:{border:"none",height:400},option:{padding:`${e.spacing(.5)}px !important`,'&[data-selected="true"]':{background:"inherit"}},chips:{display:"flex",flexWrap:"wrap"},chip:{margin:1}})),I=({name:e,options:s,label:n,icon:c,filters:d,setFilters:m,disabled:u,customRenderOption:g})=>{const r=z(),[a,i]=F(null),h=o=>{i(o.currentTarget)},b=()=>{i(null)},f=(o,l)=>{m(l)},x=o=>t.createElement(C,{...o,name:"filter",variant:"outlined",placeholder:"Filter",fullWidth:!0}),E=(o,{selected:l})=>t.createElement(t.Fragment,null,t.createElement(O,{value:o,checked:l,color:"primary"}),o);return t.createElement(t.Fragment,null,t.createElement(p,{startIcon:c,endIcon:t.createElement(P,null),onClick:h,disabled:u},n),t.createElement(w,{id:`${n}-filter-popover`,open:!!a,anchorEl:a,onClose:b,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{elevation:4,className:r.popper}},t.createElement(S,{multiple:!0,disablePortal:!0,classes:{root:r.root,paper:r.paper,popperDisablePortal:r.popperDisablePortal,listbox:r.listbox,option:r.option},ListboxComponent:L,renderOption:g??E,id:`multi-select-filter-${e}--select`,value:d,options:s,limitTags:3,onChange:f,getOptionSelected:(o,l)=>o.toLowerCase()===l.toLowerCase(),renderInput:x,renderTags:()=>null,closeIcon:null,popupIcon:null,handleHomeEndKeys:!0,clearOnEscape:!0,open:!0})))};export{p as QuickFilterButton,I as default};
|
|
2
2
|
//# sourceMappingURL=MultiSelectFilter.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useRouteRef as c}from"@backstage/core-plugin-api";import{makeStyles as s,Grid as l,Accordion as g,AccordionSummary as d,Typography as f,AccordionDetails as E}from"@material-ui/core";import u from"@material-ui/icons/ExpandMore";import e from"react";import{Link as y}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetCampaigns as h}from"../../../hooks/campaigns/useGetCampaigns.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{campaignsPageRouteRef as x}from"../../../routes.esm.js";import{OVERVIEW_CAMPAIGNS_COUNT as m}from"../OverviewPageContent.esm.js";import{CampaignBanner as C}from"./CampaignBanner.esm.js";const A=s(a=>({campaignsGrid:{margin:`0 0 ${a.spacing(3)}px`,border:`1px solid ${a.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:a.spacing(2),gap:a.spacing(2)},campaignsLink:{textAlign:"center",margin:`${a.spacing(1)}rem 0 ${a.spacing(1)}`}})),R=({ownerEntityRef:a})=>{const i=A(),n=c(x),{data:o}=h({orderAlphabetical:"default",searchByOwner:a,searchByStatus:"active"},!!a),t=o?.edges.map(r=>r.node),p=t?.slice(0,m);return e.createElement(e.Fragment,null,t&&t.length>0&&e.createElement(l,{item:!0,xs:12,className:i.campaignsGrid},e.createElement(g,{style:{boxShadow:"none"}},e.createElement(d,{expandIcon:e.createElement(u,null)},e.createElement(f,{variant:"h6"},"Campaigns")),e.createElement(E,null,e.createElement("div",{className:i.campaignsCard},p?.map(r=>e.createElement("div",{key:r.id},e.createElement(C,{campaign:r})))),t.length>m&&e.createElement(y,{to:n(),className:i.campaignsLink},"More Campaigns")))))};export{R as CampaignArea};
|
|
2
|
+
//# sourceMappingURL=CampaignArea.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as u}from"@backstage/core-plugin-api";import{EntityRefLink as L}from"@backstage/plugin-catalog-react";import{Typography as t,Button as M,Menu as B,MenuItem as E}from"@material-ui/core";import O from"@material-ui/icons/ArrowDropDown";import z from"@material-ui/icons/ArrowDropUp";import e,{useState as
|
|
1
|
+
import{useRouteRef as u}from"@backstage/core-plugin-api";import{EntityRefLink as L}from"@backstage/plugin-catalog-react";import{Typography as t,Button as M,Menu as B,MenuItem as E}from"@material-ui/core";import O from"@material-ui/icons/ArrowDropDown";import z from"@material-ui/icons/ArrowDropUp";import e,{useState as $}from"react";import{useNavigate as j}from"react-router-dom";import{useEntityPassRateTrend as q}from"../../../hooks/aggregations/useEntityPassRateTrend.esm.js";import{campaignDetailsRouteRef as A,campaignEditRouteRef as F}from"../../../routes.esm.js";import{convertToReadableDate as p}from"../../CampaignDetailsPage/CampaignDetails.esm.js";import{Loading as Q}from"../../TechHealth/Loading/Loading.esm.js";import{useCampaignBannerStyles as V}from"./useCampaignBannerStyles.esm.js";import{calculateOverallPassPercent as W,calculatePassingEntities as G}from"./utils.esm.js";const H=l=>{if(l?.edges.length){const a=G(l);return e.createElement(t,{variant:"body2"},a,"/",l.edges.length)}return e.createElement(t,{variant:"body2"},"No progress found.")},J=({campaign:l})=>{const a=V(),v=u(A),f=u(F),m=j(),[n,c]=$(null),o=150,g=l.track.levels.flatMap(({checks:s})=>s.map(({id:T})=>T)),{data:N,isLoading:b,isError:y}=q({filter:{tracks:[{trackId:l.track.id}],checkIds:{included:g},numberOfDays:void 0}}),i=N?.individualEntityPassRates??{totalCount:0,edges:[],pageInfo:{hasNextPage:!1,hasPreviousPage:!1}},C=s=>{c(s.currentTarget)},R=()=>{c(null)},h=()=>{m(f({campaignId:l.id}))},x=()=>{m(v({campaignId:l.id}))};if(b)return e.createElement("div",{"data-testid":"loading-indicator"},e.createElement(Q,null));if(y)return e.createElement(t,{color:"error"},"Failed to load campaigns progress.");const k=i.edges.length?W(i):0,w=H(i),{name:P,description:r,ownerEntityRef:D,targetCompletionDate:I,startDate:S,supportChannel:d}=l;return e.createElement("div",{className:a.campaignCards},e.createElement("div",{className:a.campaignCard},e.createElement("div",{className:a.flexRow,style:{justifyContent:"space-between"}},e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"h5"},P),e.createElement(t,{variant:"body1",className:a.description},r.length>o?`${r.substring(0,o)}...`:r)),e.createElement("div",null,e.createElement(M,{variant:"text","aria-controls":"menu","aria-haspopup":"true",onClick:C},e.createElement("div",{className:a.actions},e.createElement("div",{className:a.actionsText},"Actions"),e.createElement("div",{className:a.flexRow},n?e.createElement(z,{fontSize:"small"}):e.createElement(O,{fontSize:"small"})))),e.createElement(B,{id:"campaign-menu",anchorEl:n,keepMounted:!0,open:!!n,onClose:R,classes:{list:a.menuList}},e.createElement(E,{onClick:x},"View"),e.createElement(E,{onClick:h},"Edit")))),e.createElement("div",{className:a.detailSection},e.createElement("div",{className:a.flexColumn},e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Owner:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},e.createElement(L,{className:a.ownerLink,entityRef:D}))),d&&e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Support Channel:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},d))),e.createElement("div",{className:a.flexColumn},e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Start Date:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},p(S))),e.createElement("div",{className:a.flexRow},e.createElement(t,{variant:"subtitle1",className:a.label},"Target Completion Date:"),e.createElement(t,{variant:"body1",display:"inline",className:a.value},p(I)))),e.createElement("div",{className:a.flexRow,style:{minWidth:"300px"}},e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"subtitle1",className:a.label},"Checks Passing"),e.createElement(t,{variant:"body2"},k,"%")),e.createElement("div",{className:a.flexColumn},e.createElement(t,{variant:"subtitle1",className:a.label},"Entities Complete"),w)))))};export{J as CampaignBanner};
|
|
2
2
|
//# sourceMappingURL=CampaignBanner.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Page as
|
|
1
|
+
import{Page as o,Header as i}from"@backstage/core-components";import{makeStyles as m}from"@material-ui/core";import{SpotifyLicenseBanner as a}from"@spotify/backstage-plugin-core";import e from"react";import{UserProvider as c}from"../../contexts/UserProvider.esm.js";import l from"../../hooks/useConfirmationModal.esm.js";import{soundcheckBackend as s,invalidLicenseMessage as d}from"../../utils/license.esm.js";import{SoundcheckQueryClientProvider as p}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContent as v}from"./OverviewPageContent.esm.js";const f=m(r=>({overviewContainer:{padding:r.spacing(1,3)}})),u=r=>{const{title:t="Soundcheck"}=r,n=f();return e.createElement(p,null,e.createElement(c,null,e.createElement(l,null,e.createElement(o,{themeId:"website"},e.createElement(a,{backend:s,invalidLicenseMessage:d}),e.createElement(i,{title:t}),e.createElement("div",{className:n.overviewContainer},e.createElement(v,null))))))};export{u as OverviewPage};
|
|
2
2
|
//# sourceMappingURL=OverviewPage.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{makeStyles as L,Grid as l}from"@material-ui/core";import t,{createContext as N,useState as i,useEffect as A,useCallback as D}from"react";import{useSearchParams as R}from"react-router-dom";import H from"react-use/lib/useDebounce";import{useFacetsForOwner as I}from"../../hooks/facets/useFacetsForOwner.esm.js";import{LoadingIndicator as $}from"../LoadingIndicator/LoadingIndicator.esm.js";import{OverviewTable as M}from"../OverviewTable/OverviewTable.esm.js";import{RowHeights as T}from"../OverviewTable/resultsTableUtils.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as _}from"../SoundcheckHeader/useHeader.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-catalog-react";import"@material-ui/icons/ArrowDropDown";import"@material-ui/icons/ArrowDropUp";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../routes.esm.js";import"../CampaignDetailsPage/CampaignDetails.esm.js";import"../TechHealth/Loading/Loading.esm.js";import"./CampaignBanner/useCampaignBannerStyles.esm.js";import{CampaignArea as j}from"./CampaignBanner/CampaignArea.esm.js";import{OverviewPageHeader as z}from"./OverviewPageHeader.esm.js";const B=L(e=>({tableContainer:{padding:0,backgroundColor:"transparent",paddingBottom:T.paginationControl},campaignsGrid:{margin:`0 0 ${e.spacing(3)}px`,border:`1px solid ${e.palette.divider}`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:e.spacing(2),gap:e.spacing(2)},campaignsLink:{textAlign:"center",margin:`${e.spacing(1)}rem 0 ${e.spacing(1)}`},tableLoading:{backgroundColor:e.palette.background.paper,padding:e.spacing(6)},noPadding:{padding:0},accordion:{boxShadow:"none"}})),b=N({searchValue:"",updateSearchValue:e=>{},debouncedSearchValue:"",updateDebouncedSearchValue:e=>{},pivot:!1,updatePivot:e=>{}}),U=3,W=({isFixedGroup:e=!1,campaignsEnabled:k})=>{const[a,g]=R(),{group:n,kind:p,type:d}=Object.fromEntries(a.entries());_();const[r,u]=i(void 0),[h,x]=i(void 0),[y,C]=i(),[m,S]=i(""),[w,f]=i(""),[P,V]=i(!1);H(()=>{f(m)},800,[m]),A(()=>{(r?.kind!==p||r?.type!==d)&&u({kind:p,type:d})},[p,d,r]);const{data:E,isLoading:v}=I(n),O=h||y,F=D((o,s,G)=>{o&&(u({kind:o,type:s}),s?(a.set("kind",o),a.set("type",s)):(a.delete("type"),a.set("kind",o)),g(a,{replace:G}))},[a,g]),c=B();return t.createElement(b.Provider,{value:{searchValue:m,updateSearchValue:S,debouncedSearchValue:w,updateDebouncedSearchValue:f,pivot:P,updatePivot:V}},t.createElement(l,{container:!0,spacing:0},k&&t.createElement(j,{ownerEntityRef:n}),t.createElement(l,{item:!0,xs:12,className:c.noPadding},t.createElement(z,{unfilteredFacets:E,kind:r?.kind,type:r?.type,onChange:F,setError:C,isLoading:v,isFixedGroup:e})),t.createElement(l,{item:!0,xs:12,className:c.tableContainer},v?t.createElement("div",{className:c.tableLoading},t.createElement($,{size:80})):t.createElement(M,{facets:E,kind:r?.kind,type:r?.type,setError:x,hasError:O,ownerEntityRef:n,isFixedGroup:e}))))};export{U as OVERVIEW_CAMPAIGNS_COUNT,W as OverviewPageContent,b as OverviewPageContext};
|
|
2
2
|
//# sourceMappingURL=OverviewPageContent.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{makeStyles as S,Typography as s,TextField as y,CircularProgress as T,Switch as w}from"@material-ui/core";import i from"@material-ui/core/Box";import I from"@material-ui/icons/Search";import{Autocomplete as L}from"@material-ui/lab";import t,{useContext as F,useEffect as W}from"react";import{GroupSelector as $}from"../GroupSelector/GroupSelector.esm.js";import{OverviewPageContext as A}from"./OverviewPageContent.esm.js";const B=S(r=>({wrapper:{background:r.palette.background.default,paddingTop:r.spacing(0),paddingBottom:r.spacing(2),paddingRight:r.spacing(3),display:"flex",gap:r.spacing(3)},switchLabel:{marginLeft:r.spacing(1.5)}})),G=({setError:r,unfilteredFacets:f,kind:l,type:o,onChange:m,isLoading:h,isFixedGroup:E})=>{const v=B(),a={types:f?.types.filter(({count:e})=>e>0)??[]},{searchValue:b,updateSearchValue:x,pivot:d,updatePivot:k}=F(A);W(()=>{const e=a?.types&&a.types.length>=0,n=!l&&e,p=l&&e&&!a?.types.find(({kind:c,type:g})=>l===c&&(!o&&!g||o===g));(n||p)&&m(a?.types[0]?.kind??"",a?.types[0]?.type,!0)},[l,o,a?.types,m]);const u=a?.types.map(({kind:e,type:n,count:p})=>{const c=`${e}|${n??""}`;return{facetKind:e,facetType:n,key:c,label:`${n??e} (${p>50?"50+":p})`,id:c}}).sort((e,n)=>e.key.localeCompare(n.key))??[],P=u.find(e=>e.key===`${l}|${o??""}`)??null,C=a&&(a.types?.length??0)>0;return t.createElement(i,{className:v.wrapper},!E&&t.createElement(i,{flex:1,maxWidth:364},t.createElement(s,{variant:"subtitle2",component:"div"},"Group"),t.createElement($,{baseClass:!0,margin:"dense",setError:r})),C&&t.createElement(t.Fragment,null,t.createElement(i,{flex:1,maxWidth:500},t.createElement(s,{variant:"subtitle2",component:"div"},"Entity Type"),t.createElement(L,{"aria-label":"Entity Type Selection",disableClearable:!0,options:u??[],freeSolo:!1,groupBy:e=>e.facetKind,getOptionLabel:e=>e.label,value:P,onChange:(e,n)=>m(n.facetKind,n.facetType,!0),renderInput:e=>t.createElement(y,{...e,variant:"outlined",placeholder:"Select entity type",margin:"dense",fullWidth:!0,InputProps:{...e.InputProps,endAdornment:t.createElement(t.Fragment,null,h?t.createElement(T,{color:"inherit",size:20}):null,e.InputProps.endAdornment)}})})),t.createElement(i,{maxWidth:580,flex:1},t.createElement(s,{variant:"subtitle2",component:"div"},"Search Entities"),t.createElement(y,{margin:"dense",placeholder:"Search entities",variant:"outlined",fullWidth:!0,value:b,onChange:e=>x(e.currentTarget.value),InputProps:{startAdornment:t.createElement(i,{marginRight:.75,display:"flex",alignItems:"center"},t.createElement(I,{color:"inherit"}))}})),t.createElement(i,{display:"flex",flexDirection:"column"},t.createElement(s,{style:{marginLeft:10},variant:"subtitle2",component:"div"},"Pivot"),t.createElement(i,{flex:1,display:"flex",alignItems:"center"},t.createElement(w,{checked:d,onChange:()=>k(!d),inputProps:{"aria-label":"pivot overview table"}})))))};export{G as OverviewPageHeader};
|
|
2
|
+
//# sourceMappingURL=OverviewPageHeader.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{OverviewPage as o}from"./OverviewPage.esm.js";import{FixedGroupOverviewPage as
|
|
1
|
+
import{OverviewPage as o}from"./OverviewPage.esm.js";import{FixedGroupOverviewPage as t}from"./FixedGroupOverviewPage.esm.js";import{OverviewPageContext as i}from"./OverviewPageContent.esm.js";export{t as FixedGroupOverviewPage,o as OverviewPage,i as OverviewPageContext};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as p}from"@backstage/catalog-model";import{MarkdownContent as s}from"@backstage/core-components";import{humanizeEntityRef as f}from"@backstage/plugin-catalog-react";import{makeStyles as d,Grid as o,Typography as m}from"@material-ui/core";import e from"react";import{StyledTooltip as y}from"../../StyledTooltip/StyledTooltip.esm.js";const l=d(t=>({headerWrapper:{marginTop:t.spacing(.5)},entityRefName:{fontWeight:"bold"},iconWrapper:{padding:t.spacing(1,.5),display:"flex",alignItems:"center",justifyContent:"center"}})),h=({check:{name:t,description:n},icon:r,entityRef:a})=>{const i=l(),c=p(a);return e.createElement(o,null,e.createElement(o,{container:!0,direction:"row",spacing:1,wrap:"nowrap"},e.createElement("div",{className:i.iconWrapper},r),e.createElement(m,{variant:"h6",className:i.headerWrapper,noWrap:!0},t)),e.createElement(o,{item:!0},e.createElement(m,{variant:"subtitle2",className:i.entityRefName},f(c,{defaultKind:c.kind}))),e.createElement(s,{content:n}))},E=({children:t,check:n,icon:r,entityRef:a})=>e.createElement(y,{arrow:!0,title:e.createElement(h,{check:n,icon:r,entityRef:a}),enterDelay:150,placement:"top"},t);export{E as CheckCellTooltip,l as useStyles};
|
|
2
2
|
//# sourceMappingURL=CheckCellTooltip.esm.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{MarkdownContent as i}from"@backstage/core-components";import{makeStyles as m,Typography as p}from"@material-ui/core";import l from"react";import{StyledTooltip as s}from"../../StyledTooltip/StyledTooltip.esm.js";import{CellWidths as k}from"../resultsTableUtils.esm.js";const d=m(e=>({cellWrapper:{display:"flex",alignItems:"flex-end",height:"100%"},cellText:{textOrientation:"mixed",transform:`translateX(${k.checkResult*.4}px) rotate(-55deg)`,transformOrigin:"center left",wordBreak:"keep-all",fontWeight:"bold","&:hover":{cursor:"default"}},cellLink:{overflow:"hidden",textOverflow:"ellipsis",width:"125px",display:"inline-block"},trackCell:{fontSize:e.typography.subtitle1.fontSize},levelCell:{fontSize:e.typography.subtitle2.fontSize},checkCell:{fontWeight:"normal"}}));var n=(e=>(e.track="track",e.level="level",e.check="check",e))(n||{});const f=({label:e,description:r,cellType:a})=>{const t=d(),c={track:t.trackCell,level:t.levelCell,check:t.checkCell},o=e?l.createElement(s,{title:l.createElement(l.Fragment,null,l.createElement(p,{variant:"subtitle1",component:"div"},e),r&&l.createElement(i,{content:r})),arrow:!0,placement:"left-end"},l.createElement("div",{className:`${t.cellLink} ${a?c[a]:""}`},e)):l.createElement(l.Fragment,null);return l.createElement("div",{className:t.cellWrapper},l.createElement("div",{className:t.cellText},o))};export{f as CheckLabelCell,n as CheckLabelCellType};
|
|
2
|
+
//# sourceMappingURL=CheckLabelCell.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parseEntityRef as
|
|
1
|
+
import{parseEntityRef as p}from"@backstage/catalog-model";import{Link as m}from"@backstage/core-components";import{useRouteRef as k}from"@backstage/core-plugin-api";import{entityRouteRef as h,humanizeEntityRef as r}from"@backstage/plugin-catalog-react";import{makeStyles as x,Box as n}from"@material-ui/core";import t from"react";import{useEntityByRef as y}from"../../../hooks/catalog/useEntityByRef.esm.js";import{StyledTooltip as d}from"../../StyledTooltip/StyledTooltip.esm.js";import{CellWidths as f,RowHeights as E}from"../resultsTableUtils.esm.js";const u=x(a=>({cellWrapper:{display:"flex",alignItems:"flex-end",height:"100%"},cellText:{textOrientation:"mixed",transform:`translateX(${f.checkResult*.4}px) rotate(-55deg)`,transformOrigin:"center left",wordBreak:"keep-all",fontWeight:"bold"},cellLink:{overflow:"hidden",textOverflow:"ellipsis",width:"125px",display:"inline-block"},cellNotTransformed:{display:"flex",alignItems:"center",border:`1px solid ${a.palette.divider}`,borderTop:"none"}})),g=({entityRef:a,noTransform:c})=>{const{data:l}=y(a),o=k(h),i=u(),e=a?p(a):void 0,s=e?t.createElement(d,{title:l?.metadata.title?l.metadata.title:r(e,{defaultKind:e.kind}),arrow:!0,placement:"left-end"},t.createElement(m,{className:i.cellLink,"aria-label":`entity link to ${e.name}`,to:o(e)},l?.metadata.title?l.metadata.title:r(e,{defaultKind:e.kind}))):t.createElement(t.Fragment,null);return c&&e?t.createElement(n,{className:i.cellNotTransformed,height:E.check},t.createElement(n,{paddingLeft:2},t.createElement(d,{title:l?.metadata.title?l.metadata.title:r(e,{defaultKind:e.kind}),arrow:!0,placement:"top-start"},t.createElement(n,{textOverflow:"ellipsis",width:f.trackTitle-50,overflow:"hidden"},t.createElement(m,{"aria-label":`entity link to ${e.name}`,to:o(e)},l?.metadata.title?l.metadata.title:r(e,{defaultKind:e.kind})))))):t.createElement("div",{className:i.cellWrapper},t.createElement("div",{className:i.cellText},s))};export{g as EntityRefCell};
|
|
2
2
|
//# sourceMappingURL=EntityRefCell.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as o}from"@material-ui/core";import t from"react";import{LevelBadge as d}from"../../Badges/LevelBadge.esm.js";import{NoLevelBadge as s}from"../../Badges/NoLevelBadge.esm.js";import{CampaignBadge as g}from"../../Badges/CampaignBadge.esm.js";import{RowHeights as r,NO_LEVEL_BADGE_NAME as n}from"../resultsTableUtils.esm.js";const p=o(e=>({badgeCell:{borderRight:`1px solid ${e.palette.divider}`,height:`${r.trackTitle}px`,display:"flex",justifyContent:"center",alignItems:"center"},small:{height:`${r.check}px`,borderBottom:`1px solid ${e.palette.divider}`}})),c=({highestLevel:e,trackType:i,small:m})=>{const l=p();if(!e?.badge)return t.createElement("div",{className:l.badgeCell},"\xA0");let a=e.name!==n?t.createElement(d,{badge:e.badge}):t.createElement(s,{showTooltip:!0});return i==="campaign"&&(a=t.createElement(g,null)),t.createElement("div",{className:`${l.badgeCell} ${m?l.small:""}`},a)};export{c as HighestLevelBadgeCell};
|
|
2
2
|
//# sourceMappingURL=HighestLevelBadge.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as a,Typography as i}from"@material-ui/core";import t from"react";import{RowHeights as r}from"../resultsTableUtils.esm.js";const o=a(e=>{const l=e.palette.action.hover;return{root:{color:e.palette.text.primary,backgroundColor:l},levelTypography:{overflow:"hidden",textOverflow:"ellipsis"},levelHeaderCell:{padding:`${e.spacing(.5)}px ${e.spacing(2)}px`,borderRight:`1px solid ${e.palette.divider}`,height:`${r.levelTitle}px`},pivot:{height:r.check}}}),p=({name:e})=>{const l=o();return t.createElement("div",{className:`${l.levelHeaderCell} ${l.root}`,"aria-label":`${e}`},t.createElement(i,{variant:"subtitle2",component:"p",className:l.levelTypography},e))},c=({pivot:e})=>{const l=o();return t.createElement("div",{className:`${l.levelHeaderCell} ${l.root} ${e?l.pivot:""}`},"\xA0")};export{p as TrackLevelHeaderCell,c as TrackLevelHeaderFill};
|
|
2
2
|
//# sourceMappingURL=TrackLevelHeaderCell.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import l from"react";import{CheckCell as a}from"./CheckCell.esm.js";import{CheckNameCell as m}from"./CheckNameCell.esm.js";import{EntityRefCell as o}from"./EntityRefCell.esm.js";import{HighestLevelBadgeCell as i}from"./HighestLevelBadge.esm.js";import{TrackLevelHeaderCell as d,TrackLevelHeaderFill as s}from"./TrackLevelHeaderCell.esm.js";import{TrackTitleCell as y}from"./TrackTitleCell.esm.js";const k=e=>({type:"TrackHeader",render:()=>l.createElement(y,{name:e})}),C=e=>({type:"LevelHeader",render:()=>e?l.createElement(d,{name:e}):l.createElement(s,null)}),p=(e,t)=>l.createElement(m,{name:e,progress:t}),f=(e,t)=>({type:"CheckTitle",render:()=>p(e,t)}),u=({trackId:e,check:t,entityRef:r,result:n,entityRoute:c})=>l.createElement(a,{check:t,entityRef:r,entityRoute:c,trackId:e,result:n,isVirtualized:!0}),h=(e,t,r,n,c)=>({type:"CheckResult",render:()=>l.createElement(u,{trackId:e,check:t,entityRef:r,result:n,entityRoute:c})}),E=(e,t)=>l.createElement(o,{entityRef:e,noTransform:t}),R=(e,t)=>({type:"EntityHeader",render:()=>E(e,t)}),v=(e,t,r)=>({type:"LevelBadge",render:()=>l.createElement(i,{small:r,highestLevel:e,trackType:t})}),H=e=>t=>{const r=e[t.rowIndex].cells[t.columnIndex];return r?l.createElement("div",{style:t.style},r.render()):l.createElement("div",{style:t.style})};export{H as cellRenderer,h as checkResultCell,f as checkTitleCell,R as entityHeaderCell,v as levelBadgeCell,C as levelHeaderCell,k as trackHeaderCell};
|
|
2
2
|
//# sourceMappingURL=cellRenderer.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as
|
|
1
|
+
import{makeStyles as p}from"@material-ui/core";import e from"react";import{AlertPanel as f}from"../AlertPanel/AlertPanel.esm.js";import{NoCertifications as E,NoEntities as d}from"../EmptyState/EmptyState.esm.js";import{OverviewTableContent as y}from"./OverviewTableContent.esm.js";const u=p(()=>({scrollContainer:{overflow:"auto",paddingBottom:0,width:"100%"}})),w=({facets:t,ownerEntityRef:r,hasError:o,kind:i,type:s,setError:a,isFixedGroup:l})=>{const c=u();if(o)return e.createElement(f,{severity:"error",title:o.message});const n="Use the groups drop-down list to select another group.";return t&&(t.types?.length??0)>0?t.types?.find(m=>m.count>0)?e.createElement("div",{className:c.scrollContainer},e.createElement(y,{facets:t,kind:i,type:s,setError:a,ownerEntityRef:r,hasError:o})):e.createElement(E,{ownerEntityRef:r,selectGroupHint:n}):e.createElement(d,{ownerEntityRef:r,selectGroupHint:l?void 0:n})};export{w as OverviewTable};
|
|
2
2
|
//# sourceMappingURL=OverviewTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRouteRef as
|
|
1
|
+
import{useRouteRef as j}from"@backstage/core-plugin-api";import{entityRouteRef as q}from"@backstage/plugin-catalog-react";import{makeStyles as B,Grid as D}from"@material-ui/core";import e,{useContext as I,useEffect as k,useState as J,useRef as K,useLayoutEffect as Q,useMemo as U}from"react";import{VariableSizeGrid as X}from"react-window";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import{useProgramOverviewForOwner as Y}from"../../hooks/certifications/useProgramOverviewForOwner.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{EmptyState as Z}from"../EmptyState/EmptyState.esm.js";import"../OverviewPage/OverviewPage.esm.js";import"@spotify/backstage-plugin-core";import"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{OverviewPageContext as _}from"../OverviewPage/OverviewPageContent.esm.js";import"../Pagination/Pagination.esm.js";import{useCursorPagination as $,CursorPagination as ee}from"../Pagination/CursorPagination.esm.js";import{cellRenderer as te}from"./Cell/cellRenderer.esm.js";import{OverviewTableSkeleton as re}from"./OverviewTableSkeleton.esm.js";import{ResultsTableHeader as oe}from"./ResultsTableHeader.esm.js";import{generateRowsPivoted as ie,generateRows as ne,generateHeaderRowPivoted as ae,generateHeaderRow as le}from"./ResultsTableRow.esm.js";import{RowHeights as P,CellWidths as y,calculateTableWidth as me}from"./resultsTableUtils.esm.js";import se from"./useWindowDimensions.esm.js";const S=25,ue=B(i=>({table:{backgroundColor:i.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left",overflow:"auto"},tableContainer:{backgroundColor:i.palette.background.paper}})),ce=({setError:i,kind:u,type:c,ownerEntityRef:r})=>{const{cursor:W,pageSize:R,...p}=$({defaultPageSize:S,label:"entitiesPerPage"}),{debouncedSearchValue:l,pivot:m}=I(_),{data:t,isLoading:g,isError:b}=Y(r,{kind:u,type:c},R,W,l);k(()=>{p.setCursor(""),p.setCurrentPage(0)},[l]);const E=ue(),d=j(q);k(()=>{i?.(b?new Error("Error loading track overview"):void 0)},[b,i]);const[H,x]=J(0),{height:z}=se(),n=K(null);Q(()=>{t&&r&&n?.current&&x(n.current.clientWidth?n.current.clientWidth-16:100)},[n,t,r]);const{rows:h,headerRow:f,tableWidth:w,entityRefsWithPadding:T,getRowHeight:N,columnCount:O}=U(()=>{if(g||!t||!r)return{};const{programs:a,entityRefs:o}=t;if(!o)return{};const s=o.length>=25?o:[...o,...Array.from({length:25-o.length},()=>{})],C=m?ie(a,o,d):ne(a,s,d),v=C[0]?.cells?.length??s.length+1,G=m?ae(a):le(s),L=me(v-1)+60;return{rows:C,headerRow:G,tableWidth:L,entityRefsWithPadding:s,getRowHeight:M=>C[M]?.height??P.check,columnCount:v}},[t,d,g,r,m]);if(g)return e.createElement(re,null);if(!t||!r)return null;const{totalCount:V,endCursor:A,prevCursor:F}=t;return!f||!w||!T||!h?.length?l?e.createElement(Z,{title:"No Entities Found",description:`No entities found with name containing: '${l}'`}):null:e.createElement("div",{ref:n},e.createElement(D,{"aria-label":`Check results for ${c??u}`,key:`${u}|${c??""}`,item:!0,xs:12,className:E.tableContainer},H>0&&e.createElement(e.Fragment,null,e.createElement(oe,{headerRow:f,gridWidth:w}),e.createElement(X,{className:E.table,columnCount:O,columnWidth:a=>a===0?y.trackTitle:y.checkResult,rowCount:h.length,rowHeight:N,height:z*.7-P.paginationControl-f.height,width:w,key:m?"entityView":"checkView"},te(h)))),e.createElement(ee,{...p,totalCount:V,defaultPageSize:S,endCursor:A,prevCursor:F,pageSize:R,labelRowsPerPage:"Entities per page:"}))};export{ce as ResultsTable};
|
|
2
2
|
//# sourceMappingURL=ResultsTable.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{makeStyles as o}from"@material-ui/core";import
|
|
1
|
+
import{makeStyles as o}from"@material-ui/core";import d from"react";import{CellWidths as l}from"./resultsTableUtils.esm.js";const s=o(e=>({tableHeader:{backgroundColor:e.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",border:`1px solid ${e.palette.divider}`,width:({gridWidth:t})=>t??300},headerRow:{display:"inline-block"}})),c=({headerRow:e,gridWidth:t})=>{const r=s({gridWidth:t});return d.createElement("div",{className:r.tableHeader},e.cells.map((i,a)=>d.createElement("div",{key:a,className:r.headerRow,style:{height:e.height,width:a===0?l.trackTitle:l.checkResult}},i.render())))};export{c as ResultsTableHeader};
|
|
2
2
|
//# sourceMappingURL=ResultsTableHeader.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ResultState as
|
|
1
|
+
import u from"react";import{ResultState as y}from"../../graphql/generated/index.esm.js";import{entityHeaderCell as k,trackHeaderCell as b,levelBadgeCell as C,levelHeaderCell as R,checkTitleCell as w,checkResultCell as H}from"./Cell/cellRenderer.esm.js";import{CheckLabelCellType as v,CheckLabelCell as T}from"./Cell/CheckLabelCell.esm.js";import{TrackLevelHeaderFill as M}from"./Cell/TrackLevelHeaderCell.esm.js";import{findLongestRefTitle as A,calculateHeightForRefTitle as F,RowHeights as m,generateNoLevelBadge as E}from"./resultsTableUtils.esm.js";const P=i=>{const r=A(i??[]);return{height:Math.min(F(r.length??1)-10,125),cells:[k(""),...i.map(t=>k(t||""))]}},N=(i,r,t)=>{const e=[];return i.forEach(({program:n,levels:p,highestLevels:o})=>{e.push({height:m.trackTitle,cells:[b(n.name),...r.map(l=>{const a=l?o.find(c=>c.entityRef===l)||E(l):void 0;return C(a,n.type??void 0)})]}),p.forEach(l=>{e.push({height:m.levelTitle,cells:[R(l.name),...r.map(a=>R(""))]}),l.checks.forEach(({check:a,results:c,totalCount:d,totalPassing:s})=>{const f={PASSED:s,FAILED:d-s};e.push({height:m.check,cells:[w(a.name,f),...r.map(h=>H(n.id,a,h,c.find(g=>g.entityRef===h)?.result??y.NotApplicable,t))]})})})}),e},S=i=>{const r=i.flatMap(({program:t,levels:e})=>{const n={label:t.name??t.id,description:t.description??"",cellType:v.track},p=e.flatMap(o=>{const l={label:o.name??`level ${o.ordinal}`,cellType:v.level},a=o.checks.map(({check:c})=>({label:c.name??c.id,description:c.description??"",cellType:v.check}));return[l,...a]});return[n,...p]});return{height:125,cells:[{type:"CheckHeader",render:()=>u.createElement(T,null)},...r.map(t=>({render:()=>u.createElement(T,{...t}),type:"CheckHeader"}))]}},B=(i,r,t)=>r.map(e=>{const n=k(e,!0),p=i.flatMap(({highestLevels:o,program:l,levels:a})=>{const c=e?o.find(s=>s.entityRef===e)||E(e):void 0,d=a.flatMap(s=>{const f=s.checks.map(({check:h,results:g})=>H(l.id,h,e,g.find(L=>L.entityRef===e)?.result??y.NotApplicable,t));return[{type:"Filler",render:()=>u.createElement(M,{pivot:!0})},...f]});return[C(c,l.type??void 0,!0),...d]});return[n,...p]}).map(e=>({height:m.check,cells:e}));export{P as generateHeaderRow,S as generateHeaderRowPivoted,N as generateRows,B as generateRowsPivoted};
|
|
2
2
|
//# sourceMappingURL=ResultsTableRow.esm.js.map
|