1import{c as K,j as d,S as g,m as q,at as G,b as h,E as A,k as z,C as w,B as m,d as j,n as O,y as $,D as Q,F as V,e as U,H as J,t as W}from"./task-spreadsheet-D5k0iGrQ.js";import{b as X,c as Y}from"./main-B1e8Vwqe.js";var Z=$('<p class="text-xs text-base-content/60">'),ee=$('<p role=status class="p-3 text-sm">Searching project membersâ¦'),te=$('<div class="absolute top-full z-40 mt-1 w-full rounded border border-base-300 bg-base-100 shadow-lg">'),re=$('<div class="relative space-y-2"><label class="block text-sm font-medium"></label><input role=combobox class="input input-bordered w-full"autocomplete=off aria-autocomplete=list placeholder="Search by name or emailâ¦">'),ne=$('<button type=button class="btn btn-ghost btn-xs">Clear'),ae=$('<div class="flex items-start justify-between gap-3 rounded border border-base-300 bg-base-200/30 px-3 py-2 text-sm"><div><span class="block font-semibold"></span><span class="block text-xs text-base-content/65 break-all">'),le=$('<ul role=listbox aria-label="Matching project members"class="max-h-64 overflow-y-auto p-1">'),oe=$('<p role=status class="px-3 pb-3 text-sm">Searching project membersâ¦'),se=$('<p role=status class="px-3 pb-3 text-sm">'),ie=$('<div class=p-3><p role=alert class=text-sm></p><button type=button class="btn btn-outline btn-sm mt-2">Retry member search'),ce=$('<button type=button class="btn btn-ghost btn-sm w-full">'),ue=$('<li role=option><span class="block font-semibold"></span><span class="block text-xs text-base-content/65 break-all">');function de(e){return typeof e=="object"&&e!==null&&"data"in e&&typeof e.data=="object"&&e.data!==null&&"code"in e.data&&e.data.code==="REPORT_MEMBER_SEARCH_CHANGED"}function T(e){return e.accountKey??e.email.toLowerCase()}function $e(e){const o=K(()=>({reportId:e.reportId,projectId:e.projectId,mode:e.mode}));return d(g,{get when(){return o()},keyed:!0,children:s=>d(me,q(e,s))})}function me(e){const o=G(),[s,i]=h(!1),[k,E]=h(""),[S,I]=h(""),[_,v]=h(-1),[y,C]=h([]);let x,D=()=>{};A(()=>{const r=k().trim();v(-1);const b=setTimeout(()=>I(r),250);z(()=>clearTimeout(b))});const p=()=>k().trim()!==S();A(()=>{const r=_();s()&&r>=0&&document.getElementById(`${o}-option-${r}`)?.scrollIntoView?.({block:"nearest"})});const R=K(()=>({projectId:e.projectId,reportId:e.reportId,mode:e.mode,search:S()}));function P(r){e.onChange(r),E(""),I(""),v(-1),x?.focus(),i(!1)}function M(r){if(r.key==="Escape"){i(!1),r.preventDefault();return}if(r.key==="Tab"){i(!1);return}if(r.key==="ArrowDown"||r.key==="ArrowUp"){r.preventDefault(),i(!0);const b=y().length;b&&v(l=>r.key==="ArrowDown"?Math.min(l+1,b-1):Math.max(l-1,0));return}if(r.key==="Enter"&&s()){r.preventDefault();const b=p()?void 0:y()[_()];b&&P(b);return}r.key==="PageDown"&&s()&&(r.preventDefault(),D())}const L=r=>{(!(r.relatedTarget instanceof Node)||!r.currentTarget.contains(r.relatedTarget))&&i(!1)};return(()=>{var r=re(),b=r.firstChild,l=b.nextSibling;r.$$focusout=L,w(b,"for",o),m(b,()=>e.label),m(r,d(g,{get when(){return e.value},children:t=>(()=>{var c=ae(),a=c.firstChild,u=a.firstChild,N=u.nextSibling;return m(u,()=>t().name),m(N,()=>t().email),m(c,d(g,{get when(){return e.allowClear&&!e.disabled},get children(){var f=ne();return f.$$click=()=>e.onChange(null),j(()=>w(f,"aria-label",`Clear ${e.label}`)),f}}),null),c})()}),l),l.$$keydown=M,l.$$input=t=>{E(t.currentTarget.value),i(!0)},l.$$click=()=>i(!0),l.addEventListener("focus",()=>i(!0));var n=x;return typeof n=="function"?J(n,l):x=l,w(l,"id",o),w(l,"aria-controls",`${o}-list`),m(r,d(g,{get when(){return e.allowClear&&!e.value},get children(){var t=Z();return m(t,()=>e.clearLabel??"Not assigned"),t}}),null),m(r,d(g,{get when(){return s()&&!e.disabled},get children(){var t=te();return m(t,d(g,{get when(){return p()},get fallback(){return d(g,{get when(){return R()},keyed:!0,children:c=>d(be,q(c,{listId:`${o}-list`,optionPrefix:`${o}-option`,get active(){return _()},get selectedKey(){return O(()=>!!e.value)()?T(e.value):null},onOptions:a=>{C(a),v(u=>Math.min(u,a.length-1))},onSelect:P,onActive:v,bindMore:a=>{D=a}}))})},get children(){return ee()}})),t}}),null),j(t=>{var c=e.disabled,a=s(),u=s()&&_()>=0?`${o}-option-${_()}`:void 0;return c!==t.e&&(l.disabled=t.e=c),a!==t.t&&w(l,"aria-expanded",t.t=a),u!==t.a&&w(l,"aria-activedescendant",t.a=u),t},{e:void 0,t:void 0,a:void 0}),j(()=>l.value=k()),r})()}function be(e){const[o,s]=h(null),[i,k]=h([]),[E,S]=h(null),[I,_]=h(!1),[v,y]=h(!0),[C,x]=h(""),[D,p]=h(0);let R=0,P=0;const M=new Set,L=K(()=>
1({cursor:o(),retry:D()}));function r(){v()||I()||C()||E()===null||(R=0,y(!0),s(E()))}e.bindMore(r),z(()=>e.bindMore(()=>{})),A(()=>e.onOptions(i()));function b(n,t){if(n===o()){if(y(!1),x(""),M.add(n),k(c=>{const a=new Map(c.map(u=>[T(u),u]));for(const u of t.page)a.set(T(u),u);return[...a.values()]}),_(t.isDone),S(t.continueCursor),!t.isDone&&(t.continueCursor===null||M.has(t.continueCursor))){x("The member list changed. Retry this search.");return}t.page.length===0&&!t.isDone&&++R<20&&(y(!0),s(t.continueCursor))}}function l(n){if(y(!1),k([]),de(n)&&P++===0){M.clear(),s(null),p(t=>t+1),y(!0);return}x("Members could not be loaded. Check your connection and retry.")}return[d(g,{get when(){return L()},keyed:!0,children:n=>d(fe,q(e,{get cursor(){return n.cursor},onPage:t=>b(n.cursor,t),onError:l}))}),(()=>{var n=le();return m(n,d(V,{get each(){return i()},children:(t,c)=>(()=>{var a=ue(),u=a.firstChild,N=u.nextSibling;return a.$$click=()=>e.onSelect(t),a.addEventListener("mouseenter",()=>e.onActive(c())),a.$$mousedown=f=>f.preventDefault(),m(u,()=>t.name),m(N,()=>t.email),j(f=>{var B=`${e.optionPrefix}-${c()}`,F=e.selectedKey===T(t),H=`cursor-pointer rounded px-3 py-2 text-sm ${e.active===c()?"bg-base-200":"hover:bg-base-200/60"}`;return B!==f.e&&w(a,"id",f.e=B),F!==f.t&&w(a,"aria-selected",f.t=F),H!==f.a&&Q(a,f.a=H),f},{e:void 0,t:void 0,a:void 0}),a})()})),j(()=>w(n,"id",e.listId)),n})(),d(g,{get when(){return v()},get children(){return oe()}}),d(g,{get when(){return O(()=>!!(!v()&&I()&&!i().length))()&&!C()},get children(){var n=se();return m(n,()=>e.mode==="lead"?"No matching inspectors with recorded certification.":"No matching project members."),n}}),d(g,{get when(){return C()},get children(){var n=ie(),t=n.firstChild,c=t.nextSibling;return m(t,C),c.$$click=()=>{M.clear(),k([]),x(""),y(!0),s(null),p(a=>a+1)},n}}),d(g,{get when(){return O(()=>!v()&&!I())()&&!C()},get children(){var n=ce();return n.$$click=r,m(n,()=>i().length?"Load more matches":"Continue searching project members"),n}})]}function fe(e){const o=X().useQuery(Y.inspectionReportLead.searchMembers,()=>({...e.reportId?{reportId:e.reportId}:{projectId:e.projectId},mode:e.mode,search:e.search,cursor:e.cursor,limit:20}));return A(()=>{const s=o.error(),i=o.data();s?U(()=>e.onError(s)):!o.isLoading()&&i&&U(()=>e.onPage(i))}),null}W(["focusout","click","input","keydown","mousedown"]);export{$e as R};
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.