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