1import{u as k,j as t,B as z,bC as je,F as f,aT as we,aa as Ie,z as Ce,cm as Ne,r as o,aR as ie,k as x,S as W,cn as De,a_ as oe,co as ye}from"./elements-5kxJS_4j.js";import{M as Se}from"./ModernPortalPage-ZOfMD2FX.js";import{B as Me}from"./BoardListDetailOutlet-BLfTYBPG.js";import{u as Fe}from"./useSavedGridPageSize-iR3hnzqU.js";import{B as _,a as Ae}from"./BoardTabPills-k6mLXMRn.js";import{M as Re}from"./MobileCardButton-D6bsn729.js";import{u as Te,a as Pe,g as ke}from"./useMobileRedesignActive-7HkeUmjL.js";import{M as $e}from"./MobilePillTabs-CEvHclwf.js";import{M as Be}from"./MobileSearchSortList-SnRnltaF.js";import{M as Ee}from"./MobileTable-C7aibx3F.js";import{r as Ve,u as qe,R as Le}from"./useRequestHistoryTelemetry-BplUFfRL.js";import{G as Oe}from"./GridSettings-BQybxGtG.js";import{u as We}from"./useAttachmentViewer-BQoPBwhJ.js";import{u as _e,c as Ue,e as ze}from"./board-requests-01BmDrLN.js";import{x as He,G as Ge,j as Ke,am as Xe}from"./index-CtCeyryw.js";import{u as Ye,a as Je,V as Qe,m as ne}from"./ViolationDecisionModal-CoCy-Om7.js";import"./NoteContent-BKv-Srb-.js";import{S as Ze}from"./SendMessageModal-r-MvvBTt.js";import{B as U}from"./BoardStatusIndicator-DIMjCsE9.js";import{c as et}from"./clickableCardProps-H_WzBPvj.js";import{g as tt}from"./boardDetailItemIds-CezeTAyo.js";import{u as st}from"./useBoardFrustrationEnabled-D-vRo-Pq.js";import{A as at}from"./authorization-DRCBMAi9.js";import"./useAuthorization-XS6cSJ0I.js";import"./FilterableGridFilters-BSwkYGCZ.js";import"./useIsMobile-DE0QDUth.js";import"./useMobileRedesignBoardPages-BgUjR8UU.js";import"./subDays-BmZFCyDz.js";import"./addMonths-BU5XNL5s.js";import"./startOfDay-AazlW55I.js";import"./addDays-Le9Cqm9z.js";import"./subMonths-BEZpMnR7.js";import"./useRedesign-xeayEwR4.js";import"./grids-DGmfp9GI.js";import"./boardDecisionActions-BmpNgjt4.js";import"./useMutation-jkV-6MpM.js";import"./index-BSR_b3JY.js";import"./MessageForm-CoPnETZi.js";import"./index.esm-GMeyTKQp.js";import"./useMessageComposer-BQ7Z4YY2.js";import"./board-portal-requests-Dhj4UIYh.js";const re=({violation:s,onDecision:l,onSendMessage:m})=>{const{t:n}=k();return t.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[s.isDecision&&t.jsxs(t.Fragment,{children:[t.jsx(_,{action:"approve","data-qa":`violations-row-approve-${s.actionItemId}`,onClick:i=>{i.stopPropagation(),l(s,!0)},children:n("board.violations.actions.approve")}),t.jsx(_,{action:"decline","data-qa":`violations-row-decline-${s.actionItemId}`,onClick:i=>{i.stopPropagation(),l(s,!1)},children:n("board.violations.actions.decline")})]}),t.jsx(_,{action:"message","aria-label":n("board.violations.actions.sendMessage"),"data-qa":`violations-row-send-message-${s.actionItemId}`,onClick:i=>{i.stopPropagation(),m(s)},children:n("board.violations.actions.message")})]})},it=({violation:s,onDecision:l,onSendMessage:m})=>{const{t:n}=k();return t.jsx(je,{text:t.jsxs(t.Fragment,{children:[t.jsx(f,{icon:Ne}),t.jsx("span",{className:"sr-only",children:n("board.violations.columns.action")})]}),variant:"passiveOutline",size:"xs",expand:"left",items:[...s.isDecision?[t.jsxs("button",{"data-qa":`violations-row-approve-${s.actionItemId}`,className:"px-3 py-2 text-sm flex flex-row items-center gap-2 w-full",onClick:i=>{i.stopPropagation(),l(s,!0)},children:[t.jsx(f,{className:"text-success",icon:we}),t.jsx("span",{children:n("board.violations.actions.approve")})]},"approve-button"),t.jsxs("button",{"data-qa":`violations-row-decline-${s.actionItemId}`,className:"px-3 py-2 text-sm flex flex-row items-center gap-2 w-full",onClick:i=>{i.stopPropagation(),l(s,!1)},children:[t.jsx(f,{className:"text-error",icon:Ie}),t.jsx("span",{children:n("board.violations.actions.decline")})]},"decline-button")]:[],t.jsxs("button",{"data-qa":`violations-row-send-message-${s.actionItemId}`,className:"px-3 py-2 text-sm flex flex-row items-center gap-2 w-full",onClick:i=>{i.stopPropagation(),m(s)},children:[t.jsx(f,{className:"text-base-icon",icon:Ce}),t.jsx("span",{children:n("board.violations.actions.sendMessage")})]},"send-message-button")],"data-qa":`violations-row-actions-menu-${s.actionItemId}`})},ot=({violation:s,canAdd:l,onView:m,onDecision:n,onSendMessage:i})=>{const{t:r}=k();return t.jsxs("div",{className:"flex flex-wrap gap-2 items-center",children:[t.jsx(z,{variant:"passiveOutline",size:"xs","data-qa":`violations-row-view-${s.actionItemId}`,onClick:h=>{h.stopPropagation(),m(s)},children:r("board.violations.view")}),l&&t.jsx(it,{violation:s,onDecision:n,onSendMessage:i})]})},le=["myItems","open","closed"],ce=[0,1,2],S="board-violations-grid",nt=["stepDescription","violationType","description","followUpDate","hasAttachments"];function rt(s){const l=s.value?x(new Date(s.value),{format:"numeric"}):"";return t.jsx("span",{"data-qa-value":l,children:l})}const lt=()=>{const{t:s}=k(),{showAttachments:l}=We(),m=He(),n=Ge(),i=(n==null?void 0:n.id)??0,r=o.useRef(null),[h,de]=o.useState(null),$=o.useRef(null),{isMobile:M,isMobileRedesignActive:F}
1=Te(),B=_e(),I=B&&!M,[C,me]=o.useState("all"),A=o.useMemo(()=>Ve(C).submittedAfter,[C]),H=o.useRef(""),G=Ke(e=>e.gridsColumnState),g=o.useMemo(()=>G[S],[G]),K=Fe(S),{data:v,isLoading:pe}=Ye(i),[c,E]=o.useState(null);o.useEffect(()=>{E(null)},[i]),o.useEffect(()=>{v&&c===null&&E(v.defaultToMyItems?0:1)},[v,c]);const{data:V,isLoading:q}=Je({associationId:i,mode:c??0,showAll:!0},!I),d=(V==null?void 0:V.member)??[],{onDataSettled:X,onFilterChanged:Y}=qe({page:"violations",persona:"board",getDimensions:()=>({range:C,associationId:i,pageSize:10})});o.useEffect(()=>{Y()},[C,Y]);const ue=o.useMemo(()=>Ue(()=>({category:"violations",associationId:i,mode:c??0,submittedAfter:A}),ne,({resultCount:e})=>X({resultCount:e})),[i,c,A,X]),J=c!==null?ce.indexOf(c):-1,Q=o.useCallback(e=>{var a;$.current=((a=r.current)==null?void 0:a.getColumnState())??null,E(ce[e])},[]),u=o.useCallback(e=>{const a=tt(r.current,d,({actionItemId:y})=>y),D=new URLSearchParams({associationId:i.toString()});m(`/board/violations/${e.actionItemId}?${D.toString()}`,{state:{itemIds:a}})},[m,i,d]),N=o.useCallback(e=>{l({actionItemId:e.actionItemId,title:s("board.violations.violation")})},[l,s]),b=((v==null?void 0:v.canEdit)??!1)&&c===0,p=st(),[L,Z]=o.useState({open:!1,violation:null,isApproval:!0}),j=o.useCallback((e,a)=>{Z({open:!0,violation:e,isApproval:a})},[]),xe=o.useCallback(()=>{Z({open:!1,violation:null,isApproval:!0})},[]),[ee,te]=o.useState({open:!1,actionItemId:0}),w=o.useCallback(e=>{te({open:!0,actionItemId:e.actionItemId})},[]),fe=o.useCallback(()=>{te({open:!1,actionItemId:0})},[]),he=o.useCallback(e=>t.jsxs("div",{className:`p-3 w-full rounded-md border border-base-border flex flex-col gap-2 text-sm ${p?"cursor-pointer":""}`,...p?et(()=>u(e)):{},children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(U,{value:e.statusIndicator}),t.jsx("span",{className:"font-medium text-base-header",children:e.stepDescription})]}),e.hasAttachments&&t.jsx("button",{type:"button","data-qa":"violations-mobile-view-attachment","aria-label":`${s("board.violations.view")} ${s("board.violations.violation")} XN ${e.actionItemId}`,className:"text-base-link hover:underline text-sm font-medium flex items-center gap-1",onClick:a=>{a.stopPropagation(),N(e)},children:t.jsx(f,{icon:ie,className:"w-3 h-3"})})]}),t.jsx("div",{children:t.jsxs("span",{className:"font-semibold text-base-header text-sm",children:[e.typeDescription,e.stepDescription?` / ${e.stepDescription}`:""]})}),e.description&&t.jsx("span",{className:"text-base-fg text-xs whitespace-pre-line",children:e.description}),t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center gap-3 text-xs text-input-fg",children:[e.violationType&&t.jsx("span",{children:e.violationType}),e.followUpDate&&t.jsx("span",{children:x(new Date(e.followUpDate),{format:"numeric",naive:!0})})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[!p&&t.jsx(z,{variant:"passiveOutline",size:"xs","data-qa":"violations-mobile-view",onClick:a=>{a.stopPropagation(),u(e)},children:s("board.violations.view")}),b&&t.jsx(re,{violation:e,onDecision:j,onSendMessage:w})]})]})]}),[u,N,b,j,w,p,s]),be=o.useCallback(e=>t.jsxs("div",{className:`p-3 w-full flex flex-col gap-2 text-sm ${Pe}`,children:[t.jsx("div",{className:"flex items-center justify-between",children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(U,{value:e.statusIndicator}),t.jsx("span",{className:"font-medium text-base-header",children:e.stepDescription})]})}),t.jsx(Re,{onClick:()=>u(e),"aria-label":`${s("board.violations.view")} XN ${e.actionItemId}`,children:t.jsxs("div",{className:"flex-1 flex flex-col gap-2 min-w-0",children:[t.jsx("div",{children:t.jsxs("span",{className:"font-semibold text-base-header text-sm",children:[e.typeDescription,e.stepDescription?` / ${e.stepDescription}`:""]})}),e.description&&t.jsx("span",{className:"text-base-fg text-xs whitespace-pre-line",children:e.description})]})}),t.jsx("div",{className:"flex items-center justify-between",children:t.jsxs("div",{className:"flex items-center gap-3 text-xs text-input-fg",children:[e.violationType&&t.jsx("span",{children:e.violationType}),e.followUpDate&&t.jsx("span",{children:x(new Date(e.followUpDate),{format:"numeric",naive:!0})})]})})]}),[u,N,b,j,w,s]),se=o.useMemo(()=>[...B?[{colId:"dateSubmitted",field:"createdUtc",headerName:s("board.violations.columns.dateSubmitted"),minWidth:150,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?x(new Date(e),{format:"numeric"}):"",cellRenderer:rt}]:[],{field:"actionItemId",headerName:s("board.violations.columns.xn"),hide:!0,minWidth:100,filter:"agTextColumnFilter",floatingFilter:!0},{field:"stepDescription",headerName:s("board.violations.columns.step"),minWidth:140,filter:"agTextColumnFilter",floatingFilter:!0,cellRenderer:e=>{const a=e.data;return a?t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(U,{value:a.statusIndicator}),t.jsx("span",{children:a.stepDescription})]}):null}},{field:"followUpDate",headerName:s("board.violations.columns.followUpDate"),minWidth:140,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?x(new Date(e),{format:"numeric",naive:!0}):""},{field:"ownerName",headerName:"Homeowner",hide:!0,minWidth:180,filter:"agTextColumnFilter",floatingFilter:!0},{field:"propertyAddress",headerName:"Property Address",hide:!0,minWidth:220,filter:"agTextColumnFilter",floatingFilter:!0},{field:"violationType",headerName:s("board.violations.columns.violationType"),minWidth:160,filter:"agTextColumnFilter",floatingFilter:!0},{field:"itemDetails",headerName:s("board.violations.columns.itemDetails"),minWidth:250,filter:"agTextColumnFilter",floatingFilter:!0,wrapText:!0,autoHeight:!0,cellRenderer:e=>{const a=e.data;return a?t.jsxs("div",{className:"flex flex-col py-2",children:[t.jsxs("span",{className:"font-semibold text-base-header text-sm",children:[a.typeDescription,a.stepDescription?` / ${a.stepDescription}`:""]}),t.jsx("span",{className:"text-base-fg text-xs whitespace-pre-line",children:a.description})]}):null}},{field:"description",headerName:s("board.violations.columns.description"),minWidth:220,filter:"agTextColumnFilter",floatingFilter:!0,wrapText:!0,autoHeight:!0,cellClass:"!leading-snug py-2 text-sm"},{field:"subject",headerName:"Subject",hide:!0,minWidth:220,filter:"agTextColumnFilter",floatingFilter:!0},{field:"dueDate",headerName:"Due Date",hide:!0,minWidth:160,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?x(new Date(e),{format:"numeric",naive:!0}):""},{field:"createdUtc",headerName:"Created Date",hide:!0,minWidth:170,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?x(new Date(e),{format:"numeric"}):""},{field:"lastNoteDateUtc",headerName:"Last Note Date",hide:!0,minWidth:180,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?x(new Date(e),{format:"numeric"}):""},{field:"hasAttachments",headerName:s("board.violations.columns.attachment"),sortable:!1,minWidth:120,filter:!1,cellRenderer:e=>{const a=e.data;return a!=null&&a.hasAttachments?t.jsxs("button",{type:"button","data-qa":"violations-row-view-attachment",className:"text-base-link hover:underline text-sm font-medium flex items-center gap-1",onClick:D=>{D.stopPropagation(),N(a)},children:[s("board.violations.view"),t.jsx(f,{icon:ie,className:"w-3 h-3"})]}):null}},{colId:"actions",headerName:s("board.violations.columns.action"),sortable:!1,resizable:!1,...(()=>{const e=p?350:b?200:140;return{width:e,minWidth:e,maxWidth:e}})(),filter:!1,suppressMenu:!0,cellRenderer:e=>e.data?p?t.jsx(re,{violation:e.data,onDecision:j,onSendMessage:w}):t.jsx(ot,{violation:e.data,canAdd:b,onView:u,onDecision:j,onSendMessage:w}):null}].filter(e=>e.colId!=="actions"||b||!p),[s,B,b,p,u,N,j,w]),R=o.useCallback(e=>[e.actionItemId.toString(),e.stepDescription,e.typeDescription,e.description,e.violationType,e.ownerName,e.propertyAddress],[]),ge=o.useCallback(e=>{H.current=e},[]),ve=o.useCallback(()=>
1{if(r.current)if(M){const e=H.current.trim().toLowerCase(),a=e?d.filter(D=>R(D).some(y=>y==null?void 0:y.toLowerCase().includes(e))):d;r.current.setRowData(a),r.current.exportExcel({fileName:s("board.violations.exportFileName"),exportedRows:"all",exportAsExcelTable:!0,columnKeys:nt}),r.current.setRowData(d)}else if(I){if(!(h!=null&&h.api))return;ze({api:h.api,baseParams:{category:"violations",associationId:i,mode:c??0,submittedAfter:A},mapRow:ne,fileName:s("board.violations.exportFileName")})}else{const e=r.current.getColumnState().map(a=>a.colId).filter(a=>a!=="actions");r.current.exportExcel({fileName:s("board.violations.exportFileName"),exportedRows:"filteredAndSorted",exportAsExcelTable:!0,columnKeys:e})}},[M,d,R,s,I,h,i,c,A]);if(o.useEffect(()=>{var a;if(c===null)return;const e=$.current??g;$.current=null,e&&((a=r.current)==null||a.applyColumnState({state:e,applyOrder:!0}))},[c,g]),pe||c===null)return t.jsx("div",{className:"w-full bg-base-fill rounded-xl px-6 py-12 flex items-center justify-center",children:t.jsx(W,{})});const T=M?"mobile":"desktop",ae=t.jsxs("div",{className:"flex items-center gap-4",children:[I&&t.jsx(Le,{value:C,onChange:me,className:"w-[200px]"}),!F&&t.jsx(z,{size:"sm",variant:"passive","data-qa":"violations-export",onClick:ve,endIcon:t.jsx(f,{icon:De}),children:s("main.common.export")}),t.jsx("div",{className:"max-mobile:hidden",children:t.jsx(Oe,{gridId:S,gridRef:r})})]});let O;F?O=t.jsxs("div",{className:"flex justify-between items-center gap-4 flex-wrap",children:[t.jsx($e,{options:le,selectedIndex:J,onChange:Q,getLabel:e=>s(`board.violations.tabs.${e}`),"data-qa":"board-violations-mobile-tabs"}),ae]}):O=t.jsxs("div",{className:"flex justify-between items-center gap-4 flex-wrap",children:[t.jsx(Ae,{options:le,selectedIndex:J,onChange:Q,getLabel:e=>s(`board.violations.tabs.${e}`),"data-qa":"board-violations-tabs"}),ae]});let P;return q&&d.length===0?P=t.jsx("div",{className:"flex justify-center py-12",children:t.jsx(W,{})}):F?P=t.jsx(ct,{violations:d,getSearchableFields:R,renderCard:be},`violations-mobile-list-${T}`):P=t.jsx(Ee,{items:d,renderItem:he,getSearchableFields:R,sortFn:(e,a)=>e.actionItemId-a.actionItemId,onFilterChange:ge},`violations-mobile-list-${T}`),t.jsxs("div",{...ke(F,"w-full bg-base-fill rounded-xl px-9 py-6 max-mobile:px-4 space-y-4 relative"),children:[O,t.jsx("div",{className:"max-mobile:hidden",children:t.jsx(o.Suspense,{fallback:t.jsx("div",{className:"flex items-center justify-center py-12",children:t.jsx(f,{icon:ye,className:"w-8 h-8 text-primary animate-spin"})}),children:I?t.jsx(oe,{"data-qa":"violations-table",ref:r,gridId:S,serverSideDatasource:ue,columnDefs:se,enableClipboard:!0,columnMenu:"new",pageSizeFromParent:K,loadingRowHeight:84,getGridRef:de,getRowId:({data:e})=>e.actionItemId.toString(),overlayNoRowsTemplate:`<span class="text-base-fg">${s("board.violations.noViolations")}</span>`,onRowClicked:p?({data:e})=>{e&&u(e)}:void 0,onFirstDataRendered:()=>{r.current&&g&&r.current.applyColumnState({state:g,applyOrder:!0})}},`${i}-${T}-ssrm`):t.jsx(oe,{"data-qa":"violations-table",ref:r,gridId:S,rowData:d,columnDefs:se,enableClipboard:!0,columnMenu:"new",pageSizeFromParent:K,resetPaginationOnDataChange:!0,getRowId:({data:e})=>e.actionItemId.toString(),suppressLoadingOverlay:!q,overlayNoRowsTemplate:`<span class="text-base-fg">${s("board.violations.noViolations")}</span>`,onRowClicked:p?({data:e})=>{e&&u(e)}:void 0,onFirstDataRendered:()=>{r.current&&g&&r.current.applyColumnState({state:g,applyOrder:!0})}},`${i}-${T}`)})}),t.jsx("div",{className:"mobile:hidden",children:P}),q&&d.length>0&&t.jsx("div",{className:"absolute inset-0 bg-base-fill/50 flex items-center justify-center rounded-xl",children:t.jsx(W,{})}),t.jsx(Qe,{open:L.open,onClose:xe,violation:L.violation,associationId:i,isApproval:L.isApproval}),t.jsx(Ze,{open:ee.open,onClose:fe,actionItemId:ee.actionItemId})]})},ct=({violations:s,getSearchableFields:l,renderCard:m})=>t.jsx(Be,{items:s,getSearchableFields:l,sortFn:(n,i)=>n.actionItemId-i.actionItemId,getItemKey:n=>n.actionItemId,renderItem:m}),Zt={title:"Violations",showPropertySelector:!0,showAi:!0,redesignPage:"violationsPage",redesignHandle:{customContentId:["ActionItems_Violations","Board_v2"]}};function es(){const s=Xe("violationsPage");return t.jsx(at,{controller:"Board_v2",action:"ActionItems_Violations",children:s?t.jsx(Me,{children:t.jsx(lt,{})}):t.jsx(Se,{action:"ActionItems_Violations",controller:"Board_v2"})})}export{es as Component,Zt as handle};
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.