@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,2 @@
1
+ import{MarkdownContent as At,Table as Mn,WarningPanel as wa,TabbedLayout as le,LinearGauge as ti,OverflowTooltip as ai,Link as Ta,DismissableBanner as ni,Breadcrumbs as ri,Page as li,Header as ii}from"@backstage/core-components";import{useApi as D,useRouteRef as ne,featureFlagsApiRef as pt,alertApiRef as oi}from"@backstage/core-plugin-api";import{usePermission as Z}from"@backstage/plugin-permission-react";import{Button as K,makeStyles as R,TextField as J,InputAdornment as Bn,IconButton as gt,Grid as y,InputLabel as ze,NativeSelect as Sa,Menu as $t,MenuItem as he,ListItemIcon as ce,ListItemText as de,withStyles as Ra,Card as Pa,CardHeader as si,CardContent as ci,Divider as He,CardActions as di,List as Mt,Typography as b,ListItem as Se,Tooltip as oe,Badge as mi,Modal as ui,Box as S,FormControlLabel as Je,Checkbox as Re,Toolbar as Gn,Chip as Oe,useTheme as me,Paper as Pe,Stepper as pi,Step as gi,StepLabel as hi,StepContent as fi,FormControl as Bt,Select as Na,FormHelperText as Gt,Dialog as vi,Slide as Ei,AppBar as yi,RadioGroup as Ci,Radio as zn,Tabs as La,Tab as We,ButtonGroup as Hn,Switch as bi,alpha as ki,Icon as xi,TablePagination as Ia,Table as Wn,TableHead as Vn,TableRow as zt,TableCell as Ht,TableBody as _n,Popover as wi,Popper as Ti,Fade as Si,ClickAwayListener as Ri,lighten as Kn,darken as Un}from"@material-ui/core";import{SpotifyLicenseBanner as Pi}from"@spotify/backstage-plugin-core";import{soundcheckCampaignCreatePermission as jn,soundcheckCampaignUpdatePermission as Ni,soundcheckCampaignDeletePermission as Li,asArray as Oa,TrackCheckSchema as Ii,CampaignDetailsSchema as Oi,LevelDetailsSchema as Di,TrackDetailsSchema as Fi,CheckMessagingSchema as Ai,CheckDetailsSchema as $i,parseFactRef as Da,FrequencySchema as Mi,stringifyFactRef as Bi,soundcheckCheckUpdatePermission as qn,soundcheckCheckReadPermission as Gi,soundcheckCheckDeletePermission as zi,soundcheckCheckCreatePermission as Hi,soundcheckCollectorUpdatePermission as Qn,soundcheckTrackUpdatePermission as Yn,soundcheckTrackReadPermission as Xn,toEntityFilterQuery as Wi,soundcheckTrackDeletePermission as Vi,soundcheckTrackCreatePermission as _i,soundcheckCollectorReadPermission as Ki}from"@spotify/backstage-plugin-soundcheck-common";import t,{useCallback as U,createContext as Wt,useState as T,useContext as Vt,useRef as _t,useEffect as B,useMemo as Y,memo as Ui}from"react";import{useNavigate as be,useLocation as Kt,useSearchParams as ht,useParams as et,Routes as Zn,Route as De}from"react-router-dom";import{F as Ve,u as Jn,P as Fa,a as ft,b as Aa,L as vt,R as $a,C as Ma,c as er,d as ji,e as qi,f as Qi,g as Yi,h as Xi,i as Zi,j as Ji,k as tr,l as eo,m as to,n as ao,o as no,p as Ne,q as ro,r as lo,s as io,t as oo,S as so,U as co,G as mo,O as uo}from"./OverviewPageContent-DW92KphH.esm.js";import{Q as N,u as fe,M as ve,E as tt,c as at,L as ar,N as po,d as go,S as ho,w as fo}from"./EmptyState-CFyDYjmm.esm.js";import{s as A,h as nr,i as vo,t as Eo,R as rr,j as lr,k as ir,l as or,m as sr,n as yo,p as Co,q as cr,B as dr,T as _e,D as mr,u as bo,r as ur}from"./routes-DcGwdXHX.esm.js";import Ba from"react-use/lib/useDebounce";import{useQuery as G,useQueryClient as Ee,useMutation as ye}from"@tanstack/react-query";import Ga from"../images/no-results.svg";import{parseEntityRef as X,stringifyEntityRef as za,RELATION_PART_OF as ko,RELATION_OWNED_BY as xo}from"@backstage/catalog-model";import pr from"@material-ui/icons/Close";import wo from"@material-ui/icons/Search";import{Skeleton as Ut,Autocomplete as jt,ToggleButtonGroup as To,ToggleButton as gr}from"@material-ui/lab";import{v4 as qt}from"uuid";import{catalogApiRef as hr,EntityRefLink as Ke,EntitySearchBar as So,EntityTable as Et,useEntityList as Ro,EntityTypeFilter as Po,EntityOwnerFilter as No,EntityLifecycleFilter as Lo,EntityListProvider as Io,entityRouteRef as Ha,humanizeEntityRef as Qt,EntityDisplayName as Oo,EntityRefLinks as fr,getEntityRelations as vr}from"@backstage/plugin-catalog-react";import{createStyles as Do,makeStyles as z}from"@material-ui/core/styles";import Fo from"@material-ui/icons/Archive";import Er from"@material-ui/icons/Delete";import Ao from"@material-ui/icons/MoreVert";import $o from"@material-ui/icons/OpenInBrowser";import yt from"@material-ui/icons/Group";import{useForm as Yt,Controller as V,useFieldArray as Xt,useWatch as Wa,useFormContext as Ce,FormProvider as yr}from"react-hook-form";import Cr from"@material-ui/icons/CheckBox";import br from"@material-ui/icons/CheckBoxOutlineBlank";import Mo from"@material-ui/icons/ExpandMore";import{zodResolver as Va}from"@hookform/resolvers/zod";import{z as P}from"zod";import Ue,{uniqBy as _a,findIndex as kr,countBy as Bo,capitalize as Go,isObject as zo,camelCase as Zt,remove as Ho}from"lodash";import xr from"@date-io/luxon";import{KeyboardDatePicker as wr}from"@material-ui/pickers/DatePicker";import{MuiPickersUtilsProvider as Tr}from"@material-ui/pickers/MuiPickersUtilsProvider";import{DatePickerToolbar as Wo}from"@material-ui/pickers/DatePicker/DatePickerToolbar";import{DateTime as je}from"luxon";import{useDrop as Vo,useDrag as _o,DndProvider as Ka}from"react-dnd";import{HTML5Backend as Ua}from"react-dnd-html5-backend";import Sr from"@material-ui/icons/DragIndicator";import Ko from"@material-ui/icons/Visibility";import Uo from"@material-ui/icons/Remove";import{VariableSizeGrid as jo}from"react-window";import qo from"cron-validate";import Qo from"cronstrue";import Rr from"@uiw/react-md-editor";import Yo from"rehype-sanitize";import ja from"@material-ui/icons/ArrowDropDown";import Pr from"../images/catalog.svg";import Xo from"../images/git-dark.svg";import Zo from"../images/git.svg";import Jo from"../images/github-dark.svg";import es from"../images/github-light.svg";import ts from"../images/pagerduty-dark.png";import as from"../images/pagerduty.svg";import Nr from"../images/soundcheck.png";import Lr from"../images/tech_insights.png";import{i as ns,f as Ct,g as ke,a as nt,b as Ir,T as Or}from"./chartUtils-CDPSRCm-.esm.js";import{CircularProgressbar as Dr,buildStyles as Fr}from"react-circular-progressbar";import{ResponsiveContainer as qa,LineChart as Qa,CartesianGrid as bt,XAxis as rt,YAxis as lt,Line as Ya,Tooltip as Ar,Legend as $r,BarChart as Mr,Bar as Br,Cell as rs,AreaChart as ls,Area as is}from"recharts";import os from"@material-ui/icons/ArrowDropUp";import ss from"@material-ui/icons/HelpOutline";import{createFilterOptions as Gr}from"@material-ui/lab/Autocomplete";import{motion as cs}from"framer-motion";import Xa from"react-use/lib/useLocalStorage";import ds from"@material-ui/icons/GetApp";import{CSVLink as zr}from"react-csv";import"react-circular-progressbar/dist/styles.css";import ms from"@material-ui/icons/TrendingDown";import us from"@material-ui/icons/TrendingFlat";import ps from"@material-ui/icons/TrendingUp";import gs from"@material-ui/icons/Apps";import hs from"@material-ui/icons/GridOn";import fs from"@material-ui/icons/KeyboardArrowDown";import vs from"@material-ui/icons/Reorder";import Hr from"@material-ui/lab/Skeleton";import Es from"@material-ui/icons/Category";import ys from"@material-ui/icons/Class";import Cs from"@material-ui/icons/Loop";import bs from"@material-ui/icons/DoneAllRounded";import ks from"@material-ui/icons/Menu";import xs from"@material-ui/icons/OpenInNew";import"react-use/lib/useAsync";import"./RefetchingIndicator-CdGa4YBG.esm.js";import"react-use/lib/useUnmount";import"@material-ui/icons/Check";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/ReportProblemOutlined";import"classnames";import"../images/empty-state.svg";import"graphql-request";import"graphql-tag";import"@backstage/core-compat-api";function Jt(e){const a=D(A);return G([N.GetChecks,JSON.stringify(e)],async()=>a.getChecks(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const ws="Error Creating Campaign",Wr="Failed to create campaign.";function Ts(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.createCampaign(l);if(!i)throw new Error(Wr);return i};return ye([ve.CreateCampaign],r,{onSuccess:()=>{Promise.all([a.invalidateQueries({queryKey:[N.GetCampaigns]}),a.invalidateQueries({queryKey:[N.GetCampaignOwners]})])},onError:l=>{let i=Wr;l instanceof Error&&(i=l.message),n({severity:"error",title:ws,message:i})}})}const Ss="Error Updating Campaign",Vr="Failed to update campaign.";function Rs(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.updateCampaign(l);if(!i)throw new Error(Vr);return i};return ye([ve.UpdateCampaign],r,{onSuccess:()=>Promise.all([a.invalidateQueries({queryKey:[N.GetCampaigns]}),a.invalidateQueries({queryKey:[N.GetIndividualEntityPassRateSnapshots]}),a.invalidateQueries({queryKey:[N.GetCampaignOwners]})]),onError:l=>{let i=Vr;l instanceof Error&&(i=l.message),n({severity:"error",title:Ss,message:i})}})}const Ps="Error Archiving Campaign";function Ns(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.archiveCampaign(l);if(!i)throw new Error(`Failed to archive campaign ${l}`);return i};return ye([ve.ArchiveCampaign],r,{onSuccess:()=>{Promise.all([a.invalidateQueries({queryKey:[N.GetCampaigns]}),a.invalidateQueries({queryKey:[N.GetCampaignOwners]})])},onError:(l,i)=>{let o=`Failed to archive campaign ${i}`;l instanceof Error&&(o=l.message),n({severity:"error",title:Ps,message:o})}})}const Ls="Error Deleting Campaign";function Is(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.deleteCampaign(l);if(!i)throw new Error(`Failed to delete campaign ${l}`);return i};return ye([ve.DeleteCampaign],r,{onSuccess:()=>{Promise.all([a.invalidateQueries({queryKey:[N.GetCampaigns]}),a.invalidateQueries({queryKey:[N.GetCampaignOwners]})])},onError:(l,i)=>{let o=`Failed to delete campaign ${i}`;l instanceof Error&&(o=l.message),n({severity:"error",title:Ls,message:o})}})}function ea(e){const a=D(A);return G([N.GetAllPrograms,e],async()=>a.getTracks(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const Os="Error Creating Track";function _r(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.createProgram(l);if(!i)throw new Error("Failed to create track.");return i};return ye([ve.CreateProgram],r,{onSuccess:async()=>{const l=[N.GetAllPrograms,N.GetOverallTrackPassRateSnapshots,N.GetOverallTrackPassRateTrends,N.GetIndividualTrackPassRateSnapshots,N.GetIndividualTrackPassRateTrends,N.GetTrackOwners];for(const i of l)a.invalidateQueries({queryKey:[i]})},onError:l=>{let i="Failed to create track.";l instanceof Error&&(i=l.message),n({severity:"error",title:Os,message:i})}})}const Ds=e=>{const a=D(A);return G([N.GetOverallCheckPassRateSnapshots,{...e,numberOfDays:0}],async()=>a.getOverallCheckPassRates({...e,numberOfDays:0}),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Fs=e=>{const a=D(A);return G([N.GetOverallCheckPassRateTrends,e],async()=>a.getOverallCheckPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},As=(e,a)=>{const n=D(A);return G([N.CertificationStatus,e],async()=>n.getCertificationStatus(e),{enabled:a})},$s=(e,a)=>{const n=D(A);return G([N.CertificationStatusHistory,e],async()=>n.getCertificationStatusHistory(e),{enabled:a,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Ms=e=>{const a=D(A);return G([N.GetIndividualCheckPassRateSnapshots,{...e,numberOfDays:0}],async()=>a.getIndividualCheckPassRates({...e,numberOfDays:0}),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Bs=e=>{const a=D(A);return G([N.GetIndividualCheckPassRateTrends,e],async()=>a.getIndividualCheckPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Gs=e=>{const a=D(A);return G([N.GetOverallTrackPassRateSnapshots,{...e,numberOfDays:0}],async()=>a.getOverallTrackPassRate({...e,numberOfDays:0}),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},zs=(e,a)=>{const n=D(A);return G([N.GetOverallTrackPassRateTrends,e],async()=>n.getOverallTrackPassRate(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1,enabled:a!=null?a:!0})},Kr=e=>{const a=D(A);return G([N.GetIndividualTrackPassRateSnapshots,{...e,numberOfDays:0}],async()=>a.getIndividualTrackPassRate({...e,numberOfDays:0}),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Ur=e=>{const a=D(A);return G([N.GetIndividualTrackPassRateTrends,e],async()=>a.getIndividualTrackPassRate(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Hs=e=>{const a=D(A);return G([N.GetOverallEntityPassRateTrends,e],async()=>a.getOverallEntityPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Ws=e=>{const a=D(A);return G([N.GetIndividualEntityPassRateTrends,e],async()=>a.getIndividualEntityPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Vs=e=>{const a=D(A);return G([N.GetOverallGroupPassRateTrends,e],async()=>a.getOverallGroupPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},_s=e=>{const a=D(A);return G([N.GetIndividualGroupPassRateSnapshots,{...e,filter:{...e==null?void 0:e.filter,numberOfDays:0}}],async()=>a.getIndividualGroupPassRates({...e,filter:{...e==null?void 0:e.filter,numberOfDays:0}}),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Ks=e=>{const a=D(A);return G([N.GetIndividualGroupPassRateTrends,e],async()=>a.getIndividualGroupPassRates(e),{staleTime:12*60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},it=e=>{const a=ne(e),n=be(),{key:r}=Kt();return[U(()=>{n(r?-1:a())},[n,a,r]),U(()=>n(a()),[n,a])]},Us=e=>{const a=D(hr);return G([N.EntitiesByRefs,e],async()=>a.getEntitiesByRefs({entityRefs:e.entityRefs,fields:e.fields}),{refetchOnWindowFocus:!1,onError:()=>{},enabled:!!e.entityRefs})},Za=()=>Wt({selectedItem:null,setSelectedItem:()=>{},isLoading:!1,setIsLoading:()=>{},showAddModal:!1,setShowAddModal:()=>{},isReadOnly:!1,showReadOnlyModal:()=>{},hideModal:()=>{}}),Ja=e=>({children:a})=>{const[n,r]=T(null),[l,i]=T(!1),[o,s]=T(!1),[c,d]=T(!1),u=p=>{i(!0),r(p)},m=()=>{r(null),i(!1),d(!1)};return t.createElement(e.Provider,{value:{selectedItem:n,setSelectedItem:r,isLoading:o,setIsLoading:s,showAddModal:c,setShowAddModal:d,isReadOnly:l,showReadOnlyModal:u,hideModal:m}},a)},en=e=>Vt(e),jr=Za(),qr=Ja(jr),Fe=()=>en(jr),Qr=Za(),Yr=Ja(Qr),xe=()=>en(Qr),Xr=Za(),js=Ja(Xr),kt=()=>en(Xr);function qs(){const e=D(A);return G([N.GetCampaignOwners],async()=>e.getCampaignOwners(),{refetchInterval:!1,refetchOnWindowFocus:!1})}const Qs={0:"detailsStep",1:"tracksStep",2:"filtersStep",3:"milestonesStep"};var ta=(e=>(e.title="Create a campaign",e.description="A soundcheck campaign allows you to define a tech health goal, assign it to a team and monitor progress.",e.callToAction="Get started",e))(ta||{}),tn=(e=>(e.title="No campaigns found",e.description="No campaigns matched your search. Consider changing search term and filters.",e))(tn||{});const an=()=>{const{setShowAddModal:e}=kt(),{loading:a,allowed:n}=Z({permission:jn});return t.createElement(tt,{title:ta.title,description:ta.description,imgSrc:Ga,action:!a&&t.createElement(K,{disabled:!n,variant:"contained",color:"primary",onClick:()=>e(!0)},ta.callToAction)})};var nn=(e=>(e.all="All",e.active="Active",e.archived="Archived",e))(nn||{});const Ys=R(e=>({searchIcon:{opacity:".5"},clearButton:{height:"36px",width:"36px"},searchBar:{color:e.palette.text.primary,paddingLeft:e.spacing(1)},iconWrapper:{marginLeft:0}})),rn=({searchTerm:e,setSearchTerm:a,showClear:n=!0,placeholder:r="Search...",disabled:l,...i})=>{const o=Ys(),s=_t(null);B(()=>{!l&&s.current&&s.current.focus()},[l]);const c=u=>{a(u.target.value)},d=()=>{a("")};return t.createElement(J,{...i,disabled:l,inputRef:s,fullWidth:!0,placeholder:r,value:e,onChange:c,InputProps:{className:o.searchBar,startAdornment:t.createElement(Bn,{className:o.iconWrapper,position:"start"},t.createElement(wo,{className:o.searchIcon,"data-testid":"search-icon"})),endAdornment:n&&e?t.createElement(Bn,{position:"end"},t.createElement(gt,{edge:"end",onClick:d,className:o.clearButton},t.createElement(pr,null))):null}})},Xs=R(e=>({searchbar:{maxWidth:"275px","& input":{paddingTop:e.spacing(1),paddingBottom:e.spacing(1)}},filters:{display:"flex",alignItems:"center",padding:0},dropdownFilters:{margin:"0 15px",alignItems:"center"},selectHolder:{minWidth:105,"& select":{paddingTop:e.spacing(1),paddingBottom:e.spacing(1)}},label:{marginBottom:e.spacing(.5)}})),ln=({searchPlaceholder:e,isLoading:a,searchTerm:n,setSearchTerm:r,filterAlpha:l,handleAlphabeticalFilterChange:i,filterOwner:o,handleOwnerFilterChange:s,filterStatus:c,handleStatusFilterChange:d,owners:u})=>{const m=Xs();return t.createElement(y,{item:!0,xs:10,className:m.filters},t.createElement("div",null,t.createElement(ze,{className:m.label,htmlFor:"search-bar"},e||"Search"),t.createElement(rn,{searchTerm:n,disabled:a,setSearchTerm:r,placeholder:"Name",variant:"outlined",size:"small",className:m.searchbar,id:"search-bar"})),t.createElement("div",{className:m.dropdownFilters},t.createElement(ze,{className:m.label,htmlFor:"sort-by"},"Sort By"),t.createElement(Sa,{id:"sort-by",className:m.selectHolder,value:l,onChange:i},t.createElement("option",{value:"default"},"Default"),t.createElement("option",{value:"ascending"},"Name A-Z"),t.createElement("option",{value:"descending"},"Name Z-A"))),t.createElement("div",{className:m.dropdownFilters},t.createElement(ze,{className:m.label,htmlFor:"filter-owner"},"Filter By Owner"),t.createElement(Sa,{id:"filter-owner",className:m.selectHolder,value:o,onChange:s},t.createElement("option",{key:"all",value:"all"},"All"),u==null?void 0:u.map((p,g)=>t.createElement("option",{key:p+g,value:p},X(p).name)))),c&&d&&t.createElement("div",{className:m.dropdownFilters},t.createElement(ze,{className:m.label,htmlFor:"filter-status"},"Filter By Status"),t.createElement(Sa,{id:"filter-status",className:m.selectHolder,value:c,onChange:d},Object.keys(nn).map(p=>t.createElement(t.Fragment,{key:p},t.createElement("option",{value:p},nn[p]))))))},Zs=()=>t.createElement(y,{item:!0,container:!0,"data-testid":"campaigns-skeleton"},Array.from({length:6},(e,a)=>t.createElement(y,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(Ut,{variant:"rect",height:385})))),Js=R(e=>({menuList:{backgroundColor:e.palette.background.paper,color:e.palette.text.primary},menuIcon:{color:e.palette.text.primary},menuIconSize:{minWidth:e.spacing(4)}})),ec=({handleDelete:e,handleArchive:a,handleView:n})=>{const r=Js(),[l,i]=T(null),o=!!l,s=d=>{d.stopPropagation(),i(d.currentTarget)},c=d=>{d.stopPropagation(),i(null)};return t.createElement(t.Fragment,null,t.createElement(gt,{"aria-label":"summary-card-actions",id:"summary-card-action-menu-button","aria-controls":o?"summary-card-action-menu":void 0,"aria-expanded":o?"true":void 0,"aria-haspopup":"true",onClick:s},t.createElement(Ao,null)),t.createElement($t,{id:"summary-card-action-menu",anchorEl:l,open:o,onClose:c,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{"aria-labelledby":"summary-card-action-menu-button",className:r.menuList}},n&&t.createElement(he,{"data-testid":"summary-card-action-view",onClick:d=>{n(d),c(d)}},t.createElement(ce,{className:r.menuIconSize},t.createElement($o,{fontSize:"small",color:"inherit",className:r.menuIcon})),t.createElement(de,null,"View")),a&&t.createElement(he,{"data-testid":"summary-card-action-archive",onClick:d=>{a(d),c(d)}},t.createElement(ce,{className:r.menuIconSize},t.createElement(Fo,{fontSize:"small",color:"inherit",className:r.menuIcon})),t.createElement(de,null,"Archive")),e&&t.createElement(he,{"data-testid":"summary-card-action-delete",onClick:d=>{e(d),c(d)}},t.createElement(ce,{className:r.menuIconSize},t.createElement(Er,{fontSize:"small",color:"inherit",className:r.menuIcon})),t.createElement(de,null,"Delete"))))},tc=Ra(e=>Do({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:e.spacing(2),position:"relative",justifyContent:"start"}}))(Pa),ac=R(e=>({root:{position:"relative",height:"100%"},summaryName:{fontSize:e.typography.pxToRem(24),color:e.palette.text.primary,maxHeight:"250px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical","-webkit-line-clamp":5,"-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{color:e.palette.text.primary,padding:0,maxHeight:"175px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:5,WebkitBoxOrient:"vertical",wordBreak:"break-word"},card:{paddingTop:e.spacing(1),paddingBottom:0,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),borderColor:e.palette.divider},cardContent:{height:"100%"},actionArea:{padding:e.spacing(1,2,1,4)},button:{minWidth:0,color:e.palette.text.primary,"&:disabled":{color:e.palette.text.disabled,opacity:1}}})),xt=({title:e,description:a,viewLabel:n="View",editLabel:r="Edit",children:l,handleDelete:i,handleArchive:o,handleEdit:s,handleView:c})=>{const d=ac();return t.createElement(tc,{className:d.card,"data-testid":e},t.createElement(si,{title:e,titleTypographyProps:{className:d.summaryName},subheader:t.createElement(At,{className:d.summaryDescription,content:a!=null?a:""}),action:(i||o)&&t.createElement(ec,{handleView:c,handleDelete:i,handleArchive:o})}),t.createElement(ci,{className:d.cardContent},l),(c||s)&&t.createElement("div",null,t.createElement(He,null),t.createElement(di,{className:d.actionArea},t.createElement(K,{"aria-label":s?r:n,"data-testid":`${e}-button`,size:"medium",color:"primary",role:"link",onClick:s||c,disabled:!c&&!s,className:d.button},s?r:n))))},nc=R(e=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0},campaignDetails:{display:"flex",flexDirection:"column",gap:e.spacing(1)},archivedBadge:{"& span":{position:"relative",transform:"none",transformOrigin:"unset",backgroundColor:e.palette.action.disabledBackground}},iconContainer:{minWidth:"auto",paddingRight:e.spacing(1)},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),rc=({campaign:e})=>{const a=nc();return t.createElement(Mt,{dense:!0,disablePadding:!0,className:a.cardSection},t.createElement(b,{variant:"overline",color:"textSecondary"},"Campaign Details"),t.createElement("div",{className:a.campaignDetails},e.ownerEntityRef&&t.createElement(Se,{disableGutters:!0,className:a.listItem},t.createElement(oe,{title:"Owner"},t.createElement(ce,{className:a.iconContainer},t.createElement(yt,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:a.listItemText,primary:t.createElement(Ke,{entityRef:e.ownerEntityRef,className:a.ownerLink,hideIcon:!0})})),e.archived&&t.createElement(Se,{disableGutters:!0,className:a.listItem},t.createElement(mi,{badgeContent:"Archived",className:a.archivedBadge}))))},lc=R(e=>({modalContent:{position:"absolute",display:"flex",flexDirection:"column",gap:e.spacing(1),top:"50%",left:"50%",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.paper},modalButtons:{display:"flex",justifyContent:"flex-end","& button":{width:"40%",maxWidth:"185px"},padding:e.spacing(2,3),borderTop:`1px solid ${e.palette.divider}`},checkbox:{marginBottom:e.spacing(2)},cancelButton:{color:e.palette.text.primary},modalText:{padding:e.spacing(2,3,0,3)},modalTop:{marginBottom:e.spacing(1)}})),Zr=Wt({showArchiveModal:()=>Promise.resolve({confirmed:!1,saveTrack:!1})}),ic=e=>{const a=lc(),[n,r]=T(!1),[l,i]=T(null),[o,s]=T(!1),c=_t(),d=U(({title:g,message:E,error:f})=>(i({title:g,message:E,error:f}),s(!1),r(!0),new Promise(C=>{c.current=C})),[]),u=U(()=>{var g;(g=c.current)==null||g.call(c,{confirmed:!0,saveTrack:o}),r(!1)},[o]),m=U(()=>{var g;(g=c.current)==null||g.call(c,{confirmed:!1,saveTrack:o}),r(!1)},[o]),p=g=>{s(g.target.checked)};return t.createElement(Zr.Provider,{value:{showArchiveModal:d}},e.children,l&&t.createElement(ui,{open:n,onClose:m,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description"},t.createElement(S,{className:a.modalContent},t.createElement("div",{className:a.modalText},t.createElement("div",{className:a.modalTop},t.createElement(b,{id:"confirmation-modal-title",variant:"h6"},l.title),t.createElement(b,{id:"confirmation-modal-description",variant:"body1"},l.message)),t.createElement(S,{className:a.checkbox},t.createElement(Je,{control:t.createElement(Re,{"data-testid":"save-track-checkbox",checked:o,onChange:p,size:"small"}),label:"Create Track"}),t.createElement(b,{id:"confirmation-modal-check-box-description",variant:"subtitle2",color:"textSecondary"},"Create a track from this campaign if you wish to promote it to a long term health initiative."))),t.createElement("div",{className:a.modalButtons},!l.error&&t.createElement(K,{onClick:m,variant:"text","aria-label":"cancel",className:a.cancelButton},"Cancel"),t.createElement(K,{color:"primary",onClick:u,variant:"contained","aria-label":"confirm"},l.error?"Ok":"Confirm")))))},oc=()=>Vt(Zr),sc=({campaign:e})=>{const{id:a,name:n,description:r,ownerEntityRef:l,archived:i}=e,o=ne(nr),s=ne(vo),c=be(),d=e.archived,{showModal:u}=at(),{showArchiveModal:m}=oc(),{mutate:p}=_r(),{mutate:g}=Is(),{mutate:E}=Ns(),{loading:f,allowed:C}=Z({permission:Ni,resourceRef:e.id}),{loading:x,allowed:h}=Z({permission:Li,resourceRef:e.id}),v=U(async()=>{await u({title:"Delete Campaign",message:`Are you sure you want to delete campaign ${e.name}?`})&&g(e.id)},[u,g,e.id,e.name]),k=()=>{var L,O;const{track:I}=e,Q={id:qt(),ownerEntityRef:I.ownerEntityRef,description:(L=I.description)!=null?L:"",name:I.name,documentationURL:I.documentationURL,type:"standard",levels:(O=I.levels)!=null?O:[],filter:I.filter};p(Q)},w=async()=>{const{saveTrack:L,confirmed:O}=await m({title:"Archive Campaign",message:`Are you sure you want to archive campaign ${e.name}?`});O&&(L&&k(),E(e.id))};return t.createElement(xt,{title:n!=null?n:a,description:r,children:(l||i)&&t.createElement(rc,{campaign:e}),handleView:()=>c(o({campaignId:e.id})),handleEdit:!f&&C&&!d?()=>c(s({campaignId:e.id})):void 0,handleDelete:!x&&h?v:void 0,handleArchive:!x&&h&&!d?w:void 0})},cc=R(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:e.spacing(1.5),paddingBottom:e.spacing(1.5)}})),dc=({campaignsPerPage:e,currentCursor:a})=>{const n=cc(),[r,l]=T(a),[i,o]=T(""),[s,c]=T(""),[d,u]=T(Ve.Alpha),[m,p]=T(Ve.Owner),[g,E]=T(Ve.Status),{data:f,isLoading:C}=qs();Ba(()=>{c(i)},500,[i]);const{setShowAddModal:x}=kt(),{loading:h,allowed:v}=Z({permission:jn}),{data:k,isLoading:w}=Jn({ids:void 0,first:e,after:r,orderAlphabetical:d,searchByOwner:m,searchByName:s,searchByStatus:g}),[L,O]=T(k),I=L==null?void 0:L.edges.map(H=>H.node),[Q,j]=T([]),re=D(pt),te=!re.getRegisteredFlags().find(H=>H.name==="soundcheck-enable-campaigns")||re.isActive("soundcheck-enable-campaigns"),ie=!v||!te,se=H=>{u(H.target.value)},ae=H=>{p(H.target.value)},pe=H=>{E(H.target.value)};if(B(()=>{k&&O(()=>{var H,F;return{totalCount:k.totalCount,edges:k.edges,pageInfo:{startCursor:k.pageInfo.startCursor,endCursor:k.pageInfo.endCursor,hasNextPage:(H=k==null?void 0:k.pageInfo.hasNextPage)!=null?H:!1,hasPreviousPage:(F=k==null?void 0:k.pageInfo.hasPreviousPage)!=null?F:!1}}})},[k]),!w&&!I)return t.createElement(an,null);let $;return w?$=t.createElement(Zs,null):I!=null&&I.length?$=I.map(H=>t.createElement(y,{key:H.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(ic,null,t.createElement(sc,{campaign:H})))):$=t.createElement(y,{xs:12,item:!0,role:"listitem","aria-label":"result"},t.createElement(tt,{title:tn.title,description:tn.description})),t.createElement(y,{container:!0,direction:"row",className:n.container},t.createElement(y,{container:!0,className:n.header},t.createElement(ln,{searchPlaceholder:"Search available campaigns",isLoading:w||C,searchTerm:i,setSearchTerm:o,filterAlpha:d,handleAlphabeticalFilterChange:se,filterOwner:m,handleOwnerFilterChange:ae,filterStatus:g,handleStatusFilterChange:pe,owners:f}),t.createElement(y,{item:!0,xs:2,className:n.headerButtons},!h&&t.createElement(K,{disabled:ie,variant:"contained",color:"primary",onClick:()=>x(!0),className:n.createButton},"Create Campaign"))),t.createElement(y,{container:!0,spacing:4,role:"list","aria-label":"campaigns"},$),((L==null?void 0:L.pageInfo.hasNextPage)||(Q==null?void 0:Q.length)>0)&&t.createElement(y,{item:!0,xs:12},t.createElement(Fa,{response:L,listingsPerPage:e,cursor:r,setCursor:l,prevCursors:Q,setPrevCursors:j,labelPerPageDropdown:"Campaigns Per Page:",urlRoute:"campaigns?campaignsPerPage="})))},on=z(e=>({root:{overflow:"hidden",display:"flex",marginBottom:"53px"},card:{padding:e.spacing(3),display:"flex",gap:e.spacing(2.5)},sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main},buttonChoices:{margin:"20px 0","& button":{marginRight:"10px"}},backButton:{color:e.palette.text.primary},filters:{display:"flex",gap:e.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"},stepper:{width:"100%"}})),wt=()=>({selectedKinds:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[],selectedTypes:[]}),mc=[{facet:"kind",label:"Kind",key:"selectedKinds"},{facet:"spec.type",label:"Type",key:"selectedTypes"},{facet:"spec.lifecycle",label:"Lifecycle",key:"selectedLifecycles"},{facet:"metadata.name",label:"Owner",key:"selectedOwners",filter:[{kind:"Group"}]},{facet:"spec.system",label:"System",key:"selectedSystems"},{facet:"metadata.tags",label:"Tags",key:"selectedTags"}],ot={selectedKinds:"kind",selectedTypes:"spec.type",selectedLifecycles:"spec.lifecycle",selectedOwners:"spec.owner",selectedSystems:"spec.system",selectedTags:"metadata.tags"},Jr=e=>!e||Object.values(e).every(a=>a.length===0)?void 0:{catalog:Object.entries(e).reduce((a,[n,r])=>{const l=ot[n];return r.length>0&&(a[l]=r),a},{})},sn=e=>Object.keys(ot).reduce((a,n)=>{var r,l;return a[n]=Oa((l=(r=e==null?void 0:e.catalog)==null?void 0:r[ot[n]])!=null?l:[]),a},{}),aa=e=>{if(!e||Object.values(e).every(n=>n.length===0))return;const a={};for(const[n,r]of Object.entries(e))(r==null?void 0:r.length)>0&&(a[ot[n]]=r);return[a]},cn=e=>{if(e&&Array.isArray(e)&&e.length){const a=e[0];return Object.keys(ot).reduce((n,r)=>{var l;return n[r]=Oa((l=a==null?void 0:a[ot[r]])!=null?l:[]),n},{})}return wt()},Le=(e,a)=>{const n=D(oi),r=D(hr);return G([N.GetEntityFacets,e,a],async()=>{var l;return((l=(await r.getEntityFacets({facets:[e],filter:a})).facets[e])==null?void 0:l.map(i=>i.value).sort())||[]},{onError:()=>{n.post({message:`Failed to load facet: ${e}`,severity:"error"})}})},uc=R({container:{padding:0},formControl:{flexGrow:1}}),pc=({facet:e,label:a,values:n,onChange:r,disabled:l,filter:i})=>{var o;const s=uc(),[c,d]=T(!1),{data:u,isLoading:m,error:p}=Le(e,i),g=Y(()=>u==null?void 0:u.map(v=>v.toLocaleLowerCase("en-US")),[u]),E=(o=n==null?void 0:n.map(v=>v.toLocaleLowerCase("en-US")))!=null?o:[],f=U((v,k)=>{r(k),g&&g.every(w=>k.includes(w))&&d(!1)},[g,r,d]),C=U(()=>{r(n!=null&&n.length?n:void 0)},[n,r]);if(!u||!g||p)return t.createElement(b,{color:"error"},"Failed to load facet: ",e);const x=l||m||!(n!=null&&n.length)&&(!(u!=null&&u.length)||!(g!=null&&g.length)),h=Array.from(new Set([...g,...E]));return t.createElement(S,{pb:1,pt:1,className:s.container},t.createElement(b,{variant:"subtitle2"},a),t.createElement(jt,{open:c,onOpen:()=>d(!0),onClose:()=>d(!1),className:s.formControl,multiple:!0,limitTags:4,disableCloseOnSelect:!0,"aria-label":a,options:h,value:E,getOptionLabel:v=>{var k;return(k=u[g.indexOf(v)])!=null?k:v},onChange:f,onBlur:C,disabled:x,renderOption:(v,{selected:k})=>{var w;return t.createElement(Je,{onClick:L=>L.preventDefault(),control:t.createElement(Re,{icon:t.createElement(br,{fontSize:"small"}),checkedIcon:t.createElement(Cr,{fontSize:"small"}),checked:k}),label:(w=u[g.indexOf(v)])!=null?w:v})},size:"small",popupIcon:t.createElement(Mo,{"data-testid":"selected-facets-expand"}),renderInput:v=>t.createElement(J,{...v,variant:"outlined"})}))};class gc{constructor(a){this.value=a}getKinds(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{kind:this.getKinds()}}toQueryValue(){return this.getKinds()}}class hc{constructor(a){this.value=a}getSystems(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"spec.system":this.getSystems()}}toQueryValue(){return this.getSystems()}}const fc=z(e=>({root:{paddingTop:e.spacing(1.5),paddingLeft:e.spacing(4),paddingRight:e.spacing(4),paddingBottom:e.spacing(1),display:"flex",justifyContent:"space-between",marginRight:"0",marginLeft:"0"},text:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}),{name:"BackstageTableToolbar"});function vc(e){const a=fc();return t.createElement(Gn,{className:a.root,disableGutters:!0},t.createElement(b,{variant:"h5",className:a.text},e.title),t.createElement(So,null))}class Ec{constructor(a){this.value=a}getTags(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"metadata.tags":this.getTags()}}toQueryValue(){return this.getTags()}}const yc=R(()=>({entityTable:{'& span[class*="CatalogReactEntityDisplayName-root"]':{"&:hover":{textDecoration:"underline"}}}})),Cc=[Et.columns.createEntityRefColumn({}),Et.columns.createSystemColumn(),Et.columns.createOwnerColumn(),Et.columns.createSpecTypeColumn(),Et.columns.createSpecLifecycleColumn(),{title:"Tags",field:"metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:e=>t.createElement(t.Fragment,null,e.metadata.tags&&e.metadata.tags.map(a=>t.createElement(Oe,{key:a,label:a,size:"small",variant:"outlined",style:{marginTop:"4px",marginBottom:"4px"}})))}],bc=e=>({kinds:e.selectedKinds.length?new gc(e.selectedKinds):void 0,systems:e.selectedSystems.length?new hc(e.selectedSystems):void 0,type:e.selectedTypes.length?new Po(e.selectedTypes):void 0,owners:e.selectedOwners.length?new No(e.selectedOwners):void 0,lifecycles:e.selectedLifecycles.length?new Lo(e.selectedLifecycles):void 0,tag:e.selectedTags.length?new Ec(e.selectedTags):void 0}),kc=({filter:e})=>{const{updateFilters:a,entities:n,pageInfo:r,totalItems:l,loading:i}=Ro(),o=me(),s=yc();B(()=>{const d=bc(e);a(d)},[e,a]);const c=`All (${l||0})`;return t.createElement(t.Fragment,null,t.createElement("div",{className:s.entityTable},t.createElement(Mn,{title:c,columns:Cc,data:n,options:{padding:"dense",paging:!!(r!=null&&r.next)||!!(r!=null&&r.prev),toolbar:!0,draggable:!1,tableLayout:"fixed",search:!1,showTitle:!0,rowStyle:{fontSize:o.typography.body1.fontSize},showFirstLastPageButtons:!1,emptyRowsWhenPaging:!1,pageSizeOptions:[],loadingType:"linear",showEmptyDataSourceMessage:!i,pageSize:10},onPageChange:d=>{var u,m;d>0?(u=r==null?void 0:r.next)==null||u.call(r):(m=r==null?void 0:r.prev)==null||m.call(r)},components:{Toolbar:vc},page:r!=null&&r.prev?1:0,totalCount:r!=null&&r.next?Number.MAX_VALUE:Number.MIN_SAFE_INTEGER,localization:{pagination:{labelDisplayedRows:""}}})))},xc=R(()=>({title:{fontWeight:700},filterContainer:{display:"flex",flexWrap:"wrap"}})),wc=10,dn=({value:e,onChange:a,disabled:n})=>{const r=xc(),l=i=>o=>{a({...e,[i]:o!=null?o:[]})};return t.createElement(y,{container:!0,spacing:6},t.createElement(y,{item:!0,container:!0,className:r.filterContainer,spacing:2},mc.map(i=>t.createElement(y,{item:!0,xs:12,sm:6,md:4,key:i.key},t.createElement(pc,{facet:i.facet,label:i.label,values:e==null?void 0:e[i.key],onChange:l(i.key),disabled:n,filter:i.filter})))),t.createElement(y,{item:!0,xs:12},t.createElement(Io,{pagination:{limit:wc}},t.createElement(kc,{filter:e}))))},Tc=(e,a)=>{const[n,r]=T(0),[l,i]=T(e),o=async u=>{const m=a[n];if(await u(m)){const p=n+1;r(p),l.indexOf(p)===-1&&i(g=>[...g,p])}},s=()=>{r(u=>u-1)},c=u=>u<n,d=u=>u!==n&&l.includes(u);return{activeStep:n,handleNext:o,handleBack:s,isPreviousStep:c,isVisitedStep:d,onStepClick:u=>{(c(u)||d(u))&&r(u)}}},Sc=z(e=>({box:{zIndex:9,position:"fixed",bottom:"0",width:"100%"},footer:{padding:e.spacing(2)},noMargin:{margin:0},cancelButton:{color:e.palette.text.primary}})),el=({onCancel:e,saveButtonText:a,isLoading:n,onSave:r,disableSave:l})=>{const i=Sc();return t.createElement(S,{className:i.box},t.createElement(Pe,{elevation:3,className:i.footer},t.createElement(y,{container:!0,item:!0,spacing:2,justifyContent:"space-between",className:i.noMargin},t.createElement(y,{item:!0},t.createElement(K,{variant:"text",color:"primary",onClick:e,className:i.cancelButton},"Cancel")),t.createElement(y,{item:!0},r&&t.createElement(K,{variant:"contained",color:"primary",disabled:n||l,onClick:r?()=>r():void 0},a)))))},mn=({onClose:e,handleSubmit:a,trigger:n,onSubmit:r,initialVisited:l,stepNameMap:i,steps:o,isLoading:s,isReadOnly:c,saveButtonText:d,detailsComponent:u})=>{const m=on(),{activeStep:p,handleNext:g,handleBack:E,isPreviousStep:f,isVisitedStep:C,onStepClick:x}=Tc(l,i);return t.createElement(t.Fragment,null,t.createElement(y,{container:!0,spacing:2,className:m.root},t.createElement(y,{item:!0,style:{width:u?"80%":"100%"}},t.createElement(Pa,{className:m.card},t.createElement(pi,{className:m.stepper,activeStep:p,orientation:"vertical"},o.map((h,v)=>t.createElement(gi,{key:h.label},t.createElement(hi,{className:f(v)||C(v)?m.stepLabel:void 0,onClick:()=>x(v)},h.label),t.createElement(fi,null,h.content(),t.createElement(S,{className:m.buttonChoices,sx:{mb:2}},t.createElement("div",null,v!==0&&t.createElement(K,{className:m.backButton,onClick:E},"Back"),v!==o.length-1&&t.createElement(K,{variant:"contained",color:"primary",onClick:async()=>{await g(n)}},"Next"))))))))),u&&t.createElement(y,{item:!0,style:{width:"20%"}},u)),t.createElement(y,{container:!0,spacing:4,className:m.root},t.createElement(el,{onCancel:e,saveButtonText:d,isLoading:s,onSave:c?void 0:a(r)})))},Rc=R(e=>({container:{display:"flex",gap:e.spacing(1),flexDirection:"column"},link:{fontWeight:"bold",padding:0,color:e.palette.text.primary,"&:hover":{textDecoration:"underline",transform:"none"}},list:{marginTop:0},listItem:{marginBottom:e.spacing(1)}})),Pc=()=>{const e=Rc(),a=ne(Eo),n=be();return t.createElement("div",{className:e.container},t.createElement(b,{variant:"h6"},"Creating campaigns"),t.createElement(b,{variant:"body1"},"A Campaign is a focused short term initiative."),t.createElement(b,{variant:"body1"},"You can create campaigns, assign them to teams that own software components, and track them towards a completion milestone via the"," ",t.createElement(K,{variant:"text",color:"primary",onClick:()=>n(a()),className:e.link},"Tech Health")," ","page."),t.createElement(b,{variant:"body1"},"Some use cases for campaigns include:"),t.createElement("div",null,t.createElement("ul",{className:e.list},t.createElement("li",{className:e.listItem},t.createElement(b,{variant:"body1"},"When your organization wants to upgrade Spring libraries to use a specific version of Spring Boot.")),t.createElement("li",null,t.createElement(b,{variant:"body1"},"When your organization wants to remove unneeded data endpoints to save costs.")))))},un=()=>{const{data:e,isLoading:a}=Jt({}),n=Y(()=>e==null?void 0:e.edges.map(i=>i.node),[e==null?void 0:e.edges]),r=Y(()=>{var i;return(i=n==null?void 0:n.filter(o=>!!o).map(o=>{var s,c,d;return{id:(s=o.id)!=null?s:"",name:(c=o.name)!=null?c:o.id,description:(d=o.description)!=null?d:""}}))!=null?i:[]},[n]),l=Y(()=>n==null?void 0:n.reduce((i,o)=>{var s,c,d;return i[o.id]={id:o.id,name:(s=o.name)!=null?s:o.id,description:(c=o.description)!=null?c:"",filter:(d=o.filter)!=null?d:void 0},i},{}),[n]);return{checkChips:r,checksMap:l,checksLoading:a}},tl="At least one check is required",na="This field is required",al=0,nl=100,Nc=100,pn=100,Lc="Ending date must come after the Starting Date",Ic=P.strictObject({selectedKinds:P.string().array(),selectedTypes:P.string().array(),selectedLifecycles:P.string().array(),selectedOwners:P.string().array(),selectedSystems:P.string().array(),selectedTags:P.string().array()}),Oc=P.strictObject({checks:P.array(Ii).min(1,tl)}),Dc=P.strictObject({id:P.number().optional(),name:P.string().min(1,na).max(pn,`Input must be less than ${pn} characters`),description:P.string().min(1,na),passRate:P.coerce.number().min(al,`Minimum pass rate is ${al}%`).max(nl,`Maximum pass rate is ${nl}%`)}),Fc=P.strictObject({milestones:P.array(Dc).min(1,na)}),rl=P.coerce.string().nullable().refine(e=>e!==null,{message:na}),Ac=P.strictObject({startDate:rl,targetCompletionDate:rl}),$c=({startDate:e,targetCompletionDate:a})=>e&&a?new Date(e)<new Date(a):!0,Mc=Oi.merge(Ac),Bc=e=>e.refine($c,{message:Lc,path:["targetCompletionDate"]}),Gc=P.strictObject({detailsStep:Bc(Mc),tracksStep:Oc,filtersStep:Ic,milestonesStep:Fc}),zc={detailsStep:{name:"",description:"",ownerEntityRef:"",supportChannel:"",startDate:null,targetCompletionDate:null},tracksStep:{checks:[]},filtersStep:{selectedKinds:[],selectedTypes:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[]},milestonesStep:{milestones:[{name:"",description:"",passRate:"0"}]}},qe={details:{name:{name:"Campaign name",description:"Give your campaign a meaningful name so it's easy to remember it",helperText:`Max ${Nc} characters`,placeholder:"Example: Check for latest version of javascript and Readme files"},description:{name:"Campaign description",description:"Give your campaign a meaningful description so others can understand how to use it",placeholder:"Example: Ask my teams to check for the latest version of javascript and Readme files so that we can meet our quality standards this quarter"},owner:{name:"Campaign owner",description:"Add yourself or a team as the owner of this campaign"},support:{name:"Support channel (Optional)",description:"Add a Slack channel to receive updates about the campaign",placeholder:"Channel name"},startingDate:{name:"Starting date",placeholder:"Starting date"},endingDate:{name:"Ending date",placeholder:"Ending date"}},milestones:{name:{name:"Milestone name",description:"Give your milestone a meaningful name so it's easy to remember it",helperText:`Max ${pn} characters`,placeholder:"Example: 80% passrate"},description:{name:"Milestone description",description:"Give your milestone a meaningful description so others can understand how to use it",placeholder:"Example: The track in my my campaign has a passrate of 80% or above"},passrate:{name:"Milestone passrate",description:"Enter the pass rate that your tracks have to meet",placeholder:"Example: 80%"}},filter:{description:'Setting the filters below will limit the scope of the Campaign so that only those Entities that match the filter will be monitored by the Campaign. As an example, choosing a "Kind" of "Component" will make this Campaign only apply to Entities whose Kind is indeed set to "Component". This would exclude Entities like Groups, Users, APIs, etc. from being impacted by the Campaign.'}},Hc=P.strictObject({filter:P.strictObject({selectedKinds:P.string().array(),selectedTypes:P.string().array(),selectedLifecycles:P.string().array(),selectedOwners:P.string().array(),selectedSystems:P.string().array(),selectedTags:P.string().array()}).optional()}),Wc=P.strictObject({levels:P.array(Di).min(1,tl)}),Vc=P.strictObject({detailsStep:Fi,levelsStep:Wc,filtersStep:Hc}),_c={detailsStep:{name:"",description:"",ownerEntityRef:""},levelsStep:{levels:[{name:"Level 1",description:"",checks:[]}]},filtersStep:{}},Kc=({name:e,description:a,ownerEntityRef:n,filter:r,levels:l,documentationURL:i})=>({detailsStep:{name:e,ownerEntityRef:n,description:a!=null?a:"",documentationURL:i!=null?i:void 0},levelsStep:{levels:(l==null?void 0:l.map(o=>{var s,c,d;return{name:(c=(s=o.name)!=null?s:`Level ${o.ordinal}`)!=null?c:"Level 1",description:(d=o.description)!=null?d:"",checks:o.checks.map(u=>{var m,p;return{id:u.id,name:(m=u.name)!=null?m:u.id,description:(p=u.description)!=null?p:""}})}}))||[]},filtersStep:{filter:sn(r)}}),ll=(e,a,n)=>{var r,l,i,o;return{id:(r=n==null?void 0:n.id)!=null?r:qt(),ownerEntityRef:e.detailsStep.ownerEntityRef,description:e.detailsStep.description,name:e.detailsStep.name,documentationURL:(l=e.detailsStep.documentationURL)!=null?l:"",type:(i=n==null?void 0:n.type)!=null?i:"standard",levels:(o=e.levelsStep.levels)==null?void 0:o.map((s,c)=>{var d,u;return{ordinal:c+1,name:(d=s.name)!=null?d:"",description:(u=s.description)!=null?u:"",checks:s.checks.map(m=>a[m.id])}}),filter:Jr(e.filtersStep.filter)}},Uc=e=>{const{selectedItem:a}=Fe(),n=Y(()=>a?Kc(a):_c,[a]),r=Yt({defaultValues:n,mode:"onChange",resolver:Va(Vc)}),{userEntityRef:l}=ft();B(()=>{!a&&l&&!r.getValues("detailsStep.ownerEntityRef")&&r.setValue("detailsStep.ownerEntityRef",l)},[a,l,r]);const{checkChips:i,checksLoading:o,checksMap:s}=un(),c=new Set(r.getValues("levelsStep.levels").flatMap(m=>m.checks.map(p=>p.id))),d=i.filter(m=>!c.has(m.id)),{showModal:u}=at();return{formMethods:r,onSubmit:async m=>{if(!await u({title:"Save Track",message:`Are you sure you want to save track: ${m.detailsStep.name}?`,error:!1}))return;const p=ll(m,s!=null?s:{},a);e(p)},selectableChips:d,checksLoading:o}},jc=({name:e,ownerEntityRef:a,description:n,targetCompletionDate:r,supportChannel:l,milestones:i,startDate:o,track:s})=>{var c;return{detailsStep:{name:e,description:n,ownerEntityRef:a,supportChannel:l,startDate:o,targetCompletionDate:r},tracksStep:{checks:(c=s==null?void 0:s.levels)==null?void 0:c[0].checks.map(d=>{var u;return{id:d.id,name:(u=d.name)!=null?u:d.id,description:d.description}})},filtersStep:sn(s.filter),milestonesStep:{milestones:i.map(d=>({id:Number(d.id),name:d.name,description:d.description,passRate:d.targetPercent.toString()}))}}},qc=(e,a,n)=>{var r;const{tracksStep:{checks:l},detailsStep:{name:i,description:o,ownerEntityRef:s,supportChannel:c,startDate:d,targetCompletionDate:u},filtersStep:m,milestonesStep:{milestones:p}}=e,g=ll({detailsStep:{name:`${i}`,description:`The checks for the ${i} campaign.`,ownerEntityRef:s},levelsStep:{levels:[{name:"Level 1",checks:l,description:""}]},filtersStep:{filter:m}},n!=null?n:{},a==null?void 0:a.track);return{id:(r=a==null?void 0:a.id)!=null?r:qt(),track:{...g,type:"campaign"},name:i,description:o,ownerEntityRef:s,supportChannel:c,startDate:d,targetCompletionDate:u,milestones:p.map(({id:E,name:f,description:C,passRate:x})=>({id:E,trackId:g.id,name:f,description:C,targetPercent:parseInt(x,10),targetCompletionDate:u}))}},Qc=(e,a)=>{const n=Y(()=>a?jc(a):zc,[a]),{control:r,handleSubmit:l,getValues:i,setValue:o,trigger:s,formState:{errors:c}}=Yt({defaultValues:n,mode:"onChange",resolver:Va(Gc)}),{showModal:d}=at(),{checksMap:u}=un();return{control:r,handleSubmit:l,getValues:i,setValue:o,trigger:s,errors:c,onSubmit:async m=>{if(!await d({title:"Save Campaign",message:`Are you sure you want to save campaign: ${m.detailsStep.name}?`,error:!1}))return;const p=qc(m,a,u);e(p)}}},Yc=R(e=>({helperText:{marginLeft:0}})),Xc=({control:e,errors:a,isLoading:n,disabled:r})=>{const l=Yc(),{description:i}=qe.details;return t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},i.name),t.createElement(b,{variant:"caption"},i.description),t.createElement(V,{name:"detailsStep.description",control:e,defaultValue:"",render:({field:o})=>{var s;return t.createElement(J,{...o,FormHelperTextProps:{className:l.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:i.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!(a!=null&&a.description),helperText:(s=a==null?void 0:a.description)==null?void 0:s.message})}}))},Zc=R(e=>({helperText:{marginLeft:0}})),Jc=({control:e,errors:a,isLoading:n,disabled:r})=>{const l=Zc(),{name:i}=qe.details;return t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},i.name),t.createElement(b,{variant:"caption"},i.description),t.createElement(V,{name:"detailsStep.name",control:e,defaultValue:"",render:({field:o})=>{var s,c;return t.createElement(J,{...o,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:i.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!(a!=null&&a.name),helperText:(c=(s=a==null?void 0:a.name)==null?void 0:s.message)!=null?c:i.helperText})}}))},ed=R(e=>({helperText:{marginLeft:0},selectField:{minHeight:"56px",width:"100%",display:"flex",alignItems:"center"},menuBackground:{backgroundColor:e.palette.background.paper}})),ra=({name:e,control:a,selectLabel:n,options:r,disabled:l,rules:i,style:o,helperText:s,placeholder:c})=>{const d=ed();return t.createElement(V,{name:e,control:a,rules:i,render:({field:u,fieldState:m})=>{var p;return t.createElement(Bt,{variant:"outlined",style:o!=null?o:{minWidth:200},error:m.invalid},n&&t.createElement(ze,{id:`${e}-select-label`},n),t.createElement(Na,{...u,className:d.selectField,disabled:l,error:m.invalid,"data-testid":`${e}-select`,labelId:`${e}-select-label`,label:n,displayEmpty:!0,value:(p=u.value)!=null?p:"",MenuProps:{classes:{paper:d.menuBackground}}},c&&t.createElement(he,{value:"",disabled:!0},c),r==null?void 0:r.map(({value:g,label:E})=>t.createElement(he,{key:g,value:g},E))),t.createElement(Gt,{className:d.helperText},m.error?m.error.message:s))}})},td=R(e=>({helperText:{marginLeft:0},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1)},fieldContainer:{width:"250px"}})),ad=({control:e,errors:a,isLoading:n,disabled:r})=>{var l,i;const o=td(),{owner:s}=qe.details,{options:c}=Aa(),{user:d,userEntityRef:u}=ft();let m=_a(c==null?void 0:c.map(p=>({value:p.ref,label:p.name})),"value");return u&&(m=[{value:u,label:d==null?void 0:d.metadata.name},...m]),t.createElement("div",{className:o.selectField},t.createElement("header",null,t.createElement(b,{variant:"subtitle2"},s.name),t.createElement(b,{variant:"caption"},s.description)),t.createElement("div",{className:o.fieldContainer},t.createElement(ra,{name:"detailsStep.ownerEntityRef",control:e,options:m,placeholder:"Owner",disabled:r||n,style:{width:"100%"},helperText:(i=(l=a==null?void 0:a.ownerEntityRef)==null?void 0:l.message)!=null?i:void 0})))},nd=R(e=>({chip:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},chips:{width:"310px",marginLeft:e.spacing(1)},chipContainer:{paddingBottom:"0 !important",paddingTop:"0 !important",marginBottom:e.spacing(.75)},noPadding:{padding:e.spacing(0)}})),rd=[{value:{days:7},label:"1 week"},{value:{days:14},label:"2 weeks"},{value:{month:1},label:"1 month"},{value:{months:3},label:"3 months"},{value:{months:6},label:"6 months"},{value:{year:1},label:"1 year"}],ld=({props:e,startDate:a,selectedDuration:n,setSelectedDuration:r,isLoading:l,disabled:i})=>{const o=nd();return t.createElement(y,{container:!0,direction:"column"},t.createElement(y,{item:!0,className:o.noPadding},t.createElement(Wo,{...e})),t.createElement(y,{container:!0,item:!0,className:o.chips},rd.map(({value:s,label:c})=>t.createElement(y,{item:!0,className:o.chipContainer},t.createElement(Oe,{key:c,label:c,className:n===s?o.chip:void 0,color:n===s?"primary":void 0,size:"small",onClick:()=>{if(a){r(s);const d=je.fromISO(a.toString()).plus(s);e.onChange(d,!1)}},disabled:l||i})))))},id=R(e=>({helperText:{margin:e.spacing(.5,0)},selectFieldGroup:{display:"flex",flexDirection:"column",gap:e.spacing(2),marginTop:e.spacing(1)},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1),padding:0},scheduleTitle:{fontWeight:"bold"},fieldContainer:{height:"56px",width:"250px"},select:{width:"100%",height:"100%",paddingRight:e.spacing(.5)},dialog:{padding:0,"& [class*=MuiToolbar-root]":{backgroundColor:e.palette.background.paper,borderBottom:`1px solid ${e.palette.divider}`,"& [class*=MuiPickersToolbarText]":{color:e.palette.text.primary}},"& [class*=MuiDialogActions-root]":{borderTop:`1px solid ${e.palette.divider}`,padding:e.spacing(1),"& [class*=MuiButton-label]":{color:e.palette.text.primary}}}})),od=({control:e,errors:a,isLoading:n,disabled:r,startDate:l})=>{const i=id(),[o,s]=T(!1),[c,d]=T(!1),[u,m]=T(l),[p,g]=T(void 0),{startingDate:E,endingDate:f}=qe.details;return t.createElement("div",{className:i.selectFieldGroup},t.createElement(b,{variant:"subtitle2",className:i.scheduleTitle},"Campaign schedule"),t.createElement("div",{className:i.selectField},t.createElement(b,{variant:"subtitle2"},E.name),t.createElement("div",{className:i.fieldContainer},t.createElement(V,{control:e,name:"detailsStep.startDate",render:({field:C})=>{var x,h;const{ref:v,...k}=C;return t.createElement(Tr,{utils:xr},t.createElement(wr,{inputRef:C.ref,...k,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:i.helperText},inputVariant:"outlined",className:i.select,error:!!(a!=null&&a.startDate),helperText:(h=(x=a==null?void 0:a.startDate)==null?void 0:x.message)!=null?h:void 0,onChange:w=>{m(w),C.onChange(w)},open:o,disabled:n||r,DialogProps:{PaperProps:{className:i.dialog}},InputProps:{readOnly:!0,placeholder:E.placeholder,onClick:()=>s(!0),className:i.select},onOpen:()=>s(!0),onClose:()=>s(!1)}))}}))),t.createElement("div",{className:i.selectField},t.createElement(b,{variant:"subtitle2"},f.name),t.createElement("div",{className:i.fieldContainer},t.createElement(V,{name:"detailsStep.targetCompletionDate",control:e,render:({field:C})=>{var x,h;const{ref:v,...k}=C;return t.createElement(Tr,{utils:xr},t.createElement(wr,{inputRef:C.ref,...k,disablePast:!0,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:i.helperText},inputVariant:"outlined",className:i.select,error:!!(a!=null&&a.targetCompletionDate),helperText:(h=(x=a==null?void 0:a.targetCompletionDate)==null?void 0:x.message)!=null?h:void 0,onChange:w=>{C.onChange(w)},open:c,disabled:n||r,DialogProps:{PaperProps:{className:i.dialog}},InputProps:{readOnly:!0,placeholder:f.placeholder,onClick:()=>d(!0),className:i.select},onOpen:()=>{g(void 0),d(!0)},onClose:()=>d(!1),ToolbarComponent:w=>t.createElement(ld,{props:w,isLoading:n,disabled:!!r,startDate:u,selectedDuration:p,setSelectedDuration:g})}))}}))))},sd=R(e=>({helperText:{marginLeft:0},labelText:{color:`${e.palette.text.primary} !important`}})),la=({name:e,control:a,error:n,label:r,placeholder:l,disabled:i,numbersOnly:o,inputProps:s,rules:c,messages:d,helperText:u,multiline:m,minRows:p,variant:g="standard",size:E,margin:f="normal"})=>{const C=sd();return t.createElement(V,{name:e,control:a,defaultValue:"",rules:c,render:({field:x})=>t.createElement(J,{...x,FormHelperTextProps:{className:C.helperText},InputLabelProps:{className:C.labelText},fullWidth:!0,multiline:m,minRows:p,placeholder:l,label:r,disabled:i,type:o?"number":"text",InputProps:s,margin:f,error:!!n,helperText:n&&d?d[n.type]:u,variant:g,size:E})})},cd=R(e=>({fieldContainer:{width:"250px"}})),dd=({control:e,errors:a,isLoading:n,disabled:r})=>{var l,i;const o=cd(),{support:s}=qe.details;return t.createElement("div",{style:{marginTop:10}},t.createElement(b,{variant:"subtitle2"},s.name),t.createElement(b,{variant:"caption"},s.description),t.createElement("div",{className:o.fieldContainer},t.createElement(la,{name:"detailsStep.supportChannel",control:e,placeholder:s.placeholder,disabled:r||n,variant:"outlined",error:a==null?void 0:a.supportChannel,helperText:(i=(l=a==null?void 0:a.supportChannel)==null?void 0:l.message)!=null?i:void 0})))},md=({control:e,errors:a,isLoading:n,disabled:r,startDate:l})=>t.createElement(t.Fragment,null,t.createElement(Jc,{control:e,errors:a,isLoading:n,disabled:r}),t.createElement(Xc,{control:e,errors:a,isLoading:n,disabled:r}),t.createElement(ad,{control:e,errors:a,isLoading:n,disabled:r}),t.createElement(dd,{control:e,errors:a,isLoading:n,disabled:r}),t.createElement(od,{control:e,errors:a,isLoading:n,disabled:r,startDate:l})),ud=e=>{var a,n,r;let l,i;return e!=null&&e.name?(l="Check name",i=(a=e==null?void 0:e.name)==null?void 0:a.message):e!=null&&e.description?(l="Check description",i=(n=e==null?void 0:e.description)==null?void 0:n.message):e!=null&&e.id&&(l="Check ID",i=(r=e==null?void 0:e.id)==null?void 0:r.message),`${l}: ${i}`},il=({checksErrors:e})=>{var a;let n=null;return e!=null&&e.message?n=t.createElement(Gt,{error:!0},e.message):e!=null&&e.length&&e.length>0&&(n=t.createElement(t.Fragment,null,(a=e.map)==null?void 0:a.call(e,(r,l)=>{if(r){const i=ud(r);return t.createElement(Gt,{key:l,error:!0},i)}return null}))),n},ol={mouseX:null,mouseY:null},sl=()=>{const[e,a]=T(ol),n=l=>{l.preventDefault(),a({mouseX:l.clientX-2,mouseY:l.clientY-4})},r=()=>{a(ol)};return{contextMenu:e,onContextMenu:n,onContextMenuClick:()=>{r()},onContextMenuClose:r}},cl=({x:e,y:a,menuItems:n,onClose:r,onClick:l})=>t.createElement($t,{keepMounted:!0,open:!!e,onClose:r,anchorReference:"anchorPosition",anchorPosition:a&&e?{top:a,left:e}:void 0},n.map(i=>t.createElement(he,{key:i,onClick:()=>l(i)},i))),dl=R(e=>{const a=e.palette.text.primary,n=e.palette.background.default,r=e.palette.divider,l=e.palette.border;return{chip:{width:"100%",height:"36px",color:a,justifyContent:"space-between",background:n,border:`1px solid ${r}`,borderRadius:4,boxShadow:"0px 2px 5px rgba(0, 0, 0, 0.1)",cursor:"move","& *":{fontWeight:700},"&:focus":{background:n,borderColor:l},marginBottom:0},deleteButton:{marginRight:"auto"}}}),pd=R(e=>({input:{border:`1px solid ${e.palette.divider}`,borderRadius:4,padding:e.spacing(1),minHeight:80},hoverBackground:{background:e.palette.action.hover},normalBackground:{background:e.palette.background.default},error:{border:"1px solid red"},chipContainer:{display:"flex",flexDirection:"column",fontSize:e.typography.body1.fontSize,color:e.palette.text.primary,gap:e.spacing(.75)}})),ml=({chips:e,onDelete:a,onDrop:n,error:r=!1,placeholder:l="",disabled:i})=>{const o=pd(),s=dl(),[{isOver:c},d]=Vo(()=>({accept:"chip",drop:v=>{n(v)},collect:v=>({isOver:v.isOver()})})),u=["Remove check"],{contextMenu:m,onContextMenu:p,onContextMenuClose:g,onContextMenuClick:E}=sl(),[f,C]=T(null),x=(v,k)=>{p(v),C(k)},h=()=>{E(),f&&a(f)};return t.createElement("div",{ref:d,className:`${o.input} ${r?o.error:""} ${c?o.hoverBackground:o.normalBackground}`,"data-testid":"droppable-input"},t.createElement("div",{className:o.chipContainer},e!=null&&e.length?e.map(v=>t.createElement(Oe,{key:v.id,label:v.name,className:s.chip,icon:t.createElement(Sr,null),style:{cursor:"pointer"},onDelete:()=>a(v),disabled:i,onContextMenu:k=>x(k,v)})):l),t.createElement(cl,{x:m.mouseX,y:m.mouseY,menuItems:u,onClose:g,onClick:h}))},ul=({chip:e,disabled:a,onContextMenuAdd:n})=>{var r;const[l,i]=_o(()=>({type:"chip",item:e,collect:g=>({isDragging:g.isDragging()})})),o=dl(),s=["Add check"],{contextMenu:c,onContextMenu:d,onContextMenuClose:u,onContextMenuClick:m}=sl(),p=()=>{m(),n==null||n(e)};return t.createElement(t.Fragment,null,t.createElement(Oe,{ref:i,label:e.name,className:o.chip,icon:t.createElement(Sr,{"data-testid":"drag-indicator-icon"}),disabled:a,onDelete:()=>{},onContextMenu:n?d:void 0,deleteIcon:t.createElement(oe,{title:(r=e.description)!=null?r:""},t.createElement(Ko,{"data-testid":"visibility-icon"}))}),t.createElement(cl,{x:c.mouseX,y:c.mouseY,menuItems:s,onClose:u,onClick:p}))},gd=R(e=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingTop:0},subtitle:{color:e.palette.text.primary},chipContainer:{display:"flex",flexDirection:"column",alignItems:"flex-start",padding:e.spacing(1),gap:e.spacing(.75)}})),hd=({chips:e,disabled:a,onContextMenuAdd:n})=>t.createElement(t.Fragment,null,e.map(r=>t.createElement(ul,{disabled:a,key:r.id,chip:r,onContextMenuAdd:n?()=>n(r):void 0}))),fd=()=>t.createElement(b,{variant:"body1",color:"textSecondary"},"There are no matches."),pl=({isLoading:e,chips:a=[],disabled:n,label:r,onContextMenuAdd:l})=>{const i=gd(),[o,s]=T(""),c=a.filter(m=>m.name.toLowerCase().includes(o.toLowerCase())),d=a.length>0||o;let u=null;return e?u=t.createElement(vt,null):c.length>0?u=t.createElement(hd,{disabled:n!=null?n:!1,chips:c,onContextMenuAdd:l}):d&&(u=t.createElement(fd,null)),t.createElement(y,{container:!0},t.createElement(y,{item:!0,xs:12,className:i.columnHeader},t.createElement(b,{variant:"subtitle1",className:i.subtitle},r!=null?r:"Checks")),t.createElement(y,{item:!0,xs:12},t.createElement(rn,{searchTerm:o,disabled:e||n,setSearchTerm:s,placeholder:"Search available checks",variant:"outlined",size:"small"})),t.createElement(y,{item:!0,className:i.chipContainer,xs:12},u))},vd=R(e=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center"},subtitle:{color:e.palette.text.primary,marginLeft:"-16px"},helperText:{fontSize:e.typography.subtitle2.fontSize,color:e.palette.textSubtle,marginBottom:e.spacing(1)},levelsContainer:{marginTop:"0",flexDirection:"column"},errorText:{marginTop:e.spacing(3),marginLeft:e.spacing(-4)},formContainer:{width:"100%"}})),Ed=({control:e,disabled:a,isLoading:n,errors:r})=>{const l=vd(),{checkChips:i}=un(),{fields:o,remove:s,append:c}=Xt({control:e,name:"tracksStep.checks"}),d=new Set(o.flatMap(({name:g})=>g)),u=i.filter(g=>!d.has(g.name)),m=U(g=>{c(g)},[c]),p=U(g=>{const E=kr(o,f=>f.id===g.id);s(E)},[s,o]);return t.createElement(V,{control:e,name:"tracksStep.checks",render:()=>t.createElement(Bt,{error:!!(r!=null&&r.checks),disabled:a||n,variant:"outlined",className:l.formContainer},t.createElement(b,{className:l.helperText},"Drag or right-click on a check to add it to the Campaign."),t.createElement(y,{item:!0,xs:12},t.createElement(y,{container:!0,spacing:4},t.createElement(Ka,{backend:Ua},t.createElement(y,{item:!0,xs:5},t.createElement(pl,{chips:u,isLoading:n,disabled:a,label:"Campaign Checks",onContextMenuAdd:g=>c(g)})),t.createElement(y,{item:!0,xs:7},t.createElement(y,{container:!0},t.createElement(y,{item:!0,xs:12,className:l.columnHeader},t.createElement(b,{variant:"subtitle1",className:l.subtitle},"Included Checks")),t.createElement(y,{container:!0,item:!0,spacing:5,className:l.levelsContainer},t.createElement(ml,{chips:o,onDelete:p,onDrop:m,error:!!(r!=null&&r.checks),placeholder:"Drag and drop checks here to include them in this level",disabled:a}))),(r==null?void 0:r.checks)&&t.createElement("div",{className:l.errorText},t.createElement(il,{checksErrors:r.checks})))))))})},yd=R(e=>({button:{fontSize:e.typography.subtitle2.fontSize,color:e.palette.text.primary,textTransform:"none",padding:0}})),ia=({label:e,...a})=>{const n=yd();return t.createElement(K,{className:n.button,variant:"text",...a,"aria-label":e},e)},Cd=R(()=>({milestoneHeader:{display:"flex",alignItems:"center"},divider:{margin:"20px 0"},helperText:{marginLeft:0},selectContainer:{width:"250px"}})),bd=({control:e,errors:a,isLoading:n,disabled:r})=>{const l=Cd(),{name:i,description:o,passrate:s}=qe.milestones,{fields:c,append:d,remove:u}=Xt({control:e,name:"milestonesStep.milestones"}),m=()=>d({name:"",description:"",passRate:"0"});return t.createElement(t.Fragment,null,c.map((p,g)=>t.createElement("div",{key:p.id},g!==0&&t.createElement(He,{className:l.divider}),t.createElement(y,{container:!0,spacing:1,className:l.milestoneHeader},t.createElement(y,{item:!0,xs:!0},t.createElement(b,{variant:"subtitle2"},i.name),t.createElement(b,{variant:"caption"},i.description),t.createElement(V,{name:`milestonesStep.milestones.${g}.name`,control:e,defaultValue:"",render:({field:E})=>{var f,C,x,h,v,k;return t.createElement(J,{...E,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:i.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!((C=(f=a==null?void 0:a.milestones)==null?void 0:f[g])!=null&&C.name),helperText:(k=(v=(h=(x=a==null?void 0:a.milestones)==null?void 0:x[g])==null?void 0:h.name)==null?void 0:v.message)!=null?k:i.helperText})}})),g!==0&&!r&&t.createElement(y,{item:!0},t.createElement(ia,{label:"Remove Milestone",startIcon:t.createElement(Uo,null),onClick:()=>u(g),disabled:r}))),t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},o.name),t.createElement(b,{variant:"caption"},o.description),t.createElement(V,{name:`milestonesStep.milestones.${g}.description`,control:e,defaultValue:"",render:({field:E})=>{var f,C,x,h,v;return t.createElement(J,{...E,FormHelperTextProps:{className:l.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:o.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!((C=(f=a==null?void 0:a.milestones)==null?void 0:f[g])!=null&&C.description),helperText:(v=(h=(x=a==null?void 0:a.milestones)==null?void 0:x[g])==null?void 0:h.description)==null?void 0:v.message})}})),t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},s.name),t.createElement(b,{variant:"caption"},s.description),t.createElement("div",{className:l.selectContainer},t.createElement(V,{name:`milestonesStep.milestones.${g}.passRate`,control:e,defaultValue:"",render:({field:E})=>{var f,C,x,h,v,k;return t.createElement(J,{...E,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:s.placeholder,disabled:n||r,type:"number",margin:"normal",error:!!((C=(f=a==null?void 0:a.milestones)==null?void 0:f[g])!=null&&C.passRate),helperText:(k=(v=(h=(x=a==null?void 0:a.milestones)==null?void 0:x[g])==null?void 0:h.passRate)==null?void 0:v.message)!=null?k:void 0})}}))))),t.createElement(ia,{label:"Add Milestone",onClick:()=>m(),disabled:r}))};var kd=(e=>(e.Details="Enter campaign details",e.Checks="Add checks",e.Entities="Choose the affected entities (Optional)",e.Milestones="Set campaign milestones",e))(kd||{});const gl=({onSave:e,onCancel:a,selectedCampaign:n})=>{const r=on(),{isLoading:l,isReadOnly:i}=kt(),{control:o,handleSubmit:s,errors:c,trigger:d,getValues:u,onSubmit:m}=Qc(e,n),p=u().detailsStep.startDate,g=[{label:"Enter campaign details",content:()=>t.createElement(md,{control:o,isLoading:l,disabled:!1,errors:c.detailsStep,startDate:p})},{label:"Add checks",content:()=>t.createElement(Ed,{control:o,isLoading:l,disabled:!1,errors:c.tracksStep})},{label:"Choose the affected entities (Optional)",content:()=>t.createElement("div",{className:r.filters},t.createElement(b,{variant:"body2"},qe.filter.description),t.createElement(V,{name:"filtersStep",control:o,render:({field:f})=>{var C;return t.createElement(dn,{value:(C=f.value)!=null?C:wt(),onChange:f.onChange})}}))},{label:"Set campaign milestones",content:()=>t.createElement(bd,{control:o,isLoading:l,disabled:!1,errors:c.milestonesStep})}],E=n?[...Array(g.length).keys()]:[0];return t.createElement("form",{onSubmit:s(m)},t.createElement(mn,{onClose:a,handleSubmit:s,trigger:d,onSubmit:m,initialVisited:E,stepNameMap:Qs,steps:g,isLoading:l,isReadOnly:i,saveButtonText:"Save Campaign",detailsComponent:t.createElement(Pc,null)}))},xd=z(e=>({appBar:{position:"relative",color:`${e.palette.text.primary} !important`,backgroundColor:`${e.palette.background.default} !important`},title:{flex:1,fontSize:e.typography.h6.fontSize},closeIcon:{marginRight:e.spacing(2)},content:{flex:"1 0 auto",padding:e.spacing(2),margin:"0 0 5rem",overflowX:"hidden",overflowY:"hidden","& .wmde-markdown-var":{"--color-canvas-default":e.palette.background.paper,"--color-border-default":e.palette.border},"& .wmde-markdown":{"--color-canvas-default":e.palette.background.paper}}})),wd=Ra({paperFullScreen:{padding:0}})(vi),Td=t.forwardRef(function(e,a){return t.createElement(Ei,{direction:"up",ref:a,...e})}),st=({open:e,handleClose:a,title:n,children:r})=>{const l=xd();return t.createElement(wd,{fullScreen:!0,open:e,onClose:a,TransitionComponent:Td,className:l.title},t.createElement(yi,{className:l.appBar},t.createElement(Gn,null,t.createElement(b,{className:l.title,"data-testid":`dialog-${n}`},n),t.createElement(gt,{"data-testid":"close-dialog",edge:"end",color:"inherit",onClick:a,"aria-label":"close",className:l.closeIcon},t.createElement(pr,null)))),t.createElement(S,{className:l.content},r))},Sd=()=>{const{hideModal:e,showAddModal:a,setIsLoading:n}=kt(),{mutateAsync:r,isLoading:l}=Ts();return B(()=>{n(l)},[n,l]),t.createElement(st,{title:"Create a Campaign",open:a,handleClose:e},t.createElement(gl,{onSave:async i=>{await r(i,{onSuccess:()=>e()})},onCancel:e}))},Rd=()=>{const[e]=ht(),a=e.get("campaignsPerPage"),n=a?parseInt(a,10):$a;return t.createElement(js,null,t.createElement("div",null,t.createElement(dc,{campaignsPerPage:n}),t.createElement(Sd,null)))};function hl(e){const a=D(A),n={ids:[e]};return G([N.GetCampaigns,JSON.stringify(n)],async()=>a.getCampaigns(n),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const Pd=z(e=>({milestones:{flexGrow:1,padding:e.spacing(0,1)},sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main},divider:{margin:`${e.spacing(2)}px 0`}})),Nd=({campaign:e})=>{const a=Pd(),n=e.milestones;return t.createElement(t.Fragment,null,t.createElement(b,{variant:"h6",className:a.sectionLabel},"Campaign milestones"),t.createElement(y,{container:!0,className:a.milestones,spacing:2},n.length?n.map((r,l)=>t.createElement(y,{item:!0,container:!0,xs:12,key:l,spacing:2},t.createElement(y,{item:!0,xs:12},t.createElement(Ma,{label:"Name",value:r.name}),t.createElement(Ma,{label:"Description",value:r.description}),t.createElement(Ma,{label:"Goal pass rate",value:`${r.targetPercent}%`}),l<n.length-1&&t.createElement(He,{className:a.divider})))):t.createElement(b,{variant:"body1",color:"textSecondary"},"There are no milestones for this campaign.")))};function Ld(e,a,n){const r=D(A);return G([N.GetCampaignProgress,e,a,n],async()=>r.getCampaignProgress(e,a,n),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const fl=25,Id=(e,a,n,r)=>{var l;const i=[];for(const{check:s,results:c}of e)i.push({height:Qi.check,cells:[Yi(s.name,Bo(c.filter(({result:d})=>d!==rr.NotApplicable),"result")),...a.flatMap(d=>{var u,m;if(d===void 0)return[];const p=(m=(u=c.find(({entityRef:g})=>g===d))==null?void 0:u.result)!=null?m:rr.NotApplicable;return[Xi(r,s,d,p,n)]})]});const o=Zi(a!=null?a:[]);return i.push({height:Math.min(Ji((l=o.length)!=null?l:1),220),cells:[tr(""),...a.map(s=>tr(s||""))]}),i},Od=R(e=>({table:{backgroundColor:e.palette.background.paper,borderCollapse:"collapse",whiteSpace:"nowrap",textAlign:"left"}})),Dd=({results:e,campaignTrackId:a})=>{const n=Od(),r=ne(Ha),{checks:l,entityRefs:i}=e,o=i.length>=fl?i:[...i,...Array.from({length:fl-i.length},()=>{})],s=Id(l,o,r,a),c=eo(s);return t.createElement(y,{item:!0,xs:12},t.createElement(jo,{style:{overflow:"auto hidden"},className:n.table,columnCount:o.length+1,columnWidth:d=>d===0?er.programTitle:er.checkResult,rowCount:s.length,rowHeight:d=>s[d].height,height:ji(s),width:qi(o.length+1)},c))},vl=z(e=>({sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main},paginationContainer:{margin:e.spacing(0,0,0,-4)}})),gn=25,oa=()=>{const e=vl();return t.createElement(b,{variant:"h6",className:e.sectionLabel},"Campaign progress")},Fd=({campaign:e})=>{const a=vl(),{cursor:n,pageSize:r,...l}=to({defaultPageSize:gn,label:"entitiesPerPage"}),{data:i,isLoading:o,isError:s}=Ld(e.id,r,n);if(o)return t.createElement(t.Fragment,null,t.createElement(oa,null),t.createElement("div",{"data-testid":"progress-indicator"},t.createElement(ao,{checkCount:1,levelCount:1})));if(s)return t.createElement(t.Fragment,null,t.createElement(oa,null),t.createElement(b,{color:"error"},"Failed to load campaign progress."));if(!i)return t.createElement(t.Fragment,null,t.createElement(oa,null),t.createElement(b,null,"No campaign progress available."));const{totalCount:c,endCursor:d,prevCursor:u}=i;return t.createElement(t.Fragment,null,t.createElement(oa,null),t.createElement(Dd,{results:i,campaignTrackId:e.track.id}),t.createElement("div",{className:a.paginationContainer},t.createElement(no,{...l,totalCount:c,defaultPageSize:gn,endCursor:d,prevCursor:u,pageSize:r,rowsPerPageOptions:[gn],labelRowsPerPage:"Entities per page:"})))},Ad=z(e=>({sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main},chipContainer:{display:"flex",flexDirection:"column",fontWeight:"bold",fontSize:e.typography.pxToRem(16),color:e.palette.grey[600]}})),$d=({campaign:e})=>{var a,n,r;const l=Ad(),i=(r=(n=(a=e.track)==null?void 0:a.levels)==null?void 0:n[0].checks)!=null?r:[];return t.createElement(t.Fragment,null,t.createElement(b,{variant:"h6",className:l.sectionLabel},"Campaign checks"),t.createElement("div",{className:l.chipContainer},i.length?i.map(o=>t.createElement(ul,{key:o.id,chip:o,disabled:!0})):t.createElement(b,{variant:"body1",color:"textSecondary",style:{alignSelf:"center"}},"There are no checks for this campaign.")))},Md=z(e=>({root:{flexGrow:1,padding:e.spacing(2)},progressSection:{minHeight:350}})),Bd=()=>{var e,a;const n=Md(),{campaignId:r}=et(),{data:l,isLoading:i}=hl(r!=null?r:""),o=(a=(e=l==null?void 0:l.edges)==null?void 0:e[0])==null?void 0:a.node,[s]=it(lr);return i?t.createElement("div",{"data-testid":"loading-indicator"},t.createElement(Ne,null)):o?t.createElement(st,{title:"Campaign Details",open:!0,handleClose:s},t.createElement(Ka,{backend:Ua},t.createElement(y,{container:!0,className:n.root,spacing:3,direction:"column"},t.createElement(y,{item:!0,xs:12},t.createElement(ro,{campaign:o})),t.createElement(y,{item:!0,xs:6},t.createElement($d,{campaign:o})),t.createElement(y,{item:!0,xs:12,className:n.progressSection},t.createElement(Fd,{campaign:o})),t.createElement(y,{item:!0,xs:12},t.createElement(Nd,{campaign:o}))))):t.createElement(an,null)},Gd=()=>{var e,a;const n=be(),r=ne(lr),{campaignId:l}=et(),{setIsLoading:i}=kt(),{mutateAsync:o,isLoading:s}=Rs(),{data:c,isLoading:d}=hl(l!=null?l:""),u=(a=(e=c==null?void 0:c.edges)==null?void 0:e[0])==null?void 0:a.node;if(B(()=>i(s),[i,s]),!d&&!u)return t.createElement(an,null);const m=async g=>{await o(g,{onSuccess:()=>n(r())})},p=()=>n(r());return t.createElement(st,{title:"Update Campaign",open:!0,handleClose:p},d?t.createElement(Ne,null):t.createElement(gl,{onSave:m,onCancel:p,selectedCampaign:u}))},zd=R({warningPanel:{padding:"24px 24px 0 24px"}}),sa=({entityName:e,entityId:a,showNotFound:n=!1,showCannotView:r=!1,showCannotEdit:l=!1})=>{const{warningPanel:i}=zd();return t.createElement(t.Fragment,null,n&&t.createElement("div",{className:i},t.createElement(wa,{title:`${Go(e)} not found`,message:`There is no ${e} with the requested id: ${a}.`})),r&&t.createElement("div",{className:i},t.createElement(wa,{title:`Cannot view ${e}`,message:`User does not have permission to view ${e} id: ${a}.`})),l&&t.createElement("div",{className:i},t.createElement(wa,{title:`Cannot edit ${e}`,message:`Cannot edit ${e} id: ${a}.`})))},El=({control:e,description:a,name:n,disabled:r})=>{const l=on();return t.createElement("div",{className:l.filters},t.createElement(b,{variant:"body2"},a),t.createElement(V,{name:n,control:e,render:({field:i})=>{var o;return t.createElement(dn,{value:(o=i.value)!=null?o:wt(),onChange:i.onChange,disabled:r})}}))};var q=(e=>(e.Months="months",e.Weeks="weeks",e.Days="days",e.Hours="hours",e.Minutes="minutes",e.Seconds="seconds",e))(q||{});const hn=()=>({type:"HumanDuration",unit:q.Hours,value:1,cron:""}),fn=[q.Months,q.Weeks,q.Days,q.Hours,q.Minutes,q.Seconds];function Hd(e){return fn.includes(e)}function ca(e){switch(e){case"months":return q.Months;case"weeks":return q.Weeks;case"days":return q.Days;case"hours":return q.Hours;case"minutes":return q.Minutes;case"seconds":return q.Seconds;default:return null}}function vn(e){if(e){const{cron:a,type:n,unit:r,value:l}=e;return n==="HumanDuration"?{[r]:l}:{cron:a}}}function En(e){var a;const n=hn();if(e&&Ue.isObject(e)){if("cron"in e)return{...n,type:"cron",cron:e.cron};const r=Object.entries(e);if(r.length){const[l,i]=r[0];return{...n,unit:(a=ca(l))!=null?a:q.Hours,value:i}}}return n}const yl=e=>qo(e).isValid(),Cl=e=>{try{return Qo.toString(e)}catch(a){return typeof a=="string"?a.replace(/^Error:\s*/,""):"Invalid cron expression"}},bl=1,kl=31536e3,yn=e=>{if(e){if(isNaN(e))return"Invalid value";if(e<1)return"Minimum of 1";if(e>31536e3)return"Maximum exceeded"}else return"Enter a value";return!0},Wd=R(e=>({divider:{marginTop:e.spacing(3),marginBottom:e.spacing(3)},title:{cursor:"pointer"},humanDurationContainer:{alignItems:"flex-start",marginTop:3},cronInput:{width:250,marginTop:3},noPaddingLeft:{paddingLeft:0},noPadding:{padding:0},fullWidth:{width:"100%"},radioOptions:{width:"80%",paddingLeft:e.spacing(1)},selectField:{paddingRight:e.spacing(2)},inputLabel:{color:`${e.palette.text.primary} !important`},menuBackground:{backgroundColor:e.palette.background.paper}})),Vd=32,_d=12,Kd=e=>e?(Math.ceil(e.length/Vd)-1)*_d:0,xl=({value:e,onChange:a,disabled:n,errors:r})=>{var l;const i=Wd(),[o,s]=T(e),[c,d]=T(`${e.value}`);B(()=>{a&&a(o)},[o,a]);const u=x=>{s({...e,type:x.target.value})},m=x=>{d(x.target.value);const h=parseInt(x.target.value,10);s({...e,value:isNaN(h)?0:h})},p=x=>{var h;s({...o,unit:(h=ca(x.target.value))!=null?h:q.Hours})},g=x=>{const h=x.target.value;s({...o,cron:h})},E=()=>{s({...o,type:"cron"})},f=()=>{s({...o,type:"HumanDuration"})},C=(l=r==null?void 0:r.message)!=null?l:Cl(o.cron);return t.createElement(y,{container:!0,direction:"row"},t.createElement(y,{item:!0,className:`${i.noPadding} ${i.fullWidth}`},t.createElement(Ci,{name:"frequencyType",value:o.type,onChange:u},t.createElement(y,{container:!0,alignItems:"flex-start",className:i.fullWidth},t.createElement(y,{item:!0,className:i.noPaddingLeft},t.createElement(zn,{disabled:n,value:"HumanDuration"})),t.createElement(y,{item:!0,className:`${i.noPadding} ${i.radioOptions}`},t.createElement(b,{variant:"body1",className:i.title,onClick:f},"Run on a regular interval"),t.createElement(b,{variant:"caption"},"Run on a regular interval that you define"),o.type==="HumanDuration"&&t.createElement(y,{container:!0,className:i.humanDurationContainer,spacing:2},t.createElement(y,{item:!0,className:i.noPadding},t.createElement(J,{id:"every",type:"number",inputProps:{min:bl,max:kl},label:"Every",name:"every",disabled:n,value:c,error:!!(r!=null&&r.message),helperText:r==null?void 0:r.message,onChange:m,InputLabelProps:{className:i.inputLabel}})),t.createElement(y,{item:!0,className:i.noPadding},t.createElement(Bt,null,t.createElement(ze,{className:i.inputLabel,id:"frequency-unit"},"Unit"),t.createElement(Na,{labelId:"frequency-unit",disabled:n,value:o.unit,onChange:p,"data-testid":"frequency-unit",className:i.selectField,MenuProps:{classes:{paper:i.menuBackground}}},fn.map(x=>t.createElement(he,{key:x,value:x},x)))))))),t.createElement(He,{className:i.divider}),t.createElement(y,{container:!0,alignItems:"flex-start"},t.createElement(y,{item:!0,className:i.noPaddingLeft},t.createElement(zn,{disabled:n,value:"cron"})),t.createElement(y,{item:!0,className:`${i.noPadding} ${i.radioOptions}`},t.createElement(b,{variant:"body1",className:i.title,onClick:E},"Run on a schedule"),t.createElement(b,{variant:"caption"},"Run on a schedule defined via cron expression"),o.type==="cron"&&t.createElement(y,{item:!0,className:i.noPadding},t.createElement(J,{id:"cron-expression","data-testid":"cron-expression",className:i.cronInput,label:C,disabled:n,placeholder:"* * * * *",error:!!(r!=null&&r.message),value:o.cron,onChange:g,InputProps:{style:{paddingTop:`${Kd(C)}px`}}})))))))};var we=(e=>(e.AllOf="all",e.AnyOf="any",e))(we||{});const Ud={all:"ALL OF",any:"ANY OF"},jd={0:"detailsStep",1:"rulesStep",2:"filtersStep",3:"scheduleStep"};var da=(e=>(e.title="Create a check",e.description="A check is a comparison between a defined acceptable outcome and the actual outcome of a given process.",e.callToAction="Get started",e))(da||{}),Cn=(e=>(e.title="No checks found",e.description="No checks matched your search. Consider changing search term and filters.",e))(Cn||{});const qd=()=>({enabled:!1,frequency:hn()}),Qd={COMMON_RELATIONS:{relations:"Relations"},COMMON_STATUS:{status:"Status"},METADATA:{metadata:"Metadata","metadata.name":"Metadata: Name","metadata.namespace":"Metadata: Namespace","metadata.uid":"Metadata: UID","metadata.title":"Metadata: Title","metadata.description":"Metadata: Description","metadata.labels":"Metadata: Labels","metadata.annotations":"Metadata: Annotations","metadata.tags":"Metadata: Tags","metadata.links":"Metadata: Links"},COMPONENT:{component:"Component","component.apiVersion":"Component: API Version","component.kind":"Component: Kind","component.spec.type":"Component: Type","component.spec.lifecycle":"Component: Lifecycle","component.spec.owner":"Component: Owner","component.spec.system":"Component: System","component.spec.subcomponentOf":"Component: Subcomponent Of","component.spec.providesApis":"Component: Provides APIs","component.spec.consumesApis":"Component: Consumes APIs","component.spec.dependsOn":"Component: Depends On"},TEMPLATE:{template:"Template","template.apiVersion":"Template: API Version","template.kind":"Template: Kind","template.metadata.tags":"Template: Metadata Tags","template.spec.type":"Template: Type","template.spec.parameters":"Template: Parameters","template.spec.steps":"Template: Steps","template.spec.owner":"Template: Owner"},API:{api:"API","api.apiVersion":"API: API Version","api.kind":"API: Kind","api.spec.type":"API: Type","api.spec.lifecycle":"API: Lifecycle","api.spec.owner":"API: Owner","api.spec.system":"API: System","api.spec.definition":"API: Definition"},GROUP:{group:"Group","group.apiVersion":"Group: API Version","group.kind":"Group: Kind","group.spec.type":"Group: Type","group.spec.profile":"Group: Profile","group.spec.parent":"Group: Parent","group.spec.children":"Group: Children","group.spec.members":"Group: Members"},USER:{user:"User","user.apiVersion":"User: API Version","user.kind":"User: Kind","user.spec.profile":"User: Profile","user.spec.memberOf":"User: Member Of"},RESOURCE:{resource:"Resource","resource.apiVersion":"Resource: API Version","resource.kind":"Resource: Kind","resource.spec.owner":"Resource: Owner","resource.spec.type":"Resource: Type","resource.spec.system":"Resource: System","resource.spec.dependsOn":"Resource: Depends On","resource.spec.dependencyOf":"Resource: Dependency Of"},SYSTEM:{system:"System","system.apiVersion":"System: API Version","system.kind":"System: Kind","system.spec.owner":"System: Owner","system.spec.domain":"System: Domain"},DOMAIN:{domain:"Domain","domain.apiVersion":"Domain: API Version","domain.kind":"Domain: Kind","domain.spec.owner":"Domain: Owner"},LOCATION:{location:"Location","location.apiVersion":"Location: API Version","location.kind":"Location: Kind","location.spec":"Location: Spec","location.spec.type":"Location: Type","location.spec.target":"Location: Target","location.spec.targets":"Location: Targets","location.spec.presence":"Location: Presence"}},Yd=e=>Object.keys(e).map(a=>({value:a,label:e[a]}));Object.values(Qd).flatMap(Yd);const Xd=e=>{try{return Da(e),!0}catch{return"Invalid fact reference. [source]:[scope]/[name]."}},Zd=100,Jd=async e=>{if(!await Xd(e))throw new Error("Fact reference validation failed");return e},wl=P.lazy(()=>P.strictObject({factRef:P.string().refine(Jd,{message:"Valid format: [source]:[scope]/[name]"}),path:P.string().min(1,"Required"),operator:P.string().min(1,"Required"),value:P.union([P.string().min(1,"Required"),P.number()]),conditions:P.array(wl).optional()})),Tl=P.lazy(()=>P.strictObject({expressionType:P.enum([we.AllOf,we.AnyOf]).optional(),expressions:P.array(Tl).optional(),conditions:P.array(wl).optional()})),em=P.strictObject({expressions:Tl}).merge(Ai),tm=P.strictObject({filter:P.strictObject({selectedKinds:P.string().array(),selectedTypes:P.string().array(),selectedLifecycles:P.string().array(),selectedOwners:P.string().array(),selectedSystems:P.string().array(),selectedTags:P.string().array()}).optional()}),am=P.nativeEnum(q),nm=({type:e,cron:a,value:n})=>e==="cron"?yl(a):e==="HumanDuration"?yn(n)===!0:!0,rm=P.strictObject({type:P.enum(["HumanDuration","cron"]),unit:am.optional(),value:P.number().min(1,"Value must be greater than 0.").optional(),cron:P.string().optional()}).refine(nm,{message:"Invalid frequency configuration"}),lm=P.strictObject({enabled:P.boolean(),frequency:rm}),im=P.strictObject({schedule:lm.optional()}),om=P.strictObject({detailsStep:$i,rulesStep:em,filtersStep:tm,scheduleStep:im}),sm=e=>{var a;if(zo(e)&&"frequency"in e){const n=Mi.safeParse(e.frequency);if(n.success){const r=n.data;if("cron"in r)return{enabled:!0,frequency:{type:"cron",unit:q.Hours,value:1,cron:r.cron}};const l=Object.keys(r);if(l.length){const i=l[0];if(Hd(i))return{enabled:!0,frequency:{type:"HumanDuration",unit:i,value:(a=r[i])!=null?a:1,cron:""}}}}}return{enabled:!1,frequency:{type:"HumanDuration",unit:q.Hours,value:1,cron:""}}},cm=(e,a)=>{const{enabled:n,frequency:r}=e;if(n){const{cron:l,type:i,unit:o,value:s}=r;return i==="HumanDuration"?{frequency:{[o]:s},filter:aa(a)}:{frequency:{cron:l}}}},bn=e=>{var a;if(!e)return{};if(e.expressionType){const n={[e.expressionType]:(a=e.conditions)==null?void 0:a.map(r=>({factRef:r.factRef,path:r.path,operator:r.operator,value:r.value}))};return e.expressions&&e.expressions.forEach(r=>{var l;(l=n[e.expressionType])==null||l.push(bn(r))}),n}if(e.expressions)return e.expressions.map(bn);if(e.conditions&&e.conditions.length===1){const n=e.conditions[0];return{factRef:n.factRef,path:n.path,operator:n.operator,value:n.value}}return{}},Sl=(e,a=!0)=>{if(!e)return{conditions:[]};const n=Object.keys(e),r=n.includes("all")||a&&!n.includes("any")?we.AllOf:we.AnyOf;if(n.includes(r)||a){const l=e[r]||[e],i=[],o=[];return l.forEach(s=>{const c=Object.keys(s);c.includes("all")||c.includes("any")?o.push(Sl(s,!1)):i.push({factRef:s.factRef,path:s.path,operator:s.operator,value:s.value})}),{expressions:o.length>0?o:void 0,conditions:i,expressionType:r}}return{expressionType:we.AllOf,conditions:[{factRef:e.factRef,path:e.path,operator:e.operator,value:e.value}]}},dm=e=>{var a,n,r,l,i,o;return{detailsStep:{name:(a=e.name)!=null?a:"",description:(n=e.description)!=null?n:"",ownerEntityRef:(r=e.ownerEntityRef)!=null?r:""},rulesStep:{expressions:Sl(e.rule),passedMessage:(l=e.passedMessage)!=null?l:void 0,failedMessage:(i=e.failedMessage)!=null?i:void 0,warning:(o=e.warning)!=null?o:!1},filtersStep:{filter:sn(e.filter)},scheduleStep:{schedule:sm(e.schedule)}}},mm=(e,a)=>{var n,r,l,i;const{detailsStep:o,rulesStep:s,filtersStep:c,scheduleStep:d}=e;return{id:a?a.id:qt(),ownerEntityRef:(n=o.ownerEntityRef)!=null?n:void 0,name:o.name,description:o.description,passedMessage:(r=s.passedMessage)!=null?r:void 0,failedMessage:(l=s.failedMessage)!=null?l:void 0,rule:bn(s.expressions),warning:(i=s.warning)!=null?i:!1,filter:c.filter?Jr(c.filter):void 0,schedule:cm(d.schedule,c.filter)}},kn=(e,a="$")=>{const n=[];if(e.type==="object"&&e.properties){const r=e.properties;for(const l in r)if(r.hasOwnProperty(l)){const i=`${a}.${l}`;n.push(i);const o=r[l];n.push(...kn(o,i))}}if(e.type==="array"&&e.items){const r=`${a}[*]`;n.push(r);const l=Array.isArray(e.items)?e.items:[e.items];for(const i of l)n.push(...kn(i,r))}return n},um={detailsStep:{name:"",description:"",ownerEntityRef:""},rulesStep:{expressions:{expressionType:we.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",value:"",conditions:[]}]},warning:!1},filtersStep:{filter:wt()},scheduleStep:{schedule:qd()}},Qe={details:{name:{name:"Check name",description:"Give your check a meaningful name so it's easy to remember",helperText:`Max ${Zd} characters`,placeholder:"Example: Code Coverage Check"},description:{name:"Check description",description:"Give your check a meaningful description so others know what it's for",placeholder:"Example: Ensure code coverage meets the minimum threshold"},owner:{name:"Check owner",description:"Add yourself, or a team, as the owner of this check",selectLabel:"Owner"}},rulesStep:{rules:{name:"Check rules",description:"Add the rules you want your check to enforce"},messages:{name:"Pass/Fail messages (Optional)",description:"Add the messages that will appear to you when checks either pass or fail",passMessagePlaceholder:"Enter pass message...",failMessagePlaceholder:"Enter fail message...",passedTabName:"Passed Message",failedTabName:"Failed Message"},warnings:{name:"Enable warnings",description:"Enable if the check should emit warning check results if it fails",label:"Warning"}},filter:{description:'Setting the filters below will limit the scope of the Check so that only those Entities that match the filter will be monitored by the Check. As an example, choosing a "Kind" of "Component" will make this Check only apply to Entities whose Kind is indeed set to "Component". This would exclude Entities like Groups, Users, APIs, etc. from being impacted by the Check.'},schedule:{description:"By default, checks are executed when any fact they depend on is updated. However, you may also schedule a check to run on a schedule.",checkboxLabel:"Schedule check"}},pm=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(2)},helperText:{marginLeft:0}})),gm=({control:e,error:a,isLoading:n,disabled:r})=>{const l=pm(),{name:i}=Qe.details;return t.createElement("div",{className:l.container},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},i.name),t.createElement(b,{variant:"caption"},i.description)),t.createElement(V,{name:"detailsStep.name",control:e,defaultValue:"",render:({field:o})=>{var s;return t.createElement(J,{...o,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:i.placeholder,disabled:n||r,type:"text",error:!!a,helperText:(s=a==null?void 0:a.message)!=null?s:i.helperText})}}))},hm=z(e=>({markdown:{whiteSpace:"pre-wrap",marginBottom:e.spacing(1)},container:{display:"flex",flexDirection:"column",gap:e.spacing(1)},helperText:{color:e.palette.grey[500]},errorText:{color:e.palette.error.main},errorBorder:{border:`1px solid ${e.palette.error.main}`}})),ma=({name:e,control:a,label:n,description:r,disabled:l,rules:i,error:o,helperText:s,placeholder:c})=>{const d=me(),u=hm();return t.createElement(V,{name:e,control:a,defaultValue:l?"No description provided.":"",rules:i,render:({field:m})=>t.createElement("div",{"data-color-mode":d.palette.type,className:u.container},t.createElement("div",null,n&&t.createElement(b,{variant:"subtitle2"},n),r&&!l&&t.createElement(b,{variant:"caption"},r)),t.createElement("div",null,l?t.createElement(Rr.Markdown,{className:u.markdown,source:m.value}):t.createElement(Rr,{textareaProps:{placeholder:c},value:m.value,className:o&&u.errorBorder,onChange:m.onChange,previewOptions:{rehypePlugins:[[Yo]]},"data-testid":`markdown-editor-${e}`}),(s||o)&&!l&&t.createElement(b,{variant:"caption",className:o?u.errorText:u.helperText},o?o.message:s)))})},fm=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(1)},tabContent:{padding:e.spacing(1)}})),vm=({control:e,isLoading:a,disabled:n})=>{const r=fm(),[l,i]=T(0),{name:o,description:s,passMessagePlaceholder:c,failMessagePlaceholder:d,passedTabName:u,failedTabName:m}=Qe.rulesStep.messages,p=(g,E)=>{i(E)};return t.createElement("div",{className:r.container},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},o),t.createElement(b,{variant:"caption"},s)),t.createElement(La,{orientation:"horizontal",variant:"scrollable",value:l,onChange:p},t.createElement(We,{label:u}),t.createElement(We,{label:m})),t.createElement("div",{className:r.tabContent},l===0&&t.createElement(ma,{name:"rulesStep.passedMessage",control:e,placeholder:c,disabled:a||n}),l===1&&t.createElement(ma,{name:"rulesStep.failedMessage",control:e,placeholder:d,disabled:a||n})))},Em=({control:e,isLoading:a,disabled:n,error:r})=>{const{description:l}=Qe.details;return t.createElement(ma,{name:"detailsStep.description",control:e,error:r,label:l.name,description:l.description,placeholder:n?void 0:l.placeholder,disabled:n||a})},ym=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(1)}})),Cm=({control:e,disabled:a,error:n})=>{var r;const l=ym(),{options:i,isLoading:o}=Aa(),s=_a(i.map(m=>({value:m.ref,label:m.name})),"value"),{owner:{name:c,description:d,selectLabel:u}}=Qe.details;return t.createElement("div",{className:l.container},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},c),t.createElement(b,{variant:"caption"},d)),t.createElement("div",null,t.createElement(ra,{name:"detailsStep.ownerEntityRef",control:e,options:s,placeholder:u,disabled:a||o,helperText:(r=n==null?void 0:n.message)!=null?r:void 0})))},bm=R(e=>({label:{paddingRight:e.spacing(2)},icon:{borderLeft:`1px solid ${e.palette.divider}`,padding:e.spacing(1,0,0,1)},menu:{margin:0,backgroundColor:e.palette.background.paper}})),km=({onAddCondition:e,onAddExpression:a})=>{const n=bm(),[r,l]=T(null),i=!!r,o=c=>{l(c.currentTarget)},s=()=>{l(null)};return t.createElement(S,null,t.createElement(Hn,{color:"primary"},t.createElement(K,{"data-testid":"add-button",id:"add-button","aria-controls":i?"add-menu":void 0,"aria-haspopup":"true","aria-expanded":i?"true":void 0,onClick:o},t.createElement(S,{className:n.label},"Add"),t.createElement(S,{className:n.icon},t.createElement(ja,null)))),t.createElement($t,{id:"add-menu",anchorEl:r,open:i,onClose:s,classes:{paper:n.menu},MenuListProps:{"aria-labelledby":"add-button"}},t.createElement(he,{"data-testid":"add-condition",onClick:()=>{e(),s()}},"Add Condition"),t.createElement(he,{"data-testid":"add-expression",onClick:()=>{a(),s()}},"Add Expression")))};function xm(){const e=D(A);return G(["soundcheck/operators"],async()=>e.getOperators(),{cacheTime:1/0,staleTime:1/0,refetchOnMount:!1,refetchOnReconnect:!1,refetchOnWindowFocus:!1})}const wm=R(e=>({input:{minHeight:56},clearIndicator:{marginRight:e.spacing(1)},helperText:{marginLeft:0}})),Rl=({name:e,rules:a,label:n,control:r,options:l,getOptionLabel:i,getOptionValue:o,onChange:s,disabled:c,placeholder:d})=>{const u=wm();return t.createElement(V,{name:e,control:r,rules:a,render:({field:m,fieldState:p})=>t.createElement(jt,{...m,freeSolo:!0,autoSelect:!0,"data-testid":`${e}-autocomplete`,style:{minWidth:250},disabled:c,options:l,getOptionLabel:i,classes:{clearIndicator:u.clearIndicator},renderInput:g=>t.createElement(J,{...g,variant:"outlined",label:n,error:p.invalid,placeholder:d,InputProps:{...g.InputProps,className:u.input},FormHelperTextProps:{className:u.helperText},helperText:p.error?p.error.message:null}),onChange:(g,E)=>{const f=o?o(E):E;s==null||s(f),m.onChange(f)},onInputChange:(g,E)=>{const f=o?o(E):E;s==null||s(f)}})})},Tm=R(e=>({container:{borderLeft:`1px solid ${e.palette.border}`,marginLeft:e.spacing(2),padding:e.spacing(2,0,2,0),display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(0)},connector:{borderBottom:`1px solid ${e.palette.border}`,padding:e.spacing(0),width:"15px",height:"45px"},innerContainer:{border:`1px solid ${e.palette.border}`,display:"flex",flexDirection:"column"},inputsContainer:{padding:e.spacing(2),display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",gap:e.spacing(1)},inputContainer:{minHeight:79},header:{background:e.palette.primary.main,width:"100%",height:"8px"},deleteButton:{marginLeft:e.spacing(1),width:"45px",height:"45px"},deleteIcon:{color:e.palette.text.primary},input:{minHeight:56},helperText:{marginLeft:0}}));function xn(e){const a=D(A);return G([N.GetCollectors,e],async()=>a.getCollectors(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}function Sm(e,a){const n=D(A);return G([N.GetFactSchema,e,a],()=>n.getFactSchema(e,a),{enabled:!!e&&!!a,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const Rm=(e,a)=>{const{data:n,isLoading:r}=xn(),l=Wa({control:a,name:`${e}.factRef`}),[i,o]=T(()=>Pl(l));B(()=>{o(Pl(l))},[l]);const{data:s}=Sm(i==null?void 0:i.source,i==null?void 0:i.name),c=Y(()=>s?kn(s.schema):[],[s]),d=Y(()=>n==null?void 0:n.flatMap(u=>u.factNames.map(m=>{const p=Da(m,{defaultSource:u.id,defaultScope:"default"});return{label:p.name,value:Bi(p)}})),[n]);return{isLoading:r,pathOptions:c,factRefOptions:d}};function Pl(e){if(e)try{return Da(e,{defaultSource:"unknown",defaultScope:"default"})}catch{return null}return null}const Pm=({name:e,handleDelete:a,disabled:n,disableDelete:r})=>{var l;const i=Tm(),{control:o,getValues:s,setValue:c}=Ce(),{data:d,isLoading:u}=xm(),m=Y(()=>{var h;return(h=d==null?void 0:d.map(v=>({value:v.name,label:v.title})))!=null?h:[]},[d]),{pathOptions:p,factRefOptions:g,isLoading:E}=Rm(e,o),f=Y(()=>{var h;return(h=g==null?void 0:g.map(v=>v.value))!=null?h:[]},[g]),C=(l=s("rulesStep.expressions.conditions"))==null?void 0:l.map(({factRef:h})=>h),x=h=>{h&&!(C!=null&&C.includes(h))&&(c(`${e}.path`,""),c(`${e}.operator`,""),c(`${e}.value`,""))};return t.createElement(S,{className:i.container},t.createElement(S,{className:i.connector}),t.createElement(S,{className:i.innerContainer},t.createElement(S,{className:i.header}),t.createElement(S,{className:i.inputsContainer},g&&t.createElement(S,{className:i.inputContainer},t.createElement(Rl,{name:`${e}.factRef`,control:o,placeholder:"Fact",options:f,getOptionLabel:h=>{var v,k;return(k=(v=g==null?void 0:g.find(w=>h===w.value))==null?void 0:v.label)!=null?k:h},getOptionValue:h=>{var v,k,w;return(w=(k=(v=g==null?void 0:g.find(L=>h===L.label))==null?void 0:v.value)!=null?k:h)!=null?w:""},disabled:n||E,onChange:x})),t.createElement(S,{className:i.inputContainer},t.createElement(Rl,{name:`${e}.path`,placeholder:"Path",control:o,disabled:n||E,options:p})),m&&t.createElement(S,{className:i.inputContainer},t.createElement(ra,{name:`${e}.operator`,control:o,placeholder:"Operator",options:m,disabled:u||n})),t.createElement(S,{className:i.inputContainer},t.createElement(V,{name:`${e}.value`,control:o,defaultValue:"",render:({field:h,fieldState:v})=>t.createElement(J,{...h,variant:"outlined",placeholder:"Enter a value",InputProps:{className:i.input},FormHelperTextProps:{className:i.helperText},error:v.invalid,helperText:v.error?v.error.message:null,disabled:n})})))),!n&&!r&&t.createElement(gt,{onClick:a,className:i.deleteButton,"data-test-id":`${e}-delete-button`},t.createElement(Er,{className:i.deleteIcon})))},Nm=z(()=>({noPadding:{padding:0}})),Lm=({conditions:e,name:a,handleDelete:n,disabled:r,disableDelete:l,depth:i})=>{const o=Nm();return t.createElement(t.Fragment,null,e.map((s,c)=>t.createElement(y,{item:!0,key:c,className:o.noPadding},t.createElement(Pm,{name:`${a}.conditions[${c}]`,"data-testid":`${a}-condition-input`,handleDelete:()=>n(c),disabled:r,disableDelete:i===0&&c===0?!0:l}))))},Im=z(()=>({noPadding:{padding:0}})),Om=({expression:e,name:a,depth:n,disabled:r})=>{const l=Im();return e?t.createElement(y,{item:!0,className:l.noPadding},t.createElement(Nl,{name:`${a}`,depth:n+1,disabled:r})):null},Dm=R(e=>({button:{backgroundColor:e.palette.background.default},selectedButton:{backgroundColor:e.palette.action.hover}})),Fm=({name:e,disabled:a})=>{const n=Dm(),{control:r,getValues:l}=Ce(),i=`${e}`,o=l(i),[s,c]=T(o||we.AllOf),d=u=>{c(u)};return t.createElement(V,{control:r,name:e,render:({field:{onChange:u}})=>t.createElement(Hn,{color:"primary"},Object.values(we).map(m=>t.createElement(K,{key:m,className:s===m?`${n.selectedButton} ${n.button}`:`${n.button}`,onClick:()=>{d(m),u(m)},disabled:a},Ud[m])))})},Am=(e,a,n,r)=>({handleAddCondition:async()=>{const l=`${e}`,i=a(l),o=[...(i==null?void 0:i.conditions)||[],{factRef:"",path:"",operator:"",value:""}],s=`${e}.conditions`;n(s,o),await r(s)},handleAddExpression:async()=>{const l=`${e}.expressions`,i=a(l)||[];i.push({expressionType:we.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",value:""}]}),n(l,i),await r(l)},handleDeleteCondition:async(l,i)=>{var o,s,c,d;const u=((o=i.match(/(.*\.expressions)(?=\[\d+])/))==null?void 0:o[0])||i,m=`${i}.conditions`,p=a(m);if(p.splice(l,1),p.length===0){n(m,void 0);const g=parseInt(i.slice(i.lastIndexOf("[")+1,i.lastIndexOf("]")),10),E=a(u);(c=(s=E[g])==null?void 0:s.expressions)==null||c.splice(g,1),n(u,(d=E[g])!=null&&d.expressions?E:void 0),await r(u)}else n(m,p),await r(m)}}),$m=z(e=>({root:{padding:0},inner:{marginLeft:e.spacing(2),paddingBottom:e.spacing(2),borderLeft:`1px solid ${e.palette.border}`,display:"flex",flexDirection:"row",gap:0},connector:{borderBottom:`1px solid ${e.palette.border}`,padding:e.spacing(0),width:"15px",height:"20px"},noPadding:{padding:0}})),Nl=({name:e,depth:a,disabled:n})=>{const r=$m(),{getValues:l,setValue:i,trigger:o}=Ce(),{handleAddCondition:s,handleAddExpression:c,handleDeleteCondition:d}=Am(e,l,i,o),u=`${e}`,m=l(u),p=(m==null?void 0:m.conditions)||[],g=m==null?void 0:m.expressions;return t.createElement(S,{className:a>0?r.inner:r.root},a>0&&t.createElement(S,{className:r.connector}),t.createElement(y,{container:!0,spacing:0,direction:"column",className:r.noPadding},t.createElement(y,{item:!0,className:r.noPadding},t.createElement(Fm,{disabled:n,name:`${e}.expressionType`})),t.createElement(y,{item:!0,container:!0,spacing:0,direction:"column",className:r.noPadding},t.createElement(Lm,{depth:a,handleDelete:E=>d(E,e),disabled:n,conditions:p,name:e}),g==null?void 0:g.map((E,f)=>t.createElement(Om,{key:f,expression:E,name:`${e}.expressions[${f}]`,depth:a,disabled:n}))),!n&&t.createElement(y,{item:!0,className:r.noPadding},t.createElement(km,{onAddCondition:s,onAddExpression:c}))))},Mm=R(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(1)}})),Bm=({control:e,disabled:a})=>{const n=Mm(),r=Wa({control:e,name:"scheduleStep.schedule"}),{description:l,checkboxLabel:i}=Qe.schedule;return t.createElement("div",{className:n.container},t.createElement(b,{variant:"body2"},l),t.createElement(y,{item:!0,xs:12},t.createElement(y,{item:!0},t.createElement(V,{name:"scheduleStep.schedule.enabled",control:e,render:({field:o})=>t.createElement(Je,{disabled:a,control:t.createElement(Re,{checked:o.value,onChange:o.onChange}),label:i})})),t.createElement(y,{item:!0},t.createElement(V,{name:"scheduleStep.schedule.frequency",control:e,render:({field:o,fieldState:s})=>t.createElement(xl,{disabled:a||!r.enabled,value:o.value,onChange:o.onChange,errors:s.error})}))))},Gm=e=>{const{selectedItem:a}=xe();let n=um;a&&(n=dm(a));const r=Yt({defaultValues:n,mode:"onChange",resolver:Va(om)}),{showModal:l}=at();return{formMethods:r,onSubmit:async i=>{if(!await l({title:"Save Check",message:`Are you sure you want to save check: ${i.detailsStep.name}?`,error:!1}))return;const o=mm(i,a);e(o)}}},zm=()=>t.createElement("div",{style:{display:"flex",gap:"10px",flexDirection:"column"}},t.createElement(b,{variant:"h6"},"Creating and managing checks"),t.createElement(b,{variant:"body1"},"Checks are entities created from four components: facts, paths, operators and values. These components are then organized via a boolean calculator in the UI."),t.createElement(b,{variant:"body1"},"To create a check, select the components that you want to use, organize them into rules and give your check a meaningful name and a description."),t.createElement(b,{variant:"body1"},"Once created, you will be able to manage and edit your track on its detail page.")),Hm=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(1)}})),Wm=()=>{var e,a,n;const r=Hm(),{isLoading:l,isReadOnly:i}=xe(),{control:o,formState:{errors:s}}=Ce();return t.createElement("div",{className:r.container},t.createElement(gm,{control:o,error:(e=s==null?void 0:s.detailsStep)==null?void 0:e.name,isLoading:l,disabled:i}),t.createElement(Em,{control:o,error:(a=s==null?void 0:s.detailsStep)==null?void 0:a.description,isLoading:l,disabled:i}),t.createElement(Cm,{control:o,disabled:i,error:(n=s==null?void 0:s.detailsStep)==null?void 0:n.ownerEntityRef}))},Vm=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(2)},innerContainer:{display:"flex",flexDirection:"column"}})),_m=()=>{const e=Vm(),{isLoading:a,isReadOnly:n}=xe(),{control:r}=Ce(),{rules:l,warnings:i}=Qe.rulesStep;return t.createElement("div",{className:e.container},t.createElement("div",{className:e.innerContainer},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},l.name),t.createElement(b,{variant:"caption"},l.description)),t.createElement(Nl,{disabled:n,name:"rulesStep.expressions",depth:0})),t.createElement(vm,{control:r,isLoading:a,disabled:n}),t.createElement("div",{className:e.container},t.createElement("div",{className:e.innerContainer},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},i.name),t.createElement(b,{variant:"caption"},i.description)),t.createElement(V,{name:"rulesStep.warning",control:r,render:({field:o})=>t.createElement(Je,{disabled:n,control:t.createElement(Re,{checked:o.value,onChange:o.onChange}),label:i.label})}))))},wn=({title:e,open:a,onSave:n,onClose:r})=>{const{hideModal:l,isLoading:i,isReadOnly:o,selectedItem:s}=xe(),{formMethods:c,onSubmit:d}=Gm(n),u=[{label:"Enter check details",content:()=>t.createElement(Wm,null)},{label:"Add rules",content:()=>t.createElement(_m,null)},{label:"Choose the affected entities (Optional)",content:()=>t.createElement(El,{name:"filtersStep.filter",control:c.control,disabled:o,description:Qe.filter.description})},{label:"Set the check schedule (Optional)",content:()=>t.createElement(Bm,{control:c.control,disabled:o})}],m=s?[...Array(u.length).keys()]:[0];return t.createElement(st,{handleClose:r?()=>r():l,title:e,open:a},t.createElement(yr,{...c},t.createElement("form",{onSubmit:c.handleSubmit(d)},t.createElement(mn,{onClose:r?()=>r():l,handleSubmit:c.handleSubmit,trigger:c.trigger,onSubmit:d,initialVisited:m,stepNameMap:jd,steps:u,isLoading:i,isReadOnly:o,saveButtonText:"Save Check",detailsComponent:t.createElement(zm,null)}))))},Km="Error Creating Check";function Um(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.createCheck(l);if(!i)throw new Error("Failed to create check.");return i};return ye([ve.CreateCheck],r,{onSuccess:()=>{Promise.all([a.invalidateQueries({queryKey:[N.GetChecks]}),a.invalidateQueries({queryKey:[N.GetCheckOwners]})])},onError:l=>{let i="Failed to create check.";l instanceof Error&&(i=l.message),n({severity:"error",title:Km,message:i})}})}const jm=()=>{const{hideModal:e,showAddModal:a,setIsLoading:n}=xe(),{mutateAsync:r,isLoading:l}=Um();return B(()=>{n(l)},[n,l]),t.createElement(wn,{title:"Create a Check",open:a,onSave:async i=>{await r(i,{onSuccess:()=>e()})},onClose:()=>e()})},qm=({check:e})=>{const{selectedItem:a,showReadOnlyModal:n}=xe();B(()=>{n(e)},[e,n]);const[r]=it(ir);return a&&t.createElement(wn,{title:"Check Details",open:!0,onClose:r,onSave:()=>{}})},Qm="Error Creating Check";function Ym(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.updateCheck(l);if(!i)throw new Error("Failed to update check.");return i};return ye([ve.UpdateCheck],r,{onSuccess:()=>{Promise.all([a.invalidateQueries({queryKey:[N.GetChecks]}),a.invalidateQueries({queryKey:[N.GetCheckOwners]})])},onError:l=>{let i="Failed to update check.";l instanceof Error&&(i=l.message),n({severity:"error",title:Qm,message:i})}})}const Xm=({check:e})=>{const{selectedItem:a,setSelectedItem:n}=xe(),{setIsLoading:r}=xe(),{mutateAsync:l,isLoading:i}=Ym();B(()=>{r(i)},[r,i]),B(()=>{n(e)},[e,n]);const[o,s]=it(ir);return a&&t.createElement(wn,{title:"Edit a Check",open:!0,onClose:o,onSave:async c=>{await l(c,{onSuccess:s})}})},Zm=()=>{var e,a;const{checkId:n}=et(),{data:r,isLoading:l}=Jt({ids:[n!=null?n:""],first:1}),i=(a=(e=r==null?void 0:r.edges)==null?void 0:e[0])==null?void 0:a.node,{loading:o,allowed:s}=Z({permission:qn,resourceRef:n}),{loading:c,allowed:d}=Z({permission:Gi,resourceRef:n}),u=o||c||l,m=s&&(i==null?void 0:i.isEditable);return t.createElement(t.Fragment,null,t.createElement(sa,{entityName:"check",entityId:n,showCannotView:!u&&!d,showNotFound:!u&&!i}),u&&t.createElement(vt,null),t.createElement(Yr,null,!u&&!!i&&t.createElement(t.Fragment,null,m&&d&&t.createElement(Xm,{check:i}),!m&&d&&t.createElement(qm,{check:i}))))};function Jm(){const e=D(A);return G([N.GetCheckOwners],async()=>e.getCheckOwners(),{refetchInterval:!1,refetchOnWindowFocus:!1})}const eu=()=>t.createElement(y,{item:!0,container:!0,"data-testid":"checks-skeleton"},Array.from({length:10},(e,a)=>t.createElement(y,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(Ut,{variant:"rect",height:385})))),tu="Error Deleting Check";function au(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.deleteCheck(l);if(!i)throw new Error(`Failed to delete check ${l}`);return i};return ye([ve.DeleteCheck],r,{onSuccess:()=>Promise.all([a.invalidateQueries({queryKey:[N.GetChecks]}),a.invalidateQueries({queryKey:[N.GetAllPrograms]}),a.invalidateQueries({queryKey:[N.GetCheckOwners]})]),onError:(l,i)=>{let o=`Failed to delete check ${i}`;l instanceof Error&&(o=l.message),n({severity:"error",title:tu,message:o})}})}const nu=R(e=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0},iconContainer:{minWidth:"auto",paddingRight:e.spacing(1)},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),ru=({check:e})=>{var a;const n=nu();return t.createElement(Mt,{dense:!0,disablePadding:!0,className:n.cardSection},t.createElement(b,{variant:"overline",color:"textSecondary"},"Check Details"),t.createElement(Se,{disableGutters:!0,className:n.listItem},t.createElement(oe,{title:"Owner"},t.createElement(ce,{className:n.iconContainer},t.createElement(yt,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:n.listItemText,primary:t.createElement(Ke,{entityRef:(a=e.ownerEntityRef)!=null?a:"No Owner",hideIcon:!0,className:n.ownerLink})})))},lu=({check:e})=>{const{id:a,name:n,description:r,isEditable:l,ownerEntityRef:i}=e,o=be(),s=ne(or),{loading:c,allowed:d}=Z({permission:qn,resourceRef:a}),{loading:u,allowed:m}=Z({permission:zi,resourceRef:a}),{showModal:p}=at(),{mutate:g}=au(),E=U(async()=>{await p({title:"Delete Check",message:`Are you sure you want to delete the check '${n!=null?n:a}'?`})&&g(a)},[p,n,g,a]),f=U(()=>{o(s({checkId:a}))},[s,a,o]);return t.createElement(xt,{title:n!=null?n:a,description:r,children:i&&t.createElement(ru,{check:e}),handleView:f,handleEdit:l&&!c&&d?f:void 0,handleDelete:l&&!u&&m?E:void 0})},iu=R(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:e.spacing(1.5),paddingBottom:e.spacing(1.5)}})),ou=({checksPerPage:e,currentCursor:a})=>{var n;const r=iu(),[l,i]=T(a),[o,s]=T(""),[c,d]=T(Ve.Alpha),[u,m]=T(Ve.Owner),[p,g]=T(""),{data:E,isLoading:f}=Jm();Ba(()=>{g(o)},500,[o]);const{loading:C,allowed:x}=Z({permission:Hi}),{data:h,isLoading:v}=Jt({ids:void 0,first:e,after:l,orderAlphabetical:c,searchByOwner:u,searchByName:p}),[k,w]=T(h),L=(n=k==null?void 0:k.edges)==null?void 0:n.map($=>$.node),[O,I]=T([]),Q=D(pt),j=!Q.getRegisteredFlags().find($=>$.name==="soundcheck-enable-check-creation")||Q.isActive("soundcheck-enable-check-creation"),re=!x||!j,te=$=>{d($.target.value)},ie=$=>{m($.target.value)};B(()=>{h&&w(()=>{var $,H;return{totalCount:h.totalCount,edges:h.edges,pageInfo:{startCursor:h.pageInfo.startCursor,endCursor:h.pageInfo.endCursor,hasNextPage:($=h==null?void 0:h.pageInfo.hasNextPage)!=null?$:!1,hasPreviousPage:(H=h==null?void 0:h.pageInfo.hasPreviousPage)!=null?H:!1}}})},[h]);const{setShowAddModal:se}=xe();if(!v&&!L)return t.createElement(tt,{title:da.title,description:da.description,imgSrc:Ga,action:!C&&t.createElement(K,{disabled:re,variant:"contained",color:"primary",onClick:()=>se(!0)},da.callToAction)});let ae;v?ae=t.createElement(eu,null):L!=null&&L.length?ae=L==null?void 0:L.map($=>t.createElement(y,{key:$.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(lu,{check:$}))):ae=t.createElement(y,{xs:12,item:!0,role:"listitem","aria-label":"result"},t.createElement(tt,{title:Cn.title,description:Cn.description}));const pe=(k==null?void 0:k.pageInfo.hasNextPage)||(O==null?void 0:O.length)>0;return t.createElement(y,{container:!0,direction:"row",className:r.container},t.createElement(y,{container:!0,className:r.header},t.createElement(ln,{searchPlaceholder:"Search available checks",isLoading:v||f,searchTerm:o,setSearchTerm:s,filterAlpha:c,handleAlphabeticalFilterChange:te,filterOwner:u,handleOwnerFilterChange:ie,owners:E}),t.createElement(y,{item:!0,xs:2,className:r.headerButtons},!C&&t.createElement(K,{disabled:re,variant:"contained",color:"primary",onClick:()=>se(!0),className:r.createButton},"Create Check"))),t.createElement(y,{container:!0,spacing:4,role:"list","aria-label":"checks"},ae),pe&&t.createElement(y,{item:!0,xs:12},t.createElement(Fa,{response:k,listingsPerPage:e,cursor:l,setCursor:i,prevCursors:O,setPrevCursors:I,labelPerPageDropdown:"Checks Per Page:",urlRoute:"checks?checksPerPage="})))},su=()=>{const[e]=ht(),a=e.get("checksPerPage"),n=a?parseInt(a,10):$a,{showAddModal:r}=xe();return t.createElement("div",null,t.createElement(ou,{checksPerPage:n}),r&&t.createElement(jm,null))},cu=()=>t.createElement(Yr,null,t.createElement(su,null)),du="Error Configuring Collector";function mu(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.updateCollectorConfig(l);if(!i)throw new Error("Failed to update collector configuration.");return i};return ye([ve.UpdateCollectorConfig],r,{onSuccess:()=>{a.invalidateQueries({queryKey:[N.GetCollectors]})},onError:l=>{let i="Failed to update collector configuration.";l instanceof Error&&(i=l.message),n({severity:"error",title:du,message:i})}})}const uu=({enabled:e,hasDuration:a,value:n})=>e&&a?yn(n):!0,pu=({type:e,cron:a,value:n})=>{if(e==="cron"){if(!yl(a))return Cl(a)}else if(e==="HumanDuration")return yn(n);return!0},Ll=()=>({enabled:!1,hasDuration:!1,unit:q.Days,value:1});function Tn(e){if(e){const{enabled:a,hasDuration:n}=e;if(a&&n){const{unit:r,value:l}=e;return{duration:{[r]:l}}}return a}}function Sn(e){var a;const n=Ll();if(!e)return n;if(typeof e=="boolean")return{...n,enabled:e};if(!Ue.isObject(e)||!("duration"in e))return n;const r=e.duration;if(!Ue.isObject(r))return n;const l=Object.entries(r);if(l.length===0)return n;const[i,o]=l[0];return{...n,enabled:!0,hasDuration:!0,unit:(a=ca(i))!=null?a:q.Days,value:o}}const gu=R(e=>({duration:{display:"flex",padding:e.spacing(1),gap:e.spacing(2),alignItems:"flex-start"},checkbox:{margin:e.spacing(-1.5,0)},label:{cursor:"pointer"}})),hu=({value:e,onChange:a,disabled:n,errors:r})=>{const l=gu(),[i,o]=T(e),[s,c]=T(`${e.value}`);B(()=>{a&&a(i)},[i,a]);const d=g=>{o({...i,enabled:g.target.checked,hasDuration:g.target.checked&&i.hasDuration})},u=g=>{o({...i,hasDuration:g.target.checked})},m=g=>{c(g.target.value);const E=parseInt(g.target.value,10);o({...i,value:isNaN(E)?0:E})},p=g=>{var E;o({...i,unit:(E=ca(g.target.value))!=null?E:q.Hours})};return t.createElement(y,{container:!0,direction:"column"},t.createElement(y,{item:!0},t.createElement(y,{container:!0,alignItems:"center"},t.createElement(y,{item:!0},t.createElement(Re,{id:"enableCaching",disabled:n,checked:i.enabled,onChange:d,"data-testid":"enableCaching"})),t.createElement(y,{item:!0},t.createElement("label",{htmlFor:"enableCaching",className:l.label},"Enable caching")))),t.createElement(y,{item:!0},t.createElement(y,{container:!0,alignItems:"flex-start"},t.createElement(y,{item:!0,className:l.checkbox},t.createElement(Re,{id:"hasDuration",disabled:n||!i.enabled,checked:i.enabled&&i.hasDuration,onChange:u,"data-testid":"hasDuration"})),t.createElement(y,{item:!0},t.createElement("label",{htmlFor:"hasDuration",className:i.enabled?l.label:""},"Duration")),t.createElement(y,{className:l.duration},t.createElement(y,{item:!0},t.createElement(J,{id:"every",type:"number",label:"For",name:"for",disabled:n||!i.hasDuration,value:s,onChange:m,error:!!(r!=null&&r.message),helperText:r==null?void 0:r.message,inputProps:{min:bl,max:kl},"data-testid":"forTextField"})),t.createElement(y,{item:!0},t.createElement(Bt,null,t.createElement(ze,{id:"duration-unit"},"Unit"),t.createElement(Na,{labelId:"duration-unit",disabled:n||!i.hasDuration,value:i.unit,onChange:p,"data-testid":"unitSelect"},fn.map(g=>t.createElement(he,{key:g,value:g},g)))))))))},fu=R(e=>({root:{padding:e.spacing(1)},tabsContainer:{marginRight:16},tab:{height:"64px",textAlign:"left"},contentContainer:{width:"100%",padding:e.spacing(1)},divider:{marginTop:e.spacing(8),marginBottom:e.spacing(8)}})),Rn=({name:e,label:a,description:n,control:r,disabled:l,errors:i})=>{const[o,s]=T(0),c=Wa({control:r,name:`${e}.enabled`}),d=(m,p)=>{s(p)},u=fu();return t.createElement("div",{className:u.root},t.createElement(V,{name:`${e}.enabled`,control:r,render:({field:m})=>t.createElement(Je,{control:t.createElement(bi,{...m,checked:m.value,"data-testid":`${e}-switch`}),label:t.createElement(S,{display:"flex",flexDirection:"column"},t.createElement(b,{variant:"body1",component:"span"},t.createElement("b",null,`${a}`)),t.createElement(b,{variant:"caption",color:"textSecondary",component:"p"},`${n}`))})}),c&&t.createElement("div",null,t.createElement(La,{orientation:"horizontal",variant:"scrollable",value:o,onChange:d,className:u.tabsContainer},t.createElement(We,{label:"Frequency",className:u.tab}),t.createElement(We,{label:"Filters",className:u.tab}),t.createElement(We,{label:"Caching",className:u.tab})),t.createElement("div",{className:u.contentContainer},o===0&&t.createElement("div",null,t.createElement(V,{name:`${e}.frequency`,control:r,rules:{validate:pu},render:({field:m})=>t.createElement(xl,{disabled:l,value:m.value,onChange:m.onChange,errors:i==null?void 0:i.frequency})})),o===1&&t.createElement("div",null,t.createElement(V,{name:`${e}.filters`,control:r,render:({field:m})=>t.createElement(dn,{disabled:l,value:m.value,onChange:m.onChange})})),o===2&&t.createElement("div",null,t.createElement(V,{name:`${e}.cacheConfig`,control:r,rules:{validate:uu},render:({field:m})=>t.createElement(hu,{disabled:l,value:m.value,onChange:m.onChange,errors:i==null?void 0:i.cacheConfig})})))))},Pn=()=>({enabled:!1,filters:{...wt(),selectedKinds:["Component"]},frequency:hn(),cacheConfig:Ll()}),Il=()=>({branchProtections:Pn(),repositoryDetails:Pn(),repositoryLanguages:Pn()});function vu(e){const{branchProtections:a,repositoryDetails:n,repositoryLanguages:r}=e;if(a.enabled||n.enabled||r.enabled){const l={},i=[];if(l.collects=i,a.enabled){const{cacheConfig:o,frequency:s,filters:c}=a;i.push({factName:"branch_protections",type:"BranchProtections",frequency:vn(s),filter:aa(c),cache:Tn(o)})}if(n.enabled){const{cacheConfig:o,frequency:s,filters:c}=n;i.push({factName:"repository_details",type:"RepositoryDetails",frequency:vn(s),filter:aa(c),cache:Tn(o)})}if(r.enabled){const{cacheConfig:o,frequency:s,filters:c}=r;i.push({factName:"repository_languages",type:"RepositoryLanguages",frequency:vn(s),filter:aa(c),cache:Tn(o)})}return l}return[]}function Eu(e){var a,n,r,l,i,o;const s=Il();if(e){const c=e.collects;if(c)for(const d of Oa(c)){const u=d.type;u==="BranchProtections"&&(s.branchProtections={enabled:!0,frequency:En((a=d.frequency)!=null?a:e.frequency),filters:cn((n=d.filter)!=null?n:e.filter),cacheConfig:Sn(d.cache)}),u==="RepositoryDetails"&&(s.repositoryDetails={enabled:!0,frequency:En((r=d.frequency)!=null?r:e.frequency),filters:cn((l=d.filter)!=null?l:e.filter),cacheConfig:Sn(d.cache)}),u==="RepositoryLanguages"&&(s.repositoryLanguages={enabled:!0,frequency:En((i=d.frequency)!=null?i:e.frequency),filters:cn((o=d.filter)!=null?o:e.filter),cacheConfig:Sn(d.cache)})}}return s}const yu=({disabled:e,selectedCollector:a})=>{const{control:n,formState:{errors:r},handleSubmit:l}=Yt({defaultValues:a?Eu(a.config):Il(),mode:"onChange"}),i=!!r.branchProtections||!!r.repositoryDetails||!!r.repositoryLanguages,{mutateAsync:o}=mu(),[s,c]=it(sr),d=async u=>{const m=vu(u);await o({collectorId:"github",config:m})&&c()};return t.createElement("form",{onSubmit:l(d)},t.createElement(Rn,{name:"branchProtections",label:"Branch Protections",description:"Collects branch protection information from an entity's repository.",control:n,disabled:e,errors:r.branchProtections}),t.createElement(He,null),t.createElement(Rn,{name:"repositoryDetails",label:"Repository Details",description:"Collects details about the an entity's repository.",control:n,disabled:e,errors:r.repositoryDetails}),t.createElement(He,null),t.createElement(Rn,{name:"repositoryLanguages",label:"Repository Languages",description:"Collects details about the languages used in an entity's repository.",control:n,disabled:e,errors:r.repositoryLanguages}),t.createElement(y,{container:!0,spacing:4},t.createElement(el,{onCancel:s,saveButtonText:"Save",isLoading:!1,onSave:l(d),disableSave:i})))},Cu=({title:e,open:a,handleClose:n,selectedCollector:r})=>t.createElement(st,{handleClose:n,title:e,open:a},(r==null?void 0:r.id)==="github"&&t.createElement(yu,{selectedCollector:r})),bu=()=>{var e;const{collectorId:a}=et(),{data:n,isLoading:r}=xn([a!=null?a:""]),{loading:l,allowed:i}=Z({permission:Qn}),[o]=it(sr),s=n==null?void 0:n[0],c=r||l,d=i&&(s==null?void 0:s.isEditable);return t.createElement("div",null,c&&t.createElement(vt,null),t.createElement(sa,{entityName:"Collector",entityId:a,showNotFound:!c&&!s,showCannotEdit:!c&&!d}),s&&d&&t.createElement(Cu,{title:s?(e=s.name)!=null?e:s.id:"",open:!0,handleClose:o,selectedCollector:s}))},ku=()=>t.createElement(t.Fragment,null,Array.from({length:6},(e,a)=>t.createElement(y,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(Ut,{variant:"rect",height:385})))),xu={catalog:Pr,github:es,pagerduty:as,scm:Zo,soundcheck:Nr,techInsights:Lr},wu={catalog:Pr,github:Jo,pagerduty:ts,scm:Xo,soundcheck:Nr,techInsights:Lr},Nn=R(e=>({container:{display:"flex",justifyContent:"center",alignItems:"center"},imageContainer:{width:"150px",height:"150px"},image:{width:"100%",height:"100%",objectFit:"contain",color:"white"},fillLogo:{"&:path":{fill:e.palette.text.secondary}}})),Tu=({collectorId:e})=>{const a=Nn(),n=me();return t.createElement("svg",{id:"svg2",viewBox:"0 0 160 156",version:"1.1",className:a.image},t.createElement("path",{id:"path4",d:"m20 0-2 4 21 12c0 10-4 18-13 23l-21-12-1 2c5 15 15 25 35 25 5 0 20 15 28 23l16-16c-8-8-26-26-26-31 0-18-5-30-37-30zm125 5-20 14-2 8-58 58-8-5-4 4c0 12-14 18-20 18l-33 33c0 10 11 21 21 21l33-33c0-6 6-20 18-20l4-4-5-8 58-58 8-2 14-20-6-6zm-50 68-16 16c12 12 28 28 28 33 0 18 5 30 37 30l2-4-21-12c0-10 4-18 13-23l21 12 1-2c-5-15-15-25-35-25-5 0-18-13-30-25z",fill:n.palette.text.secondary}),t.createElement("title",null,e," default fact collector logo"))},Su=({collectorId:e})=>{const a=Nn(),n=me(),r=ns(n)?wu[e]:xu[e];return r?t.createElement("img",{src:r,alt:e,className:a.image}):t.createElement(Tu,{collectorId:e})},Ru=({collector:e})=>{const{id:a}=e,n=Nn();return t.createElement(t.Fragment,null,t.createElement("div",{className:n.container},t.createElement("div",{className:n.imageContainer},t.createElement(Su,{collectorId:a}))))},ct=["github"],Pu=({collector:e,children:a})=>{const{description:n,id:r,isConfigurable:l,isEditable:i,name:o}=e,{loading:s,allowed:c}=Z({permission:Qn}),d=be(),u=ne(yo),m=ct.includes(r)&&l&&i&&!s&&c,p=()=>{d(u({collectorId:e.id}))};let g;return s||!c?g="You don't have permissions to configure this collector":l?i?ct.includes(r)||(g="This collector can only be configured through YAML"):g="Collector is already configured in YAML and so cannot be configured here":g="Collector is not configurable",t.createElement(oe,{title:g!=null?g:"",arrow:!0},t.createElement("div",null,t.createElement(xt,{title:o!=null?o:r,description:n,viewLabel:"Configure",editLabel:"Configure",children:a,handleView:void 0,handleEdit:m?p:void 0})))},Nu=()=>{const{data:e,isLoading:a}=xn();return t.createElement(y,{container:!0,direction:"row"},t.createElement(y,{container:!0,spacing:4,role:"list","aria-label":"checks"},a?t.createElement(ku,null):e==null?void 0:e.sort((n,r)=>{var l,i;return!ct.includes(n.id)&&ct.includes(r.id)?1:ct.includes(n.id)&&!ct.includes(r.id)?-1:((l=n.name)!=null?l:n.id).localeCompare((i=r.name)!=null?i:r.id)}).map(n=>t.createElement(y,{key:n.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(Pu,{collector:n},t.createElement(Ru,{collector:n}))))))},Lu=R(e=>({container:{padding:e.spacing(3)}})),Iu=()=>{const e=Lu();return t.createElement("div",{className:e.container},t.createElement(Nu,null))},Ou="Error Updating Track";function Du(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.updateProgram(l);if(!i)throw new Error("Failed to update track.");return i};return ye([ve.UpdateProgram],r,{onSuccess:async()=>{await a.invalidateQueries({queryKey:[N.GetAllPrograms]}),await a.invalidateQueries({queryKey:[N.GetTrackOwners]})},onError:l=>{let i="Failed to update track.";l instanceof Error&&(i=l.message),n({severity:"error",title:Ou,message:i})}})}const Fu={0:"detailsStep",1:"levelsStep",2:"filtersStep"},dt={name:{name:"Track name",description:"Give your track a meaningful name so it's easy to remember",helperText:"Max 100 characters",placeholder:"Example: Golden State for Web"},description:{name:"Track description",description:"Give your track a meaningful description so others know what it's for",placeholder:"Example: Improve quality and reliability of your software component by measuring the use of testing best practices."},documentationURL:{name:"Documentation URL (Optional)",description:"Enter a documentation URL for your track",placeholder:"URL for documentation"},owner:{name:"Track owner",description:"Add yourself, or a team, as the owner of this track. Defaults to current user."},levels:{label:"Track Levels",description:"Add the checks that apply to each level. You can preview the checks to see the rules that apply to each check."},filter:{description:'Setting the filters below will limit the scope of the Track so that only those Entities that match the filter will be monitored by the Track. As an example, choosing a "Kind" of "Component" will make this Check only apply to Entities whose Kind is indeed set to "Component". This would exclude Entities like Groups, Users, APIs, etc. from being impacted by the Track.'}},Au=R(()=>({container:{display:"flex",flexDirection:"column"}})),$u=({index:e,disabled:a,addedCheck:n,onRemoveCheck:r})=>{var l,i,o;const s=Au(),{control:c,formState:{errors:d}}=Ce(),{fields:u,remove:m,append:p}=Xt({control:c,name:`levelsStep.levels.${e}.checks`,rules:{required:!0}}),g=U(C=>{p(C)},[p]),E=U(C=>{const x=kr(u,h=>h.id===C.id);m(x),r(C)},[m,r,u]);B(()=>{n&&p(n)},[n,p]);const f=(o=(i=(l=d==null?void 0:d.levelsStep)==null?void 0:l.levels)==null?void 0:i[e])==null?void 0:o.checks;return t.createElement("div",{className:s.container},t.createElement(ml,{chips:u,onDelete:E,onDrop:g,error:!!f,placeholder:"Drag and drop checks here to include them in this level",disabled:a}),f&&t.createElement(il,{checksErrors:f}))},Mu=R(e=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center"},subtitle:{color:e.palette.text.primary},levelHeader:{display:"flex",alignItems:"center"},removeButton:{minWidth:120,display:"flex",alignItems:"center",marginLeft:e.spacing(1)},inputNameBase:{fontSize:e.typography.subtitle1.fontSize,fontWeight:700},inputDescriptionBase:{fontSize:e.typography.fontSize,fontWeight:"normal"},errorText:{color:e.palette.error.main},buttonContainer:{marginRight:e.spacing(2)}})),Bu=({disabled:e,addedCheck:a,onRemoveCheck:n})=>{const r=Mu(),{control:l,formState:{errors:i},getValues:o}=Ce(),{fields:s,remove:c,append:d}=Xt({control:l,name:"levelsStep.levels"});return t.createElement(y,{container:!0},t.createElement(y,{item:!0,xs:12,className:r.columnHeader},t.createElement(b,{variant:"subtitle1",className:r.subtitle},"Levels"),t.createElement("div",{className:r.buttonContainer},!e&&t.createElement(ia,{label:"Add Level",onClick:()=>d({name:`Level ${s.length+1}`,description:"",checks:[]})}))),t.createElement(y,{container:!0,item:!0,spacing:5},s.map((u,m)=>{var p,g,E,f,C,x,h,v,k,w,L;return t.createElement(y,{container:!0,item:!0,xs:12,spacing:2,key:u.id},t.createElement(y,{item:!0,xs:12,className:r.levelHeader},t.createElement(y,{container:!0,spacing:1},t.createElement(y,{item:!0,xs:!0},t.createElement(la,{name:`levelsStep.levels.${m}.name`,placeholder:"Level Name",control:l,disabled:e,variant:"outlined",size:"small",inputProps:{classes:{input:r.inputNameBase}},margin:"none",error:(E=(g=(p=i==null?void 0:i.levelsStep)==null?void 0:p.levels)==null?void 0:g[m])==null?void 0:E.name})),!e&&s.length>1&&t.createElement(y,{item:!0,className:r.removeButton},t.createElement(ia,{label:"Remove Level",onClick:()=>c(m),disabled:e})))),t.createElement(y,{item:!0,xs:12},t.createElement($u,{index:m,disabled:e,addedCheck:a,onRemoveCheck:n}),((h=(x=(C=(f=i==null?void 0:i.levelsStep)==null?void 0:f.levels)==null?void 0:C[m])==null?void 0:x.checks)==null?void 0:h.message)&&t.createElement(Gt,{className:r.errorText},(L=(w=(k=(v=i==null?void 0:i.levelsStep)==null?void 0:v.levels)==null?void 0:k[m])==null?void 0:w.checks)==null?void 0:L.message)),t.createElement(y,{item:!0,xs:12},t.createElement(la,{name:`levelsStep.levels.${m}.description`,placeholder:"Enter description here",control:l,disabled:e,label:`${o(`levelsStep.levels.${m}.name`)}'s description`,variant:"outlined",size:"small",inputProps:{classes:{input:r.inputDescriptionBase},"aria-label":`${o(`levelsStep.levels.${m}.name`)} description`},margin:"none"})))})))},Gu=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(2)},inner:{display:"flex",flexDirection:"row",gap:e.spacing(2)},checksSection:{width:"40%"},levelsSection:{width:"60%"},description:{fontWeight:"normal",fontSize:e.typography.fontSize}})),zu=({selectableChips:e,checksLoading:a})=>{const{selectedItem:n,isLoading:r,isReadOnly:l}=Fe(),i=Gu(),{levels:o}=dt,s=l||!!n&&!n.isEditable,[c,d]=T(void 0),u=p=>d(p),m=p=>{c&&p.name===c.name&&d(void 0)};return t.createElement("div",{className:i.container},t.createElement("div",null,!s&&t.createElement(b,{className:i.description},o.description)),t.createElement("div",{className:i.inner},!s&&t.createElement("div",{className:i.checksSection},t.createElement(pl,{chips:e,isLoading:a||r,disabled:s,onContextMenuAdd:p=>u(p)})),t.createElement("div",{className:i.levelsSection},t.createElement(Bu,{disabled:s,addedCheck:c,onRemoveCheck:p=>m(p)}))))},Hu=({isLoading:e,disabled:a})=>{var n;const{control:r,formState:{errors:l}}=Ce(),{name:i,description:o,placeholder:s}=dt.description;return t.createElement(ma,{name:"detailsStep.description",control:r,error:(n=l.detailsStep)==null?void 0:n.description,label:i,description:o,placeholder:a?void 0:s,disabled:a||e})},Wu=R(e=>({container:{display:"flex",flexDirection:"column"},fieldContainer:{width:"300px",marginTop:"-10px"}})),Vu=({isLoading:e,disabled:a})=>{var n,r,l,i;const o=Wu(),{control:s,formState:{errors:c}}=Ce(),{name:d,description:u,placeholder:m}=dt.documentationURL;return t.createElement("div",{className:o.container},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},d),t.createElement(b,{variant:"caption"},u)),t.createElement("div",{className:o.fieldContainer},t.createElement(la,{name:"detailsStep.documentationURL",control:s,placeholder:m,disabled:a||e,variant:"outlined",error:(n=c==null?void 0:c.detailsStep)==null?void 0:n.documentationURL,helperText:(i=(l=(r=c==null?void 0:c.detailsStep)==null?void 0:r.documentationURL)==null?void 0:l.message)!=null?i:void 0})))},_u=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(2)},helperText:{marginLeft:0},field:{marginTop:"-10px"}})),Ku=({disabled:e,isLoading:a})=>{const n=_u(),{control:r,formState:{errors:l}}=Ce(),{placeholder:i,name:o,description:s,helperText:c}=dt.name;return t.createElement("div",{className:n.container},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},o),t.createElement(b,{variant:"caption"},s)),t.createElement(V,{name:"detailsStep.name",control:r,defaultValue:"",render:({field:d})=>{var u,m,p,g;return t.createElement(J,{...d,FormHelperTextProps:{className:n.helperText},className:n.field,variant:"outlined",fullWidth:!0,placeholder:i,disabled:a||e,type:"text",error:!!((u=l.detailsStep)!=null&&u.name),helperText:(g=(p=(m=l.detailsStep)==null?void 0:m.name)==null?void 0:p.message)!=null?g:c})}}))},Uu=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(1)}})),ju=({disabled:e,ownerEntityRef:a})=>{var n,r,l;const i=Uu(),{options:o,isLoading:s}=Aa(),{user:c,userEntityRef:d}=ft(),{control:u,formState:{errors:m}}=Ce();let p=_a(o.map(f=>({value:f.ref,label:f.name})),"value");d&&(p=[{value:d,label:c==null?void 0:c.metadata.name},...p]),a&&d!==a&&!p.some(f=>f.value===a)&&(p=[{value:a,label:X(a).name},...p]);const{name:g,description:E}=dt.owner;return t.createElement("div",{className:i.container},t.createElement("div",null,t.createElement(b,{variant:"subtitle2"},g),t.createElement(b,{variant:"caption"},E)),t.createElement("div",null,t.createElement(ra,{name:"detailsStep.ownerEntityRef",control:u,options:s?void 0:p,disabled:e||s,helperText:(l=(r=(n=m==null?void 0:m.detailsStep)==null?void 0:n.ownerEntityRef)==null?void 0:r.message)!=null?l:void 0})))},qu=z(e=>({container:{display:"flex",flexDirection:"column",gap:e.spacing(2)}})),Qu=()=>{var e;const a=qu(),{isLoading:n,isReadOnly:r,selectedItem:l}=Fe();return t.createElement("div",{className:a.container},t.createElement(Ku,{disabled:r,isLoading:n}),t.createElement(Hu,{isLoading:n,disabled:r}),t.createElement(ju,{disabled:n||r,ownerEntityRef:(e=l==null?void 0:l.ownerEntityRef)!=null?e:void 0}),t.createElement(Vu,{isLoading:n,disabled:r}))},Ol=({onSave:e,title:a,open:n,handleClose:r})=>{const{selectedItem:l,isLoading:i,isReadOnly:o}=Fe(),{formMethods:s,onSubmit:c,selectableChips:d,checksLoading:u}=Uc(e),m=[{label:"Enter track details",content:()=>t.createElement(Qu,null)},{label:"Add levels",content:()=>t.createElement(zu,{selectableChips:d,checksLoading:u})},{label:"Choose the affected entities (Optional)",content:()=>t.createElement(El,{name:"filtersStep.filter",control:s.control,disabled:o,description:dt.filter.description})}],p=l?[...Array(m.length).keys()]:[0];return t.createElement(Ka,{backend:Ua},t.createElement(st,{handleClose:r,title:a,open:n},t.createElement(yr,{...s},t.createElement("form",{onSubmit:s.handleSubmit(c)},t.createElement(mn,{onClose:r,handleSubmit:s.handleSubmit,trigger:s.trigger,onSubmit:c,initialVisited:p,stepNameMap:Fu,steps:m,isLoading:i,isReadOnly:o,saveButtonText:"Save Track"})))))},Yu=({track:e,canEdit:a})=>{const{setSelectedItem:n,setIsLoading:r,selectedItem:l,showReadOnlyModal:i}=Fe(),{mutateAsync:o,isLoading:s}=Du();B(()=>r(s),[r,s]);const c=!a||!e.isEditable;B(()=>{c?i(e):n(e)},[e,n,c,i]);const[d,u]=it(Co),m=U(async p=>{await o(p,{onSuccess:u})},[u,o]);return B(()=>{},[e,i,c]),l?t.createElement(Ol,{handleClose:u,title:`${c?"View":"Edit"} Track`,open:!0,onSave:m}):null},Xu=()=>{var e,a;const{trackId:n}=et(),{data:r,isLoading:l}=ea({ids:[n!=null?n:""],first:1}),i=(a=(e=r==null?void 0:r.edges)==null?void 0:e[0])==null?void 0:a.node,{loading:o,allowed:s}=Z({permission:Yn,resourceRef:n}),{loading:c,allowed:d}=Z({permission:Xn,resourceRef:n});return t.createElement(t.Fragment,null,t.createElement(sa,{entityName:"track",entityId:n,showNotFound:!l&&!i,showCannotView:!o&&!c&&!d}),l||o||c?t.createElement(vt,null):d&&i&&t.createElement(qr,null,t.createElement(Yu,{track:i,canEdit:s})))},Zu="check-pass-rates-summary.csv",Ju="track-pass-rates-summary.csv",ep="entity-pass-rates-summary.csv",tp="team-pass-rates-summary.csv",ap="check-pass-rates.csv",np="track-pass-rates.csv",rp="entity-pass-rates.csv",lp="team-pass-rates.csv",ip="campaign-track-pass-rates.csv";function Ae(e){const a=je.utc();return e.map((n,r)=>({name:Ct(a,e.length-r-1),passRate:n}))}var op=(e=>(e.Bar="bar",e.Line="line",e))(op||{});const sp=-25,$e=[0,100],Dl=85,ua=25,Tt="name",cp=250,St=.5,Fl="circle",Al=8,$l="monotone",Rt=({children:e,height:a})=>t.createElement(qa,{height:a,minHeight:a!=null?a:cp,debounce:1},e),dp=z(e=>({container:{position:"relative"},chartMessage:{position:"absolute",top:"50%",left:"50%",fontWeight:"bold",transform:"translate(-50%, -50%)",backgroundColor:e.palette.background.default,padding:e.spacing(1),borderRadius:"5px",textAlign:"center",width:"50%",zIndex:2}})),Ml=()=>{const e=[{x:"A",y:25},{x:"B",y:50},{x:"C",y:75}],a=dp();return t.createElement("div",{className:a.container},t.createElement(Rt,null,t.createElement(Qa,{data:e},t.createElement(bt,{strokeDasharray:"3 3",vertical:!1,opacity:St}),t.createElement(rt,{dataKey:"x",stroke:"#ccc",hide:!0}),t.createElement(lt,{domain:$e,stroke:"#ccc",hide:!0}),t.createElement(Ya,{type:"monotone",dataKey:"y",stroke:"#ccc",dot:!1}))),t.createElement(b,{className:a.chartMessage},"No Data"))},mp=R(e=>({legend:{color:ke(e)}})),Pt=({data:e,lines:a,height:n})=>{const r=me(),l=nt(r),i=ke(r),o=mp();return e.length?t.createElement(Rt,{height:n},t.createElement(Qa,{data:e},t.createElement(bt,{vertical:!1,opacity:St}),t.createElement(rt,{dataKey:Tt,stroke:i}),t.createElement(lt,{width:ua,domain:$e,stroke:i}),t.createElement(Ar,{position:{y:sp},contentStyle:{backgroundColor:r.palette.background.paper}}),a.length>1&&t.createElement($r,{iconType:Fl,iconSize:Al,formatter:s=>t.createElement("span",{className:o.legend},s)}),a.map((s,c)=>t.createElement(Ya,{key:s.dataKey,dataKey:s.dataKey,stroke:l[c%l.length],strokeWidth:2,dot:!1,name:s.name,type:$l})))):t.createElement(Ml,null)},up=({data:e,lines:a})=>{const n=me(),r=nt(n);return t.createElement(qa,{height:50,width:100},t.createElement(Qa,{data:e},t.createElement(rt,{hide:!0,dataKey:Tt}),t.createElement(lt,{width:0,domain:$e}),a.map((l,i)=>t.createElement(Ya,{key:l.dataKey,dataKey:l.dataKey,stroke:r[i%r.length],strokeWidth:2,dot:!1,name:l.name,type:$l}))))},Nt=({chartData:e,tableChart:a})=>{const n=[{dataKey:"passRate",name:"Pass rate"}];return a?t.createElement(up,{data:e,lines:n}):t.createElement(Pt,{data:e,lines:n})};var M=(e=>(e.Entity="Entity",e.Kind="Entity Kind",e.Type="Entity Type",e.EntityOwner="Entity Owner",e.Lifecycle="Entity Lifecycle",e.System="System",e.Track="Track",e.Level="Track Level",e.Check="Check",e.CheckOwner="Check Owner",e))(M||{});const Bl={Entity:"Entities are software components, like a system, service, or library. They are the entities/components that Soundcheck runs checks against. Choosing entities will filter the results to only show those that are associated with the selected entity/entities.","Entity Kind":"The 'kind' of the Entity as defined by Catalog, e.g. Component, System, User, Group, etc. This will filter results to only show those for Entities with the selected kind(s).","Entity Type":"The type of Entity as defined by Catalog, e.g. Database, Team, Service, Website, etc. This will filter results to only show those related to Entities with the selected type(s).","Entity Owner":"The owner of the Entity, typically a team or and individual. This will filter results to only those Entities that are owned by the selected owner(s).","Entity Lifecycle":"The lifecycle of the entity: e.g. experimental, production, etc. This will filter results to only show those related to Entities with the selected lifecycle(s).",System:"This System filter will filter results to only show those for Entities that are part of the selected System(s).",Track:"This Track filter will filter results to only show those related to the selected Track(s).","Track Level":"This Track level filter will filter results to only show those related to the selected Track level(s).",Check:"This Check filter will filter results to only show those related to the selected Check(s).","Check Owner":"The owner of the Check, typically a team or an individual. This will limit results to only be results from Checks that are owned by the selected owner(s)."},pp={hidden:{height:0,opacity:0,overflow:"hidden"},visible:{height:"auto",opacity:1,overflow:"visible"}};function gp({visible:e,...a}){return t.createElement(cs.div,{...a,animate:e?"visible":"hidden",initial:"hidden",variants:pp})}const hp=(e,a)=>{var n;const[r,l]=ht(),i=a!=null?a:(n=e[M.EntityOwner][0])==null?void 0:n.value,[o=Lt(i),s]=Xa("soundcheck.techHealth.facetFilters",Lt(i)),[c=Ye,d]=Xa("soundcheck.techHealth.numberOfDays",Ye),u=p=>!isNaN(p)&&p>=Me&&p<=Xe,m=U((p,g)=>{const E={...o!=null?o:Lt()};E[p]=g,s(E)},[o,s]);return B(()=>{const p=r.get("days");if(p&&p!==c.toString()){const g=parseInt(p,10);d(u(g)?g:Ye)}},[]),B(()=>{r.set("days",c.toString()),l(r,{replace:!0})},[c,r,l]),B(()=>{Object.values(M).forEach(p=>{const g=r.get(Zt(p));g&&g!==o[p].join(",")&&m(p,g.split(","))})},[]),B(()=>{Object.values(M).forEach(p=>{const g=o[p].join(","),E=Zt(p);g.length&&r.get(E)!==g&&(r.set(E,g),l(r,{replace:!0}))})},[o,r,l,i]),{setFacetFilter:(p,g)=>{m(p,g);const E=Zt(p);if(g.length){const f=g.join(",");r.get(E)!==f&&r.set(E,f)}else r.delete(E);l(r,{replace:!0})},getFacetFilter:p=>o?o[p]:[],clearFacetFilters:()=>{d(Ye),s(Lt()),r.delete("days"),Object.values(M).forEach(p=>{r.delete(Zt(p))}),l(r,{replace:!0})},facetFilters:o,numberOfDays:c,setNumberOfDays:d}},fp=R(e=>({container:{display:"flex",margin:"-24px",backgroundColor:e.palette.background.paper,borderTop:`1px solid ${e.palette.border}`,flex:1},fixedColumn:{width:"300px",flex:"none",borderRight:`1px solid ${e.palette.border}`},flexibleColumn:{display:"flex",flexDirection:"column",flex:1,backgroundColor:e.palette.background.default,height:"100%",maxWidth:"100%"},tabsPlaceholder:{height:"36.5px",backgroundColor:e.palette.background.paper}})),vp=()=>{const e=fp();return t.createElement("div",{className:e.container},t.createElement("div",{className:e.fixedColumn}),t.createElement("div",{className:e.flexibleColumn},t.createElement("div",{className:e.tabsPlaceholder}),t.createElement(Ne,null)))};function Ep(e){var a;const n=D(A),[r,l]=T(null),i=async()=>(await n.getEntityRefsForTechHealthFilter(e)).entityRefsForTechHealthFilter,o=G([N.GetSoftwareEntityRefsForUser,e],i,{retry:!1,onError:l,enabled:e!==null,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1});return{data:(a=o.data)!=null?a:[],isLoading:o.isLoading,error:r}}const yp=(e,a)=>{var n,r,l,i;const o=[];for(const c of e)o.push({label:(n=c.name)!=null?n:c.id,value:c.id});const s=e.map(c=>c.id);for(const c of a)for(const d of(r=c.levels)!=null?r:[])for(const u of(l=d.checks)!=null?l:[])s.includes(u.id)||(s.push(u.id),o.push({label:(i=u.name)!=null?i:u.id,value:u.id}));return o},Cp=e=>{var a;const n=[];for(const r of e!=null?e:[])for(const l of(a=r.levels)!=null?a:[])n.includes(l.ordinal)||n.push(l.ordinal);return n.sort().map(r=>({label:`Level ${r}`,value:`${r}`}))},bp=(e,a)=>{const n=new Set(e.filter(r=>r.ownerEntityRef).map(r=>r.ownerEntityRef));return Array.from(n).map(r=>{var l;return{label:(l=a[r])!=null?l:r,value:r}})},pa=e=>(e!=null?e:[]).map(a=>({label:a,value:a})),kp=()=>{const[e,a]=T(!1),{userEntityRef:n}=ft(),{data:r,isLoading:l}=Ep(n),{data:i,isLoading:o}=lo(),s=Y(()=>Ue.mapValues(Ue.keyBy(i!=null?i:[],"ref"),O=>O.name),[i]),{data:c,isLoading:d}=ea({first:100}),u=Y(()=>{var O;return(O=c==null?void 0:c.edges.map(I=>I.node))!=null?O:[]},[c]),{data:m,isLoading:p}=Jt({first:100}),g=Y(()=>{var O;return(O=m==null?void 0:m.edges.map(I=>I.node))!=null?O:[]},[m]),{data:E,isLoading:f}=Le("kind"),{data:C,isLoading:x}=Le("spec.lifecycle"),{data:h,isLoading:v}=Le("spec.type"),{data:k,isLoading:w}=Le("spec.system"),L=Y(()=>{var O;return{[M.Kind]:pa(E),[M.Lifecycle]:pa(C),[M.Type]:pa(h),[M.System]:pa(k),[M.Entity]:r.map(I=>({label:X(I).name,value:I})),[M.EntityOwner]:(O=i==null?void 0:i.map(I=>({label:I.name,value:I.ref})))!=null?O:[],[M.Track]:u.map(I=>({label:I.name,value:I.id})),[M.Level]:Cp(u),[M.Check]:yp(g,u),[M.CheckOwner]:bp(g,s)}},[E,C,h,r,i,s,u,g,k]);return B(()=>{a(f||x||v||l||o||d||p||w)},[f,x,v,l,o,d,p,w]),{facetOptions:L,isLoading:e}},Ye=30,Me=2,Xe=90,Lt=e=>Object.fromEntries(Object.values(M).map(a=>e&&a===M.EntityOwner?[a,[e]]:[a,[]])),xp=(e,a,n)=>{if(a.length)return a.map(r=>({trackId:r,levels:n.length?n.map(l=>parseInt(l,10)):void 0}));if(n.length)return e.map(r=>({trackId:r.value,levels:n.map(l=>parseInt(l,10))}))},wp=(e,a,n,r)=>{const l=i=>a[i].length?{included:a[i]}:void 0;return{checkIds:l(M.Check),checkOwners:l(M.CheckOwner),entityOwners:l(M.EntityOwner),entityRefs:l(M.Entity),tracks:xp(e[M.Track],a[M.Track],a[M.Level]),numberOfDays:n!=null?n:Ye,context:r?{loggedInUser:r}:void 0,entityTypes:l(M.Type),entityKinds:l(M.Kind),entityLifecycles:l(M.Lifecycle),systems:l(M.System)}},Gl=Wt({facetOptionsLoading:!1,getFacetOptions:()=>[],getFacetOptionLabel:()=>"",facetFilters:Lt(),clearAllFilters:()=>{},getSelectedFacetValues:()=>[],setSelectedFacetValues:()=>{},numberOfDays:Ye,setNumberOfDays:()=>{},filter:{},loggedInUser:"Unknown"}),Ie=()=>Vt(Gl),Tp=e=>{const{userEntityRef:a,loading:n}=ft(),{isLoading:r,facetOptions:l}=kp(),[i]=Xa("soundcheck.overview.groupRef",null),{facetFilters:o,numberOfDays:s,setFacetFilter:c,getFacetFilter:d,clearFacetFilters:u,setNumberOfDays:m}=hp(l,i!=null?i:void 0),p=U(f=>l[f].map(({value:C})=>C),[l]),g=Y(()=>wp(l,o,s,a),[o,l,s,a]),E={facetOptionsLoading:r,getFacetOptions:p,getFacetOptionLabel:(f,C)=>{var x;let h=(x=l[f].find(v=>v.value===C))==null?void 0:x.label;if(!h)try{const v=X(C);h=Qt(v)}catch{}return Gr(),h!=null?h:C},facetFilters:o,clearAllFilters:u,getSelectedFacetValues:f=>d(f),setSelectedFacetValues:(f,C)=>{c(f,C)},numberOfDays:s,setNumberOfDays:m,filter:g!=null?g:{},loggedInUser:"Unknown"};return r||n?t.createElement(vp,null):t.createElement(Gl.Provider,{...e,value:E})},Sp=50,Rp=R(({palette:e,spacing:a})=>({header:{display:"flex",alignItems:"left",flexDirection:"row",cursor:"pointer",justifyContent:"space-between"},label:{display:"flex",alignItems:"center"},tooltipIcon:{display:"flex",alignItems:"center",justifyContent:"center",color:e.text.primary},chip:{maxWidth:"45%",textOverflow:"ellipsis",margin:a(.5,.5,.5,0),overflow:"hidden","& svg":{color:ki(e.common.white,.7),"&:hover":{color:e.common.white}},backgroundColor:e.action.disabledBackground},autoCompleteInput:{"&& input":{margin:a(1,0,0,0),padding:`${a(0,1,1,1)} !important`,width:"100%",display:"flex",alignItems:"center",justifyContent:"center"},"&& button":{"&:hover":{backgroundColor:"transparent"}}},autoComplete:{margin:a(.5,0,1,0)}})),Pp=({facet:e})=>{const a=Rp(),{getFacetOptions:n,getFacetOptionLabel:r,getSelectedFacetValues:l,setSelectedFacetValues:i}=Ie(),[o,s]=T(!1),[c,d]=T(!1),[u,m]=T("");B(()=>{var h;s(!!((h=l(e))!=null&&h.length))},[l,e]);const p=()=>{s(h=>!h)},g=h=>{(h.key==="Enter"||h.key===" ")&&p()},E=U(h=>{if(e===M.Entity&&h[h.length-1]){const v=h[h.length-1];if(!v.includes(":")||!v.includes("/")){d(!0),m("Custom entities require a valid kind and namespace such as: component:default/entity");return}}d(!1),m(""),i(e,h)},[e,i]),f=Y(()=>l(e),[e,l]),C=U(h=>{const v=[...f];Ho(v,k=>k===h),E(v)},[f,E]),x=Gr({matchFrom:"any",limit:Sp});return t.createElement(S,null,t.createElement("div",{className:a.header,onClick:p,onKeyDown:g,role:"button",tabIndex:0},t.createElement("div",{className:a.label},t.createElement(S,null,t.createElement(b,{variant:"subtitle2"},e)),Bl[e]&&t.createElement(oe,{title:Bl[e],className:a.tooltipIcon},t.createElement(xi,null,t.createElement(ss,{style:{fontSize:16,verticalAlign:"text-top"}})))),t.createElement(S,null,t.createElement(gt,{size:"small",onKeyDown:g},o?t.createElement(os,{fontSize:"small"}):t.createElement(ja,{fontSize:"small"})))),t.createElement(gp,{visible:o},t.createElement(S,null,f.map(h=>t.createElement(Oe,{key:h,label:r(e,h),size:"small",className:a.chip,onDelete:()=>C(h),clickable:!1}))),t.createElement(jt,{className:a.autoComplete,disableCloseOnSelect:!0,fullWidth:!0,multiple:!0,freeSolo:e===M.Entity,popupIcon:null,renderTags:()=>null,filterOptions:x,options:n(e),getOptionLabel:h=>r(e,h),value:f,onChange:(h,v)=>E(v),renderInput:h=>t.createElement(J,{...h,className:a.autoCompleteInput,placeholder:`Search for ${e}`,error:c,helperText:u}),renderOption:(h,{selected:v})=>t.createElement(Je,{onClick:k=>k.preventDefault(),control:t.createElement(Re,{icon:t.createElement(br,{fontSize:"small"}),checkedIcon:t.createElement(Cr,{fontSize:"small"}),checked:v}),label:r(e,h)})})))},Np=R(e=>({root:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},clearButton:{lineHeight:e.typography.caption.lineHeight,fontSize:e.typography.caption.fontSize,padding:e.spacing(1),margin:e.spacing(2),marginBottom:e.spacing(2)-1},hidden:{visibility:"hidden"},headerText:{marginLeft:e.spacing(3)}}));function Lp(){const e=Np(),{numberOfDays:a,facetFilters:n,clearAllFilters:r}=Ie(),l=Object.keys(M).some(i=>n[M[i]].length)||a!==Ye;return t.createElement(S,{className:e.root},t.createElement(S,{className:e.headerText},t.createElement(b,{variant:"h6"},"Filters")),t.createElement(S,null,t.createElement(K,{className:l?e.clearButton:`${e.clearButton} ${e.hidden}`,onClick:r,size:"small",variant:"outlined",color:"primary"},"Clear all")))}const Ip=R(({palette:e,spacing:a})=>({root:{padding:({size:n,header:r})=>r?0:n==="small"?a(1.5,2):a(2),borderBottom:`1px solid ${e.divider}`}}));function Ln(e){const a=Ip(e);return t.createElement(S,{...e,className:a.root})}const Op=R(({spacing:e})=>({select:{width:"100%",margin:e(1,0)},chipPadding:{marginBottom:e(1)}})),ga=[7,30,90].map(e=>({value:e,label:`Last ${e} days`}));function Dp(){const e=Op(),{numberOfDays:a,setNumberOfDays:n}=Ie(),r=[...ga];ga.map(m=>m.value).includes(a)||r.push({value:a,label:`Last ${a} days`});const[l,i]=T(r),[o,s]=T(""),c=()=>{if(o.length){const m=parseInt(o,10);return!isNaN(m)&&(m<Me||m>Xe)}return!1},d=()=>{const m=parseInt(o,10);if(m<Me)return`Minimum of ${Me} days`;if(m>Xe)return`Maximum of ${Xe} days`},u=m=>{if(m.key==="Enter"){const p=parseInt(o,10);p>=Me&&p<=Xe?(ga.map(g=>g.value).includes(p)||i([...ga,{value:p,label:`Last ${p} days`}]),n(p),s("")):p<Me?s(`${Me}`):s(`${Xe}`)}};return t.createElement(S,null,t.createElement(S,{marginBottom:1},t.createElement(S,null,l.sort((m,p)=>m.value-p.value).map(({label:m,value:p})=>t.createElement(Oe,{key:p,label:m,className:e.chipPadding,color:a===p?"primary":void 0,size:"small",onClick:()=>n(p)})))),t.createElement(S,null,t.createElement(J,{fullWidth:!0,placeholder:"Number of days",inputProps:{min:Me,max:Xe},onKeyDown:u,helperText:d(),value:o,type:"number",error:c(),onChange:m=>s(m.target.value)})))}const Fp=R(e=>({filters:{maxWidth:"300px",width:"100%",backgroundColor:e.palette.background.paper}})),Ap=()=>{const e=Fp(),a=Kt().pathname.includes("campaigns");let n=Object.values(M);if(a){const r=[M.Track,M.Level];n=n.filter(l=>!r.includes(l))}return t.createElement(S,{className:e.filters},t.createElement(Ln,{header:!0},t.createElement(Lp,null)),t.createElement(Ln,null,t.createElement(Dp,null)),n.map(r=>t.createElement(Ln,{key:r,size:"small"},t.createElement(Pp,{facet:r}))))},zl=Wt({checkPassRateSnapshot:{data:void 0,isLoading:!0,isError:!1},checkPassRateTrend:{data:void 0,isLoading:!0,isError:!1},trackPassRateOverviewSnapshot:{data:void 0,isLoading:!0,isError:!1},trackPassRateOverviewTrend:{data:void 0,isLoading:!0,isError:!1},entityPassRatesOverviewTrends:{data:void 0,isLoading:!0,isError:!1},groupPassRatesOverviewTrends:{data:void 0,isLoading:!0,isError:!1}}),Be=()=>Vt(zl),$p=e=>{const{filter:a}=Ie(),n=Ds(a),r=Fs(a),l=Gs(a),i=zs(a),o=Hs(a),s=Vs({filter:a,first:5}),c=Y(()=>({checkPassRateSnapshot:n,checkPassRateTrend:r,trackPassRateOverviewSnapshot:l,trackPassRateOverviewTrend:i,entityPassRatesOverviewTrends:o,groupPassRatesOverviewTrends:s}),[n,r,l,i,o,s]);return n.isLoading||r.isLoading||l.isLoading||i.isLoading||o.isLoading||s.isLoading?t.createElement(Ne,null):t.createElement(zl.Provider,{...e,value:c})},Hl=e=>{const a=(e==null?void 0:e.overallTrackPassRate)||[];if(!a.length)return[];const n=je.utc();return a.reduce((r,{trendPassRates:l,levelOrdinal:i},o)=>{var s;const c=(s=l==null?void 0:l.map((d,u)=>({name:Ct(n,l.length-u-1),[`Level${i}`]:d})))!=null?s:[];return o===0?c:r.map((d,u)=>({...d,...c[u]}))},[])},Mp=()=>{var e,a;const{trackPassRateOverviewTrend:{data:n,isError:r}}=Be();if(r)return t.createElement(b,{color:"error"},"Failed to load track data.");const l=Hl(n),i=(a=(e=n==null?void 0:n.overallTrackPassRate)==null?void 0:e.map(({levelOrdinal:o})=>({dataKey:`Level${o}`,name:`Level ${o}`})))!=null?a:[];return t.createElement(Pt,{data:l,lines:i})},Bp=e=>{const a=(e==null?void 0:e.overallEntityPassRates)||[];if(!a.length)return[];const n=je.utc();return a.reduce((r,{trendPassRates:l,id:i},o)=>{var s;const c=(s=l==null?void 0:l.map((d,u)=>({name:Ct(n,l.length-u-1),[i]:d})))!=null?s:[];return o===0?c:r.map((d,u)=>({...d,...c[u]}))},[])},Gp=()=>{var e,a;const{entityPassRatesOverviewTrends:{data:n}}=Be(),r=(a=(e=n==null?void 0:n.overallEntityPassRates)==null?void 0:e.map(({id:i})=>({dataKey:i,name:X(i).name})))!=null?a:[],l=Bp(n);return t.createElement(Pt,{data:l,lines:r})},zp=z(e=>({container:{position:"relative"},chartMessage:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",backgroundColor:e.palette.background.default,padding:e.spacing(1),borderRadius:"5px",textAlign:"center",width:"50%",zIndex:2}})),Hp=({layout:e,theme:a})=>{const n=e===It.Vertical,r=[{x:"A",y:25},{x:"B",y:50},{x:"C",y:75}],l=[{x:"A",y:100},{x:"B",y:90},{x:"C",y:80},{x:"C",y:70},{x:"C",y:60}],i=zp();return t.createElement("div",{className:i.container},t.createElement(Rt,null,t.createElement(Mr,{data:n?l:r,margin:{left:0},layout:e},t.createElement(bt,{strokeDasharray:"3 3",vertical:n,horizontal:!n,opacity:St}),t.createElement(rt,{dataKey:n?void 0:"x",type:n?Ot.Number:Ot.Category,domain:n?$e:void 0,hide:!0}),t.createElement(lt,{width:n?Dl:ua,dataKey:n?"x":void 0,type:n?Ot.Category:Ot.Number,domain:n?void 0:$e,hide:!0}),t.createElement(Br,{dataKey:"y",fill:a.palette.divider,barSize:n?Wl:Vl}))),t.createElement(b,{className:i.chartMessage},"No Data"))},Wp=R(e=>({legend:{color:ke(e)}}));var It=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(It||{});const Wl=20,Vl=50;var Ot=(e=>(e.Category="category",e.Number="number",e))(Ot||{});const _l={dataKey:"passRate",name:"Pass rate"},In=Ui(({data:e,layout:a})=>{const n=a==="vertical",r=me(),l=nt(r),i=ke(r),o=Wp();return e.length?t.createElement(Rt,{"aria-label":"Bar chart representing data points."},t.createElement(Mr,{data:e,layout:a},t.createElement(bt,{vertical:n,horizontal:!n,opacity:St}),t.createElement(rt,{dataKey:n?void 0:Tt,type:n?"number":"category",domain:n?$e:void 0,stroke:i}),t.createElement(lt,{width:n?Dl:ua,dataKey:n?Tt:void 0,type:n?"category":"number",domain:n?void 0:$e,stroke:i}),t.createElement(Ar,{contentStyle:{backgroundColor:r.palette.background.paper},itemStyle:{color:ke(r)},cursor:{fill:"transparent"}}),t.createElement($r,{iconType:Fl,iconSize:Al,formatter:s=>t.createElement("span",{className:o.legend},s),payload:e.map(({name:s},c)=>({id:s,value:s,color:l[c%l.length]}))}),t.createElement(Br,{barSize:n?Wl:Vl,dataKey:_l.dataKey,name:_l.name},e.map(({name:s},c)=>t.createElement(rs,{key:s,fill:l[c%l.length]}))))):t.createElement(Hp,{layout:a,theme:r})}),Vp=e=>{var a,n;return(n=(a=e==null?void 0:e.overallTrackPassRate)==null?void 0:a.map(({levelOrdinal:r,snapshotPassRate:l})=>({name:`Level ${r}`,passRate:l})))!=null?n:[]},_p=()=>{const{trackPassRateOverviewSnapshot:{data:e,isError:a}}=Be();if(a)return t.createElement(b,{color:"error"},"Failed to load track data.");const n=Vp(e);return t.createElement(In,{data:n,layout:It.Horizontal})},Kp=e=>{var a;return(a=e==null?void 0:e.map(({node:n})=>{const{id:r,groupTitle:l,snapshotPassRate:i}=n;return{name:l!=null?l:X(r).name,passRate:i}}))!=null?a:[]},Up=()=>{var e,a;const{groupPassRatesOverviewTrends:{data:n}}=Be(),r=(a=(e=n==null?void 0:n.groupPassRates)==null?void 0:e.edges)==null?void 0:a.sort((i,o)=>o.node.snapshotPassRate-i.node.snapshotPassRate),l=Kp(r);return t.createElement(In,{data:l,layout:It.Vertical})},jp=z(e=>({card:{display:"flex",flexDirection:"column",gap:e.spacing(1),border:`1px solid ${e.palette.divider}`,boxShadow:"none",width:"99%"},title:{fontWeight:"bold",fontSize:e.typography.h5.fontSize,lineHeight:`${e.typography.h3.fontSize}px`},subtitle:{fontSize:e.typography.pxToRem(14),lineHeight:`${e.typography.h6.fontSize}px`,color:e.palette.grey[800]},headerRow:{display:"flex",padding:e.spacing(1,2),borderBottom:`1px solid ${e.palette.divider}`,gap:e.spacing(2)},headerSection:{display:"flex",flexDirection:"column",gap:e.spacing(.5)},headerExportSection:{display:"flex",alignItems:"center",marginLeft:"auto",marginRight:0},contentRow:{padding:e.spacing(2.5,2),display:"flex",gap:e.spacing(2)},leftSection:{width:"200px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"200px"},chartDisplaySummary:{flex:1,display:"flex",flexDirection:"row",gap:e.spacing(1),alignItems:"center",justifyContent:"end"}})),ha=({title:e,subtitle:a,summaryCardContent:n,chartSectionContent:r,disableDataExport:l,csvData:i,csvFilename:o})=>{const s=jp();return t.createElement(Pa,{className:s.card},t.createElement(S,{className:s.headerRow},t.createElement(S,{className:s.headerSection},t.createElement(b,{className:s.title},e),t.createElement(b,{variant:"caption"},a)),t.createElement(S,{className:s.headerExportSection},t.createElement(zr,{data:i,filename:o,onClick:()=>!l},t.createElement(oe,{title:"Export to CSV"},t.createElement("span",null,t.createElement(K,{disabled:l},t.createElement(ds,null))))))),t.createElement(S,{className:s.contentRow},n&&t.createElement(S,{className:s.leftSection},t.createElement(S,{className:s.summaryCard},n)),t.createElement(S,{className:s.chartSection},r)))};function Ge(e,a){const n=e;if(a){const r=je.utc();for(let l=a-1;l>=0;l--)n.push(r.minus({day:l}).toISODate())}return n}function mt(e){if(!e)return 0;const a=e.map(n=>{var r,l;return(l=(r=n.trendPassRates)==null?void 0:r.length)!=null?l:1});return Math.max(1,...a)}function qp(e){const a=[];return a.push(Ge(["check_id","check_name","check_owner_ref"],mt(e))),e!=null&&e.length&&e.map(n=>{var r;a.push([n.id,n.checkName,n.checkOwnerRef,...(r=n.trendPassRates)!=null?r:[n.snapshotPassRate]])}),a}function Qp(e){var a,n;const r=[];if(r.push(Ge(["entity_ref","entity_name","entity_owner_ref"],mt(e))),e!=null&&e.length)for(const l of e){const i=(a=l.trendPassRates)!=null&&a.length?l.trendPassRates:[l.snapshotPassRate];r.push([l.id,X(l.id).name,(n=l.entityOwnerRef)!=null?n:"",...i])}return r}function Yp(e){const a=[];return a.push(Ge(["team_ref","team_name"],mt(e))),e!=null&&e.length&&e.map(n=>{var r,l;a.push([n.id,(r=n.groupTitle)!=null?r:X(n.id).name,...(l=n.trendPassRates)!=null?l:[n.snapshotPassRate]])}),a}function Xp(e,a,n){var r,l,i,o;return n?[(l=(r=n.find(({trackId:s})=>s===e.id))==null?void 0:r.campaignId)!=null?l:"",e.trackName,e.trackOwnerRef]:[e.id,e.trackName,e.trackOwnerRef,a.levelOrdinal,(i=a.levelName)!=null?i:`Level ${a.levelOrdinal}`,...(o=a.trendPassRates)!=null?o:[a.snapshotPassRate]]}function Kl(e,a){const n=[],r=e!=null&&e.length?Math.max(...e.map(i=>mt(i.levels))):0,l=a?["campaign_id","campaign_name","campaign_owner"]:["track_id","track_name","track_owner_ref","level_ordinal","level_name"];return n.push(Ge(l,r)),e!=null&&e.length&&e.map(i=>{var o;(o=i.levels)==null||o.map(s=>{n.push(Xp(i,s,a))})}),n}function Zp(e){var a,n,r;const l=[];return l.push(Ge(["name"],(n=(a=e==null?void 0:e.overallCheckPassRates)==null?void 0:a.length)!=null?n:0)),(r=e==null?void 0:e.overallCheckPassRates)!=null&&r.length&&l.push(["Check Pass Rate",...e.overallCheckPassRates]),l}function Jp(e){var a;const n=[];return n.push(Ge(["level_ordinal","level_name"],mt(e==null?void 0:e.overallTrackPassRate))),(a=e==null?void 0:e.overallTrackPassRate)!=null&&a.length&&e.overallTrackPassRate.map(r=>{var l;n.push([r.levelOrdinal,`Level ${r.levelOrdinal}`,...(l=r.trendPassRates)!=null?l:[r.snapshotPassRate]])}),n}function eg(e){var a;const n=[];return n.push(Ge(["entity_ref","entity_name"],mt(e==null?void 0:e.overallEntityPassRates))),(a=e==null?void 0:e.overallEntityPassRates)!=null&&a.length&&e.overallEntityPassRates.map(r=>{var l;n.push([r.id,X(r.id).name,...(l=r.trendPassRates)!=null?l:[0]])}),n}function tg(e){var a,n;const r=[];return r.push(Ge(["team_ref","team_name"],1)),(a=e==null?void 0:e.groupPassRates)!=null&&a.edges.length&&((n=e==null?void 0:e.groupPassRates)==null||n.edges.map(({node:l})=>{var i;r.push([l.id,(i=l.groupTitle)!=null?i:X(l.id).name,l.snapshotPassRate])})),r}const ag=R(e=>({chartHeader:{marginBottom:e.spacing(2)},overallSummaryBox:{display:"flex",flexDirection:"column",height:"100%",color:ke(e),textAlign:"center",gap:e.spacing(2)},percentage:{fontSize:e.typography.pxToRem(65),lineHeight:`${e.typography.pxToRem(88)}px`,fontWeight:"bold"},summaryText:{fontSize:e.typography.pxToRem(14),lineHeight:`${e.typography.pxToRem(14)}px`}})),ng=()=>{var e,a,n,r;const l=me(),i=ag(),{checkPassRateTrend:{data:o,isLoading:s,isError:c},checkPassRateSnapshot:{data:d}}=Be(),u=(a=(e=o==null?void 0:o.overallCheckPassRates)==null?void 0:e.length)!=null?a:0,m=Ae((n=o==null?void 0:o.overallCheckPassRates)!=null?n:[]),p=(r=d==null?void 0:d.overallCheckPassRates)==null?void 0:r[0];let g;p?g=`${p}%`:g="No Data";const E=t.createElement(S,{className:i.overallSummaryBox},t.createElement(Dr,{value:p!=null?p:0,text:g,styles:Fr({textColor:ke(l),pathColor:nt(l)[0],trailColor:l.palette.divider,textSize:u?void 0:8})}),t.createElement(b,{className:i.summaryText},"Current check pass rate")),f=!(o!=null&&o.overallCheckPassRates)||!u||s||c;return t.createElement(ha,{title:"Check pass rate",subtitle:"Aggregate pass rate for checks",summaryCardContent:E,chartSectionContent:t.createElement(Nt,{chartData:m}),disableDataExport:f,csvFilename:Zu,csvData:Zp(o)})},rg=()=>{var e;const{entityPassRatesOverviewTrends:{data:a,isLoading:n,isError:r}}=Be(),l=(e=a==null?void 0:a.overallEntityPassRates)==null?void 0:e.length,i=!(a!=null&&a.overallEntityPassRates)||!l||n||r;return t.createElement(ha,{title:"Entity pass rate",subtitle:"By default, this chart shows the top 5 entities by pass rate for all teams with which you are associated. To see a different set of entities, use the filters.",chartSectionContent:t.createElement(Gp,null),disableDataExport:i,csvFilename:ep,csvData:eg(a)})},lg=()=>{var e;const{groupPassRatesOverviewTrends:{data:a,isLoading:n,isError:r}}=Be(),l=(e=a==null?void 0:a.groupPassRates)==null?void 0:e.edges.length,i=!(a!=null&&a.groupPassRates)||!l||n||r;return t.createElement(ha,{title:"Team pass rate",subtitle:"Compare the aggregate pass rate for teams",chartSectionContent:t.createElement(Up,null),disableDataExport:i,csvFilename:tp,csvData:tg(a)})},ig=()=>{var e;const{trackPassRateOverviewTrend:{data:a,isLoading:n,isError:r}}=Be(),l=(e=a==null?void 0:a.overallTrackPassRate)==null?void 0:e.length,i=!(a!=null&&a.overallTrackPassRate)||!l||n||r;return t.createElement(ha,{title:"Track pass rate",subtitle:"Aggregate pass rate for tracks",summaryCardContent:t.createElement(_p,null),chartSectionContent:t.createElement(Mp,null),disableDataExport:i,csvFilename:Ju,csvData:Jp(a)})},og=z(e=>({root:{display:"flex",flexDirection:"column",gap:e.spacing(2),flex:1,background:e.palette.background.default}})),sg=()=>{const e=og();return t.createElement(S,{className:e.root},t.createElement($p,null,t.createElement(ng,null),t.createElement(ig,null),t.createElement(rg,null),t.createElement(lg,null)))},ue=z(e=>({root:{display:"flex",flexDirection:"column",flex:1,background:e.palette.background.default},ownerText:{fontWeight:500,color:e.palette.text.primary},flexColumn:{display:"flex",flexDirection:"column",gap:e.spacing(.5)},boldText:{fontWeight:"bold"},descriptionText:{maxWidth:400,color:e.palette.text.primary,fontSize:e.typography.subtitle2.fontSize,lineHeight:e.typography.subtitle1.fontSize},detailButton:{textTransform:"none",backgroundColor:"transparent",padding:0,textAlign:"left","&:hover":{textDecoration:"underline",transform:"scale(1)"}}})),fa=({name:e="",description:a=""})=>{const n=ue();return t.createElement(S,{className:n.flexColumn},t.createElement(b,{className:n.boldText},e),t.createElement(At,{className:n.descriptionText,content:a!=null?a:""}))},va=({navigateTo:e})=>{const a=ue(),n=be();return e?t.createElement(K,{variant:"text",className:a.detailButton,onClick:()=>n(e)},t.createElement(b,{className:a.ownerText},"View detail")):t.createElement(t.Fragment,null)},cg=e=>(e==null?void 0:e.kind)==="Group",dg=e=>(e==null?void 0:e.kind)==="User",mg=R(e=>({ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}},fontSize:e.typography.body1.fontSize}})),On=({ownerEntityRef:e})=>{var a,n;const{data:r,error:l}=io(e!=null?e:void 0),i=mg();if(r){let o;return cg(r)||dg(r)?o=(n=r.metadata.title)!=null?n:(a=r.spec.profile)==null?void 0:a.displayName:o=r.metadata.name,t.createElement(Ke,{entityRef:za(r),title:o,className:i.ownerLink})}else if(l&&e)return t.createElement(oe,{title:"Unable to pull owner reference from Catalog API"},t.createElement(b,{style:{color:"red"},variant:"body2"},(()=>{try{return X(e).name}catch{return e}})()));return null};var Te=(e=>(e[e.UP=0]="UP",e[e.DOWN=1]="DOWN",e[e.FLAT=2]="FLAT",e))(Te||{});const ug=R(e=>({cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0},listItemIcon:{marginRight:e.spacing(1),minWidth:0},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),pg=({ownerEntityRef:e,passRates:a})=>{const n=ug();return t.createElement(Mt,{dense:!0,disablePadding:!0,className:n.cardSection},t.createElement(b,{variant:"overline",color:"textSecondary"},"Details"),e&&t.createElement(Se,{disableGutters:!0,className:n.listItem},t.createElement(oe,{title:"Owner"},t.createElement(ce,{className:n.listItemIcon},t.createElement(yt,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:n.listItemText,primary:t.createElement(Ke,{className:n.ownerLink,entityRef:e!=null?e:"No Owner",hideIcon:!0})})),a.map(({name:r,value:l,trend:i},o)=>t.createElement(Se,{disableGutters:!0,className:n.listItem,key:o},t.createElement(oe,{title:"The most recent pass rate."},t.createElement(ce,{className:n.listItemIcon},i===Te.UP&&t.createElement(ps,{color:"inherit",fontSize:"small"}),i===Te.DOWN&&t.createElement(ms,{color:"inherit",fontSize:"small"}),i===Te.FLAT&&t.createElement(us,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:n.listItemText,primary:t.createElement(b,{variant:"body2",color:"textPrimary"},r!=null?r:"Latest Pass Rate",": ",t.createElement("b",null,Math.round(l),"%"))}))))},gg=z(e=>({root:{display:"flex",flexDirection:"column",width:"100%"},gridContainer:{flexGrow:1},cardContent:{display:"flex",flexDirection:"column",gap:e.spacing(1),height:"100%"},footer:{display:"flex",flexDirection:"column",gap:e.spacing(1),justifyContent:"end",marginTop:"auto"}})),Dt=({data:e})=>{const a=gg(),n=be(),[r,l]=T(0),[i,o]=T(10);B(()=>{l(0)},[e.length]);const s=(p,g)=>{l(g)},c=p=>{try{const g=Number.parseInt(p.target.value,10);o(g),l(0)}catch{}},d=r*i,u=d+i,m=[{dataKey:"passRate",name:"Pass rate"}];return t.createElement(S,{className:a.root},t.createElement(y,{container:!0,spacing:2,className:a.gridContainer},e.slice(d,u).map((p,g)=>{var E,f;return t.createElement(y,{item:!0,key:g,xs:12,sm:12,md:6,lg:4,xl:3},t.createElement(xt,{title:(E=p.name)!=null?E:p.id,description:p.description,children:t.createElement(S,{className:a.cardContent},t.createElement(S,{className:a.footer},t.createElement(pg,{ownerEntityRef:p.owner,passRates:p.lineChart.snapshotPassRates}),t.createElement(Pt,{data:p.lineChart.trendPassRates,lines:(f=p.lineChart.lineConfigs)!=null?f:m,height:150}))),handleView:()=>p.navigateTo?n(p.navigateTo):void 0}))})),t.createElement(Ia,{rowsPerPageOptions:[10,25,50],component:"div",count:e.length,rowsPerPage:i,page:r,onPageChange:s,onRowsPerPageChange:c,labelRowsPerPage:"Items per page:"}))},hg=z(e=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),Dn=({data:e,columns:a})=>{const n=hg(),[r,l]=T(0),[i,o]=T(10);B(()=>{l(0)},[e.length]);const s=(m,p)=>{l(p)},c=m=>{o(+m.target.value),l(0)},d=r*i,u=d+i;return t.createElement(Pe,{className:n.paper},t.createElement(Wn,{size:"small"},t.createElement(Vn,null,t.createElement(zt,null,a.map(m=>t.createElement(Ht,{key:`header-${m.id}`,className:n.tableHeaderCell},m.label)))),t.createElement(_n,null,e.slice(d,u).map(m=>t.createElement(zt,{key:m.id},a.map(p=>t.createElement(Ht,{key:`cell-${p.id}`},p.renderCell?p.renderCell(m):m[p.id])))))),t.createElement(Ia,{rowsPerPageOptions:[10,25,50],component:"div",count:e.length,rowsPerPage:i,page:r,onPageChange:s,onRowsPerPageChange:c}))};var fg=(e=>(e.Check="check",e.Track="track",e.Entity="entity",e.Group="group",e))(fg||{}),ee=(e=>(e[e.TABLE=0]="TABLE",e[e.GRID=1]="GRID",e))(ee||{});function Ea(e){if(!e||!e.length)return Te.FLAT;if(e.length===1)return e[0]>0?Te.UP:Te.FLAT;const a=e[e.length-1]-e[0];return a<0?Te.DOWN:a>0?Te.UP:Te.FLAT}function vg(e,a){return e.map(n=>{var r,l,i,o,s;return{id:n.id,name:(r=n.checkName)!=null?r:n.id,description:(l=n.checkDescription)!=null?l:void 0,lineChart:{snapshotPassRates:[{value:n.snapshotPassRate,trend:Ea((i=n.trendPassRates)!=null?i:[])}],trendPassRates:Ae((o=n.trendPassRates)!=null?o:[])},owner:(s=n.checkOwnerRef)!=null?s:void 0,navigateTo:a({checkId:n.id})}})}function Eg(e,a){return e.map(n=>{var r,l,i,o;return{id:n.id,name:X(n.id).name,description:(r=n.entityDescription)!=null?r:void 0,lineChart:{snapshotPassRates:[{value:n.snapshotPassRate,trend:Ea((l=n.trendPassRates)!=null?l:[])}],trendPassRates:Ae((i=n.trendPassRates)!=null?i:[])},owner:(o=n.entityOwnerRef)!=null?o:void 0,navigateTo:`${a(X(n.id))}/soundcheck`}})}function yg(e,a){return e.map(n=>{var r,l,i;return{id:n.id,name:(r=n.groupTitle)!=null?r:X(n.id).name,lineChart:{snapshotPassRates:[{value:n.snapshotPassRate,trend:Ea((l=n.trendPassRates)!=null?l:[])}],trendPassRates:Ae((i=n.trendPassRates)!=null?i:[])},navigateTo:a(X(n.id))}})}const Ul=(e,a,n,r)=>{var l;if(a)return a({trackId:e});if(n&&r){const i=(l=r.find(({trackId:o})=>o===e))==null?void 0:l.campaignId;if(i)return n({campaignId:i})}};function jl(e,a,n,r){return e.map(l=>{var i,o,s,c,d,u,m;return{id:l.id,name:(i=l.trackName)!=null?i:l.id,description:(o=l.trackDescription)!=null?o:void 0,lineChart:{snapshotPassRates:(c=(s=l.levels)==null?void 0:s.map(({levelOrdinal:p,levelName:g,snapshotPassRate:E,trendPassRates:f})=>({name:g?`Level ${p} (${g})`:`Level ${p}`,value:E,trend:Ea(f!=null?f:[])})))!=null?c:[],trendPassRates:Hl({overallTrackPassRate:l.levels}),lineConfigs:(u=(d=l.levels)==null?void 0:d.map(({levelOrdinal:p,levelName:g})=>({dataKey:`Level${p}`,name:g!=null?g:`Level ${p}`})))!=null?u:[]},owner:(m=l.trackOwnerRef)!=null?m:void 0,navigateTo:Ul(l.id,a,n,r)}})}const Cg=z(e=>({header:{padding:e.spacing(0,0,1),display:"flex"},headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},exportButton:{height:"40px",width:"112px"},csvLink:{display:"none"},menuIconSize:{minWidth:e.spacing(4),color:e.palette.text.primary},menuList:{backgroundColor:e.palette.background.paper,color:e.palette.text.primary}})),Ft=({viewMode:e,setViewMode:a,isLoading:n,searchTerm:r,setSearchTerm:l,searchPlaceholder:i,fetchCsvData:o,csvFilename:s})=>{const c=Cg(),d=_t(),u=(v,k)=>{k!==null&&a(k)},[m,p]=T(null),[g,E]=T([]),f=!!m,C=v=>{p(v.currentTarget)},x=()=>{p(null)},h=async()=>{p(null);const v=await o();E(v)};return B(()=>{var v;g.length&&((v=d==null?void 0:d.current)==null||v.link.click())},[g]),t.createElement(y,{container:!0,spacing:2,className:c.header},t.createElement(y,{item:!0,xs:6},t.createElement(rn,{searchTerm:r,setSearchTerm:l,disabled:n,placeholder:i||"Search",variant:"outlined",size:"small"})),t.createElement(y,{item:!0,xs:6,className:c.headerButtons},t.createElement(K,{id:"export-button",className:c.exportButton,disabled:n,variant:"contained",color:"primary","aria-controls":f?"export-menu":void 0,"aria-haspopup":"true","aria-expanded":f?"true":void 0,onClick:C,endIcon:t.createElement(fs,null)},"Export"),t.createElement(zr,{data:g,filename:s,className:c.csvLink,ref:d,target:"_blank"}),t.createElement($t,{id:"export-menu",anchorEl:m,getContentAnchorEl:null,open:f,onClose:x,MenuListProps:{"aria-labelledby":"export-button",disablePadding:!0,className:c.menuList},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},t.createElement(he,{onClick:h},t.createElement(ce,{color:"inherit",className:c.menuIconSize},t.createElement(hs,{fontSize:"small"})),t.createElement(de,null,"CSV"))),t.createElement(To,{size:"small",value:e,exclusive:!0,onChange:u},t.createElement(gr,{value:ee.TABLE,title:"Table view"},t.createElement(vs,{color:"inherit"})),t.createElement(gr,{value:ee.GRID,title:"Grid view"},t.createElement(gs,{color:"inherit"})))))},bg=({row:{trendPassRates:e,snapshotPassRate:a}})=>{const n=ue(),r=Ae(e!=null?e:[]);return t.createElement(S,{className:n.flexColumn},t.createElement(b,null,Math.round(a),"%"),t.createElement(Nt,{chartData:r,tableChart:!0}))},kg=(e,a,n)=>{const r=Math.min(5,a-e+1);return Array.from({length:r}).map((l,i)=>{const o=e+i;return{label:n?"PROGRESS":`LEVEL ${o}`,id:`levels-${i}`,renderCell:s=>{var c;const d=(c=s.levels)==null?void 0:c.find(({levelOrdinal:u})=>u===o);return d?t.createElement(bg,{row:d}):t.createElement(t.Fragment,null)}}})},ql=(e,a,n,r)=>{const l=e.flatMap(s=>{var c;return((c=s.levels)==null?void 0:c.map(d=>d.levelOrdinal))||[]}),i=Math.min(...l),o=Math.max(...l);return[{label:"NAME",id:"trackName",renderCell:s=>{var c;return t.createElement(fa,{name:(c=s.trackName)!=null?c:s.id,description:s.trackDescription})}},...kg(i,o,!!n),{label:"OWNER",id:"trackOwnerRef",renderCell:s=>{var c;return t.createElement(On,{ownerEntityRef:(c=s.trackOwnerRef)!=null?c:void 0})}},{label:"ACTION",id:"action",renderCell:({id:s})=>t.createElement(va,{navigateTo:Ul(s,a,n,r)})}]},xg=()=>{const e=ue(),{filter:a}=Ie(),n=ne(cr),{data:r,isLoading:l,isError:i}=Kr(a),{data:o,isLoading:s,isError:c}=Ur(a),[d,u]=T(ee.TABLE),[m,p]=T(""),g=Y(()=>{var h;return ql((h=r==null?void 0:r.individualTrackPassRate)!=null?h:[],n)},[r==null?void 0:r.individualTrackPassRate,n]),E=l||s;if(E)return t.createElement(Ne,null);if(i||c)return t.createElement(b,{color:"error"},"Failed to load tracks");const{individualTrackPassRate:f}=r;if(!f)return t.createElement(b,{color:"error"},"No available tracks");const C=m.length?f.filter(({id:h,trackName:v})=>{var k;return((k=v==null?void 0:v.toLowerCase())==null?void 0:k.includes(m.toLowerCase()))||h.toLowerCase().includes(m.toLowerCase())}):f;C.forEach(h=>{var v;const k=(v=o==null?void 0:o.individualTrackPassRate)==null?void 0:v.find(({id:w})=>w===h.id);k&&h.levels.forEach(w=>{var L,O;w.trendPassRates=(O=(L=k==null?void 0:k.levels)==null?void 0:L.find(({levelOrdinal:I})=>I===w.levelOrdinal))==null?void 0:O.trendPassRates})});const x=async()=>Kl(C);return t.createElement(S,{className:e.root},t.createElement(y,{container:!0,direction:"row"},t.createElement(Ft,{viewMode:d,setViewMode:u,isLoading:E,searchTerm:m,setSearchTerm:p,searchPlaceholder:"Search available tracks",fetchCsvData:x,csvFilename:np}),d===ee.TABLE&&t.createElement(Dn,{data:C,columns:g}),d===ee.GRID&&t.createElement(Dt,{data:jl(C,n)})))},wg=z(e=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),Ql=({data:e,totalCount:a,columns:n,rowsPerPage:r,page:l,onPageChange:i,onRowsPerPageChange:o})=>{const s=wg();return t.createElement(Pe,{className:s.paper},t.createElement(Wn,{size:"small"},t.createElement(Vn,null,t.createElement(zt,null,n.map(c=>t.createElement(Ht,{key:`header-${c.id}`,className:s.tableHeaderCell},c.label)))),t.createElement(_n,null,e.map(c=>t.createElement(zt,{key:c.id},n.map(d=>t.createElement(Ht,{key:`cell-${d.id}`},d.renderCell?d.renderCell(c):c[d.id])))))),t.createElement(Ia,{rowsPerPageOptions:[10,25,50],count:a,component:"div",rowsPerPage:r,page:l,onPageChange:i,onRowsPerPageChange:o}))},Fn=({snapshot:e})=>{const a=ue();return t.createElement(S,{className:a.flexColumn},t.createElement(b,null,Math.round(e),"%"))},Tg=({row:{trendPassRates:e}})=>{const a=ue(),n=Ae(e!=null?e:[]);return t.createElement(S,{className:a.flexColumn},t.createElement(Nt,{chartData:n,tableChart:!0}))};function Sg(e){return[{label:"NAME",id:"entityName",renderCell:({id:a,entityDescription:n})=>t.createElement(fa,{name:X(a).name,description:n})},{label:"LATEST",id:"latest",renderCell:a=>t.createElement(Fn,{snapshot:a.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:a=>t.createElement(Tg,{row:a})},{label:"OWNER",id:"entityOwnerRef",renderCell:({entityOwnerRef:a})=>t.createElement(On,{ownerEntityRef:a!=null?a:void 0})},{label:"ACTION",id:"action",renderCell:({id:a})=>t.createElement(va,{navigateTo:`${e(X(a))}/soundcheck`})}]}const Rg=()=>{var e,a,n;const r=ue(),l=D(A),{filter:i}=Ie(),o=ne(Ha),[s,c]=T([]),[d,u]=T(void 0),[m,p]=T(0),[g,E]=T(10),{data:f,isLoading:C,isError:x}=oo({filter:i,first:g,after:d}),{data:h,isLoading:v,isError:k}=Ws({filter:i,first:g,after:d}),[w,L]=T(f==null?void 0:f.individualEntityPassRates),O=w!=null&&w.edges?w==null?void 0:w.edges[(w==null?void 0:w.edges.length)-1]:{cursor:""};B(()=>{f&&L(()=>{var F,W;return{totalCount:f.individualEntityPassRates.totalCount,edges:f.individualEntityPassRates.edges,pageInfo:{endCursor:f.individualEntityPassRates.pageInfo.endCursor,hasNextPage:(F=f.individualEntityPassRates.pageInfo.hasNextPage)!=null?F:!1,hasPreviousPage:(W=f.individualEntityPassRates.pageInfo.hasPreviousPage)!=null?W:!1}}})},[f]);const[I,Q]=T(ee.TABLE),[j,re]=T("");if(C||v)return t.createElement(Ne,null);if(x||k)return t.createElement(b,{color:"error"},"Failed to load entities");if(!((e=w==null?void 0:w.edges)!=null&&e.length))return t.createElement(b,{color:"error"},"No available entities");(j.length?{...w,edges:w.edges.filter(({node:F})=>F.id.toLowerCase().includes(j.toLowerCase()))}:w).edges.forEach(({node:F})=>{var W;const _=(W=h==null?void 0:h.individualEntityPassRates)==null?void 0:W.edges.find(({node:ge})=>ge.id===F.id);_!=null&&_.node.trendPassRates&&(F.trendPassRates=_.node.trendPassRates)});const te=(a=w==null?void 0:w.edges.map(({node:F})=>F))!=null?a:[],ie=(n=w==null?void 0:w.totalCount)!=null?n:0,se=async()=>{const{individualEntityPassRates:F}=await l.getIndividualEntityPassRates({filter:{...i,numberOfDays:0}});if(F){const{individualEntityPassRates:W}=await l.getIndividualEntityPassRates({filter:i});return F==null||F.edges.forEach(({node:_})=>{const ge=W==null?void 0:W.edges.find(({node:xa})=>xa.id===_.id);ge!=null&&ge.node.trendPassRates&&(_.trendPassRates=ge.node.trendPassRates)}),Qp(F.edges.map(({node:_})=>_))}return[]},ae=()=>{c(F=>[...F,d]),u(O==null?void 0:O.cursor)},pe=()=>{u(s[s.length-1]),c(F=>F.slice(0,-1))},$=(F,W)=>{p(_=>(W>_?ae():pe(),W))},H=F=>{u(void 0),E(+F.target.value),p(0)};return t.createElement(S,{className:r.root},t.createElement(y,{container:!0,direction:"row"},t.createElement(Ft,{viewMode:I,setViewMode:Q,isLoading:C||v,searchTerm:j,setSearchTerm:re,searchPlaceholder:"Search available entities",fetchCsvData:se,csvFilename:rp}),I===ee.TABLE&&t.createElement(Ql,{data:te,totalCount:ie,page:m,rowsPerPage:g,columns:Sg(o),onPageChange:$,onRowsPerPageChange:H}),I===ee.GRID&&t.createElement(Dt,{data:Eg(te,o)})))},Pg=({row:{trendPassRates:e}})=>{const a=ue(),n=Ae(e!=null?e:[]);return n.length?t.createElement(S,{className:a.flexColumn},t.createElement(Nt,{chartData:n,tableChart:!0})):t.createElement(S,{className:a.flexColumn},t.createElement(b,null,"No data"))};function Ng(e){return[{label:"NAME",id:"groupName",renderCell:({groupTitle:a,id:n})=>t.createElement(fa,{name:a!=null?a:X(n).name})},{label:"LATEST",id:"latest",renderCell:a=>t.createElement(Fn,{snapshot:a.snapshotPassRate})},{label:"TREND",id:"trend",renderCell:a=>t.createElement(Pg,{row:a})},{label:"ACTION",id:"action",renderCell:({id:a})=>t.createElement(va,{navigateTo:e(X(a))})}]}const Lg=()=>{var e,a,n;const r=ue(),l=D(A),{filter:i}=Ie();i.context=void 0;const o=ne(Ha),[s,c]=T([]),[d,u]=T(void 0),[m,p]=T(0),[g,E]=T(10),{data:f,isLoading:C,isError:x}=_s({filter:i,first:g,after:d}),{data:h,isLoading:v,isError:k}=Ks({filter:i,first:g,after:d}),[w,L]=T(f==null?void 0:f.groupPassRates),O=w!=null&&w.edges?w==null?void 0:w.edges[(w==null?void 0:w.edges.length)-1]:{cursor:""};B(()=>{f&&L(()=>{var F,W;return{totalCount:f.groupPassRates.totalCount,edges:f.groupPassRates.edges,pageInfo:{endCursor:f.groupPassRates.pageInfo.endCursor,hasNextPage:(F=f.groupPassRates.pageInfo.hasNextPage)!=null?F:!1,hasPreviousPage:(W=f.groupPassRates.pageInfo.hasPreviousPage)!=null?W:!1}}})},[f]);const[I,Q]=T(ee.TABLE),[j,re]=T("");if(C||v)return t.createElement(Ne,null);if(x||k)return t.createElement(b,{color:"error"},"Failed to load groups");if(!((e=w==null?void 0:w.edges)!=null&&e.length))return t.createElement(b,{color:"error"},"No available groups");(j.length?{...w,edges:w.edges.filter(({node:F})=>{var W,_;return((_=(W=F.groupTitle)==null?void 0:W.toLowerCase())==null?void 0:_.includes(j.toLowerCase()))||F.id.toLowerCase().includes(j.toLowerCase())})}:w).edges.forEach(({node:F})=>{var W;const _=(W=h==null?void 0:h.groupPassRates)==null?void 0:W.edges.find(({node:ge})=>ge.id===F.id);_!=null&&_.node.trendPassRates&&(F.trendPassRates=_.node.trendPassRates)});const te=(a=w==null?void 0:w.edges.map(({node:F})=>F))!=null?a:[],ie=(n=w==null?void 0:w.totalCount)!=null?n:0,se=async()=>{const{groupPassRates:F}=await l.getIndividualGroupPassRates({filter:{...i,numberOfDays:0}});if(F){const{groupPassRates:W}=await l.getIndividualGroupPassRates({filter:i});return F==null||F.edges.forEach(({node:_})=>{const ge=W==null?void 0:W.edges.find(({node:xa})=>xa.id===_.id);ge!=null&&ge.node.trendPassRates&&(_.trendPassRates=ge.node.trendPassRates)}),Yp(F.edges.map(({node:_})=>_))}return[]},ae=()=>{c(F=>[...F,d]),u(O==null?void 0:O.cursor)},pe=()=>{u(s[s.length-1]),c(F=>F.slice(0,-1))},$=(F,W)=>{p(_=>(W>_?ae():pe(),W))},H=F=>{u(void 0),E(+F.target.value),p(0)};return t.createElement(S,{className:r.root},t.createElement(y,{container:!0,direction:"row"},t.createElement(Ft,{viewMode:I,setViewMode:Q,isLoading:C||v,searchTerm:j,setSearchTerm:re,searchPlaceholder:"Search available teams",csvFilename:lp,fetchCsvData:se}),I===ee.TABLE&&t.createElement(Ql,{data:te,totalCount:ie,page:m,rowsPerPage:g,columns:Ng(o),onPageChange:$,onRowsPerPageChange:H}),I===ee.GRID&&t.createElement(Dt,{data:yg(te,o)})))},Ig=()=>{const e=ue(),{filter:a}=Ie(),n=ne(nr),{data:r}=Jn({orderAlphabetical:"default",searchByStatus:"active"}),l=r==null?void 0:r.edges.map(L=>L.node),i=l==null?void 0:l.map(({id:L,track:O})=>({campaignId:L,trackId:O.id})),o=i==null?void 0:i.map(({trackId:L})=>({trackId:L})),{data:s,isLoading:c,isError:d}=Kr({...a,tracks:o,trackTypes:{included:["campaign"]}}),{data:u,isLoading:m,isError:p}=Ur({...a,tracks:o,trackTypes:{included:["campaign"]}}),[g,E]=T(ee.TABLE),[f,C]=T(""),x=Y(()=>{var L;return ql((L=s==null?void 0:s.individualTrackPassRate)!=null?L:[],void 0,n,i)},[s==null?void 0:s.individualTrackPassRate,n,i]),h=m||c;if(h)return t.createElement(Ne,null);if(p||d)return t.createElement(b,{color:"error"},"Failed to load campaign tracks");const{individualTrackPassRate:v}=s;if(!v)return t.createElement(b,{color:"error"},"No available campaign tracks");const k=f.length?v.filter(({id:L,trackName:O})=>{var I;return((I=O==null?void 0:O.toLowerCase())==null?void 0:I.includes(f.toLowerCase()))||L.toLowerCase().includes(f.toLowerCase())}):v;k.forEach(L=>{var O,I;const Q=(O=u==null?void 0:u.individualTrackPassRate)==null?void 0:O.find(({id:j})=>j===L.id);Q&&((I=L==null?void 0:L.levels)==null||I.forEach(j=>{var re,te;j.trendPassRates=(te=(re=Q==null?void 0:Q.levels)==null?void 0:re.find(({levelOrdinal:ie})=>ie===j.levelOrdinal))==null?void 0:te.trendPassRates}))});const w=async()=>Kl(k,i);return t.createElement(S,{className:e.root},t.createElement(y,{container:!0,direction:"row"},t.createElement(Ft,{viewMode:g,setViewMode:E,isLoading:h,searchTerm:f,setSearchTerm:C,searchPlaceholder:"Search available campaigns",fetchCsvData:w,csvFilename:ip}),g===ee.TABLE&&t.createElement(Dn,{data:k,columns:x}),g===ee.GRID&&t.createElement(Dt,{data:jl(k,void 0,n,i)})))},Og=({row:e})=>{var a;const n=ue(),r=Ae((a=e.trendPassRates)!=null?a:[]);return t.createElement(S,{className:n.flexColumn},t.createElement(Nt,{chartData:r,tableChart:!0}))};function Dg(e){return[{label:"NAME",id:"checkName",renderCell:a=>{var n;return t.createElement(fa,{name:(n=a.checkName)!=null?n:a.id,description:a.checkDescription})}},{label:"LATEST",id:"snapshotPassRate",renderCell:a=>t.createElement(Fn,{snapshot:a.snapshotPassRate})},{label:"TREND",id:"trendPassRate",renderCell:a=>t.createElement(Og,{row:a})},{label:"OWNER",id:"checkOwner",renderCell:a=>{var n;return t.createElement(On,{ownerEntityRef:(n=a.checkOwnerRef)!=null?n:void 0})}},{label:"ACTION",id:"action",renderCell:a=>t.createElement(va,{navigateTo:e({checkId:a.id})})}]}const Fg=()=>{const e=ue(),{filter:a}=Ie(),n=ne(or),{data:r,isLoading:l,isError:i}=Ms(a),{data:o,isLoading:s,isError:c}=Bs(a),[d,u]=T(ee.TABLE),[m,p]=T("");if(l||s)return t.createElement(Ne,null);if(i||c)return t.createElement(b,{color:"error"},"Failed to load checks");const{individualCheckPassRates:g}=r;if(!g)return t.createElement(b,{color:"error"},"No available checks");g.forEach(C=>{var x,h;C.trendPassRates=(h=(x=o==null?void 0:o.individualCheckPassRates)==null?void 0:x.find(v=>v.id===C.id))==null?void 0:h.trendPassRates});const E=m.length?g.filter(({id:C,checkName:x})=>{var h;return((h=x==null?void 0:x.toLowerCase())==null?void 0:h.includes(m.toLowerCase()))||C.toLowerCase().includes(m.toLowerCase())}):g,f=async()=>qp(E);return t.createElement(S,{className:e.root},t.createElement(y,{container:!0,direction:"row"},t.createElement(Ft,{viewMode:d,setViewMode:u,isLoading:l,searchTerm:m,setSearchTerm:p,searchPlaceholder:"Search available checks",fetchCsvData:f,csvFilename:ap}),d===ee.TABLE&&t.createElement(Dn,{data:E,columns:Dg(n)}),d===ee.GRID&&t.createElement(Dt,{data:vg(E,n)})))},Ag=R(e=>({container:{display:"flex",margin:"-24px",backgroundColor:e.palette.background.paper,borderTop:`1px solid ${e.palette.border}`,flex:1},fixedColumn:{width:"300px",flex:"none",borderRight:`1px solid ${e.palette.divider}`},flexibleColumn:{display:"flex",flexDirection:"column",flex:1,backgroundColor:e.palette.background.paper,height:"100%",maxWidth:"100%"},pageLayout:{display:"flex",flexDirection:"column",flex:"1 1 0%",backgroundColor:e.palette.background.default,"& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",borderTop:`1px solid ${e.palette.border}`,padding:`${e.spacing(3)}px !important`}}})),$g=()=>{const e=Ag(),a=D(pt),n=!a.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-campaigns")||a.isActive("soundcheck-enable-campaigns");return t.createElement(Tp,null,t.createElement("div",{className:e.container},t.createElement("div",{className:e.fixedColumn},t.createElement(Ap,null)),t.createElement("div",{className:e.flexibleColumn},t.createElement(S,{className:e.pageLayout},t.createElement(Zn,null,t.createElement(De,{path:"/*",element:t.createElement(le,null,t.createElement(le.Route,{title:"Summary",path:"/"},t.createElement(sg,null)),n&&t.createElement(le.Route,{title:"Campaigns",path:"/campaigns"},t.createElement(Ig,null)),t.createElement(le.Route,{title:"Checks",path:"/checks"},t.createElement(Fg,null)),t.createElement(le.Route,{title:"Tracks",path:"/tracks"},t.createElement(xg,null)),t.createElement(le.Route,{title:"Entities",path:"/entities"},t.createElement(Rg,null)),t.createElement(le.Route,{title:"Teams",path:"/teams"},t.createElement(Lg,null)))}))))))};function ya(e){const[a,n]=ht(),[r,l]=T([]);return B(()=>{const i=a.getAll(e);l(i)},[a,e]),[r,i=>{a.delete(e);for(const o of i)a.append(e,o);n(a),l(i)}]}const Ca={WHITE:"#ffffff",BRONZE:"#e07000",SILVER:"#cccccc",GOLD:"#ffc121"},An=[Ca.BRONZE,Ca.SILVER,Ca.GOLD],Mg={variant:dr.Medal,options:{level:0,color:""}},Bg=(e,a)=>{const n=An.slice(An.length-Math.min(a,An.length));return n.length<a&&n.unshift(...Array(a-n.length).fill(Ca.WHITE)),n[e-1]},Gg=(e,a)=>{if(e===0)return Mg;const n=a.levels.filter(r=>r.ordinal!==0).length;return{variant:dr.Medal,options:{level:e,color:Bg(e,n)}}},zg=(e,a=!0)=>{const n=D(A);return G([N.CertificationStatus,e],async()=>n.getCheckStatus(e),{enabled:a})},Hg=(e,a=!0)=>{const n=D(A);return G([N.CheckStatusHistory,e],async()=>n.getCheckStatusHistory(e),{enabled:a,staleTime:60*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},ut=(e,a)=>{if(isNaN(a))return"#ddd";const n=100;return a<n/3?Ir(e,Or.RED):a<n*(2/3)?e.palette.status.warning:Ir(e,Or.GREEN)},Wg=({data:e,lineConfig:a,color:n})=>{const r=me(),l=ke(r);return e.length?t.createElement(qa,{minHeight:100,debounce:1},t.createElement(ls,{data:e},t.createElement(bt,{vertical:!1,opacity:St}),t.createElement(rt,{dataKey:Tt,stroke:l,style:{fontSize:"0.7rem"}}),t.createElement(lt,{width:ua,domain:$e,stroke:l,style:{fontSize:"0.7rem"}}),t.createElement(is,{key:a.dataKey,dataKey:a.dataKey,name:a.name,stackId:"1",type:"monotone",stroke:n,strokeWidth:1.2,fill:n}))):t.createElement(Ml,null)},Vg=(e,a)=>{for(const n of e.levels)for(const r of n.checks)if(r.id===a.id)return r.name;return a.name?a.name:a.id},Yl=R(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"0.9rem",cursor:"default",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},headerRow:{display:"flex",padding:e.spacing(1,1),borderBottom:`1px solid ${e.palette.divider}`,width:"100%"},headerSection:{display:"flex",flexDirection:"column",gap:e.spacing(.5),flexGrow:1,width:"100%"},contentRow:{padding:e.spacing(1,1,0),display:"flex"},leftSection:{width:"75px",minWidth:"75px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"150px"},chartSkeletonSection:{flex:1,width:"100%",minWidth:"150px",padding:e.spacing(0,0,1,1)},overallSummaryBox:{display:"flex",flexDirection:"column",height:"100%",color:ke(e),textAlign:"center",gap:e.spacing(2)}})),_g=()=>{const e=Yl();return t.createElement(S,{className:e.contentRow},t.createElement(S,{className:e.leftSection},t.createElement(S,{className:e.summaryCard},t.createElement(Hr,{variant:"circle",height:75}))),t.createElement(S,{className:e.chartSkeletonSection},t.createElement(Hr,{variant:"rect",height:92})))};function Kg(e){if(!e)return[];const{checkStatusHistory:{history:a,numberOfEntities:n}}=e,r=je.utc();return a.map((l,i)=>({name:Ct(r,a.length-i-1),passRate:n?Math.round(l.passed/n*100):100}))}function Ug(e){if(!e)return 0;const{checkStatus:{passed:a,numberOfEntities:n}}=e;return n?Math.round(a/n*100):100}const jg=({check:e,track:a,lifecycles:n,owners:r,types:l,systems:i,isLoading:o})=>{var s,c,d;const u=Yl(),m=me();let p={};n!=null&&n.length&&(p["spec.lifecycle"]=n),r!=null&&r.length&&(p["relations.ownedBy"]=r),l!=null&&l.length&&(p["spec.type"]=l),i!=null&&i.length&&(p["relations.partOf"]=i),Object.keys(p).length===0&&(p=void 0);const{data:g,isLoading:E}=zg({checkId:e.id,trackId:a.id,filter:p},!o),{data:f,isLoading:C}=Hg({checkId:e.id,trackId:a.id,numberOfDays:30,filter:p},!o),x={dataKey:"passRate",name:"Pass rate"},h=(d=(c=(s=f==null?void 0:f.checkStatusHistory)==null?void 0:s.history)==null?void 0:c.length)!=null?d:0,v=Kg(f),k=Ug(g);let w;g?w=`${k}%`:w="No Data";const L=t.createElement(S,{className:u.overallSummaryBox},t.createElement(Dr,{value:k,text:w,styles:Fr({textColor:ke(m),pathColor:ut(m,k),trailColor:m.palette.divider,textSize:h?void 0:10})}));return t.createElement(Pe,{className:u.card,elevation:0},t.createElement(S,{className:u.headerRow},t.createElement(S,{className:u.headerSection},t.createElement(b,{className:u.title},Vg(a,e)))),C||E?t.createElement(_g,null):t.createElement(S,{className:u.contentRow},L&&t.createElement(S,{className:u.leftSection},t.createElement(S,{className:u.summaryCard},L)),t.createElement(S,{className:u.chartSection},t.createElement(Wg,{data:v,lineConfig:x,color:ut(m,k)}))))},qg=R(()=>({root:{display:"flex"},boldCaption:{fontWeight:"bold"}})),Qg=({ordinal:e,name:a,description:n})=>{const r=qg();return t.createElement("div",{className:r.root},t.createElement("div",null,a?t.createElement(t.Fragment,null,t.createElement("div",null,t.createElement(b,{variant:"caption",className:r.boldCaption},a)),t.createElement("div",null,t.createElement(b,{variant:"caption"},`Level ${e}`))):t.createElement(b,{variant:"caption",className:r.boldCaption},`Level ${e}`),n&&t.createElement(At,{content:n})))},Yg=({children:e,level:a})=>{const{ordinal:n,name:r,description:l}=a;return t.createElement(so,{arrow:!0,title:t.createElement(Qg,{ordinal:n,name:r!=null?r:void 0,description:l!=null?l:void 0}),enterDelay:500,placement:"bottom"},e)},Xg=(e,a)=>{var n;if(!((n=e==null?void 0:e.certificationStatus)!=null&&n.numberOfEntities)||a===void 0)return;const r=e.certificationStatus.statusByLevel.findIndex(o=>o.ordinal===a);if(r===-1)return;const l=e.certificationStatus.numberOfEntities,i=[];for(const o of e.certificationStatus.statusByLevel){const s=o.cumulativelyPassed;i.push(l?Math.round(s/l*100):100)}for(let o=i.length-2;o>=0;o--)i[o]=Math.min(i[o]+i[o+1],100);return i[r]},Zg=z(e=>({card:{border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"1.1rem",cursor:"default"},header:{borderBottom:`1px solid ${e.palette.divider}`,width:"100%",padding:e.spacing(1,2),margin:0},levelNameContainer:{gridGap:e.spacing(1),width:"fit-content",padding:0},passRate:{fontWeight:"bold",fontSize:e.typography.overline.fontSize,cursor:"default"},gaugeContainer:{width:200,paddingLeft:e.spacing(.75),paddingRight:e.spacing(.75),paddingTop:2},content:{padding:e.spacing(2.5,2),display:"flex",gap:e.spacing(2)},description:{padding:0},gridItem:{padding:0}})),Jg=({track:e,level:a,index:n,data:r,lifecycles:l,owners:i,types:o,systems:s,isLoading:c})=>{var d,u;const m=Zg(),p=nt(me()),g=Xg(r,a.ordinal),E=g!==void 0?`${g}%`:"";return t.createElement(Pe,{elevation:1,className:m.card},t.createElement(y,{container:!0,alignItems:"center",justifyContent:"space-between",direction:"row",className:m.header},t.createElement(y,{item:!0,container:!0,alignItems:"center",direction:"row",className:m.levelNameContainer},t.createElement(ar,{badge:(d=a.badge)!=null?d:Gg(a.ordinal,e)}),t.createElement(Yg,{level:a},t.createElement(b,{className:m.title},(u=a.name)!=null?u:`Level ${a.ordinal}`))),t.createElement(y,{item:!0,className:m.gridItem},t.createElement(y,{container:!0,item:!0,className:m.gridItem},t.createElement(b,{variant:"overline",className:m.passRate},E),t.createElement("div",{className:m.gaugeContainer},t.createElement(ti,{value:(g!=null?g:0)/100,getColor:f=>p[n]}))))),t.createElement(S,{className:m.content},t.createElement(y,{container:!0,spacing:1},a.checks.map(f=>t.createElement(y,{item:!0,xs:12,sm:6,md:4,className:m.gridItem,key:f.id},t.createElement(jg,{track:e,check:f,lifecycles:l,owners:i,types:o,systems:s,isLoading:c}))))))},eh=Ra(e=>({root:{color:e.palette.text.primary,paddingLeft:e.spacing(1),paddingRight:e.spacing(1),textTransform:"initial"}}))(K),th=R(e=>({root:{borderBottom:`1px solid ${e.palette.grey.A100}`,padding:e.spacing(1.5)},popper:{width:300,height:400,overflow:"hidden"},paper:{boxShadow:"none",margin:0},popperDisablePortal:{width:"100% !important"},option:{padding:e.spacing(.5),'&[data-selected="true"]':{background:"inherit"}},chips:{display:"flex",flexWrap:"wrap"},chip:{margin:1},listbox:{margin:1,height:320}})),ba=({name:e,options:a,label:n,icon:r,filters:l,setFilters:i,disabled:o,customRenderOption:s})=>{const c=th(),[d,u]=T(null),m=C=>{u(C.currentTarget)},p=()=>{u(null)},g=(C,x)=>{i(x)},E=C=>t.createElement(J,{...C,name:"filter",variant:"outlined",placeholder:"Filter",fullWidth:!0}),f=(C,{selected:x})=>t.createElement(t.Fragment,null,t.createElement(Re,{value:C,checked:x,color:"primary"}),C);return t.createElement(t.Fragment,null,t.createElement(eh,{startIcon:r,endIcon:t.createElement(ja,null),onClick:m,disabled:o},n),t.createElement(wi,{id:`${n}-filter-popover`,open:!!d,anchorEl:d,onClose:p,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{elevation:2,className:c.popper}},t.createElement(jt,{multiple:!0,disablePortal:!0,classes:{root:c.root,paper:c.paper,popperDisablePortal:c.popperDisablePortal,option:c.option,listbox:c.listbox},renderOption:s!=null?s:f,id:`multi-select-filter-${e}--select`,value:l,options:a,limitTags:3,onChange:g,getOptionSelected:(C,x)=>C.toLowerCase()===x.toLowerCase(),renderInput:E,renderTags:()=>null,closeIcon:null,popupIcon:null,handleHomeEndKeys:!0,clearOnEscape:!0,open:!0})))},ah=R(e=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(2)}})),Xl=(e,{selected:a})=>t.createElement(t.Fragment,null,t.createElement(Re,{value:e,checked:a,color:"primary"}),t.createElement(Oo,{entityRef:e,hideIcon:!0})),nh=({track:e,label:a,owners:n,setOwners:r,lifecycles:l,setLifecycles:i,types:o,setTypes:s,systems:c,setSystems:d})=>{const u=ah(),m=Wi(e.filter),{data:p,isLoading:g}=Le("relations.ownedBy",m),{data:E,isLoading:f}=Le("spec.lifecycle",m),{data:C,isLoading:x}=Le("spec.type",m),{data:h,isLoading:v}=Le("relations.partOf",m),k=Y(()=>h==null?void 0:h.filter(I=>{try{return X(I).kind.toLowerCase()==="system"}catch{return!1}}),[h]),w=(E||[]).length<=1,L=(C||[]).length<=1,O=(k||[]).length<=1;return t.createElement("div",{className:u.root},t.createElement(b,{variant:"caption"},`${a}:`),t.createElement(ba,{name:"system",label:"System",icon:t.createElement(Es,null),filters:c,setFilters:d,options:k!=null?k:[],disabled:v||O,customRenderOption:Xl}),t.createElement(ba,{name:"owner",label:"Owner",icon:t.createElement(yt,null),filters:n,setFilters:r,options:p!=null?p:[],disabled:g,customRenderOption:Xl}),t.createElement(ba,{name:"type",label:"Type",icon:t.createElement(ys,null),filters:o,setFilters:s,options:C!=null?C:[],disabled:x||L}),t.createElement(ba,{name:"lifecycle",label:"Lifecycle",icon:t.createElement(Cs,null),filters:l,setFilters:i,options:E!=null?E:[],disabled:f||w}))};function rh(e){const a=D(A);return G([N.TrackEntities,e],async()=>a.getTrackEntities(e),{refetchOnWindowFocus:!1})}const lh=R(e=>{const a=e.palette.background.paper;return{popoverRoot:{backgroundColor:a,maxWidth:1e3},content:{padding:e.spacing(2)},popper:{zIndex:2e3,'&[x-placement*="bottom"] $arrow':{top:0,left:0,marginTop:"-0.71em",marginLeft:4,marginRight:4,"&::before":{transformOrigin:"0 100%"}},'&[x-placement*="top"] $arrow':{bottom:0,left:0,marginBottom:"-0.71em",marginLeft:4,marginRight:4,"&::before":{transformOrigin:"100% 0"}},'&[x-placement*="right"] $arrow':{left:0,marginLeft:"-0.71em",height:"1em",width:"0.71em",marginTop:4,marginBottom:4,"&::before":{transformOrigin:"100% 100%"}},'&[x-placement*="left"] $arrow':{right:0,marginRight:"-0.71em",height:"1em",width:"0.71em",marginTop:4,marginBottom:4,"&::before":{transformOrigin:"0 0"}}},arrow:{overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:a,"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",boxShadow:e.shadows[1],backgroundColor:"currentColor",transform:"rotate(45deg)"}}}}),ih=({placement:e="top",arrow:a=!0,open:n,onClose:r=()=>{},content:l,children:i})=>{const o=lh(),[s,c]=t.useState(null),[d,u]=t.useState(null);return t.createElement("div",{"data-testid":"rich-tooltip"},t.cloneElement(i,{...i.props,ref:u}),t.createElement(Ti,{open:n,anchorEl:d,placement:e,transition:!0,className:o.popper,modifiers:{preventOverflow:{enabled:!0,boundariesElement:"window"},arrow:{enabled:a,element:s}}},({TransitionProps:m})=>t.createElement(Si,{...m,timeout:350},t.createElement(Pe,{elevation:3},t.createElement(Ri,{onClickAway:r},t.createElement(Pe,{className:o.popoverRoot},a?t.createElement("span",{className:o.arrow,ref:c}):null,t.createElement(S,{className:o.content},l)))))))},Zl=e=>{const a=e.passed+e.failed+e.warning+e.notReported;return a===0?100:Math.round(e.passed/a*100)},oh=(e,a)=>e.levels.find(n=>n.ordinal===a),sh=R(e=>({cell:{backgroundColor:({passRate:a})=>Kn(ut(e,a),.75),color:({passRate:a})=>Un(ut(e,a),.7),cursor:"default",borderRadius:"4px",textAlign:"center",fontSize:".9rem",width:"50px"},tooltip:{width:"225px"},topLevelStatus:{borderBottom:`1px solid ${e.palette.divider}`,paddingBottom:e.spacing(1)},levelStatus:{borderBottom:`1px solid ${e.palette.divider}`,paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},bottomLevelStatus:{paddingTop:e.spacing(1)},levelPassRate:{backgroundColor:({passRate:a})=>Kn(ut(e,a),.75),color:({passRate:a})=>Un(ut(e,a),.7),borderRadius:"4px",textAlign:"center",fontSize:".7rem",width:"32px",height:"15px"}})),ch=({track:e,status:a})=>{const n=Zl(a),r=sh({passRate:n}),[l,i]=T(!1),o=_t(null),s=()=>{o.current=setTimeout(()=>i(!0),500)},c=()=>{clearTimeout(o.current),i(!1)};return t.createElement(ih,{content:t.createElement("div",{className:r.tooltip},a.statusByLevel.map((d,u)=>{var m;let p;u===0?p=r.topLevelStatus:u===a.statusByLevel.length-1?p=r.bottomLevelStatus:p=r.levelStatus;const g=d.passed+d.failed+d.warning+d.notReported,E=oh(e,d.ordinal);return t.createElement("div",{key:u,className:p,style:{display:"flex",flexDirection:"column",justifyContent:"space-between"}},t.createElement("div",null,t.createElement(b,{variant:"caption",style:{fontWeight:"bold"}},(m=E==null?void 0:E.name)!=null?m:`Level ${d.ordinal}`)),t.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},t.createElement(b,{variant:"caption"},`Passing ${d.passed} of ${g} checks`),t.createElement(b,{className:r.levelPassRate},`${Zl(d)}%`)))})),open:l,placement:"bottom",onClose:()=>i(!1)},t.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},onMouseEnter:s,onMouseLeave:c},t.createElement(b,{className:r.cell},`${n}%`)))},Ze=Object.freeze({createBadgeColumn(){return{title:"",field:"badge",render:e=>e.badge?t.createElement(ar,{badge:e.badge}):t.createElement(po,null),width:"auto",align:"center",sorting:!1}},createStatusColumn(){return{title:"Checks",field:"status",render:e=>e.status&&t.createElement(ch,{track:e.track,status:e.status}),width:"auto",align:"center",sorting:!1}},createNameColumn(e){return{title:"Name",field:"resolved.entityRef",highlight:!0,customSort(a,n){return 0},render:({entity:a})=>t.createElement(Ke,{entityRef:a,defaultKind:(e==null?void 0:e.defaultKind)||"Component"})}},createSystemColumn(){return{title:"System",field:"resolved.partOfSystemRelationTitle",customSort(e,a){return 0},render:({resolved:e})=>t.createElement(fr,{entityRefs:e.partOfSystemRelations,defaultKind:"system"})}},createOwnerColumn(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",customSort(e,a){return 0},render:({resolved:e})=>t.createElement(fr,{entityRefs:e.ownedByRelations,defaultKind:"group"})}},createSpecTypeColumn(){return{title:"Type",field:"entity.spec.type",customSort(e,a){return 0}}},createSpecLifecycleColumn(){return{title:"Lifecycle",field:"entity.spec.lifecycle",customSort(e,a){return 0},width:"auto"}},createMetadataDescriptionColumn(){return{title:"Description",field:"entity.metadata.description",customSort(e,a){return 0},render:({entity:e})=>t.createElement(ai,{text:e.metadata.description,placement:"bottom-start"}),width:"auto"}},createTagsColumn(){return{title:"Tags",field:"entity.metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:e})=>t.createElement(t.Fragment,null,e.metadata.tags&&e.metadata.tags.map(a=>t.createElement(Oe,{key:a,label:a,size:"small",variant:"outlined",style:{marginBottom:"0px"}}))),width:"auto",sorting:!1}},createTitleColumn(e){return{title:"Title",field:"entity.metadata.title",customSort(a,n){return 0},hidden:e==null?void 0:e.hidden,searchable:!0}},createLabelColumn(e,a){return{title:(a==null?void 0:a.title)||"Label",field:"entity.metadata.labels",customSort(n,r){return 0},cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:n})=>{var r;const l=(r=n.metadata)==null?void 0:r.labels,i=l&&l[e]||(a==null?void 0:a.defaultValue);return t.createElement(t.Fragment,null,i&&t.createElement(Oe,{key:i,label:i,size:"small",variant:"outlined"}))},width:"auto",sorting:!1}},createNamespaceColumn(){return{title:"Namespace",field:"entity.metadata.namespace",customSort(e,a){return 0},width:"auto"}}});function dh(e){var a;const{trackDetails:n,track:r,entity:l}=e,i=vr(l,ko,{kind:"system"}),o=vr(l,xo),s=za(l);return{id:s,entity:l,badge:(a=n.badge)!=null?a:void 0,track:r,status:n.status,resolved:{name:Qt(l,{defaultKind:"Component"}),entityRef:s,ownedByRelationsTitle:o.map(c=>Qt(c,{defaultKind:"group"})).join(", "),ownedByRelations:o,partOfSystemRelationTitle:i.map(c=>Qt(c,{defaultKind:"system"})).join(", "),partOfSystemRelations:i}}}const mh=[Ze.createBadgeColumn(),Ze.createNameColumn(),Ze.createStatusColumn(),Ze.createSystemColumn(),Ze.createOwnerColumn(),Ze.createSpecTypeColumn(),Ze.createSpecLifecycleColumn()],uh=[_e.CertificationLevel,_e.Name,_e.CheckPassRate,_e.System,_e.Owner,_e.Type,_e.Lifecycle],Jl=e=>{const{lifecycles:a,owners:n,types:r,systems:l}=e,i=a!=null&&a.length?{"spec.lifecycle":a}:void 0,o=n!=null&&n.length?{"relations.ownedBy":n}:void 0,s=r!=null&&r.length?{"spec.type":r}:void 0,c=l!=null&&l.length?{"relations.partOf":l}:void 0;return{...i,...o,...s,...c}},ph=R({tableContainer:{display:"flex",flexDirection:"column",height:"100%",width:"99%"}}),gh=({track:e,lifecycles:a,owners:n,types:r,systems:l})=>{var i,o,s;const c=ph(),[d,u]=T({orderBy:void 0,filter:Jl({lifecycles:a,owners:n,types:r,systems:l}),pageInfo:{page:0,pageSize:25,direction:"forward",cursor:null}});B(()=>{u(v=>({...v,pageInfo:{...v.pageInfo,page:0,cursor:null},filter:Jl({lifecycles:a,owners:n,types:r,systems:l})}))},[a,n,r,l]);const{data:m,isLoading:p}=rh({trackId:e.id,orderBy:d.orderBy,filter:d.filter,[d.pageInfo.direction==="forward"?"first":"last"]:d.pageInfo.pageSize,[d.pageInfo.direction==="forward"?"after":"before"]:d.pageInfo.cursor}),g=U((v,k)=>{let w;v===-1?w=void 0:w={field:uh[v],direction:k==="asc"?mr.Asc:mr.Desc},u({...d,orderBy:w,pageInfo:{...d.pageInfo,page:0,cursor:null}})},[d]),E=U((v,k)=>{var w,L;const O=v>d.pageInfo.page?"forward":"backward",I=O==="forward"?(w=m==null?void 0:m.trackEntities.pageInfo.endCursor)!=null?w:null:(L=m==null?void 0:m.trackEntities.pageInfo.startCursor)!=null?L:null;u({...d,pageInfo:{page:v,pageSize:k,direction:O,cursor:I}})},[m,d]),f=(i=m==null?void 0:m.trackEntities.edges.map(v=>v.node.entityRef))!=null?i:[],{data:C,isLoading:x}=Us({entityRefs:f}),h=(o=Ue.compact(m==null?void 0:m.trackEntities.edges.map(v=>{const k=C==null?void 0:C.items.find(w=>!!w&&za(w)===v.node.entityRef);return k?dh({trackDetails:v.node,track:e,entity:k}):void 0})))!=null?o:[];return t.createElement("div",{className:c.tableContainer},t.createElement(Mn,{columns:mh,data:h,options:{paging:!0,showFirstLastPageButtons:!1,paginationPosition:"both",emptyRowsWhenPaging:!1,pageSizeOptions:[10,25,50],pageSize:25,search:!1,showTitle:!1},onOrderChange:g,onPageChange:E,page:d.pageInfo.page,totalCount:(s=m==null?void 0:m.trackEntities.totalCount)!=null?s:0,isLoading:p||x,components:{Toolbar:()=>null}}))},hh=e=>{var a;const n=(a=e==null?void 0:e.certificationStatusHistory.history)!=null?a:[],r=e==null?void 0:e.certificationStatusHistory.numberOfEntities,l=je.utc();return Ue.map(n,(i,o)=>{let s={name:Ct(l,n.length-o-1)};const c=[];for(const d of i.statusByLevel){const u=d.cumulativelyPassed;c.push(r?Math.round(u/r*100):100)}for(let d=c.length-2;d>=0;d--)c[d]=Math.min(c[d]+c[d+1],100);return i.statusByLevel.forEach((d,u)=>{s={...s,[`Level ${d.ordinal}`]:c[u]}}),s})},fh=({track:e,data:a,isError:n})=>{var r;if(n)return t.createElement(b,{color:"error"},"Failed to load track data.");const l=hh(a),i=a!=null&&a.certificationStatusHistory?(r=e==null?void 0:e.levels.map(o=>({dataKey:`Level ${o.ordinal}`,name:`Level ${o.ordinal}`})))!=null?r:[]:[];return t.createElement(Pt,{data:l,lines:i})},vh=(e,a)=>{var n;if(!a)return[];const r=[],l=a.numberOfEntities;for(const o of a.statusByLevel){const s=o.cumulativelyPassed;r.push(l?Math.round(s/l*100):100)}for(let o=r.length-2;o>=0;o--)r[o]=Math.min(r[o]+r[o+1],100);const i=nt(e);return(n=a.statusByLevel.map(({ordinal:o},s)=>({name:`Level ${o}`,passRate:r[s],fill:i[s%i.length]})))!=null?n:[]},Eh=({data:e,isLoading:a})=>{const n=me();return t.createElement(t.Fragment,null,!a&&e&&t.createElement("div",null,t.createElement(Rt,null,t.createElement(In,{data:vh(n,e.certificationStatus),layout:It.Horizontal}))))},yh=R(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${e.typography.h5.fontSize}px`,cursor:"default"},header:{display:"flex",padding:e.spacing(1,1),borderBottom:`1px solid ${e.palette.divider}`,flexDirection:"column",gap:e.spacing(.5)},content:{padding:e.spacing(1,1,0),display:"flex",margin:e.spacing(1),gap:e.spacing(1)},leftSection:{width:"225px",minWidth:"225px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"150px"}})),Ch=({track:e,status:a,history:n,isLoading:r,isError:l})=>{const i=yh();return t.createElement(Pe,{className:i.card},t.createElement(S,{className:i.header},!r&&e&&t.createElement(b,{className:i.title},"Track Progress")),t.createElement(S,{className:i.content},t.createElement(S,{className:i.leftSection},t.createElement(S,{className:i.summaryCard},t.createElement(Eh,{data:a,isLoading:r}))),t.createElement(S,{className:i.chartSection},t.createElement(fh,{track:e,data:n,isError:l}))))},bh=R(e=>({root:{height:"100%",background:e.palette.background.default},header:{backgroundColor:e.palette.background.paper,borderRadius:0},trackProgressContainer:{margin:e.spacing(2,0,2,2)},trackContainerContent:{padding:e.spacing(2,2,1),backgroundColor:e.palette.background.paper},levelCard:{margin:e.spacing(1,0,2)},editButton:{marginLeft:"auto"},tabsContainer:{margin:e.spacing(1,0,1,2)},filterBar:{marginTop:e.spacing(1)},trackEntitiesContainer:{marginTop:e.spacing(1)}}));function ei({children:e,value:a,index:n}){return t.createElement("div",{hidden:a!==n},a===n&&e)}const kh=()=>{var e,a,n,r;const l=bh(),[i,o]=T(0),[s,c]=ya("owners"),[d,u]=ya("lifecycles"),[m,p]=ya("types"),[g,E]=ya("systems"),f=($,H)=>{o(H)},{trackId:C}=et(),{data:x,isLoading:h,isError:v}=ea({ids:[C!=null?C:""],first:1}),k=(a=(e=x==null?void 0:x.edges)==null?void 0:e[0])==null?void 0:a.node,{data:w,isLoading:L,isError:O}=As({trackId:C,filter:{"spec.lifecycle":d!=null&&d.length?d:void 0,"relations.ownedBy":s!=null&&s.length?s:void 0,"spec.type":m!=null&&m.length?m:void 0,"relations.partOf":g!=null&&g.length?g:void 0}},!h&&!!x),{data:I,isLoading:Q,isError:j}=$s({trackId:C,filter:{"spec.lifecycle":d!=null&&d.length?d:void 0,"relations.ownedBy":s!=null&&s.length?s:void 0,"spec.type":m!=null&&m.length?m:void 0,"relations.partOf":g!=null&&g.length?g:void 0},numberOfDays:30},!h&&!!x),{loading:re,allowed:te}=Z({permission:Xn,resourceRef:C}),{loading:ie,allowed:se}=Z({permission:Yn,resourceRef:C}),ae=be(),pe=ne(bo);return t.createElement("div",null,t.createElement(sa,{entityName:"track",entityId:C,showNotFound:!h&&!k,showCannotView:!re&&!te}),h&&t.createElement(vt,null),k&&t.createElement("div",{className:l.root},t.createElement(Pe,{elevation:3,className:l.header},t.createElement("div",{className:l.trackContainerContent},t.createElement("div",{style:{display:"flex",alignItems:"center"}},t.createElement("div",null,t.createElement(b,{variant:"h5"},k.name),t.createElement(Ke,{entityRef:k.ownerEntityRef})),!ie&&se&&k.isEditable&&t.createElement(K,{className:l.editButton,variant:"contained",color:"primary",onClick:()=>{ae(pe({trackId:k.id}))}},"Edit Track")),t.createElement(At,{content:(n=k.description)!=null?n:""}),t.createElement(He,null),t.createElement("div",{className:l.filterBar},t.createElement(nh,{label:"Filter",track:k,owners:s,setOwners:c,lifecycles:d,setLifecycles:u,types:m,setTypes:p,systems:g,setSystems:E})))),t.createElement("div",{className:l.trackProgressContainer},t.createElement(Ch,{track:k,status:w,history:I,isLoading:h||L||Q,isError:v||O||j})),t.createElement("div",{className:l.tabsContainer},t.createElement(La,{value:i,onChange:f},t.createElement(We,{label:"Levels"}),t.createElement(We,{label:"Entities"})),t.createElement(ei,{value:i,index:0},k&&((r=k.levels)==null?void 0:r.map(($,H)=>t.createElement("div",{className:l.levelCard,key:$.ordinal},t.createElement(Jg,{track:k,level:$,index:H,data:w,isLoading:h||L,lifecycles:d,owners:s,types:m,systems:g}))))),t.createElement(ei,{value:i,index:1},k&&t.createElement("div",{className:l.trackEntitiesContainer},t.createElement(gh,{track:k,lifecycles:d,owners:s,types:m,systems:g}))))))},xh=()=>{const{setIsLoading:e,setShowAddModal:a,showAddModal:n}=Fe(),{mutateAsync:r,isLoading:l}=_r();return B(()=>{e(l)},[e,l]),t.createElement(Ol,{handleClose:()=>a(!1),title:"Create Track",open:n,onSave:async i=>{await r(i,{onSuccess:()=>a(!1)})}})};function wh(){const e=D(A);return G([N.GetTrackOwners],async()=>e.getTrackOwners(),{refetchInterval:!1,refetchOnWindowFocus:!1})}var ka=(e=>(e.title="Create a track",e.description="A track is composed of levels and checks, and encourages alignment to architectural best practices and standards.",e.callToAction="Get started",e))(ka||{}),$n=(e=>(e.title="No tracks found",e.description="No tracks matched your search. Consider changing search term and filters.",e))($n||{});const Th=()=>t.createElement(y,{item:!0,container:!0,"data-testid":"tracks-skeleton"},Array.from({length:6},(e,a)=>t.createElement(y,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(Ut,{variant:"rect",height:385})))),Sh="Error Deleting Track";function Rh(){const e=D(A),a=Ee(),{showAlert:n}=fe(),r=async l=>{const i=await e.deleteProgram(l);if(!i)throw new Error(`Failed to delete track ${l}`);return i};return ye([ve.DeleteProgram],r,{onSuccess:()=>{const l=[N.GetAllPrograms,N.GetOverallTrackPassRateSnapshots,N.GetOverallTrackPassRateTrends,N.GetIndividualTrackPassRateSnapshots,N.GetIndividualTrackPassRateTrends,N.GetTrackOwners];for(const i of l)a.invalidateQueries({queryKey:[i]})},onError:(l,i)=>{let o=`Failed to delete track ${i}`;l instanceof Error&&(o=l.message),n({severity:"error",title:Sh,message:o})}})}const Ph=R(e=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0},iconContainer:{minWidth:"auto",paddingRight:e.spacing(1)},ownerLink:{"& span":{"&:hover":{textDecoration:"underline"}}}})),Nh=({track:e})=>{var a,n,r;const l=Ph(),i=(n=(a=e.levels)==null?void 0:a.length)!=null?n:0,o=(r=e.levels)==null?void 0:r.reduce((s,c)=>s+c.checks.length,0);return t.createElement(Mt,{dense:!0,disablePadding:!0,className:l.cardSection},t.createElement(b,{variant:"overline",color:"textSecondary"},"Track Details"),t.createElement(Se,{disableGutters:!0,className:l.listItem},t.createElement(oe,{title:"Levels"},t.createElement(ce,{className:l.iconContainer},t.createElement(ks,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:l.listItemText,primary:t.createElement(b,{variant:"body2",color:"textPrimary"},`${i} ${i===1?"Level":"Levels"}`)})),t.createElement(Se,{disableGutters:!0,className:l.listItem},t.createElement(oe,{title:"Checks"},t.createElement(ce,{className:l.iconContainer},t.createElement(bs,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:l.listItemText,primary:t.createElement(b,{variant:"body2",color:"textPrimary"},`${o} ${o===1?"Check":"Checks"}`)})),e.documentationURL&&t.createElement(Se,{disableGutters:!0,className:l.listItem},t.createElement(oe,{title:"Documentation"},t.createElement(ce,{className:l.iconContainer},t.createElement(xs,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:l.listItemText,primary:t.createElement(Ta,{to:e.documentationURL,target:"_blank",rel:"noopener noreferrer"},"Learn more")})),t.createElement(Se,{disableGutters:!0,className:l.listItem},t.createElement(oe,{title:"Owner"},t.createElement(ce,{className:l.iconContainer},t.createElement(yt,{color:"inherit",fontSize:"small"}))),t.createElement(de,{className:l.listItemText,primary:t.createElement(Ke,{entityRef:e.ownerEntityRef,hideIcon:!0,underline:"hover",className:l.ownerLink})})))},Lh=({summary:e})=>{const{loading:a,allowed:n}=Z({permission:Vi,resourceRef:e.id}),{showModal:r}=at(),{mutate:l}=Rh(),i=be(),o=ne(cr),s=U(async()=>{await r({title:"Delete Track",message:`Are you sure you want to delete track ${e.name}?`})&&l(e.id)},[r,e.id,e.name,l]),c=U(()=>{i(o({trackId:e.id}))},[i,e.id,o]);return t.createElement(xt,{title:e.name,description:e.description,children:t.createElement(Nh,{track:e}),handleView:c,handleDelete:e.isEditable&&!a&&n?s:void 0})},Ih=R(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:e.spacing(1.5),paddingBottom:e.spacing(1.5)}})),Oh=({tracksPerPage:e,currentCursor:a})=>{var n;const r=Ih(),[l,i]=T(a),[o,s]=T(""),[c,d]=T(Ve.Alpha),[u,m]=T(Ve.Owner),[p,g]=T(""),{data:E,isLoading:f}=wh();Ba(()=>{g(o)},500,[o]);const{setShowAddModal:C}=Fe(),{loading:x,allowed:h}=Z({permission:_i}),{data:v,isLoading:k}=ea({ids:void 0,types:["standard","playlist"],first:e,after:l,orderAlphabetical:c,searchByOwner:u,searchByName:p}),[w,L]=T(v),O=(n=w==null?void 0:w.edges)==null?void 0:n.map($=>$.node),[I,Q]=T([]),j=D(pt),re=!j.getRegisteredFlags().find($=>$.name==="soundcheck-enable-track-creation")||j.isActive("soundcheck-enable-track-creation"),te=!h||!re,ie=$=>{d($.target.value)},se=$=>{m($.target.value)};if(B(()=>{v&&L(()=>{var $,H;return{totalCount:v.totalCount,edges:v.edges,pageInfo:{startCursor:v.pageInfo.startCursor,endCursor:v.pageInfo.endCursor,hasNextPage:($=v==null?void 0:v.pageInfo.hasNextPage)!=null?$:!1,hasPreviousPage:(H=v==null?void 0:v.pageInfo.hasPreviousPage)!=null?H:!1}}})},[v]),!k&&!O)return t.createElement(tt,{title:ka.title,description:ka.description,imgSrc:Ga,action:!x&&t.createElement(K,{disabled:te,variant:"contained",color:"primary",onClick:()=>C(!0)},ka.callToAction)});let ae;k?ae=t.createElement(Th,null):O!=null&&O.length?ae=O==null?void 0:O.map($=>t.createElement(y,{key:$.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(Lh,{summary:$}))):ae=t.createElement(y,{xs:12,item:!0,role:"listitem","aria-label":"result"},t.createElement(tt,{title:$n.title,description:$n.description}));const pe=(w==null?void 0:w.pageInfo.hasNextPage)||(I==null?void 0:I.length)>0;return t.createElement(y,{container:!0,direction:"row",className:r.container},t.createElement(y,{container:!0,className:r.header},t.createElement(ln,{searchPlaceholder:"Search available tracks",isLoading:k||f,searchTerm:o,setSearchTerm:s,filterAlpha:c,handleAlphabeticalFilterChange:ie,filterOwner:u,handleOwnerFilterChange:se,owners:E}),t.createElement(y,{item:!0,xs:2,className:r.headerButtons},!x&&t.createElement(K,{disabled:te,variant:"contained",color:"primary",onClick:()=>C(!0),className:r.createButton},"Create Track"))),t.createElement(y,{container:!0,spacing:4,role:"list","aria-label":"tracks"},ae),pe&&t.createElement(y,{item:!0,xs:12},t.createElement(Fa,{response:w,listingsPerPage:e,cursor:l,setCursor:i,prevCursors:I,setPrevCursors:Q,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})))},Dh=()=>{const{showAddModal:e}=Fe(),[a]=ht(),n=a.get("tracksPerPage"),r=n?parseInt(n,10):$a;return t.createElement("div",null,t.createElement(ni,{variant:"info",message:"Programs will now be referred to as Tracks throughout the Soundcheck UI.",id:"programTrackBanner"}),t.createElement(Oh,{tracksPerPage:r}),e&&t.createElement(xh,null))},Fh=()=>t.createElement(qr,null,t.createElement(Dh,null)),Ah=R(e=>({breadcrumbs:{marginTop:e.spacing(2),color:e.page.fontColor},link:{color:e.page.fontColor,textDecoration:"none",fontStyle:"normal",fontWeight:"bold"},text:{fontStyle:"normal",fontWeight:"normal"}})),$h=({pages:e})=>{const a=ne(ur),n=Ah(),r=Kt().pathname===a();return t.createElement(ri,{className:n.breadcrumbs},!r&&t.createElement(Ta,{className:n.link,to:a()},"Home"),e.map(({title:l,path:i},o)=>i?t.createElement(Ta,{className:n.link,to:i,key:i,relative:"path"},l):t.createElement(b,{className:n.text,key:`${o}`},l)))},Mh=e=>{const a={"^/soundcheck/campaigns$":"Campaigns","^/soundcheck/tracks$":"Tracks","^/soundcheck/tracks/[^/]+$":"Track Details","^/soundcheck/checks$":"Checks","^/soundcheck/collectors$":"Collectors","^/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[n,r]of Object.entries(a))if(new RegExp(n).test(e))return r;return null},Bh=e=>e.split("/").filter(a=>a).map((a,n,r)=>{const l=`/${r.slice(0,n+1).join("/")}`,i=Mh(l);if(i)return l===e?{title:i}:{path:l,title:i}}).filter(a=>!!a),Gh=R(e=>({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%","& > article":{display:"flex",flexDirection:"column",flex:"1 1 auto",padding:`${e.spacing(3)}px !important`}}})),zh=({title:e="Soundcheck"})=>{const a=Gh(),n=ne(ur),[r,l]=T(void 0),i=D(pt),o=!i.getRegisteredFlags().find(C=>C.name==="soundcheck-enable-tech-health")||i.isActive("soundcheck-enable-tech-health"),s=!i.getRegisteredFlags().find(C=>C.name==="soundcheck-enable-collectors")||i.isActive("soundcheck-enable-collectors"),c=!i.getRegisteredFlags().find(C=>C.name==="soundcheck-enable-campaigns")||i.isActive("soundcheck-enable-campaigns"),{loading:d,allowed:u}=Z({permission:Ki}),m=s&&!d&&u,p=o,g=Kt().pathname.replace(/\/+$/,""),E=g===n(),f=Bh(g);return t.createElement(go,null,t.createElement(co,null,t.createElement(ho,null,t.createElement(fo,null,t.createElement(S,{className:a.root},t.createElement(li,{themeId:"tool"},t.createElement(Pi,{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."}),t.createElement(ii,{title:e,subtitle:t.createElement($h,{pages:f})},E&&t.createElement(mo,{setError:l})),t.createElement(S,{className:a.pageContent},t.createElement(S,{className:a.pageLayout},t.createElement(Zn,null,t.createElement(De,{path:"/campaigns/:campaignId/edit",element:t.createElement(Gd,null)}),t.createElement(De,{path:"/campaigns/:campaignId",element:t.createElement(Bd,null)}),t.createElement(De,{path:"/tracks/:trackId/edit",element:t.createElement(Xu,null)}),t.createElement(De,{path:"/tracks/:trackId",element:t.createElement(kh,null)}),t.createElement(De,{path:"/checks/:checkId",element:t.createElement(Zm,null)}),t.createElement(De,{path:"/collectors/:collectorId",element:t.createElement(bu,null)}),t.createElement(De,{path:"/*",element:t.createElement(le,null,t.createElement(le.Route,{title:"Overview",path:"/"},t.createElement("div",{className:a.tabContent},t.createElement(uo,{groupSelectorError:r}))),p&&t.createElement(le.Route,{title:"Tech Health",path:"/tech-health"},t.createElement($g,null)),t.createElement(le.Route,{title:"Checks",path:"/checks"},t.createElement(cu,null)),t.createElement(le.Route,{title:"Tracks",path:"/tracks"},t.createElement(Fh,null)),c&&t.createElement(le.Route,{title:"Campaigns",path:"/campaigns"},t.createElement(Rd,null)),m&&t.createElement(le.Route,{title:"Collectors",path:"/collectors"},t.createElement(Iu,null)))}))))))))))};export{zh as RoutingPage};
2
+ //# sourceMappingURL=index-DNAl7tKw.esm.js.map