1import{r,a as io,b as lo,c as co,d as uo,e as k,l as Y,j as i,T as O,f as N,g as B,G as mo,i as po,k as fo,m as y,n as w,B as go,P as _o,C as ho,I as Ee,o as wo}from"./index-ec743896.js";import{C as yo}from"./ContentPane-22d9e7b1.js";import{G as bo}from"./GenericList-3a5c7182.js";import{S as So,V as Co,a as xo}from"./ViewsPopover-3abe01cc.js";import{D as Do}from"./DeleteConfirmationDialog-feef896e.js";import{F as Ao,L as vo}from"./filterPills-6afc1b77.js";import{E as To}from"./ExportReport-586778cb.js";import{N as Oo}from"./index-3b85fb06.js";import{f as Eo}from"./utils-900c8459.js";import{g as Vo}from"./sortingHelper-e7ad416d.js";import{D as te}from"./columnAliases-02406299.js";import{t as Po,r as Ve,u as Ro}from"./useUserDefaultView-f1cb94e7.js";import{u as ko}from"./styles-5a79d921.js";import{g as No,f as Mo,a as Fo,d as Wo,e as zo,u as Io,c as Lo,b as Go,h as Yo}from"./reports.action-9426a04f.js";import{S as Bo}from"./Settings-1bbc2451.js";import{T as Uo}from"./TableChart-485f437b.js";import"./KeyboardArrowLeft-198c81ba.js";import"./SwitchBase-7904e789.js";import"./TableContainer-1f93e0ad.js";import"./SaveAs-9679c15c.js";import"./AddCircle-2c1a7ff9.js";import"./Delete-9eabf4c5.js";import"./RadioGroup-9232f6ef.js";import"./Radio-810bf8fe.js";import"./FormGroup-3e4c6f56.js";import"./FormControlLabel-fded703a.js";import"./Grid-f831aa45.js";import"./Switch-3a0f0de5.js";import"./DragIndicator-fa6467e5.js";import"./FilterSettings-ec13e151.js";import"./_baseAssignValue-7a437873.js";import"./_getPrototype-e69a27d2.js";import"./assetsInventory.service-40eb320f.js";import"./DesktopDatePicker-4e3cfd56.js";import"./index-955022cb.js";import"./useThemeProps-754c8194.js";import"./ToggleButtonGroup-6315cd3c.js";import"./ToggleButton-cc9f6e6c.js";import"./CheckBox-5a627b02.js";import"./ExpandLess-50142982.js";import"./ExpandMore-170f9baa.js";import"./Collapse-e406d6f6.js";import"./MergeType-2ae73dd8.js";import"./Tabs-a2410589.js";import"./CloudDownload-2836a576.js";import"./AutoAwesome-ead825b6.js";import"./Add-fc78de74.js";import"./Drawer-e6e9d36b.js";const Pe={view_name:"",description:"",access:"private",base_table:"work_order_loc",groups:[],configuration:{selected_columns:[],filters:"",filter_conditions:{operator:"AND",all_conditions:[]},aggregated_columns:[],grouped_columns:[],order_by:[]}},Ln=()=>{var Ce,xe,De,Ae,ve,Te;const v=r.useRef(null),re=r.useRef(null),ae=r.useRef(null),[se,ie]=r.useState(!1),[Re,ke]=r.useState(0),[U,Ne]=r.useState(null),[Me,Fe]=r.useState(window.innerWidth),H=r.useRef(null),le=r.useRef(null),b=io(),ce=ko(),{showSnackbar:_}=lo(),{can:E}=co(),V=uo(),{user:P}=k(e=>({user:e.auth.user,userTheme:e.auth.theme})),M=k(e=>e.assetsManagement.assets),F=k(e=>e.reportTables.tablesColumns),We=k(e=>e.userGroups.data),{data:ze,loading:Ie,pagination:ue}=k(e=>e.reportData),[g,j]=r.useState([]),[o,R]=r.useState(Pe),[q,me]=r.useState(!1),[Le,$]=r.useState(!1),[Ge,de]=r.useState(!1),[Ye,Q]=r.useState(!1),[Be,pe]=r.useState(null),[fe,X]=r.useState(null),[S,Ue]=r.useState(50),[He,je]=r.useState([]),[qe,$e]=r.useState(null),[T,W]=r.useState(!1),[J]=r.useState(!0),ge="Work Orders",_e=r.useMemo(()=>({PAGINATION_RESERVE:56,EXTRA_BOTTOM_GUTTER:24}),[]),he=_e.PAGINATION_RESERVE+_e.EXTRA_BOTTOM_GUTTER,Qe=r.useMemo(()=>typeof U=="number"?`calc(100vh - ${U+he}px)`:"calc(100vh - 320px)",[U,he]),z=r.useMemo(()=>Y.debounce(()=>ke(e=>e+1),50,{leading:!1,trailing:!0}),[]);r.useLayoutEffect(()=>{if(!J)return;const e=ae.current;if(!e)return;const n=requestAnimationFrame(()=>z());let s=null;return typeof ResizeObserver<"u"&&(s=new ResizeObserver(()=>z()),s.observe(e)),()=>{cancelAnimationFrame(n),s&&s.disconnect(),z.cancel()}},[J,o==null?void 0:o.id,z]),r.useEffect(()=>{const e=Y.debounce(()=>Fe(window.innerWidth),200);return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),e.cancel()}},[]);const I=r.useMemo(()=>Po(P),[P]),K=r.useMemo(()=>o!=null&&o.id?Ve({user:I,view:o}):null,[I,o]),{userDefaultViewId:L,updateUserDefaultView:we}=Ro({pageKey:"oldWorkOrderReportDefaultView"}),ye=r.useCallback(e=>{if(!e)return;const{selected_columns:n=[],grouped_columns:s=[],aggregated_columns:m=[],order_by:l=[]}=e,d=new Set(m.map(a=>a.column_name)),p=[...s.map(a=>({...a,type:"grouped"})),...n.map(a=>({...a,type:d.has(a.column_name)?"aggregated":"selected"}))].map(a=>{const c=l.find(u=>u.column_name===a.column_name);return c?{...a,order:c.order}:a}),h={...n.reduce((a,c)=>({...a,[c.column_name]:u=>{var Oe;const G=c.data_type;if(u!=null){if(c.column_name==="Collaborators"&&u)return i(O,{title:u,children:i("span",{children:u})});if(c.column_name==="Address"&&u){const ne=String(u).trim();return ne?i(O,{title:ne,children:i(N,{sx:{font:"inherit",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",display:"block",maxWidth:"100%"},children:ne})}):void 0}return G==="boolean"?`${!!u}`:(G==="date"&&(u=B(u).format("MM/DD/YYYY")),(["double precision","numeric","integer"].includes(G)||typeof u=="number")&&!c.column_name.toLocaleLowerCase().includes(" id")&&(u=parseFloat(u).toLocaleStr
1ing("en-US",{minimumFractionDigits:["Quantity","Life Time"].includes(c.column_name)?0:2,maximumFractionDigits:2})),["Cost","Price"].includes(c.column_name)&&(u="$"+u),["string","character varying","text"].includes(G)&&(u!=null&&u.includes("answer"))&&c.column_name==="Closing Answers"&&(u=((Oe=JSON.parse(u))==null?void 0:Oe.answer)||""),(c.column_name==="Priority"||c.column_name==="Status")&&(u=u&&u.slice(2)),i(N,{sx:{font:"inherit",whiteSpace:"pre-wrap"},children:u}))}}}),{})},t=Eo(p,h);je(t)},[]),C=r.useMemo(()=>{const{aggregated_columns:e,grouped_columns:n,order_by:s,selected_columns:m}=o.configuration;return{...o,configuration:{...o.configuration,aggregated_columns:e.map(l=>({...l,label:l.column_name,id:l.column_name})),grouped_columns:n.map(l=>({...l,label:l.column_name,id:l.column_name})),order_by:s.map(l=>({...l,label:l.column_name,id:l.column_name})),selected_columns:m.map(l=>({...l,label:l.column_name,id:l.column_name}))}}},[o]);r.useEffect(()=>{o!=null&&o.id&&ye(o.configuration)},[o,ye]),r.useEffect(()=>{const e=re.current;if(!e){ie(!1);return}const n=requestAnimationFrame(()=>{ie(e.scrollWidth>e.clientWidth)});return()=>cancelAnimationFrame(n)},[o==null?void 0:o.view_name]);const x=r.useCallback(({page_no:e,page_size:n,selectedReport:s})=>{s.configuration.current_date=B().format("YYYY-MM-DD"),b(No({page_no:e,page_size:n,selectedReport:s}))},[b]),A=r.useCallback(async e=>{let n=e;typeof e=="string"&&(n=g.find(s=>s.view_name===e)),n?(R(Y.cloneDeep(n)),x({page_no:1,page_size:S,selectedReport:n}),V("Work Order Reports - Open")):(R(Pe),b({type:mo,payload:{data:[],pagination:{current_page:1,total_count:1,total_pages:1}}}))},[g,b,x,S]),Xe=e=>{e.preventDefault(),e.stopPropagation(),pe(e.currentTarget)},Je=async()=>{Q(!1),W(!0);try{const e=o.id;await Wo(e);const n=g.filter(s=>s.id!==e);j(n),V("Work Order Reports - Save"),g.length===1?A(""):A(g[0])}catch(e){_(e.message,"error")}finally{W(!1)}},Ke=()=>{$(!0),v.current||(v.current=C)},Z=()=>{$(!1),me(!1)},Ze=async e=>{V("Work Orders Report Exported"),_("We are processing your request and will send an email to your account shortly.","processing");try{const n={report_config:{...o,configuration:{...o.configuration,current_date:B().format("YYYY-MM-DD")}},format:e,send_to:P.email},s=await zo(n);s.message&&_(s.message,"success")}catch(n){_(n,"error")}},D=({id:e,...n})=>({...n,type:"column"}),be=(e,n,s=!1)=>{const{aggregated_columns:m,grouped_columns:l,order_by:d,selected_columns:f}=e.configuration,p={...o,...e,configuration:{...e.configuration,aggregated_columns:m.map(D),grouped_columns:l.map(D),order_by:d.map(D),selected_columns:f.map(D)}};n?ee(e):(R(p),x({selectedReport:p,page_no:1,page_size:S})),s&&(Se?we():we(p==null?void 0:p.id)),Z()},eo=r.useCallback(e=>{const n=new Map(F.map(t=>[t.column_name,t])),s=(e.grouped_columns||[]).map(t=>{const a=t.column_name||t.name,c=n.get(a);return{...t,column_name:a,id:a,label:t.label||a,type:"column",data_type:(c==null?void 0:c.data_type)||t.data_type||t.type}}),m=(e.aggregated_columns||[]).map(t=>{const a=t.column_name||t.name,c=n.get(a);return{...t,column_name:a,id:a,label:t.label||a,type:"column",data_type:(c==null?void 0:c.data_type)||t.data_type||t.type}}),l=new Set(s.map(t=>t.column_name));let d=e.selected_columns.filter(t=>{const a=t.column_name||t.name;return!l.has(a)||t.function}).map(t=>{const a=t.column_name||t.name;return{...t,column_name:a,id:a,label:t.label||a,type:"column"}}),f=e.order_by.map(t=>{const a=t.column_name||t.name;return{...t,column_name:a,id:a,label:t.label||a,type:"column"}});const p=new Set(f.map(t=>t.column_name));s.forEach(t=>{p.has(t.column_name)||f.unshift({...t,id:t.column_name,label:t.label||t.column_name,type:"column",order:"asc"})});const h={...o,configuration:{...e,selected_columns:d,order_by:f,grouped_columns:s,aggregated_columns:m,current_date:B().format("YYYY-MM-DD")}};R(h),x({selectedReport:h,page_no:1,page_size:S}),V("Work Order Reports - AI Search Used"),_("Report configuration applied","success")},[F,o,x,S,_]),ee=async e=>{var s;const n=e.id?Io:Lo;W(!0);try{const{aggregated_columns:m,grouped_columns:l,order_by:d,selected_columns:f}=e.configuration,p={...e,view_name:(s=e==null?void 0:e.view_name)==null?void 0:s.trim(),report_name:ge,configuration:{...e.configuration,aggregated_columns:m.map(D),grouped_columns:l.map(D),order_by:d.map(D),selected_columns:f.map(D)}},{data:h}=await n(p);!e.id&&V("Reports Create");let t=g;if(e.id){const c=t.findIndex(({id:u})=>u===e.id);t[c]=h}else t.push(h);j(t),A(h);let a=e.id?"Report has been updated":"Report has been created";_(a,"success"),Z()}catch(m){_(m.message,"error")}finally{W(!1)}},oo=(e,n)=>{x({page_no:n+1,page_size:S,selectedReport:o})},no=e=>{const n=Number(e.target.value);x({page_no:1,page_size:n,selectedReport:o}),Ue(n)},to=r.useMemo(()=>Ve({user:I,view:q?null:C}),[I,q,C]),oe=((De=(xe=(Ce=C==null?void 0:C.configuration)==null?void 0:Ce.filter_conditions)==null?void 0:xe.all_c
1onditions)==null?void 0:De.length)||0,Se=r.useMemo(()=>L===(o==null?void 0:o.id),[o==null?void 0:o.id,L]),ro=e=>{e.preventDefault(),e.stopPropagation(),X(e.currentTarget)},ao=(e,n,s)=>{var t;if(!((t=o==null?void 0:o.configuration)!=null&&t.filter_conditions))return;const m=o.configuration.filter_conditions,{all_conditions:l=[]}=m;let d=[...l];if(n==="single")d=d.filter((a,c)=>c!==e);else if(n==="group"){const a=d[e];if(a&&a.type==="group")if(s!==void 0){const c=[...a.conditions];c.splice(s,1),c.length>0?d[e]={...a,conditions:c}:d.splice(e,1)}else d.splice(e,1)}const f={...m,all_conditions:d},p=wo(f),h={...o,configuration:{...o.configuration,filter_conditions:f,filters:p}};!d.length&&X(null),be(h,!1)},so=e=>{if(["Closing Answers","Collaborators","Service Request IDs"].includes(e.column_name))return;v.current||(v.current=C);const n=Vo(e,o);R(n),x({page_no:1,page_size:S,selectedReport:n})};return r.useEffect(()=>{b(Mo(ge)),b(Fo()),M!=null&&M.length||b(po())},[M,b]),r.useEffect(()=>{(async()=>{try{const n=await Go();j(n)}catch{_("Failed to load report views.","error")}})()},[]),r.useEffect(()=>{var e;if(g.length&&!o.view_name){const n=fo(g,L);A(n?n.view_name:(e=g[0])==null?void 0:e.view_name)}},[g,A,o.view_name,L]),r.useEffect(()=>{if(!(o!=null&&o.id))return;(async()=>{try{const n=await Yo(o);$e(n)}catch{_("Failed to load custom fields.","error")}})()},[o]),r.useEffect(()=>{const e=()=>{const l=le.current;if(!l)return;const d=l.getBoundingClientRect(),f=Math.max(0,Math.round(d.top));Ne(p=>p===f?p:f)},n=Y.debounce(e,50,{leading:!1,trailing:!0}),s=requestAnimationFrame(e);let m=null;return typeof ResizeObserver<"u"&&(m=new ResizeObserver(()=>n()),H.current&&m.observe(H.current)),()=>{cancelAnimationFrame(s),m&&m.disconnect(),n.cancel()}},[Me,Re]),y(w,{sx:{paddingX:"16px"},children:[y(yo,{width:"100%",subHeading:"Analytics /",heading:"Work Order Reports",isLoading:T,children:[J&&i(w,{ref:ae,children:i(Oo,{moduleName:"Work Orders",availableColumns:F,onApplyConfig:eo})}),y(w,{ref:H,sx:{display:"flex",flexDirection:"column",gap:"8px"},children:[y(w,{className:ce.controlsContainer,children:[y(w,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[(o==null?void 0:o.view_name)&&y(w,{children:[i(N,{variant:"caption",sx:{color:"GrayText",fontSize:"10px"},children:"View Name"}),y(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[i(O,{title:o.view_name,placement:"top",arrow:!0,disableHoverListener:!se,children:i(N,{ref:re,component:"span",variant:"subtitle1",sx:{lineHeight:1.1,fontSize:"13.5px",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",cursor:se?"pointer":"default",display:"block",maxWidth:"72ch"},children:o.view_name})}),((Ae=o==null?void 0:o.configuration)==null?void 0:Ae.default_view)&&i(O,{title:"Default View",placement:"top",arrow:!0,children:i(So,{sx:{fontSize:14,color:"gold",flexShrink:0,ml:.3}})})]})]}),oe>0&&y(go,{onClick:ro,sx:{display:"flex",alignItems:"center",gap:1,color:e=>e.palette.text.primary,textTransform:"none",minWidth:"125px","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}},children:["Filters: ",oe," ",oe>0?"Added":""]}),i(_o,{open:!!fe,anchorEl:fe,onClose:()=>X(null),anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{mt:1,boxShadow:"0px 4px 10px rgba(0, 0, 0, 0.1)",backgroundColor:e=>e.palette.mode==="dark"?"#333":"#fff",p:2,maxWidth:"500px",minWidth:"300px",borderRadius:"12px"}},children:i(Ao,{filters:((ve=o==null?void 0:o.configuration)==null?void 0:ve.filter_conditions)||{},handleDelete:ao,columnAliasMap:te})})]}),y(w,{className:ce.actionIcons,children:[T&&i(w,{display:"flex",children:i(ho,{size:"20px",sx:{color:e=>e.palette.mode==="light"?"#000":"#fff"}})}),E("work_order_report.update")&&i(Ee,{onClick:Ke,disabled:T,children:i(O,{title:"Edit Report",children:i(Bo,{fontSize:"small"})})}),E("work_order_report.export")&&i(To,{handleDownload:Ze,isLoading:T}),i(Ee,{onClick:Xe,disabled:T,children:i(O,{title:"Change View",children:i(Uo,{fontSize:"small"})})})]})]}),i(w,{ref:le,sx:{minHeight:"200px"},children:o!=null&&o.id?i(bo,{tableColumns:He,columnAliasMap:te,customFieldsCodes:qe,data:ze||[],tableHeight:Qe,count:ue.total_count,page:ue.current_page-1,rowsPerPage:S,onPageChange:oo,onRowsPerPageChange:no,onHeaderClick:so,loading:Ie}):i(N,{variant:"body2",color:"text.secondary",sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:"No reports found."})})]})]}),i(Co,{actionAnchorEl:Be,handleCloseViewPopover:()=>pe(null),selectedView:o,views:g,handleViewSelection:e=>{A(e),v.current=null},setOpenSaveAsDialog:de,user:P,...P.role!=="trial"&&{handleCreateNewView:()=>{me(!0),$(!0)}},...(K==null?void 0:K.canSave)&&!((Te=o==null?void 0:o.configuration)!=null&&Te.default_view)&&{setDeleteView:()=>Q(!0)}
1,canCreate:E("work_order_report.create"),canSaveAs:E("work_order_report.create"),canDelete:E("work_order_report.delete")}),i(Do,{open:Ye,onClose:()=>Q(!1),title:"Delete Report View",description:`Are you sure you want to delete view: ${o==null?void 0:o.view_name}?`,onDelete:Je}),i(xo,{open:Ge,selectedReport:o,onSave:ee,setOpen:de}),i(vo,{isOpen:Le,isNewView:q,selectedAssetType:{id:0,name:"false",table_name:""},tableColumns:F,columnAliasMap:te,tableSettings:C,settingRef:v.current,onApply:be,onSave:ee,onClose:Z,isSubmitting:T,isWorkOrderReport:!0,userGroups:We,viewPolicy:to,apiError:"",showTabs:{general:!0,columns:!0,sort:!0,filter:!0,download:!1},isCurrentViewSameAsUserDefaultView:Se})]})};export{Ln as default};
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.