PageSourceSearch

https://portal.commoninterest.com/assets/to-do-list-BsW1C9JF.js

js commoninterest.com collected 2026-09-24 13:27:52 UTC 16,051 bytes, 1 lines download raw bytes

1import{u as J,r as n,j as t,F as C,aR as G,k as $,S as V,aP as Ie,B as Q,bK as ke,a_ as je,bC as Ce,aT as Ne,aa as De,z as we,bJ as ve}from"./elements-DVh2jUIM.js";import{c as Se}from"./clickableCardProps-D_7666nR.js";import{a as ye,B as L}from"./BoardTabPills-BNINpPaI.js";import{C as X,B as P,a as Me}from"./BoardTaskDecisionModals-CVmVCPnH.js";import{M as Te}from"./MobileCardButton-CebfhP3v.js";import{u as Fe,a as Ae,g as Re}from"./useMobileRedesignActive-BZoYJS32.js";import{M as $e}from"./MobileSearchSortList-DhhkO3rr.js";import{M as Be}from"./MobileTable-3_DrS7X0.js";import{u as Y}from"./useBoardFrustrationEnabled-DO3xOrwY.js";import{G as Ee}from"./GridSettings-CRFyN887.js";import{u as Le}from"./useAttachmentViewer-CxkfXrEj.js";import{x as Z,G as Pe,j as Oe,am as _e}from"./index-DeQvL4I7.js";import{u as We,a as qe,g as ee,b as te}from"./boardTaskCategories-DqMD85n5.js";import"./NoteContent-T4pgf4E0.js";import{S as Ue}from"./SendMessageModal-CN5Qqgxv.js";import{M as ze}from"./ModernPortalPage-C8UaH3aE.js";import{B as Ke}from"./BoardListDetailOutlet-Bl3ZVN15.js";import{A as Ge}from"./authorization-CE7gncHO.js";import"./FilterableGridFilters-FmWNR7j1.js";import"./useIsMobile-Davbtvz5.js";import"./board-arc-requests-DriAzWiq.js";import"./useMutation-CfDMVIpo.js";import"./board-requests-BufpzAUw.js";import"./grids-DXrfAsUA.js";import"./DeclineModal-BTeqVDlm.js";import"./index.esm-BsOhZrKM.js";import"./CollectionDecisionModal-BjmBmGZR.js";import"./ViolationDecisionModal-DySxPNvo.js";import"./WorkOrderDecisionModal-C8f6YJrL.js";import"./useMobileRedesignBoardPages-CLS9im5M.js";import"./useRedesign-DVyq07A4.js";import"./startOfDay-AazlW55I.js";import"./board-portal-requests-BfgGLja0.js";import"./index-DWdRGcKw.js";import"./MessageForm-BADqpkoZ.js";import"./useMessageComposer-DeQiPBu-.js";import"./useAuthorization-D7B2eQha.js";const O="board-tasks-grid",Ve="all-items",Xe=a=>`type:${a}`,He=["itemDetails","hasAttachments"],Je=new Set(["actions","statusIndicator"]),H=({item:a,associationId:N,security:k,onSendMessage:f,onApproveDecline:r,expand:i="left",hideView:D=!1})=>{const{t:d}=J(),S=Z(),h=Y(),g=k?ee(k,a.actionCategoryId,a.decision):null,w=(g==null?void 0:g.canMessage)??!1,b=a.isDecision&&((g==null?void 0:g.canApproveDecline)??!1),p=w||b;return h?t.jsx("div",{className:"flex gap-2 items-center justify-end w-full",children:p&&t.jsxs(t.Fragment,{children:[b&&t.jsxs(t.Fragment,{children:[t.jsx(L,{action:"approve",onClick:m=>{m.stopPropagation(),r(a,!0)},"data-qa":`task-approve-${a.actionItemId}`,"data-feature":`task-approve-${a.actionItemId}`,children:d("board.tasks.actions.approve")}),t.jsx(L,{action:"decline",onClick:m=>{m.stopPropagation(),r(a,!1)},"data-qa":`task-decline-${a.actionItemId}`,"data-feature":`task-decline-${a.actionItemId}`,children:d("board.tasks.actions.decline")})]}),w&&t.jsx(L,{action:"message","aria-label":d("board.tasks.actions.sendMessage"),onClick:m=>{m.stopPropagation(),f(a)},"data-qa":`task-send-message-${a.actionItemId}`,"data-feature":`task-send-message-${a.actionItemId}`,children:d("board.tasks.actions.message")})]})}):t.jsxs("div",{className:"flex flex-wrap gap-2 items-center justify-end w-full",children:[!D&&t.jsx(Q,{size:"xs",variant:"passiveOutline","data-qa":`task-view-${a.actionItemId}`,"data-feature":`task-view-${a.actionItemId}`,onClick:()=>S(te(a,N)),children:d("board.tasks.actions.view")}),p&&t.jsx(Ce,{text:t.jsxs(t.Fragment,{children:[t.jsx(C,{icon:ve}),t.jsx("span",{className:"sr-only",children:d("board.tasks.columns.action")})]}),variant:"passiveOutline",size:"xs",expand:i,items:[...b?[t.jsxs("button",{className:"px-3 py-2 text-sm flex flex-row items-center gap-2 w-full",onClick:()=>r(a,!0),"data-qa":`task-approve-${a.actionItemId}`,"data-feature":`task-approve-${a.actionItemId}`,children:[t.jsx(C,{className:"text-success",icon:Ne}),t.jsx("span",{children:d("board.tasks.actions.approve")})]},"approve-button"),t.jsxs("button",{className:"px-3 py-2 text-sm flex flex-row items-center gap-2 w-full",onClick:()=>r(a,!1),"data-qa":`task-decline-${a.actionItemId}`,"data-feature":`task-decline-${a.actionItemId}`,children:[t.jsx(C,{className:"text-error",icon:De}),t.jsx("span",{children:d("board.tasks.actions.decline")})]},"decline-button")]:[],...w?[t.jsxs("button",{className:"px-3 py-2 text-sm flex flex-row items-center gap-2 w-full",onClick:()=>f(a),"data-qa":`task-send-message-${a.actionItemId}`,"data-feature":`task-send-message-${a.actionItemId}`,children:[t.jsx(C,{className:"text-base-icon",icon:we}),t.jsx("span",{children:d("board.tasks.actions.sendMessage")})]},"send-message-button")]:[]],"data-qa":`task-actions-menu-${a.actionItemId}`})]})},Qe=()=>{const{t:a}=J(),{showAttachments:N}=Le(),k=Z(),f=Pe(),r=(f==null?void 0:f.id)??0,i=n.useRef(null),D=n.useRef(null),{isMobile:d,isMobileRedesignActive:S}=Fe(),h=Y(),g=n.useRef(""),w=Oe(e=>e.gridsColumnState),b=n.useMemo(()=>w[O],[w]),[p,m]=n.useState(null),[_,v]=n.useState(0),[ae,se]=n.useState(0);n.useEffect(()=>{m(null),v(0)},[r]);const{data:F,isLoading:ne,refetch:W}=We({associationId:r}),{data:l,isLoading:oe}=qe({associationId:r}),B=ne||oe,x=n.useMemo(()=>(F==null?void 0:F.items)??[],[F]),re=n.useMemo(()=>l!=null&&x.some(e=>e.isDecision&&ee(l,e.actionCategoryId,e.decision).canApproveDecline),[l,x]),q=(l==null?void 0:l.canSendMessage)===!0||(l==null?void 0:l.isArcAdmin)===!0||re,u=n.useMemo(()=>{const e=new Map;for(const s of x){const o=s.typeDescription??"";o&&e.set(o,(e.get(o)??0)+1)}return Array.from(e.entries()).sort(([s],[o])=>s.localeCompare(o)).map(([s,o])=>({name:s,count:o}))},[x]),ie=n.useMemo(()=>[Ve,...u.map(e=>Xe(e.name))],[u]),c=n.useMemo(()=>p?x.filter(e=>e.typeDescription===p):x,[x,p]),j=n.useCallback(e=>{var o;const s=((o=i.current)==null?void 0:o.getDisplayedRows())??c;k(te(e,r),{state:{taskItems:s.map(({actionItemId:I,actionCategoryId:E})=>({actionItemId:I,actionCategoryId:E}))}})},[r,c,k]);n.useEffect(()=>{var e;(e=i.current)==null||e.setRowData(c)},[c]);const le=n.useCallback(e=>{var s;if(D.current=((s=i.current)==null?void 0:s.getColumnState())??null,e===0)m(null);else{const o=u[e-1];o&&m(o.name)}v(e)},[u]),A=n.useMemo(()=>[{label:`${a("board.tasks.allItems")} (${x.length})`,value:""},...u.map(e=>({label:`${e.name} (${e.count})`,value:e.name}))],[a,x.length,u]),ce=n.useMemo(()=>A.find(e=>e.value===(p??""))??A[0],[A,p]);n.useEffect(()=>{if(!p)return;const e=u.findIndex(s=>s.name===p);e<0?(m(null),v(0)):v(e+1)},[u,p]);const de=n.useCallback(e=>{var o;D.current=((o=i.current)==null?void 0:o.getColumnState())??null;const s=e.value;if(!s)m(null),v(0);else{m(s);const I=u.findIndex(E=>E.name===s);v(I>=0?I+1:0)}},[u]),y=n.useCallback(e=>{N({actionItemId:e.actionItemId,title:a("board.tasks.task")})}
1,[N,a]),[U,z]=n.useState({open:!1,actionItemId:0}),M=n.useCallback(e=>{z({open:!0,actionItemId:e.actionItemId})},[]),me=n.useCallback(()=>{z({open:!1,actionItemId:0})},[]),[ue,K]=n.useState(X),T=n.useCallback((e,s)=>{K({open:!0,actionItemId:e.actionItemId,categoryId:e.actionCategoryId,isApproval:s,decision:e.decision})},[]),pe=n.useCallback(async()=>{K(X),await W(),se(e=>e+1)},[W]),fe=n.useMemo(()=>[{field:"statusIndicator",headerName:a("board.tasks.columns.status").toString(),sortable:!1,minWidth:155,maxWidth:155,filter:!1,suppressMenu:!0,cellRenderer:e=>e.data?t.jsx(P,{value:e.data.statusIndicator}):null},{field:"itemDetails",headerName:a("board.tasks.columns.itemDetails").toString(),minWidth:250,filter:"agTextColumnFilter",floatingFilter:!0,wrapText:!0,autoHeight:!0,cellRenderer:e=>{const s=e.data;return s?t.jsxs("div",{className:"flex flex-col py-2",children:[t.jsxs("span",{className:"font-semibold text-base-header text-sm",children:[s.typeDescription,s.stepDescription?` / ${s.stepDescription}`:""]}),t.jsx("span",{className:"text-base-fg text-xs whitespace-pre-line",children:s.itemDetails})]}):null}},{field:"hasAttachments",headerName:a("board.tasks.columns.attachment").toString(),sortable:!1,minWidth:100,filter:!1,cellRenderer:e=>{const s=e.data;return s!=null&&s.hasAttachments?t.jsxs("button",{type:"button",className:"text-base-link hover:underline text-sm font-medium flex items-center gap-1",onClick:o=>{o.stopPropagation(),y(s)},"data-qa":`task-attachment-${s.actionItemId}`,"data-feature":`task-attachment-${s.actionItemId}`,"aria-label":a("board.tasks.columns.attachment").toString(),children:[a("board.tasks.view").toString(),t.jsx(C,{icon:G,className:"w-3 h-3"})]}):null}},{colId:"actions",headerName:a("board.tasks.columns.action").toString(),sortable:!1,resizable:!1,...(()=>{const e=h?350:200;return{width:e,minWidth:e,maxWidth:e}})(),filter:!1,suppressMenu:!0,cellRenderer:e=>e.data?t.jsx(H,{item:e.data,associationId:r,security:l,onSendMessage:M,onApproveDecline:T}):null},{field:"associationId",headerName:a("board.tasks.columns.assocCode").toString(),hide:!0,minWidth:120,filter:"agNumberColumnFilter",floatingFilter:!0},{field:"ownerId",headerName:a("board.tasks.columns.ownerId").toString(),hide:!0,minWidth:120,filter:"agNumberColumnFilter",floatingFilter:!0},{field:"subject",headerName:a("board.tasks.columns.subject").toString(),hide:!0,minWidth:220,filter:"agTextColumnFilter",floatingFilter:!0},{field:"actionItemId",headerName:a("board.tasks.columns.xn").toString(),hide:!0,minWidth:100,filter:"agNumberColumnFilter",floatingFilter:!0},{field:"stepDescription",headerName:a("board.tasks.columns.description").toString(),hide:!0,minWidth:220,filter:"agTextColumnFilter",floatingFilter:!0,wrapText:!0,autoHeight:!0,cellClass:"!leading-snug py-2 text-sm"},{field:"followUpDate",headerName:a("board.tasks.columns.followUpDate").toString(),hide:!0,minWidth:160,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?$(new Date(e),{format:"numeric"}):""},{field:"dueDate",headerName:a("board.tasks.columns.dueDate").toString(),hide:!0,minWidth:160,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?$(new Date(e),{format:"numeric"}):""},{field:"createdUtc",headerName:a("board.tasks.columns.createdDate").toString(),hide:!0,minWidth:170,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?$(new Date(e),{format:"numeric"}):""},{field:"lastNoteDateUtc",headerName:a("board.tasks.columns.lastNoteTime").toString(),hide:!0,minWidth:180,filter:"agDateColumnFilter",floatingFilter:!0,valueFormatter:({value:e})=>e?$(new Date(e),{format:"numeric"}):""}].filter(e=>e.colId!=="actions"||q||!h),[a,l,r,h,q,y,M,T,j]),R=n.useCallback(e=>[e.actionItemId.toString(),e.typeDescription,e.stepDescription,e.itemDetails,e.subject,e.ownerName,e.propertyAddress],[]),xe=n.useCallback(e=>{g.current=e},[]),he=n.useCallback(()=>{if(i.current)if(d){const e=g.current.trim().toLowerCase(),s=e?c.filter(o=>R(o).some(I=>I==null?void 0:I.toLowerCase().includes(e))):c;i.current.setRowData(s),i.current.exportExcel({fileName:a("board.tasks.exportFileName"),exportedRows:"all",exportAsExcelTable:!0,columnKeys:He}),i.current.setRowData(c)}else{const e=i.current.getColumnState().map(s=>s.colId).filter(s=>!Je.has(s));i.current.exportExcel({fileName:a("board.tasks.exportFileName"),exportedRows:"filteredAndSorted",exportAsExcelTable:!0,columnKeys:e})}},[d,c,R,a]);n.useEffect(()=>{var s;const e=D.current??b;D.current=null,e&&((s=i.current)==null||s.applyColumnState({state:e,applyOrder:!0}))},[_,b]);const ge=n.useCallback(e=>t.jsxs("div",{className:`p-3 w-full rounded-md border border-base-border flex flex-col gap-2 text-sm ${h?"cursor-pointer":""}`,...h?Se(()=>j(e)):{},children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(P,{value:e.statusIndicator}),t.jsx("span",{className:"font-medium text-base-header",children:e.typeDescription})]}),e.hasAttachments&&t.jsx("button",{type:"button",className:"text-base-link hover:underline text-sm font-medium flex items-center gap-1",onClick:s=>{s.stopPropagation(),y(e)}
1,"aria-label":a("board.tasks.columns.attachment").toString(),children:t.jsx(C,{icon:G,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.itemDetails&&t.jsx("span",{className:"text-base-fg text-xs whitespace-pre-line",children:e.itemDetails}),t.jsx("div",{className:"flex items-center justify-end",children:t.jsx(H,{item:e,associationId:r,security:l,expand:"right",onSendMessage:M,onApproveDecline:T})})]}),[j,l,r,h,y,M,T,j,a]),be=n.useCallback(e=>t.jsxs("div",{className:`p-3 w-full flex flex-col gap-2 text-sm ${Ae}`,children:[t.jsx("div",{className:"flex items-center justify-between",children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(P,{value:e.statusIndicator}),t.jsx("span",{className:"font-medium text-base-header",children:e.typeDescription})]})}),t.jsx(Te,{onClick:()=>j(e),"aria-label":`${a("board.tasks.actions.view").toString()} 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.itemDetails&&t.jsx("span",{className:"text-base-fg text-xs whitespace-pre-line",children:e.itemDetails})]})})]}),[j,l,y,M,T,a]);return B&&c.length===0?t.jsx("div",{className:"w-full bg-base-fill rounded-xl px-6 py-12 flex items-center justify-center",children:t.jsx(V,{})}):t.jsxs("div",{...Re(S,"w-full bg-base-fill rounded-xl px-9 py-6 max-mobile:px-4 space-y-4 relative"),"data-qa":"board-tasks-container","data-feature":"board-tasks-page",children:[t.jsx("div",{className:"max-mobile:hidden",children:t.jsx(ye,{options:ie,selectedIndex:_,onChange:le,getLabel:(e,s)=>{var o;return s===0?a("board.tasks.allItems"):((o=u[s-1])==null?void 0:o.name)??""},getCount:(e,s)=>{var o;return s===0?x.length:(o=u[s-1])==null?void 0:o.count},"data-qa":"board-tasks-tabs"})}),t.jsx("div",{className:"mobile:hidden",children:t.jsx(Ie,{label:a("board.tasks.filterByType"),labelClassName:"sr-only",options:A,value:ce,onChange:de,"data-qa":"task-type-filter","data-feature":"task-type-filter"})}),t.jsxs("div",{className:"flex justify-end gap-4",children:[!S&&t.jsx(Q,{size:"sm",variant:"passive",onClick:he,endIcon:t.jsx(C,{icon:ke}),"data-qa":"export-btn","data-feature":"board-tasks-export",children:a("main.common.export")}),t.jsx("div",{className:"max-mobile:hidden",children:t.jsx(Ee,{gridId:O,gridRef:i})})]}),t.jsx("div",{className:"max-mobile:hidden",children:t.jsx(je,{ref:i,gridId:O,rowData:c,columnDefs:fe,enableClipboard:!0,columnMenu:"legacy",pageSizeFromParent:10,resetPaginationOnDataChange:!0,getRowId:({data:e})=>e.actionItemId.toString(),onRowClicked:h?({data:e})=>{e&&j(e)}:void 0,suppressLoadingOverlay:!B,overlayNoRowsTemplate:`<span class="text-base-fg">${a("board.tasks.noTasks")}</span>`,onFirstDataRendered:()=>{i.current&&b&&i.current.applyColumnState({state:b,applyOrder:!0})}},`${r}-${ae}`)}),t.jsx("div",{className:"mobile:hidden",children:S?t.jsx(Ye,{items:c,getSearchableFields:R,renderCard:be}):t.jsx(Be,{items:c,renderItem:ge,getSearchableFields:R,sortFn:(e,s)=>e.actionItemId-s.actionItemId,onFilterChange:xe})}),B&&c.length>0&&t.jsx("div",{className:"absolute inset-0 bg-base-fill/50 flex items-center justify-center rounded-xl",children:t.jsx(V,{})}),t.jsx(Ue,{open:U.open,onClose:me,actionItemId:U.actionItemId}),t.jsx(Me,{decisionModal:ue,associationId:r,onClose:pe})]})},Ye=({items:a,getSearchableFields:N,renderCard:k})=>t.jsx($e,{items:a,getSearchableFields:N,sortFn:(f,r)=>f.actionItemId-r.actionItemId,getItemKey:f=>f.actionItemId,renderItem:k}),Et={title:"Board Tasks",showPropertySelector:!0,showAi:!0,redesignPage:"boardTasksPage",redesignHandle:{customContentId:["ToDoList","Board_v2"]}};function Lt(){const a=_e("boardTasksPage");return t.jsx(Ge,{controller:"Board_v2",action:"ToDoList",children:a?t.jsx(Ke,{children:t.jsx(Qe,{})}):t.jsx(ze,{action:"ToDoList",controller:"Board_v2"})})}export{Lt as Component,Et 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.