1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[21152,57161],{11043:(e,t,r)=>{r.d(t,{BJ:()=>i,GF:()=>o});var s=r(72012),a=r(52728);class n extends s.tJ{async listApprovals(e={}){return this.get("/api/v1/inbox/approvals",{cursor:e.cursor??void 0,limit:e.limit})}}function i(e){return 400===(0,a.jx)(e)}let o=new n},17347:(e,t,r)=>{r.d(t,{c:()=>a});var s=r(12115);function a(e){let t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>(...e)=>t.current?.(...e),[])}},35417:(e,t,r)=>{r.d(t,{Bw:()=>i,ed:()=>a});var s=r(72012);class a extends Error{code="copilot_draft_sources_changed";status=409;constructor(){super("The cited Matter sources changed. Refresh the answer or remove Copilot provenance."),this.name="CopilotDraftSourcesChangedError"}}class n extends s.tJ{withAuthorizingSpace(e,t){let r=t?.authorizingSpaceId?.trim();if(!r)return e;let s=e.includes("?")?"&":"?";return`${e}${s}${new URLSearchParams({space_id:r}).toString()}`}requestConfig(e){if(!e)return;let{authorizingSpaceId:t,...r}=e;return Object.keys(r).length>0?r:void 0}async getComments(e,t){let r=new URLSearchParams({parent_type:e.parent_type,parent_id:e.parent_id,include_deleted:String(e.include_deleted??!1),...void 0!==e.include_external_correspondence&&{include_external_correspondence:String(e.include_external_correspondence)},...e.limit&&{limit:String(e.limit)},...e.offset&&{offset:String(e.offset)}});return this.get(this.withAuthorizingSpace(`/api/v1/comments?${r}`,t),void 0,this.requestConfig(t))}async createComment(e,t){let r=this.withAuthorizingSpace("/api/v1/comments",t),s=this.requestConfig(t);try{if(e.copilot_draft_context)return await this.post(r,e,{...s??{},expectedErrorStatuses:Array.from(new Set([...s?.expectedErrorStatuses??[],409]))});return s?await this.post(r,e,s):await this.post(r,e)}catch(e){if("copilot_draft_sources_changed"===function(e){let t=e?.responseText;if(!t)return null;try{let e=JSON.parse(t),r=e?.detail?.error?.code;return"string"==typeof r?r:null}catch{return null}}(e))throw new a;throw e}}async updateComment(e,t,r){let s=this.withAuthorizingSpace(`/api/v1/comments/${e}`,r),a=this.requestConfig(r);return a?this.patch(s,t,a):this.patch(s,t)}async resolveThread(e,t=!0,r){let s=this.withAuthorizingSpace(`/api/v1/comments/${e}/resolve`,r),a=this.requestConfig(r);return a?this.post(s,{resolved:t},a):this.post(s,{resolved:t})}async markThreadRead(e,t=!0,r){let s=this.withAuthorizingSpace(`/api/v1/comments/${e}/read`,r),a=this.requestConfig(r);return a?this.post(s,{read:t},a):this.post(s,{read:t})}async deleteComment(e,t,r){let s=this.withAuthorizingSpace(`/api/v1/comments/${e}`,r),a=this.requestConfig(r);return a?this.delete(s,t,a):this.delete(s,t)}async uploadAttachment(e,t,r){let s=new FormData;return s.append("comment_id",e),s.append("file",t),r&&s.append("label",r),this.post("/api/v1/comments/attachments/upload",s)}async searchComments(e,t){let r=new URLSearchParams({organization_id:e.organization_id,q:e.q,...e.parent_type&&{parent_type:e.parent_type},...e.parent_id&&{parent_id:e.parent_id},...e.limit&&{limit:String(e.limit)},...e.offset&&{offset:String(e.offset)}}),s=this.withAuthorizingSpace(`/api/v1/comments/search?${r}`,t),a=this.requestConfig(t);return a?this.get(s,void 0,a):this.get(s)}async getCasefileReplyAddress(e,t){return this.get(`/api/v1/comments/casefile-reply-address/${encodeURIComponent(e)}`,void 0,t)}}let i=new n},57161:(e,t,r)=>{let s;r.d(t,{n1:()=>y});var a=r(95155),n=r(93728),i=r(12115),o=r(89239),l=r(81477),c=r(15283),d=r(7603),u=r(41463);class p{static instance;metrics=[];componentMetrics=new Map;apiMetrics=[];observers=[];isEnabled=!0;constructor(){this.initializeObservers()}static getInstance(){return p.instance||(p.instance=new p),p.instance}initializeObservers(){try{let e=new PerformanceObserver(e=>{for(let t of e.getEntries())"navigation"===t.entryType&&this.recordNavigationMetrics(t)});e.observe({entryTypes:["navigation"]}),this.observers.push(e);let t=new PerformanceObserver(e=>{for(let t of e.getEntries())this.addMetric({name:t.name,value:t.startTime,timestamp:Date.now(),category:"rendering"})});t.observe({entryTypes:["paint"]}),this.observers.push(t);let r=new PerformanceObserver(e=>{for(let t of e.getEntries())"layout-shift"!==t.entryType||t.hadRecentInput||this.addMetric({name:"cumulative-layout-shift",value:t.value,timestamp:Date.now(),category:"rendering"})});r.observe({entryTypes:["layout-shift"]}),this.observers.push(r);let s=new PerformanceObserver(e=>{let t=e.getEntries(),r=t[t.length-1];r&&this.addMetric({name:"largest-contentful-paint",value:r.startTime,timestamp:Date.now(),category:"rendering"})});s.observe({entryTypes:["largest-contentful-paint"]}),this.observers.push(s)}catch(e){d.vF.warn("Failed to initialize performance observers:",e)}}recordNavigationMetrics(e){[{name:"dns-lookup",value:e.domainLookupEnd-e.domainLookupStart},{name:"tcp-connect",value:e.connectEnd-e.connectStart},{name:"tls-handshake",value:e.connectEnd-e.secureConnectionStart},{name:"request-response",value:e.responseEnd-e.requestStart},{name:"dom-parse",value:e.domContentLoadedEventStart-e.responseEnd},{name:"resource-load",value:e.loadEventStart-e.domContentLoadedEventEnd},{name:"total-load-time",value:e.loadEventEnd-(e.activationStart??0)}
1].forEach(e=>{e.value>0&&this.addMetric({...e,timestamp:Date.now(),category:"navigation"})})}addMetric(e){this.isEnabled&&(this.metrics.push(e),this.metrics.length>1e3&&this.metrics.shift(),this.sendToMonitoring(e))}recordComponentRender(e,t,r=!1){if(!this.isEnabled)return;let s=this.componentMetrics.get(e);s?(s.rerenderCount++,s.renderTime+=t,s.averageRenderTime=s.renderTime/s.rerenderCount,s.lastRender=Date.now(),r&&s.propsChanges++):this.componentMetrics.set(e,{componentName:e,renderTime:t,rerenderCount:1,propsChanges:+!!r,averageRenderTime:t,lastRender:Date.now()})}recordApiCall(e){this.isEnabled&&(this.apiMetrics.push(e),this.apiMetrics.length>500&&this.apiMetrics.shift(),this.addMetric({name:"api-call",value:e.duration,timestamp:e.timestamp,category:"api",metadata:{endpoint:e.endpoint,method:e.method,success:e.success,cacheHit:e.cacheHit}}))}getMetrics(e){return e?this.metrics.filter(t=>t.category===e):[...this.metrics]}getComponentMetrics(){return Array.from(this.componentMetrics.values())}getApiMetrics(){return[...this.apiMetrics]}getPerformanceSummary(){let e=Date.now(),t=this.metrics.filter(t=>e-t.timestamp<6e4);return{totalMetrics:this.metrics.length,recentMetrics:t.length,averageApiTime:this.getAverageMetricValue("api"),averageRenderTime:this.getAverageComponentRenderTime(),slowestComponents:this.getSlowestComponents(5),slowestApiCalls:this.getSlowestApiCalls(5)}}getAverageMetricValue(e){let t=this.metrics.filter(t=>t.category===e);return 0===t.length?0:t.reduce((e,t)=>e+t.value,0)/t.length}getAverageComponentRenderTime(){let e=Array.from(this.componentMetrics.values());return 0===e.length?0:e.reduce((e,t)=>e+t.averageRenderTime,0)/e.length}getSlowestComponents(e){return Array.from(this.componentMetrics.values()).sort((e,t)=>t.averageRenderTime-e.averageRenderTime).slice(0,e)}getSlowestApiCalls(e){return this.apiMetrics.sort((e,t)=>t.duration-e.duration).slice(0,e)}async sendToMonitoring(e){try{let t=u.env.NEXT_PUBLIC_PERFORMANCE_MONITORING_URL;t&&await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({metric:e,userAgent:navigator.userAgent,url:window.location.href,timestamp:Date.now()})})}catch(e){d.vF.warn("Failed to send performance metric:",e)}}setEnabled(e){this.isEnabled=e}clearMetrics(){this.metrics=[],this.componentMetrics.clear(),this.apiMetrics=[]}destroy(){this.observers.forEach(e=>e.disconnect()),this.observers=[],this.clearMetrics()}}let m=p.getInstance();s=e=>{let t={name:e.name,value:e.value,timestamp:Date.now(),category:"rendering",metadata:{id:e.id,rating:e.rating}};m.addMetric(t)},r.e(98017).then(r.bind(r,98017)).then(({onCLS:e,onFCP:t,onINP:r,onLCP:a,onTTFB:n})=>{e(s),t(s),r(s),a(s),n(s)}).catch(()=>{d.vF.info("web-vitals library not available, using basic performance monitoring")});var h=r(18781),g=r(89223),x=r(52728),f=r(16623),v=r(72012);function y({error:e,errorInfo:t,canRetry:r=!1,onRetry:s,onReset:u,componentName:p,size:m="md"}){let b,[w,j]=(0,i.useState)(!1),[N,S]=(0,i.useState)(!1);if((0,v.gL)(e))return d.vF.debug("[ErrorDisplay] Suppressed aborted request",{component:p}),null;let C=t?.type??function(e){if(!e)return;if((0,v.Ah)(e))return h.By.Network;let t=(0,x.jx)(e);return 401===t?h.By.Authentication:403===t?h.By.Authorization:404===t?h.By.NotFound:422===t?h.By.Validation:null!=t&&t>=500?h.By.ServerError:void 0}(e),_=e?(0,f.T)(e,e.message)??void 0:void 0,T=async()=>{let r={timestamp:new Date(t?.timestamp||Date.now()).toISOString(),component:p,type:t?.type,message:e?.message,stack:e?.stack,componentStack:t?.componentStack};try{await navigator.clipboard.writeText(JSON.stringify(r,null,2)),S(!0),setTimeout(()=>S(!1),2e3)}catch(e){d.vF.error("Failed to copy error details:",e instanceof Error?e:Error(String(e)),{component:"ErrorDisplay"})}},A="sm"===m;return(0,a.jsxs)(l.Zp,{className:`${A?"max-w-md":"lg"===m?"max-w-4xl":"max-w-2xl"} mx-auto`,children:[(0,a.jsx)(l.aR,{className:A?"pb-3":"pb-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(e=>{switch(e){case h.By.Network:return(0,a.jsx)(n.e9t,{className:"h-5 w-5 text-orange-500"});case h.By.Authentication:case h.By.Authorization:return(0,a.jsx)(n.hcu,{className:"h-5 w-5 text-red-500"});default:return(0,a.jsx)(n.zPv,{className:"h-5 w-5 text-red-500"})}})(C),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)(l.ZB,{className:`${A?"text-base":"text-lg"} text-red-900`,children:(e=>
1{switch(e){case h.By.Network:return"Connection Error";case h.By.Authentication:return"Authentication Required";case h.By.Authorization:return"Access Denied";case h.By.NotFound:return"Resource Not Found";case h.By.Validation:return"Validation Error";case h.By.ServerError:return"Server Error";default:return"Something Went Wrong"}})(C)}),p&&(0,a.jsxs)("p",{className:"text-xs text-slate-500 mt-1",children:["Component: ",p]})]})]})}),(0,a.jsxs)(l.Wu,{className:"space-y-4",children:[(0,a.jsx)(c.Fc,{children:(0,a.jsx)(c.TN,{className:A?"text-sm":"",children:(b={[h.By.Network]:"Unable to connect to the server. Please check your internet connection.",[h.By.Authentication]:"Please sign in to continue.",[h.By.Authorization]:"You don't have permission to access this resource.",[h.By.NotFound]:"The requested resource could not be found.",[h.By.Validation]:"Please check your input and try again.",[h.By.ServerError]:"The server encountered an error. Please try again later.",[h.By.Unknown]:"An unexpected error occurred."},_||(C?b[C]:b[h.By.Unknown]))})}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[r&&s&&(0,a.jsxs)(o.Button,{onClick:s,size:A?"sm":"default",children:[(0,a.jsx)(n.e9t,{className:"h-4 w-4 mr-2"}),"Try Again"]}),u&&(0,a.jsxs)(o.Button,{variant:"outline",onClick:u,size:A?"sm":"default",children:[(0,a.jsx)(n.ww0,{className:"h-4 w-4 mr-2"}),"Go Home"]}),(0,a.jsxs)(o.Button,{variant:"outline",onClick:()=>window.location.href=`mailto:${g.T}`,size:A?"sm":"default",children:[(0,a.jsx)(n.gE4,{className:"h-4 w-4 mr-2"}),"Contact Support"]})]}),(e||t)&&!A&&(0,a.jsxs)("div",{className:"border-t pt-4",children:[(0,a.jsxs)(o.Button,{variant:"ghost",size:"sm",onClick:()=>j(!w),className:"mb-2",children:[w?(0,a.jsx)(n.rXn,{className:"h-4 w-4 mr-2"}):(0,a.jsx)(n.yQN,{className:"h-4 w-4 mr-2"}),"Error Details"]}),w&&(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)("div",{className:"flex justify-end",children:(0,a.jsxs)(o.Button,{variant:"outline",size:"sm",onClick:T,className:"text-xs",children:[N?(0,a.jsx)(n.Jly,{className:"h-3 w-3 mr-1"}):(0,a.jsx)(n.QRo,{className:"h-3 w-3 mr-1"}),N?"Copied!":"Copy Error"]})}),(0,a.jsxs)("div",{className:"bg-slate-50 p-3 rounded-md text-xs font-mono overflow-auto max-h-40",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"Timestamp:"})," ",new Date(t?.timestamp||Date.now()).toISOString()]}),t?.type&&(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"Type:"})," ",t.type]}),e?.message&&(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"Message:"})," ",e.message]}),e?.stack&&(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("strong",{children:"Stack Trace:"}),(0,a.jsx)("pre",{className:"whitespace-pre-wrap text-xs",children:e.stack})]})]})]})]})]})]})}i.Component},68599:(e,t,r)=>{r.d(t,{A:()=>n});var s=r(12115),a=r(95155);function n(e,t=[]){let r=[],i=()=>{let t=r.map(e=>s.createContext(e));return function(r){let a=r?.[e]||t;return s.useMemo(()=>({[`__scope${e}`]:{...r,[e]:a}}),[r,a])}};return i.scopeName=e,[function(t,n){let i=s.createContext(n),o=r.length;r=[...r,n];let l=t=>{let{scope:r,children:n,...l}=t,c=r?.[e]?.[o]||i,d=s.useMemo(()=>l,Object.values(l));return(0,a.jsx)(c.Provider,{value:d,children:n})};return l.displayName=t+"Provider",[l,function(r,a){let l=a?.[e]?.[o]||i,c=s.useContext(l);if(c)return c;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let a=r.reduce((t,{useScope:r,scopeName:s})=>{let a=r(e)[`__scope${s}`];return{...t,...a}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return r.scopeName=t.scopeName,r}(i,...t)]}},69613:(e,t,r)=>{r.d(t,{A0:()=>o,BF:()=>l,Hj:()=>c,XI:()=>i,nA:()=>u,nd:()=>d});var s=r(95155),a=r(12115),n=r(40980);let i=a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("div",{className:"relative w-full overflow-auto",children:(0,s.jsx)("table",{ref:r,className:(0,n.cn)("w-full caption-bottom text-sm",e),...t})}));i.displayName="Table";let o=a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("thead",{ref:r,className:(0,n.cn)("[&_tr]:border-b [&_tr]:border-(--border-default)",e),...t}));o.displayName="TableHeader";let l=a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("tbody",{ref:r,className:(0,n.cn)("[&_tr:last-child]:border-0",e),...t}));l.displayName="TableBody",a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("tfoot",{ref:r,className:(0,n.cn)("border-t border-(--border-default) bg-(--surface-overlay)/50 font-medium last:[&>tr]:border-b-0",e),...t})).displayName="TableFooter";let c=a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("tr",{ref:r,className:(0,n.cn)("border-b border-(--border-subtle) transition-colors duration-150 hover:bg-(--surface-base) data-[state=selected]:bg-(--surface-overlay)",e),...t}));c.displayName="TableRow";let d=a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("th",{ref:r,className:(0,n.cn)("h-12 px-4 text-left align-middle font-semibold text-(--text-secondary) text-xs uppercase tracking-wider has-[[role=checkbox]]:pr-0",e),...t}));d.displayName="TableHead";let u=a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("td",{ref:r,className:(0,n.cn)("p-4 align-middle text-(--text-primary) has-[[role=checkbox]]:pr-0",e),...t}));u.displayName="TableCell",a.forwardRef(({className:e,...t},r)=>(0,s.jsx)("caption",{ref:r,className:(0,n.cn)("mt-4 text-sm text-(--text-tertiary)",e),...t})).displayName="TableCaption"},75058:(e,t,r)=>{r.d(t,{Bg:()=>S,I8:()=>j,dG:()=>b,jj:()=>w,kg:()=>g});var s=r(95155),a=r(93728),n=r(12115),i=r(73321),o=r(27793),l=r(89239),c=r(69613),d=r(57161),u=r(62348),p=r(278),m=r(40980),h=r(11043);let g="/dashboard/inbox?lane=approvals",x="inbox-approvals-return",f={approve_version:"Approve version",approve_memo:"Approve memo",approve_plan:"Approve plan",confirm_decision:"Confirm decision",confirm_release:"Approve release",approve_checkpoint:"Approve"};function v(e){try{null===e?window.sessionStorage.removeItem(x):window.sessionStorage.setItem(x,JSON.stringify(e))}catch{}}function y({item:e,selected:t=!1,onOpenReview:r}){let n=f[e.requested_decision]??"Approve",i=function(e,t=new Date){if(!e.due_at)return e.overdue?"Overdue":null;let r=new Date(e.due_at);if(Number.isNaN(r.getTime()))return e.overdue?"Overdue":null;let s=e=>1===Math.abs(e)?"day":"days";if(e.overdue){let e=Math.floor(Math.max(0,t.getTime()-r.getTime())/864e5);return e>=1?`Overdue by ${e} ${s(e)}`:"Overdue"}let a=(0,o.m)(r,t);return a<=0?"Due today":`Due in ${a} ${s(a)}`}(e),l=[e.context_label,e.subject.version_label,e.requester.name].filter(e=>!!(e&&e.trim())),d=e.step?.label&&e.step.label.trim().toLowerCase()!==n.toLowerCase()?e.step.label:null,u=e.shared_with_pool&&!e.context_label;return(0,s.jsxs)(c.Hj,{tabIndex:0,role:"button","aria-label":`Open review: ${n} for ${e.subject.name}`,"aria-current":t?"true":void 0,"data-testid":"approval-row","data-approval-id":e.id,"data-selected":t?"true":void 0,className:(0,m.cn)("cursor-pointer focus-visible:outline-hidden focu
1s-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",t&&"bg-refresh-accent/5"),onClick:()=>r(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(e))},children:[(0,s.jsxs)(c.nA,{className:"min-w-0 max-w-0 py-2.5 align-top",children:[(0,s.jsxs)("div",{className:"flex min-w-0 items-baseline gap-x-2",children:[(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium text-brand-text",title:e.subject.name,children:e.subject.name}),(0,s.jsx)("span",{className:"shrink-0 text-sm text-brand-text-secondary",children:n})]}),(0,s.jsxs)("div",{className:"mt-0.5 flex flex-wrap items-baseline gap-x-1.5 gap-y-0.5 text-xs text-brand-text-secondary",children:[l.map((e,t)=>(0,s.jsxs)("span",{className:"inline-flex items-baseline gap-x-1.5",children:[t>0?(0,s.jsx)("span",{"aria-hidden":"true",children:"\xb7"}):null,(0,s.jsx)("span",{children:e})]},`${e}-${t}`)),i?(0,s.jsxs)("span",{className:"inline-flex items-baseline gap-x-1.5",children:[l.length>0?(0,s.jsx)("span",{"aria-hidden":"true",children:"\xb7"}):null,(0,s.jsx)("span",{className:(0,m.cn)(e.overdue&&"font-medium text-refresh-status-critical"),"data-testid":"approval-due",children:i})]}):null,e.step&&e.step.total>1?(0,s.jsxs)("span",{className:"inline-flex items-baseline gap-x-1.5","data-testid":"approval-step",children:[l.length>0||i?(0,s.jsx)("span",{"aria-hidden":"true",children:"\xb7"}):null,(0,s.jsxs)("span",{children:["Step ",e.step.position," of ",e.step.total,d?` \xb7 ${d}`:""]})]}):null]}),u?(0,s.jsx)("p",{className:"mt-0.5 text-xs text-brand-text-secondary","data-testid":"approval-shared",children:"Available to eligible reviewers"}):null]}),(0,s.jsx)(c.nA,{className:"w-28 whitespace-nowrap py-2.5 pl-2 text-right align-top",children:(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm font-medium text-refresh-accent",children:["Open review",(0,s.jsx)(a.Qpb,{className:"h-3.5 w-3.5","aria-hidden":"true"})]})})]})}function b({items:e,selectedId:t=null,onOpenReview:r,loading:a=!1,loadingRows:n=3,testId:i="approvals-table"}){return(0,s.jsx)(u.d,{children:(0,s.jsx)(c.XI,{"data-testid":i,className:"w-full table-fixed",children:(0,s.jsx)(c.BF,{children:a&&0===e.length?(0,s.jsx)(c.Hj,{children:(0,s.jsx)(c.nA,{colSpan:2,className:"p-6",children:(0,s.jsx)("div",{className:"space-y-2","data-testid":`${i}-loading`,children:Array.from({length:n}).map((e,t)=>(0,s.jsx)("div",{className:"h-6 w-full animate-pulse rounded bg-muted"},t))})})}):e.map(e=>(0,s.jsx)(y,{item:e,selected:t===e.id,onOpenReview:r},e.id))})})})}function w({coverage:e,onRetry:t,retrying:r=!1}){return e.complete?null:(0,s.jsxs)("div",{role:"status","data-testid":"approvals-coverage-notice",className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-brand-border bg-brand-bg px-3 py-2 text-sm text-brand-text",children:[(0,s.jsx)("span",{children:"Some approval sources are unavailable. The list may be missing requests."}),(0,s.jsx)(l.Button,{type:"button",variant:"outline",size:"sm",onClick:t,disabled:r,children:"Retry"})]})}function j(e){return e instanceof Error&&e.message?e.message:"Failed to load approvals"}let N={complete:!0,unavailable_sources:[]};function S(){let e=(0,i.useRouter)(),[t,r]=(0,n.useState)({status:"loading"}),[o,c]=(0,n.useState)(!1),[m,g]=(0,n.useState)(!1),[f,y]=(0,n.useState)(null),[S,C]=(0,n.useState)(null),_=(0,n.useRef)(!1),T=(0,n.useRef)(null),A=(0,n.useRef)(null),[E,R]=(0,n.useState)(()=>(function(){try{let e=window.sessionStorage.getItem(x);if(!e)return null;let t=JSON.parse(e);if("string"!=typeof t.selectedId||!t.selectedId)return null;return{selectedId:t.selectedId,pages:"number"==typeof t.pages&&t.pages>0?Math.min(t.pages,5):1,scrollTop:"number"==typeof t.scrollTop?t.scrollTop:0}}catch{return null}})()),k=(0,n.useRef)(0),M=(0,n.useCallback)(async(e=1,t=null)=>{let s=++k.current;r({status:"loading"}),g(!1),C(null),_.current=!1;let a=async r=>{let s=await h.GF.listApprovals({limit:20}),a=s.items,n=1;for(;n<e&&s.next_cursor&&!(t&&a.some(e=>e.id===t));){let e;try{e=await h.GF.listApprovals({cursor:s.next_cursor,limit:20})}catch(e){if(r&&(0,h.BJ)(e))break;throw e}a=[...a,...(s=e).items],n+=1}return{response:s,items:a,loaded:n}};try{let e;try{e=await a(!1)}catch(r){if(!(t&&(0,h.BJ)(r)))throw r;_.current=!0,e=await a(!0)}if(s!==k.current)return;r({status:"ready",items:e.items,nextCursor:e.response.next_cursor,total:e.response.total,coverage:e.response.coverage??N,pages:e.loaded})}catch(e){if(s!==k.current)return;r({status:"error",message:j(e)})}},[]),B=(0,n.useRef)(E);(0,n.useEffect)(()=>{let e=B.current;e?(y(e.selectedId),M(e.pages,e.selectedId)):M()},[M]),(0,n.useEffect)(()=>
1{if(!E||"ready"!==t.status)return;R(null),v(null);let e=T.current;e&&(e.scrollTop=E.scrollTop);let r=e?.querySelector(`[data-approval-id="${CSS.escape(E.selectedId)}"]`);r?r.focus({preventScroll:!0}):(y(null),0===t.items.length&&null===t.nextCursor&&t.coverage.complete||C(null===t.nextCursor&&t.coverage.complete&&!_.current?"resolved":"list_changed"),A.current?.focus({preventScroll:!0}))},[E,t]);let I=(0,n.useCallback)(async()=>{if("ready"!==t.status||!t.nextCursor||o)return;let e=k.current;c(!0);try{let s=await h.GF.listApprovals({cursor:t.nextCursor,limit:20});if(e!==k.current)return;r(e=>"ready"===e.status?{...e,items:[...e.items,...s.items],nextCursor:s.next_cursor,total:s.total,coverage:s.coverage??e.coverage,pages:e.pages+1}:e)}catch(t){if(e!==k.current)return;(0,h.BJ)(t)?g(!0):r({status:"error",message:j(t)})}finally{e===k.current&&c(!1)}},[o,t]),z=(0,n.useCallback)(r=>{y(r.id),v({selectedId:r.id,pages:"ready"===t.status?t.pages:1,scrollTop:T.current?.scrollTop??0}),e.push(r.review_href)},[e,t]),$=(0,n.useMemo)(()=>"error"===t.status?Error(t.message):null,[t]),O="ready"===t.status?t:null,D=null!==O&&0===O.items.length&&O.coverage.complete;return(0,s.jsxs)("main",{className:"flex min-h-full flex-col bg-background","data-testid":"approvals-lane",children:[(0,s.jsx)(p.T,{title:"Approvals"}),(0,s.jsx)("div",{ref:T,className:"dashboard-page-scroll flex-1 overflow-y-auto p-6",children:(0,s.jsxs)("section",{ref:A,tabIndex:-1,"aria-label":"Needs my approval",className:"mx-auto flex w-full max-w-7xl flex-col gap-3 focus-visible:outline-hidden",children:[(0,s.jsxs)("h2",{className:"product-section-heading",children:["Needs my approval",O&&null!==O.total&&O.coverage.complete?(0,s.jsx)("span",{className:"ml-1.5 font-mono n
1ormal-case tracking-normal","data-testid":"approvals-total",children:O.total}):null]}),S?(0,s.jsx)("p",{role:"status",className:"text-sm text-brand-text-secondary","data-testid":"approvals-returned-resolved","data-reason":S,children:"list_changed"===S?"This list changed â showing the current queue.":"That request is no longer waiting on you."}):null,"error"===t.status?(0,s.jsx)(d.n1,{error:$,errorInfo:null,canRetry:!0,onRetry:()=>void M(),size:"sm"}):D?(0,s.jsx)(u.d,{className:"rounded-md shadow-none",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2.5 text-sm text-brand-text-secondary","data-testid":"approvals-empty",children:[(0,s.jsx)(a.oxo,{className:"h-4 w-4 shrink-0","aria-hidden":!0}),"No approvals need your decision."]})}):(0,s.jsxs)(s.Fragment,{children:[O?(0,s.jsx)(w,{coverage:O.coverage,onRetry:()=>void M()}):null,m?(0,s.jsxs)("div",{role:"status","data-testid":"approvals-stale-cursor",className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-brand-border bg-brand-bg px-3 py-2 text-sm text-brand-text",children:[(0,s.jsx)("span",{children:"This list changed â refresh to see the current requests."}),(0,s.jsx)(l.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void M(),children:"Refresh"})]}):null,null===O||O.items.length>0?(0,s.jsx)(b,{items:O?.items??[],selectedId:f,onOpenReview:z,loading:"loading"===t.status,loadingRows:5,testId:"approvals-lane-table"}):null,O?.nextCursor&&!m?(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"text-brand-text-secondary",onClick:()=>void I(),disabled:o,"data-testid":"approvals-load-more",children:o?"Loadingâ¦":"Load more"})}):null]})]})})]})}},89223:(e,t,r)=>{r.d(t,{T:()=>s});let s="[email protected]"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.