@spotify/backstage-plugin-soundcheck 0.12.3 → 0.12.4

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 (31) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/alpha/package.json +1 -1
  3. package/config.d.ts +0 -4
  4. package/dist/alpha.esm.js +1 -1
  5. package/dist/esm/{Card-e2275abd.esm.js → Card-Dj5kNp2Q.esm.js} +2 -2
  6. package/dist/esm/CertificationSidebar-CVyVchB8.esm.js +2 -0
  7. package/dist/esm/EmptyState-CFyDYjmm.esm.js +2 -0
  8. package/dist/esm/{EntitySoundcheckContent-fae7d534.esm.js → EntitySoundcheckContent-Dm1OGOA5.esm.js} +2 -2
  9. package/dist/esm/OverviewPageContent-DW92KphH.esm.js +2 -0
  10. package/dist/esm/{RefetchingIndicator-8312818a.esm.js → RefetchingIndicator-CdGa4YBG.esm.js} +2 -2
  11. package/dist/esm/chartUtils-CDPSRCm-.esm.js +2 -0
  12. package/dist/esm/{index-e2ac1874.esm.js → index-ChMeGQBh.esm.js} +2 -2
  13. package/dist/esm/index-DNAl7tKw.esm.js +2 -0
  14. package/dist/esm/{index-8da96e46.esm.js → index-e9SWucyI.esm.js} +2 -2
  15. package/dist/esm/{license-e9e73904.esm.js → license-CQErZDIh.esm.js} +1 -1
  16. package/dist/esm/routes-DcGwdXHX.esm.js +699 -0
  17. package/dist/images/git-dark.svg +1 -0
  18. package/dist/images/github-dark.svg +1 -0
  19. package/dist/images/github-light.svg +1 -0
  20. package/dist/images/pagerduty-dark.png +0 -0
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.esm.js +1 -1
  23. package/package.json +18 -19
  24. package/dist/esm/CertificationSidebar-bfe066d3.esm.js +0 -2
  25. package/dist/esm/EmptyState-a3a6154f.esm.js +0 -2
  26. package/dist/esm/OverviewPageContent-9845035d.esm.js +0 -2
  27. package/dist/esm/chartUtils-080232d7.esm.js +0 -2
  28. package/dist/esm/index-a862b329.esm.js +0 -2
  29. package/dist/esm/routes-06f9616b.esm.js +0 -611
  30. package/dist/images/octocat.svg +0 -17
  31. package/dist/images/settings.svg +0 -90
@@ -0,0 +1 @@
1
+ <svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg>
Binary file
package/dist/index.d.ts CHANGED
@@ -68,4 +68,4 @@ declare const SoundcheckOverviewPage: (props: OverviewPageProps) => JSX.Element;
68
68
  */
69
69
  declare const SoundcheckRoutingPage: (props: OverviewPageProps) => JSX.Element;
70
70
 
71
- export { EntitySoundcheckCard, EntitySoundcheckCardProps, EntitySoundcheckContent, GroupSoundcheckContent, OverviewPageProps, SoundcheckOverviewPage, SoundcheckRoutingPage, soundcheckPlugin };
71
+ export { EntitySoundcheckCard, type EntitySoundcheckCardProps, EntitySoundcheckContent, GroupSoundcheckContent, type OverviewPageProps, SoundcheckOverviewPage, SoundcheckRoutingPage, soundcheckPlugin };
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{createPlugin as n,createApiFactory as r,discoveryApiRef as p,fetchApiRef as c,createRoutableExtension as e,createComponentExtension as m}from"@backstage/core-plugin-api";import{s as u,S as a,e as i,c as d,g as h,o as s,r as R}from"./esm/routes-06f9616b.esm.js";import"react";import"./esm/EmptyState-a3a6154f.esm.js";import"./esm/Card-e2275abd.esm.js";import"graphql-request";import"graphql-tag";import"@backstage/core-compat-api";import"@tanstack/react-query";import"lodash";import"@material-ui/core";import"@material-ui/lab";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/HelpOutline";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/ReportProblemOutlined";import"classnames";import"@backstage/catalog-model";import"@backstage/plugin-catalog-react";import"./images/empty-state.svg";import"@backstage/core-components";import"@material-ui/core/styles/makeStyles";import"@spotify/backstage-plugin-core";import"./esm/CertificationSidebar-bfe066d3.esm.js";import"react-router-dom";import"@material-ui/icons/Schedule";import"luxon";import"./esm/license-e9e73904.esm.js";const t=n({id:"soundcheck",apis:[r({api:u,deps:{discoveryApi:p,fetchApi:c},factory:o=>new a(o)})],routes:{entityContent:i,entityCertification:d}}),v=t.provide(e({name:"EntitySoundcheckContent",component:()=>import("./esm/EntitySoundcheckContent-fae7d534.esm.js").then(o=>o.EntitySoundcheckContent),mountPoint:i})),k=t.provide(m({name:"EntitySoundcheckCard",component:{lazy:()=>import("./esm/index-e2ac1874.esm.js").then(o=>o.EntitySoundcheckCard)}})),f=t.provide(e({name:"GroupSoundcheckContent",component:()=>import("./esm/index-8da96e46.esm.js").then(o=>o.FixedGroupOverviewPage),mountPoint:h})),g=t.provide(e({name:"SoundcheckOverviewPage",component:()=>import("./esm/index-8da96e46.esm.js").then(o=>o.OverviewPage),mountPoint:s})),y=t.provide(e({name:"SoundcheckRoutingPage",component:()=>import("./esm/index-a862b329.esm.js").then(o=>o.RoutingPage),mountPoint:R}));export{k as EntitySoundcheckCard,v as EntitySoundcheckContent,f as GroupSoundcheckContent,g as SoundcheckOverviewPage,y as SoundcheckRoutingPage,t as soundcheckPlugin};
1
+ import{createPlugin as n,createApiFactory as r,discoveryApiRef as p,fetchApiRef as c,createRoutableExtension as e,createComponentExtension as m}from"@backstage/core-plugin-api";import{s as u,S as a,e as i,c as d,g as h,o as s,r as R}from"./esm/routes-DcGwdXHX.esm.js";import"react";import"./esm/EmptyState-CFyDYjmm.esm.js";import"./esm/Card-Dj5kNp2Q.esm.js";import"graphql-request";import"graphql-tag";import"@backstage/core-compat-api";import"@tanstack/react-query";import"lodash";import"@material-ui/core";import"@material-ui/lab";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/HelpOutline";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/ReportProblemOutlined";import"classnames";import"@backstage/catalog-model";import"@backstage/plugin-catalog-react";import"./images/empty-state.svg";import"@backstage/core-components";import"@material-ui/core/styles/makeStyles";import"@spotify/backstage-plugin-core";import"./esm/CertificationSidebar-CVyVchB8.esm.js";import"react-router-dom";import"@material-ui/icons/Schedule";import"luxon";import"./esm/license-CQErZDIh.esm.js";const t=n({id:"soundcheck",apis:[r({api:u,deps:{discoveryApi:p,fetchApi:c},factory:o=>new a(o)})],routes:{entityContent:i,entityCertification:d}}),v=t.provide(e({name:"EntitySoundcheckContent",component:()=>import("./esm/EntitySoundcheckContent-Dm1OGOA5.esm.js").then(o=>o.EntitySoundcheckContent),mountPoint:i})),k=t.provide(m({name:"EntitySoundcheckCard",component:{lazy:()=>import("./esm/index-ChMeGQBh.esm.js").then(o=>o.EntitySoundcheckCard)}})),f=t.provide(e({name:"GroupSoundcheckContent",component:()=>import("./esm/index-e9SWucyI.esm.js").then(o=>o.FixedGroupOverviewPage),mountPoint:h})),g=t.provide(e({name:"SoundcheckOverviewPage",component:()=>import("./esm/index-e9SWucyI.esm.js").then(o=>o.OverviewPage),mountPoint:s})),y=t.provide(e({name:"SoundcheckRoutingPage",component:()=>import("./esm/index-DNAl7tKw.esm.js").then(o=>o.RoutingPage),mountPoint:R}));export{k as EntitySoundcheckCard,v as EntitySoundcheckContent,f as GroupSoundcheckContent,g as SoundcheckOverviewPage,y as SoundcheckRoutingPage,t as soundcheckPlugin};
2
2
  //# sourceMappingURL=index.esm.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spotify/backstage-plugin-soundcheck",
3
3
  "description": "Ensure quality, reliability and alignment of software development with codified checks and guidance.",
4
- "version": "0.12.3",
4
+ "version": "0.12.4",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://backstage.spotify.com",
7
7
  "main": "./dist/index.esm.js",
@@ -37,15 +37,14 @@
37
37
  "prepare": "yarn generate"
38
38
  },
39
39
  "dependencies": {
40
- "@backstage/catalog-client": "^1.6.1",
40
+ "@backstage/catalog-client": "^1.6.4",
41
41
  "@backstage/catalog-model": "^1.4.5",
42
- "@backstage/core-compat-api": "^0.2.1",
43
- "@backstage/core-components": "^0.14.1",
44
- "@backstage/core-plugin-api": "^1.9.1",
45
- "@backstage/frontend-plugin-api": "^0.6.1",
46
- "@backstage/plugin-catalog": "^1.18.0",
47
- "@backstage/plugin-catalog-react": "^1.11.0",
48
- "@backstage/plugin-permission-react": "^0.4.21",
42
+ "@backstage/core-compat-api": "^0.2.4",
43
+ "@backstage/core-components": "^0.14.4",
44
+ "@backstage/core-plugin-api": "^1.9.2",
45
+ "@backstage/frontend-plugin-api": "^0.6.4",
46
+ "@backstage/plugin-catalog-react": "^1.11.3",
47
+ "@backstage/plugin-permission-react": "^0.4.22",
49
48
  "@backstage/types": "^1.1.1",
50
49
  "@date-io/luxon": "^1.0.0",
51
50
  "@hookform/resolvers": "^3.3.2",
@@ -53,11 +52,11 @@
53
52
  "@material-ui/icons": "^4.9.1",
54
53
  "@material-ui/lab": "4.0.0-alpha.61",
55
54
  "@material-ui/pickers": "3.3.11",
56
- "@spotify/backstage-plugin-core": "^0.7.0",
57
- "@spotify/backstage-plugin-soundcheck-common": "^0.13.0",
55
+ "@spotify/backstage-plugin-core": "^0.7.1",
56
+ "@spotify/backstage-plugin-soundcheck-common": "^0.13.1",
58
57
  "@tanstack/react-query": "^4.6.1",
59
58
  "@types/react-csv": "^1.1.6",
60
- "@uiw/react-md-editor": "3.19.5",
59
+ "@uiw/react-md-editor": "3.20.10",
61
60
  "classnames": "^2.3.2",
62
61
  "cron-validate": "^1.4.5",
63
62
  "cronstrue": "^2.28.0",
@@ -84,19 +83,19 @@
84
83
  "react-router-dom": "6.0.0-beta.0 || ^6.3.0"
85
84
  },
86
85
  "devDependencies": {
87
- "@backstage/cli": "^0.26.0",
88
- "@backstage/core-app-api": "^1.12.1",
89
- "@backstage/dev-utils": "^1.0.28",
86
+ "@backstage/cli": "^0.26.3",
87
+ "@backstage/core-app-api": "^1.12.4",
88
+ "@backstage/dev-utils": "^1.0.31",
90
89
  "@backstage/e2e-test-utils": "^0.1.1",
91
- "@backstage/frontend-test-utils": "^0.1.3",
92
- "@backstage/test-utils": "^1.5.1",
90
+ "@backstage/frontend-test-utils": "^0.1.6",
91
+ "@backstage/test-utils": "^1.5.4",
93
92
  "@graphql-codegen/cli": "^5.0.0",
94
93
  "@graphql-codegen/typescript": "^4.0.0",
95
94
  "@graphql-codegen/typescript-graphql-request": "^6.0.0",
96
95
  "@graphql-codegen/typescript-operations": "^4.0.0",
97
96
  "@playwright/test": "^1.32.3",
98
- "@sp4b-dev/test-utils": "^0.0.2",
99
- "@spotify/backstage-plugin-core-common": "^0.5.11",
97
+ "@sp4b-dev/test-utils": "^0.0.3",
98
+ "@spotify/backstage-plugin-core-common": "^0.5.12",
100
99
  "@testing-library/jest-dom": "^6.0.0",
101
100
  "@testing-library/react": "^14.0.0",
102
101
  "@testing-library/user-event": "^14.0.0",
@@ -1,2 +0,0 @@
1
- import{stringifyEntityRef as g}from"@backstage/catalog-model";import{useApi as u,useRouteRef as C}from"@backstage/core-plugin-api";import{useQuery as E}from"@tanstack/react-query";import{s as y,c as D,d as $}from"./routes-06f9616b.esm.js";import{Q as S,C as P,L as N,a as H,b as Q,F as f,A as W}from"./EmptyState-a3a6154f.esm.js";import{useEntity as G}from"@backstage/plugin-catalog-react";import{makeStyles as m,Tooltip as M,Typography as c,alpha as p,Box as j}from"@material-ui/core";import t from"react";import{Link as K}from"react-router-dom";import O from"classnames";import _ from"@material-ui/icons/Schedule";import{useAutoUpdatingRelativeTime as q}from"@spotify/backstage-plugin-core";import{DateTime as I}from"luxon";import{MarkdownContent as h,Link as J}from"@backstage/core-components";import{Skeleton as o}from"@material-ui/lab";function V(e){const a=u(y),n=g(e);return E([S.Certifications,n],async()=>a.getAllCertifications(n))}function T(e,a){const n=u(y),i=g(e);return E([S.CertificationDetails,i,a],async()=>n.getCertificationDetailsForTrack(i,a),{enabled:!!a})}function X(e){const a=u(y),n=g(e);return E(["soundcheck/playlists",n],async()=>a.getPlaylists(n))}const Y=m(e=>({root:{display:"inline-flex",alignItems:"center",gap:e.spacing(1)}})),x=({timestamp:e,description:a})=>{const n=Y(),i=I.fromISO(e).toLocaleString(I.DATETIME_FULL),l=q(e),r=a?`${a}: ${l}`:void 0;return t.createElement("div",{className:n.root},t.createElement(M,{title:i},t.createElement(c,{variant:"caption","aria-label":r},l)),t.createElement(_,null))},L=m(e=>({root:{display:"grid",width:"100%",gridTemplateColumns:"auto 1fr auto",gridColumnGap:e.spacing(1),padding:e.spacing(1),alignItems:"center","&.selected":{backgroundColor:p(e.palette.primary[e.palette.type],.2)},"&:hover, &:active, &:focus":{backgroundColor:p(e.palette.primary[e.palette.type],.3)}}})),Z=({className:e,href:a,children:n})=>a?t.createElement(K,{to:a,className:e},n):t.createElement("div",{className:e},n),ee=({result:e,name:a,timestamp:n,selected:i=!1,href:l})=>{const r=L(),d=O(r.root,{selected:i});return t.createElement(Z,{href:l,className:d},t.createElement(P,{result:e}),t.createElement(c,{variant:"body2"},a),n?t.createElement(x,{timestamp:n}):null)},te=m(e=>({noChecks:{padding:e.spacing(1)},checks:{padding:0,margin:0,flex:1,listStyle:"none"},checkItem:{borderBottom:`1px solid ${e.palette.divider}`,"&:last-of-type":{borderBottom:"0"}}})),ae=({checks:e,playlistId:a,trackId:n,checkId:i})=>{const l=te(),r=C(D),d=C($);return e.length?t.createElement("ul",{className:l.checks},e.map(s=>t.createElement("li",{key:s.id,className:l.checkItem},t.createElement(ee,{...s,selected:s.id===i,href:a?d({playlistId:a,trackId:n,checkId:s.id}):r({trackId:n,checkId:s.id})})))):t.createElement(c,{variant:"body2",className:l.noChecks},"No applicable checks at this level.")},R=m(e=>{const a=e.palette.type==="dark"?e.palette.grey[700]:e.palette.grey[100];return{wrapper:{backgroundColor:a,color:p(e.palette.getContrastText(a),.8),fontSize:e.typography.caption.fontSize,minHeight:"auto",borderTop:`1px solid ${e.palette.divider}`,borderBottom:`1px solid ${e.palette.divider}`,padding:e.spacing(1),display:"grid",gridTemplateAreas:({badge:n})=>[`"${n?"badge":"title"} title"`,`"${n?".":"description"} description"`].join(" "),gridTemplateColumns:"auto 1fr"},title:{gridArea:"title",textTransform:"uppercase",fontWeight:"bold",color:p(e.palette.getContrastText(a),.8),fontSize:e.typography.body2.fontSize,paddingTop:e.spacing(.5),paddingBottom:e.spacing(.5),lineHeight:1},badge:{gridArea:"badge",marginRight:e.spacing(1)},description:{gridArea:"description",color:p(e.palette.getContrastText(a),.8),fontSize:e.typography.subtitle2.fontSize,"& p":{marginBlockStart:0,marginBlockEnd:0}}}}),ne=e=>{const a=R({badge:e.badge});return t.createElement("div",{className:a.wrapper},e.badge?t.createElement(N,{className:a.badge,badge:e.badge}):null,t.createElement(c,{className:a.title},e.title),e.description?t.createElement(h,{className:a.description,content:e.description}):null)},A=({level:e,checkId:a,trackId:n,playlistId:i,isCampaign:l})=>{var r;return t.createElement(t.Fragment,null,!l&&t.createElement(ne,{badge:e.badge,title:e.name,description:e.description}),t.createElement(ae,{checks:(r=e.checks)!=null?r:[],playlistId:i,trackId:n,checkId:a}))},z=({badge:e,className:a,size:n="small",trackType:i})=>{const l=a||"";let r=t.createElement(H,{className:l,size:n});return i==="campaign"?r=t.createElement(Q,{className:l,size:n}):e&&(r=t.createElement(N,{className:l,size:n,badge:e})),r},k=m(e=>({description:{padding:0,margin:0,display:"block","& p":{margin:0}},root:{padding:e.spacing(2),margin:0,display:"grid",gridTemplateColumns:"min-content auto",gridGap:e.spacing(2)},title:{fontSize:e.typography.pxToRem(18),fontWeight:700,lineHeight:1.235,marginBottom:"6px"},level:{textTransform:"uppercase",color:e.palette.text.secondary,fontWeight:700,letterSpacing:"1px"}}));function re({description:e,documentationUrl:a}){const n=k();return a?t.createElement("div",{className:n.description},t.createElement(h,{content:e}),t.createElement(J,{to:a},"Learn more")):t.createElement("div",{className:n.description},t.createElement(h,{content:e}))}const B=({name:e,badge:a,description:n,documentationUrl:i,trackType:l="standard"})=>{const r=k();return t.createElement("div",{className:r.root},t.createElement(z,{badge:a,trackType:l,size:"large"}),t.createElement("div",null,t.createElement(c,{className:r.title},e),n&&t.createElement(re,{description:n,documentationUrl:i})))},w=({hideDescription:e=!1})=>{const a=k();return t.createElement(f,null,t.createElement("div",{className:a.root},t.createElement(o,{width:44,height:44}),t.createElement("div",null,t.createElement(c,{variant:"caption",className:a.level},t.createElement(o,{width:100})),t.createElement(c,{variant:"h4",className:a.title},t.createElement(o,{width:300})),!e&&t.createElement(c,{variant:"body2"},t.createElement(o,null)))))},v=()=>{const e=L();return t.createElement(f,null,t.createElement("div",{className:e.root},t.createElement(o,{width:24,height:24}),t.createElement(c,{variant:"body2"},t.createElement(o,null)),t.createElement(o,{width:100,height:24})))},le=()=>{const e=R({});return t.createElement(f,null,t.createElement("div",{className:e.wrapper},t.createElement(o,{className:e.title}),t.createElement(c,{className:e.description},t.createElement(o,null))))},F=()=>{const e=ie();return t.createElement("div",null,t.createElement(w,null),new Array(3).fill(null).map((a,n)=>t.createElement(t.Fragment,{key:`skeleton-level-${n}`},t.createElement(le,null),t.createElement("ul",{className:e.checks},t.createElement(v,null),t.createElement(v,null),t.createElement(v,null)))))},ie=m(()=>({checks:{padding:0,margin:0,flex:1,listStyle:"none"}})),ce=({playlistId:e,trackId:a,checkId:n})=>{var i;const{entity:l}=G(),{data:r,isLoading:d,isError:s}=T(l,a);if(s)return t.createElement("div",null,t.createElement(j,{padding:2},t.createElement(W,{severity:"error",title:"Error loading certification"})));if(d||!a)return t.createElement(F,null);if(!r)return null;const U=r.program.type==="campaign";return t.createElement("div",null,t.createElement(B,{name:r.program.name,badge:(i=r.highestLevel)==null?void 0:i.badge,description:r.program.description,documentationUrl:r.program.documentationURL,trackType:r.program.type}),r==null?void 0:r.levels.map(b=>t.createElement(A,{key:b.ordinal,level:b,checkId:n,trackId:a,playlistId:e,isCampaign:U})))};export{w as C,x as R,X as a,B as b,T as c,z as d,F as e,A as f,ce as g,V as u};
2
- //# sourceMappingURL=CertificationSidebar-bfe066d3.esm.js.map
@@ -1,2 +0,0 @@
1
- import{useApi as A,errorApiRef as F}from"@backstage/core-plugin-api";import{QueryClient as M,QueryClientProvider as D}from"@tanstack/react-query";import{memoize as W}from"lodash";import r,{createContext as y,useState as p,useCallback as l,useContext as v,useRef as L,useEffect as U}from"react";import{makeStyles as c,Typography as d,Modal as Q,Box as H,Button as E,withStyles as m,Fade as K}from"@material-ui/core";import{Alert as j}from"@material-ui/lab";import q from"@material-ui/icons/Check";import J from"@material-ui/icons/Close";import V from"@material-ui/icons/HelpOutline";import X from"@material-ui/icons/RemoveCircleOutline";import Y from"@material-ui/icons/ReportProblemOutlined";import{R as n}from"./routes-06f9616b.esm.js";import u from"classnames";import{parseEntityRef as b}from"@backstage/catalog-model";import{humanizeEntityRef as R}from"@backstage/plugin-catalog-react";import Z from"../images/empty-state.svg";const _=W(e=>new M({defaultOptions:{queries:{refetchInterval:6e4,refetchIntervalInBackground:!1,refetchOnWindowFocus:"always",retry:2,retryDelay:t=>{const a=450+Math.ceil(Math.random()*100);return Math.min(a*2**t,3e4)},onError:t=>e.post(t)}}})),ee=e=>{const t=A(F),a=_(t);return r.createElement(D,{client:a},e.children)};var P=(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.GetCampaigns="soundcheck/campaigns",e.GetCampaignProgress="soundcheck/campaigns/getCampaignProgress",e.GetOverallCheckPassRateSnapshots="soundcheck/charts/overallCheckPassRateSnapshots",e.GetOverallCheckPassRateTrends="soundcheck/charts/overallCheckPassRateTrends",e.GetIndividualCheckPassRateSnapshots="soundcheck/charts/getIndividualCheckPassRateSnapshots",e.GetIndividualCheckPassRateTrends="soundcheck/charts/getIndividualCheckPassRateTrends",e.GetOverallTrackPassRateSnapshots="soundcheck/charts/overallTrackPassRateSnapshots",e.GetOverallTrackPassRateTrends="soundcheck/charts/overallTrackPassRateTrends",e.GetIndividualTrackPassRateSnapshots="soundcheck/charts/individualTrackPassRateSnapshots",e.GetIndividualTrackPassRateTrends="soundcheck/charts/individualTrackPassRateTrends",e.GetOverallEntityPassRateTrends="soundcheck/charts/overallEntityPassRateTrends",e.GetIndividualEntityPassRateSnapshots="soundcheck/charts/individualEntityPassRateSnapshots",e.GetIndividualEntityPassRateTrends="soundcheck/charts/individualEntityPassRateTrends",e.GetOverallGroupPassRateTrends="soundcheck/charts/overallGroupPassRateTrends",e.GetIndividualGroupPassRateSnapshots="soundcheck/charts/individualGroupPassRateSnapshots",e.GetIndividualGroupPassRateTrends="soundcheck/charts/individualGroupPassRateTrends",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e.TrackEntities="soundcheck/tracks/entities",e.Certifications="soundcheck/certifications",e.CertificationDetails="soundcheck/certificationDetails",e.GetCheckOwners="soundcheck/checks/getOwners",e.GetTrackOwners="soundcheck/tracks/getOwners",e.GetCampaignOwners="soundcheck/campaigns/getOwners",e))(P||{}),G=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",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))(G||{});const te=c(e=>({root:{padding:e.spacing(3)},icon:{display:"none"},message:{padding:0},type:{fontWeight:700,lineHeight:1.75}})),T=e=>{const{type:t,...a}=te();return r.createElement(j,{severity:e.severity,elevation:1,classes:a,onClose:e.onClose},r.createElement(d,{classes:{root:t}},e.title),e.children)},x=y({}),ae=e=>{const[t,a]=p(),o=l(g=>{a(g)},[]),s=l(()=>{a(null)},[]);return r.createElement(x.Provider,{value:{showAlert:o,clearAlert:s}},t&&r.createElement(T,{severity:t.severity,title:t.title,onClose:s},t.message),e.children)},re=()=>v(x),se=c(e=>({modalContent:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",padding:"25px",backgroundColor:e.palette.type==="dark"?e.palette.grey[800]:e.palette.grey[200]},modalButtons:{display:"flex",justifyContent:"space-evenly","& button":{width:"40%",maxWidth:"185px"}},modalMessage:{margin:"15px 0 35px"}})),N=y({}),oe=e=>{const t=se(),[a,o]=p(!1),[s,g]=p(),i=L(),w=l(({title:$,message:B,error:z})=>(g({title:$,message:B,error:z}),o(!0),new Promise(O=>{i.current=O})),[]),I=l(()=>{i.current&&i.current(!0),o(!1)},[]),C=l(()=>{i.current&&i.current(!1),o(!1)},[]);return r.createElement(N.Provider,{value:{showModal:w}},e.children,s&&r.createElement(Q,{open:a,onClose:C,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description"},r.createElement(H,{className:t.modalContent},r.createElement(d,{id:"confirmation-modal-title",variant:"h6"},s.title),r.createElement(d,{className:t.modalMessage,id:"confirmation-modal-description",variant:"body1"},s.message),r.createElement("div",{className:t.modalButtons},!s.error&&r.createElement(E,{onClick:C,variant:"contained","aria-label":"cancel"},"Cancel"),r.createElement(E,{color:"primary",onClick:I,variant:"contained","aria-label":"confirm"},s.error?"Ok":"Confirm")))))},ne=()=>v(N),ce=e=>({[n.Passed]:"Check passed",[n.NotReported]:"Check not reported",[n.Failed]:"Check failed",[n.Warning]:"Check produced warning(s)",[n.NotApplicable]:"Check not applicable"})[e],ie=m(e=>({root:{color:e.palette.success.main}}))(q),le=m(e=>({root:{color:e.palette.error.main}}))(J),de=m(e=>({root:{color:e.palette.warning.main}}))(Y),me=m(e=>({root:{color:e.palette.info.main}}))(V),pe=m(e=>({root:{color:e.palette.text.disabled}}))(X),ue=({result:e,className:t})=>{const a={className:t,"aria-label":ce(e),"aria-hidden":!1};return e===n.Passed?r.createElement(ie,{...a}):e===n.NotReported?r.createElement(me,{...a}):e===n.Failed?r.createElement(le,{...a}):e===n.Warning?r.createElement(de,{...a}):e===n.NotApplicable?r.createElement(pe,{...a}):null},S=24,he=11,k=e=>e==="small"?1:2,ge=c({root:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",borderWidth:"2px",fontWeight:700,width:({size:e})=>`${S*k(e)}px`,height:({size:e})=>`${S*k(e)}px`,fontSize:({size:e})=>`${he*k(e)}px`}}),h=({className:e,label:t,size:a="small"})=>{const o=ge({size:a});return r.createElement("span",{className:u(e,o.root),role:"img","aria-label":`${t} badge`},t)},ke=c(e=>({root:{background:({color:t})=>t,color:e.palette.common.black,borderColor:e.palette.common.black,borderStyle:"solid","&::after":{position:"absolute",display:"block",content:'""',top:0,left:0,width:"100%",height:"100%",borderRadius:"50%",boxShadow:["inset 0 -0.18em 0 0 rgba(0, 0, 0, 0.25)","inset 0px 0.18em 0px 0px rgba(255, 255, 255, 0.5)","inset 0px 1.3em 0px -0.5em rgba(255, 255, 255, 0.2)"].join(",")}}})),fe=({className:e,badge:t,size:a="small"})=>{const o=ke({color:t.options.color,size:a});return r.createElement(h,{className:u(e,o.root),size:a,label:`L${t.options.level}`})},Ce=c({root:{borderColor:"currentColor",borderStyle:"dashed"}}),ye=({className:e,size:t="small"})=>{const a=Ce();return r.createElement(h,{className:u(e,a.root),size:t,label:"NL"})},ve=c({root:{borderColor:"currentColor",borderStyle:"solid"}}),Ee=({className:e,size:t="small"})=>{const a=ve();return r.createElement(h,{className:u(e,a.root),size:t,label:"C"})},be=({children:e})=>{const[t,a]=p(!1);return U(()=>{const o=setTimeout(()=>{a(!0)},250);return()=>clearTimeout(o)},[]),r.createElement(K,{in:t,timeout:250},e)},Re=c(e=>({card:{backgroundColor:e.palette.background.paper,border:`1px solid ${e.palette.border}`,borderRadius:e.shape.borderRadius,display:"flex",padding:e.spacing(5)},container:{margin:"0 auto",display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(5)},content:{width:"20rem",display:"flex",flexDirection:"column",gap:e.spacing(2)},header:{display:"flex",flexDirection:"column",gap:e.spacing(2)},description:{color:e.palette.grey[600],fontWeight:500},action:{display:"inline-block"},img:{maxHeight:400}})),f=({title:e,description:t,imgSrc:a,action:o})=>{const s=Re();return r.createElement("div",{className:s.card},r.createElement("div",{className:s.container},r.createElement("div",{className:s.content},r.createElement("header",{className:s.header},r.createElement(d,{variant:"h5"},e),r.createElement(d,{variant:"body1",className:s.description},t)),o&&r.createElement("div",{className:s.action},o)),r.createElement("div",null,r.createElement("img",{src:a!=null?a:Z,className:s.img,alt:e}))))},Pe="No certifications available",Ge=({ownerEntityRef:e,selectGroupHint:t})=>{let a="There are no tracks configured that apply to this entity.";return e&&(a=`Looks like the group '${R(b(e),{defaultKind:"Group"})}' doesn't own any entities that have any applicable tracks configured. ${t}`),r.createElement(f,{title:Pe,description:a})},Te="Missing entities",xe=({ownerEntityRef:e,selectGroupHint:t})=>{if(!e)return null;const a=R(b(e),{defaultKind:"Group"});return r.createElement(f,{title:Te,description:`The group '${a}' doesn't own any entities. ${t!=null?t:""}`})};export{T as A,h as B,ue as C,f as E,be as F,fe as L,G as M,Ge as N,P as Q,ee as S,ye as a,Ee as b,oe as c,xe as d,ne as e,ae as f,re as u};
2
- //# sourceMappingURL=EmptyState-a3a6154f.esm.js.map
@@ -1,2 +0,0 @@
1
- import{stringifyEntityRef as V,parseEntityRef as W}from"@backstage/catalog-model";import{useApi as R,identityApiRef as oe,configApiRef as ie,useRouteRef as F}from"@backstage/core-plugin-api";import{catalogApiRef as M,EntityRefLink as se,humanizeEntityRef as G,entityRouteRef as U}from"@backstage/plugin-catalog-react";import t,{createContext as Ye,useState as S,useEffect as I,useContext as Ze,useMemo as D,useCallback as O,memo as z,Fragment as et,useRef as tt,useLayoutEffect as at}from"react";import nt from"react-use/lib/useAsync";import{makeStyles as k,alpha as ce,TextField as rt,CircularProgress as de,Grid as x,Typography as f,Button as lt,Menu as ot,MenuItem as me,TablePagination as pe,withStyles as it,Tooltip as ue,LinearProgress as st,Accordion as ct,AccordionSummary as dt,AccordionDetails as mt}from"@material-ui/core";import pt from"@material-ui/lab/Autocomplete";import{useSearchParams as Z,useNavigate as ut}from"react-router-dom";import gt from"react-use/lib/useLocalStorage";import{useQuery as L}from"@tanstack/react-query";import{s as _,h as ft,i as ht,R as A,B as yt,j as vt}from"./routes-06f9616b.esm.js";import{Q as K,C as Et,L as ge,a as fe,b as he,A as kt,N as bt,d as Ct}from"./EmptyState-a3a6154f.esm.js";import{HeaderTabs as ye,MarkdownContent as wt,Link as j,EmptyState as Rt}from"@backstage/core-components";import Nt from"@material-ui/icons/ExpandMore";import xt from"@material-ui/icons/ArrowDropDown";import Pt from"@material-ui/icons/ArrowDropUp";import{makeStyles as ve}from"@material-ui/core/styles";import{motion as Ee}from"framer-motion";import{R as $t}from"./RefetchingIndicator-8312818a.esm.js";import Tt,{countBy as ke}from"lodash";import{Skeleton as Q}from"@material-ui/lab";import{VariableSizeGrid as St}from"react-window";function be(e,a,n,r){const l=R(_);return L(["soundcheck/track-overview-for-owner",e,a,n,r],async()=>l.getProgramOverviewForOwner(e,a,n,r),{enabled:!!e&&!!(a!=null&&a.kind),staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}function Ce(){const e=R(M);return L(["soundcheck/all-groups"],async()=>{const{items:a}=await e.getEntities({filter:{kind:"Group"},fields:["spec.profile.displayName","metadata.title","metadata.name","metadata.namespace","kind"]});return a.filter(n=>(n==null?void 0:n.kind)==="Group").map(n=>{var r,l,i,o;return{name:(o=(i=(l=(r=n.spec)==null?void 0:r.profile)==null?void 0:l.displayName)!=null?i:n.metadata.title)!=null?o:n.metadata.name,ref:V(n)}})},{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}function It(){const e=R(oe),a=R(M);return L(["soundcheck/user-groups-claims"],async()=>{const{ownershipEntityRefs:n}=await e.getBackstageIdentity();return(await a.getEntitiesByRefs({entityRefs:n})).items.filter(r=>(r==null?void 0:r.kind)==="Group").map(r=>{var l,i,o,d,s;return{name:(d=(o=(i=(l=r.spec)==null?void 0:l.profile)==null?void 0:i.displayName)!=null?o:r.metadata.title)!=null?d:r.metadata.name,ref:V(r),type:(s=r.spec)==null?void 0:s.type}})})}function we(e){const a=R(_);return L([K.GetCampaigns,JSON.stringify(e)],async()=>a.getCampaigns(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}function Lt(e){const a=R(_);return L(["soundcheck/facets-for-owner",e],async()=>a.getFacetsForOwner(e),{enabled:!!e,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const Re=e=>{const a=R(_);return L([K.GetIndividualEntityPassRateSnapshots,{...e,numberOfDays:0}],async()=>a.getIndividualEntityPassRates({...e,numberOfDays:0}),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Ne={loading:!0},xe=Ye(Ne),Ft=()=>Ze(xe),Ot=({children:e})=>{const[a,n]=S(Ne),r=R(M),l=R(oe),{value:i,loading:o,error:d}=nt(async()=>{const[{token:s},c]=await Promise.all([l.getCredentials(),l.getBackstageIdentity()]);return s?await r.getEntityByRef(c.userEntityRef):null},[r,l]);return I(()=>{if(i){const s=V(i);n({user:i,userEntityRef:s,loading:o,error:d})}else n({loading:o,error:d})},[i,o,d]),t.createElement(xe.Provider,{value:a},e)},Pe=()=>{const{data:e,isLoading:a,isError:n}=It(),{data:r,isLoading:l,isError:i}=Ce();return{options:D(()=>{const o=new Map;return e&&e.forEach(({name:d,ref:s,type:c})=>{o.set(`${s}`,{name:d,ref:s,type:c,key:"My Groups"})}),r&&r.forEach(({name:d,ref:s})=>{o.has(`${s}`)||o.set(`${s}`,{name:d,ref:s,key:"All Groups"})}),[...o.values()]},[e,r]),isLoading:a||l,isError:n||i}},zt=k(e=>({root:{width:"100%",minWidth:250},textField:{"& $notchedOutline":{borderColor:ce(e.page.fontColor,.25)},"&:hover $notchedOutline":{borderColor:e.page.fontColor}},input:{backgroundColor:"transparent",color:e.page.fontColor},clearIndicator:{color:e.page.fontColor},popupIndicator:{color:e.page.fontColor},notchedOutline:{}}),{name:"SoundcheckGroupSelector"}),At=({setError:e})=>{const{options:a,isLoading:n,isError:r}=Pe(),l=zt(),[i,o]=Z(),[d,s]=gt("soundcheck.overview.groupRef",null),c=i.get("group"),p=R(ie).getOptionalString("soundcheck.overview.defaultSelectedGroupType"),h=D(()=>{var u,y;if(!n&&a.length){if(c||d){const v=c!=null?c:d;return(u=a.find(E=>E.ref===v))!=null?u:a[0]}else if(p)return(y=a.find(v=>v.type===p))!=null?y:a[0];return a[0]}return null},[p,n,a,c,d]),m=O((u,y)=>{u&&i.get("group")!==u&&(i.set("group",u),o(i,{replace:y}),s(u))},[i,s,o]),g=O((u,y)=>{m==null||m(y==null?void 0:y.ref)},[m]);return I(()=>{d&&!c&&m(d,!0)},[d,c,m]),I(()=>{m(h==null?void 0:h.ref,!0)},[m,h]),I(()=>{e==null||e(r?new Error("Error loading groups"):void 0)},[r,e]),r?null:t.createElement(pt,{"aria-label":"Current group",className:l.root,classes:{clearIndicator:l.clearIndicator,popupIndicator:l.popupIndicator},disableClearable:!0,options:a!=null?a:[],loading:n,groupBy:u=>u.key,value:h,freeSolo:!1,onChange:g,getOptionLabel:u=>u.name,renderInput:u=>t.createElement(rt,{...u,variant:"outlined",placeholder:n?"Loading":"Select a group",className:l.textField,InputProps:{...u.InputProps,className:l.input,classes:{notchedOutline:l.notchedOutline},endAdornment:t.createElement(t.Fragment,null,n?t.createElement(de,{color:"inherit",size:20}):null,u.InputProps.endAdornment)}})})},Bt=k(e=>({loadingContainer:{marginTop:e.spacing(1),display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}})),$e=({size:e})=>{const a=Bt();return t.createElement(x,{container:!0,className:a.loadingContainer},t.createElement(de,{size:e}))},Wt=ve(e=>({detailRow:{marginBottom:e.spacing(1)},label:{fontWeight:"bold",color:e.palette.text.primary},value:{marginLeft:e.spacing(1)}})),B=({label:e,value:a})=>{const n=Wt();return t.createElement(x,{item:!0,xs:12,container:!0,className:n.detailRow,alignItems:"center"},t.createElement(f,{variant:"subtitle1",className:n.label},e,":"),t.createElement(f,{variant:"body1",display:"inline",className:n.value},a))},Dt=ve(e=>({innerContainer:{padding:e.spacing(0,1)},sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main}})),J=e=>new Date(e).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"}),Mt=({campaign:e})=>{const a=Dt(),{name:n,description:r,ownerEntityRef:l,startDate:i,targetCompletionDate:o,supportChannel:d}=e;return t.createElement(t.Fragment,null,t.createElement(f,{variant:"h6",className:a.sectionLabel},"Campaign details"),t.createElement(x,{container:!0,className:a.innerContainer,spacing:2},t.createElement(x,{item:!0,container:!0,xs:12,spacing:0},t.createElement(B,{label:"Name",value:n}),t.createElement(B,{label:"Description",value:r}),t.createElement(B,{label:"Owner",value:t.createElement(se,{entityRef:l})}),d&&t.createElement(B,{label:"Support channel",value:d}),t.createElement(B,{label:"Start date",value:J(i)}),t.createElement(B,{label:"Target completion date",value:J(o)}))))};function Gt({angle:e,arc:a,direction:n,dist:r,emoji:l,delay:i,fontSize:o,speed:d}){return t.createElement(Ee.div,{style:{position:"absolute",fontSize:o},initial:{top:0,left:"50%",x:"-50%",y:"-100%",rotate:0,originX:`${a*n}px`,originY:`${a}px`},animate:{opacity:[0,1,0,0,0,0],y:`${-r}px`,rotate:e*n},transition:{delay:i,duration:d,ease:[.2,.83,.46,.63],repeat:1/0}},l)}const jt=["\u{1F4C8}","\u{1F4CA}","\u{1F4C9}","\u{1F680}","\u2B50\uFE0F"],Ht=k(()=>({container:{position:"relative"}}));function Vt({angle:e=125,density:a=20,emojis:n=jt,fontSizeMin:r=6,fontSizeMax:l=24,size:i=300,speed:o=4}){const d=Ht(),s=D(()=>Array.from({length:a*n.length}).map((c,p)=>({emoji:n[Math.floor(Math.random()*n.length)],arc:Math.random()*i*.5,delay:Math.random()*o,dist:Math.random()*i,direction:p%2?1:-1,fontSize:Math.random()*(l-r)+r,angle:e,speed:o})),[a,n,o,i,e,l,r]);return t.createElement("div",{className:d.container},t.createElement(f,{variant:"h1"},"\u{1F469}\u200D\u{1F4BB}"),s.map((c,p)=>t.createElement(Gt,{key:`${c.emoji}-${p}`,...c})))}const Ut=k(()=>({container:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:1,height:"100%"},textContainer:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}}));function Te({title:e,subtitle:a}){const n=Ut();return t.createElement("div",{className:n.container},t.createElement("div",{className:n.textContainer},t.createElement(Vt,null),t.createElement(Ee.div,{animate:{y:0,opacity:1},initial:{y:100,opacity:0}},e&&t.createElement(f,{align:"center",variant:"h6"},e),a&&t.createElement(f,{align:"center",variant:"subtitle2"},a))))}const _t=k(e=>({campaignCards:{display:"flex",flexDirection:"column"},campaignCard:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.border}`,padding:e.spacing(2),gap:e.spacing(5),borderRadius:e.shape.borderRadius},actions:{display:"flex",alignItems:"center",gap:e.spacing(1)},actionsText:{textTransform:"lowercase","&:first-letter":{textTransform:"uppercase"}},flexRow:{display:"flex",gap:e.spacing(1)},campaignDescription:{textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},progress:{display:"flex",alignItems:"center",gap:e.spacing(1),width:"90%"},flexColumn:{width:"100%",display:"flex",flexDirection:"column",gap:e.spacing(1)},detailSection:{display:"flex",flexDirection:"row",justifyContent:"space-between",gap:e.spacing(.5)},label:{fontWeight:"bold",color:e.palette.text.primary},value:{marginTop:"2px"},description:{maxWidth:"90%"}})),Kt=e=>{var a;let n=0;return e==null||e.forEach(({snapshotPassRate:r})=>{n+=r}),Math.round(n/((a=e==null?void 0:e.length)!=null?a:1))},Qt=e=>e==null?void 0:e.filter(({snapshotPassRate:a})=>a===100).length,Jt=e=>{if(e!=null&&e.length){const a=Qt(e);return t.createElement(f,{variant:"body2"},a,"/",e.length)}return t.createElement(f,{variant:"body2"},"No progress found.")},Xt=({campaign:e})=>{var a;const n=_t(),r=F(ft),l=F(ht),i=ut(),[o,d]=S(null),s=150,c=e.track.levels.flatMap(({checks:Y})=>Y.map(({id:qe})=>qe)),{data:p,isLoading:h,isError:m}=Re({tracks:[{trackId:e.track.id}],checkIds:{included:c}}),g=(a=p==null?void 0:p.individualEntityPassRates)!=null?a:[],u=Y=>{d(Y.currentTarget)},y=()=>{d(null)},v=()=>{i(l({campaignId:e.id}))},E=()=>{i(r({campaignId:e.id}))};if(h)return t.createElement("div",{"data-testid":"loading-indicator"},t.createElement(Te,null));if(m)return t.createElement(f,{color:"error"},"Failed to load campaigns progress.");const w=g.length?Kt(g):0,N=Jt(g),{name:T,description:b,ownerEntityRef:C,targetCompletionDate:P,startDate:q,supportChannel:le}=e;return t.createElement("div",{className:n.campaignCards},t.createElement("div",{className:n.campaignCard},t.createElement("div",{className:n.flexRow,style:{justifyContent:"space-between"}},t.createElement("div",{className:n.flexColumn},t.createElement(f,{variant:"h5"},T),t.createElement(f,{variant:"body1",className:n.description},b.length>s?`${b.substring(0,s)}...`:b)),t.createElement("div",null,t.createElement(lt,{variant:"text","aria-controls":"menu","aria-haspopup":"true",onClick:u},t.createElement("div",{className:n.actions},t.createElement("div",{className:n.actionsText},"Actions"),t.createElement("div",{className:n.flexRow},o?t.createElement(Pt,{fontSize:"small"}):t.createElement(xt,{fontSize:"small"})))),t.createElement(ot,{id:"campaign-menu",anchorEl:o,keepMounted:!0,open:!!o,onClose:y},t.createElement(me,{onClick:E},"View"),t.createElement(me,{onClick:v},"Edit")))),t.createElement("div",{className:n.detailSection},t.createElement("div",{className:n.flexColumn},t.createElement("div",{className:n.flexRow},t.createElement(f,{variant:"subtitle1",className:n.label},"Owner:"),t.createElement(f,{variant:"body1",display:"inline",className:n.value},t.createElement(se,{entityRef:C}))),le&&t.createElement("div",{className:n.flexRow},t.createElement(f,{variant:"subtitle1",className:n.label},"Support Channel:"),t.createElement(f,{variant:"body1",display:"inline",className:n.value},le))),t.createElement("div",{className:n.flexColumn},t.createElement("div",{className:n.flexRow},t.createElement(f,{variant:"subtitle1",className:n.label},"Start Date:"),t.createElement(f,{variant:"body1",display:"inline",className:n.value},J(q))),t.createElement("div",{className:n.flexRow},t.createElement(f,{variant:"subtitle1",className:n.label},"Target Completion Date:"),t.createElement(f,{variant:"body1",display:"inline",className:n.value},J(P)))),t.createElement("div",{className:n.flexRow,style:{minWidth:"300px"}},t.createElement("div",{className:n.flexColumn},t.createElement(f,{variant:"subtitle1",className:n.label},"Checks Passing"),t.createElement(f,{variant:"body2"},w,"%")),t.createElement("div",{className:n.flexColumn},t.createElement(f,{variant:"subtitle1",className:n.label},"Entities Complete"),N)))))},qt=k(e=>({root:{borderTop:`1px solid ${e.palette.divider}`,borderBottom:`1px solid ${e.palette.divider}`},tab:{textTransform:"uppercase",paddingTop:e.spacing(2),paddingBottom:e.spacing(2)}})),Yt=({unfilteredFacets:e,onChange:a,kind:n,type:r})=>{var l,i,o;const d=qt(),s={types:(l=e==null?void 0:e.types.filter(({count:m})=>m>0))!=null?l:[]},c=O(m=>{var g;a((g=s==null?void 0:s.types[m].kind)!=null?g:"",s==null?void 0:s.types[m].type)},[s==null?void 0:s.types,a]);I(()=>{var m,g,u;const y=(s==null?void 0:s.types)&&s.types.length>=0,v=!n&&y,E=n&&y&&!(s!=null&&s.types.find(({kind:w,type:N})=>n===w&&(!r&&!N||r===N)));(v||E)&&a((g=(m=s==null?void 0:s.types[0])==null?void 0:m.kind)!=null?g:"",(u=s==null?void 0:s.types[0])==null?void 0:u.type,!0)},[n,r,s==null?void 0:s.types,a]);const p=(i=s==null?void 0:s.types.map(({kind:m,type:g,count:u})=>{const y=`${m}|${g!=null?g:""}`;return{key:y,label:`${g!=null?g:m} (${u>50?"50+":u})`,id:y,tabProps:{className:d.tab}}}))!=null?i:[];if(!p.length)return null;const h=(o=s==null?void 0:s.types.findIndex(m=>m.kind===n&&(!m.type&&!r||m.type===r)))!=null?o:-1;return t.createElement(t.Fragment,null,t.createElement($t,null),t.createElement(ye,{onChange:c,tabs:p,selectedIndex:h>-1?h:void 0}))},Zt=e=>({key:`skeleton${e}`,label:"",id:`skeleton${e}`}),ea=()=>{const e=Array.from({length:4},(a,n)=>Zt(n));return t.createElement(ye,{tabs:e})};var Se=(e=>(e.Alpha="default",e.Owner="all",e.Status="all",e))(Se||{});const X=12,ta=k(e=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",backgroundColor:e.palette.type==="dark"?"#333333":"#F8F8F8",marginRight:"40px"}})),aa=({response:e,listingsPerPage:a,cursor:n,setCursor:r,prevCursors:l,setPrevCursors:i,labelPerPageDropdown:o,urlRoute:d})=>{var s;const c=ta(),p=e!=null&&e.edges?e==null?void 0:e.edges[(e==null?void 0:e.edges.length)-1]:{cursor:""},[h,m]=S(0),g=()=>{i(E=>[...E,n]),r(p==null?void 0:p.cursor)},u=()=>{r(l[l.length-1]),i(E=>E.slice(0,-1))},y=(E,w)=>{m(N=>(w>N?g():u(),w))},v=E=>{window.open(`/soundcheck/${d!=null?d:"tracks?tracksPerPage="}${E.target.value}`,"_self")};return t.createElement(pe,{className:c.pagination,component:"div",count:(s=e==null?void 0:e.totalCount)!=null?s:-1,rowsPerPage:a!=null?a:10,onPageChange:y,page:h,onRowsPerPageChange:v,labelRowsPerPage:o!=null?o:"Listings per page:",rowsPerPageOptions:[X,X*2,X*4]})},na=k(e=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",backgroundColor:e.palette.type==="dark"?"#333333":"#F8F8F8",zIndex:1e3}})),ee=({defaultPageSize:e,label:a})=>{const[n,r]=S(),[l,i]=Z(),o=l.get(a),d=o?parseInt(o,10):e,[s,c]=S(0),p=O(h=>{var m;l.set("entitiesPerPage",(m=h.target.value)!=null?m:e),i(l,{replace:!0}),c(0),r(void 0)},[e,l,i]);return{cursor:n,setCursor:r,pageSize:d,currentPage:s,setCurrentPage:c,onRowsPerPageChange:p}},te=({totalCount:e,setCursor:a,endCursor:n,prevCursor:r,defaultPageSize:l,currentPage:i,setCurrentPage:o,onRowsPerPageChange:d,pageSize:s,labelRowsPerPage:c,rowsPerPageOptions:p})=>{const h=na(),m=O(()=>{n&&a(n)},[n,a]),g=O(()=>{r&&a(r)},[r,a]),u=(y,v)=>{o(E=>(v>E?m():v<E&&g(),v))};return t.createElement(pe,{className:h.pagination,component:"div",count:e,page:i,onPageChange:u,rowsPerPage:s!=null?s:l,onRowsPerPageChange:d,labelRowsPerPage:c,rowsPerPageOptions:p!=null?p:[l,l*2,l*4]})},Ie=it(e=>{const a=e.palette.type==="dark"?e.palette.common.black:e.palette.grey[300];return{tooltip:{backgroundColor:a,color:e.palette.text.primary,maxWidth:"400px"},arrow:{color:a}}})(ue),ra=k(e=>({headerWrapper:{marginTop:e.spacing(.5)},entityRefName:{fontWeight:"bold"},iconWrapper:{padding:e.spacing(1.5,.5),display:"flex",alignItems:"center",justifyContent:"center"}})),la=({check:{name:e,description:a},icon:n,entityRef:r})=>{const l=ra(),i=W(r);return t.createElement(x,{spacing:1},t.createElement(x,{container:!0,direction:"row",spacing:1,wrap:"nowrap"},t.createElement("div",{className:l.iconWrapper},n),t.createElement(f,{variant:"h6",className:l.headerWrapper,noWrap:!0},e)),t.createElement(x,{item:!0,wrap:"nowrap"},t.createElement(f,{variant:"subtitle2",className:l.entityRefName},G(i,{defaultKind:i.kind}))),t.createElement(wt,{content:a}))},oa=({children:e,check:a,icon:n,entityRef:r})=>t.createElement(Ie,{arrow:!0,title:t.createElement(la,{check:a,icon:n,entityRef:r}),enterDelay:150,placement:"top"},e),ia=k(e=>({root:{padding:0},iconWrapper:{padding:e.spacing(1.5),display:"flex",alignItems:"center",justifyContent:"center"},link:{"&:hover $iconWrapper, &:active $iconWrapper, &:focus $iconWrapper":{backgroundColor:e.palette.infoBackground}},icon:{width:"17px",height:"17px"},virtualized:{borderBottom:`1px solid ${e.palette.divider}`,borderRight:`1px solid ${e.palette.divider}`}})),Le=z(({programId:e,check:a,entityRef:n,result:r,entityRoute:l,isVirtualized:i})=>{const o=ia();if(typeof n!="string"){const p=t.createElement("div",{className:o.iconWrapper},t.createElement("div",{className:o.icon}));return i?t.createElement("div",{className:`${o.root} ${o.virtualized}`,"aria-hidden":!0},p):t.createElement("td",{className:o.root,"aria-hidden":!0},p)}const d=t.createElement(Et,{className:o.icon,result:r!=null?r:A.NotReported}),s=t.createElement("div",{className:o.iconWrapper},d),c=r&&r===A.NotApplicable?s:t.createElement(j,{className:o.link,to:`${l(W(n))}/soundcheck/tracks/${e}/checks/${a.id}`},s);return i?t.createElement("div",{className:`${o.root} ${o.virtualized}`},t.createElement(oa,{check:a,icon:d,entityRef:n},c)):t.createElement("td",{className:`${o.root}`},c)}),sa=k(e=>({root:{height:"8px",minWidth:"64px",marginLeft:e.spacing(2),borderRadius:"100vh",backgroundColor:e.palette.background.default},bar:{backgroundColor:e.palette.success.main,transition:"none"}})),Fe=e=>{var a,n;const r=sa(e),l=D(()=>Object.entries(e.progress).reduce((o,[,d])=>o+d,0),[e.progress]);if(l===0)return null;const i=(a=e.progress[A.Passed])!=null?a:0;return t.createElement(ue,{arrow:!0,title:`Check passing for ${i} of ${l} ${l===1?"entity":"entities"}`,enterDelay:0,placement:"top"},t.createElement(st,{variant:"determinate",value:((n=e.progress[A.Passed])!=null?n:0)/l*100,classes:{root:r.root,bar:r.bar}}))},Oe=8,ca=16,$={programTitle:70,levelTitle:30,check:42,entityRefFooter:100,paginationControl:50},H={programTitle:350+ca*2,checkResult:42},ze=e=>e.reduce((a,n)=>a+n.height,0),da=e=>e*H.checkResult+H.programTitle,Ae=e=>e.filter(a=>a!==void 0).map(a=>{const n=W(a);return G(n,{defaultKind:n.kind})}).reduce((a,n)=>a.length>n.length?a:n,""),Be=e=>Oe*e+Oe,We="NoLevel",ma=e=>({name:We,badge:{options:{level:0,color:""},variant:yt.Medal},entityRef:e,ordinal:0}),De=k(e=>({checkNameCell:{padding:0,backgroundColor:e.palette.background.paper},checkNameContent:{padding:`0 ${e.spacing(2)}px`,display:"flex",justifyContent:"space-between",alignItems:"center"},checkNameTypography:{overflow:"hidden",textOverflow:"ellipsis"},checkIndicator:{flexBasis:e.spacing(8)},checkNameCellVirtualized:{height:`${$.check}px`,lineHeight:`${$.check}px`,borderBottom:`1px solid ${e.palette.divider}`,borderRight:`1px solid ${e.palette.divider}`}})),pa=z(({programId:e,programName:a,check:n,entityRefs:r,results:l,entityRoute:i})=>{const o=De(),d=D(()=>ke(l.filter(({result:c})=>c!==A.NotApplicable),"result"),[l]),s=new Map(l.map(c=>[c.entityRef,c.result]));return t.createElement("tr",{"data-testid":"track-check-row"},t.createElement("th",{scope:"row",className:o.checkNameCell,"aria-label":`${n.name} check for ${a} track`},t.createElement("div",{className:o.checkNameContent},t.createElement(f,{className:o.checkNameTypography,variant:"subtitle2",component:"p"},n.name),t.createElement(Fe,{className:o.checkIndicator,progress:d}))),r.map((c,p)=>t.createElement(Le,{key:p,programId:e,check:n,entityRef:c,result:typeof c=="string"?s.get(c):void 0,entityRoute:i})))}),ua=({name:e,progress:a})=>{const n=De();return t.createElement("div",{className:n.checkNameCell,"aria-label":`${e} check`},t.createElement("div",{className:`${n.checkNameContent} ${n.checkNameCellVirtualized}`},t.createElement(f,{variant:"subtitle2",component:"p",className:n.checkNameTypography},e),t.createElement(Fe,{className:n.checkIndicator,progress:a})))},ae=k(e=>{const a=e.palette.type==="dark"?e.palette.grey[700]:e.palette.grey[100];return{root:{color:ce(e.palette.getContrastText(a),.8),backgroundColor:a},levelContent:{padding:`${e.spacing(.5)}px ${e.spacing(2)}px`,backgroundColor:a},levelTypography:{overflow:"hidden",textOverflow:"ellipsis"},levelHeaderCell:{padding:`${e.spacing(.5)}px ${e.spacing(2)}px`,borderRight:`1px solid ${e.palette.divider}`,height:`${$.levelTitle}px`}}}),ga=z(({level:e,entityRefs:a,programName:n})=>{const r=ae();return t.createElement("tr",{className:r.root,"data-testid":"track-level-row"},t.createElement("th",{scope:"row",className:r.root},t.createElement("div",{className:r.levelContent},t.createElement(f,{className:r.levelTypography,variant:"subtitle2",component:"p","aria-label":`${e.name} for ${n} track`},e.name))),a.map((l,i)=>t.createElement("td",{key:i,className:r.root,"aria-hidden":!0})))}),fa=({name:e})=>{const a=ae();return t.createElement("div",{className:`${a.levelHeaderCell} ${a.root}`,"aria-label":`${e}`},t.createElement(f,{variant:"subtitle2",component:"p",className:a.levelTypography},e))},ha=()=>{const e=ae();return t.createElement("div",{className:`${e.levelHeaderCell} ${e.root}`},"\xA0")},ya=k(e=>({virtualized:{borderRight:`1px solid ${e.palette.divider}`,height:`${$.programTitle}px`,display:"flex",justifyContent:"center",alignItems:"center"}})),va=z(({entityRef:e,highestLevels:a,trackType:n})=>{const r=a.find(i=>i.entityRef===e);let l=r!=null&&r.badge?t.createElement(ge,{badge:r.badge}):t.createElement(fe,null);return n==="campaign"&&(l=t.createElement(he,null)),l}),Ea=({highestLevel:e,trackType:a})=>{const n=ya();if(!(e!=null&&e.badge))return t.createElement("div",{className:n.virtualized},"\xA0");let r=e.name!==We?t.createElement(ge,{badge:e.badge}):t.createElement(fe,null);return a==="campaign"&&(r=t.createElement(he,null)),t.createElement("div",{className:n.virtualized},r)},Me=k(e=>({programNameCell:{padding:0,position:"sticky",backgroundColor:e.palette.background.paper},programNameContent:{padding:e.spacing(2)},programNameTypography:{overflow:"hidden",textOverflow:"ellipsis"},badgeCellContent:{display:"flex",justifyContent:"center",alignItems:"center"},programNameCellVirtualized:{borderRight:`1px solid ${e.palette.divider}`}})),ka=z(({program:e,entityRefs:a,highestLevels:n})=>{const r=Me();return t.createElement("tr",{"data-testid":"track-title-row"},t.createElement("th",{scope:"row",className:r.programNameCell},t.createElement("div",{className:r.programNameContent},t.createElement(f,{className:r.programNameTypography,variant:"h5",component:"p"},e.name))),a.map((l,i)=>{var o;return typeof l!="string"?t.createElement("td",{key:i,"aria-hidden":!0}):t.createElement("td",{key:i,"data-testid":"track-certification-cell"},t.createElement("div",{className:r.badgeCellContent},t.createElement(va,{entityRef:l,highestLevels:n,trackType:(o=e.type)!=null?o:void 0})))}))}),ba=z(({name:e})=>{const a=Me();return t.createElement("div",{className:`${a.programNameCell} ${a.programNameCellVirtualized}`},t.createElement("div",{className:a.programNameContent},t.createElement(f,{className:a.programNameTypography,variant:"h5",component:"p"},e)))}),Ca=({program:e,highestLevels:a,levels:n,entityRefs:r,entityRoute:l})=>t.createElement("tbody",null,t.createElement(ka,{program:e,entityRefs:r,highestLevels:a}),n.map((i,o)=>t.createElement(et,{key:o},t.createElement(ga,{entityRefs:r,level:i,programName:e.name}),i.checks.map(({check:d,results:s},c)=>t.createElement(pa,{key:c,check:d,programId:e.id,programName:e.name,entityRefs:r,results:s,entityRoute:l}))))),Ge=e=>{const a=R(M);return L([K.EntitiesByRefs,e],async()=>a.getEntitiesByRefs({entityRefs:e.entityRefs,fields:e.fields}),{refetchOnWindowFocus:!1,onError:()=>{},enabled:!!e.entityRefs})},je=e=>{const a=R(M);return L([K.EntityByRef,e],async()=>a.getEntityByRef(e),{onError:()=>{},enabled:!!e})},He=k(e=>({root:{position:"sticky",bottom:"-1px",backgroundColor:e.palette.background.default,boxShadow:`0 -1px ${e.palette.divider}`,"& td$cell, & th$cell":{border:0,padding:e.spacing(1)},"& td$cell":{backgroundColor:e.palette.background.default}},row:{boxShadow:`1px 0 ${e.palette.background.default}, -1px 0 ${e.palette.background.default}`},cell:{verticalAlign:"top"},cellInner:{textOrientation:"mixed",writingMode:"vertical-lr",transform:"rotate(-20deg)",transformOrigin:`100% ${e.spacing(1)}px`,wordBreak:"keep-all",fontWeight:"bold",overflow:"hidden",textOverflow:"ellipsis",maxHeight:"max(15vh, 175px)"}})),wa=({entityRefs:e})=>{const a=F(U),n=He(),{data:r}=Ge({entityRefs:Tt.compact(e),fields:["kind","metadata.name","metadata.namespace","metadata.title"]});return t.createElement("tfoot",{className:n.root,"data-testid":"results-table-footer"},t.createElement("tr",{className:n.row},t.createElement("td",{className:n.cell}),e.map((l,i)=>{if(typeof l!="string")return t.createElement("th",{key:i,className:n.cell,"aria-hidden":!0});const o=W(l),d=r==null?void 0:r.items.find(s=>s&&V(s)===l);return t.createElement("th",{scope:"col",key:i,className:n.cell},t.createElement("div",{className:n.cellInner},t.createElement(j,{to:a(o)},d!=null&&d.metadata.title?d.metadata.title:G(o,{defaultKind:o.kind}))))})))},Ra=({entityRef:e})=>{const{data:a}=je(e),n=F(U),r=He(),l=e?W(e):void 0,i=l?t.createElement(j,{to:n(l)},a!=null&&a.metadata.title?a.metadata.title:G(l,{defaultKind:l.kind})):t.createElement(t.Fragment,null);return t.createElement("div",{className:r.cell},t.createElement("div",{className:r.cellInner},i))},Na=k(e=>({table:{backgroundColor:e.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap","& th, & td":{border:`1px solid ${e.palette.divider}`,borderCollapse:"collapse"},paddingBottom:e.spacing(2)},programTitle:{padding:e.spacing(2)},checkResult:{padding:e.spacing(1.5)},title:{padding:`${e.spacing(1)}px ${e.spacing(2)}px`},header:{backgroundColor:e.palette.type==="dark"?e.palette.grey[700]:e.palette.grey[100]}})),ne=({entityCount:e=25,levelCount:a=3,checkCount:n=5})=>{const r=Na(),l=new Array(e).fill(void 0),i=new Array(n).fill(void 0),o=new Array(a).fill(void 0);return t.createElement("table",{className:r.table},t.createElement("tbody",null,t.createElement("tr",null,t.createElement("td",{className:r.programTitle},t.createElement(Q,{width:180,height:40})),l.map((d,s)=>t.createElement("td",{key:s}))),o.map((d,s)=>t.createElement(t.Fragment,{key:s},t.createElement("tr",{className:r.header},t.createElement("td",{className:r.title},t.createElement(Q,{width:180})),l.map((c,p)=>t.createElement("td",{key:p}))),i.map((c,p)=>t.createElement("tr",{key:p},t.createElement("td",{className:r.title},t.createElement(Q,{width:240})),l.map((h,m)=>t.createElement("td",{key:m,className:r.checkResult},t.createElement(Q,{width:18,height:18,variant:"rect"})))))))))},Ve=25,xa=k(e=>({root:{width:"100%"},table:{overflow:"auto",width:"100%",backgroundColor:e.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left","& th, & td":{border:`1px solid ${e.palette.divider}`,borderCollapse:"collapse"},"& th:first-of-type":{position:"sticky",left:0,zIndex:1,maxWidth:"65ch"},"& tfoot":{bottom:0,zIndex:100},"& tbody td:first-of-type":{border:`1px solid ${e.palette.divider}`,boxShadow:`1px 0 ${e.palette.background.default}, -1px 0 ${e.palette.background.default}`}}})),Pa=z(e=>{const{setError:a,kind:n,type:r,ownerEntityRef:l}=e,i=xa(),o=F(U),{cursor:d,pageSize:s,...c}=ee({defaultPageSize:Ve,label:"entitiesPerPage"}),{data:p,isLoading:h,isError:m}=be(l,{kind:n,type:r},s,d);if(I(()=>{a==null||a(m?new Error("Error loading track overview"):void 0)},[m,a]),h)return t.createElement(ne,null);if(!p||!l)return null;const{programs:g,entityRefs:u,totalCount:y,endCursor:v,prevCursor:E}=p;if(!h&&!g.length)return t.createElement(Rt,{missing:"data",title:"Missing tracks",description:t.createElement(t.Fragment,null,"Looks like the group"," ",G(W(l),{defaultKind:"Group"})," ","doesn't own any ",r!=null?r:n," components that have Soundcheck tracks set up.",t.createElement("br",null),t.createElement("br",null),"If you're an administrator, you can learn more about configuring and filtering tracks in the"," ",t.createElement(j,{to:"https://www.npmjs.com/package/@spotify/backstage-plugin-soundcheck-backend#entity-filter"},"docs"),".")});if(m)return null;const w=u.length>=25?u:[...u,...Array.from({length:25-u.length},()=>{})];return t.createElement("div",{className:i.root},t.createElement("table",{className:i.table,"aria-label":"Check results"},g.map(({program:N,levels:T,highestLevels:b},C)=>t.createElement(Ca,{key:C,program:N,entityRefs:w,levels:T,highestLevels:b,entityRoute:o})),t.createElement(wa,{entityRefs:w})),t.createElement(te,{...c,totalCount:y,defaultPageSize:Ve,endCursor:v,prevCursor:E,labelRowsPerPage:"Entities per page:",pageSize:s}))}),$a=e=>t.createElement(ba,{name:e}),Ta=e=>({type:"ProgramHeader",render:()=>$a(e)}),Sa=e=>e?t.createElement(fa,{name:e}):t.createElement(ha,null),Ue=e=>({type:"LevelHeader",render:()=>Sa(e)}),Ia=(e,a)=>t.createElement(ua,{name:e,progress:a}),_e=(e,a)=>({type:"CheckTitle",render:()=>Ia(e,a)}),La=(e,a,n,r,l)=>t.createElement(Le,{check:a,entityRef:n,entityRoute:l,programId:e,result:r,isVirtualized:!0}),Ke=(e,a,n,r,l)=>({type:"CheckResult",render:()=>La(e,a,n,r,l)}),Fa=e=>t.createElement(Ra,{entityRef:e}),re=e=>({type:"EntityHeader",render:()=>Fa(e)}),Oa=(e,a)=>t.createElement(Ea,{highestLevel:e,trackType:a}),za=(e,a)=>({type:"LevelBadge",render:()=>Oa(e,a)}),Qe=e=>a=>{const n=e[a.rowIndex].cells[a.columnIndex];return n?t.createElement("div",{style:a.style},n.render()):t.createElement("div",{style:a.style})},Aa=(e,a,n)=>{var r;const l=[];for(const{program:o,levels:d,highestLevels:s}of e){l.push({height:$.programTitle,cells:[Ta(o.name),...a.map(c=>{var p;const h=c?s.find(m=>m.entityRef===c)||ma(c):void 0;return za(h,(p=o.type)!=null?p:void 0)})]});for(const c of d){l.push({height:$.levelTitle,cells:[Ue(c.name),...a.map(p=>Ue(""))]});for(const{check:p,results:h}of c.checks)l.push({height:$.check,cells:[_e(p.name,ke(h.filter(({result:m})=>m!==A.NotApplicable),"result")),...a.map(m=>{var g,u;return Ke(o.id,p,m,(u=(g=h.find(y=>y.entityRef===m))==null?void 0:g.result)!=null?u:A.NotApplicable,n)})]})}}const i=Ae(a!=null?a:[]);return l.push({height:Be((r=i.length)!=null?r:1),cells:[re(""),...a.map(o=>re(o||""))]}),l},Je=25,Ba=k(e=>({table:{backgroundColor:e.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left",overflow:"auto"}})),Wa=({setError:e,kind:a,type:n,ownerEntityRef:r})=>{const{cursor:l,pageSize:i,...o}=ee({defaultPageSize:Je,label:"entitiesPerPage"}),{data:d,isLoading:s,isError:c}=be(r,{kind:a,type:n},i,l),p=Ba(),h=F(U);I(()=>{e==null||e(c?new Error("Error loading program overview"):void 0)},[c,e]);const[m,g]=S(0),u=tt(null);if(at(()=>{d&&r&&u!=null&&u.current&&g(u.current.clientWidth)},[u,d,r]),s)return t.createElement(ne,null);if(!d||!r)return null;const{programs:y,entityRefs:v,totalCount:E,endCursor:w,prevCursor:N}=d,T=v.length>=25?v:[...v,...Array.from({length:25-v.length},()=>{})],b=Aa(y,T,h),C=Qe(b);return t.createElement("div",{ref:u},t.createElement(x,{"aria-label":`Check results for ${n!=null?n:a}`,key:`${a}|${n!=null?n:""}`,item:!0,xs:12},m>0&&t.createElement(St,{className:p.table,columnCount:T.length+1,columnWidth:P=>P===0?H.programTitle:H.checkResult,rowCount:b.length,rowHeight:P=>b[P].height,height:ze(b)+$.paginationControl,width:m},C)),t.createElement(te,{...o,totalCount:E,defaultPageSize:Je,endCursor:w,prevCursor:N,pageSize:i,labelRowsPerPage:"Entities per page:"}))},Da=({facets:e,ownerEntityRef:a,kind:n,type:r,setError:l})=>{const i=D(()=>{const o=new Map;return e.types.forEach(({kind:d,type:s})=>{const c=`${d}|${s!=null?s:""}`;o.set(c,t.createElement(Wa,{key:c,ownerEntityRef:a,kind:d,type:s,setError:l}))}),o},[e,a,l]);return t.createElement("div",null,i.get(`${n}|${r!=null?r:""}`))},Ma=k(()=>({scrollContainer:{overflow:"auto"}})),Ga=({facets:e,ownerEntityRef:a,hasError:n,kind:r,type:l,setError:i,useVirtualizedResultsTable:o,isFixedGroup:d})=>{var s,c,p;const h=Ma();if(n)return t.createElement(kt,{severity:"error",title:n.message});const m="Use the groups drop-down list at the top-right of the page to select another group.";return e&&((c=(s=e.types)==null?void 0:s.length)!=null?c:0)>0?(p=e.types)!=null&&p.find(g=>g.count>0)?t.createElement("div",{className:h.scrollContainer},o?t.createElement(Da,{facets:e,kind:r,type:l,setError:i,ownerEntityRef:a,hasError:n}):t.createElement(Pa,{ownerEntityRef:a,kind:r,type:l,setError:i})):t.createElement(bt,{ownerEntityRef:a,selectGroupHint:m}):t.createElement(Ct,{ownerEntityRef:a,selectGroupHint:d?void 0:m})},ja=k(e=>({tableContainer:{padding:0,backgroundColor:"transparent"},campaignsGrid:{margin:`0 0 ${e.spacing(3)}px`},campaignsCard:{display:"flex",width:"100%",flexDirection:"column",padding:e.spacing(2),gap:e.spacing(2)},campaignsLink:{textAlign:"center",margin:`${e.spacing(1)}rem 0 ${e.spacing(1)}`},tableLoading:{backgroundColor:e.palette.background.paper,padding:e.spacing(6)}})),Xe=3,Ha=({groupSelectorError:e,isFixedGroup:a=!1})=>{var n;const[r,l]=Z(),{group:i,kind:o,type:d}=Object.fromEntries(r.entries()),s=F(vt),[c,p]=S(void 0),[h,m]=S(void 0);I(()=>{((c==null?void 0:c.kind)!==o||(c==null?void 0:c.type)!==d)&&p({kind:o,type:d})},[o,d,c]);const{data:g,isLoading:u}=Lt(i),{data:y}=we({orderAlphabetical:"default",searchByOwner:i,searchByStatus:"active"}),v=y==null?void 0:y.edges.map(C=>C.node),E=v==null?void 0:v.slice(0,Xe),w=(n=R(ie).getOptionalBoolean("soundcheck.virtualizeOverviewPage"))!=null?n:!0,N=h||e,T=O((C,P,q)=>{C&&(p({kind:C,type:P}),P?(r.set("kind",C),r.set("type",P)):(r.delete("type"),r.set("kind",C)),l(r,{replace:q}))},[r,l]),b=ja();return t.createElement(x,{container:!0,spacing:0},v&&v.length>0&&t.createElement(x,{item:!0,xs:12,className:b.campaignsGrid},t.createElement(ct,null,t.createElement(dt,{expandIcon:t.createElement(Nt,null)},t.createElement(f,{variant:"h6"},"Campaigns")),t.createElement(mt,null,t.createElement("div",{className:b.campaignsCard},E==null?void 0:E.map(C=>t.createElement("div",{key:C.id},t.createElement(Xt,{campaign:C})))),v.length>Xe&&t.createElement(j,{to:s(),className:b.campaignsLink},"More Campaigns")))),t.createElement(x,{item:!0,xs:12},u?t.createElement(ea,null):t.createElement(Yt,{unfilteredFacets:g,kind:c==null?void 0:c.kind,type:c==null?void 0:c.type,onChange:T})),t.createElement(x,{item:!0,xs:12,className:b.tableContainer},u?t.createElement("div",{className:b.tableLoading},t.createElement($e,{size:80})):t.createElement(Ga,{facets:g,kind:c==null?void 0:c.kind,type:c==null?void 0:c.type,setError:m,hasError:N,ownerEntityRef:i,useVirtualizedResultsTable:w,isFixedGroup:a})))};export{B as C,Se as F,At as G,$e as L,Ha as O,aa as P,X as R,Ie as S,Ot as U,Ft as a,Pe as b,H as c,ze as d,da as e,$ as f,_e as g,Ke as h,Ae as i,Be as j,re as k,Qe as l,ee as m,ne as n,te as o,Te as p,Mt as q,Ce as r,je as s,Re as t,we as u,Ge as v};
2
- //# sourceMappingURL=OverviewPageContent-9845035d.esm.js.map
@@ -1,2 +0,0 @@
1
- import{DATA_VIZ_DARK_THEME as r,DATA_VIZ_LIGHT_THEME as o}from"@spotify/backstage-plugin-core";const s=t=>t?t.palette.type:"",e=t=>s(t).toLowerCase()==="dark",T=t=>e(t)?t.palette.grey[200]:t.palette.grey[800],m=t=>e(t)?r:o;function p(t,a){return(a?t.minus({days:a}):t).toFormat("MMM dd")}export{m as a,p as f,T as g,e as i};
2
- //# sourceMappingURL=chartUtils-080232d7.esm.js.map