1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2932],{2064:e=>{e.exports={overlay:"TraceLogicGanttOverlay_overlay__AOfZf",resizeHandle:"TraceLogicGanttOverlay_resizeHandle__BxAW9",resizeHandleLeft:"TraceLogicGanttOverlay_resizeHandleLeft__yaZXT",resizeHandleRight:"TraceLogicGanttOverlay_resizeHandleRight__cypo8",resizeHandleTop:"TraceLogicGanttOverlay_resizeHandleTop__9UblO",resizeHandleBottom:"TraceLogicGanttOverlay_resizeHandleBottom__K_S_k",frame:"TraceLogicGanttOverlay_frame__h3qYU",overlayHeader:"TraceLogicGanttOverlay_overlayHeader__DorTi",overlayHeaderMain:"TraceLogicGanttOverlay_overlayHeaderMain__p1YUW",overlayTitleRow:"TraceLogicGanttOverlay_overlayTitleRow__gjZ8i",overlaySubtitle:"TraceLogicGanttOverlay_overlaySubtitle__iX84a",overlayHeaderNote:"TraceLogicGanttOverlay_overlayHeaderNote__BH74o",overlaySyncNote:"TraceLogicGanttOverlay_overlaySyncNote__L__8E",overlayLabel:"TraceLogicGanttOverlay_overlayLabel__5qUsu",overlayBadge:"TraceLogicGanttOverlay_overlayBadge__pwznO",overlayBody:"TraceLogicGanttOverlay_overlayBody__VWCqd",overlayHeaderActions:"TraceLogicGanttOverlay_overlayHeaderActions__1svPe",closeBtn:"TraceLogicGanttOverlay_closeBtn__w2aaR",layoutControlsWrap:"TraceLogicGanttOverlay_layoutControlsWrap__dToTX",layoutControls:"TraceLogicGanttOverlay_layoutControls__GoXwX",layoutControlsHint:"TraceLogicGanttOverlay_layoutControlsHint__zxNoa",layoutBtn:"TraceLogicGanttOverlay_layoutBtn__CrNKM",layoutBtnText:"TraceLogicGanttOverlay_layoutBtnText__W_VL_",layoutBtnActive:"TraceLogicGanttOverlay_layoutBtnActive__Cnibh"}},2443:(e,t,a)=>{"use strict";a.d(t,{EL:()=>l,FD:()=>u,He:()=>p,LD:()=>d,bv:()=>h,hL:()=>c,mL:()=>o,qf:()=>s,wZ:()=>i});var r=a(60835),n=a(9130);function i(e){let t=e.edge_id;if(t)return{source_activity_id:t.source_activity_id??t.predecessor_activity_id,target_activity_id:t.target_activity_id??t.successor_activity_id,edge_type:t.edge_type}}function l(e){if("string"==typeof e.activity_id&&e.activity_id)return e.activity_id;let t=i(e),a=t?.source_activity_id;return"string"==typeof a&&a?a:void 0}function s(e,t){let a,r=i(e),l=r?.source_activity_id,s=r?.target_activity_id;if("string"!=typeof l||!l||"string"!=typeof s||!s)return;let o="FS";"string"==typeof r.edge_type&&r.edge_type&&(o=r.edge_type.toUpperCase());let c=e.violation_value;if(null!=c&&"object"==typeof c)if("string"==typeof c.relationship_type&&c.relationship_type&&(o=c.relationship_type.toUpperCase()),"number"==typeof c.lag_days&&0!==c.lag_days){let e=c.lag_days;a=` \xb7 ${o}${e>0?"+":""}${e}d`}else{let e=(0,n.bY)(c);e&&t?.check_name==="out_of_sequence_progress"&&(a=` \xb7 ${o} \xb7 ${e}`)}else if("number"==typeof c&&0!==c){let e=c>0?"+":"";a=` \xb7 ${o}${e}${c}d`}return a||(a=` \xb7 ${o}`),{pred:l,succ:s,detail:a}}function o(e){return(0,n.xS)(e)?!!s(e):"edge"===e.entity_type||!!i(e)}function c(e){let t=e.related_activity_ids;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):[]}function d(e){if("merge_hotspot"!==e.violation_type)return;let t=c(e)[0],a=e.explanation?.trim();if(!t||!a)return;let r=a.indexOf(t);if(!(r<0))return{leadText:a.slice(0,r),activityId:t,restText:a.slice(r+t.length)}}function u(e){return!!d(e)}function h(e,t){return e.startsWith(t)?e.slice(t.length).replace(/^\s*[ââ-]\s*/,"").trim():e}function p(e,t,a,l=0,o){if((0,n.xS)(e))return function(e){let t=e.failure_reason?.trim();if(t)return t}(e)??`Issue ${l+1}`;if("edge"===e.entity_type||i(e))return function(e,t){let a=s(e,t);if(a)return`${a.pred} â ${a.succ}${a.detail??""}`}(e,t)??`Issue ${l+1}`;let c=e.activity_id;if(c){let i=(0,n.Pl)(e),l=i?`${c} â ${i}`:c,s=function(e,t,a,i){let l=t.check_name,s=e.violation_value;if("string"==typeof s)return"hard_constraints"===l?(0,n.ZC)(s,i):s;if("number"==typeof s)return"high_float"===l||"negative_float"===l?`${s}d TF`:`${s}d`;if(null!=s&&"object"==typeof s){if("reasons"in s){let e=(0,n.iR)(s.reasons);if(e)return e}let e=(0,n.ep)(s);if(e)return e;if("riding_data_date"===l)return(0,n.Sn)(s);if("days_past_due"in s&&null!=s.days_past_due)return`${s.days_past_due}d past due`;if("total_float_days"in s&&null!=s.total_float_days)return`${s.total_float_days}d TF`;if("original_duration_days"in s&&null!=s.original_duration_days)return`${s.original_duration_days}d orig`;if("constraint_type"in s&&null!=s.constraint_type)return(0,n.ZC)(s.constraint_type,i);if("inconsistency_codes"in s&&Array.isArray(s.inconsistency_codes))return(0,n.G6)(s.inconsistency_codes);if("missing_predecessor"in s||"missing_successor"in s){let e=[];return s.missing_predecessor&&e.push("missing pred"),s.missing_successor&&e.push("missing succ"),e.join("; ")||void 0}}let o=function(e){let t=new Set(["activity_id","activity_description","violation_type","failure_code","failure_reason","measured_value","threshold","explanation","related_activity_ids"]);for(let a of e.columns??[])if(!(t.has(a.key)||a.key.startsWith("edge_id.")))return a.key;let a=e.check_name;if(a)return({high_float:"violation_value",negative_float:"violation_value",missed_tasks:"violation_value.days_past_due",bei:"violation_value.days_past_due",high_duration:"violation_value.original_duration_days",soft_constraints:"violation_value.constraint_type",hard_constraints:"violation_value",invalid_dates:"violation_value.reasons",near_critical_exposure:"violation_value.total_float_days",riding_data_date:"violation_value.early_start_date",progress_date_inconsistency:"violation_value.inconsistency_codes"})[a]}(t);if(o)return(0,r.Rf)(e,o,a,i).trim()||void 0}(e,t,a,o);return s?`${l} \xb7 ${s}`:l}if("graph"===e.entity_type||null!=e.measured_value){if("string"==typeof e.explanation&&e.explanation.trim())return e.explanation.trim();let t="string"==typeof e.violation_type?a?.[e.violation_type]??e.violation_type.replace(/_/g," "):"Assessment";return null!=e.measured_value&&""!==e.measured_value?`${t} \xb7 ${e.measured_value}
1`:"string"==typeof e.failure_reason&&e.failure_reason?`${t} \xb7 ${e.failure_reason}`:t}return"string"==typeof e.violation_type?a?.[e.violation_type]??e.violation_type.replace(/_/g," "):`Issue ${l+1}`}},4519:(e,t,a)=>{"use strict";a.d(t,{D5:()=>l,Gx:()=>u,XE:()=>_,f2:()=>i,iA:()=>m,l$:()=>p,mx:()=>c,q6:()=>r,wS:()=>h,yM:()=>f,ye:()=>n});let r={forecast:"Forecast",target:"Target",early:"Early",late:"Late",actual_forecast:"Actual + Forecast"},n="forecast",i=["forecast","target","early","late","actual_forecast"].map(e=>({value:e,label:r[e]}));function l(e){return i.some(t=>t.value===e)}function s(e){let[t,a,r]=e.slice(0,10).split("-").map(Number);return new Date(t,a-1,r)}function o(e){let t=new Date(e),a=(t.getDay()+6)%7;return t.setDate(t.getDate()-a),t}function c(e,t){if(0===t.length)return 0;let a=s(e),r=o(a);for(let e of t)if(o(s(e.week_start)).getTime()===r.getTime())return e.week_index;return a<s(t[0].week_start)?0:t[t.length-1].week_index}function d(...e){for(let t of e)if(t)return t;return null}function u(e,t){switch(t){case"forecast":return{start:e.forecast_start_date??null,finish:e.forecast_finish_date??null};case"target":return{start:e.planned_start_date??null,finish:e.planned_finish_date??null};case"early":return{start:e.early_start_date??null,finish:e.early_finish_date??null};case"late":return{start:e.late_start_date??null,finish:e.late_finish_date??null};case"actual_forecast":return{start:d(e.actual_start_date,e.forecast_start_date),finish:d(e.actual_finish_date,e.forecast_finish_date)};default:return{start:null,finish:null}}}function h(e,t){let a=u(e,t);return a.start&&a.finish?{start:a.start,finish:a.finish}:p(e,t)}function p(e,t){let a,r;switch(t){case"forecast":a=d(e.actual_start_date,e.forecast_start_date,e.planned_start_date,e.early_start_date),r=d(e.actual_finish_date,e.forecast_finish_date,e.planned_finish_date,e.early_finish_date,e.late_finish_date);break;case"target":a=d(e.planned_start_date,e.early_start_date),r=d(e.planned_finish_date,e.early_finish_date,e.late_finish_date);break;case"early":a=e.early_start_date??null,r=d(e.early_finish_date,e.late_finish_date);break;case"late":a=e.late_start_date??null,r=e.late_finish_date??null;break;case"actual_forecast":a=d(e.actual_start_date,e.forecast_start_date),r=d(e.actual_finish_date,e.forecast_finish_date);break;default:return null}return a&&r?{start:a,finish:r}:null}function m(e,t,a,r){if(!t)return{start_date:e.start_date,finish_date:e.finish_date,start_week_index:e.start_week_index,end_week_index:e.end_week_index};let n=p(t,a);if(!n)return{start_date:e.start_date,finish_date:e.finish_date,start_week_index:e.start_week_index,end_week_index:e.end_week_index};let i=c(n.start,r),l=Math.max(i,c(n.finish,r));return{start_date:n.start,finish_date:n.finish,start_week_index:i,end_week_index:l}}function _(e,t){let a=new Map;for(let r of e.bars){let n=e.activity_details[r.activity_id];if(!n){a.set(r.activity_id,r);continue}let i=p(n,t);if(!i)continue;let l=c(i.start,e.week_columns),s=Math.max(l,c(i.finish,e.week_columns));a.set(r.activity_id,{...r,start_date:i.start,finish_date:i.finish,start_week_index:l,end_week_index:s,is_critical:n.is_critical})}return a}function f(e,t){let a=new Map;for(let r of e.merged.rows)a.set(r.activity_id,function(e,t,a){let r=t.merged.week_columns,n={};for(let i of t.layers){let t=e.bars_by_layer[i.layer_role];if(!t)continue;let l=i.view.activity_details[e.activity_id];if(!l)continue;let s=function(e,t,a,r,n,i){let l=p(e,a);return l&&t?{activity_id:n,layer_role:i,start_date:l.start,finish_date:l.finish,start_week_index:c(l.start,r),end_week_index:c(l.finish,r),status:t.status,is_critical:t.is_critical,stack_index:t.stack_index,bar_top_px:t.bar_top_px,bar_height_px:t.bar_height_px}:null}(l,t,a,r,e.activity_id,i.layer_role);s&&(n[i.layer_role]=s)}return n}(r,e,t));return a}},4558:(e,t,a)=>{"use strict";a.d(t,{K:()=>n});var r=a(14232);function n(){let[e,t]=(0,r.useState)(null),a=(0,r.useRef)(!1),n=(0,r.useCallback)(()=>t(null),[]),i=(0,r.useCallback)((e,r)=>{if(a.current||!r?.trim())return void t(null);let n=r.length>280?`${r.slice(0,280)}â¦`:r,i=window.innerWidth-8,l=window.innerHeight-8;t({text:n,x:Math.min(e.clientX+14,i),y:Math.min(e.clientY+16,l)})},[]),l=(0,r.useCallback)(e=>({onMouseEnter:t=>i(t,e),onMouseMove:t=>i(t,e),onMouseLeave:n,onMouseDown:()=>{a.current=!0,n()},onMouseUp:()=>{a.current=!1}}),[n,i]);return(0,r.useEffect)(()=>{let e=()=>{a.current=!1};return document.addEventListener("mouseup",e),()=>document.removeEventListener("mouseup",e)},[]),{tooltip:e,bindTip:l,hide:n}}},5067:(e,t,a)=>{"use strict";a.d(t,{F$:()=>h,FQ:()=>u,Rb:()=>y,Yo:()=>_,Zt:()=>f,cu:()=>p,qe:()=>m,ux:()=>v});var r=a(54642),n=a(84389),i=a(72470);let l=["id","desc","type","status","actualStart","actualFinish","barStart","barFinish","totalFloat","critical"],s={id:62,desc:248,type:92,status:92,actualStart:72,actualFinish:72,barStart:72,barFinish:98,totalFloat:72,critical:72},o={id:56,desc:80,type:72,status:72,actualStart:72,actualFinish:72,barStart:72,barFinish:72,totalFloat:56,critical:56},c=new Set(["type","totalFloat","critical"]);function d(e){return l.includes(e)}function u(e){return[...l,...(0,r.gU)(e)]}function h(e){let t=Object.fromEntries(l.map(e=>[e,!c.has(e)]));
1for(let a of(0,r.gU)(e))t[a]=!1;return t}function p(e){let t={...s};for(let a of(0,r.gU)(e))t[a]=r.cL;return t}function m(e){return d(e)?o[e]:(0,i.LK)(e)?i.i6:r.t_}function _(e,t){return e in t?t[e]:d(e)?s[e]:(0,i.LK)(e)?i.zW:r.cL}function f(e,t){let a={id:"ID",desc:"Activity",type:"Type",status:"Status",actualStart:n.wg.actualStart,actualFinish:n.wg.actualFinish,barStart:(0,n.rt)(t),barFinish:(0,n.QY)(t),totalFloat:"Total float",critical:"Critical"};for(let t of e?.activity_code_types??[]){let e=(0,r.II)(t.actv_code_type,t.actv_code_type_id),n=t.actv_code_type;a[e]=n.length>28?`${n.slice(0,27)}â¦`:n}return a}function v(e,t){let a=(0,r.pc)(t);if(!a)return;let n=e?.activity_code_types.find(e=>(0,r.y_)(e.actv_code_type,e.actv_code_type_id)===a);return n?.actv_code_type??a}function y(e,t){let a=new Set(u(t)),r=[],n=new Set;for(let t of e.order)a.has(t)&&!n.has(t)&&(r.push(t),n.add(t));for(let e of u(t))n.has(e)||(r.push(e),n.add(e));let i={...h(t)};for(let[t,r]of Object.entries(e.visible))a.has(t)&&(i[t]=!!r);return r.some(e=>i[e])||(i.id=!0),{order:r,visible:i,widths:{...p(t),...e.widths}}}},5217:(e,t,a)=>{"use strict";a.d(t,{Hn:()=>i,Vs:()=>n,rF:()=>r,rx:()=>l});let r=18e5;function n(e){return"string"==typeof e&&e.trim()?Number.isNaN(new Date(e).getTime())?null:e:null}function i(e,t){return n(e)??(t?n(t["x-session-expires-at"]??t["X-Session-Expires-At"]):null)}function l(e){if(!e)return null;let t=new Date(e).getTime();return Number.isNaN(t)?null:t-Date.now()}},5225:(e,t,a)=>{"use strict";a.d(t,{Cl:()=>s,Lz:()=>l,RO:()=>i,Tt:()=>o});var r=a(75670),n=a(36386);function i(e,t){let a=l(e,t);return"error"in a?e.trim()||"Schedule":a.target.label}function l(e,t){let a=e.trim();if(!a)return{target:{anchorType:"schedule",anchorId:r.S5,label:"Schedule"}};let i=(0,n.I)(a).toLowerCase(),l=new Set;for(let e of t)"activity"===e.row_type&&e.activity_id&&l.add(e.activity_id);for(let e of Array.from(l))if(e.toLowerCase()===i)return{target:{anchorType:"activity",anchorId:e,label:e}};for(let e of t)if("wbs_header"===e.row_type&&e.wbs_id&&e.label.trim().toLowerCase()===a.toLowerCase())return{target:{anchorType:"wbs",anchorId:e.wbs_id,label:e.label}};return{error:"No matching activity ID or WBS label. Leave blank for a schedule comment."}}function s(e,t){let a=e.trim().toLowerCase();if(!a)return null;for(let e of t)if("wbs_header"===e.row_type&&e.wbs_id&&e.label.trim().toLowerCase()===a)return e;return null}function o(e){return"schedule"===e}},5827:(e,t,a)=>{"use strict";a.d(t,{b:()=>p});var r=a(37876);a(14232);let n=new Set(["relationship_types"]);function i(e){return"number"==typeof e.violation_count?e.violation_count:e.violations_preview?.length??0}var l=a(2443),s=a(9130),o=a(82037),c=a(45584),d=a.n(c);function u({violation:e,row:t,onActivityClick:a,trailingText:n}){let i=(0,l.qf)(e,t);return i?(0,r.jsxs)("span",{className:d().dcmaViolationPreviewItem,children:[(0,r.jsx)(o.ZC,{activityId:i.pred,onActivityClick:a}),(0,r.jsx)("span",{"aria-hidden":"true",children:" â "}),(0,r.jsx)(o.ZC,{activityId:i.succ,onActivityClick:a}),i.detail?(0,r.jsx)("span",{children:i.detail}):null,n?(0,r.jsx)("span",{children:n.startsWith(" \xb7 ")?n:` \xb7 ${n}`}):null]}):n?(0,r.jsx)("span",{className:d().dcmaViolationPreviewItem,children:n}):null}let h=({violation:e,row:t,index:a,violationTypeLabels:n,constraintLabels:i,onActivityClick:c})=>{if((0,s.xS)(e)){let n=e.failure_reason?.trim();if((0,l.mL)(e))return(0,r.jsx)(u,{violation:e,row:t,onActivityClick:c,trailingText:n?` \xb7 ${n}`:void 0});let i=(0,l.EL)(e);return i&&n?(0,r.jsxs)("div",{className:d().dcmaViolationPreviewItem,children:[(0,r.jsx)(o.ZC,{activityId:i,onActivityClick:c}),(0,r.jsx)("span",{className:d().dcmaViolationPreviewText,children:n})]}):(0,r.jsx)("div",{className:d().dcmaViolationPreviewItem,children:n??`Issue ${a+1}`})}if((0,l.mL)(e))return(0,r.jsx)(u,{violation:e,row:t,onActivityClick:c});if((0,l.FD)(e))return(0,r.jsx)(o.FV,{violation:e,onActivityClick:c,className:d().dcmaViolationPreviewItem});let h=(0,l.He)(e,t,n,a,i),p=(0,l.EL)(e);if(p){let e=(0,l.bv)(h,p);return(0,r.jsxs)("div",{className:d().dcmaViolationPreviewItem,children:[(0,r.jsx)(o.ZC,{activityId:p,onActivityClick:c}),e?(0,r.jsx)("span",{className:d().dcmaViolationPreviewText,children:e}):null]})}return(0,r.jsx)("div",{className:d().dcmaViolationPreviewItem,children:h})},p=({row:e,onViewAll:t,onActivityClick:a,violationTypeLabels:l,constraintLabels:s})=>{let o=(e.violations_preview??[]).slice(0,5),c=!!function(e){if(!1===e.view_all_enabled)return!1;if(!0===e.view_all_enabled)return!0;let t=e.check_name;return!(t&&n.has(t))}(e)&&!1!==e.view_all_capable&&i(e)>5&&!!t,u=i(e);return 0!==o.length||c?(0,r.jsxs)("div",{className:d().dcmaViolationPreview,children:[o.map((t,n)=>(0,r.jsx)(h,{violation:t,row:e,index:n,violationTypeLabels:l,constraintLabels:s,onActivityClick:a},`${e.check_name}-${n}`)),c?(0,r.jsxs)("button",{type:"button",className:d().dcmaViewAllLink,onClick:t,children:["View all ",u," issues"]}):null]}):null}},6716:e=>{e.exports={control:"ScheduleStatusDateControl_control__tTIAu",controlToolbar:"ScheduleStatusDateControl_controlToolbar__1zg5w",controlToolbarOpen:"ScheduleStatusDateControl_controlToolbarOpen__elW
1yG",toolbarTrigger:"ScheduleStatusDateControl_toolbarTrigger__ZOkgv",controlApplying:"ScheduleStatusDateControl_controlApplying__bh0D_",spinner:"ScheduleStatusDateControl_spinner__KNd7a",statusDateSpin:"ScheduleStatusDateControl_statusDateSpin___rmND",toolbarValue:"ScheduleStatusDateControl_toolbarValue__oRa__",toolbarCaret:"ScheduleStatusDateControl_toolbarCaret__uLFEL",toolbarDataDateLabel:"ScheduleStatusDateControl_toolbarDataDateLabel__ooZEl",popup:"ScheduleStatusDateControl_popup__LZeXe",srPanelIn:"ScheduleStatusDateControl_srPanelIn___TKGF",popupEyebrow:"ScheduleStatusDateControl_popupEyebrow__4YlRI",popupInputRow:"ScheduleStatusDateControl_popupInputRow__7I7mW",popupInput:"ScheduleStatusDateControl_popupInput__DgSxQ",popupCalendarIcon:"ScheduleStatusDateControl_popupCalendarIcon__sfIiu",popupHelp:"ScheduleStatusDateControl_popupHelp__MR_BY",popupLoading:"ScheduleStatusDateControl_popupLoading__1jnPI",popupLoadingText:"ScheduleStatusDateControl_popupLoadingText__ice8y",popupLoadingTrack:"ScheduleStatusDateControl_popupLoadingTrack__8C1hz",popupLoadingBar:"ScheduleStatusDateControl_popupLoadingBar__xLzS4",statusDateSweep:"ScheduleStatusDateControl_statusDateSweep__yUnoL",popupActions:"ScheduleStatusDateControl_popupActions__l9LJQ",popupApply:"ScheduleStatusDateControl_popupApply__ZqBd3",popupApplyBusy:"ScheduleStatusDateControl_popupApplyBusy__OCzt1",controlDefault:"ScheduleStatusDateControl_controlDefault__tmiJS",controlDirty:"ScheduleStatusDateControl_controlDirty__G0Hf6",field:"ScheduleStatusDateControl_field__W9pZQ",label:"ScheduleStatusDateControl_label__R9QVR",inputWrap:"ScheduleStatusDateControl_inputWrap__h6kwr",input:"ScheduleStatusDateControl_input__McPy6",inputDirty:"ScheduleStatusDateControl_inputDirty__Dm82L",applyIconBtn:"ScheduleStatusDateControl_applyIconBtn__MGnp6",applyIconBtnHidden:"ScheduleStatusDateControl_applyIconBtnHidden__pUqUo",linkBtn:"ScheduleStatusDateControl_linkBtn__Px6Mf"}},7863:(e,t,a)=>{"use strict";a.d(t,{n:()=>l});var r=a(37876);a(14232);var n=a(90055),i=a.n(n);let l=({kind:e})=>{let t="CP"===e;return(0,r.jsx)("span",{className:t?i().cpBadge:i().ncpBadge,title:t?"Critical path (CP)":"Near-critical path (NCP)",children:e})}},9130:(e,t,a)=>{"use strict";a.d(t,{G6:()=>s,Pl:()=>p,Sn:()=>d,ZC:()=>o,bY:()=>u,ep:()=>c,iR:()=>l,xS:()=>h});let r={actual_start_after_status_date:"Actual start after status date",actual_finish_after_status_date:"Actual finish after status date",forecast_start_before_status_date:"Forecast start before status date",forecast_finish_before_status_date:"Forecast finish before status date"},n={actual_start_with_not_started_status:"Actual start recorded but status is Not Started",actual_finish_with_not_started_status:"Actual finish recorded but status is Not Started",actual_start_after_planned_finish:"Actual start after planned finish"},i={not_started:"not started",in_progress:"in progress",completed:"completed"};function l(e){return Array.isArray(e)?e.map(e=>{let t=String(e);return r[t]??t.replace(/_/g," ")}).filter(Boolean).join("; "):""}function s(e){return Array.isArray(e)?e.map(e=>{let t=String(e);return n[t]??t.replace(/_/g," ")}).filter(Boolean).join("; "):""}function o(e,t){if(null==e)return"";let a=String(e);return t?.[a]??a.replace(/_/g," ")}function c(e){if(!("resource_loaded"in e)&&!("cost_loaded"in e))return;let t=!0===e.resource_loaded,a=!0===e.cost_loaded;return t||a?t?a?void 0:"No cost loaded":"No resource loaded":"No resource or cost loaded"}function d(e){let t=e.early_start_date,a=e.status_date;return null!=t&&null!=a&&String(t)===String(a)?"Start anchored on status date":null!=t&&null!=a?`Early start ${t} \xb7 status date ${a}`:null!=t?`Early start ${t}`:"Start anchored near status date"}function u(e){if(!("successor_actual_start"in e))return;let t="string"==typeof e.predecessor_status?i[e.predecessor_status]??e.predecessor_status.replace(/_/g," "):"incomplete";return`succ started \xb7 pred ${t}`}function h(e){return"cpm_diagnostic_contributor"===e.violation_type}function p(e){return e.activity_description?.trim()||e.activity_name?.trim()||void 0}},9542:(e,t,a)=>{"use strict";a.d(t,{FC:()=>s,VQ:()=>n,XQ:()=>i});var r=a(42959);function n(e){return e instanceof r.gQ&&"REVISION_CONFLICT"===e.errorCode&&e.details?.reason==="revision_alloc_in_progress"}function i(){return"Another revision is being saved for this project. Wait a moment and try again."}async function l(e){await new Promise(t=>window.setTimeout(t,e))}async function s(e,t={}){let a,{maxAttempts:r=4,initialDelayMs:i=400}=t;
1for(let t=0;t<r;t+=1)try{return await e()}catch(e){if(a=e,!n(e)||t>=r-1)throw e;await l(i*2**t)}throw a}},11182:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(53362).A)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]])},12455:(e,t,a)=>{"use strict";a.d(t,{G:()=>o});var r=a(37876),n=a(14232),i=a(98477),l=a(13412),s=a.n(l);function o({children:e}){let[t,a]=(0,n.useState)(null);(0,n.useLayoutEffect)(()=>{let e=document.querySelector('[data-ui="main-content"]');a(e),e&&(e.scrollTop=0)},[]);let l=(0,r.jsx)("div",{"data-schedule-reader-shell":"",className:t?s().viewerShellEmbedded:s().viewerShellFullscreen,children:e});return t?(0,i.createPortal)(l,t):l}},12499:(e,t,a)=>{"use strict";function r(e){return e.revision_display_name?.trim()||e.revision_label}function n(e){let t=i(e),a=e.revision_display_name?.trim();return a?`${a} (${t})`:t}function i(e){if("number"==typeof e.revision_number&&Number.isFinite(e.revision_number))return`Rev ${e.revision_number}`;let t=/^r(\d+)$/i.exec(e.revision_label.trim());return t?`Rev ${t[1]}`:e.revision_label}function l(e){return e.replace(/\s*\([\d,]+\s*activities\)\s*$/i,"").trim()}function s(e){let t=r(e),a=i(e);return e.revision_display_name?.trim()?`${t} (${a})`:t}function o(e){let t=e.updated_at||e.created_at,a=t?new Date(t).toLocaleDateString():"unknown date";return`${s(e)} \xb7 ${a}`}function c(e){let t=e.updated_at||e.created_at;if(!t)return"Last modified date unknown";let a=new Date(t);return Number.isNaN(a.getTime())?"Last modified date unknown":`Last modified ${a.toLocaleDateString()}`}function d(e){let t,a=e.created_at||e.updated_at,r=a?Number.isNaN((t=new Date(a)).getTime())?null:t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}):null,n=e.created_by_name?.trim()||e.last_modified_by_name?.trim()||e.created_by?.trim()||null,i=0===e.revision_number||/^r0$/i.test(e.revision_label.trim()),l=[];return i?(l.push("Baseline"),r&&l.push(r)):r?l.push(`Uploaded ${r}`):l.push("Uploaded"),n&&l.push(`by ${n}`),l.join(" \xb7 ")}function u(e){return r(e)}function h(e){return e.revision_display_name?.trim()||i(e)}a.d(t,{JY:()=>r,RN:()=>s,S4:()=>d,Tl:()=>o,W6:()=>u,ig:()=>h,mj:()=>i,nZ:()=>l,vu:()=>c,xe:()=>n})},13169:(e,t,a)=>{"use strict";a.d(t,{F:()=>c});var r=a(37876);a(14232);var n=a(68957),i=a(90055),l=a.n(i),s=a(83897),o=a.n(s);let c=({revisions:e,activeRevisionId:t,onSelect:a,variant:i="overlay"})=>{if(e.length<=1)return null;let s="overlay"===i?o().compareRevisionPill:o().compareRevisionPillInline,c="overlay"===i?o().compareRevisionPillActive:o().compareRevisionPillInlineActive;return(0,r.jsx)("div",{className:o().compareRevisionPills,role:"tablist","aria-label":"Compare schedule revisions for health analysis",children:e.map(e=>{let i=e.uploadId===t;return(0,r.jsxs)("button",{type:"button",role:"tab","aria-selected":i,className:`${s}${i?` ${c}`:""}`,onClick:()=>a(e.uploadId),title:e.label,children:[(0,r.jsx)("span",{className:`${l().compareLayerSwatch} ${(0,n.VT)(e.layerRole,l())}`,"aria-hidden":"true"}),(0,r.jsx)("span",{className:o().compareRevisionPillLabel,children:e.label})]},e.uploadId)})})}},13412:e=>{e.exports={viewerShellEmbedded:"GanttViewer_viewerShellEmbedded__ymTIT",viewerShellFullscreen:"GanttViewer_viewerShellFullscreen__8HdZC",toolbar:"GanttViewer_toolbar__tRjiF",toolbarRowPrimary:"GanttViewer_toolbarRowPrimary__4m34p",toolbarLeading:"GanttViewer_toolbarLeading__1bXeM",toolbarTrailing:"GanttViewer_toolbarTrailing__KpqZt",toolbarSpacer:"GanttViewer_toolbarSpacer__oInGQ",compareHeaderBar:"GanttViewer_compareHeaderBar__hnwjm",compareHeaderRow:"GanttViewer_compareHeaderRow__eYTsf",actionGroup:"GanttViewer_actionGroup__evOcL",compareHeaderDivider:"GanttViewer_compareHeaderDivider__1eLu0",compareRevisionSummary:"GanttViewer_compareRevisionSummary__avTEr",compareRevisionSummaryTrigger:"GanttViewer_compareRevisionSummaryTrigger__mfirs",compareRevisionSummarySwatches:"GanttViewer_compareRevisionSummarySwatches__ia3Q7",compareRevisionSummarySwatch:"GanttViewer_compareRevisionSummarySwatch__3IeQK",compareRevisionSummaryCaret:"GanttViewer_compareRevisionSummaryCaret__ZNtPf",compareRevisionSummaryPanel:"GanttViewer_compareRevisionSummaryPanel__M4eoD",srMenuIn:"GanttViewer_srMenuIn__VHWGo",compareRevisionSummaryPanelLabel:"GanttViewer_compareRevisionSummaryPanelLabel__r_rPq",compareLayerRows:"GanttViewer_compareLayerRows__
1VBIEh",compareLayerRow:"GanttViewer_compareLayerRow__VUbtO",compareLayerRowSwatch:"GanttViewer_compareLayerRowSwatch__SHwBY",compareLayerRowRole:"GanttViewer_compareLayerRowRole__kdB84",compareLayerRowValue:"GanttViewer_compareLayerRowValue__d4xnX",compareLayerRowValuePending:"GanttViewer_compareLayerRowValuePending__qqTO_",compareLayerControlWrap:"GanttViewer_compareLayerControlWrap__d_nVc",revisionPicker:"GanttViewer_revisionPicker__93wTg",compareLayerActionSlot:"GanttViewer_compareLayerActionSlot__KZVfa",compareLayerSelect:"GanttViewer_compareLayerSelect__hWt7a",compareLayerSelectOpen:"GanttViewer_compareLayerSelectOpen__f_KMu",compareLayerSelectPending:"GanttViewer_compareLayerSelectPending__5MbgC",compareLayerSelectRemoved:"GanttViewer_compareLayerSelectRemoved__oQpug",revisionPickerCaret:"GanttViewer_revisionPickerCaret__odTEo",compareLayerSwapBtn:"GanttViewer_compareLayerSwapBtn__M2Ugn",compareLayerSwapBtnOpen:"GanttViewer_compareLayerSwapBtnOpen__5jb0f",compareLayerRowRemoveBtn:"GanttViewer_compareLayerRowRemoveBtn__K8rV7",compareAddLayerRowWrap:"GanttViewer_compareAddLayerRowWrap__gJfEJ",compareAddLayerRow:"GanttViewer_compareAddLayerRow__T4qVq",compareAddLayerRowLabel:"GanttViewer_compareAddLayerRowLabel__o1eNz",compareAddLayerRowHint:"GanttViewer_compareAddLayerRowHint__E_y8q",compareLayerFooter:"GanttViewer_compareLayerFooter__Y0HoG",compareLayerLoadBtn:"GanttViewer_compareLayerLoadBtn__PPjA9",compareLayerResetBtn:"GanttViewer_compareLayerResetBtn__WQ3NX",layerLegendGroup:"GanttViewer_layerLegendGroup__4Z_6h",compareRevisionControls:"GanttViewer_compareRevisionControls__S1_3i",compareRevisionApplyRow:"GanttViewer_compareRevisionApplyRow__N_7or",compareLayerChipWrap:"GanttViewer_compareLayerChipWrap__REm8r",compareLayerChipWrapRemoved:"GanttViewer_compareLayerChipWrapRemoved__i7C4J",compareLayerLegendChipRemoved:"GanttViewer_compareLayerLegendChipRemoved__A4FzF",compareLayerRemoveBtn:"GanttViewer_compareLayerRemoveBtn__eBFn7",compareLayerRemoveBtnUndo:"GanttViewer_compareLayerRemoveBtnUndo__Hzt91",compareLayerLegendChipPending:"GanttViewer_compareLayerLegendChipPending___0Uhv",compareAddLayerChip:"GanttViewer_compareAddLayerChip__s4zBk",compareAddLayerPlus:"GanttViewer_compareAddLayerPlus__4K7cy",compareAddLayerEmpty:"GanttViewer_compareAddLayerEmpty__kC7df",compareRevisionSwapStatus:"GanttViewer_compareRevisionSwapStatus__lOIRm",compareRevisionSwapError:"GanttViewer_compareRevisionSwapError__xWFTn",revisionControls:"GanttViewer_revisionControls__WK2oF",revisionPickerTrigger:"GanttViewer_revisionPickerTrigger__qj_Wa",revisionPickerTriggerOpen:"GanttViewer_revisionPickerTriggerOpen__2huM4",revisionSwitcherPill:"GanttViewer_revisionSwitcherPill__aw51S",revisionPickerPanel:"GanttViewer_revisionPickerPanel__VEunC",srPanelIn:"GanttViewer_srPanelIn__V21V0",revisionPickerPanelEnd:"GanttViewer_revisionPickerPanelEnd__3TB5Y",revisionPickerMenu:"GanttViewer_revisionPickerMenu__7tNzO",revisionPickerSectionLabel:"GanttViewer_revisionPickerSectionLabel__93ivF",revisionPickerRenameBtn:"GanttViewer_revisionPickerRenameBtn__wH5a_",revisionRenameForm:"GanttViewer_revisionRenameForm__sFd_n",revisionRenameInput:"GanttViewer_revisionRenameInput__DhBjv",revisionRenameActions:"GanttViewer_revisionRenameActions__mE_fD",revisionPickerOption:"GanttViewer_revisionPickerOption__W_g2W",revisionPickerOptionSelected:"GanttViewer_revisionPickerOptionSelected__lWH_X",revisionPickerOptionBody:"GanttViewer_revisionPickerOptionBody__nvxux",revisionPickerOptionName:"GanttViewer_revisionPickerOptionName__hw1RP",revisionPickerOptionMeta:"GanttViewer_revisionPickerOptionMeta__QsRSA",revisionPickerOptionFilename:"GanttViewer_revisionPickerOptionFilename__3G6i_",revisionPickerOptionDate:"GanttViewer_revisionPickerOptionDate__75NVp",revisionPickerOptionLabel:"GanttViewer_revisionPickerOptionLabel__2KMqM",revisionPickerCheck:"GanttViewer_revisionPickerCheck__KQ48h",revisionPickerNotesBadge:"GanttViewer_revisionPickerNotesBadge__AgzD_",notesPopoverWrap:"GanttViewer_notesPopoverWrap__NbuKW",notesPopoverMenu:"GanttViewer_notesPopoverMenu__uLP1M",notesPopoverTextarea:"GanttViewer_notesPopoverTextarea__ivp4h",notesPopoverHint:"GanttViewer_notesPopoverHint__mMZbI",revisionCluster:"GanttViewer_revisionCluster__mp_3w",compareLayerLegendChip:"GanttViewer_compareLayerLegendChip__0kKiQ",compareLayerLegendChipStatic:"GanttViewer_compareLayerLegendChipStatic__9bsVY",compareLayerLegendLabel:"GanttViewer_compareLayerLegendLabel__jbPBu",revisionCommentWrap:"GanttViewer_revisionCommentWrap__9YsWN",revisionCommentExpanded:"GanttViewer_revisionCommentExpanded__fWFVS",revisionCommentLabel:"GanttViewer_revisionCommentLabel__JnLty",revisionCommentInput:"GanttViewer_revisionCommentInput__7WnPZ",srOnly:"GanttViewer_srOnly__zbp47",backBtn:"GanttViewer_backBtn__zMwnv",compareBackBtn:"GanttViewer_compareBackBtn__4zANa",statusDateControl:"GanttViewer_statusDateControl__KzVnY",statusDateLabel:"GanttViewer_statusDateLabel__WuLfV",statusDateInput:"GanttViewer_statusDateInput__KCfWj",statusDateApplyBtn:"GanttViewer_statusDateApplyBtn__hHTgP",statusDateTodayBtn:"GanttViewer_statusDateTodayBtn__qnMea",titleBlock:"GanttViewer_titleBlock____tz1",titleRow:"GanttViewer_titleRow__XjkWp",title:"GanttViewer_title__mBXeX",titleAccessory:"GanttViewer_titleAccessory__nytmz",titleMeta:"GanttViewer_titleMeta__XtC8K",titleMetaRow:"GanttViewer_titleMetaRow__UBmvN",warningsReopenInTitle:"GanttViewer_warningsReopenInTitle__yOdDX",shareIcon:"GanttViewer_shareIcon__XFs1I",saveMenuMetaCluster:"GanttViewer_saveMenuMetaCluster__VQ4s3",headerMetaControls:"GanttViewer_headerMetaControls__zlfIA",revisionMetaFields:"GanttViewer_revisionMetaFields__V5MzW",fieldLabel:"GanttViewer_fieldLabel__to0kU",select:"GanttViewer_select__ZsiIj",versionSelect:"GanttViewer_versionSelect__C_VlT",hint:"GanttViewer_hint__hghqU",compareLayerChip:"GanttViewer_compareLayerChip__WNYD2",compareLayerChipPrimary:"GanttViewer_compareLayerChipPrimary__Gr9rV",compareLayerChipBaseline1:"GanttViewer_compareLayerChipBaseline1__unwaO",compareLayerChipBaseline2:"GanttViewer_compareLayerChipBaseline2__rm7X3",compareLayerChipBaseline3:"GanttViewer_compareLayerChipBaseline3__us7n5",actionGroupLabel:"GanttViewer_actionGroupLabel__PXixp",toolbarBtn:"GanttViewer_toolbarBtn__RarOe",toolbarBtnPrimary:"GanttViewer_toolbarBtnPrimary___gkRk",toolbarBtnBusy:"GanttViewer_toolbarBtnBusy__BbbKb",saveSplit:"GanttViewer_saveSplit__2z_9r",saveSplitTrigger:"GanttViewer_saveSplitTrigger__fX16L",saveSplitSpinner:"GanttViewer_saveSplitSpinner__LtAui",revisionSaveSpin:"GanttViewer_revisionSaveSpin__1NTt2",s
1aveSplitBadge:"GanttViewer_saveSplitBadge__R5Obl",saveSplitMenu:"GanttViewer_saveSplitMenu__fpDrc",saveSplitMenuItem:"GanttViewer_saveSplitMenuItem__ceA3O",saveSplitMenuItemTitle:"GanttViewer_saveSplitMenuItemTitle__NycRd",saveSplitMenuItemSub:"GanttViewer_saveSplitMenuItemSub__CvuDr",saveSplitMenuItemDisabled:"GanttViewer_saveSplitMenuItemDisabled__M4SwY",headerMenuWrap:"GanttViewer_headerMenuWrap__XOf89",headerMenu:"GanttViewer_headerMenu__e4jIP",headerMenuItem:"GanttViewer_headerMenuItem__C7obq",headerMenuItemIcon:"GanttViewer_headerMenuItemIcon__IynnG",headerMenuItemText:"GanttViewer_headerMenuItemText__AV4uA",headerMenuItemTitle:"GanttViewer_headerMenuItemTitle__UPH69",headerMenuItemSub:"GanttViewer_headerMenuItemSub__MOTao",revisionSaveWrap:"GanttViewer_revisionSaveWrap__yqVUG",revisionSaveSpinner:"GanttViewer_revisionSaveSpinner__0RXFS",revisionSaveSpinnerIcon:"GanttViewer_revisionSaveSpinnerIcon__2duzd",saveRevisionHint:"GanttViewer_saveRevisionHint__mdWz_",saveRevisionError:"GanttViewer_saveRevisionError__deWNE",commentArea:"GanttViewer_commentArea__DjHbE",commentInput:"GanttViewer_commentInput__MThUn",commentInputWide:"GanttViewer_commentInputWide__ctxqn",editHint:"GanttViewer_editHint__YTIHN",saveSuccessHint:"GanttViewer_saveSuccessHint__zVmIi",viewerToast:"GanttViewer_viewerToast__fgA3m",viewerToastIcon:"GanttViewer_viewerToastIcon__sEqDY",saveChangeSummaryDock:"GanttViewer_saveChangeSummaryDock__8IRhc",loadingOverlay:"GanttViewer_loadingOverlay__m3jVp",loadingOverlayText:"GanttViewer_loadingOverlayText__zfXdH",srLsPulse:"GanttViewer_srLsPulse__N_oam",thinkingBar:"GanttViewer_thinkingBar__jdzJw",thinkingBarActive:"GanttViewer_thinkingBarActive__oOkdV",srThinkingSweep:"GanttViewer_srThinkingSweep__Cr7q5",sessionExpiryBanner:"GanttViewer_sessionExpiryBanner__TrdYk",sessionExpiryLeading:"GanttViewer_sessionExpiryLeading__dRcVd",sessionExpiryIcon:"GanttViewer_sessionExpiryIcon__bP_lM",sessionExpiryAction:"GanttViewer_sessionExpiryAction__wo4Zp"}},13911:(e,t,a)=>{"use strict";a.d(t,{i:()=>i});var r=a(14232);let n="scheduleReader.ganttTraceLegendShown";function i(){let[e,t]=(0,r.useState)(!1);return{coachMarkOpen:e,maybeShowCoachOnTrace:(0,r.useCallback)(()=>{!function(){try{return"1"===window.sessionStorage.getItem(n)}catch{return!0}}()&&t(!0)},[]),dismissCoachMark:(0,r.useCallback)(()=>{try{window.sessionStorage.setItem(n,"1")}catch{}t(!1)},[]),closeCoachMark:()=>t(!1)}}},15077:(e,t,a)=>{"use strict";a.d(t,{AJ:()=>i,Pf:()=>r,a0:()=>n,j3:()=>o,kP:()=>l,nF:()=>s});let r=["full","left","right","bottom"],n={full:"Full view",left:"Left pane",right:"Right pane",bottom:"Bottom pane"},i="right",l="min(42vh, 480px)";function s(e){return"bottom"===e?"fit-width":"none"}function o(e){return"full"===e||"right"===e||"left"===e?"bottom":e}},15129:(e,t,a)=>{"use strict";a.d(t,{x:()=>o});var r=a(37876);a(14232);var n=a(25449);let i=(0,a(53362).A)("lock-open",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]]);var l=a(90055),s=a.n(l);let o=({locked:e,collapsed:t,onToggle:a})=>{let l=t?"collapsed":"expanded",o=e?`Unlock ${l} group`:`Lock ${l} group`,c=e?n.A:i;return(0,r.jsx)("button",{type:"button",className:`${s().wbsLockBtn}${e?` ${s().wbsLockBtnActive}`:""}`,"aria-label":o,"aria-pressed":e,title:e?"Unlock so this group can be expanded or collapsed":"Lock this group so a click will not expand or collapse it",onClick:e=>{e.stopPropagation(),a()},children:(0,r.jsx)(c,{size:11,strokeWidth:2.25,"aria-hidden":"true"})})}},15266:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(53362).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},16603:(e,t,a)=>{"use strict";a.d(t,{$_:()=>o,KE:()=>l,L4:()=>n,jh:()=>s});var r=a(14232);function n(e,t,a,r=12){let i=e.offsetWidth||e.getBoundingClientRect().width,l=e.offsetHeight||e.getBoundingClientRect().height,s=Math.max(r,window.innerWidth-i-r),o=Math.max(r,window.innerHeight-l-r);return{left:Math.min(Math.max(r,t),s),top:Math.min(Math.max(r,a),o)}}function i(e,t){e.style.left=`${t.left}px`,e.style.top=`${t.top}px`}function l(e,t,a,r=12){let i=e.getBoundingClientRect(),s=t+r,o=a+r;return s+i.width>window.innerWidth-r&&(s=Math.max(r,t-i.width-r)),o+i.height>window.innerHeight-r&&(o=Math.max(r,window.innerHeight-i.height-r)),n(e,s,o,r)}function s(e,t,a,r,i,l=12){let o=e.getBoundingClientRect();return n(e,null!=r?r-o.width:null!=i?i:t+l,a+l,l)}function o({panelRef:e,placementKey:t,placementDeps:a=[],computePosition:l}){let s=(0,r.useRef)(null);(0,r.useLayoutEffect)(()=>{let t=e.current;t&&(s.current=null,i(t,l(t)))},[l,e,t,...a]);let c=(0,r.useCallback)(t=>{if(0!==t.button||t.target.closest("button"))return;let a=e.current;if(!a)return;let r=a.getBoundingClientRect();s.current={pointerId:t.pointerId,startClientX:t.clientX,startClientY:t.clientY,startLeft:r.left,startTop:r.top},t.currentTarget.setPointerCapture(t.pointerId),t.preventDefault()},[e]),d=(0,r.useCallback)(t=>{let a=s.current;if(!a||a.pointerId!==t.pointerId)return;let r=e.current;if(!r)return;let l=t.clientX-a.startClientX,o=t.clientY-a.startClientY;i(r,n(r,a.startLeft+l,a.startTop+o))},[e]),u=(0,r.useCallback)(e=>{let t=s.current;t&&t.pointerId===e.pointerId&&(s.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]);return{headerDragProps:{onPointerDown:c,onPointerMove:d,onPointerUp:u,onPointerCancel:u},reclampToViewport:(0,r.useCallback)(()=>{let t=e.current;if(!t)return;let a=t.getBoundingClientRect();i(t,n(t,a.left,a.top))},[e])}}},17159:(e,t,a)=>{"use strict";a.d(t,{Hp:()=>o,L3:()=>l,V3:()=>r,gJ:()=>s,gm:()=>n,lW:()=>i});let r={title:"Commenting isnât available",body:"Your access to Schedule Reader Comments w
1as removed. Reach out to your company administrator if you still need it.",cta:"Got it"},n="Commenting isnât included for your account. Ask your company administrator to assign Schedule Reader Comments.",i={title:"Canât open this schedule",body:"You no longer have access to Schedule Reader. Reach out to your company administrator if you need it restored.",cta:"Back to schedules"},l="DCMA Health Check isnât available on your account. Ask your company administrator if you need access.",s={title:"DCMA isnât available",body:"Your access to DCMA Health Check was removed. Reach out to your company administrator if you still need it.",cta:"Got it"},o="PRODUCT_ACCESS_DENIED"},18091:(e,t,a)=>{"use strict";a.d(t,{b:()=>i});var r=a(53007),n=a(36386);function i(e,t,a=10){let l=(0,n.I)(e).toLowerCase();if(!l)return[];let s=[];for(let e of t)"activity"===e.row_type&&e.activity_id&&function(e,t){let a=e.toLowerCase();return t.length<r.Ol?a===t||a.startsWith(t):a.includes(t)}(e.activity_id,l)&&s.push({activityId:e.activity_id,label:e.label?.trim()||e.activity_id});return s.sort((e,t)=>{let a=e.activityId.toLowerCase(),r=t.activityId.toLowerCase(),n=+!a.startsWith(l),i=+!r.startsWith(l);return n!==i?n-i:a.localeCompare(r)}),s.slice(0,a)}},19427:(e,t,a)=>{"use strict";function r(e){let t={};for(let a of e)!1!==a.visibleInResponse&&(t[a.moduleType]=a);return t}function n(e){return e?.payload??{}}function i(e){var t;let a;return!!e&&"skipped"!==e.status&&"insufficient_data"!==e.status&&(!!Array.isArray(a=(t=e.payload??{}).horizons)&&a.length>0||"skipped"!==t.status&&("skipped"!==t.componentStatus||!!t.score||!!t.rows))}function l(e){let t=e.horizons;if(!Array.isArray(t))return null;for(let e of t)if(e&&"object"==typeof e&&"+30d"===e.horizon)return e;return null}function s(e,t=3){let a=e.current_explanation;if(!a||"object"!=typeof a)return[];let r=a.top_negative_contributors;if(!Array.isArray(r))return[];let n=[];for(let e of r.slice(0,t)){if(!e||"object"!=typeof e)continue;let t=String(e.key??e.registry_key??e.bucket??"driver"),a=String(e.aggregate_summary??e.field_summary??e.explanation??""),r=e.importance_score??e.weighted_capped_impact??e.penalty,i="number"==typeof r?r.toFixed(1):null!=r?String(r):"";n.push({key:t,detail:a||i,impact:i})}return n}a.d(t,{NI:()=>r,TV:()=>n,l4:()=>s,oQ:()=>i,sb:()=>l})},20212:(e,t,a)=>{"use strict";a.d(t,{f:()=>r,u:()=>n});let r=1500,n=240},20354:(e,t,a)=>{"use strict";a.d(t,{f:()=>w});var r=a(37876),n=a(14232),i=a(53007);let l="Search",s="Schedule",o="Lookahead";var c=a(65960),d=a(80881),u=a(98249),h=a(90055),p=a.n(h);let m=[{code:"TK_NotStart",label:"Not Started"},{code:"TK_Active",label:"In Progress"},{code:"TK_Complete",label:"Completed"}];function _(e,t,a){let r=new Set(e);for(let e of t)a?r.add(e):r.delete(e);return Array.from(r)}function f(e,t){return t.every(t=>e.includes(t))}function v({ctx:e}){var t;let a=(0,c.$8)(e.statusDate??void 0,28),n=e.filters.startOnOrAfter===a.startOnOrAfter&&e.filters.finishOnOrBefore===a.finishOnOrBefore,i=5===e.filters.maxTotalFloatDays,l=(t=e.filters,(0,d.KX)(t.activityTypes));return(0,r.jsxs)("div",{className:p().filterQuickBlock,children:[(0,r.jsx)("span",{className:p().filterSectionEyebrow,children:"Quick Filters"}),(0,r.jsxs)("div",{className:p().filterQuickRow,children:[(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill} ${p().filterQuickChip}${l?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":l,onClick:()=>e.update({activityTypes:l?[]:[...d.N0]}),children:"Milestones Only"}),(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill} ${p().filterQuickChip}${e.filters.criticalOnly?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":e.filters.criticalOnly,onClick:()=>e.update({criticalOnly:!e.filters.criticalOnly}),children:"Critical Path"}),(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill} ${p().filterQuickChip}${i?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":i,onClick:()=>e.update({maxTotalFloatDays:i?null:5}),children:"Float ⤠5 Days"}),(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill} ${p().filterQuickChip}${n?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":n,onClick:()=>{n?e.applyDatePatch({startOnOrAfter:null,finishOnOrBefore:null}):e.applyDatePatch(a)},children:"Next 4 Weeks"})]})]})}function y({ctx:e}){let t="stacked"===e.layout?p().filterDateGroup:p().filterSectionContent;return(0,r.jsxs)("div",{className:t,children:["stacked"===e.layout&&(0,r.jsx)("span",{className:p().filterGroupLabel,children:l}),(0,r.jsx)(v,{ctx:e}),(0,r.jsxs)("div",{className:p().filterQuickBlock,children:[(0,r.jsx)("span",{className:`${p().filterSectionEyebrow} ${p().filterSectionEyebrowMuted}`,children:"Activity ID"}),(0,r.jsxs)("label",{className:`${p().filterField} ${p().filterFieldFull}`,children:[(0,r.jsx)("input",{type:"search",className:`${p().filterInput} ${p().filterInputWide}`,value:e.filters.searchText,placeholder:"Enter Activity ID or Name",title:e.searchHint,"aria-label":"Activity ID","aria-describedby":"gantt-id-search-hint",onCh
1ange:t=>e.update({searchText:t.target.value})}),(0,r.jsx)("span",{id:"gantt-id-search-hint",className:p().filterHintVisuallyHidden,children:e.searchHint})]})]})]})}function g({ctx:e}){let t=new Set(e.filters.statusCodes),a=f(e.filters.activityTypes,d.I6),n=f(e.filters.activityTypes,d.N0);return(0,r.jsxs)("div",{className:"stacked"===e.layout?`${p().filterDateGroup} ${p().filterScheduleTab}`:p().filterScheduleTab,children:["stacked"===e.layout&&(0,r.jsx)("span",{className:p().filterGroupLabel,children:s}),(0,r.jsxs)("div",{className:p().filterScheduleBlock,children:[(0,r.jsx)("span",{className:p().filterScheduleEyebrow,children:"WBS Level"}),(0,r.jsx)("div",{className:p().filterQuickRow,role:"group","aria-label":"WBS outline level",children:u.BM.map(t=>{let a=e.wbsOutlineLevel===t.level;return(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${a?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":a,onClick:()=>e.onWbsOutlineLevelChange?.(t.level),children:t.label},t.level)})}),(0,r.jsx)("p",{className:p().filterScheduleHint,children:"Sets outline depth. Doesn't hide activities."})]}),(0,r.jsxs)("div",{className:p().filterScheduleBlock,children:[(0,r.jsx)("span",{className:p().filterScheduleEyebrow,children:"Status"}),(0,r.jsx)("div",{className:p().filterQuickRow,role:"group","aria-label":"Status filter",children:m.map(a=>{let n=t.has(a.code);return(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${n?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":n,onClick:()=>{var t,r,i;let l;return e.update({statusCodes:(t=e.filters.statusCodes,r=a.code,i=!n,l=new Set(t),i?l.add(r):l.delete(r),Array.from(l))})},children:a.label},a.code)})})]}),(0,r.jsxs)("div",{className:p().filterScheduleBlock,children:[(0,r.jsx)("span",{className:p().filterScheduleEyebrow,children:"Activity Type"}),(0,r.jsxs)("div",{className:p().filterQuickRow,role:"group","aria-label":"Activity type filter",children:[(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${a?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":a,onClick:()=>e.update({activityTypes:_(e.filters.activityTypes,d.I6,!a)}),children:"Task"}),(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${n?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":n,onClick:()=>e.update({activityTypes:_(e.filters.activityTypes,d.N0,!n)}),children:"Milestone"})]})]}),(0,r.jsxs)("div",{className:p().filterScheduleBlock,children:[(0,r.jsx)("span",{className:p().filterScheduleEyebrow,children:"Critical Path"}),(0,r.jsxs)("div",{className:p().filterCriticalBox,children:[(0,r.jsxs)("label",{className:p().filterCheck,children:[(0,r.jsx)("input",{type:"checkbox",checked:e.filters.criticalOnly,onChange:t=>e.update({criticalOnly:t.target.checked})}),"Critical activities only"]}),(0,r.jsxs)("div",{className:p().filterNearCriticalRow,children:[(0,r.jsx)("span",{children:"Near-critical: total float â¤"}),(0,r.jsx)("input",{type:"number",min:0,className:p().filterNearCriticalInput,"aria-label":"Near-critical total float days",value:e.filters.maxTotalFloatDays??"",placeholder:"5",onChange:t=>{let a=t.target.value;if(""===a)return void e.update({maxTotalFloatDays:null});let r=Number(a);Number.isFinite(r)&&e.update({maxTotalFloatDays:Math.max(0,Math.round(r))})}}),(0,r.jsx)("span",{children:"days"})]}),(0,r.jsx)("p",{className:p().filterScheduleHint,children:"Near-critical catches critical plus about-to-go-critical activities"})]})]})]})}function b({ctx:e}){let t="stacked"===e.layout?p().filterDateGroup:p().filterSectionContent,a=(0,c.lP)(e.statusDate??void 0),n=(0,c.$8)(e.statusDate??void 0,28),i=(0,c.$8)(e.statusDate??void 0,56),l=(0,c.HK)(e.filters,e.statusDate??void 0),s=e.filters.startOnOrAfter===n.startOnOrAfter&&e.filters.finishOnOrBefore===n.finishOnOrBefore,d=e.filters.startOnOrAfter===i.startOnOrAfter&&e.filters.finishOnOrBefore===i.finishOnOrBefore;return(0,r.jsxs)("div",{className:t,children:["stacked"===e.layout&&(0,r.jsx)("span",{className:p().filterGroupLabel,children:o}),(0,r.jsxs)("div",{className:p().filterQuickBlock,children:[(0,r.jsx)("span",{className:`${p().filterSectionEyebrow} ${p().filterSectionEyebrowMuted}`,children:"Lookahead window"}),(0,r.jsxs)("div",{className:p().filterQuickRow,children:[(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${l?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":l,onClick:()=>e.applyDatePatch(l?{startOnOrAfter:null,finishOnOrBefore:null}:a),children:"Next 2 Weeks"}),(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${s?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":s,onClick:()=>e.applyDatePatch(s?{startOnOrAfter:null,finishOnOrBefore:null}:n),children:"Next 4 Weeks"}),(0,r.jsx)("button",{type:"button",className:`${p().filterQuickPill}${d?` ${p().filterQuickPillActive}`:""}`,"aria-pressed":d,onClick:()=>e.applyDatePatch(d?{startOnOrAfter:null,finishOnOrBefore:null}:i),children:"Next 8 Weeks"})]}),(0,r.jsx)("p",{className:p().filterHint,children:c.iO})]})]})}let w=({filters:e,onChange:t,onCommitDateFilters:a,activeTab:c,onActiveTabChange:d,onClearAll:u,statusDate:h=null,primaryScheduleLabel:m,wbsOutlineLevel:_=5,onWbsOutlineLevelChange:f})=>{let v=a=>{t({...e,...a})},w=`${i.Ol}+ characters match ID substring; 1 character matches exact ID only.`,x=(0,n.useMemo)(()=>[{id:"search",label:l},{id:"schedule",label:s},{id:"lookahead",label:o},{id:"all",label:"View All"}],[]),S=`gantt-filter-tab-${c}`;return(0,r.jsxs)("div",{className:p().filterPanel,role:"dialog","aria-label":"Schedule filters",children:[(0,r.jsxs)("div",{className:p().filterPanelHeader,children:[(0,r.jsx)("div",{className:p().filterPanelTabs,role:"tablist","aria-label":"Filter categories",children:x.map(e=>{let t=c===e.id;return(0,r.jsx)("button",{type:"button",role:"tab",id:`gantt-filter-tab-btn-${e.id}`,"aria-selected":t,"aria-controls":S,className:`${p().filterPanelTab}${t?` ${p().filterPanelTabActive}`:""}${"all"===e.id?` ${p().filterPanelTabAll}`:""}`,onClick:()=>
1d(e.id),title:"all"===e.id&&t?"Collapse expanded view":void 0,children:e.label},e.id)})}),u?(0,r.jsx)("button",{type:"button",className:p().filterPanelClearAll,onClick:u,children:"Clear All"}):null]}),(0,r.jsx)("div",{id:S,role:"tabpanel","aria-labelledby":`gantt-filter-tab-btn-${c}`,className:"all"===c?p().filterPanelViewAll:p().filterPanelTabPane,children:function(e,t){switch(e){case"search":return(0,r.jsx)(y,{ctx:t});case"schedule":return(0,r.jsx)(g,{ctx:t});case"lookahead":return(0,r.jsx)(b,{ctx:t});case"all":return(0,r.jsxs)("div",{className:p().filterPanelViewAllStack,children:[(0,r.jsx)(y,{ctx:t}),(0,r.jsx)(g,{ctx:t}),(0,r.jsx)(b,{ctx:t})]});default:return null}}(c,{filters:e,update:v,applyDatePatch:e=>{v(e),a?.(e)},statusDate:h,searchHint:w,layout:"all"===c?"stacked":"tab",wbsOutlineLevel:_,onWbsOutlineLevelChange:f})}),m?(0,r.jsxs)("p",{className:p().filterPanelFootnote,children:["Filters apply to the primary schedule (",m,")."]}):null]})}},20394:e=>{e.exports={nodeFillFocus:"traceLogic_nodeFillFocus__3dlsQ",nodeFillPredecessor:"traceLogic_nodeFillPredecessor__4W5Z7",nodeFillSuccessor:"traceLogic_nodeFillSuccessor__ggswO",legendWrap:"traceLogic_legendWrap__QT9ob",legendInfoBtn:"traceLogic_legendInfoBtn__Wwmxj",legendLabeledBtn:"traceLogic_legendLabeledBtn__vxv57",legendPopover:"traceLogic_legendPopover__hjxHx",legendTitle:"traceLogic_legendTitle__AeOmV",legendSectionTitle:"traceLogic_legendSectionTitle__upl1K",legendList:"traceLogic_legendList__Z9AvZ",legendItem:"traceLogic_legendItem__VwJfb",legendSwatch:"traceLogic_legendSwatch__djPpz",legendBadgeSample:"traceLogic_legendBadgeSample__Px3Fk",legendSwatchBorder:"traceLogic_legendSwatchBorder__HBA_b",legendSwatchBorderFocus:"traceLogic_legendSwatchBorderFocus__4cKET",legendSwatchBorderPredecessor:"traceLogic_legendSwatchBorderPredecessor__4eHFq",legendSwatchBorderSuccessor:"traceLogic_legendSwatchBorderSuccessor__0vBhH",legendSwatchDepFS:"traceLogic_legendSwatchDepFS__dUf_j",legendSwatchDepSS:"traceLogic_legendSwatchDepSS__abvL1",legendSwatchDepFF:"traceLogic_legendSwatchDepFF__jK3B4",legendSwatchDepSF:"traceLogic_legendSwatchDepSF__5ldHC",legendSwatchSharedSpine:"traceLogic_legendSwatchSharedSpine__ManMz",legendSwatchDepMuted:"traceLogic_legendSwatchDepMuted__ub1hk",legendSwatchDepDimmed:"traceLogic_legendSwatchDepDimmed__fHP8T",legendSwatchDepDriving:"traceLogic_legendSwatchDepDriving__YXlgC",legendSwatchDepNonDriving:"traceLogic_legendSwatchDepNonDriving___9UD_",legendSwatchDepCallout:"traceLogic_legendSwatchDepCallout__okLiZ",legendSwatchDepCompact:"traceLogic_legendSwatchDepCompact__baGBF",graphControl
1s:"traceLogic_graphControls__7C6AN",graphControlsLeft:"traceLogic_graphControlsLeft__jUJyO",graphToolbar:"traceLogic_graphToolbar__3tCzl",graphToolbarBtn:"traceLogic_graphToolbarBtn__f5Y1I",graphToolbarBtnPrimary:"traceLogic_graphToolbarBtnPrimary__X3jAU",graphZoomControl:"traceLogic_graphZoomControl__y7N6h",graphZoomLabel:"traceLogic_graphZoomLabel__Y5NFH",graphZoomValue:"traceLogic_graphZoomValue__O4l0a",graphTieLabelsToggle:"traceLogic_graphTieLabelsToggle__NGI0T",graphTieLabelsText:"traceLogic_graphTieLabelsText__cBu6N",graphTieSwitch:"traceLogic_graphTieSwitch__AH63K",graphTieSwitchTrack:"traceLogic_graphTieSwitchTrack__s7Tb6",graphNodeCommentBadge:"traceLogic_graphNodeCommentBadge__3BaMw",legendText:"traceLogic_legendText__wF7CH",legendDetail:"traceLogic_legendDetail__LjZ8R",graphShell:"traceLogic_graphShell__4rCaK",graphCanvas:"traceLogic_graphCanvas__kkzFf",graphViewport:"traceLogic_graphViewport__z_D5H",graphViewportHint:"traceLogic_graphViewportHint__vzXZU",graphRoleLegend:"traceLogic_graphRoleLegend__8OxCO",graphRoleLegendItem:"traceLogic_graphRoleLegendItem__orGcz",graphRoleSwatch:"traceLogic_graphRoleSwatch___FOJi",graphRoleSwatchPred:"traceLogic_graphRoleSwatchPred__Yoh48",graphRoleSwatchCurrent:"traceLogic_graphRoleSwatchCurrent__rWE1G",graphRoleSwatchSucc:"traceLogic_graphRoleSwatchSucc__POoXg",graphRoleDriving:"traceLogic_graphRoleDriving__hhrxD","trace-logic-panning":"traceLogic_trace-logic-panning__vIU5C",graphViewportFitWidth:"traceLogic_graphViewportFitWidth__PpqA_",graphSvg:"traceLogic_graphSvg__cNPrf",graphEdgesLayer:"traceLogic_graphEdgesLayer__lHQVt",graphNodeLayer:"traceLogic_graphNodeLayer__uzIcW",graphArrowLayer:"traceLogic_graphArrowLayer__Y7QbP",graphEdgePath:"traceLogic_graphEdgePath__xjjSu",graphEdgeArrowHead:"traceLogic_graphEdgeArrowHead__dEsIN",graphEdgeArrowHeadHovered:"traceLogic_graphEdgeArrowHeadHovered__Hfgrl",graphEdgeHovered:"traceLogic_graphEdgeHovered__44J0_",graphEdgeHitArea:"traceLogic_graphEdgeHitArea__TnBVS",graphEdgeDimmed:"traceLogic_graphEdgeDimmed__GQUv8",graphEdgeMuted:"traceLogic_graphEdgeMuted__oDtv6",graphEdgeConnected:"traceLogic_graphEdgeConnected__g6_PT",graphEdgeNonDriving:"traceLogic_graphEdgeNonDriving__JKIam",graphEdgeLabelDriving:"traceLogic_graphEdgeLabelDriving__titDA",graphEdgeSharedSpine:"traceLogic_graphEdgeSharedSpine__Cdv1d",graphNodeSelected:"traceLogic_graphNodeSelected__73FKL",graphNodeConnected:"traceLogic_graphNodeConnected__YgiU6",graphNodeEdgeHovered:"traceLogic_graphNodeEdgeHovered__lRJRt",graphNodeDimmed:"traceLogic_graphNodeDimmed__NYNwm",graphEdgeLabel:"traceLogic_graphEdgeLabel__mjPbf",graphEdgeLabelsLayer:"traceLogic_graphEdgeLabelsLayer__vAoX7",graphEdgeCompactBadgesLayer:"traceLogic_graphEdgeCompactBadgesLayer__yVWlM",graphEdgeCompactBadgeBox:"traceLogic_graphEdgeCompactBadgeBox__GwBJQ",graphEdgeCompactBadgeHitArea:"traceLogic_graphEdgeCompactBadgeHitArea__rxrXL",graphEdgeCompactBadgeText:"traceLogic_graphEdgeCompactBadgeText__ffYn1",graphEdgeCompactBadgeDimmed:"traceLogic_graphEdgeCompactBadgeDimmed__N2eNn",graphEdgeLabelCallout:"traceLogic_graphEdgeLabelCallout__pFqOb",graphEdgeLabelBox:"traceLogic_graphEdgeLabelBox__d36dN",graphEdgeLabelCalloutHovered:"traceLogic_graphEdgeLabelCalloutHovered__sDvk9",graphEdgeLabelLeader:"traceLogic_graphEdgeLabelLeader__3gBUd",graphEdgeLabelEndpointText:"traceLogic_graphEdgeLabelEndpointText__fLwx8",graphEdgeLabelText:"traceLogic_graphEdgeLabelText__36nEj",graphEdgeLabelTextDriving:"traceLogic_graphEdgeLabelTextDriving__iCEzT",graphEdgeLabelCalloutDimmed:"traceLogic_graphEdgeLabelCalloutDimmed__uH9th",graphEdgeLabelCalloutConnected:"traceLogic_graphEdgeLabelCalloutConnected__Jz07w",graphNode:"traceLogic_graphNode__MbMZN",graphNodeHeader:"traceLogic_graphNodeHeader__jStJA",graphNodeIdGroup:"traceLogic_graphNodeIdGroup__chdaP",graphNodeCpBadge:"traceLogic_graphNodeCpBadge__fu8Rc",graphNodeNcpBadge:"traceLogic_graphNodeNcpBadge__QJWhk",graphNodeCommentIcon:"traceLogic_graphNodeCommentIcon___zrLP",graphNodeId:"traceLogic_graphNodeId__YA8rh",graphNodeWbs:"traceLogic_graphNodeWbs__YeVyD",graphNodeDescription:"traceLogic_graphNodeDescription__UYLsK",graphError:"traceLogic_graphError__HFTlT",graphEmpty:"traceLogic_graphEmpty__FWLxv",activityPicker:"traceLogic_activityPicker__5yqYS",activityPickerLabel:"traceLogic_activityPickerLabel__Ogt_P",activityPickerControls:"traceLogic_activityPickerControls__VOUwJ",activityPickerFieldWrap:"traceLogic_activityPickerFieldWrap__FJA9n",activityPickerTraceBtn:"traceLogic_activityPickerTraceBtn__evIZw",activityPickerError:"traceLogic_activityPickerError__KwUbu",contextMenuBackdrop:"traceLogic_contextMenuBackdrop__VBrw5",contextMenu:"traceLogic_contextMenu__gWXlR",contextMenuItem:"traceLogic_contextMenuItem__AWaD8"}}
1,23120:(e,t,a)=>{"use strict";a.d(t,{y:()=>T});var r=a(37876),n=a(14232),i=a(42749),l=a(72425),s=a(15266),o=a(42959),c=a(31596),d=a(51223),u=a(4519),h=a(36628),p=a(5164),m=a(12499),_=a(78815),f=a(42003),v=a(69211),y=a(32395);async function g(e,t,a,r,n,i){let l=(0,v.Ar)(t,a,r),s=new Set(t.map(e=>e.upload_id)),c=new Map;for(let e of l)s.has(e.upload_id)||c.set(e.upload_id,e.proj_short_name);c.size>0&&(i?.onProgress?.("Preparing schedule viewsâ¦"),await Promise.all(Array.from(c.entries()).map(([e,t])=>n(e,t,{onProgress:e=>i?.onProgress?.(e||y.yC)})))),i?.onProgress?.("Rebuilding compare viewâ¦");try{return(await (0,o.iO)(e,l)).compare_id}catch(e){throw Error(e instanceof Error?e.message:y.xf)}}var b=a(13412),w=a.n(b);let x=({nextLayerRole:e,variant:t="chip",versions:a,loading:i=!1,disabled:l=!1,onSelect:s})=>{let[o,c]=(0,n.useState)(!1),d=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!o)return;let e=e=>{d.current?.contains(e.target)||c(!1)},t=e=>{"Escape"===e.key&&c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[o]);let u=(0,_.jX)(e),h="row"===t;return(0,r.jsxs)("div",{className:`${w().revisionPicker}${h?` ${w().compareAddLayerRowWrap}`:""}`,ref:d,children:[(0,r.jsx)("button",{type:"button",className:`${h?w().compareAddLayerRow:w().compareAddLayerChip} ${w().revisionPickerTrigger}`,disabled:l||i&&0===a.length,"aria-expanded":o,"aria-haspopup":"listbox","aria-label":`Add ${u} revision`,title:`Add ${u} (up to ${_.Y3} revisions total)`,onClick:()=>c(e=>!e),children:h?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:w().compareAddLayerRowLabel,children:"+ Add Comparison"}),(0,r.jsxs)("span",{className:w().compareAddLayerRowHint,children:["(up to ",_.Y3," total)"]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:w().compareAddLayerPlus,"aria-hidden":"true",children:"+"}),(0,r.jsx)("span",{className:w().compareLayerLegendLabel,children:"Add revision"})]})}),o&&(0,r.jsxs)("div",{className:w().revisionPickerPanel,children:[(0,r.jsxs)("p",{className:w().revisionPickerSectionLabel,children:["Add as ",u.toLowerCase()]}),0===a.length?(0,r.jsx)("p",{className:w().compareAddLayerEmpty,children:"No other revisions available."}):(0,r.jsx)("ul",{className:w().revisionPickerMenu,role:"listbox","aria-label":"Revisions",children:a.map(e=>{let t=(0,m.mj)(e),a=`${t}, ${e.filename}, ${(0,m.vu)(e)}`;return(0,r.jsx)("li",{role:"none",children:(0,r.jsx)("button",{type:"button",role:"option","aria-selected":!1,"aria-label":a,className:w().revisionPickerOption,onClick:()=>{c(!1),s(e.upload_id)},children:(0,r.jsxs)("span",{className:w().revisionPickerOptionBody,children:[(0,r.jsx)("span",{className:w().revisionPickerOptionName,children:t}),(0,r.jsx)("span",{className:w().revisionPickerOptionFilename,title:e.filename,children:e.filename}),(0,r.jsx)("span",{className:w().revisionPickerOptionDate,children:(0,m.vu)(e)})]})})},e.upload_id)})})]})]})};var S=a(68161),C=a(68957);let j=({projectId:e,compareView:t,disabled:a=!1,onCompareSessionApplied:i,onError:l})=>{let{catalog:s,loading:c,error:d,optionsForLayer:u}=function(e,t){let[a,r]=(0,n.useState)(()=>
1(0,v.fd)((0,f.qN)(e)?.items??[])),[i,l]=(0,n.useState)(()=>!(0,f.qN)(e)),[s,c]=(0,n.useState)(null);(0,n.useEffect)(()=>{let t=!1,a=(0,f.qN)(e);return a?(r((0,v.fd)(a.items??[])),l(!1)):l(!0),(async()=>{try{let a=await (0,o.zF)(e);if(t)return;r((0,v.fd)(a.items??[])),c(null)}catch(e){t||(c(e instanceof Error?e.message:"Failed to load revisions"),r([]))}finally{t||l(!1)}})(),()=>{t=!0}},[e]);let d=(0,n.useMemo)(()=>{let e=t??[];return t=>(0,v.zh)(a,e,t)},[a,t]);return{catalog:a,loading:i,error:s,optionsForLayer:d}}(e,t.layers),{draft:h,hasPendingChanges:p,displayLayerRoles:b,canAddLayer:j,nextLayerRole:k,setLayerDraftUpload:N,addLayerDraftUpload:L,removeLayerDraft:D,draftUploadId:R,isLayerDraftPending:M,isLayerDraftRemoved:A,applyDraft:P,resetDraft:$,applyBusy:T,applyProgress:E}=function(e,t){let{ensureUsdReady:a}=(0,y.XC)(e),[r,i]=(0,n.useState)({}),[l,s]=(0,n.useState)(!1),[o,c]=(0,n.useState)(null);(0,n.useEffect)(()=>{t&&i((0,v.gS)(t.layers))},[t?.compare_id]);let d=(0,n.useMemo)(()=>!!t&&(0,v.Db)(t.layers,r),[t,r]),u=(0,n.useMemo)(()=>t?(0,v.Ic)(t.layers,r):[],[t,r]),h=(0,n.useMemo)(()=>t?(0,v.Lk)(t.layers,r):null,[t,r]),p=(0,n.useCallback)((e,a)=>{t&&!l&&i(r=>(0,v.th)(t.layers,r,e,a))},[l,t]),m=(0,n.useCallback)(e=>{if(t)return(0,v.XX)(t.layers,r,e)},[t,r]),_=(0,n.useCallback)(e=>{if(!t)return!1;if((0,v.st)(t.layers,r,e))return!0;let a=t.layers.find(t=>t.layer_role===e);if(!a)return"string"==typeof r[e];(0,v.XX)(t.layers,r,e);let n=r[e];return"string"==typeof n&&n!==a.upload_id},[t,r]),f=(0,n.useCallback)(e=>!!t&&(0,v.st)(t.layers,r,e),[t,r]),b=(0,n.useCallback)(e=>{t&&!l&&"primary"!==e&&i(a=>(0,v.iK)(t.layers,a,e))},[l,t]),w=(0,n.useCallback)(e=>{t&&!l&&i(a=>{let r=(0,v.oK)(t.layers,a,e);return r?.draft??a})},[l,t]),x=(0,n.useCallback)(async n=>{if(!t||l||!d)return null;s(!0),c("Preparing schedule viewsâ¦");try{return await g(e,t.layers,r,n,a,{onProgress:c})}finally{s(!1),c(null)}},[l,t,r,a,d,e]);return{draft:r,hasPendingChanges:d,displayLayerRoles:u,canAddLayer:null!=h,nextLayerRole:h,setLayerDraftUpload:p,addLayerDraftUpload:w,removeLayerDraft:b,draftUploadId:m,isLayerDraftPending:_,isLayerDraftRemoved:f,applyDraft:x,resetDraft:(0,n.useCallback)(()=>{t&&i((0,v.gS)(t.layers))},[t]),applyBusy:l,applyProgress:o}}(e,t),I=(0,v.KA)(s,t.layers,h),B=(0,n.useCallback)(async()=>{if(!a&&!T&&p){l?.("");try{let e=await P(s);if(!e)return void l?.("Could not apply compare changes");if(!i)return void l?.("Could not reload compare view");await i(e)}catch(e){l?.(e instanceof Error?e.message:"Could not reload compare view")}}},[T,P,s,a,p,i,l]),G=a||T;return(0,r.jsxs)("div",{className:w().compareRevisionControls,"aria-label":"Comparison layers",children:[(0,r.jsxs)("div",{className:w().compareLayerRows,children:[b.map(e=>{let a=t.layers.find(t=>t.layer_role===e),n=u(e),i=R(e)??a?.upload_id??"",l=s.find(e=>e.upload_id===i)??void 0,o=M(e),d=A(e),h="primary"===e,p=a?(0,m.ig)(a):void 0;return(0,r.jsxs)("div",{className:w().compareLayerRow,children:[(0,r.jsx)("span",{className:w().compareLayerRowSwatch,style:{background:C.lR[e]},"aria-hidden":"true"}),(0,r.jsx)("span",{className:w().compareLayerRowRole,children:(0,_.jX)(e)}),h?(0,r.jsx)("span",{className:`${w().compareLayerRowValue}${o?` ${w().compareLayerRowValuePending}`:""}`,children:l?(0,m.ig)(l):p??"â¦"}):null,(0,r.jsx)(S.F,{layerRole:e,variant:h?"swap":"select",versions:n,selectedVersionId:i,selectedVersion:l,fallbackRevisionLabel:p,pending:o,removed:d,removable:!h,onRemove:()=>D(e),loading:c,disabled:G,onSelect:t=>{N(e,t)}})]},e)}),j&&k?(0,r.jsx)(x,{nextLayerRole:k,variant:"row",versions:I,loading:c,disabled:G,onSelect:L}):null]}),(0,r.jsxs)("div",{className:w().compareLayerFooter,children:[p?(0,r.jsx)("button",{type:"button",className:w().compareLayerResetBtn,disabled:G,onClick:$,children:"Reset"}):null,(0,r.jsx)("button",{type:"button",className:w().compareLayerLoadBtn,disabled:G||c||!p,onClick:()=>{B()},children:"Load"})]}),T&&E?(0,r.jsx)("span",{className:w().compareRevisionSwapStatus,"aria-live":"polite",children:E}):null,d?(0,r.jsx)("span",{className:w().compareRevisionSwapError,title:d,children:"Revisions unavailable"}):null]})},k=({projectId:e,compareView:t,disabled:a=!1,onCompareSessionApplied:i,onError:l})=>{var s,o;
1let[c,d]=(0,n.useState)(!1),u=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!c)return;let e=e=>{u.current?.contains(e.target)||d(!1)},t=e=>{"Escape"===e.key&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[c]);let h=[...t.layers].sort((e,t)=>"primary"===e.layer_role?-1:+("primary"===t.layer_role)),_=h.find(e=>"primary"===e.layer_role),f=(s=_?(0,m.ig)(_):void 0,o=h.filter(e=>"primary"!==e.layer_role).map(e=>(0,m.ig)(e)),s?0===o.length?s:`${s} vs ${o.join(", ")}`:"Select revisions");return(0,r.jsxs)("div",{className:w().compareRevisionSummary,ref:u,children:[(0,r.jsxs)("button",{type:"button",className:w().compareRevisionSummaryTrigger,"data-ui":"sv-rev-switcher",disabled:a,"aria-expanded":c,"aria-haspopup":"dialog","aria-label":`Compared revisions: ${f}`,onClick:()=>d(e=>!e),children:[(0,r.jsx)("span",{className:w().compareRevisionSummarySwatches,"aria-hidden":"true",children:h.map(e=>(0,r.jsx)("span",{className:w().compareRevisionSummarySwatch,style:{background:C.lR[e.layer_role]}},e.layer_role))}),(0,r.jsx)("span",{children:f}),(0,r.jsx)(p.A,{size:9,strokeWidth:3,className:w().compareRevisionSummaryCaret,"aria-hidden":"true"})]}),c?(0,r.jsxs)("div",{className:w().compareRevisionSummaryPanel,role:"dialog","aria-label":"Comparison layers",children:[(0,r.jsx)("p",{className:w().compareRevisionSummaryPanelLabel,children:"Comparison layers"}),(0,r.jsx)(j,{projectId:e,compareView:t,disabled:a,onCompareSessionApplied:i,onError:l})]}):null]})};var N=a(83440),L=a(56218),D=a(71443),R=a(95632),M=a(84453),A=a(56768),P=a(79361),$=a(12455);let T=({projectId:e,compareId:t,onClose:a,onViewPrimaryOnly:p,onCompareIdChange:_,onError:f})=>{let[v,y]=(0,n.useState)(null),[g,b]=(0,n.useState)(!0),[x,S]=(0,n.useState)(null),[C,j]=(0,n.useState)(!1),[T,E]=(0,n.useState)(!1),[I,B]=(0,n.useState)(null),[G,F]=(0,n.useState)(null),O=(0,n.useRef)(null),[H,V]=(0,n.useState)(u.ye),{dayOffsetEnabled:W}=(0,h.i)(),[z,X]=(0,n.useState)(!1),{user:U}=(0,P.As)(),Y=P.Bt.hasDcmaHealthCheckAccess(U),[K,q]=(0,n.useState)(null),[Q,Z]=(0,n.useState)([]),[J,ee]=(0,n.use
1State)(!1),et=(0,n.useCallback)(async()=>{ee(!0);try{let t=await (0,o.aR)(e);Z(t.items||[])}catch{Z([])}finally{ee(!1)}},[e]);(0,n.useEffect)(()=>{et()},[et]);let{setExpiresAt:ea,showWarning:er,minutesLeft:en,isExpired:ei}=(0,D.B)(),el=(0,n.useCallback)(async a=>{let r=a??t;b(!0),S(null),y(null),f("");try{let t=await (0,o.Si)(e,r);y(t),ea(t.sessionExpiresAt)}catch(t){let e=t instanceof Error?t.message:"Compare visualization failed";S(e),f(e)}finally{b(!1)}},[t,f,e,ea]);(0,n.useEffect)(()=>{el()},[el]);let es=(0,n.useCallback)(async e=>{_?.(e),await el(e)},[el,_]),eo=v?.layers.find(e=>"primary"===e.layer_role)??v?.layers[0],ec=(0,n.useMemo)(()=>v?v.merged.rows.filter(e=>!e.present_in_layers.includes("primary")).length:0,[v]),ed=v?function(e,t){let a=`${e.toLocaleString()} activities`;if(t<=0)return a;let r=`${t.toLocaleString()} removed ${1===t?"activity":"activities"}`;return`${a} \xb7 ${r}`}(K?.visibleActivityCount??v.metadata.activity_count,ec):null,eu=(0,n.useMemo)(()=>{var e;return v?0===(e=[...v.layers].sort((e,t)=>"primary"===e.layer_role?-1:+("primary"===t.layer_role)).map(e=>(0,m.ig)(e))).length?"Opens this comparison":`Opens this comparison (${e.join(" vs ")})`:"Opens this comparison"},[v]);(0,n.useEffect)(()=>{if(!T)return;let e=e=>{O.current?.contains(e.target)||E(!1)},t=e=>{"Escape"===e.key&&E(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[T]),(0,n.useEffect)(()=>{if(!I)return;let e=window.setTimeout(()=>B(null),2500);return()=>window.clearTimeout(e)},[I]),(0,n.useEffect)(()=>{if(!G)return;let e=window.setTimeout(()=>F(null),3600);return()=>window.clearTimeout(e)},[G]);let eh=async()=>{if(v){f("");try{await (0,L.$m)(e,v.compare_id),B("Link copied"),F("Link copied to clipboard")}catch(e){f(e instanceof Error?e.message:"Could not copy link")}}},ep=async()=>{if(!v||C)return;let t=new Date().toISOString().slice(0,10),a=eo?.proj_short_name??"compare",r=`${a}-compare-${t}.pdf`;j(!0),E(!1),F("Export started. Compare PDF will download shortly"),f("");try{await (0,o._r)(e,v.compare_id,r,{promptSaveLocation:!0,barDateMode:H,dayOffsetEnabled:W})}catch(e){F(null),f(e instanceof Error?e.message:"Export failed")}finally{j(!1)}},em=C||g;(0,n.useEffect)(()=>{g&&q(null)},[g]);let e_=(0,n.useMemo)(()=>(v?.layers??[]).map(e=>({uploadId:e.upload_id,label:(0,N.h)(e.layer_role,(0,m.xe)(e)),layerRole:e.layer_role})),[v?.layers]),ef=eo?.upload_id??"";return(0,r.jsxs)($.G,{children:[(0,r.jsx)("div",{className:`${w().toolbar} ${w().compareHeaderBar}`,children:(0,r.jsxs)("div",{className:`${w().toolbarRowPrimary} ${w().compareHeaderRow}`,children:[(0,r.jsx)("button",{type:"button",className:`${w().backBtn} ${w().compareBackBtn}`,"aria-label":"Back to Workflows",title:"Back to Workflows","data-ui":"sv-back",onClick:a,children:"â¹"}),(0,r.jsx)(d.w,{title:"Compare Schedules",subtitle:ed}),v&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:w().compareHeaderDivider,"aria-hidden":"true"}),(0,r.jsx)(k,{projectId:e,compareView:v,disabled:C,onCompareSessionApplied:es,onError:f})]}),v&&(0,r.jsxs)("div",{className:w().actionGroup,"aria-label":"Compare actions",children:[(0,r.jsx)("button",{type:"button",className:w().toolbarBtn,disabled:em||!eo?.upload_id,onClick:()=>{p&&eo?.upload_id?p({uploadId:eo.upload_id,projShortName:eo.proj_short_name,activityCount:v?.metadata.activity_count}):a()},children:"View Primary Only"}),Y?(0,r.jsx)("button",{type:"button",className:w().toolbarBtn,disabled:em,onClick:()=>X(e=>!e),children:z?"Hide Health Check":"Health Check"}):null,(0,r.jsxs)("div",{className:w().headerMenuWrap,ref:O,"data-ui":"sv-share-menu",children:[(0,r.jsxs)("button",{type:"button",className:w().toolbarBtn,disabled:em,"aria-expanded":T,"aria-haspopup":"menu",onClick:()=>E(e=>!e),children:[(0,r.jsx)(i.A,{size:13,strokeWidth:2,className:w().shareIcon,"aria-hidden":"true"}),"Share â¾"]}),T?(0,r.jsx)("ul",{className:w().headerMenu,role:"menu","aria-label":"Share options",children:(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"menuitem",className:w().headerMenuItem,onClick:()=>{E(!1),eh()},children:[(0,r.jsx)(l.A,{size:14,strokeWidth:2,className:w().headerMenuItemIcon,"aria-hidden":"true"}),(0,r.jsxs)("span",{className:w().headerMenuItemText,children:[(0,r.jsx)("span",{className:w().headerMenuItemTitle,children:I??"Copy Link"}),(0,r.jsx)("span",{className:w().headerMenuItemSub,children:eu})]})]})})}):null]}),(0,r.jsx)("button",{type:"button",className:`${w().toolbarBtn} ${w().toolbarBtnPrimary}`,disabled:em,onClick:()=>void ep(),title:"Download compare schedule as PDF (uses Bar dates selection below)",children:C?"Exporting PDFâ¦":"Export PDF"})]})]})}),G?(0,r.jsxs)("div",{className:w().viewerToast,role:"status","aria-live":"polite",children:[(0,r.jsx)("span",{className:w().viewerToastIcon,"aria-hidden":"true",children:(0,r.jsx)(s.A,{size:11,strokeWidth:3})}),(0,r.jsx)("span",{children:G})]}):null,(0,r.jsx)(R.E,{show:er,minutesLeft:en,isExpired:ei,variant:"compare"}),(0,r.jsxs)(M.O$,{loading:g,loadingMessage:"Loading compare viewâ¦",children:[x&&!g&&(0,r.jsx)(M.fK,{message:x,onRetry:()=>void el()}),!g&&!x&&v&&eo?.session_id&&(0,r.jsx)(c.n,{compareView:v,projectId:e,sessionId:eo.session_id,sourceFormat:"xer",barDateMode:H,onBarDateModeChange:V,savedViews:Q,savedViewsLoading:J,onSaveView:async(t,a)=>{f("");try{await (0,o.xS)(e,t,a),await et()}catch(e){f(e instanceof Error?e.message:"Failed to save view")}},onDeleteSavedView:async t=>{f("");try{await (0,o.as)(e,t),await et()}catch(e){f(e instanceof Error?e.message:"Failed to delete view")}},onEditError:f,scheduleHealthOverlay:Y&&z?({onActivityClick:t,fixedColsWidth:a})=>(0,r.jsx)(A.U,{projectId:e,uploadId:ef,compareLayers:e_,fixedColsWidth:a,onActivityClick:t,onClose:()=>X(!1)}):void 0,onViewStatsChange:q})]})]})}},23774:(e,t,a)=>{"use strict";a.d(t,{q:()=>i});var r=a(14232);let n=["[data-activity-popover]","[data-gantt-activity-menu]"];function i({containerRef:e,suppressNextRef:t,onDismiss:a,extraIgnoreSelectors:l}){let s=l?.join(",")??"";(0,r.useEffect)(()=>{let r=[...n,...s?s.split(","):[]],i=n=>{if(t.current){t.current=!1;return}let i=n.target;if(!e.current?.contains(i)){for(let e of r)if(i.closest?.(e))return;a()}};return document.addEventListener("click",i),()=>document.removeEventListener("click",i)},[e,s,a,t])}},26468:(e,t,a)=>{"use strict";a.d(t,{k:()=>l});var r=a(37876);a(14232);var n=a(90055),i=a.n(n);function l({menu:e,traceLogicEnabled:t,commentsEnabled:a,onViewTraceLogic:n,onSeeActivityDetails:s,onCopyActivityAsText:o,onCopyCell:c,onAddComment:d,onClose:u}){let h=e.cellText?.trim()||null;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:i().activityContextMenuBackdrop,"data-gantt-activity-menu":"","aria-label":"Close activity menu",onClick:u}),(0,r.jsxs)("div",{className:i().activityContextMenu,"data-gantt-activity-menu":"",style:{left:e.x,top:e.y},role:"menu","aria-label":`Actions for activity ${e.activityId}`,children:[(0,r.jsx)("div",{className:i().activityContextMenuId,"aria-hidden":"true",children:e.activityId}),t?(0,r.jsx)("button",{type:"button",className:i().activityContextMenuItem,role:"menuitem",onClick:e=>{e.stopPropagation(),n()},children:"View Trace Logic"}):null,e.detailsAvailable?(0,r.jsx)("button",{type:"button",className:i().activityContextMenuItem,role:"menuitem",onClick:e=>{e.stopPropagation(),s()},children:"See Activity In Detail"}):null,(0,r.jsx)("div",{className:i().activityContextMenuDivider,role:"separator"}),(0,r.jsx)("button",{type:"button",className:i().activityContextMenuItem,role:"menuitem",onClick:e=>{e.stopPropagation(),o()},children:"Copy Activity as Text"}),(0,r.jsxs)("button",{type:"button",className:i().activityContextMenuItem,role:"menuitem",disabled:!h,onClick:e=>{e.stopPropagation(),c()},children:[(0,r.jsx)("span",{children:"Copy Cell"}),h?(0,r.jsx)("span",{className:i().activityContextMenuItemMeta,children:function(e,t=28){let a=e.trim();return a.length<=t?a:`${a.slice(0,t-1)}â¦`}(h)}):null]}),a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:i().activityContextMenuDivider,role:"separator"}),(0,r.jsx)("button",{type:"button",className:i().activityContextMenuItem,role:"menuitem",onClick:e=>{e.stopPropagation(),d()},children:"Add Comment"})]}):null]})]})}},26558:(e,t,a)=>{"use strict";a.d(t,{q:()=>i});var r=a(14232),n=a(98249);function i({rows:e,resetKey:t}){let a=(0,r.useMemo)(()=>(0,n.Mm)(e),[e]),[l,s]=(0,r.useState)(()=>
1new Set(a)),[o,c]=(0,r.useState)(1),[d,u]=(0,r.useState)(!1),[h,p]=(0,r.useState)(()=>new Set),m=(0,r.useRef)(h);m.current=h;let _=(0,r.useCallback)(e=>{p(t=>(0,n.SZ)(t,e))},[]),f=(0,r.useCallback)(t=>{c(t),s(a=>(0,n.re)(new Set((0,n.SC)(e,t)),a,m.current)),u(t<5)},[e]),v=(0,r.useRef)(e);return v.current=e,(0,r.useEffect)(()=>{s(new Set((0,n.Mm)(v.current))),c(1),u(!1),p(new Set)},[t]),{collapseAllWbsIds:a,collapsedWbs:l,setCollapsedWbs:s,lockedWbs:h,toggleWbsRowLock:_,wbsOutlineLevel:o,applyWbsOutlineLevel:f,collapseAllLocked:d,setCollapseAllLocked:u}}},28595:e=>{e.exports={wrap:"ScheduleHealthDebugNotes_wrap__9dMu9",wrapLight:"ScheduleHealthDebugNotes_wrapLight__FQVr_",summary:"ScheduleHealthDebugNotes_summary__MTrmC",toolbar:"ScheduleHealthDebugNotes_toolbar__OJZ5S",copyBtn:"ScheduleHealthDebugNotes_copyBtn__Wrwhz",textarea:"ScheduleHealthDebugNotes_textarea__rbSI_"}},28783:(e,t,a)=>{"use strict";a.d(t,{$E:()=>u,Ii:()=>m,Kp:()=>d,_y:()=>f,hZ:()=>h,ju:()=>_,sF:()=>p,tv:()=>v});var r=a(15077);let n="pretask.traceLogic.layoutMode",i="pretask.traceLogic.layoutLabelsSeen",l="pretask.traceLogic.paneWidthPx",s="pretask.traceLogic.paneHeightPx";function o(e){try{return window.localStorage.getItem(e)}catch{return null}}function c(e,t){try{window.localStorage.setItem(e,t)}catch{}}function d(){let e=o(n);return"full"===e||"left"===e||"right"===e||"bottom"===e?e:r.AJ}function u(e){c(n,e)}function h(){let e=o(l);if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null}function p(e){c(l,String(Math.round(e)))}function m(){let e=o(s);if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null}function _(e){c(s,String(Math.round(e)))}function f(){return"1"===o(i)}function v(){c(i,"1")}},29312:e=>{e.exports={hint:"ScheduleReaderStatus_hint__2c9Ar",warning:"ScheduleReaderStatus_warning__UU_BJ",empty:"ScheduleReaderStatus_empty__S7D24",emptyTitle:"ScheduleReaderStatus_emptyTitle__NPDhc",panelError:"ScheduleReaderStatus_panelError__9jtkp",panelErrorTitle:"ScheduleReaderStatus_panelErrorTitle__Y6VJG",panelErrorActions:"ScheduleReaderStatus_panelErrorActions__FU2CY",panelErrorBtn:"ScheduleReaderStatus_panelErrorBtn__rPZCA",pageError:"ScheduleReaderStatus_pageError__Du2XC",pageErrorDismiss:"ScheduleReaderStatus_pageErrorDismiss__0J0OX",viewBody:"ScheduleReaderStatus_viewBody__9_4IE",loadingOverlay:"ScheduleReaderStatus_loadingOverlay__J_oOS",loadingOverlayText:"ScheduleReaderStatus_loadingOverlayText__wx13P",srLsPulse:"ScheduleReaderStatus_srLsPulse__ngZy6",loadingOverlayTrack:"ScheduleReaderStatus_loadingOverlayTrack__AZBrx",loadingOverlayTrackActive:"ScheduleReaderStatus_loadingOverlayTrackActive__z3zBp",srThinkingSweep:"ScheduleReaderStatus_srThinkingSweep__1M323"}},29320:(e,t,a)=>{"use strict";a.d(t,{Lq:()=>m,Mh:()=>p,fy:()=>l,rX:()=>c,vH:()=>r,zs:()=>h});let r=["early_start_date","early_finish_date","late_start_date","late_finish_date","actual_start_date","actual_finish_date","forecast_start_date","forecast_finish_date","planned_start_date","planned_finish_date"],n=["actual_start_date","actual_finish_date","forecast_start_date","forecast_finish_date"];function i(e){if(!e)return null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:e}function l(e){return e?.length?[...e].sort((e,t)=>e[0].localeCompare(t[0])||e[1].localeCompare(t[1])).map(([e,t])=>`${e}:${t}`).join("|"):""}function s(e){let t=l(e.predecessors),a=l(e.successors);return`p=${t};s=${a}`}let o={tk_notstart:"TK_NotStart",not_started:"TK_NotStart","not started":"TK_NotStart",backlog:"TK_NotStart",tk_active:"TK_Active",in_progress:"TK_Active","in progress":"TK_Active",active:"TK_Active",tk_complete:"TK_Complete",complete:"TK_Complete",completed:"TK_Complete",done:"TK_Complete",tk_plan:"TK_Plan",planned:"TK_Plan",plan:"TK_Plan"};function c(e){if(!e)return"";let t=(e.p6_status_code||"").trim(),a=o[t.toLowerCase()];if(a)return a;let r=(e.status||"").trim(),n=o[r.toLowerCase()];return n||(t||r).toLowerCase()}function d(e){let t=e?.percent_complete;return"number"!=typeof t||Number.isNaN(t)?0:Math.round(t>1?t:100*t)}function u(e,t,a){return"present"===e?!!t!=!!a:!t||!a||("dependencies"===e?s(t)!==s(a):i(t[e])!==i(a[e]))}function h(e,t){return u("dependencies",e,t)}function p(e){let t=e.layers.find(e=>"primary"===e.layer_role);if(!t)return new Set;let a=t.view.activity_details,r=e.layers.filter(e=>"primary"!==e.layer_role),i=new Map;for(let t of e.merged.rows)t.present_in_layers&&t.present_in_layers.length>0&&i.set(t.activity_id,new Set(t.present_in_layers));let l=new Set;for(let t of Array.from(function(e){let t=new Set;for(let a of e.layers)for(let e of Object.keys(a.view.activity_details))t.add(e);for(let a of e.merged.rows)t.add(a.activity_id);return t}(e))){let e=a[t],f=i.get(t);for(let a of r){var s,o,h,p,m,_;let r=a.view.activity_details[t];if(s=f,o="primary",h=e,(s?s.has(o):!!h)!==(p=f,m=a.layer_role,_=r,p?p.has(m):!!_)||function(e,t){if(!e||!t)return!1;if(c(e)!==c(t)||d(e)!==d(t))return!0;for(let a of n)if(u(a,e,t))return!0;return!1}(e,r)){l.add(t);break}}}return l}function m(e,t,a){let r=t||a,n=r?new Date(r).toLocaleDateString():"";return n?`${e} \xb7 ${n}`:e}},29512:e=>{e.exports={popover:"ActivityPopover_popover__4BqP9",srCardIn:"ActivityPopover_srCardIn__QFF6Y",header:"ActivityPopover_header__fSJK2",headerText:"ActivityPopover_headerText__QDlaM",headerIdRow:"ActivityPopover_headerIdRow__Jot0e",headerId:"ActivityPopover_headerId__3u0mD",closeBtn:"ActivityPopover_closeBtn__apqNu",body:"ActivityPopover_body__rB_lp",summaryGrid:"ActivityPopover_summaryGrid__IHyjF",summaryWide:"ActivityPopover_summaryWide__iCizT",summaryLabel:"ActivityPopover_summaryLabel__mwUY0",summaryValue:"ActivityPopover_summaryValue__Xnjt1",floatCritical:"ActivityPopover_floatCritical__EuVm1",floatPositive:"ActivityPopover_floatPositive__yNnoZ",relGrid:"ActivityPopover_relGrid__AkNrc",sectionTitle:"ActivityPopover_sectionTitle__Vl1Yv",relList:"ActivityPopover_relList__UE_ov",relDot:"ActivityPopover_relDot__yVfTC",relDotPredecessor:"ActivityPopover_relDotPredecessor__aV4vj",relDotSuccessor:"ActivityPopover_relDotSuccessor__balsC",relPill:"ActivityPopover_relPill__BpZ_V",relPillPred:"ActivityPopover_relPillPred__IiZlD",relPillSucc:"ActivityPopover_relPillSucc__0bCI_",relPillMarked:"ActivityPopover_relPillMarked__ZzpNJ",relPillMuted:"ActivityPopover_relPillMuted__ySgiR",relEmpty:"ActivityPopover_relEmpty__eeAkR",drivingBadge:"ActivityPopover_drivingBadge__YBrP4",drivenBadge:"ActivityPopover_drivenBadge__6X_2J",dl:"ActivityPopover_dl__j4sMQ",showMoreBtn:"ActivityPopover_showMoreBtn__kFzG2",footer:"ActivityPopover_footer__ZXx6_",footerBtn:"ActivityPopover_footerBtn__Pjm7U",copySplit:"ActivityPopover_copySplit__Iw9Pl",copySplitChevron:"ActivityPopover_copySplitChevron__8DPNG",copyMenu:"ActivityPopover_copyMenu__077NX",copyMenuItem:"ActivityPopover_copyMenuItem__ZVQh6",copyMenuTitle:"ActivityPopover_copyMenuTitle__ijjhI",copyMenuSub:"ActivityPopover_copyMenuSub__PjS9Z"}},30380:(e,t,a)=>{"use strict";a.d(t,{y:()=>i});var r=a(14232),n=a(57151);function i({viewer:e,filterCatalog:t,initialPresetId:a,applyLayout:l,captureLayoutColumns:s,setBarDateMode:o,hideColumn:c,showColumn:d,moveC
1olumn:u}){let[h,p]=(0,r.useState)(a),m=(0,r.useCallback)(()=>{p(n.GO)},[]),_=(0,r.useCallback)(a=>{if(p(a),!a)return;let r=(0,n.nP)(a);if(!r||r.viewer!==e)return;let i=r.buildLayout(t);l({columns:{...s(),order:i.order,visible:i.visible}}),o(r.barDateMode)},[l,s,t,o,e]),f=(0,r.useCallback)(e=>{o(e),m()},[m,o]),v=(0,r.useCallback)(e=>{c(e),m()},[m,c]),y=(0,r.useCallback)(e=>{d(e),m()},[m,d]),g=(0,r.useCallback)((e,t)=>{u(e,t),m()},[m,u]);return{columnPresetId:h,setColumnPresetId:p,clearColumnPreset:m,applyColumnPresetById:_,handleBarDateModeChange:f,handleHideColumn:v,handleShowColumn:y,handleMoveColumn:g}}},31596:(e,t,a)=>{"use strict";a.d(t,{n:()=>eb});var r=a(37876),n=a(14232),i=a(75893),l=a(29320),s=a(85037),o=a(65227);let c=o.l0;function d(e,t){let a=0,r=e.length-2;for(;a<=r;){let n=Math.floor((a+r)/2);if(e[n+1]<=t)a=n+1;else{if(!(e[n]>t))return n;r=n-1}}return Math.max(0,Math.min(e.length-2,a))}function u(e,t,a,r){if(0===a.length)return{start:0,end:0,topSpacerPx:0,bottomSpacerPx:0};let n=function(e){let t=[0];for(let a of e)t.push(t[t.length-1]+("wbs"===a.kind?c:54));return t}(a),i=n[n.length-1],l=o.Dq*c,s=d(n,Math.max(0,e-l)),u=Math.min(a.length,d(n,e+Math.max(t,c)+l)+1);return{start:s,end:u,topSpacerPx:n[s],bottomSpacerPx:Math.max(0,i-n[u])}}var h=a(67866);let p="pretask.compare.logicArrowLayerScope";function m(){return"all"===window.sessionStorage.getItem(p)?"all":"primary"}var _=a(4519),f=a(45464),v=a(77660),y=a(98249);function g(e,t){return`${e}:${t}`}function b(e,t,a,r){let n=e.getBoundingClientRect(),i=new Map;for(let l of Array.from(e.querySelectorAll("tr[data-activity-id]"))){let e=l.getAttribute("data-activity-id");if(!e)continue;let s=l.getBoundingClientRect(),o=s.top-n.top,c=s.height>0?s.height:t;for(let t of Array.from(l.querySelectorAll("[data-layer-role]"))){let l=t.getAttribute("data-layer-role");if(!l)continue;let s=t.getBoundingClientRect(),d=s.height>0?s.top-n.top+s.height/2:o+a+r/2;i.set(g(e,l),{rowTopY:o,rowBottomY:o+c,rowCenterY:o+c/2,barCenterY:d})}}return i}function w(e,t,a,r,n){let i=t.get(e);if(!i)return null;let l=a[i.activity_id];return{...i,...(0,_.iA)(i,l,r,n)}}var x=a(40698),S=a(98477),C=a(72470),j=a(16603),k=a(84389),N=a(98177),L=a.n(N),D=a(73718);function R({label:e,values:t,primaryIndex:a,gridCols:n}){let i=t[a];return(0,r.jsxs)("div",{className:L().fieldRow,style:{gridTemplateColumns:n},children:[(0,r.jsx)("div",{className:L().fieldLabel,children:e}),t.map((e,t)=>(0,r.jsx)("div",{className:t!==a&&e!==i?L().fieldValueChanged:L().fieldValue,children:e},t))]})}function M({label:e,layers:t,activityId:a,primaryIndex:n,relationKey:i,onNavigateToActivity:s,gridCols:o}){let c=t[n]?.view.activity_details[a],d=c?.[i],u=(0,l.fy)(d);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:L().sectionTitle,children:e}),(0,r.jsxs)("div",{className:L().fieldRow,style:{gridTemplateColumns:o},children:[(0,r.jsx)("div",{className:L().fieldLabel}),t.map((e,t)=>{let o=e.view.activity_details[a],c=o?.[i],d=t!==n&&(0,l.fy)(c)!==u;return(0,r.jsx)("div",{className:d?L().fieldValueChanged:L().fieldValue,children:c?.length?(0,r.jsx)("ul",{className:L().relList,children:c.map(([e,t])=>(0,r.jsx)("li",{children:s?(0,r.jsxs)("button",{type:"button",className:L().relLink,onClick:t=>{t.stopPropagation(),s(e)},children:[e," (",t,")"]}):(0,r.jsxs)(r.Fragment,{children:[e," (",t,")"]})},`${e}-${t}`))}):(0,r.jsx)("p",{className:L().empty,children:"None"})},e.upload_id)})]})]})}let A=({activityId:e,layers:t,clientX:a,clientY:i,onClose:s,onNavigateToActivity:o})=>{let c=(0,n.useRef)(null),d=Math.max(0,t.findIndex(e=>"primary"===e.layer_role)),u=t.map(t=>t.view.activity_details[e]),h=function(e){let t=new Set;for(let a of e)for(let e of a?.activity_codes??[])t.add(e.actv_code_type);return Array.from(t).sort((e,t)=>e.localeCompare(t))}(u),p=function(e){let t=new Set;for(let a of e)for(let e of a?.task_udfs??[])t.add(e.label);return Array.from(t).sort((e,t)=>e.localeCompare(t))}(u),m=(0,n.useCallback)(e=>(0,j.KE)(e,a,i),[a,i]),{headerDragProps:_}=(0,j.$_)({panelRef:c,placementKey:e,placementDeps:[a,i,t.length],computePosition:m});(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&s()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[s]);let f=`minmax(148px, 28%) repeat(${t.length}, minmax(132px, 1fr))`,v=u[d],g=v?.activity_description||v?.activity_name||"",b=g?`${e}: ${g}`:e,w=(0,r.jsxs)("div",{ref:c,className:`${L().popover} ${L().popoverCompare}`,"data-activity-popover":"",role:"dialog","aria-label":"Compare activity detail",style:{left:a,top:i,width:"min(640px, calc(100vw - 24px))"},onMouseDown:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:L().header,title:"Drag header to move",..._,children:[(0,r.jsx)("h2",{children:b}),(0,r.jsx)("button",{type:"button",className:L().closeBtn,"aria-label":"Close",onClick:s,children:"\xd7"})]}
1),(0,r.jsxs)("div",{className:L().columnHeaders,style:{gridTemplateColumns:f},children:[(0,r.jsx)("span",{}),t.map(e=>(0,r.jsx)(D.A,{revisionLabel:(0,C.ms)(e.layer_role,e.revision_number),filename:e.filename,layerRole:e.layer_role},e.upload_id))]}),(0,r.jsxs)("div",{className:L().body,children:[(0,r.jsx)("div",{className:L().sectionTitle,children:"Progress"}),(0,r.jsx)(R,{label:"Status",primaryIndex:d,gridCols:f,values:u.map(e=>e?y.qi[e.p6_status_code]||e.status:"â")}),(0,r.jsx)(R,{label:"% Complete",primaryIndex:d,gridCols:f,values:u.map(e=>null!=e?`${Math.round(100*e.percent_complete)}%`:"â")}),(0,r.jsx)("div",{className:L().sectionTitle,children:"Dates"}),l.vH.map(e=>{let t={forecast_start_date:k.nB.forecastStart,forecast_finish_date:k.nB.forecastFinish,planned_start_date:k.nB.targetStart,planned_finish_date:k.nB.targetFinish,early_start_date:k.nB.earlyStart,early_finish_date:k.nB.earlyFinish,late_start_date:k.nB.lateStart,late_finish_date:k.nB.lateFinish,actual_start_date:k.wg.actualStart,actual_finish_date:k.wg.actualFinish};return(0,r.jsx)(R,{label:t[e]??e,primaryIndex:d,gridCols:f,values:u.map(t=>(0,y.D6)(t?.[e]))},e)}),h.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:L().sectionTitle,children:"Activity codes"}),h.map(e=>(0,r.jsx)(R,{label:e,primaryIndex:d,gridCols:f,values:u.map(t=>{let a;return(a=t?.activity_codes?.find(t=>t.actv_code_type===e))&&(a.short_name?.trim()||a.actv_code_name)||"â"})},e))]}),p.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:L().sectionTitle,children:"Custom fields"}),p.map(e=>(0,r.jsx)(R,{label:e,primaryIndex:d,gridCols:f,values:u.map(t=>{let a;return a=t?.task_udfs?.find(t=>t.label===e),a?.value==null||""===a.value?"â":String(a.value)})},e))]}),(0,r.jsx)(M,{label:"Predecessors",layers:t,activityId:e,primaryIndex:d,relationKey:"predecessors",onNavigateToActivity:o,gridCols:f}),(0,r.jsx)(M,{label:"Successors",layers:t,activityId:e,primaryIndex:d,relationKey:"successors",onNavigateToActivity:o,gridCols:f})]})]});return"u"<typeof document?w:(0,S.createPortal)(w,document.body)};var P=a(90055),$=a.n(P);let T=()=>(0,r.jsx)("span",{className:$().logicChangedBadge,title:"Predecessor/successor set differs from primary",children:"LOGIC Î"});var E=a(12499),I=a(79813),B=a(54642),G=a(5067);function F(e,t){return(e?e.slice(0,10):null)!==(t?t.slice(0,10):null)}let O=({columnKey:e,layer:t,detail:a,activityId:n,rowIndent:i,isLastFixed:s,cellStyle:o,barDateMode:c,filterCatalog:d=null,highlightChanged:u=!1,highlightDiffs:h=!1,activityChanged:p=!1,rowSpan:m,activityDescription:f,pathBadge:v=null,logicChangedBadge:g=!1,onActivityContextMenu:b,layerDetailsMap:w,visibleLayers:x,showStackedLayerDates:S=!1})=>{let j=u||h&&function(e,t,a,r,n){let i=a?.get("primary")?.[t];if(!i||!a||!r)return!1;let s=r.filter(e=>"primary"!==e.layer_role);if(0===s.length)return!1;let o=(0,C.Gp)(e);return o?("primary"===o.role?s:s.filter(e=>e.layer_role===o.role)).some(e=>{let r=a.get(e.layer_role)?.[t];if(!r)return!1;let l=(0,_.Gx)(i,n),s=(0,_.Gx)(r,n),c="start"===o.kind?"start":"finish";return F(l[c],s[c])}):s.some(r=>{let s=a.get(r.layer_role)?.[t];if(!s)return!1;switch(e){case"status":return(0,l.rX)(i)!==(0,l.rX)(s);case"actualStart":return F(i.actual_start_date,s.actual_start_date);case"actualFinish":return F(i.actual_finish_date,s.actual_finish_date);case"barStart":{let e=(0,_.Gx)(i,n),t=(0,_.Gx)(s,n);return F(e.start,t.start)}case"barFinish":{let e=(0,_.Gx)(i,n),t=(0,_.Gx)(s,n);return F(e.finish,t.finish)}case"desc":return(i.activity_description||i.activity_name)!==(s.activity_description||s.activity_name);default:return!1}})}(e,n,w,x,c),k=[$().fixedCol,s?$().lastFixedCol:"",j?$().diffCellChanged:"",null!=m&&m>1?$().diffMergedCell:""].filter(Boolean).join(" "),N=null!=m&&m>1?{rowSpan:m}:{},L=b?{"data-gantt-activity-context-zone":"",onContextMenu:b}:{},D=e=>{if(!S||!x||x.length<2)return null;let t=x.map(t=>{let a=w?.get(t.layer_role)?.[n],r=a?(0,_.Gx)(a,c):null;return"start"===e?r?.start:r?.finish}),a=t[0]??null;return(0,r.jsx)("span",{className:$().compareStackedDates,children:x.map((e,n)=>{let i=t[n],l=n>0&&(a||i)&&(a||"").slice(0,10)!==(i||"").slice(0,10),s=l&&a&&i&&i.slice(0,10)>a.slice(0,10);return(0,r.jsxs)("span",{className:`${$().compareStackedDate} ${function(e){switch(e){case"primary":return $().compareStackedDatePrimary;case"baseline_1":return $().compareStackedDateBaseline1;case"baseline_2":return $().compareStackedDateBaseline2;case"baseline_3":return $().compareStackedDateBaseline3;default:return""}}(e.layer_role)}`,children:[(0,y.D6)(i),l?(0,r.jsx)("span",{className:$().compareDateDrift,title:s?"Later than Primary":"Earlier than Primary",children:s?"â":"â"}):null]},e.layer_role)})})};if(!a&&"id"!==e&&!(0,C.LK)(e)&&("desc"!==e||!f)&&!S)return(0,r.jsx)("td",{className:k,style:o,...N,...L,children:"â"});switch(e){case"id":return(0,r.jsxs)("td",{className:`${k} ${$().idCell}`,style:{...o,paddingLeft:6+i*y.tM},title:v?`${n} \xb7 ${v}`:n.length>y.kl?n:void 0,...N,...L,children:[n,p?(0,r.jsx)("span",{className:$().activityChangedBadge,title:"Differs from a comparison revision",children:"Changed"}):null,g?(0,r.jsx)(T,{}):null]});
1case"desc":{let e=f??a?.activity_description??a?.activity_name??"â";return(0,r.jsx)("td",{className:`${k} ${$().descCell}`,style:o,title:e,...N,...L,children:e})}case"revision":return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,l.Lq)((0,E.W6)(t),t.updated_at)});case"type":return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,y.NP)(a?.activity_type)});case"status":return(0,r.jsx)("td",{className:k,style:o,...L,children:a?y.qi[a.p6_status_code]||a.status:"â"});case"actualStart":return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,y.D6)(a?.actual_start_date)});case"actualFinish":return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,y.D6)(a?.actual_finish_date)});case"barStart":{let e=D("start");return(0,r.jsx)("td",{className:k,style:o,...L,children:e??(0,y.D6)(a?(0,_.Gx)(a,c).start:null)})}case"barFinish":{let e=D("finish");return(0,r.jsx)("td",{className:k,style:o,...L,children:e??(0,y.D6)(a?(0,_.Gx)(a,c).finish:null)})}case"totalFloat":{let e=(0,y.i1)(a?.total_float_days,a?.is_critical),t="criticalOrNegative"===e?$().floatZeroOrNegative:"nearCritical"===e?$().floatPositive:"slack"===e?$().floatSlack:"";return(0,r.jsx)("td",{className:`${k}${t?` ${t}`:""}`,style:o,...L,children:(0,y.D2)(a?.total_float_days)})}case"critical":return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,y.Z)(a?.is_critical)});default:{let t=(0,C.Gp)(e);if(t){let e=w?.get(t.role)?.[n],a=e?(0,_.Gx)(e,c):null,i="start"===t.kind?a?.start:a?.finish;return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,y.D6)(i)})}let i=(0,B.pc)(e);if(i){let t=(0,G.ux)(d,e)??i;return(0,r.jsx)("td",{className:k,style:o,...L,children:(0,I.s4)(a,t)})}return(0,r.jsx)("td",{className:k,style:o,...L,children:"â"})}}};var H=a(78815),V=a(34679);let W=({weeks:e,layers:t,barsByLayer:a,detailsByRole:n,activityId:i,isSelected:l,isPredecessor:s=!1,isSuccessor:o=!1,dayOffsetEnabled:c,compareLayerBarClass:d,onActivityClick:u})=>(0,r.jsx)(r.Fragment,{children:e.map(s=>{let o=t.map((e,t)=>({layer:e,layerIndex:t,bar:a?.[e.layer_role]})).filter(e=>e.bar?.start_week_index===s.week_index);return(0,r.jsx)("td",{className:`${$().weekCell} ${$().compareWeekCell}${o.length?` ${$().weekCellBarStart}`:""}`,children:o.map(({layer:t,layerIndex:a,bar:s})=>{let o=n.get(t.layer_role)?.[i],h=(0,y.sd)(o?.activity_type),p=(0,V.xM)(s,e,c),m=[$().bar,$().compareBar,d(s.layer_role),h?$().compareBarMilestone:"",l?$().compareBarSelected:""].filter(Boolean).join(" ");return(0,r.jsx)("div",{className:m,"data-bar-id":i,"data-layer-role":s.layer_role,"data-bar-visual":h?"milestone":"bar",style:h?{left
1:p.left,top:8+12*a-1}:{left:p.left,width:p.width,top:8+12*a,height:9},title:`${(0,H.jX)(s.layer_role)} \xb7 ${i}`,onClick:e=>u(i,e)},t.layer_role)})},s.week_index)})});var z=a(26468),X=a(87975),U=a(66322),Y=a(75248),K=a(84952),q=a(15129),Q=a(47103),Z=a(85875),J=a(13911),ee=a(36628),et=a(43078);function ea(e,t=new Set){return e.is_orphan}var er=a(57151),en=a(65886),ei=a(53007),el=a(20354),es=a(99992),eo=a(69190),ec=a(47837),ed=a(65960),eu=a(4558),eh=a(69496),ep=a(88656),em=a(71024),e_=a(23774),ef=a(26558),ev=a(30380);function ey(e,t,a,r=!1){return(0,y.Yw)(t[e]??96,a[e]??0,r)}function eg(e){switch(e){case"primary":return $().compareBarPrimary;case"baseline_1":return $().compareBarBaseline1;case"baseline_2":return $().compareBarBaseline2;case"baseline_3":return $().compareBarBaseline3;default:return""}}let eb=({compareView:e,projectId:t,sourceFormat:a,barDateMode:d,onBarDateModeChange:S,savedViews:j=[],savedViewsLoading:N=!1,onSaveView:L,onDeleteSavedView:D,onEditError:R,scheduleHealthOverlay:M,onViewStatsChange:P})=>{let[T,I]=(0,n.useState)(!1),[B,F]=(0,n.useState)(!0),{barDateMode:H,setBarDateMode:eb}=(0,em.I)(d,S),[ew,ex]=(0,n.useState)(!0),{tooltip:eS,bindTip:eC}=(0,eu.K)(),[ej,ek]=(0,n.useState)(null),{coachMarkOpen:eN,maybeShowCoachOnTrace:eL,dismissCoachMark:eD}=(0,J.i)(),{dayOffsetEnabled:eR,setDayOffsetEnabled:eM}=(0,ee.i)(),{logicArrowsEnabled:eA,setLogicArrowsEnabled:eP}=(0,h.L)(),{logicArrowLayerScope:e$,setLogicArrowLayerScope:eT}=function(){let[e,t]=(0,n.useState)(m);return{logicArrowLayerScope:e,setLogicArrowLayerScope:(0,n.useCallback)(e=>{t(e),window.sessionStorage.setItem(p,e)},[])}}(),[eE,eI]=(0,n.useState)(null),[eB,eG]=(0,n.useState)(null),[eF,eO]=(0,n.useState)(null),eH=(0,s.F)(),eV=(0,n.useRef)(null),eW=(0,n.useRef)(null),ez=(0,n.useRef)(!1),eX=(0,n.useRef)(null),eU=(0,n.useRef)(null),eY=(0,n.useMemo)(()=>e.layers.filter(Boolean),[e.layers]),{visibleLayers:eK,visibleLayerRoles:eq,allLayersVisible:eQ}=(0,ep.I)(eY,e.compare_id),eZ=(0,n.useMemo)(()=>(0,C.SJ)(eq),[eq]),[eJ,e0]=(0,n.useState)(!1);(0,n.useEffect)(()=>{0===eZ.length&&e0(!1)},[eZ.length]);let e1=(0,n.useMemo)(()=>(0,i.$B)(e.layers),[e.layers]),{activeColumns:e2,columnOrder:e5,pickerColumnKeys:e6,widths:e3,startResize:e4,ensureMinIdWidth:e8,columnLabels:e7,visible:e9,hideColumn:te,showColumn:tt,dragColKey:ta,setDragColKey:tr,dragOverColKey:tn,setDragOverColKey:ti,moveColumn:tl,applyLayout:ts,captureLayoutColumns:to}=function(e,t,a){let r=(0,n.useMemo)(()=>(0,G.FQ)(t),[t]),i=(a?.layerDateRoles??[]).join("|"),l=a?.showLayerDateColumns??!1,s=(0,n.useMemo)(()=>(0,C.Km)(i?i.split("|"):[]),[i]),[o,c]=(0,n.useState)(()=>
1(0,G.cu)(t)),[d,u]=(0,n.useState)(null),[h,p]=(0,n.useState)(()=>(0,G.F$)(t)),[m,_]=(0,n.useState)(!1),[f,v]=(0,n.useState)(()=>(0,G.F$)(t)),[y,g]=(0,n.useState)(()=>[...r]),[b,w]=(0,n.useState)(null),[x,S]=(0,n.useState)(null);(0,n.useEffect)(()=>{g(e=>{let t=new Set([...r,...s]),a=e.filter(e=>t.has(e));for(let e of r)a.includes(e)||a.push(e);return(0,C.fc)(a,s)}),p(e=>{let a=(0,G.F$)(t),n={...a,...e};for(let e of r)e in n||(n[e]=a[e]??!1);for(let e of Object.keys(n))r.includes(e)||(0,C.LK)(e)||delete n[e];return n}),c(e=>{let a={...(0,G.cu)(t),...e};for(let e of s)null==a[e]&&(a[e]=C.zW);return a})},[r,t,s]);let j=(0,n.useMemo)(()=>{let a=(0,G.Zt)(t,e);for(let t of s){let r=(0,C.Gp)(t);r&&(a[t]="start"===r.kind?(0,k.rt)(e):(0,k.QY)(e))}return a},[e,t,s]),N=(0,n.useMemo)(()=>y.filter(e=>(0,C.LK)(e)?l&&s.includes(e):h[e]),[y,s,l,h]),L=(0,n.useCallback)(e=>{c(t=>(0,G.Yo)("id",t)>=e?t:{...t,id:e})},[]),D=(0,n.useCallback)((e,t,a)=>{let r=a??(0,G.Yo)(e,o);u(e);let n=a=>{let n=Math.max((0,G.qe)(e),r+(a.clientX-t));c(t=>({...t,[e]:n}))},i=()=>{u(null),document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i)};document.addEventListener("mousemove",n),document.addEventListener("mouseup",i)},[o]),R=(0,n.useCallback)(()=>{v({...h}),_(!0)},[h]),M=(0,n.useCallback)(()=>{_(!1)},[]),A=(0,n.useCallback)(()=>{m?M():R()},[M,R,m]),P=(0,n.useCallback)((e,t)=>{v(a=>({...a,[e]:t}))},[]),$=(0,n.useCallback)(()=>{let e={...f};r.some(t=>e[t])||(e.id=!0),p(e),_(!1)},[r,f]),T=(0,n.useCallback)(e=>{p(t=>{let a={...t,[e]:!1};return r.some(e=>a[e])||(a.id=!0),a})},[r]),E=(0,n.useCallback)(e=>{p(t=>({...t,[e]:!0}))},[]),I=(0,n.useCallback)((e,t)=>{e!==t&&g(a=>{let r=a.indexOf(e),n=a.indexOf(t);if(r<0||n<0)return a;let i=[...a];return i.splice(r,1),i.splice(n,0,e),i})},[]),B=(0,n.useCallback)(e=>{let a=(0,G.Rb)(e.columns,t);g((0,C.fc)(a.order,s)),p(a.visible),c({...a.widths,...Object.fromEntries(s.filter(e=>null==a.widths[e]).map(e=>[e,C.zW]))})},[t,s]),F=(0,n.useCallback)(()=>({order:[...y],visible:{...h},widths:{...o}}),[y,h,o]);return{activeColumns:N,columnOrder:y,pickerColumnKeys:r,widths:o,resizing:d,startResize:D,ensureMinIdWidth:L,columnLabels:j,visible:h,pickerOpen:m,pickerDraft:f,togglePicker:A,closePicker:M,setPickerDraftValue:P,applyPicker:$,dragColKey:b,setDragColKey:w,dragOverColKey:x,setDragOverColKey:S,moveColumn:I,hideColumn:T,showColumn:E,applyLayout:B,captureLayoutColumns:F}}(H,e1,{layerDateRoles:eZ,showLayerDateColumns:eJ}),{columnPresetId:tc,setColumnPresetId:td,applyColumnPresetById:tu,handleBarDateModeChange:th,handleHideColumn:tp,handleShowColumn:tm,handleMoveColumn:t_}=(0,ev.y)({viewer:"compare",filterCatalog:e1,initialPresetId:"compare-executive-summary",applyLayout:ts,captureLayoutColumns:to,setBarDateMode:eb,hideColumn:te,showColumn:tt,moveColumn:tl}),tf=(0,n.useMemo)(()=>(0,en.Bg)(j,"compare"),[j]),tv=e.layers.find(e=>"primary"===e.layer_role)??e.layers[0],ty=(0,n.useMemo)(()=>(0,l.Mh)(e),[e]),tg=(0,n.useMemo)(()=>(function(e,t,a=new Set){let r=e.layers.find(e=>"primary"===e.layer_role)??e.layers[0];return t?function(e,t,a=new Set){let r=new Map(t.map(e=>[e.activity_id,e])),n=[],i=new Set;for(let t of e.view.rows){if("wbs_header"===t.row_type){n.push({kind:"wbs",row:t});continue}if(!t.activity_id)continue;let e=r.get(t.activity_id);e&&(ea(e,a)||(i.add(t.activity_id),n.push({kind:"activity",compareRow:e,indentLevel:t.indent_level})))}for(let e of t)i.has(e.activity_id)||n.push({kind:"activity",compareRow:e,indentLevel:e.indent_level});return n}(r,function(e,t,a=new Set){if(!t)return e;let r=[],n=[];for(let t of e)t.is_orphan?n.push(t):r.push(t);return[...r,...n]}(e.merged.rows,!0,a),a):function(e,t){let a=e.view.rows,r=new Map;a.forEach((e,t)=>{"activity"===e.row_type&&e.activity_id&&r.set(e.activity_id,t)});let n=new Set,i=new Set,l=[];for(let e of t){let t=e.activity_id,s=r.get(t);if(void 0!==s){if(i.has(t))continue;for(let e=0;e<s;e+=1){let t=a[e];"wbs_header"!==t.row_type||!t.wbs_id||n.has(t.wbs_id)||(l.push({kind:"wbs",row:t}),n.add(t.wbs_id))}i.add(t);let r=a[s];l.push({kind:"activity",compareRow:e,indentLevel:r.indent_level});continue}l.push({kind:"activity",compareRow:e,indentLevel:e.indent_level})}return l}(r,e.merged.rows)})(e,ew,ty),[ty,e,ew]),tb=(0,n.useMemo)(()=>{let t=new Map;for(let a of e.layers)t.set(a.layer_role,a.view.activity_details);return t},[e.layers]),tw=(0,n.useMemo)(()=>(0,y.FS)(tb.get("primary"),ej),[tb,ej]),tx=(0,n.useCallback)(e=>!!(!T||ty.has(e))||!!ej&&(e===ej||tw.predecessors.has(e)||tw.successors.has(e)),[ty,T,tw,ej]),tS=(0,n.useMemo)(()=>(0,y.zU)(tv.view.rows),[tv.view.rows]),{collapsedWbs:tC,setCollapsedWbs:tj,lockedWbs:tk,toggleWbsRowLock:tN,wbsOutlineLevel:tL,applyWbsOutlineLevel:tD}=(0,ef.q)({rows:tv.view.rows,resetKey:e.compare_id}),tR=(0,n.useMemo)(()=>
1(0,_.yM)(e,H),[e,H]),{showFilters:tM,toggleShowFilters:tA,filtersRootRef:tP,filterActiveTab:t$,selectFilterTab:tT,filtersDraft:tE,setFiltersDraft:tI,filtersApplied:tB,activeFilterCount:tG,filtersPending:tF,commitDateFilters:tO,filteredDisplayRows:tH,effectiveCollapsedWbs:tV}=(0,eh.T)({compareView:e,displayRows:tg,highlightChangesOnly:T,changedActivityIds:ty,activityVisible:tx,barDateMode:H,compareBarsByActivity:tR,visibleLayerRoles:eq,collapsedWbs:tC,activityAncestorWbsMap:tS}),tW=(0,n.useCallback)(()=>{tI((0,es.T)(tE)),tO(es.R)},[tO,tE]),tz=(0,n.useCallback)(()=>(0,en.XR)({viewer:"compare",columnPresetId:tc,barDateMode:H,popoverEnabled:B,filters:tE,columns:to(),compareOptions:{highlightChangesOnly:T,orphansToBottom:ew,logicArrowsEnabled:eA,logicArrowLayerScope:e$}}),[H,to,tc,tE,T,e$,eA,ew,B]),tX=(0,n.useCallback)(e=>{let t=(0,en.n9)(e)??e,a=(0,ei.Hh)(t.filters);td((0,er.oO)("compare",e1,t)),eb(t.barDateMode),F(t.popoverEnabled),t.compareOptions?.highlightChangesOnly!=null&&I(t.compareOptions.highlightChangesOnly),t.compareOptions?.orphansToBottom!=null&&ex(t.compareOptions.orphansToBottom),t.compareOptions?.logicArrowsEnabled!=null&&eP(t.compareOptions.logicArrowsEnabled),t.compareOptions?.logicArrowLayerScope!=null&&eT(t.compareOptions.logicArrowLayerScope),tI(a),tO({startOnOrAfter:a.startOnOrAfter,finishOnOrBefore:a.finishOnOrBefore}),ts(t)},[ts,tO,e1,eb,td,tI,eT,eP]),tU=(0,n.useMemo)(()=>tH.filter(e=>"activity"===e.kind).length,[tH]);(0,n.useEffect)(()=>{P?.({visibleActivityCount:tU,weekCount:e.merged.week_columns.length,changedCount:ty.size})},[ty.size,e.merged.week_columns.length,P,tU]);let tY=(0,n.useMemo)(()=>tH.map(e=>"wbs"===e.kind?{row_type:"wbs_header",indent_level:e.row.indent_level,wbs_id:e.row.wbs_id,activity_id:null}:{row_type:"activity",indent_level:e.indentLevel,wbs_id:e.compareRow.wbs_id,activity_id:e.compareRow.activity_id}),[tH]),tK=(0,n.useMemo)(()=>(0,y.Qn)(tY),[tY]),tq=(0,n.useMemo)(()=>(0,y.Vz)(tY),[tY]),tQ=(0,n.useMemo)(()=>{let e=tH.map(e=>"wbs"===e.kind?e.row:{row_type:"activity",indent_level:e.indentLevel,wbs_id:e.compareRow.wbs_id,parent_wbs_id:e.compareRow.parent_wbs_id});return(0,y.EU)(e,tV)},[tV,tH]),tZ=(0,n.useMemo)(()=>(0,y.rD)(tH.map(e=>"wbs"===e.kind?e.row:{indent_level:e.indentLevel})),[tH]),tJ=(0,n.useMemo)(()=>(0,y.HK)(tZ),[tZ]);(0,n.useEffect)(()=>{e8(tJ)},[e8,tJ]);let t0=(0,n.useMemo)(()=>({...e3,id:Math.max(e3.id??tJ,tJ)}),[tJ,e3]),t1=(0,n.useMemo)(()=>e2.reduce((e,t)=>
1e+t0[t],0),[e2,t0]),t2=(0,n.useMemo)(()=>(0,V.Jb)(tv?.view.metadata?.status_date,e.merged.week_columns,t1),[e.merged.week_columns,t1,tv?.view.metadata?.status_date]),t5=(0,n.useMemo)(()=>(0,y.Ky)(e.merged.week_columns),[e.merged.week_columns]),t6=(0,n.useMemo)(()=>(0,C.S7)(e2,t0,eK),[e2,eK,t0]),t3=(0,n.useMemo)(()=>(0,C.A7)(e2,t6),[e2,t6]),t4=(0,C.Qm)(eZ,eJ),t8=(0,n.useMemo)(()=>(0,y.Sl)(e2,t0),[e2,t0]),t7=(0,n.useMemo)(()=>{let e=[];return tH.forEach((t,a)=>{tQ[a]&&e.push(a)}),e},[tH,tQ]),t9=(0,n.useMemo)(()=>t7.map(e=>{let t=tH[e];return"wbs"===t.kind?{kind:"wbs"}:{kind:"activity",activityId:t.compareRow.activity_id}}),[tH,t7]),ae=(0,n.useMemo)(()=>new Set(t9.filter(e=>"activity"===e.kind&&!!e.activityId).map(e=>e.activityId)),[t9]),at=(0,n.useMemo)(()=>{let e=new Map;for(let t of tH)"activity"===t.kind&&e.set(t.compareRow.activity_id,t.compareRow.row_index);return e},[tH]),aa=t9.length>=o.ee,ar=(0,n.useMemo)(()=>"all"===e$?eK:eK.filter(e=>"primary"===e.layer_role),[eK,e$]),an=function(e,t,a,r){let i=t.length,[l,s]=(0,n.useState)(()=>u(0,0,t,a));return(0,n.useEffect)(()=>{let n=e.current;if(!n||!r||0===i)return void s({start:0,end:i,topSpacerPx:0,bottomSpacerPx:0});let l=()=>{let e=u(n.scrollTop,n.clientHeight,t,a);s(t=>t.start===e.start&&t.end===e.end&&t.topSpacerPx===e.topSpacerPx&&t.bottomSpacerPx===e.bottomSpacerPx?t:e)};if(l(),"u"<typeof ResizeObserver)return n.addEventListener("scroll",l,{passive:!0}),()=>{n.removeEventListener("scroll",l)};n.addEventListener("scroll",l,{passive:!0});let o=new ResizeObserver(l);return o.observe(n),()=>{n.removeEventListener("scroll",l),o.disconnect()}},[r,a,t,i,e]),l}(eH,t9,eK.length,aa),ai=aa?t7.slice(an.start,an.end):t7,{renderedEdges:al,tableWidth:as,tableHeight:ao,clipX:ac,clipY:ad}=function({enabled:e,selectedId:t,compareLayers:a,visibleActivityIds:r,visibleLogicalRows:i,barDateMode:l,dayOffsetEnabled:s,compareBarsByActivity:o,activityRowIndexById:d,weekColumns:u,tableRef:h,scrollRef:p,fixedColsWidth:m,activityRowHeightPx:_,barTopPx:S,barHeightPx:C,barPitchPx:j}){let k=(0,n.useMemo)(()=>a.map(e=>e.layer_role),[a]),[N,L]=(0,n.useState)(v.RP),[D,R]=(0,n.useState)({width:0,height:0}
1),[M,A]=(0,n.useState)(()=>new Map),[P,$]=(0,n.useState)(0),[T,E]=(0,n.useState)({left:0,top:0}),I=(0,n.useMemo)(()=>{let e=new Map;return o.forEach((t,r)=>{let n=d.get(r)??0;for(let i of a){let a=t?.[i.layer_role];a&&e.set(g(r,i.layer_role),{activity_id:a.activity_id,row_index:n,start_date:a.start_date,finish_date:a.finish_date,start_week_index:a.start_week_index,end_week_index:a.end_week_index,status:a.status,is_critical:a.is_critical,is_critical_adjacent:!1})}}),e},[d,o,a]);(0,n.useLayoutEffect)(()=>{let a=h.current;if(!a)return;let r=()=>{L(a.tHead?.offsetHeight??v.RP),R({width:a.offsetWidth,height:a.offsetHeight}),e&&t?A(b(a,_,S,C)):A(new Map)};if(r(),"u"<typeof ResizeObserver)return;let n=new ResizeObserver(r);return n.observe(a),()=>{n.disconnect()}},[C,S,_,e,m,t,h,i,u.length]),(0,n.useLayoutEffect)(()=>{let a=p.current;if(!a||!e||!t)return void E({left:0,top:0});let r=()=>{$(e=>e+1),E({left:a.scrollLeft,top:a.scrollTop})};return r(),a.addEventListener("scroll",r,{passive:!0}),()=>{a.removeEventListener("scroll",r)}},[e,p,t]),(0,n.useLayoutEffect)(()=>{let a=h.current;a&&e&&t&&A(b(a,_,S,C))},[C,S,_,e,P,t,h,i]);let B=(0,n.useMemo)(()=>{let e=function(e){let t=new Map,a=e.theadHeightPx??v.RP,r=e.wbsRowHeightPx??c,n=a;for(let a of e.visibleLogicalRows){if("wbs"===a.kind){n+=r;continue}let i=a.activityId;if(i){for(let a=0;a<e.visibleLayerRoles.length;a+=1){let r=e.visibleLayerRoles[a],l=n+e.barTopPx+a*e.barPitchPx+e.barHeightPx/2;t.set(g(i,r),{rowTopY:n,rowBottomY:n+e.activityRowHeightPx,rowCenterY:n+e.activityRowHeightPx/2,barCenterY:l})}n+=e.activityRowHeightPx}}return t}({visibleLogicalRows:i,visibleLayerRoles:k,theadHeightPx:N,activityRowHeightPx:_,barTopPx:S,barHeightPx:C,barPitchPx:j});return 0===M.size?e:(0,v.O6)(e,M)},[C,S,j,_,M,N,k,i]),G=(0,n.useMemo)(()=>{if(!e||!t)return[];let n=[];for(let e of a){let a=(0,x.sS)(e.view.dependency_edges,t,r),i=e.view.activity_details;for(let r of a){let a=function(e){let t=g(e.edge.predecessor_activity_id,e.layerRole),a=g(e.edge.successor_activity_id,e.layerRole),r=e.rowMetricsByEndpointKey.get(t),n=e.rowMetricsByEndpointKey.get(a);if(!r||!n)return null;let i=w(t,e.barsByEndpointKey,e.activityDetails,e.barDateMode,e.weekColumns),l=w(a,e.barsByEndpointKey,e.activityDetails,e.barDateMode,e.weekColumns);if(!i||!l)return null;let s=e.activityDetails[e.edge.predecessor_activity_id],o=e.activityDetails[e.edge.successor_activity_id];return{predFinishX:(0,v.Gz)(i,s?.activity_type,e.weekColumns,e.dayOffsetEnabled,e.fixedColsWidth,"finish"),predAttachY:r.barCenterY,predRowBottomY:r.rowBottomY,succStartX:(0,v.Gz)(l,o?.activity_type,e.weekColumns,e.dayOffsetEnabled,e.fixedColsWidth,"start"),succRowCenterY:(0,y.sd)(o?.activity_type)?n.barCenterY:n.rowCenterY,overlapOnWeeks:(0,f.ke)(i,l)}}({edge:r,layerRole:e.layer_role,rowMetricsByEndpointKey:B,barsByEndpointKey:I,activityDetails:i,barDateMode:l,dayOffsetEnabled:s,weekColumns:u,fixedColsWidth:m});if(!a)continue;let{path:o,labelX:c,labelY:d,labelAnchor:h}=(0,x.P6)(a);n.push({edge:r,path:o,label:(0,x.YP)(r),labelX:c,labelY:d,labelAnchor:h,stroke:(0,x.$C)(r,t,i),dashArray:(0,x.aQ)(r.relationship_type)})}}return n},[l,I,a,s,e,m,B,t,r,u]),F=(0,n.useMemo)(()=>{var e;let t,a;return t=(e={fixedColsWidth:m,weekColumnCount:u.length,visibleLogicalRows:i,activityRowHeightPx:_,theadHeightPx:N,tableWidthPx:D.width,tableHeightPx:D.height}).theadHeightPx??v.RP,a=e.visibleLogicalRows.reduce((t,a)=>t+("wbs"===a.kind?c:e.activityRowHeightPx),0),{width:Math.max(e.fixedColsWidth+e.weekColumnCount*y._8,e.tableWidthPx??0),height:Math.max(t+a,e.tableHeightPx??0)}},[_,m,D.height,D.width,N,i,u.length]),O=(0,n.useMemo)(()=>(0,v.RM)({fixedColsWidth:m,theadHeightPx:N,scrollLeft:T.left,scrollTop:T.top}),[m,T.left,T.top,N]);return{renderedEdges:G,tableWidth:F.width,tableHeight:F.height,clipX:O.clipX,clipY:O.clipY}}({enabled:eA,selectedId:ej,compareLayers:ar,visibleActivityIds:ae,visibleLogicalRows:t9,barDateMode:H,dayOffsetEnabled:eR,compareBarsByActivity:tR,activityRowIndexById:at,weekColumns:e.merged.week_columns,tableRef:eW,scrollRef:eH,fixedColsWidth:t1,activityRowHeightPx:54,barTopPx:8,barHeightPx:9,barPitchPx:12}),au=(0,n.useCallback)((e,t,a)=>{e.preventDefault(),e.stopPropagation();let r=eK.map(e=>e.view.activity_details[t]).find(Boolean),n=!!r;n&&eO({activityId:t,x:e.clientX,y:e.clientY,hasComments:!1,detailsAvailable:n,cellText:a?.text??r?.activity_description??t,cellLabel:a?.label??"Activity"})},[eK]),ah=(0,n.useCallback)((e,t)=>{eK.some(t=>t.view.activity_details[e])&&(ek(e),eI({activityId:e,clientX:t?.clientX??Math.round(.35*window.innerWidth),clientY:t?.clientY??Math.round(.3*window.innerHeight)}))},[eK]),ap=(0,n.useCallback)(()=>{ek(null),eI(null)},[]);(0,e_.q)({containerRef:eV,suppressNextRef:ez,onDismiss:ap});let am=(0,n.useCallback)((e,t="smooth")=>{let a=eH.current;if(!a)return;let r=tR.get(e)?.primary;(0,y.Nk)(a,e,r?.start_week_index,t1,t)},[tR,t1,eH]),a_=(0,n.useCallback)(e=>{if(tk.has(e))return;let t=tC.has(e);tj(t=>(0,y.s4)(t,e)),t&&(eX.current=e)},[tC,tk,tj]);(0,n.useEffect)(()=>{let e=eX.current;if(e){eX.current=null;let t=(0,y.rP)(tY,e);t&&requestAnimationFrame(()=>{am(t)});return}let t=eU.current;t&&(eU.current=null,requestAnimationFrame(()=>{requestAnimationFrame(()=>{am(t,"auto")})}))},[tC,am,tY]);let af=(0,n.useCallback)(e=>{let t=tb.get("primary")?.[e];if(!t)return;let a=[...t.predecessors.map(([e])=>e),...t.successors.map(([e])=>e)];
10!==a.length&&(eU.current=e,tj(e=>(0,y.Kl)(e,tS,a)??e))},[tS,tb,tj]),av=(0,n.useCallback)(e=>(0,y.NU)(tS,[e],tC).length>0&&(eU.current=e,tj(t=>(0,y.Kl)(t,tS,[e])??t),!0),[tS,tC,tj]),ay=(e,t)=>{if(t.target.closest("select, input, button"))return;t.stopPropagation(),ez.current=!0,ej!==e&&(ek(e),eL()),B&&eI({activityId:e,clientX:t.clientX,clientY:t.clientY});let a=av(e),r=tb.get("primary")?.[e]?[...tb.get("primary")?.[e]?.predecessors.map(([e])=>e)??[],...tb.get("primary")?.[e]?.successors.map(([e])=>e)??[]]:[],n=r.length>0&&(0,y.NU)(tS,r,tC).length>0;!a&&t.target.closest(`.${$().fixedCol}`)&&!n&&am(e),af(e)},ag=(0,n.useCallback)(e=>{let t=tv?.view;if(!t)return;let a=(0,y.eh)(e,t);if(!a)return;let r=t.activity_details[a],n=(0,y.NU)(tS,[a],tC).length>0;if(ek(a),eL(),eI(e=>e?{...e,activityId:a}:null),n){eU.current=a,tj(e=>(0,y.Kl)(e,tS,r?[a,...r.predecessors.map(([e])=>e),...r.successors.map(([e])=>e)]:[a])??e);return}requestAnimationFrame(()=>{am(a)})},[tS,tC,eL,tv?.view,am,tj]),ab=(0,ed.Hr)(tv?.view.metadata?.status_date),aw=(0,n.useMemo)(()=>{if(!ew)return null;for(let e=0;e<tH.length;e+=1){let t=tH[e];if(t?.kind==="activity"&&ea(t.compareRow,ty))return e}return null},[ty,tH,ew]),ax=-1;return(0,r.jsxs)("div",{ref:eV,className:$().wrap,children:[(0,r.jsx)(Q.o,{searchValue:tE.searchText,onSearchChange:e=>tI({...tE,searchText:e}),showFilters:tM,activeFilterCount:tG,layerFilterActive:!eQ,onToggleFilters:tA,filtersRootRef:tP,filterPanel:(0,r.jsx)(el.f,{filters:tE,onChange:tI,onCommitDateFilters:tO,activeTab:t$,onActiveTabChange:tT,onClearAll:tW,statusDate:tv?.view.metadata?.status_date??null,primaryScheduleLabel:tv?(0,E.ig)(tv):void 0,wbsOutlineLevel:tL,onWbsOutlineLevelChange:tD}),filtersPending:tF,nextTwoWeeksActive:(0,ed.HK)(tB,tv?.view.metadata?.status_date),onNextTwoWeeksClick:()=>{if((0,ed.HK)(tB,tv?.view.metadata?.status_date)){tI({...tE,startOnOrAfter:null,finishOnOrBefore:null}),tO(es.R);return}let e=(0,ed.lP)(tv?.view.metadata?.status_date);tI({...tE,...e}),tO(e)},bindTip:eC,onExpandAll:()=>tD(5),onCollapseAll:()=>tD(1),legend:(0,r.jsx)(K.p,{bindTip:eC,statusDate:tv?.view.metadata?.status_date??null,coachMarkOpen:eN,onCoachDismiss:eD,compareLayers:eY}),dataDateControl:ab?(0,r.jsxs)("span",{className:$().toolbarDataDateBtn,children:[(0,r.jsx)("span",{className:$().toolbarDataDateLabel,children:"Data Date\xa0"}),(0,r.jsx)("strong",{children:ab}),(0,r.jsx)("span",{className:$().toolbarChevron,"aria-hidden":"true",children:"â¼"})]}):null,onToday:()=>{let e=eH.current,t=tv?.view;e&&t&&(0,ed.fg)(e,t,t1)},barDates:(0,r.jsx)(Z.H,{value:H,onChange:th}),viewSetup:(0,r.jsx)(eo.U,{viewer:"compare",columnPresetId:tc,onColumnPresetChange:tu,columnOrder:e5,columnVisible:e9,columnLabels:e7,onShowColumn:tm,onHideColumn:tp,onMoveColumn:t_,display:{logicArrowsEnabled:eA,onLogicArrowsChange:eP,dayOffsetEnabled:eR,onDayOffsetChange:eM,popoverEnabled:B,onPopoverEnabledChange:e=>{F(e),e||eI(null)},compare:{highlightChangesOnly:T,onHighlightChangesOnlyChange:I,orphansToBottom:ew,onOrphansToBottomChange:ex,logicArrowLayerScope:e$,onLogicArrowLayerScopeChange:eT}},savedViews:tf,savedViewsLoading:N,onLoadSavedView:e=>{let t=(0,en.n9)(e.layout);t&&tX(t)},onSaveView:L?e=>L(e,tz()):void 0,onDeleteSavedView:D,sortBy:tE.sortBy,sortAsc:tE.sortAsc,onSortChange:e=>tI({...tE,...e}),onResetFilters:tW,onResetColumns:()=>tu("compare-executive-summary")}),tooltip:eS}),(0,r.jsx)(et.n,{warnings:e.warnings}),(0,r.jsx)(ec.Z,{filters:tB,onChange:tI,onCommitDateFilters:tO,onClearAll:tW}),T?(0,r.jsxs)("div",{className:$().compareHighlightHint,role:"status",children:["Showing changes only \xb7 ",ty.size," ",1===ty.size?"activity":"activities"]}):null,(0,r.jsxs)("div",{className:$().scrollViewport,children:[(0,r.jsx)("div",{ref:eH,className:$().scroll,children:(0,r.jsxs)("div",{className:$().scrollContent,children:[null!=t2?(0,r.jsx)("div",{className:$().dataDateClip,style:{left:t1},"aria-hidden":"true",children:(0,r.jsxs)("div",{className:`${$().dataDateOverlay} ${$().compareDataDateOverlay}`,style:{left:t2-t1},"data-ui":"sv-data-date-line",children:[(0,r.jsx)("span",{className:$().dataDateFlag,children:"Data date"}),(0,r.jsx)("span",{className:$().dataDateLine})]})}):null,(0,r.jsxs)("table",{ref:eW,className:`${$().table} ${$().compareTable}`,children:[(0,r.jsxs)("colgroup",{children:[e2.map(e=>(0,r.jsx)("col",{style:{width:t0[e],minWidth:t0[e]}},e)),e.merged.week_columns.map(e=>(0,r.jsx)("col",{className:$().weekCol},e.week_index))]}),(0,r.jsxs)("thead",{children:[(0,r.jsxs)("tr",{className:$().monthHeaderRow,children:[t3.topCells.map(e=>{if("band"===e.kind){let t=e.band.columnKeys[e.band.columnKeys.length-1],a=e2[e2.length-1]===t;return(0,r.jsx)("th",{colSpan:e.band.columnKeys.length,className:`${$().fixedCol} ${$().fixedColHeader} ${$().compareDateBandCell} ${function(e){switch(e){case"baseline_1":return $().compareDateBandBaseline1;case"baseline_2":return $().compareDateBandBaseline2;case"baseline_3":return $().compareDateBandBaseline3;default:return""}}(e.band.role)}${a?` ${$().lastFixedCol}`:""}`,style:{width:e.band.width,minWidth:e.band.width,maxWidth:e.band.width,left:t8[e.band.anchorKey]??0},title:e.band.label,children:(0,r.jsxs)("span",{className:$().compareDateBandCellInner,children:[(0,r.jsx)("span",{className:$().comparePrimaryDateBandSwatch,"aria-hidden":"true"}),(0,r.jsx)("span",{className:$().compareDateBandLabel,children:e.band.label}),"primary"===e.band.role&&eZ.length>0?(0,r.jsx)("button",{type:"button",className:`${$().baselineDatesExpandBtn} ${$().compareDatesBandBtn}`,"aria-label":t4,"aria-expanded":eJ,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),e0(e=>!e)},children:eJ?"\xab":"\xbb"}):null]})},`band-${e.band.anchorKey}`)}let t=e.key,a=e2.indexOf(t);return(0,r.jsxs)("th",{rowSpan:2,className:`${$().fixedCol} ${$().fixedColHeader}${ta===t?` ${$().colDragging}`:""}${tn===t?` ${$().colDragOver}`:""}${a===e2.length-1?` ${$().lastFixedCol}`:""}`,style:ey(t,t0,t8,a===e2.length-1),"data-gantt-column-header":"",draggable:!0,onDragStart:e=>{e.target.closest(`.${$().colResizer}`)?e.preventDefault():(tr(t),e.dataTransfer.effectAllowed="move")},onDragEnd:()=>{tr(null),ti(null)},onDragOver:e=>{e.preventDefault(),ti(e=>e===t?e:t)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||ti(e=>e===t?null:e)},onDrop:e=>{e.preventDefault(),ti(null),ta&&ta!==t&&t_(ta,t),tr(null)},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),eG({key:t,x:e.clientX,y:e.clientY})},children:[(0,r.jsx)("span",{className:$().compareColumnHeaderLabel,children:e7[t]}),(0,r.jsx)("span",{className:$().colDragHandle,"aria-hidden":"true",title:"Drag to reorder
1column",children:"â ¿"}),(0,r.jsx)("span",{className:$().colResizer,onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),e4(t,e.clientX,t0[t])}})]},t)}),t5.map(e=>(0,r.jsx)("th",{colSpan:e.weekCount,className:`${$().weekCol} ${$().monthHeader}`,children:e.label},e.key))]}),(0,r.jsxs)("tr",{className:$().weekHeaderRow,children:[t3.subHeaderKeys.map(e=>{let t=e2.indexOf(e);return(0,r.jsxs)("th",{className:`${$().fixedCol} ${$().fixedColHeader} ${$().compareDateSubHeader}${ta===e?` ${$().colDragging}`:""}${tn===e?` ${$().colDragOver}`:""}${t===e2.length-1?` ${$().lastFixedCol}`:""}`,style:ey(e,t0,t8,t===e2.length-1),"data-gantt-column-header":"",draggable:!0,onDragStart:t=>{t.target.closest(`.${$().colResizer}`)?t.preventDefault():(tr(e),t.dataTransfer.effectAllowed="move")},onDragEnd:()=>{tr(null),ti(null)},onDragOver:t=>{t.preventDefault(),ti(t=>t===e?t:e)},onDragLeave:t=>{t.currentTarget.contains(t.relatedTarget)||ti(t=>t===e?null:t)},onDrop:t=>{t.preventDefault(),ti(null),ta&&ta!==e&&t_(ta,e),tr(null)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),eG({key:e,x:t.clientX,y:t.clientY})},children:[(0,r.jsx)("span",{className:$().compareColumnHeaderLabel,children:e7[e]}),(0,r.jsx)("span",{className:$().colDragHandle,"aria-hidden":"true",title:"Drag to reorder column",children:"â ¿"}),(0,r.jsx)("span",{className:$().colResizer,onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),e4(e,t.clientX,t0[e])}})]},e)}),e.merged.week_columns.map(e=>(0,r.jsx)("th",{className:$().weekCol,children:(0,y.XZ)(e)},e.week_index))]})]}),(0,r.jsxs)("tbody",{children:[aa&&an.topSpacerPx>0?(0,r.jsx)("tr",{"aria-hidden":"true",children:(0,r.jsx)("td",{colSpan:e2.length+e.merged.week_columns.length,style:{height:an.topSpacerPx,padding:0,border:"none",lineHeight:0}})}):null,ai.map(t=>{let a=tH[t];if(!a)return null;if("wbs"===a.kind){let t=a.row,n=!!t.wbs_id&&tC.has(t.wbs_id),i=!!t.wbs_id&&tk.has(t.wbs_id),l=t.indent_level>tq,s=t.wbs_id?tK.get(t.wbs_id)??0:0;return(0,r.jsxs)("tr",{className:`${$().wbsRow}${l?` ${$().wbsRowNested}`:""}`,children:[(0,r.jsx)("td",{colSpan:e2.length,className:`${$().fixedCol} ${$().wbsFixedSpan} ${$().wbsLabel}`,style:{width:t1,minWidth:t1,maxWidth:t1,left:0},onClick:()=>{t.wbs_id&&a_(t.wbs_id)},children:(0,r.jsxs)("span",{className:$().wbsLabelInner,children:["\xa0".repeat(4*t.indent_level),(0,r.jsx)("span",{className:$().wbsToggle,"aria-hidden":"true",children:n?"â¸":"â¾"}),t.wbs_id?(0,r.jsx)(q.x,{locked:i,collapsed:n,onToggle:()=>tN(t.wbs_id)}):null," ",t.label,s>0?(0,r.jsx)("span",{className:$().wbsCount,children:s}):null]})}),(0,r.jsx)("td",{colSpan:e.merged.week_columns.length,className:$().wbsHeader,"aria-hidden":"true"})]},`wbs-${t.row_index}`)}ax+=1;let{compareRow:i,indentLevel:s}=a,o=i.activity_id,c=ej===o,d=tw.predecessors.has(o),u=tw.successors.has(o),h=null!=ej&&!c&&!d&&!u,p=tb.get("primary")?.[o],m=p?.activity_description||p?.activity_name||i.canonical.activity_description,_=eK.find(e=>tb.get(e.layer_role)?.[o])??tv,f=tb.get(_.layer_role)?.[o],v=tR.get(o)?.primary,g=(0,y.pY)(p,v),b=function(e,t,a,r){if(!e)return!1;for(let n of a){if("primary"===n.layer_role)continue;let a=r.get(n.layer_role)?.[t];if((0,l.zs)(e,a))return!0}return!1}(p,o,eK,tb),w=ew&&ea(i,ty),x=[$().activityRow,$().compareActivityRow,w?$().compareRemovedActivityRow:"",c?$().selectedRow:"",d?$().predecessorRow:"",u?$().successorRow:"",h?$().dimmedRow:"",ty.has(o)?$().diffChangedActivity:""].filter(Boolean).join(" "),S=tR.get(o)?.[_.layer_role],C=f?(0,y.lA)({p6StatusCode:f.p6_status_code,percentComplete:f.percent_complete,barStatus:S?.status,detailStatus:f.status}):null,j=c||d||u||h||!C?"":"inProgress"===C?$().statusRowInProgress:"done"===C?$().statusRowDone:$().statusRowBacklog;return(0,r.jsxs)(n.Fragment,{children:[t===aw?(0,r.jsx)("tr",{className:$().compareRemovedBandHeader,children:(0,r.jsx)("td",{colSpan:e2.length+e.merged.week_columns.length,children:"Changes & removed activities"})}):null,(0,r.jsxs)("tr",{className:`${x}${j?` ${j}`:""} ${$().compareStackedActivityRow}`,"data-activity-id":o,"data-selected":c?"true":void 0,style:{height:54},onClick:e=>ay(o,e),children:[e2.map((e,t)=>(0,r.jsx)(O,{columnKey:e,layer:_,detail:f,activityId:o,rowIndent:s,isLastFixed:t===e2.length-1,cellStyle:ey(e,t0,t8,t===e2.length-1),barDateMode:H,filterCatalog:e1,activityDescription:m,pathBadge:g,logicChangedBadge:b,layerDetailsMap:tb,visibleLayers:eK,highlightDiffs:eZ.length>0,activityChanged:ty.has(o),onActivityContextMenu:e=>au(e,o)},e)),(0,r.jsx)(W,{weeks:e.merged.week_columns,layers:eK,barsByLayer:tR.get(o),detailsByRole:tb,activityId:o,isSelected:c,isPredecessor:d,isSuccessor:u,dayOffsetEnabled:eR,compareLayerBarClass:eg,onActivityClick:ay})]})]},`act-${o}-${ax}`)}),aa&&an.bottomSpacerPx>0?(0,r.jsx)("tr",{"aria-hidden":"true",children:(0,r.jsx)("td",{colSpan:e2.length+e.merged.week_columns.length,style:{height:an.bottomSpacerPx,padding:0,border:"none",lineHeight:0}})}):null]})]}),eA&&null!=ej?(0,r.jsx)(Y.O,{renderedEdges:al,width:as,height:ao,clipX:ac,clipY:ad}):null]})}),M?(0,r.jsx)("div",{className:$().healthOverlayLayer,children:M({onActivityClick:ag,fixedColsWidth:t1})}):null]}),eE&&(0,r.jsx)("div",{"data-activity-popover":!0,children:(0,r.jsx)(A,{activityId:eE.activityId,layers:eK,clientX:eE.clientX,clientY:eE.clientY,onClose:ap,onNavigateToActivity:ag})}),eB&&(0,r.jsx)(U.K,{columnKey:eB.key,allColumnKeys:e6,columnLabels:e7,visible:e9,position:{x:eB.x,y:eB.y},onRemove:tp,onAdd:tm,onClose:()=>eG(null)}),eF?(0,r.jsx)(z.k,{menu:eF,traceLogicEnabled:!1,commentsEnabled:!1,onViewTraceLogic:()=>eO(null),onSeeActivityDetails:()=>{let{activityId:e,x:t,y:a}=eF;eO(null),ez.current=!0,ah(e,{clientX:t,clientY:a})},onCopyActivityAsText:()=>{let e=eF.activityId;eO(null);let t=eK.map(t=>t.view.activity_details[e]).find(Boolean);
1t&&(0,X.eM)((0,X.QF)(t))},onCopyCell:()=>{let e=eF.cellText?.trim();eO(null),e&&(0,X.eM)(e)},onAddComment:()=>eO(null),onClose:()=>eO(null)}):null]})}},32395:(e,t,a)=>{"use strict";a.d(t,{XC:()=>p,fg:()=>d,ri:()=>m,xf:()=>c,yC:()=>o});var r=a(14232),n=a(42959),i=a(20212);let l=i.f,s=i.u,o="Preparing schedule viewâ¦",c="Could not prepare the schedule view after multiple attempts. Try reloading or re-uploading the XER file.",d="During load the XER file was changed. Try reloading?";function u(e){return"failed"===e.status&&!!e.error?.includes("superseded")}async function h(e){await new Promise(t=>window.setTimeout(t,e))}function p(e){let t=(0,r.useRef)(0),a=(0,r.useCallback)(async(t,a,r,i,p)=>{let m=!1,_=t,f=0;for(let t=0;t<s;t+=1){let t=await (0,n.e$)(e,_);if(t.source_sha256!==a)throw m||(p?.onSuperseded?.(),m=!0),Error(d);if("completed"===t.status&&t.snapshot_ready)return t;if("failed"===t.status){if(u(t))throw p?.onSuperseded?.(),Error(d);throw Error(t.error??c)}if("queued"===t.status){if((f+=1)>=20){f=0;let t=await (0,n.Az)(e,r,i,{refresh:!0});if(t.snapshot_ready&&"completed"===t.status)return t;if(t.source_sha256!==a)throw p?.onSuperseded?.(),Error(d);if("failed"===t.status)throw Error(t.error??c);t.job_id&&(_=t.job_id)}}else f=0;p?.onProgress?.(o),await h(l)}throw Error("Schedule view preparation timed out. If you use Celery locally, start the schedule-health worker or set SCHEDULE_HEALTH_CELERY_ENABLED=false and reload.")},[e]),i=(0,r.useCallback)(async(t,r,i)=>{i?.onProgress?.(o);let l=await (0,n._1)(e,t,r);if(l.snapshot_ready&&"completed"===l.status)return l;let s=l.source_sha256,h=await (0,n.Az)(e,t,r);if(h.snapshot_ready&&"completed"===h.status)return h;if(h.source_sha256!==s)throw i?.onSuperseded?.(),Error(d);if("failed"===h.status){if(u(h))throw i?.onSuperseded?.(),Error(d);throw Error(h.error??c)}if(!h.job_id)throw Error(c);return a(h.job_id,s,t,r,i)},[a,e]),p=(0,r.useCallback)((t,a)=>{(0,n.Az)(e,t,a).catch(()=>{})},[e]),m=(0,r.useCallback)((e,a,r=3)=>!(t.current>=r)&&(t.current+=1,p(e,a),!0),[p]);return{ensureUsdReady:i,warmMaterializeUsd:p,warmMaterializeUsdWithLimit:m,resetWarmCounter:(0,r.useCallback)(()=>{t.current=0},[])}}async function m(e,t,a){let r=new Set,n=t.filter(e=>{let t=`${e.uploadId}:${e.projShortName}`;return!r.has(t)&&(r.add(t),!0)});await Promise.all(n.map(t=>e(t.uploadId,t.projShortName,a)))}},34679:(e,t,a)=>{"use strict";a.d(t,{Jb:()=>c,xM:()=>o});var r=a(4519),n=a(98249);function i(e){let[t,a,r]=e.slice(0,10).split("-").map(Number);return new Date(t,a-1,r)}function l(e,t){return Math.round((t.getTime()-e.getTime())/864e5)}function s(e,t){let a=e.find(e=>e.week_index===t);return a?i(a.week_start):null}function o(e,t,a,c=n._8){return a?function(e,t,a=n._8){var o,c;let d=a/7,u=(0,r.mx)(e.start_date,t),h=s(t,u);return h?{left:Math.max(0,l(h,i(e.start_date)))*d+2,width:(o=e.start_date,c=e.finish_date,Math.max(1,l(i(o),i(c))+1)*d-4)}:{left:2,width:a-4}}(e,t,c):function(e,t=n._8){return{left:2,width:Math.max(0,e*t-4)}}(e.end_week_index-e.start_week_index+1,c)}function c(e,t,a,o=n._8){let d=e?.trim().slice(0,10);if(!d||0===t.length)return null;let u=(0,r.mx)(d,t),h=s(t,u);return h?a+u*o+Math.max(0,Math.min(6,l(h,i(d))))*(o/7):null}},36386:(e,t,a)=>{"use strict";function r(e){let t=e.trim();if(!t)return"";let a=t.indexOf(" â ");if(a>0)return t.slice(0,a).trim();let r=t.indexOf(" - ");return r>0?t.slice(0,r).trim():t}a.d(t,{I:()=>r})},36628:(e,t,a)=>{"use strict";a.d(t,{i:()=>l});var r=a(14232);let n="scheduleReader.ganttDayOffsetEnabled";function i(){try{return"0"!==window.sessionStorage.getItem(n)}catch{return!0}}function l(){let[e,t]=(0,r.useState)(i);return{dayOffsetEnabled:e,setDayOffsetEnabled:(0,r.useCallback)(e=>{t(e);try{e?window.sessionStorage.setItem(n,"1"):window.sessionStorage.setItem(n,"0")}catch{}},[])}}},37282:(e,t,a)=>{"use strict";a.d(t,{I:()=>eb});var r=a(37876),n=a(14232),i=a(42959),l=a(85037),s=a(71024),o=a(23774),c=a(26558),d=a(30380),u=a(98477),h=a(16603),p=a(79813),m=a(98249),_=a(7863),f=a(87975),v=a(84389),y=a(29512),g=a.n(y);function b(e){if(null==e||Number.isNaN(Number(e)))return"â";let t=Math.round(10*Number(e))/10;return .05>Math.abs(t-Math.round(t))?String(Math.round(t)):t.toFixed(1)}function w(e,t,a,n){if(!e?.length)return(0,r.jsx)("p",{className:g().relEmpty,children:"None"});let i="predecessor"===t?g().relPillPred:g().relPillSucc,l="predecessor"===t?"DRIVING":"DRIVEN",s="predecessor"===t?g().drivingBadge:g().drivenBadge;return(0,r.jsx)("ul",{className:g().relList,children:e.map(([t,o])=>{let c=a?.has(t)||null==a&&1===e.length,d=(0,r.jsxs)(r.Fragment,{children:[t," (",o,")",c?(0,r.jsx)("span",{className:s,children:l}):null]}),u=`${g().relPill} ${i}${c?` ${g().relPillMarked}`:e.length>1?` ${g().relPillMuted}`:""}`;return(0,r.jsx)("li",{children:n?(0,r.jsx)("button",{type:"button",className:u,onClick:e=>{e.stopPropagation(),n(t)},children:d}):(0,r.jsx)("span",{className:u,children:d})},`${t}-${o}`)})})}let x=({detail:e,wbsNameByCode:t,drivingPartnerIds:a,clientX:i,clientY:l,alignRightToX:s,alignLeftToX:o,onClose:c,onNavigateToActivity:d,onViewTraceLogic:y,onAddComment:x,spreadsheetColumnKeys:S,spreadsheetExtras:C})=>
1{let j=(0,n.useRef)(null),k=(0,n.useRef)(null),[N,L]=(0,n.useState)(!1),[D,R]=(0,n.useState)(!1),[M,A]=(0,n.useState)(null),P=(0,n.useCallback)(e=>(0,h.jh)(e,i,l,s,o),[o,s,i,l]),{headerDragProps:$,reclampToViewport:T}=(0,h.$_)({panelRef:j,placementKey:e.activity_id,placementDeps:[i,l,s,o],computePosition:P});(0,n.useLayoutEffect)(()=>{T()},[T,N]),(0,n.useEffect)(()=>{let e=e=>{if("Escape"===e.key){if(D)return void R(!1);c()}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[D,c]);let E=m.qi[e.p6_status_code]||e.status,I=(0,m.Il)({isCritical:e.is_critical,isCriticalAdjacent:!1}),B=(0,m.i1)(e.total_float_days,e.is_critical),G="criticalOrNegative"===B?g().floatCritical:"nearCritical"===B?g().floatPositive:"",F=m.ly[e.activity_type]||(0,m.NP)(e.activity_type),O=(0,p.eo)(e),H=e.activity_codes?.find(e=>/trade|stl|discipline/i.test(e.actv_code_type)),V=H?.short_name||H?.actv_code_name||e.discipline||null,W=(0,n.useMemo)(()=>{var t;return[{label:"Status",value:E},{label:"Type",value:F},{label:"Forecast start",value:(0,m.D6)(e.forecast_start_date)},{label:"Forecast finish",value:(0,m.D6)(e.forecast_finish_date)},{label:"Total float",value:null==e.total_float_days||Number.isNaN(Number(e.total_float_days))?"â":`${b(e.total_float_days)} days`,valueClass:G},{label:"% Complete",value:(t=e.percent_complete,`${Math.round(100*t)}%`)},{label:"Duration",value:`${b(e.original_duration_days)} days orig \xb7 ${b(e.remaining_duration_days)} days remain`,wide:!0},{label:"Actual start",value:(0,m.D6)(e.actual_start_date)},{label:"Actual finish",value:(0,m.D6)(e.actual_finish_date)},..."â"!==O?[{label:"Responsible",value:O}]:[],...V?[{label:"Trade",value:V}]:[]]},[e.actual_finish_date,e.actual_start_date,e.forecast_finish_date,e.forecast_start_date,e.original_duration_days,e.percent_complete,e.remaining_duration_days,e.total_float_days,G,O,E,V,F]),z=e=>{R(!1),A(e?"Copied":"Copy failed"),window.setTimeout(()=>A(null),1600)},X=async()=>{z(await (0,f.eM)((0,f.QF)(e)))},U=async()=>{z(await (0,f.eM)((0,f.RA)(e,S,C)))};(0,n.useEffect)(()=>{if(!D)return;let e=e=>{k.current?.contains(e.target)||R(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[D]);let Y=(0,r.jsxs)("div",{ref:j,className:g().popover,"data-activity-popover":"",role:"dialog","aria-label":"Activity detail panel",style:{left:i,top:l},onMouseDown:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:g().header,title:"Drag header to move",...$,children:[(0,r.jsxs)("div",{className:g().headerText,children:[(0,r.jsxs)("div",{className:g().headerIdRow,children:[(0,r.jsx)("span",{className:g().headerId,children:e.activity_id}),I?(0,r.jsx)(_.n,{kind:I}):null]}),(0,r.jsx)("h2",{children:e.activity_description})]}),(0,r.jsx)("button",{type:"button",className:g().closeBtn,"aria-label":"Close",onClick:c,children:"\xd7"})]}),(0,r.jsxs)("div",{className:g().body,children:[(0,r.jsx)("div",{className:g().summaryGrid,children:W.map(e=>(0,r.jsxs)("div",{className:e.wide?g().summaryWide:void 0,children:[(0,r.jsx)("div",{className:g().summaryLabel,children:e.label}),(0,r.jsx)("div",{className:`${g().summaryValue}${e.valueClass?` ${e.valueClass}`:""}`,children:e.value})]},e.label))}),(0,r.jsxs)("div",{className:g().relGrid,children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:g().sectionTitle,children:[(0,r.jsx)("span",{className:`${g().relDot} ${g().relDotPredecessor}`}),"Predecessors"]}),w(e.predecessors,"predecessor",a,d)]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:g().sectionTitle,children:[(0,r.jsx)("span",{className:`${g().relDot} ${g().relDotSuccessor}`}),"Successors"]}),w(e.successors,"successor",a,d)]})]}),N?(0,r.jsxs)("dl",{className:g().dl,children:[(0,r.jsx)("dt",{children:"Phase"}),(0,r.jsxs)("dd",{children:[e.phase_code," â ",e.phase_name]}),(0,r.jsx)("dt",{children:"WBS"}),(0,r.jsx)("dd",{children:(0,m.bY)(e,t)}),(0,r.jsx)("dt",{children:v.nB.targetStart}),(0,r.jsx)("dd",{children:(0,m.D6)(e.planned_start_date)}
1),(0,r.jsx)("dt",{children:v.nB.targetFinish}),(0,r.jsx)("dd",{children:(0,m.D6)(e.planned_finish_date)}),(0,r.jsx)("dt",{children:v.nB.earlyStart}),(0,r.jsx)("dd",{children:(0,m.D6)(e.early_start_date)}),(0,r.jsx)("dt",{children:v.nB.earlyFinish}),(0,r.jsx)("dd",{children:(0,m.D6)(e.early_finish_date)}),(0,r.jsx)("dt",{children:v.nB.lateStart}),(0,r.jsx)("dd",{children:(0,m.D6)(e.late_start_date)}),(0,r.jsx)("dt",{children:v.nB.lateFinish}),(0,r.jsx)("dd",{children:(0,m.D6)(e.late_finish_date)}),(0,r.jsx)("dt",{children:"Free float"}),(0,r.jsxs)("dd",{children:[b(e.free_float_days)," days"]}),(e.activity_codes?.length??0)>0?e.activity_codes?.map(e=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsx)("dt",{children:e.actv_code_type}),(0,r.jsx)("dd",{children:e.short_name||e.actv_code_name})]},`${e.actv_code_type}-${e.actv_code_name}`)):null,(e.task_udfs?.length??0)>0?e.task_udfs?.map(e=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsx)("dt",{children:e.label}),(0,r.jsx)("dd",{children:null==e.value||""===e.value?"â":String(e.value)})]},e.label)):null]}):null]}),(0,r.jsx)("button",{type:"button",className:g().showMoreBtn,onClick:()=>L(e=>!e),children:N?"Show Less â´":"Show More Details â¾"}),(0,r.jsxs)("div",{className:g().footer,children:[y?(0,r.jsx)("button",{type:"button",className:g().footerBtn,onClick:()=>y(e.activity_id),children:"Trace Logic"}):null,x?(0,r.jsx)("button",{type:"button",className:g().footerBtn,onClick:()=>x(e.activity_id),children:"Comment"}):null,(0,r.jsxs)("div",{className:g().copySplit,ref:k,children:[(0,r.jsx)("button",{type:"button",className:g().footerBtn,onClick:()=>void X(),children:M??"Copy"}),(0,r.jsx)("button",{type:"button",className:`${g().footerBtn} ${g().copySplitChevron}`,"aria-label":"Copy options","aria-haspopup":"menu","aria-expanded":D,onClick:()=>R(e=>!e),children:"â¾"}),D?(0,r.jsxs)("ul",{className:g().copyMenu,role:"menu","aria-label":"Copy options",children:[(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"menuitem",className:g().copyMenuItem,onClick:()=>void X(),children:[(0,r.jsx)("span",{className:g().copyMenuTitle,children:"Copy as Text"}),(0,r.jsx)("span",{className:g().copyMenuSub,children:"One-line summary for chat or email"})]})}),(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"menuitem",className:g().copyMenuItem,onClick:()=>void U(),children:[(0,r.jsx)("span",{className:g().copyMenuTitle,children:"Copy for Spreadsheet"}),(0,r.jsx)("span",{className:g().copyMenuSub,children:"Visible columns, pastes as a row in Excel"})]})})]}):null]})]})]});return"u"<typeof document?Y:(0,u.createPortal)(Y,document.body)};var S=a(90055),C=a.n(S);let j=({value:e,editable:t,onSave:a})=>{let i=(0,n.useRef)(null),[l,s]=(0,n.useState)(!1),o=(0,m.Nz)(e),c=o.length>0;return((0,n.useEffect)(()=>{if(l&&i.current){i.current.focus();try{i.current.showPicker()}catch{}}},[l]),t)?c||l?(0,r.jsx)("input",{ref:i,type:"date",className:C().dateEdit,value:o,title:c?(0,m.D6)(e):"Set actual date",onClick:e=>e.stopPropagation(),onBlur:()=>{c||s(!1)},onChange:e=>{let t=e.target.value;t!==o&&(a(t||null),t&&s(!0))}}):(0,r.jsx)("button",{type:"button",className:C().actualNaBtn,title:"Set actual date",onClick:e=>{e.stopPropagation(),s(!0)},children:"N/A"}):(0,r.jsx)(r.Fragment,{children:(0,m.SE)(e)})};var k=a(54642);(0,k.pk)(null);let N={id:"ID",desc:"Description",type:"Type",status:"Status",pct:"% Complete",start:v.wg.forecastStart,finish:v.wg.forecastFinish,actualStart:v.wg.actualStart,actualFinish:v.wg.actualFinish,totalFloat:"Total float",critical:"Critical",primaryResource:"Primary Resource"},L={id:"ID",desc:"Activity",type:"Type",status:"Status",pct:"% Comp",start:"Start",finish:"Finish",actualStart:"Act Start",actualFinish:"Act Finish",totalFloat:"Float",critical:"Crit",primaryResource:"Resource"};function D(e,t){return t.reduce((t,a)=>t+(0,k.zt)(a,e),0)}function R(e,t){let a=0,r={};for(let n of t)r[n]=a,a+=(0,k.zt)(n,e);return r}let M=({columnKey:e,activityCodeTypeName:t,activityId:a,rowIndent:n,detail:i,descText:l,pct:s,p6Code:o,statusLabel:c,barModeStart:d,barModeFinish:u,actualStart:h,actualFinish:_,editable:f,isLastFixed:v,cellStyle:y,cellClassName:g,pathBadge:b=null,commentCount:w=0,onCommentClick:x,onCommentContextMenu:S,onSave:L})=>{let D=`${C().fixedCol}${v?` ${C().lastFixedCol}`:""}${g?` ${g}`:""}`,R=(0,m.NP)(i?.activity_type),M=(0,m.D6)(d),A=(0,m.D6)(u),P=(0,m.D2)(i?.total_float_days),$=(0,m.Z)(i?.is_critical),T=(0,p.eo)(i),E=null!=s?`${s} %`:"â",I=(0,m.D6)(h),B=(0,m.D6)(_),G=(e,t)=>S?{"data-gantt-comment-zone":"",onContextMenu:a=>S(a,{text:e,label:t})}:{};switch(e){case"id":return(0,r.jsx)("td",{className:`${D} ${C().idCell}`,style:{...y,paddingLeft:8+n*m.tM},title:b?`${a} \xb7 ${b}`:a.length>m.kl?a:void 0,...G(a,N.id),children:a});
1case"desc":return(0,r.jsx)("td",{className:`${D} ${C().descCell}`,style:y,title:l,...G(l,N.desc),children:(0,r.jsxs)("div",{className:C().descCellInner,children:[(0,r.jsx)("span",{className:C().descText,children:l}),w>0?(0,r.jsx)("button",{type:"button",className:C().commentChip,title:1===w?"1 comment thread on this row":`${w} comment threads on this row`,"aria-label":1===w?"1 comment thread on this row":`${w} comment threads on this row`,onClick:e=>{e.stopPropagation(),x?.(e)},children:w}):null]})});case"type":return(0,r.jsx)("td",{className:D,style:y,...G(R,N.type),children:R});case"status":return(0,r.jsx)("td",{className:D,style:y,...G(c,N.status),children:f?(0,r.jsxs)("div",{className:C().statusEditWrap,children:[(0,r.jsx)("select",{className:C().statusEdit,value:o,onClick:e=>e.stopPropagation(),onChange:e=>{L(a,{p6_status_code:e.target.value})},children:m.xX.map(e=>(0,r.jsx)("option",{value:e,children:m.qi[e]||e},e))}),(0,r.jsx)("span",{className:C().statusChevron,"aria-hidden":"true",children:"â¾"})]}):c});case"pct":return(0,r.jsx)("td",{className:`${D} ${C().pctCell}`,style:y,...G(E,N.pct),children:(0,r.jsxs)("div",{className:C().pctCellInner,children:[f&&null!=s?(0,r.jsx)("input",{type:"number",min:0,max:100,className:C().pctEdit,defaultValue:s,onClick:e=>e.stopPropagation(),onBlur:e=>{let t=Math.max(0,Math.min(100,Math.round(Number(e.target.value)||0)));t!==s&&L(a,{percent_complete:t})}},`${a}-${s}`):(0,r.jsx)("span",{children:null!=s?s:"â"}),null!=s?(0,r.jsx)("span",{className:C().pctSuffix,children:"%"}):null]})});case"start":return(0,r.jsx)("td",{className:`${D} ${C().dateCell}`,style:y,...G(M,N.start),children:M});case"finish":return(0,r.jsx)("td",{className:`${D} ${C().dateCell}`,style:y,...G(A,N.finish),children:A});case"actualStart":return(0,r.jsx)("td",{className:D,style:y,...G(I,N.actualStart),children:(0,r.jsx)(j,{value:h,editable:f,onSave:e=>{L(a,{actual_start_date:e})}})});case"actualFinish":return(0,r.jsx)("td",{className:D,style:y,...G(B,N.actualFinish),children:(0,r.jsx)(j,{value:_,editable:f,onSave:e=>{L(a,{actual_finish_date:e})}})});case"totalFloat":{let e=(0,m.i1)(i?.total_float_days,i?.is_critical),t="criticalOrNegative"===e?C().floatZeroOrNegative:"nearCritical"===e?C().floatPositive:"slack"===e?C().floatSlack:"";return(0,r.jsx)("td",{className:`${D}${t?` ${t}`:""}`,style:y,...G(P,N.totalFloat),children:P})}case"critical":return(0,r.jsx)("td",{className:D,style:y,...G($,N.critical),children:$});case"primaryResource":return(0,r.jsx)("td",{className:D,style:y,...G(T,N.primaryResource),children:T});default:{let a=(0,k.pc)(e);if(a){let e=t??a,n=(0,p.s4)(i,e);return(0,r.jsx)("td",{className:D,style:y,...G(n,e),children:n})}let n=N[e]??e;return(0,r.jsx)("td",{className:D,style:y,...G(n,n),children:n})}}};var A=a(66322),P=a(26468),$=a(84952),T=a(47103),E=a(85875),I=a(75248),B=a(67866),G=a(77660),F=a(40698),O=a(13911),H=a(43078),V=a(15129),W=a(20354),z=a(99992),X=a(47837),U=a(69190),Y=a(65960),K=a(68264),q=a(76209),Q=a(6716),Z=a.n(Q);let J="Updating schedule status dateâ¦",ee=({statusDate:e,disabled:t=!1,busy:a=!1,label:i=q.F0,showTodayShortcut:l=!0,variant:s="default",className:o,onRequestUpdate:c})=>{let d=(0,n.useId)(),u=(0,n.useRef)(null),[h,p]=(0,n.useState)(e??""),[m,_]=(0,n.useState)(!1),[f,v]=(0,n.useState)(!1),y=a||f;if((0,n.useEffect)(()=>{p(e??"")},[e]),(0,n.useEffect)(()=>{a||v(!1)},[a]),(0,n.useEffect)(()=>{if(!m)return;let t=t=>{!y&&(u.current?.contains(t.target)||(_(!1),p(e??"")))},a=t=>{"Escape"!==t.key||y||(_(!1),p(e??""))};return document.addEventListener("mousedown",t),document.addEventListener("keydown",a),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",a)}},[y,m,e]),!e)return null;let g=t||y,b=(0,q.Qe)(),w=h!==e,x=!!(h&&(0,q.jT)(h)),S=(0,Y.Hr)(h)??(0,q.XD)(h)??h,C=t=>{p(t),t&&t!==e&&(0,q.jT)(t)&&(v(!0),Promise.resolve(c(t)).then(t=>{!1===t?p(e??""):_(!1)}).finally(()=>{v(!1)}))},j=()=>{!y&&w&&x&&C(h)},k=y?"Applyingâ¦":"Apply";return"toolbar"===s?(0,r.jsxs)("div",{ref:u,className:`${Z().control} ${Z().controlToolbar}${m?` ${Z().controlToolbarOpen}`:""}${y?` ${Z().controlApplying}`:""}${o?` ${o}`:""}`,"data-ui":"sv-data-date",children:[(0,r.jsxs)("button",{type:"button",className:Z().toolbarTrigger,disabled:g,"aria-haspopup":"dialog","aria-expanded":m,"aria-busy":y,"aria-label":q.F0,title:y?J:(0,q.I8)(),onClick:()=>{y||(p(e),_(e=>!e))},children:[y?(0,r.jsx)("span",{className:Z().spinner,"aria-hidden":"true"}):null,(0,r.jsx)("span",{className:Z().toolbarDataDateLabel,children:"Data Date\xa0"}),(0,r.jsx)("span",{className:Z().toolbarValue,children:S}),(0,r.jsx)("span",{className:Z().toolbarCaret,"aria-hidden":"true",children:"â¼"})]}),m?(0,r.jsxs)("div",{className:Z().popup,role:"dialog","aria-label":q.F0,"aria-busy":y,children:[(0,r.jsx)("div",{className:Z().popupEyebrow,children:"Schedule Status Date"}),(0,r.jsxs)("div",{className:Z().popupInputRow,children:[(0,r.jsx)("input",{id:d,type:"date",className:Z().popupInput,value:h,disabled:g,"aria-label":q.F0,"aria-invalid":w&&!x,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),j())}}),(0,r.jsx)("span",{className:Z().popupCalendarIcon,"aria-hidden":"true",title:"Show date picker",children:(0,r.jsx)(K.A,{size:14,strokeWidth:2})})]}),y?(0,r.jsxs)("div",{className:Z().popupLoading,role:"status","aria-live":"polite",children:[(0,r.jsx)("p",{className:Z().popupLoadingText,children:J}),(0,r.jsx)("div",{className:Z().popupLoadingTrack,"aria-hidden":"true",children:(0,r.jsx)("div",{className:Z().popupLoadingBar})})]}):(0,r.jsx)("p",{className:Z().popupHelp,children:(0,q.I8)()}),(0,r.jsx)("div",{className:Z().popupActions,children:(0,r.jsxs)("button",{type:"button",className:`${Z().popupApply}${y?` ${Z().popupApplyBusy}`:""}`,disabled:g||!w||!x,"aria-busy":y,onClick:()=>j(),children:[y?(0,r.jsx)("span",{className:Z().spinner,"aria-hidden":"true"}):null,k]})})]}):null]}):(0,r.jsxs)("div",{className:`${Z().control} ${Z().controlDefault} ${w?Z().controlDirty:""}${o?` ${o}`:""}`,title:(0,q.I8)(),"data-ui":"sv-data-date",children:[(0,r.jsx)("div",{className:Z().field,children:(0,r.jsx)("label",{htmlFor:d,className:Z().label,children:i})}),(0,r.jsxs)("div",{className:Z().inputWrap,children:[(0,r.jsx)("input",{id:d,type:"date",className:`${Z().input} ${w?Z().inputDirty:""}`,value:h,disabled:g,"aria-label":q.F0,"aria-invalid":w&&!x,onChange:e=>p(e.target.value),onBlur:()=>j(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),j())}}),(0,r.jsxs)("button",{type:"button",className:`${Z().applyIconBtn} ${w||y?"":Z().applyIconBtnHidden}
1`,"aria-label":k,title:"Apply status date",disabled:g||!w||!x,"aria-busy":y,tabIndex:w?0:-1,onClick:()=>j(),children:[y?(0,r.jsx)("span",{className:Z().spinner,"aria-hidden":"true"}):null,k]})]}),l&&e<b&&!w?(0,r.jsx)("button",{type:"button",className:Z().linkBtn,disabled:g,onClick:()=>C(b),children:"Today"}):null]})};var et=a(4558),ea=a(94220),er=a(66770),en=a(50692),ei=a(36386),el=a(18091),es=a(5225),eo=a(63168),ec=a(65227),ed=a(53007),eu=a(65886),eh=a(75893),ep=a(57151),em=a(4519),e_=a(34679),ef=a(36628);let ev=["[data-schedule-health-overlay]","[data-trace-logic-overlay]","[data-trace-logic-legend]","[data-trace-logic-menu]","[data-schedule-comments-panel]","[data-schedule-comments-popover]","[data-schedule-comments-menu]"];function ey(e,t){return e?.activity_description?e.activity_description:t.includes(" â ")&&t.split(" â ").slice(1).join(" â ")||t}function eg(e,t,a,r=!1){return(0,m.Yw)((0,k.zt)(e,t),a[e],r)}let eb=({view:e,sourceFormat:t,projectId:a,sessionId:u,editable:h,localEditsOnly:p=!1,barDateMode:_,onBarDateModeChange:y,onActivityEdit:g,onActivityPatched:b,onEditError:w,filters:S,onFiltersChange:j,savedViews:K=[],savedViewsLoading:q=!1,onSaveView:Q,onDeleteSavedView:Z,onLayoutChange:J,scheduleHealthOverlay:eb,traceLogicOverlay:ew,traceLogicPanelOpen:ex=!1,traceLayoutMode:eS="right",traceFocusActivityId:eC="",onTraceFocusActivityChange:ej,onViewTraceLogic:ek,onSelectedActivityIdChange:eN,onViewStatsChange:eL,toolbarTraceLogic:eD,toolbarHealthCheck:eR,toolbarStatusDate:eM,onCompareRequest:eA,onWarningsReopenChange:eP,belowToolbar:e$})=>{let eT=h??"xer"===t,eE=(0,er.U)(),eI=(0,en.Si)(),[eB,eG]=(0,n.useState)(!0),[eF,eO]=(0,n.useState)(ed.mW),eH=S??eF,eV=(0,n.useCallback)(e=>{void 0===S&&eO(e),j?.(e)},[S,j]),[eW,ez]=(0,n.useState)(null),{applied:eX,isPending:eU,commitDateFilters:eY}=(0,ea.M)(eH),{showFilters:eK,toggleShowFilters:eq,filtersRootRef:eQ,activeTab:eZ,selectFilterTab:eJ}=(0,eo.Q)({commitDateFilters:eY,getDateDraft:()=>({startOnOrAfter:eH.startOnOrAfter,finishOnOrBefore:eH.finishOnOrBefore})}),e0=(0,n.useDeferredValue)(eX),e1=(0,n.useMemo)(()=>null===eW?e0:{...e0,searchText:eW},[eW,e0]),e2=(0,n.useCallback)(e=>{ez(null),eV(e)},[eV]),e5=(0,n.useCallback)(()=>{eV((0,z.T)(eH)),eY(z.R)}
1,[eY,eH]),[e6,e3]=(0,n.useState)(null),e4=(0,n.useCallback)((e,t,a,r)=>{e.stopPropagation(),eE?.closeRowCommentMenu(),eE?.openAnchorPopover({anchorType:t,anchorId:a,label:r})},[eE]),e8=(0,n.useCallback)((t,a,r,n,i)=>{if(t.preventDefault(),t.stopPropagation(),"activity"===a){let a=!!e.activity_details[r],l=!!eE;eE?.closeAnchorPopover(),e3({activityId:r,x:t.clientX,y:t.clientY,hasComments:!!l&&(eE.getThreadCount("activity",r)??0)>0,detailsAvailable:a,cellText:i?.text??n,cellLabel:i?.label??null});return}eE?.closeAnchorPopover(),eE?.openRowCommentMenu(t,{anchorType:a,anchorId:r,label:n})},[eE,e.activity_details]),{barDateMode:e7,setBarDateMode:e9}=(0,s.I)(_,y),{collapsedWbs:te,setCollapsedWbs:tt,lockedWbs:ta,toggleWbsRowLock:tr,wbsOutlineLevel:tn,applyWbsOutlineLevel:ti,collapseAllLocked:tl,setCollapseAllLocked:ts}=(0,c.q)({rows:e.rows,resetKey:e.schedule_id}),[to,tc]=(0,n.useState)(()=>new Set);(0,n.useEffect)(()=>{tc(new Set)},[e.schedule_id]);let[td,tu]=(0,n.useState)(null);(0,n.useEffect)(()=>{eN?.(td)},[eN,td]);let{coachMarkOpen:th,maybeShowCoachOnTrace:tp,dismissCoachMark:tm}=(0,O.i)(),{logicArrowsEnabled:t_,setLogicArrowsEnabled:tf}=(0,B.L)(),{dayOffsetEnabled:tv,setDayOffsetEnabled:ty}=(0,ef.i)(),[tg,tb]=(0,n.useState)(null),[tw,tx]=(0,n.useState)(0),tS=(0,l.F)(),tC=(0,n.useRef)(null),tj=(0,n.useRef)(null),tk=(0,n.useRef)(null),tN=(0,n.useRef)(0),tL=(0,n.useRef)(null),tD=(0,n.useRef)(!1),tR=(0,n.useRef)(0),tM=(0,n.useRef)(!1),[tA,tP]=(0,n.useState)(null),t$=(0,n.useMemo)(()=>(0,eh.FZ)(e.metadata),[e.metadata]),{widths:tT,startResize:tE,ensureMinIdWidth:tI,activeColumns:tB,columnOrder:tG,pickerColumnKeys:tF,visible:tO,dragColKey:tH,setDragColKey:tV,dragOverColKey:tW,setDragOverColKey:tz,moveColumn:tX,applyLayout:tU,captureLayoutColumns:tY,hideColumn:tK,showColumn:tq}=function(e){let t=(0,n.useMemo)(()=>(0,k.ov)(e),[e]),[a,r]=(0,n.useState)(()=>
1(0,k.pk)(e)),[i,l]=(0,n.useState)(null),[s,o]=(0,n.useState)(()=>[...t]),[c,d]=(0,n.useState)(()=>(0,k.WK)(e)),[u,h]=(0,n.useState)(!1),[p,m]=(0,n.useState)(()=>(0,k.WK)(e)),[_,f]=(0,n.useState)(null),[v,y]=(0,n.useState)(null);(0,n.useEffect)(()=>{o(e=>{let a=new Set(t),r=e.filter(e=>a.has(e));for(let e of t)r.includes(e)||r.push(e);return r}),d(a=>{let r=(0,k.WK)(e),n={...r,...a};for(let e of t)e in n||(n[e]=r[e]??!1);return n}),r(t=>({...(0,k.pk)(e),...t}))},[t,e]);let g=(0,n.useMemo)(()=>s.filter(e=>c[e]),[s,c]),b=(0,n.useMemo)(()=>R(a,g),[a,g]),w=(0,n.useMemo)(()=>D(a,g),[a,g]),x=(0,n.useCallback)(e=>{r(t=>(0,k.zt)("id",t)>=e?t:{...t,id:e})},[]),S=(0,n.useCallback)((e,t,n)=>{let i=n??(0,k.zt)(e,a);l(e);let s=a=>{let n=Math.max((0,k.b6)(e),i+(a.clientX-t));r(t=>({...t,[e]:n}))},o=()=>{l(null),document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",s),document.addEventListener("mouseup",o)},[a]),C=(0,n.useCallback)(()=>{m({...c}),h(!0)},[c]),j=(0,n.useCallback)(()=>{h(!1)},[]),N=(0,n.useCallback)(()=>{u?j():C()},[j,C,u]),L=(0,n.useCallback)((e,t)=>{m(a=>({...a,[e]:t}))},[]),M=(0,n.useCallback)(()=>{let e={...p};t.some(t=>e[t])||(e.id=!0),d(e),h(!1)},[t,p]),A=(0,n.useCallback)(e=>{d(a=>{let r={...a,[e]:!1};return t.some(e=>r[e])||(r.id=!0),r})},[t]),P=(0,n.useCallback)(e=>{d(t=>({...t,[e]:!0}))},[]),$=(0,n.useCallback)((e,t)=>{e!==t&&o(a=>{let r=a.indexOf(e),n=a.indexOf(t);if(r<0||n<0)return a;let i=[...a];return i.splice(r,1),i.splice(n,0,e),i})},[]),T=(0,n.useCallback)(t=>{let a=(0,k.S4)(t.columns,e);o(a.order),d(a.visible),r(a.widths)},[e]),E=(0,n.useCallback)(()=>({order:[...s],visible:{...c},widths:{...a}}),[s,c,a]);return{widths:a,stickyLefts:b,fixedColsWidth:w,resizing:i,startResize:S,ensureMinIdWidth:x,activeColumns:g,columnOrder:s,pickerColumnKeys:t,visible:c,pickerOpen:u,pickerDraft:p,togglePicker:N,closePicker:j,setPickerDraftValue:L,applyPicker:M,dragColKey:_,setDragColKey:f,dragOverColKey:v,setDragOverColKey:y,moveColumn:$,applyLayout:T,captureLayoutColumns:E,hideColumn:A,showColumn:P}}(t$),{columnPresetId:tQ,setColumnPresetId:tZ,applyColumnPresetById:tJ,handleBarDateModeChange:t0,handleHideColumn:t1,handleShowColumn:t2,handleMoveColumn:t5}=(0,d.y)({viewer:"primary",filterCatalog:t$,initialPresetId:()=>(0,ep.ur)("primary",null,em.ye,{order:(0,k.ov)(null),visible:(0,k.WK)(null)}),applyLayout:tU,captureLayoutColumns:tY,setBarDateMode:e9,hideColumn:tK,showColumn:tq,moveColumn:tX}),t6=(0,n.useMemo)(()=>(0,k.wQ)(t$,{...N,start:(0,v.rt)(e7),finish:(0,v.QY)(e7)}),[e7,t$]),t3=(0,n.useMemo)(()=>(0,k.wQ)(t$,{...L,start:(0,v.rt)(e7),finish:(0,v.QY)(e7)}),[e7,t$]),t4=(0,n.useMemo)(()=>{let e={};for(let t of t$?.activity_code_types??[])e[(0,k.II)(t.actv_code_type,t.actv_code_type_id)]=t.actv_code_type;return e},[t$]),t8=(0,n.useMemo)(()=>(0,m.rD)(e.rows),[e.rows]),t7=(0,n.useMemo)(()=>(0,m.HK)(t8),[t8]);(0,n.useEffect)(()=>{tI(t7)},[tI,t7]);let t9=(0,n.useMemo)(()=>({...tT,id:Math.max((0,k.zt)("id",tT),t7)}),[tT,t7]),ae=(0,n.useMemo)(()=>R(t9,tB),[t9,tB]),at=(0,n.useMemo)(()=>D(t9,tB),[t9,tB]),aa=(0,n.useMemo)(()=>(0,m.Qn)(e.rows),[e.rows]),ar=(0,n.useMemo)(()=>(0,m.Vz)(e.rows),[e.rows]),an=(0,n.useMemo)(()=>(0,e_.Jb)(e.metadata?.status_date,e.week_columns,at),[at,e.metadata?.status_date,e.week_columns]),ai=(0,n.useMemo)(()=>(0,em.XE)(e,e7),[e,e7]),al=(0,n.useMemo)(()=>(0,m.gl)(e),[e]),as=(0,n.useMemo)(()=>(0,m.zU)(e.rows),[e.rows]),ao=(0,n.useMemo)(()=>(0,m.mu)(e.wbs_nodes),[e.wbs_nodes]);(0,n.useEffect)(()=>{if(!eE)return;let t=new Map;for(let a of e.rows)"wbs_header"===a.row_type&&a.wbs_id&&t.set(a.wbs_id,a.label);return eE.registerAnchorLabelResolver((a,r)=>{if("schedule"===a)return"Schedule";if("wbs"===a)return t.get(r)??r;let n=e.activity_details[r];if(n?.activity_description)return n.activity_description;for(let t of e.rows)if("activity"===t.row_type&&t.activity_id===r)return t.label||r;return r}),()=>eE.registerAnchorLabelResolver(null)},[eE,e.activity_details,e.rows]);let ac=(0,n.useMemo)(()=>(0,ed.AM)(e.rows,e.activity_details,ai,e1,e7),[e.rows,e.activity_details,ai,e1,e7]),ad=(0,ed.Uy)(e1),au=(0,ed.RT)(e1),{tooltip:ah,bindTip:ap}=(0,et.K)(),am=(0,Y.Hr)(e.metadata?.status_date),a_=(0,n.useMemo)(()=>(0,m.Ky)(e.week_columns),[e.week_columns]),af=(0,n.useMemo)(()=>0===to.size?ac:new Set([...Array.from(ac),...Array.from(to)]),[ac,to]),av=(0,n.useMemo)(()=>(0,m.ZE)(te,ad,tl,as,af),[te,ad,tl,as,af]),ay=(0,n.useMemo)(()=>(0,m.EU)(e.rows,av),[e.rows,av]),ag=(0,n.useMemo)(()=>(0,ed.SC)(e.rows,ay,af,ad,as),[e.rows,ay,af,ad,as]),ab=(0,n.useMemo)(()=>ay.map((e,t)=>e&&ag[t]),[ay,ag]),aw=(0,n.useMemo)(()=>(0,ed.JF)(e.rows,ab,ai,e1,e.activity_details),[e.rows,e.activity_details,ab,ai,e1]),ax=(0,n.useMemo)(()=>(0,ed.Z1)(e.rows,ab),[e.rows,ab]);(0,n.useEffect)(()=>{eL?.({visibleActivityCount:ax,weekCount:e.week_columns.length})},[eL,ax,e.week_columns.length]);let aS=(0,n.useMemo)(()=>{let t=new Map;return e.rows.forEach((e,a)=>{t.set(e,a)}),t},[e.rows]),aC=(0,n.useMemo)(()=>{let e=[];for(let t of aw){let a=aS.get(t);null!=a&&ab[a]&&e.push({row:t,index:a})}return e},[ab,aw,aS]),aj=aC.length>=ec.ee,ak=(0,ec.tX)(tS,aC.length,aj),aN=aj?aC.slice(ak.start,ak.end):aC,aL=tB.length+e.week_columns.length,aD=(0,n.useCallback)(()=>(0,eu.XR)({viewer:"primary",columnPresetId:tQ,barDateMode:e7,popoverEnabled:eB,filters:eH,columns:tY()}),[e7,tY,tQ,eH,eB]);(0,n.useEffect)(()=>{J?.(aD())},[aD,J]);let aR=(0,n.useCallback)(e=>{let t=(0,eu.n9)(e)??e,a=(0,ed.Hh)(t.filters);tZ((0,ep.oO)("primary",t$,t)),e9(t.barDateMode),eG(t.popoverEnabled),eV(a),eY({startOnOrAfter:a.startOnOrAfter,finishOnOrBefore:a.finishOnOrBefore}),tU(t)},[tU,eY,t$,e9,tZ,eV]),aM=(0,n.useMemo)(()=>(0,eu.Bg)(K,"primary"),[K]),aA=(0,n.useMemo)(()=>{let e=new Set;for(let t of aC){let a=t.row;"activity"===a.row_type&&a.activity_id&&e.add(a.activity_id)}return e},[aC]),aP=(0,n.useMemo)(()=>(0,m.FS)(e.activity_details,td),[td,e.activity_details]),{renderedEdges:a$,tableWidth:aT,tableHeight:aE,clipX:aI,clipY:aB}=function({enabled:e,selectedId:t,edges:a,visibleActivityIds:r,visibleRowEntries:i,activityDetails:l,barDateMode:s,dayOffsetEnabled:o,barsByActivity:c,weekColumns:d,tableRef:u,scrollRef:h,fixedColsWidth:p}
1){let[m,_]=(0,n.useState)(G.RP),[f,v]=(0,n.useState)({width:0,height:0}),[y,g]=(0,n.useState)(()=>new Map),[b,w]=(0,n.useState)(0),[x,S]=(0,n.useState)({left:0,top:0});(0,n.useLayoutEffect)(()=>{let a=u.current;if(!a)return;let r=()=>{_(a.tHead?.offsetHeight??G.RP),v({width:a.offsetWidth,height:a.offsetHeight}),e&&t?g((0,G.PX)(a)):g(new Map)};r();let n=new ResizeObserver(r);return n.observe(a),()=>{n.disconnect()}},[e,p,t,u,i,d.length]),(0,n.useLayoutEffect)(()=>{let a=h.current;if(!a||!e||!t)return void S({left:0,top:0});let r=()=>{w(e=>e+1),S({left:a.scrollLeft,top:a.scrollTop})};return r(),a.addEventListener("scroll",r,{passive:!0}),()=>{a.removeEventListener("scroll",r)}},[e,h,t]),(0,n.useLayoutEffect)(()=>{let a=u.current;a&&e&&t&&g((0,G.PX)(a))},[e,b,t,u,i]);let C=(0,n.useMemo)(()=>{let e=(0,G.Jr)(i,m);return 0===y.size?e:(0,G.O6)(e,y)},[y,m,i]),j=(0,n.useMemo)(()=>{if(!e||!t)return[];let n={rowMetricsByActivityId:C,barsByActivity:c,activityDetails:l,barDateMode:s,dayOffsetEnabled:o,weekColumns:d,fixedColsWidth:p},i=(0,F.sS)(a,t,r),u=[];for(let e of i){let a=(0,G.si)({edge:e,...n});if(!a)continue;let{path:r,labelX:i,labelY:s,labelAnchor:o}=(0,F.P6)(a);u.push({edge:e,path:r,label:(0,F.YP)(e),labelX:i,labelY:s,labelAnchor:o,stroke:(0,F.$C)(e,t,l),dashArray:(0,F.aQ)(e.relationship_type)})}return u},[l,s,c,o,a,e,p,C,t,r,d]),k=(0,n.useMemo)(()=>(0,G.s3)({fixedColsWidth:p,weekColumnCount:d.length,visibleRowCount:i.length,theadHeightPx:m,tableWidthPx:f.width,tableHeightPx:f.height}),[p,f.height,f.width,m,i.length,d.length]),N=(0,n.useMemo)(()=>(0,G.RM)({fixedColsWidth:p,theadHeightPx:m,scrollLeft:x.left,scrollTop:x.top}),[p,x.left,x.top,m]);return{renderedEdges:j,tableWidth:k.width,tableHeight:k.height,clipX:N.clipX,clipY:N.clipY}}({enabled:t_,selectedId:td,edges:e.dependency_edges,visibleActivityIds:aA,visibleRowEntries:aC,activityDetails:e.activity_details,barDateMode:e7,dayOffsetEnabled:tv,barsByActivity:ai,weekColumns:e.week_columns,tableRef:tC,scrollRef:tS,fixedColsWidth:at}),aG=(0,n.useCallback)(()=>{tu(null),tb(null)},[]);(0,n.useEffect)(()=>{ex&&tb(null)},[ex]),(0,o.q)({containerRef:tC,suppressNextRef:tM,onDismiss:aG,extraIgnoreSelectors:ev});let aF=(0,n.useCallback)((e,t="smooth",a=!1)=>{let r=tS.current;if(!r)return;let n=ai.get(e)??al.get(e);(0,m.Nk)(r,e,n?.start_week_index,at,t,a&&n?{centerInView:!0,endWeekIndex:n.end_week_index}:void 0)},[ai,al,at,tS]),aO=(0,n.useCallback)((e,t)=>{let a=tC.current?.querySelector(`tr[data-activity-id="${CSS.escape(e)}"]`),r=a?.getBoundingClientRect(),n=r?Math.max(12,Math.min(r.top,window.innerHeight-420)):t?.clientY??120,i=a=>{let r=a.getAttribute("data-mode");if("right"===r)return{activityId:e,clientX:0,clientY:n,alignRightToX:a.getBoundingClientRect().left};if("left"===r)return{activityId:e,clientX:0,clientY:n,alignLeftToX:a.getBoundingClientRect().right};if("bottom"===r){let r=a.getBoundingClientRect();return{activityId:e,clientX:t?.clientX??Math.min(at+40,window.innerWidth-320),clientY:Math.max(12,r.top-420)}}return null},l=document.querySelector("[data-trace-logic-overlay]");if(l){let e=i(l);if(e)return e}let s=document.querySelector("[data-schedule-health-overlay]");if(s){let e=i(s);if(e)return e}return r?{activityId:e,clientX:t?.clientX??Math.min(r.right+8,window.innerWidth-320),clientY:n}:{activityId:e,clientX:t?.clientX??Math.min(at+40,window.innerWidth-320),clientY:n}},[at]),aH=(0,n.useCallback)(e=>{if(ta.has(e))return;ts(!1);let t=te.has(e);tt(t=>(0,m.s4)(t,e)),t&&(tj.current=e)},[te,ta,ts,tt]);(0,n.useLayoutEffect)(()=>{let t=tk.current;if(t){let e=tS.current;if(!e)return;if(e.querySelector(`tr[data-wbs-id="${CSS.escape(t)}"]`)instanceof HTMLElement){tk.current=null,tN.current=0,(0,m.q$)(e,t);return}if(tN.current>=4){tk.current=null,tN.current=0;return}let a=(0,m.a3)(aC,t);if(null==a){tk.current=null,tN.current=0;return}tN.current+=1,(0,m.R7)(e,a,ec.l0,"auto"),tx(e=>e+1);return}let a=tj.current;if(a){let t=(0,m.rP)(e.rows,a),r=tS.current;if(!((t&&r?r.querySelector(`[data-activity-id="${CSS.escape(t)}"]`):null)instanceof HTMLElement)||!t)return;tj.current=null,aF(t);return}let r=tL.current;if(r){let e=tS.current;if(!e)return;if(e.querySelector(`[data-activity-id="${CSS.escape(r)}"]`)instanceof HTMLElement){tL.current=null,tR.current=0;let e=!!eb||!!ew||tD.current;tD.current=!1,aF(r,"auto",e),tb(e=>e&&e.activityId===r?aO(r):e);return}if(tR.current>=8){tL.current=null,tD.current=!1,tR.current=0;return}tR.current+=1;let t=(0,m.Lu)(aC,r);
1null!=t&&(0,m.R7)(e,t,ec.l0,"auto"),tx(e=>e+1);return}},[te,ab,tw,aO,eb,ew,aF,e.rows,aC]);let aV=(0,n.useCallback)((e,t)=>{if(!t)return;let a=[...t.predecessors.map(([e])=>e),...t.successors.map(([e])=>e)];0===a.length||0!==(0,m.NU)(as,a,te).length&&(tL.current=e,tt(e=>(0,m.Kl)(e,as,a)??e))},[as,te,tt]),aW=(0,n.useCallback)((t,a)=>{let r=e.activity_details[t];ts(!1),tt(e=>(0,m.Kl)(e,as,[t])??e),tu(t),tp(),ex&&ej?.(t),a?.scrollToBarNow&&aF(t),aV(t,r),a?.ensureVisible&&(tL.current=t,tD.current=!1,tx(e=>e+1)),r&&(eB||a?.forceDetailPanel)?tb(aO(t,a?.pointer)):a?.forceDetailPanel||tb(null)},[as,tp,eB,aV,aO,aF,ts,tt,ex,ej,e.activity_details]);(0,n.useEffect)(()=>{if(eE)return eE.registerGanttNavigator(t=>{if("schedule"!==t.anchorType){if("activity"===t.anchorType){let a=(0,m.eh)(t.anchorId,e)??t.anchorId;if(!e.activity_details[a])return;tc(e=>{if(e.has(a))return e;let t=new Set(e);return t.add(a),t}),ts(!1),tt(e=>(0,m.Kl)(e,as,[a])??e),tu(a),tp(),tb(null),tL.current=a,tD.current=!0,tR.current=0,tx(e=>e+1);return}ts(!1),tu(null),tb(null),tt(a=>{let r=(0,m.Vp)(e.rows,t.anchorId,a),n=new Set(a);for(let e of r)n.delete(e);return n.has(t.anchorId)&&n.delete(t.anchorId),n}),tk.current=t.anchorId,tN.current=0,tx(e=>e+1)}}),()=>eE.registerGanttNavigator(null)},[as,tp,eE,ts,tt,e]),(0,n.useEffect)(()=>{eE?.panelOpen||ez(null)},[eE?.panelOpen]);let az=(0,n.useRef)({filtersDraft:eH,view:e,barByActivity:ai,barDateMode:e7,activityAncestorWbsMap:as});az.current={filtersDraft:eH,view:e,barByActivity:ai,barDateMode:e7,activityAncestorWbsMap:as};let aX=(0,n.useRef)(null);null===aX.current&&(aX.current={});let aU=aX.current;aU.snapshotFilters=()=>({...az.current.filtersDraft}),aU.applyComposeSearch=(e,t)=>{let a=az.current,r=(0,ei.I)(e);if(ez(r),!r)return;let n={...a.filtersDraft,searchText:r},i=(0,ed.AM)(a.view.rows,a.view.activity_details,a.barByActivity,n,a.barDateMode),l=null;for(let e of a.view.rows)if(e.activity_id&&e.activity_id.toLowerCase()===r.toLowerCase()){l=e.activity_id;break}l||1!==i.size||(l=Array.from(i)[0]??null),l&&(ts(!1),tc(e=>{if(e.has(l))return e;let t=new Set(e);return t.add(l),t}),tt(e=>(0,m.Kl)(e,a.activityAncestorWbsMap,[l])??e),tL.current=l,tD.current=!0,tx(e=>e+1))},aU.restoreFilters=e=>{ez(null),eV(e)},aU.revealWbsLabelMatch=e=>{let t=az.current,a=(0,es.Cl)(e,t.view.rows);a?.wbs_id&&(ts(!1),tu(null),tb(null),tt(e=>{let r=(0,m.Vp)(t.view.rows,a.wbs_id,e),n=new Set(e);for(let e of r)n.delete(e);return n.has(a.wbs_id)&&n.delete(a.wbs_id),n}),tk.current=a.wbs_id,tN.current=0,tx(e=>e+1))},aU.resolveComposeAnchor=e=>(0,es.Lz)(e,az.current.view.rows),aU.previewRegardingLabel=e=>(0,es.RO)(e,az.current.view.rows),aU.listActivityIdSuggestions=(e,t)=>(0,el.b)(e,az.current.view.rows,t),(0,n.useEffect)(()=>{if(eE)return eE.registerPanelComposeBridge(aU),()=>eE.registerPanelComposeBridge(null)},[aU,eE]);let aY=(e,t,a)=>{if(t.target.closest("select, input, button"))return;if(td===e)return void aG();let r=a?[...a.predecessors.map(([e])=>e),...a.successors.map(([e])=>e)]:[],n=r.length>0&&(0,m.NU)(as,r,te).length>0;aW(e,{pointer:{clientX:t.clientX,clientY:t.clientY},scrollToBarNow:!!t.target.closest(`.${C().fixedCol}`)&&!n})},aK=async(e,t)=>{if(p&&g)return void g(e,t);try{let r=await (0,i.gR)(a,u,e,t);b?.(r)}catch(e){w?.(e instanceof Error?e.message:"Could not save activity change")}},aq=tg?e.activity_details[tg.activityId]:void 0,aQ=(0,n.useMemo)(()=>{if(!tg?.activityId||!e.dependency_edges?.length)return;let t=tg.activityId,a=new Set;for(let r of e.dependency_edges)!0===r.is_driving&&(r.predecessor_activity_id===t?a.add(r.successor_activity_id):r.successor_activity_id===t&&a.add(r.predecessor_activity_id));return a.size>0?a:void 0},[tg?.activityId,e.dependency_edges]),aZ=(0,n.useCallback)(t=>{let a=(0,m.eh)(t,e);if(!a)return;tu(a),tp(),ex&&ej?.(a),ts(!1),tc(e=>{let t=new Set(e);return t.add(a),t});let r=e.activity_details[a],n=r?[a,...r.predecessors.map(([e])=>e),...r.successors.map(([e])=>e)]:[a];tL.current=a,tD.current=!0,tR.current=0,tx(e=>e+1),tb(e=>e?{...e,activityId:a}:null),tt(e=>(0,m.Kl)(e,as,n)??e)},[as,tp,ts,tt,ex,ej,e]),aJ=(0,n.useCallback)((t,a)=>{e.activity_details[t]&&tb(aO(t,a??{clientX:Math.round(.35*window.innerWidth),clientY:Math.round(.3*window.innerHeight)}))},[aO,e.activity_details]),a0=(0,n.useCallback)(e=>eE?.getThreadCount("activity",e)??0,[eE]),a1=(0,n.useCallback)(e=>{eE&&(tb(null),eI&&eI.openCommentsPanel(),eE.openPanelComposeForActivity(e))},[eE,eI]);return(0,r.jsxs)("div",{className:C().wrap,"data-ui":"sv-root",children:[(0,r.jsx)(T.o,{searchValue:eH.searchText,onSearchChange:e=>eV({...eH,searchText:e}),showFilters:eK,activeFilterCount:au,onToggleFilters:eq,filtersRootRef:eQ,filterPanel:(0,r.jsx)(W.f,{filters:eH,onChange:e2,onCommitDateFilters:eY,activeTab:eZ,onActiveTabChange:eJ,onClearAll:e5,statusDate:e.metadata?.status_date??null,wbsOutlineLevel:tn,onWbsOutlineLevelChange:ti}
1),filtersPending:eU,nextTwoWeeksActive:(0,Y.HK)(eX,e.metadata?.status_date),onNextTwoWeeksClick:()=>{if((0,Y.HK)(eX,e.metadata?.status_date)){eV({...eH,startOnOrAfter:null,finishOnOrBefore:null}),eY(z.R);return}let t=(0,Y.lP)(e.metadata?.status_date);eV({...eH,...t}),eY(t)},bindTip:ap,onExpandAll:()=>ti(5),onCollapseAll:()=>ti(1),legend:(0,r.jsx)($.p,{bindTip:ap,statusDate:e.metadata?.status_date??null,coachMarkOpen:th,onCoachDismiss:tm}),dataDateControl:eM?(0,r.jsx)(ee,{statusDate:eM.statusDate,disabled:eM.disabled,busy:eM.busy,label:"",variant:"toolbar",showTodayShortcut:!1,onRequestUpdate:eM.onRequestUpdate}):am?(0,r.jsxs)("span",{className:C().toolbarDataDateBtn,children:[(0,r.jsx)("span",{className:C().toolbarDataDateLabel,children:"Data Date\xa0"}),(0,r.jsx)("strong",{children:am}),(0,r.jsx)("span",{className:C().toolbarChevron,"aria-hidden":"true",children:"â¼"})]}):null,onToday:()=>{let t=tS.current;t&&(0,Y.fg)(t,e,at)},extraActions:eD?.enabled||eA||eR?.enabled?(0,r.jsxs)(r.Fragment,{children:[eD?.enabled?(0,r.jsx)("button",{type:"button",className:`${C().toolbarBtn}${eD.open?` ${C().toolbarBtnActive}`:""}`,...ap("Open Trace Logic for the selected activity"),onClick:eD.onToggle,children:eD.open?"Hide Trace Logic":"Trace Logic"}):null,eA?(0,r.jsx)("button",{type:"button",className:C().toolbarBtn,"data-ui":"sv-compare",...ap("Compare this revision with other schedules"),onClick:eA,children:"Compare"}):null,eR?.enabled?(0,r.jsx)("button",{type:"button",className:`${C().toolbarBtn}${eR.open?` ${C().toolbarBtnActive}`:""}`,...ap("Open Health Check & DCMA panel"),onClick:eR.onToggle,children:eR.open?"Hide Health Check":"Health Check"}):null]}):void 0,barDates:(0,r.jsx)(E.H,{value:e7,onChange:t0}),viewSetup:(0,r.jsx)(U.U,{columnPresetId:tQ,onColumnPresetChange:tJ,columnOrder:tG,columnVisible:tO,columnLabels:t6,onShowColumn:e=>t2(e),onHideColumn:e=>t1(e),onMoveColumn:(e,t)=>t5(e,t),display:{logicArrowsEnabled:t_,onLogicArrowsChange:tf,dayOffsetEnabled:tv,onDayOffsetChange:ty,popoverEnabled:eB,onPopoverEnabledChange:e=>{eG(e),e||tb(null)}},savedViews:aM,savedViewsLoading:q,onLoadSavedView:e=>{let t=(0,eu.n9)(e.layout);t&&aR(t)},onSaveView:Q?e=>Q(e,aD()):void 0,onDeleteSavedView:Z,sortBy:eH.sortBy,sortAsc:eH.sortAsc,onSortChange:e=>eV({...eH,...e}),onResetFilters:e5,onResetColumns:()=>tJ("primary-glance")}),tooltip:ah}),e$,(0,r.jsx)(H.n,{warnings:e.warnings,onReopenAvailabilityChange:eP}),(0,r.jsx)(X.Z,{filters:eX,onChange:eV,onCommitDateFilters:eY,onClearAll:e5}),(0,r.jsxs)("div",{className:`${C().scrollViewport}${ex&&"bottom"===eS?` ${C().scrollViewportTraceBottom}`:""}`,children:[eM?.busy?(0,r.jsxs)("div",{className:C().statusDateBusyOverlay,role:"status","aria-live":"polite","aria-busy":"true",children:[(0,r.jsx)("span",{className:C().statusDateBusyText,children:"Updating schedule status dateâ¦"}),(0,r.jsx)("div",{className:C().statusDateBusyTrack,"aria-hidden":"true",children:(0,r.jsx)("div",{className:C().statusDateBusyBar})})]}):null,(0,r.jsx)("div",{ref:tS,className:C().scroll,title:"Drag to pan the timeline",children:(0,r.jsxs)("div",{className:C().scrollContent,children:[null!=an?(0,r.jsx)("div",{className:C().dataDateClip,style:{left:at},"aria-hidden":"true",children:(0,r.jsxs)("div",{className:C().dataDateOverlay,style:{left:an-at},"data-ui":"sv-data-date-line",children:[(0,r.jsx)("span",{className:C().dataDateFlag,children:"Data date"}),(0,r.jsx)("span",{className:C().dataDateLine})]})}):null,(0,r.jsxs)("table",{ref:tC,className:C().table,children:[(0,r.jsxs)("colgroup",{children:[tB.map(e=>(0,r.jsx)("col",{style:{width:(0,k.zt)(e,t9),minWidth:(0,k.zt)(e,t9)}},e)),e.week_columns.map(e=>(0,r.jsx)("col",{className:C().weekCol},e.week_index))]}),(0,r.jsxs)("thead",{children:[(0,r.jsxs)("tr",{className:C().monthHeaderRow,children:[tB.map((e,t)=>(0,r.jsxs)("th",{rowSpan:2,className:`${C().fixedCol} ${C().fixedColHeader}${tH===e?` ${C().colDragging}`:""}${tW===e?` ${C().colDragOver}`:""}`,style:eg(e,t9,ae,t===tB.length-1),"data-gantt-column-header":"",draggable:!0,onDragStart:t=>{t.target.closest(`.${C().colResizer}`)?t.preventDefault():(tV(e),t.dataTransfer.effectAllowed="move")},onDragEnd:()=>{tV(null),tz(null)},onDragOver:t=>{t.preventDefault(),t.dataTransfer.dropEffect="move",tz(e)},onDragLeave:()=>{tz(t=>t===e?null:t)},onDrop:t=>{t.preventDefault(),tz(null),tH&&tH!==e&&t5(tH,e),tV(null)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),tP({key:e,x:t.clientX,y:t.clientY})},children:[(0,r.jsx)("span",{className:C().colDragHandle,"aria-hidden":"true",children:"â®â®"}),t3[e],(0,r.jsx)("span",{className:C().colResizer,onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),tE(e,t.clientX,(0,k.zt)(e,t9))}})]},e)),a_.map(e=>(0,r.jsx)("th",{colSpan:e.weekCount,className:`${C().weekCol} ${C().monthHeader}`,children:e.label},e.key))]}),(0,r.jsx)("tr",{className:C().weekHeaderRow,children:e.week_columns.map(e=>(0,r.jsx)("th",{className:C().weekCol,children:(0,m.XZ)(e)},e.week_index))})]}),(0,r.jsxs)("tbody",{children:[aj&&ak.topSpacerPx>0?(0,r.jsx)("tr",{"aria-hidden":"true",children:(0,r.jsx)("td",{colSpan:aL,style:{height:ak.topSpacerPx,padding:0,border:"none",lineHeight:0}})}):null,aN.map(({row:t})=>{let a=t.activity_id?ai.get(t.activity_id):void 0,n=t.activity_id?e.activity_details[t.activity_id]:void 0;if("wbs_header"===t.row_type){let a=!!t.wbs_id&&te.has(t.wbs_id),n=!!t.wbs_id&&ta.has(t.wbs_id),i=t.indent_level>ar,l=t.wbs_id?aa.get(t.wbs_id)??0:0;return(0,r.jsxs)("tr",{className:`${C().wbsRow}
1${i?` ${C().wbsRowNested}`:""}`,"data-wbs-id":t.wbs_id??void 0,children:[(0,r.jsx)("td",{colSpan:tB.length,className:`${C().fixedCol} ${C().wbsFixedSpan} ${C().wbsLabel}`,style:{width:at,minWidth:at,maxWidth:at,left:0},onClick:()=>{t.wbs_id&&aH(t.wbs_id)},...eE&&t.wbs_id?{"data-gantt-comment-zone":"",onContextMenu:e=>e8(e,"wbs",t.wbs_id,t.label)}:{},children:(0,r.jsxs)("span",{className:C().wbsLabelInner,children:["\xa0".repeat(4*t.indent_level),(0,r.jsx)("span",{className:C().wbsToggle,"aria-hidden":"true",children:a?"â¸":"â¾"}),t.wbs_id?(0,r.jsx)(V.x,{locked:n,collapsed:a,onToggle:()=>tr(t.wbs_id)}):null," ",t.label,l>0?(0,r.jsx)("span",{className:C().wbsCount,children:l}):null]})}),(0,r.jsx)("td",{colSpan:e.week_columns.length,className:C().wbsHeader,"aria-hidden":"true"})]},`wbs-${t.row_index}`)}let i=t.activity_id||"",l=td===i,s=aP.predecessors.has(i),o=aP.successors.has(i),c=null!=td&&!l&&!s&&!o,d=[C().activityRow,l?C().selectedRow:"",s?C().predecessorRow:"",o?C().successorRow:"",c?C().dimmedRow:""].filter(Boolean).join(" "),u=n?(0,m.lA)({p6StatusCode:n.p6_status_code,percentComplete:n.percent_complete,barStatus:a?.status,detailStatus:n.status}):null,h=l||s||o||c||!u?"":"inProgress"===u?C().statusRowInProgress:"done"===u?C().statusRowDone:C().statusRowBacklog,p=(0,m.pY)(n,a),_=null!=n?Math.round(100*n.percent_complete):null,f=n?.p6_status_code||"TK_NotStart",v=n?m.qi[f]||n.status:"â",y=u??"backlog",g=ey(n,t.label),b=n?(0,em.Gx)(n,e7):null,w=n?.actual_start_date,x=n?.actual_finish_date,S=i&&eE?eE.getThreadCount("activity",i):0;return(0,r.jsxs)("tr",{className:`${d}${h?` ${h}`:""}`,"data-activity-id":i,onClick:e=>aY(i,e,n),children:[tB.map((e,a)=>(0,r.jsx)(M,{columnKey:e,activityCodeTypeName:t4[e],activityId:i,rowIndent:t.indent_level,detail:n,descText:g,pct:_,p6Code:f,statusLabel:v,barModeStart:b?.start,barModeFinish:b?.finish,actualStart:w,actualFinish:x,editable:!!(eT&&t.activity_id),isLastFixed:a===tB.length-1,cellStyle:eg(e,t9,ae,a===tB.length-1),onSave:aK,pathBadge:p,commentCount:S,onCommentClick:e=>e4(e,"activity",i,i),onCommentContextMenu:(e,t)=>e8(e,"activity",i,i,t)},e)),e.week_columns.map(l=>{if(!a)return(0,r.jsx)("td",{className:C().weekCell},l.week_index);let s=n?{...a,...(0,em.iA)(a,n,e7,e.week_columns)}:a,o=l.week_index===s.start_week_index,c=s.start_week_index<l.week_index&&l.week_index<=s.end_week_index;if(!o&&!c)return(0,r.jsx)("td",{className:C().weekCell},l.week_index);let d=(0,m.SA)({activityType:n?.activity_type,isCritical:!!(n?.is_critical||s.is_critical),isCriticalAdjacent:!!s.is_critical_adjacent,totalFloatDays:n?.total_float_days,status:y}),u=(0,m.FJ)({isCritical:!!(n?.is_critical||s.is_critical),isCriticalAdjacent:!!s.is_critical_adjacent,totalFloatDays:n?.total_float_days,status:y}),h=(0,m.sd)(n?.activity_type),p=(0,m._X)(n?.percent_complete),_=[C().bar,h?C().barMilestone:"","critical"===u?C().barCritical:"","adjacent"===u?C().barCriticalAdjacent:"","backlog"===u?C().barBacklog:"","inProgress"===u?C().barInProgress:"","done"===u?C().barDone:""].filter(Boolean).join(" "),f=(0,e_.xM)(s,e.week_columns,tv);return(0,r.jsx)("td",{className:`${C().weekCell} ${o?C().weekCellBarStart:""} ${c?C().weekCellCovered:""}`,"data-gantt-activity-context-zone":"",onContextMenu:e=>e8(e,"activity",i,i,{text:g,label:"Activity"}),children:o&&(0,r.jsx)("div",{className:_,"data-bar-id":t.activity_id??void 0,"data-bar-visual":d,"data-bar-fill":u,"data-gantt-activity-context-zone":"",style:"milestone"===d?{left:f.left}:{left:f.left,width:f.width,"--bar-progress":`${p}%`},title:t.activity_id??void 0,onClick:e=>{e.stopPropagation(),n&&aY(i,e,n)},onContextMenu:e=>e8(e,"activity",i,i,{text:g,label:"Activity"})})},l.week_index)})]},`act-${t.row_index}`)}),aj&&ak.bottomSpacerPx>0?(0,r.jsx)("tr",{"aria-hidden":"true",children:(0,r.jsx)("td",{colSpan:aL,style:{height:ak.bottomSpacerPx,padding:0,border:"none",lineHeight:0}})}):null]})]}),t_&&null!=td?(0,r.jsx)(I.O,{renderedEdges:a$,width:aT,height:aE,clipX:aI,clipY:aB}):null]})}),eb?(0,r.jsx)("div",{className:C().healthOverlayLayer,children:eb({onActivityClick:aZ,fixedColsWidth:at})}):null,ew?(0,r.jsx)("div",{className:C().healthOverlayLayer,children:ew({onActivityClick:aZ,showActivityDetails:aJ,openCommentForActivity:a1,getActivityCommentCount:a0,fixedColsWidth:at,focusActivityId:eC})}):null]}),tg&&aq&&(0,r.jsx)(x,{detail:aq,wbsNameByCode:ao,drivingPartnerIds:aQ,clientX:tg.clientX,clientY:tg.clientY,alignRightToX:tg.alignRightToX,alignLeftToX:tg.alignLeftToX,onClose:aG,onNavigateToActivity:aZ,onViewTraceLogic:ek?e=>{tb(null),ek(e)}:void 0,onAddComment:eE?e=>a1(e):void 0,spreadsheetColumnKeys:tB,spreadsheetExtras:{descText:ey(aq,tg.activityId),start:(0,em.Gx)(aq,e7).start,f
1inish:(0,em.Gx)(aq,e7).finish,activityCodeTypeNameByColumn:t4}}),tA&&(0,r.jsx)(A.K,{columnKey:tA.key,allColumnKeys:tF,columnLabels:t6,visible:tO,position:{x:tA.x,y:tA.y},onRemove:t1,onAdd:t2,onClose:()=>tP(null)}),e6?(0,r.jsx)(P.k,{menu:e6,traceLogicEnabled:!!ek,commentsEnabled:!!eE,onViewTraceLogic:()=>{let e=e6.activityId;e3(null),tb(null),ek?.(e)},onSeeActivityDetails:()=>{let{activityId:e,x:t,y:a}=e6;e3(null),tM.current=!0,tu(e),aJ(e,{clientX:t,clientY:a})},onCopyActivityAsText:()=>{let t=e6.activityId,a=e.activity_details[t];e3(null),a&&(0,f.eM)((0,f.QF)(a))},onCopyCell:()=>{let e=e6.cellText?.trim();e3(null),e&&(0,f.eM)(e)},onAddComment:()=>{let e=e6.activityId;e3(null),a1(e)},onClose:()=>e3(null)}):null]})}},38229:(e,t,a)=>{"use strict";function r(e){let t=e.violation_sets;return t&&"object"==typeof t?t:{}}function n(e,t){let a=e.all_violations_ref;return a&&t[a]?.length?t[a]:e.violations_preview??[]}function i(e){let t=e.display,a=e.module_display;return t?.violation_type_labels??a?.violation_type_labels}function l(e){let t=e.display,a=e.module_display;return t?.constraint_labels??a?.constraint_labels}a.d(t,{O0:()=>n,TU:()=>i,Vg:()=>l,pk:()=>r})},38322:(e,t,a)=>{"use strict";a.d(t,{o:()=>n});var r=a(14232);function n(e,t){let[a,n]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let a=window.setTimeout(()=>n(e),t);return()=>window.clearTimeout(a)},[e,t]),a}},40698:(e,t,a)=>{"use strict";a.d(t,{$C:()=>l,Ac:()=>r,M4:()=>h,P6:()=>p,W9:()=>c,YP:()=>d,aQ:()=>s,rS:()=>u,sS:()=>i,u7:()=>n});let r={green:"#15803d",amber:"#a16207",red:"#dc2626"};function n(e){return e.trim().toUpperCase()}function i(e,t,a){return t?e.filter(e=>(e.predecessor_activity_id===t||e.successor_activity_id===t)&&a.has(e.predecessor_activity_id)&&a.has(e.successor_activity_id)):[]}function l(e,t,a){return e.successor_activity_id===t?"green":"amber"}function s(e){switch(n(e)){case"FS":default:return;case"SS":return"4 3";case"FF":return"2 3";case"SF":return"8 3 2 3"}}function o(e){if(0===e||Number.isNaN(e))return null;let t=Math.round(10*e)/10,a=.05>Math.abs(t-Math.round(t))?String(Math.round(t)):t.toFixed(1);return t>0?`+${a}d`:`${a}d`}function c(e){let t=n(e.relationship_type),a=o(e.lag_days)??"0d",r=[`${e.predecessor_activity_id} â ${e.successor_activity_id}`,t,`${a} working days`];return!0===e.is_driving?r.push("driving"):!1===e.is_driving&&r.push("non-driving"),r.join(" \xb7 ")}function d(e){if(!0===e.is_driving){let t=n(e.relationship_type),a=o(e.lag_days),r=[t];return a&&r.push(a),`â
${r.join(" ")}`}return function(e,t){let a=n(e),r=o(t);if("FS"===a&&!r)return null;let i="FS"!==a?[a]:[];return r&&i.push(r),i.length>0?i.join(" "):null}(e.relationship_type,e.lag_days)}function u(e){let t=n(e.relationship_type),a=o(e.lag_days),r=[];return!0===e.is_driving&&r.push("â
"),r.push(t),a&&r.push(a),r.join(" ")}function h(e,t){let a=e.predecessor_activity_id,r=e.successor_activity_id;return a===t?`â ${r}`:r===t?`${a} â`:`${a} â ${r}`}function p(e){let t,{predFinishX:a,predAttachY:r,predRowBottomY:n,succStartX:i,succRowCenterY:l,overlapOnWeeks:s}=e,o=i-14,c=l>=r,d=i-a;if(!s&&d>32){let e=Math.min(a+14,o-8);t=[[a,r],[e,r],[e,l],[o,l]]}else{let e=a+14,s=Math.min(i-36,o-8),d=c?n+3:r;t=s<a?[[a,r],[e,r],[e,d],[s,d],[s,l],[o,l]]:[[a,r],[e,r],[e,l],[o,l]]}return{path:function(e,t=6){let a=function(e){let t=[];for(let a of e){let e=t[t.length-1];e&&e[0]===a[0]&&e[1]===a[1]||t.push([a[0],a[1]])}return t}(e);if(0===a.length)return"";if(1===a.length)return`M ${a[0][0]} ${a[0][1]}`;if(2===a.length)return`M ${a[0][0]} ${a[0][1]} L ${a[1][0]} ${a[1][1]}`;let r=(e,t)=>Math.hypot(t[0]-e[0],t[1]-e[1]),n=`M ${a[0][0]} ${a[0][1]}`;for(let e=1;e<a.length-1;e+=1){let i=a[e-1],l=a[e],s=a[e+1],o=r(i,l),c=r(l,s),d=Math.min(t,o/2,c/2);if(d<.5){n+=` L ${l[0]} ${l[1]}`;continue}let u=(l[0]-i[0])/o,h=(l[1]-i[1])/o,p=(s[0]-l[0])/c,m=(s[1]-l[1])/c;n+=` L ${l[0]-u*d} ${l[1]-h*d} Q ${l[0]} ${l[1]} ${l[0]+p*d} ${l[1]+m*d}`}let i=a[a.length-1];return n+` L ${i[0]} ${i[1]}`}(t),...function(e){for(let t=e.length-1;t>=1;t-=1){let a=e[t-1],r=e[t];if(!(28>Math.hypot(r[0]-a[0],r[1]-a[1]))){if(.5>Math.abs(r[1]-a[1]))return{labelX:(a[0]+r[0])/2,labelY:a[1]-12,labelAnchor:"middle"};return{labelX:a[0]-8,labelY:(a[1]+r[1])/2,labelAnchor:"end"}}}let t=e[e.length-1];return{labelX:(e[e.length-2]??t)[0]-8,labelY:t[1]-12,labelAnchor:"end"}}(t)}}},42003:(e,t,a)=>{"use strict";a.d(t,{L$:()=>h,YJ:()=>o,aR:()=>u,oi:()=>d,pE:()=>c,qN:()=>l,up:()=>s});let r=new Map,n=new Map;function i(e,t,a){return`${e}:${t}:${a}`}function l(e,t=100,a=0){return r.get(i(e,t,a))?.data??null}function s(e,t,a,n){r.set(i(e,t,a),{at:Date.now(),data:n})}function o(e){if(!e){r.clear(),n.clear();return}let t=`${e}:`;
1Array.from(r.keys()).forEach(e=>{e.startsWith(t)&&r.delete(e)}),Array.from(n.keys()).forEach(e=>{e.startsWith(t)&&n.delete(e)})}function c(e,t,a,n=3e4){let l=r.get(i(e,t,a));return!l||Date.now()-l.at>n?null:l.data}function d(e,t,a){return n.get(i(e,t,a))}function u(e,t,a,r){n.set(i(e,t,a),r)}function h(e,t,a){n.delete(i(e,t,a))}},42749:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(53362).A)("share",[["path",{d:"M12 2v13",key:"1km8f5"}],["path",{d:"m16 6-4-4-4 4",key:"13yo43"}],["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8",key:"1b2hhj"}]])},42959:(e,t,a)=>{"use strict";a.d(t,{gQ:()=>v,Hb:()=>F,IW:()=>G,iO:()=>g,xS:()=>E,jw:()=>_,as:()=>I,Xc:()=>k,_r:()=>$,I0:()=>P,j9:()=>H,BS:()=>B,Si:()=>b,Ju:()=>w,aR:()=>T,zF:()=>p,gR:()=>x,F:()=>m,Di:()=>O,e$:()=>z,_1:()=>V,$b:()=>C,Dz:()=>j,Az:()=>W,V9:()=>S,$1:()=>h});var r=a(35693),n=a(27601),i=a(38248),l=a(78815),s=a(5217),o=a(42003);let c="backend";function d(e){return`/api/v1/projects/${encodeURIComponent(e)}/schedule-visualizer`}function u(){let e=(0,i.getCookie)("auth_token")||(0,i.getCookie)("token");return e||localStorage.getItem("auth_token")}async function h(e,t,a){let r=new FormData;r.append("file",t),a?.trim()&&r.append("display_name",a.trim());let i=await n.ok.post(c,`${d(e)}/uploads`,r,{headers:{"Idempotency-Key":"u">typeof crypto&&crypto.randomUUID?crypto.randomUUID():`upload-${Date.now()}-${Math.random().toString(16).slice(2)}`}});if(!i.ok||!i.data)throw y(i.data,"Upload failed");return(0,o.YJ)(e),i.data}async function p(e,t=100,a=0,r){if(!r?.force){let r=(0,o.pE)(e,t,a);if(r)return r;let n=(0,o.oi)(e,t,a);if(n)return n}let i=(async()=>{let r=await n.ok.get(c,`${d(e)}/uploads?limit=${t}&offset=${a}`);if(!r.ok||!r.data)throw Error(f(r.data,"Failed to load saved revisions"));return(0,o.up)(e,t,a,r.data),r.data})();(0,o.aR)(e,t,a,i);try{return await i}finally{(0,o.L$)(e,t,a)}}async function m(e,t,a){let r=await n.ok.patch(c,`${d(e)}/uploads/${t}`,a);if(!r.ok||!r.data)throw Error(f(r.data,"Failed to save revision metadata"));return(0,o.YJ)(e),r.data}async function _(e,t,a){let r=await n.ok.post(c,`${d(e)}/sessions`,{upload_id:t,proj_short_name:a});if(!r.ok||!r.data)throw y(r.data,"Visualization failed");return r.data}function f(e,t){return y(e,t).message}class v extends Error{constructor(e,t,a){super(e),this.name="ScheduleVisualizerApiError",this.errorCode=t,this.details=a}}function y(e,t){if(!e||"object"!=typeof e)return new v(t);let a=e.detail;if("string"==typeof a)return new v(a);if(a&&"object"==typeof a){let e="string"==typeof a.message?a.message:t,r="string"==typeof a.error_code?a.error_code:void 0,{message:n,error_code:i,...l}=a;return new v(e,r,Object.keys(l).length>0?l:void 0)}return new v(t)}async function g(e,t){let a=await n.ok.post(c,`${d(e)}/compare-sessions`,{layers:t});if(!a.ok||!a.data)throw Error(f(a.data,"Compare session failed"));if(!(0,l.tG)(a.data))throw Error("Invalid compare session response");return a.data}async function b(e,t){let a=await n.ok.get(c,`${d(e)}/compare-sessions/${encodeURIComponent(t)}/gantt`);if(!a.ok||!a.data)throw Error(f(a.data,"Compare visualization failed"));if(!(0,l.Kf)(a.data))throw Error("Invalid compare view model response");let r=(0,s.Hn)(a.data.session_expires_at,a.headers);return{...a.data,sessionExpiresAt:r}}async function w(e,t){var a;let r=await n.ok.get(c,`${d(e)}/sessions/${encodeURIComponent(t)}/gantt`);if(!r.ok||!r.data)throw Error(r.data?.detail?.message||"Visualization failed");if(!((a=r.data)&&"object"==typeof a&&"1.0"===a.gantt_view_version&&"string"==typeof a.schedule_id&&Array.isArray(a.rows)&&Array.isArray(a.bars)))throw Error("Invalid Gantt view model response");return{viewModel:r.data,sessionExpiresAt:(0,s.Hn)(void 0,r.headers)}}async function x(e,t,a,r){let i=await n.ok.patch(c,`${d(e)}/sessions/${encodeURIComponent(t)}/activities/${encodeURIComponent(a)}`,r);if(!i.ok||!i.data)throw y(i.data,"Could not save activity change");let l=(0,s.Hn)(i.data.session_expires_at,i.headers);return{...i.data,session_expires_at:l??i.data.session_expires_at}}async function S(e,t,a){let r=await n.ok.post(c,`${d(e)}/sessions/${encodeURIComponent(t)}/advance-status-date`,a?{status_date:a}:{});if(!r.ok||!r.data)throw y(r.data,"Could not update schedule status date");let i=(0,s.Hn)(r.data.session_expires_at,r.headers);return{...r.data,session_expires_at:i??r.data.session_expires_at}}async function C(e,t,a,r){let i={comment:a?.trim()?a.trim():null};r?.expectedSourceSha256&&(i.expected_source_sha256=r.expectedSourceSha256),r?.force&&(i.force=!0),r?.pendingEdits&&r.pendingEdits.length>0&&(i.pending_edits=r.pendingEdits);let l=await n.ok.post(c,`${d(e)}/sessions/${encodeURIComponent(t)}/save`,i);if(!l.ok||!l.data)throw y(l.data,"Failed to save revision");return(0,o.YJ)(e),l.data}async function j(e,t,a){let r={};a?.comment!==void 0&&(r.comment=a.comment?.trim()?a.comment.trim():null),a?.revisionDisplayName!==void 0&&(r.revision_display_name=a.revisionDisplayName?.trim()?a.revisionDisplayName.trim():null),a?.pendingEdits&&a.pendingEdits.length>0&&(r.pending_edits=a.pendingEdits);let i=await n.ok.post(c,`${d(e)}/sessions/${encodeURIComponent(t)}/save-as`,r);if(!i.ok||!i.data)throw y(i.data,"Failed to save revision as new");return(0,o.YJ)(e),i.data}async function k(e,t){let a=await n.ok.delete(c,`${d(e)}/uploads/${encodeURIComponent(t)}`);if(!a.ok)throw Error(f(a.data,"Failed to delete revision"));(0,o.YJ)(e)}let N={pdf:{description:"PDF document",accept:{"application/pdf":[".pdf"]}},xer:{description:"Primavera P6 schedule",accept:{"application/octet-stream":[".xer"]}},xml:{description:"Microsoft Project XML (MSPDI)",accept:{"application/xml":[".xml"]}}};async function L(e,t){let a=window.showSaveFilePicker;if("function"!=typeof a)return null;try{return await a({suggestedName:e,types:[N[t]]})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return"cancelled";return null}}function D(e,t){let a=URL.createObjectURL(e),r=document.createElement("a");r.href=a,r.download=t,r.click(),URL.revokeObjectURL(a)}function R(e,t){if(e.size>0)return;let a="pdf"===t?"PDF":t.toUpperCase();throw Error(`Export returned an empty ${a} file`)}async function M(e,t,a){if(a){let t=await a.createWritable();try{await t.write(e)}finally{await t.close()}return}D(e,t)}async function A(e,t,a,r,n){if(void 0!==r)return void await M(e,t,r);if(n){let r=await L(t,a);if("cancelled"===r)return;await M(e,t,r);return}D(e,t)}async function P(e,t,a,n,i){let l,s=u();if(i?.pendingEdits&&i.pendingEdits.length>0){let n={format:a,pending_edits:i.pendingEdits};"pdf"===a&&(n.mode="multi",i.barDateMode&&(n.bar_date_mode=i.barDateMode),!1===i.dayOffsetEnabled&&(n.day_offset=!1)),l=await fetch(`${(0,r.Zm)()}${d(e)}/sessions/${encodeURIComponent(t)}/export`,{method:"POST",headers:{"Content-Type":"application/json",...s?{Authorization:`Bearer ${s}`}:{}},body:JSON.stringify(n),cache:"no-store"})}else{let n=new URLSearchParams({format:a});"pdf"===a&&(n.set("mode","multi"),i?.barDateMode&&n.set("bar_date_mode",i.barDateMode),i?.dayOffsetEnabled===!1&&n.set("day_offset","false"));let o=`${(0,r.Zm)()}${d(e)}/sessions/${encodeURIComponent(t)}/export?${n.toString()}`;l=await fetch(o,{headers:s?{Authorization:`Bearer ${s}`}:{},cache:"no-store"})}if(!l.ok){let e=await l.text(),t=e||"Export failed";try{let a=JSON.parse(e);"string"==typeof a.detail?t=a.detail:a.detail?.message&&(t=a.detail.message)}catch{}throw Error(t)}let o=await l.blob();return R(o,a),await A(o,n,a,i?.saveHandle,i?.promptSaveLocation),{editCount:function(e){let t=e.headers?.get("X-Edit-Count");if(null==t||""===t)return;let a=Number(t);return Number.isFinite(a)?a:void 0}(l)}}async function $(e,t,a,n){let i=u(),l=new URLSearchParams({format:"pdf",mode:"multi"});n?.barDateMode&&l.set("bar_date_mode",n.barDateMode),n?.dayOffsetEnabled===!1&&l.set("day_offset","false");let s=`${(0,r.Zm)()}${d(e)}/compare-sessions/${encodeURIComponent(t)}/export?${l.toString()}`,o=await fetch(s,{headers:i?{Authorization:`Bearer ${i}`}:{},cache:"no-store"});if(!o.ok){let e=await o.text(),t=e||"Export failed";try{let a=JSON.parse(e);"string"==typeof a.detail?t=a.detail:a.detail?.message&&(t=a.detail.message)}catch{}throw Error(t)}let c=await o.blob();R(c,"pdf"),await A(c,a,"pdf",n?.saveHandle,n?.promptSaveLocation)}async function T(e){let t=await n.ok.get(c,`${d(e)}/saved-views`);if(!t.ok||!t.data)throw Error(f(t.data,"Failed to load saved views"));return t.data}async function E(e,t,a){let r=await n.ok.post(c,`${d(e)}/saved-views`,{name:t,layout:a});if(!r.ok||!r.data)throw Error(f(r.data,"Failed to save view"));return r.data}async function I(e,t){let a=await n.ok.delete(c,`${d(e)}/saved-views/${encodeURIComponent(t)}`);if(!a.ok)throw Error(f(a.data,"Failed to delete saved view"))}async function B(e){let t=await n.ok.get(c,`${d(e)}/capabilities`);
1if(!t.ok||!t.data)throw Error(f(t.data,"Failed to load capabilities"));return t.data}async function G(e,t,a={}){let r=await n.ok.post(c,`${d(e)}/uploads/${encodeURIComponent(t)}/analyze`,a);if(!r.ok||!r.data)throw Error(f(r.data,"Analyze upload failed"));return r.data}async function F(e,t,a={}){let r=await n.ok.post(c,`${d(e)}/sessions/${encodeURIComponent(t)}/analyze`,a);if(!r.ok||!r.data)throw Error(f(r.data,"Analyze session failed"));return r.data}async function O(e,t,a={}){let r=a.includeResult??!0,i=await n.ok.get(c,`${d(e)}/analyze/jobs/${encodeURIComponent(t)}${r?"":"?include_result=false"}`);if(!i.ok||!i.data)throw Error(f(i.data,"Failed to poll analyze job"));return i.data}async function H(e,t){return O(e,t,{includeResult:!0})}async function V(e,t,a){let r=new URLSearchParams({proj_short_name:a}),i=await n.ok.get(c,`${d(e)}/uploads/${encodeURIComponent(t)}/materialize-usd?${r.toString()}`);if(!i.ok||!i.data)throw y(i.data,"USD prefetch probe failed");return i.data}async function W(e,t,a,r){let i=r?.refresh?"?refresh=true":"",l=await n.ok.post(c,`${d(e)}/uploads/${encodeURIComponent(t)}/materialize-usd${i}`,{proj_short_name:a});if(!l.ok||!l.data)throw y(l.data,"USD materialize failed");return l.data}async function z(e,t){let a=await n.ok.get(c,`${d(e)}/materialize-usd/jobs/${encodeURIComponent(t)}`);if(!a.ok||!a.data)throw y(a.data,"Failed to poll USD materialize job");return a.data}},43078:(e,t,a)=>{"use strict";a.d(t,{n:()=>s});var r=a(37876),n=a(14232),i=a(90055),l=a.n(i);let s=({warnings:e,onReopenAvailabilityChange:t})=>{let[a,i]=(0,n.useState)(()=>new Set),[s,o]=(0,n.useState)(!1),c=(0,n.useRef)(t);c.current=t;let d=(0,n.useMemo)(()=>e.filter(e=>!a.has(e)),[a,e]),u=(0,n.useCallback)(()=>{o(!1)},[]);return((0,n.useEffect)(()=>{let e=c.current;if(e){if(s&&d.length>0)return void e({count:d.length,reopen:u});e(null)}},[s,u,d.length]),0===d.length)?null:s?t?null:(0,r.jsxs)("button",{type:"button",className:l().warningsReopenLink,"data-ui":"sv-warnings-reopen",onClick:u,children:["[",d.length,"] file warnings"]}):(0,r.jsxs)("aside",{className:l().warnings,role:"status","data-ui":"sv-warnings","data-count":d.length,children:[(0,r.jsxs)("div",{className:l().warningsHeader,children:[(0,r.jsxs)("div",{className:l().warningsHeaderLeading,children:[(0,r.jsx)("span",{className:l().warningsIcon,"aria-hidden":"true",children:"!"}),(0,r.jsxs)("span",{className:l().warningsTitle,children:[d.length," File Warning",1===d.length?"":"s"]})]}),(0,r.jsx)("button",{type:"button",className:l().warningsDismissAll,onClick:()=>{o(!0)},children:"Dismiss All"})]}),(0,r.jsx)("ul",{className:l().warningsList,children:d.map(e=>{let t,a,{lead:n,rest:s}=(t=e.trim(),(a=/^(.*?[.!?])\s+([\s\S]+)$/.exec(t))?{lead:a[1],rest:a[2]}:{lead:t,rest:""});return(0,r.jsxs)("li",{className:l().warningsListItem,children:[(0,r.jsxs)("span",{className:l().warningsText,children:[(0,r.jsx)("span",{className:l().warningsTextLead,children:n}),s?(0,r.jsxs)(r.Fragment,{children:[" ",(0,r.jsx)("span",{className:l().warningsTextRest,children:s})]}):null]}),(0,r.jsx)("button",{type:"button",className:l().warningsDismiss,"aria-label":`Dismiss warning: ${e}`,onClick:()=>{i(t=>new Set(t).add(e))},children:"\xd7"})]},e)})})]})}},44876:(e,t,a)=>{"use strict";a.d(t,{e:()=>l});var r=a(37876);a(14232);var n=a(90055),i=a.n(n);let l=({showFilters:e,activeFilterCount:t,layerFilterActive:a=!1,onClick:n})=>(0,r.jsxs)("button",{type:"button",className:`${i().toolbarBtn}${e?` ${i().toolbarBtnActive}`:""}`,"data-ui":"sv-filters-toggle","data-count":t,onClick:n,"aria-pressed":e,"aria-label":a?"Filters (some layers hidden)":"Filters","aria-haspopup":"dialog","aria-expanded":e,children:["Filters",(0,r.jsx)("span",{className:i().toolbarChevron,"aria-hidden":"true",children:"â¼"}),t>0?(0,r.jsx)("span",{className:i().filterBadge,"aria-label":`${t} active filters`,children:t}):null]})},45464:(e,t,a)=>{"use strict";function r(e,t){return!!e&&!!t&&t.start_week_index<=e.end_week_index}a.d(t,{ke:()=>r}),a(40698)},45584:e=>{e.exports={panel:"scheduleHealthTheme_panel__cbzf7",muted:"scheduleHealthTheme_muted__0XgzE",section:"scheduleHealthTheme_section__OvE5G",sectionHead:"scheduleHealthTheme_sectionHead__HT9bE",sectionHeadActions:"scheduleHealthTheme_sectionHeadActions__eNEwp",sectionMeta:"scheduleHealthTheme_sectionMeta___TlLG",hero:"scheduleHealthTheme_hero__7f_76",heroScore:"scheduleHealthTheme_heroScore__A9H8c",heroCurrent:"scheduleHealthTheme_heroCurrent__h6Vnc",heroFuture:"scheduleHealthTheme_heroFuture__x_9P8",scoreLabel:"scheduleHealthTheme_scoreLabel__WqRK2",scoreValue:"scheduleHealthTheme_scoreValue__8Zsyw",scoreValueGood:"scheduleHealthTheme_scoreValueGood__wwQ7g",scoreValueWarn:"scheduleHealthTheme_scoreValueWarn__4sJmp",scoreValueCrit:"scheduleHealthTheme_scoreValueCrit__2onJR",scoreOutOf:"scheduleHealthTheme_scoreOutOf__iFGBE",scoreBand:"scheduleHealthTheme_scoreBand__qf1t_",scoreBandGood:"scheduleHealthTheme_scoreBandGood__lDAIj",scoreBandWarn:"scheduleHealthTheme_scoreBandWarn___iA6H",scoreBandCrit:"scheduleHealthTheme_scoreBandCrit__V6NYo",heroFutureDivider:"scheduleHealthTheme_heroFutureDivider__oguud",heroFutureScore:"scheduleHealthTheme_heroFutureScore__CoFFa",futureRange:"scheduleHealthTheme_futureRange__j6SXx",futureCaution:"scheduleHealthTheme_futureCaution__5v9NJ",predDelta:"scheduleHealthTheme_predDelta__x1n60",predDeltaPos:"scheduleHealthTheme_predDeltaPos__e2Tz8",predDeltaNeg:"scheduleHealthTheme_predDeltaNeg__nTKsP",heroSummary:"scheduleHealthTheme_heroSummary__ShsuF",driverList:"scheduleHealthTheme_driverList__QJw4P",driverKey:"scheduleHealthTheme_driverKey___wgBH",driverImpact:"scheduleHealthTheme_driverImpact__TBdcl",dcmaSummary:"scheduleHealthTheme_dcmaSummary__EOfUJ",dcmaSummaryStat:"scheduleHealthTheme_dcmaSummaryStat__er4v6",dcmaSummaryPills:"scheduleHealthTheme_dcmaSummaryPills__66C8P",dcmaSummaryLabel:"scheduleHealthTheme_dcmaSummaryLabel__mu6J8",dcmaSummaryValue:"scheduleHealthTheme_dcmaSummaryValue__vcVmp",dcmaSummaryOut:"scheduleHealthTheme_dcmaSummaryOut__ak57W",dcmaPill:"scheduleHealthTheme_dcmaPill__XAJh0",dcmaPillPass:"scheduleHealthTheme_dcmaPillPass__fofF_",dcmaPillWarn:"scheduleHealthTheme_dcmaPillWarn__9GepE",dcmaPillFail:"scheduleHealthTheme_dcmaPillFail__EiVrl",dcmaTable:"scheduleHealthTheme_dcmaTable__AKDY3",dcmaNum:"scheduleHealthTheme_dcmaNum__vOOgG",dcmaName:"scheduleHealthTheme_dcmaName__jWJhq",dcmaCheckDef:"scheduleHealthTheme_dcmaCheckDef__91lTM",dcmaResult:"scheduleHealthTheme_dcmaResult__q1Wvr",dcmaStatus:"scheduleHealthTheme_dcmaStatus__twG3L",dcmaStatusPass:"scheduleHealthTheme_dcmaStatusPass__xn0Cd",dcmaStatusWarn:"scheduleHealthTheme_dcmaStatusWarn__4e6wi",dcmaStatusFail:"scheduleHealthTheme_dcmaStatusFail__ob4MU",activityLink:"scheduleHealthTheme_activityLink__Y0eon",activities:"scheduleHealthTheme_activities__sYsDW",actId:"scheduleHealthTheme_actId__kHIBT",actName:"scheduleHealthTheme_actName__puVQc",tierPill:"scheduleHealthTheme_tierPill__0XO0k",emptySection:"scheduleHealthTheme_emptySection__H16lc",dcmaViolationPreview:"scheduleHealthTheme_dcmaViolationPreview___DCoq",dcmaViolationPreviewItem:"scheduleHealthTheme_dcmaViolationPreviewItem__Yyaq0",dcmaViolationPreviewText:"scheduleHealthTheme_dcmaViolationPreviewText__Fsa_b",dcmaViewAllLink:"scheduleHealthTheme_dcmaViewAllLink__pUpqL",dcmaDetailPanel:"scheduleHealthTheme_dcmaDetailPanel__WMbBB",dcmaDetailHead:"scheduleHealthTheme_dcmaDetailHead__uZAc8",dcmaDetailBack:"scheduleHealthTheme_dcmaDetailBack__wnWDj",dcmaDetailA
1ctions:"scheduleHealthTheme_dcmaDetailActions___rMsP",dcmaDetailAction:"scheduleHealthTheme_dcmaDetailAction__4LlGx",dcmaDetailTitle:"scheduleHealthTheme_dcmaDetailTitle__ze15O",dcmaDetailCount:"scheduleHealthTheme_dcmaDetailCount__LrCYc",dcmaDetailClose:"scheduleHealthTheme_dcmaDetailClose__ElIPV",dcmaDetailFilters:"scheduleHealthTheme_dcmaDetailFilters__eEVvg",dcmaFilterField:"scheduleHealthTheme_dcmaFilterField__eUcPT",dcmaFilterFieldGrow:"scheduleHealthTheme_dcmaFilterFieldGrow__S_245",dcmaFilterLabel:"scheduleHealthTheme_dcmaFilterLabel__sDVmh",dcmaFilterSelect:"scheduleHealthTheme_dcmaFilterSelect__FFqt5",dcmaFilterInput:"scheduleHealthTheme_dcmaFilterInput__hMqTr",dcmaEmptyRow:"scheduleHealthTheme_dcmaEmptyRow__iEvEI",dcmaPagination:"scheduleHealthTheme_dcmaPagination__jRQF9",dcmaPaginationMeta:"scheduleHealthTheme_dcmaPaginationMeta__rqW_G",dcmaRowActive:"scheduleHealthTheme_dcmaRowActive__rudRh",dcmaSortHeader:"scheduleHealthTheme_dcmaSortHeader__qSqUh",dcmaSortHeaderActive:"scheduleHealthTheme_dcmaSortHeaderActive__gFVwk"}},45634:e=>{e.exports={wrap:"ScheduleHealthLoadingBar_wrap__AuHvC",wrapProminent:"ScheduleHealthLoadingBar_wrapProminent__Cj7CG",message:"ScheduleHealthLoadingBar_message__HFNxW",track:"ScheduleHealthLoadingBar_track__0Kvnh",wrapCompact:"ScheduleHealthLoadingBar_wrapCompact__EnQdk",badgeRow:"ScheduleHealthLoadingBar_badgeRow__8l2Xy",badge:"ScheduleHealthLoadingBar_badge__ZAPAj",badgeLight:"ScheduleHealthLoadingBar_badgeLight__gJ0CR",bar:"ScheduleHealthLoadingBar_bar__oiNFA",scheduleHealthIndeterminate:"ScheduleHealthLoadingBar_scheduleHealthIndeterminate__rbAeS"}},46056:e=>{e.exports={commentBubbleIcon:"comments_commentBubbleIcon__92wFV",commentBubbleRead:"comments_commentBubbleRead__XonUQ",commentBubbleUnread:"comments_commentBubbleUnread__D_sTq",commentIndicatorInner:"comments_commentIndicatorInner__IBcCS",threadCardHeader:"comments_threadCardHeader__AcA2R",anchorRow:"comments_anchorRow__W5sAP",anchorChip:"comments_anchorChip__SDO6Z",anchorChipGeneral:"comments_anchorChipGeneral__jtBnW",anchorName:"comments_anchorName__2lWLH",authorLine:"comments_authorLine__XTg4d",authorName:"comments_authorName__yqa3q",authorWhen:"comments_authorWhen__fJTv7",replyCard:"comments_replyCard__IsVub",actionsMenuRoot:"comments_actionsMenuRoot__JOamH",actionsMenuTrigger:"comments_actionsMenuTrigger__gLj_k",actionsMenuDropdown:"comments_actionsMenuDropdown__a943O",panelFilters:"comments_panelFilters__lXcMv",panelFilterLabel:"comments_panelFilterLabel__oQizM",panelFilterSelect:"comments_panelFilterSelect__25t0t",commentLinkBtn:"comments_commentLinkBtn__tjqN7",replyToggleBtn:"comments_replyToggleBtn__y7hme",showMoreRepliesBtn:"comments_showMoreRepliesBtn__WZWCU",panelCompose:"comments_panelCompose__g4IJr",panelComposeEyebrow:"comments_panelComposeEyebrow__e_C3V",panelComposeTarget:"comments_panelComposeTarget__baU_2",panelComposeBadge:"comments_panelComposeBadge__0Kz7E",panelComposeTargetLabel:"comments_panelComposeTargetLabel__XXMdR",panelFooterHint:"comments_panelFooterHint__hmemh",panelComposeSearch:"comments_panelComposeSearch__GdSBm",panelComposeHint:"comments_panelComposeHint__6xbDj",panelComposeRegarding:"comments_panelComposeRegarding__NBjn6",panelEmptyHint:"comments_panelEmptyHint__f7laa",idCellWithIndicator:"comments_idCellWithIndicator__KaFhi",toolbarCommentsBtn:"comments_toolbarCommentsBtn__Wpwic",toolbarCommentsBtnWrap:"comments_toolbarCommentsBtnWrap__5NTFz",toolbarCommentsBadge:"comments_toolbarCommentsBadge__E_znR",panelBackdrop:"comments_panelBackdrop__YOvUg",composeSearchRoot:"comments_composeSearchRoot__tL2qb",composeSearchMenu:"comments_composeSearchMenu__Efgn0",composeSearchOption:"comments_composeSearchOption__AtDmQ",composeSearchOptionActive:"comments_composeSearchOptionActive__CluS8",composeSearchOptionId:"comments_composeSearchOptionId__6Z5Wu",composeSearchOptionLabel:"comments_composeSearchOptionLabel__kGnQu",panelDrawer:"comments_panelDrawer__DSnAb",srPanelIn:"comments_srPanelIn__A2bLY",panelHeader:"comments_panelHeader__zOsnF",panelHeaderTitleStack:"comments_panelHeaderTitleStack__ECy_J",panelHeaderTitle:"comments_panelHeaderTitle__OyprA",panelHeaderSubtitle:"comments_panelHeaderSubtitle__B2xdW",headerActions:"comments_headerActions__ZgO_G",headerTextBtn:"comments_headerTextBtn__eXvpe",iconBtn:"comments_iconBtn__0hB4y",panelBody:"comments_panelBody__Yrb2s",threadCard:"comments_threadCard__lF28N",threadMeta:"comments_threadMeta__PFRZo",threadBody:"comments_threadBody__eR4UU",replyList:"comments_replyList__i1YPc",threadFooter:"comments_threadFooter__copuU",threadFooterLeft:"comments_threadFooterLeft__2vIQG",threadFooterRight:"comments_threadFooterRight__hAvWH",editorBox:"c
1omments_editorBox__zyNAG",editorBoxInline:"comments_editorBoxInline__Id3gX",editorTextarea:"comments_editorTextarea__wgfkD",editorInputInline:"comments_editorInputInline__aoWNO",inlineReplyBtn:"comments_inlineReplyBtn__xmZDE",editorActions:"comments_editorActions__ZAzwK",editorError:"comments_editorError__pr2iS",smallBtn:"comments_smallBtn__1krP0",smallBtnPrimary:"comments_smallBtnPrimary__PRkNa",contextMenu:"comments_contextMenu__Jf8nR",contextMenuItem:"comments_contextMenuItem__WzEHj",popover:"comments_popover__wI6LU",popoverHeader:"comments_popoverHeader__uSGGG"}},47103:(e,t,a)=>{"use strict";a.d(t,{o:()=>h});var r=a(37876);a(14232);var n=a(66275),i=a.n(n);function l({tooltip:e}){return e?(0,r.jsx)("div",{className:i().tooltip,role:"tooltip",style:{left:e.x,top:e.y},children:e.text}):null}var s=a(44876),o=a(56558),c=a(65960),d=a(90055),u=a.n(d);let h=({searchValue:e,onSearchChange:t,showFilters:a,activeFilterCount:n,layerFilterActive:i=!1,onToggleFilters:d,filtersRootRef:h,filterPanel:p,filtersPending:m=!1,nextTwoWeeksActive:_,onNextTwoWeeksClick:f,bindTip:v,onExpandAll:y,onCollapseAll:g,legend:b,dataDateControl:w,onToday:x,extraActions:S,barDates:C,viewSetup:j,tooltip:k})=>(0,r.jsxs)("div",{className:u().toolbar,"data-ui":"sv-toolbar",role:"toolbar",children:[(0,r.jsxs)("div",{className:u().toolbarControls,children:[(0,r.jsxs)("div",{className:u().toolbarGroup,children:[(0,r.jsx)("div",{className:u().toolbarSearchWrap,children:(0,r.jsx)("input",{type:"search",className:u().toolbarSearch,placeholder:"Search activitiesâ¦",value:e,"aria-label":"Search activities","data-ui":"sv-search",onChange:e=>t(e.target.value)})}),(0,r.jsxs)("div",{className:u().filtersAnchor,ref:h,children:[(0,r.jsx)(s.e,{showFilters:a,activeFilterCount:n,layerFilterActive:i,onClick:d}),a?(0,r.jsx)("div",{className:u().filterPanelPopup,children:p}):null]}),m?(0,r.jsx)("span",{className:u().toolbarPending,"aria-live":"polite",children:"Applyingâ¦"}):null,(0,r.jsx)("button",{type:"button",className:`${u().toolbarBtn}${_?` ${u().toolbarBtnPrimary}`:""}`,...v(c.hJ),onClick:f,children:"Next 2 Weeks"})]}),(0,r.jsx)("div",{className:u().toolbarDivider,"aria-hidden":"true"}),(0,r.jsx)(o.k,{bindTip:v,onExpandAll:y,onCollapseAll:g,children:b}),(0,r.jsx)("div",{className:u().toolbarDivider,"aria-hidden":"true"}),(0,r.jsxs)("div",{className:u().toolbarGroup,children:[w,(0,r.jsx)("button",{type:"button",className:u().toolbarBtn,...v("Scroll the Gantt to the data date"),onClick:x,children:"Today"})]}),S?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:u().toolbarDivider,"aria-hidden":"true"}),(0,r.jsx)("div",{className:u().toolbarGroup,children:S})]}):null]}),(0,r.jsxs)("div",{className:u().toolbarPinnedRight,children:[C,j]}),(0,r.jsx)(l,{tooltip:k})]})},47837:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});var r=a(37876),n=a(14232),i=a(80881),l=a(90055),s=a.n(l);let o=({filters:e,onChange:t,onCommitDateFilters:a,onClearAll:l})=>{let o=(0,n.useMemo)(()=>(0,i.dX)(e),[e]);return 0===o.length?null:(0,r.jsxs)("div",{className:s().filterChipRow,"aria-label":"Applied filters",children:[o.map(n=>(0,r.jsxs)("span",{className:s().filterChip,children:[n.label,(0,r.jsx)("button",{type:"button",className:s().filterChipDismiss,"aria-label":`Remove ${n.label} filter`,onClick:()=>{let r=(0,i.ee)(e,n.id);t(r),("dateWindow"===n.id||"startOnOrAfter"===n.id||"finishOnOrBefore"===n.id)&&a?.({startOnOrAfter:r.startOnOrAfter,finishOnOrBefore:r.finishOnOrBefore})},children:"\xd7"})]},n.id)),l?(0,r.jsx)("button",{type:"button",className:s().filterChipClearAll,onClick:l,children:"Clear All"}):null]})}},48728:(e,t,a)=>{"use strict";a.d(t,{a:()=>l,r:()=>s});var r=a(14232),n=a(15077),i=a(28783);let l=0;function s(e,t){let[a,l]=(0,r.useState)(!!t?.initialHealthPanelOpen),[s,o]=(0,r.useState)(!1),[c,d]=(0,r.useState)(""),[u,h]=(0,r.useState)(null),[p,m]=(0,r.useState)(i.Kp),_=(0,r.useCallback)(e=>{m(e),(0,i.$E)(e)},[]),f=e?.panelOpen??!1,v=(0,r.useCallback)(()=>{l(!1),o(!1),e?.setPanelOpen(!1)},[e]),y=(0,r.useCallback)(()=>{l(!1)},[]),g=(0,r.useCallback)(()=>{o(!1)},[]),b=(0,r.useCallback)(()=>{e?.setPanelOpen(!1),o(!1),l(e=>!e)},[e]),w=(0,r.useCallback)(()=>{l(!1),s&&m(e=>{let t=(0,n.j3)(e);return(0,i.$E)(t),t}),e?.setPanelOpen(!0)},[e,s]),x=(0,r.useCallback)(t=>{l(!1),d(t),e?.panelOpen&&_("bottom"),o(!0)},[e?.panelOpen,_]),S=(0,r.useCallback)(t=>{l(!1),o(a=>{let r=a&&null==t;return!r&&t&&d(t),!r&&e?.panelOpen&&m(e=>{let t=(0,n.j3)(e);return(0,i.$E)(t),t}),!r})},[e?.panelOpen]);return{traceFocusActivityId:c,traceLayoutMode:p,ganttSelectedActivityId:u,healthPanelOpen:a,tracePanelOpen:s,commentsPanelOpen:f,setTraceFocusActivityId:d,setGanttSelectedActivityId:h,setTraceLayoutMode:_,toggleHealthPanel:b,toggleTracePanel:S,openTracePanel:x,openCommentsPanel:w,closeSidePanel:v,closeHealthPanel:y,closeTracePanel:g}}},48954:(e,t,a)=>{"use strict";a.d(t,{h:()=>tO});var r=a(37876),n=a(14232),i=a(98477),l=a(42749),s=a(72425),o=a(15266),c=a(97833),d=a(42959),u=a(42003),h=a(5002),p=a(76209),m=a(60924),_=a.n(m);let f={status_date:"Status date",actual_date_order:"Actual dates"};function v(e){let t=e.activityName?` â ${e.activityName}`:"",a=0!==e.lagDays?`, lag ${e.lagDays}d`:"";return`${e.activityId}${t} (${e.relationshipType}${a})`}let y=({panel:e,loading:t=!1,onClose:a,onConfirmResolve:l})=>
1{if((0,n.useEffect)(()=>{if(!e)return;let r=e=>{"Escape"!==e.key||t||a()};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[t,a,e]),!e||"u"<typeof document)return null;let s="resolvable"===e.mode&&e.proposedStatusDate,o="blocked"===e.mode?"Schedule issues block save":"Resolve schedule issues before saving",c=(0,r.jsx)("div",{className:_().backdrop,role:"presentation",onClick:t?void 0:a,children:(0,r.jsxs)("div",{className:_().frame,role:"dialog","aria-modal":"true","aria-labelledby":"save-revision-validation-title",onClick:e=>e.stopPropagation(),"data-save-revision-validation":"",children:[(0,r.jsxs)("header",{className:_().header,children:[(0,r.jsxs)("div",{className:_().headerMain,children:[(0,r.jsx)("p",{className:_().kicker,children:"Schedule save"}),(0,r.jsx)("h2",{id:"save-revision-validation-title",className:_().title,children:o}),(0,r.jsx)("p",{className:_().subtitle,children:e.intro?e.intro:"blocked"===e.mode?e.attemptedStatusDate?`The schedule status date cannot be set to ${(0,p.XD)(e.attemptedStatusDate)}. Update actual dates on the activities below, then try again.`:"Fix the schedule issues below before saving this revision.":e.proposedStatusDate?`Actual dates must be on or before the schedule status date. Update the status date to ${(0,p.XD)(e.proposedStatusDate)} and save automatically.`:"Fix the schedule issues below before saving this revision."})]}),(0,r.jsx)("button",{type:"button",className:_().closeBtn,"aria-label":"Close",disabled:t,onClick:a,children:(0,r.jsx)(h.A,{size:16,"aria-hidden":"true"})})]}),(0,r.jsxs)("div",{className:_().body,children:[e.scheduleStatusDate?(0,r.jsxs)("p",{className:_().meta,children:["Current schedule status date:"," ",(0,r.jsx)("strong",{children:(0,p.XD)(e.scheduleStatusDate)})]}):null,(0,r.jsx)("div",{className:_().issueList,role:"list",children:e.issues.map(e=>(0,r.jsxs)("section",{className:_().issueCard,role:"listitem","aria-label":`Validation issue for ${e.activityId}`,children:[(0,r.jsxs)("h3",{className:_().activityHeading,children:[e.activityId,e.activityName?(0,r.jsxs)("span",{className:_().activityName,children:[" â ",e.activityName]}):null]}),e.problems.map((t,a)=>(0,r.jsxs)("p",{className:_().problem,children:[(0,r.jsxs)("span",{className:_().problemLabel,children:[f[t.kind],":"]})," ",t.message]},`${e.activityId}-${t.kind}-${a}`)),e.drivingPredecessors.length>0?(0,r.jsxs)("div",{className:_().predBlock,children:[(0,r.jsx)("p",{className:_().predHeading,children:"Driving predecessor(s)"}),(0,r.jsx)("ul",{className:_().predList,children:e.drivingPredecessors.map(t=>(0,r.jsx)("li",{children:v(t)},`${e.activityId}-drive-${t.activityId}`))})]}):null,e.otherPredecessors.length>0?(0,r.jsxs)("div",{className:_().predBlock,children:[(0,r.jsx)("p",{className:_().predHeading,children:e.drivingPredecessors.length>0?"Other predecessors":"Predecessor(s)"}),(0,r.jsx)("ul",{className:_().predList,children:e.otherPredecessors.map(t=>(0,r.jsx)("li",{children:v(t)},`${e.activityId}-other-${t.activityId}`))})]}):null]},e.activityId))})]}),(0,r.jsxs)("footer",{className:_().actions,children:[(0,r.jsx)("button",{type:"button",className:_().actionBtn,onClick:a,disabled:t,children:s?"Cancel":"Close"}),s&&l?(0,r.jsx)("button",{type:"button",className:_().actionBtnPrimary,disabled:t,onClick:l,children:t?"Savingâ¦":"Update status date and save"}):null]})]})});return(0,i.createPortal)((0,r.jsx)("div",{className:_().portal,children:c}),document.body)};var g=a(13412),b=a.n(g);let w=({busy:e=!1,disabled:t=!1,pendingRevisionEdits:a=0,currentRevisionLabel:i="",nextRevisionLabel:l="",onSave:s,onSaveAs:o,currentSaveEnabled:c=!0})=>{let d,u,[h,p]=(0,n.useState)(!1),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!h)return;let e=e=>{m.current?.contains(e.target)||p(!1)},t=e=>{"Escape"===e.key&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[h]);let _=t||e,f=a>0&&!e;return(0,r.jsxs)("div",{className:b().saveSplit,ref:m,role:"group","aria-label":"Save revision","data-save-revision":"","data-ui":"sv-save","data-dirty-count":a,children:[(0,r.jsx)("button",{type:"button",className:`${b().toolbarBtn} ${b().saveSplitTrigger}${e?` ${b().toolbarBtnBusy}`:""}`,disabled:_,"aria-busy":e,"aria-expanded":h,"aria-haspopup":"menu","aria-label":a>0?`Save Changes (${a} unsaved ${1===a?"edit":"edits"})`:"Save Changes",title:"Save edits to the current revision or create a new revision",onClick:()=>p(e=>!e),children:e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:b().saveSplitSpinner,"aria-hidden":"true"}),(0,r.jsx)("span",{children:"Savingâ¦"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{children:"Save Changes"}),f?(0,r.jsx)("span",{className:b().saveSplitBadge,"aria-hidden":"true",children:a}):null,(0,r.jsx)("span",{"aria-hidden":"true",children:"â¾"})]})}),h&&!_?(0,r.jsxs)("ul",{className:b().saveSplitMenu,role:"menu","aria-label":"Save options",children:[(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"menuitem",className:`${b().saveSplitMenuItem}${c?"":` ${b().saveSplitMenuItemDisabled}`}`,disabled:!c,onClick:()=>{c&&(p(!1),s())},children:[(0,r.jsx)("span",{className:b().saveSplitMenuItemTitle,children:"Save to Current Revision"}),(0,r.jsx)("span",{className:b().saveSplitMenuItemSub,children:(d=i.trim()||"this revision",a>0?`Apply ${a} ${1===a?"edit":"edits"} to ${d}`:`No unsaved edits. ${d} is up to date`)})]})}),(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"menuitem",className:b().saveSplitMenuItem,onClick:()=>{p(!1),o()},children:[(0,r.jsx)("span",{className:b().saveSplitMenuItemTitle,children:"Save as New Revisionâ¦"}),(0,r.jsx)("span",{className:b().saveSplitMenuItemSub,children:(u=l.trim())?`Start ${u} from the current state`:"Start a new revision from the current state"})]})})]}):null]})};var x=a(9542),S=a(91709),C=a(12499),j=a(49891),k=a.n(j);let N=({current:e,reason:t="stale_revision",busy:a=!1,pendingDisplayName:l="",pendingNotes:s="",pendingRevisionLabel:o="",onClose:c,onChooseSaveAs:d,onOverride:u,onReload:p})=>{let m;if((0,n.useEffect)(()=>
1{if(!e)return;let t=e=>{"Escape"!==e.key||a||c()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[a,e,c]),!e||"u"<typeof document)return null;let _=e.last_modified_by_name||e.created_by_name||"Another editor",f=l.trim()||o||"â",v=s.trim()||"â",y=(0,r.jsx)("div",{className:k().backdrop,role:"presentation",onClick:a?void 0:c,children:(0,r.jsxs)("div",{className:k().frame,role:"dialog","aria-modal":"true","aria-labelledby":"revision-save-conflict-title",onClick:e=>e.stopPropagation(),"data-save-revision-conflict":"",children:[(0,r.jsxs)("header",{className:k().header,children:[(0,r.jsxs)("div",{className:k().headerMain,children:[(0,r.jsx)("p",{className:k().kicker,children:"Revision save"}),(0,r.jsx)("h2",{id:"revision-save-conflict-title",className:k().title,children:"save_in_progress"===t?"Save already in progress":"Revision changed on the server"}),(0,r.jsx)("p",{className:k().subtitle,children:"save_in_progress"===t?"Another editor is saving this revision right now. Wait for that save to finish, or choose how to keep your local edits.":"Someone else saved this revision while you were editing. Your session is based on an older copy."})]}),(0,r.jsx)("button",{type:"button",className:k().closeBtn,"aria-label":"Close",disabled:a,onClick:c,children:(0,r.jsx)(h.A,{size:16,"aria-hidden":"true"})})]}),(0,r.jsxs)("div",{className:k().body,children:[(0,r.jsxs)("section",{className:k().currentCard,"aria-label":"Latest saved revision",children:[(0,r.jsx)("p",{className:k().currentLabel,children:"Latest on server"}),(0,r.jsx)("p",{className:k().currentTitle,children:(0,C.RN)(e)}),(0,r.jsxs)("p",{className:k().currentMeta,children:["Last modified ",(m=e.updated_at||e.created_at)?new Date(m).toLocaleString():"unknown time"," by ",_]})]}),(0,r.jsxs)("section",{className:k().pendingCard,"aria-label":"Your pending save",children:[(0,r.jsx)("p",{className:k().currentLabel,children:"Your pending save"}),(0,r.jsxs)("p",{className:k().pendingRow,children:[(0,r.jsx)("span",{className:k().pendingKey,children:"Name"}),(0,r.jsx)("span",{className:k().pendingValue,children:f})]}),(0,r.jsxs)("p",{className:k().pendingRow,children:[(0,r.jsx)("span",{className:k().pendingKey,children:"Notes"}),(0,r.jsx)("span",{className:k().pendingValue,children:v})]})]}),(0,r.jsxs)("p",{className:k().hint,children:[(0,r.jsx)("strong",{children:"Save as new revision"})," keeps your edits on a new R#. Override replaces the server copy with yours."]})]}),(0,r.jsxs)("footer",{className:k().actions,children:[(0,r.jsx)(S.$n,{type:"button",variant:"outline",disabled:a,onClick:c,children:"Cancel"}),(0,r.jsx)(S.$n,{type:"button",variant:"outline",disabled:a,onClick:()=>void p(),children:"Reload latest"}),(0,r.jsx)(S.$n,{type:"button",variant:"outline",disabled:a,onClick:()=>void u(),children:"Override current"}),(0,r.jsx)(S.$n,{type:"button",variant:"primary",disabled:a,onClick:()=>void d(),children:"Save as new revisionâ¦"})]})]})});return(0,i.createPortal)((0,r.jsx)("div",{className:k().portal,children:y}),document.body)};var L=a(49104),D=a.n(L);let R=({open:e,busy:t=!1,defaultRevisionLabel:a,currentRevisionLabel:l="",initialDisplayName:s="",initialNotes:o="",onClose:c,onConfirm:d})=>
1{let u=(0,n.useId)(),h=(0,n.useId)(),[p,m]=(0,n.useState)(s),[_,f]=(0,n.useState)(o);if((0,n.useEffect)(()=>{e&&(m(s||a),f(o))},[e,s,o,a]),(0,n.useEffect)(()=>{if(!e)return;let a=e=>{"Escape"!==e.key||t||c()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[t,c,e]),!e||"u"<typeof document)return null;let v=()=>{d({revisionDisplayName:p.trim()||null,comment:_.trim()?_.trim():null})},y=l.trim(),g=y?`Creates a new revision in the project catalog from the current state. ${y} stays untouched.`:"Creates a new revision in the project catalog from the current state.",b=(0,r.jsx)("div",{className:D().backdrop,role:"presentation",onClick:t?void 0:c,children:(0,r.jsxs)("div",{className:D().frame,role:"dialog","aria-modal":"true","aria-labelledby":"save-as-revision-title",onClick:e=>e.stopPropagation(),"data-save-as-revision":"",children:[(0,r.jsxs)("header",{className:D().header,children:[(0,r.jsx)("h2",{id:"save-as-revision-title",className:D().title,children:"Save as New Revision"}),(0,r.jsx)("p",{className:D().subtitle,children:g})]}),(0,r.jsxs)("div",{className:D().body,children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:u,className:D().fieldLabel,children:"Revision Name"}),(0,r.jsx)("input",{id:u,type:"text",className:D().textInput,value:p,disabled:t,onChange:e=>m(e.target.value),onKeyDown:e=>{"Enter"!==e.key||t||(e.preventDefault(),v())}})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{htmlFor:h,className:D().fieldLabel,children:"Revision Notes (optional)"}),(0,r.jsx)("input",{id:h,type:"text",className:D().textInput,value:_,disabled:t,placeholder:"What changed in this revision?",onChange:e=>f(e.target.value)})]})]}),(0,r.jsxs)("footer",{className:D().actions,children:[(0,r.jsx)("button",{type:"button",className:D().cancelBtn,disabled:t,onClick:c,children:"Cancel"}),(0,r.jsx)("button",{type:"button",className:D().confirmBtn,disabled:t,onClick:v,children:t?"Savingâ¦":"Save New Revision"})]})]})});return(0,i.createPortal)((0,r.jsx)("div",{className:D().portal,children:b}),document.body)};var M=a(68161),A=a(93083),P=a.n(A);function $(e){switch(e){case"p6_status_code":return"Status";case"percent_complete":return"% Complete";case"planned_start_date":return"Planned start";case"planned_finish_date":return"Planned finish";case"actual_start_date":return"Actual start";case"actual_finish_date":return"Actual finish";case"status_date":return"Schedule status date";case"present":return"Added/removed";default:return e}}let T=({summary:e,title:t="Revision changes",onClose:a})=>{let n=e.counts,i=e.schedule_changes??[],l=e.total_changed;return(0,r.jsxs)("div",{className:P().panel,role:"dialog","aria-label":t,children:[(0,r.jsxs)("div",{className:P().header,children:[(0,r.jsx)("h3",{className:P().title,children:t}),a&&(0,r.jsx)("button",{type:"button",className:P().closeBtn,onClick:a,children:"Close"})]}),l>0&&(0,r.jsxs)("p",{className:P().summaryLine,children:[(0,r.jsx)("strong",{children:l})," activit",1===l?"y":"ies"," changed",e.truncated?" (list truncated)":""]}),(0,r.jsxs)("ul",{className:P().countList,children:[i.map(e=>{var t,a;return(0,r.jsxs)("li",{children:[$(e.field),":"," ",(t=e.before)||"â"," â"," ",(a=e.after)||"â"]},e.field)}),n.status_changed>0&&(0,r.jsxs)("li",{children:[n.status_changed," status"]}),n.percent_changed>0&&(0,r.jsxs)("li",{children:[n.percent_changed," % complete"]}),n.planned_finish_changed>0&&(0,r.jsxs)("li",{children:[n.planned_finish_changed," planned finish",n.start_slip_days_max>0?` (max slip ${n.start_slip_days_max}d)`:""]}),n.planned_start_changed>0&&(0,r.jsxs)("li",{children:[n.planned_start_changed," planned start"]}),n.actual_start_changed>0&&(0,r.jsxs)("li",{children:[n.actual_start_changed," actual start"]}),n.actual_finish_changed>0&&(0,r.jsxs)("li",{children:[n.actual_finish_changed," actual finish"]}),n.added>0&&(0,r.jsxs)("li",{children:[n.added," added"]}),n.removed>0&&(0,r.jsxs)("li",{children:[n.removed," removed"]})]}),e.activities.length>0&&(0,r.jsx)("div",{className:P().tableWrap,children:(0,r.jsxs)("table",{className:P().table,children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{children:"Activity"}),(0,r.jsx)("th",{children:"Changed fields"})]})}),(0,r.jsx)("tbody",{children:e.activities.map(e=>(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{children:e.activity_id}),(0,r.jsx)("td",{children:e.fields.map($).join(", ")})]},e.activity_id))})]})})]})};var E=a(5217),I=a(32395),B=a(71443),G=a(95632),F=a(4519),O=a(36628),H=a(37282),V=a(51223),W=a(98249);function z(e,t,a){let r=Object.keys(t);if(0===r.length)return e;let n={...e.activity_details};for(let e of r){let a=n[e],r=t[e];a&&r&&(n[e]=function(e,t){let a=void 0!==t.percent_complete?t.percent_complete/100:e.percent_complete,r=t.p6_status_code??e.p6_status_code,n=void 0!==t.actual_start_date?t.actual_start_date:e.actual_start_date,i=void 0!==t.actual_finish_date?t.actual_finish_date:e.actual_finish_date;return{...e,p6_status_code:r,percent_complete:a,actual_start_date:n,actual_finish_date:i}}(a,r))}let i=e.bars.map(r=>{if(!t[r.activity_id])return r;let i=n[r.activity_id];if(!i)return r;let l={...r,status:(0,W.dD)(i.p6_status_code)},s=(0,F.l$)(i,a);if(!s)return l;let o=(0,F.mx)(s.start,e.week_columns),c=Math.max(o,(0,F.mx)(s.finish,e.week_columns));
1return{...l,start_date:s.start,finish_date:s.finish,start_week_index:o,end_week_index:c}});return{...e,activity_details:n,bars:i}}function X(e,t){if(!e)return null;let a={};if(void 0!==t.p6_status_code&&t.p6_status_code!==e.p6_status_code&&(a.p6_status_code=t.p6_status_code),void 0!==t.percent_complete){let r=Math.round(100*e.percent_complete);t.percent_complete!==r&&(a.percent_complete=t.percent_complete)}return void 0!==t.actual_start_date&&t.actual_start_date!==e.actual_start_date&&(a.actual_start_date=t.actual_start_date),void 0!==t.actual_finish_date&&t.actual_finish_date!==e.actual_finish_date&&(a.actual_finish_date=t.actual_finish_date),Object.keys(a).length>0?a:null}function U(e,t){let a=[];for(let[r,n]of Object.entries(t)){let t=e.activity_details[r],i=X(t,n);i&&t&&a.push({activity_id:r,...i,clear_actual_start:null===n.actual_start_date&&null!=t.actual_start_date,clear_actual_finish:null===n.actual_finish_date&&null!=t.actual_finish_date})}return a}function Y(e,t){return{actual_start_date:void 0!==t.actual_start_date?t.actual_start_date:e.actual_start_date,actual_finish_date:void 0!==t.actual_finish_date?t.actual_finish_date:e.actual_finish_date}}function K(e,t,a){if(!a)return[];let r=[];for(let[n,i]of Object.entries(t)){let t=e.activity_details[n];if(!t||!X(t,i))continue;let{actual_start_date:l,actual_finish_date:s}=Y(t,i);(l&&l>a||s&&s>a)&&r.push(n)}return r.sort((e,t)=>e.localeCompare(t))}function q(e,t,a){let r="";for(let n of a){let a=e.activity_details[n],i=t[n];if(!a||!i)continue;let{actual_start_date:l,actual_finish_date:s}=Y(a,i);for(let e of[l,s])e&&e>r&&(r=e)}return r||null}function Q(e,t){let a=[];for(let[r,n]of Object.entries(e.activity_details))(n.actual_start_date&&n.actual_start_date>t||n.actual_finish_date&&n.actual_finish_date>t)&&a.push(r);return a.sort((e,t)=>e.localeCompare(t))}function Z(e,t){return{actualStartDate:t?.actual_start_date!==void 0?t.actual_start_date??null:e.actual_start_date??null,actualFinishDate:t?.actual_finish_date!==void 0?t.actual_finish_date??null:e.actual_finish_date??null}}function J(e,t){let a=t.activity_details[e.predecessor_activity_id];return{activityId:e.predecessor_activity_id,activityName:a?.activity_name,relationshipType:e.relationship_type,lagDays:e.lag_days,isDriving:!0===e.is_driving}}function ee(e){return{issues:function(e){let{viewModel:t,activityIds:a,scheduleStatusDate:r,drafts:n={},proposedStatusDate:i,comparisonStatusDate:l,statusDateActivityIds:s=a,actualOrderActivityIds:o=[]}=e,c=new Set(s),d=new Set(o);return Array.from(new Set(a)).sort((e,t)=>e.localeCompare(t)).map(e=>(function(e){var t;let a,r,{viewModel:n,activityId:i,scheduleStatusDate:l,drafts:s,includeStatusDate:o,includeActualOrder:c,comparisonStatusDate:d,proposedStatusDate:u}=e,h=n.activity_details[i],m=s[i],{actualStartDate:_,actualFinishDate:f}=h?Z(h,m):{actualStartDate:null,actualFinishDate:null},v=[];if(c){let e=_&&f&&_>f?{kind:"actual_date_order",message:`Actual start (${_}) is after actual finish (${f}).`}:null;e&&v.push(e)}if(o&&v.push(...(a=(t=d??l)?(0,p.XD)(t):"the schedule status date",r=[],_&&t&&_>t&&r.push({kind:"status_date",message:`Actual start (${_}) is after ${a}.`}),f&&t&&f>t&&r.push({kind:"status_date",message:`Actual finish (${f}) is after ${a}.`}),0===r.length&&t&&r.push({kind:"status_date",message:`Actual dates conflict with ${a}.`}),u&&r.push({kind:"status_date",message:`Suggested schedule status date: ${(0,p.XD)(u)}.`}),r)),0===v.length)return null;let{driving:y,other:g}=function(e,t){let a=e.dependency_edges.filter(e=>e.successor_activity_id===t),r=a.filter(e=>!0===e.is_driving).map(t=>J(t,e)),n=a.filter(e=>!0!==e.is_driving).map(t=>J(t,e));if(0===r.length&&0===n.length){let a=e.activity_details[t];if(a)for(let[t,r]of a.predecessors){let a=e.activity_details[t];n.push({activityId:t,activityName:a?.activity_name,relationshipType:r,lagDays:0,isDriving:!1})}}return{driving:r,other:n}}(n,i);return{activityId:i,activityName:h?.activity_name,scheduleStatusDate:l,problems:v,actualStartDate:_,actualFinishDate:f,drivingPredecessors:y,otherPredecessors:g}})({viewModel:t,activityId:e,scheduleStatusDate:r,drafts:n,includeStatusDate:c.has(e),includeActualOrder:d.has(e),comparisonStatusDate:l,proposedStatusDate:c.has(e)?i:void 0})).filter(e=>null!==e)}(e),scheduleStatusDate:e.scheduleStatusDate,proposedStatusDate:e.proposedStatusDate,attemptedStatusDate:e.attemptedStatusDate,mode:e.mode,intro:e.intro}}function et(e){let{viewModel:t,drafts:a,scheduleStatusDate:r}=e,n=K(t,a,r),i=function(e,t){let a=[];for(let[r,n]of Object.entries(t)){let t=e.activity_details[r];if(!t||!X(t,n))continue;let{actualStartDate:i,actualFinishDate:l}=Z(t,n);i&&l&&i>l&&a.push(r)}return a.sort((e,t)=>
1e.localeCompare(t))}(t,a);if(0===n.length&&0===i.length)return null;let l=Array.from(new Set([...n,...i])),s=i.length>0,o=n.length>0,c=o?q(t,a,n)??(0,p.Qe)():void 0,d=o?(0,p.Xn)(r,n,s?void 0:c):s?"Correct actual start and finish on the activities below, then try saving again.":void 0;return ee({viewModel:t,activityIds:l,scheduleStatusDate:r,drafts:a,proposedStatusDate:s?void 0:c,mode:s?"blocked":"resolvable",statusDateActivityIds:n,actualOrderActivityIds:i,intro:d})}function ea(e){let t=e.activityId?[e.activityId]:[];if(0===t.length)return null;let a=q(e.viewModel,e.drafts,t)??(0,p.Qe)();return ee({viewModel:e.viewModel,activityIds:t,scheduleStatusDate:e.scheduleStatusDate,drafts:e.drafts,proposedStatusDate:a,mode:"resolvable",statusDateActivityIds:t,intro:(0,p.Xn)(e.scheduleStatusDate,t,a)})}var er=a(84453),en=a(56218),ei=a(56768),el=a(15077),es=a(48728);function eo(e,t,a,r){let n=new Map;n.set(e,0);let i=[e];for(let e=1;e<=a;e+=1){let a=[];for(let l of i)for(let i of t){let t="predecessor"===r?i.successor_activity_id===l?i.predecessor_activity_id:null:i.predecessor_activity_id===l?i.successor_activity_id:null;if(!t)continue;let s=n.get(t);null!=s&&s<=e||(n.set(t,e),a.push(t))}i=a}return n}var ec=a(40698);let ed={FS:-3,SS:-1,FF:1,SF:3};function eu(e){return ed[(0,ec.u7)(e)]??0}function eh(e,t){return e.column!==t.column&&t.column<e.column}function ep(e,t){return t.column-e.column}function em(e){return{x:e.x,y:e.y+e.height/2}}function e_(e){let t=em(e);return{x:t.x-8,y:t.y}}function ef(e,t){return eh(e,t)?e.x:e.x+e.width}function ev(e,t,a){var r;if(e.column===t.column)return e_(t).x-8+a;return(ef(e,r=t)+r.x)/2+a}function ey(e,t){return(e.y+e.height+t.y)/2}function eg(e,t,a,r,n){let i=Math.min(t,a),l=Math.max(t,a);for(let t of r)if(!n.has(t.activityId)&&!(e<=t.y)&&!(e>=t.y+t.height)&&l>t.x&&i<t.x+t.width)return!0;return!1}function eb(e){if(0===e.length)return e;let t=[e[0]];for(let a=1;a<e.length;a+=1){let r=t[t.length-1],n=e[a];(r.x!==n.x||r.y!==n.y)&&t.push(n)}return t}function ew(e,t,a,r){return eb([e,{x:t,y:e.y},{x:t,y:a},r])}function ex(e,t,a,r,n,i){let l=e_(n),s=ev(r,n,i),o=ev(r,n,i);return eb([e,{x:t,y:e.y},{x:t,y:a},{x:s,y:a},{x:o,y:l.y},l])}function eS(e,t,a,r,n,i,l){let s=eb([...e,{x:t,y:a}]);if(l){let e=e_(n);return eb([...s,{x:ev(r,n,i),y:a},{x:ev(r,n,i),y:e.y},e])}return eb([...s,e_(n)])}function eC(e,t,a,r){let n,i=e.column===t.column||t.column<e.column,l=i?function(e,t,a,r){var n;let i,l=(n=t.column,a.filter(e=>e.column===n).sort((e,t)=>e.y-t.y)),s=l.findIndex(e=>e.activityId===t.activityId),o=s>0?l[s-1]:null,c=s>=0&&s<l.length-1?l[s+1]:null;if((i=e.column===t.column?l.findIndex(t=>t.activityId===e.activityId)<=s:e.y+e.height/2<=t.y+t.height/2)&&o)return ey(o,t)+r;if(!i&&c)return ey(t,c)+r;let d=8;return i?t.y-d+r:t.y+t.height+d+r}(e,t,r,a):em(t).y,s=em(t).y,o=e_(t),c=em(t),d={x:ef(e,t),y:e.y+e.height/2+a},u=function(e,t,a){var r,n,i,l,s;if(e.column===t.column){return e.x+e.width+(r=e,n=t,(r.column===n.column?56:Math.abs(n.x-ef(r,n)))/2)+a}if(i=e,l=t,i.column!==l.column&&1===Math.abs(ep(i,l))){let r,n,i,l;return r=ef(e,t),i=Math.abs((n=t.x)-r),l=Math.sign(n-r)||1,r+l*i*.5+a}return(ef(e,s=t)+s.x)/2+a}(e,t,a),h=new Set([e.activityId,t.activityId]),p=Math.abs(ep(e,t));return{points:n=e.column===t.column?ex(d,u,l,e,t,a):1===p?i?ex(d,u,l,e,t,a):ew(d,u,s,o):eg(d.y,d.x,u,r,h)?function(e,t,a,r,n,i,l,s,o){let c=Math.abs(ep(t,a)),d=i?l:em(a).y,u=eh(t,a)?t.x-28+r:t.x+t.width+28+r,h=c>=2?a.column>t.column?a.x-28+r:a.x+a.width+28+r:u,p=function(e,t,a,r,n){if(!eg(a,e,t,r,n))return a;let i=Math.min(e,t),l=Math.max(e,t),s=r.filter(e=>!n.has(e.activityId)&&l>e.x&&i<e.x+e.width);if(0===s.length)return a;let o=8,c=Math.max(...s.map(e=>e.y+e.height))+o;return eg(c,e,t,r,n)?Math.min(...s.map(e=>e.y))-o:c}(h,n,e.y,s,o);return p===e.y&&c<2?i?ex(e,n,l,t,a,r):ew(e,n,d,e_(a)):p===e.y?eg(e.y,e.x,n,s,o)?eS(eb([e,{x:u,y:e.y},{x:u,y:p},{x:h,y:p}]),n,d,t,a,r,i):i?ex(e,n,l,t,a,r):ew(e,n,d,e_(a)):eS(eb([e,{x:u,y:e.y},{x:u,y:p}]),n,d,t,a,r,i)}(d,e,t,a,u,i,l,r,h):i?ex(d,u,l,e,t,a):ew(d,u,s,o),labelX:u,labelY:(d.y+s)/2-6,labelTextAnchor:"middle",tip:c}}let ej=["FS","SS","FF","SF"];
1function ek(e){return"focus"===e.side?"focus":"predecessor"===e.side?e.hop>=2?"predecessor_depth_2":"predecessor_depth_1":e.hop>=2?"successor_depth_2":"successor_depth_1"}let eN=["predecessor_depth_2","predecessor_depth_1","focus","successor_depth_1","successor_depth_2"];var eL=a(20394),eD=a.n(eL);let eR=({activityId:e,x:t,y:a,hasComments:n,onSelect:i,onClose:l})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:eD().contextMenuBackdrop,"aria-label":"Close trace logic menu",onClick:l}),(0,r.jsxs)("div",{className:eD().contextMenu,"data-trace-logic-menu":"",style:{left:t,top:a},role:"menu","aria-label":`Trace logic actions for ${e}`,children:[(0,r.jsx)("button",{type:"button",className:eD().contextMenuItem,role:"menuitem",onClick:()=>i("set-current"),children:"Set as current activity (same as double-click)"}),(0,r.jsx)("button",{type:"button",className:eD().contextMenuItem,role:"menuitem",onClick:()=>i("details"),children:"See activity in detail"}),n?(0,r.jsx)("button",{type:"button",className:eD().contextMenuItem,role:"menuitem",onClick:()=>i("view-comments"),children:"View comments"}):null,(0,r.jsx)("button",{type:"button",className:eD().contextMenuItem,role:"menuitem",onClick:()=>i("add-comment"),children:"Add comment"})]})]});var eM=a(38322),eA=a(46056),eP=a.n(eA);function e$({value:e,hint:t,placeholder:a,id:i,ariaLabel:l="Regarding Activity ID",getSuggestions:s,onChange:o,onSelectSuggestion:c}){let d=(0,n.useId)(),u=(0,n.useRef)(null),[h,p]=(0,n.useState)(!1),[m,_]=(0,n.useState)(-1),f=(0,eM.o)(e,150),v=(0,n.useMemo)(()=>h?s(f):[],[s,h,f]);(0,n.useEffect)(()=>{if(!h)return;let e=e=>{u.current?.contains(e.target)||(p(!1),_(-1))};return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[h]),(0,n.useEffect)(()=>{m>=v.length&&_(v.length>0?0:-1)},[m,v.length]);let y=e=>{c(e),p(!1),_(-1)};return(0,r.jsxs)("div",{ref:u,className:eP().composeSearchRoot,children:[(0,r.jsx)("input",{id:i,type:"search",className:eP().panelComposeSearch,value:e,placeholder:a,"aria-label":l,"aria-autocomplete":"list","aria-controls":h&&v.length>0?d:void 0,"aria-expanded":h&&v.length>0,"aria-activedescendant":m>=0&&v[m]?`${d}-option-${m}`:void 0,title:t,"aria-describedby":"schedule-comment-compose-search-hint",onFocus:()=>{p(!0)},onChange:e=>{o(e.target.value),p(!0),_(-1)},onKeyDown:e=>{if("ArrowDown"===e.key){if(!h||0===v.length)return;e.preventDefault(),_(e=>e+1>=v.length?0:e+1);return}if("ArrowUp"===e.key){if(!h||0===v.length)return;e.preventDefault(),_(e=>e<=0?v.length-1:e-1);return}if("Enter"===e.key){h&&m>=0&&v[m]&&(e.preventDefault(),y(v[m].activityId));return}"Escape"===e.key&&(p(!1),_(-1))}}),h&&v.length>0?(0,r.jsx)("ul",{id:d,className:eP().composeSearchMenu,role:"listbox","aria-label":"Activity ID suggestions",children:v.map((e,t)=>(0,r.jsx)("li",{role:"presentation",children:(0,r.jsxs)("button",{type:"button",id:`${d}-option-${t}`,role:"option","aria-selected":t===m,className:`${eP().composeSearchOption}${t===m?` ${eP().composeSearchOptionActive}`:""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>y(e.activityId),children:[(0,r.jsx)("span",{className:eP().composeSearchOptionId,children:e.activityId}),e.label!==e.activityId?(0,r.jsx)("span",{className:eP().composeSearchOptionLabel,children:e.label}):null]})},e.activityId))}):null,(0,r.jsx)("span",{id:"schedule-comment-compose-search-hint",className:eP().panelComposeHint,children:t})]})}var eT=a(18091),eE=a(53007);let eI=`${eE.Ol}+ characters match activity ID substring; 1 character matches exact ID only.`,eB=({focusActivityId:e,rows:t,knownActivityIds:a,onFocusActivityId:i})=>{let[l,s]=(0,n.useState)(e),[o,c]=(0,n.useState)("");n.useEffect(()=>{s(e),c("")},[e]);let d=(0,n.useMemo)(()=>e=>(0,eT.b)(e,t),[t]),u=e=>{let t=e.trim();t?a.has(t)?(c(""),s(t),i(t)):c("Activity ID is not in this schedule view."):c("Enter an activity ID.")};return(0,r.jsxs)("div",{className:eD().activityPicker,children:[(0,r.jsx)("label",{className:eD().activityPickerLabel,htmlFor:"trace-logic-activity-id",children:"Activity ID"}),(0,r.jsxs)("div",{className:eD().activityPickerControls,children:[(0,r.jsx)("div",{className:eD().activityPickerFieldWrap,children:(0,r.jsx)(e$,{id:"trace-logic-activity-id",value:l,hint:eI,placeholder:"Search activity ID",ariaLabel:"Activity ID",getSuggestions:d,onChange:e=>{s(e),o&&c("")},onSelectSuggestion:u})}),(0,r.jsx)("button",{type:"button",className:eD().activityPickerTraceBtn,onClick:()=>u(l),children:"Trace"})]}),o?(0,r.jsx)("p",{className:eD().activityPickerError,role:"alert",children:o}):null]})},eG="#1a1f1f",eF="#3d9a5c",eO="#0d9488",eH="#4b5563";function eV(e,t){let a=(e??"").trim();return a?a.length<=t?a:`${a.slice(0,Math.max(0,t-1))}â¦`:""}let eW=[{swatchClass:`${eD().legendSwatchBorder} ${eD().legendSwatchBorderPredecessor}
1`,label:"Predecessors",detail:"Mint fill and green border â drivers of the focused activity."},{swatchClass:`${eD().legendSwatchBorder} ${eD().legendSwatchBorderFocus}`,label:"Current activity",detail:"Light fill and thick black border â the traced activity."},{swatchClass:`${eD().legendSwatchBorder} ${eD().legendSwatchBorderSuccessor}`,label:"Successors",detail:"Teal fill and teal border â activities driven by the focus."}],ez=[{badge:"CP",badgeClass:eD().graphNodeCpBadge,label:"CP â Critical path",detail:"Red badge with white text beside the activity ID â zero-total-float critical path."},{badge:"NCP",badgeClass:eD().graphNodeNcpBadge,label:"NCP â Near-critical path",detail:"Peach badge beside the activity ID â activity adjacent to the critical path."}],eX=[{swatchClass:eD().legendSwatchDepMuted,label:"Non-forward link (default)",detail:"Muted opacity â same column or backward target (SS/SF/FF dash still applies)."},{swatchClass:eD().legendSwatchDepDimmed,label:"Dimmed during selection",detail:"When you click a node, unrelated edges fade so connected links stand out."},{swatchClass:eD().legendSwatchDepDriving,label:"â
Driving tie",detail:"â
prefix on a callout label marks a driving relationship â the tie that actually controls the successor's early start/finish (from USD CPM dates). Example: â
FS +5d. Hover the edge for the full tooltip."},{swatchClass:eD().legendSwatchDepNonDriving,label:"Non-driving tie",detail:"Has float â does not control the successor's early start/finish."},{swatchClass:eD().legendSwatchDepCallout,label:"Edge callout (hover)",detail:"Full two-line box on hover only: row 1 = other activity ID; row 2 = â
, type, lag. Leader links to the edge."},{swatchClass:eD().legendSwatchDepCompact,label:"Show-all badge",detail:"Single-line type/lag (and â
if driving) in a light box when Show all edge labels is on."}],eU=[{label:"Click node",detail:"Highlight in/out edges and show full two-line callouts on those ties (leader + endpoints). Click empty space to clear."},{label:"Set as current",detail:"After clicking a node, use the toolbar button, double-click the node, or right-click â Set as current."},{label:"Right-click node",detail:"Menu: set current, details, comments."},{label:"Hover edge",detail:"Full two-line callout with leader line; highlights the edge and both endpoint nodes."},{label:"Show All Tie Labels",detail:"Single-line type/lag badges in light boxes on every edge. Hover one edge for the full two-line callout."},{label:"Pan & view",detail:"Right-drag empty space to pan. Use Center on Current, Reset View, and Zoom."}],eY=[{swatchClass:eD().legendSwatchDepFS,label:"Finish-to-start (FS)",detail:"Solid connector â default CPM link."},{swatchClass:eD().legendSwatchDepSS,label:"Start-to-start (SS)",detail:"Dashed connector with SS label."},{swatchClass:eD().legendSwatchDepFF,label:"Finish-to-finish (FF)",detail
1:"Dotted connector; callout shows FF and lag when visible."},{swatchClass:eD().legendSwatchDepSF,label:"Start-to-finish (SF)",detail:"Dash-dot connector with SF label."}],eK=({variant:e="info"})=>{let[t,a]=(0,n.useState)(!1),l=(0,n.useRef)(null),s=(0,n.useRef)(null),[o,c]=(0,n.useState)(null),d=()=>{let e=l.current,t=s.current;if(!e||!t)return;let a=e.getBoundingClientRect(),r=t.getBoundingClientRect(),n=a.right-r.width,i=a.bottom+6;n=Math.max(8,Math.min(n,window.innerWidth-r.width-8)),c({top:i=Math.max(8,Math.min(i,window.innerHeight-r.height-8)),left:n})};(0,n.useLayoutEffect)(()=>{t?d():c(null)},[t]),(0,n.useEffect)(()=>{if(!t)return;let e=e=>{let t=e.target;l.current?.contains(t)||s.current?.contains(t)||a(!1)},r=e=>{"Escape"===e.key&&a(!1)};return window.addEventListener("resize",d),document.addEventListener("mousedown",e),document.addEventListener("keydown",r),()=>{window.removeEventListener("resize",d),document.removeEventListener("mousedown",e),document.removeEventListener("keydown",r)}},[t]);let u=t&&"u">typeof document?(0,i.createPortal)((0,r.jsxs)("div",{ref:s,className:eD().legendPopover,"data-trace-logic-legend":"",role:"dialog","aria-label":"Trace logic colors and edges",style:o?{position:"fixed",top:o.top,left:o.left,right:"auto"}:{position:"fixed",top:-9999,left:-9999,visibility:"hidden"},children:[(0,r.jsx)("p",{className:eD().legendTitle,children:"Trace logic node roles"}),(0,r.jsx)("ul",{className:eD().legendList,children:eW.map(e=>(0,r.jsxs)("li",{className:eD().legendItem,children:[(0,r.jsx)("span",{className:`${eD().legendSwatch} ${e.swatchClass}`,"aria-hidden":"true"}),(0,r.jsxs)("span",{className:eD().legendText,children:[(0,r.jsx)("strong",{children:e.label}),(0,r.jsx)("span",{className:eD().legendDetail,children:e.detail})]})]},e.label))}),(0,r.jsx)("p",{className:eD().legendSectionTitle,children:"Critical path badges"}),(0,r.jsx)("ul",{className:eD().legendList,children:ez.map(e=>(0,r.jsxs)("li",{className:eD().legendItem,children:[(0,r.jsx)("span",{className:eD().legendBadgeSample,"aria-hidden":"true",children:(0,r.jsx)("span",{className:e.badgeClass,children:e.badge})}),(0,r.jsxs)("span",{className:eD().legendText,children:[(0,r.jsx)("strong",{children:e.label}),(0,r.jsx)("span",{className:eD().legendDetail,children:e.detail})]})]},e.badge))}),(0,r.jsx)("p",{className:eD().legendSectionTitle,children:"Interaction"}),(0,r.jsx)("ul",{className:eD().legendList,children:eU.map(e=>(0,r.jsx)("li",{className:eD().legendItem,children:(0,r.jsxs)("span",{className:eD().legendText,children:[(0,r.jsx)("strong",{children:e.label}),(0,r.jsx)("span",{className:eD().legendDetail,children:e.detail})]})},e.label))}),(0,r.jsx)("p",{className:eD().legendSectionTitle,children:"Dependency edges"}),(0,r.jsxs)("ul",{className:eD().legendList,children:[eX.map(e=>(0,r.jsxs)("li",{className:eD().legendItem,children:[(0,r.jsx)("span",{className:`${eD().legendSwatch} ${e.swatchClass}`,"aria-hidden":"true"}),(0,r.jsxs)("span",{className:eD().legendText,children:[(0,r.jsx)("strong",{children:e.label}),(0,r.jsx)("span",{className:eD().legendDetail,children:e.detail})]})]},e.label)),eY.map(e=>(0,r.jsxs)("li",{className:eD().legendItem,children:[(0,r.jsx)("span",{className:`${eD().legendSwatch} ${e.swatchClass}`,"aria-hidden":"true"}),(0,r.jsxs)("span",{className:eD().legendText,children:[(0,r.jsx)("strong",{children:e.label}),(0,r.jsx)("span",{className:eD().legendDetail,children:e.detail})]})]},e.label))]}),(0,r.jsxs)("p",{className:eD().legendDetail,children:["Border colors: focus ",eG,", predecessor"," ",eF,", successor"," ",eO,"."]})]}),document.body):null;return(0,r.jsxs)("div",{className:eD().legendWrap,children:[(0,r.jsx)("button",{ref:l,type:"button",className:"labeled"===e?eD().legendLabeledBtn:eD().legendInfoBtn,"aria-label":"Trace logic legend","aria-expanded":t,"aria-haspopup":"dialog",title:"Trace logic legend",onClick:()=>a(e=>!e),children:"labeled"===e?"Legend":"i"}),u]})},eq=({selectedActivityId:e,focusActivityId:t,showZoomControls:a,zoomPercent:n,showAllEdgeLabels:i,onSetCurrentFromSelection:l,onCenterOnFocus:s,onResetPan:o,onZoomPercentChange:c,onShowAllEdgeLabelsChange:d})=>(0,r.jsxs)("div",{className:eD().graphToolbar,children:[null!=e&&e!==t?(0,r.jsxs)("button",{type:"button",className:eD().graphToolbarBtnPrimary,onClick:l,children:["Set ",e," as current"]}):null,(0,r.jsx)("button",{type:"button",className:eD().graphToolbarBtn,onClick:s,title:"Clear pan offset and scroll to center the current activity",children:"Center on Current"}),(0,r.jsx)("button",{type:"button",className:eD().graphToolbarBtn,onClick:o,title:"Clear pan, selection highlight, and scroll to center the current activity",children:"Reset View"}),a?(0,r.jsxs)("label",{className:eD().graphZoomControl,children:[(0,r.jsx)("span",{className:eD().graphZoomLabel,children:"Zoom"}),(0,r.jsx)("input",{type:"range",min:50,max:100,step:5,value:n,onChange:e=>c(Number.parseInt(e.target.value,10))}),(0,r.jsxs)("span",{className:eD().graphZoomValue,children:[n,"%"]})]}):null,(0,r.jsxs)("label",{className:eD().graphTieLabelsToggle,children:[(0,r.jsx)("span",{className:eD().graphTieLabelsText,children:"Show All Tie Labels"}),(0,r.jsxs)("span",{className:eD().graphTieSwitch,children:[(0,r.jsx)("input",{type:"checkbox",checked:i,onChange:e=>d(e.target.checked)}),(0,r.jsx)("span",{className:eD().graphTieSwitchTrack,"aria-hidden":"true"})]})]})]});function eQ(e,t,a){return null!=a&&!a.connectedEdgeIds.has(e)}let eZ={"--trace-edge-dimmed-opacity":String(.30000000000000004),"--trace-edge-dimmed-muted-opacity":String(.30000000000000004),"--trace-edge-muted-opacity":String(.15000000000000002)},eJ=({kind:e})=>{let t="CP"===e;return(0,r.jsx)("span",{className:t?eD().graphNodeCpBadge:eD().graphNode
1NcpBadge,title:t?"Critical path (CP)":"Near-critical path (NCP)",children:e})};function e0(e,t,a){return Math.min(a,Math.max(t,e))}function e1(e,t){let a=e.x-t.x,r=e.y-t.y;return a*a+r*r}function e2(e,t){let a=e.x,r=e.x+e.width,n=e.y,i=e.y+e.height;if(t.x<a)return{x:a,y:e0(t.y,n,i)};if(t.x>r)return{x:r,y:e0(t.y,n,i)};if(t.y<n)return{x:e0(t.x,a,r),y:n};if(t.y>i)return{x:e0(t.x,a,r),y:i};let l=[{point:{x:a,y:t.y},distance:t.x-a},{point:{x:r,y:t.y},distance:r-t.x},{point:{x:t.x,y:n},distance:t.y-n},{point:{x:t.x,y:i},distance:i-t.y}];return l.sort((e,t)=>e.distance-t.distance),l[0]?.point??{x:a,y:n}}function e5(e){e.textX=e.boxX+e.boxWidth/2,e.endpointTextY=e.boxY+4+5.5,e.typeTextY=e.boxY+4+11+2+5.5}function e6(e){let t=e2({x:e.boxX,y:e.boxY,width:e.boxWidth,height:e.boxHeight},{x:e.anchorX,y:e.anchorY});e.leaderStartX=t.x,e.leaderStartY=t.y,e5(e)}function e3(e,t,a=e=>e.boxY){let r=new Map;for(let t of e){let e=Math.round(t.anchorX/24),a=r.get(e)??[];a.push(t),r.set(e,a)}for(let e of Array.from(r.values())){e.sort((e,t)=>a(e)-a(t));for(let a=1;a<e.length;a+=1){let r=e[a-1],n=e[a],i=r.boxY+r.boxHeight+3;n.boxY<i&&(n.boxY+=i-n.boxY,t(n))}for(let a=e.length-2;a>=0;a-=1){let r=e[a+1],n=e[a],i=r.boxY-3-n.boxHeight;n.boxY>i&&(n.boxY=i,t(n))}}return e}function e4(e){e.textY=e.boxY+e.boxHeight/2}let e8=({layout:e,layoutMode:t,viewportFit:a,barsByActivity:i,activityDetails:l,wbsNameByCode:s,getActivityCommentCount:o,interactionEpoch:c=0,activityPicker:d,onFocusActivityId:u,onShowActivityDetails:h,onViewComments:p,onAddComment:m})=>{let{ref:_,viewportEl:f,panOffset:v,resetPan:y}=function(){let[e,t]=(0,n.useState)(null),[a,r]=(0,n.useState)({x:0,y:0}),i=(0,n.useRef)(a);(0,n.useEffect)(()=>{i.current=a},[a]);let l=(0,n.useCallback)(()=>{r({x:0,y:0})},[]),s=(0,n.useCallback)(e=>{t(e)},[]);return(0,n.useEffect)(()=>{if(!e)return;let t=!1,a=0,n=0,l=0,s=0,o=e=>e instanceof Element&&!!(e.closest("[data-trace-logic-node]")||e.closest("[data-trace-logic-menu]")),c=e=>2===e||1===e,d=e=>{o(e.target)||e.preventDefault()},u=r=>{!c(r.button)||o(r.target)||(r.preventDefault(),t=!0,a=r.clientX,n=r.clientY,l=i.current.x,s=i.current.y,e.classList.add("trace-logic-panning"))},h=e=>{t&&(e.preventDefault(),r({x:l+(e.clientX-a),y:s+(e.clientY-n)}))},p=a=>{t&&c(a.button)&&(t=!1,e.classList.remove("trace-logic-panning"))};return e.addEventListener("contextmenu",d),e.addEventListener("mousedown",u),document.addEventListener("mousemove",h),document.addEventListener("mouseup",p),()=>{e.removeEventListener("contextmenu",d),e.removeEventListener("mousedown",u),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",p),e.classList.remove("trace-logic-panning")}},[e]),{ref:s,viewportEl:e,panOffset:a,resetPan:l}}(),{fitScale:g,renderedWidth:b,renderedHeight:w,viewportSize:x}
1=function(e,t,a,r){let[i,l]=(0,n.useState)({width:0,height:0});return(0,n.useLayoutEffect)(()=>{if(!e)return;let t=()=>{l({width:e.clientWidth,height:e.clientHeight})};if(t(),"u"<typeof ResizeObserver)return;let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[e]),(0,n.useMemo)(()=>{if("none"===r||i.width<=0||t<=0)return{fitScale:1,renderedWidth:t,renderedHeight:a,viewportSize:i};let e=Math.max(.35,Math.min(1,i.width/t));return{fitScale:e,renderedWidth:t*e,renderedHeight:a*e,viewportSize:i}},[a,t,r,i])}(f,e.width,e.height,a),S=(0,n.useRef)(t),[C,j]=(0,n.useState)(null),[k,N]=(0,n.useState)(null),[L,D]=(0,n.useState)(null),[R,M]=(0,n.useState)(!1),[A,P]=(0,n.useState)(100),$=g*("fit-width"===a?A/100:1),T=e.width*$,E=e.height*$,I=(0,n.useCallback)(t=>{if(!f||e.error||x.width<=0)return;let a=e.focusX*$,r=e.focusY*$,n=Math.max(0,T-f.clientWidth),i=Math.max(0,E-f.clientHeight),l=Math.max(0,Math.min(n,a-f.clientWidth/2)),s=Math.max(0,Math.min(i,r-f.clientHeight/2));f.scrollTo({left:l,top:s,behavior:t})},[e.error,e.focusX,e.focusY,$,E,T,f,x.width]),B=(0,n.useCallback)((e="smooth")=>{y(),I(e),requestAnimationFrame(()=>{requestAnimationFrame(()=>{I("smooth"===e?"auto":e)})})},[y,I]),{edges:G}=(0,n.useMemo)(()=>(function(e,t,a,r){let n=new Map(e.map(e=>[e.activityId,e])),i=[];for(let e of t){let t=n.get(e.predecessor_activity_id),a=n.get(e.successor_activity_id);t&&a&&i.push({edge:e,from:t,to:a})}return{edges:i.map(t=>{var n;let i,l=eu(t.edge.relationship_type),{points:s,labelX:o,labelY:c,labelTextAnchor:d,tip:u}=eC(t.from,t.to,l,e),h=(0,ec.$C)(t.edge,a,r);return{edge:t.edge,edgeId:t.edge.relationship_id,path:function(e){let t=eb(e);if(0===t.length)return"";let a=`M ${t[0].x} ${t[0].y}`;for(let e=1;e<t.length;e+=1)a+=` L ${t[e].x} ${t[e].y}`;return a}(s),routePoints:s,arrowHead:(i=u.x-8,`${u.x},${u.y} ${i},${u.y-4} ${i},${u.y+4}`),typeLine:(0,ec.rS)(t.edge),label:(0,ec.rS)(t.edge),tooltip:(0,ec.W9)(t.edge),labelX:o,labelY:c,labelTextAnchor:d,stroke:h,dashArray:(0,ec.aQ)(t.edge.relationship_type),muted:(n=t.from,t.to.column<=n.column)}})}})(e.nodes,e.edges,e.focusActivityId,l),[l,e.edges,e.focusActivityId,e.nodes]),F=(0,n.useMemo)(()=>(function(e,t){if(!e)return null;let a=new Set([e]),r=new Set;for(let i of t){var n;n=i.edge,e&&(n.predecessor_activity_id===e||n.successor_activity_id===e)&&(r.add(i.edgeId),a.add(i.edge.predecessor_activity_id),a.add(i.edge.successor_activity_id))}return{selectedActivityId:e,connectedActivityIds:a,connectedEdgeIds:r}})(L,G),[G,L]),O=(0,n.useMemo)(()=>[...G].sort((e,t)=>{let a=eQ(e.edgeId,k,F);return a===eQ(t.edgeId,k,F)?0:a?-1:1}),[k,G,F]),H=(0,n.useMemo)(()=>new Map(O.map(e=>[e.edgeId,e])),[O]),V=L??e.focusActivityId,z=(0,n.useMemo)(()=>{let e=new Set;return(k&&e.add(k),null==F||R||F.connectedEdgeIds.forEach(t=>{e.add(t)}),0===e.size)?[]:e3(O.filter(t=>e.has(t.edgeId)).map(e=>({edgeId:e.edgeId,endpointLine:(0,ec.M4)(e.edge,V),typeLine:(0,ec.rS)(e.edge),labelX:e.labelX,labelY:e.labelY,labelTextAnchor:e.labelTextAnchor,routePoints:e.routePoints})).map(e=>(function(e){var t,a;let{width:r,height:n}=(t=e.endpointLine,a=e.typeLine,{width:5.6*Math.max(t.length,a.length)+8,height:32}),i=function(e,t){if(0===e.length)return t;if(1===e.length)return e[0];let a=e[0],r=e1(a,t);for(let n=1;n<e.length;n+=1){let i=function(e,t,a){let r=t.x-e.x,n=t.y-e.y;if(0===r&&0===n)return e;let i=e0(((a.x-e.x)*r+(a.y-e.y)*n)/(r*r+n*n),0,1);return{x:e.x+r*i,y:e.y+n*i}}(e[n-1],e[n],t),l=e1(i,t);l<r&&(a=i,r=l)}return a}(e.routePoints,{x:e.labelX,y:e.labelY}),l=i.x-r/2,s=i.y-n/2,o=e2({x:l,y:s,width:r,height:n},i),c={edgeId:e.edgeId,endpointLine:e.endpointLine,typeLine:e.typeLine,anchorX:i.x,anchorY:i.y,boxX:l,boxY:s,boxWidth:r,boxHeight:n,leaderStartX:o.x,leaderStartY:o.y,textX:0,endpointTextY:0,typeTextY:0};return e5(c),c})(e)),e6,e=>e.boxY-e.anchorY)},[V,k,H,O,F,R]),X=(0,n.useMemo)(()=>R?e3(O.filter(e=>e.edgeId!==k).map(e=>({edgeId:e.edgeId,typeLine:(0,ec.rS)(e.edge),labelX:e.labelX,labelY:e.labelY,labelTextAnchor:e.labelTextAnchor})).map(e=>(function(e){let{width:t,height:a}={width:5.6*e.typeLine.length+4,height:12},r=e.labelX-t/2,n=e.labelY-a/2;return{edgeId:e.edgeId,typeLine:e.typeLine,textX:e.labelX,textY:e.labelY,textAnchor:"middle",anchorX:e.labelX,boxX:r,boxY:n,boxWidth:t,boxHeight:a}})(e)),e4):[],[k,O,R]),U=(0,n.useMemo)(()=>{let e=new Set;if(k){let t=H.get(k)?.edge;t&&(e.add(t.predecessor_activity_id),e.add(t.successor_activity_id))}return null==F||R||F.connectedEdgeIds.forEach(t=>{let a=H.get(t)?.edge;a&&(e.add(a.predecessor_activity_id),e.add(a.successor_activity_id))}),e.size>0?e:null},[k,H,F,R]);(0,n.useLayoutEffect)(()=>{D(null),N(null)},[e.focusActivityId,c]),(0,n.useLayoutEffect)(()=>
1{if(!f||e.error||x.width<=0)return;let a=S.current!==t;S.current=t,B(a?"auto":"smooth")},[B,e.error,e.focusActivityId,e.focusX,e.focusY,t,w,b,$,E,T,a,A,f,x.height,x.width]);let Y=(0,r.jsxs)("div",{className:eD().graphControls,children:[(0,r.jsxs)("div",{className:eD().graphControlsLeft,children:[(0,r.jsx)(eB,{focusActivityId:d.focusActivityId,rows:d.rows,knownActivityIds:d.knownActivityIds,onFocusActivityId:u}),(0,r.jsx)(eK,{variant:"labeled"})]}),(0,r.jsx)(eq,{selectedActivityId:L,focusActivityId:e.focusActivityId,showZoomControls:"fit-width"===a,zoomPercent:A,showAllEdgeLabels:R,onSetCurrentFromSelection:()=>{L&&(D(null),N(null),u(L))},onCenterOnFocus:()=>B("smooth"),onResetPan:()=>{D(null),N(null),B("smooth")},onZoomPercentChange:P,onShowAllEdgeLabelsChange:M})]});return"unknown_focus_activity"===e.error?(0,r.jsxs)("div",{className:eD().graphShell,style:eZ,children:[Y,(0,r.jsx)("p",{className:eD().graphError,role:"alert",children:"Activity ID is not in this schedule view. Clear Gantt filters or pick another activity in the search field above."})]}):0===e.nodes.length?(0,r.jsxs)("div",{className:eD().graphShell,style:eZ,children:[Y,(0,r.jsx)("p",{className:eD().graphEmpty,children:"Select an activity on the Gantt, then open Trace Logic to view drivers and successors."})]}):(0,r.jsxs)("div",{className:eD().graphShell,style:eZ,children:[Y,(0,r.jsxs)("div",{className:eD().graphCanvas,children:[(0,r.jsxs)("div",{ref:_,className:`${eD().graphViewport}${"fit-width"===a?` ${eD().graphViewportFitWidth}`:""}`,"data-trace-layout-mode":t,title:"Right-drag to pan trace logic",onClick:e=>{var t;!((t=e.target)instanceof Element)||t.closest("[data-trace-logic-node]")||t.closest("path")||t.closest("[data-trace-logic-edge-callout]")||t.closest("[data-trace-logic-menu]")||D(null)},children:[(0,r.jsx)("div",{className:eD().graphViewportHint,"aria-hidden":"true",children:"Right-drag empty space to pan. Click a node to highlight its ties; double-click to trace it."}),(0,r.jsx)("svg",{className:eD().graphSvg,width:T,height:E,"aria-label":"Trace logic diagram",children:(0,r.jsxs)("g",{transform:`translate(${v.x} ${v.y}) scale(${$})`,children:[(0,r.jsx)("g",{className:eD().graphEdgesLayer,"aria-hidden":!1,children:O.map(e=>{let t=k===e.edgeId,a=eQ(e.edgeId,k,F),n=null!=F&&F.connectedEdgeIds.has(e.edgeId),i=!1===e.edge.is_driving&&!a&&!n&&!t,l=[a?eD().graphEdgeDimmed:null,n?eD().graphEdgeConnected:null,t?eD().graphEdgeHovered:null,i?eD().graphEdgeNonDriving:null].filter(Boolean).join(" ")||void 0,s=e.muted&&!n;return(0,r.jsxs)("g",{className:l,children:[(0,r.jsx)("title",{children:e.tooltip}),(0,r.jsx)("path",{d:e.path,className:eD().graphEdgeHitArea,fill:"none",stroke:"transparent",strokeWidth:10,"aria-label":e.tooltip,onMouseEnter:()=>N(e.edgeId),onMouseLeave:()=>N(t=>t===e.edgeId?null:t)}),(0,r.jsx)("path",{d:e.path,className:`${eD().graphEdgePath}${s?` ${eD().graphEdgeMuted}`:""}`,fill:"none",stroke:eH,strokeWidth:t?2.75:n?2.5:2,strokeDasharray:e.dashArray,pointerEvents:"none"})]},e.edgeId)})}),(0,r.jsx)("g",{className:eD().graphNodeLayer,children:e.nodes.map(t=>{var a,n,l;let c,d={fillClassName:(c=function(e){switch(e){case"predecessor":return{fillClassName:eD().nodeFillPredecessor,fillColor:"#e7f6ee"};case"successor":return{fillClassName:eD().nodeFillSuccessor,fillColor:"#e4f5f6"};default:return{fillClassName:eD().nodeFillFocus,fillColor:"#f4f6f6"}}}((a={side:t.side,bar:i.get(t.activityId)??null,detail:t.detail}).side)).fillClassName,fillColor:c.fillColor,borderColor:function(e){switch(e){case"focus":return eG;case"predecessor":return eF;case"successor":return eO;default:return"#8a9191"}}(a.side),pathBadge:(n=a.detail,l=a.bar,(0,W.pY)(n,l))},h=(0,W.bY)(t.detail,s),p=t.detail.activity_description||t.detail.activity_name,m=[h,p].filter(Boolean).join(" â "),_=o(t.activityId),f=F?.selectedActivityId===t.activityId,v=F?.connectedActivityIds.has(t.activityId)??!1,y=U?.has(t.activityId)??!1,g=null!=F&&!v&&!y,b=eV(h,18),w=eV(p,42);return(0,r.jsx)("foreignObject",{x:t.x,y:t.y,width:t.width,height:t.height,className:g?eD().graphNodeDimmed:void 0,children:(0,r.jsxs)("button",{type:"button","data-trace-logic-node":"",className:`${eD().graphNode} ${d.fillClassName}${f?` ${eD().graphNodeSelected}`:""}${v&&!f?` ${eD().graphNodeConnected}`:""}${y?` ${eD().graphNodeEdgeHovered}`:""}`,style:{borderColor:d.borderColor,backgroundColor:d.fillColor},title:m||void 0,"aria-label":`${t.activityId} trace logic node${d.pathBadge?`, ${d.pathBadge}`:""}${_>0?`, ${_} comment thread${1===_?"":"s"}`:""}${f?", selected":""}${v&&!f?", connected dependency":""}`,"aria-current":t.activityId===e.focusActivityId?"true":void 0,"aria-pressed":f?"true":void 0,onClick:e=>{e.stopPropagation(),D(e=>e===t.activityId?null:t.activityId)},onDoubleClick:e=>{e.stopPropagation(),D(null),N(null),u(t.activityId)},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),j({activityId:t.activityId,x:e.clientX,y:e.clientY})},children:[(0,r.jsxs)("span",{className:eD().graphNodeHeader,children:[(0,r.jsxs)("span",{className:eD().graphNodeIdGroup,children:[(0,r.jsx)("span",{className:eD().graphNodeId,children:t.activityId}),d.pathBadge?(0,r.jsx)(eJ,{kind:d.pathBadge}):null]}),_>0?(0,r.jsx)("span",{className:eD().graphNodeCommentBadge,title:`${_} comment thread${1===_?"":"s"}`,children:_}):null]}),b?(0,r.jsx)("span",{className:eD().graphNodeWbs,children:b}):null,w?(0,r.jsx)("span",{className:eD().graphNodeDescription,children:w}):null]})},t.activityId)})}),(0,r.jsx)("g",{className:eD().graphArrowLayer,children:O.map(e=>{let t=k===e.edgeId,a=eQ(e.edgeId,k,F),n=null!=F&&F.connectedEdgeIds.has(e.edgeId),i=!1===e.edge.is_driving&&!a&&!n&&!t,l=[a?eD().graphEdgeDimmed:null,n?eD().graphEdgeConnected:null,t?eD().graphEdgeHovered:null,i?eD().graphEdgeNonDriving:null].filter(
1Boolean).join(" ")||void 0,s=e.muted&&!n;return(0,r.jsx)("g",{className:l,children:(0,r.jsx)("polygon",{points:e.arrowHead,className:`${eD().graphEdgeArrowHead}${s?` ${eD().graphEdgeMuted}`:""}${t?` ${eD().graphEdgeArrowHeadHovered}`:""}`,fill:eH,pointerEvents:"none"})},`${e.edgeId}-arrow`)})}),(0,r.jsx)("g",{className:eD().graphEdgeCompactBadgesLayer,"aria-hidden":!1,children:X.map(e=>{let t=H.get(e.edgeId);if(!t)return null;let a=eQ(t.edgeId,k,F);return(0,r.jsxs)("g",{className:a?eD().graphEdgeCompactBadgeDimmed:void 0,"data-trace-logic-edge-callout":"",onMouseEnter:()=>N(t.edgeId),onMouseLeave:()=>N(e=>e===t.edgeId?null:e),children:[(0,r.jsx)("rect",{x:e.boxX,y:e.boxY,width:e.boxWidth,height:e.boxHeight,rx:2,ry:2,className:eD().graphEdgeCompactBadgeBox}),(0,r.jsx)("rect",{x:e.boxX,y:e.boxY,width:e.boxWidth,height:e.boxHeight,rx:2,ry:2,className:eD().graphEdgeCompactBadgeHitArea}),(0,r.jsx)("text",{x:e.textX,y:e.textY,className:`${eD().graphEdgeCompactBadgeText}${!0===t.edge.is_driving?` ${eD().graphEdgeLabelTextDriving}`:""}`,textAnchor:e.textAnchor,dominantBaseline:"middle",pointerEvents:"none",children:e.typeLine})]},`${e.edgeId}-compact`)})}),(0,r.jsx)("g",{className:eD().graphEdgeLabelsLayer,"aria-hidden":!1,children:z.map(e=>{let t=H.get(e.edgeId);if(!t)return null;let a=k===t.edgeId,n=eQ(t.edgeId,k,F),i=null!=F&&F.connectedEdgeIds.has(t.edgeId),l=[eD().graphEdgeLabelCallout,n?eD().graphEdgeLabelCalloutDimmed:null,i?eD().graphEdgeLabelCalloutConnected:null,a?eD().graphEdgeLabelCalloutHovered:null].filter(Boolean).join(" ");return(0,r.jsxs)("g",{className:l,"data-trace-logic-edge-callout":"",onMouseEnter:()=>N(t.edgeId),onMouseLeave:()=>N(e=>e===t.edgeId?null:e),children:[(0,r.jsx)("line",{x1:e.leaderStartX,y1:e.leaderStartY,x2:e.anchorX,y2:e.anchorY,className:eD().graphEdgeLabelLeader}),(0,r.jsx)("rect",{x:e.boxX,y:e.boxY,width:e.boxWidth,height:e.boxHeight,rx:3,ry:3,className:eD().graphEdgeLabelBox}),(0,r.jsx)("text",{x:e.textX,y:e.endpointTextY,className:eD().graphEdgeLabelEndpointText,textAnchor:"middle",dominantBaseline:"middle",pointerEvents:"none",children:e.endpointLine}),(0,r.jsx)("text",{x:e.textX,y:e.typeTextY,className:`${eD().graphEdgeLabelText}${!0===t.edge.is_driving?` ${eD().graphEdgeLabelTextDriving}`:""}`,textAnchor:"middle",dominantBaseline:"middle",pointerEvents:"none",children:e.typeLine})]},`${e.edgeId}-label`)})})]})})]}),(0,r.jsxs)("div",{className:eD().graphRoleLegend,"aria-hidden":"true",children:[(0,r.jsxs)("span",{className:eD().graphRoleLegendItem,children:[(0,r.jsx)("span",{className:`${eD().graphRoleSwatch} ${eD().graphRoleSwatchPred}`}),"Predecessors"]}),(0,r.jsxs)("span",{className:eD().graphRoleLegendItem,children:[(0,r.jsx)("span",{className:`${eD().graphRoleSwatch} ${eD().graphRoleSwatchCurrent}`}),"Current"]}),(0,r.jsxs)("span",{className:eD().graphRoleLegendItem,children:[(0,r.jsx)("span",{className:`${eD().graphRoleSwatch} ${eD().graphRoleSwatchSucc}`}),"Successors"]}),(0,r.jsxs)("span",{className:eD().graphRoleLegendItem,children:[(0,r.jsx)("span",{className:eD().graphRoleDriving,children:"â
"}),"= driving tie"]})]})]}),C?(0,r.jsx)(eR,{activityId:C.activityId,x:C.x,y:C.y,hasComments:o(C.activityId)>0,onSelect:e=>{if(!C)return;let{activityId:t,x:a,y:r}=C;if(j(null),"set-current"===e){D(null),N(null),u(t);return}"details"===e?h(t,{clientX:a,clientY:r}):"view-comments"===e?p(t):m(t)},onClose:()=>j(null)}):null]})};var e7=a(66583),e9=a(11182),te=a(55563);let tt=(0,a(53362).A)("panel-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}]]);var ta=a(28783),tr=a(2064),tn=a.n(tr);let ti={full:e7.A,left:e9.A,right:te.A,bottom:tt},tl=({mode:e,onChange:t})=>{let[a,i]=(0,n.useState)(()=>!(0,ta._y)());return(0,n.useEffect)(()=>{a&&(0,ta.tv)()},[a]),(0,r.jsxs)("div",{className:tn().layoutControlsWrap,role:"group","aria-label":"Trace logic overlay layout",children:[(0,r.jsx)("div",{className:tn().layoutControls,children:el.Pf.map(n=>{let i=ti[n],l=e===n;return(0,r.jsxs)("button",{type:"button",className:`${tn().layoutBtn}${l?` ${tn().layoutBtnActive}`:""}`,"aria-label":el.a0[n],"aria-pressed":l,title:el.a0[n],onClick:()=>t(n),children:[(0,r.jsx)(i,{size:16,strokeWidth:2}),a?(0,r.jsx)("span",{className:tn().layoutBtnText,children:el.a0[n]}):null]},n)})}),a?(0,r.jsx)("p",{className:tn().layoutControlsHint,children:"Drag the header to move, or the pane edge to resize."}):null]})};function ts(e,t){return Math.min(Math.max(280,.92*t),Math.max(280,e))}function to(e,t){return Math.min(Math.max(220,.85*t),Math.max(220,e))}function tc(e,t,a,r=8){let n=Math.max(r,t-e.width-r),i=Math.max(r,a-e.height-r);return{...e,left:Math.min(Math.max(r,e.left),n),top:Math.min(Math.max(r,e.top),i)}}function td(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top,width:t.width,height:t.height}}function tu(){return{width:window.innerWidth,height:window.innerHeight}}let th=({view:e,focusActivityId:t,fixedColsWidth:a,layoutMode:i,commentsPanelOpen:l=!1,onLayoutModeChange:s,getActivityCommentCount:o,onFocusActivityId:c,onShowActivityDetails:d,onViewComments:u,onAddComment:p,onClose:m,ganttSelectedActivityId:_=null})=>
1{let f=(0,n.useRef)(null),[v,y]=(0,n.useState)(0),{isFloating:g,resizeEdges:b,overlaySizeStyle:w,startResize:x,headerDragProps:S}=function({layoutMode:e,fixedColsWidth:t,overlayRef:a}){let r=Math.max(t,520),[i,l]=(0,n.useState)(ta.hZ),[s,o]=(0,n.useState)(ta.Ii),[c,d]=(0,n.useState)(null),u=(0,n.useRef)(null),h=(0,n.useRef)(null),p=(0,n.useRef)(null),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{u.current=i},[i]),(0,n.useEffect)(()=>{h.current=s},[s]),(0,n.useEffect)(()=>{p.current=c},[c]),(0,n.useEffect)(()=>{d(null)},[e]);let _=null!=c,f=c?.width??i??r,v=c?.height??s??480,y=_?["left","right","bottom"]:"left"===e?["right"]:"right"===e?["left"]:"bottom"===e?["top"]:[],g=y[0]??null,b=(0,n.useMemo)(()=>c?{position:"fixed",left:`${c.left}px`,top:`${c.top}px`,width:`${c.width}px`,height:`${c.height}px`,right:"auto",bottom:"auto",maxWidth:"none",maxHeight:"none",zIndex:1201}:"left"===e?{width:`${f}px`,maxWidth:"92%"}:"right"===e?{left:"auto",width:`${f}px`,maxWidth:"92%"}:"bottom"===e?{height:`${v}px`,maxHeight:"85%"}:{},[v,f,c,e]),w=(0,n.useCallback)(()=>{let e=a.current;if(!e)return null;let t=td(e);return d(t),t},[a]),x=(0,n.useCallback)(e=>{if(0!==e.button||e.target.closest("button"))return;let t=a.current;if(!t)return;let r=p.current??w()??td(t);m.current={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startBox:r},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault()},[w,a]),S=(0,n.useCallback)(e=>{let t=m.current;if(!t||t.pointerId!==e.pointerId)return;let{width:a,height:r}=tu(),n=e.clientX-t.startClientX,i=e.clientY-t.startClientY;d(tc({...t.startBox,left:t.startBox.left+n,top:t.startBox.top+i},a,r))},[]),C=(0,n.useCallback)(e=>{let t=m.current;t&&t.pointerId===e.pointerId&&(m.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]);return{isFloating:_,resizeEdge:g,resizeEdges:y,overlaySizeStyle:b,startResize:(0,n.useCallback)((e,t,n)=>{let i=a.current;if(!i)return;let s=tu(),c=p.current??w()??td(i);p.current||d(c),document.body.style.cursor="top"===e||"bottom"===e?"row-resize":"col-resize",document.body.style.userSelect="none";let m=a=>{if("left"===e){let e=ts(c.width+(t-a.clientX),s.width),r=e-c.width;d(t=>tc({...t??c,left:c.left-r,width:e},s.width,s.height)),l(e);return}if("right"===e){let e=ts(c.width+(a.clientX-t),s.width);d(t=>tc({...t??c,width:e},s.width,s.height)),l(e);return}if("top"===e){let e=to(c.height+(n-a.clientY),s.height),t=e-c.height;d(a=>tc({...a??c,top:c.top-t,height:e},s.width,s.height)),o(e);return}let r=to(c.height+(a.clientY-n),s.height);d(e=>tc({...e??c,height:r},s.width,s.height)),o(r)},_=()=>{if(document.body.style.cursor="",document.body.style.userSelect="",document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",_),"top"===e||"bottom"===e){let e=p.current?.height??h.current??480;(0,ta.ju)(e),o(e)}else{let e=p.current?.width??u.current??r;(0,ta.sF)(e),l(e)}};document.addEventListener("mousemove",m),document.addEventListener("mouseup",_)},[w,r,a]),headerDragProps:{onPointerDown:x,onPointerMove:S,onPointerUp:C,onPointerCancel:C}}}({layoutMode:i,fixedColsWidth:a,overlayRef:f}),C=(0,n.useCallback)(e=>{y(e=>e+1),c(e)},[c]),j=(0,n.useMemo)(()=>(function(e){let t,{focusActivityId:a,edges:r,activityDetails:n,maxDepth:i=2}=e;if(!n[a])return{focusActivityId:a,nodes:[],edges:[],error:"unknown_focus_activity"};let l=eo(a,r,i,"predecessor"),s=eo(a,r,i,"successor"),o=(t=new Set([a]),l.forEach((e,a)=>{e>=1&&e<=i&&t.add(a)}),s.forEach((e,a)=>{e>=1&&e<=i&&t.add(a)}),Array.from(t)),c=new Set(o),d=[];for(let e of o){let t=n[e];if(!t)continue;let{side:r,hop:i}=function(e,t,a,r){if(e===t)return{side:"focus",hop:0};let n=a.get(e),i=r.get(e),l=null!=n&&n>0?n:null,s=null!=i&&i>0?i:null;return null!=l&&null!=s?l<=s?{side:"predecessor",hop:l}:{side:"successor",hop:s}:null!=l?{side:"predecessor",hop:l}:null!=s?{side:"successor",hop:s}:{side:"successor",hop:0}}(e,a,l,s);d.push({activityId:e,detail:t,side:r,hop:i})}return d.sort((e,t)=>e.activityId.localeCompare(t.activityId)),{focusActivityId:a,nodes:d,edges:r.filter(e=>c.has(e.predecessor_activity_id)&&c.has(e.successor_activity_id))}})({focusActivityId:t,edges:e.dependency_edges,activityDetails:e.activity_details}),[t,e.activity_details,e.dependency_edges]),k=(0,n.useMemo)(()=>(function(e,t={}){let{nodeWidth:a=168,nodeHeight:r=72,columnGap:n=56,rowGap:i=16,padding:l=24}=t,s=Math.max(l,n/2+8+8+Math.max(...Object.values(ed).map(Math.abs))+2+4);
1if(e.error)return{focusActivityId:e.focusActivityId,nodes:[],edges:[],width:2*s,height:2*l,focusX:s,focusY:l,error:e.error};let o=new Map;for(let e of eN)o.set(e,[]);for(let t of e.nodes)o.get(ek(t)).push(t);for(let e of eN)o.get(e).sort((e,t)=>e.activityId.localeCompare(t.activityId));let c=Math.max(1,...eN.map(e=>o.get(e).length)),d=e.nodes.map(e=>{let t=ek(e),d=o.get(t),u=d.findIndex(t=>t.activityId===e.activityId),h=eN.indexOf(t),p=s+h*(a+n),m=d.length*r+Math.max(0,d.length-1)*i,_=l+Math.max(0,(c*r+(c-1)*i-m)/2)+u*(r+i);return{...e,column:h,x:p,y:_,width:a,height:r}}),u=2*s+eN.length*a+(eN.length-1)*n,h=2*l+c*r+Math.max(0,c-1)*i,p=d.find(e=>"focus"===e.side),m=p?p.x+p.width/2:s,_=p?p.y+p.height/2:l;return function(e){if(e.error||0===e.nodes.length)return e;let{minX:t,maxX:a}=function(e,t){if(0===e.length)return{minX:0,maxX:0};let a=1/0,r=-1/0;for(let t of e)a=Math.min(a,t.x),r=Math.max(r,t.x+t.width);let n=new Map(e.map(e=>[e.activityId,e]));for(let i of t){let t=n.get(i.predecessor_activity_id),l=n.get(i.successor_activity_id);if(t&&l)for(let n of ej){let{points:i,tip:s}=eC(t,l,eu(n),e);for(let e of i)a=Math.min(a,e.x),r=Math.max(r,e.x);a=Math.min(a,s.x-8),r=Math.max(r,s.x)}}return{minX:a,maxX:r}}(e.nodes,e.edges),r=Math.max(0,12-t),n=Math.max(0,12-(e.width-a));return 0===r&&0===n?e:{...e,width:e.width+r+n,focusX:e.focusX+r,nodes:e.nodes.map(e=>({...e,x:e.x+r}))}}({focusActivityId:e.focusActivityId,nodes:d,edges:e.edges,width:u,height:h,focusX:m,focusY:_})})(j),[j]),N=(0,n.useMemo)(()=>new Map(e.bars.map(e=>[e.activity_id,e])),[e]),L=(0,n.useMemo)(()=>(0,W.mu)(e.wbs_nodes),[e.wbs_nodes]),D=(0,n.useMemo)(()=>new Set(Object.keys(e.activity_details)),[e.activity_details]);return(0,r.jsxs)("div",{ref:f,className:tn().overlay,"data-mode":i,"data-floating":g?"true":void 0,"data-comments-panel-open":l?"true":void 0,"data-trace-logic-overlay":"",style:{"--trace-overlay-fixed-cols":`${Math.max(a,280)}px`,"--schedule-comments-panel-width":`${es.a}px`,"--trace-bottom-pane-height":el.kP,...w},role:"dialog","aria-label":"Trace logic overlay",children:[b.map(e=>(0,r.jsx)("div",{className:`${tn().resizeHandle} ${"left"===e?tn().resizeHandleLeft:"right"===e?tn().resizeHandleRight:"top"===e?tn().resizeHandleTop:tn().resizeHandleBottom}`,role:"separator","aria-orientation":"top"===e||"bottom"===e?"horizontal":"vertical","aria-label":`Resize trace logic pane ${e}`,title:"Drag to resize trace logic pane",onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),x(e,t.clientX,t.clientY)}},e)),(0,r.jsxs)("div",{className:tn().frame,children:[(0,r.jsxs)("div",{className:tn().overlayHeader,title:"Drag header to move",...S,children:[(0,r.jsxs)("div",{className:tn().overlayHeaderMain,children:[(0,r.jsxs)("div",{className:tn().overlayTitleRow,children:[(0,r.jsx)("span",{className:tn().overlayLabel,children:"Trace Logic"}),t&&_===t?(0,r.jsx)("span",{className:tn().overlayBadge,children:"Synced with Gantt"}):null]}),t?(0,r.jsxs)("span",{className:tn().overlaySubtitle,children:["Tracing ",t," \xb7 ",2," levels of predecessors and successors"]}):(0,r.jsx)("span",{className:tn().overlaySubtitle,children:"No activity selected"}),_&&_!==t?(0,r.jsxs)("span",{className:tn().overlaySyncNote,children:["Gantt selection: ",_," â use Trace or double-click a node to match."]}):null]}),(0,r.jsxs)("div",{className:tn().overlayHeaderActions,children:[(0,r.jsx)(tl,{mode:i,onChange:s}),m?(0,r.jsx)("button",{type:"button",className:tn().closeBtn,"aria-label":"Close trace logic overlay",title:"Close overlay",onClick:m,children:(0,r.jsx)(h.A,{size:16,strokeWidth:2})}):null]})]}),(0,r.jsx)("div",{className:tn().overlayBody,children:(0,r.jsx)(e8,{layout:k,layoutMode:i,viewportFit:(0,el.nF)(i),barsByActivity:N,activityDetails:e.activity_details,wbsNameByCode:L,getActivityCommentCount:o,interactionEpoch:v,activityPicker:{focusActivityId:t,rows:e.rows,knownActivityIds:D},onFocusActivityId:C,onShowActivityDetails:d,onViewComments:u,onAddComment:p})})]})]})};var tp=a(50692),tm=a(12455),t_=a(66770),tf=a(44734),tv=a(16603);function ty({placeholder:e="Add a commentâ¦",submitLabel:t="Comment",disabled:a=!1,errorMessage:i=null,initialBody:l="",value:s,onChange:o,autoFocus:c=!1,submitOnEnter:d=!0,onCancel:u,cancelLabel:h="Cancel",layout:p="stack",onSubmit:m}
1){let _=void 0!==s,[f,v]=(0,n.useState)(l),y=_?s:f,g=_?o??(()=>void 0):v,[b,w]=(0,n.useState)(!1),x=(0,n.useRef)(!1),S=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!c)return;let e=window.setTimeout(()=>{S.current?.focus()},0);return()=>window.clearTimeout(e)},[c]);let C=()=>{let e=y.trim();!e||a||b||x.current||(x.current=!0,w(!0),m(e).then(()=>{_||v("")}).finally(()=>{x.current=!1,w(!1)}))},j=e=>{d&&"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),C())},k=!!y.trim()&&!a&&!b;return"inline"===p?(0,r.jsxs)("div",{className:`${eP().editorBox} ${eP().editorBoxInline}`,children:[(0,r.jsx)("input",{ref:S,className:eP().editorInputInline,value:y,placeholder:e,disabled:a||b,onChange:e=>g(e.target.value),onKeyDown:j}),i?(0,r.jsx)("p",{className:eP().editorError,role:"alert",children:i}):null,(0,r.jsx)("button",{type:"button",className:eP().inlineReplyBtn,disabled:!k,onClick:C,children:b?"â¦":t})]}):(0,r.jsxs)("div",{className:eP().editorBox,children:[(0,r.jsx)("textarea",{ref:S,className:eP().editorTextarea,value:y,placeholder:e,disabled:a||b,onChange:e=>g(e.target.value),onKeyDown:j}),i?(0,r.jsx)("p",{className:eP().editorError,role:"alert",children:i}):null,(0,r.jsxs)("div",{className:eP().editorActions,children:[u?(0,r.jsx)("button",{type:"button",className:eP().smallBtn,disabled:a||b,onClick:u,children:h}):null,(0,r.jsx)("button",{type:"button",className:eP().smallBtnPrimary,disabled:!k,onClick:C,children:b?"Savingâ¦":t})]})]})}var tg=a(84524),tb=a(83414),tw=a(5225);function tx({onEdit:e,onDelete:t}){let[a,i]=(0,n.useState)(!1),l=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!a)return;let e=e=>{l.current?.contains(e.target)||i(!1)};return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[a]),(0,r.jsxs)("div",{className:eP().actionsMenuRoot,ref:l,children:[(0,r.jsx)("button",{type:"button",className:eP().actionsMenuTrigger,"aria-label":"Comment actions",onClick:()=>i(e=>!e),children:"â¯"}),a?(0,r.jsxs)("div",{className:eP().actionsMenuDropdown,role:"menu",children:[(0,r.jsx)("button",{type:"button",className:eP().contextMenuItem,onClick:()=>{i(!1),e()},children:"Edit"}),(0,r.jsx)("button",{type:"button",className:eP().contextMenuItem,onClick:()=>{i(!1),t()},children:"Delete"})]}):null]})}function tS({name:e,when:t}){return(0,r.jsxs)("div",{className:eP().authorLine,children:[(0,r.jsx)("span",{className:eP().authorName,children:e}),(0,r.jsx)("span",{className:eP().authorWhen,children:function(e){try{let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let a=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(t),r=new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit"}).format(t);return`${a} \xb7 ${r}`}catch{return e}}(t)})]})}function tC({reply:e,commentId:t,isEditing:a,onStartEdit:n,onDeleteReply:i}){return(0,r.jsxs)("div",{className:eP().replyCard,children:[(0,r.jsxs)("div",{className:eP().threadCardHeader,children:[(0,r.jsx)(tS,{name:e.author_name,when:e.updated_at}),a?null:(0,r.jsx)(tx,{onEdit:n,onDelete:()=>void i(t,e.reply_id)})]}),a?null:(0,r.jsx)("div",{className:eP().threadBody,children:e.body})]})}async function tj(e,t,a,r){if(r&&!(t.length>=a)){if(t.length<=tg.UV&&a<=tg.eH)return void await r(e,{offset:0,limit:a});t.length<a&&await r(e,{offset:t.length,limit:Math.min(tg.eH,a-t.length)})}}function tk({thread:e,showRegardingLink:t,regardingNavigable:a,regardingLabel:n,onNavigateToAnchor:i}){if(!t)return null;let l=(0,tw.Tt)(e.anchor_type),s=l?"GENERAL":e.anchor_id,o=n&&n!==e.anchor_id&&"Schedule"!==n?n:null,c=l?`${eP().anchorChip} ${eP().anchorChipGeneral}`:eP().anchorChip;return(0,r.jsxs)("div",{className:eP().anchorRow,children:[a&&i&&!l?(0,r.jsx)("button",{type:"button",className:c,onClick:e=>{e.stopPropagation(),i()},title:`Show ${s} on Gantt`,children:s}):(0,r.jsx)("span",{className:c,children:s}),o?(0,r.jsx)("span",{className:eP().anchorName,title:o,children:o}):null]})}let tN=n.memo(function({thread:e,onReply:t,onEditThread:a,onDeleteThread:i,onEditReply:l,onDeleteReply:s,onLoadMoreReplies:o,onRefreshData:c,showRegardingLink:d=!1,regardingNavigable:u=!0,regardingLabel:h,onNavigateToAnchor:p}
1){let[m,_]=(0,n.useState)(!1),[f,v]=(0,n.useState)(""),[y,g]=(0,n.useState)(e.updated_at),[b,w]=(0,n.useState)(null),[x,S]=(0,n.useState)(null),[C,j]=(0,n.useState)(null),[k,N]=(0,n.useState)(tg.UV),[L,D]=(0,n.useState)(!1),R=(0,n.useMemo)(()=>(0,tg.Su)(e.replies),[e.replies]);(0,n.useEffect)(()=>{N(tg.UV),_(!1),v(""),w(null),S(null)},[e.comment_id]),(0,n.useEffect)(()=>{m||g(e.updated_at)},[e.updated_at,m]),(0,n.useEffect)(()=>{!x||x.orphaned||R.some(e=>e.reply_id===x.replyId)||S(e=>e?{...e,orphaned:!0,error:e.error??(0,tb.zu)()}:e)},[x,R]),(0,n.useEffect)(()=>{!(k<=tg.UV)&&o&&!(e.reply_count<=tg.UV)&&R.length<=tg.UV&&R.length<k&&tj(e.comment_id,R,k,o)},[o,R,e.comment_id,e.reply_count,k]);let M=R.slice(0,Math.min(k,R.length)),A=(0,tg.gr)(k,e.reply_count),P=A>0,$=k>tg.UV,T=async()=>{let t=Math.min(k+tg.DS,e.reply_count);D(!0);try{await tj(e.comment_id,R,t,o),N(t)}finally{D(!1)}},E=()=>{S(null)},I=async t=>{try{w(null),await a(e.comment_id,t,y),_(!1),v(""),w(null)}catch(e){if((0,tb._4)(e)&&"COMMENT_CONFLICT"===e.code){e.current&&"updated_at"in e.current&&g(e.current.updated_at),w((0,tb.gg)("thread")),await c?.();return}w(e instanceof Error?e.message:"Failed to save comment")}},B=async t=>{if(x)try{await l(e.comment_id,x.replyId,t,x.expectedUpdatedAt),S(null)}catch(e){if((0,tb._4)(e)&&"COMMENT_CONFLICT"===e.code){e.current&&"updated_at"in e.current?S(t=>t?{...t,expectedUpdatedAt:e.current.updated_at,error:(0,tb.gg)("reply")}:t):S(e=>e?{...e,error:(0,tb.gg)("reply")}:e),await c?.();return}if((0,tb._4)(e)&&"COMMENT_NOT_FOUND"===e.code){S(e=>e?{...e,orphaned:!0,error:(0,tb.zu)()}:e),await c?.();return}S(t=>t?{...t,error:e instanceof Error?e.message:"Failed to save reply"}:t)}};return(0,r.jsxs)("article",{className:eP().threadCard,children:[(0,r.jsxs)("div",{className:eP().threadCardHeader,children:[d?(0,r.jsx)(tk,{thread:e,showRegardingLink:d,regardingNavigable:u,regardingLabel:h,onNavigateToAnchor:p}):(0,r.jsx)(tS,{name:e.author_name,when:e.updated_at}),(0,r.jsx)(tx,{onEdit:()=>{w(null),v(e.body),g(e.updated_at),_(!0)},onDelete:()=>void i(e.comment_id)})]}),d?(0,r.jsx)(tS,{name:e.author_name,when:e.updated_at}):null,m?(0,r.jsx)(ty,{placeholder:"Edit commentâ¦",submitLabel:"Save",value:f,onChange:v,errorMessage:b,onCancel:()=>{_(!1),v(""),w(null)},onSubmit:I}):(0,r.jsx)("div",{className:eP().threadBody,children:e.body}),M.length>0||x?.orphaned?(0,r.jsxs)("div",{className:eP().replyList,children:[M.map(t=>{let a=x?.replyId===t.reply_id;return(0,r.jsxs)(n.Fragment,{children:[(0,r.jsx)(tC,{reply:t,commentId:e.comment_id,isEditing:!!a,onStartEdit:()=>{S({replyId:t.reply_id,draft:t.body,expectedUpdatedAt:t.updated_at,error:null,orphaned:!1})},onDeleteReply:s}),a&&x?(0,r.jsx)(ty,{placeholder:"Edit replyâ¦",submitLabel:"Save",value:x.draft,onChange:e=>S(t=>t?{...t,draft:e}:t),errorMessage:x.error,onCancel:E,onSubmit:B}):null]},t.reply_id)}),x?.orphaned?(0,r.jsxs)("div",{className:eP().replyCard,children:[(0,r.jsx)("div",{className:eP().authorLine,children:(0,r.jsx)("span",{className:eP().authorName,children:"Reply"})}),(0,r.jsx)(ty,{placeholder:"Edit replyâ¦",submitLabel:"Save",value:x.draft,onChange:e=>S(t=>t?{...t,draft:e}:t),errorMessage:x.error,onCancel:E,onSubmit:B})]}):null]}):null,P||$?(0,r.jsx)("div",{className:eP().threadFooter,children:(0,r.jsxs)("div",{className:eP().threadFooterLeft,children:[P?(0,r.jsx)("button",{type:"button",className:eP().showMoreRepliesBtn,disabled:L,onClick:()=>void T(),children:L?"Loading repliesâ¦":`Show ${A} more ${1===A?"reply":"replies"}`}):null,$?(0,r.jsx)("button",{type:"button",className:eP().showMoreRepliesBtn,onClick:()=>N(tg.UV),children:"Show fewer replies"}):null]})}):null,(0,r.jsx)(ty,{layout:"inline",placeholder:"Replyâ¦",submitLabel:"Reply",errorMessage:C,onSubmit:async a=>{try{j(null),await t(e.comment_id,a),k>tg.UV&&o&&await o(e.comment_id,{offset:0,limit:Math.min(k,tg.eH)})}catch(e){j(e instanceof Error?e.message:"Failed to post reply")}}})]})},function(e,t){return e.thread.comment_id===t.thread.comment_id&&e.thread.updated_at===t.thread.updated_at&&e.thread.body===t.thread.body&&e.thread.reply_count===t.thread.reply_count&&function(e,t){if(e.length!==t.length)return!1;let a=[...e].sort((e,t)=>
1e.reply_id.localeCompare(t.reply_id)),r=[...t].sort((e,t)=>e.reply_id.localeCompare(t.reply_id));for(let e=0;e<a.length;e+=1){let t=a[e],n=r[e];if(t.reply_id!==n.reply_id||t.updated_at!==n.updated_at||t.body!==n.body)return!1}return!0}(e.thread.replies,t.thread.replies)&&e.activeReplyThreadId===t.activeReplyThreadId&&e.replyOnDemand===t.replyOnDemand&&e.showRegardingLink===t.showRegardingLink&&e.regardingNavigable===t.regardingNavigable&&e.regardingLabel===t.regardingLabel});function tL({variant:e="read",size:t=14,className:a,title:n}){let i="unread"===e?eP().commentBubbleUnread:eP().commentBubbleRead;return(0,r.jsxs)("svg",{className:`${eP().commentBubbleIcon}${a?` ${a}`:""} ${i}`,width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!n||void 0,role:n?"img":void 0,children:[n?(0,r.jsx)("title",{children:n}):null,(0,r.jsx)("path",{d:"M12 3C7.029 3 3 6.925 3 11.625c0 1.675.558 3.223 1.502 4.471L3 21l5.274-1.313A8.943 8.943 0 0012 20.25c4.971 0 9-3.694 9-8.25S16.971 3 12 3z",stroke:"currentColor",strokeWidth:"1.75",strokeLinejoin:"round"})]})}var tD=a(75670),tR=a(17159);let tM=`${eE.Ol}+ characters match activity ID substring; 1 character matches exact ID only. WBS requires the full row label.`;function tA({label:e,onClick:t,children:a}){return(0,r.jsx)("button",{type:"button",className:eP().iconBtn,"aria-label":e,title:e,onClick:t,children:a})}function tP(){let e=(0,t_.U)(),t=(0,n.useRef)(null),a=(0,n.useRef)(null),i=(0,n.useRef)(null),l=(0,n.useRef)(null),[s,o]=(0,n.useState)(!1),[c,d]=(0,n.useState)(!1),[u,p]=(0,n.useState)(""),[m,_]=(0,n.useState)(""),f=(0,eM.o)(u,eE.H);(0,n.useEffect)(()=>{if(!e?.panelOpen){let t=l.current,a=e?.getPanelComposeBridge();t&&a&&a.restoreFilters(t),l.current=null,o(!1),d(!1),p(""),_(""),e?.clearPanelComposeSeed()}},[e?.clearPanelComposeSeed,e?.getPanelComposeBridge,e?.panelOpen]),(0,n.useEffect)(()=>{if(!e?.panelOpen||!e.panelComposeSeedActivityId)return;let t=e.panelComposeSeedActivityId,a=e.getPanelComposeBridge();a&&!l.current&&(l.current=a.snapshotFilters()),o(!0),d(!0),p(t),_(""),e.clearPanelComposeSeed()},[e?.clearPanelComposeSeed,e?.getPanelComposeBridge,e?.panelComposeSeedActivityId,e?.panelOpen]),(0,n.useEffect)(()=>{if(!e?.panelOpen)return;let t=t=>{"Escape"!==t.key||s||e.setPanelOpen(!1)};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,s]),(0,n.useEffect)(()=>{if(!e?.panelOpen)return;let t=t=>{if(0!==t.button)return;let a=t.target;a instanceof Element&&a.closest("[data-schedule-comments-panel]")||a instanceof Element&&a.closest("[data-schedule-reader-shell]")||e.setPanelOpen(!1)};return window.addEventListener("pointerdown",t),()=>window.removeEventListener("pointerdown",t)},[e]),(0,n.useEffect)(()=>{if(!e?.openAnchor)return;let t=t=>{"Escape"===t.key&&e.closeAnchorPopover()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e]),(0,n.useEffect)(()=>{if(!e?.rowCommentMenu&&!e?.openAnchor)return;let t=t=>{let r=t.target;i.current?.contains(r)||a.current?.contains(r)||(e.closeRowCommentMenu(),e.closeAnchorPopover())};return window.addEventListener("pointerdown",t),()=>window.removeEventListener("pointerdown",t)},[e]);let v=()=>{let t=l.current,a=e?.getPanelComposeBridge();t&&a&&a.restoreFilters(t),l.current=null,o(!1),d(!1),p(""),_("")},y=(0,n.useCallback)(t=>{let a=l.current,r=e?.getPanelComposeBridge();a&&r&&(r.applyComposeSearch(t,a),r.revealWbsLabelMatch(t))},[e?.getPanelComposeBridge,e?.panelComposeBridgeReady]);(0,n.useEffect)(()=>{s&&y(f)},[y,s,f]);let g=(0,n.useCallback)(t=>{let a=e?.getPanelComposeBridge();return a&&"function"==typeof a.listActivityIdSuggestions?a.listActivityIdSuggestions(t):[]},[e?.getPanelComposeBridge,e?.panelComposeBridgeReady]),b=(0,n.useMemo)(()=>{let t=e?.getPanelComposeBridge();return t?t.previewRegardingLabel(f):f.trim()||"Schedule"},[e?.getPanelComposeBridge,e?.panelComposeBridgeReady,f]),w=(0,n.useMemo)(()=>e?e.panelThreads.filter(t=>(!e.panelAuthorFilter||t.author_name===e.panelAuthorFilter)&&(!e.panelAnchorFilter||(0,tD.Sj)(t.anchor_type,t.anchor_id)===e.panelAnchorFilter)&&!0).slice().sort((e,t)=>
1{let a=+!(0,tw.Tt)(e.anchor_type),r=+!(0,tw.Tt)(t.anchor_type);return a!==r?a-r:0}):[],[e]),x=(0,n.useMemo)(()=>e?Array.from(new Set(e.panelThreads.map(e=>e.author_name))).sort((e,t)=>e.localeCompare(t)):[],[e]),S=(0,n.useMemo)(()=>{if(!e)return[];let t=new Map;for(let a of(t.set((0,tD.XE)(),"Schedule"),e.panelThreads)){let r=(0,tD.Sj)(a.anchor_type,a.anchor_id);t.has(r)||t.set(r,e.resolveAnchorLabel(a.anchor_type,a.anchor_id))}return Array.from(t.entries()).map(([e,t])=>({key:e,label:t})).sort((e,t)=>e.key===(0,tD.XE)()?-1:t.key===(0,tD.XE)()?1:e.label.localeCompare(t.label))},[e]),C=!!e?.panelOpen,j=(0,n.useCallback)(e=>{let t=e.offsetWidth||e.getBoundingClientRect().width;return(0,tv.L4)(e,window.innerWidth-t-16,72)},[]),{headerDragProps:k}=(0,tv.$_)({panelRef:t,placementKey:C?"comments-open":"comments-closed",computePosition:j});return e?(0,r.jsxs)(r.Fragment,{children:[e.rowCommentMenu?(0,r.jsxs)("div",{ref:i,className:eP().contextMenu,"data-schedule-comments-menu":"",style:{left:e.rowCommentMenu.x,top:e.rowCommentMenu.y},role:"menu",children:[(0,r.jsx)("button",{type:"button",className:eP().contextMenuItem,onClick:()=>{let t=e.rowCommentMenu?.target;e.closeRowCommentMenu(),t&&e.openAnchorPopover(t)},children:"Add Comment"}),e.rowCommentMenu.hasComments?(0,r.jsx)("button",{type:"button",className:eP().contextMenuItem,onClick:()=>{let t=e.rowCommentMenu?.target;e.closeRowCommentMenu(),t&&e.openAnchorPopover(t)},children:"View Comments"}):null]}):null,e.openAnchor?(0,r.jsxs)("div",{ref:a,className:eP().popover,"data-schedule-comments-popover":"",style:{top:"20%",left:"50%",transform:"translateX(-50%)"},children:[(0,r.jsx)("div",{className:eP().popoverHeader,children:(0,r.jsx)(tA,{label:"Close",onClick:e.closeAnchorPopover,children:(0,r.jsx)(h.A,{size:16,strokeWidth:2,"aria-hidden":!0})})}),(0,r.jsx)(ty,{autoFocus:!0,placeholder:"New comment on this rowâ¦",onSubmit:t=>e.createThread(e.openAnchor,t)}),e.anchorLoading?(0,r.jsx)("p",{children:"Loading threadsâ¦"}):null,e.openAnchorThreads.map(t=>(0,r.jsx)(tN,{thread:t,onReply:e.replyToThread,onEditThread:e.editThread,onDeleteThread:e.removeThread,onEditReply:e.editReply,onDeleteReply:e.removeReply,onLoadMoreReplies:e.loadMoreReplies,onRefreshData:e.refreshCommentViews,showRegardingLink:!0,regardingNavigable:!(0,tw.Tt)(t.anchor_type),regardingLabel:e.resolveAnchorLabel(t.anchor_type,t.anchor_id),onNavigateToAnchor:(0,tw.Tt)(t.anchor_type)?void 0:()=>e.navigateToAnchor({anchorType:t.anchor_type,anchorId:t.anchor_id,label:e.resolveAnchorLabel(t.anchor_type,t.anchor_id)})},t.comment_id))]}):null,e.panelOpen?(0,r.jsxs)("div",{ref:t,className:eP().panelDrawer,"data-schedule-comments-panel":"","data-ui":"sv-comments-panel","aria-label":"Comments",role:"dialog","aria-modal":"false",style:{top:72,left:Math.max(16,window.innerWidth-420-16)},children:[(0,r.jsxs)("div",{className:eP().panelHeader,title:"Drag header to move",...k,children:[(0,r.jsxs)("div",{className:eP().panelHeaderTitleStack,children:[(0,r.jsx)("h2",{className:eP().panelHeaderTitle,children:"Comments"}),(0,r.jsx)("p",{className:eP().panelHeaderSubtitle,children:1===e.totalThreadCount?"1 open thread":`${e.totalThreadCount} open threads`})]}),(0,r.jsxs)("div",{className:eP().headerActions,children:[(0,r.jsx)("button",{type:"button",className:eP().headerTextBtn,disabled:!e.panelComposeBridgeReady||s,onClick:()=>{let t=e?.getPanelComposeBridge();t&&(l.current=t.snapshotFilters(),o(!0),d(!1),p(""),_(""))},children:"+ General Comment"}),(0,r.jsxs)("button",{type:"button",className:eP().headerTextBtn,"aria-label":"Refresh",title:"Refresh",onClick:()=>void e.refreshPanel(),children:[(0,r.jsx)(tf.A,{size:16,strokeWidth:2,"aria-hidden":!0}),"Refresh"]}),(0,r.jsx)(tA,{label:"Close",onClick:()=>e.setPanelOpen(!1),children:(0,r.jsx)(h.A,{size:16,strokeWidth:2,"aria-hidden":!0})})]})]}),(0,r.jsxs)("div",{className:eP().panelFilters,"aria-hidden":"true",children:[(0,r.jsxs)("label",{className:eP().panelFilterLabel,children:["View by Author",(0,r.jsxs)("select",{className:eP().panelFilterSelect,value:e.panelAuthorFilter,onChange:t=>
1e.setPanelAuthorFilter(t.target.value),tabIndex:-1,children:[(0,r.jsx)("option",{value:"",children:"All authors"}),x.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]})]}),(0,r.jsxs)("label",{className:eP().panelFilterLabel,children:["View by Activity/WBS",(0,r.jsxs)("select",{className:eP().panelFilterSelect,value:e.panelAnchorFilter,onChange:t=>e.setPanelAnchorFilter(t.target.value),tabIndex:-1,children:[(0,r.jsx)("option",{value:"",children:"All rows"}),S.map(e=>(0,r.jsx)("option",{value:e.key,children:e.label},e.key))]})]})]}),s?(0,r.jsxs)("div",{className:eP().panelCompose,children:[(0,r.jsx)("div",{className:eP().panelComposeEyebrow,children:"New Comment"}),c?(0,r.jsxs)("div",{className:eP().panelComposeTarget,children:[(0,r.jsx)("span",{className:eP().panelComposeBadge,children:u.trim()||"â"}),(0,r.jsx)("span",{className:eP().panelComposeTargetLabel,children:e.resolveAnchorLabel("activity",u.trim())})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("label",{className:eP().panelFilterLabel,children:["Regarding Activity ID",(0,r.jsx)(e$,{value:u,hint:tM,placeholder:"Filter by ID or full WBS label",getSuggestions:g,onChange:e=>{p(e),_("")},onSelectSuggestion:e=>{p(e),_(""),y(e)}})]}),(0,r.jsxs)("p",{className:eP().panelComposeRegarding,children:["Regarding: ",(0,r.jsx)("strong",{children:b})]})]}),(0,r.jsx)(ty,{autoFocus:!0,placeholder:"Write a comment...",submitLabel:"Comment",errorMessage:m,onCancel:v,onSubmit:async t=>{let a=e.getPanelComposeBridge();if(!a)return void _("Gantt is not ready for comments yet.");let r=a.resolveComposeAnchor(u);"error"in r?_(r.error):(await e.createThread(r.target,t,{openPopover:!1}),v())}})]}):null,(0,r.jsxs)("div",{className:eP().panelBody,children:[e.panelLoading?(0,r.jsx)("p",{children:"Loadingâ¦"}):null,e.panelLoading||0!==w.length?null:(0,r.jsx)("p",{className:eP().panelEmptyHint,children:e.panelAuthorFilter||e.panelAnchorFilter?"No comments match these filters.":"No open threads yet."}),w.map(t=>{let a=(0,tw.Tt)(t.anchor_type);return(0,r.jsx)(tN,{thread:t,onReply:e.replyToThread,onEditThread:e.editThread,onDeleteThread:e.removeThread,onEditReply:e.editReply,onDeleteReply:e.removeReply,onLoadMoreReplies:e.loadMoreReplies,onRefreshData:e.refreshCommentViews,showRegardingLink:!0,regardingNavigable:!a,regardingLabel:e.resolveAnchorLabel(t.anchor_type,t.anchor_id),onNavigateToAnchor:a?void 0:()=>e.navigateToAnchor({anchorType:t.anchor_type,anchorId:t.anchor_id,label:e.resolveAnchorLabel(t.anchor_type,t.anchor_id)})},t.comment_id)})]}),(0,r.jsx)("p",{className:eP().panelFooterHint,children:"Click an activity row, then 'Comment' to start a new thread."})]}):null]}):null}function t$({className:e,licensed:t=!0}){let a=(0,t_.U)(),n=(0,tp.Si)();return t?a?(0,r.jsxs)("button",{type:"button",className:`${eP().toolbarCommentsBtn} ${e??""}`,"data-ui":"sv-comments-btn","data-count":a.totalThreadCount,onClick:()=>{n?n.openCommentsPanel():a.setPanelOpen(!0)},title:"View activity and WBS comments",children:[(0,r.jsx)(tL,{variant:"read",size:14}),(0,r.jsx)("span",{children:"Comments"}),a.totalThreadCount>0?(0,r.jsx)("span",{className:eP().toolbarCommentsBadge,children:a.totalThreadCount}):null]}):null:(0,r.jsx)(S.m_,{content:tR.gm,delay:300,maxWidth:280,position:"tr",children:(0,r.jsx)("span",{className:eP().toolbarCommentsBtnWrap,children:(0,r.jsxs)("button",{type:"button",className:`${eP().toolbarCommentsBtn} ${e??""}`,disabled:!0,"aria-disabled":"true",title:tR.gm,children:[(0,r.jsx)(tL,{variant:"read",size:14}),(0,r.jsx)("span",{children:"Comments"})]})})})}var tT=a(79361),tE=a(12401),tI=a(70486);function tB({enabled:e,projectId:t,uploadId:a,initialHealthPanelOpen:n=!1,onProductAccessDenied:i,children:l}){return e?(0,r.jsx)(t_.l,{projectId:t,uploadId:a,enabled:!0,onProductAccessDenied:i,children:(0,r.jsxs)(tp.Rw,{initialHealthPanelOpen:n,children:[l,(0,r.jsx)(tP,{})]})}):(0,r.jsx)(tp.Rw,{initialHealthPanelOpen:n,children:l})}function tG({actionsBusy:e,loading:t,onCopyLink:a,copyLinkMessage:i,shareRevisionLabel:o,onExportPdf:c,onExportXer:d,exportBusy:u,sourceFormat:h,leading:p,trailing:m}){let{user:_}=(0,tT.As)(),f=tT.Bt.hasScheduleReaderCommentsAccess(_),[v,y]=(0,n.use
1State)(!1),[g,w]=(0,n.useState)(!1),x=(0,n.useRef)(null),S=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!v&&!g)return;let e=e=>{x.current?.contains(e.target)||S.current?.contains(e.target)||(y(!1),w(!1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[g,v]),(0,r.jsxs)(r.Fragment,{children:[p,(0,r.jsx)(t$,{className:b().toolbarBtn,licensed:f}),m,(0,r.jsxs)("div",{className:b().headerMenuWrap,ref:x,"data-ui":"sv-share-menu",children:[(0,r.jsxs)("button",{type:"button",className:b().toolbarBtn,disabled:e||t,"aria-expanded":v,"aria-haspopup":"menu",onClick:()=>{w(!1),y(e=>!e)},children:[(0,r.jsx)(l.A,{size:13,strokeWidth:2,className:b().shareIcon,"aria-hidden":"true"}),"Share â¾"]}),v?(0,r.jsx)("ul",{className:b().headerMenu,role:"menu","aria-label":"Share options",children:(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"menuitem",className:b().headerMenuItem,onClick:()=>{y(!1),a()},children:[(0,r.jsx)(s.A,{size:14,strokeWidth:2,className:b().headerMenuItemIcon,"aria-hidden":"true"}),(0,r.jsxs)("span",{className:b().headerMenuItemText,children:[(0,r.jsx)("span",{className:b().headerMenuItemTitle,children:i??"Copy Link"}),(0,r.jsx)("span",{className:b().headerMenuItemSub,children:o?`Opens this schedule at ${o}`:"Opens this schedule at the current revision"})]})]})})}):null]}),(0,r.jsxs)("div",{className:b().headerMenuWrap,ref:S,"data-ui":"sv-export-menu",children:[(0,r.jsx)("button",{type:"button",className:`${b().toolbarBtn} ${b().toolbarBtnPrimary}`,disabled:e||t,"aria-expanded":g,"aria-haspopup":"menu",onClick:()=>{y(!1),w(e=>!e)},children:u?"Exportingâ¦":"Export â¾"}),g?(0,r.jsxs)("ul",{className:b().headerMenu,role:"menu","aria-label":"Export options",children:[(0,r.jsx)("li",{role:"none",children:(0,r.jsx)("button",{type:"button",role:"menuitem",className:b().headerMenuItem,disabled:null!=u,onClick:()=>{w(!1),c()},children:"pdf"===u?"Exporting PDFâ¦":"Export PDF"})}),"xer"===h?(0,r.jsx)("li",{role:"none",children:(0,r.jsx)("button",{type:"button",role:"menuitem",className:b().headerMenuItem,disabled:null!=u,onClick:()=>{w(!1),d()},children:"xer"===u?"Exporting XERâ¦":"Export XER"})}):null]}):null]})]})}
1function tF({displayViewModel:e,sourceFormat:t,projectId:a,sessionId:n,barDateMode:i,onBarDateModeChange:l,onActivityEdit:s,onError:o,savedViews:c,savedViewsLoading:u,selectedVersionId:h,hasUnsavedEdits:p,pendingRevisionEdits:m,healthRevisionKey:_,scheduleStatusDate:f,statusDateUpdateBusy:v,onStatusDateUpdate:y,onCompareRequest:g,flushActivityDraftsToServer:b,refreshSavedViews:w,onViewStatsChange:x,onWarningsReopenChange:S,onDcmaAccessRevoked:C,belowToolbar:j}){let k=(0,tp.SA)(),{user:N}=(0,tT.As)(),L=tT.Bt.hasDcmaHealthCheckAccess(N);return(0,r.jsx)(H.I,{view:e,sourceFormat:t,projectId:a,sessionId:n,editable:"xer"===t,localEditsOnly:"xer"===t,barDateMode:i,onBarDateModeChange:l,onActivityEdit:s,onEditError:o,savedViews:c,savedViewsLoading:u,traceLogicPanelOpen:k.tracePanelOpen,traceLayoutMode:k.traceLayoutMode,traceFocusActivityId:k.traceFocusActivityId,onTraceFocusActivityChange:k.setTraceFocusActivityId,onViewTraceLogic:k.openTracePanel,onSelectedActivityIdChange:k.setGanttSelectedActivityId,toolbarTraceLogic:{enabled:!0,open:k.tracePanelOpen,onToggle:()=>k.toggleTracePanel(k.tracePanelOpen?void 0:k.ganttSelectedActivityId??void 0)},toolbarHealthCheck:L?{enabled:!0,open:k.healthPanelOpen,onToggle:()=>k.toggleHealthPanel()}:void 0,toolbarStatusDate:{statusDate:f??null,busy:v,onRequestUpdate:y},onCompareRequest:g,scheduleHealthOverlay:L&&k.healthPanelOpen?({onActivityClick:e,fixedColsWidth:t})=>(0,r.jsx)(ei.U,{projectId:a,uploadId:h,sessionId:n,hasUnsavedDrafts:p,pendingRevisionEdits:m,draftRevisionKey:_,scheduleStatusDate:f,onPrepareAnalyze:async()=>{let e=await (0,tI.K)();if(!tT.Bt.hasDcmaHealthCheckAccess(e))throw C?.(),Error(tR.gJ.title);if(!await b())throw Error("Could not save activity changes before health analysis.")},fixedColsWidth:t,onActivityClick:e,onClose:()=>k.closeHealthPanel()}):void 0,traceLogicOverlay:k.tracePanelOpen?({onActivityClick:t,showActivityDetails:a,openCommentForActivity:n,getActivityCommentCount:i,fixedColsWidth:l,focusActivityId:s})=>(0,r.jsx)(th,{view:e,focusActivityId:s,fixedColsWidth:l,layoutMode:k.traceLayoutMode,commentsPanelOpen:k.commentsPanelOpen,onLayoutModeChange:k.setTraceLayoutMode,getActivityCommentCount:i,onFocusActivityId:e=>{k.setTraceFocusActivityId(e),t(e)},onShowActivityDetails:a,onViewComments:n,onAddComment:n,onClose:()=>k.closeTracePanel(),ganttSelectedActivityId:k.ganttSelectedActivityId}):void 0,onSaveView:async(e,t)=>{o("");try{await (0,d.xS)(a,e,t),await w()}catch(e){o(e instanceof Error?e.message:"Failed to save view")}},onDeleteSavedView:async e=>{o("");try{await (0,d.as)(a,e),await w()}catch(e){o(e instanceof Error?e.message:"Failed to delete view")}},onViewStatsChange:x,onWarningsReopenChange:S,belowToolbar:j})}let tO=({projectId:e,uploadId:t,projShortName:a,activityCount:l,initialHealthPanelOpen:s=!1,onClose:h,onCompareRequest:m,onRevisionContextChange:_,onError:f})=>{let v,{user:g,refreshUser:S}=(0,tT.As)(),[j,k]=(0,n.useState)(()=>(0,u.qN)(e)?.items??[]),[L,D]=(0,n.useState)(!1),[A,P]=(0,n.useState)(!1),[$,H]=(0,n.useState)(t),[W,Y]=(0,n.use
1State)(""),[Z,J]=(0,n.useState)(!1),[ei,el]=(0,n.useState)(null),[es,eo]=(0,n.useState)(null),[ec,ed]=(0,n.useState)(null),[eu,eh]=(0,n.useState)(!1),[ep,em]=(0,n.useState)(null),[e_,ef]=(0,n.useState)(null),[ev,ey]=(0,n.useState)(null),[eg,eb]=(0,n.useState)(a),[ew,ex]=(0,n.useState)(null),[eS,eC]=(0,n.useState)(null),ej=(0,n.useCallback)(e=>{eC(e?{count:e.count,onClick:e.reopen}:null)},[]),[ek,eN]=(0,n.useState)(null),[eL,eD]=(0,n.useState)("xer"),[eR,eM]=(0,n.useState)(null),[eA,eP]=(0,n.useState)(null),[e$,eT]=(0,n.useState)(null),[eE,eI]=(0,n.useState)(null),[eB,eG]=(0,n.useState)(!1),[eF,eO]=(0,n.useState)(F.ye),{dayOffsetEnabled:eH}=(0,O.i)(),[eV,eW]=(0,n.useState)({}),[ez,eX]=(0,n.useState)(0),[eU,eY]=(0,n.useState)([]),[eK,eq]=(0,n.useState)(!1),[eQ,eZ]=(0,n.useState)(null),[eJ,e0]=(0,n.useState)(!1),[e1,e2]=(0,n.useState)(!1),[e5,e6]=(0,n.useState)(null),e3=(0,n.useRef)(null),e4=(0,n.useRef)(!1),e8=(0,n.useRef)(async()=>!1),e7=(0,n.useRef)(async()=>!1),e9=(0,n.useRef)(null),te=(0,n.useRef)(null),tt=(0,n.useRef)(null),ta=(0,n.useRef)(!1),{loading:tr,loadGantt:tn,invalidateCache:ti}=function(e){let[t,a]=(0,n.useState)(!1),r=(0,n.useRef)(new Map),i=(0,n.useRef)(new Map);return{loading:t,loadGantt:(0,n.useCallback)(async(t,n,l)=>{let s=`${t}:${n}`;if(l?.forceNew)i.current.delete(s),r.current.delete(s);else{let e=i.current.get(s);if(e)return e;let t=r.current.get(s);if(t)return t}a(!0);let o=(async()=>{l?.onLoadProgress?.("Preparing schedule viewâ¦"),l?.ensureUsdReady&&await l.ensureUsdReady(t,n,{onProgress:e=>l.onLoadProgress?.(e)}),l?.onLoadProgress?.(null);let a=await (0,d.jw)(e,t,n),r=await (0,d.Ju)(e,a.session_id),i=(0,E.Hn)(a.session_expires_at,void 0)??r.sessionExpiresAt;return{sessionId:a.session_id,title:n,sourceFormat:a.format,viewModel:r.viewModel,sessionExpiresAt:i}})();r.current.set(s,o);try{let e=await o;return i.current.set(s,e),e}finally{r.current.delete(s),a(!1)}},[e]),invalidateCache:(0,n.useCallback)((e,t)=>{i.current.delete(`${e}:${t}`)},[])}}(e),{ensureUsdReady:tl,warmMaterializeUsd:ts}=(0,I.XC)(e),to=(0,B.B)(),tc=(0,n.useMemo)(()=>(0,p.Sp)(ek?.metadata),[ek?.metadata]);te.current=ek,tt.current=tc;let td=(0,n.useCallback)(e=>{eN(t=>t?{...t,metadata:{...t.metadata,status_date:e}}:t)},[]),tu=(0,n.useCallback)(async(t,a)=>{if(!eR)return!1;e0(!0),f("");try{let a=await (0,d.V9)(e,eR,t);return(0,i.flushSync)(()=>{td(a.status_date)}),te.current=te.current?{...te.current,metadata:{...te.current.metadata,status_date:a.status_date}}:te.current,tt.current=a.status_date,"number"==typeof a.edit_count&&eX(a.edit_count),a.session_expires_at&&to.setExpiresAt(a.session_expires_at),!0}catch(e){if((0,p.wH)(e)&&ek){let r=a??z(ek,eV,eF),n=Q(r,t),i=e instanceof Error?(0,p.XQ)(e.message):null,l=n.length>0?n:i?[i]:[];return l.length>0&&e6(ee({viewModel:r,activityIds:l,scheduleStatusDate:(0,p.Sp)(ek.metadata),comparisonStatusDate:t,attemptedStatusDate:t,drafts:eV,mode:"blocked",statusDateActivityIds:l})),!1}return f(e instanceof Error?e.message:"Could not update schedule status date"),!1}finally{e0(!1)}},[eV,td,eF,f,e,to,eR,ek]),th=(0,n.useCallback)(()=>{e3.current?.resolve(!1),e3.current=null},[]),tp=(0,n.useCallback)((e,t,a)=>{if(!ek)return Promise.resolve(!1);let r=z(ek,eV,eF);return new Promise(n=>{e3.current={resolve:n,retryFlush:a,targetStatusDate:t},(0,i.flushSync)(()=>{J(!1)}),e6(ee({viewModel:r,activityIds:e,scheduleStatusDate:(0,p.Sp)(ek.metadata),drafts:eV,proposedStatusDate:t,mode:"resolvable",statusDateActivityIds:e,intro:(0,p.Xn)((0,p.Sp)(ek.metadata),e,t)}))})},[eV,eF,ek]),t_=(0,n.useCallback)(()=>{th(),e9.current=null,e6(null)},[th]),tf=(0,n.useCallback)(async()=>{let e=e3.current,t=e5?.proposedStatusDate;if(!e&&!t)return;let a=e?.targetStatusDate??t;if(a){e2(!0),f(""),el(null);try{if(!await tu(a)){e?.resolve(!1),e3.current=null;return}let t=e?.retryFlush??(async()=>e9.current?e7.current(e9.current,{skipPreCheck:!0,resumeAfterStatusDate:!0}):e8.current(!0,{resumeAfterStatusDate:!0})),r=await t();if(e?.resolve(r),!r)return void el("Status date updated, but the revision could not be saved. Try Save again.");e3.current=null,e9.current=null,e6(null)}finally{e2(!1)}}},[tu,f,e5?.proposedStatusDate]),tv=(0,n.useCallback)(async()=>{eq(!0);try{let t=await (0,d.aR)(e);eY(t.items||[])}catch{eY([])}finally{eq(!1)}},[e]),ty=(0,n.useMemo)(()=>ek?z(ek,eV,eF):null,[ek,eV,eF]),tg=Object.keys(eV).length,tb=tg>0,tw=tg+ez,tx=tw>0,tS=0===(v=Object.entries(eV).sort(([e],[t])=>e.localeCompare(t))).length?"":JSON.stringify(Object.fromEntries(v)),tC=tg>0?tS:ez>0?`session:${ez}`:"",tj=(0,n.useCallback)((e,t)=>{eW(a=>({...a,[e]:{...a[e],...t}}))},[]),tk=(0,n.useCallback)(async()=>{let t=te.current;if(!eR||!t||0===tg)return!0;let a=async()=>{let t,a=te.current;if(!a)return!1;let n=ez,l=0;for(let[t,i]of Object.entries(eV)){let s=a.activity_details[t],o=X(s,i);if(o){if(!s)throw Error(`Could not sync ${t}. Reload the schedule and try again.`);l+=1;try{let a=await (0,d.gR)(e,eR,t,o);"number"==typeof a.edit_count&&(n=a.edit_count),a.session_expires_at&&to.setExpiresAt(a.session_expires_at)}catch(n){let e=n instanceof d.gQ||n instanceof Error?n.message:"Could not save activity change";if((0,p.wH)(n)){let e=q(a,eV,[t])??(0,p.Qe)();return tp([t],e,r)}throw Error(`Could not save ${t}: ${e}`)}}}if(0===l&&Object.keys(eV).length>0)throw Error("Could not sync cell edits before save. Reload the schedule and try again.");return(0,i.flushSync)(()=>{eN(e=>e?(te.current=t=z(e,eV,eF),t):e)}),eW({}),eX(n),t??!1},r=async()=>!1!==await a(),n=(0,p.Sp)(te.current?.metadata)??tt.current;if(n){let e=K(t,eV,n);if(e.length>0){let a=q(t,eV,e)??(0,p.Qe)();return tp(e,a,r)}}return a()},[eV,eF,tg,f,e,tp,eR,to,ez]),tN=(0,n.useCallback)(async e=>{if(!ek)return!1;let t=z(ek,eV,eF),a=Q(t,e);if(a.length>0)return e6(ee({viewModel:t,activityIds:a,scheduleStatusDate:(0,p.Sp)(ek.metadata),comparisonStatusDate:e,attemptedStatusDate:e,drafts:eV,mode:"blocked",statusDateActivityIds:a})),!1;e0(!0);try{if(tg>0){let e=await tk();if(!1===e)return!1;"object"==typeof e&&(t=e)}return await tu(e,t)}finally{e0(!1)}},[eV,tu,eF,tg,tk,ek]),tL=async(e,t,a)=>{f(""),eT(null),eG(!1),eI(null);try{let r=await tn(e,t,{...a,ensureUsdReady:(e,t,a)=>tl(e,t,{...a,onProgress:eI,onSuperseded:()=>eG(!0)}),onLoadProgress:eI});eb(r.title),eD(r.sourceFormat),eN(r.viewModel),eM(r.sessionId),to.setExpiresAt(r.sessionExpiresAt),eW({}),eX(0),eG(!1)}catch(t){let e=t instanceof Error?t.message:"Visualization failed";eT(e),f(e)}finally{eI(null)}},tD=async t=>{if(!eR||eA)return;let r=new Date().toISOString().slice(0,10),n=ty?.proj_short_name||a,l="pdf"===t?".pdf":".xer",s=`${n}-edited-${r}${l}`;eP(t),f("");try{let a="xer"===eL&&tb&&ek?U(ek,eV):void 0,r=await (0,d.I0)(e,eR,t,s,{promptSaveLocation:!0,barDateMode:"pdf"===t?eF:void 0,dayOffsetEnabled:"pdf"===t?eH:void 0,pendingEdits:a});a&&a.length>0&&ek&&((0,i.flushSync)(()=>{eN(e=>{if(!e)return e;let t=z(e,eV,eF);return te.current=t,t})}),eW({}),"number"==typeof r.editCount&&eX(r.editCount))}catch(e){f(e instanceof Error?e.message:"Export failed")}finally{eP(null)}};(0,n.useEffect)(()=>{let r=!1;return(async()=>
1{if(ta.current){ta.current=!1,H(t),ts(t,a);return}try{let n=(0,d.zF)(e).then(e=>{if(r)return;k(e.items||[]),H(t);let a=e.items?.find(e=>e.upload_id===t);Y(a?.comment||"")}).catch(e=>{r||f(e instanceof Error?e.message:"Failed to load revisions")});await Promise.all([n,tL(t,a),tv()])}catch(e){if(!r){let t=e instanceof Error?e.message:"Visualization failed";eT(t),f(t)}}})(),()=>{r=!0}},[e,t,a]);let tM=(0,n.useMemo)(()=>j.find(e=>e.upload_id===$),[j,$]),tA=(0,n.useMemo)(()=>(0,C.nZ)(eg||a),[a,eg]),tP=(0,n.useMemo)(()=>{if(!tM)return null;let e=tM.created_by_name?.trim()||tM.created_by||"Unknown",t=ek?.metadata?.activity_count??l??ew?.visibleActivityCount;return null!=t?`Uploaded by ${e} \xb7 ${t.toLocaleString()} activities`:`Uploaded by ${e}`},[l,tM,ek?.metadata?.activity_count,ew?.visibleActivityCount]);(0,n.useEffect)(()=>{em(tM?.source_sha256??null)},[tM?.upload_id,tM?.source_sha256]);let t$=tM?.comment?.trim()??"",tI=W.trim()!==t$,tO=tM?`Rev ${tM.revision_number+1}`:"Rev ?",tH=tM?.revision_display_name?.trim()??"",tV=async e=>{if(e===$)return;if(tb||tI){let e=[];
1if(tb&&e.push("unsaved cell edits"),tI&&e.push("unsaved revision notes"),!window.confirm(`You have ${e.join(" and ")}. Switch version and discard them?`))return}let t=j.find(t=>t.upload_id===e);if(!t)return;H(e),Y(t.comment||"");let r=t.selected_proj_short_name||t.projects?.[0]?.proj_short_name||a;await tL(t.upload_id,r,{forceNew:!0}),_?.(t.upload_id,r)},tW=async()=>{if(tb&&!window.confirm("You have unsaved cell edits. Switch version and discard them?"))return;let e=j.find(e=>e.upload_id===$);if(!e)return;let t=e.selected_proj_short_name||e.projects?.[0]?.proj_short_name||a;await tL(e.upload_id,t,{forceNew:!0}),_?.(e.upload_id,t)},tz=Z||null!=eA,tX=async(t,a)=>{if(!tz&&!tr){f("");try{let r=await (0,d.F)(e,t,{revision_display_name:a||null});k(e=>e.map(e=>e.upload_id===t?{...e,revision_display_name:r.revision_display_name}:e))}catch(e){throw f(e instanceof Error?e.message:"Failed to rename revision"),e}}},tU="xer"===eL&&(tx||tI),tY=async(t=!1,r)=>{if(r?.resumeAfterStatusDate===!0){if(e4.current||!eR||"xer"!==eL)return!1}else if(e4.current||Z||tr||null!=eA||!eR||"xer"!==eL||!tU)return!1;if(!t&&ek&&tg>0){let e=et({viewModel:ek,drafts:eV,scheduleStatusDate:(0,p.Sp)(ek.metadata)});if(e)return"resolvable"===e.mode&&e.proposedStatusDate&&(e3.current={resolve:()=>{},retryFlush:async()=>e8.current(!0,{resumeAfterStatusDate:!0}),targetStatusDate:e.proposedStatusDate}),e9.current=null,e6(e),!1}let n=W.trim()||null,l=tg>0;e4.current=!0,J(!0),el(null),f("");try{let t=l&&ek?U(ek,eV):void 0,s=await (0,d.$b)(e,eR,n,{expectedSourceSha256:r?.force?null:ep,force:r?.force,pendingEdits:t});l&&ek&&(0,i.flushSync)(()=>{eN(e=>{if(!e)return e;let t=z(e,eV,eF);return te.current=t,t})}),eW({}),eX(0),Y(n??""),em(s.source_sha256),s.change_summary&&eZ(s.change_summary),k(e=>e.map(e=>e.upload_id===$?{...e,comment:n,updated_at:s.updated_at||e.updated_at}:e));let o=ek?.proj_short_name||a;ti($,o);let c=await (0,d.zF)(e);k(c.items||[]);let u=c.items?.find(e=>e.upload_id===$);return u&&Y(u.comment?.trim()??n??""),ef(tx?"Revision saved.":"Revision notes saved."),!0}catch(t){if(t instanceof d.gQ&&"REVISION_CONFLICT"===t.errorCode&&t.details?.current&&"object"==typeof t.details.current)return eo(t.details.current),ed("save_in_progress"===t.details.reason?"save_in_progress":"stale_revision"),el(null),f(""),!1;if(ek&&(0,p.wH)(t)){let e=t instanceof Error?t.message:"",a=ea({viewModel:ek,drafts:eV,scheduleStatusDate:(0,p.Sp)(ek.metadata),message:e,activityId:(0,p.XQ)(e)});if(a?.proposedStatusDate)return e3.current={resolve:()=>{},retryFlush:async()=>e8.current(!0,{resumeAfterStatusDate:!0}),targetStatusDate:a.proposedStatusDate},e9.current=null,(0,i.flushSync)(()=>{J(!1)}),e6(a),!1}let e=t instanceof Error?t.message:"Failed to save revision";return el(e),f(e),!1}finally{e4.current=!1,J(!1)}};e8.current=tY;let tK=async(t,r)=>{let n=r?.skipPreCheck===!0;if(r?.resumeAfterStatusDate===!0){if(e4.current||!eR||"xer"!==eL)return!1}else if(e4.current||Z||tr||null!=eA||!eR||"xer"!==eL)return!1;if(!n&&ek&&tg>0){let e=et({viewModel:ek,drafts:eV,scheduleStatusDate:(0,p.Sp)(ek.metadata)});if(e)return e9.current=t??null,"resolvable"===e.mode&&e.proposedStatusDate&&(e3.current={resolve:()=>{},retryFlush:async()=>e7.current(e9.current??void 0,{skipPreCheck:!0,resumeAfterStatusDate:!0}),targetStatusDate:e.proposedStatusDate}),eh(!1),e6(e),!1}let l=t?.comment!==void 0?t.comment:W.trim()||null,s=t?.revisionDisplayName!==void 0?t.revisionDisplayName:tM?.revision_display_name?.trim()||null,o=tg>0;e4.current=!0,J(!0),el(null),eh(!1),f("");try{let t=o&&ek?U(ek,eV):void 0,r=await (0,x.FC)(()=>(0,d.Dz)(e,eR,{comment:l,revisionDisplayName:s,pendingEdits:t}));o&&ek&&(0,i.flushSync)(()=>{eN(e=>{if(!e)return e;let t=z(e,eV,eF);return te.current=t,t})}),eW({}),eX(0),Y(l??""),em(r.source_sha256),r.change_summary&&eZ(r.change_summary),H(r.upload_id);let n=ek?.proj_short_name||a;ti(r.upload_id,n);let c=await (0,d.zF)(e);k(c.items||[]);let u=c.items?.find(e=>e.upload_id===r.upload_id);return u&&(Y(u.comment?.trim()??l??""),em(u.source_sha256??r.source_sha256)),ta.current=!0,_?.(r.upload_id,n),e9.current=null,ef("Saved as a new revision."),!0}catch(a){if((0,x.VQ)(a))return eh(!0),el((0,x.XQ)()),f(""),!1;if(ek&&(0,p.wH)(a)){let e=a instanceof Error?a.message:"",r=ea({viewModel:ek,drafts:eV,scheduleStatusDate:(0,p.Sp)(ek.metadata),message:e,activityId:(0,p.XQ)(e)});if(r?.proposedStatusDate)return e9.current=t??null,e3.current={resolve:()=>{},retryFlush:async()=>e7.current(e9.current??void 0,{skipPreCheck:!0,resumeAfterStatusDate:!0}),targetStatusDate:r.proposedStatusDate},(0,i.flushSync)(()=>{J(!1)}),e6(r),!1}let e=a instanceof Error?a.message:"Failed to save as new revision";return el(e),f(e),!1}finally{e4.current=!1,J(!1)}};e7.current=tK;let tq=async()=>
1{if(eo(null),ed(null),es){f("");try{let t=await (0,d.zF)(e);k(t.items||[]),H(es.upload_id),Y(es.comment||""),em(es.source_sha256??null),eW({}),eX(0);let r=es.selected_proj_short_name||es.projects?.[0]?.proj_short_name||a;await tL(es.upload_id,r,{forceNew:!0}),_?.(es.upload_id,r)}catch(e){f(e instanceof Error?e.message:"Failed to reload revision")}}},tQ=async()=>{let t=ek?.proj_short_name||a;f("");try{await (0,en.Nr)(e,$,t),ey("Link copied")}catch(e){f(e instanceof Error?e.message:"Could not copy link")}};(0,n.useEffect)(()=>{if(!ev)return;let e=window.setTimeout(()=>ey(null),2500);return()=>window.clearTimeout(e)},[ev]),(0,n.useEffect)(()=>{tr&&ex(null)},[tr]),(0,n.useEffect)(()=>{if(!e_)return;let e=window.setTimeout(()=>ef(null),4e3);return()=>window.clearTimeout(e)},[e_]);let tZ=null!=eR&&!!$&&tT.Bt.hasScheduleReaderCommentsAccess(g);return(0,r.jsx)(tm.G,{children:(0,r.jsxs)(tB,{enabled:tZ,projectId:e,uploadId:$,initialHealthPanelOpen:s,onProductAccessDenied:()=>D(!0),children:[(0,r.jsx)("div",{className:b().toolbar,"data-ui":"sv-header",children:(0,r.jsxs)("div",{className:b().toolbarRowPrimary,children:[(0,r.jsxs)("div",{className:b().toolbarLeading,children:[(0,r.jsx)("button",{type:"button",className:b().backBtn,"data-ui":"sv-back","aria-label":"Back to Workflows",title:"Back to Workflows",onClick:h,children:"â¹"}),(0,r.jsx)(V.w,{title:tA,stats:ew,subtitle:tP,warningsReopen:eS,titleAccessory:"xer"===eL?(0,r.jsx)(M.F,{versions:j,selectedVersionId:$,selectedVersion:tM,showLayerRole:!1,loading:tr,disabled:tz,onSelect:e=>void tV(e),onRename:tM?e=>tX(tM.upload_id,e):void 0}):null}),"xer"!==eL&&(0,r.jsxs)("div",{className:b().headerMetaControls,children:[(0,r.jsx)("label",{htmlFor:"viewer-version",className:b().fieldLabel,children:"Version:"}),(0,r.jsx)("select",{id:"viewer-version",className:`${b().select} ${b().versionSelect}`,value:$,disabled:tr,onChange:e=>{H(e.target.value);let t=j.find(t=>t.upload_id===e.target.value);Y(t?.comment||"")},children:j.map(e=>{let t,a;return(0,r.jsx)("option",{value:e.upload_id,children:(a=(t=e.updated_at||e.created_at)?new Date(t).toLocaleDateString():"unknown date",`${(0,C.xe)(e)} - ${a}`)},e.upload_id)})}),(0,r.jsx)("button",{type:"button",className:b().toolbarBtn,onClick:()=>void tW(),disabled:tr,children:tr?"Loadingâ¦":"View"})]})]}),(0,r.jsx)("div",{className:b().toolbarTrailing,"data-ui":"sv-header-actions",children:null!=eR?(0,r.jsx)("div",{className:b().actionGroup,"aria-label":"Schedule actions",children:(0,r.jsx)(tG,{actionsBusy:tz,loading:tr,onCopyLink:()=>void tQ(),copyLinkMessage:ev,shareRevisionLabel:tM?(0,C.mj)(tM):void 0,onExportPdf:()=>void tD("pdf"),onExportXer:()=>void tD("xer"),exportBusy:eA,sourceFormat:eL,trailing:"xer"===eL?(0,r.jsx)(w,{busy:Z,disabled:tr||null!=eA,pendingRevisionEdits:tw,currentRevisionLabel:tM?(0,C.mj)(tM):void 0,nextRevisionLabel:tM?`Rev ${tM.revision_number+1}`:void 0,onSave:()=>void tY(),onSaveAs:()=>void(!Z&&!tr&&null==eA&&eR&&"xer"===eL&&eh(!0)),currentSaveEnabled:tU}):null})}):null})]})}),ei&&!Z&&(0,r.jsx)("p",{className:b().saveRevisionError,role:"alert",children:ei}),e_?(0,r.jsxs)("div",{className:b().viewerToast,role:"status","aria-live":"polite",children:[(0,r.jsx)("span",{className:b().viewerToastIcon,"aria-hidden":"true",children:(0,r.jsx)(o.A,{size:11,strokeWidth:3})}),(0,r.jsx)("span",{children:e_})]}):null,eQ&&(0,c.M)(eQ)&&(0,r.jsx)("div",{className:b().saveChangeSummaryDock,children:(0,r.jsx)(T,{summary:eQ,title:"Changes saved on this revision",onClose:()=>eZ(null)})}),eB&&(0,r.jsx)(er.wb,{children:I.fg}),(0,r.jsxs)(er.O$,{loading:tr,loadingMessage:eE??"Loading schedule viewâ¦",children:[e$&&!tr&&(0,r.jsx)(er.fK,{message:e$,onRetry:()=>{let e=j.find(e=>e.upload_id===$);tL($,e?.selected_proj_short_name||e?.projects?.[0]?.proj_short_name||a,{forceNew:!0})}}),!tr&&!e$&&ty&&eR&&(0,r.jsx)(tF,{displayViewModel:ty,sourceFormat:eL,projectId:e,sessionId:eR,barDateMode:eF,onBarDateModeChange:eO,onActivityEdit:tj,onError:f,savedViews:eU,savedViewsLoading:eK,selectedVersionId:$,hasUnsavedEdits:tb,pendingRevisionEdits:tw,healthRevisionKey:tC,scheduleStatusDate:tc??void 0,statusDateUpdateBusy:eJ,onStatusDateUpdate:tN,onCompareRequest:m,flushActivityDraftsToServer:tk,refreshSavedViews:tv,onViewStatsChange:ex,onWarningsReopenChange:ej,onDcmaAccessRevoked:()=>P(!0),belowToolbar:(0,r.jsx)(G.E,{show:to.showWarning,minutesLeft:to.minutesLeft,isExpired:to.isExpired,variant:"edit",hasUnsavedEdits:tx,onSaveRevision:()=>
1void tY(),saveBusy:Z})})]}),(0,r.jsx)(N,{current:es,reason:ec,busy:Z,pendingDisplayName:tH,pendingNotes:W,pendingRevisionLabel:tM?.revision_label??"",onClose:()=>{eo(null),ed(null)},onChooseSaveAs:()=>{eo(null),ed(null),eh(!0)},onOverride:()=>{eo(null),ed(null),tY(!1,{force:!0})},onReload:()=>void tq()}),(0,r.jsx)(R,{open:eu,busy:Z,defaultRevisionLabel:tO,currentRevisionLabel:tM?(0,C.mj)(tM):"",initialDisplayName:tO,initialNotes:"",onClose:()=>eh(!1),onConfirm:e=>void tK(e)}),(0,r.jsx)(y,{panel:e5,loading:eJ||e1,onClose:t_,onConfirmResolve:()=>{tf()}}),(0,r.jsx)(tE.$,{isOpen:L,title:tR.V3.title,body:tR.V3.body,ctaLabel:tR.V3.cta,onClose:()=>{D(!1),S()}}),(0,r.jsx)(tE.$,{isOpen:A,title:tR.gJ.title,body:tR.gJ.body,ctaLabel:tR.gJ.cta,onClose:()=>{P(!1),S()}})]})})}},49104:e=>{e.exports={portal:"SaveAsRevisionDialog_portal__wIaHA",backdrop:"SaveAsRevisionDialog_backdrop__CuXEh",frame:"SaveAsRevisionDialog_frame__iNP28",header:"SaveAsRevisionDialog_header__3s6WQ",title:"SaveAsRevisionDialog_title__bLymz",subtitle:"SaveAsRevisionDialog_subtitle__uHk2h",body:"SaveAsRevisionDialog_body__GAmLE",fieldLabel:"SaveAsRevisionDialog_fieldLabel__FzXuN",textInput:"SaveAsRevisionDialog_textInput__otPZa",actions:"SaveAsRevisionDialog_actions__XNpx1",cancelBtn:"SaveAsRevisionDialog_cancelBtn__6oI5h",confirmBtn:"SaveAsRevisionDialog_confirmBtn__DUmzb"}},49891:e=>{e.exports={portal:"SaveRevisionConflictModal_portal__EMSYd",backdrop:"SaveRevisionConflictModal_backdrop__pvtEs",frame:"SaveRevisionConflictModal_frame__Y3eSt",header:"SaveRevisionConflictModal_header__58mEi",headerMain:"SaveRevisionConflictModal_headerMain__Gwadn",kicker:"SaveRevisionConflictModal_kicker__XKVyb",title:"SaveRevisionConflictModal_title__kcaC4",subtitle:"SaveRevisionConflictModal_subtitle__KYOgU",closeBtn:"SaveRevisionConflictModal_closeBtn__Z9Xra",body:"SaveRevisionConflictModal_body__PDlCo",currentCard:"SaveRevisionConflictModal_currentCard__792o3",currentLabel:"SaveRevisionConflictModal_currentLabel__7kDFf",currentTitle:"SaveRevisionConflictModal_currentTitle__Z5IXN",currentMeta:"SaveRevisionConflictModal_currentMeta__Bohq1",pendingCard:"SaveRevisionConflictModal_pendingCard__SqFhN",pendingRow:"SaveRevisionConflictModal_pendingRow__hXpIh",pendingKey:"SaveRevisionConflictModal_pendingKey__8YHbI",pendingValue:"SaveRevisionConflictModal_pendingValue__GXRZO",hint:"SaveRevisionConflictModal_hint__yxCx0",actions:"SaveRevisionConflictModal_actions__7x0p5"}},50692:(e,t,a)=>{"use strict";a.d(t,{Rw:()=>o,SA:()=>c,Si:()=>d});var r=a(37876),n=a(14232),i=a(66770),l=a(48728);let s=(0,n.createContext)(null);function o({children:e,initialHealthPanelOpen:t=!1}){let a=(0,i.U)(),n=(0,l.r)(a,{initialHealthPanelOpen:t});return(0,r.jsx)(s.Provider,{value:n,children:e})}function c(){let e=(0,n.useContext)(s);if(!e)throw Error("useGanttSidePanelContext must be used within GanttSidePanelProvider");return e}function d(){return(0,n.useContext)(s)}},51223:(e,t,a)=>{"use strict";a.d(t,{w:()=>l});var r=a(37876);a(14232);var n=a(13412),i=a.n(n);let l=({title:e,stats:t,subtitle:a,titleAccessory:n,warningsReopen:l})=>{let s=a??(null!=t?`${t.visibleActivityCount.toLocaleString()} activities`:null);return(0,r.jsxs)("div",{className:i().titleBlock,"data-ui":"sv-title-block",children:[(0,r.jsxs)("div",{className:i().titleRow,children:[(0,r.jsx)("span",{className:i().title,"data-ui":"sv-title",children:e}),n?(0,r.jsx)("div",{className:i().titleAccessory,children:n}):null]}),(s||l)&&(0,r.jsxs)("div",{className:i().titleMetaRow,children:[s?(0,r.jsx)("span",{className:i().titleMeta,"data-ui":"sv-subtitle",children:s}):null,l?(0,r.jsxs)("button",{type:"button",className:i().warningsReopenInTitle,"data-ui":"sv-warnings-reopen",onClick:l.onClick,children:["[",l.count,"] file warnings"]}):null]})]})}},53007:(e,t,a)=>{"use strict";a.d(t,{AM:()=>v,H:()=>o,Hh:()=>d,JF:()=>w,Ol:()=>s,RT:()=>h,SC:()=>g,Uy:()=>u,Z1:()=>x,mW:()=>l,pN:()=>y,tR:()=>c,u4:()=>p});var r=a(4519),n=a(98249);let i={types:[],primaryRsrcShortNames:[],searchShortName:null,hasNonlabor:null,hasPrimary:null,unassigned:null},l={searchText:"",criticalOnly:!1,minPercent:null,maxPercent:null,maxTotalFloatDays:null,startOnOrAfter:null,finishOnOrBefore:null,statusCodes:[],activityTypes:[],activityCodeFilters:{},udfFilters:{},resourceFilter:{...i},sortBy:"none",sortAsc:!0},s=2,o=300,c=400;function d(e){let t={...i,...e?.resourceFilter??{}};return{...l,...e,activityCodeFilters:{...e?.activityCodeFilters??{}},udfFilters:{...e?.udfFilters??{}},resourceFilter:t}}function u(e){return h(e)>0}function h(e){let t=0;e.searchText.trim().length>
10&&(t+=1),e.criticalOnly&&(t+=1),null!=e.minPercent&&(t+=1),null!=e.maxPercent&&(t+=1),null!=e.maxTotalFloatDays&&(t+=1),(null!=e.startOnOrAfter||null!=e.finishOnOrBefore)&&(t+=1),e.statusCodes.length>0&&(t+=1),e.activityTypes.length>0&&(t+=1),t+=Object.values(e.activityCodeFilters).filter(e=>e.length>0).length,t+=Object.values(e.udfFilters).filter(e=>e.length>0).length;let a=e.resourceFilter;return(a.types.length>0||a.primaryRsrcShortNames.length>0||a.searchShortName?.trim()||null!=a.hasNonlabor||null!=a.hasPrimary||null!=a.unassigned)&&(t+=1),t}function p(e,t){return e.searchText!==t.searchText||e.resourceFilter.searchShortName!==t.resourceFilter.searchShortName||e.minPercent!==t.minPercent||e.maxPercent!==t.maxPercent}function m(e){return e.slice(0,10)}let _=new Set(["RT_Labor","RT_Mat","RT_Equip"]);function f(e,t,a,i,l,o){var c;if(!t||!function(e,t){if(!t)return!0;let a=e.toLowerCase();return t.length<s?a===t:a.includes(t)}(e,i.searchText.trim().toLowerCase()))return!1;let d=o??(t?[t]:[]);if(!function(e,t){if(0===e.length)return!0;let a=new Set(e);return t.some(e=>e&&a.has(e?.p6_status_code||"TK_NotStart"))}(i.statusCodes,d))return!1;let u=o??(t?[t]:[]);if(!function(e,t){if(0===e.length)return!0;let a=new Set(e);return t.some(e=>{let t,r=(t=e?.activity_type?.trim()||"")?(0,n.Qb)(t):"";return r&&a.has(r)})}(i.activityTypes,u)||i.criticalOnly&&!t.is_critical&&!a?.is_critical)return!1;if(null!=i.maxTotalFloatDays){let e=t.total_float_days;if("number"!=typeof e||!Number.isFinite(e)||e>i.maxTotalFloatDays)return!1}let h=Math.round((t.percent_complete??0)*100);return(null==i.minPercent||!(h<i.minPercent))&&(null==i.maxPercent||!(h>i.maxPercent))&&(c=o??[t],!!(!i.startOnOrAfter&&!i.finishOnOrBefore||c.some(e=>null!=e&&function(e,t,a){if(!a.startOnOrAfter&&!a.finishOnOrBefore)return!0;let n=(0,r.wS)(e,t);if(!n)return!1;let i=m(n.start),l=m(n.finish);if(a.startOnOrAfter&&a.finishOnOrBefore){let e=i>=a.startOnOrAfter&&i<=a.finishOnOrBefore,t=l>=a.startOnOrAfter&&l<=a.finishOnOrBefore;return e&&t}return(!a.startOnOrAfter||!(i<a.startOnOrAfter))&&(!a.finishOnOrBefore||!(l>a.finishOnOrBefore))}(e,l,i)))&&!!function(e,t){if(!e)return!1;for(let[a,r]of Object.entries(t.activityCodeFilters)){if(0===r.length)continue;let t=(e.activity_codes??[]).filter(e=>e.actv_code_type===a).map(e=>e.actv_code_name);if(!r.some(e=>t.includes(e)))return!1}for(let[a,r]of Object.entries(t.udfFilters)){if(0===r.length)continue;let t=(e.task_udfs??[]).filter(e=>e.label===a).map(e=>String(e.value??""));if(!r.some(e=>t.includes(e)))return!1}let a=t.resourceFilter,r=e.resources??[],n=e.primary_resource;if(a.types.length>0){let e=new Set(r.map(e=>e.rsrc_type));if(!a.types.some(t=>e.has(t)))return!1}if(a.primaryRsrcShortNames.length>0){let e=n?.rsrc_short_name??"";if(!a.primaryRsrcShortNames.includes(e))return!1}let i=a.searchShortName?.trim().toLowerCase()??"";return(!(i.length>=2)||!!r.map(e=>e.rsrc_short_name.toLowerCase()).some(e=>e.includes(i)))&&!(!0===a.hasNonlabor&&!r.some(e=>!_.has(e.rsrc_type)&&e.rsrc_type.length>0)||!1===a.hasNonlabor&&r.some(e=>!_.has(e.rsrc_type)))&&(!0!==a.hasPrimary||!!n)&&(!1!==a.hasPrimary||!n)&&(!0!==a.unassigned||!(r.length>0))&&(!1!==a.unassigned||0!==r.length)}(t,i))}function v(e,t,a,r,n){let i=new Set;if(!u(r)){for(let t of e)"activity"===t.row_type&&t.activity_id&&i.add(t.activity_id);return i}for(let l of e){if("activity"!==l.row_type||!l.activity_id)continue;let e=t[l.activity_id],s=a.get(l.activity_id);f(l.activity_id,e,s,r,n)&&i.add(l.activity_id)}return i}function y(e,t,a,r,n,i){let l=new Set;if(!u(n)){for(let t of e)"activity"===t.row_type&&t.activity_id&&l.add(t.activity_id);return l}let s=t.get("primary")??t.get(Array.from(a)[0]);for(let o of e){if("activity"!==o.row_type||!o.activity_id)continue;let e=o.activity_id,c=function(e,t,a){let r=[];for(let n of Array.from(a)){let a=t.get(n)?.[e];a&&r.push(a)}return r}(e,t,a),d=s?.[e]??c[0];if(!d)continue;let u=r.get(e);f(e,d,u,n,i,c)&&l.add(e)}return l}function g(e,t,a,r,n){if(!r)return t;let i=new Set;return a.forEach(e=>{for(let t of n.get(e)??[])i.add(t)}),e.map((e,r)=>!!t[r]&&("activity"===e.row_type?!!(e.activity_id&&a.has(e.activity_id)):"wbs_header"!==e.row_type||!e.wbs_id||i.has(e.wbs_id)))}function b(e,t,a,r){let n=a.get(e),i=r?.[e];switch(t){case"start":return n?.start_week_index??Number.MAX_SAFE_INTEGER;case"finish":return n?.end_week_index??Number.MAX_SAFE_INTEGER;case"id":return e;case"name":return(i?.activity_name||i?.activity_description||e).toLowerCase();case"totalFloat":return i?.total_float_days??Number.MAX_SAFE_INTEGER;default:return 0}}function w(e,t,a,r,n){if("none"===r.sortBy)return e;let i=[],l=0;for(;l<e.length;){if(!t[l]){l+=1;continue}let s=e[l];
1if("wbs_header"===s.row_type){i.push(s),l+=1;continue}let o=l,c=s.indent_level,d=[];for(;l<e.length;){let a=e[l];if(!t[l]){l+=1;continue}if("wbs_header"===a.row_type||"activity"===a.row_type&&a.indent_level<c)break;"activity"===a.row_type&&a.activity_id&&d.push(a),l+=1}d.sort((e,t)=>{let i=e.activity_id??"",l=t.activity_id??"",s=b(i,r.sortBy,a,n),o=b(l,r.sortBy,a,n);return s<o?r.sortAsc?-1:1:s>o?r.sortAsc?1:-1:0}),i.push(...d),l===o&&(l+=1)}return i}function x(e,t){return e.reduce((e,a,r)=>t[r]&&"activity"===a.row_type?e+1:e,0)}},54642:(e,t,a)=>{"use strict";a.d(t,{II:()=>d,S4:()=>x,WK:()=>f,b6:()=>y,cL:()=>l,gU:()=>m,ov:()=>_,pc:()=>u,pk:()=>v,t_:()=>s,wQ:()=>b,y_:()=>c,zt:()=>g});let r=["id","desc","type","status","pct","start","finish","actualStart","actualFinish","totalFloat","critical","primaryResource"],n={id:168,desc:200,type:108,status:104,pct:64,start:88,finish:88,actualStart:104,actualFinish:104,totalFloat:56,critical:72,primaryResource:120},i={id:140,desc:80,type:80,status:90,pct:60,start:80,finish:80,actualStart:88,actualFinish:88,totalFloat:56,critical:56,primaryResource:88},l=96,s=72,o=new Set(["id","desc","status","pct","start","finish","totalFloat"]);function c(e,t){return t?.trim()||e}function d(e,t){return`ac:${c(e,t)}`}function u(e){if(!e.startsWith("ac:"))return null;let t=e.slice(3);return t.length>0?t:null}function h(e){return r.includes(e)}function p(e){return h(e)||null!=u(e)}function m(e){return e?.activity_code_types?.length?e.activity_code_types.map(e=>d(e.actv_code_type,e.actv_code_type_id)):[]}function _(e){return[...r,...m(e)]}function f(e){let t={};for(let e of r)t[e]=o.has(e);for(let a of m(e))t[a]=!1;return t}function v(e){let t={...n};for(let a of m(e))t[a]=l;return t}function y(e){return h(e)?i[e]:s}function g(e,t){return e in t?t[e]:h(e)?n[e]:l}function b(e,t){let a={...t};for(let t of e?.activity_code_types??[]){let e=d(t.actv_code_type,t.actv_code_type_id),r=t.actv_code_type;a[e]=r.length>28?`${r.slice(0,27)}â¦`:r}return a}function w(e,t){if(p(e))return e;let a={codeTrade:["trade"],codePhase:["phase"],codeCsi:["csi"]}[e];if(!a||!t)return null;let r=t.activity_code_types.find(e=>{let t=e.actv_code_type.trim().toLowerCase();return a.some(e=>t===e||t.endsWith(` - ${e}`)||t.includes(e))});return r?d(r.actv_code_type,r.actv_code_type_id):null}function x(e,t){let a=new Set(_(t)),r=[],n=new Set;for(let i of e.order){let e=w(i,t)??(p(i)?i:null);e&&a.has(e)&&!n.has(e)&&(r.push(e),n.add(e))}for(let e of _(t))n.has(e)||(r.push(e),n.add(e));let i={...f(t)};for(let[r,n]of Object.entries(e.visible)){let e=w(r,t)??r;a.has(e)&&(i[e]=!!n)}r.some(e=>i[e])||(i.id=!0);let l={...v(t),...e.widths};for(let r of Object.keys(e.widths)){let n=w(r,t)??r;a.has(n)&&(l[n]=e.widths[r])}return{order:r,visible:i,widths:l}}},55563:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(53362).A)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]])},56218:(e,t,a)=>{"use strict";a.d(t,{$m:()=>l,E6:()=>c,En:()=>i,Mi:()=>n,Nr:()=>u,T$:()=>d,jt:()=>s});let r="/tasks";function n(e){let t=new URLSearchParams;e?.projectId&&t.set("projectId",e.projectId),e?.tab&&t.set("tab",e.tab),e?.compareId&&t.set("compareId",e.compareId),e?.openCatalog&&t.set("si","1");let a=t.toString();return a?`${r}?${a}`:r}function i(e){return n({projectId:e,tab:"compare",openCatalog:!0})}async function l(e,t){let a,r=(a=n({projectId:e,tab:"compare",compareId:t,openCatalog:!0}),`${window.location.origin}${a}`);if(!navigator.clipboard?.writeText)throw Error("Clipboard is not available in this browser.");await navigator.clipboard.writeText(r)}class s extends Error{constructor(e,t){super(e),this.name="ScheduleReaderDeepLinkError",this.code=t}}function o(e,t,a){let r=new URLSearchParams({schedule:a});return`/schedulereader/projects/${encodeURIComponent(e)}/revisions/${encodeURIComponent(t)}?${r.toString()}`}function c(e,t,a){let r=o(e,t,a);`${window.location.pathname}${window.location.search}`!==r&&window.history.replaceState(window.history.state,"",r)}function d(e,t){let a=t?.trim();if(a){if(!(e.projects??[]).some(e=>e.proj_short_name===a))throw new s(`Schedule "${a}
1" is not available on this revision.`,"invalid-schedule");return a}if(e.selected_proj_short_name?.trim())return e.selected_proj_short_name.trim();let r=e.projects??[];if(1===r.length)return r[0].proj_short_name;if(0===r.length)throw new s("This revision has no schedule projects to open.","schedule-required");throw new s("This revision has multiple schedules. Add ?schedule=PROJ_SHORT_NAME to the link.","schedule-required")}async function u(e,t,a){let r=`${window.location.origin}${o(e,t,a)}`;if(!navigator.clipboard?.writeText)throw Error("Clipboard is not available in this browser.");await navigator.clipboard.writeText(r)}},56558:(e,t,a)=>{"use strict";a.d(t,{k:()=>c});var r=a(37876);a(14232);var n=a(53362);let i=(0,n.A)("chevrons-down",[["path",{d:"m7 6 5 5 5-5",key:"1lc07p"}],["path",{d:"m7 13 5 5 5-5",key:"1d48rs"}]]),l=(0,n.A)("chevrons-up",[["path",{d:"m17 11-5-5-5 5",key:"e8nh98"}],["path",{d:"m17 18-5-5-5 5",key:"2avn1x"}]]);var s=a(90055),o=a.n(s);let c=({onExpandAll:e,onCollapseAll:t,bindTip:a,children:n})=>{let s=a?.("Expand All")??{title:"Expand All"},c=a?.("Collapse All")??{title:"Collapse All"};return(0,r.jsxs)("div",{className:o().toolbarGroup,role:"group","aria-label":"Outline",children:[(0,r.jsx)("button",{type:"button",className:o().toolbarSquareIconBtn,"aria-label":"Expand All",...s,onClick:e,children:(0,r.jsx)(i,{size:16,strokeWidth:2,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:o().toolbarSquareIconBtn,"aria-label":"Collapse All",...c,onClick:t,children:(0,r.jsx)(l,{size:16,strokeWidth:2,"aria-hidden":"true"})}),n]})}},56768:(e,t,a)=>{"use strict";a.d(t,{U:()=>S});var r=a(37876),n=a(14232),i=a(5002),l=a(66583),s=a(11182),o=a(55563);let c=["full","left","right"],d={full:"Full view",left:"Left view",right:"Right view"};var u=a(83897),h=a.n(u);let p={full:l.A,left:s.A,right:o.A},m=({mode:e,onChange:t})=>(0,r.jsx)("div",{className:h().layoutControls,role:"group","aria-label":"Schedule health overlay layout",children:c.map(a=>{let n=p[a],i=e===a;return(0,r.jsx)("button",{type:"button",className:`${h().layoutBtn}${i?` ${h().layoutBtnActive}`:""}`,"aria-label":d[a],"aria-pressed":i,title:d[a],onClick:()=>t(a),children:(0,r.jsx)(n,{size:16,strokeWidth:2})},a)})});var _=a(85669),f=a(13169);function v(e,t){return Math.min(Math.max(320,.92*t),Math.max(320,e))}function y(e,t,a,r=8){let n=Math.max(r,t-e.width-r),i=Math.max(r,a-e.height-r);return{...e,left:Math.min(Math.max(r,e.left),n),top:Math.min(Math.max(r,e.top),i)}}function g(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top,width:t.width,height:t.height}}let b="pretask.scheduleHealth.paneWidthPx";function w(){let e=function(e){try{return window.localStorage.getItem(e)}catch{return null}}(b);if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)?t:null}function x(){return{width:window.innerWidth,height:window.innerHeight}}let S=({projectId:e,uploadId:t,sessionId:a,compareLayers:l,hasUnsavedDrafts:s=!1,pendingRevisionEdits:o=0,draftRevisionKey:c="",scheduleStatusDate:d,onPrepareAnalyze:u,fixedColsWidth:p,onActivityClick:S,onClose:C})=>{let j=(0,n.useRef)(null),[k,N]=(0,n.useState)("right"),L=!!l?.length,D=l?.find(e=>"primary"===e.layerRole)?.uploadId??l?.[0]?.uploadId??t,[R,M]=(0,n.useState)(D),{isFloating:A,resizeEdges:P,overlayStyle:$,startResize:T,headerDragProps:E}=function({layoutMode:e,fixedColsWidth:t,overlayRef:a}
1){let r=Math.max(t,520),[i,l]=(0,n.useState)(w),[s,o]=(0,n.useState)(null),c=(0,n.useRef)(null),d=(0,n.useRef)(null),u=(0,n.useRef)(null);(0,n.useEffect)(()=>{c.current=i},[i]),(0,n.useEffect)(()=>{d.current=s},[s]),(0,n.useEffect)(()=>{o(null)},[e]);let h=null!=s,p=s?.width??i??r,m=h?["left","right","bottom"]:"left"===e||"right"===e?["left","right"]:[],_=(0,n.useMemo)(()=>s?{position:"fixed",left:`${s.left}px`,top:`${s.top}px`,width:`${s.width}px`,height:`${s.height}px`,right:"auto",bottom:"auto",zIndex:1201}:"left"===e||"right"===e?{width:`${p}px`,maxWidth:"92%",..."right"===e?{left:"auto"}:{}}:{},[p,s,e]),f=(0,n.useCallback)(()=>{let e=a.current;if(!e)return null;let t=g(e);return o(t),t},[a]),S=(0,n.useCallback)(e=>{if(0!==e.button||e.target.closest("button"))return;let t=a.current;if(!t)return;let r=d.current??f()??g(t);u.current={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startBox:r},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault()},[f,a]),C=(0,n.useCallback)(e=>{let t=u.current;if(!t||t.pointerId!==e.pointerId)return;let{width:a,height:r}=x(),n=e.clientX-t.startClientX,i=e.clientY-t.startClientY;o(y({...t.startBox,left:t.startBox.left+n,top:t.startBox.top+i},a,r))},[]),j=(0,n.useCallback)(e=>{let t=u.current;t&&t.pointerId===e.pointerId&&(u.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]);return{isFloating:h,resizeEdges:m,overlayStyle:_,startResize:(0,n.useCallback)((e,t,n)=>{let i=a.current;if(!i)return;let s=x(),u=d.current??f()??g(i);d.current||o(u),document.body.style.cursor="bottom"===e?"row-resize":"col-resize",document.body.style.userSelect="none";let h=a=>{var r;if("left"===e){let e=v(u.width+(t-a.clientX),s.width),r=e-u.width;o(t=>y({...t??u,left:u.left-r,width:e},s.width,s.height));return}if("right"===e){let e=v(u.width+(a.clientX-t),s.width);o(t=>y({...t??u,width:e},s.width,s.height)),l(e);return}let i=(r=u.height+(a.clientY-n),Math.min(Math.max(280,.85*s.height),Math.max(280,r)));o(e=>y({...e??u,height:i},s.width,s.height))},p=()=>{if(document.body.style.cursor="",document.body.style.userSelect="",document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",p),"left"===e||"right"===e){let e=d.current?.width??c.current??r;var t=String(Math.round(e));try{window.localStorage.setItem(b,t)}catch{}l(e)}};document.addEventListener("mousemove",h),document.addEventListener("mouseup",p)},[f,r,a]),headerDragProps:{onPointerDown:S,onPointerMove:C,onPointerUp:j,onPointerCancel:j}}}({layoutMode:k,fixedColsWidth:p,overlayRef:j});(0,n.useEffect)(()=>{M(D)},[D]);let I=(0,n.useMemo)(()=>(l??[]).map(e=>e.uploadId),[l]),B=(0,n.useMemo)(()=>Object.fromEntries((l??[]).map(e=>[e.uploadId,e.label])),[l]),G=L?R:t,F=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(m,{mode:k,onChange:N}),C?(0,r.jsx)("button",{type:"button",className:h().closeBtn,"aria-label":"Close schedule health overlay",title:"Close overlay",onClick:C,children:(0,r.jsx)(i.A,{size:16,strokeWidth:2})}):null]});return(0,r.jsxs)("div",{ref:j,className:h().overlay,"data-mode":k,"data-floating":A?"true":void 0,"data-schedule-health-overlay":"","data-ui":"sv-health-panel",style:{"--health-overlay-fixed-cols":`${Math.max(p,280)}px`,...$},role:"dialog","aria-label":"Schedule health overlay",children:[P.map(e=>(0,r.jsx)("div",{className:`${h().resizeHandle} ${"left"===e?h().resizeHandleLeft:"right"===e?h().resizeHandleRight:h().resizeHandleBottom}`,role:"separator","aria-orientation":"bottom"===e?"horizontal":"vertical","aria-label":`Resize schedule health pane ${e}`,title:"Drag to resize schedule health pane",onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),T(e,t.clientX,t.clientY)}},e)),(0,r.jsxs)("div",{className:h().frame,children:[L&&l?(0,r.jsx)("div",{className:h().compareRevisionRow,children:(0,r.jsx)(f.F,{revisions:l,activeRevisionId:R,onSelect:M,variant:"overlay"})}):null,(0,r.jsx)("div",{className:h().overlayBody,children:(0,r.jsx)(_._,{mode:L?"compare":"tab",variant:"gantt-overlay",autoAnalyze:!0,projectId:e,uploadId:G,sessionId:L?void 0:a,revisionIds:L?I:void 0,revisionLabels:L?B:void 0,activeRevisionId:L?R:void 0,onActiveRevisionChange:L?M:void 0,hideRevisionPicker:L,hasUnsavedDrafts:s,pendingRevisionEdits:o,draftRevisionKey:c,scheduleStatusDate:d,onPrepareAnalyze:u,onActivityClick:S,overlayChrome:{title:L?"Health Check & DCMA \xb7 Compare":"Health Check & DCMA",dragProps:E,trailingActions:F}})})]})]})}},57151:(e,t,a)=>{"use strict";a.d(t,{GO:()=>s,Rf:()=>p,aR:()=>o,nP:()=>c,oO:()=>h,ur:()=>u}),a(4519);var r=a(54642),n=a(5067);function i(e,t,a){let i="primary"===t?(0,r.ov)(e):(0,n.FQ)(e),l=new Set(a
1);return{order:[...a.filter(e=>i.includes(e)),...i.filter(e=>!l.has(e))],visible:Object.fromEntries(i.map(e=>[e,l.has(e)]))}}let l=[{id:"primary-glance",label:"Glance",description:"Handoff default columns â ID, activity, status, % complete, start, finish, float.",audience:"Anyone reading the schedule",viewer:"primary",barDateMode:"forecast",buildLayout:e=>i(e,"primary",["id","desc","status","pct","start","finish","totalFloat"])},{id:"primary-foreman-daily",label:"Foreman Daily",description:"Status, progress, and near-term dates for field coordination.",audience:"Superintendent / foreman",viewer:"primary",barDateMode:"actual_forecast",buildLayout:e=>i(e,"primary",["id","desc","status","pct","start","finish","actualStart","actualFinish"])},{id:"primary-scheduler-review",label:"Scheduler Review",description:"Working forecast schedule with float and criticality.",audience:"Scheduler / PM",viewer:"primary",barDateMode:"forecast",buildLayout:e=>i(e,"primary",["id","desc","type","status","start","finish","totalFloat","critical","actualStart","actualFinish"])},{id:"primary-cpm-driving",label:"CPM Driving Path",description:"Late dates with float and critical path for CPM discipline.",audience:"Scheduler / delay analyst",viewer:"primary",barDateMode:"late",buildLayout:e=>i(e,"primary",["id","desc","type","status","start","finish","totalFloat","critical"])},{id:"primary-cpm-early",label:"CPM Early Path",description:"Early dates and float for recovery and headroom review.",audience:"Scheduler / recovery planner",viewer:"primary",barDateMode:"early",buildLayout:e=>i(e,"primary",["id","desc","type","start","finish","totalFloat","critical","status"])},{id:"primary-contract-baseline",label:"Contract Baseline",description:"Target dates vs actuals for owner and contract alignment.",audience:"Owner rep / contract admin",viewer:"primary",barDateMode:"target",buildLayout:e=>i(e,"primary",["id","desc","status","start","finish","actualStart","actualFinish"])},{id:"primary-cost-resource",label:"Resource & Codes",description:"Activity metadata and codes for cost / resource alignment.",audience:"Cost engineer / planner",viewer:"primary",barDateMode:"forecast",buildLayout:e=>{let t=(e?.activity_code_types??[]).slice(0,3).map(e=>`ac:${e.actv_code_type_id??e.actv_code_type}`);return i(e,"primary",["id","desc","primaryResource",...t,"status","start","finish"])}},{id:"compare-baseline-dates",label:"Baseline Date Review",description:"Target bar dates and actuals across contract revisions.",audience:"Owner rep / scheduler",viewer:"compare",barDateMode:"target",buildLayout:e=>i(e,"compare",["id","desc","status","barStart","barFinish","actualStart","actualFinish"])},{id:"compare-update-forecast",label:"Update Forecast Review",description:"Forecast bar movement between monthly schedule updates.",audience:"Scheduler / PM",viewer:"compare",barDateMode:"forecast",buildLayout:e=>i(e,"compare",["id","desc","status","barStart","barFinish","actualStart","actualFinish"])},{id:"compare-logic-float",label:"Logic & Float Review",description:"Late dates, float, criticality, and logic deltas between revisions.",audience:"Scheduler / claims analyst",viewer:"compare",barDateMode:"late",buildLayout:e=>i(e,"compare",["id","desc","totalFloat","critical","barStart","barFinish","status"])},{id:"compare-executive-summary",label:"Executive Summary",description:"Minimal forecast columns for stakeholder walkthroughs.",audience:"Owner / executive",viewer:"compare",barDateMode:"forecast",buildLayout:e=>i(e,"compare",["id","desc","status","actualStart","actualFinish","barStart","barFinish"])},{id:"compare-executive-target",label:"Executive Baseline",description:"Minimal target columns vs committed schedule.",audience:"Owner / executive",viewer:"compare",barDateMode:"target",buildLayout:e=>i(e,"compare",["id","desc","barStart","barFinish","status"])}],s="";function o(e){return l.filter(t=>t.viewer===e)}function c(e){return l.find(t=>t.id===e)}function d(e){return e.order.filter(t=>e.visible[t])}function u(e,t,a,r){for(let n of o(e))if(n.barDateMode===a&&function(e,t){let a=d(e),r=d(t);return a.length===r.length&&a.every((e,t)=>e===r[t])}(r,n.buildLayout(t)))return n.id;return s}function h(e,t,a){if(a.columnPresetId){let t=c(a.columnPresetId);if(t&&t.viewer===e)return a.columnPresetId}return u(e,t,a.barDateMode,a.columns)}function p(e){return`${e.description} (${e.audience})`}},60835:(e,t,a)=>{"use strict";a.d(t,{Rf:()=>s,jV:()=>o});var r=a(2443),n=a(9130);function i(e,t){if(!t)return e;if(t.startsWith("edge_id.")){let a=(0,r.wZ)(e),n=t.slice(8);return a?.[n]}return t.split(".").reduce((e,t)=>
1{if(null!=e&&"object"==typeof e)return e[t]},e)}function l(e){return null==e?"":"boolean"==typeof e?e?"Yes":"No":Array.isArray(e)?e.map(e=>l(e)).filter(Boolean).join(", "):"object"==typeof e?JSON.stringify(e):String(e)}function s(e,t,a,r){let s=i(e,t);return"violation_type"===t&&"string"==typeof s?a?.[s]??s.replace(/_/g," "):"failure_reason"===t&&"string"==typeof s?s:"violation_value.reasons"===t||t.endsWith(".reasons")?(0,n.iR)(s):t.endsWith(".inconsistency_codes")?(0,n.G6)(s):t.endsWith(".constraint_type")||"violation_value"===t&&"string"==typeof s?(0,n.ZC)(s,r):"violation_value"===t&&null!=s&&"object"==typeof s?function(e,t){if("reasons"in e){let t=(0,n.iR)(e.reasons);if(t)return t}let a=(0,n.ep)(e);if(a)return a;if("early_start_date"in e&&"status_date"in e)return(0,n.Sn)(e);if("days_past_due"in e)return`${e.days_past_due} day(s) past due`;if("missing_predecessor"in e||"missing_successor"in e){let t=[];return e.missing_predecessor&&t.push("missing predecessor"),e.missing_successor&&t.push("missing successor"),t.join("; ")||l(e)}if("constraint_type"in e)return(0,n.ZC)(e.constraint_type,t);if("total_float_days"in e)return`${e.total_float_days} days`;if("original_duration_days"in e)return`${e.original_duration_days} days`;if("lag_days"in e){let t=e.lag_days,a="string"==typeof e.relationship_type?e.relationship_type.toUpperCase():"FS";if("number"==typeof t)return`${a}${t>0?"+":""}${t}d`}if("inconsistency_codes"in e&&Array.isArray(e.inconsistency_codes))return(0,n.G6)(e.inconsistency_codes);let r=(0,n.bY)(e);return r||l(e)}(s,r):"number"==typeof s&&t.endsWith("violation_value")?`${s} days`:l(s)}function o(e,t){return i(e,t)}},60924:e=>{e.exports={portal:"SaveRevisionValidationModal_portal__9cet8",backdrop:"SaveRevisionValidationModal_backdrop__pKFpu",frame:"SaveRevisionValidationModal_frame__GqlkT",header:"SaveRevisionValidationModal_header__d5E32",headerMain:"SaveRevisionValidationModal_headerMain__gbjMu",kicker:"SaveRevisionValidationModal_kicker__jN4ss",title:"SaveRevisionValidationModal_title__LU9Za",subtitle:"SaveRevisionValidationModal_subtitle__lffQb",closeBtn:"SaveRevisionValidationModal_closeBtn__h0A9W",actions:"SaveRevisionValidationModal_actions__QdJvg",actionBtn:"SaveRevisionValidationModal_actionBtn___RmEG",actionBtnPrimary:"SaveRevisionValidationModal_actionBtnPrimary__8RXqQ",body:"SaveRevisionValidationModal_body__YVifU",meta:"SaveRevisionValidationModal_meta__Po7Gc",issueList:"SaveRevisionValidationModal_issueList__r9RZK",issueCard:"SaveRevisionValidationModal_issueCard__S5Nu_",activityHeading:"SaveRevisionValidationModal_activityHeading__FJgC6",activityName:"SaveRevisionValidationModal_activityName__ON0MI",problem:"SaveRevisionValidationModal_problem__cXhD2",problemLabel:"SaveRevisionValidationModal_problemLabel__ExC33",predBlock:"SaveRevisionValidationModal_predBlock__5kmJZ",predHeading:"SaveRevisionValidationModal_predHeading__FANsI",predList:"SaveRevisionValidationModal_predList__yQ_UY"}},61200:(e,t,a)=>{"use strict";a.d(t,{$h:()=>s,C_:()=>n,I3:()=>i,Nr:()=>h,U0:()=>u,on:()=>p,p6:()=>m,uo:()=>d,x2:()=>o});var r=a(60835);let n=[{value:"contains",label:"Contains"},{value:"exact",label:"Exact"},{value:"gt",label:"Greater than"},{value:"gte",label:"Greater or equal"},{value:"lt",label:"Less than"},{value:"lte",label:"Less or equal"}],i=25;function l(e,t,a,n){let i=new Set;for(let l of e){let e=(0,r.Rf)(l,t,a,n).trim();e&&i.add(e)}return Array.from(i).sort((e,t)=>e.localeCompare(t))}function s(e,t,a,n){return e.flatMap(e=>{let i=function(e,t,a,n){if(function(e,t){let a=0,n=0;for(let i of e){let e=(0,r.jV)(i,t);null!=e&&""!==e&&(a+=1,c(e)&&(n+=1))}return a>0&&n===a}(e,t))return"numeric";let i=l(e,t,a,n);return i.length<=1?"single_value":i.length<10?"string_dropdown":"string_text"}(t,e.key,a,n);if("single_value"===i)return[];let s={key:e.key,column_name:e.column_name,kind:i};return"string_dropdown"===i&&(s.uniqueValues=l(t,e.key,a,n)),[s]})}function o(e){let t=e.trim();if(!t)return null;let a=Number(t);return Number.isFinite(a)?a:null}function c(e){return!!("number"==typeof e&&Number.isFinite(e))||"string"==typeof e&&""!==e.trim()&&null!=o(e)}function d(e){let t=e.find(e=>"activity_id"===e.key),a=e.find(e=>"violation_type"===e.key),r=t??a??e[0];return{columnKey:r?.key??"",text:"",numericOp:"contains"}}function u(e,t=[],a,r){let n=s(e,t,a,r);if(n.length>0)return d(n);let i=e.find(e=>"activity_id"===e.key),l=e.find(e=>"violation_type"===e.key);return{columnKey:i?.key??l?.key??e[0]?.key??"",text:"",numericOp:"contains"}}function h(e,t,a,n){return e.filter(e=>(function(e,t,a,n){let i=t.text.trim();if(!i)return!0;let l=(0,r.jV)(e,t.columnKey),s=(0,r.Rf)(e,t.columnKey,a,n),d=o(i),u="number"==typeof l?l:"string"==typeof l?o(l):o(s);if("contains"!==t.numericOp&&null!=d&&null!=u&&c(l)&&null!=d&&null!=u)switch(t.numericOp){case"exact":return u===d;case"gt":return u>d;case"gte":return u>=d;case"lt":return u<d;case"lte":return u<=d}return s.toLowerCase().includes(i.toLowerCase())})(e,t,a,n))}function p(e,t,a=i){let r=e.length,n=Math.max(1,Math.ceil(r/a)),l=Math.min(Math.max(0,t),n-1)*a;return{pageItems:e.slice(l,l+a),pageCount:n,total:r}}function m(e,t){return`${e}:${t.point??"x"}:${t.check_name??t.name??"row"}`}},63168:(e,t,a)=>{"use strict";a.d(t,{Q:()=>l});var r=a(14232);let n="search";function i(e){return"all"===e}function l({commitDateFilters:e,getDateDraft:t}){let[a,s]=(0,r.useState)(!1),[o,c]=(0,r.useState)(n),d=(0,r.useRef)(n),u=(0,r.useRef)(n),h=(0,r.useRef)(null);u.current=o;let p=(0,r.useCallback)(()=>{c(d.current)},[]),m=(0,r.useCallback)(e=>{c(t=>{var a;let r=(a=d.current,i(e)&&i(t)?{activeTab:a,compactTab:a}:i(e)&&!i(t)?{activeTab:"all",compactTab:t}:{activeTab:e,compactTab:e});return d.current=r.compactTab,r.activeTab})},[]),_=(0,r.useCallback)(()=>{i(u.current)&&p(),e(t()),s(!1)},[p,e,t]),f=(0,r.useCallback)(()=>{a&&i(u.current)?p():a?_():s(!0)},[_,p,a]);return(0,r.useEffect)(()=>
1{if(!a)return;let e=e=>{let t=h.current;t?.contains(e.target)||_()},t=e=>{"Escape"===e.key&&_()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[_,a]),{showFilters:a,setShowFilters:s,toggleShowFilters:f,closeFilters:_,filtersRootRef:h,activeTab:o,selectFilterTab:m,collapseViewAll:p}}},65227:(e,t,a)=>{"use strict";a.d(t,{Dq:()=>l,ee:()=>i,l0:()=>n,tX:()=>o});var r=a(14232);let n=28,i=80,l=10;function s(e,t,a){if(a<=0)return{start:0,end:0,topSpacerPx:0,bottomSpacerPx:0};let r=Math.max(0,Math.floor(e/n)-l),i=Math.min(a,r+(Math.ceil(Math.max(t,n)/n)+2*l));return{start:r,end:i,topSpacerPx:r*n,bottomSpacerPx:Math.max(0,(a-i)*n)}}function o(e,t,a){let[n,i]=(0,r.useState)(()=>s(0,0,t));return(0,r.useEffect)(()=>{let r=e.current;if(!r||!a||0===t)return void i({start:0,end:t,topSpacerPx:0,bottomSpacerPx:0});let n=()=>{let e=s(r.scrollTop,r.clientHeight,t);i(t=>t.start===e.start&&t.end===e.end&&t.topSpacerPx===e.topSpacerPx&&t.bottomSpacerPx===e.bottomSpacerPx?t:e)};n(),r.addEventListener("scroll",n,{passive:!0});let l=new ResizeObserver(n);return l.observe(r),()=>{r.removeEventListener("scroll",n),l.disconnect()}},[a,t,e]),n}},65883:(e,t,a)=>{"use strict";a.d(t,{_:()=>n});var r=a(69211);function n(e,t,a=2){let i=e.filter(e=>!1!==e.source_available&&(0,r.s8)(e).length>0).slice().sort((e,t)=>{let a=new Date(e.updated_at||e.created_at).getTime();return new Date(t.updated_at||t.created_at).getTime()-a}),l=new Set;for(let e of i){if(l.size>=a)break;let n=(0,r.s8)(e),i=`${e.upload_id}:${n}`;l.has(i)||(l.add(i),t(e.upload_id,n))}}},65886:(e,t,a)=>{"use strict";a.d(t,{Bg:()=>i,XR:()=>l,n9:()=>n});var r=a(53007);function n(e){return e&&"object"==typeof e&&(3===e.version||2===e.version||1===e.version)&&e.columns?{version:3,viewer:"compare"===e.viewer?"compare":"primary",columnPresetId:"string"==typeof e.columnPresetId?e.columnPresetId:"",barDateMode:e.barDateMode??"forecast",highlightCritical:e.highlightCritical??!1,popoverEnabled:e.popoverEnabled??!0,filters:(0,r.Hh)(e.filters),columns:e.columns,compareOptions:e.compareOptions}:null}function i(e,t){return e.filter(e=>{let a;return a=n(e.layout),(a?.viewer??"primary")===t})}function l(e){return{version:3,viewer:e.viewer,columnPresetId:e.columnPresetId,barDateMode:e.barDateMode,highlightCritical:!1,popoverEnabled:e.popoverEnabled,filters:e.filters,columns:e.columns,...e.compareOptions?{compareOptions:e.compareOptions}:{}}}},65960:(e,t,a)=>{"use strict";a.d(t,{$8:()=>d,HK:()=>u,Hr:()=>l,fg:()=>h,hJ:()=>s,iO:()=>o,lP:()=>c});var r=a(98249);function n(e){let[t,a,r]=e.slice(0,10).split("-").map(Number);return new Date(t,a-1,r)}function i(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function l(e){if(!e?.trim())return null;try{let t,a,r;return t=n(e),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),`${a}/${r}/${t.getFullYear()}`}catch{return e}}let s="Activities whose start and finish both fall within 2 weeks of the data date",o="Keeps activities whose start and finish both fall in the selected window.";function c(e){let t=n(e?.slice(0,10)??i(new Date)),a=new Date(t);return a.setDate(a.getDate()+14),{startOnOrAfter:i(t),finishOnOrBefore:i(a)}}function d(e,t){let a=n(e?.slice(0,10)??i(new Date)),r=new Date(a);return r.setDate(r.getDate()+t),{startOnOrAfter:i(a),finishOnOrBefore:i(r)}}function u(e,t){let a=c(t);return e.startOnOrAfter===a.startOnOrAfter&&e.finishOnOrBefore===a.finishOnOrBefore}function h(e,t,a){let i=t.metadata?.status_date?.slice(0,10);if(!i)return;let l=function(e,t){let a=n(t).getTime(),r=-1,i=1/0;for(let t of e.week_columns){let e=Math.abs(n(t.week_start).getTime()-a);e<i&&(i=e,r=t.week_index)}return r}(t,i);if(l<0)return;let s=(0,r.qb)(l,a,e.clientWidth,e.scrollWidth);e.scrollTo({left:s,behavior:"smooth"})}},66275:e=>{e.exports={tooltip:"FollowCursorTooltip_tooltip__euPds"}},66322:(e,t,a)=>{"use strict";a.d(t,{K:()=>o});var r=a(37876),n=a(14232),i=a(98477),l=a(90055),s=a.n(l);function o({columnKey:e,allColumnKeys:t,columnLabels:a,visible:l,position:c,onRemove:d,onAdd:u,onClose:h}
1){let p=(0,n.useRef)(null),[m,_]=(0,n.useState)(!1),f=t.filter(e=>!l[e]);return(0,n.useEffect)(()=>{let e=e=>{p.current?.contains(e.target)||h()},t=e=>{"Escape"===e.key&&h()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[h]),(0,i.createPortal)((0,r.jsxs)("div",{ref:p,className:s().colHeaderMenu,style:{top:c.y,left:c.x},role:"menu","aria-label":"Column options",children:[(0,r.jsx)("button",{type:"button",className:s().colHeaderMenuItem,role:"menuitem",onClick:()=>{d(e),h()},children:"Remove column"}),(0,r.jsxs)("div",{className:s().colHeaderMenuAdd,children:[(0,r.jsxs)("button",{type:"button",className:s().colHeaderMenuItem,role:"menuitem","aria-expanded":m,disabled:0===f.length,onClick:()=>_(e=>!e),children:["Add column ",f.length>0?"â¾":""]}),m&&f.length>0&&(0,r.jsx)("div",{className:s().colHeaderMenuSubmenu,role:"group",children:f.map(e=>(0,r.jsx)("button",{type:"button",className:s().colHeaderMenuSubItem,role:"menuitem",onClick:()=>{u(e),h()},children:a[e]},e))})]})]}),document.body)}},66583:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(53362).A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]])},66770:(e,t,a)=>{"use strict";a.d(t,{l:()=>R,U:()=>D});var r=a(37876),n=a(14232),i=a(27601);let l="primary_gantt";var s=a(83414);let o="backend";function c(e,t){return`/api/v1/projects/${encodeURIComponent(e)}/schedule-visualizer/uploads/${encodeURIComponent(t)}/comments`}function d(e){let t=e.data?.detail;if("string"==typeof t)return t;if(Array.isArray(t)){let e=t[0];if(e?.msg){let t=Array.isArray(e.loc)?e.loc.filter(e=>"string"==typeof e).join("."):"";return t?`${t}: ${e.msg}`:e.msg}}return t&&"object"==typeof t&&"message"in t?String(t.message):null!=e.status?`Schedule comment request failed (${e.status})`:"Schedule comment request failed"}async function u(e,t,a=l,r){let n=await i.ok.get(o,`${c(e,t)}/summary?view_type=${encodeURIComponent(a)}`,{signal:r});if(!n.ok||!n.data)throw Error(d(n));return n.data}async function h(e,t,a,r=l,n){let s=await i.ok.get(o,`${c(e,t)}/changes?view_type=${encodeURIComponent(r)}&since=${encodeURIComponent(a)}`,{signal:n});if(!s.ok||!s.data)throw Error(d(s));return s.data}async function p(e,t,a={},r){let n=new URLSearchParams;n.set("view_type",a.viewType??"primary_gantt"),a.anchorType&&n.set("anchor_type",a.anchorType),a.anchorId&&n.set("anchor_id",a.anchorId),null!=a.limit&&n.set("limit",String(a.limit)),null!=a.offset&&n.set("offset",String(a.offset)),a.includeReplies&&n.set("include_replies","true"),null!=a.replyLimit&&n.set("reply_limit",String(a.replyLimit)),null!=a.replyOffset&&n.set("reply_offset",String(a.replyOffset));let l=await i.ok.get(o,`${c(e,t)}?${n.toString()}`,{signal:r});if(!l.ok||!l.data)throw Error(d(l));return l.data}async function m(e,t,a){let r=await i.ok.post(o,c(e,t),a);return r.ok&&r.data?.thread||(0,s.Aq)(r),r.data.thread}async function _(e,t,a,r){let n=await i.ok.patch(o,`${c(e,t)}/${encodeURIComponent(a)}`,r);return n.ok&&n.data?.thread||(0,s.Aq)(n),n.data.thread}async function f(e,t,a){let r=await i.ok.delete(o,`${c(e,t)}/${encodeURIComponent(a)}`);r.ok||204===r.status||(0,s.Aq)(r)}async function v(e,t,a,r){let n=await i.ok.post(o,`${c(e,t)}/${encodeURIComponent(a)}/replies`,{body:r});return n.ok&&n.data?.reply||(0,s.Aq)(n),n.data.reply}async function y(e,t,a,r){let n=await i.ok.delete(o,`${c(e,t)}/${encodeURIComponent(a)}/replies/${encodeURIComponent(r)}`);n.ok||204===n.status||(0,s.Aq)(n)}async function g(e,t,a,r,n){let l=await i.ok.patch(o,`${c(e,t)}/${encodeURIComponent(a)}/replies/${encodeURIComponent(r)}`,n);return l.ok&&l.data?.reply||(0,s.Aq)(l),l.data.reply}var b=a(75670),w=a(84524);function x(e){let t=[...e.replies].sort((e,t)=>e.reply_id.localeCompare(t.reply_id)).map(e=>`${e.reply_id}:${e.updated_at}:${e.body}`).join(";");return[e.comment_id,e.updated_at,e.body,String(e.reply_count),t].join("|")}function S(e,t){if(e.length!==t.length)return!1;let a=new Map(e.map(e=>[e.comment_id,x(e)]));for(let e of t)if(a.get(e.comment_id)!==x(e))return!1;return!0}var C=a(65364);function j(e,t){if(null==e||""===e.trim())return t;let a=Number.parseInt(e,10);return!Number.isFinite(a)||a<5e3?t:a}
1let k=j(C.env.NEXT_PUBLIC_SCHEDULE_COMMENTS_SUMMARY_POLL_MS,45e3),N=j(C.env.NEXT_PUBLIC_SCHEDULE_COMMENTS_CHANGES_POLL_MS,15e3),L=(0,n.createContext)(null);function D(){return(0,n.useContext)(L)}function R({projectId:e,uploadId:t,enabled:a=!0,onProductAccessDenied:i,children:o}){let[c,d]=(0,n.useState)(new Map),[x,C]=(0,n.useState)(0),[j,D]=(0,n.useState)(!1),[M,A]=(0,n.useState)(null),[P,$]=(0,n.useState)([]),[T,E]=(0,n.useState)(!1),[I,B]=(0,n.useState)(null),[G,F]=(0,n.useState)([]),[O,H]=(0,n.useState)(!1),[V,W]=(0,n.useState)(null),[z,X]=(0,n.useState)(""),[U,Y]=(0,n.useState)(""),[K,q]=(0,n.useState)(!1),Q=(0,n.useRef)(null),Z=(0,n.useRef)(new Date(0).toISOString()),J=(0,n.useRef)(new Set),ee=(0,n.useRef)(null),et=(0,n.useRef)(null),ea=(0,n.useRef)(`${e}:${t}`);ea.current=`${e}:${t}`;let er=(0,n.useRef)(null),en=(0,n.useRef)(null),[ei,el]=(0,n.useState)(!1),es=(0,n.useRef)(i);es.current=i;let eo=(0,n.useCallback)(()=>en.current,[]),ec=(0,n.useCallback)(e=>{let t=null!=en.current,a=null!=e;en.current=e,t!==a&&el(a)},[]),ed=(0,n.useCallback)(e=>{er.current=e},[]),eu=(0,n.useCallback)(e=>{er.current?.(e)},[]),eh=(0,n.useCallback)(e=>{Q.current=e},[]),ep=(0,n.useCallback)((e,t)=>Q.current?.(e,t)??t,[]),em=(0,n.useCallback)((e,t)=>{let a=function(e){let t=new Map;for(let a of e)t.set((0,b.Sj)(a.anchor_type,a.anchor_id),a.thread_count);return t}(e);d(e=>!function(e,t){if(e.size!==t.size)return!1;let a=!0;return e.forEach((e,r)=>{a&&t.get(r)!==e&&(a=!1)}),a}(e,a)?a:e),C(e=>e===t?e:t)},[]),e_=(0,n.useCallback)(async()=>{if(!a||!e||!t)return;ee.current?.abort();let r=new AbortController;ee.current=r;try{let a=await u(e,t,l,r.signal);if(r.signal.aborted)return;em(a.anchors,a.total_thread_count)}catch{if(r.signal.aborted)return}},[em,a,e,t]),ef=(0,n.useCallback)(()=>{B(null),F([]),e_()},[e_]),ev=(0,n.useCallback)(async r=>{if(!a||!e||!t)return;let n=`${e}:${t}`;r?.silent||E(!0);try{let a=await p(e,t,{includeReplies:!0,replyLimit:w.UV,limit:50});if(ea.current!==n)return;$(e=>S(e,a.items)?e:a.items),et.current=n}finally{r?.silent||ea.current!==n||E(!1)}},[a,e,t]),ey=(0,n.useCallback)(async(r,n)=>{if(a&&e&&t){n?.silent||H(!0);try{let a=await p(e,t,{anchorType:r.anchorType,anchorId:r.anchorId,includeReplies:!0,replyLimit:w.UV,limit:50});F(e=>S(e,a.items)?e:a.items)}catch{F([])}finally{n?.silent||H(!1)}}},[a,e,t]),eg=(0,n.useCallback)(async()=>{I&&await ey(I),j&&await ev()},[ey,I,j,ev]),eb=(0,n.useCallback)(async()=>{if(!a||!e||!t)return;let r=await h(e,t,Z.current);Z.current=r.server_time,(r.changed_threads.length>0||r.deleted_thread_ids.length>0||r.changed_replies.length>0||r.deleted_reply_ids.length>0)&&(j&&await ev({silent:!0}),I&&await ey(I,{silent:!0}),e_())},[a,ey,I,j,e,ev,e_,t]);(0,n.useEffect)(()=>{if(d(new Map),C(0),$([]),B(null),F([]),et.current=null,Z.current=new Date(0).toISOString(),!a||!e||!t)return;let r=window.setTimeout(()=>{e_().catch(()=>void 0)},0);return()=>window.clearTimeout(r)},[a,e,e_,t]),(0,n.useEffect)(()=>{if(!a||!e||!t)return;let r=()=>{"visible"===document.visibilityState&&e_().catch(()=>void 0)};document.addEventListener("visibilitychange",r);let n=window.setInterval(()=>{"visible"===document.visibilityState&&e_().catch(()=>void 0)},k);return()=>{document.removeEventListener("visibilitychange",r),window.clearInterval(n)}},[a,e,e_,t]),(0,n.useEffect)(()=>{if(!a||!j&&!I)return;let e=window.setInterval(()=>{"visible"===document.visibilityState&&eb().catch(()=>void 0)},N);return()=>window.clearInterval(e)},[a,eb,I,j]),(0,n.useEffect)(()=>{a&&e&&t&&ev({silent:!0}).catch(()=>void 0)},[a,e,t,ev]),(0,n.useEffect)(()=>{j&&ev({silent:et.current===`${e}:${t}`})},[j,e,ev,t]);let ew=(0,n.useCallback)(async e=>{if(!K){q(!0);try{await e(),e_()}catch(e){if((0,s.MB)(e)){D(!1),B(null),F([]),W(null),es.current?.();return}throw e}finally{q(!1)}}},[e_,K]),ex=(0,n.useCallback)(async(a,r,n)=>{let i=n?.openPopover!==!1;await ew(async()=>{await m(e,t,{anchor_type:a.anchorType,anchor_id:a.anchorId,body:r}),W(null),i&&(B(a),await ey(a)),j&&await ev()})},[ey,j,e,ev,t,ew]),eS=(0,n.useCallback)(async(a,r)=>{await ew(async()=>{await v(e,t,a,r),I&&await ey(I),j&&await ev()})},[ey,I,j,e,ev,t,ew]),eC=(0,n.useCallback)(async(a,r,n)=>{await ew(async()=>{await _(e,t,a,{body:r,expected_updated_at:n}),I&&await ey(I),j&&await ev()})},[ey,I,j,e,ev,t,ew]),ej=(0,n.useCallback)(async(a,r,n,i)=>{await ew(async()=>{await g(e,t,a,r,{body:n,expected_updated_at:i}),I&&await ey(I),j&&await ev()})},[ey,I,j,e,ev,t,ew]),ek=(0,n.useCallback)(async a=>{let r=`thread:${a}`;if(!J.current.has(r)){J.current.add(r);try{await ew(async()=>{await f(e,t,a),I&&await ey(I),j&&await ev()})}finally{J.current.delete(r)}}},[ey,I,j,e,ev,t,ew]),eN=(0,n.useCallback)(async(a,r)=>{let n=`reply:${r}`;if(!J.current.has(n)){J.current.add(n);try{await ew(async()=>{await y(e,t,a,r),I&&await ey(I),j&&await ev()})}finally{J.current.delete(n)}}},[ey,I,j,e,ev,t,ew]),eL=(0,n.useCallback)(async(r,n)=>{let i=G.find(e=>e.comment_id===r)??P.find(e=>e.comment_id===r);if(!i||!a||!e||!t)return;let l=n?.offset??0,s=n?.limit??w.eH,o=(await p(e,t,{anchorType:i.anchor_type,anchorId:i.anchor_id,includeReplies:!0,replyLimit:s,replyOffset:l,limit:50})).items.find(e=>e.comment_id===r);if(!o)return;let c=e=>e.map(e=>{if(e.comment_id!==r)return e;let t=0===l?o.replies:(0,w.tO)(e.replies,o.replies);return{...e,reply_count:o.reply_count,replies:t}});F(e=>c(e)),$(e=>c(e))},[a,G,P,e,t]),eD=(0,n.useMemo)(()=>({summaryMap:c,totalThreadCount:x,panelOpen:j,setPanelOpen:D,panelComposeSeedActivityId:M,openPanelComposeForActivity:e=>{let t=e.trim();t&&(W(null),B(null),A(t),D(!0))},clearPanelComposeSeed:()=>A(null),panelThreads:P,panelLoading:T,refreshPanel:ev,refreshComment
1Views:eg,openAnchor:I,openAnchorThreads:G,anchorLoading:O,openAnchorPopover:async e=>{W(null),B(e),await ey(e)},closeAnchorPopover:ef,createThread:ex,replyToThread:eS,editThread:eC,editReply:ej,removeThread:ek,removeReply:eN,loadMoreReplies:eL,getThreadCount:(e,t)=>c.get((0,b.Sj)(e,t))??0,rowCommentMenu:V,openRowCommentMenu:(e,t)=>{e.stopPropagation();let a=(c.get((0,b.Sj)(t.anchorType,t.anchorId))??0)>0;W({x:e.clientX,y:e.clientY,target:t,hasComments:a})},closeRowCommentMenu:()=>W(null),resolveAnchorLabel:ep,registerAnchorLabelResolver:eh,panelAuthorFilter:z,setPanelAuthorFilter:X,panelAnchorFilter:U,setPanelAnchorFilter:Y,submitLocked:K,navigateToAnchor:eu,registerGanttNavigator:ed,getPanelComposeBridge:eo,panelComposeBridgeReady:ei,registerPanelComposeBridge:ec}),[O,ex,ej,eC,ef,ey,eL,eu,I,G,eo,U,z,ei,M,T,j,P,eg,ev,e_,eh,ed,ec,eN,ek,eS,ep,V,K,c,x]);return(0,r.jsx)(L.Provider,{value:eD,children:o})}},67866:(e,t,a)=>{"use strict";a.d(t,{L:()=>l});var r=a(14232);let n="scheduleReader.ganttLogicArrowsEnabled";function i(){try{return"1"===window.sessionStorage.getItem(n)}catch{return!1}}function l(){let[e,t]=(0,r.useState)(i);return{logicArrowsEnabled:e,setLogicArrowsEnabled:(0,r.useCallback)(e=>{t(e);try{e?window.sessionStorage.setItem(n,"1"):window.sessionStorage.removeItem(n)}catch{}},[])}}},68161:(e,t,a)=>{"use strict";a.d(t,{F:()=>m});var r=a(37876),n=a(14232),i=a(15266),l=a(78815),s=a(12499),o=a(68957),c=a(90055),d=a.n(c),u=a(83440),h=a(13412),p=a.n(h);let m=({versions:e,selectedVersionId:t,selectedVersion:a,layerRole:c="primary",variant:h="chip",showLayerRole:m=!0,fallbackRevisionLabel:_,pending:f=!1,removed:v=!1,removable:y=!1,onRemove:g,loading:b=!1,disabled:w=!1,onSelect:x,onRename:S})=>{let[C,j]=(0,n.useState)(!1),[k,N]=(0,n.useState)(!1),[L,D]=(0,n.useState)(""),[R,M]=(0,n.useState)(!1),A=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!C)return;let e=e=>{let t=e.target;A.current?.contains(t)||t instanceof Element&&t.closest("[data-revision-cluster]")||j(!1)},t=e=>{"Escape"===e.key&&j(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[C]);let P="chip"!==h,$=m&&!P,T="select"===h?p().compareLayerControlWrap:"swap"===h?p().compareLayerActionSlot:p().compareLayerChipWrap,E=a?$?(0,u.h)(c,(0,s.xe)(a)):(0,s.xe)(a):_?$?(0,u.h)(c,_):_:$?`${(0,l.jX)(c)} \xb7 â¦`:"â¦",I="swap"===h?"Swap Primary":E,B=$?(0,o.pm)(c,p()):p().revisionSwitcherPill,G="select"===h?`${p().compareLayerSelect} ${p().revisionPickerTrigger}${C?` ${p().compareLayerSelectOpen}`:""}${f?` ${p().compareLayerSelectPending}`:""}${v?` ${p().compareLayerSelectRemoved}`:""}`:"swap"===h?`${p().compareLayerSwapBtn} ${p().revisionPickerTrigger}${C?` ${p().compareLayerSwapBtnOpen}`:""}`:`${p().compareLayerLegendChip} ${B} ${p().revisionPickerTrigger}${C?` ${p().revisionPickerTriggerOpen}`:""}${f?` ${p().compareLayerLegendChipPending}`:""}${v?` ${p().compareLayerLegendChipRemoved}`:""}`,F=m?`Switch ${(0,l.jX)(c)}`:"Switch Revision";return(0,r.jsxs)("div",{className:`${T}${v?` ${p().compareLayerChipWrapRemoved}`:""}`,children:[(0,r.jsxs)("div",{className:p().revisionPicker,ref:A,children:[(0,r.jsxs)("button",{type:"button","data-ui":"sv-rev-switcher",className:G,disabled:w||v||b&&0===e.length,"aria-expanded":C,"aria-haspopup":"listbox","aria-label":v?`${E} staged for removal. Reset to keep.`:P?`Current ${(0,l.jX)(c)} revision: ${E}. Choose revision.`:`Current revision: ${E}. Choose revision.`,title:a?.filename??E,onClick:()=>j(e=>!e),onContextMenu:e=>{S&&a&&(e.preventDefault(),D(a.revision_display_name?.trim()??""),N(!0),j(!0))},children:[$?(0,r.jsx)("span",{className:`${d().compareLayerSwatch} ${(0,o.VT)(c,d())}`,"aria-hidden":"true"}):null,(0,r.jsx)("span",{className:p().compareLayerLegendLabel,children:I}),"swap"===h?null:(0,r.jsx)("span",{className:p().revisionPickerCaret,"aria-hidden":"true",children:"â¾"})]}),C&&(0,r.jsxs)("div",{className:`${p().revisionPickerPanel}${"swap"===h?` ${p().revisionPickerPanelEnd}`:""}`,role:"presentation",children:[(0,r.jsx)("p",{className:p().revisionPickerSectionLabel,children:F}
1),(0,r.jsx)("ul",{className:p().revisionPickerMenu,role:"listbox","aria-label":"Revisions",children:e.map(e=>{let a=e.upload_id===t,n=(0,s.xe)(e),l=(0,s.S4)(e),o=`${n}, ${l}`;return(0,r.jsx)("li",{role:"none",children:(0,r.jsxs)("button",{type:"button",role:"option","aria-selected":a,"aria-label":o,className:`${p().revisionPickerOption}${a?` ${p().revisionPickerOptionSelected}`:""}`,onClick:()=>{j(!1),x(e.upload_id)},children:[(0,r.jsxs)("span",{className:p().revisionPickerOptionBody,children:[(0,r.jsx)("span",{className:p().revisionPickerOptionName,children:n}),(0,r.jsx)("span",{className:p().revisionPickerOptionMeta,title:l,children:l})]}),a?(0,r.jsx)(i.A,{className:p().revisionPickerCheck,size:16,strokeWidth:2.5,"aria-hidden":"true"}):null]})},e.upload_id)})}),S&&a?k?(0,r.jsxs)("form",{className:p().revisionRenameForm,onSubmit:e=>{e.preventDefault(),R||(M(!0),S(L.trim()).then(()=>{N(!1),j(!1)}).finally(()=>M(!1)))},children:[(0,r.jsx)("label",{className:p().revisionPickerSectionLabel,htmlFor:"revision-rename-input",children:"Revision name"}),(0,r.jsx)("input",{id:"revision-rename-input",type:"text",className:p().revisionRenameInput,value:L,disabled:R||w,placeholder:`Defaults to ${(0,s.mj)(a)}`,onChange:e=>D(e.target.value)}),(0,r.jsxs)("div",{className:p().revisionRenameActions,children:[(0,r.jsx)("button",{type:"button",className:p().revisionPickerRenameBtn,disabled:R,onClick:()=>N(!1),children:"Cancel"}),(0,r.jsx)("button",{type:"submit",className:p().revisionPickerRenameBtn,disabled:R||w,children:R?"Savingâ¦":"Save name"})]})]}):(0,r.jsx)("button",{type:"button",className:p().revisionPickerRenameBtn,disabled:w,onClick:()=>{D(a.revision_display_name?.trim()??""),N(!0)},children:"Edit revision name"}):null]})]}),y?(0,r.jsx)("button",{type:"button",className:`${P?p().compareLayerRowRemoveBtn:p().compareLayerRemoveBtn}${v?` ${p().compareLayerRemoveBtnUndo}`:""}`,disabled:w,"aria-label":v?`Undo remove ${(0,l.jX)(c)}`:`Remove ${(0,l.jX)(c)} from compare`,title:v?"Undo remove":`Remove ${(0,l.jX)(c)}`,onClick:e=>{e.stopPropagation(),g?.()},children:v?"â©":P?"â":"\xd7"}):null]})}},68299:(e,t,a)=>{"use strict";function r(e){e&&window.requestAnimationFrame(()=>{e.scrollIntoView({behavior:"smooth",block:"center"})})}a.d(t,{c:()=>r})},68957:(e,t,a)=>{"use strict";a.d(t,{VT:()=>n,lR:()=>r,pm:()=>i});let r={primary:"var(--sr-compare-primary, #11b0b5)",baseline_1:"var(--sr-compare-baseline-1, #f59220)",baseline_2:"var(--sr-compare-baseline-2, #aab3b3)",baseline_3:"var(--sr-compare-baseline-3, #0a6a6e)"};function n(e,t){switch(e){case"primary":return t.compareLayerSwatchPrimary;case"baseline_1":return t.compareLayerSwatchBaseline1;case"baseline_2":return t.compareLayerSwatchBaseline2;case"baseline_3":return t.compareLayerSwatchBaseline3;default:return""}}function i(e,t){switch(e){case"primary":return t.compareLayerChipPrimary;case"baseline_1":return t.compareLayerChipBaseline1;case"baseline_2":return t.compareLayerChipBaseline2;case"baseline_3":return t.compareLayerChipBaseline3;default:return""}}},69190:(e,t,a)=>{"use strict";a.d(t,{U:()=>v});var r=a(37876),n=a(14232),i=a(90055),l=a.n(i);let s=({columnOrder:e,columnVisible:t,columnLabels:a,onShowColumn:i,onHideColumn:s,onMoveColumn:o})=>{let[c,d]=(0,n.useState)(null),[u,h]=(0,n.useState)(null),p=e.filter(e=>t[e]),m=e.filter(e=>!t[e]),_=()=>{d(null),h(null)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:l().vsEyebrow,children:"Shown \xb7 Drag to reorder"}),(0,r.jsx)("div",{className:l().vsColumnList,children:p.map(e=>(0,r.jsxs)("label",{className:`${l().vsColumnRow}${u===e?` ${l().vsColumnRowDragOver}`:""}${c===e?` ${l().vsColumnRowDragging}`:""}`,draggable:!0,onDragStart:t=>{t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e),d(e)},onDragOver:t=>{c&&c!==e&&(t.preventDefault(),t.dataTransfer.dropEffect="move",h(e))},onDragLeave:()=>h(t=>t===e?null:t),onDrop:t=>{t.preventDefault(),c&&c!==e&&o(c,e),_()},onDragEnd:_,children:[(0,r.jsx)("input",{type:"checkbox",className:l().vsCheckbox,checked:!0,onChange:()=>s(e)}),(0,r.jsx)("span",{className:l().vsColumnLabel,children:a[e]??e}),(0,r.jsx)("span",{className:l().vsColumnHandle,"aria-hidden":"true",title:"Drag to reorder",children:"â°"})]},e))}),m.length>0?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:`${l().vsEyebrow} ${l().vsEyebrowStacked}`,children:"Hidden"}),(0,r.jsx)("div",{className:l().vsColumnList,children:m.map(e=>(0,r.jsxs)("label",{className:`${l().vsColumnRow} ${l().vsColumnRowHidden}`,children:[(0,r.jsx)("input",{type:"checkbox",className:l().vsCheckbox,checked:!1,onChange:()=>i(e)}),(0,r.jsx)("span",{className:l().vsColumnLabel,children:a[e]??e})]},e))})]}):null]})},o=({label:e,checked:t,onChange:a})=>(0,r.jsxs)("button",{type:"button",role:"switch","aria-checked":t,className:l().vsToggleRow,onClick:()=>a(!t),children:[(0,r.jsx)("span",{className:l().vsToggleLabel,children:e}),(0,r.jsx)("span",{className:`${l().vsSwitch}${t?` ${l().vsSwitchOn}`:""}`,"aria-hidden":"true",children:(0,r.jsx)("span",{className:l().vsSwitchKnob})})]}),c=({logicArrowsEnabled:e,onLogicArrowsChange:t,dayOffsetEnabled:a,onDayOffsetChange:n,popoverEnabled:i,onPop
1overEnabledChange:s,compare:c})=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o,{label:"Day Offset",checked:a,onChange:n}),(0,r.jsx)(o,{label:"Detail Panel",checked:i,onChange:s}),c?(0,r.jsx)(o,{label:"Removed Activities to Bottom",checked:c.orphansToBottom,onChange:c.onOrphansToBottomChange}):null,(0,r.jsx)(o,{label:"Logic Arrows",checked:e,onChange:t}),c?(0,r.jsx)(o,{label:"Highlight Changes Only",checked:c.highlightChangesOnly,onChange:c.onHighlightChangesOnlyChange}):null,c&&e?(0,r.jsxs)("div",{className:l().vsSelectRow,children:[(0,r.jsx)("span",{className:l().vsToggleLabel,children:"Arrow Layers"}),(0,r.jsxs)("select",{className:l().vsSelect,value:c.logicArrowLayerScope,"aria-label":"Logic arrow revision layers",onChange:e=>c.onLogicArrowLayerScopeChange("all"===e.target.value?"all":"primary"),children:[(0,r.jsx)("option",{value:"primary",children:"Primary only"}),(0,r.jsx)("option",{value:"all",children:"All layers"})]})]}):null]});var d=a(4519),u=a(57151);let h=({viewer:e,columnPresetId:t,onColumnPresetChange:a,savedViews:i,savedViewsLoading:s,activeSavedViewId:o,onLoadSavedView:c,onSaveView:h,onDeleteSavedView:p})=>{let[m,_]=(0,n.useState)(!1),[f,v]=(0,n.useState)(""),y=(0,u.aR)(e),g=()=>{let e=f.trim();e&&h&&(h(e),v(""),_(!1))};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:`${l().vsEyebrow} ${l().vsEyebrowInset}`,children:"Presets"}),y.map(e=>{let n=e.id===t;return(0,r.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":n,title:(0,u.Rf)(e),className:`${l().vsOptionRow}${n?` ${l().vsOptionRowActive}`:""}`,onClick:()=>a(e.id),children:[(0,r.jsx)("span",{className:l().vsCheckSlot,"aria-hidden":"true",children:n?"â":""}),(0,r.jsx)("span",{className:l().vsOptionLabel,children:e.label}),(0,r.jsx)("span",{className:l().vsOptionMeta,children:d.q6[e.barDateMode]})]},e.id)}),(0,r.jsx)("div",{className:l().vsDivider,role:"separator"}),(0,r.jsx)("p",{className:`${l().vsEyebrow} ${l().vsEyebrowInset}`,children:"Saved views"}),s?(0,r.jsx)("p",{className:l().vsHint,children:"Loading saved viewsâ¦"}):0===i.length?(0,r.jsx)("p",{className:l().vsHint,children:"No saved views yet."}):i.map(e=>{let t=e.view_id===o;return(0,r.jsxs)("div",{className:`${l().vsSavedViewRow}${t?` ${l().vsOptionRowActive}`:""}`,children:[(0,r.jsxs)("button",{type:"button",className:l().vsSavedViewLoad,onClick:()=>c(e),children:[(0,r.jsx)("span",{className:l().vsCheckSlot,"aria-hidden":"true",children:t?"â":""}),(0,r.jsx)("span",{className:l().vsOptionLabel,children:e.name})]}),p?(0,r.jsx)("button",{type:"button",className:l().vsSavedViewDelete,"aria-label":`Delete ${e.name}`,onClick:()=>p(e.view_id),children:"\xd7"}):null]},e.view_id)}),h?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:l().vsDivider,role:"separator"}),m?(0,r.jsxs)("div",{className:l().vsSaveForm,children:[(0,r.jsx)("input",{type:"text",className:l().vsSaveInput,placeholder:"View name","aria-label":"Saved view name",autoFocus:!0,value:f,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),g()),"Escape"===e.key&&(e.preventDefault(),_(!1))}}),(0,r.jsx)("button",{type:"button",className:l().vsSaveConfirm,disabled:!f.trim(),onClick:g,children:"Save"})]}):(0,r.jsx)("button",{type:"button",className:l().vsSaveRow,onClick:()=>_(!0),children:"+ Save Current View"})]}):null]})},p=[{value:"none",label:"Default (WBS)"},{value:"start",label:"Start Date"},{value:"finish",label:"Finish Date"},{value:"id",label:"Activity ID"},{value:"name",label:"Activity Name"},{value:"totalFloat",label:"Total Float"}],m=({sortBy:e,sortAsc:t,onChange:a,hint:n})=>(0,r.jsxs)(r.Fragment,{children:[p.map(n=>{let i=n.value===e,s="none"!==n.value;return(0,r.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":i,className:`${l().vsSortRow}${i?` ${l().vsSortRowActive}`:""}`,onClick:()=>a({sortBy:n.value,sortAsc:!i||!s||!t}),children:[(0,r.jsx)("span",{className:l().vsOptionLabel,children:n.label}),(0,r.jsx)("span",{className:l().vsSortMark,"aria-hidden":"true",children:i?s&&!t?"â":"â":""})]},n.value)}),n?(0,r.jsx)("p",{className:l().vsHintFootnote,children:n}):null]}),_={views:"Saved Views",columns:"Columns",sort:"Sort By",display:"Display Options"},f={views:l().vsPanelViews,columns:l().vsPanelColumns,sort:l().vsPanelSort,display:l().vsPanelDisplay};function v({viewer:e="primary",columnPresetId:t,onColumnPresetChange:a,c
1olumnOrder:i,columnVisible:o,columnLabels:d,onShowColumn:u,onHideColumn:p,onMoveColumn:y,savedViews:g,savedViewsLoading:b,onLoadSavedView:w,onSaveView:x,onDeleteSavedView:S,sortBy:C,sortAsc:j,onSortChange:k,display:N,onResetFilters:L,onResetColumns:D}){let[R,M]=(0,n.useState)(!1),[A,P]=(0,n.useState)(null),[$,T]=(0,n.useState)(null),E=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(!R)return void P(null);let e=e=>{E.current?.contains(e.target)||M(!1)},t=e=>{"Escape"===e.key&&M(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[R]),(0,r.jsxs)("div",{className:l().viewSetupWrap,ref:E,"data-ui":"sv-view-setup",children:[(0,r.jsxs)("button",{type:"button",className:`${l().toolbarBtn} ${l().viewSetupTrigger}${R?` ${l().viewSetupTriggerOpen}`:""}`,"aria-expanded":R,"aria-haspopup":"menu",onClick:()=>M(e=>!e),children:["View Setup"," ",(0,r.jsx)("span",{className:l().toolbarChevron,"aria-hidden":"true",children:"â¼"})]}),R?(0,r.jsxs)("div",{className:l().viewSetupMenu,role:"menu","aria-label":"View setup",children:[Object.keys(_).map(e=>(0,r.jsxs)("button",{type:"button",role:"menuitem","aria-haspopup":"menu","aria-expanded":A===e,className:`${l().viewSetupItem}${A===e?` ${l().viewSetupItemActive}`:""}`,onMouseEnter:()=>P(e),onFocus:()=>P(e),onClick:()=>P(e),children:[(0,r.jsx)("span",{children:_[e]}),(0,r.jsx)("span",{className:l().viewSetupItemCaret,"aria-hidden":"true",children:"â¹"})]},e)),L||D?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:l().viewSetupDivider,role:"separator"}),L?(0,r.jsx)("button",{type:"button",className:`${l().viewSetupItem} ${l().viewSetupAction}`,role:"menuitem",onMouseEnter:()=>P(null),onClick:()=>{L(),M(!1)},children:"Reset Filters"}):null,D?(0,r.jsx)("button",{type:"button",className:`${l().viewSetupItem} ${l().viewSetupAction}`,role:"menuitem",onMouseEnter:()=>P(null),onClick:()=>{T(null),D(),M(!1)},children:"Reset Columns"}):null]}):null,A?(0,r.jsx)("div",{className:`${l().viewSetupSubmenu} ${f[A]}`,role:"menu","aria-label":_[A],children:(()=>{switch(A){case"views":return(0,r.jsx)(h,{viewer:e,columnPresetId:t,onColumnPresetChange:e=>{T(null),a(e)},savedViews:g,savedViewsLoading:b,activeSavedViewId:$,onLoadSavedView:e=>{T(e.view_id),w(e),M(!1)},onSaveView:x,onDeleteSavedView:S});case"columns":return(0,r.jsx)(s,{columnOrder:i,columnVisible:o,columnLabels:d,onShowColumn:u,onHideColumn:p,onMoveColumn:y});case"sort":return(0,r.jsx)(m,{sortBy:C,sortAsc:j,onChange:k,hint:"compare"===e?"Sorts by the primary schedule's dates.":"Start and Finish use the Bar dates selection."});case"display":return(0,r.jsx)(c,{...N});default:return null}})()}):null]}):null]})}},69211:(e,t,a)=>{"use strict";a.d(t,{Ar:()=>y,Db:()=>m,Ic:()=>o,KA:()=>u,Lk:()=>d,XX:()=>p,fd:()=>i,gS:()=>h,iK:()=>f,oK:()=>v,s8:()=>n,st:()=>c,th:()=>_,zh:()=>l});var r=a(78815);function n(e){return e.selected_proj_short_name||e.projects?.[0]?.proj_short_name||""}function i(e){return e.filter(e=>!1!==e.source_available&&"quarantined_missing_source"!==e.catalog_status&&n(e).length>0)}function l(e,t,a){let r=t.find(e=>e.layer_role===a);if(!r)return[];let i=r.proj_short_name?.trim()??"",l=e.filter(e=>{let t=n(e);return!i||!t||t===i});return l.length>0?l:[...e]}function s(e,t){let a=new Set;for(let r of e)null!==t[r.layer_role]&&a.add(r.layer_role);for(let e of r.aK){let r=t[e];"string"==typeof r&&r.length>0&&a.add(e)}return r.aK.filter(e=>a.has(e))}function o(e,t){let a=new Set;for(let t of e)a.add(t.layer_role);for(let e of r.aK)"string"==typeof t[e]&&a.add(e);return r.aK.filter(e=>a.has(e))}function c(e,t,a){return null===t[a]&&e.some(e=>e.layer_role===a)}function d(e,t){return s(e,t).length>=r.Y3?null:r.aK.find(a=>!s(e,t).includes(a))??null}function u(e,t,a){let r=function(e,t){let a=new Set;for(let r of s(e,t)){let n=p(e,t,r);n&&a.add(n)}return a}(t,a),i=t.find(e=>"primary"===e.layer_role),l=i?.proj_short_name?.trim()??"";return e.filter(e=>{if(r.has(e.upload_id))return!1;let t=n(e);return!l||!t||t===l})}function h(e){return Object.fromEntries(e.map(e=>[e.layer_role,e.upload_id]))}function p(e,t,a){if(a in t){let e=t[a];if(null===e)return;if("string"==typeof e)return e}let r=e.find(e=>e.layer_role===a);return r?.upload_id}function m(e,t){for(let a of e)if(null===t[a.layer_role])return!0;let a=new Set(e.map(e=>e.layer_role)),r=s(e,t);return!!(r.length!==e.length||r.some(e=>!a.has(e)))||e.some(e=>{let a=t[e.layer_role];return"string"==typeof a&&a!==e.upload_id})}function _(e,t,a,n){let i=p(e,t,a);if(i===n)return t;let l={...t,[a]:n},s=r.aK.find(r=>r!==a&&p(e,t,r)===n);return s&&(i?l[s]=i:delete l[s]),l}function f(e,t,a){if("primary"===a)return t;if(e.find(e=>
1e.layer_role===a)){if(null===t[a]){let e={...t};return delete e[a],e}return{...t,[a]:null}}let r={...t};return delete r[a],r}function v(e,t,a){let r=d(e,t);return r?{layerRole:r,draft:_(e,t,r,a)}:null}function y(e,t,a){let i=new Map(e.map(e=>[e.layer_role,e])),l=i.get("primary")?.proj_short_name??"",o=s(e,t).map(r=>{let s=i.get(r),o=p(e,t,r)??s?.upload_id;if(!o)throw Error(`Missing revision for ${r}`);let c=a.find(e=>e.upload_id===o);return{upload_id:o,proj_short_name:c&&n(c)||s?.proj_short_name||l||""}}).map((e,t)=>({layer_role:r.aK[t],upload_id:e.upload_id,proj_short_name:e.proj_short_name})),c=o.map(e=>e.upload_id);if(new Set(c).size!==c.length)throw Error("Each compare layer must use a different revision");return o}},69496:(e,t,a)=>{"use strict";a.d(t,{T:()=>d});var r=a(14232),n=a(98249),i=a(53007);function l(e,t,a){let r=function(e,t,a){let r=new Set;for(let n of e)if("activity"===n.kind&&t(n.compareRow.activity_id)){for(let e of a.get(n.compareRow.activity_id)??[])r.add(e);n.compareRow.parent_wbs_id&&r.add(n.compareRow.parent_wbs_id),n.compareRow.wbs_id&&r.add(n.compareRow.wbs_id)}return r}(e,t,a),n=[];for(let a of e){if("wbs"===a.kind){a.row.wbs_id&&r.has(a.row.wbs_id)&&n.push(a);continue}t(a.compareRow.activity_id)&&n.push(a)}return n}function s(e,t,a,r){let n=a.get(e),i=r?.[e];switch(t){case"start":return n?.start_week_index??Number.MAX_SAFE_INTEGER;case"finish":return n?.end_week_index??Number.MAX_SAFE_INTEGER;case"id":return e;case"name":return(i?.activity_name||i?.activity_description||e).toLowerCase();case"totalFloat":return i?.total_float_days??Number.MAX_SAFE_INTEGER;default:return 0}}var o=a(94220),c=a(63168);function d(e){let{compareView:t,displayRows:a,highlightChangesOnly:d,changedActivityIds:u,activityVisible:h,barDateMode:p,compareBarsByActivity:m,visibleLayerRoles:_,collapsedWbs:f,activityAncestorWbsMap:v}=e,[y,g]=(0,r.useState)(i.mW),{applied:b,isPending:w,commitDateFilters:x}=(0,o.M)(y),{showFilters:S,setShowFilters:C,toggleShowFilters:j,filtersRootRef:k,activeTab:N,selectFilterTab:L}=(0,c.Q)({commitDateFilters:x,getDateDraft:()=>({startOnOrAfter:y.startOnOrAfter,finishOnOrBefore:y.finishOnOrBefore})}),D=(0,r.useDeferredValue)(b),R=b!==D,M=t.layers.find(e=>"primary"===e.layer_role)??t.layers[0],A=(0,r.useMemo)(()=>{let e=new Map;for(let a of t.layers)e.set(a.layer_role,a.view.activity_details);return e},[t.layers]),P=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let[a,r]of Array.from(e.entries())){let e=r?.primary;e&&t.set(a,{activity_id:e.activity_id,start_week_index:e.start_week_index,end_week_index:e.end_week_index,is_critical:e.is_critical})}return t})(m),[m]),$=(0,r.useMemo)(()=>(0,i.pN)(M.view.rows,A,_,P,D,p),[M,A,_,P,D,p]),T=(0,i.Uy)(D),E=(0,i.RT)(D),I=(0,r.useMemo)(()=>{let e=function(e,t,a,r=new Map){return t?l(e,a,r):e}(a,d,h,v);return T&&(e=function(e,t,a=new Map){return l(e,e=>t.has(e),a)}(e,$,v)),"none"!==D.sortBy&&(e=function(e,t,a,r){if("none"===a.sortBy)return e;let n=[],i=0;for(;i<e.length;){let l=e[i];if("wbs"===l.kind){n.push(l),i+=1;continue}let o=i,c=l.indentLevel,d=[];for(;i<e.length;){let t=e[i];if("wbs"===t.kind||t.indentLevel<c)break;d.push(t),i+=1}d.sort((e,n)=>{if("activity"!==e.kind||"activity"!==n.kind)return 0;let i=e.compareRow.activity_id,l=n.compareRow.activity_id,o=s(i,a.sortBy,t,r),c=s(l,a.sortBy,t,r);return o<c?a.sortAsc?-1:1:o>c?a.sortAsc?1:-1:0}),n.push(...d),i===o&&(i+=1)}return n}(e,P,D,M.view.activity_details)),e},[v,h,a,T,D,d,$,P,M.view.activity_details]),B=(0,r.useMemo)(()=>{let e=T?$:d?u:null;return e&&0!==e.size?(0,n.Kl)(f,v,e)??f:f},[v,u,f,T,d,$]);return{showFilters:S,setShowFilters:C,toggleShowFilters:j,filtersRootRef:k,filterActiveTab:N,selectFilterTab:L,filtersDraft:y,setFiltersDraft:g,filtersApplied:b,filtersActive:T,activeFilterCount:E,filtersPending:w||R,commitDateFilters:x,filteredDisplayRows:I,effectiveCollapsedWbs:B}}},71024:(e,t,a)=>{"use strict";a.d(t,{I:()=>i});var r=a(14232),n=a(4519);function i(e,t){let[a,i]=(0,r.useState)(n.ye),l=(0,r.useCallback)(a=>{void 0===e&&i(a),t?.(a)},[e,t]);return{barDateMode:e??a,setBarDateMode:l}}},71443:(e,t,a)=>{"use strict";a.d(t,{B:()=>i});var r=a(14232),n=a(5217);
1function i(e,t){let a=t?.warnBeforeMs??n.rF,[i,l]=(0,r.useState)(()=>(0,n.Vs)(e)),[s,o]=(0,r.useState)(!1),[c,d]=(0,r.useState)(null),[u,h]=(0,r.useState)(!1),p=(0,r.useCallback)(e=>{l((0,n.Vs)(e))},[]);return(0,r.useEffect)(()=>{if(!i){o(!1),d(null),h(!1);return}let e=()=>{let e=(0,n.rx)(i);if(null==e){o(!1),d(null),h(!1);return}if(e<=0){o(!0),d(0),h(!0);return}h(!1),e<=a?(o(!0),d(Math.max(1,Math.ceil(e/6e4)))):(o(!1),d(null))};e();let t=window.setInterval(e,3e4);return()=>window.clearInterval(t)},[i,a]),{expiresAt:i,setExpiresAt:p,showWarning:s,minutesLeft:c,isExpired:u}}},72425:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});let r=(0,a(53362).A)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]])},72470:(e,t,a)=>{"use strict";a.d(t,{A7:()=>f,Gp:()=>c,Km:()=>p,LK:()=>d,Qm:()=>m,S7:()=>v,SJ:()=>h,fc:()=>y,i6:()=>s,ms:()=>_,zW:()=>l});var r=a(78815);let n="layerStart:",i="layerFinish:",l=88,s=72;function o(e,t){return"start"===t?`${n}${e}`:`${i}${e}`}function c(e){return e.startsWith(n)?{role:e.slice(n.length),kind:"start"}:e.startsWith(i)?{role:e.slice(i.length),kind:"finish"}:null}function d(e){return null!=c(e)}function u(e){return"barStart"===e||"barFinish"===e?"primary":c(e)?.role??null}function h(e){return Array.from(e).filter(e=>"primary"!==e)}function p(e){return h(e).flatMap(e=>[o(e,"start"),o(e,"finish")])}function m(e,t){let a=h(e).map(r.jX);if(0===a.length)return t?"Hide comparison date columns":"Show comparison date columns";let n=a.map(e=>{let t=/^Comparison (\d+)$/.exec(e);return t?.[1]??null}),i=n.length>1&&n.every(Boolean)?`Comparison ${n.join(" & ")}`:a.join(" & ");return t?`Hide ${i} date columns`:`Show ${i} date columns`}function _(e,t){let a="primary"===e?"Primary":(0,r.jX)(e).replace("Comparison ","Comp ");return null!=t?`${a} \xb7 R${t}`:a}function f(e,t){let a=new Set,r=[],n=[];for(let i of e){if(a.has(i))continue;let e=t.find(e=>e.anchorKey===i);if(e){r.push({kind:"band",band:e}),e.columnKeys.forEach(e=>{a.add(e),n.push(e)});continue}r.push({kind:"fixed",key:i})}return{topCells:r,subHeaderKeys:n}}function v(e,t,a){let r=[],n=0;for(;n<e.length;){let i=u(e[n]);if(!i){n+=1;continue}let s=e[n],o=t[s]??l,c=n+1;for(;c<e.length&&u(e[c])===i;)o+=t[e[c]]??l,c+=1;let d=a.find(e=>e.layer_role===i),h=e.slice(n,c);r.push({anchorKey:s,columnKeys:h,width:o,label:_(i,d?.revision_number),role:i}),n=c}return r}function y(e,t){let a=new Set(t),r=e.filter(e=>!d(e)||a.has(e)),n=new Set(r.filter(d)),i=t.filter(e=>!n.has(e));if(0===i.length)return r;let l=r.length;for(let e=r.length-1;e>=0;e-=1)if("barFinish"===r[e]||"barStart"===r[e]||d(r[e])){l=e+1;break}return r.splice(l,0,...i),r}},73718:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var r=a(37876);a(14232);var n=a(98177),i=a.n(n);let l=({revisionLabel:e,filename:t,roleLabel:a,layerRole:n})=>(0,r.jsxs)("span",{className:i().revisionHeader,children:[(0,r.jsxs)("span",{className:i().revisionHeaderTitle,children:[n?(0,r.jsx)("span",{className:`${i().revisionSwatch} ${function(e){switch(e){case"primary":return i().revisionSwatchPrimary;case"baseline_1":return i().revisionSwatchBaseline1;case"baseline_2":return i().revisionSwatchBaseline2;case"baseline_3":return i().revisionSwatchBaseline3;default:return""}}(n)}`,"aria-hidden":"true"}):null,(0,r.jsx)("span",{className:i().revisionHeaderLabel,children:e})]}),a?(0,r.jsx)("span",{className:i().revisionHeaderRole,children:a}):null,(0,r.jsx)("span",{className:i().revisionHeaderFile,title:t,children:t})]})},74523:(e,t,a)=>{"use strict";a.d(t,{o:()=>x});var r=a(37876),n=a(14232);let i=[{key:"activity_id",column_name:"Activity ID"},{key:"activity_description",column_name:"Activity Name"},{key:"violation_type",column_name:"Issue"},{key:"violation_value",column_name:"Detail"}],l=[{key:"violation_type",column_name:"Issue"},{key:"edge_id.source_activity_id",column_name:"Predecessor"},{key:"edge_id.target_activity_id",column_name:"Successor"},{key:"edge_id.edge_type",column_name:"Link Type"},{key:"violation_value",column_name:"Value"}],s=[{key:"violation_type",column_name:"Issue"},{key:"measured_value",column_name:"Measured"},{key:"threshold",column_name:"Threshold"},{key:"explanation",column_name:"Assessment"},{key:"related_activity_ids",column_name:"Related Activities"}],o={missed_tasks:{key:"violation_value.days_past_due",column_name:"Days Past Due"},bei:{key:"violation_value.days_past_due",column_name:"Days Past Due"},high_float:{key:"violation_value",column_name:"Total Float (days)"},negative_float:{key:"violation_value",column_name:"Total Float (days)"},high_duration:{key:"violation_value.original_duration_days",column_name:"Original Duration (days)"}},c={leads:"edge",lags:"edge",relationship_types:"graph",long_fs_lags:"edge",out_of_sequence_progress:"edge",cpli:"graph",bei:"activity",critical_path_test:"graph",merge_hotspots:"graph",finisher_path_clarity:"graph"};var d=a(60835);function u(e){return/[",\n\r]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function h(e,t,a,r){return e.map(e=>t.map(t=>(0,d.Rf)(e,t.key,a,r)))}var p=a(61200);function m(e){return{columnKey:e[0]?.key??"",direction:"desc"}}function _(e,t){return null==e||""===e?""===t.trim():!!Array.isArray(e)&&0===e.length}function f(e,t){return"number"==typeof e&&Number.isFinite(e)?e:"string"==typeof e?(0,p.x2)(e):(0,p.x2)(t)}function v(e,t){return Array.isArray(e)?e.map(e=>String(e)).join(", ").toLowerCase():"boolean"==typeof e?e?"yes":"no":null!=e&&"object"==typeof e?t.toLowerCase():null!=e&&""!==e?String(e).toLowerCase():t.toLowerCase()}var y=a(82037),g=a(2443),b=a(45584),w=a.n(b);let x=({row:e,moduleType:t,violations:a,violationTypeLabels:b,constraintLabels:x,onClose:S,onActivityClick:C})=>{let j=(0,n.useRef)(null),k=(0,n.useMemo)(()=>(function(e,t){let a;if(e.columns?.length)return e.columns;let r=e.check_name,n=t?.entity_type;if("edge"===n)return l;if("graph"===n)return s;let d=(r&&c[r])??"activity";return"edge"===d?l:"graph"===d?s:(a=r?o[r]:void 0)?[...i.slice(0,3),a]:i})(e,a[0]),[e,a]),N=(0,n.useMemo)(()=>
1(0,p.$h)(k,a,b,x),[k,a,b,x]),[L,D]=(0,n.useState)(()=>(0,p.U0)(k,a,b,x)),[R,M]=(0,n.useState)(()=>m(k)),[A,P]=(0,n.useState)(0);(0,n.useEffect)(()=>{D((0,p.U0)(k,a,b,x)),M(m(k)),P(0)},[e.check_name,e.point,k,a,b,x]),(0,n.useEffect)(()=>{0===N.length||N.some(e=>e.key===L.columnKey)||D((0,p.uo)(N))},[N,L.columnKey]);let $=(0,n.useMemo)(()=>(0,p.Nr)(a,L,b,x),[a,L,b,x]),T=(0,n.useMemo)(()=>(function(e,t,a,r){if(!t.columnKey)return e;let n=[...e].sort((e,n)=>(function(e,t,a,r,n){let i=(0,d.jV)(e,a.columnKey),l=(0,d.jV)(t,a.columnKey),s=(0,d.Rf)(e,a.columnKey,r,n),o=(0,d.Rf)(t,a.columnKey,r,n),c=_(i,s),u=_(l,o);if(c&&u)return 0;if(c)return 1;if(u)return -1;let h=f(i,s),p=f(l,o);if(null!=h&&null!=p)return h===p?0:h<p?-1:1;let m=v(i,s),y=v(l,o);return m.localeCompare(y)})(e,n,t,a,r));return"desc"===t.direction&&n.reverse(),n})($,R,b,x),[$,R,b,x]),{pageItems:E,pageCount:I,total:B}=(0,n.useMemo)(()=>(0,p.on)(T,A,p.I3),[T,A]);(0,n.useEffect)(()=>{P(0)},[L.columnKey,L.text,L.numericOp,R.columnKey,R.direction]),(0,n.useEffect)(()=>{A>=I&&P(Math.max(0,I-1))},[A,I]),(0,n.useEffect)(()=>{!function(e){if(!e)return;let t=()=>{"function"==typeof e.scrollIntoView&&e.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})};requestAnimationFrame(()=>{t(),requestAnimationFrame(t)})}(j.current)},[e.check_name,e.point,t]);let G=N.find(e=>e.key===L.columnKey)??N[0],F=G?.kind==="numeric",O=G?.kind==="string_dropdown",H=e.name??e.check_name??"DCMA check",V=async()=>{let e,t,a=(e=k.map(e=>e.column_name).join(" "),t=h(T,k,b,x).map(e=>e.join(" ")).join("\n"),`${e} 2${t}`);await navigator.clipboard.writeText(a)},W=e=>{D(t=>({...t,...e}))};return(0,r.jsxs)("div",{className:w().dcmaDetailPanel,children:[(0,r.jsxs)("div",{ref:j,className:w().dcmaDetailHead,children:[(0,r.jsx)("button",{type:"button",className:w().dcmaDetailBack,onClick:S,children:"dcma_construction_hygiene"===t?"â Back to additional checks":"â Back to DCMA summary"}),(0,r.jsxs)("div",{className:w().dcmaDetailActions,children:[(0,r.jsx)("button",{type:"button",className:w().dcmaDetailAction,onClick:()=>void V(),children:"Copy"}),(0,r.jsx)("button",{type:"button",className:w().dcmaDetailAction,onClick:()=>{var t;let a,r,n,i,l,s=(e.check_name??"dcma").replace(/[^a-z0-9]+/gi,"-");t=`${s}-violations.csv`,n=new Blob([(a=k.map(e=>u(e.column_name)).join(","),r=h(T,k,b,x).map(e=>e.map(u).join(",")).join("\n"),`${a} 3${r}`)],{type:"text/csv;charset=utf-8"}),i=URL.createObjectURL(n),(l=document.createElement("a")).href=i,l.download=t,l.click(),URL.revokeObjectURL(i)},children:"Download CSV"}),(0,r.jsx)("button",{type:"button",className:w().dcmaDetailClose,onClick:S,"aria-label":"Close issue list",children:"\xd7"})]})]}),(0,r.jsxs)("h3",{className:w().dcmaDetailTitle,children:[H,(0,r.jsxs)("span",{className:w().dcmaDetailCount,children:[B," of ",a.length," issue(s)"]})]}),N.length>0?(0,r.jsxs)("div",{className:w().dcmaDetailFilters,children:[(0,r.jsxs)("label",{className:w().dcmaFilterField,children:[(0,r.jsx)("span",{className:w().dcmaFilterLabel,children:"Filter by"}),(0,r.jsx)("select",{className:w().dcmaFilterSelect,value:G?.key??"",onChange:e=>{W({columnKey:e.target.value,text:"",numericOp:"contains"})},children:N.map(e=>(0,r.jsx)("option",{value:e.key,children:e.column_name},e.key))})]}),F?(0,r.jsxs)("label",{className:w().dcmaFilterField,children:[(0,r.jsx)("span",{className:w().dcmaFilterLabel,children:"Match"}),(0,r.jsx)("select",{className:w().dcmaFilterSelect,value:L.numericOp,onChange:e=>W({numericOp:e.target.value}),children:p.C_.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))})]}):null,(0,r.jsxs)("label",{className:`${w().dcmaFilterField} ${w().dcmaFilterFieldGrow}`,children:[(0,r.jsx)("span",{className:w().dcmaFilterLabel,children:"Value"}),O?(0,r.jsxs)("select",{className:w().dcmaFilterSelect,value:L.text,onChange:e=>W({text:e.target.value}),children:[(0,r.jsx)("option",{value:"",children:"All"}),(G?.uniqueValues??[]).map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}):(0,r.jsx)("input",{className:w().dcmaFilterInput,type:"text",value:L.text,placeholder:F?`Filter ${G?.column_name??"value"}â¦`:"Type to filterâ¦",onChange:e=>W({text:e.target.value})})]})]}):null,(0,r.jsx)("div",{className:w().dcmaTable,children:(0,r.jsxs)("table",{children:[(0,r.jsx)("thead",{children:(0,r.jsx)("tr",{children:k.map(e=>{let t=R.columnKey===e.key;return(0,r.jsx)("th",{children:(0,r.jsxs)("button",{type:"button",className:`${w().dcmaSortHeader}${t?` ${w().dcmaSortHeaderActive}`:""}`,onClick:()=>{var t;return t=e.key,void M(e=>e.columnKey===t?{columnKey:t,direction:"desc"===e.direction?"asc":"desc"}:{columnKey:t,direction:"desc"})}
3,"aria-sort":t?"desc"===R.direction?"descending":"ascending":"none",children:[e.column_name,t?"desc"===R.direction?" â":" â":null]})},e.key)})})}),(0,r.jsx)("tbody",{children:0===E.length?(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:k.length,className:w().dcmaEmptyRow,children:"No issues match the current filter."})}):E.map((t,a)=>(0,r.jsx)("tr",{children:k.map(e=>{let a=(0,d.Rf)(t,e.key,b,x),n=function(e,t){if("activity_id"===t)return"string"==typeof e.activity_id?e.activity_id:void 0;if("edge_id.source_activity_id"===t||"edge_id.target_activity_id"===t||"edge_id.predecessor_activity_id"===t||"edge_id.successor_activity_id"===t){let a=(0,d.jV)(e,t);return"string"==typeof a&&a?a:void 0}}(t,e.key),i=a;return"explanation"===e.key&&(0,g.FD)(t)?i=(0,r.jsx)(y.FV,{violation:t,onActivityClick:C}):"related_activity_ids"===e.key&&(0,g.hL)(t).length>0?i=(0,r.jsx)(y.GN,{violation:t,onActivityClick:C}):n&&(i=(0,r.jsx)(y.ZC,{activityId:n,label:a||n,onActivityClick:C})),(0,r.jsx)("td",{children:i},e.key)})},`${e.check_name}-${A}-${a}`))})]})}),B>p.I3?(0,r.jsxs)("div",{className:w().dcmaPagination,children:[(0,r.jsx)("button",{type:"button",className:w().dcmaDetailAction,disabled:A<=0,onClick:()=>P(e=>Math.max(0,e-1)),children:"Previous"}),(0,r.jsxs)("span",{className:w().dcmaPaginationMeta,children:["Page ",A+1," of ",I]}),(0,r.jsx)("button",{type:"button",className:w().dcmaDetailAction,disabled:A>=I-1,onClick:()=>P(e=>Math.min(I-1,e+1)),children:"Next"})]}):null]})}},75248:(e,t,a)=>{"use strict";a.d(t,{O:()=>o});var r=a(37876);a(14232);var n=a(40698),i=a(90055),l=a.n(i);let s={green:"gantt-dep-arrow-green",amber:"gantt-dep-arrow-amber",red:"gantt-dep-arrow-red"},o=({renderedEdges:e,width:t,height:a,clipX:i,clipY:o})=>{if(t<=0||a<=0||0===e.length)return null;let c=Math.max(0,i),d=Math.max(0,o);return(0,r.jsx)("div",{className:l().dependencyOverlayClip,style:{left:c,top:d},"aria-hidden":"true","data-ui":"gantt-dependency-overlay-clip",children:(0,r.jsxs)("svg",{className:l().dependencyOverlay,width:t,height:a,style:{left:-c,top:-d},children:[(0,r.jsx)("defs",{children:Object.keys(n.Ac).map(e=>(0,r.jsx)("marker",{id:s[e],markerWidth:"14",markerHeight:"12",refX:"12.5",refY:"6",orient:"auto",markerUnits:"userSpaceOnUse",children:(0,r.jsx)("polygon",{points:"0.4,0.8 13.2,6 0.4,11.2",fill:n.Ac[e],stroke:"#fff",strokeWidth:"1.6",strokeLinejoin:"round"})},e))}),e.map((e,t)=>{let a=e.label?Math.max(24,6.6*e.label.length+12):0;return(0,r.jsxs)("g",{children:[(0,r.jsx)("path",{d:e.path,className:l().dependencyPath,fill:"none",stroke:"#fff",strokeWidth:4.5,strokeLinecap:"round",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:e.path,className:l().dependencyPath,fill:"none",stroke:n.Ac[e.stroke],strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:e.dashArray,markerEnd:`url(#${s[e.stroke]})`}),e.label?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("rect",{className:l().dependencyLabelPill,x:"end"===e.labelAnchor?e.labelX-a:"start"===e.labelAnchor?e.labelX:e.labelX-a/2,y:e.labelY-10,width:a,height:14,rx:3}),(0,r.jsx)("text",{className:l().dependencyLabel,x:e.labelX,y:e.labelY,textAnchor:e.labelAnchor,children:e.label})]}):null]},`${e.edge.relationship_id}-${t}`)})]})})}},75670:(e,t,a)=>{"use strict";a.d(t,{S5:()=>r,Sj:()=>n,XE:()=>i});let r="schedule";function n(e,t){return`${e}:${t}`}function i(){return n("schedule",r)}},75893:(e,t,a)=>{"use strict";function r(e){if(!Array.isArray(e))return[];let t=[];for(let a of e){if("string"==typeof a){let e=a.trim();e&&t.push({value:e});continue}if(!a||"object"!=typeof a)continue;let e="string"==typeof a.value?a.value:"string"==typeof a.udf_text?a.udf_text:null;if(!e?.trim())continue;let r="number"==typeof a.activity_count&&Number.isFinite(a.activity_count)?a.activity_count:void 0;t.push({value:e.trim(),...null!=r?{activity_count:r}:{}})}return t}function n(e){let t=e?.filter_catalog;return t&&"object"==typeof t&&Array.isArray(t.activity_code_types)?{...t,udf_fields:Array.isArray(t.udf_fields)?t.udf_fields.map(e=>({...e,values:r(e.values)})):[]}:null}function i(e){return function(e){let t=e.filter(e=>null!=e);if(0===t.length)return null;let a=new Map;for(let e of t)for(let t of e.activity_code_types){let e=t.actv_code_type_id?.trim()||t.actv_code_type,r=a.get(e);if(!r){a.set(e,{...t,values:[...t.values]});continue}a.set(e,{...r,values:function(e,t){let a=new Map;for(let r of[...e,...t]){let e=a.get(r.actv_code_name);if(!e){a.set(r.actv_code_name,{...r});continue}a.set(r.actv_code_name,{...e,activity_count:Math.max(e.activity_count??0,r.activity_count??0)})}return Array.from(a.values()).sort((e,t)=>
3e.actv_code_name.localeCompare(t.actv_code_name))}(r.values,t.values)})}let n=new Map;for(let e of t)for(let t of e.udf_fields??[]){let e=r(t.values),a=n.get(t.label);if(!a){n.set(t.label,{...t,values:e});continue}let i=new Map;for(let t of[...a.values,...e]){let e=i.get(t.value);if(!e){i.set(t.value,{...t});continue}i.set(t.value,{...e,activity_count:Math.max(e.activity_count??0,t.activity_count??0)})}n.set(t.label,{...a,values:Array.from(i.values()).sort((e,t)=>e.value.localeCompare(t.value))})}let i=t[0];return{filter_catalog_version:i.filter_catalog_version||"1.0",activity_code_types:Array.from(a.values()).sort((e,t)=>e.actv_code_type.localeCompare(t.actv_code_type)),udf_fields:Array.from(n.values()).sort((e,t)=>e.label.localeCompare(t.label)),resources:i.resources,import_capabilities:i.import_capabilities}}(e.map(e=>n(e.view.metadata)))}a.d(t,{$B:()=>i,FZ:()=>n})},76209:(e,t,a)=>{"use strict";a.d(t,{F0:()=>r,I8:()=>d,Qe:()=>n,Sp:()=>s,XD:()=>i,XQ:()=>c,Xn:()=>u,jT:()=>l,wH:()=>o});let r="Schedule status date";function n(){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function i(e){let t=l(e);return t?t.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):e}function l(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let a=Number(t[1]),r=Number(t[2]),n=Number(t[3]),i=new Date(a,r-1,n);return i.getFullYear()!==a||i.getMonth()!==r-1||i.getDate()!==n?null:i}function s(e){let t=e?.status_date;return"string"==typeof t&&t.trim()?t.trim():null}function o(e){return e instanceof Error&&("errorCode"in e&&"INVALID_ACTUAL_DATE"===e.errorCode||/schedule status date/i.test(e.message))}function c(e){let t=/^Activity (\S+) has actual (?:start|finish)/i.exec(e);return t?.[1]??null}function d(){return"Advancing the status date records progress 'as of' that day. Actual dates cannot be later than it."}function u(e,t,a,r){var n;let l,s=(r instanceof Error?(n=r.message,l=/schedule status date \((\d{4}-\d{2}-\d{2})\)/i.exec(n),l?.[1]??null):null)??e,o=s?i(s):"the schedule status date",c=t.length>0?t.join(", "):"unknown activities",d=a?i(a):null,u=d?`Update schedule status date to ${d} and continue?`:"OK to continue?";return`Actual start or finish is after ${o}, caused by activities: ${c}. ${u}`}},77660:(e,t,a)=>{"use strict";a.d(t,{Gz:()=>m,Jr:()=>d,O6:()=>u,PX:()=>h,RM:()=>v,RP:()=>o,s3:()=>f,si:()=>_});var r=a(4519),n=a(45464),i=a(34679),l=a(65227),s=a(98249);let o=44;function c(e,t=l.l0){return{rowTopY:e,rowBottomY:e+t,rowCenterY:e+t/2,barCenterY:e+8+8}}function d(e,t=o,a=l.l0){let r=new Map,n=t;for(let t of e)"activity"===t.row.row_type&&t.row.activity_id&&r.set(t.row.activity_id,c(n,a)),n+=a;return r}function u(e,t){let a=new Map(e);return t.forEach((e,t)=>{a.set(t,e)}),a}function h(e){let t=e.getBoundingClientRect(),a=new Map;for(let r of Array.from(e.querySelectorAll("tr[data-activity-id]"))){let e=r.getAttribute("data-activity-id");if(!e)continue;let n=r.getBoundingClientRect(),i=n.top-t.top,s=n.height>0?n.height:l.l0;a.set(e,c(i,s))}return a}function p(e,t,a,n,i){let l=t.get(e);if(!l)return null;let s=a[e];return{...l,...(0,r.iA)(l,s,n,i)}}function m(e,t,a,r,n,l){let o=(0,i.xM)(e,a,r),c=n+e.start_week_index*s._8+o.left;return(0,s.sd)(t)||"start"===l?c:c+o.width}function _(e){let t=e.rowMetricsByActivityId.get(e.edge.predecessor_activity_id),a=e.rowMetricsByActivityId.get(e.edge.successor_activity_id);if(!t||!a)return null;let r=p(e.edge.predecessor_activity_id,e.barsByActivity,e.activityDetails,e.barDateMode,e.weekColumns),i=p(e.edge.successor_activity_id,e.barsByActivity,e.activityDetails,e.barDateMode,e.weekColumns);if(!r||!i)return null;let l=e.activityDetails[e.edge.predecessor_activity_id],o=e.activityDetails[e.edge.successor_activity_id];return{predFinishX:m(r,l?.activity_type,e.weekColumns,e.dayOffsetEnabled,e.fixedColsWidth,"finish"),predAttachY:t.barCenterY,predRowBottomY:t.rowBottomY,succStartX:m(i,o?.activity_type,e.weekColumns,e.dayOffsetEnabled,e.fixedColsWidth,"start"),succRowCenterY:(0,s.sd)(o?.activity_type)?a.barCenterY:a.rowCenterY,overlapOnWeeks:(0,n.ke)(r,i)}}function f(e){let t=e.theadHeightPx??o,a=e.fixedColsWidth+e.weekColumnCount*s._8,r=t+e.visibleRowCount*l.l0;return{width:Math.max(a,e.tableWidthPx??0),height:Math.max(r,e.tableHeightPx??0)}}function v(e){let t=e.theadHeightPx??o;return{clipX:Math.max(0,e.fixedColsWidth+(e.scrollLeft??0)),clipY:Math.max(0,t+(e.scrollTop??0))}}l.l0,s._8},78815:(e,t,a)=>{"use strict";a.d(t,{Kf:()=>l,Y3:()=>n,aK:()=>r,jX:()=>s,tG:()=>i});let r=["primary","baseline_1","baseline_2","baseline_3"],n=4;function i(e){return!!e&&"object"==typeof e&&"string"==typeof e.compare_id&&e.layer_count>=1}function l(e){return!!e&&"object"==typeof e&&"1.0"===e.gantt_compare_version&&"string"==typeof e.compare_id&&Array.isArray(e.layers
3)&&e.layers.length>=1}function s(e){switch(e){case"primary":return"Primary";case"baseline_1":return"Comparison 1";case"baseline_2":return"Comparison 2";case"baseline_3":return"Comparison 3";default:return e}}},79103:(e,t,a)=>{"use strict";a.d(t,{O:()=>B});var r=a(37876),n=a(14232),i=a(82037);let l={now:"Act now",next:"Plan next",watch:"Watch"},s={completion_driving_path:"Driving substantial completion",completion_propagated_delay:"Propagated delay",completion_float_absorbed:"Float absorbed",planned_finish_miss:"Planned finish miss",planned_start_miss:"Planned start miss",due_incomplete:"Due incomplete",critical_path:"Critical path",forecast_finish_slip:"Forecast finish slip",near_critical_pressure:"Low float / near critical",completion_related_driver:"Substantial completion milestone",schedule_signal:"Flagged by schedule rules"};function o(e){return e?l[e.trim().toLowerCase()]??e.replace(/_/g," "):"â"}function c(e){let t=e.trim();return t?s[t]??t.replace(/_/g," ").replace(/\b\w/g,e=>e.toUpperCase()):""}function d(e,t=3){let a=e.reason_codes??[];if(0===a.length)return e.evidence_class?c(e.evidence_class):"â";let r=a.map(c).filter(Boolean),n=r.slice(0,t),i=r.length>t?` +${r.length-t}`:"";return`${n.join(", ")}${i}`}function u(e){return null==e||Number.isNaN(e)?"â":`${e}d`}function h(e){let t=e.risk_score?.overall_risk_score;return null==t||""===t?"â":"number"==typeof t?t.toFixed(1):String(t)}function p(e){let t=e.phase_name?.trim();return t&&"N/A"!==t?t:"â"}let m=[{key:"rank",column_name:"Rank",sortable:!0},{key:"activity",column_name:"Activity",sortable:!0},{key:"priority_tier",column_name:"Tier",sortable:!0},{key:"overall_risk_score",column_name:"Focus score",sortable:!0},{key:"total_float_days",column_name:"Float (days)",sortable:!0},{key:"variance_days",column_name:"Slip (days)",sortable:!0},{key:"wbs",column_name:"Area",sortable:!0},{key:"drivers",column_name:"Why flagged",sortable:!1}],_=[{value:"",label:"All tiers"},{value:"now",label:"Act now"},{value:"next",label:"Plan next"},{value:"watch",label:"Watch"}];function f(e){return/[",\n\r]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function v(){return{tier:"",searchText:""}}function y(){return{columnKey:"rank",direction:"asc"}}function g(e,t){switch(t){case"rank":return e.rank??Number.MAX_SAFE_INTEGER;case"priority_tier":return o(e.priority_tier);case"overall_risk_score":{let t=e.risk_score?.overall_risk_score;if("number"==typeof t)return t;let a=Number(t);return Number.isFinite(a)?a:-1}case"total_float_days":return e.total_float_days??Number.MAX_SAFE_INTEGER;case"variance_days":return e.variance_days??Number.MIN_SAFE_INTEGER;case"activity_id":return e.activity_id??"";case"wbs":return p(e);default:return""}}var b=a(19427),w=a(45584),x=a.n(w);function S(e){return"activity"===e?"activity_id":"wbs"===e?"wbs":e}let C=({module:e,onActivityClick:t})=>{let a,{rows:l}={rows:(a=(0,b.TV)(e).critical_activities??{}).rows??[],suppressedCount:"number"==typeof a.suppressed_count?a.suppressed_count:0,disclosures:a.disclosures??[]},[s,w]=(0,n.useState)(v),[C,j]=(0,n.useState)(y),[k,N]=(0,n.useState)(0);(0,n.useEffect)(()=>{w(v()),j(y()),N(0)},[l]);let L=(0,n.useMemo)(()=>{let e,t;return e=s.tier.trim().toLowerCase(),t=s.searchText.trim().toLowerCase(),l.filter(a=>(!e||(a.priority_tier??"").toLowerCase()===e)&&(!t||!![a.activity_id,a.activity_name,a.activity_description,p(a),a.wbs_code,o(a.priority_tier),...(a.reason_codes??[]).map(c)].filter(Boolean).join(" ").toLowerCase().includes(t)))},[l,s]),D=(0,n.useMemo)(()=>{let e;return(e=[...L]).sort((e,t)=>{let a=g(e,C.columnKey),r=g(t,C.columnKey),n=0;return n="number"==typeof a&&"number"==typeof r?a-r:String(a).localeCompare(String(r),void 0,{numeric:!0,sensitivity:"base"}),"desc"===C.direction?-n:n}),e},[L,C]),{pageItems:R,pageCount:M,total:A}=(0,n.useMemo)(()=>{let e,t,a;return a=10*Math.min(Math.max(0,k),(t=Math.max(1,Math.ceil((e=D.length)/10)))-1),{pageItems:D.slice(a,a+10),pageCount:t,total:e}},[D,k]);if((0,n.useEffect)(()=>{N(0)},[s.tier,s.searchText,C.columnKey,C.direction]),(0,n.useEffect)(()=>{k>=M&&N(Math.max(0,M-1))},[k,M]),!(0,b.oQ)(e)||0===l.length)return(0,r.jsxs)("section",{className:x().section,children:[(0,r.jsx)("div",{className:x().sectionHead,children:(0,r.jsx)("h2",{children:"Critical Activities"})}
3),(0,r.jsx)("div",{className:x().emptySection,children:e?.status==="skipped"||e?.status==="insufficient_data"?"Critical activities were skipped for this schedule.":"Critical activities are not available for this analysis."})]});let P=async()=>{await navigator.clipboard.writeText(["Rank Activity ID Activity Name Tier Focus Score Float (days) Slip (days) Area Why flagged",...D.map(e=>[null!=e.rank?String(e.rank):"",e.activity_id??"",e.activity_name??"",o(e.priority_tier),h(e),u(e.total_float_days).replace(/d$/,""),u(e.variance_days).replace(/d$/,""),"â"===p(e)?"":p(e),d(e,10)].join(" "))].join("\n"))};return(0,r.jsxs)("section",{className:x().section,children:[(0,r.jsxs)("div",{className:x().sectionHead,children:[(0,r.jsx)("h2",{children:"Critical Activities"}),(0,r.jsxs)("div",{className:x().sectionHeadActions,children:[(0,r.jsx)("button",{type:"button",className:x().dcmaDetailAction,onClick:()=>void P(),children:"Copy"}),(0,r.jsx)("button",{type:"button",className:x().dcmaDetailAction,onClick:()=>{let e,t,a,r,n,i;r=new Blob([(t=["Activity ID","Activity Name",...(e=m.filter(e=>"activity"!==e.key)).map(e=>e.column_name)],a=D.map(t=>[t.activity_id??"",t.activity_name??"",...e.map(e=>(function(e,t){if("rank"===t)return null!=e.rank?String(e.rank):"";if("priority_tier"===t)return o(e.priority_tier);if("overall_risk_score"===t)return h(e);if("total_float_days"===t){let t=u(e.total_float_days);return"â"===t?"":t.replace(/d$/,"")}if("variance_days"===t){let t=u(e.variance_days);return"â"===t?"":t.replace(/d$/,"")}if("wbs"===t){let t=p(e);return"â"===t?"":t}return"drivers"===t?d(e,10):""})(t,e.key))].map(f).join(",")),[t.map(f).join(","),...a].join("\n"))],{type:"text/csv;charset=utf-8"}),n=URL.createObjectURL(r),(i=document.createElement("a")).href=n,i.download="critical-activities.csv",i.click(),URL.revokeObjectURL(n)},children:"Download CSV"})]})]}),(0,r.jsxs)("div",{className:x().dcmaDetailFilters,children:[(0,r.jsxs)("label",{className:x().dcmaFilterField,children:[(0,r.jsx)("span",{className:x().dcmaFilterLabel,children:"Tier"}),(0,r.jsx)("select",{className:x().dcmaFilterSelect,value:s.tier,onChange:e=>w(t=>({...t,tier:e.target.value})),children:_.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.label))})]}),(0,r.jsxs)("label",{className:`${x().dcmaFilterField} ${x().dcmaFilterFieldGrow}`,children:[(0,r.jsx)("span",{className:x().dcmaFilterLabel,children:"Search"}),(0,r.jsx)("input",{className:x().dcmaFilterInput,type:"text",value:s.searchText,placeholder:"Activity, area, reasonsâ¦",onChange:e=>w(t=>({...t,searchText:e.target.value}))})]})]}),(0,r.jsx)("div",{className:x().dcmaTable,children:(0,r.jsxs)("table",{children:[(0,r.jsx)("thead",{children:(0,r.jsx)("tr",{children:m.map(e=>{let t=S(e.key),a=C.columnKey===t;return(0,r.jsx)("th",{children:e.sortable?(0,r.jsxs)("button",{type:"button",className:`${x().dcmaSortHeader}${a?` ${x().dcmaSortHeaderActive}`:""}`,onClick:()=>{let t;return t=S(e.key),void j(e=>e.columnKey===t?{columnKey:t,direction:"desc"===e.direction?"asc":"desc"}:{columnKey:t,direction:"rank"===t||"activity_id"===t||"wbs"===t?"asc":"desc"})},"aria-sort":a?"desc"===C.direction?"descending":"ascending":"none",children:[e.column_name,a?"desc"===C.direction?" â":" â":null]}):e.column_name},e.key)})})}),(0,r.jsx)("tbody",{children:0===R.length?(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:m.length,className:x().dcmaEmptyRow,children:"No activities match the current filter."})}):R.map((e,a)=>(0,r.jsx)("tr",{children:m.map(a=>{if("activity"===a.key){let n=e.activity_id??"";return(0,r.jsxs)("td",{children:[n&&t?(0,r.jsx)(i.ZC,{activityId:n,label:n,onActivityClick:t}):(0,r.jsx)("div",{className:x().actId,children:n||"â"}),(0,r.jsx)("div",{className:x().actName,children:e.activity_name??"â"})]},a.key)}return"priority_tier"===a.key?(0,r.jsx)("td",{children:e.priority_tier?(0,r.jsx)("span",{className:x().tierPill,children:o(e.priority_tier)}):"â"},a.key):"overall_risk_score"===a.key?(0,r.jsx)("td",{className:x().actId,children:h(e)},a.key):"total_float_days"===a.key?(0,r.jsx)("td",{children:u(e.total_float_days)},a.key):"variance_days"===a.key?(0,r.jsx)("td",{children:u(e.variance_days)},a.key):"wbs"===a.key?(0,r.jsx)("td",{children:p(e)},a.key):"drivers"===a.key?(0,r.jsx)("td",{children:d(e)},a.key):(0,r.jsx)("td",{children:function(e,t){switch(t){case"rank":return null!=e.rank?String(e.rank):"â";case"priority_tier":return o(e.priority_tier);case"overall_risk_score":return h(e);case"total_float_days":return u(e.total_float_days);case"variance_days":return u(e.variance_days);case"wbs":return p(e);case"drivers":return d(e);case"activity_id":return e.activity_id??"â";default:return""}}(e,a.key)},a.key)})},`${e.activity_id??"row"}-${k}-${a}`))})]})}),A>10?(0,r.jsxs)("div",{className:x().dcmaPagination,children:[(0,r.jsx)("button",{type:"button",className:x().dcmaDetailA
3ction,disabled:k<=0,onClick:()=>N(e=>Math.max(0,e-1)),children:"Previous"}),(0,r.jsxs)("span",{className:x().dcmaPaginationMeta,children:["Page ",k+1," of ",M]}),(0,r.jsx)("button",{type:"button",className:x().dcmaDetailAction,disabled:k>=M-1,onClick:()=>N(e=>Math.min(M-1,e+1)),children:"Next"})]}):null]})};var j=a(5827),k=a(61200),N=a(38229);let L={dcma_14_point_assessment:{title:"DCMA 14-Point Review",sectionMeta:"",scoreBasis:"Pass earns full credit, Warning earns partial credit, Fail earns none. Checks marked N/A are excluded."},dcma_construction_hygiene:{title:"Additional Schedule Checks",sectionMeta:"",scoreBasis:"Same pass / warning / fail scoring as DCMA 14. Does not change your DCMA 14 score."}};function D(e){return({pass:x().dcmaPillPass,warn:x().dcmaPillWarn,fail:x().dcmaPillFail})[e]}let R=({module:e,moduleType:t,onActivityClick:a,onViewAll:i,activeViewAllRowKey:l=null})=>{let s=(0,b.TV)(e),o=L[t],c=s.module_display??{},d=String(c.title??o.title),u=String(c.section_meta??o.sectionMeta).trim(),h=String(c.score_basis??o.scoreBasis),p=s.rows??[],m=s.status_counts??{},_=(0,n.useMemo)(()=>(0,N.pk)(s),[s]),f=(0,n.useMemo)(()=>(0,N.TU)(s),[s]),v=(0,n.useMemo)(()=>(0,N.Vg)(s),[s]);return(0,b.oQ)(e)&&0!==p.length?(0,r.jsxs)("section",{className:x().section,children:[(0,r.jsxs)("div",{className:x().sectionHead,children:[(0,r.jsx)("h2",{children:d}),u?(0,r.jsx)("span",{className:x().sectionMeta,children:u}):null]}),(0,r.jsxs)("div",{className:x().dcmaSummary,children:[(0,r.jsxs)("div",{className:x().dcmaSummaryStat,children:[(0,r.jsx)("div",{className:x().dcmaSummaryLabel,children:"DCMA score"}),(0,r.jsxs)("div",{className:x().dcmaSummaryValue,children:[null!=s.compliance_score?String(s.compliance_score):"â",(0,r.jsxs)("span",{className:x().dcmaSummaryOut,children:["/",null!=s.max_score?String(s.max_score):"â"]})]})]}),(0,r.jsxs)("div",{className:x().dcmaSummaryPills,children:[(0,r.jsxs)("div",{className:`${x().dcmaPill} ${D("pass")}`,children:["Pass ",(0,r.jsx)("strong",{children:String(m.pass??0)})]}),(0,r.jsxs)("div",{className:`${x().dcmaPill} ${D("warn")}`,children:["Warn ",(0,r.jsx)("strong",{children:String(m.warn??0)})]}),(0,r.jsxs)("div",{className:`${x().dcmaPill} ${D("fail")}`,children:["Fail ",(0,r.jsx)("strong",{children:String(m.fail??0)})]})]}),(0,r.jsx)("div",{className:x().muted,children:h})]}),(0,r.jsx)("div",{className:x().dcmaTable,children:(0,r.jsxs)("table",{children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{children:"#"}),(0,r.jsx)("th",{children:"Check"}),(0,r.jsx)("th",{children:"Result"}),(0,r.jsx)("th",{children:"Status"})]})}),(0,r.jsx)("tbody",{children:p.map(e=>{let n=(0,k.p6)(t,e);return(0,r.jsxs)("tr",{className:l===n?x().dcmaRowActive:void 0,children:[(0,r.jsx)("td",{className:x().dcmaNum,children:e.point??"â"}),(0,r.jsxs)("td",{children:[(0,r.jsx)("div",{className:x().dcmaName,children:e.name??e.check_name}),e.check?(0,r.jsx)("div",{className:x().dcmaCheckDef,children:e.check}):null]}),(0,r.jsxs)("td",{className:x().dcmaResult,children:[e.actual,(0,r.jsx)(j.b,{row:e,onActivityClick:a,onViewAll:()=>{i&&i({rowKey:(0,k.p6)(t,e),moduleType:t,row:e,violations:(0,N.O0)(e,_),violationTypeLabels:f,constraintLabels:v})},violationTypeLabels:f,constraintLabels:v})]}),(0,r.jsx)("td",{children:(0,r.jsx)("span",{className:`${x().dcmaStatus} ${function(e){switch((e??"").toLowerCase()){case"pass":return x().dcmaStatusPass;case"warn":case"warning":return x().dcmaStatusWarn;case"fail":return x().dcmaStatusFail;default:return""}}(e.status)}`,children:(e.status??"unknown").toUpperCase()})})]},`${e.point}-${e.check_name??e.name}`)})})]})})]}):(0,r.jsxs)("section",{className:x().section,children:[(0,r.jsxs)("div",{className:x().sectionHead,children:[(0,r.jsx)("h2",{children:d}),u?(0,r.jsx)("span",{className:x().sectionMeta,children:u}):null]}),(0,r.jsx)("div",{className:x().emptySection,children:e?.status==="skipped"||e?.status==="insufficient_data"?`${d} was skipped for this schedule.`:`${d} is not available for this analysis.`})]})};var M=a(74523);function A(e){return null==e||"boolean"==typeof e?null:"number"==typeof e&&Number.isFinite(e)?Number.isInteger(e)?e:Math.ceil(e):null}function P(e){let t=A(e);return null!=t?String(t):null==e?"â":String(e)}function $(e){if(null==e)return"warn";let t="number"==typeof e?e:Number(e);return Number.isFinite(t)?t>=80?"good":t>=60?"warn":"crit":"warn"}function T(e){if(null==e||"boolean"==typeof e)return null;let t="number"==typeof e?e:Number(e);return Number.isFinite(t)?t:null}function E(e,t){return({good:x()[`${t}Good`],warn:x()[`${t}Warn`],crit:x()[`${t}Crit`]})[e]??""}let I=({scoreModule:e,predictionsModule:t,explainabilityModule:a,scoreSummaryRef:n})=>{let i=(0,b.TV)(e);if(!(0,b.oQ)(e)||!i.score)return(0,r.jsx)("div",{className:x().emptySection,children:"Schedule health score is not available for this analysis."});let l=i.score??{},s=l.score,o=P(s),c=$(s),d=i.score_band?.band??l.grade??"",u=String(l.explanation??""),h=(0,b.TV)(t),p=(0,b.oQ)(t)&&!h.status&&(0,b.sb)(h)?function(e,t){if(!e)return null;let a=T(t),r=T(e.predicted_score),n=T(e.delta_from_current),i=r,l=null!=n?`Vs. today ${n>=0?"+":""}${n.toFixed(1)} pts`:"Vs. today â";if(null!=a&&null!=r){let e=r-a;5>=Math.abs(e)?(i=a,l="Expected to hold near current score",n=0):e>5&&r>=90?(i=a>90?a:90,l="Low change expected",n=0):(i=r,n=n??e,l=`Vs. today ${n>=0?"+":""}${n.toFixed(1)} pts`)}if(null==i)return null;let s=P(i);return i>90&&(s="90+"),{displayScore:s,tone:$(A(i)??i),statusText:l,deltaClass:null==n||0===n?"":n<0?"neg":"pos"}}((0,b.sb)(h),s):null,m=(0,b.oQ)(a)?(0,b.l4)((0,b.TV)(a)):[];return(0,r.jsxs)("div",{className:x().hero,children:[(0,r.jsxs)("div",{className:x().heroScore,children:[(0,r.jsxs)("div",{className:x().heroCurrent,children:[(0,r.jsx)("div",{className:x().scoreLabel,children:"Schedule Health Score"}),(0,r.jsxs)("div",{className:`${x().scoreValue} ${E(c,"scoreValue")}`,children:[o,(0,r.jsx)("span",{className:x().scoreOutOf,children:"/100"})]}),d?(0,r.jsx)("div",{className:`${x().scoreBand} ${E(c,"scoreBand")}`,children:d}):null]}),p?(0,r.jsxs)("div",{className:x().heroFuture,children:[(0,r.jsx)("div",{className:x().heroFutureDivider}),(0,r.jsx)("div",{className:x().scoreLabel,children:"30-day outlook"}),(0,r.jsxs)("div",{className:`${x().scoreValue} ${x().heroFutureScore} ${E(p.tone,"scoreValue")}`,children:[p.displayScore,(0,r.jsx)("span",{className:x().scoreOutOf,children:"/100"})]}),(0,r.jsx)("div",{className:`${x().predDelta} ${"pos"===p.deltaClass?x().predDeltaPos:"neg"===p.deltaClass?x().predDeltaNeg:""}`,children:p.statusText}),(0,r.jsx)("div",{className:x().futureCaution,children:"Forecast only â not a commitment."})]}):null]}),(0,r.jsxs)("div",{className:x().heroSummary,ref:n,children:[(0,r.jsx)("h2",{children:"Why this score"}),(0,r.jsx)("p",{children:u||"No score explanation returned."}),(0,r.jsx)("h3",{children:"What's pulling the score down"}),m.length>0?(0,r.jsx)("ul",{className:x().driverList,children:m.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)("div",{children:e.detail||e.key})},e.key))}):(0,r.jsx)("p",{className:x().muted,children:"No score reducers returned."})]})]})},B=({modules:e,loading:t=!1,hideEmptyMessage:a=!1,onActivityClick:i,scoreSummaryRef:l})=>
3{let[s,o]=(0,n.useState)(null),c=e=>{o(e)};if(t)return null;let d=(0,b.NI)(e);if(0===Object.keys(d).length)return a?null:(0,r.jsx)("p",{className:x().muted,children:"No schedule health modules returned for this profile."});let u=s?(0,r.jsx)("section",{className:x().section,children:(0,r.jsx)(M.o,{row:s.row,moduleType:s.moduleType,violations:s.violations,violationTypeLabels:s.violationTypeLabels,constraintLabels:s.constraintLabels,onClose:()=>o(null),onActivityClick:i})}):null;return(0,r.jsxs)("div",{className:x().panel,children:[(0,r.jsx)(I,{scoreModule:d.dcma_based_schedule_health_score,predictionsModule:d.health_score_predictions,explainabilityModule:d.schedule_health_score_explainability,scoreSummaryRef:l}),(0,r.jsx)(R,{module:d.dcma_14_point_assessment,moduleType:"dcma_14_point_assessment",onActivityClick:i,onViewAll:c,activeViewAllRowKey:s?.rowKey??null}),s?.moduleType==="dcma_14_point_assessment"?u:null,(0,r.jsx)(R,{module:d.dcma_construction_hygiene,moduleType:"dcma_construction_hygiene",onActivityClick:i,onViewAll:c,activeViewAllRowKey:s?.rowKey??null}),s?.moduleType==="dcma_construction_hygiene"?u:null,(0,r.jsx)(C,{module:d.critical_activities,onActivityClick:i})]})}},79813:(e,t,a)=>{"use strict";function r(e){let t=e?.primary_resource;return t&&(t.rsrc_short_name?.trim()||t.rsrc_name?.trim())||"â"}function n(e,t){if(!e?.activity_codes?.length)return"â";let a=t.trim().toLowerCase(),r=e.activity_codes.find(e=>e.actv_code_type.trim().toLowerCase()===a);return r&&(r.short_name?.trim()||r.actv_code_name)||"â"}a.d(t,{eo:()=>r,s4:()=>n})},80881:(e,t,a)=>{"use strict";a.d(t,{I6:()=>n,KX:()=>l,N0:()=>r,dX:()=>s,ee:()=>o});let r=["start_milestone","finish_milestone"],n=["task_dependent"];function i(e,t){if(e.length!==t.length)return!1;let a=new Set(e);return t.every(e=>a.has(e))}function l(e){return i(e,r)}function s(e){let t=[],a=e.searchText.trim();
3if(a&&t.push({id:"search",label:`Search: ${a}`}),e.criticalOnly&&t.push({id:"critical",label:"Critical Path"}),null!=e.maxTotalFloatDays&&t.push({id:"maxTotalFloatDays",label:`Float ⤠${e.maxTotalFloatDays} Days`}),null!=e.minPercent&&t.push({id:"minPercent",label:`Min ${e.minPercent}%`}),null!=e.maxPercent&&t.push({id:"maxPercent",label:`Max ${e.maxPercent}%`}),e.startOnOrAfter&&e.finishOnOrBefore?t.push({id:"dateWindow",label:`Dates ${e.startOnOrAfter} â ${e.finishOnOrBefore}`}):e.startOnOrAfter?t.push({id:"startOnOrAfter",label:`Start ⥠${e.startOnOrAfter}`}):e.finishOnOrBefore&&t.push({id:"finishOnOrBefore",label:`Finish ⤠${e.finishOnOrBefore}`}),e.statusCodes.length>0&&t.push({id:"status",label:`Status (${e.statusCodes.length})`}),e.activityTypes.length>0){let a=`Type (${e.activityTypes.length})`;l(e.activityTypes)?a="Milestones":i(e.activityTypes,n)&&(a="Tasks"),t.push({id:"type",label:a})}for(let[a,r]of Object.entries(e.activityCodeFilters))r.length>0&&t.push({id:`code-${a}`,label:`${a} (${r.length})`});for(let[a,r]of Object.entries(e.udfFilters))r.length>0&&t.push({id:`udf-${a}`,label:`UDF ${a} (${r.length})`});let r=e.resourceFilter;return(r.types.length>0||r.primaryRsrcShortNames.length>0||r.searchShortName?.trim()||null!=r.hasNonlabor||null!=r.hasPrimary||null!=r.unassigned)&&t.push({id:"resource",label:"Resources"}),t}function o(e,t){switch(t){case"search":return{...e,searchText:""};case"critical":return{...e,criticalOnly:!1};case"maxTotalFloatDays":return{...e,maxTotalFloatDays:null};case"minPercent":return{...e,minPercent:null};case"maxPercent":return{...e,maxPercent:null};case"dateWindow":return{...e,startOnOrAfter:null,finishOnOrBefore:null};case"startOnOrAfter":return{...e,startOnOrAfter:null};case"finishOnOrBefore":return{...e,finishOnOrBefore:null};case"status":return{...e,statusCodes:[]};case"type":return{...e,activityTypes:[]};case"resource":return{...e,resourceFilter:{types:[],primaryRsrcShortNames:[],searchShortName:null,hasNonlabor:null,hasPrimary:null,unassigned:null}};default:if(t.startsWith("code-")){let a=t.slice(5);return{...e,activityCodeFilters:{...e.activityCodeFilters,[a]:[]}}}if(t.startsWith("udf-")){let a=t.slice(4);return{...e,udfFilters:{...e.udfFilters,[a]:[]}}}return e}}},82037:(e,t,a)=>{"use strict";a.d(t,{FV:()=>c,GN:()=>d,ZC:()=>o});var r=a(37876),n=a(14232),i=a(2443),l=a(45584),s=a.n(l);function o({activityId:e,label:t,onActivityClick:a}){return(0,r.jsx)("button",{type:"button",className:s().activityLink,disabled:!a,onClick:()=>a?.(e),children:t??e})}function c({violation:e,onActivityClick:t,className:a}){let n=(0,i.LD)(e);return n?(0,r.jsxs)("span",{className:a,children:[n.leadText,(0,r.jsx)(o,{activityId:n.activityId,onActivityClick:t}),n.restText]}):null}function d({violation:e,onActivityClick:t}){let a=(0,i.hL)(e);return 0===a.length?null:(0,r.jsx)(r.Fragment,{children:a.map((e,a)=>(0,r.jsxs)(n.Fragment,{children:[a>0?", ":null,(0,r.jsx)(o,{activityId:e,onActivityClick:t})]},e))})}},83414:(e,t,a)=>{"use strict";a.d(t,{gg:()=>s,_4:()=>l,MB:()=>i,zu:()=>o,Aq:()=>c});var r=a(17159);class n extends Error{constructor(e,t,a){super(e),this.name="CommentApiError",this.code=t,this.current=a}}function i(e){return l(e)&&e.code===r.Hp}function l(e){return e instanceof n}function s(e){return"thread"===e?"This comment was updated elsewhere. Your edits are still in the boxâclick Save again to override.":"This reply was updated elsewhere. Your edits are still in the boxâclick Save again to override."}function o(){return"Reply not found. It may have been deleted."}function c(e){let t=e.data&&"object"==typeof e.data?e.data.detail:void 0;if(403===e.status&&function(e){if("string"==typeof e)return e.toLowerCase().includes("product access denied");if(e&&"object"==typeof e){let t=e.message;if("string"==typeof t)return t.toLowerCase().includes("product access denied")}return!1}
3(t??e.data))throw new n("string"==typeof t?t:"Product access denied: schedule_reader_comments",r.Hp);let a=function(e){if(!e||"object"!=typeof e)return null;let t=e.detail;return t&&"object"==typeof t?t:null}(e.data);throw new n(a?.message??(null!=e.status?`Schedule comment request failed (${e.status})`:"Schedule comment request failed"),a?.error_code??"COMMENT_ERROR",a?.current)}},83440:(e,t,a)=>{"use strict";a.d(t,{h:()=>n}),a(37876),a(14232);var r=a(78815);function n(e,t){return`${(0,r.jX)(e)} \xb7 ${t}`}a(68957),a(90055),a(13412)},83897:e=>{e.exports={overlay:"ScheduleHealthGanttOverlay_overlay__gjyRd",resizeHandle:"ScheduleHealthGanttOverlay_resizeHandle__k7VYz",resizeHandleLeft:"ScheduleHealthGanttOverlay_resizeHandleLeft__hJSmd",resizeHandleRight:"ScheduleHealthGanttOverlay_resizeHandleRight__lsAir",resizeHandleBottom:"ScheduleHealthGanttOverlay_resizeHandleBottom__50MgI",frame:"ScheduleHealthGanttOverlay_frame__8Tn20",overlayHeader:"ScheduleHealthGanttOverlay_overlayHeader__wDVyP",overlayLabel:"ScheduleHealthGanttOverlay_overlayLabel__dgR1v",overlayBody:"ScheduleHealthGanttOverlay_overlayBody__t87As",srOvIn:"ScheduleHealthGanttOverlay_srOvIn__AQfQs",overlayHeaderActions:"ScheduleHealthGanttOverlay_overlayHeaderActions__JxyMd",closeBtn:"ScheduleHealthGanttOverlay_closeBtn__Rdw4_",layoutControls:"ScheduleHealthGanttOverlay_layoutControls__wCKGM",layoutBtn:"ScheduleHealthGanttOverlay_layoutBtn__R8dHk",layoutBtnActive:"ScheduleHealthGanttOverlay_layoutBtnActive__EAznp",compareRevisionRow:"ScheduleHealthGanttOverlay_compareRevisionRow__z9FVz",compareRevisionPills:"ScheduleHealthGanttOverlay_compareRevisionPills__k4Ra2",compareRevisionPill:"ScheduleHealthGanttOverlay_compareRevisionPill__kjFeu",compareRevisionPillInline:"ScheduleHealthGanttOverlay_compareRevisionPillInline__PYVnF",compareRevisionPillActive:"ScheduleHealthGanttOverlay_compareRevisionPillActive__rC4Uz",compareRevisionPillInlineActive:"ScheduleHealthGanttOverlay_compareRevisionPillInlineActive__Oz3q6",compareRevisionPillLabel:"ScheduleHealthGanttOverlay_compareRevisionPillLabel__zguZW"}},84389:(e,t,a)=>{"use strict";a.d(t,{QY:()=>o,nB:()=>r,rt:()=>s,wg:()=>n}),a(4519);let r={forecastStart:"Forecast start",forecastFinish:"Forecast finish",targetStart:"Target start",targetFinish:"Target finish",earlyStart:"Early start",earlyFinish:"Early finish",lateStart:"Late start",lateFinish:"Late finish",actualStart:"Actual start",actualFinish:"Actual finish",actualForecastStart:"Actual + forecast start",actualForecastFinish:"Actual + forecast finish"},n={forecastStart:"Forecast Start",forecastFinish:"Forecast Finish",targetStart:"Target Start",targetFinish:"Target Finish",earlyStart:"Early Start",earlyFinish:"Early Finish",lateStart:"Late Start",lateFinish:"Late Finish",actualStart:"Actual Start",actualFinish:"Actual Finish",actualForecastStart:"Actual + Forecast Start",actualForecastFinish:"Actual + Forecast Finish"},i={forecast:n.forecastStart,target:n.targetStart,early:n.earlyStart,late:n.lateStart,actual_forecast:n.actualForecastStart}
3,l={forecast:n.forecastFinish,target:n.targetFinish,early:n.earlyFinish,late:n.lateFinish,actual_forecast:n.actualForecastFinish};function s(e){return i[e]}function o(e){return l[e]}},84453:(e,t,a)=>{"use strict";a.d(t,{BO:()=>c,O$:()=>h,fK:()=>d,gC:()=>u,wb:()=>o,wv:()=>s});var r=a(37876),n=a(14232),i=a(29312),l=a.n(i);function s({children:e}){return(0,r.jsx)("p",{className:l().hint,role:"status","aria-live":"polite",children:e})}function o({children:e}){return(0,r.jsx)("p",{className:l().warning,role:"status",children:e})}function c({title:e,children:t}){return(0,r.jsxs)("div",{className:l().empty,role:"status",children:[(0,r.jsx)("span",{className:l().emptyTitle,children:e}),t]})}function d({title:e="Something went wrong",message:t,onRetry:a,retryLabel:n="Try again"}){return(0,r.jsxs)("div",{className:l().panelError,role:"alert",children:[(0,r.jsx)("p",{className:l().panelErrorTitle,children:e}),(0,r.jsx)("p",{style:{margin:0},children:t}),a&&(0,r.jsx)("div",{className:l().panelErrorActions,children:(0,r.jsx)("button",{type:"button",className:l().panelErrorBtn,onClick:a,children:n})})]})}function u({message:e,onDismiss:t}){return(0,r.jsxs)("div",{className:l().pageError,role:"alert",children:[(0,r.jsx)("span",{children:e}),(0,r.jsx)("button",{type:"button",className:l().pageErrorDismiss,"aria-label":"Dismiss error",onClick:t,children:"\xd7"})]})}function h({loading:e,loadingMessage:t="Loadingâ¦",children:a}){let[i,s]=(0,n.useState)(!!e),o=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(e){o.current=Date.now(),s(!0);return}if(null==o.current)return void s(!1);let t=Math.max(0,1200-(Date.now()-o.current)),a=window.setTimeout(()=>{s(!1),o.current=null},t);return()=>window.clearTimeout(a)},[e]),(0,r.jsxs)("div",{className:l().viewBody,children:[i&&(0,r.jsxs)("div",{className:l().loadingOverlay,role:"status","aria-live":"polite",children:[(0,r.jsx)("span",{className:l().loadingOverlayText,children:t}),(0,r.jsx)("div",{className:l().loadingOverlayTrack,"aria-hidden":"true",children:(0,r.jsx)("div",{className:l().loadingOverlayTrackActive})})]}),a]})}},84524:(e,t,a)=>{"use strict";a.d(t,{DS:()=>n,Su:()=>l,UV:()=>r,eH:()=>i,gr:()=>o,tO:()=>s});let r=2,n=10,i=50;function l(e){return[...e].sort((e,t)=>new Date(t.updated_at).getTime()-new Date(e.updated_at).getTime())}function s(e,t){let a=new Map(e.map(e=>[e.reply_id,e]));for(let e of t)a.set(e.reply_id,e);return l(Array.from(a.values()))}function o(e,t){return Math.min(n,Math.max(0,t-e))}},84952:(e,t,a)=>{"use strict";a.d(t,{p:()=>m});var r=a(37876),n=a(14232),i=a(78815),l=a(12499),s=a(68957),o=a(90055),c=a.n(o);let d=({layers:e,statusDate:t=null,showCoachDismiss:a=!1,onCoachDismiss:n})=>{let o=function(e){if(!e?.trim())return null;try{let[t,a,r]=e.slice(0,10).split("-").map(Number);if(!t||!a||!r)return null;return new Date(t,a-1,r).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return null}}(t),d=[...e].sort((e,t)=>e.layer_index-t.layer_index);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:c().compareLegendSection,children:[(0,r.jsx)("p",{className:c().legendSectionTitle,children:"Layers \xb7 One bar per schedule"}),(0,r.jsx)("ul",{className:c().legendList,children:d.map(e=>{let t="primary"===e.layer_role,a=(0,l.ig)(e);return(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:c().compareLegendBar,style:{background:s.lR[e.layer_role]},"aria-hidden":"true"}),(0,r.jsxs)("span",{className:c().compareLegendLabel,children:[(0,i.jX)(e.layer_role)," \xb7 ",a,t?" (top bar)":""]})]},e.layer_role)})})]}),(0,r.jsxs)("div",{className:c().compareLegendSection,children:[(0,r.jsx)("p",{className:c().legendSectionTitle,children:"Markers"}),(0,r.jsxs)("ul",{className:c().legendList,children:[(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:c().compareLegendMilestone,"aria-hidden":"true",children:(0,r.jsx)("span",{className:c().compareLegendMilestoneMark})}),(0,r.jsx)("span",{className:c().compareLegendLabel,children:"Milestone (one per layer)"})]}),(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:c().legendDataDate,"aria-hidden":"true"}),(0,r.jsx)("span",{className:c().compareLegendLabel,children:o?`Data date (${o})`:"Data date"})]}),(0,r.jsxs)("li",{className:`${c().legendItem} ${c().compareLegendItemMultiline}`,children:[(0,r.jsx)("span",{className:c().compareLegendBadgeSlot,"aria-hidden":"true",children:(0,r.jsx)("span",{className:c().compareLegendBadge,children:"C1 ONLY"})}),(0,r.jsx)("span",{className:c().compareLegendLabel,children:"In that comparison only, removed from the primary"})]}),(0,r.jsxs)("li",{className:`${c().legendItem} ${c().compareLegendItemMultiline}`,children:[(0,r.jsx)("span",{className:c().compareLegendTrace,"aria-hidden":"true"}),(0,r.jsx)("span",{className:c().compareLegendLabel,children:"Trace: predecessors (green) / successors (yellow)"})]})]})]}),(0,r.jsx)("p",{className:c().compareLegendFootnote,children:"Compare is read-only. To edit or comment, open a single revision from Upload, View, & Health Check."}),a?(0,r.jsx)("div",{className:c().legendCoachActions,children:(0,r.jsx)("button",{type:"button",className:c().legendCoachDismiss,onClick:n,children:"Got it"})}):null]})},u=[{swatchClass:c().legendSwatchCritical,label:"Critical path (0 or negative float)"},{swatchClass:c().legendSwatchAdjacent,label:"At-risk \xb7 ⤠5d total float"},{swatchClass:c().legendSwatchInProgress,label:"In Progress"},{swatchClass:c().legendSwatchBacklog,label:"Not Started"},{swatchClass:c().legendSwatchDone,label:"Completed"}],h=({statusDate:e=null,showCoachDismiss:t=!1,onCoachDismiss:a})=>{let n=function(e){if(!e?.trim())return null;try{let[t,a,r]=e.slice(0,10).split("-").map(Number);if(!t||!a||!r)return null;return new Date(t,a-1,r).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return null}}(e);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:c().legendSectionTitle,children:"Bar colors"}),(0,r.jsx)("ul",{className:c().legendList,children:u.map(e=>(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:`${c().legendSwatch} ${e.swatchClass}`,"aria-hidden":"true"}),(0,r.jsx)("span",{className:c().legendLabel,children:e.label})]},e.label))}),(0,r.jsx)("p",{className:c().legendSectionTitle,children:"Markers"}),(0,r.jsxs)("ul",{className:c().legendList,children:[(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:c().legendMilestone,"aria-hidden":"true"}),(0,r.jsx)("span",{className:c().legendLabel,children:"Milestone"})]}),(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:c().legendDataDate,"aria-hidden":"true"}),(0,r.jsx)("span",{className:c().legendLabel,children:n?`Data date (${n})`:"Data date"})]}),(0,r.jsxs)("li",{className:c().legendItem,children:[(0,r.jsx)("span",{className:c().legendBadgeSample,"aria-hidden":"true",children:(0,r.jsx)("span",{className:c().cpBadge,children:"CP"})}),(0,r.jsx)("span",{className:c().legendLabel,children:"Critical path badge (Crit column)"})]})]}),t?(0,r.jsx)("div",{className:c().legendCoachActions,children:(0,r.jsx)("button",{type:"button",className:c().legendCoachDismiss,onClick:a,children:"Got it"})}):null]})};function p(){return(0,r.jsxs)("svg",{width:"16",height:"14",viewBox:"0 0 16 14","aria-hidden":"true",focusable:"false",children:[(0,r.jsx)("rect",{x:"0",y:"0.5",width:"3.5",height:"3.5",rx:"0.8",fill:"#ea580c"}),(0,r.jsx)("rect",{x:"5.5",y:"1.5",width:"10",height:"1.5",rx:"0.75",fill:"#5e6666"}),(0,r.jsx)("rect",{x:"0",y:"5.25",width:"3.5",height:"3.5",rx:"0.8",fill:"#087e83"}),(0,r.jsx)("rect",{x:"5.5",y:"6.25",width:"10",height:"1.5",rx:"0.75",fill:"#5e6666"}),(0,r.jsx)("rect",{x:"0",y:"10",width:"3.5",height:"3.5",rx:"0.8",fill:"#b91c1c"}),(0,r.jsx)("rect",{x:"5.5",y:"11",width:"10",height:"1.5",rx:"0.75",fill:"#5e6666"})]})}let m=({statusDate:e=null,coachMarkOpen:t=!1,onCoachDismiss:a,bindTip:i,compareLayers:l})=>{let s=!!(l&&l.length>
30),[o,u]=(0,n.useState)(!1),m=(0,n.useRef)(null),_=o||t,f=i?.("Legend")??{title:"Legend"};return(0,n.useEffect)(()=>{t&&u(!1)},[t]),(0,n.useEffect)(()=>{if(!_)return;let e=e=>{m.current?.contains(e.target)||(t?a?.():u(!1))},r=e=>{"Escape"===e.key&&(t?a?.():u(!1))};return document.addEventListener("mousedown",e),document.addEventListener("keydown",r),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",r)}},[t,a,_]),(0,r.jsxs)("div",{className:c().legendWrap,ref:m,children:[(0,r.jsx)("button",{type:"button",className:`${c().toolbarSquareIconBtn}${_?` ${c().toolbarSquareIconBtnActive}`:""}`,"aria-label":"Legend","aria-expanded":_,"aria-haspopup":"dialog",...f,onClick:()=>{t?a?.():u(e=>!e)},children:(0,r.jsx)(p,{})}),_?(0,r.jsx)("div",{className:`${c().legendPopover}${s?` ${c().legendPopoverCompare}`:""}`,role:"dialog","aria-label":"Legend",children:s&&l?(0,r.jsx)(d,{layers:l,statusDate:e,showCoachDismiss:t,onCoachDismiss:a}):(0,r.jsx)(h,{statusDate:e,showCoachDismiss:t,onCoachDismiss:a})}):null]})}},85037:(e,t,a)=>{"use strict";a.d(t,{F:()=>n});var r=a(14232);function n(){let e=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let t=e.current;if(!t)return;let a=!1,r=0,n=0,i=0,l=0,s=e=>e instanceof Element&&!!(e.closest("[data-gantt-comment-zone]")||e.closest("[data-gantt-column-header]")||e.closest("[data-gantt-activity-context-zone]")),o=e=>{s(e.target)||e.preventDefault()},c=e=>{2!==e.button||s(e.target)||(e.preventDefault(),a=!0,r=e.clientX,n=e.clientY,i=t.scrollLeft,l=t.scrollTop,t.classList.add("gantt-panning"))},d=e=>{a&&(e.preventDefault(),t.scrollLeft=i-(e.clientX-r),t.scrollTop=l-(e.clientY-n))},u=e=>{a&&2===e.button&&(a=!1,t.classList.remove("gantt-panning"))};return t.addEventListener("contextmenu",o),t.addEventListener("mousedown",c),document.addEventListener("mousemove",d),document.addEventListener("mouseup",u),()=>{t.removeEventListener("contextmenu",o),t.removeEventListener("mousedown",c),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",u),t.classList.remove("gantt-panning")}},[]),e}},85669:(e,t,a)=>{"use strict";a.d(t,{_:()=>D});var r=a(37876),n=a(14232),i=a(42959),l=a(13169),s=a(28595),o=a.n(s);let c=({notes:e,variant:t="dark"})=>{let[a,i]=(0,n.useState)(!1),l=(0,n.useCallback)(async()=>{try{await navigator.clipboard.writeText(e),i(!0),window.setTimeout(()=>i(!1),2e3)}catch{i(!1)}},[e]);return e.trim()?(0,r.jsxs)("details",{className:`${o().wrap} ${"light"===t?o().wrapLight:""}`,children:[(0,r.jsx)("summary",{className:o().summary,children:"Debug notes (temporary â copy & paste to share)"}),(0,r.jsx)("div",{className:o().toolbar,children:(0,r.jsx)("button",{type:"button",className:o().copyBtn,onClick:()=>void l(),children:a?"Copied":"Copy debug notes"})}),(0,r.jsx)("textarea",{className:o().textarea,readOnly:!0,value:e,"aria-label":"Schedule health debug notes",onFocus:e=>e.target.select()})]}):null};var d=a(45634),u=a.n(d);let h="Analyzing schedule healthâ¦",p=({message:e=h,variant:t="dark",prominent:a=!1,compact:i=!1})=>{let l="light"===t,s=function(){let[e,t]=(0,n.useState)(0);return(0,n.useEffect)(()=>{let e=Date.now();t(0);let a=window.setInterval(()=>{t(Math.max(0,Math.floor((Date.now()-e)/1e3)))},250);return()=>window.clearInterval(a)},[]),e}();return(0,r.jsxs)("div",{className:`${u().wrap} ${a?u().wrapProminent:""} ${i?u().wrapCompact:""}`,role:"status","aria-live":"polite","aria-busy":"true","data-variant":l?"light":"dark",children:[(0,r.jsx)("div",{className:u().badgeRow,children:(0,r.jsxs)("span",{className:`${u().badge} ${l?u().badgeLight:""}`,children:["Computing \xb7 ",function(e){if(e<1)return"<1s";if(e<60)return`${e}s`;let t=Math.floor(e/60),a=e%60;return a>0?`${t}m ${a}s`:`${t}m`}(s)]})}),(0,r.jsx)("p",{className:u().message,children:e}),(0,r.jsx)("div",{className:u().track,children:(0,r.jsx)("div",{className:u().bar})})]})};var m=a(79103),_=a(94478),f=a.n(_);function v(e){if(e<1)return"<1s";if(e<60)return`${e}s`;let t=Math.floor(e/60),a=e%60;return a>0?`${t}m ${a}s`:`${t}m`}let y=({busy:e,cacheHit:t,hasResult:a,resultsStale:n=!1,analysisSource:i,elapsedSec:l,jobStatus:s,variant:o="dark"})=>{let c="light"===o,d="session"===i?"Gantt session cache":"Upload page cache";return e?(0,r.jsxs)("div",{className:f().wrap,role:"status","aria-live":"polite","aria-busy":"true",children:[(0,r.jsx)("div",{className:f().row,children:(0,r.jsx)("span",{className:`${f().badge} ${f().badgeComputing} ${c?f().badgeLight:""}`,children:"Analyzingâ¦"})}),(0,r.jsx)("p",{className:`${f().detail} ${c?f().detailLight:""}`,children:"queued"===s||"running"===s?"Schedule health analysis is in progress.":"Preparing schedule health analysis."})]}):a?t?(0,r.jsxs)("div",{className:f().wrap,role:"status","aria-live":"polite",children:[(0,r.jsx)("div",{className:f().row,children:(0,r.jsxs)("span",{className:`${f().badge} ${f().badgeCached} ${c?f().badgeLight:""}`,children:["Cached \xb7 ",v(l)]})}),(0,r.jsx)("p",{className:`${f().detail} ${c?f().detailLight:""}`,children:n?"Based on last analysis â pending schedule edits are not included.":`Loaded from ${d}. No orchestrator run.`})]}):(0,r.jsxs)("div",{className:f().wrap,role:"status","aria-live":"polite",children:[(0,r.jsx)("div",{className:f().row,children:(0,r.jsxs)("span",{className:`${f().badge} ${f().badgeFresh} ${c?f().badgeLight:""}`,children:["Freshly computed \xb7 ",v(l)]})}),(0,r.jsx)("p",{className:`${f().detail} ${c?f().detailLight:""}`,children:n?"Based on last analysis â pending schedule edits are not included.":`Full orchestrator run (${d}).${"session"===i?" Upload-page results do not apply here â repeat in this Gantt session should be faster.":" Repeat analyze on this revision should be faster."}`})]}):null};function g(){return new Date().toISOString()}function b(e){let t=e.result?.modules;return{status:e.status,cache_hit:e.cache_hit,job_id:e.job_id??null,upload_id:e.upload_id,profile_id:e.profile_id,usd_content_hash:e.usd_content_hash??null,module_count:Array.isArray(t)?t.length:0,error:e.error??null,delivery:e.cache_hit&&"completed"===e.status?"sync_cache_hit":e.job_id&&("queued"===e.status||"running"===e.status)?"async_background_job":"completed"===e.status?"sync_fresh_compute":e.status}}function w(e,t,a){let r=["=== Schedule Health Debug Notes (temporary) ===",`generated_at: ${g()}`,"","--- context ---",JSON.stringify(e,null,2),"","--- timeline ---"];for(let e of t)r.push(`[${e.at}] ${e.phase}`),r.push(JSON.stringify(e.detail,null,2)),r.push("");return a&&Object.keys(a).length>0&&(r.push("--- summary ---"),r.push(JSON.stringify(a,null,2)),r.push("")),r.push("=== end ==="),r.join("\n")}var x=a(68299),S=a(19427);function C(e){if(!e.errors?.length)return null;let t=e.errors[0];return"object"==typeof t&&null!==t&&"message"in t?String(t.message??""):String(t)}function j(e){let t=e??[];return{module_statuses:t.map(e=>({type:e.moduleType,status:e.status,renderable:(0,S.oQ)(e)})),renderable_count:t.filter(e=>(0,S.oQ)(e)).length,failed_messages:t.filter(e=>"failed"===e.status).map(e=>
3C(e)).filter(Boolean)}}var k=a(20212);let N=k.f,L=k.u,D=({mode:e,variant:t="default",autoAnalyze:a=!1,projectId:s,uploadId:o,sessionId:d,revisionIds:u=[],revisionLabels:h={},activeRevisionId:_,onActiveRevisionChange:f,hideRevisionPicker:v=!1,hasUnsavedDrafts:k=!1,pendingRevisionEdits:D=0,draftRevisionKey:R="",scheduleStatusDate:M,onPrepareAnalyze:A,onActivityClick:P,onClose:$,overlayChrome:T})=>{let[E,I]=(0,n.useState)("loading"),B=(0,n.useRef)(!1),G=(0,n.useRef)(null),F=(0,n.useRef)(""),[O,H]=(0,n.useState)(o??u[0]??""),V=_??O,W=function(e){switch(e){case"upload-panel":return"upload";case"popover":return"popover";case"compare":return"compare";case"standalone":return"window";default:return"tab"}}(e),z="compare"===e?V||o||"":o??V??"";(0,n.useEffect)(()=>{"compare"!==e&&o&&H(o)},[e,o]),(0,n.useEffect)(()=>{null==_&&"compare"===e&&u.length>0&&H(e=>u.includes(e)?e:u[0])},[_,e,u]),(0,n.useEffect)(()=>{let e=!1;return(0,i.BS)(s).then(t=>{e||I(t.enabled?"enabled":"disabled")}).catch(()=>{e||I("disabled")}),()=>{e=!0}},[s]);let X=function({projectId:e,uploadId:t,sessionId:a,surfaceKey:r,enabled:l=!0,hasUnsavedDrafts:s=!1,draftRevisionKey:o="",onPrepareAnalyze:c}
3){let[d,u]=(0,n.useState)(!1),[h,p]=(0,n.useState)(null),[m,_]=(0,n.useState)(null),[f,v]=(0,n.useState)(0),[y,x]=(0,n.useState)([]),[k,D]=(0,n.useState)(""),[R,M]=(0,n.useState)(""),A=(0,n.useRef)(null),P=(0,n.useRef)(!1),$=(0,n.useRef)(!1),T=(0,n.useRef)(null),E=(0,n.useRef)(0),I=(0,n.useRef)(null),B=(0,n.useRef)(o),G=(0,n.useRef)(null),F=(0,n.useRef)(0),O=(0,n.useRef)(m);O.current=m,B.current=o;let H=`${a??t??""}`,V=(0,n.useCallback)(()=>`${H}::${B.current}`,[H]),W=(0,n.useCallback)(()=>{null!=A.current&&(window.clearInterval(A.current),A.current=null)},[]),z=(0,n.useCallback)(e=>e===E.current,[]),X=(0,n.useCallback)(e=>{z(e)&&(P.current=!0,I.current=Date.now(),v(0))},[z]),U=(0,n.useCallback)(e=>{z(e)&&(P.current=!1,T.current=null,u(!1),null!=I.current&&(v(Math.max(0,Math.floor((Date.now()-I.current)/1e3))),I.current=null))},[z]),Y=(0,n.useCallback)(()=>{E.current+=1,P.current=!1,T.current=null,W(),u(!1),I.current=null},[W]);(0,n.useEffect)(()=>{Y(),p(null),_(null),v(0),x([]),D(""),M("")},[H,r,Y]),(0,n.useEffect)(()=>()=>{W()},[W]);let K=(0,n.useCallback)((e,t,a)=>{if(!z(a)||t!==T.current)return;if("failed"===e.status&&e.error?.includes("superseded")&&O.current?.status==="completed"&&(O.current.result?.modules?.length??0)>0)return void p(null);if("completed"===e.status&&G.current&&e.usd_content_hash&&e.usd_content_hash!==G.current)return;_(e);let r=function(e){if(e.error)return e.error;let t=e.result?.modules??[];if("completed"!==e.status||0===t.length||t.filter(e=>(0,S.oQ)(e)).length>0)return null;let a=t.map(e=>C(e)).find(Boolean);return a||(t.filter(e=>"skipped"===e.status||"insufficient_data"===e.status).length===t.length?"All schedule health modules were skipped for this edited schedule.":"Analysis completed but returned no usable score or DCMA modules.")}(e);"failed"===e.status?p(r??e.error??"Schedule health analyze failed"):"completed"===e.status&&(p(r),M(t.includes("::")?t.split("::").slice(1).join("::"):""))},[z]),q=(0,n.useCallback)(async(t,a,r,n)=>{W();let l=0;F.current=0;let s=async()=>{if(!z(r)||a!==T.current)return W(),n("poll_aborted_target_changed",{job_id:t}),!0;F.current=l+=1;try{let s=await (0,i.Di)(e,t,{includeResult:!1});if(n(`poll_${l}`,{...b(s),poll_count:l}),"completed"===s.status||"failed"===s.status){let s=await (0,i.j9)(e,t);return n(`poll_${l}_result`,{...b(s),...j(s.result?.modules)}),K(s,a,r),W(),U(r),!0}}catch(e){return W(),n("poll_error",{job_id:t,message:e instanceof Error?e.message:"Failed to poll analyze job"}),z(r)&&a===T.current&&(U(r),p(e instanceof Error?e.message:"Failed to poll analyze job")),!0}return!1};await s()||await new Promise(e=>{let i=1;A.current=window.setInterval(async()=>{i+=1;let l=await s();(l||i>=L)&&(!l&&i>=L&&(n("poll_exhausted",{job_id:t,max_polls:L}),z(r)&&a===T.current&&(U(r),p("Schedule health analyze timed out while waiting for results"))),W(),e())},N)})},[K,W,U,z,e]),Q=(0,n.useCallback)(async(n=!1)=>{let s,o,d;if(!l||!t&&!a)return;let h=V();if(!n&&!c&&P.current&&T.current===h)return;let m=++E.current,f=a?"session":"upload",v={projectId:e,uploadId:t,sessionId:a,surfaceKey:r,analysisSource:f,refresh:n},{events:y,push:S}=(s=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,o=[],(d=(e,t={})=>{o.push({at:g(),phase:e,detail:t})})("run_started",{runId:s,...v}),{runId:s,events:o,push:d});x([...y]),u(!0),p(null),_(null),G.current=null,F.current=0,X(m);let C="";try{if(c){S("prepare_analyze",{flushed_local_drafts:!!a}),x([...y]),$.current=!0;try{if(await c(),!z(m))return;T.current=C=V(),S("analyze_target_locked",{target:C}),x([...y])}catch(e){throw S("prepare_analyze_error",{message:e instanceof Error?e.message:"Failed to flush Gantt edits before analyze"}),x([...y]),e}finally{$.current=!1}}if(!z(m))return;C||(T.current=C=V(),S("analyze_target_locked",{target:C}),x([...y]));let l=a?`POST /sessions/${a}/analyze`:`POST /uploads/${t}/analyze`;S("request_sent",{request_path:l,body:{surface_key:r,refresh:n,wait:!1}});let s=a?await (0,i.Hb)(e,a,{surface_key:r,refresh:n,wait:!1}):await (0,i.IW)(e,t,{surface_key:r,refresh:n,wait:!1});if(S("initial_response",{...b(s),...j(s.result?.modules)}),x([...y]),G.current=s.usd_content_hash??null,!z(m))return;if(C!==T.current){if(S("run_aborted_target_changed",{target:C,inflight:T.current}),D(w(v,y)),s.job_id&&("queued"===s.status||"running"===s.status)){let e=V();T.current=e,S("analyze_target_recovered",{target:e,job_id:s.job_id}),x([...y]),await q(s.job_id,e,m,S);return}U(m);return}if(K(s,C,m),s.job_id&&("queued"===s.status||"running"===s.status)){S("async_job_started",{job_id:s.job_id,poll_interval_ms:N}),x([...y]),await q(s.job_id,C,m,S);let e=[...y].reverse().find(e=>e.phase.startsWith("poll_")),t=Date.parse(y[0]?.at??new Date().toISOString());S("run_finished",{elapsed_sec:Math.max(0,Math.floor((Date.now()-t)/1e3)),initial:b(s),final_poll:e?.detail??null,poll_count:F.current}),x([...y]),D(w(v,y,{delivery_path:"async_background_job_then_poll",poll_count:F.current}));return}if(!z(m))return;let o=null!=I.current?Math.max(0,Math.floor((Date.now()-I.current)/1e3)):0;U(m),S("run_finished",{elapsed_sec:o,delivery_path:s.cache_hit&&"completed"===s.status?"sync_cache_hit_no_job":"sync_
3inline_compute_no_job",response:b(s)}),x([...y]),D(w(v,y))}catch(e){if(S("request_error",{message:e instanceof Error?e.message:"Schedule health analyze failed"}),x([...y]),D(w(v,y)),!z(m))return;U(m),p(e instanceof Error?e.message:"Schedule health analyze failed")}finally{$.current=!1}},[K,X,V,l,U,z,c,q,e,a,r,t]),Z=m?.result??null,J=Z?.modules??[],ee=m?.status==="completed"&&J.length>0,et=m?.status??null,ea=ee&&""!==R&&R!==o;return{isLoading:d,isAnalyzing:d,error:h,response:m,modules:J,cacheHit:m?.cache_hit??!1,hasResult:ee,resultsOutOfDate:ea,elapsedSec:f,jobStatus:et,analysisSource:a?"session":"upload",hasUnsavedDrafts:s,runAnalyze:Q,debugNotesText:k,debugEvents:y}}({projectId:s,uploadId:d?void 0:z,sessionId:d,surfaceKey:W,enabled:"enabled"===E,hasUnsavedDrafts:k,draftRevisionKey:R,onPrepareAnalyze:A}),U=[s,d??z,W].join("|");(0,n.useEffect)(()=>{B.current=!1,F.current=""},[U]),(0,n.useEffect)(()=>{if("upload-panel"!==e||"inline-panel"!==t||!X.hasResult||X.isLoading)return;let a=`${z}|${X.modules.length}`;if(F.current===a)return;let r=window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{G.current&&(F.current=a,(0,x.c)(G.current))})});return()=>window.cancelAnimationFrame(r)},[X.hasResult,X.isLoading,X.modules.length,z,e,t]),(0,n.useEffect)(()=>{a&&"enabled"===E&&(d||z)&&(B.current||(B.current=!0,X.runAnalyze(!1)))},[a,U,E,d,z,X.runAnalyze]);let Y=(0,n.useMemo)(()=>"gantt-overlay"===t||"inline-panel"===t?{border:"none",borderRadius:0,padding:0,background:"transparent",maxHeight:"none",overflow:"visible",minHeight:0,display:"flex",flexDirection:"column",flex:1}:"popover"===e?{width:"min(420px, 92vw)",maxHeight:"70vh",overflow:"auto",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"8px",boxShadow:"0 8px 24px rgba(15, 23, 42, 0.12)",padding:"1rem"}:"tab"===e||"compare"===e?{border:"none",borderRadius:"8px",padding:0,background:"transparent",maxHeight:"min(42vh, 520px)",overflowY:"auto",overflowX:"hidden",minHeight:0}:{border:"upload-panel"===e?"1px solid #e2e8f0":"none",borderRadius:"8px",padding:"upload-panel"===e?"0.75rem":0,background:"upload-panel"===e?"#f8fafc":"transparent"},[e,t]),K=X.isLoading,q="gantt-overlay"===t,Q="inline-panel"===t,Z="light",J=function(){if(window.location.search.includes("healthDebug=1"))return!0;try{return"1"===window.localStorage.getItem("scheduleHealthDebug")}catch{return!1}}(),ee=a&&(q||Q||"standalone"===e||"upload-panel"===e),et=!ee,ea=(X.resultsOutOfDate||k||D>0)&&X.hasResult&&!K,er=(e,t,a)=>T?(0,r.jsxs)("div",{title:"Drag header to move",...T.dragProps,style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"0.75rem",padding:"0.75rem 0.85rem",borderBottom:"1px solid rgba(255, 255, 255, 0.08)",background:"#1a2b2b",color:"#fff",flexShrink:0,cursor:"grab",touchAction:"none",userSelect:"none"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.2rem",minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.45rem"},children:[(0,r.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"#fff"},children:T.title}),e?(0,r.jsx)("span",{style:{display:"inline-flex",alignItems:"center",height:20,padding:"0 0.45rem",border:"1px solid rgba(255,255,255,0.28)",borderRadius:999,background:"rgba(255,255,255,0.08)",color:"rgba(255,255,255,0.92)",fontSize:9,fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",whiteSpace:"nowrap"},children:e}):null]}),(0,r.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"rgba(255,255,255,0.7)"},children:t})]}),(0,r.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:"0.4rem",flexShrink:0},children:[a?(0,r.jsx)("button",{type:"button",onClick:()=>X.runAnalyze(!0),disabled:K,style:{display:"inline-flex",alignItems:"center",gap:"0.3rem",height:28,padding:"0 0.6rem",border:"1px solid rgba(255,255,255,0.45)",borderRadius:6,background:"transparent",color:"#fff",fontSize:12,fontWeight:600,cursor:K?"wait":"pointer",whiteSpace:"nowrap",opacity:K?.55:1},children:"Refresh Analysis"}):null,T.trailingActions]})]}):null;if("loading"===E)return(0,r.jsxs)("div",{style:Y,children:[er("Analyzing","Preparing schedule health analysis.",!1),(0,r.jsx)("div",{style:{padding:"1rem 1.1rem",background:"#fff"},children:(0,r.jsx)(p,{variant:"light",prominent:ee})})]});if("disabled"===E)return(0,r.jsxs)("div",{style:Y,children:[er(null,"Schedule health is unavailable.",!1),(0,r.jsx)("p",{style:{color:"#5e6666",margin:0,padding:"1rem 1.1rem",fontSize:"0.8125rem"},children:"Schedule health analysis is not enabled for this environment."})]});let en=!K&&!X.hasResult&&!X.error&&ee,ei=k||D>0,el=k?(0,r.jsxs)("p",{style:{color:"#c05621",marginTop:0,marginBottom:K?"0.65rem":void 0,fontSize:"0.8125rem"},children:["Local Gantt edits will be synced to your session before analysis runs. Use ",(0,r.jsx)("strong",{children:"Save Revision"})," to persist to the catalog."]}):D>0?(0,r.jsxs)("p",{style:{color:"#c05621",marginTop:0,marginBottom:K?"0.65rem":void 0,fontSize:"0.8125rem"},children:[D," session edit",1===D?"":"s"," ","not saved to the catalog â analysis uses the live session; click"," ",(0,r.jsx)("strong",{children:"Save Revision"})," to persist."]}):null,es=K?"Analyzing":ea?"Needs refresh":X.hasResult?"Up to date":null,eo=K?"Running analysisâ¦":ea?"Scores reflect the last analysis â refresh to include pending edits.":X.hasResult?"Checked today.":"Open Health Check to analyze this schedule.";return(0,r.jsxs)("div",{style:Y,children:[er(es,eo,!!ee),q||a&&("standalone"===e||"upload-panel"===e)?null:(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"0.75rem",marginBottom:"0.75rem"},children:[(0,r.jsx)("h3",{style:{margin:0,fontSize:"1rem"},children:"Schedule Health & DCMA"}),$?(0,r.jsx)("button",{type:"button",onClick:$,style:{border:"none",background:"none"},children:"Close"}):null]}),"compare"!==e||!(u.length>0)||v||q?null:(0,r.jsx)("div",{style:{marginBottom:"0.75rem"},children:(0,r.jsx)(l.F,{revisions:u.map(e=>({uploadId:e,label:h[e]??e.slice(0,8),layerRole:"baseline_1"})),activeRevisionId:V,onSelect:f??H,variant:"inline"})}),(0,r.jsxs)("div",{style:T?{padding:"1rem 1.1rem",flex:1,minHeight:0,overflow:"auto",background:"#fff"}:void 0,children:[el,K?(0,r.jsx)(p,{variant:Z,prominent:ee&&!ei,compact:ei,message:ei?"Calculating schedule health & DCMA for your pending editsâ¦":void 0}):(0,r.jsxs)(r.Fragment,{children:[et?(0,r.jsx)(y,{busy:!1,cacheHit:X.cacheHit,hasResult:X.hasResult,resultsStale:ea,analysisSource:X.analysisSource,elapsedSec:X.elapsedSec,jobStatus:X.jobStatus,variant:Z}):ea?(0,r.jsx)("p",{style:{color:q?"#a8a8a8":"#64748b",marginTop:0,marginBottom:"0.65rem",fontSize:q?"0.75rem":void 0},children:"Scores reflect the last analysis â click refresh to include pending edits."}):null,ee?T?null:(0,r.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:"0.5rem"},children:(0,r.jsx)("button",{type:"button",onClick:()=>X.runAnalyze(!0),disabled:K,style:{background:"transparent",border:"none",color:q||Q?"#a8a8a8":"#64748b",fontSize:"0.75rem",cursor:"pointer",textDecoration:"underline"},children:X.resultsOutOfDate||k||D>0?"Refresh analysis (includes pending edits)":"Refresh analysis (recompute)"})}):(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.75rem",flexWrap:"wrap"},children:(0,r.jsx)("button",{type:"button",onClick:()=>X.runAnalyze(!1),disabled:K,style:{background:"#2563eb",color:"#fff",border:"none",borderRadius:"6px",padding:"0.45rem 0.85rem",cursor:K?"wait":"pointer"},children:"Analyze schedule"})}),X.error?(0,r.jsx)("p",{style:{color:"#f87171",margin:q?"0 0 0.5rem":void 0},children:X.error}):null,en?(0,r.jsxs)("p",{style:{color:q||Q?"#a8a8a8":"#64748b",margin:"0 0 0.65rem",fontSize:"0.8125rem"},children:["Analysis did not return results yet. Try"," ",(0,r.jsx)("button",{type:"button",onClick:()=>X.runAnalyze(!0),style:{background:"transparent",border:"none",padding:0,color:"inherit",font:"inherit",curs
3or:"pointer",textDecoration:"underline"},children:"refresh analysis"}),"."]}):null,(0,r.jsx)(m.O,{modules:X.modules,loading:!1,onActivityClick:P,hideEmptyMessage:en,scoreSummaryRef:G})]}),J?(0,r.jsx)(c,{notes:X.debugNotesText,variant:Z}):null]})]})}},85875:(e,t,a)=>{"use strict";a.d(t,{H:()=>s});var r=a(37876);a(14232);var n=a(90055),i=a.n(n),l=a(4519);let s=({value:e,onChange:t})=>(0,r.jsxs)("label",{className:i().toolbarCheck,children:[(0,r.jsx)("span",{children:"Bar dates"}),(0,r.jsx)("select",{className:i().toolbarSelect,value:e,"aria-label":"Bar dates",onChange:e=>{let a=e.target.value;(0,l.D5)(a)?t(a):t(l.ye)},children:l.f2.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))})]})},86264:(e,t,a)=>{"use strict";a.d(t,{e:()=>l});var r=a(14232),n=a(42959),i=a(42003);function l(e,t){let[a,l]=(0,r.useState)(()=>(0,i.qN)(e)?.items??[]),[s,o]=(0,r.useState)(()=>(0,i.qN)(e)?.quarantined_count??0),[c,d]=(0,r.useState)(()=>!(0,i.qN)(e)),u=(0,r.useRef)(a);u.current=a;let h=(0,r.useRef)(t?.onError);h.current=t?.onError;let p=(0,r.useRef)(t?.onItems);p.current=t?.onItems;let m=(0,r.useCallback)(async t=>{(0,i.qN)(e)||0!==u.current.length||d(!0),h.current?.("");try{let a=await (0,n.zF)(e,100,0,t),r=a.items||[];return l(r),o(a.quarantined_count??0),p.current?.(r),r}catch(t){let e=t instanceof Error?t.message:"Failed to load revisions";return h.current?.(e),[]}finally{d(!1)}},[e]);return(0,r.useEffect)(()=>{let t=(0,i.qN)(e);if(t){l(t.items||[]),o(t.quarantined_count??0),d(!1);return}l([]),o(0),d(!0)},[e]),(0,r.useEffect)(()=>{m()},[m,t?.refreshKey]),{catalog:a,setCatalog:l,catalogLoading:c,quarantinedCount:s,loadCatalog:m}}},87975:(e,t,a)=>{"use strict";a.d(t,{QF:()=>s,RA:()=>c,eM:()=>l});var r=a(79813),n=a(54642),i=a(98249);async function l(e){let t=e.trim();if(!t)return!1;try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(t),!0}catch{}try{let e=document.createElement("textarea");e.value=t,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",document.body.appendChild(e),e.select();let a=document.execCommand("copy");return document.body.removeChild(e),a}catch{return!1}}function s(e){let t=i.qi[e.p6_status_code]||e.status||"â",a=(0,i.D6)(e.forecast_start_date),r=(0,i.D6)(e.forecast_finish_date),n=null==e.total_float_days?"â":`${e.total_float_days}d`;return[`${e.activity_id} â ${e.activity_description}`,t,`Forecast ${a}â${r}`,`Float ${n}`].join(" \xb7 ")}let o=["id","desc","status","pct","start","finish","totalFloat"];function c(e,t=o,a={}){return(t.length>0?t:o).map(t=>{var l;return l=function(e,t,a={}){let l=i.qi[e.p6_status_code]||e.status||"";switch(t){case"id":return e.activity_id;case"desc":return a.descText??e.activity_description??"";case"type":return(0,i.NP)(e.activity_type);case"status":return l;case"pct":return`${Math.round((e.percent_complete??0)*100)}%`;case"start":return(0,i.D6)(a.start??e.forecast_start_date);case"finish":return(0,i.D6)(a.finish??e.forecast_finish_date);case"actualStart":return(0,i.D6)(e.actual_start_date);case"actualFinish":return(0,i.D6)(e.actual_finish_date);case"totalFloat":return(0,i.D2)(e.total_float_days);case"critical":return(0,i.Z)(e.is_critical);case"primaryResource":return(0,r.eo)(e);default:{let i=a.activityCodeTypeNameByColumn?.[t]??(0,n.pc)(t);return i?(0,r.s4)(e,i):""}}}(e,t,a),/[\t\n\r"]/.test(l)?`"${l.replace(/"/g,'""')}"`:l}).join(" ")}},88656:(e,t,a)=>{"use strict";a.d(t,{I:()=>n});var r=a(14232);function n(e,t){let a=(0,r.useMemo)(()=>e.map(e=>e.layer_role),[e]),[n,i]=(0,r.useState)(()=>new Set(a));(0,r.useEffect)(()=>{i(new Set(a))},[t,a]);let l=(0,r.useMemo)(()=>e.filter(e=>n.has(e.layer_role)),[e,n]),s=n.size===e.length;return{visibleLayers:l,visibleLayerRoles:n,allLayersVisible:s,setLayerVisible:(0,r.useCallback)((e,t)=>{"primary"!==e&&i(a=>{let r=new Set(a);return t?r.add(e):r.delete(e),r})},[]),showAllLayers:(0,r.useCallback)(()=>{i(new Set(a))},[a])}}},90055:e=>{e.exports={wrap:"ScheduleGantt_wrap__UqzDj",toolbar:"ScheduleGantt_toolbar__Lm4r8",toolbarControls:"ScheduleGantt_toolbarControls__uxkwI",toolbarGroup:"ScheduleGantt_toolbarGroup__VAgQJ",toolbarDivider:"ScheduleGantt_toolbarDivider__AbZZC",toolbarChevron:"ScheduleGantt_toolbarChevron__cJGg7",toolbarDataDateLabel:"ScheduleGantt_toolbarDataDateLabel__lULAI",toolbarSearchWra
3p:"ScheduleGantt_toolbarSearchWrap__twnU1",toolbarSearch:"ScheduleGantt_toolbarSearch__ULx1f",toolbarDataDate:"ScheduleGantt_toolbarDataDate__IVu1_",toolbarDataDateValue:"ScheduleGantt_toolbarDataDateValue__lPUgT",toolbarDataDateBtn:"ScheduleGantt_toolbarDataDateBtn__MIIEC",toolbarPinnedRight:"ScheduleGantt_toolbarPinnedRight__GBjRO",toolbarMoreWrap:"ScheduleGantt_toolbarMoreWrap__WmSJY",toolbarMoreMenu:"ScheduleGantt_toolbarMoreMenu__gRYZL",srMenuIn:"ScheduleGantt_srMenuIn__fITA5",toolbarMoreItem:"ScheduleGantt_toolbarMoreItem__8Wc3c",viewSetupWrap:"ScheduleGantt_viewSetupWrap__0Ba_F",viewSetupTrigger:"ScheduleGantt_viewSetupTrigger__z5SuS",viewSetupMenu:"ScheduleGantt_viewSetupMenu__rII6_",viewSetupItem:"ScheduleGantt_viewSetupItem__8sxqb",viewSetupItemActive:"ScheduleGantt_viewSetupItemActive__SvdNY",viewSetupItemCaret:"ScheduleGantt_viewSetupItemCaret__kTxnG",viewSetupDivider:"ScheduleGantt_viewSetupDivider__bFyJg",viewSetupAction:"ScheduleGantt_viewSetupAction__F6Rco",viewSetupSubmenu:"ScheduleGantt_viewSetupSubmenu__62MaM",srPanelIn:"ScheduleGantt_srPanelIn___NvLq",vsPanelViews:"ScheduleGantt_vsPanelViews__vbNvt",vsPanelColumns:"ScheduleGantt_vsPanelColumns__1MmNU",vsPanelSort:"ScheduleGantt_vsPanelSort__51QKK",vsPanelDisplay:"ScheduleGantt_vsPanelDisplay__6Fp_6",vsEyebrow:"ScheduleGantt_vsEyebrow__Sh3a8",vsEyebrowInset:"ScheduleGantt_vsEyebrowInset__JP7t3",vsEyebrowStacked:"ScheduleGantt_vsEyebrowStacked__im_Im",vsEyebrowDisplay:"ScheduleGantt_vsEyebrowDisplay__7ldSu",vsDivider:"ScheduleGantt_vsDivider__WzPKq",vsHint:"ScheduleGantt_vsHint__o7645",vsHintFootnote:"ScheduleGantt_vsHintFootnote__ZviBq",vsOptionRow:"ScheduleGantt_vsOptionRow__gwFrY",vsOptionRowActive:"ScheduleGantt_vsOptionRowActive__ig1_3",vsCheckSlot:"ScheduleGantt_vsCheckSlot__Y7HGb",vsOptionLabel:"ScheduleGantt_vsOptionLabel__IPM2c",vsOptionMeta:"ScheduleGantt_vsOptionMeta__w3_JY",vsSavedViewRow:"ScheduleGantt_vsSavedViewRow__UwvuF",vsSavedViewLoad:"ScheduleGantt_vsSavedViewLoad__5lQ4s",vsSavedViewDelete:"ScheduleGantt_vsSavedViewDelete__NWkwo",vsSaveRow:"ScheduleGantt_vsSaveRow__fcZXx",vsSaveForm:"ScheduleGantt_vsSaveForm__Dvshq",vsSaveInput:"ScheduleGantt_vsSaveInput__ZXlJw",vsSaveConfirm:"ScheduleGantt_vsSaveConfirm__lUBzm",vsColumnList:"ScheduleGantt_vsColumnList__pyRk5",vsColumnRow:"ScheduleGantt_vsColumnRow__GQwUo",vsColumnRowHidden:"ScheduleGantt_vsColumnRowHidden__k3EXF",vsColumnRowDragOver:"ScheduleGantt_vsColumnRowDragOver__syrs8",vsColumnRowDragging:"ScheduleGantt_vsColumnRowDragging__XKLxj",vsCheckbox:"ScheduleGantt_vsCheckbox__8qMv8",vsColumnLabel:"ScheduleGantt_vsColumnLabel__Vhsu7",vsColumnHandle:"ScheduleGantt_vsColumnHandle__uWcDt",vsSortRow:"ScheduleGantt_vsSortRow__cNVp0",vsSortRowActive:"ScheduleGantt_vsSortRowActive__K2Xe8",vsSortMark:"ScheduleGantt_vsSortMark__0SBtF",vsRadioRow:"ScheduleGantt_vsRadioRow__BjEIz",vsRadioRowActive:"ScheduleGantt_vsRadioRowActive__285Up",vsToggleRow:"ScheduleGantt_vsToggleRow__beRQE",vsToggleLabel:"ScheduleGantt_vsToggleLabel__JFy_C",vsSwitch:"ScheduleGantt_vsSwitch__S4RF9",vsSwitchOn:"ScheduleGantt_vsSwitchOn__HANwN",vsSwitchKnob:"ScheduleGantt_vsSwitchKnob__6Qjrx",vsSelectRow:"ScheduleGantt_vsSelectRow__TPD3s",vsSelect:"ScheduleGantt_vsSelect__RmmM8",filterChipRow:"ScheduleGantt_filterChipRow__K9Ejb",filterChip:"ScheduleGantt_filterChip__ye055",filterChipDismiss:"ScheduleGantt_filterChipDismiss__FwQ8g",filterChipClearAll:"ScheduleGantt_filterChipClearAll___2dN9",toolbarCluster:"ScheduleGantt_toolbarCluster__KlidR",toolbarClusterLabel:"ScheduleGantt_toolbarClusterLabel___P_Af",toolbarInlineField:"ScheduleGantt_toolbarInlineField__mWFLj",toolbarInlineLabel:"ScheduleGantt_toolbarInlineLabel__CNNRl",toolbarMeta:"ScheduleGantt_toolbarMeta__Q_ELQ",toolbarBtn:"ScheduleGantt_toolbarBtn__fS0AU",toolbarBtnPrimary:"ScheduleGantt_toolbarBtnPrimary__9xC6I",toolbarBtnCompact:"ScheduleGantt_toolbarBtnCompact__14njS",toolbarPending:"ScheduleGantt_toolbarPending__GWkAr",badge:"ScheduleGantt_badge__j4EKg",toolbarCheck:"ScheduleGantt_toolbarCheck__c1amf",toolbarDisplayGroup:"ScheduleGantt_toolbarDisplayGroup__Cqau8",toolbarSelect:"ScheduleGantt_toolbarSelect__qJDSt",columnPresetSelect:"ScheduleGantt_columnPresetSelect__Ni8p3",toolbarIconBtn:"ScheduleGantt_toolbarIconBtn__XGAnZ",toolbarSquareIconBtn:"ScheduleGantt_toolbarSquareIconBtn__mJhcW",toolbarSquareIconBtnActive:"ScheduleGantt_toolbarSquareIconBtnActive___Xgu0",toolbarBtnActive:"ScheduleGantt_toolbarBtnActive__dzYtV",viewSetupTriggerOpen:"ScheduleGantt_viewSetupTriggerOpen__SLjDh",columnPicker:"ScheduleGantt_columnPicker__M6zGg",columnPickerMe
3nu:"ScheduleGantt_columnPickerMenu__QDvTf",columnPickerItem:"ScheduleGantt_columnPickerItem__h8qnt",colDragHandle:"ScheduleGantt_colDragHandle__j4ZeA",fixedColHeader:"ScheduleGantt_fixedColHeader__lo3UV",colDragging:"ScheduleGantt_colDragging__NybUi",colDragOver:"ScheduleGantt_colDragOver__3F2u7",warnings:"ScheduleGantt_warnings__tJIdt",warningsHeader:"ScheduleGantt_warningsHeader__LwC3s",warningsHeaderLeading:"ScheduleGantt_warningsHeaderLeading__kzFXM",warningsIcon:"ScheduleGantt_warningsIcon__u8r1N",warningsTitle:"ScheduleGantt_warningsTitle__CkMXR",warningsDismissAll:"ScheduleGantt_warningsDismissAll__zJ81H",warningsList:"ScheduleGantt_warningsList__c2XmY",warningsListItem:"ScheduleGantt_warningsListItem__JBbXd",warningsText:"ScheduleGantt_warningsText__L2nsn",warningsTextLead:"ScheduleGantt_warningsTextLead__hQY8l",warningsTextRest:"ScheduleGantt_warningsTextRest__PWGpD",warningsDismiss:"ScheduleGantt_warningsDismiss__cdUnN",warningsReopenLink:"ScheduleGantt_warningsReopenLink__i5msY",colHeaderMenu:"ScheduleGantt_colHeaderMenu__cBW4y",colHeaderMenuItem:"ScheduleGantt_colHeaderMenuItem__uugJQ",colHeaderMenuAdd:"ScheduleGantt_colHeaderMenuAdd__YxyQN",colHeaderMenuSubmenu:"ScheduleGantt_colHeaderMenuSubmenu__X9DxY",colHeaderMenuSubItem:"ScheduleGantt_colHeaderMenuSubItem__OrpsG",scrollViewport:"ScheduleGantt_scrollViewport__u4Mx_",statusDateBusyOverlay:"ScheduleGantt_statusDateBusyOverlay__oyPGj",statusDateBusyText:"ScheduleGantt_statusDateBusyText__5Ydqd",statusDateBusyTrack:"ScheduleGantt_statusDateBusyTrack__I_5dK",statusDateBusyBar:"ScheduleGantt_statusDateBusyBar__lCKrn",ganttStatusDateSweep:"ScheduleGantt_ganttStatusDateSweep__XoWm3",scrollContent:"ScheduleGantt_scrollContent__m8DCf",scroll:"ScheduleGantt_scroll__6mYln",dependencyOverlayClip:"ScheduleGantt_dependencyOverlayClip___E2IR",dependencyOverlay:"ScheduleGantt_dependencyOverlay__bVY3Q",dependencyPath:"ScheduleGantt_dependencyPath__QsTAL",dependencyLabelPill:"ScheduleGantt_dependencyLabelPill__sFYom",dependencyLabel:"ScheduleGantt_dependencyLabel__9jcBF",scrollViewportTraceBottom:"ScheduleGantt_scrollViewportTraceBottom__795AZ",healthOverlayLayer:"ScheduleGantt_healthOverlayLayer__d_c0E",table:"ScheduleGantt_table__3xoZd",weekCol:"ScheduleGantt_weekCol__h21Zv",monthHeaderRow:"ScheduleGantt_monthHeaderRow__wT8Vs",monthHeader:"ScheduleGantt_monthHeader__z_wqY",weekHeaderRow:"ScheduleGantt_weekHeaderRow__4hk6z",commentIndicatorCol:"ScheduleGantt_commentIndicatorCol__szZ9i",selectedRow:"ScheduleGantt_selectedRow__DwtlW",predecessorRow:"ScheduleGantt_predecessorRow__TuEk_",successorRow:"ScheduleGantt_successorRow__KmWJl",dimmedRow:"ScheduleGantt_dimmedRow__TVVp_",fixedCol:"ScheduleGantt_fixedCol__8jF4P",lastFixedCol:"ScheduleGantt_lastFixedCol__ULL7_",idCell:"ScheduleGantt_idCell__i_C3Z",descCell:"ScheduleGantt_descCell__kdNR6",descCellInner:"ScheduleGantt_descCellInner__EjeND",descText:"ScheduleGantt_descText__P1bS5",commentChip:"ScheduleGantt_commentChip__Uvc_E",dateCell:"ScheduleGantt_dateCell__Tgopy",colResizer:"ScheduleGantt_colResizer__OHfUI",weekCell:"ScheduleGantt_weekCell__4BsX7",weekCellCovered:"ScheduleGantt_weekCellCovered__bPRH_",weekCellBarStart:"ScheduleGantt_weekCellBarStart__C1zvS",wbsRow:"ScheduleGantt_wbsRow__8gIru",wbsFixedSpan:"ScheduleGantt_wbsFixedSpan__qTrUp",wbsLabel:"ScheduleGantt_wbsLabel__JMJu_",wbsLabelInner:"ScheduleGantt_wbsLabelInner__q_Yg5",wbsCount:"ScheduleGantt_wbsCount__3AFpS",wbsRowNested:"ScheduleGantt_wbsRowNe
3sted__4QvW0",commentFocusCell:"ScheduleGantt_commentFocusCell__51VBh",wbsToggle:"ScheduleGantt_wbsToggle__6Y_J5",wbsLockBtn:"ScheduleGantt_wbsLockBtn__i1khW",wbsLockBtnActive:"ScheduleGantt_wbsLockBtnActive__WDr4V",wbsHeader:"ScheduleGantt_wbsHeader__9XxND",activityRow:"ScheduleGantt_activityRow____RhG",statusRowBacklog:"ScheduleGantt_statusRowBacklog__yCa1Q",statusRowInProgress:"ScheduleGantt_statusRowInProgress__5HsxT",statusRowDone:"ScheduleGantt_statusRowDone__u36CF",cpBadge:"ScheduleGantt_cpBadge__CAQGb",ncpBadge:"ScheduleGantt_ncpBadge__urGlT",logicChangedBadge:"ScheduleGantt_logicChangedBadge__4gHl6",compareRemovedBandHeader:"ScheduleGantt_compareRemovedBandHeader__Ix_o3",compareRemovedActivityRow:"ScheduleGantt_compareRemovedActivityRow__NgJwg",legendBadgeSample:"ScheduleGantt_legendBadgeSample__2aBHo",bar:"ScheduleGantt_bar__SiNKj",compareActivityRow:"ScheduleGantt_compareActivityRow__2orIK",compareStackedActivityRow:"ScheduleGantt_compareStackedActivityRow__1LmT5",compareWeekCell:"ScheduleGantt_compareWeekCell__Rh2do",diffSubRow:"ScheduleGantt_diffSubRow__P7QjK",diffMergedCell:"ScheduleGantt_diffMergedCell__HqYV8",compareBar:"ScheduleGantt_compareBar__36HN4",compareBarPrimary:"ScheduleGantt_compareBarPrimary__95hW4",compareBarBaseline1:"ScheduleGantt_compareBarBaseline1__XjZm4",compareBarBaseline2:"ScheduleGantt_compareBarBaseline2__KrxFA",compareBarBaseline3:"ScheduleGantt_compareBarBaseline3__JUY_c",compareBarMilestone:"ScheduleGantt_compareBarMilestone__8wpNa",compareBarCritical:"ScheduleGantt_compareBarCritical__RuJEi",criticalMode:"ScheduleGantt_criticalMode__K8I7v",compareBarSelected:"ScheduleGantt_compareBarSelected__pYKfX",compareLayerSwatch:"ScheduleGantt_compareLayerSwatch__Nqpio",compareLayerSwatchPrimary:"ScheduleGantt_compareLayerSwatchPrimary__L_2EI",compareLayerSwatchBaseline1:"ScheduleGantt_compareLayerSwatchBaseline1__5baKY",compareLayerSwatchBaseline2:"ScheduleGantt_compareLayerSwatchBaseline2__7_TsH",compareLayerSwatchBaseline3:"ScheduleGantt_compareLayerSwatchBaseline3__QT4eU",barBacklog:"ScheduleGantt_barBacklog__k7Hrm",barInProgress:"ScheduleGantt_barInProgress__omoNX",barDone:"ScheduleGantt_barDone__JDRO6",barCritical:"ScheduleGantt_barCritical__GRDqE",barCriticalAdjacent:"ScheduleGantt_barCriticalAdjacent__AFvT2",barMilestone:"ScheduleGantt_barMilestone__0WjvP",floatZeroOrNegative:"ScheduleGantt_floatZeroOrNegative__kmb7m",floatPositive:"ScheduleGantt_floatPositive__GnuEY",floatSlack:"ScheduleGantt_floatSlack__8sjcq",dataDateClip:"ScheduleGantt_dataDateClip___zyEq",dataDateOverlay:"ScheduleGantt_dataDateOverlay__8g67r",dataDateFlag:"ScheduleGantt_dataDateFlag__jQUZI",dataDateLine:"ScheduleGantt_dataDateLine___AA3X",meta:"ScheduleGantt_meta__EKgNc",compareBaselineFinishHeader:"ScheduleGantt_compareBaselineFinishHeader__3GD9z",compareHeaderLabel:"ScheduleGantt_compareHeaderLabel__w2Sqx",compareHeaderStack:"ScheduleGantt_compareHeaderStack__ksOHB",compareHeaderLayer:"ScheduleGantt_compareHeaderLayer__hx5TX",compareHeaderDate:"ScheduleGantt_compareHeaderDate__DkPkf",baselineDatesExpandBtn:"ScheduleGantt_baselineDatesExpandBtn__57mZc",compareDatesBandBtn:"ScheduleGantt_compareDatesBandBtn__BUobP",legendWrap:"ScheduleGantt_legendWrap__OZGs5",legendPopover:"ScheduleGantt_legendPopover__jhktn",legendPopoverCompare:"ScheduleGantt_legendPopoverCompare__6ThMT",compareLegendSection:"ScheduleGantt_compareLegendSection__Dk9Rf",compareLegendBar:"ScheduleGantt_compareLegendBar__il3fA",compareLegendLabel:"ScheduleGantt_compareLegendLabel__DQwY1",compareLegendMilestone:"ScheduleGantt_compareLegendMilestone__mnTfw",compareLegendMilestoneMark:"ScheduleGantt_compareLegendMilestoneMark__YDgY1",compareLegendBadgeSlot:"ScheduleGantt_compareLegendBadgeSlot___e08r",compareLegendBadge:"ScheduleGantt_compareLegendBadge__ayNJK",compareLegendTrace:"ScheduleGantt_compareLegendTrace__w33_Y",compareLegendItemMultiline:"ScheduleGantt_compareLegendItemMultiline__n4L25",compareLegendFootnote:"ScheduleGantt_compareLegendFootnote__7FFN7",legendTitle:"ScheduleGantt_legendTitle__78_eF",legendSectionTitle:"ScheduleGantt_legendSectionTitle__zzXh_",legendList:"ScheduleGantt_legendList__UGwqj",legendSwatchDiffChanged:"ScheduleGantt_legendSwatchDiffChanged__f0zF8",legendItem:"ScheduleGantt_legendItem__4jAlt",legendSwatch:"ScheduleGantt_legendSwatch__sMY0R",legendSwatchBacklog:"ScheduleGantt_legendSwatchBacklog__FT4jW",legendSwatchInProgress:"ScheduleGantt_legendSwatchInProgress__kot1G",legendSwatchDone:"ScheduleGantt_legendSwatchDone__cD_at",legendSwatchCritical:"ScheduleGantt_legendSwatchCritical__0UU_9",legendSwatchAdjacent:"ScheduleGantt_legendSwatchAdjacent___xeYC",legendLabel:"ScheduleGantt_legendLabel__abYdK",legendMilestone:"ScheduleGantt_legendMilestone__WH0YA",legendDataDate:"ScheduleGantt_legendDataDate__Lf3Z9",legendSwatchRow:"ScheduleGantt_legendSwatchRow__zvqdg",legendSwatchRowSelected:"ScheduleGantt_legendSwatchRowSelected__0C9mz",legendSwatchRowPredecessor:"ScheduleGantt_legendSwatchRowPredecessor__i1Nk2",legendSwatchRowSuccessor:"ScheduleGantt_legendSwatchRowSuccessor__4Mz72",legendSwatchRowCritical:"ScheduleGantt_legendSwatchRowCritical__Rh338",legendSwatchOutlineSelected:"ScheduleGantt_legendSwatchOutlineSelected__OLv0P",legendSwatchOutlinePredecessor:"ScheduleGantt_legendSwatchOutlinePredecessor__k31kt",legendSwatchOutlineSuccessor:"ScheduleGantt_legendSwatchOutlineSuccessor__LmqwQ",legendSwatchDepFS:"ScheduleGantt_legendSwatchDepFS__a1M50",legendSwatchDepSS:"ScheduleGantt_legendSwatchDepSS__y6mXN",legendSwatchDepFF:"ScheduleGantt_legendSwatchDepFF__JPE5k",legendSwatchDepSF:"ScheduleGantt_legendSwatchDepSF__UK31P",legendSwatchDepInbound:"ScheduleGantt_legendSwatchDepInbound__SVqbr",legendSwatchDepOutbound:"ScheduleGantt_legendSwatchDepOutbound__SHk71",legendIdleHint:"ScheduleGantt_legendIdleHint__8DAS1",legendCoachActions:"ScheduleGantt_legendCoachActions__EiwQs",legendCoachDismiss:"ScheduleGantt_legendCoachDismiss__kza04",legendText:"ScheduleGantt_legendText__LkQeE",legendDetail:"ScheduleGantt_legendDetail__D4bMP",legendFootnote:"ScheduleGantt_legendFootnote__C3pyr",statusEdit:"ScheduleGantt_statusEdit__Z_gtR",pctEdit:"ScheduleGantt_pctEdit__DXSTF",statusEditWrap:"ScheduleGantt_statusEditWrap__xnaAo",statusChevron:"ScheduleGantt_statusChevron__CJslj",pctCell:"ScheduleGantt_pctCell__h2J3e",pctCellInner:"ScheduleGantt_pctCellInner__PGpAp",pctSuffix:"ScheduleGantt_pctSuffix__8ZDdd",dateEdit:"ScheduleGantt_dateEdit__5hQGU",actualNaBtn:"ScheduleGantt_actualNaBtn__HT85R",compareTable:"ScheduleGantt_compareTable__K8B6b",compareColumnHeaderLabel:"ScheduleGantt_compareColumnHeaderLabel__TsKPl",compareDateHeader:"ScheduleGantt_compareDateHeader__ywUS4",compareDateBandAnchor:"ScheduleGantt_compareDateBandAnchor__SWQpz",compareDateBandCell:"ScheduleGantt_compareDateBandCell__6dCR_",compareDateBandCellInner:"ScheduleGantt_compareDateBandCellInner__RP_jK",compareDateBandLabel:"ScheduleGantt_compareDateBandLabel__fqPbB",compareDateSubHeader:"ScheduleGantt_compareDateSubHeader__ZV3T0",comparePrimaryDateBand:"ScheduleGantt_comparePrimaryDateBand__FgXaf",comparePrimaryDateBandSwatch:"ScheduleGantt_comparePrimaryDateBandSwatch__M8tZH",compareDateBandBaseline1:"ScheduleGantt_compareDateBandBaseline1__8o4Z3",compareDateBandBaseline2:"ScheduleGantt_compareDateBandBaseline2__3A05u",compareDateBandBaseline3:"ScheduleGantt_compareDateBandBaseline3__45HzC",compareStackedDates:"ScheduleGantt_compareStackedDates__7paSy",compareStackedDate:"ScheduleGantt_compareStackedDate__mRI5M",compareStackedDatePrimary:"ScheduleGantt_compareStackedDatePrimary__Tnauj",compareStackedDateBaseline1:"ScheduleGantt_compareStackedDateBaseline1__lv1t7",compareStackedDateBaseline2:"ScheduleGantt_compareStackedDateBaseline2__2t170",compareStackedDateBaseline3:"ScheduleGantt_compareStackedDateBaseline3__aaofB",compareDataDateOverlay:"ScheduleGantt_compareDataDateOverlay__GOh
35o",diffRevisionBoundary:"ScheduleGantt_diffRevisionBoundary__jzwAt",diffCellChanged:"ScheduleGantt_diffCellChanged__ZeyrI",diffChangedActivity:"ScheduleGantt_diffChangedActivity__5I3Ti",activityChangedBadge:"ScheduleGantt_activityChangedBadge__nxC7i",compareDateDrift:"ScheduleGantt_compareDateDrift__KJAAR",compareHighlightHint:"ScheduleGantt_compareHighlightHint__GVLl_",filtersAnchor:"ScheduleGantt_filtersAnchor__fWEcR",filterPanelPopup:"ScheduleGantt_filterPanelPopup__o8U_W",filterPanel:"ScheduleGantt_filterPanel__D018_",filterPanelHeader:"ScheduleGantt_filterPanelHeader__TejtH",filterPanelTitle:"ScheduleGantt_filterPanelTitle__qOF7S",filterPanelTabs:"ScheduleGantt_filterPanelTabs__3n4PE",filterPanelTab:"ScheduleGantt_filterPanelTab__l_nXq",filterPanelTabActive:"ScheduleGantt_filterPanelTabActive__vO6SO",filterPanelTabAll:"ScheduleGantt_filterPanelTabAll__0vgos",filterPanelClearAll:"ScheduleGantt_filterPanelClearAll__OHjYI",filterPanelTabPane:"ScheduleGantt_filterPanelTabPane__F3MNP",filterPanelFootnote:"ScheduleGantt_filterPanelFootnote__brw90",filterPanelViewAll:"ScheduleGantt_filterPanelViewAll__lraHm",filterSectionEyebrow:"ScheduleGantt_filterSectionEyebrow__f3MhO",filterScheduleEyebrow:"ScheduleGantt_filterScheduleEyebrow__66D7q",filterSectionEyebrowMuted:"ScheduleGantt_filterSectionEyebrowMuted__8fNml",filterScheduleTab:"ScheduleGantt_filterScheduleTab__F_Adn",filterScheduleBlock:"ScheduleGantt_filterScheduleBlock__4pC30",filterScheduleHint:"ScheduleGantt_filterScheduleHint__sLdEJ",filterCriticalBox:"ScheduleGantt_filterCriticalBox__VzqVQ",filterNearCriticalRow:"ScheduleGantt_filterNearCriticalRow__dgpc_",filterNearCriticalInput:"ScheduleGantt_filterNearCriticalInput__hpsVE",filterDatesTab:"ScheduleGantt_filterDatesTab__UZ9cC",filterMetadataTab:"ScheduleGantt_filterMetadataTab__60Wdw",filterMetadataGroup:"ScheduleGantt_filterMetadataGroup__39toI",filterMetadataGroupHeader:"ScheduleGantt_filterMetadataGroupHeader__Pe3o9",filterMetadataGroupTitle:"ScheduleGantt_filterMetadataGroupTitle__k1wyw",filterMetadataPillRow:"ScheduleGantt_filterMetadataPillRow__cPyf9",filterMetadataPill:"ScheduleGantt_filterMetadataPill__RCg3W",filterMetadataPillActive:"ScheduleGantt_filterMetadataPillActive__S4T5K",filterMetadataPillLabel:"ScheduleGantt_filterMetadataPillLabel__SGrWx",filterMetadataPillCount:"ScheduleGantt_filterMetadataPillCount__Pr_Me",filterDatesIntro:"ScheduleGantt_filterDatesIntro__j8TYc",filterDateField:"ScheduleGantt_filterDateField__d1f22",filterDateInput:"ScheduleGantt_filterDateInput__fHZ0m",filterQuickBlock:"ScheduleGantt_filterQuickBlock__3sZ_n",filterQuickRow:"ScheduleGantt_filterQuickRow__g_Izs",filterQuickPill:"ScheduleGantt_filterQuickPill__DfABC",filterQuickChip:"ScheduleGantt_filterQuickChip__ggCBM",filterQuickPillActive:"ScheduleGantt_filterQuickPillActive__89xXd",filterFieldFull:"ScheduleGantt_filterFieldFull__5uEZS",filterBadge:"ScheduleGantt_filterBadge__IJMRo",filterPanelViewAllStack:"ScheduleGantt_filterPanelViewAllStack__MybmB",filterDateGroup:"ScheduleGantt_filterDateGroup__HATCE",filterGroupLabel:"ScheduleGantt_filterGroupLabel__bF_7W",filterSectionContent:"ScheduleGantt_filterSectionContent__xxI3G",filterHint:"ScheduleGantt_filterHint__jr8Rf",layerVisibilityRow:"ScheduleGantt_layerVisibilityRow__otbW8",filterPanelBody:"ScheduleGantt_filterPanelBody__Agdld",filterField:"ScheduleGantt_filterField__T_JN0",filterLabel:"ScheduleGantt_filterLabel__X2Ahw",filterCheck:"ScheduleGantt_filterCheck__dJbJx",filterInput:"ScheduleGantt_filterInput__oady9",filterInputWide:"ScheduleGantt_filterInputWide__cfC9P",filterInputSmall:"ScheduleGantt_filterInputSmall__GH8pZ",filterSelect:"ScheduleGantt_filterSelect__FSB60",filterDropdownWrap:"ScheduleGantt_filterDropdownWrap__gEliB",filterSelectTrigger:"ScheduleGantt_filterSelectTrigger__TrSz0",filterDropdownMenu:"ScheduleGantt_filterDropdownMenu__bW7Yt",filterDropdownHint:"ScheduleGantt_filterDropdownHint__LRfyi",filterDropdownRow:"ScheduleGantt_filterDropdownRow__85gR3",filterDropdownClear:"ScheduleGantt_filterDropdownClear__vzlDk",filterHintVisuallyHidden:"ScheduleGantt_filterHintVisuallyHidden__q6LlI",filterPending:"ScheduleGantt_filterPending__C4XVL",filterTwoStepRow:"ScheduleGantt_filterTwoStepRow__hdY2q",layerVisibilityWrap:"ScheduleGantt_layerVisibilityWrap__SGFcM",layerVisibilityMenu:"ScheduleGantt_layerVisibilityMenu__syQKy",layerVisibilityHint:"ScheduleGantt_layerVisibilityHint__Z8D9f",layerVisibilityLabel:"ScheduleGantt_layerVisibilityLabel__uIRPy",compareFiltersBlock:"ScheduleGantt_compareFiltersBlock__cjyt_",compareRevisionsPanel:"ScheduleGantt_compareRevisionsPanel__MC11j",layerRevisionMeta:"ScheduleGantt_layerRevisionMeta__Cqn27",layerRevisionNumber:"ScheduleGantt_layerRevisionNumber__nuSQM",layerRevisionFile:"ScheduleGantt_layerRevisionFile__LhnQC",layerRevisionModified:"ScheduleGantt_layerRevisionModified___UyRK",
3savedViewsWrap:"ScheduleGantt_savedViewsWrap__NFRzN",savedViewsMenu:"ScheduleGantt_savedViewsMenu__fd9J8",savedViewsHint:"ScheduleGantt_savedViewsHint__iuDqk",savedViewsRow:"ScheduleGantt_savedViewsRow__t0rrS",savedViewsLoadBtn:"ScheduleGantt_savedViewsLoadBtn__tHWPa",savedViewsDeleteBtn:"ScheduleGantt_savedViewsDeleteBtn__HmWZF",savedViewsSaveRow:"ScheduleGantt_savedViewsSaveRow__fOPWE",activityContextMenuBackdrop:"ScheduleGantt_activityContextMenuBackdrop__Izlc2",activityContextMenu:"ScheduleGantt_activityContextMenu__XNiJP",activityContextMenuId:"ScheduleGantt_activityContextMenuId__APfcc",activityContextMenuDivider:"ScheduleGantt_activityContextMenuDivider__aVGcq",activityContextMenuItem:"ScheduleGantt_activityContextMenuItem__lPpTc",activityContextMenuItemMeta:"ScheduleGantt_activityContextMenuItemMeta__7x4WT"}},93083:e=>{e.exports={panel:"RevisionChangeSummary_panel__H_7eQ",header:"RevisionChangeSummary_header__iJRA5",title:"RevisionChangeSummary_title__JnINJ",closeBtn:"RevisionChangeSummary_closeBtn__XN_Kf",summaryLine:"RevisionChangeSummary_summaryLine__y3ZsW",countList:"RevisionChangeSummary_countList__0bGgh",tableWrap:"RevisionChangeSummary_tableWrap__VDudk",table:"RevisionChangeSummary_table__y_n0n"}},94220:(e,t,a)=>{"use strict";a.d(t,{M:()=>l});var r=a(14232),n=a(53007),i=a(38322);function l(e){let[t,a]=(0,r.useState)(e.startOnOrAfter),[l,s]=(0,r.useState)(e.finishOnOrBefore),o=(0,r.useCallback)(t=>{a(t?.startOnOrAfter!==void 0?t.startOnOrAfter:e.startOnOrAfter),s(t?.finishOnOrBefore!==void 0?t.finishOnOrBefore:e.finishOnOrBefore)},[e.startOnOrAfter,e.finishOnOrBefore]),c=(0,i.o)(e.searchText,n.H),d=(0,i.o)(e.resourceFilter.searchShortName,n.H),u=(0,i.o)(e.minPercent,n.tR),h=(0,i.o)(e.maxPercent,n.tR),p=(0,r.useMemo)(()=>({...e,searchText:c,resourceFilter:{...e.resourceFilter,searchShortName:d},minPercent:u,maxPercent:h,startOnOrAfter:t,finishOnOrBefore:l}),[e,c,d,u,h,t,l]),m=(0,n.u4)(e,p);return{applied:p,isPending:m,commitDateFilters:o}}},94478:e=>{e.exports={wrap:"ScheduleHealthStatusIndicator_wrap__NJ0bA",row:"ScheduleHealthStatusIndicator_row__M8THX",badge:"ScheduleHealthStatusIndicator_badge__vvSh0",badgeComputing:"ScheduleHealthStatusIndicator_badgeComputing__liOUk",badgeCached:"ScheduleHealthStatusIndicator_badgeCached__80H_i",badgeFresh:"ScheduleHealthStatusIndicator_badgeFresh__8fbsM",badgeLight:"ScheduleHealthStatusIndicator_badgeLight__ENNQ2",detail:"ScheduleHealthStatusIndicator_detail__uVONo",detailLight:"ScheduleHealthStatusIndicator_detailLight__Zf8Vl"}},95632:(e,t,a)=>{"use strict";a.d(t,{E:()=>l});var r=a(37876);a(14232);var n=a(13412),i=a.n(n);let l=({show:e,minutesLeft:t,isExpired:a,variant:n="edit",hasUnsavedEdits:l=!1,onSaveRevision:s,saveBusy:o=!1})=>{if(!e)return null;let c=a?"This editing session has expired. Use View to reload the schedule before making more changes.":`This editing session expires in about ${t??1} minute${1===t?"":"s"}. Save Changes to keep your changes on the server.`,d=a?"This compare session has expired. Close and open compare again to continue.":`This compare session expires in about ${t??1} minute${1===t?"":"s"}. Re-open compare if it expires.`;return(0,r.jsxs)("div",{className:i().sessionExpiryBanner,role:"status","aria-live":"polite","data-ui":"sv-session-expiry",children:[(0,r.jsxs)("div",{className:i().sessionExpiryLeading,children:[(0,r.jsx)("span",{className:i().sessionExpiryIcon,"aria-hidden":"true",children:"!"}),(0,r.jsx)("span",{children:"compare"===n?d:c})]}),"edit"===n&&!a&&l&&s&&(0,r.jsx)("button",{type:"button",className:i().sessionExpiryAction,disabled:o,"aria-busy":o,onClick:()=>void s(),children:o?"Saving revisionâ¦":"Save Changes"})]})}},97833:(e,t,a)=>{"use strict";function r(e){return!!e&&(e.total_changed>0||(e.schedule_changes?.length??0)>0)}function n(e){return r(e)?!e||e.total_changed<=0?"Schedule updated":`${e.total_changed} changed`:null}a.d(t,{M:()=>r,v:()=>n})},98177:e=>{e.exports={popover:"DiffActivityPopover_popover__AkZgy",popoverCompare:"DiffActivityPopover_popoverCompare___Yomp",header:"DiffActivityPopover_header__5D2ie",closeBtn:"DiffActivityPopover_closeBtn__pzybh",columnHeaders:"DiffActivityPopover_columnHeaders__5NWw6",revisionHeader:"DiffActivityPopover_revisionHeader__DUG7E",revisionHeaderTitle:"DiffActivityPopover_revisionHeaderTitle__k8RYh",revisionSwatch:"DiffActivityPopover_revisionSwatch__CRSeV",revisionSwatchPrimary:"DiffActivityPopover_revisionSwatchPrimary__EwtfL",revisionSwatchBaseline1:"DiffActivityPopover_revisionSwatchBaseline1__dqoxs",revisionSwatchBaseline2:"DiffActivityPopover_revisionSwatchBaseline2__733fv",revisionSwatchBaseline3:"DiffActivityPopover_revisionSwatchBaseline3__67QEu",revisionHeaderLabel:"DiffActivityPopover_revisionHeaderLabel__izmh1",revisionHeaderRole:"DiffActivityPopover_revisionHeaderRole__lmtqn",revisionHeaderFile:"DiffActivityPopover_revisionHeaderFile__fJM7Y",body:"DiffActivityPopover_body__jurgU",fieldRow:"DiffActivityPopover_fieldRow__144o7",fieldLabel:"DiffActivityPopover_fieldLabel__VO0KV",fieldValue:"DiffActivityPopover_fieldValue__PXLbz",fieldValueChanged:"DiffActivityPopover_fieldValueChanged__NC4o_",sectionTitle:"DiffActivityPopover_sectionTitle__b6T5l",rel
3Columns:"DiffActivityPopover_relColumns__qGBNc",relList:"DiffActivityPopover_relList__XjJlA",relLink:"DiffActivityPopover_relLink__LK8d6",empty:"DiffActivityPopover_empty__zXxqg",changedHint:"DiffActivityPopover_changedHint__0xeuT"}},98249:(e,t,a)=>{"use strict";a.d(t,{BM:()=>z,D2:()=>P,D6:()=>D,EU:()=>G,FJ:()=>C,FS:()=>eo,HK:()=>l,Il:()=>w,Kl:()=>ei,Ky:()=>A,Lu:()=>J,Mm:()=>U,NP:()=>m,NU:()=>en,Nk:()=>q,Nz:()=>I,Qb:()=>p,Qn:()=>V,R7:()=>ee,SA:()=>j,SC:()=>X,SE:()=>E,SZ:()=>O,Sl:()=>c,Vp:()=>et,Vz:()=>W,XZ:()=>M,Yw:()=>es,Z:()=>T,ZE:()=>el,_8:()=>r,_X:()=>k,a3:()=>Z,bY:()=>L,dD:()=>f,eh:()=>o,gl:()=>B,i1:()=>$,kl:()=>i,lA:()=>b,ly:()=>h,mu:()=>N,pY:()=>x,q$:()=>Q,qb:()=>Y,qi:()=>d,rD:()=>s,rP:()=>ea,re:()=>H,s4:()=>F,sd:()=>S,tM:()=>n,xX:()=>u,zU:()=>er});let r=80,n=16,i=15;function l(e){return Math.ceil(16+e*n+7.2*i+34)}function s(e){return e.reduce((e,t)=>Math.max(e,t.indent_level),0)}function o(e,t){let a=e.trim();if(!a)return;if(t.activity_details[a])return a;let r=t.rows.find(e=>"activity"===e.row_type&&e.activity_id===a);if(r?.activity_id)return r.activity_id;let n=a.toLowerCase(),i=Object.keys(t.activity_details).find(e=>e.toLowerCase()===n);if(i)return i;let l=t.rows.find(e=>"activity"===e.row_type&&"string"==typeof e.activity_id&&e.activity_id.toLowerCase()===n);return l?.activity_id??void 0}function c(e,t){let a=0,r={};for(let n of e)r[n]=a,a+=t[n];return r}let d={TK_NotStart:"Not Started",TK_Active:"In Progress",TK_Complete:"Complete",TK_Plan:"Planned"},u=["TK_NotStart","TK_Plan","TK_Active","TK_Complete"],h={task_dependent:"Task Dependent",finish_milestone:"Finish Milestone",start_milestone:"Start Milestone",resource_dependent:"Resource Dependent",level_of_effort:"Level of Effort",wbs_summary:"WBS Summary"};function p(e){let t=e.trim();if(!t)return"";if(h[t])return t;let a=t.toLowerCase();if(h[a])return a;let r=Object.entries(h).find(([,e])=>e.toLowerCase()===a)?.[0];return r||a.replace(/\s+/g,"_")}function m(e){if(!e)return"â";let t=e.trim();return t?h[p(t)]??t:"â"}let _={TK_NotStart:"backlog",TK_Plan:"backlog",TK_Active:"in_progress",TK_Complete:"done"};function f(e){return e&&_[e]||"backlog"}function v(e){return e?e.toLowerCase().replace(/-/g,"_").trim():""}function y(e){return"done"===e||"complete"===e||"completed"===e}function g(e){return"in_progress"===e||"inprogress"===e||"active"===e||"out_of_sequence"===e}function b(e){var t,a,r,n,i,l;let s=Math.round(100*Math.max(0,Math.min(1,e.percentComplete??0)));return s>=100||(t=e.p6StatusCode,a=e.barStatus,r=e.detailStatus,"TK_Complete"===t||[v(a),v(r),v(f(t))].some(y))?"done":(n=e.p6StatusCode,i=e.barStatus,l=e.detailStatus,"TK_Active"===n||[v(i),v(l),v(f(n))].some(g)||s>0)?"inProgress":"backlog"}function w(e){return e.isCritical?"CP":e.isCriticalAdjacent?"NCP":null}function x(e,t){return w({isCritical:!!(e?.is_critical||t?.is_critical),isCriticalAdjacent:!!t?.is_critical_adjacent})}function S(e){let t=p(e??"");return"start_milestone"===t||"finish_milestone"===t}function C(e){let t=null==e.totalFloatDays||Number.isNaN(Number(e.totalFloatDays))?null:Number(e.totalFloatDays);return e.isCritical||null!=t&&t<=0?"critical":e.isCriticalAdjacent||null!=t&&t>0&&t<=5?"adjacent":e.status??"backlog"}function j(e){return S(e.activityType)?"milestone":C(e)}function k(e){if(null==e||Number.isNaN(Number(e)))return 0;let t=Number(e);return Math.round(100*Math.max(0,Math.min(1,t>1?t/100:t)))}function N(e){let t=new Map;for(let a of e){let e="string"==typeof a.wbs_code?a.wbs_code.trim():"",r="string"==typeof a.wbs_name?a.wbs_name.trim():"";e&&r&&t.set(e,r)}return t}function L(e,t){if(!e)return"â";let a=e.wbs_code?.trim()??"",r=a?t?.get(a):void 0;if(r)return r;let n=e.phase_name?.trim();return n||a||"â"}function D(e){if(!e)return"â";let t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);return t?`${t[2]}/${t[3]}/${t[1]}`:e}function R(e){let t=e?.trim().slice(0,10)??"";if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return null;let a=new Date(`${t}T00:00:00Z`);return Number.isNaN(a.getTime())?null:a}function M(e){let t=R(e.week_start);return t?`${t.getUTCMonth()+1}/${t.getUTCDate()}`:function(e){let t,a=e.week_start?.trim()??"",r=(t=/^(\d{4})-(\d{2})-(\d{2})/.exec(a))?`${t[2]}/${t[3]}/${t[1].slice(2)}`:null;if(r)return r;let n=e=>e.replace(/\s*\(W\d+\)\s*$/i,"").trim()||e,i=e.label?.trim()??"";return i?n(i):a?n(a):"â"}(e)}function A(e){let t=[];return e.forEach((e,a)=>{let r=R(e.week_start);if(!r)return void t.push({key:`unknown-${e.week_index??a}`,label:"",weekCount:1});let n=`${r.getUTCFullYear()}-${r.getUTCMonth()}`,i=t[t.length-1];if(i?.key===n){i.weekCount+=1;return}t.push({key:n,label:new Intl.DateTimeFormat("en-US",{month:"short",year:"numeric",timeZone:"UTC"}).format(r),weekCount:1})}),t}function P(e){if(null==e||Number.isNaN(Number(e)))return"â";let t=Math.round(10*Number(e))/10,a=.05>
3Math.abs(t-Math.round(t)),r=Math.abs(t),n=a?String(Math.round(r)):r.toFixed(1);return 0===t?"0d":t<0?`-${n}d`:`+${n}d`}function $(e,t){if(null==e||Number.isNaN(Number(e)))return null;let a=Number(e);return t||a<0?"criticalOrNegative":a>0&&a<=5?"nearCritical":"slack"}function T(e){return null==e?"â":e?"Critical":"â"}function E(e){return e?D(e):"N/A"}function I(e){if(!e)return"";let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:""}function B(e){let t=new Map;for(let a of e.bars)t.set(a.activity_id,a);return t}function G(e,t){let a=null;return e.map(e=>(null===a||!(e.indent_level>a))&&(a=null,"wbs_header"===e.row_type&&e.wbs_id&&t.has(e.wbs_id)&&(a=e.indent_level),!0))}function F(e,t){let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a}function O(e,t){let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a}function H(e,t,a){if(0===a.size)return new Set(e);let r=new Set(e);return a.forEach(e=>{t.has(e)?r.add(e):r.delete(e)}),r}function V(e){let t=new Map,a=[];for(let r of e){if("wbs_header"===r.row_type&&r.wbs_id){for(;a.length&&a[a.length-1].indent>=r.indent_level;)a.pop();t.has(r.wbs_id)||t.set(r.wbs_id,0),a.push({wbsId:r.wbs_id,indent:r.indent_level});continue}if("activity"===r.row_type)for(let e of a)t.set(e.wbsId,(t.get(e.wbsId)??0)+1)}return t}function W(e){let t=e.filter(e=>"wbs_header"===e.row_type&&e.wbs_id);if(0===t.length)return 0;let a=new Map;for(let e of t)a.set(e.indent_level,(a.get(e.indent_level)??0)+1);let r=Array.from(a.keys()).sort((e,t)=>e-t),n=r[0];return r.length>1&&(a.get(n)??0)===1?r[1]:n}let z=[{level:1,label:"L1 \xb7 Phases"},{level:2,label:"L2 \xb7 Sub-Phases"},{level:3,label:"L3 \xb7 Activities"},{level:4,label:"L4 \xb7 Work Packages"},{level:5,label:"L5 \xb7 Crew Detail"}];function X(e,t){let a=t>=5?null:W(e)+(t-1);return null==a?[]:e.filter(e=>"wbs_header"===e.row_type&&e.wbs_id&&e.indent_level>=a).map(e=>e.wbs_id)}function U(e){return X(e,1)}function Y(e,t,a,n){return Math.max(0,Math.min(Math.max(0,e-1)*r,Math.max(0,n-a)))}function K(e,t){let a=e.getBoundingClientRect(),r=t.getBoundingClientRect();return Math.max(0,Math.min(r.top-a.top+e.scrollTop-e.clientHeight/2+r.height/2,e.scrollHeight-e.clientHeight))}function q(e,t,a,n,i="smooth",l){let s=e.scrollLeft;
3if(null!=a)if(l?.centerInView&&null!=l.endWeekIndex){var o,c;let t;o=l.endWeekIndex,c=e.clientWidth,t=Math.max(0,e.scrollWidth-c),s=Math.max(0,Math.min((a+o+1)/2*r-c/2,t))}else s=Y(a,n,e.clientWidth,e.scrollWidth);let d=e.scrollTop,u=e.querySelector(`[data-activity-id="${CSS.escape(t)}"]`);u instanceof HTMLElement&&(d=K(e,u)),e.scrollTo({left:s,top:d,behavior:i})}function Q(e,t,a="smooth"){let r=e.querySelector(`tr[data-wbs-id="${CSS.escape(t)}"]`);if(!(r instanceof HTMLElement))return;let n=K(e,r);e.scrollTo({top:n,behavior:a})}function Z(e,t){for(let a=0;a<e.length;a+=1){let r=e[a]?.row;if(r?.row_type==="wbs_header"&&r.wbs_id===t)return a}return null}function J(e,t){for(let a=0;a<e.length;a+=1){let r=e[a]?.row;if(r?.row_type==="activity"&&r.activity_id===t)return a}return null}function ee(e,t,a,r="auto"){let n=Math.max(0,t*a-Math.floor(e.clientHeight/3));e.scrollTo({top:n,behavior:r})}function et(e,t,a){let r=[],n=new Set;for(let i of e)if("wbs_header"===i.row_type&&i.wbs_id){for(;r.length>0&&r[r.length-1].indent>=i.indent_level;)r.pop();if(r.push({indent:i.indent_level,wbs_id:i.wbs_id}),i.wbs_id===t){for(let e of r)a.has(e.wbs_id)&&n.add(e.wbs_id);break}}return Array.from(n)}function ea(e,t){let a=e.findIndex(e=>"wbs_header"===e.row_type&&e.wbs_id===t);if(a<0)return null;let r=e[a].indent_level;for(let t=a+1;t<e.length;t+=1){let a=e[t];if("wbs_header"===a.row_type&&a.indent_level<=r)break;if("activity"===a.row_type&&a.activity_id)return a.activity_id}return null}function er(e){let t=[],a=new Map;for(let r of e){if("wbs_header"===r.row_type&&r.wbs_id){for(;t.length>0&&t[t.length-1].indent>=r.indent_level;)t.pop();t.push({indent:r.indent_level,wbs_id:r.wbs_id});continue}"activity"===r.row_type&&r.activity_id&&a.set(r.activity_id,t.map(e=>e.wbs_id))}return a}function en(e,t,a){let r=new Set;for(let n of Array.from(t)){let t=e.get(n);if(t)for(let e of t)a.has(e)&&r.add(e)}return Array.from(r)}function ei(e,t,a){let r=en(t,a,e);if(0===r.length)return null;let n=new Set(e);for(let e of r)n.delete(e);return n}function el(e,t,a,r,n){return!t||a?e:ei(e,r,n)??e}function es(e,t,a=!1){return{width:e,minWidth:e,maxWidth:e,left:t,...a?{boxShadow:"2px 0 4px -2px rgba(15, 23, 42, 0.12)"}:{}}}function eo(e,t){let a=t?e?.[t]:void 0;return a?{predecessors:new Set(a.predecessors.map(([e])=>e)),successors:new Set(a.successors.map(([e])=>e))}:{predecessors:new Set,successors:new Set}}},99992:(e,t,a)=>{"use strict";a.d(t,{R:()=>i,T:()=>n});var r=a(53007);function n(e){return{...r.mW,sortBy:e.sortBy,sortAsc:e.sortAsc}}let i={startOnOrAfter:null,finishOnOrBefore:null}}}]);
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.