@spotify/backstage-plugin-soundcheck 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -4
- package/README.md +102 -0
- package/config.d.ts +0 -9
- package/dist/esm/EntitySoundcheckContent-fddf6ba7.esm.js +2 -0
- package/dist/esm/OverviewPageContent-8f5b5b64.esm.js +2 -0
- package/dist/esm/{RefetchingIndicator-3707a744.esm.js → RefetchingIndicator-fd4435c2.esm.js} +2 -2
- package/dist/esm/index-277bccda.esm.js +2 -0
- package/dist/esm/index-76a92dde.esm.js +2 -0
- package/dist/esm/index-88bfe2d5.esm.js +456 -0
- package/dist/esm/{index-01c3a9f5.esm.js → index-df582cac.esm.js} +2 -2
- package/dist/images/empty-state.svg +1 -0
- package/dist/images/no-results.svg +42 -0
- package/dist/images/pagerduty.svg +3 -0
- package/dist/index.esm.js +1 -1
- package/package.json +23 -17
- package/dist/esm/EntitySoundcheckContent-aecd6416.esm.js +0 -2
- package/dist/esm/OverviewPageContent-433c8dc6.esm.js +0 -2
- package/dist/esm/index-29e115b6.esm.js +0 -2
- package/dist/esm/index-6e141f2f.esm.js +0 -429
- package/dist/esm/index-a224cc6f.esm.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import t,{useCallback as j,createContext as it,useState as b,useContext as st,useEffect as F,useMemo as q,useRef as qr,memo as Ur}from"react";import{useNavigate as ye,useLocation as Ja,useSearchParams as Yt,Routes as en,Route as De,useParams as ct}from"react-router-dom";import{MarkdownContent as tn,Link as Kr,DismissableBanner as jr,TabbedLayout as Z,WarningPanel as an,Progress as Qr,LinearGauge as Yr,Page as Xr,Header as Zr}from"@backstage/core-components";import{DATA_VIZ_DARK_THEME as Jr,DATA_VIZ_LIGHT_THEME as el,SpotifyLicenseBanner as tl}from"@spotify/backstage-plugin-core";import{Box as w,Paper as Xt,Grid as g,Button as z,Slide as al,Dialog as nl,AppBar as rl,Toolbar as ll,Typography as f,IconButton as Ie,makeStyles as P,TextField as Y,Collapse as ol,useTheme as Oe,Tabs as nn,Tab as Ke,FormControl as mt,InputLabel as Zt,Select as Jt,MenuItem as ge,FormHelperText as rn,ButtonGroup as ln,Menu as ea,RadioGroup as il,Radio as on,Divider as Fe,FormControlLabel as dt,Checkbox as je,Card as ut,ListItemIcon as te,ListItemText as ae,withStyles as sl,CardHeader as cl,CardContent as ml,CardActions as dl,List as pt,ListItem as Ce,Tooltip as le,InputAdornment as sn,NativeSelect as ta,TablePagination as aa,Chip as gt,CircularProgress as ul,Table as cn,TableHead as mn,TableRow as ht,TableCell as be,TableBody as dn,Switch as pl,TableContainer as gl,Stepper as hl,Step as vl,StepLabel as El,StepContent as fl}from"@material-ui/core";import{makeStyles as G,createStyles as yl}from"@material-ui/core/styles";import{a as na,b as Qe,c as Cl,L as he,d as bl,e as un,f as pn,u as kl,U as xl,G as wl,O as Tl}from"./OverviewPageContent-8f5b5b64.esm.js";import{parseEntityRef as W,stringifyEntityRef as Sl}from"@backstage/catalog-model";import{useApi as A,useRouteRef as ne,alertApiRef as Pl}from"@backstage/core-plugin-api";import{useQuery as J,useQueryClient as oe,useMutation as ie}from"@tanstack/react-query";import{s as M,Q as I,q as se,M as ce,r as Ae,t as gn,E as ra,v as hn,n as vn,x as Rl,y as En,p as fn,o as Nl,z as Ll,D as Dl,S as Il,w as Ol}from"./index-88bfe2d5.esm.js";import{catalogApiRef as Fl,EntityRefLink as $e,humanizeEntityRef as Al,entityRouteRef as yn}from"@backstage/plugin-catalog-react";import Cn from"@material-ui/icons/Close";import{Controller as B,useWatch as la,useForm as vt,useFormContext as Et,useFieldArray as ft,FormProvider as $l}from"react-hook-form";import bn from"@material-ui/icons/ArrowDropUp";import oa from"@material-ui/icons/ArrowDropDown";import Ml from"rehype-sanitize";import kn from"@uiw/react-md-editor";import Ye,{uniqBy as ia,isObject as Gl,findIndex as xn,capitalize as Bl}from"lodash";import wn from"@material-ui/icons/Delete";import{asArray as sa,FrequencySchema as Vl,parseFactRef as ca,stringifyFactRef as _l,soundcheckCheckUpdatePermission as Tn,soundcheckCheckDeletePermission as Hl,soundcheckCheckCreatePermission as zl,soundcheckTrackUpdatePermission as Sn,soundcheckTrackDeletePermission as Wl,soundcheckTrackCreatePermission as ql,soundcheckCollectorUpdatePermission as Ul,soundcheckTrackReadPermission as Kl,soundcheckCheckReadPermission as jl,soundcheckCampaignCreatePermission as Pn,soundcheckCampaignUpdatePermission as Ql,soundcheckCampaignDeletePermission as Yl,soundcheckCollectorReadPermission as Xl}from"@spotify/backstage-plugin-soundcheck-common";import{v4 as ma}from"uuid";import Zl from"cron-validate";import Jl from"cronstrue";import{Autocomplete as da,Skeleton as yt,ToggleButtonGroup as eo,ToggleButton as Rn}from"@material-ui/lab";import Nn from"@material-ui/icons/CheckBox";import Ln from"@material-ui/icons/CheckBoxOutlineBlank";import to from"@material-ui/icons/ExpandMore";import ao from"@material-ui/icons/MoreVert";import no from"@material-ui/icons/Archive";import ro from"@material-ui/icons/OpenInBrowser";import Ct from"@material-ui/icons/Group";import{usePermission as Q}from"@backstage/plugin-permission-react";import lo from"@material-ui/icons/Search";import ua from"../images/no-results.svg";import{useDrag as oo,useDrop as io,DndProvider as pa}from"react-dnd";import Dn from"@material-ui/icons/DragIndicator";import so from"@material-ui/icons/Visibility";import In from"@material-ui/icons/Add";import On from"@material-ui/icons/Remove";import{HTML5Backend as ga}from"react-dnd-html5-backend";import co from"@material-ui/icons/OpenInNew";import mo from"@material-ui/icons/DoneAllRounded";import uo from"@material-ui/icons/Menu";import{ResponsiveContainer as Fn,LineChart as ha,CartesianGrid as bt,XAxis as Xe,YAxis as Ze,Line as va,Tooltip as An,Legend as $n,BarChart as Mn,Bar as Gn,Cell as po}from"recharts";import{DateTime as kt}from"luxon";import Bn from"react-use/lib/useLocalStorage";import{motion as go}from"framer-motion";import ho from"@material-ui/icons/GetApp";import{CSVLink as Vn}from"react-csv";import{CircularProgressbar as vo,buildStyles as Eo}from"react-circular-progressbar";import"react-circular-progressbar/dist/styles.css";import fo from"@material-ui/icons/TrendingUp";import yo from"@material-ui/icons/TrendingDown";import Co from"@material-ui/icons/TrendingFlat";import bo from"@material-ui/icons/Reorder";import ko from"@material-ui/icons/Apps";import xo from"@material-ui/icons/GridOn";import wo from"@material-ui/icons/KeyboardArrowDown";import To from"../images/catalog.svg";import So from"../images/git.svg";import Po from"../images/octocat.svg";import Ro from"../images/pagerduty.svg";import No from"../images/settings.svg";import Lo from"../images/soundcheck.png";import Do from"../images/tech_insights.png";import Io from"react-use/lib/useDebounce";import{z as O}from"zod";import{zodResolver as Oo}from"@hookform/resolvers/zod";import{MuiPickersUtilsProvider as _n}from"@material-ui/pickers/MuiPickersUtilsProvider";import{KeyboardDatePicker as Hn}from"@material-ui/pickers/DatePicker";import{DatePickerToolbar as Fo}from"@material-ui/pickers/DatePicker/DatePickerToolbar";import zn from"@date-io/luxon";import"@material-ui/lab/Autocomplete";import"react-use/lib/useAsync";import"./RefetchingIndicator-fd4435c2.esm.js";import"react-window";import"graphql-request";import"graphql-tag";import"@material-ui/core/styles/makeStyles";import"classnames";import"@material-ui/icons/Schedule";import"@material-ui/icons/Check";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/HelpOutline";import"../images/empty-state.svg";function xt(e,a,n){const r=A(M);return J([I.GetChecks,e,a,n],async()=>r.getChecks(e,a,n),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const Ao="Error Creating Campaign",Wn="Failed to create campaign.";function $o(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.createCampaign(l);if(!o)throw new Error(Wn);return o};return ie([ce.CreateCampaign],r,{onSuccess:()=>{a.invalidateQueries({queryKey:[I.GetCampaigns]})},onError:l=>{let o=Wn;l instanceof Error&&(o=l.message),n({severity:"error",title:Ao,message:o})}})}const Mo="Error Updating Campaign",qn="Failed to update campaign.";function Go(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.updateCampaign(l);if(!o)throw new Error(qn);return o};return ie([ce.UpdateCampaign],r,{onSuccess:()=>{a.invalidateQueries({queryKey:[I.GetCampaigns]})},onError:l=>{let o=qn;l instanceof Error&&(o=l.message),n({severity:"error",title:Mo,message:o})}})}const Bo="Error Archiving Campaign";function Vo(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.archiveCampaign(l);if(!o)throw new Error(`Failed to archive campaign ${l}`);return o};return ie([ce.ArchiveCampaign],r,{onSuccess:()=>a.invalidateQueries({queryKey:[I.GetCampaigns]}),onError:(l,o)=>{let i=`Failed to archive campaign ${o}`;l instanceof Error&&(i=l.message),n({severity:"error",title:Bo,message:i})}})}const _o="Error Deleting Campaign";function Ho(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.deleteCampaign(l);if(!o)throw new Error(`Failed to delete campaign ${l}`);return o};return ie([ce.DeleteCampaign],r,{onSuccess:()=>a.invalidateQueries({queryKey:[I.GetCampaigns]}),onError:(l,o)=>{let i=`Failed to delete campaign ${o}`;l instanceof Error&&(i=l.message),n({severity:"error",title:_o,message:i})}})}function Ea(e,a,n,r){const l=A(M);return J([I.GetAllPrograms,e,a,n],async()=>l.getTracks(e,a,n,r),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const zo="Error Creating Track";function Wo(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.createProgram(l);if(!o)throw new Error("Failed to create track.");return o};return ie([ce.CreateProgram],r,{onSuccess:async()=>{const l=[I.GetAllPrograms,I.GetOverallTrackPassRate,I.GetIndividualTrackPassRate];for(const o of l)a.invalidateQueries({queryKey:[o]})},onError:l=>{let o="Failed to create track.";l instanceof Error&&(o=l.message),n({severity:"error",title:zo,message:o})}})}const qo=e=>{const a=A(M);return J([I.GetOverallCheckPassRates,e],async()=>a.getOverallCheckPassRates(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Uo=e=>{const a=A(M);return J([I.GetIndividualCheckPassRate,e],async()=>a.getIndividualCheckPassRates(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Ko=e=>{const a=A(M);return J([I.GetOverallTrackPassRate,e],async()=>a.getOverallTrackPassRate(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Un=e=>{const a=A(M);return J([I.GetIndividualTrackPassRate,e],async()=>a.getIndividualTrackPassRate(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},jo=e=>{const a=A(M);return J([I.GetOverallEntityPassRates,e],async()=>a.getOverallEntityPassRates(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Qo=e=>{const a=A(M);return J([I.GetOverallGroupPassRates,e],async()=>a.getOverallGroupPassRates(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},Yo=e=>{const a=A(M);return J([I.GetIndividualGroupPassRates,e],async()=>a.getIndividualGroupPassRates(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})},wt=e=>{const a=ne(e),n=ye(),{key:r}=Ja();return[j(()=>{n(r?-1:a())},[n,a,r]),j(()=>n(a()),[n,a])]},Xo=G(e=>({box:{zIndex:9,position:"fixed",bottom:"0",width:"100%"},footer:{padding:e.spacing(2)}})),Tt=({onCancel:e,saveButtonText:a,isLoading:n,onSave:r,disableSave:l})=>{const o=Xo();return t.createElement(w,{className:o.box},t.createElement(Xt,{elevation:3,className:o.footer},t.createElement(g,{container:!0,item:!0,spacing:2,justifyContent:"space-between"},t.createElement(g,{item:!0},t.createElement(z,{variant:"contained",color:"primary",onClick:e},"Cancel")),t.createElement(g,{item:!0},r&&t.createElement(z,{variant:"contained",color:"primary",disabled:n||l,onClick:r?()=>r():void 0},a)))))},fa=()=>it({selectedItem:null,setSelectedItem:()=>{},isLoading:!1,setIsLoading:()=>{},showAddModal:!1,setShowAddModal:()=>{},isReadOnly:!1,showReadOnlyModal:()=>{},hideModal:()=>{}}),ya=e=>({children:a})=>{const[n,r]=b(null),[l,o]=b(!1),[i,s]=b(!1),[c,m]=b(!1),d=p=>{o(!0),r(p)},u=()=>{r(null),o(!1),m(!1)};return t.createElement(e.Provider,{value:{selectedItem:n,setSelectedItem:r,isLoading:i,setIsLoading:s,showAddModal:c,setShowAddModal:m,isReadOnly:l,showReadOnlyModal:d,hideModal:u}},a)},Ca=e=>st(e),Kn=fa(),jn=ya(Kn),Me=()=>Ca(Kn),Qn=fa(),Yn=ya(Qn),ke=()=>Ca(Qn),Xn=fa(),Zo=ya(Xn),Je=()=>Ca(Xn),Zn=it({selectedCollector:null,setSelectedCollector:()=>{},showModal:!1,setShowModal:()=>{},hideModal:()=>{}}),Jo=({children:e})=>{const[a,n]=b(null),[r,l]=b(!1),o=()=>{n(null),l(!1)};return t.createElement(Zn.Provider,{value:{selectedCollector:a,setSelectedCollector:n,showModal:r,setShowModal:l,hideModal:o}},e)},St=()=>st(Zn),ei=G(e=>({appBar:{position:"relative"},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}}})),ti=t.forwardRef(function(e,a){return t.createElement(al,{direction:"up",ref:a,...e})}),Ge=({open:e,handleClose:a,title:n,children:r})=>{const l=ei();return t.createElement(nl,{fullScreen:!0,open:e,onClose:a,TransitionComponent:ti},t.createElement(rl,{className:l.appBar},t.createElement(ll,null,t.createElement(f,{className:l.title,"data-testid":`dialog-${n}`},n),t.createElement(Ie,{"data-testid":"close-dialog",edge:"end",color:"inherit",onClick:a,"aria-label":"close",className:l.closeIcon},t.createElement(Cn,null)))),t.createElement(w,{className:l.content},r))},ai=P(()=>({helperText:{marginLeft:0}})),Be=({name:e,control:a,error:n,label:r,placeholder:l,disabled:o,numbersOnly:i,inputProps:s,rules:c,messages:m,helperText:d,multiline:u,minRows:p,variant:h="standard",size:y,margin:C="normal"})=>{const v=ai();return t.createElement(B,{name:e,control:a,defaultValue:"",rules:c,render:({field:E})=>t.createElement(Y,{...E,FormHelperTextProps:{className:v.helperText},fullWidth:!0,multiline:u,minRows:p,placeholder:l,label:r,disabled:o,type:i?"number":"text",InputProps:s,margin:C,error:!!n,helperText:n&&m?m[n.type]:d,variant:h,size:y})})},ni=G(()=>({section:{gap:0}})),ri=({control:e,error:a,isLoading:n,disabled:r})=>{const l=ni();return t.createElement("div",{className:l.section},t.createElement(Be,{name:"checkName",control:e,error:a,label:"Name",placeholder:"Enter a name for the check",disabled:n||r,rules:{required:!0,maxLength:100},messages:{required:"This field is required",maxLength:"Input must be less than 100 characters"}}))},li=G(e=>({root:{display:"flex",flexDirection:"column",gap:0},button:{marginLeft:-e.spacing(1)},title:{fontWeight:700,color:e.palette.primary.main,cursor:"pointer"}})),Pt=({title:e,alwaysExpanded:a=!1,children:n})=>{const[r,l]=b(a),o=li(),i=()=>{a||l(!r)};return t.createElement("div",{className:o.root},t.createElement(g,{container:!0,alignItems:"center",spacing:0},t.createElement(g,{item:!0},!a&&t.createElement(Ie,{onClick:i,className:o.button},r?t.createElement(oa,{fontSize:"large"}):t.createElement(bn,{fontSize:"large"}))),t.createElement(g,{item:!0},t.createElement(f,{onClick:i,className:o.title},e))),t.createElement(ol,{in:r},n))},oi=G(e=>({markdown:{paddingTop:e.spacing(2),whiteSpace:"pre-wrap"}})),Rt=({name:e,control:a,label:n,rules:r,helperText:l,placeholder:o,disabled:i})=>{const s=Oe(),c=oi();return t.createElement(B,{name:e,control:a,defaultValue:"",rules:r,render:({field:m})=>t.createElement("div",{"data-color-mode":s.palette.type},n&&t.createElement(f,{variant:"subtitle2"},n),i?t.createElement(kn.Markdown,{className:c.markdown,source:m.value}):t.createElement(kn,{placeholder:o,value:m.value,onChange:m.onChange,previewOptions:{rehypePlugins:[[Ml]]},"data-testid":`markdown-editor-${e}`}),l&&t.createElement(f,{variant:"subtitle2"},l))})},ii=G(e=>({tabContent:{padding:e.spacing(1)}})),si=({control:e,isLoading:a,disabled:n})=>{const r=ii(),[l,o]=b(0);return t.createElement(Pt,{title:n?"Pass and fail messages":"Pass and fail messages (optional)"},t.createElement("div",{style:{height:"100%",width:"100%"}},t.createElement(nn,{orientation:"horizontal",variant:"scrollable",value:l,onChange:(i,s)=>{o(s)}},t.createElement(Ke,{label:"Passed Message"}),t.createElement(Ke,{label:"Failed Message"})),t.createElement("div",{className:r.tabContent},l===0&&t.createElement(Rt,{name:"passMessage",control:e,placeholder:"Enter pass message...",disabled:a||n}),l===1&&t.createElement(Rt,{name:"failMessage",control:e,placeholder:"Enter fail message...",disabled:a||n}))))},ci=({control:e,isLoading:a,disabled:n})=>t.createElement(Rt,{name:"description",control:e,label:"Description",placeholder:n?void 0:"Enter a brief description about the check",disabled:n||a}),mi=P(()=>({helperText:{marginLeft:0}})),Nt=({name:e,control:a,selectLabel:n,options:r,disabled:l,rules:o,style:i,helperText:s})=>{const c=mi();return t.createElement(B,{name:e,control:a,rules:o,render:({field:m,fieldState:d})=>t.createElement(mt,{variant:"outlined",style:i!=null?i:{minWidth:200},error:d.invalid},t.createElement(Zt,{id:`${e}-select-label`},n),t.createElement(Jt,{...m,disabled:l,error:d.invalid,"data-testid":`${e}-select`,labelId:`${e}-select-label`,label:n,value:r?m.value:"",defaultValue:""},r==null?void 0:r.map(({value:u,label:p})=>t.createElement(ge,{key:u,value:u},p))),t.createElement(rn,{className:c.helperText},s))})},di=({control:e,supportContactError:a,disabled:n,isLoading:r,options:l,alwaysExpanded:o=!1})=>{const i=Oe(),s=l==null?void 0:l.map(c=>({value:c.ref,label:c.name}));return t.createElement(Pt,{title:n?"Owner Details":"Owner Details (optional)",alwaysExpanded:o!=null?o:!1},t.createElement(Nt,{name:"teamOwner",control:e,selectLabel:"Owner",options:s&&ia(s,"value"),disabled:n||r}),t.createElement("div",{style:{marginTop:i.spacing(2)}},t.createElement(Be,{name:"supportChannel",control:e,error:a,label:"Support Channel",placeholder:"Enter a channel or email to get check support",disabled:n||r,rules:{},messages:{}})))},ui=P(e=>({button:{backgroundColor:e.palette.background.default,color:e.palette.primary.main},label:{paddingRight:e.spacing(2)},icon:{borderLeft:`1px solid ${e.palette.primary.main}`,padding:e.spacing(1,0,0,1)},menu:{marginTop:"52px"}})),pi=({onAddCondition:e,onAddExpression:a})=>{const n=ui(),[r,l]=b(null),o=!!r,i=c=>{l(c.currentTarget)},s=()=>{l(null)};return t.createElement(w,null,t.createElement(ln,{color:"primary"},t.createElement(z,{"data-testid":"add-button",id:"add-button",className:n.button,"aria-controls":o?"add-menu":void 0,"aria-haspopup":"true","aria-expanded":o?"true":void 0,onClick:i},t.createElement(w,{className:n.label},"Add"),t.createElement(w,{className:n.icon},t.createElement(oa,null)))),t.createElement(ea,{id:"add-menu",anchorEl:r,open:o,onClose:s,classes:{paper:n.menu},MenuListProps:{"aria-labelledby":"add-button"}},t.createElement(ge,{"data-testid":"add-condition",onClick:()=>{e(),s()}},"Add Condition"),t.createElement(ge,{"data-testid":"add-expression",onClick:()=>{a(),s()}},"Add Expression")))};var xe=(e=>(e.AllOf="all",e.AnyOf="any",e))(xe||{});const gi={all:"ALL OF",any:"ANY OF"};var Jn=(e=>(e.Equal="equal",e.NotEqual="notEqual",e.Matches="matches",e.LessThan="lessThan",e.LessThanInclusive="lessThanInclusive",e.GreaterThan="greaterThan",e.GreaterThanInclusive="greaterThanInclusive",e.In="in",e.NotIn="notIn",e.Contains="contains",e.DoesNotContain="doesNotContain",e.SemverGt="semverGt",e.SemverGte="semverGte",e.SemverLt="semverLt",e.SemverLte="semverLte",e.SemverEq="semverEq",e.SemverNeq="semverNeq",e.SemverSatisfies="semverSatisfies",e.SemverGtr="semverGtr",e.SemverLtr="semverLtr",e.After="after",e.Before="before",e))(Jn||{});const hi={equal:"Equals",notEqual:"Does Not Equal",matches:"Matches",semverGt:"Version Greater Than",semverGte:"Version Greater Than or Equals",semverLt:"Version Less Than",semverLte:"Version Less Than or Equals",semverEq:"Version Equals",semverNeq:"Version Not Equals",semverSatisfies:"Version Satisfies Range",semverGtr:"Version Greater Than Range",semverLtr:"Version Less Than Range",lessThan:"Less Than",lessThanInclusive:"Less Than or Equals",greaterThan:"Greater Than",greaterThanInclusive:"Greater Than or Equals",in:"In Array",notIn:"Not in Array",contains:"Contains",doesNotContain:"Does Not Contain",after:"DateTime is After",before:"DateTime is Before"};var Lt=(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))(Lt||{});const vi=P(e=>({container:{borderLeft:`1px solid ${e.palette.grey[500]}`,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.grey[500]}`,padding:e.spacing(0),width:"15px",height:"45px"},innerContainer:{backgroundColor:e.palette.background.default,border:`1px solid ${e.palette.grey[500]}`,display:"flex",flexDirection:"column"},inputsContainer:{padding:e.spacing(2),display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",gap:e.spacing(1)},header:{background:"linear-gradient(90deg, #007DFF 0%, #0057B2 100%)",width:"100%",height:"8px"},deleteButton:{marginLeft:e.spacing(1),width:"45px",height:"45px"},deleteIcon:{color:e.palette.type==="dark"?e.palette.background.default:e.palette.common.black}}));function er(e){const a=A(M);return J([I.GetCollectors,e],async()=>a.getCollectors(e),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}function Ei(e,a){const n=A(M);return J([I.GetFactSchema,e,a],()=>n.getFactSchema(e,a),{enabled:!!e&&!!a,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const et=()=>({selectedKinds:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[],selectedTypes:[]}),fi=[{facet:"kind",label:"Kind",key:"selectedKinds"},{facet:"spec.type",label:"Type",key:"selectedTypes"},{facet:"spec.lifecycle",label:"Lifecycle",key:"selectedLifecycles"},{facet:"spec.owner",label:"Owner",key:"selectedOwners"},{facet:"spec.system",label:"System",key:"selectedSystems"},{facet:"metadata.tags",label:"Tags",key:"selectedTags"}],Ve={selectedKinds:"kind",selectedTypes:"spec.type",selectedLifecycles:"spec.lifecycle",selectedOwners:"spec.owner",selectedSystems:"spec.system",selectedTags:"metadata.tags"},tr=e=>!e||Object.values(e).every(a=>a.length===0)?void 0:{catalog:Object.entries(e).reduce((a,[n,r])=>{const l=Ve[n];return r.length>0&&(a[l]=r),a},{})},ba=e=>Object.keys(Ve).reduce((a,n)=>{var r,l;return a[n]=sa((l=(r=e==null?void 0:e.catalog)==null?void 0:r[Ve[n]])!=null?l:[]),a},{}),Dt=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[Ve[n]]=r);return[a]},ka=e=>{if(e&&Array.isArray(e)&&e.length){const a=e[0];return Object.keys(Ve).reduce((n,r)=>{var l;return n[r]=sa((l=a==null?void 0:a[Ve[r]])!=null?l:[]),n},{})}return et()};var V=(e=>(e.Months="months",e.Weeks="weeks",e.Days="days",e.Hours="hours",e.Minutes="minutes",e.Seconds="seconds",e))(V||{});const xa=()=>({type:"HumanDuration",unit:V.Hours,value:1,cron:""}),wa=[V.Months,V.Weeks,V.Days,V.Hours,V.Minutes,V.Seconds];function yi(e){return wa.includes(e)}function It(e){switch(e){case"months":return V.Months;case"weeks":return V.Weeks;case"days":return V.Days;case"hours":return V.Hours;case"minutes":return V.Minutes;case"seconds":return V.Seconds;default:return null}}function Ta(e){if(e){const{cron:a,type:n,unit:r,value:l}=e;return n==="HumanDuration"?{[r]:l}:{cron:a}}}function Sa(e){var a;const n=xa();if(e&&Ye.isObject(e)){if("cron"in e)return{...n,type:"cron",cron:e.cron};const r=Object.entries(e);if(r.length){const[l,o]=r[0];return{...n,unit:(a=It(l))!=null?a:V.Hours,value:o}}}return n}const Ci=e=>Zl(e).isValid(),ar=e=>{try{return Jl.toString(e)}catch(a){return typeof a=="string"?a.replace(/^Error:\s*/,""):"Invalid cron expression"}},nr=1,rr=31536e3,lr=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},bi=P(e=>({divider:{marginTop:e.spacing(3),marginBottom:e.spacing(3)},title:{cursor:"pointer"}})),or=({value:e,onChange:a,disabled:n,errors:r})=>{var l;const o=bi(),[i,s]=b(e),[c,m]=b(`${e.value}`);F(()=>{a&&a(i)},[i,a]);const d=v=>{s({...e,type:v.target.value})},u=v=>{m(v.target.value);const E=parseInt(v.target.value,10);s({...e,value:isNaN(E)?0:E})},p=v=>{var E;s({...i,unit:(E=It(v.target.value))!=null?E:V.Hours})},h=v=>{const E=v.target.value;s({...i,cron:E})},y=()=>{s({...i,type:"cron"})},C=()=>{s({...i,type:"HumanDuration"})};return t.createElement(g,{container:!0,direction:"row"},t.createElement(g,{item:!0},t.createElement(il,{name:"frequencyType",value:i.type,onChange:d},t.createElement(g,{container:!0,alignItems:"flex-start"},t.createElement(g,{item:!0,style:{paddingLeft:0}},t.createElement(on,{disabled:n,value:"HumanDuration"})),t.createElement(g,{item:!0},t.createElement(f,{variant:"body1",className:o.title,onClick:C},"Run on a regular interval"),t.createElement(f,{variant:"caption"},"Run on a regular interval that you define"),i.type==="HumanDuration"&&t.createElement(g,{container:!0,style:{alignItems:"flex-start"}},t.createElement(g,{item:!0},t.createElement(Y,{id:"every",type:"number",inputProps:{min:nr,max:rr},label:"Every",name:"every",disabled:n,value:c,error:!!(r!=null&&r.message),helperText:r==null?void 0:r.message,onChange:u})),t.createElement(g,{item:!0},t.createElement(mt,null,t.createElement(Zt,{id:"frequency-unit"},"Unit"),t.createElement(Jt,{labelId:"frequency-unit",disabled:n,value:i.unit,onChange:p,"data-testid":"frequency-unit"},wa.map(v=>t.createElement(ge,{key:v,value:v},v)))))))),t.createElement(Fe,{className:o.divider}),t.createElement(g,{container:!0,alignItems:"flex-start"},t.createElement(g,{item:!0,style:{paddingLeft:0}},t.createElement(on,{disabled:n,value:"cron"})),t.createElement(g,{item:!0},t.createElement(f,{variant:"body1",className:o.title,onClick:y},"Run on a schedule"),t.createElement(f,{variant:"caption"},"Run on a schedule defined via cron expression"),i.type==="cron"&&t.createElement(g,{item:!0},t.createElement(Y,{id:"cron-expression","data-testid":"cron-expression",style:{minWidth:250},label:(l=r==null?void 0:r.message)!=null?l:ar(i.cron),disabled:n,placeholder:"* * * * *",error:!!(r!=null&&r.message),value:i.cron,onChange:h})))))))},ki=()=>({enabled:!1,frequency:xa()}),xi=e=>{var a;if(Gl(e)&&"frequency"in e){const n=Vl.safeParse(e.frequency);if(n.success){const r=n.data;if("cron"in r)return{enabled:!0,frequency:{type:"cron",unit:V.Hours,value:1,cron:r.cron}};const l=Object.keys(r);if(l.length){const o=l[0];if(yi(o))return{enabled:!0,frequency:{type:"HumanDuration",unit:o,value:(a=r[o])!=null?a:1,cron:""}}}}}return{enabled:!1,frequency:{type:"HumanDuration",unit:V.Hours,value:1,cron:""}}},wi=(e,a)=>{const{enabled:n,frequency:r}=e;if(n){const{cron:l,type:o,unit:i,value:s}=r;return o==="HumanDuration"?{frequency:{[i]:s},filter:Dt(a)}:{frequency:{cron:l}}}},Pa=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(Pa(r))}),n}if(e.expressions)return e.expressions.map(Pa);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{}},ir=(e,a=!0)=>{if(!e)return{conditions:[]};const n=Object.keys(e),r=n.includes("all")||a&&!n.includes("any")?xe.AllOf:xe.AnyOf;if(n.includes(r)||a){const l=e[r]||[e],o=[],i=[];return l.forEach(s=>{const c=Object.keys(s);c.includes("all")||c.includes("any")?i.push(ir(s,!1)):o.push({factRef:s.factRef,path:s.path,operator:s.operator,value:s.value})}),{expressions:i.length>0?i:void 0,conditions:o,expressionType:r}}return{expressionType:xe.AllOf,conditions:[{factRef:e.factRef,path:e.path,operator:e.operator,value:e.value}]}},Ti=e=>({checkName:e.name||"",description:e.description||"",teamOwner:e.ownerEntityRef||"",supportChannel:e.supportChannel||"",expressions:ir(e.rule),passMessage:e.passedMessage||void 0,failMessage:e.failedMessage||void 0,filters:ba(e.filter),schedule:xi(e.schedule)}),Si=(e,a)=>{var n,r,l,o;return{id:a?a.id:ma(),ownerEntityRef:(n=e.teamOwner)!=null?n:void 0,name:e.checkName,description:e.description,passedMessage:(r=e.passMessage)!=null?r:void 0,failedMessage:(l=e.failMessage)!=null?l:void 0,rule:Pa(e.expressions),filter:e.filters?tr(e.filters):void 0,supportChannel:(o=e.supportChannel)!=null?o:void 0,schedule:wi(e.schedule,e.filters)}},Ra=(e,a="$")=>{const n=[];if(e.type==="object"&&e.properties){const r=e.properties;for(const l in r)if(r.hasOwnProperty(l)){const o=`${a}.${l}`;n.push(o);const i=r[l];n.push(...Ra(i,o))}}if(e.type==="array"&&e.items){const r=`${a}[*]`;n.push(r);const l=Array.isArray(e.items)?e.items:[e.items];for(const o of l)n.push(...Ra(o,r))}return n},Pi={checkName:"",description:"",teamOwner:"",supportChannel:"",expressions:{expressionType:xe.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",value:"",conditions:[]}]},filters:et(),schedule:ki()},Ri=(e,a)=>{const{data:n,isLoading:r}=er(),l=la({control:a,name:`${e}.factRef`}),[o,i]=b(()=>sr(l));F(()=>{i(sr(l))},[l]);const{data:s}=Ei(o==null?void 0:o.source,o==null?void 0:o.name),c=q(()=>s?Ra(s.schema):[],[s]),m=q(()=>n==null?void 0:n.flatMap(d=>d.factNames.map(u=>{const p=ca(u,{defaultSource:d.id,defaultScope:"default"});return{label:p.name,value:_l(p)}})),[n]);return{isLoading:r,pathOptions:c,factRefOptions:m}};function sr(e){if(e)try{return ca(e,{defaultSource:"unknown",defaultScope:"default"})}catch{return null}return null}const cr=({name:e,rules:a,label:n,control:r,options:l,getOptionLabel:o,getOptionValue:i,onChange:s,onInputChange:c,disabled:m})=>t.createElement(B,{name:e,control:r,rules:a,render:({field:d,fieldState:u})=>t.createElement(da,{...d,freeSolo:!0,"data-testid":`${e}-autocomplete`,style:{minWidth:250},disabled:m,options:l,getOptionLabel:o,renderInput:p=>t.createElement(Y,{...p,variant:"outlined",label:n,error:u.invalid,helperText:u.error?u.error.message:null}),onChange:(p,h)=>{const y=i?i(h):h;s==null||s(y),d.onChange(y)},onInputChange:(p,h)=>{const y=i?i(h):h;c==null||c(y),d.onChange(y)}})}),Ni=e=>{try{return ca(e),!0}catch{return"Invalid fact reference. [source]:[scope]/[name]."}},Li=({control:e,name:a,handleDelete:n,disabled:r,disableDelete:l,setValue:o,getValues:i})=>{var s;const c=vi(),m=q(()=>Object.values(Jn).map(E=>({value:E,label:hi[E]})),[]),{pathOptions:d,factRefOptions:u,isLoading:p}=Ri(a,e),h={required:!0},y=q(()=>{var E;return(E=u==null?void 0:u.map(k=>k.value))!=null?E:[]},[u]),C=(s=i("expressions.conditions"))==null?void 0:s.map(({factRef:E})=>E),v=E=>{E&&!(C!=null&&C.includes(E))&&(o(`${a}.path`,""),o(`${a}.operator`,""),o(`${a}.value`,""))};return t.createElement(w,{className:c.container},t.createElement(w,{className:c.connector}),t.createElement(w,{className:c.innerContainer},t.createElement(w,{className:c.header}),t.createElement(w,{className:c.inputsContainer},u&&t.createElement(cr,{name:`${a}.factRef`,control:e,rules:{...h,maxLength:500,validate:Ni},label:"Fact",options:y,getOptionLabel:E=>{var k,S;return(S=(k=u==null?void 0:u.find(N=>E===N.value))==null?void 0:k.label)!=null?S:E},getOptionValue:E=>{var k,S,N;return(N=(S=(k=u==null?void 0:u.find(x=>E===x.label))==null?void 0:k.value)!=null?S:E)!=null?N:""},disabled:r||p,onChange:v,onInputChange:v}),t.createElement(cr,{name:`${a}.path`,label:"Path",rules:h,control:e,disabled:r||p,options:d}),t.createElement(Nt,{name:`${a}.operator`,rules:h,control:e,selectLabel:"Operator",options:m,disabled:r}),t.createElement(B,{name:`${a}.value`,control:e,defaultValue:"",rules:h,render:({field:E,fieldState:k})=>t.createElement(Y,{...E,label:"Value",variant:"outlined",placeholder:"Enter a value",error:k.invalid,helperText:k.error?k.error.message:null,disabled:r})}))),!r&&!l&&t.createElement(Ie,{onClick:n,className:c.deleteButton,"data-test-id":`${a}-delete-button`},t.createElement(wn,{className:c.deleteIcon})))},Di=({conditions:e,control:a,name:n,handleDelete:r,disabled:l,disableDelete:o,setValue:i,getValues:s,depth:c})=>t.createElement(t.Fragment,null,e.map((m,d)=>t.createElement(g,{item:!0,key:d},t.createElement(Li,{control:a,name:`${n}.conditions[${d}]`,"data-testid":`${n}-condition-input`,handleDelete:()=>r(d),disabled:l,disableDelete:c===0&&d===0?!0:o,setValue:i,getValues:s})))),Ii=({expression:e,control:a,name:n,depth:r,getValues:l,setValue:o,trigger:i,disabled:s})=>e?t.createElement(g,{item:!0},t.createElement(mr,{control:a,name:`${n}`,depth:r+1,getValues:l,setValue:o,trigger:i,disabled:s})):null,Oi=P(e=>({button:{fontWeight:700,backgroundColor:e.palette.background.default,color:e.palette.primary.main,"&:hover":{backgroundColor:"rgba(46, 119, 208, 0.2)"}},selectedButton:{backgroundColor:"rgba(46, 119, 208, 0.15)"}})),Fi=({control:e,name:a,getValues:n,disabled:r})=>{const l=Oi(),o=`${a}`,i=n(o),[s,c]=b(i||xe.AllOf),m=d=>{c(d)};return t.createElement(B,{control:e,name:a,render:({field:{onChange:d}})=>t.createElement(ln,{color:"primary"},Object.values(xe).map(u=>t.createElement(z,{key:u,className:s===u?`${l.selectedButton} ${l.button}`:`${l.button}`,onClick:()=>{m(u),d(u)},disabled:r},gi[u])))})},Ai=(e,a,n,r)=>({handleAddCondition:async()=>{const l=`${e}`,o=a(l),i=[...(o==null?void 0:o.conditions)||[],{factRef:"",path:"",operator:"",value:""}],s=`${e}.conditions`;n(s,i),await r(s)},handleAddExpression:async()=>{const l=`${e}.expressions`,o=a(l)||[];o.push({expressionType:xe.AllOf,expressions:void 0,conditions:[{factRef:"",path:"",operator:"",value:""}]}),n(l,o),await r(l)},handleDeleteCondition:async(l,o)=>{const i=o.split("[")[0],s=`${o}.conditions`,c=a(s);if(c.splice(l,1),c.length===0){n(s,void 0);const m=parseInt(o.slice(o.lastIndexOf("[")+1,o.lastIndexOf("]")),10),d=a(i);d.splice(m,1),n(i,d.length>0?d:void 0),await r(i)}else n(s,c),await r(s)}}),$i=G(e=>({root:{backgroundColor:e.palette.type==="dark"?e.palette.grey[700]:e.palette.grey[100],border:`1px solid ${e.palette.grey[500]}`,padding:e.spacing(2)},inner:{marginLeft:e.spacing(2),paddingBottom:e.spacing(2),borderLeft:`1px solid ${e.palette.grey[500]}`,display:"flex",flexDirection:"row",gap:0},connector:{borderBottom:`1px solid ${e.palette.grey[500]}`,padding:e.spacing(0),width:"15px",height:"20px"}})),mr=({control:e,name:a,depth:n,getValues:r,setValue:l,trigger:o,disabled:i})=>{const s=$i(),{handleAddCondition:c,handleAddExpression:m,handleDeleteCondition:d}=Ai(a,r,l,o),u=`${a}`,p=r(u),h=(p==null?void 0:p.conditions)||[],y=p==null?void 0:p.expressions;return t.createElement(w,{className:n>0?s.inner:s.root},n>0&&t.createElement(w,{className:s.connector}),t.createElement(g,{container:!0,spacing:0,direction:"column"},t.createElement(g,{item:!0},t.createElement(Fi,{control:e,disabled:i,name:`${a}.expressionType`,getValues:r})),t.createElement(g,{item:!0,container:!0,spacing:0,direction:"column"},t.createElement(Di,{depth:n,handleDelete:C=>d(C,a),disabled:i,conditions:h,control:e,name:a,setValue:l,getValues:r}),y==null?void 0:y.map((C,v)=>t.createElement(Ii,{key:v,expression:C,control:e,name:`${a}.expressions[${v}]`,depth:n,getValues:r,setValue:l,trigger:o,disabled:i}))),!i&&t.createElement(g,{item:!0},t.createElement(pi,{onAddCondition:c,onAddExpression:m}))))},dr=({type:e,cron:a,value:n})=>{if(e==="cron"){if(!Ci(a))return ar(a)}else if(e==="HumanDuration")return lr(n);return!0},Mi=P(e=>({container:{padding:e.spacing(0,1.5)}})),Gi=({control:e,disabled:a})=>{const n=Mi(),r=la({control:e,name:"schedule"});return t.createElement(g,{className:n.container,item:!0,xs:12},t.createElement(g,{item:!0},t.createElement(B,{name:"schedule.enabled",control:e,render:({field:l})=>t.createElement(dt,{disabled:a,control:t.createElement(je,{checked:l.value,onChange:l.onChange}),label:"Schedule check"})})),t.createElement(g,{item:!0},t.createElement(B,{name:"schedule.frequency",control:e,rules:{validate:dr},render:({field:l})=>t.createElement(or,{disabled:a||!r.enabled,value:l.value,onChange:l.onChange})})))},Bi=P(e=>({container:{padding:e.spacing(0,1.5)},scheduleContainer:{padding:e.spacing(2)}})),Vi=({control:e,disabled:a})=>{const n=Bi();return t.createElement(Pt,{title:a?"Schedule":"Schedule (optional)"},t.createElement(g,{className:n.container,item:!0,xs:12},t.createElement(g,{item:!0},t.createElement(f,{variant:"body2"},"By default checks are execute when any fact they depend on is updated. However, you may also schedule a check to run on a schedule.")),t.createElement(g,{item:!0,xs:12},t.createElement(Gi,{disabled:a,control:e}))))},_i=e=>{const{selectedItem:a}=ke();let n=Pi;a&&(n=Ti(a));const{control:r,handleSubmit:l,getValues:o,setValue:i,trigger:s,formState:{errors:c}}=vt({defaultValues:n}),{showModal:m}=Ae();return{control:r,handleSubmit:l,getValues:o,setValue:i,trigger:s,errors:c,onSubmit:async d=>{if(!await m({title:"Save Check",message:`Are you sure you want to save check: ${d.checkName}?`,error:!1}))return;const u=Si(d,a);e(u)}}},Hi=()=>t.createElement("div",{style:{display:"flex",gap:"10px",flexDirection:"column"}},t.createElement(f,{variant:"h6"},"Creating and managing checks"),t.createElement(f,{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(f,{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(f,{variant:"body1"},"Once created, you will be able to manage and edit your track on its detail page.")),Na=G(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},selectMargin:{marginBottom:e.spacing(1)}})),Ot=e=>{const a=A(Pl),n=A(Fl);return J([I.GetEntityFacets,e],async()=>{var r;return((r=(await n.getEntityFacets({facets:[e]})).facets[e])==null?void 0:r.map(l=>l.value).sort())||[]},{onError:()=>{a.post({message:`Failed to load facet: ${e}`,severity:"error"})}})},zi=P({container:{padding:0},formControl:{flexGrow:1}}),Wi=({facet:e,label:a,values:n,onChange:r,disabled:l})=>{var o;const i=zi(),[s,c]=b(!1),{data:m,isLoading:d,error:u}=Ot(e),p=q(()=>m==null?void 0:m.map(E=>E.toLocaleLowerCase("en-US")),[m]),h=(o=n==null?void 0:n.map(E=>E.toLocaleLowerCase("en-US")))!=null?o:[],y=j((E,k)=>{r(k),p&&p.every(S=>k.includes(S))&&c(!1)},[p,r,c]),C=j(()=>{r(n!=null&&n.length?n:void 0)},[n,r]);if(!m||!p||u)return t.createElement(f,{color:"error"},"Failed to load facet: ",e);const v=l||d||!(n!=null&&n.length)&&(!(m!=null&&m.length)||!(p!=null&&p.length));return t.createElement(w,{pb:1,pt:1,className:i.container},t.createElement(f,{variant:"subtitle2"},a),t.createElement(da,{open:s,onOpen:()=>c(!0),onClose:()=>c(!1),className:i.formControl,multiple:!0,limitTags:4,disableCloseOnSelect:!0,"aria-label":a,options:p,value:h,getOptionLabel:E=>{var k;return(k=m[p.indexOf(E)])!=null?k:E},onChange:y,onBlur:C,disabled:v,renderOption:(E,{selected:k})=>{var S;return t.createElement(dt,{onClick:N=>N.preventDefault(),control:t.createElement(je,{icon:t.createElement(Ln,{fontSize:"small"}),checkedIcon:t.createElement(Nn,{fontSize:"small"}),checked:k}),label:(S=m[p.indexOf(E)])!=null?S:E})},size:"small",popupIcon:t.createElement(to,{"data-testid":"selected-facets-expand"}),renderInput:E=>t.createElement(Y,{...E,variant:"outlined"})}))},qi=P(()=>({title:{fontWeight:700},filterContainer:{display:"flex",flexWrap:"wrap"}})),La=({value:e,onChange:a,disabled:n})=>{const r=qi(),l=o=>i=>{a({...e,[o]:i!=null?i:[]})};return t.createElement(g,{container:!0,className:r.filterContainer,spacing:2},fi.map(o=>t.createElement(g,{item:!0,xs:12,sm:6,md:4,key:o.key},t.createElement(Wi,{facet:o.facet,label:o.label,values:e==null?void 0:e[o.key],onChange:l(o.key),disabled:n}))))},Ui=P(e=>({title:{fontWeight:700},container:{padding:e.spacing(0,1.5)},filterContainer:{display:"flex",flexWrap:"wrap",padding:e.spacing(2)}})),ur=({control:e,disabled:a})=>{const n=Ui();return t.createElement(Pt,{title:a?"Filters":"Filters (optional)"},t.createElement(g,{className:n.container,item:!0,xs:12},!a&&t.createElement(f,{variant:"body2"},"Apply filters so it's only applicable to relevant entities."),t.createElement(g,{item:!0,xs:12},t.createElement(B,{name:"filters",control:e,render:({field:r})=>{var l;return t.createElement(La,{value:(l=r.value)!=null?l:et(),onChange:r.onChange})}}))))},Da=({title:e,open:a,onSave:n,onClose:r})=>{const l=Na(),{hideModal:o,isLoading:i,isReadOnly:s}=ke(),c=j(()=>r?r():o(),[r,o]),{control:m,handleSubmit:d,getValues:u,setValue:p,trigger:h,errors:y,onSubmit:C}=_i(n),{options:v,isLoading:E}=na();return t.createElement(Ge,{handleClose:c,title:e,open:a},t.createElement("form",{onSubmit:d(C)},t.createElement(g,{container:!0,spacing:2,className:l.root},t.createElement(g,{item:!0,xs:9},t.createElement(ut,{className:l.card},t.createElement(f,{className:l.sectionLabel,style:{margin:0}},"Check Details"),t.createElement(ri,{control:m,error:y.checkName,isLoading:i,disabled:s}),t.createElement(ci,{control:m,error:y.description,isLoading:i,disabled:s}),t.createElement(di,{control:m,disabled:s,isLoading:i,options:E?void 0:v}),t.createElement(f,{className:l.sectionLabel},"Rules"),t.createElement(mr,{control:m,getValues:u,setValue:p,trigger:h,disabled:s,name:"expressions",depth:0}),t.createElement(ur,{control:m,disabled:s}),t.createElement(si,{control:m,isLoading:i,disabled:s}),t.createElement(Vi,{control:m,disabled:s}))),t.createElement(g,{item:!0,xs:3},t.createElement(Hi,null))),t.createElement(g,{container:!0,spacing:4,className:l.root},t.createElement(Tt,{onCancel:c,saveButtonText:"Save Check",isLoading:i,onSave:s?void 0:d(C)}))))},Ki="Error Creating Check";function ji(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.createCheck(l);if(!o)throw new Error("Failed to create check.");return o};return ie([ce.CreateCheck],r,{onSuccess:()=>{a.invalidateQueries({queryKey:[I.GetChecks]})},onError:l=>{let o="Failed to create check.";l instanceof Error&&(o=l.message),n({severity:"error",title:Ki,message:o})}})}const Qi=()=>{const{hideModal:e,showAddModal:a,setIsLoading:n}=ke(),{mutateAsync:r,isLoading:l}=ji();return F(()=>{n(l)},[n,l]),t.createElement(Da,{title:"Create a Check",open:a,onSave:async o=>{await r(o,{onSuccess:()=>e()})}})},Yi=({handleDelete:e,handleArchive:a,handleView:n})=>{const[r,l]=b(null),o=!!r,i=c=>{c.stopPropagation(),l(c.currentTarget)},s=c=>{c.stopPropagation(),l(null)};return t.createElement(t.Fragment,null,t.createElement(Ie,{"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:i},t.createElement(ao,null)),t.createElement(ea,{id:"summary-card-action-menu",anchorEl:r,open:o,onClose:s,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},MenuListProps:{"aria-labelledby":"summary-card-action-menu-button"}},n&&t.createElement(ge,{"data-testid":"summary-card-action-view",onClick:c=>{n(c),s(c)}},t.createElement(te,null,t.createElement(ro,{fontSize:"small"})),t.createElement(ae,null,"View")),a&&t.createElement(ge,{"data-testid":"summary-card-action-archive",onClick:c=>{a(c),s(c)}},t.createElement(te,null,t.createElement(no,{fontSize:"small"})),t.createElement(ae,null,"Archive")),e&&t.createElement(ge,{"data-testid":"summary-card-action-delete",onClick:c=>{e(c),s(c)}},t.createElement(te,null,t.createElement(wn,{fontSize:"small"})),t.createElement(ae,null,"Delete"))))},Xi=sl(e=>yl({root:{width:"100%",height:"100%",minHeight:"385px",display:"flex",flexDirection:"column",padding:e.spacing(2),position:"relative"}}))(ut),Zi=P(e=>({root:{position:"relative",height:"100%"},summaryName:{fontSize:e.typography.pxToRem(24),color:e.palette.primary.main,maxHeight:"250px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:6,WebkitBoxOrient:"vertical","-webkit-line-clamp":4,"-webkit-box-orient":"vertical",wordBreak:"break-word"},summaryDescription:{padding:0,maxHeight:"175px",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:6,WebkitBoxOrient:"vertical",wordBreak:"break-word"},card:{paddingTop:e.spacing(1),paddingBottom:0,paddingLeft:e.spacing(1),paddingRight:e.spacing(1)}})),tt=({title:e,description:a,viewLabel:n="View",editLabel:r="Edit",children:l,handleDelete:o,handleArchive:i,handleEdit:s,handleView:c})=>{const m=Zi();return t.createElement(Xi,{className:m.card,"data-testid":e},t.createElement(cl,{title:e,titleTypographyProps:{className:m.summaryName},subheader:t.createElement(tn,{className:m.summaryDescription,content:a!=null?a:""}),action:(c||o||i)&&t.createElement(Yi,{handleView:c,handleDelete:o,handleArchive:i})}),t.createElement(ml,null,l),t.createElement(Fe,null),t.createElement(dl,null,t.createElement(z,{"aria-label":s?r:n,"data-testid":`${e}-button`,size:"medium",color:"primary",role:"link",onClick:s||c,disabled:!c&&!s},s?r:n)))},Ji="Error Deleting Check";function es(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.deleteCheck(l);if(!o)throw new Error(`Failed to delete check ${l}`);return o};return ie([ce.DeleteCheck],r,{onSuccess:()=>Promise.all([a.invalidateQueries({queryKey:[I.GetChecks]}),a.invalidateQueries({queryKey:[I.GetAllPrograms]})]),onError:(l,o)=>{let i=`Failed to delete check ${o}`;l instanceof Error&&(i=l.message),n({severity:"error",title:Ji,message:i})}})}const ts=P(e=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0}})),as=({check:e})=>{var a;const n=ts();return t.createElement(pt,{dense:!0,disablePadding:!0,className:n.cardSection},t.createElement(f,{variant:"overline",color:"textSecondary"},"Check Details"),t.createElement(Ce,{disableGutters:!0,className:n.listItem},t.createElement(le,{title:"Owner"},t.createElement(te,null,t.createElement(Ct,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:n.listItemText,primary:t.createElement($e,{entityRef:(a=e.ownerEntityRef)!=null?a:"No Owner",hideIcon:!0})})))},ns=({check:e})=>{const{id:a,name:n,description:r,isEditable:l,ownerEntityRef:o}=e,i=ye(),s=ne(gn),{loading:c,allowed:m}=Q({permission:Tn,resourceRef:a}),{loading:d,allowed:u}=Q({permission:Hl,resourceRef:a}),{showModal:p}=Ae(),{mutate:h}=es(),y=j(async()=>{await p({title:"Delete Check",message:`Are you sure you want to delete the check '${n!=null?n:a}'?`})&&h(a)},[p,n,h,a]),C=j(()=>{i(s({checkId:a}))},[s,a,i]);return t.createElement(tt,{title:n!=null?n:a,description:r,children:o&&t.createElement(as,{check:e}),handleEdit:l&&!c&&m?C:void 0,handleDelete:l&&!d&&u?y:void 0})},rs=()=>t.createElement("div",{"data-testid":"checks-skeleton"},Array.from({length:10},(e,a)=>t.createElement(g,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(yt,{variant:"rect",height:385})))),ls=P(()=>({searchIcon:{opacity:".5"},clearButton:{height:"36px",width:"36px"}})),Ia=({searchTerm:e,setSearchTerm:a,showClear:n=!0,placeholder:r="Search...",disabled:l,...o})=>{const i=ls(),s=qr(null);F(()=>{!l&&s.current&&s.current.focus()},[l]);const c=d=>{a(d.target.value)},m=()=>{a("")};return t.createElement(Y,{...o,disabled:l,inputRef:s,fullWidth:!0,placeholder:r,value:e,onChange:c,InputProps:{startAdornment:t.createElement(sn,{position:"start"},t.createElement(lo,{className:i.searchIcon,"data-testid":"search-icon"})),endAdornment:n&&e?t.createElement(sn,{position:"end"},t.createElement(Ie,{edge:"end",onClick:m,className:i.clearButton},t.createElement(Cn,null))):null}})};var Ft=(e=>(e.all="All",e.active="Active",e.archived="Archived",e))(Ft||{});const os=P(()=>({searchbar:{maxWidth:"350px"},filters:{display:"flex",alignItems:"center"},dropdownFilters:{margin:"0 15px",display:"flex",alignItems:"center"},selectHolder:{marginLeft:"10px"}})),Oa=({searchPlaceholder:e,isLoading:a,searchTerm:n,setSearchTerm:r,filterAlpha:l,handleAlphabeticalFilterChange:o,filterOwner:i,handleOwnerFilterChange:s,filterStatus:c,handleStatusFilterChange:m,owners:d})=>{const u=os();return t.createElement(g,{item:!0,xs:9,className:u.filters},t.createElement(Ia,{searchTerm:n,disabled:a,setSearchTerm:r,placeholder:e||"Search",variant:"outlined",size:"small",className:u.searchbar}),t.createElement("div",{className:u.dropdownFilters},t.createElement(f,null,"Sort by: "),t.createElement(ta,{className:u.selectHolder,value:l,onChange:o},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:u.dropdownFilters},t.createElement(f,null,"Filter by owner: "),t.createElement(ta,{className:u.selectHolder,value:i,onChange:s},t.createElement("option",{key:"all",value:"all"},"All"),d==null?void 0:d.map((p,h)=>t.createElement("option",{key:p+h,value:p},p)))),c&&m&&t.createElement("div",{className:u.dropdownFilters},t.createElement(f,null,"Filter by status: "),t.createElement(ta,{className:u.selectHolder,value:c,onChange:m},Object.keys(Ft).map(p=>t.createElement(t.Fragment,{key:p},t.createElement("option",{value:p},Ft[p]))))))},is=(e,a)=>e==null?void 0:e.sort((n,r)=>{var l,o,i,s;const c=(o=(l=n==null?void 0:n.name)==null?void 0:l.toLocaleLowerCase())!=null?o:n==null?void 0:n.id.toLocaleLowerCase(),m=(s=(i=r==null?void 0:r.name)==null?void 0:i.toLocaleLowerCase())!=null?s:r==null?void 0:r.id.toLocaleLowerCase();return!c||!m?0:c<m?a==="ascending"?-1:1:c>m?a==="ascending"?1:-1:0}),Fa=e=>{const a=e==null?void 0:e.map(n=>n==null?void 0:n.ownerEntityRef).filter(n=>n!=="");return[...new Set(a)]},_e=({searchTermProp:e,filterAlphaProp:a,filterOwnerProp:n,filterStatusProp:r,checks:l,tracks:o,campaigns:i})=>{var s,c,m,d;const u=((s=l!=null?l:o)!=null?s:i)||[],p=(c=u==null?void 0:u.filter)==null?void 0:c.call(u,v=>{var E;return((E=v==null?void 0:v.name)!=null?E:v==null?void 0:v.id).toLocaleLowerCase().includes(e.toLocaleLowerCase())}),h=n&&n!=="all"?(m=p==null?void 0:p.filter)==null?void 0:m.call(p,v=>{var E;return((E=v==null?void 0:v.ownerEntityRef)==null?void 0:E.toLowerCase())===n.toLowerCase()}):p,y=(r==null?void 0:r.toLowerCase())===Ft.archived.toLowerCase(),C=r?(d=h==null?void 0:h.filter)==null?void 0:d.call(h,v=>y?v.archived:!v.archived):h;return a==="default"?C:is(C,a)};var X=(e=>(e.Alpha="default",e.Owner="all",e.Status="all",e))(X||{});const He=12,ss=P(e=>({pagination:{width:"-webkit-fill-available",display:"flex",justifyContent:"center",position:"fixed",bottom:"0",backgroundColor:e.palette.type==="dark"?"#333333":"#F8F8F8",marginRight:"40px"}})),Aa=({response:e,listingsPerPage:a,cursor:n,setCursor:r,prevCursors:l,setPrevCursors:o,labelPerPageDropdown:i,urlRoute:s})=>{var c;const m=ss(),d=e!=null&&e.edges?e==null?void 0:e.edges[(e==null?void 0:e.edges.length)-1]:{cursor:""},[u,p]=b(0),h=()=>{o(E=>[...E,n]),r(d==null?void 0:d.cursor)},y=()=>{r(l[l.length-1]),o(E=>E.slice(0,-1))},C=(E,k)=>{p(S=>(k>S?h():y(),k))},v=E=>{window.open(`/soundcheck/${s!=null?s:"tracks?tracksPerPage="}${E.target.value}`,"_self")};return t.createElement(aa,{className:m.pagination,component:"div",count:(c=e==null?void 0:e.totalCount)!=null?c:-1,rowsPerPage:a!=null?a:10,onPageChange:C,page:u,onRowsPerPageChange:v,labelRowsPerPage:i!=null?i:"Listings per page:",rowsPerPageOptions:[He,He*2,He*4]})},cs=P(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"center"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},pagination:{marginTop:e.spacing(1)}})),ms=({checksPerPage:e,currentCursor:a})=>{const n=cs(),[r,l]=b(a),[o,i]=b([]),{data:s,isLoading:c}=xt(void 0,e,r),{loading:m,allowed:d}=Q({permission:zl}),[u,p]=b(s);F(()=>{s&&p(()=>{var L;return{endCursor:s.endCursor,totalCount:s.totalCount,hasNextPage:(L=s==null?void 0:s.hasNextPage)!=null?L:!1,edges:s.edges}})},[s]);const h=u==null?void 0:u.edges.map(L=>L.checker),{setShowAddModal:y}=ke(),[C,v]=b(),[E,k]=b(""),[S,N]=b(X.Alpha),[x,T]=b(X.Owner),[H,ee]=b([]),re=E.length>0||S!==X.Alpha||x!==X.Owner,de=L=>{const R=_e({searchTermProp:E,filterAlphaProp:L.target.value,filterOwnerProp:x,checks:h!=null?h:[]});N(L.target.value),v(R)},_=L=>{const R=_e({searchTermProp:E,filterAlphaProp:S,filterOwnerProp:L.target.value,checks:h!=null?h:[]});T(L.target.value),v(R)};return F(()=>{const L=u==null?void 0:u.edges.map(K=>K.checker),R=Fa(L!=null?L:[]);v(L),ee(R!=null?R:[])},[c,u]),F(()=>{const L=u==null?void 0:u.edges.map(K=>K.checker),R=_e({searchTermProp:E,filterAlphaProp:S,filterOwnerProp:x,checks:L!=null?L:[]});v(R)},[E,S,x,u]),!c&&!re&&!(C!=null&&C.length)?t.createElement(ra,{title:Lt.title,description:Lt.description,imgSrc:ua,action:!m&&t.createElement(z,{disabled:!d,variant:"contained",color:"primary",onClick:()=>y(!0)},Lt.callToAction)}):t.createElement(g,{container:!0,direction:"row",className:n.container},t.createElement(g,{container:!0,spacing:4,className:n.header},t.createElement(Oa,{searchPlaceholder:"Search available checks",isLoading:c,searchTerm:E,setSearchTerm:k,filterAlpha:S,handleAlphabeticalFilterChange:de,filterOwner:x,handleOwnerFilterChange:_,owners:H}),t.createElement(g,{item:!0,xs:3},t.createElement("div",{className:n.headerButtons},!m&&t.createElement(z,{disabled:!d,variant:"contained",color:"primary",onClick:()=>y(!0)},"Create Check")))),t.createElement(g,{container:!0,spacing:4,role:"list","aria-label":"checks"},c?t.createElement(rs,null):C==null?void 0:C.map(L=>t.createElement(g,{key:L.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(ns,{check:L})))),t.createElement("div",{className:n.pagination},t.createElement(Aa,{response:u,listingsPerPage:e,cursor:r,setCursor:l,prevCursors:o,setPrevCursors:i,labelPerPageDropdown:"Checks Per Page:",urlRoute:"checks?checksPerPage="})))},ds=()=>{const[e]=Yt(),a=e.get("checksPerPage"),n=a?parseInt(a,10):He,{showAddModal:r}=ke();return t.createElement("div",null,t.createElement(ms,{checksPerPage:n}),r&&t.createElement(Qi,null))},us=()=>t.createElement(Yn,null,t.createElement(ds,null)),pr=P(e=>{const a=e.palette.type==="dark",n=a?e.palette.common.white:e.palette.common.black,r=a?e.palette.grey[700]:e.palette.common.white,l=a?e.palette.grey[500]:e.palette.grey[300],o=a?e.palette.common.white:e.palette.common.black;return{chip:{width:"100%",height:"36px",color:n,justifyContent:"space-between",background:r,border:`1px solid ${l}`,borderRadius:4,boxShadow:"0px 2px 5px rgba(0, 0, 0, 0.1)",cursor:"move","& *":{fontWeight:700},"&:focus":{background:r,borderColor:o,"& $icon":{color:e.palette.primary.main}}},icon:{},deleteButton:{marginRight:"auto"}}}),gr=({chip:e,disabled:a})=>{var n;const[r,l]=oo(()=>({type:"chip",item:{id:e.id,label:e.label},collect:i=>({isDragging:i.isDragging()})})),o=pr();return t.createElement(gt,{ref:l,label:e.label,className:o.chip,icon:t.createElement(Dn,{"data-testid":"drag-indicator-icon"}),disabled:a,onDelete:()=>{},deleteIcon:t.createElement(le,{title:(n=e.description)!=null?n:""},t.createElement(so,{className:o.icon,"data-testid":"visibility-icon"}))})},ps=P(e=>({loadingContainer:{marginTop:e.spacing(1),display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}})),$a=()=>{const e=ps();return t.createElement(g,{container:!0,className:e.loadingContainer},t.createElement(ul,null))},gs=P(e=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center"},subtitle:{color:e.palette.primary.main,fontWeight:"bold"},chipContainer:{display:"flex",flexDirection:"column",alignItems:"flex-start",padding:e.spacing(1),gap:e.spacing(1)}})),hs=({chips:e,disabled:a})=>t.createElement(t.Fragment,null,e.map(n=>t.createElement(gr,{disabled:a,key:n.id,chip:n}))),vs=()=>t.createElement(f,{variant:"body1",color:"textSecondary"},"There are no matches."),hr=({isLoading:e,chips:a=[],disabled:n,label:r})=>{const l=gs(),[o,i]=b(""),s=a.filter(d=>d.label.toLowerCase().includes(o.toLowerCase())),c=a.length>0||o;let m=null;return e?m=t.createElement($a,null):s.length>0?m=t.createElement(hs,{disabled:n!=null?n:!1,chips:s}):c&&(m=t.createElement(vs,null)),t.createElement(g,{container:!0},t.createElement(g,{item:!0,xs:12,className:l.columnHeader},t.createElement(f,{className:l.subtitle},r!=null?r:"Checks")),t.createElement(g,{item:!0,xs:12},t.createElement(Ia,{searchTerm:o,disabled:e||n,setSearchTerm:i,placeholder:"Search available checks",variant:"outlined",size:"small"})),t.createElement(g,{item:!0,className:l.chipContainer,xs:12},m))},Es=P(e=>({button:{border:"none",fontWeight:700,fontSize:e.typography.subtitle2.fontSize,lineHeight:"19px",color:e.palette.primary.main,textTransform:"none"}})),At=({label:e,...a})=>{const n=Es();return t.createElement(z,{className:n.button,...a,"aria-label":e},e)},fs=P(e=>({input:{border:`1px solid ${e.palette.grey[600]}`,borderRadius:4,padding:e.spacing(1),minHeight:80},hoverBackground:{background:e.palette.type==="dark"?e.palette.grey[600]:e.palette.grey[200]},normalBackground:{background:e.palette.type==="dark"?e.palette.grey[700]:e.palette.common.white},error:{border:"1px solid red"},chipContainer:{display:"flex",flexDirection:"column",fontWeight:"bold",fontSize:e.typography.pxToRem(16),color:e.palette.grey[600]}})),vr=({chips:e,onDelete:a,onDrop:n,error:r=!1,placeholder:l="",disabled:o})=>{const i=fs(),s=pr(),[{isOver:c},m]=io(()=>({accept:"chip",drop:d=>{n(d)},collect:d=>({isOver:d.isOver()})}));return t.createElement("div",{ref:m,className:`${i.input} ${r?i.error:""} ${c?i.hoverBackground:i.normalBackground}`,"data-testid":"droppable-input"},t.createElement("div",{className:i.chipContainer},e!=null&&e.length?e.map(d=>t.createElement(gt,{key:d.id,label:d.label,className:s.chip,icon:t.createElement(Dn,null),style:{cursor:"pointer"},onDelete:()=>a(d),disabled:o})):l))},ys=({index:e,disabled:a})=>{var n,r;const{control:l,formState:{errors:o}}=Et(),{fields:i,remove:s,append:c}=ft({control:l,name:`levels.${e}.levelChips`,rules:{required:!0}}),m=j(u=>{c(u)},[c]),d=j(u=>{const p=xn(i,h=>h.id===u.id);s(p)},[s,i]);return t.createElement(vr,{chips:i,onDelete:d,onDrop:m,error:!!((r=(n=o==null?void 0:o.levels)==null?void 0:n[e])!=null&&r.levelChips),placeholder:"Drag and drop checks here to include them in this level",disabled:a})},Cs=P(e=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center"},subtitle:{fontWeight:"bold",color:e.palette.primary.main},levelHeader:{display:"flex",alignItems:"center"},removeButton:{minWidth:150},inputNameBase:{fontSize:e.typography.subtitle1.fontSize,fontWeight:700},inputDescriptionBase:{fontSize:e.typography.fontSize,fontWeight:"normal"}})),bs=({disabled:e})=>{const a=Cs(),{control:n,formState:{errors:r},getValues:l}=Et(),{fields:o,remove:i,append:s}=ft({control:n,name:"levels"});return t.createElement(g,{container:!0},t.createElement(g,{item:!0,xs:12,className:a.columnHeader},t.createElement(f,{className:a.subtitle},"Levels"),!e&&t.createElement(At,{label:"Add Level",startIcon:t.createElement(In,null),onClick:()=>s({levelName:`Level ${o.length+1}`,levelDescription:"",levelChips:[]}),disabled:e})),t.createElement(g,{container:!0,item:!0,spacing:5},o.map((c,m)=>{var d,u;return t.createElement(g,{container:!0,item:!0,xs:12,spacing:2,key:c.id},t.createElement(g,{item:!0,xs:12,className:a.levelHeader},t.createElement(g,{container:!0,spacing:1},t.createElement(g,{item:!0,xs:!0},t.createElement(Be,{name:`levels.${m}.levelName`,placeholder:"Untitled level",control:n,disabled:e,label:"Level Name",variant:"outlined",size:"small",inputProps:{classes:{input:a.inputNameBase}},margin:"none",rules:{required:!0},error:(u=(d=r==null?void 0:r.levels)==null?void 0:d[m])==null?void 0:u.levelName})),!e&&o.length>1&&t.createElement(g,{item:!0,className:a.removeButton},t.createElement(At,{label:"Remove Level",startIcon:t.createElement(On,null),onClick:()=>i(m),disabled:e})))),t.createElement(g,{item:!0,xs:12},t.createElement(ys,{index:m,disabled:e})),t.createElement(g,{item:!0,xs:12},t.createElement(Be,{name:`levels.${m}.levelDescription`,placeholder:"Enter description here",control:n,disabled:e,label:`${l(`levels.${m}.levelName`)} description`,variant:"outlined",size:"small",inputProps:{classes:{input:a.inputDescriptionBase},"aria-label":`${l(`levels.${m}.levelName`)} description`},margin:"none"})))})))},ks=({disabled:e})=>{const a=Na(),{control:n,formState:{errors:r}}=Et();return t.createElement(g,{className:a.selectMargin,item:!0,xs:12},t.createElement(Be,{name:"trackName",placeholder:"Enter a name for the track",control:n,disabled:e,label:"Name",error:r.trackName,messages:{required:"Track name is required",maxLength:"Track name must be at least 1 character and less than 100 characters"},rules:{required:!0,maxLength:100}}))},xs=({disabled:e,selectedTrack:a})=>{const{options:n,isLoading:r}=na(),{user:l,userEntityRef:o}=Qe(),{control:i}=Et();let s=n==null?void 0:n.map(m=>({value:m.ref,label:m.name}));o&&(s=[{value:o,label:l==null?void 0:l.metadata.name},...s]);const c=a==null?void 0:a.ownerEntityRef;return c&&o!==c&&!s.some(m=>m.value===c)&&(s=[{value:a.ownerEntityRef,label:W(a.ownerEntityRef).name},...s]),t.createElement(Nt,{name:"ownerEntityRef",selectLabel:"Owner",control:i,disabled:e,options:r?void 0:ia(s,"value"),rules:{required:!0}})};function Ma(){const{data:e,isLoading:a}=xt(),n=q(()=>e==null?void 0:e.edges.map(o=>o.checker),[e==null?void 0:e.edges]),r=q(()=>{var o;return(o=n==null?void 0:n.filter(i=>!!i).map(i=>{var s,c,m;return{id:(s=i.id)!=null?s:"",label:(c=i.name)!=null?c:i.id,description:(m=i.description)!=null?m:""}}))!=null?o:[]},[n]),l=q(()=>n==null?void 0:n.reduce((o,i)=>{var s,c,m,d;return o[i.id]={id:i.id,name:(s=i.name)!=null?s:i.id,description:(c=i.description)!=null?c:"",filter:(m=i.filter)!=null?m:void 0,schedule:(d=i.schedule)!=null?d:void 0},o},{}),[n]);return{checkChips:r,checkersMap:l,checkersLoading:a}}const ws={trackName:"",trackDescription:"",ownerEntityRef:"",levels:[{levelName:"Level 1",levelDescription:"",levelChips:[]}]},Ts=({name:e,description:a,ownerEntityRef:n,filter:r,levels:l})=>({trackName:e,trackDescription:a!=null?a:"",ownerEntityRef:n,filters:ba(r),levels:(l==null?void 0:l.map(o=>{var i,s,c;return{levelName:(s=(i=o.name)!=null?i:`Level ${o.ordinal}`)!=null?s:"Level 1",levelDescription:(c=o.description)!=null?c:"",levelChips:o.checks.map(m=>{var d;return{id:m.id,label:(d=m.name)!=null?d:m.id}})}}))||[]}),Er=(e,a,n)=>{var r,l,o;return{id:(r=n==null?void 0:n.id)!=null?r:ma(),ownerEntityRef:e.ownerEntityRef,description:e.trackDescription,name:e.trackName,documentationURL:(l=n==null?void 0:n.documentationURL)!=null?l:"",levels:(o=e.levels)==null?void 0:o.map((i,s)=>{var c,m;return{ordinal:s+1,name:(c=i.levelName)!=null?c:"",description:(m=i.levelDescription)!=null?m:"",checks:i.levelChips.map(d=>a[d.id])}}),filter:tr(e.filters)}},Ss=e=>{const{selectedItem:a}=Me(),n=q(()=>a?Ts(a):ws,[a]),r=vt({defaultValues:n}),{userEntityRef:l}=Qe();F(()=>{!a&&l&&!r.getValues("ownerEntityRef")&&r.setValue("ownerEntityRef",l)},[a,l,r]);const{checkChips:o,checkersLoading:i,checkersMap:s}=Ma(),c=new Set(r.getValues("levels").flatMap(u=>u.levelChips.map(p=>p.id))),m=o.filter(u=>!c.has(u.id)),{showModal:d}=Ae();return{formMethods:r,onSubmit:async u=>{if(!await d({title:"Save Check",message:`Are you sure you want to save track: ${u.trackName}?`,error:!1}))return;const p=Er(u,s!=null?s:{},a);e(p)},selectableChips:m,checkersLoading:i}},Ps=P(e=>({regularFontSize:{fontSize:e.typography.fontSize,fontWeight:"bold"},description:{fontWeight:"normal",fontSize:e.typography.fontSize},ownerDescription:{margin:e.spacing(-2,0,2,0)},root:{overflow:"hidden",display:"flex",padding:e.spacing(1),marginBottom:"53px"}})),fr=({onSave:e,title:a,open:n,handleClose:r})=>{const{selectedItem:l,isLoading:o,setSelectedItem:i,isReadOnly:s}=Me(),{formMethods:c,onSubmit:m,selectableChips:d,checkersLoading:u}=Ss(e),{control:p,handleSubmit:h}=c,y=Ps(),C=Na(),v=s||!!l&&!l.isEditable;return t.createElement(pa,{backend:ga},t.createElement(Ge,{handleClose:r,title:a,open:n},t.createElement($l,{...c},t.createElement("form",{onSubmit:h(m)},t.createElement(g,{container:!0,spacing:4,className:y.root},t.createElement(g,{item:!0,xs:12},t.createElement(g,{item:!0,xs:12},t.createElement(f,{className:C.sectionLabel,style:{margin:0}},"Track Details"),t.createElement(ks,{disabled:o||v})),t.createElement(g,{item:!0,xs:12},t.createElement(g,{item:!0,xs:12},t.createElement(Rt,{name:"trackDescription",control:p,label:"Description",placeholder:"Enter a brief description about the track",disabled:o||v})))),t.createElement(g,{item:!0,xs:12},t.createElement(g,{item:!0,xs:12},t.createElement(f,{className:C.sectionLabel},"Track Owner"),!v&&t.createElement(f,{className:`${y.ownerDescription} ${y.description}`},"Select an owner for the track. Defaults to the current user.")),t.createElement(g,{item:!0,xs:12},t.createElement(xs,{disabled:o||v,selectedTrack:l!=null?l:void 0}))),t.createElement(g,{item:!0,xs:12},t.createElement(ur,{control:p,disabled:o||v})),t.createElement(g,{item:!0,xs:12},t.createElement(g,{container:!0,spacing:4},t.createElement(g,{item:!0,xs:12},t.createElement(f,{className:C.sectionLabel,style:{margin:0}},"Track Levels"),!v&&t.createElement(f,{className:y.description},"Add the checks that apply to each level. You can preview the checks to see the rules that apply to each check.")),!v&&t.createElement(g,{item:!0,xs:5},t.createElement(hr,{chips:d,isLoading:u||o,disabled:v})),t.createElement(g,{item:!0,xs:7},t.createElement(bs,{disabled:v}))))),t.createElement(g,{container:!0,spacing:4,className:y.root},t.createElement(Tt,{onCancel:()=>{i(null),r()},saveButtonText:"Save Track",isLoading:o||u,onSave:v?void 0:h(m),disableSave:v}))))))},Rs=()=>{const{setIsLoading:e,setShowAddModal:a,showAddModal:n}=Me(),{mutateAsync:r,isLoading:l}=Wo();return F(()=>{e(l)},[e,l]),t.createElement(fr,{handleClose:()=>a(!1),title:"Create Track",open:n,onSave:async o=>{await r(o,{onSuccess:()=>a(!1)})}})},Ns=P(e=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0}})),Ls=({track:e})=>{var a,n,r;const l=Ns(),o=(n=(a=e.levels)==null?void 0:a.length)!=null?n:0,i=(r=e.levels)==null?void 0:r.reduce((s,c)=>s+c.checks.length,0);return t.createElement(pt,{dense:!0,disablePadding:!0,className:l.cardSection},t.createElement(f,{variant:"overline",color:"textSecondary"},"Track Details"),t.createElement(Ce,{disableGutters:!0,className:l.listItem},t.createElement(le,{title:"Levels"},t.createElement(te,null,t.createElement(uo,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:l.listItemText,primary:t.createElement(f,{variant:"body2",color:"textSecondary"},`${o} ${o===1?"Level":"Levels"}`)})),t.createElement(Ce,{disableGutters:!0,className:l.listItem},t.createElement(le,{title:"Checks"},t.createElement(te,null,t.createElement(mo,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:l.listItemText,primary:t.createElement(f,{variant:"body2",color:"textSecondary"},`${i} ${i===1?"Check":"Checks"}`)})),e.documentationURL&&t.createElement(Ce,{disableGutters:!0,className:l.listItem},t.createElement(le,{title:"Documentation"},t.createElement(te,null,t.createElement(co,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:l.listItemText,primary:t.createElement(Kr,{to:e.documentationURL,target:"_blank",rel:"noopener noreferrer"},"Learn more")})),t.createElement(Ce,{disableGutters:!0,className:l.listItem},t.createElement(le,{title:"Owner"},t.createElement(te,null,t.createElement(Ct,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:l.listItemText,primary:t.createElement($e,{entityRef:e.ownerEntityRef,hideIcon:!0})})))},Ds="Error Deleting Track";function Is(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.deleteProgram(l);if(!o)throw new Error(`Failed to delete track ${l}`);return o};return ie([ce.DeleteProgram],r,{onSuccess:()=>{const l=[I.GetAllPrograms,I.GetOverallTrackPassRate,I.GetIndividualTrackPassRate];for(const o of l)a.invalidateQueries({queryKey:[o]})},onError:(l,o)=>{let i=`Failed to delete track ${o}`;l instanceof Error&&(i=l.message),n({severity:"error",title:Ds,message:i})}})}const Os=({summary:e})=>{const{loading:a,allowed:n}=Q({permission:Sn,resourceRef:e.id}),{loading:r,allowed:l}=Q({permission:Wl,resourceRef:e.id}),{showModal:o}=Ae(),{mutate:i}=Is(),s=ye(),c=ne(hn),m=j(async()=>{await o({title:"Delete Track",message:`Are you sure you want to delete track ${e.name}?`})&&i(e.id)},[o,e.id,e.name,i]),d=j(()=>{s(c({trackId:e.id}))},[s,e.id,c]);return t.createElement(tt,{title:e.name,description:e.description,children:t.createElement(Ls,{track:e}),handleEdit:e.isEditable&&!a&&n?d:void 0,handleDelete:e.isEditable&&!r&&l?m:void 0})},Fs=()=>t.createElement("div",{"data-testid":"tracks-skeleton"},Array.from({length:6},(e,a)=>t.createElement(g,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(yt,{variant:"rect",height:385}))));var $t=(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))($t||{});const As=P(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},pagination:{marginTop:e.spacing(1)}})),$s=({tracksPerPage:e,currentCursor:a})=>{var n;const r=As(),[l,o]=b(a),[i,s]=b([]),{data:c,isLoading:m}=Ea(void 0,e,l),{loading:d,allowed:u}=Q({permission:ql}),[p,h]=b(c);F(()=>{c&&h(()=>{var R;return{endCursor:c.endCursor,totalCount:c.totalCount,hasNextPage:(R=c==null?void 0:c.hasNextPage)!=null?R:!1,edges:c.edges}})},[c]);const y=(n=p==null?void 0:p.edges)==null?void 0:n.map(R=>R==null?void 0:R.program),{setShowAddModal:C}=Me(),[v,E]=b(),[k,S]=b(""),[N,x]=b(X.Alpha),[T,H]=b(X.Owner),[ee,re]=b([]),de=k.length>0||N!==X.Alpha||T!==X.Owner,_=R=>{const K=_e({searchTermProp:k,filterAlphaProp:R.target.value,filterOwnerProp:T,tracks:y!=null?y:[]});x(R.target.value),E(K)},L=R=>{const K=_e({searchTermProp:k,filterAlphaProp:N,filterOwnerProp:R.target.value,tracks:y!=null?y:[]});H(R.target.value),E(K)};return F(()=>{const R=p==null?void 0:p.edges.map($=>$.program),K=Fa(R!=null?R:[]);E(R),re(K!=null?K:[])},[m,p]),F(()=>{const R=p==null?void 0:p.edges.map($=>$.program),K=_e({searchTermProp:k,filterAlphaProp:N,filterOwnerProp:T,tracks:R!=null?R:[]});E(K)},[k,N,T,p]),!m&&!de&&!(v!=null&&v.length)?t.createElement(ra,{title:$t.title,description:$t.description,imgSrc:ua,action:!d&&t.createElement(z,{disabled:!u,variant:"contained",color:"primary",onClick:()=>C(!0)},$t.callToAction)}):t.createElement(g,{container:!0,direction:"row",className:r.container},t.createElement(g,{container:!0,spacing:4,className:r.header},t.createElement(Oa,{searchPlaceholder:"Search available tracks",isLoading:m,searchTerm:k,setSearchTerm:S,filterAlpha:N,handleAlphabeticalFilterChange:_,filterOwner:T,handleOwnerFilterChange:L,owners:ee}),t.createElement(g,{item:!0,xs:3},t.createElement("div",{className:r.headerButtons},!d&&t.createElement(z,{disabled:!u,variant:"contained",color:"primary",onClick:()=>C(!0)},"Create Track")))),t.createElement(g,{container:!0,spacing:4,role:"list","aria-label":"tracks"},m?t.createElement(Fs,null):v==null?void 0:v.map(R=>t.createElement(g,{key:R.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(Os,{summary:R})))),t.createElement("div",{className:r.pagination},t.createElement(Aa,{response:p,listingsPerPage:e,cursor:l,setCursor:o,prevCursors:i,setPrevCursors:s,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})))},Ms=()=>{const{showAddModal:e}=Me(),[a]=Yt(),n=a.get("tracksPerPage"),r=n?parseInt(n,10):He;return t.createElement("div",null,t.createElement(jr,{variant:"info",message:"Programs will now be referred to as Tracks throughout the Soundcheck UI.",id:"programTrackBanner"}),t.createElement($s,{tracksPerPage:r}),e&&t.createElement(Rs,null))},Gs=()=>t.createElement(jn,null,t.createElement(Ms,null)),Bs=e=>e?e.palette.type:"",yr=e=>Bs(e).toLowerCase()==="dark",ve=e=>yr(e)?e.palette.grey[200]:e.palette.grey[800],Mt=e=>yr(e)?Jr:el;function Ga(e,a){return(a?e.minus({days:a}):e).toFormat("MMM dd")}function we(e){const a=kt.utc();return e.map((n,r)=>({name:Ga(a,e.length-r-1),passRate:n}))}var Vs=(e=>(e.Bar="bar",e.Line="line",e))(Vs||{});const _s=-25,Pe=[0,100],Cr=85,Ba=25,Gt="name",Hs=250,Bt=.5,br="circle",kr=8,xr="monotone",Vt=({children:e})=>t.createElement(Fn,{minHeight:Hs,debounce:1},e),zs=G(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}})),Ws=()=>{const e=[{x:"A",y:25},{x:"B",y:50},{x:"C",y:75}],a=zs();return t.createElement("div",{className:a.container},t.createElement(Vt,null,t.createElement(ha,{data:e},t.createElement(bt,{strokeDasharray:"3 3",vertical:!1,opacity:Bt}),t.createElement(Xe,{dataKey:"x",stroke:"#ccc",hide:!0}),t.createElement(Ze,{domain:Pe,stroke:"#ccc",hide:!0}),t.createElement(va,{type:"monotone",dataKey:"y",stroke:"#ccc",dot:!1}))),t.createElement(f,{className:a.chartMessage},"No Data"))},qs=P(e=>({legend:{color:ve(e)}})),_t=({data:e,lines:a})=>{const n=Oe(),r=Mt(n),l=ve(n),o=qs();return e.length?t.createElement(Vt,null,t.createElement(ha,{data:e},t.createElement(bt,{vertical:!1,opacity:Bt}),t.createElement(Xe,{dataKey:Gt,stroke:l}),t.createElement(Ze,{width:Ba,domain:Pe,stroke:l}),t.createElement(An,{position:{y:_s},contentStyle:{backgroundColor:n.palette.background.paper}}),a.length>1&&t.createElement($n,{iconType:br,iconSize:kr,formatter:i=>t.createElement("span",{className:o.legend},i)}),a.map((i,s)=>t.createElement(va,{key:i.dataKey,dataKey:i.dataKey,stroke:r[s%r.length],strokeWidth:2,dot:!1,name:i.name,type:xr})))):t.createElement(Ws,null)},Us=({data:e,lines:a})=>{const n=Oe(),r=Mt(n);return t.createElement(Fn,{height:50,width:100},t.createElement(ha,{data:e},t.createElement(Xe,{hide:!0,dataKey:Gt}),t.createElement(Ze,{width:0,domain:Pe}),a.map((l,o)=>t.createElement(va,{key:l.dataKey,dataKey:l.dataKey,stroke:r[o%r.length],strokeWidth:2,dot:!1,name:l.name,type:xr}))))},at=({chartData:e,tableChart:a})=>{const n=[{dataKey:"passRate",name:"Pass rate"}];return a?t.createElement(Us,{data:e,lines:n}):t.createElement(_t,{data:e,lines:n})};var D=(e=>(e.Entity="Entity",e.Kind="Entity Kind",e.Type="Entity Type",e.EntityOwner="Entity Owner",e.Lifecycle="Entity Lifecycle",e.Track="Track",e.Level="Track Level",e.Check="Check",e.CheckOwner="Check Owner",e))(D||{});function Ks(e){var a;const n=A(M),[r,l]=b(null),o=async()=>(await n.getEntityRefsForTechHealthFilter(e)).entityRefsForTechHealthFilter,i=J([I.GetSoftwareEntityRefsForUser,e],o,{retry:!1,onError:l,enabled:e!==null,staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1});return{data:(a=i.data)!=null?a:[],isLoading:i.isLoading,error:r}}const js=(e,a)=>{var n,r,l,o;const i=[];for(const c of e)i.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 m of(r=c.levels)!=null?r:[])for(const d of(l=m.checks)!=null?l:[])s.includes(d.id)||(s.push(d.id),i.push({label:(o=d.name)!=null?o:d.id,value:d.id}));return i},Qs=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}`}))},Ys=(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}})},Xs=()=>{const[e,a]=b(!1),{userEntityRef:n}=Qe(),{data:r,isLoading:l}=Ks(n),{data:o,isLoading:i}=Cl(),s=q(()=>Ye.mapValues(Ye.keyBy(o!=null?o:[],"ref"),x=>x.name),[o]),{data:c,isLoading:m}=Ea(void 0,100),d=q(()=>{var x;return(x=c==null?void 0:c.edges.map(T=>T.program))!=null?x:[]},[c]),{data:u,isLoading:p}=xt(void 0,100),h=q(()=>{var x;return(x=u==null?void 0:u.edges.map(T=>T.checker))!=null?x:[]},[u]),{data:y,isLoading:C}=Ot("kind"),{data:v,isLoading:E}=Ot("spec.lifecycle"),{data:k,isLoading:S}=Ot("spec.type"),N=q(()=>{var x;return{[D.Kind]:(y!=null?y:[]).map(T=>({label:T,value:T})),[D.Lifecycle]:(v!=null?v:[]).map(T=>({label:T,value:T})),[D.Type]:(k!=null?k:[]).map(T=>({label:T,value:T})),[D.Entity]:r.map(T=>({label:W(T).name,value:T})),[D.EntityOwner]:(x=o==null?void 0:o.map(T=>({label:T.name,value:T.ref})))!=null?x:[],[D.Track]:d.map(T=>({label:T.name,value:T.id})),[D.Level]:Qs(d),[D.Check]:js(h,d),[D.CheckOwner]:Ys(h,s)}},[y,v,k,r,o,s,d,h]);return F(()=>{a(C||E||S||l||i||m||p)},[C,E,S,l,i,m,p]),{facetOptions:N,isLoading:e}},ze=30,Re=2,We=90,qe=()=>Object.fromEntries(Object.values(D).map(e=>[e,[]])),Zs=(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))}))},Js=(e,a,n,r)=>({checkIds:a[D.Check].length?{included:a[D.Check]}:void 0,checkOwners:a[D.CheckOwner].length?{included:a[D.CheckOwner]}:void 0,entityOwners:a[D.EntityOwner].length?{included:a[D.EntityOwner]}:void 0,entityRefs:a[D.Entity].length?{included:a[D.Entity]}:void 0,tracks:Zs(e[D.Track],a[D.Track],a[D.Level]),numberOfDays:n!=null?n:ze,context:r?{loggedInUser:r}:void 0,entityTypes:a[D.Type].length?{included:a[D.Type]}:void 0,entityKinds:a[D.Kind].length?{included:a[D.Kind]}:void 0,entityLifecycles:a[D.Lifecycle].length?{included:a[D.Lifecycle]}:void 0}),ec=P(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}})),tc=()=>{const e=ec();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(he,null)))},wr=it({facetOptionsLoading:!1,getFacetOptions:()=>[],getFacetOptionLabel:()=>"",facetFilters:qe(),clearAllFilters:()=>{},getSelectedFacetValues:()=>[],setSelectedFacetValues:()=>{},numberOfDays:ze,setNumberOfDays:()=>{},filter:{},loggedInUser:"Unknown"}),Ee=()=>st(wr),ac=e=>{const{userEntityRef:a}=Qe(),{isLoading:n,facetOptions:r}=Xs(),[l,o]=Bn("soundcheck.techHealth.facetFilters",qe());l&&Object.values(D).forEach(C=>{l[C]||(l[C]=[])});const[i,s]=Bn("soundcheck.techHealth.numberOfDays",ze),c=q(()=>Js(r,l!=null?l:qe(),i,a),[l,r,i,a]),m=()=>{s(ze),o(qe())},d=C=>r[C].map(v=>v.value),u=(C,v)=>{var E;let k=(E=r[C].find(S=>S.value===v))==null?void 0:E.label;if(!k)try{const S=W(v);k=Al(S)}catch{}return k!=null?k:v},p=C=>l?l[C]:[],h=(C,v)=>{const E={...l!=null?l:qe()};E[C]=v,o(E)},y={facetOptionsLoading:n,getFacetOptions:d,getFacetOptionLabel:u,facetFilters:l!=null?l:qe(),clearAllFilters:m,getSelectedFacetValues:p,setSelectedFacetValues:h,numberOfDays:i!=null?i:ze,setNumberOfDays:s,filter:c!=null?c:{},loggedInUser:"Unknown"};return n?t.createElement(tc,null):t.createElement(wr.Provider,{...e,value:y})},nc={hidden:{height:0,opacity:0,overflow:"hidden"},visible:{height:"auto",opacity:1,overflow:"visible"}};function rc({visible:e,...a}){return t.createElement(go.div,{...a,animate:e?"visible":"hidden",initial:"hidden",variants:nc})}const lc=P(({palette:e,spacing:a})=>({header:{display:"flex",alignItems:"center",flexDirection:"row",cursor:"pointer"},headerTitle:{flex:"1 1 0%"},chip:{backgroundColor:e.info.dark,textOverflow:"ellipsis",overflow:"hidden"},autoCompleteInput:{"&& input":{margin:a(1,0,0,0),width:"100%"}}})),oc=({facet:e})=>{var a;const n=lc(),{getFacetOptions:r,getFacetOptionLabel:l,getSelectedFacetValues:o,setSelectedFacetValues:i}=Ee(),[s,c]=b(!!((a=o(e))!=null&&a.length)),[m,d]=b(!1),[u,p]=b(""),h=()=>{c(v=>!v)},y=v=>{(v.key==="Enter"||v.key===" ")&&h()},C=v=>{if(e===D.Entity&&v[v.length-1]){const E=v[v.length-1];if(!E.includes(":")||!E.includes("/")){d(!0),p("Custom entities require a valid kind and namespace such as: component:default/entity");return}}d(!1),p(""),i(e,v)};return t.createElement(w,null,t.createElement("div",{className:n.header,onClick:h,onKeyDown:y,role:"button",tabIndex:0},t.createElement(w,{className:n.headerTitle},t.createElement(f,{variant:"subtitle2"},e)),t.createElement(w,null,t.createElement(Ie,{size:"small",onKeyDown:y},s?t.createElement(bn,{fontSize:"small"}):t.createElement(oa,{fontSize:"small"})))),t.createElement(rc,{visible:s},t.createElement(da,{disableCloseOnSelect:!0,className:n.autoComplete,fullWidth:!0,multiple:!0,freeSolo:e===D.Entity,popupIcon:null,ChipProps:{color:"primary",className:n.chip,size:"small"},options:r(e),getOptionLabel:v=>l(e,v),value:o(e),onChange:(v,E)=>C(E),renderInput:v=>t.createElement(Y,{...v,className:n.autoCompleteInput,margin:"normal",placeholder:`Search for ${e}`,error:m,helperText:u}),renderOption:(v,{selected:E})=>t.createElement(dt,{onClick:k=>k.preventDefault(),control:t.createElement(je,{icon:t.createElement(Ln,{fontSize:"small"}),checkedIcon:t.createElement(Nn,{fontSize:"small"}),checked:E}),label:l(e,v)})})))},ic=P(({palette:e,spacing:a})=>({root:{padding:({size:n})=>n==="small"?a(1,2):a(2),borderBottom:`1px solid ${e.border}`}}));function Va(e){const a=ic(e);return t.createElement(w,{...e,className:a.root})}const sc=P(e=>({root:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:e.spacing(.25)}}));function cc(){const e=sc(),{numberOfDays:a,facetFilters:n,clearAllFilters:r}=Ee(),l=Object.keys(D).some(o=>n[D[o]].length)||a!==ze;return t.createElement(w,{className:e.root},t.createElement(w,null,t.createElement(f,{variant:"h6"},"Filters")),l&&t.createElement(w,null,t.createElement(z,{onClick:r,size:"small"},"Clear all")))}const mc=P(({palette:e,spacing:a})=>({select:{width:"100%",margin:a(1,0)},chip:{backgroundColor:e.info.dark}})),Ht=[7,30,90].map(e=>({value:e,label:`Last ${e} days`}));function dc(){const e=mc(),{numberOfDays:a,setNumberOfDays:n}=Ee(),r=[...Ht];Ht.map(u=>u.value).includes(a)||r.push({value:a,label:`Last ${a} days`});const[l,o]=b(r),[i,s]=b(""),c=()=>{if(i.length){const u=parseInt(i,10);return!isNaN(u)&&(u<Re||u>We)}return!1},m=()=>{const u=parseInt(i,10);if(u<Re)return`Minimum of ${Re} days`;if(u>We)return`Maximum of ${We} days`},d=u=>{if(u.key==="Enter"){const p=parseInt(i,10);p>=Re&&p<=We?(Ht.map(h=>h.value).includes(p)||o([...Ht,{value:p,label:`Last ${p} days`}]),n(p),s("")):p<Re?s(`${Re}`):s(`${We}`)}};return t.createElement(w,null,t.createElement(w,{marginBottom:2},t.createElement(w,null,l.sort((u,p)=>u.value-p.value).map(({label:u,value:p})=>t.createElement(gt,{key:p,label:u,className:a===p?e.chip:void 0,color:a===p?"primary":void 0,size:"small",onClick:()=>n(p)})))),t.createElement(w,null,t.createElement(Y,{fullWidth:!0,placeholder:"Number of days",inputProps:{min:Re,max:We},onKeyDown:d,helperText:m(),value:i,type:"number",error:c(),onChange:u=>s(u.target.value)})))}const uc=P(e=>({filters:{maxWidth:"300px",width:"100%",backgroundColor:e.palette.background.paper}})),pc=()=>{const e=uc();return t.createElement(w,{className:e.filters},t.createElement(Va,null,t.createElement(cc,null)),t.createElement(Va,null,t.createElement(dc,null)),Object.values(D).map(a=>t.createElement(Va,{key:a,size:"small"},t.createElement(oc,{facet:a}))))},Tr=it({checkPassRateOverview:{data:void 0,isLoading:!0,isError:!1},trackPassRateOverview:{data:void 0,isLoading:!0,isError:!1},entityPassRatesOverview:{data:void 0,isLoading:!0,isError:!1},groupPassRatesOverview:{data:void 0,isLoading:!0,isError:!1}}),Te=()=>st(Tr),gc=e=>{const{filter:a}=Ee(),n=qo(a),r=Ko(a),l=jo(a),o=Qo(a),i=q(()=>({checkPassRateOverview:n,trackPassRateOverview:r,entityPassRatesOverview:l,groupPassRatesOverview:o}),[n,r,l,o]);return n.isLoading||r.isLoading||l.isLoading||o.isLoading?t.createElement(he,null):t.createElement(Tr.Provider,{...e,value:i})},Sr=e=>{const a=(e==null?void 0:e.overallTrackPassRate)||[];if(!a.length)return[];const n=kt.utc();return a.reduce((r,{trendPassRates:l,levelOrdinal:o},i)=>{var s;const c=(s=l==null?void 0:l.map((m,d)=>({name:Ga(n,l.length-d-1),[`Level${o}`]:m})))!=null?s:[];return i===0?c:r.map((m,d)=>({...m,...c[d]}))},[])},hc=()=>{var e,a;const{trackPassRateOverview:{data:n,isError:r}}=Te();if(r)return t.createElement(f,{color:"error"},"Failed to load track data.");const l=Sr(n),o=(a=(e=n==null?void 0:n.overallTrackPassRate)==null?void 0:e.map(({levelOrdinal:i})=>({dataKey:`Level${i}`,name:`Level ${i}`})))!=null?a:[];return t.createElement(_t,{data:l,lines:o})},vc=e=>{const a=(e==null?void 0:e.overallEntityPassRates)||[];if(!a.length)return[];const n=kt.utc();return a.reduce((r,{trendPassRates:l,id:o},i)=>{var s;const c=(s=l==null?void 0:l.map((m,d)=>({name:Ga(n,l.length-d-1),[o]:m})))!=null?s:[];return i===0?c:r.map((m,d)=>({...m,...c[d]}))},[])},Ec=()=>{var e,a;const{entityPassRatesOverview:{data:n}}=Te(),r=(a=(e=n==null?void 0:n.overallEntityPassRates)==null?void 0:e.map(({id:o})=>({dataKey:o,name:W(o).name})))!=null?a:[],l=vc(n);return t.createElement(_t,{data:l,lines:r})},fc=G(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}})),yc=({layout:e,theme:a})=>{const n=e===zt.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}],o=fc();return t.createElement("div",{className:o.container},t.createElement(Vt,null,t.createElement(Mn,{data:n?l:r,margin:{left:0},layout:e},t.createElement(bt,{strokeDasharray:"3 3",vertical:n,horizontal:!n,opacity:Bt}),t.createElement(Xe,{dataKey:n?void 0:"x",type:n?nt.Number:nt.Category,domain:n?Pe:void 0,hide:!0}),t.createElement(Ze,{width:n?Cr:Ba,dataKey:n?"x":void 0,type:n?nt.Category:nt.Number,domain:n?void 0:Pe,hide:!0}),t.createElement(Gn,{dataKey:"y",fill:a.palette.divider,barSize:n?Pr:Rr}))),t.createElement(f,{className:o.chartMessage},"No Data"))},Cc=P(e=>({legend:{color:ve(e)}}));var zt=(e=>(e.Horizontal="horizontal",e.Vertical="vertical",e))(zt||{});const Pr=20,Rr=50;var nt=(e=>(e.Category="category",e.Number="number",e))(nt||{});const Nr={dataKey:"passRate",name:"Pass rate"},Lr=Ur(({data:e,layout:a})=>{const n=a==="vertical",r=Oe(),l=Mt(r),o=ve(r),i=Cc();return e.length?t.createElement(Vt,{"aria-label":"Bar chart representing data points."},t.createElement(Mn,{data:e,layout:a},t.createElement(bt,{vertical:n,horizontal:!n,opacity:Bt}),t.createElement(Xe,{dataKey:n?void 0:Gt,type:n?"number":"category",domain:n?Pe:void 0,stroke:o}),t.createElement(Ze,{width:n?Cr:Ba,dataKey:n?Gt:void 0,type:n?"category":"number",domain:n?void 0:Pe,stroke:o}),t.createElement(An,{contentStyle:{backgroundColor:r.palette.background.default},itemStyle:{color:ve(r)},cursor:{fill:"transparent"}}),t.createElement($n,{iconType:br,iconSize:kr,formatter:s=>t.createElement("span",{className:i.legend},s),payload:e.map(({name:s},c)=>({id:s,value:s,color:l[c%l.length]}))}),t.createElement(Gn,{barSize:n?Pr:Rr,dataKey:Nr.dataKey,name:Nr.name},e.map(({name:s},c)=>t.createElement(po,{key:s,fill:l[c%l.length]}))))):t.createElement(yc,{layout:a,theme:r})}),bc=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:[]},kc=()=>{const{trackPassRateOverview:{data:e,isError:a}}=Te();if(a)return t.createElement(f,{color:"error"},"Failed to load track data.");const n=bc(e);return t.createElement(Lr,{data:n,layout:zt.Horizontal})},xc=e=>{var a;return(a=e==null?void 0:e.map(({id:n,groupTitle:r,snapshotPassRate:l})=>({name:r!=null?r:W(n).name,passRate:l})))!=null?a:[]},wc=()=>{var e;const{groupPassRatesOverview:{data:a}}=Te(),n=(e=a==null?void 0:a.groupPassRates)==null?void 0:e.sort((l,o)=>o.snapshotPassRate-l.snapshotPassRate),r=xc(n);return t.createElement(Lr,{data:r,layout:zt.Vertical})},Tc=G(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"}})),Wt=({title:e,subtitle:a,summaryCardContent:n,chartSectionContent:r,disableDataExport:l,csvData:o,csvFilename:i})=>{const s=Tc();return t.createElement(ut,{className:s.card},t.createElement(w,{className:s.headerRow},t.createElement(w,{className:s.headerSection},t.createElement(f,{className:s.title},e),t.createElement(f,{variant:"caption"},a)),t.createElement(w,{className:s.headerExportSection},t.createElement(Vn,{data:o,filename:i,onClick:()=>!l},t.createElement(le,{title:"Export to CSV"},t.createElement("span",null,t.createElement(z,{disabled:l},t.createElement(ho,null))))))),t.createElement(w,{className:s.contentRow},n&&t.createElement(w,{className:s.leftSection},t.createElement(w,{className:s.summaryCard},n)),t.createElement(w,{className:s.chartSection},r)))};function Se(e,a){const n=e;if(a){const r=kt.utc();for(let l=a-1;l>=0;l--)n.push(r.minus({day:l}).toISODate())}return n}function Ue(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 Sc(e){const a=[];return a.push(Se(["check_id","check_name","check_owner_ref"],Ue(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 Pc(e){var a,n;const r=[];if(r.push(Se(["entity_ref","entity_name","entity_owner_ref"],Ue(e))),e!=null&&e.length)for(const l of e){const o=(a=l.trendPassRates)!=null&&a.length?l.trendPassRates:[l.snapshotPassRate];r.push([l.id,W(l.id).name,(n=l.entityOwnerRef)!=null?n:"",...o])}return r}function Rc(e){const a=[];return a.push(Se(["team_ref","team_name"],Ue(e))),e!=null&&e.length&&e.map(n=>{var r,l;a.push([n.id,(r=n.groupTitle)!=null?r:W(n.id).name,...(l=n.trendPassRates)!=null?l:[n.snapshotPassRate]])}),a}function Nc(e,a,n){var r,l,o,i;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,(o=a.levelName)!=null?o:`Level ${a.levelOrdinal}`,...(i=a.trendPassRates)!=null?i:[a.snapshotPassRate]]}function Dr(e,a){const n=[],r=e!=null&&e.length?Math.max(...e.map(o=>Ue(o.levels))):0,l=a?["campaign_id","campaign_name","campaign_owner"]:["track_id","track_name","track_owner_ref","level_ordinal","level_name"];return n.push(Se(l,r)),e!=null&&e.length&&e.map(o=>{var i;(i=o.levels)==null||i.map(s=>{n.push(Nc(o,s,a))})}),n}function Lc(e){var a,n,r;const l=[];return l.push(Se(["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 Dc(e){var a;const n=[];return n.push(Se(["level_ordinal","level_name"],Ue(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 Ic(e){var a;const n=[];return n.push(Se(["entity_ref","entity_name"],Ue(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,W(r.id).name,...(l=r.trendPassRates)!=null?l:[0]])}),n}function Oc(e){var a,n;const r=[];return r.push(Se(["team_ref","team_name"],1)),(a=e==null?void 0:e.groupPassRates)!=null&&a.length&&((n=e==null?void 0:e.groupPassRates)==null||n.map(l=>{var o;r.push([l.id,(o=l.groupTitle)!=null?o:W(l.id).name,l.snapshotPassRate])})),r}const Fc="check-pass-rates-summary.csv",Ac="track-pass-rates-summary.csv",$c="entity-pass-rates-summary.csv",Mc="team-pass-rates-summary.csv",Gc="check-pass-rates.csv",Bc="track-pass-rates.csv",Vc="entity-pass-rates.csv",_c="team-pass-rates.csv",Hc="campaign-track-pass-rates.csv",zc=P(e=>({chartHeader:{marginBottom:e.spacing(2)},overallSummaryBox:{display:"flex",flexDirection:"column",height:"100%",color:ve(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`}})),Wc=()=>{var e,a,n;const r=Oe(),l=zc(),{checkPassRateOverview:{data:o,isLoading:i,isError:s}}=Te(),c=(a=(e=o==null?void 0:o.overallCheckPassRates)==null?void 0:e.length)!=null?a:0,m=we((n=o==null?void 0:o.overallCheckPassRates)!=null?n:[]),d=o!=null&&o.overallCheckPassRates&&c?Math.round(o.overallCheckPassRates[c-1]):0;let u;!(o!=null&&o.overallCheckPassRates)||!c?u="No Data":u=`${d}%`;const p=t.createElement(w,{className:l.overallSummaryBox},t.createElement(vo,{value:d,text:u,styles:Eo({textColor:ve(r),pathColor:Mt(r)[0],trailColor:r.palette.divider,textSize:c?void 0:8})}),t.createElement(f,{className:l.summaryText},"Current check pass rate")),h=!(o!=null&&o.overallCheckPassRates)||!c||i||s;return t.createElement(Wt,{title:"Check pass rate",subtitle:"Aggregate pass rate for checks",summaryCardContent:p,chartSectionContent:t.createElement(at,{chartData:m}),disableDataExport:h,csvFilename:Fc,csvData:Lc(o)})},qc=()=>{var e;const a=t.createElement(kc,null),n=t.createElement(hc,null),{trackPassRateOverview:{data:r,isLoading:l,isError:o}}=Te(),i=(e=r==null?void 0:r.overallTrackPassRate)==null?void 0:e.length,s=!(r!=null&&r.overallTrackPassRate)||!i||l||o;return t.createElement(Wt,{title:"Track pass rate",subtitle:"Aggregate pass rate for tracks",summaryCardContent:a,chartSectionContent:n,disableDataExport:s,csvFilename:Ac,csvData:Dc(r)})},Uc=()=>{var e;const{entityPassRatesOverview:{data:a,isLoading:n,isError:r}}=Te(),l=(e=a==null?void 0:a.overallEntityPassRates)==null?void 0:e.length,o=!(a!=null&&a.overallEntityPassRates)||!l||n||r;return t.createElement(Wt,{title:"Entity pass rate",subtitle:"Compare the aggregate pass rate for entities",chartSectionContent:t.createElement(Ec,null),disableDataExport:o,csvFilename:$c,csvData:Ic(a)})},Kc=()=>{var e;const{groupPassRatesOverview:{data:a,isLoading:n,isError:r}}=Te(),l=(e=a==null?void 0:a.groupPassRates)==null?void 0:e.length,o=!(a!=null&&a.groupPassRates)||!l||n||r;return t.createElement(Wt,{title:"Team pass rate",subtitle:"Compare the aggregate pass rate for teams",chartSectionContent:t.createElement(wc,null),disableDataExport:o,csvFilename:Mc,csvData:Oc(a)})},jc=G(e=>({root:{display:"flex",flexDirection:"column",gap:e.spacing(2),flex:1,background:e.palette.background.default}})),Qc=()=>{const e=jc();return t.createElement(w,{className:e.root},t.createElement(gc,null,t.createElement(Wc,null),t.createElement(qc,null),t.createElement(Uc,null),t.createElement(Kc,null)))},Yc=G(e=>({paper:{width:"100%",boxShadow:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius},tableHeaderCell:{fontWeight:"bold"}})),rt=({data:e,columns:a})=>{const n=Yc(),[r,l]=b(0),[o,i]=b(10);F(()=>{l(0)},[e.length]);const s=(u,p)=>{l(p)},c=u=>{i(+u.target.value),l(0)},m=r*o,d=m+o;return t.createElement(Xt,{className:n.paper},t.createElement(cn,{size:"small"},t.createElement(mn,null,t.createElement(ht,null,a.map(u=>t.createElement(be,{key:`header-${u.id}`,className:n.tableHeaderCell},u.label)))),t.createElement(dn,null,e.slice(m,d).map(u=>t.createElement(ht,{key:u.id},a.map(p=>t.createElement(be,{key:`cell-${p.id}`},p.renderCell?p.renderCell(u):u[p.id])))))),t.createElement(aa,{rowsPerPageOptions:[10,25,50],component:"div",count:e.length,rowsPerPage:o,page:r,onPageChange:s,onRowsPerPageChange:c}))};var Xc=(e=>(e.Check="check",e.Track="track",e.Entity="entity",e.Group="group",e))(Xc||{});const me=G(e=>({root:{display:"flex",flexDirection:"column",flex:1,background:e.palette.background.default},ownerText:{fontWeight:500,color:ve(e)},flexColumn:{display:"flex",flexDirection:"column",gap:e.spacing(.5)},boldText:{fontWeight:"bold"},descriptionText:{maxWidth:400,color:ve(e),fontSize:e.typography.subtitle2.fontSize,lineHeight:e.typography.subtitle1.fontSize},detailButton:{textTransform:"none",backgroundColor:"transparent","&:hover":{backgroundColor:e.palette.action.hover}}})),qt=({name:e="",description:a=""})=>{const n=me();return t.createElement(w,{className:n.flexColumn},t.createElement(f,{className:n.boldText},e),t.createElement(tn,{className:n.descriptionText,content:a!=null?a:""}))},Ut=({navigateTo:e})=>{const a=me(),n=ye();return t.createElement(z,{variant:"text",className:a.detailButton,onClick:()=>n(e)},t.createElement(f,{className:a.ownerText},"View detail"))},Zc=e=>(e==null?void 0:e.kind)==="Group",Jc=e=>(e==null?void 0:e.kind)==="User",_a=({ownerEntityRef:e})=>{var a,n;const{data:r,error:l}=bl(e!=null?e:void 0);if(r){let o;return Zc(r)||Jc(r)?o=(n=r.metadata.title)!=null?n:(a=r.spec.profile)==null?void 0:a.displayName:o=r.metadata.name,t.createElement($e,{entityRef:Sl(r),title:o})}else if(l&&e)return t.createElement(le,{title:"Unable to pull owner reference from Catalog API"},t.createElement(f,{style:{color:"red"},variant:"body2"},(()=>{try{return W(e).name}catch{return e}})()));return null},em=({row:{trendPassRates:e,snapshotPassRate:a}})=>{const n=me(),r=we(e!=null?e:[]);return t.createElement(w,{className:n.flexColumn},t.createElement(f,{className:n.boldText},Math.round(a),"%"),t.createElement(at,{chartData:r,tableChart:!0}))};var ue=(e=>(e[e.UP=0]="UP",e[e.DOWN=1]="DOWN",e[e.FLAT=2]="FLAT",e))(ue||{});const tm=P(e=>({cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0}})),am=({ownerEntityRef:e,passRates:a})=>{const n=tm();return t.createElement(pt,{dense:!0,disablePadding:!0,className:n.cardSection},t.createElement(f,{variant:"overline",color:"textSecondary"},"Details"),e&&t.createElement(Ce,{disableGutters:!0,className:n.listItem},t.createElement(le,{title:"Owner"},t.createElement(te,null,t.createElement(Ct,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:n.listItemText,primary:t.createElement($e,{entityRef:e!=null?e:"No Owner",hideIcon:!0})})),a.map(({name:r,value:l,trend:o},i)=>t.createElement(Ce,{disableGutters:!0,className:n.listItem,key:i},t.createElement(le,{title:"The most recent pass rate."},t.createElement(te,null,o===ue.UP&&t.createElement(fo,{color:"primary",fontSize:"small"}),o===ue.DOWN&&t.createElement(yo,{color:"error",fontSize:"small"}),o===ue.FLAT&&t.createElement(Co,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:n.listItemText,primary:t.createElement(f,{variant:"body2",color:"textSecondary"},r!=null?r:"Latest Pass Rate",": ",t.createElement("b",null,Math.round(l),"%"))}))))},nm=G(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"}})),lt=({data:e})=>{const a=nm(),n=ye(),[r,l]=b(0),[o,i]=b(10);F(()=>{l(0)},[e.length]);const s=(p,h)=>{l(h)},c=p=>{try{const h=Number.parseInt(p.target.value,10);i(h),l(0)}catch{}},m=r*o,d=m+o,u=[{dataKey:"passRate",name:"Pass rate"}];return t.createElement(w,{className:a.root},t.createElement(g,{container:!0,spacing:2,className:a.gridContainer},e.slice(m,d).map((p,h)=>{var y,C;return t.createElement(g,{item:!0,key:h,xs:12,sm:12,md:6,lg:4,xl:3},t.createElement(tt,{title:(y=p.name)!=null?y:p.id,description:p.description,children:t.createElement(w,{className:a.cardContent},t.createElement(w,{className:a.footer},t.createElement(am,{ownerEntityRef:p.owner,passRates:p.lineChart.snapshotPassRates}),t.createElement(_t,{data:p.lineChart.trendPassRates,lines:(C=p.lineChart.lineConfigs)!=null?C:u}))),handleView:()=>n(p.navigateTo)}))})),t.createElement(aa,{rowsPerPageOptions:[10,25,50],component:"div",count:e.length,rowsPerPage:o,page:r,onPageChange:s,onRowsPerPageChange:c,labelRowsPerPage:"Items per page:"}))};var U=(e=>(e[e.TABLE=0]="TABLE",e[e.GRID=1]="GRID",e))(U||{});function Kt(e){if(!e||!e.length)return ue.FLAT;if(e.length===1)return e[0]>0?ue.UP:ue.FLAT;const a=e[e.length-1]-e[0];return a<0?ue.DOWN:a>0?ue.UP:ue.FLAT}function rm(e,a){return e.map(n=>{var r,l,o,i,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:Kt((o=n.trendPassRates)!=null?o:[])}],trendPassRates:we((i=n.trendPassRates)!=null?i:[])},owner:(s=n.checkOwnerRef)!=null?s:void 0,navigateTo:a({checkId:n.id})}})}function lm(e,a){return e.map(n=>{var r,l,o,i;return{id:n.id,name:W(n.id).name,description:(r=n.entityDescription)!=null?r:void 0,lineChart:{snapshotPassRates:[{value:n.snapshotPassRate,trend:Kt((l=n.trendPassRates)!=null?l:[])}],trendPassRates:we((o=n.trendPassRates)!=null?o:[])},owner:(i=n.entityOwnerRef)!=null?i:void 0,navigateTo:`${a(W(n.id))}/soundcheck`}})}function om(e,a){return e.map(n=>{var r,l,o;return{id:n.id,name:(r=n.groupTitle)!=null?r:W(n.id).name,lineChart:{snapshotPassRates:[{value:n.snapshotPassRate,trend:Kt((l=n.trendPassRates)!=null?l:[])}],trendPassRates:we((o=n.trendPassRates)!=null?o:[])},navigateTo:a(W(n.id))}})}const Ir=(e,a,n)=>{let r="";return a?r=a({trackId:e}):n&&(r=n({campaignId:e})),r};function Or(e,a,n){return e.map(r=>{var l,o,i,s,c,m,d;return{id:r.id,name:(l=r.trackName)!=null?l:r.id,description:(o=r.trackDescription)!=null?o:void 0,lineChart:{snapshotPassRates:(s=(i=r.levels)==null?void 0:i.map(({levelOrdinal:u,levelName:p,snapshotPassRate:h,trendPassRates:y})=>({name:p?`Level ${u} (${p})`:`Level ${u}`,value:h,trend:Kt(y!=null?y:[])})))!=null?s:[],trendPassRates:Sr({overallTrackPassRate:r.levels}),lineConfigs:(m=(c=r.levels)==null?void 0:c.map(({levelOrdinal:u,levelName:p})=>({dataKey:`Level${u}`,name:p!=null?p:`Level ${u}`})))!=null?m:[]},owner:(d=r.trackOwnerRef)!=null?d:void 0,navigateTo:Ir(r.id,a,n)}})}const im=G(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"},listItemIcon:{minWidth:"30px"},menuItem:{width:"112px"}})),ot=({viewMode:e,setViewMode:a,isLoading:n,searchTerm:r,setSearchTerm:l,searchPlaceholder:o,csvData:i,csvFilename:s})=>{const c=im(),m=(C,v)=>{v!==null&&a(v)},[d,u]=t.useState(null),p=!!d,h=C=>{u(C.currentTarget)},y=()=>{u(null)};return t.createElement(g,{container:!0,spacing:2,className:c.header},t.createElement(g,{item:!0,xs:6},t.createElement(Ia,{searchTerm:r,setSearchTerm:l,disabled:n,placeholder:o||"Search",variant:"outlined",size:"small"})),t.createElement(g,{item:!0,xs:6,className:c.headerButtons},t.createElement(z,{id:"export-button",className:c.exportButton,disabled:n,variant:"contained",color:"primary","aria-controls":p?"export-menu":void 0,"aria-haspopup":"true","aria-expanded":p?"true":void 0,onClick:h,endIcon:t.createElement(wo,null)},"Export"),t.createElement(ea,{id:"export-menu",anchorEl:d,getContentAnchorEl:null,open:p,onClose:y,MenuListProps:{"aria-labelledby":"export-button",disablePadding:!0},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},t.createElement(Vn,{data:i,filename:s},t.createElement(ge,{onClick:y,className:c.menuItem},t.createElement(te,{className:c.listItemIcon},t.createElement(xo,null)),t.createElement(ae,null,"CSV")))),t.createElement(eo,{size:"small",value:e,exclusive:!0,onChange:m},t.createElement(Rn,{value:U.TABLE,title:"Table view"},t.createElement(bo,{color:"primary"})),t.createElement(Rn,{value:U.GRID,title:"Grid view"},t.createElement(ko,{color:"primary"})))))},sm=(e,a,n)=>{const r=Math.min(5,a-e+1);return Array.from({length:r}).map((l,o)=>{const i=e+o;return{label:n?"PROGRESS":`LEVEL ${i}`,id:`levels-${o}`,renderCell:s=>{var c;const m=(c=s.levels)==null?void 0:c.find(({levelOrdinal:d})=>d===i);return m?t.createElement(em,{row:m}):t.createElement(t.Fragment,null)}}})},Fr=(e,a,n,r)=>{const l=e.flatMap(s=>{var c;return((c=s.levels)==null?void 0:c.map(m=>m.levelOrdinal))||[]}),o=Math.min(...l),i=Math.max(...l);return[{label:"NAME",id:"trackName",renderCell:s=>{var c;return t.createElement(qt,{name:(c=s.trackName)!=null?c:s.id,description:s.trackDescription})}},...sm(o,i,!!n),{label:"OWNER",id:"trackOwnerRef",renderCell:s=>{var c;return t.createElement(_a,{ownerEntityRef:(c=s.trackOwnerRef)!=null?c:void 0})}},{label:"ACTION",id:"action",renderCell:({id:s})=>{var c;let m=s;return n&&r&&(m=(c=r.find(({trackId:d})=>d===s))==null?void 0:c.campaignId),m?t.createElement(Ut,{navigateTo:Ir(m,a,n)}):t.createElement(t.Fragment,null)}}]},cm=()=>{const e=me(),{filter:a}=Ee(),n=ne(hn),{data:r,isLoading:l,isError:o}=Un(a),[i,s]=b(U.TABLE),[c,m]=b(""),d=q(()=>{var y;return Fr((y=r==null?void 0:r.individualTrackPassRate)!=null?y:[],n)},[r==null?void 0:r.individualTrackPassRate,n]);if(l)return t.createElement(he,null);if(o)return t.createElement(f,{color:"error"},"Failed to load tracks");const{individualTrackPassRate:u}=r;if(!u)return t.createElement(f,{color:"error"},"No available tracks");const p=c.length?u.filter(({id:y,trackName:C})=>{var v;return((v=C==null?void 0:C.toLowerCase())==null?void 0:v.includes(c.toLowerCase()))||y.toLowerCase().includes(c.toLowerCase())}):u,h=Dr(p);return t.createElement(w,{className:e.root},t.createElement(g,{container:!0,direction:"row"},t.createElement(ot,{viewMode:i,setViewMode:s,isLoading:l,searchTerm:c,setSearchTerm:m,searchPlaceholder:"Search available tracks",csvData:h,csvFilename:Bc}),i===U.TABLE&&t.createElement(rt,{data:p,columns:d}),i===U.GRID&&t.createElement(lt,{data:Or(p,n)})))},mm=({row:{trendPassRates:e,snapshotPassRate:a}})=>{const n=me(),r=we(e!=null?e:[]);return t.createElement(w,{className:n.flexColumn},t.createElement(f,{className:n.boldText},Math.round(a),"%"),t.createElement(at,{chartData:r,tableChart:!0}))};function dm(e){return[{label:"NAME",id:"entityName",renderCell:({id:a,entityDescription:n})=>t.createElement(qt,{name:W(a).name,description:n})},{label:"TREND",id:"trend",renderCell:a=>t.createElement(mm,{row:a})},{label:"OWNER",id:"entityOwnerRef",renderCell:({entityOwnerRef:a})=>t.createElement(_a,{ownerEntityRef:a!=null?a:void 0})},{label:"ACTION",id:"action",renderCell:({id:a})=>t.createElement(Ut,{navigateTo:`${e(W(a))}/soundcheck`})}]}const um=()=>{const e=me(),{filter:a}=Ee(),n=ne(yn),{data:r,isLoading:l,isError:o}=un(a),[i,s]=b(U.TABLE),[c,m]=b("");if(l)return t.createElement(he,null);if(o)return t.createElement(f,{color:"error"},"Failed to load entities");const{individualEntityPassRates:d}=r;if(!d)return t.createElement(f,{color:"error"},"No available entities");const u=c.length?d.filter(({id:h})=>{var y;return(y=h.toLowerCase())==null?void 0:y.includes(c.toLowerCase())}):d,p=Pc(u);return t.createElement(w,{className:e.root},t.createElement(g,{container:!0,direction:"row"},t.createElement(ot,{viewMode:i,setViewMode:s,isLoading:l,searchTerm:c,setSearchTerm:m,searchPlaceholder:"Search available entities",csvData:p,csvFilename:Vc}),i===U.TABLE&&t.createElement(rt,{data:u,columns:dm(n)}),i===U.GRID&&t.createElement(lt,{data:lm(u,n)})))},pm=({row:{trendPassRates:e,snapshotPassRate:a}})=>{const n=me(),r=we(e!=null?e:[]);return r.length?t.createElement(w,{className:n.flexColumn},t.createElement(f,{className:n.boldText},Math.round(a),"%"),t.createElement(at,{chartData:r,tableChart:!0})):t.createElement(w,{className:n.flexColumn},t.createElement(f,null,"No data"))};function gm(e){return[{label:"NAME",id:"groupName",renderCell:({groupTitle:a,id:n})=>t.createElement(qt,{name:a!=null?a:W(n).name})},{label:"TREND",id:"trend",renderCell:a=>t.createElement(pm,{row:a})},{label:"ACTION",id:"action",renderCell:({id:a})=>t.createElement(Ut,{navigateTo:e(W(a))})}]}const hm=()=>{const e=me(),{filter:a}=Ee();a.context=void 0;const n=ne(yn),{data:r,isLoading:l,isError:o}=Yo(a),[i,s]=b(U.TABLE),[c,m]=b("");if(l)return t.createElement(he,null);if(o)return t.createElement(f,{color:"error"},"Failed to load groups");const{groupPassRates:d}=r;if(!d)return t.createElement(f,{color:"error"},"No available groups");const u=c.length?d.filter(({id:h,groupTitle:y})=>{var C;return((C=y==null?void 0:y.toLowerCase())==null?void 0:C.includes(c.toLowerCase()))||h.toLowerCase().includes(c.toLowerCase())}):d,p=Rc(u);return t.createElement(w,{className:e.root},t.createElement(g,{container:!0,direction:"row"},t.createElement(ot,{viewMode:i,setViewMode:s,isLoading:l,searchTerm:c,setSearchTerm:m,searchPlaceholder:"Search available teams",csvFilename:_c,csvData:p}),i===U.TABLE&&t.createElement(rt,{data:u,columns:gm(n)}),i===U.GRID&&t.createElement(lt,{data:om(u,n)})))},vm=({row:e})=>{var a;const n=me(),r=we((a=e.trendPassRates)!=null?a:[]);return t.createElement(w,{className:n.flexColumn},t.createElement(f,{className:n.boldText},Math.round(e.snapshotPassRate),"%"),t.createElement(at,{chartData:r,tableChart:!0}))};function Em(e){return[{label:"NAME",id:"checkName",renderCell:a=>{var n;return t.createElement(qt,{name:(n=a.checkName)!=null?n:a.id,description:a.checkDescription})}},{label:"TREND",id:"snapshotPassRate",renderCell:a=>t.createElement(vm,{row:a})},{label:"OWNER",id:"checkOwner",renderCell:a=>{var n;return t.createElement(_a,{ownerEntityRef:(n=a.checkOwnerRef)!=null?n:void 0})}},{label:"ACTION",id:"action",renderCell:a=>t.createElement(Ut,{navigateTo:e({checkId:a.id})})}]}const fm=()=>{const e=me(),{filter:a}=Ee(),n=ne(gn),{data:r,isLoading:l,isError:o}=Uo(a),[i,s]=b(U.TABLE),[c,m]=b("");if(l)return t.createElement(he,null);if(o)return t.createElement(f,{color:"error"},"Failed to load checks");const{individualCheckPassRates:d}=r;if(!d)return t.createElement(f,{color:"error"},"No available checks");const u=c.length?d.filter(({id:h,checkName:y})=>{var C;return((C=y==null?void 0:y.toLowerCase())==null?void 0:C.includes(c.toLowerCase()))||h.toLowerCase().includes(c.toLowerCase())}):d,p=Sc(u);return t.createElement(w,{className:e.root},t.createElement(g,{container:!0,direction:"row"},t.createElement(ot,{viewMode:i,setViewMode:s,isLoading:l,searchTerm:c,setSearchTerm:m,searchPlaceholder:"Search available checks",csvData:p,csvFilename:Gc}),i===U.TABLE&&t.createElement(rt,{data:u,columns:Em(n)}),i===U.GRID&&t.createElement(lt,{data:rm(u,n)})))},ym=()=>{const e=me(),{filter:a}=Ee(),n=ne(vn),{data:r}=pn({orderAlphabetical:"default",searchByStatus:"active"}),l=r==null?void 0:r.edges.map(k=>k.campaign),o=l==null?void 0:l.map(({id:k,track:S})=>({campaignId:k,trackId:S.id})),i=o==null?void 0:o.map(({trackId:k})=>({trackId:k})),{data:s,isLoading:c,isError:m}=Un({...a,tracks:i,trackTypes:{included:["campaign"]}}),[d,u]=b(U.TABLE),[p,h]=b(""),y=q(()=>{var k;return Fr((k=s==null?void 0:s.individualTrackPassRate)!=null?k:[],void 0,n,o)},[s==null?void 0:s.individualTrackPassRate,n,o]);if(c)return t.createElement(he,null);if(m)return t.createElement(f,{color:"error"},"Failed to load campaign tracks");const{individualTrackPassRate:C}=s;if(!C)return t.createElement(f,{color:"error"},"No available campaign tracks");const v=p.length?C.filter(({id:k,trackName:S})=>{var N;return((N=S==null?void 0:S.toLowerCase())==null?void 0:N.includes(p.toLowerCase()))||k.toLowerCase().includes(p.toLowerCase())}):C,E=Dr(v,o);return t.createElement(w,{className:e.root},t.createElement(g,{container:!0,direction:"row"},t.createElement(ot,{viewMode:d,setViewMode:u,isLoading:c,searchTerm:p,setSearchTerm:h,searchPlaceholder:"Search available campaign tracks",csvData:E,csvFilename:Hc}),d===U.TABLE&&t.createElement(rt,{data:v,columns:y}),d===U.GRID&&t.createElement(lt,{data:Or(v,void 0,n)})))},Cm=P(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.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}`}}})),bm=()=>{const e=Cm();return t.createElement(ac,null,t.createElement("div",{className:e.container},t.createElement("div",{className:e.fixedColumn},t.createElement(pc,null)),t.createElement("div",{className:e.flexibleColumn},t.createElement(w,{className:e.pageLayout},t.createElement(en,null,t.createElement(De,{path:"/*",element:t.createElement(Z,null,t.createElement(Z.Route,{title:"Summary",path:"/"},t.createElement(Qc,null)),t.createElement(Z.Route,{title:"Campaigns",path:"/campaigns"},t.createElement(ym,null)),t.createElement(Z.Route,{title:"Checks",path:"/checks"},t.createElement(fm,null)),t.createElement(Z.Route,{title:"Tracks",path:"/tracks"},t.createElement(cm,null)),t.createElement(Z.Route,{title:"Entities",path:"/entities"},t.createElement(um,null)),t.createElement(Z.Route,{title:"Teams",path:"/teams"},t.createElement(hm,null)))}))))))},km=({collector:e,children:a})=>{const{description:n,id:r,isEditable:l,name:o}=e,{setSelectedCollector:i,setShowModal:s}=St(),{loading:c,allowed:m}=Q({permission:Ul}),d=l&&!c&&m,u=()=>{s(!0),i(e)};return t.createElement(tt,{title:o!=null?o:r,description:n,viewLabel:"Configure",editLabel:"Configure",children:a,handleView:void 0,handleEdit:d?u:void 0})},xm=()=>t.createElement(t.Fragment,null,Array.from({length:6},(e,a)=>t.createElement(g,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(yt,{variant:"rect",height:385}))));function wm(e){switch(e){case"catalog":return To;case"github":return Po;case"pagerduty":return Ro;case"scm":return So;case"soundcheck":return Lo;case"techinsights":return Do;default:return No}}const Tm=P(e=>({container:{display:"flex",justifyContent:"center",alignItems:"center"},imageContainer:{width:"150px",height:"150px"},image:{width:"100%",height:"100%",objectFit:"contain"}})),Sm=({collector:e})=>{const{id:a}=e,n=Tm();return t.createElement(t.Fragment,null,t.createElement("div",{className:n.container},t.createElement("div",{className:n.imageContainer},t.createElement("img",{src:wm(a),alt:a,className:n.image}))))},Pm=()=>{const{data:e,isLoading:a}=er();return t.createElement(g,{container:!0,direction:"row"},t.createElement(g,{container:!0,spacing:4,role:"list","aria-label":"checks"},a?t.createElement(xm,null):e==null?void 0:e.sort((n,r)=>{var l,o;return((l=n.name)!=null?l:n.id).localeCompare((o=r.name)!=null?o:r.id)}).map(n=>t.createElement(g,{key:n.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(km,{collector:n},t.createElement(Sm,{collector:n}))))))},Ar=()=>({enabled:!1,hasDuration:!1,unit:V.Days,value:1});function Ha(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 za(e){var a;const n=Ar();if(!e)return n;if(typeof e=="boolean")return{...n,enabled:e};if(!Ye.isObject(e)||!("duration"in e))return n;const r=e.duration;if(!Ye.isObject(r))return n;const l=Object.entries(r);if(l.length===0)return n;const[o,i]=l[0];return{...n,enabled:!0,hasDuration:!0,unit:(a=It(o))!=null?a:V.Days,value:i}}const Rm=P(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"}})),Nm=({value:e,onChange:a,disabled:n,errors:r})=>{const l=Rm(),[o,i]=b(e),[s,c]=b(`${e.value}`);F(()=>{a&&a(o)},[o,a]);const m=h=>{i({...o,enabled:h.target.checked,hasDuration:h.target.checked&&o.hasDuration})},d=h=>{i({...o,hasDuration:h.target.checked})},u=h=>{c(h.target.value);const y=parseInt(h.target.value,10);i({...o,value:isNaN(y)?0:y})},p=h=>{var y;i({...o,unit:(y=It(h.target.value))!=null?y:V.Hours})};return t.createElement(g,{container:!0,direction:"column"},t.createElement(g,{item:!0},t.createElement(g,{container:!0,alignItems:"center"},t.createElement(g,{item:!0},t.createElement(je,{id:"enableCaching",disabled:n,checked:o.enabled,onChange:m,"data-testid":"enableCaching"})),t.createElement(g,{item:!0},t.createElement("label",{htmlFor:"enableCaching",className:l.label},"Enable caching")))),t.createElement(g,{item:!0},t.createElement(g,{container:!0,alignItems:"flex-start"},t.createElement(g,{item:!0,className:l.checkbox},t.createElement(je,{id:"hasDuration",disabled:n||!o.enabled,checked:o.enabled&&o.hasDuration,onChange:d,"data-testid":"hasDuration"})),t.createElement(g,{item:!0},t.createElement("label",{htmlFor:"hasDuration",className:o.enabled?l.label:""},"Duration")),t.createElement(g,{className:l.duration},t.createElement(g,{item:!0},t.createElement(Y,{id:"every",type:"number",label:"For",name:"for",disabled:n||!o.hasDuration,value:s,onChange:u,error:!!(r!=null&&r.message),helperText:r==null?void 0:r.message,inputProps:{min:nr,max:rr},"data-testid":"forTextField"})),t.createElement(g,{item:!0},t.createElement(mt,null,t.createElement(Zt,{id:"duration-unit"},"Unit"),t.createElement(Jt,{labelId:"duration-unit",disabled:n||!o.hasDuration,value:o.unit,onChange:p,"data-testid":"unitSelect"},wa.map(h=>t.createElement(ge,{key:h,value:h},h)))))))))},Lm=({enabled:e,hasDuration:a,value:n})=>e&&a?lr(n):!0,Dm=P(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)}})),Wa=({name:e,label:a,description:n,control:r,disabled:l,errors:o})=>{const[i,s]=b(0),c=la({control:r,name:`${e}.enabled`}),m=(u,p)=>{s(p)},d=Dm();return t.createElement("div",{className:d.root},t.createElement(B,{name:`${e}.enabled`,control:r,render:({field:u})=>t.createElement(dt,{control:t.createElement(pl,{...u,checked:u.value,"data-testid":`${e}-switch`}),label:t.createElement(w,{display:"flex",flexDirection:"column"},t.createElement(f,{variant:"body1",component:"span"},t.createElement("b",null,`${a}`)),t.createElement(f,{variant:"caption",color:"textSecondary",component:"p"},`${n}`))})}),c&&t.createElement("div",null,t.createElement(nn,{orientation:"horizontal",variant:"scrollable",value:i,onChange:m,className:d.tabsContainer},t.createElement(Ke,{label:"Frequency",className:d.tab}),t.createElement(Ke,{label:"Filters",className:d.tab}),t.createElement(Ke,{label:"Caching",className:d.tab})),t.createElement("div",{className:d.contentContainer},i===0&&t.createElement("div",null,t.createElement(B,{name:`${e}.frequency`,control:r,rules:{validate:dr},render:({field:u})=>t.createElement(or,{disabled:l,value:u.value,onChange:u.onChange,errors:o==null?void 0:o.frequency})})),i===1&&t.createElement("div",null,t.createElement(B,{name:`${e}.filters`,control:r,render:({field:u})=>t.createElement(La,{disabled:l,value:u.value,onChange:u.onChange})})),i===2&&t.createElement("div",null,t.createElement(B,{name:`${e}.cacheConfig`,control:r,rules:{validate:Lm},render:({field:u})=>t.createElement(Nm,{disabled:l,value:u.value,onChange:u.onChange,errors:o==null?void 0:o.cacheConfig})})))))},qa=()=>({enabled:!1,filters:{...et(),selectedKinds:["Component"]},frequency:xa(),cacheConfig:Ar()}),$r=()=>({branchProtections:qa(),repositoryDetails:qa(),repositoryLanguages:qa()});function Im(e){const{branchProtections:a,repositoryDetails:n,repositoryLanguages:r}=e;if(a.enabled||n.enabled||r.enabled){const l={},o=[];if(l.collects=o,a.enabled){const{cacheConfig:i,frequency:s,filters:c}=a;o.push({factName:"branch_protections",type:"BranchProtections",frequency:Ta(s),filter:Dt(c),cache:Ha(i)})}if(n.enabled){const{cacheConfig:i,frequency:s,filters:c}=n;o.push({factName:"repository_details",type:"RepositoryDetails",frequency:Ta(s),filter:Dt(c),cache:Ha(i)})}if(r.enabled){const{cacheConfig:i,frequency:s,filters:c}=r;o.push({factName:"repository_languages",type:"RepositoryLanguages",frequency:Ta(s),filter:Dt(c),cache:Ha(i)})}return l}return[]}function Om(e){var a,n,r,l,o,i;const s=$r();if(e){const c=e.collects;if(c)for(const m of sa(c)){const d=m.type;d==="BranchProtections"&&(s.branchProtections={enabled:!0,frequency:Sa((a=m.frequency)!=null?a:e.frequency),filters:ka((n=m.filter)!=null?n:e.filter),cacheConfig:za(m.cache)}),d==="RepositoryDetails"&&(s.repositoryDetails={enabled:!0,frequency:Sa((r=m.frequency)!=null?r:e.frequency),filters:ka((l=m.filter)!=null?l:e.filter),cacheConfig:za(m.cache)}),d==="RepositoryLanguages"&&(s.repositoryLanguages={enabled:!0,frequency:Sa((o=m.frequency)!=null?o:e.frequency),filters:ka((i=m.filter)!=null?i:e.filter),cacheConfig:za(m.cache)})}}return s}const Fm="Error Configuring Collector";function Am(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.updateCollectorConfig(l);if(!o)throw new Error("Failed to update collector configuration.");return o};return ie([ce.UpdateCollectorConfig],r,{onSuccess:()=>{a.invalidateQueries({queryKey:[I.GetCollectors]})},onError:l=>{let o="Failed to update collector configuration.";l instanceof Error&&(o=l.message),n({severity:"error",title:Fm,message:o})}})}const $m=({disabled:e})=>{const{hideModal:a,selectedCollector:n}=St(),{control:r,formState:{errors:l},handleSubmit:o}=vt({defaultValues:n?Om(n.config):$r(),mode:"onChange"}),i=!!l.branchProtections||!!l.repositoryDetails||!!l.repositoryLanguages,{mutateAsync:s}=Am(),c=async m=>{const d=Im(m);await s({collectorId:"github",config:d})&&a()};return t.createElement("form",{onSubmit:o(c)},t.createElement(Wa,{name:"branchProtections",label:"Branch Protections",description:"Collects branch protection information from an entity's repository.",control:r,disabled:e,errors:l.branchProtections}),t.createElement(Fe,null),t.createElement(Wa,{name:"repositoryDetails",label:"Repository Details",description:"Collects details about the an entity's repository.",control:r,disabled:e,errors:l.repositoryDetails}),t.createElement(Fe,null),t.createElement(Wa,{name:"repositoryLanguages",label:"Repository Languages",description:"Collects details about the languages used in an entity's repository.",control:r,disabled:e,errors:l.repositoryLanguages}),t.createElement(g,{container:!0,spacing:4},t.createElement(Tt,{onCancel:a,saveButtonText:"Save",isLoading:!1,onSave:o(c),disableSave:i})))},Mm=({title:e,open:a,handleClose:n})=>{const{selectedCollector:r}=St();return t.createElement(Ge,{handleClose:n,title:e,open:a},(r==null?void 0:r.id)==="github"&&t.createElement($m,null))},Gm=P(e=>({container:{padding:e.spacing(3)}})),Bm=()=>{var e;const a=Gm(),{selectedCollector:n,showModal:r,hideModal:l}=St();return t.createElement("div",{className:a.container},t.createElement(Pm,null),t.createElement(Mm,{title:n?(e=n.name)!=null?e:n.id:"",open:r,handleClose:l}))},Vm=()=>t.createElement(Jo,null,t.createElement(Bm,null)),_m="Error Updating Track";function Hm(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.updateProgram(l);if(!o)throw new Error("Failed to update track.");return o};return ie([ce.UpdateProgram],r,{onSuccess:async()=>{await a.invalidateQueries({queryKey:[I.GetAllPrograms]})},onError:l=>{let o="Failed to update track.";l instanceof Error&&(o=l.message),n({severity:"error",title:_m,message:o})}})}const zm=({track:e,canEdit:a})=>{const{setSelectedItem:n,setIsLoading:r,selectedItem:l,showReadOnlyModal:o}=Me(),{mutateAsync:i,isLoading:s}=Hm();F(()=>r(s),[r,s]);const c=!a||!e.isEditable;F(()=>{c?o(e):n(e)},[e,n,c,o]);const[m,d]=wt(Rl),u=j(async p=>{await i(p,{onSuccess:d})},[d,i]);return F(()=>{},[e,o,c]),l?t.createElement(fr,{handleClose:m,title:`${c?"View":"Edit"} Track`,open:!0,onSave:u}):null},Wm=P({warningPanel:{padding:"24px 24px 0 24px"}}),Mr=({entityName:e,entityId:a,showNotFound:n=!1,showCannotView:r=!1})=>{const{warningPanel:l}=Wm();return t.createElement(t.Fragment,null,n&&t.createElement("div",{className:l},t.createElement(an,{title:`${Bl(e)} not found`,message:`There is no ${e} with the requested id: ${a}.`})),r&&t.createElement("div",{className:l},t.createElement(an,{title:`Cannot view ${e}`,message:`User does not have permission to view ${e} id: ${a}.`})))},qm=()=>{var e,a;const{trackId:n}=ct(),{data:r,isLoading:l}=Ea([n!=null?n:""],1),o=(a=(e=r==null?void 0:r.edges)==null?void 0:e[0])==null?void 0:a.program,{loading:i,allowed:s}=Q({permission:Sn,resourceRef:n}),{loading:c,allowed:m}=Q({permission:Kl,resourceRef:n});return t.createElement(t.Fragment,null,t.createElement(Mr,{entityName:"track",entityId:n,showNotFound:!l&&!o,showCannotView:!i&&!c&&!m}),l||i||c?t.createElement($a,null):m&&o&&t.createElement(jn,null,t.createElement(zm,{track:o,canEdit:s})))},Um=({check:e})=>{const{selectedItem:a,showReadOnlyModal:n}=ke();F(()=>{n(e)},[e,n]);const[r]=wt(En);return a&&t.createElement(Da,{title:"Check Details",open:!0,onClose:r,onSave:()=>{}})},Km="Error Creating Check";function jm(){const e=A(M),a=oe(),{showAlert:n}=se(),r=async l=>{const o=await e.updateCheck(l);if(!o)throw new Error("Failed to update check.");return o};return ie([ce.UpdateCheck],r,{onSuccess:()=>{a.invalidateQueries({queryKey:[I.GetChecks]})},onError:l=>{let o="Failed to update check.";l instanceof Error&&(o=l.message),n({severity:"error",title:Km,message:o})}})}const Qm=({check:e})=>{const{selectedItem:a,setSelectedItem:n}=ke(),{setIsLoading:r}=ke(),{mutateAsync:l,isLoading:o}=jm();F(()=>{r(o)},[r,o]),F(()=>{n(e)},[e,n]);const[i,s]=wt(En);return a&&t.createElement(Da,{title:"Edit a Check",open:!0,onClose:i,onSave:async c=>{await l(c,{onSuccess:s})}})},Ym=()=>{var e,a;const{checkId:n}=ct(),{data:r,isLoading:l}=xt([n!=null?n:""],1),o=(a=(e=r==null?void 0:r.edges)==null?void 0:e[0])==null?void 0:a.checker,{loading:i,allowed:s}=Q({permission:Tn,resourceRef:n}),{loading:c,allowed:m}=Q({permission:jl,resourceRef:n}),d=i||c||l,u=s&&(o==null?void 0:o.isEditable);return t.createElement(t.Fragment,null,t.createElement(Mr,{entityName:"check",entityId:n,showCannotView:!d&&!m,showNotFound:!d&&!o}),d&&t.createElement($a,null),t.createElement(Yn,null,!d&&!!o&&t.createElement(t.Fragment,null,u&&m&&t.createElement(Qm,{check:o}),!u&&m&&t.createElement(Um,{check:o}))))};function Gr(e){const a=A(M),n={ids:[e]};return J([I.GetCampaigns,JSON.stringify(n)],async()=>a.getCampaigns(n),{staleTime:5*60*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}const Xm=G(e=>({detailRow:{marginBottom:e.spacing(1)},label:{fontWeight:"bold",color:e.palette.text.primary},value:{marginLeft:e.spacing(1)}})),fe=({label:e,value:a})=>{const n=Xm();return t.createElement(g,{item:!0,xs:12,container:!0,className:n.detailRow,alignItems:"center"},t.createElement(f,{variant:"subtitle1",className:n.label},e,":"),t.createElement(f,{variant:"body1",display:"inline",className:n.value},a))},Zm=G(e=>({innerContainer:{padding:e.spacing(0,1)},sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main}})),Br=e=>new Date(e).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0}),Jm=({campaign:e})=>{const a=Zm(),{name:n,description:r,ownerEntityRef:l,startDate:o,targetCompletionDate:i,supportChannel:s}=e;return t.createElement(t.Fragment,null,t.createElement(f,{variant:"h6",className:a.sectionLabel},"Campaign details"),t.createElement(g,{container:!0,className:a.innerContainer,spacing:2},t.createElement(g,{item:!0,container:!0,xs:12,spacing:0},t.createElement(fe,{label:"Name",value:n}),t.createElement(fe,{label:"Description",value:r}),t.createElement(fe,{label:"Owner",value:t.createElement($e,{entityRef:l})}),s&&t.createElement(fe,{label:"Support channel",value:s}),t.createElement(fe,{label:"Start date",value:Br(o)}),t.createElement(fe,{label:"Target completion date",value:Br(i)}))))},ed=G(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]}})),td=({campaign:e})=>{var a,n,r;const l=ed(),o=(r=(n=(a=e.track)==null?void 0:a.levels)==null?void 0:n[0].checks.map(({id:i,name:s,description:c})=>({id:i,label:s,description:c})))!=null?r:[];return t.createElement(t.Fragment,null,t.createElement(f,{variant:"h6",className:l.sectionLabel},"Campaign checks"),t.createElement("div",{className:l.chipContainer},o.length?o.map(i=>t.createElement(gr,{key:i.id,chip:i,disabled:!0})):t.createElement(f,{variant:"body1",color:"textSecondary",style:{alignSelf:"center"}},"There are no checks for this campaign.")))},Vr=G(e=>({sectionLabel:{fontWeight:700,margin:e.spacing(2,0),color:e.palette.primary.main},table:{minWidth:650},progressCell:{"& > span":{display:"flex",height:e.spacing(2)}},progressHeader:{textAlign:"center"},progressLabel:{marginLeft:e.spacing(2)}})),jt=()=>{const e=Vr();return t.createElement(f,{variant:"h6",className:e.sectionLabel},"Campaign Progress")},ad=({campaign:e})=>{var a;const n=Vr(),{data:r,isLoading:l,isError:o}=un({tracks:[{trackId:e.track.id}]});if(l)return t.createElement(t.Fragment,null,t.createElement(jt,null),t.createElement(Qr,null));if(o)return t.createElement(t.Fragment,null,t.createElement(jt,null),t.createElement(f,{color:"error"},"Failed to load campaign progress"));const i=(a=r==null?void 0:r.individualEntityPassRates)!=null?a:[];return i.length?t.createElement(t.Fragment,null,t.createElement(jt,null),t.createElement(gl,{component:Xt},t.createElement(cn,{className:n.table,"aria-label":"campaign progress table"},t.createElement(mn,null,t.createElement(ht,null,t.createElement(be,null,"Entity Name"),t.createElement(be,{align:"center",className:n.progressHeader},"Progress"),t.createElement(be,{align:"right"},"Percentage"))),t.createElement(dn,null,i.map(({id:s,snapshotPassRate:c})=>t.createElement(ht,{key:s},t.createElement(be,{component:"th",scope:"row"},W(s).name),t.createElement(be,{className:n.progressCell},t.createElement(Yr,{value:c/100,getColor:({value:m,palette:d})=>m<0?"":d.primary.main})),t.createElement(be,{align:"right"},c,"%"))))))):t.createElement(t.Fragment,null,t.createElement(jt,null),t.createElement(f,null,"No campaign progress available."))},nd=G(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`}})),rd=({campaign:e})=>{const a=nd(),n=e.milestones;return t.createElement(t.Fragment,null,t.createElement(f,{variant:"h6",className:a.sectionLabel},"Campaign milestones"),t.createElement(g,{container:!0,className:a.milestones,spacing:2},n.length?n.map((r,l)=>t.createElement(g,{item:!0,container:!0,xs:12,key:l,spacing:2},t.createElement(g,{item:!0,xs:12},t.createElement(fe,{label:"Name",value:r.name}),t.createElement(fe,{label:"Description",value:r.description}),t.createElement(fe,{label:"Goal pass rate",value:`${r.targetPercent}%`}),l<n.length-1&&t.createElement(Fe,{className:a.divider})))):t.createElement(f,{variant:"body1",color:"textSecondary"},"There are no milestones for this campaign.")))},ld={0:"detailsStep",1:"tracksStep",2:"filtersStep",3:"milestonesStep"};var Qt=(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))(Qt||{});const Ua=()=>{const{setShowAddModal:e}=Je(),{loading:a,allowed:n}=Q({permission:Pn});return t.createElement(ra,{title:Qt.title,description:Qt.description,imgSrc:ua,action:!a&&t.createElement(z,{disabled:!n,variant:"contained",color:"primary",onClick:()=>e(!0)},Qt.callToAction)})},od=G(e=>({root:{flexGrow:1,padding:e.spacing(2)}})),id=()=>{var e,a;const n=od(),{campaignId:r}=ct(),{data:l,isLoading:o}=Gr(r!=null?r:""),i=(a=(e=l==null?void 0:l.edges)==null?void 0:e[0])==null?void 0:a.campaign,[s]=wt(fn);return i?t.createElement(Ge,{title:"Campaign Details",open:!0,handleClose:s},o?t.createElement(he,null):t.createElement(pa,{backend:ga},t.createElement(g,{container:!0,className:n.root,spacing:3,direction:"column"},t.createElement(g,{item:!0,xs:12},t.createElement(Jm,{campaign:i})),t.createElement(g,{item:!0,xs:6},t.createElement(td,{campaign:i})),t.createElement(g,{item:!0,xs:6},t.createElement(ad,{campaign:i})),t.createElement(g,{item:!0,xs:12},t.createElement(rd,{campaign:i}))))):t.createElement(Ua,null)},sd=P(e=>({root:{position:"relative",height:"100%"},cardSection:{marginBottom:e.spacing(2)},listItem:{padding:0},listItemText:{margin:0}})),cd=({campaign:e})=>{var a;const n=sd();return t.createElement(pt,{dense:!0,disablePadding:!0,className:n.cardSection},t.createElement(f,{variant:"overline",color:"textSecondary"},"Campaign Details"),t.createElement(Ce,{disableGutters:!0,className:n.listItem},t.createElement(le,{title:"Owner"},t.createElement(te,null,t.createElement(Ct,{color:"action",fontSize:"small"}))),t.createElement(ae,{className:n.listItemText,primary:t.createElement($e,{entityRef:(a=e.ownerEntityRef)!=null?a:"No Owner",hideIcon:!0})})))},md=({campaign:e})=>{const{id:a,name:n,description:r,ownerEntityRef:l}=e,o=ne(vn),i=ne(Nl),s=ye(),{showModal:c}=Ae(),m=e.archived,{mutate:d}=Ho(),{mutate:u}=Vo(),{loading:p,allowed:h}=Q({permission:Ql,resourceRef:e.id}),{loading:y,allowed:C}=Q({permission:Yl,resourceRef:e.id}),v=j(async()=>{await c({title:"Delete Campaign",message:`Are you sure you want to delete campaign ${e.name}?`})&&d(e.id)},[c,d,e.id,e.name]),E=j(async()=>{await c({title:"Archive Campaign",message:`Are you sure you want to archive campaign ${e.name}?`})&&u(e.id)},[c,u,e.id,e.name]);return t.createElement(tt,{title:n!=null?n:a,description:r,children:l&&t.createElement(cd,{campaign:e}),handleView:()=>s(o({campaignId:e.id})),handleEdit:!p&&h&&!m?()=>s(i({campaignId:e.id})):void 0,handleDelete:!y&&C?v:void 0,handleArchive:!y&&C&&!m?E:void 0})},dd=()=>t.createElement("div",{"data-testid":"campaigns-skeleton"},Array.from({length:6},(e,a)=>t.createElement(g,{key:`loading-${a}`,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem"},t.createElement(yt,{variant:"rect",height:385})))),ud=P(e=>({headerButtons:{display:"flex",gap:e.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"center"},header:{padding:e.spacing(0,0,1)},container:{padding:e.spacing(3),gap:e.spacing(3)},pagination:{marginTop:e.spacing(1)}})),pd=({campaignsPerPage:e,currentCursor:a})=>{const n=ud(),[r,l]=b(a),[o,i]=b(""),[s,c]=b(""),[m,d]=b(X.Alpha),[u,p]=b(X.Owner),[h,y]=b(X.Status),[C,v]=b([]),E=o.length>0||m!==X.Alpha||u!==X.Owner||h!==X.Status;Io(()=>{c(o)},500,[o]);const{setShowAddModal:k}=Je(),{loading:S,allowed:N}=Q({permission:Pn}),{data:x,isLoading:T}=pn({ids:void 0,first:e,after:r,orderAlphabetical:m,searchByOwner:u,searchByName:s,searchByStatus:h}),[H,ee]=b(x),re=H==null?void 0:H.edges.map($=>$.campaign),[de,_]=b([]),L=$=>{d($.target.value)},R=$=>{p($.target.value)},K=$=>{y($.target.value)};return F(()=>{x&&ee(()=>{var $;return{endCursor:x.endCursor,totalCount:x.totalCount,hasNextPage:($=x==null?void 0:x.hasNextPage)!=null?$:!1,edges:x.edges}})},[x]),F(()=>{const $=H==null?void 0:H.edges.map(Le=>Le.campaign),pe=Fa($!=null?$:[]);v(pe)},[T,H]),!T&&!E&&!(re!=null&&re.length)?t.createElement(Ua,null):t.createElement(g,{container:!0,direction:"row",className:n.container},t.createElement(g,{container:!0,className:n.header},t.createElement(Oa,{searchPlaceholder:"Search available campaigns",isLoading:T,searchTerm:o,setSearchTerm:i,filterAlpha:m,handleAlphabeticalFilterChange:L,filterOwner:u,handleOwnerFilterChange:R,filterStatus:h,handleStatusFilterChange:K,owners:C}),t.createElement(g,{item:!0,xs:3},t.createElement("div",{className:n.headerButtons},!S&&t.createElement(z,{disabled:!N,variant:"contained",color:"primary",onClick:()=>k(!0)},"Create campaign")))),t.createElement(g,{container:!0,spacing:4,role:"list","aria-label":"campaigns"},T?t.createElement(dd,null):re==null?void 0:re.map($=>t.createElement(g,{key:$.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":"result"},t.createElement(md,{campaign:$})))),((H==null?void 0:H.hasNextPage)||(de==null?void 0:de.length)>0)&&t.createElement("div",{className:n.pagination},t.createElement(Aa,{response:H,listingsPerPage:e,cursor:r,setCursor:l,prevCursors:de,setPrevCursors:_,labelPerPageDropdown:"Campaigns Per Page:",urlRoute:"campaigns?campaignsPerPage="})))},_r=0,Hr=100,Ka=25,ja=250,Qa=25,Ya=250,Ne="This field is required",gd="At least one check is required",hd="Ending date must come after the Starting Date",zr=(e,a)=>(e===null&&a.addIssue({code:O.ZodIssueCode.custom,message:Ne}),e),vd=({campaignStartDate:e,campaignEndDate:a})=>e&&a?new Date(e)<new Date(a):!0,Ed=O.object({campaignName:O.string().min(1,Ne).max(Ka,`Input must be less than ${Ka} characters`),campaignDescription:O.string().min(1,Ne).max(ja,`Description must be no more than ${ja} characters`),campaignOwner:O.string().min(1,Ne),supportChannel:O.string().optional(),campaignStartDate:O.coerce.date().nullable().transform(zr),campaignEndDate:O.coerce.date().nullable().transform(zr)}).refine(vd,{message:hd,path:["campaignEndDate"]}),fd=O.object({selectedKinds:O.string().array(),selectedTypes:O.string().array(),selectedLifecycles:O.string().array(),selectedOwners:O.string().array(),selectedSystems:O.string().array(),selectedTags:O.string().array()}),yd=O.object({id:O.string(),label:O.string()}),Cd=O.object({checks:O.array(yd).min(1,gd)}),bd=O.object({milestoneName:O.string().min(1,Ne).max(Qa,`Input must be less than ${Qa} characters`),milestoneDescription:O.string().min(1,Ne).max(Ya,`Description must be no more than ${Ya} characters`),milestonePassrate:O.coerce.number().min(_r,`Minimum pass rate is ${_r}%`).max(Hr,`Maximum pass rate is ${Hr}%`)}),kd=O.object({milestones:O.array(bd).min(1,Ne)}),xd=O.object({detailsStep:Ed,tracksStep:Cd,filtersStep:fd,milestonesStep:kd}),wd={detailsStep:{campaignName:"",campaignDescription:"",campaignOwner:"",supportChannel:"",campaignStartDate:null,campaignEndDate:null},tracksStep:{checks:[]},filtersStep:{selectedKinds:[],selectedTypes:[],selectedLifecycles:[],selectedOwners:[],selectedSystems:[],selectedTags:[]},milestonesStep:{milestones:[{milestoneName:"",milestoneDescription:"",milestonePassrate:"0"}]}},Xa={details:{name:{name:"Campaign name",description:"Give your campaign a meaningful name so it's easy to remember it",helperText:`Max ${Ka} 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",helperText:`Max ${ja} characters`,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, a colleague or a team as the owner of this campaign"},support:{name:"Support channel",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 ${Qa} characters`,placeholder:"Example: 80% passrate"},description:{name:"Milestone description",description:"Give your milestone a meaningful description so others can understand how to use it",helperText:`Max ${Ya} characters`,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.'}},Td=({name:e,ownerEntityRef:a,description:n,targetCompletionDate:r,supportChannel:l,milestones:o,startDate:i,track:s})=>{var c;return{detailsStep:{campaignName:e,campaignDescription:n,campaignOwner:a,supportChannel:l,campaignStartDate:i,campaignEndDate:r},tracksStep:{checks:(c=s==null?void 0:s.levels)==null?void 0:c[0].checks.map(m=>{var d;return{id:m.id,label:(d=m.name)!=null?d:m.id}})},filtersStep:ba(s.filter),milestonesStep:{milestones:o.map(m=>({id:Number(m.id),milestoneName:m.name,milestoneDescription:m.description,milestonePassrate:m.targetPercent.toString()}))}}},Sd=(e,a,n)=>{var r;const{tracksStep:{checks:l},detailsStep:{campaignName:o,campaignDescription:i,campaignOwner:s,supportChannel:c,campaignStartDate:m,campaignEndDate:d},filtersStep:u,milestonesStep:{milestones:p}}=e,h=Er({trackName:`${o}`,trackDescription:`The checks for the ${o} campaign.`,ownerEntityRef:s,filters:u,levels:[{levelName:"Level 1",levelChips:l,levelDescription:""}]},n!=null?n:{},a==null?void 0:a.track);return{id:(r=a==null?void 0:a.id)!=null?r:ma(),track:h,name:o,description:i,ownerEntityRef:s,supportChannel:c,startDate:m,targetCompletionDate:d,milestones:p.map(({id:y,milestonePassrate:C,milestoneDescription:v,milestoneName:E})=>({id:y,trackId:h.id,name:E,description:v,targetPercent:parseInt(C,10),targetCompletionDate:d}))}},Pd=(e,a)=>{const n=q(()=>a?Td(a):wd,[a]),{control:r,handleSubmit:l,getValues:o,setValue:i,trigger:s,formState:{errors:c}}=vt({defaultValues:n,mode:"onChange",resolver:Oo(xd)}),{showModal:m}=Ae(),{checkersMap:d}=Ma();return{control:r,handleSubmit:l,getValues:o,setValue:i,trigger:s,errors:c,onSubmit:async u=>{if(!await m({title:"Save Campaign",message:`Are you sure you want to save campaign: ${u.detailsStep.campaignName}?`,error:!1}))return;const p=Sd(u,a,d);e(p)}}},Rd=P(e=>({container:{display:"flex",gap:e.spacing(1),flexDirection:"column"},link:{fontWeight:"bold",padding:0},list:{marginTop:0},listItem:{marginBottom:e.spacing(1)}})),Nd=()=>{const e=Rd(),a=ne(Ll),n=ye();return t.createElement("div",{className:e.container},t.createElement(f,{variant:"h6"},"Creating campaigns"),t.createElement(f,{variant:"body1"},"A Campaign is a focused short term initiative."),t.createElement(f,{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(z,{variant:"text",onClick:()=>n(a()),className:e.link},"Tech Health")," ","page."),t.createElement(f,{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(f,{variant:"body1"},"When your organization wants to upgrade Spring libraries to use a specific version of Spring Boot.")),t.createElement("li",null,t.createElement(f,{variant:"body1"},"When your organization wants to remove unneeded data endpoints to save costs.")))))},Ld=P(e=>({helperText:{marginLeft:0},selectFieldGroup:{display:"flex",flexDirection:"column",gap:e.spacing(1),marginTop:e.spacing(1)},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1)},scheduleTitle:{fontWeight:"bold"},fieldContainer:{width:"250px"},select:{width:"100%"},chip:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},chips:{width:"310px",marginLeft:e.spacing(1)}})),Dd=[{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"}],Id=({control:e,errors:a,isLoading:n,disabled:r})=>{var l,o,i,s;const c=Ld(),[m,d]=b(!1),[u,p]=b(!1),{options:h}=na(),{user:y,userEntityRef:C}=Qe(),[v,E]=b(null),[k,S]=b(void 0);let N=ia(h==null?void 0:h.map(_=>({value:_.ref,label:_.name})),"value");C&&(N=[{value:C,label:y==null?void 0:y.metadata.name},...N]);const{name:x,description:T,owner:H,support:ee,startingDate:re,endingDate:de}=Xa.details;return t.createElement(t.Fragment,null,t.createElement("div",null,t.createElement(f,{variant:"subtitle2"},x.name),t.createElement(f,{variant:"caption"},x.description),t.createElement(B,{name:"detailsStep.campaignName",control:e,defaultValue:"",render:({field:_})=>{var L,R;return t.createElement(Y,{..._,FormHelperTextProps:{className:c.helperText},variant:"outlined",fullWidth:!0,placeholder:x.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!(a!=null&&a.campaignName),helperText:(R=(L=a==null?void 0:a.campaignName)==null?void 0:L.message)!=null?R:x.helperText})}})),t.createElement("div",null,t.createElement(f,{variant:"subtitle2"},T.name),t.createElement(f,{variant:"caption"},T.description),t.createElement(B,{name:"detailsStep.campaignDescription",control:e,defaultValue:"",render:({field:_})=>{var L,R;return t.createElement(Y,{..._,FormHelperTextProps:{className:c.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:T.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!(a!=null&&a.campaignDescription),helperText:(R=(L=a==null?void 0:a.campaignDescription)==null?void 0:L.message)!=null?R:T.helperText})}})),t.createElement("div",{className:c.selectField},t.createElement("header",null,t.createElement(f,{variant:"subtitle2"},H.name),t.createElement(f,{variant:"caption"},H.description)),t.createElement("div",{className:c.fieldContainer},t.createElement(Nt,{name:"detailsStep.campaignOwner",control:e,options:N,selectLabel:"Owner",disabled:r||n,style:{width:"100%"},helperText:(o=(l=a==null?void 0:a.campaignOwner)==null?void 0:l.message)!=null?o:void 0})),t.createElement("div",null,t.createElement(f,{variant:"subtitle2"},ee.name),t.createElement(f,{variant:"caption"},ee.description),t.createElement("div",{className:c.fieldContainer},t.createElement(Be,{name:"detailsStep.supportChannel",control:e,label:ee.name,placeholder:ee.placeholder,disabled:r||n,variant:"outlined",error:a==null?void 0:a.supportChannel,helperText:(s=(i=a==null?void 0:a.supportChannel)==null?void 0:i.message)!=null?s:void 0})))),t.createElement("div",{className:c.selectFieldGroup},t.createElement(f,{variant:"subtitle2",className:c.scheduleTitle},"Campaign schedule"),t.createElement("div",{className:c.selectField},t.createElement(f,{variant:"subtitle2"},re.name),t.createElement("div",{className:c.fieldContainer},t.createElement(B,{control:e,name:"detailsStep.campaignStartDate",render:({field:_})=>{var L,R;const{ref:K,...$}=_;return t.createElement(_n,{utils:zn},t.createElement(Hn,{inputRef:_.ref,...$,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:c.helperText},inputVariant:"outlined",className:c.select,error:!!(a!=null&&a.campaignStartDate),helperText:(R=(L=a==null?void 0:a.campaignStartDate)==null?void 0:L.message)!=null?R:void 0,onChange:pe=>{E(pe),_.onChange(pe)},open:m,disabled:n||r,InputProps:{readOnly:!0,placeholder:re.placeholder,onClick:()=>d(!0)},onOpen:()=>d(!0),onClose:()=>d(!1)}))}}))),t.createElement("div",{className:c.selectField},t.createElement(f,{variant:"subtitle2"},de.name),t.createElement("div",{className:c.fieldContainer},t.createElement(B,{name:"detailsStep.campaignEndDate",control:e,render:({field:_})=>{var L,R;const{ref:K,...$}=_;return t.createElement(g,{container:!0,direction:"column"},t.createElement(g,{item:!0},t.createElement(_n,{utils:zn},t.createElement(Hn,{inputRef:_.ref,...$,disablePast:!0,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:c.helperText},inputVariant:"outlined",className:c.select,error:!!(a!=null&&a.campaignEndDate),helperText:(R=(L=a==null?void 0:a.campaignEndDate)==null?void 0:L.message)!=null?R:void 0,onChange:pe=>{_.onChange(pe)},open:u,disabled:n||r,InputProps:{readOnly:!0,placeholder:de.placeholder,onClick:()=>p(!0)},onOpen:()=>{S(void 0),p(!0)},onClose:()=>p(!1),ToolbarComponent:pe=>t.createElement(g,{container:!0,direction:"column"},t.createElement(g,{item:!0},t.createElement(Fo,{...pe})),t.createElement(g,{item:!0,className:c.chips},Dd.map(({value:Le,label:Za})=>t.createElement(gt,{key:Za,label:Za,className:k===Le?c.chip:void 0,color:k===Le?"primary":void 0,size:"small",onClick:()=>{v&&(S(Le),pe.onChange(v.plus(Le),!1))},disabled:n||r}))))}))))}})))))},Od=P(e=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center"},subtitle:{fontWeight:"bold",color:e.palette.primary.main,marginLeft:"-16px"},levelsContainer:{marginTop:"0",flexDirection:"column"},errorText:{marginTop:e.spacing(3),marginLeft:e.spacing(-2)},formContainer:{width:"100%"}})),Fd=({control:e,disabled:a,isLoading:n,errors:r})=>{const l=Od(),{checkChips:o}=Ma(),{fields:i,remove:s,append:c}=ft({control:e,name:"tracksStep.checks"}),m=new Set(i.flatMap(({label:h})=>h)),d=o.filter(h=>!m.has(h.label)),u=j(h=>{c(h)},[c]),p=j(h=>{const y=xn(i,C=>C.id===h.id);s(y)},[s,i]);return t.createElement(B,{control:e,name:"tracksStep.checks",render:()=>{var h;return t.createElement(mt,{error:!!(r!=null&&r.checks),disabled:a||n,variant:"outlined",className:l.formContainer},t.createElement(g,{item:!0,xs:12},t.createElement(g,{container:!0,spacing:4},t.createElement(pa,{backend:ga},t.createElement(g,{item:!0,xs:5},t.createElement(hr,{chips:d,isLoading:n,disabled:a,label:"Campaign Checks"})),t.createElement(g,{item:!0,xs:7},t.createElement(g,{container:!0},t.createElement(g,{item:!0,xs:12,className:l.columnHeader},t.createElement(f,{className:l.subtitle},"Included Checks")),t.createElement(g,{container:!0,item:!0,spacing:5,className:l.levelsContainer},t.createElement(vr,{chips:i,onDelete:p,onDrop:u,error:!!(r!=null&&r.checks),placeholder:"Drag and drop checks here to include them in this level",disabled:a}))),((h=r==null?void 0:r.checks)==null?void 0:h.message)&&t.createElement(rn,{className:l.errorText},r.checks.message))))))}})},Ad=P(()=>({milestoneHeader:{display:"flex",alignItems:"center"},divider:{margin:"20px 0"},helperText:{marginLeft:0},selectContainer:{width:"250px"}})),$d=({control:e,errors:a,isLoading:n,disabled:r})=>{const l=Ad(),{name:o,description:i,passrate:s}=Xa.milestones,{fields:c,append:m,remove:d}=ft({control:e,name:"milestonesStep.milestones"}),u=()=>m({milestoneName:"",milestoneDescription:"",milestonePassrate:"0"});return t.createElement(t.Fragment,null,c.map((p,h)=>t.createElement("div",{key:p.id},h!==0&&t.createElement(Fe,{className:l.divider}),t.createElement(g,{container:!0,spacing:1,className:l.milestoneHeader},t.createElement(g,{item:!0,xs:!0},t.createElement(f,{variant:"subtitle2"},o.name),t.createElement(f,{variant:"caption"},o.description),t.createElement(B,{name:`milestonesStep.milestones.${h}.milestoneName`,control:e,defaultValue:"",render:({field:y})=>{var C,v,E,k,S,N;return t.createElement(Y,{...y,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:o.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!((v=(C=a==null?void 0:a.milestones)==null?void 0:C[h])!=null&&v.milestoneName),helperText:(N=(S=(k=(E=a==null?void 0:a.milestones)==null?void 0:E[h])==null?void 0:k.milestoneName)==null?void 0:S.message)!=null?N:o.helperText})}})),h!==0&&!r&&t.createElement(g,{item:!0},t.createElement(At,{label:"Remove Milestone",startIcon:t.createElement(On,null),onClick:()=>d(h),disabled:r}))),t.createElement("div",null,t.createElement(f,{variant:"subtitle2"},i.name),t.createElement(f,{variant:"caption"},i.description),t.createElement(B,{name:`milestonesStep.milestones.${h}.milestoneDescription`,control:e,defaultValue:"",render:({field:y})=>{var C,v,E,k,S,N;return t.createElement(Y,{...y,FormHelperTextProps:{className:l.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:i.placeholder,disabled:n||r,type:"text",margin:"normal",error:!!((v=(C=a==null?void 0:a.milestones)==null?void 0:C[h])!=null&&v.milestoneDescription),helperText:(N=(S=(k=(E=a==null?void 0:a.milestones)==null?void 0:E[h])==null?void 0:k.milestoneDescription)==null?void 0:S.message)!=null?N:i.helperText})}})),t.createElement("div",null,t.createElement(f,{variant:"subtitle2"},s.name),t.createElement(f,{variant:"caption"},s.description),t.createElement("div",{className:l.selectContainer},t.createElement(B,{name:`milestonesStep.milestones.${h}.milestonePassrate`,control:e,defaultValue:"",render:({field:y})=>{var C,v,E,k,S,N;return t.createElement(Y,{...y,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:s.placeholder,disabled:n||r,type:"number",margin:"normal",error:!!((v=(C=a==null?void 0:a.milestones)==null?void 0:C[h])!=null&&v.milestonePassrate),helperText:(N=(S=(k=(E=a==null?void 0:a.milestones)==null?void 0:E[h])==null?void 0:k.milestonePassrate)==null?void 0:S.message)!=null?N:void 0})}}))))),t.createElement(At,{label:"Add Milestone",startIcon:t.createElement(In,null),onClick:()=>u(),disabled:r}))},Md=G(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"}},filters:{display:"flex",gap:e.spacing(1),flexDirection:"column"},stepLabel:{cursor:"pointer !important"}})),Wr=({onSave:e,onCancel:a,selectedCampaign:n})=>{const r=Md(),{isLoading:l,isReadOnly:o}=Je(),[i,s]=b(0),[c,m]=b([0]),d=async x=>{const T=ld[i];if(await x(T)){const H=i+1;s(H),c.indexOf(H)===-1&&m(ee=>[...ee,H])}},u=()=>{s(x=>x-1)},p=x=>x<i,h=x=>x!==i&&c.includes(x),y=x=>{(p(x)||h(x))&&s(x)},{control:C,handleSubmit:v,errors:E,trigger:k,onSubmit:S}=Pd(e,n),N=[{label:"Enter campaign details",content:()=>t.createElement(Id,{control:C,isLoading:l,disabled:!1,errors:E.detailsStep})},{label:"Add checks",content:()=>t.createElement(Fd,{control:C,isLoading:l,disabled:!1,errors:E.tracksStep})},{label:"Choose Affected Entities",content:()=>t.createElement("div",{className:r.filters},t.createElement(f,{variant:"body2"},Xa.filter.description),t.createElement(B,{name:"filtersStep",control:C,render:({field:x})=>{var T;return t.createElement(La,{value:(T=x.value)!=null?T:et(),onChange:x.onChange})}}))},{label:"Set campaign milestones",content:()=>t.createElement($d,{control:C,isLoading:l,disabled:!1,errors:E.milestonesStep})}];return t.createElement("form",{onSubmit:v(S)},t.createElement(g,{container:!0,spacing:2,className:r.root},t.createElement(g,{item:!0,xs:9},t.createElement(ut,{className:r.card},t.createElement(hl,{activeStep:i,orientation:"vertical"},N.map((x,T)=>t.createElement(vl,{key:x.label},t.createElement(El,{className:p(T)||h(T)?r.stepLabel:void 0,onClick:()=>y(T)},x.label),t.createElement(fl,null,x.content(),t.createElement(w,{className:r.buttonChoices,sx:{mb:2}},t.createElement("div",null,T!==0&&t.createElement(z,{onClick:u},"Back"),T!==N.length-1&&t.createElement(z,{variant:"contained",color:"primary",onClick:async()=>{await d(k)}},"Next"))))))))),t.createElement(g,{item:!0,xs:3},t.createElement(Nd,null))),t.createElement(g,{container:!0,spacing:4,className:r.root},t.createElement(Tt,{onCancel:a,saveButtonText:"Save Campaign",isLoading:l,onSave:o?void 0:v(S)})))},Gd=()=>{const{hideModal:e,showAddModal:a,setIsLoading:n}=Je(),{mutateAsync:r,isLoading:l}=$o();return F(()=>{n(l)},[n,l]),t.createElement(Ge,{title:"Create a Campaign",open:a,handleClose:e},t.createElement(Wr,{onSave:async o=>{await r(o,{onSuccess:()=>e()})},onCancel:e}))},Bd=()=>{const[e]=Yt(),a=e.get("campaignsPerPage"),n=a?parseInt(a,10):He;return t.createElement(Zo,null,t.createElement("div",null,t.createElement(pd,{campaignsPerPage:n}),t.createElement(Gd,null)))},Vd=()=>{var e,a;const n=ye(),r=ne(fn),{campaignId:l}=ct(),{setIsLoading:o}=Je(),{mutateAsync:i,isLoading:s}=Go(),{data:c,isLoading:m}=Gr(l!=null?l:""),d=(a=(e=c==null?void 0:c.edges)==null?void 0:e[0])==null?void 0:a.campaign;if(F(()=>o(s),[o,s]),!m&&!d)return t.createElement(Ua,null);const u=async h=>{await i(h,{onSuccess:()=>n(r())})},p=()=>n(r());return t.createElement(Ge,{title:"Update Campaign",open:!0,handleClose:p},m?t.createElement(he,null):t.createElement(Wr,{onSave:u,onCancel:p,selectedCampaign:d}))},_d=P(()=>({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"}}})),Hd=({title:e="Soundcheck"})=>{const a=_d(),[n,r]=kl(),{group:l}=n,[o,i]=b(void 0),{loading:s,allowed:c}=Q({permission:Xl}),m=u=>{u&&r({...n,group:u})},d=Ja();return t.createElement(Dl,null,t.createElement(xl,null,t.createElement(Il,null,t.createElement(Ol,null,t.createElement(w,{className:a.root},t.createElement(Xr,{themeId:"tool"},t.createElement(tl,{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(Zr,{title:e},d.pathname.split("/").length-1===1&&t.createElement(wl,{onChange:m,initialValue:l,setError:i})),t.createElement(w,{className:a.pageContent},t.createElement(w,{className:a.pageLayout},t.createElement(en,null,t.createElement(De,{path:"/*",element:t.createElement(Z,null,t.createElement(Z.Route,{title:"Overview",path:"/"},t.createElement("div",{className:a.tabContent},t.createElement(Tl,{groupSelectorError:o,searchParams:n,setSearchParams:r}))),t.createElement(Z.Route,{title:"Tech Health",path:"/tech-health"},t.createElement(bm,null)),t.createElement(Z.Route,{title:"Campaign Library",path:"/campaigns"},t.createElement(Bd,null)),t.createElement(Z.Route,{title:"Check Library",path:"/checks"},t.createElement(us,null)),t.createElement(Z.Route,{title:"Track Library",path:"/tracks"},t.createElement(Gs,null)),!s&&c&&t.createElement(Z.Route,{title:"Collector Library",path:"/collectors"},t.createElement(Vm,null)))}),t.createElement(De,{element:t.createElement(id,null),path:"/campaigns/:campaignId"}),t.createElement(De,{element:t.createElement(Vd,null),path:"/campaigns/:campaignId/edit"}),t.createElement(De,{element:t.createElement(qm,null),path:"/tracks/:trackId"}),t.createElement(De,{element:t.createElement(Ym,null),path:"/checks/:checkId"}))))))))))};export{Hd as RoutingPage};
|
|
2
|
+
//# sourceMappingURL=index-76a92dde.esm.js.map
|