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