@spotify/backstage-plugin-soundcheck 0.14.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +34 -8
  2. package/alpha/package.json +1 -1
  3. package/dist/alpha/apis.esm.js +1 -1
  4. package/dist/alpha/entity-content.esm.js +1 -1
  5. package/dist/alpha/pages.esm.js +1 -1
  6. package/dist/alpha/plugin.esm.js +1 -1
  7. package/dist/alpha/sidebar-item.esm.js +1 -1
  8. package/dist/alpha.d.ts +150 -1
  9. package/dist/api.esm.js +1 -1
  10. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
  11. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +1 -1
  12. package/dist/components/CertificationSidebar/Check.esm.js +1 -1
  13. package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +1 -1
  14. package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
  15. package/dist/components/CheckDetails/CollapseRow.esm.js +2 -0
  16. package/dist/components/CheckDetails/FixMeDialog.esm.js +2 -0
  17. package/dist/components/CheckDetails/OngoingTaskComponent.esm.js +2 -0
  18. package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
  19. package/dist/components/CheckDetails/ReviewStateComponent.esm.js +2 -0
  20. package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +1 -1
  21. package/dist/components/CheckForm/CheckForm.esm.js +1 -1
  22. package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +1 -1
  23. package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
  24. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
  25. package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
  26. package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
  27. package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +1 -1
  28. package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
  29. package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +1 -1
  30. package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
  31. package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
  32. package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
  33. package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
  34. package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +2 -0
  35. package/dist/components/CollectorPage/Configurators/Gitlab/utils.esm.js +2 -0
  36. package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +2 -0
  37. package/dist/components/CollectorPage/Configurators/NewRelic/utils.esm.js +2 -0
  38. package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
  39. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
  40. package/dist/components/EntityContent/EntityContent.esm.js +1 -1
  41. package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
  42. package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
  43. package/dist/components/FactExplorer/FactExplorerDialog.esm.js +1 -1
  44. package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
  45. package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +1 -1
  46. package/dist/components/GroupSelector/GroupSelector.esm.js +1 -1
  47. package/dist/components/OverviewPage/CampaignBanner/CampaignArea.esm.js +2 -0
  48. package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
  49. package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
  50. package/dist/components/OverviewPage/OverviewPageHeader.esm.js +2 -0
  51. package/dist/components/OverviewPage/index.esm.js +1 -1
  52. package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
  53. package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +2 -0
  54. package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +1 -1
  55. package/dist/components/OverviewTable/Cell/HighestLevelBadge.esm.js +1 -1
  56. package/dist/components/OverviewTable/Cell/TrackLevelHeaderCell.esm.js +1 -1
  57. package/dist/components/OverviewTable/Cell/cellRenderer.esm.js +1 -1
  58. package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
  59. package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
  60. package/dist/components/OverviewTable/ResultsTableRow.esm.js +1 -1
  61. package/dist/components/Router.esm.js +1 -1
  62. package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
  63. package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
  64. package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +1 -1
  65. package/dist/components/SoundcheckHeader/headerUtil.esm.js +1 -1
  66. package/dist/components/SoundcheckHeader/useHeader.esm.js +1 -1
  67. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
  68. package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
  69. package/dist/components/TrackPage/TrackPage.esm.js +1 -1
  70. package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
  71. package/dist/contexts/UserProvider.esm.js +1 -1
  72. package/dist/graphql/generated/index.esm.js +39 -30
  73. package/dist/hooks/aggregations/useAggregatedTrackPassRateTrend.esm.js +1 -1
  74. package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
  75. package/dist/hooks/certifications/useProgramOverviewForOwner.esm.js +1 -1
  76. package/dist/hooks/checks/useCreateCheck.esm.js +1 -1
  77. package/dist/hooks/checks/useDeleteCheck.esm.js +1 -1
  78. package/dist/hooks/checks/useExecutableChecks.esm.js +2 -0
  79. package/dist/hooks/checks/useGetChecks.esm.js +1 -1
  80. package/dist/hooks/checks/useUpdateCheck.esm.js +1 -1
  81. package/dist/hooks/graphqlKeys.esm.js +1 -1
  82. package/dist/hooks/groups/useGroupOptions.esm.js +2 -0
  83. package/dist/images/new-relic-rgb.svg +1 -0
  84. package/dist/images/new-relic-white.svg +1 -0
  85. package/dist/index.d.ts +4 -4
  86. package/dist/utils/filters.esm.js +1 -1
  87. package/package.json +24 -20
  88. package/dist/components/GroupSelector/useOptions.esm.js +0 -2
  89. package/dist/components/OverviewPage/OverviewTabs.esm.js +0 -2
  90. package/dist/components/OverviewPage/OverviewTabsSkeleton.esm.js +0 -2
@@ -1,2 +1,2 @@
1
- import{Page as L,TabbedLayout as l}from"@backstage/core-components";import{useApi as s,featureFlagsApiRef as D,configApiRef as H}from"@backstage/core-plugin-api";import{usePermission as c}from"@backstage/plugin-permission-react";import{makeStyles as N,Box as m}from"@material-ui/core";import{SpotifyLicenseBanner as G}from"@spotify/backstage-plugin-core";import{soundcheckCampaignCreatePermission as O,soundcheckCollectorReadPermission as B,soundcheckCheckCreatePermission as Q,soundcheckTrackCreatePermission as $}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as q}from"react";import{Routes as M,Route as t}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import{UserProvider as U}from"../../contexts/UserProvider.esm.js";import V from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as W}from"../../hooks/useSoundcheckAlert.esm.js";import{CampaignDetailsPage as j}from"../CampaignDetailsPage/CampaignDetailsPage.esm.js";import{CampaignsPage as z}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as J}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as K}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as X}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckPage as Y}from"../CheckPage/CheckPage.esm.js";import{CheckInsightsPage as p}from"../CheckPage/CheckInsightsPage.esm.js";import{ChecksTab as Z}from"../ChecksTab/ChecksTab.esm.js";import{CheckTemplatesPage as _}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import{CollectorPage as ee}from"../CollectorPage/CollectorPage.esm.js";import{CollectorsPage as te}from"../CollectorsPage/CollectorsPage.esm.js";import{OverviewPageContent as ae}from"../OverviewPage/OverviewPageContent.esm.js";import{QuickstartPage as re}from"../QuickstartPage/QuickstartPage.esm.js";import{SoundcheckHeader as le}from"../SoundcheckHeader/SoundcheckHeader.esm.js";import{SoundcheckHeaderProvider as ne}from"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{SoundcheckQueryClientProvider as ce}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{TechHealth as oe}from"../TechHealth/TechHealth.esm.js";import{TrackCreatePage as me}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as ie}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as se}from"../TrackPage/TrackPage.esm.js";import{TracksTab as pe}from"../TracksTab/TracksTab.esm.js";const de=N(o=>({tabContent:{margin:0,padding:0},root:{"& > *":{display:"flex",flexDirection:"column",flexGrow:1}},pageContent:{display:"flex",flexDirection:"row",flexGrow:1},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",maxWidth:"100%","& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",padding:`${o.spacing(3)}px !important`}}})),ue=({title:o="Soundcheck"})=>{const n=de(),[d,u]=q(void 0),a=s(D),h=s(H).getOptionalStringArray("soundcheck.flags"),g=(!a.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-tech-health")||a.isActive("soundcheck-enable-tech-health"))&&!h?.includes("soundcheck-disable-tech-health"),k=!a.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-collectors")||a.isActive("soundcheck-enable-collectors"),i=!a.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-campaigns")||a.isActive("soundcheck-enable-campaigns"),{loading:E,allowed:f}=c({permission:O}),C=!E&&f,{loading:P,allowed:b}=c({permission:B}),{loading:v,allowed:x}=c({permission:Q}),R=!a.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-check-creation")||a.isActive("soundcheck-enable-check-creation"),w=!v&&x&&R,{loading:T,allowed:I}=c({permission:$}),y=!a.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-track-creation")||a.isActive("soundcheck-enable-track-creation"),S=!T&&I&&y,A=k&&!P&&b,F=g;return e.createElement(W,null,e.createElement(U,null,e.createElement(ce,null,e.createElement(ne,null,e.createElement(V,null,e.createElement(m,{className:n.root},e.createElement(L,{themeId:"tool"},e.createElement(G,{backend:"soundcheck",invalidLicenseMessage:"Submitted facts and check results will still be stored, but it will not be possible to view certifications or individual results until a valid license is present."}),e.createElement(le,{documentTitle:o,setGroupSelectorError:u}),e.createElement(m,{className:n.pageContent},e.createElement(m,{className:n.pageLayout},e.createElement(M,null,i&&e.createElement(e.Fragment,null,e.createElement(t,{path:"/campaigns/:campaignId/edit",element:e.createElement(K,null)}),e.createElement(t,{path:"/campaigns/:campaignId",element:e.createElement(j,null)}),C&&e.createElement(t,{path:"/campaigns/create",element:e.createElement(J,null)})),e.createElement(t,{path:"/quickstart",element:e.createElement(re,null)}),e.createElement(t,{path:"/tracks/:trackId/edit",element:e.createElement(ie,null)}),S&&e.createElement(t,{path:"/tracks/create",element:e.createElement(me,null)}),e.createElement(t,{path:"/tracks/:trackId",element:e.createElement(se,null)}),e.createElement(t,{path:"/tracks/:trackId/checks/:checkId",element:e.createElement(p,null)}),e.createElement(t,{path:"/checks/:checkId",element:e.createElement(p,null)}),e.createElement(t,{path:"/checks/:checkId/edit",element:e.createElement(Y,null)}),w&&e.createElement(e.Fragment,null,e.createElement(t,{path:"/checks/create",element:e.createElement(X,null)}),e.createElement(t,{path:"/checks/templates",element:e.createElement(_,null)})),e.createElement(t,{path:"/integrations/:integrationId",element:e.createElement(ee,null)}),e.createElement(t,{path:"/*",element:e.createElement(l,null,e.createElement(l.Route,{title:"Overview",path:"/"},e.createElement("div",{className:n.tabContent},e.createElement(ae,{groupSelectorError:d}))),F&&e.createElement(l.Route,{title:"Tech Health",path:"/tech-health"},e.createElement(oe,null)),e.createElement(l.Route,{title:"Checks",path:"/checks"},e.createElement(Z,null)),e.createElement(l.Route,{title:"Tracks",path:"/tracks"},e.createElement(pe,null)),i&&e.createElement(l.Route,{title:"Campaigns",path:"/campaigns"},e.createElement(z,null)),A&&e.createElement(l.Route,{title:"Integrations",path:"/integrations"},e.createElement(te,null)))}))," ")))))))))};export{ue as RoutingPage};
1
+ import{Page as F,TabbedLayout as l}from"@backstage/core-components";import{useApi as s,featureFlagsApiRef as S,configApiRef as L}from"@backstage/core-plugin-api";import{usePermission as m}from"@backstage/plugin-permission-react";import{makeStyles as D,Box as i}from"@material-ui/core";import{SpotifyLicenseBanner as H}from"@spotify/backstage-plugin-core";import{soundcheckCampaignCreatePermission as N,soundcheckCollectorReadPermission as O,soundcheckCheckCreatePermission as B,soundcheckTrackCreatePermission as G}from"@spotify/backstage-plugin-soundcheck-common";import e from"react";import{Routes as Q,Route as t}from"react-router-dom";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import{UserProvider as $}from"../../contexts/UserProvider.esm.js";import q from"../../hooks/useConfirmationModal.esm.js";import{AlertProvider as M}from"../../hooks/useSoundcheckAlert.esm.js";import{CampaignDetailsPage as U}from"../CampaignDetailsPage/CampaignDetailsPage.esm.js";import{CampaignsPage as V}from"../CampaignsPage/CampaignsPage.esm.js";import{CampaignCreatePage as W}from"../CampaignCreatePage/CampaignCreatePage.esm.js";import{EditCampaignView as j}from"../CampaignsPage/EditCampaignView.esm.js";import{CheckCreatePage as z}from"../CheckCreatePage/CheckCreatePage.esm.js";import{CheckPage as J}from"../CheckPage/CheckPage.esm.js";import{CheckInsightsPage as p}from"../CheckPage/CheckInsightsPage.esm.js";import{ChecksTab as K}from"../ChecksTab/ChecksTab.esm.js";import{CheckTemplatesPage as X}from"../CheckTemplatesPage/CheckTemplatesPage.esm.js";import{CollectorPage as Y}from"../CollectorPage/CollectorPage.esm.js";import{CollectorsPage as Z}from"../CollectorsPage/CollectorsPage.esm.js";import{OverviewPageContent as _}from"../OverviewPage/OverviewPageContent.esm.js";import{QuickstartPage as ee}from"../QuickstartPage/QuickstartPage.esm.js";import{SoundcheckHeader as te}from"../SoundcheckHeader/SoundcheckHeader.esm.js";import{SoundcheckHeaderProvider as ae}from"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{SoundcheckQueryClientProvider as ne}from"../SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js";import{TechHealth as le}from"../TechHealth/TechHealth.esm.js";import{TrackCreatePage as re}from"../TrackCreatePage/TrackCreatePage.esm.js";import{TrackEditPage as ce}from"../TrackEditPage/TrackEditPage.esm.js";import{TrackPage as me}from"../TrackPage/TrackPage.esm.js";import{TracksTab as ie}from"../TracksTab/TracksTab.esm.js";const oe=D(r=>({tabContent:{margin:0,padding:0},root:{"& > *":{display:"flex",flexDirection:"column",flexGrow:1}},pageContent:{display:"flex",flexDirection:"row",flexGrow:1},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",maxWidth:"100%","& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",padding:`${r.spacing(3)}px !important`}}})),se=({title:r="Soundcheck"})=>{const c=oe(),a=s(S),d=s(L).getOptionalStringArray("soundcheck.flags"),h=(!a.getRegisteredFlags().find(n=>n.name==="soundcheck-enable-tech-health")||a.isActive("soundcheck-enable-tech-health"))&&!d?.includes("soundcheck-disable-tech-health"),u=!a.getRegisteredFlags().find(n=>n.name==="soundcheck-enable-collectors")||a.isActive("soundcheck-enable-collectors"),o=!a.getRegisteredFlags().find(n=>n.name==="soundcheck-enable-campaigns")||a.isActive("soundcheck-enable-campaigns"),{loading:g,allowed:k}=m({permission:N}),f=!g&&k,{loading:E,allowed:C}=m({permission:O}),{loading:b,allowed:P}=m({permission:B}),v=!a.getRegisteredFlags().find(n=>n.name==="soundcheck-enable-check-creation")||a.isActive("soundcheck-enable-check-creation"),x=!b&&P&&v,{loading:R,allowed:w}=m({permission:G}),T=!a.getRegisteredFlags().find(n=>n.name==="soundcheck-enable-track-creation")||a.isActive("soundcheck-enable-track-creation"),I=!R&&w&&T,y=u&&!E&&C,A=h;return e.createElement(M,null,e.createElement($,null,e.createElement(ne,null,e.createElement(ae,{defaultTitle:r},e.createElement(q,null,e.createElement(i,{className:c.root},e.createElement(F,{themeId:"website"},e.createElement(H,{backend:"soundcheck",invalidLicenseMessage:"Submitted facts and check results will still be stored, but it will not be possible to view certifications or individual results until a valid license is present."}),e.createElement(te,{documentTitle:r}),e.createElement(i,{className:c.pageContent},e.createElement(i,{className:c.pageLayout},e.createElement(Q,null,o&&e.createElement(e.Fragment,null,e.createElement(t,{path:"/campaigns/:campaignId/edit",element:e.createElement(j,null)}),e.createElement(t,{path:"/campaigns/:campaignId",element:e.createElement(U,null)}),f&&e.createElement(t,{path:"/campaigns/create",element:e.createElement(W,null)})),e.createElement(t,{path:"/quickstart",element:e.createElement(ee,null)}),e.createElement(t,{path:"/tracks/:trackId/edit",element:e.createElement(ce,null)}),I&&e.createElement(t,{path:"/tracks/create",element:e.createElement(re,null)}),e.createElement(t,{path:"/tracks/:trackId",element:e.createElement(me,null)}),e.createElement(t,{path:"/tracks/:trackId/checks/:checkId",element:e.createElement(p,null)}),e.createElement(t,{path:"/checks/:checkId",element:e.createElement(p,null)}),e.createElement(t,{path:"/checks/:checkId/edit",element:e.createElement(J,null)}),x&&e.createElement(e.Fragment,null,e.createElement(t,{path:"/checks/create",element:e.createElement(z,null)}),e.createElement(t,{path:"/checks/templates",element:e.createElement(X,null)})),e.createElement(t,{path:"/integrations/:integrationId",element:e.createElement(Y,null)}),e.createElement(t,{path:"/*",element:e.createElement(l,null,e.createElement(l.Route,{title:"Overview",path:"/"},e.createElement("div",{className:c.tabContent},e.createElement(_,{campaignsEnabled:!0}))),A&&e.createElement(l.Route,{title:"Tech Health",path:"/tech-health"},e.createElement(le,null)),e.createElement(l.Route,{title:"Checks",path:"/checks"},e.createElement(K,null)),e.createElement(l.Route,{title:"Tracks",path:"/tracks"},e.createElement(ie,null)),o&&e.createElement(l.Route,{title:"Campaigns",path:"/campaigns"},e.createElement(V,null)),y&&e.createElement(l.Route,{title:"Integrations",path:"/integrations"},e.createElement(Z,null)))}))," ")))))))))};export{se as RoutingPage};
2
2
  //# sourceMappingURL=RoutingPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{Header as k}from"@backstage/core-components";import{useRouteRef as s}from"@backstage/core-plugin-api";import{makeStyles as S,Breadcrumbs as y,Button as R,Typography as d,Link as v}from"@material-ui/core";import x from"@material-ui/icons/InfoOutlined";import{MenuBook as B}from"@mui/icons-material";import e,{useContext as N}from"react";import{useLocation as T,useNavigate as L}from"react-router-dom";import{rootRouteRef as C,quickstartRouteRef as $}from"../../routes.esm.js";import{GroupSelector as w}from"../GroupSelector/GroupSelector.esm.js";import{useBreadcrumbStyles as z,Breadcrumbs as G}from"./Breadcrumbs.esm.js";import{generateBreadcrumbs as H}from"./headerUtil.esm.js";import{SoundcheckHeaderContext as I}from"./SoundcheckHeaderContext.esm.js";const q=S(t=>({subtitle:{maxWidth:"75%",marginTop:t.spacing(.5),whiteSpace:"pre-line"},docLink:{display:"flex",alignItems:"center",marginTop:t.spacing(.5),marginBottom:t.spacing(0),width:"fit-content",fontSize:t.typography.body2.fontSize,color:"inherit"},descriptionIcon:{marginRight:t.spacing(.25)},header:{color:t.page.fontColor},link:{},button:{textTransform:"none",borderRadius:"30px",borderStyle:"solid",borderWidth:"1px",marginTop:t.spacing(2),padding:t.spacing(.75),paddingLeft:t.spacing(2),paddingRight:t.spacing(2)},icon:{paddingRight:t.spacing(1)}})),W=({documentTitle:t,setGroupSelectorError:p})=>{const{title:n,description:o,docLink:i,customSubtitle:a,sectionRight:c}=N(I),r=q(),u=z(),m=T().pathname?.replace(/\/+$/,"")??"",g=H(m),f=s(C),l=m===f(),h=s($),b=L(),E=h();return e.createElement(k,{pageTitleOverride:t,title:e.createElement(e.Fragment,null,l?e.createElement("div",null,n,e.createElement(y,{className:u.breadcrumbs},e.createElement(R,{className:r.button,onClick:()=>b(E)},e.createElement(B,{className:r.icon}),e.createElement(d,null,"Get Started with Soundcheck")))):e.createElement("div",null,e.createElement(G,{pages:g}),n)),subtitle:e.createElement("div",{className:r.header},i&&e.createElement(v,{target:"_blank",href:i,className:r.docLink},e.createElement(x,{className:r.descriptionIcon,fontSize:"inherit"}),"Documentation"),!!a&&e.createElement("div",null,a),typeof o=="string"?e.createElement(d,{className:r.subtitle,variant:"body2",color:"inherit"},o):e.createElement("div",null,o))},l&&e.createElement(w,{setError:p}),!!c&&e.createElement("div",null,c))};export{W as SoundcheckHeader};
1
+ import{Header as E}from"@backstage/core-components";import{useRouteRef as s}from"@backstage/core-plugin-api";import{makeStyles as k,Link as b,Typography as p,Button as v}from"@material-ui/core";import R from"@material-ui/icons/InfoOutlined";import S from"@material-ui/icons/MenuBook";import e,{useContext as y}from"react";import{useLocation as N,useNavigate as T}from"react-router-dom";import{rootRouteRef as x,quickstartRouteRef as C}from"../../routes.esm.js";import{Breadcrumbs as L}from"./Breadcrumbs.esm.js";import{generateBreadcrumbs as z}from"./headerUtil.esm.js";import{SoundcheckHeaderContext as B}from"./SoundcheckHeaderContext.esm.js";const w=k(t=>({subtitle:{maxWidth:"75%",marginTop:t.spacing(.5),whiteSpace:"pre-line"},docLink:{display:"flex",alignItems:"center",marginTop:t.spacing(.5),marginBottom:t.spacing(0),width:"fit-content",fontSize:t.typography.body2.fontSize,color:"inherit"},descriptionIcon:{marginRight:t.spacing(.25)},header:{color:t.page.fontColor},link:{},button:{textTransform:"none",marginRight:t.spacing(2),color:t.page.fontColor},icon:{paddingRight:t.spacing(1)}})),H=({documentTitle:t})=>{const{title:r,description:o,docLink:i,customSubtitle:a,sectionRight:c}=y(B),n=w(),l=N().pathname?.replace(/\/+$/,"")??"",d=z(l),u=s(x),m=l===u(),g=s(C),f=T(),h=g();return e.createElement(E,{pageTitleOverride:t,title:e.createElement(e.Fragment,null,m?e.createElement("div",null,r):e.createElement("div",null,e.createElement(L,{pages:d}),r)),subtitle:e.createElement("div",{className:n.header},i&&e.createElement(b,{target:"_blank",href:i,className:n.docLink},e.createElement(R,{className:n.descriptionIcon,fontSize:"inherit"}),"Documentation"),!!a&&e.createElement("div",null,a),typeof o=="string"?e.createElement(p,{className:n.subtitle,variant:"body2",color:"inherit"},o):e.createElement("div",null,o))},m&&e.createElement(v,{className:n.button,onClick:()=>f(h),color:"inherit",variant:"outlined"},e.createElement(S,{className:n.icon}),e.createElement(p,null,"Get Started with Soundcheck")),!!c&&e.createElement("div",null,c))};export{H as SoundcheckHeader};
2
2
  //# sourceMappingURL=SoundcheckHeader.esm.js.map
@@ -1,2 +1,2 @@
1
- import S,{createContext as h,useState as e}from"react";const t=h({title:"Soundcheck",updateTitle:()=>{},updateDescription:()=>{},updateDocLink:()=>{},updateCustomSubtitle:()=>{},updateSectionRight:()=>{}}),k=({children:i})=>{const[o,c]=e("Soundcheck"),[u,d]=e(),[n,r]=e(),[a,p]=e(),[s,l]=e();return S.createElement(t.Provider,{value:{title:o,updateTitle:c,description:u,updateDescription:d,docLink:n,updateDocLink:r,customSubtitle:a,updateCustomSubtitle:p,sectionRight:s,updateSectionRight:l}},i)};export{t as SoundcheckHeaderContext,k as SoundcheckHeaderProvider};
1
+ import k,{createContext as m,useState as e,useCallback as D}from"react";const u=m({title:"Soundcheck",updateTitle:()=>{},updateDescription:()=>{},updateDocLink:()=>{},updateCustomSubtitle:()=>{},updateSectionRight:()=>{},setDefaultTitle:()=>{}}),C=({children:c,defaultTitle:t})=>{const[o,i]=e(t??"Soundcheck"),[d,a]=e(),[n,l]=e(),[r,p]=e(),[s,S]=e(),h=D(()=>{i(t??"Soundcheck")},[t]);return k.createElement(u.Provider,{value:{title:o,updateTitle:i,description:d,updateDescription:a,docLink:n,updateDocLink:l,customSubtitle:r,updateCustomSubtitle:p,sectionRight:s,updateSectionRight:S,setDefaultTitle:h}},c)};export{u as SoundcheckHeaderContext,C as SoundcheckHeaderProvider};
2
2
  //# sourceMappingURL=SoundcheckHeaderContext.esm.js.map
@@ -1,2 +1,2 @@
1
- const n=c=>{const e={"^/soundcheck/campaigns$":"Campaigns","^/soundcheck/campaigns/create":"Create","^/soundcheck/campaigns/.*/edit":"Edit","^/soundcheck/campaigns/[^/]+$":"Campaign Details","^/soundcheck/tracks$":"Tracks","^/soundcheck/tracks/create":"Create","^/soundcheck/tracks/.*/edit":"Edit","^/soundcheck/tracks/[^/]+$":"Track Details","^/soundcheck/tracks/.*/checks/[^/]+$":"Check Details","^/soundcheck/checks$":"Checks","^/soundcheck/checks/.*/edit":"Edit","^/soundcheck/checks/create":"Create","^/soundcheck/checks/templates$":"Templates","^/soundcheck/checks/[^/]+$":"Details","^/soundcheck/integrations/[^/]+$":"Configure","^/soundcheck/integrations$":"Integrations","^/soundcheck/tech-health$":"Tech Health","^/soundcheck/tech-health/campaigns":"Campaigns","^/soundcheck/tech-health/checks":"Checks","^/soundcheck/tech-health/tracks":"Tracks","^/soundcheck/tech-health/entities":"Entities","^/soundcheck/tech-health/teams":"Teams"};for(const[s,t]of Object.entries(e))if(new RegExp(s).test(c))return t;return null},k=c=>c.split("/").filter(e=>e).map((e,s,t)=>{const a=`/${t.slice(0,s+1).join("/")}`,h=n(a);if(h)return a===c?{title:h}:{path:a,title:h}}).filter(e=>!!e);export{k as generateBreadcrumbs};
1
+ const n=c=>{const e={"^/soundcheck/campaigns$":"Campaigns","^/soundcheck/campaigns/create":"Create","^/soundcheck/campaigns/.*/edit":"Edit","^/soundcheck/campaigns/[^/]+$":"Campaign Details","^/soundcheck/tracks$":"Tracks","^/soundcheck/tracks/create":"Create","^/soundcheck/tracks/.*/edit":"Edit","^/soundcheck/tracks/[^/]+$":"Track Details","^/soundcheck/tracks/.*/checks/[^/]+$":"Check Details","^/soundcheck/checks$":"Checks","^/soundcheck/checks/.*/edit":"Edit","^/soundcheck/checks/create":"Create","^/soundcheck/checks/templates$":"Templates","^/soundcheck/checks/[^/]+$":"Details","^/soundcheck/integrations/[^/]+$":"Configure","^/soundcheck/integrations$":"Integrations","^/soundcheck/tech-health$":"Tech Health","^/soundcheck/tech-health/campaigns":"Campaigns","^/soundcheck/tech-health/checks":"Checks","^/soundcheck/tech-health/tracks":"Tracks","^/soundcheck/tech-health/entities":"Entities","^/soundcheck/tech-health/teams":"Teams","^/soundcheck/quickstart":"Quick Start"};for(const[t,s]of Object.entries(e))if(new RegExp(t).test(c))return s;return null},k=c=>c.split("/").filter(e=>e).map((e,t,s)=>{const a=`/${s.slice(0,t+1).join("/")}`,h=n(a);if(h)return a===c?{title:h}:{path:a,title:h}}).filter(e=>!!e);export{k as generateBreadcrumbs};
2
2
  //# sourceMappingURL=headerUtil.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useContext as k,useEffect as R}from"react";import{SoundcheckHeaderContext as D}from"./SoundcheckHeaderContext.esm.js";const f={title:"Soundcheck",description:void 0,docLink:void 0,customSubtitle:void 0,sectionRight:void 0},h=({title:t,description:e,docLink:i,customSubtitle:o,sectionRight:c})=>{const{updateTitle:d,title:u,updateDescription:s,description:n,docLink:p,updateDocLink:r,customSubtitle:a,updateCustomSubtitle:l,sectionRight:S,updateSectionRight:m}=k(D);R(()=>{u!==t&&d(t),n!==e&&s(e),p!==i&&r(i),a!==o&&l(o),S!==c&&m(c)},[t,e,d,s,u,n,p,i,r,a,l,o,S,c,m])},L=()=>{h(f)};export{f as DEFAULT_HEADER,h as useHeader,L as useSetHeaderDefault};
1
+ import{useContext as h,useEffect as k}from"react";import{SoundcheckHeaderContext as L}from"./SoundcheckHeaderContext.esm.js";const S={description:void 0,docLink:void 0,customSubtitle:void 0,sectionRight:void 0},R=({title:t,description:e,docLink:i,customSubtitle:o,sectionRight:c})=>{const{updateTitle:u,title:d,updateDescription:s,description:n,docLink:p,updateDocLink:r,customSubtitle:a,updateCustomSubtitle:l,sectionRight:m,updateSectionRight:f,setDefaultTitle:D}=h(L);k(()=>{t?d!==t&&u(t):D(),n!==e&&s(e),p!==i&&r(i),a!==o&&l(o),m!==c&&f(c)},[t,e,u,s,d,n,p,i,r,a,l,o,m,c,f,D])},b=()=>{R(S)};export{S as DEFAULT_HEADER,R as useHeader,b as useSetHeaderDefault};
2
2
  //# sourceMappingURL=useHeader.esm.js.map
@@ -1,2 +1,2 @@
1
- import{parseEntityRef as E}from"@backstage/catalog-model";import{Typography as i}from"@material-ui/core";import{makeStyles as y}from"@material-ui/core/styles";import{uniqBy as b}from"lodash";import t from"react";import{useFormContext as g}from"react-hook-form";import"../../../../../contexts/TrackFormContext.esm.js";import"../../../../../contexts/CheckFormContext.esm.js";import"../../../../../contexts/CampaignFormContext.esm.js";import{useLoggedInUser as w}from"../../../../../contexts/UserProvider.esm.js";import{FormControlledAutocomplete as S}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{useLabelOptions as x}from"../../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"@material-ui/lab";import"../../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useOptions as R}from"../../../../GroupSelector/useOptions.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as h}from"../../../utils/trackFormUtils.esm.js";const L=y(m=>({container:{display:"flex",flexDirection:"column",gap:m.spacing(1)}})),O=({disabled:m,ownerEntityRef:o})=>{const a=L(),{options:l,isLoading:p}=R(),{user:s,userEntityRef:n}=w(),{control:c,formState:{errors:f}}=g();let e=b(l.map(r=>({value:r.ref,label:r.name})),"value");n&&(e=[{value:n,label:s?.metadata.name},...e]),o&&n!==o&&!e.some(r=>r.value===o)&&(e=[{value:o,label:E(o).name},...e]);const d=x(e),{name:u,description:v}=h.owner;return t.createElement("div",{className:a.container},t.createElement("div",null,t.createElement(i,{variant:"subtitle2"},u),t.createElement(i,{variant:"caption"},v)),t.createElement("div",null,t.createElement(S,{name:"detailsStep.ownerEntityRef",control:c,width:300,freeSolo:!1,disabled:m||p,helperText:f?.detailsStep?.ownerEntityRef?.message??void 0,placeholder:"Owner",...d})))};export{O as TrackOwnerSelect};
1
+ import{parseEntityRef as E}from"@backstage/catalog-model";import{Typography as i}from"@material-ui/core";import{makeStyles as y}from"@material-ui/core/styles";import{uniqBy as b}from"lodash";import t from"react";import{useFormContext as g}from"react-hook-form";import"../../../../../contexts/TrackFormContext.esm.js";import"../../../../../contexts/CheckFormContext.esm.js";import"../../../../../contexts/CampaignFormContext.esm.js";import{useLoggedInUser as w}from"../../../../../contexts/UserProvider.esm.js";import{useGroupOptions as S}from"../../../../../hooks/groups/useGroupOptions.esm.js";import{FormControlledAutocomplete as x}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{useLabelOptions as R}from"../../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"@material-ui/lab";import"../../../../ListboxVirtualized/ListboxVirtualized.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as h}from"../../../utils/trackFormUtils.esm.js";const L=y(m=>({container:{display:"flex",flexDirection:"column",gap:m.spacing(1)}})),O=({disabled:m,ownerEntityRef:o})=>{const a=L(),{options:l,isLoading:p}=S(),{user:s,userEntityRef:n}=w(),{control:c,formState:{errors:f}}=g();let e=b(l.map(r=>({value:r.ref,label:r.name})),"value");n&&(e=[{value:n,label:s?.metadata.name},...e]),o&&n!==o&&!e.some(r=>r.value===o)&&(e=[{value:o,label:E(o).name},...e]);const u=R(e),{name:d,description:v}=h.owner;return t.createElement("div",{className:a.container},t.createElement("div",null,t.createElement(i,{variant:"subtitle2"},d),t.createElement(i,{variant:"caption"},v)),t.createElement("div",null,t.createElement(x,{name:"detailsStep.ownerEntityRef",control:c,width:300,freeSolo:!1,disabled:m||p,helperText:f?.detailsStep?.ownerEntityRef?.message??void 0,placeholder:"Owner",...u})))};export{O as TrackOwnerSelect};
2
2
  //# sourceMappingURL=TrackOwnerSelect.esm.js.map
@@ -1,2 +1,2 @@
1
- import{parseEntityRef as T}from"@backstage/catalog-model";import{EntityDisplayName as $}from"@backstage/plugin-catalog-react";import{makeStyles as I,Typography as j,Checkbox as B}from"@material-ui/core";import C from"@material-ui/icons/Category";import D from"@material-ui/icons/Class";import M from"@material-ui/icons/Group";import N from"@material-ui/icons/Loop";import{toEntityFilterQuery as Q}from"@spotify/backstage-plugin-soundcheck-common";import e,{useMemo as G}from"react";import{useGetEntityFacets as i}from"../../../hooks/catalog/useGetEntityFacets.esm.js";import n from"../../MultiSelectFilter/MultiSelectFilter.esm.js";const q=I(t=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:t.spacing(2)}})),c=(t,{selected:r})=>e.createElement(e.Fragment,null,e.createElement(B,{value:t,checked:r,color:"primary"}),e.createElement($,{entityRef:t,hideIcon:!0})),z=({track:t,label:r,owners:p,setOwners:y,lifecycles:f,setLifecycles:d,types:E,setTypes:u,systems:g,setSystems:b})=>{const h=q(),l=Q(t.filter),{data:L,isLoading:w}=i("relations.ownedBy",l),{data:o,isLoading:F}=i("spec.lifecycle",l),{data:s,isLoading:k}=i("spec.type",l),{data:a,isLoading:O}=i("relations.partOf",l),m=G(()=>a?.filter(S=>{try{return T(S).kind.toLowerCase()==="system"}catch{return!1}}),[a]),v=(o||[]).length<=1,x=(s||[]).length<=1,R=(m||[]).length<=1;return e.createElement("div",{className:h.root},r&&e.createElement(j,{variant:"caption"},`${r}:`),e.createElement(n,{name:"system",label:"System",icon:e.createElement(C,null),filters:g,setFilters:b,options:m??[],disabled:O||R,customRenderOption:c}),e.createElement(n,{name:"owner",label:"Owner",icon:e.createElement(M,null),filters:p,setFilters:y,options:L??[],disabled:w,customRenderOption:c}),e.createElement(n,{name:"type",label:"Type",icon:e.createElement(D,null),filters:E,setFilters:u,options:s??[],disabled:k||x}),e.createElement(n,{name:"lifecycle",label:"Lifecycle",icon:e.createElement(N,null),filters:f,setFilters:d,options:o??[],disabled:F||v}))};export{z as FilterBar};
1
+ import{parseEntityRef as B}from"@backstage/catalog-model";import{EntityDisplayName as C}from"@backstage/plugin-catalog-react";import{makeStyles as D,Typography as G,Checkbox as N}from"@material-ui/core";import $ from"@material-ui/icons/Category";import j from"@material-ui/icons/Class";import q from"@material-ui/icons/Group";import z from"@material-ui/icons/Loop";import{toEntityFilterQuery as M}from"@spotify/backstage-plugin-soundcheck-common";import e,{useMemo as f}from"react";import{useGetEntityFacets as n}from"../../../hooks/catalog/useGetEntityFacets.esm.js";import{useGroupOptions as Q}from"../../../hooks/groups/useGroupOptions.esm.js";import l from"../../MultiSelectFilter/MultiSelectFilter.esm.js";const _=D(t=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:t.spacing(2)}})),y=(t,{selected:r})=>e.createElement(e.Fragment,null,e.createElement(N,{value:t,checked:r,color:"primary"}),e.createElement(C,{entityRef:t,hideIcon:!0})),A=({track:t,label:r,owners:d,setOwners:E,lifecycles:u,setLifecycles:g,types:b,setTypes:h,systems:F,setSystems:L})=>{const w=_(),o=M(t.filter),{options:s,isLoading:k}=Q(),O=f(()=>s.map(i=>i.ref),[s]),{data:a,isLoading:x}=n("spec.lifecycle",o),{data:m,isLoading:v}=n("spec.type",o),{data:c,isLoading:R}=n("relations.partOf",o),p=f(()=>c?.filter(i=>{try{return B(i).kind.toLowerCase()==="system"}catch{return!1}}),[c]),S=(a||[]).length<=1,T=(m||[]).length<=1,I=(p||[]).length<=1;return e.createElement("div",{className:w.root},r&&e.createElement(G,{variant:"caption"},`${r}:`),e.createElement(l,{name:"system",label:"System",icon:e.createElement($,null),filters:F,setFilters:L,options:p??[],disabled:R||I,customRenderOption:y}),e.createElement(l,{name:"owner",label:"Owner",icon:e.createElement(q,null),filters:d,setFilters:E,options:O??[],disabled:k,customRenderOption:y}),e.createElement(l,{name:"type",label:"Type",icon:e.createElement(j,null),filters:b,setFilters:h,options:m??[],disabled:v||T}),e.createElement(l,{name:"lifecycle",label:"Lifecycle",icon:e.createElement(z,null),filters:u,setFilters:g,options:a??[],disabled:x||S}))};export{A as FilterBar};
2
2
  //# sourceMappingURL=FilterBar.esm.js.map
@@ -1,2 +1,2 @@
1
- import{MarkdownContent as G,Content as T}from"@backstage/core-components";import{useRouteRef as Q}from"@backstage/core-plugin-api";import{EntityRefLink as W}from"@backstage/plugin-catalog-react";import{usePermission as R}from"@backstage/plugin-permission-react";import{makeStyles as _,Button as $,Paper as j,Tabs as q,Tab as N}from"@material-ui/core";import{soundcheckTrackReadPermission as J,soundcheckTrackUpdatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import t,{useState as X,useMemo as E}from"react";import{useParams as Y,useNavigate as Z}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as ee}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as te}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as re}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import{useSearchParam as u}from"../../hooks/useSearchParam.esm.js";import{trackEditRouteRef as ae}from"../../routes.esm.js";import{LevelCard as ie}from"../LevelCard/LevelCard.esm.js";import{LoadingIndicator as ne}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as oe}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as se,DEFAULT_HEADER as ce}from"../SoundcheckHeader/useHeader.esm.js";import{FilterBar as me}from"./FilterBar/FilterBar.esm.js";import{TrackEntitiesTable as le}from"./TrackEntitiesTable/TrackEntitiesTable.esm.js";import{TrackProgressCard as de}from"./TrackProgressCard.esm.js";const L=e=>{const{lifecycles:a,owners:c,types:i,systems:l}=e,n=a?.length?{"spec.lifecycle":a}:void 0,d=c?.length?{"relations.ownedBy":c}:void 0,o=i?.length?{"spec.type":i}:void 0,p=l?.length?{"relations.partOf":l}:void 0;if(n||d||o||p)return{...n,...d,...o,...p}},pe=_(e=>({root:{height:"100%",background:e.palette.background.default},header:{backgroundColor:e.palette.background.paper,borderRadius:0,marginBottom:e.spacing(2)},trackProgressContainer:{marginBottom:e.spacing(3)},trackContainerContent:{paddingTop:e.spacing(1),paddingBottom:e.spacing(1),backgroundColor:e.palette.background.paper},levelCard:{margin:e.spacing(1,0,2)},editButton:{marginLeft:"auto"},tabsContainer:{margin:e.spacing(3,0)},trackEntitiesContainer:{marginTop:e.spacing(1)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0}},content:{paddingTop:0}}));function P({children:e,value:a,index:c}){return t.createElement("div",{hidden:a!==c},a===c&&e)}const fe=()=>{const e=pe(),[a,c]=X(0),[i,l]=u("owners"),[n,d]=u("lifecycles"),[o,p]=u("types"),[m,B]=u("systems"),S=(g,y)=>{c(y)},{trackId:s}=Y(),{data:D,isLoading:f,isError:I}=ee({ids:[s??""],first:1}),r=D?.edges?.[0]?.node,{data:k,isLoading:v,isError:x}=te({trackId:s,filter:L({lifecycles:n,owners:i,types:o,systems:m})},!!s),{data:A,isLoading:F,isError:H}=re({trackId:s,filter:L({lifecycles:n,owners:i,types:o,systems:m}),numberOfDays:30},!!s),{loading:M,allowed:O}=R({permission:J,resourceRef:s}),{loading:C,allowed:h}=R({permission:K,resourceRef:s}),b=Z(),w=Q(ae),z=E(()=>r?.ownerEntityRef?t.createElement(W,{color:"inherit",entityRef:r.ownerEntityRef}):null,[r?.ownerEntityRef]),U=E(()=>!C&&h&&r?.isEditable?t.createElement($,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{b(w({trackId:r.id}))}},"Edit Track"):null,[h,e.editButton,w,C,b,r]),V=E(()=>r?.description?t.createElement(G,{className:e.headerDescription,content:r.description}):null,[e.headerDescription,r?.description]);return se({title:r?.name??ce.title,description:V,customSubtitle:z,sectionRight:U}),t.createElement("div",null,t.createElement(oe,{entityName:"track",entityId:s,showNotFound:!f&&!r,showCannotView:!M&&!O}),f&&t.createElement(ne,null),r&&t.createElement("div",{className:e.root},t.createElement(j,{elevation:1,className:e.header},t.createElement(T,{className:e.trackContainerContent},t.createElement(me,{track:r,owners:i,setOwners:l,lifecycles:n,setLifecycles:d,types:o,setTypes:p,systems:m,setSystems:B}))),t.createElement(T,{className:e.content},t.createElement("div",{className:e.trackProgressContainer},t.createElement(de,{track:r,status:k,history:A,isLoading:f||v||F,isError:I||x||H})),t.createElement("div",{className:e.tabsContainer},t.createElement(q,{value:a,onChange:S},t.createElement(N,{label:"Levels"}),t.createElement(N,{label:"Entities"})),t.createElement(P,{value:a,index:0},r&&r.levels?.map((g,y)=>t.createElement("div",{className:e.levelCard,key:g.ordinal},t.createElement(ie,{track:r,level:g,index:y,data:k,isLoading:f||v,lifecycles:n,owners:i,types:o,systems:m})))),t.createElement(P,{value:a,index:1},r&&t.createElement("div",{className:e.trackEntitiesContainer},t.createElement(le,{track:r,lifecycles:n,owners:i,types:o,systems:m})))))))};export{fe as TrackPage};
1
+ import{MarkdownContent as G,Content as N}from"@backstage/core-components";import{useRouteRef as Q}from"@backstage/core-plugin-api";import{EntityRefLink as W}from"@backstage/plugin-catalog-react";import{usePermission as T}from"@backstage/plugin-permission-react";import{makeStyles as $,Button as j,Paper as q,Tabs as J,Tab as L}from"@material-ui/core";import{soundcheckTrackReadPermission as K,soundcheckTrackUpdatePermission as X}from"@spotify/backstage-plugin-soundcheck-common";import t,{useState as Y,useMemo as E}from"react";import{useParams as Z,useNavigate as _}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as ee}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as te}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as re}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import{useSearchParam as f}from"../../hooks/useSearchParam.esm.js";import{trackEditRouteRef as ie}from"../../routes.esm.js";import{LevelCard as ae}from"../LevelCard/LevelCard.esm.js";import{LoadingIndicator as ne}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as oe}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as se}from"../SoundcheckHeader/useHeader.esm.js";import{FilterBar as ce}from"./FilterBar/FilterBar.esm.js";import{TrackEntitiesTable as le}from"./TrackEntitiesTable/TrackEntitiesTable.esm.js";import{TrackProgressCard as me}from"./TrackProgressCard.esm.js";const R=e=>{const{lifecycles:i,owners:c,types:a,systems:m}=e,n=i?.length?{"spec.lifecycle":i}:void 0,d=c?.length?{"relations.ownedBy":c}:void 0,o=a?.length?{"spec.type":a}:void 0,p=m?.length?{"relations.partOf":m}:void 0;if(n||d||o||p)return{...n,...d,...o,...p}},de=$(e=>({root:{height:"100%",background:e.palette.background.default},header:{backgroundColor:e.palette.background.paper,borderRadius:0,marginBottom:e.spacing(2)},trackProgressContainer:{marginBottom:e.spacing(3)},trackContainerContent:{paddingTop:e.spacing(1),paddingBottom:e.spacing(1),backgroundColor:e.palette.background.paper},levelCard:{margin:e.spacing(1,0,2)},editButton:{marginLeft:"auto"},tabsContainer:{margin:e.spacing(3,0)},trackEntitiesContainer:{marginTop:e.spacing(1)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0},"& a":{color:"inherit",textDecoration:"underline"}},content:{paddingTop:0},ownerLink:{"& span":{color:"inherit","&:hover":{textDecoration:"underline"}}}}));function P({children:e,value:i,index:c}){return t.createElement("div",{hidden:i!==c},i===c&&e)}const pe=()=>{const e=de(),[i,c]=Y(0),[a,m]=f("owners"),[n,d]=f("lifecycles"),[o,p]=f("types"),[l,B]=f("systems"),S=(g,y)=>{c(y)},{trackId:s}=Z(),{data:x,isLoading:u,isError:D}=ee({ids:[s??""],first:1}),r=x?.edges?.[0]?.node,{data:k,isLoading:h,isError:I}=te({trackId:s,filter:R({lifecycles:n,owners:a,types:o,systems:l})},!!s),{data:M,isLoading:O,isError:z}=re({trackId:s,filter:R({lifecycles:n,owners:a,types:o,systems:l}),numberOfDays:30},!!s),{loading:F,allowed:H}=T({permission:K,resourceRef:s}),{loading:v,allowed:C}=T({permission:X,resourceRef:s}),w=_(),b=Q(ie),A=E(()=>r?.ownerEntityRef?t.createElement(W,{color:"inherit",entityRef:r.ownerEntityRef,className:e.ownerLink}):null,[r?.ownerEntityRef,e.ownerLink]),U=E(()=>!v&&C&&r?.isEditable?t.createElement(j,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{w(b({trackId:r.id}))}},"Edit Track"):null,[C,e.editButton,b,v,w,r]),V=E(()=>r?.description?t.createElement(G,{className:e.headerDescription,content:r.description}):null,[e.headerDescription,r?.description]);return se({title:r?.name,description:V,customSubtitle:A,sectionRight:U}),t.createElement("div",null,t.createElement(oe,{entityName:"track",entityId:s,showNotFound:!u&&!r,showCannotView:!F&&!H}),u&&t.createElement(ne,null),r&&t.createElement("div",{className:e.root},t.createElement(q,{elevation:1,className:e.header},t.createElement(N,{className:e.trackContainerContent},t.createElement(ce,{track:r,owners:a,setOwners:m,lifecycles:n,setLifecycles:d,types:o,setTypes:p,systems:l,setSystems:B}))),t.createElement(N,{className:e.content},t.createElement("div",{className:e.trackProgressContainer},t.createElement(me,{track:r,status:k,history:M,isLoading:u||h||O,isError:D||I||z})),t.createElement("div",{className:e.tabsContainer},t.createElement(J,{value:i,onChange:S},t.createElement(L,{label:"Levels"}),t.createElement(L,{label:"Entities"})),t.createElement(P,{value:i,index:0},r&&r.levels?.map((g,y)=>t.createElement("div",{className:e.levelCard,key:g.ordinal},t.createElement(ae,{track:r,level:g,index:y,data:k,isLoading:u||h,lifecycles:n,owners:a,types:o,systems:l})))),t.createElement(P,{value:i,index:1},r&&t.createElement("div",{className:e.trackEntitiesContainer},t.createElement(le,{track:r,lifecycles:n,owners:a,types:o,systems:l})))))))};export{pe as TrackPage};
2
2
  //# sourceMappingURL=TrackPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useRouteRef as Q,useApi as Y,featureFlagsApiRef as q}from"@backstage/core-plugin-api";import{usePermission as z}from"@backstage/plugin-permission-react";import{makeStyles as J,Button as T,Grid as o}from"@material-ui/core";import{soundcheckTrackCreatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as i,useEffect as U}from"react";import{useNavigate as V}from"react-router-dom";import X from"react-use/lib/useDebounce";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{useGetAllTracks as Z}from"../../../hooks/tracks/useGetAllTracks.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGetTrackOwners as _}from"../../../hooks/tracks/useGetTrackOwners.esm.js";import ee from"../../../images/no-results.svg";import{trackCreateRouteRef as re}from"../../../routes.esm.js";import{FilterDefault as v}from"../../../utils/filters.esm.js";import{EmptyState as y}from"../../EmptyState/EmptyState.esm.js";import{Pagination as te}from"../../Pagination/Pagination.esm.js";import{SearchFilters as ae}from"../../SearchFilters/SearchFilters.esm.js";import{TrackEmptyState as d,TrackNoResults as x}from"./TrackEmptyState.esm.js";import{TracksOverviewSkeleton as oe}from"./TracksOverviewSkeleton.esm.js";import{TrackSummaryCard as ie}from"./TrackSummaryCard.esm.js";const se=J(t=>({headerButtons:{display:"flex",gap:t.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:t.spacing(0,0,1)},container:{padding:t.spacing(3),gap:t.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:t.spacing(1.5),paddingBottom:t.spacing(1.5)}})),ne=({tracksPerPage:t,currentCursor:b})=>{const s=se(),[g,w]=i(b),[l,A]=i(""),[u,N]=i(v.Alpha),[f,S]=i(v.Owner),[B,R]=i(""),{data:I,isLoading:F}=_();X(()=>{R(l)},500,[l]);const{loading:h,allowed:O}=z({permission:K}),L=V(),G=Q(re),k=()=>L(G()),{data:a,isLoading:c}=Z({ids:void 0,types:["standard","playlist"],first:t,after:g,orderAlphabetical:u,searchByOwner:f,searchByName:B}),[m,D]=i(a),p=m?.edges?.map(r=>r.node),[P,j]=i([]),C=Y(q),H=!C.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-track-creation")||C.isActive("soundcheck-enable-track-creation"),E=!O||!H,W=r=>{N(r.target.value)},$=r=>{S(r.target.value)};if(U(()=>{a&&D(()=>({totalCount:a.totalCount,edges:a.edges,pageInfo:{startCursor:a.pageInfo.startCursor,endCursor:a.pageInfo.endCursor,hasNextPage:a?.pageInfo.hasNextPage??!1,hasPreviousPage:a?.pageInfo.hasPreviousPage??!1}}))},[a]),!c&&!p)return e.createElement(y,{title:d.title,description:d.description,imgSrc:ee,action:!h&&e.createElement(T,{disabled:E,variant:"contained",color:"primary",onClick:k},d.callToAction)});let n;c?n=e.createElement(oe,null):p?.length?n=p?.map(r=>e.createElement(o,{key:r.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`track card ${r.id}`},e.createElement(ie,{summary:r}))):n=e.createElement(o,{xs:12,item:!0,role:"listitem","aria-label":"result"},e.createElement(y,{title:x.title,description:x.description}));const M=m?.pageInfo.hasNextPage||P?.length>0;return e.createElement(o,{container:!0,direction:"row",className:s.container},e.createElement(o,{container:!0,className:s.header},e.createElement(ae,{searchPlaceholder:"Search Available Tracks",isLoading:c||F,searchTerm:l,setSearchTerm:A,filterAlpha:u,handleAlphabeticalFilterChange:W,filterOwner:f,handleOwnerFilterChange:$,owners:I}),e.createElement(o,{item:!0,xs:2,className:s.headerButtons},!h&&e.createElement(T,{disabled:E,variant:"contained",color:"primary",onClick:k,className:s.createButton},"Create Track"))),e.createElement(o,{container:!0,spacing:4,role:"list","aria-label":"tracks"},n),M&&e.createElement(o,{item:!0,xs:12},e.createElement(te,{response:m,listingsPerPage:t,cursor:g,setCursor:w,prevCursors:P,setPrevCursors:j,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})))};export{ne as TrackListPage};
1
+ import{useRouteRef as Y,useApi as Z,featureFlagsApiRef as q}from"@backstage/core-plugin-api";import{usePermission as z}from"@backstage/plugin-permission-react";import{makeStyles as J,Button as b,Grid as i}from"@material-ui/core";import{soundcheckTrackCreatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as o,useEffect as w}from"react";import{useNavigate as U}from"react-router-dom";import V from"react-use/lib/useDebounce";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{useGetAllTracks as X}from"../../../hooks/tracks/useGetAllTracks.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGetTrackOwners as _}from"../../../hooks/tracks/useGetTrackOwners.esm.js";import ee from"../../../images/no-results.svg";import{trackCreateRouteRef as re}from"../../../routes.esm.js";import{FilterDefault as x}from"../../../utils/filters.esm.js";import{EmptyState as N}from"../../EmptyState/EmptyState.esm.js";import{Pagination as te}from"../../Pagination/Pagination.esm.js";import{SearchFilters as ae}from"../../SearchFilters/SearchFilters.esm.js";import{TrackEmptyState as d,TrackNoResults as A}from"./TrackEmptyState.esm.js";import{TracksOverviewSkeleton as ie}from"./TracksOverviewSkeleton.esm.js";import{TrackSummaryCard as oe}from"./TrackSummaryCard.esm.js";const se=J(t=>({headerButtons:{display:"flex",gap:t.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:t.spacing(0,0,1)},container:{padding:t.spacing(3),gap:t.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:t.spacing(1.5),paddingBottom:t.spacing(1.5)}})),ne=({tracksPerPage:t,currentCursor:S})=>{const s=se(),[g,u]=o(S),[l,R]=o(""),[f,B]=o(x.Alpha),[h,I]=o(x.Owner),[k,F]=o(""),{data:O,isLoading:L}=_();V(()=>{F(l)},500,[l]);const{loading:P,allowed:D}=z({permission:K}),G=U(),j=Y(re),C=()=>G(j()),{data:a,isLoading:c}=X({ids:void 0,types:["standard","playlist"],first:t,after:g,orderAlphabetical:f,searchByOwner:h,searchByName:k}),[m,H]=o(a),p=m?.edges?.map(r=>r.node),[E,v]=o([]);w(()=>{u(void 0),v([])},[k]);const T=Z(q),W=!T.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-track-creation")||T.isActive("soundcheck-enable-track-creation"),y=!D||!W,$=r=>{B(r.target.value)},M=r=>{I(r.target.value)};if(w(()=>{a&&H(()=>({totalCount:a.totalCount,edges:a.edges,pageInfo:{startCursor:a.pageInfo.startCursor,endCursor:a.pageInfo.endCursor,hasNextPage:a?.pageInfo.hasNextPage??!1,hasPreviousPage:a?.pageInfo.hasPreviousPage??!1}}))},[a]),!c&&!p)return e.createElement(N,{title:d.title,description:d.description,imgSrc:ee,action:!P&&e.createElement(b,{disabled:y,variant:"contained",color:"primary",onClick:C},d.callToAction)});let n;c?n=e.createElement(ie,null):p?.length?n=p?.map(r=>e.createElement(i,{key:r.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`track card ${r.id}`},e.createElement(oe,{summary:r}))):n=e.createElement(i,{xs:12,item:!0,role:"listitem","aria-label":"result"},e.createElement(N,{title:A.title,description:A.description}));const Q=m?.pageInfo.hasNextPage||E?.length>0;return e.createElement(i,{container:!0,direction:"row",className:s.container},e.createElement(i,{container:!0,className:s.header},e.createElement(ae,{searchPlaceholder:"Search Available Tracks",isLoading:c||L,searchTerm:l,setSearchTerm:R,filterAlpha:f,handleAlphabeticalFilterChange:$,filterOwner:h,handleOwnerFilterChange:M,owners:O}),e.createElement(i,{item:!0,xs:2,className:s.headerButtons},!P&&e.createElement(b,{disabled:y,variant:"contained",color:"primary",onClick:C,className:s.createButton},"Create Track"))),e.createElement(i,{container:!0,spacing:4,role:"list","aria-label":"tracks"},n),Q&&e.createElement(i,{item:!0,xs:12},e.createElement(te,{response:m,listingsPerPage:t,cursor:g,setCursor:u,prevCursors:E,setPrevCursors:v,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})))};export{ne as TrackListPage};
2
2
  //# sourceMappingURL=TrackListPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{stringifyEntityRef as m}from"@backstage/catalog-model";import{useApi as a,identityApiRef as d}from"@backstage/core-plugin-api";import{catalogApiRef as p}from"@backstage/plugin-catalog-react";import y,{createContext as E,useState as R,useEffect as v,useContext as x}from"react";import A from"react-use/lib/useAsync";const l={loading:!0},f=E(l),C=()=>x(f),P=({children:u})=>{const[c,n]=R(l),s=a(p),t=a(d),{value:e,loading:r,error:o}=A(async()=>{const[{token:i},g]=await Promise.all([t.getCredentials(),t.getBackstageIdentity()]);return i?await s.getEntityByRef(g.userEntityRef):null},[s,t]);return v(()=>{if(e){const i=m(e);n({user:e,userEntityRef:i,loading:r,error:o})}else n({loading:r,error:o})},[e,r,o]),y.createElement(f.Provider,{value:c},u)};export{P as UserProvider,C as useLoggedInUser};
1
+ import{stringifyEntityRef as m}from"@backstage/catalog-model";import{useApi as a,identityApiRef as d}from"@backstage/core-plugin-api";import{catalogApiRef as p}from"@backstage/plugin-catalog-react";import y,{createContext as E,useState as R,useEffect as v,useContext as A}from"react";import x from"react-use/lib/useAsync";const l={loading:!0},f=E(l),C=()=>A(f),P=({children:u})=>{const[c,n]=R(l),s=a(p),t=a(d),{value:e,loading:r,error:o}=x(async()=>{const[{token:i},g]=await Promise.all([t.getCredentials(),t.getBackstageIdentity()]);return i?await s.getEntityByRef(g.userEntityRef):null},[s,t]);return v(()=>{if(e){const i=m(e);n({user:e,userEntityRef:i,loading:r,error:o})}else n({loading:r,error:o})},[e,r,o]),y.createElement(f.Provider,{value:c},u)};export{P as UserProvider,C as useLoggedInUser};
2
2
  //# sourceMappingURL=UserProvider.esm.js.map
@@ -1,4 +1,4 @@
1
- import i from"graphql-tag";var u=(a=>(a.Medal="MEDAL",a))(u||{}),c=(a=>(a.CheckPassRate="CHECK_PASS_RATE",a.Lifecycle="LIFECYCLE",a.Name="NAME",a.Owner="OWNER",a.State="STATE",a.System="SYSTEM",a.Type="TYPE",a))(c||{}),l=(a=>(a.Asc="ASC",a.Desc="DESC",a))(l||{}),g=(a=>(a.Error="ERROR",a.Failed="FAILED",a.NotApplicable="NOT_APPLICABLE",a.NotReported="NOT_REPORTED",a.Passed="PASSED",a.Warning="WARNING",a))(g||{}),p=(a=>(a.CertificationLevel="CERTIFICATION_LEVEL",a.CheckPassRate="CHECK_PASS_RATE",a.Lifecycle="LIFECYCLE",a.Name="NAME",a.Owner="OWNER",a.System="SYSTEM",a.Type="TYPE",a))(p||{});const d=i`
1
+ import i from"graphql-tag";var o=(a=>(a.Medal="MEDAL",a))(o||{}),c=(a=>(a.Lifecycle="LIFECYCLE",a.Name="NAME",a.Owner="OWNER",a.State="STATE",a.System="SYSTEM",a.Type="TYPE",a))(c||{}),l=(a=>(a.Asc="ASC",a.Desc="DESC",a))(l||{}),g=(a=>(a.Error="ERROR",a.Failed="FAILED",a.NotApplicable="NOT_APPLICABLE",a.NotReported="NOT_REPORTED",a.Passed="PASSED",a.Warning="WARNING",a))(g||{}),p=(a=>(a.CertificationLevel="CERTIFICATION_LEVEL",a.CheckPassRate="CHECK_PASS_RATE",a.Lifecycle="LIFECYCLE",a.Name="NAME",a.Owner="OWNER",a.System="SYSTEM",a.Type="TYPE",a))(p||{});const d=i`
2
2
  fragment CertificationSummary on Certification {
3
3
  entityRef
4
4
  program {
@@ -63,7 +63,7 @@ import i from"graphql-tag";var u=(a=>(a.Medal="MEDAL",a))(u||{}),c=(a=>(a.CheckP
63
63
  result
64
64
  timestamp
65
65
  }
66
- `,o=i`
66
+ `,u=i`
67
67
  fragment LevelResultDetails on LevelResult {
68
68
  ordinal
69
69
  name
@@ -165,7 +165,7 @@ import i from"graphql-tag";var u=(a=>(a.Medal="MEDAL",a))(u||{}),c=(a=>(a.CheckP
165
165
  description
166
166
  }
167
167
  }
168
- `,$=i`
168
+ `,q=i`
169
169
  mutation createProgram($input: ProgramInput!) {
170
170
  program: createProgram(input: $input) {
171
171
  id
@@ -175,7 +175,7 @@ import i from"graphql-tag";var u=(a=>(a.Medal="MEDAL",a))(u||{}),c=(a=>(a.CheckP
175
175
  documentationURL
176
176
  }
177
177
  }
178
- `,q=i`
178
+ `,$=i`
179
179
  mutation deleteCampaign($campaignId: String!) {
180
180
  campaignDeleted: deleteCampaign(campaignId: $campaignId)
181
181
  }
@@ -328,7 +328,7 @@ import i from"graphql-tag";var u=(a=>(a.Medal="MEDAL",a))(u||{}),c=(a=>(a.CheckP
328
328
  }
329
329
  }
330
330
  ${f}
331
- ${m}`,A=i`
331
+ ${m}`,b=i`
332
332
  query getCertificationDetails($entityRef: String!) {
333
333
  certifications(entityRef: $entityRef, includeFilteredChecks: false) {
334
334
  program {
@@ -346,7 +346,7 @@ ${m}`,A=i`
346
346
  }
347
347
  }
348
348
  ${s}
349
- ${o}`,H=i`
349
+ ${u}`,A=i`
350
350
  query getCertificationDetailsForTrack($entityRef: String!, $programId: String!) {
351
351
  programCertification(
352
352
  entityRef: $entityRef
@@ -369,7 +369,7 @@ ${o}`,H=i`
369
369
  }
370
370
  }
371
371
  ${s}
372
- ${o}`,b=i`
372
+ ${u}`,H=i`
373
373
  query getCertificationStatus($input: CertificationStatusInput!) {
374
374
  certificationStatus(input: $input) {
375
375
  numberOfEntities
@@ -383,7 +383,7 @@ ${o}`,b=i`
383
383
  }
384
384
  }
385
385
  }
386
- `,M=i`
386
+ `,x=i`
387
387
  query getCertificationStatusHistory($input: CertificationStatusHistoryInput!) {
388
388
  certificationStatusHistory(input: $input) {
389
389
  numberOfEntities
@@ -399,7 +399,7 @@ ${o}`,b=i`
399
399
  }
400
400
  }
401
401
  }
402
- `,x=i`
402
+ `,M=i`
403
403
  query getCheckResultDetails($entityRef: String!, $programId: String!, $checkId: String!) {
404
404
  checkResult(entityRef: $entityRef, programId: $programId, checkId: $checkId) {
405
405
  ...CheckResultDetails
@@ -439,11 +439,12 @@ ${o}`,b=i`
439
439
  notReported
440
440
  }
441
441
  }
442
- `,_=i`
442
+ `,Y=i`
443
443
  query getCheckStatusHistory($input: CheckStatusHistoryInput!) {
444
444
  checkStatusHistory(input: $input) {
445
445
  numberOfEntities
446
446
  history {
447
+ date
447
448
  passed
448
449
  failed
449
450
  warning
@@ -453,7 +454,7 @@ ${o}`,b=i`
453
454
  }
454
455
  }
455
456
  }
456
- `,Y=i`
457
+ `,_=i`
457
458
  query getCheckTemplates {
458
459
  checkerTemplates {
459
460
  id
@@ -492,6 +493,7 @@ ${o}`,b=i`
492
493
  isEditable
493
494
  schedule
494
495
  pathResolver
496
+ templateRef
495
497
  }
496
498
  }
497
499
  pageInfo {
@@ -507,6 +509,10 @@ ${o}`,b=i`
507
509
  entityRefsForTechHealthFilter(ownerEntityRef: $ownerEntityRef)
508
510
  }
509
511
  `,j=i`
512
+ query getExecutableChecks {
513
+ executableChecks
514
+ }
515
+ `,z=i`
510
516
  query getFacetsForOwner($ownerEntityRef: String!) {
511
517
  facetsForOwner(ownerEntityRef: $ownerEntityRef) {
512
518
  types {
@@ -516,7 +522,7 @@ ${o}`,b=i`
516
522
  }
517
523
  }
518
524
  }
519
- `,z=i`
525
+ `,J=i`
520
526
  query getFact($entityRef: String!, $factRef: String!, $path: String, $pathResolver: String, $refresh: Boolean) {
521
527
  fact(
522
528
  entityRef: $entityRef
@@ -540,7 +546,7 @@ ${o}`,b=i`
540
546
  resolvedValue
541
547
  }
542
548
  }
543
- `,J=i`
549
+ `,Q=i`
544
550
  query getCollectors($ids: [String!]) {
545
551
  collectors(ids: $ids) {
546
552
  id
@@ -558,13 +564,13 @@ ${o}`,b=i`
558
564
  }
559
565
  }
560
566
  }
561
- `,Q=i`
567
+ `,X=i`
562
568
  query getFactSchemas($collectorId: String!, $factName: String!) {
563
569
  factSchema(collectorId: $collectorId, factName: $factName) {
564
570
  schema
565
571
  }
566
572
  }
567
- `,X=i`
573
+ `,Z=i`
568
574
  query getIndividualCheckPassRates($filter: Filter) {
569
575
  individualCheckPassRates(filter: $filter) {
570
576
  id
@@ -575,7 +581,7 @@ ${o}`,b=i`
575
581
  trendPassRates
576
582
  }
577
583
  }
578
- `,Z=i`
584
+ `,ee=i`
579
585
  query getIndividualEntityPassRates($input: PassRatesInput) {
580
586
  individualEntityPassRates(input: $input) {
581
587
  totalCount
@@ -597,7 +603,7 @@ ${o}`,b=i`
597
603
  }
598
604
  }
599
605
  }
600
- `,ee=i`
606
+ `,te=i`
601
607
  query getIndividualGroupPassRates($input: PassRatesInput) {
602
608
  groupPassRates(input: $input) {
603
609
  totalCount
@@ -619,7 +625,7 @@ ${o}`,b=i`
619
625
  }
620
626
  }
621
627
  }
622
- `,te=i`
628
+ `,re=i`
623
629
  query getIndividualTrackPassRate($filter: Filter) {
624
630
  individualTrackPassRate(filter: $filter) {
625
631
  id
@@ -634,25 +640,25 @@ ${o}`,b=i`
634
640
  }
635
641
  }
636
642
  }
637
- `,re=i`
643
+ `,ae=i`
638
644
  query getOperators {
639
645
  operators {
640
646
  name
641
647
  title
642
648
  }
643
649
  }
644
- `,ae=i`
650
+ `,ie=i`
645
651
  query getOverallCheckPassRates($filter: Filter) {
646
652
  overallCheckPassRates(filter: $filter)
647
653
  }
648
- `,ie=i`
654
+ `,ne=i`
649
655
  query getOverallEntityPassRates($filter: Filter) {
650
656
  overallEntityPassRates(filter: $filter) {
651
657
  id
652
658
  trendPassRates
653
659
  }
654
660
  }
655
- `,ne=i`
661
+ `,se=i`
656
662
  query getOverallGroupPassRates($input: PassRatesInput) {
657
663
  groupPassRates(input: $input) {
658
664
  totalCount
@@ -672,7 +678,7 @@ ${o}`,b=i`
672
678
  }
673
679
  }
674
680
  }
675
- `,se=i`
681
+ `,ue=i`
676
682
  query getOverallTrackPassRate($filter: Filter) {
677
683
  overallTrackPassRate(filter: $filter) {
678
684
  levelOrdinal
@@ -686,7 +692,7 @@ ${o}`,b=i`
686
692
  id
687
693
  }
688
694
  }
689
- `,ue=i`
695
+ `,ce=i`
690
696
  query getPlaylists($entityRef: String!) {
691
697
  playlists(entityRef: $entityRef) {
692
698
  id
@@ -696,14 +702,15 @@ ${o}`,b=i`
696
702
  trackIds
697
703
  }
698
704
  }
699
- `,ce=i`
700
- query getProgramOverviewForOwner($ownerEntityRef: String!, $facet: FacetInput, $first: Int, $after: String) {
705
+ `,le=i`
706
+ query getProgramOverviewForOwner($ownerEntityRef: String!, $facet: FacetInput, $first: Int, $after: String, $entitySearch: String) {
701
707
  programOverviewForOwner(
702
708
  ownerEntityRef: $ownerEntityRef
703
709
  facet: $facet
704
710
  includeFilteredChecks: false
705
711
  first: $first
706
712
  after: $after
713
+ entitySearch: $entitySearch
707
714
  ) {
708
715
  programs {
709
716
  program {
@@ -726,7 +733,7 @@ ${o}`,b=i`
726
733
  }
727
734
  }
728
735
  ${s}
729
- ${y}`,le=i`
736
+ ${y}`,ge=i`
730
737
  query getTrackEntities($input: TrackEntitiesInput!) {
731
738
  trackEntities(input: $input) {
732
739
  totalCount
@@ -752,12 +759,14 @@ ${y}`,le=i`
752
759
  passed
753
760
  failed
754
761
  warning
762
+ error
755
763
  notApplicable
756
764
  notReported
757
765
  statusByLevel {
758
766
  ordinal
759
767
  passed
760
768
  failed
769
+ error
761
770
  warning
762
771
  notApplicable
763
772
  notReported
@@ -767,11 +776,11 @@ ${y}`,le=i`
767
776
  }
768
777
  }
769
778
  }
770
- `,ge=i`
779
+ `,pe=i`
771
780
  query getTrackOwners {
772
781
  trackOwners
773
782
  }
774
- `,pe=i`
783
+ `,de=i`
775
784
  query getTracks($filter: ListEntityFilter!) {
776
785
  programs(filter: $filter) {
777
786
  totalCount
@@ -799,5 +808,5 @@ ${y}`,le=i`
799
808
  }
800
809
  }
801
810
  }
802
- ${R}`,de=(a,n,e,t)=>a();function me(a,n=de){return{archiveCampaign(e,t){return n(r=>a.request(k,e,{...t,...r}),"archiveCampaign","mutation",e)},createCampaign(e,t){return n(r=>a.request(v,e,{...t,...r}),"createCampaign","mutation",e)},createCheck(e,t){return n(r=>a.request(P,e,{...t,...r}),"createCheck","mutation",e)},createProgram(e,t){return n(r=>a.request($,e,{...t,...r}),"createProgram","mutation",e)},deleteCampaign(e,t){return n(r=>a.request(q,e,{...t,...r}),"deleteCampaign","mutation",e)},deleteChecker(e,t){return n(r=>a.request(D,e,{...t,...r}),"deleteChecker","mutation",e)},deleteProgram(e,t){return n(r=>a.request(E,e,{...t,...r}),"deleteProgram","mutation",e)},executeCheck(e,t){return n(r=>a.request(S,e,{...t,...r}),"executeCheck","mutation",e)},updateCampaign(e,t){return n(r=>a.request(I,e,{...t,...r}),"updateCampaign","mutation",e)},updateCheck(e,t){return n(r=>a.request(O,e,{...t,...r}),"updateCheck","mutation",e)},updateCollectorConfig(e,t){return n(r=>a.request(F,e,{...t,...r}),"updateCollectorConfig","mutation",e)},updateProgram(e,t){return n(r=>a.request(w,e,{...t,...r}),"updateProgram","mutation",e)},getAllCertifications(e,t){return n(r=>a.request(T,e,{...t,...r}),"getAllCertifications","query",e)},getCampaignOwners(e,t){return n(r=>a.request(L,e,{...t,...r}),"getCampaignOwners","query",e)},getCampaignProgress(e,t){return n(r=>a.request(G,e,{...t,...r}),"getCampaignProgress","query",e)},getCampaigns(e,t){return n(r=>a.request(N,e,{...t,...r}),"getCampaigns","query",e)},getCertificationDetails(e,t){return n(r=>a.request(A,e,{...t,...r}),"getCertificationDetails","query",e)},getCertificationDetailsForTrack(e,t){return n(r=>a.request(H,e,{...t,...r}),"getCertificationDetailsForTrack","query",e)},getCertificationStatus(e,t){return n(r=>a.request(b,e,{...t,...r}),"getCertificationStatus","query",e)},getCertificationStatusHistory(e,t){return n(r=>a.request(M,e,{...t,...r}),"getCertificationStatusHistory","query",e)},getCheckResultDetails(e,t){return n(r=>a.request(x,e,{...t,...r}),"getCheckResultDetails","query",e)},getCheckEntities(e,t){return n(r=>a.request(B,e,{...t,...r}),"getCheckEntities","query",e)},getCheckOwners(e,t){return n(r=>a.request(U,e,{...t,...r}),"getCheckOwners","query",e)},getCheckStatus(e,t){return n(r=>a.request(V,e,{...t,...r}),"getCheckStatus","query",e)},getCheckStatusHistory(e,t){return n(r=>a.request(_,e,{...t,...r}),"getCheckStatusHistory","query",e)},getCheckTemplates(e,t){return n(r=>a.request(Y,e,{...t,...r}),"getCheckTemplates","query",e)},getCheckers(e,t){return n(r=>a.request(W,e,{...t,...r}),"getCheckers","query",e)},getEntityRefsForTechHealthFilter(e,t){return n(r=>a.request(K,e,{...t,...r}),"getEntityRefsForTechHealthFilter","query",e)},getFacetsForOwner(e,t){return n(r=>a.request(j,e,{...t,...r}),"getFacetsForOwner","query",e)},getFact(e,t){return n(r=>a.request(z,e,{...t,...r}),"getFact","query",e)},getCollectors(e,t){return n(r=>a.request(J,e,{...t,...r}),"getCollectors","query",e)},getFactSchemas(e,t){return n(r=>a.request(Q,e,{...t,...r}),"getFactSchemas","query",e)},getIndividualCheckPassRates(e,t){return n(r=>a.request(X,e,{...t,...r}),"getIndividualCheckPassRates","query",e)},getIndividualEntityPassRates(e,t){return n(r=>a.request(Z,e,{...t,...r}),"getIndividualEntityPassRates","query",e)},getIndividualGroupPassRates(e,t){return n(r=>a.request(ee,e,{...t,...r}),"getIndividualGroupPassRates","query",e)},getIndividualTrackPassRate(e,t){return n(r=>a.request(te,e,{...t,...r}),"getIndividualTrackPassRate","query",e)},getOperators(e,t){return n(r=>a.request(re,e,{...t,...r}),"getOperators","query",e)},getOverallCheckPassRates(e,t){return n(r=>a.request(ae,e,{...t,...r}),"getOverallCheckPassRates","query",e)},getOverallEntityPassRates(e,t){return n(r=>a.request(ie,e,{...t,...r}),"getOverallEntityPassRates","query",e)},getOverallGroupPassRates(e,t){return n(r=>a.request(ne,e,{...t,...r}),"getOverallGroupPassRates","query",e)},getOverallTrackPassRate(e,t){return n(r=>a.request(se,e,{...t,...r}),"getOverallTrackPassRate","query",e)},getPathResolvers(e,t){return n(r=>a.request(oe,e,{...t,...r}),"getPathResolvers","query",e)},getPlaylists(e,t){return n(r=>a.request(ue,e,{...t,...r}),"getPlaylists","query",e)},getProgramOverviewForOwner(e,t){return n(r=>a.request(ce,e,{...t,...r}),"getProgramOverviewForOwner","query",e)},getTrackEntities(e,t){return n(r=>a.request(le,e,{...t,...r}),"getTrackEntities","query",e)},getTrackOwners(e,t){return n(r=>a.request(ge,e,{...t,...r}),"getTrackOwners","query",e)},getTracks(e,t){return n(r=>a.request(pe,e,{...t,...r}),"getTracks","query",e)}}}export{k as ArchiveCampaignDocument,u as BadgeVariant,m as CampaignLevelFragmentDoc,d as CertificationSummaryFragmentDoc,c as CheckEntityField,h as CheckResultDetailsFragmentDoc,C as CheckResultSummaryFragmentDoc,v as CreateCampaignDocument,P as CreateCheckDocument,$ as CreateProgramDocument,q as DeleteCampaignDocument,D as DeleteCheckerDocument,E as DeleteProgramDocument,l as Direction,S as ExecuteCheckDocument,T as GetAllCertificationsDocument,L as GetCampaignOwnersDocument,G as GetCampaignProgressDocument,N as GetCampaignsDocument,A as GetCertificationDetailsDocument,H as GetCertificationDetailsForTrackDocument,b as GetCertificationStatusDocument,M as GetCertificationStatusHistoryDocument,B as GetCheckEntitiesDocument,U as GetCheckOwnersDocument,x as GetCheckResultDetailsDocument,V as GetCheckStatusDocument,_ as GetCheckStatusHistoryDocument,Y as GetCheckTemplatesDocument,W as GetCheckersDocument,J as GetCollectorsDocument,K as GetEntityRefsForTechHealthFilterDocument,j as GetFacetsForOwnerDocument,z as GetFactDocument,Q as GetFactSchemasDocument,X as GetIndividualCheckPassRatesDocument,Z as GetIndividualEntityPassRatesDocument,ee as GetIndividualGroupPassRatesDocument,te as GetIndividualTrackPassRateDocument,re as GetOperatorsDocument,ae as GetOverallCheckPassRatesDocument,ie as GetOverallEntityPassRatesDocument,ne as GetOverallGroupPassRatesDocument,se as GetOverallTrackPassRateDocument,oe as GetPathResolversDocument,ue as GetPlaylistsDocument,ce as GetProgramOverviewForOwnerDocument,le as GetTrackEntitiesDocument,ge as GetTrackOwnersDocument,pe as GetTracksDocument,s as HighestLevelFragmentDoc,o as LevelResultDetailsFragmentDoc,f as MilestoneFragmentDoc,y as OverviewLevelResultFragmentDoc,g as ResultState,p as TrackEntityField,R as TrackLevelFragmentDoc,I as UpdateCampaignDocument,O as UpdateCheckDocument,F as UpdateCollectorConfigDocument,w as UpdateProgramDocument,me as getSdk};
811
+ ${R}`,me=(a,n,e,t)=>a();function fe(a,n=me){return{archiveCampaign(e,t){return n(r=>a.request(k,e,{...t,...r}),"archiveCampaign","mutation",e)},createCampaign(e,t){return n(r=>a.request(v,e,{...t,...r}),"createCampaign","mutation",e)},createCheck(e,t){return n(r=>a.request(P,e,{...t,...r}),"createCheck","mutation",e)},createProgram(e,t){return n(r=>a.request(q,e,{...t,...r}),"createProgram","mutation",e)},deleteCampaign(e,t){return n(r=>a.request($,e,{...t,...r}),"deleteCampaign","mutation",e)},deleteChecker(e,t){return n(r=>a.request(D,e,{...t,...r}),"deleteChecker","mutation",e)},deleteProgram(e,t){return n(r=>a.request(E,e,{...t,...r}),"deleteProgram","mutation",e)},executeCheck(e,t){return n(r=>a.request(S,e,{...t,...r}),"executeCheck","mutation",e)},updateCampaign(e,t){return n(r=>a.request(I,e,{...t,...r}),"updateCampaign","mutation",e)},updateCheck(e,t){return n(r=>a.request(O,e,{...t,...r}),"updateCheck","mutation",e)},updateCollectorConfig(e,t){return n(r=>a.request(F,e,{...t,...r}),"updateCollectorConfig","mutation",e)},updateProgram(e,t){return n(r=>a.request(w,e,{...t,...r}),"updateProgram","mutation",e)},getAllCertifications(e,t){return n(r=>a.request(T,e,{...t,...r}),"getAllCertifications","query",e)},getCampaignOwners(e,t){return n(r=>a.request(L,e,{...t,...r}),"getCampaignOwners","query",e)},getCampaignProgress(e,t){return n(r=>a.request(G,e,{...t,...r}),"getCampaignProgress","query",e)},getCampaigns(e,t){return n(r=>a.request(N,e,{...t,...r}),"getCampaigns","query",e)},getCertificationDetails(e,t){return n(r=>a.request(b,e,{...t,...r}),"getCertificationDetails","query",e)},getCertificationDetailsForTrack(e,t){return n(r=>a.request(A,e,{...t,...r}),"getCertificationDetailsForTrack","query",e)},getCertificationStatus(e,t){return n(r=>a.request(H,e,{...t,...r}),"getCertificationStatus","query",e)},getCertificationStatusHistory(e,t){return n(r=>a.request(x,e,{...t,...r}),"getCertificationStatusHistory","query",e)},getCheckResultDetails(e,t){return n(r=>a.request(M,e,{...t,...r}),"getCheckResultDetails","query",e)},getCheckEntities(e,t){return n(r=>a.request(B,e,{...t,...r}),"getCheckEntities","query",e)},getCheckOwners(e,t){return n(r=>a.request(U,e,{...t,...r}),"getCheckOwners","query",e)},getCheckStatus(e,t){return n(r=>a.request(V,e,{...t,...r}),"getCheckStatus","query",e)},getCheckStatusHistory(e,t){return n(r=>a.request(Y,e,{...t,...r}),"getCheckStatusHistory","query",e)},getCheckTemplates(e,t){return n(r=>a.request(_,e,{...t,...r}),"getCheckTemplates","query",e)},getCheckers(e,t){return n(r=>a.request(W,e,{...t,...r}),"getCheckers","query",e)},getEntityRefsForTechHealthFilter(e,t){return n(r=>a.request(K,e,{...t,...r}),"getEntityRefsForTechHealthFilter","query",e)},getExecutableChecks(e,t){return n(r=>a.request(j,e,{...t,...r}),"getExecutableChecks","query",e)},getFacetsForOwner(e,t){return n(r=>a.request(z,e,{...t,...r}),"getFacetsForOwner","query",e)},getFact(e,t){return n(r=>a.request(J,e,{...t,...r}),"getFact","query",e)},getCollectors(e,t){return n(r=>a.request(Q,e,{...t,...r}),"getCollectors","query",e)},getFactSchemas(e,t){return n(r=>a.request(X,e,{...t,...r}),"getFactSchemas","query",e)},getIndividualCheckPassRates(e,t){return n(r=>a.request(Z,e,{...t,...r}),"getIndividualCheckPassRates","query",e)},getIndividualEntityPassRates(e,t){return n(r=>a.request(ee,e,{...t,...r}),"getIndividualEntityPassRates","query",e)},getIndividualGroupPassRates(e,t){return n(r=>a.request(te,e,{...t,...r}),"getIndividualGroupPassRates","query",e)},getIndividualTrackPassRate(e,t){return n(r=>a.request(re,e,{...t,...r}),"getIndividualTrackPassRate","query",e)},getOperators(e,t){return n(r=>a.request(ae,e,{...t,...r}),"getOperators","query",e)},getOverallCheckPassRates(e,t){return n(r=>a.request(ie,e,{...t,...r}),"getOverallCheckPassRates","query",e)},getOverallEntityPassRates(e,t){return n(r=>a.request(ne,e,{...t,...r}),"getOverallEntityPassRates","query",e)},getOverallGroupPassRates(e,t){return n(r=>a.request(se,e,{...t,...r}),"getOverallGroupPassRates","query",e)},getOverallTrackPassRate(e,t){return n(r=>a.request(ue,e,{...t,...r}),"getOverallTrackPassRate","query",e)},getPathResolvers(e,t){return n(r=>a.request(oe,e,{...t,...r}),"getPathResolvers","query",e)},getPlaylists(e,t){return n(r=>a.request(ce,e,{...t,...r}),"getPlaylists","query",e)},getProgramOverviewForOwner(e,t){return n(r=>a.request(le,e,{...t,...r}),"getProgramOverviewForOwner","query",e)},getTrackEntities(e,t){return n(r=>a.request(ge,e,{...t,...r}),"getTrackEntities","query",e)},getTrackOwners(e,t){return n(r=>a.request(pe,e,{...t,...r}),"getTrackOwners","query",e)},getTracks(e,t){return n(r=>a.request(de,e,{...t,...r}),"getTracks","query",e)}}}export{k as ArchiveCampaignDocument,o as BadgeVariant,m as CampaignLevelFragmentDoc,d as CertificationSummaryFragmentDoc,c as CheckEntityField,h as CheckResultDetailsFragmentDoc,C as CheckResultSummaryFragmentDoc,v as CreateCampaignDocument,P as CreateCheckDocument,q as CreateProgramDocument,$ as DeleteCampaignDocument,D as DeleteCheckerDocument,E as DeleteProgramDocument,l as Direction,S as ExecuteCheckDocument,T as GetAllCertificationsDocument,L as GetCampaignOwnersDocument,G as GetCampaignProgressDocument,N as GetCampaignsDocument,b as GetCertificationDetailsDocument,A as GetCertificationDetailsForTrackDocument,H as GetCertificationStatusDocument,x as GetCertificationStatusHistoryDocument,B as GetCheckEntitiesDocument,U as GetCheckOwnersDocument,M as GetCheckResultDetailsDocument,V as GetCheckStatusDocument,Y as GetCheckStatusHistoryDocument,_ as GetCheckTemplatesDocument,W as GetCheckersDocument,Q as GetCollectorsDocument,K as GetEntityRefsForTechHealthFilterDocument,j as GetExecutableChecksDocument,z as GetFacetsForOwnerDocument,J as GetFactDocument,X as GetFactSchemasDocument,Z as GetIndividualCheckPassRatesDocument,ee as GetIndividualEntityPassRatesDocument,te as GetIndividualGroupPassRatesDocument,re as GetIndividualTrackPassRateDocument,ae as GetOperatorsDocument,ie as GetOverallCheckPassRatesDocument,ne as GetOverallEntityPassRatesDocument,se as GetOverallGroupPassRatesDocument,ue as GetOverallTrackPassRateDocument,oe as GetPathResolversDocument,ce as GetPlaylistsDocument,le as GetProgramOverviewForOwnerDocument,ge as GetTrackEntitiesDocument,pe as GetTrackOwnersDocument,de as GetTracksDocument,s as HighestLevelFragmentDoc,u as LevelResultDetailsFragmentDoc,f as MilestoneFragmentDoc,y as OverviewLevelResultFragmentDoc,g as ResultState,p as TrackEntityField,R as TrackLevelFragmentDoc,I as UpdateCampaignDocument,O as UpdateCheckDocument,F as UpdateCollectorConfigDocument,w as UpdateProgramDocument,fe as getSdk};
803
812
  //# sourceMappingURL=index.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as s}from"@backstage/core-plugin-api";import{useQuery as a}from"@tanstack/react-query";import{soundcheckApiRef as o}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";const n=(e,r)=>{const t=s(o);return a([c.GetOverallTrackPassRateTrends,e],async()=>t.getOverallTrackPassRate(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:r??!0})};export{n as useAggregatedTrackPassRateTrend};
1
+ import{useApi as t}from"@backstage/core-plugin-api";import{useQuery as s}from"@tanstack/react-query";import{soundcheckApiRef as a}from"../../api.esm.js";import{QueryKeys as o}from"../graphqlKeys.esm.js";const c=(e,n)=>{const r=t(a);return s([o.GetOverallTrackPassRateTrends,e],async()=>r.getOverallTrackPassRate(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:!0})};export{c as useAggregatedTrackPassRateTrend};
2
2
  //# sourceMappingURL=useAggregatedTrackPassRateTrend.esm.js.map
@@ -1,2 +1,2 @@
1
- import{stringifyEntityRef as m}from"@backstage/catalog-model";import{useApi as t,alertApiRef as f}from"@backstage/core-plugin-api";import{catalogApiRef as n}from"@backstage/plugin-catalog-react";import{useQuery as a}from"@tanstack/react-query";import{QueryKeys as p}from"../graphqlKeys.esm.js";const y=(e,r=!0)=>{const i=t(f),o=t(n);return a([p.GetEntityRefs,e],async()=>(await o.getEntities({filter:e})).items.map(s=>m(s)),{enabled:r,onError:()=>{i.post({message:"Failed to load entities",severity:"error"})}})};export{y as useGetEntityRefs};
1
+ import{stringifyEntityRef as m}from"@backstage/catalog-model";import{useApi as t,alertApiRef as n}from"@backstage/core-plugin-api";import{catalogApiRef as f}from"@backstage/plugin-catalog-react";import{useQuery as p}from"@tanstack/react-query";import{QueryKeys as y}from"../graphqlKeys.esm.js";const l=(e,i,r=!0)=>{const o=t(n),a=t(f);return p([y.GetEntityRefs,e],async()=>(await a.getEntities({filter:e,limit:i,fields:["kind","metadata.name","metadata.namespace"]})).items.map(s=>m(s)),{enabled:r,onError:()=>{o.post({message:"Failed to load entities",severity:"error"})}})};export{l as useGetEntityRefs};
2
2
  //# sourceMappingURL=useGetEntityRefs.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as c}from"@backstage/core-plugin-api";import{useQuery as i}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";function s(e,r,o,n){const t=c(m);return i(["soundcheck/track-overview-for-owner",e,r,o,n],async()=>t.getProgramOverviewForOwner(e,r,o,n),{enabled:!!e&&!!r?.kind,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{s as useProgramOverviewForOwner};
1
+ import{useApi as c}from"@backstage/core-plugin-api";import{useQuery as m}from"@tanstack/react-query";import{soundcheckApiRef as u}from"../../api.esm.js";function f(e,r,o,n,i){const t=c(u);return m(["soundcheck/track-overview-for-owner",e,r,o,n,i],async()=>t.getProgramOverviewForOwner(e,r,o,n,i),{enabled:!!e&&!!r?.kind,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{f as useProgramOverviewForOwner};
2
2
  //# sourceMappingURL=useProgramOverviewForOwner.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as n}from"@backstage/core-plugin-api";import{useQueryClient as a,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as h,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as l}from"../useSoundcheckAlert.esm.js";const C="Error Creating Check";function k(){const i=n(m),t=a(),{showAlert:s}=l(),c=async r=>{const e=await i.createCheck(r);if(!e)throw new Error("Failed to create check.");return e};return u([h.CreateCheck],c,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]})])},onError:r=>{let e="Failed to create check.";r instanceof Error&&(e=r.message),s({severity:"error",title:C,message:e})}})}export{k as useCreateCheck};
1
+ import{useApi as a}from"@backstage/core-plugin-api";import{useQueryClient as n,useMutation as u}from"@tanstack/react-query";import{soundcheckApiRef as l}from"../../api.esm.js";import{MutationKeys as h,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as m}from"../useSoundcheckAlert.esm.js";const y="Error Creating Check";function k(){const i=a(l),t=n(),{showAlert:s}=m(),c=async r=>{const e=await i.createCheck(r);if(!e)throw new Error("Failed to create check.");return e};return u([h.CreateCheck],c,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]}),t.invalidateQueries({queryKey:[o.ExecutableChecks]})])},onError:r=>{let e="Failed to create check.";r instanceof Error&&(e=r.message),s({severity:"error",title:y,message:e})}})}export{k as useCreateCheck};
2
2
  //# sourceMappingURL=useCreateCheck.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as l,useMutation as a}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as h,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as y}from"../useSoundcheckAlert.esm.js";const d="Error Deleting Check";function k(){const s=u(m),t=l(),{showAlert:n}=y(),c=async e=>{const r=await s.deleteCheck(e);if(!r)throw new Error(`Failed to delete check ${e}`);return r};return a([h.DeleteCheck],c,{onSuccess:()=>Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetAllPrograms]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]})]),onError:(e,r)=>{let i=`Failed to delete check ${r}`;e instanceof Error&&(i=e.message),n({severity:"error",title:d,message:i})}})}export{k as useDeleteCheck};
1
+ import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as l,useMutation as a}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as y,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as h}from"../useSoundcheckAlert.esm.js";const d="Error Deleting Check";function k(){const s=u(m),r=l(),{showAlert:c}=h(),n=async e=>{const t=await s.deleteCheck(e);if(!t)throw new Error(`Failed to delete check ${e}`);return t};return a([y.DeleteCheck],n,{onSuccess:()=>Promise.all([r.invalidateQueries({queryKey:[o.GetChecks]}),r.invalidateQueries({queryKey:[o.GetAllPrograms]}),r.invalidateQueries({queryKey:[o.GetCheckOwners]}),r.invalidateQueries({queryKey:[o.ExecutableChecks]})]),onError:(e,t)=>{let i=`Failed to delete check ${t}`;e instanceof Error&&(i=e.message),c({severity:"error",title:d,message:i})}})}export{k as useDeleteCheck};
2
2
  //# sourceMappingURL=useDeleteCheck.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{useApi as r}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";import{QueryKeys as o}from"../graphqlKeys.esm.js";function s(){const e=r(c);return t([o.ExecutableChecks],async()=>e.getExecutableChecks(),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{s as useExecutableChecks};
2
+ //# sourceMappingURL=useExecutableChecks.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as s}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";import{QueryKeys as i}from"../graphqlKeys.esm.js";function n(e,r=!0){const t=o(c);return s([i.GetChecks,JSON.stringify(e)],async()=>t.getChecks(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:r})}export{n as useGetChecks};
1
+ import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as s}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";import{QueryKeys as n}from"../graphqlKeys.esm.js";function i(e,r=!0){const t=o(c);return s([n.GetChecks,e],async()=>t.getChecks(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:r})}export{i as useGetChecks};
2
2
  //# sourceMappingURL=useGetChecks.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as n}from"@backstage/core-plugin-api";import{useQueryClient as u,useMutation as a}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as p,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as h}from"../useSoundcheckAlert.esm.js";const d="Error Creating Check";function k(){const i=n(m),t=u(),{showAlert:s}=h(),c=async r=>{const e=await i.updateCheck(r);if(!e)throw new Error("Failed to update check.");return e};return a([p.UpdateCheck],c,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]})])},onError:r=>{let e="Failed to update check.";r instanceof Error&&(e=r.message),s({severity:"error",title:d,message:e})}})}export{k as useUpdateCheck};
1
+ import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as a,useMutation as n}from"@tanstack/react-query";import{soundcheckApiRef as h}from"../../api.esm.js";import{MutationKeys as l,QueryKeys as o}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as m}from"../useSoundcheckAlert.esm.js";const p="Error Creating Check";function d(){const i=u(h),t=a(),{showAlert:s}=m(),c=async r=>{const e=await i.updateCheck(r);if(!e)throw new Error("Failed to update check.");return e};return n([l.UpdateCheck],c,{onSuccess:()=>{Promise.all([t.invalidateQueries({queryKey:[o.GetChecks]}),t.invalidateQueries({queryKey:[o.GetCheckOwners]}),t.invalidateQueries({queryKey:[o.ExecutableChecks]})])},onError:r=>{let e="Failed to update check.";r instanceof Error&&(e=r.message),s({severity:"error",title:p,message:e})}})}export{d as useUpdateCheck};
2
2
  //# sourceMappingURL=useUpdateCheck.esm.js.map
@@ -1,2 +1,2 @@
1
- var t=(e=>(e.GetAllPrograms="soundcheck/programs",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetEntityRefs="soundcheck/catalog/entityRefs",e.GetCampaigns="soundcheck/campaigns",e.GetCampaignProgress="soundcheck/campaigns/getCampaignProgress",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/track/entities",e.CheckEntities="soundcheck/check/entities",e.CertificationStatus="soundcheck/certificationStatus",e.CertificationStatusHistory="soundcheck/certificationStatusHistory",e.CheckStatus="soundcheck/checkStatus",e.CheckStatusHistory="soundcheck/checkStatusHistory",e.CheckDetails="soundcheck/checkDetails",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e.CheckTemplates="soundcheck/checkTemplates",e))(t||{}),s=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.ExecuteCheck="soundcheck/executeCheck",e.DeleteProgram="soundcheck/deleteProgram",e.CreateProgram="soundcheck/createProgram",e.UpdateProgram="soundcheck/updateProgram",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e))(s||{});export{s as MutationKeys,t as QueryKeys};
1
+ var t=(e=>(e.GetAllPrograms="soundcheck/programs",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetEntityRefs="soundcheck/catalog/entityRefs",e.ExecutableChecks="soundcheck/executableChecks",e.GetCampaigns="soundcheck/campaigns",e.GetCampaignProgress="soundcheck/campaigns/getCampaignProgress",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/track/entities",e.CheckEntities="soundcheck/check/entities",e.CertificationStatus="soundcheck/certificationStatus",e.CertificationStatusHistory="soundcheck/certificationStatusHistory",e.CheckStatus="soundcheck/checkStatus",e.CheckStatusHistory="soundcheck/checkStatusHistory",e.CheckDetails="soundcheck/checkDetails",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e.GetTrackRelatedGroups="soundcheck/track/getTrackRelatedGroups",e.CheckTemplates="soundcheck/checkTemplates",e))(t||{}),s=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.ExecuteCheck="soundcheck/executeCheck",e.DeleteProgram="soundcheck/deleteProgram",e.CreateProgram="soundcheck/createProgram",e.UpdateProgram="soundcheck/updateProgram",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e))(s||{});export{s as MutationKeys,t as QueryKeys};
2
2
  //# sourceMappingURL=graphqlKeys.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{useMemo as u}from"react";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../graphqlKeys.esm.js";import{useAllGroups as f}from"./useAllGroups.esm.js";import{useUsersGroupClaims as l}from"./useUsersGroupClaims.esm.js";import"../useSoundcheckAlert.esm.js";import"../useConfirmationModal.esm.js";import"react-router-dom";const c=()=>{const{data:s,isLoading:i,isError:p}=l(),{data:t,isLoading:m,isError:a}=f();return{options:u(()=>{const o=new Map;return s&&s.forEach(({name:e,ref:r,type:n})=>{o.set(`${r}`,{name:e,ref:r,type:n,key:"My Groups"})}),t&&t.forEach(({name:e,ref:r})=>{o.has(`${r}`)||o.set(`${r}`,{name:e,ref:r,key:"All Groups"})}),[...o.values()]},[s,t]),isLoading:i||m,isError:p||a}};export{c as useGroupOptions};
2
+ //# sourceMappingURL=useGroupOptions.esm.js.map